Home >

Frequency Domain Signal Processing

John Edwards - Watch Now!

This talk will be followed by a Live Q&A Discussion on Zoom.

Frequency domain signal processing is not just about using the Fast Fourier Transform for calculating a power spectrum, it is also a very efficient method of processing signals compared to traditional time domain techniques. This presentation will describe several common frequency domain algorithms and show how they are used. Examples will include Frequency Domain Filtering, Time Delay Estimation and Interpolation; and more.
M↓ MARKDOWN HELP
italicssurround text with
*asterisks*
boldsurround text with
**two asterisks**
hyperlink
[hyperlink](https://example.com)
or just a bare URL
code
surround text with
`backticks`
strikethroughsurround text with
~~two tilde characters~~
quote
prefix with
>

DHMarinov
Score: 0 | 2 months ago | 1 reply

Hello John,
The presentation was great! I have a question regarding the application of FFT as a filter.
I am trying to implement a convolutional reverb - this is basically a very long FIR filter, whose coefficients are the impulse response of an physical environment. Unlike the filtering aspect of most FIR filters, this application is also dependant on the propagation delay of the filter (i.e. it is a desirable property).
Do you think it is possible to implement the convolutional reverb using FFTs and preserving the exact same response, if so how would you do it?

john.edwardsSpeaker
Score: 0 | 2 months ago | no reply

Hi,
Thank you for your nice comments.
Yes, this would be entirely possible but the important thing is that the FFT length >= N+M-1, as per the slides.
There is potentially one problem however. If this is a live real time application (e.g. music recording) then the additional latency of te FFT block processing might be too much.
Best regards,
John

lason
Score: 0 | 2 months ago | 1 reply

Loved it ultipro

john.edwardsSpeaker
Score: 0 | 2 months ago | no reply

Thanks lason, much appreciated.
John

HardRealTime
Score: 0 | 2 months ago | 1 reply

Great talk! Forgive my inexperience, but I have a question about the frequency domain interpolation. Perhaps the answer is in the spatial resolution formula, but I don't understand it. How many additional points would be added to the time domain using this interpolation technique?

john.edwardsSpeaker
Score: 0 | 2 months ago | no reply

Hi,
The number of interpolation points is theoretically unlimited, it just depends on how much zero padding you apply.
In practice, this is a law of diminishing returns but up to 8x or 16x will be fine.

stefg
Score: 0 | 2 months ago | 1 reply

Thank you very much,
Very interesting and directly in line with what I'm doing, you reminded me that I need to know more about the CIC filters.

john.edwardsSpeaker
Score: 0 | 2 months ago | no reply

Thank you, much appreciated.

john.edwardsSpeaker
Score: 0 | 2 months ago | no reply

I have added some more answers to the live discussion thread : https://www.dsponlineconference.com/meeting/Live_Discussion_Frequency_Domain_Signal_Processing

Brewster
Score: 0 | 2 months ago | 1 reply

Hi John, You mentioned defaulting to B-H windows. In high resolution systems (like > 120 dB dynamic range) there is (might be?) the concern of "high" sidelobes. So now I see Dolph (& related) windows being used to get sidelobes down to almost arbitrarily low levels. OTOH there's no such thing as a free lunch - what are your thoughts on window functions for FFT in this type of high dynamic range use?

john.edwardsSpeaker
Score: 0 | 2 months ago | no reply

Hi Brewster,
You are correct. In general signal processing applications (voice etc.) I tend to use the Hanning Window, which has a good trade-off between mainlobe spreading and sidelobe magnigude. For higher resolution applications like radar, sonar and ultrasound I find the Blackman-Harris gives a bit more mainlobe spreading but lower sidelobes. I agree that the Dolph window can provide even better sidelobe performance, at the cost of mainlobe spreading.
The best thing to do is test each window against a specific applcation requirement and see which fits best

ChrisBore
Score: 0 | 2 months ago | 1 reply

This is the FFT Nlog2(N) efficency?

john.edwardsSpeaker
Score: 0 | 2 months ago | no reply

Absolutely correct, Chris

christophe.blouet
Score: 0 | 2 months ago | 1 reply

Thanks for this presentation, very inspiring. I'm sure I'll get use of some of the techniques presented

john.edwardsSpeaker
Score: 0 | 2 months ago | no reply

Thanks Christophe, much appreciated.

AllenDowney
Score: 0 | 2 months ago | 1 reply

Very informative talk. Thank you!

john.edwardsSpeaker
Score: 0 | 2 months ago | no reply

Thanks Allen, much appreciated.
Good luck with your talk, I'm looking forward to it.

Danilo
Score: 0 | 2 months ago | 1 reply

Great overview.

john.edwardsSpeaker
Score: 0 | 2 months ago | no reply

Thanks Danilo, much appreciated.

ChrisBore
Score: 0 | 2 months ago | 1 reply

Fascinating, thank you

john.edwardsSpeaker
Score: 0 | 2 months ago | no reply

Thanks Chris, much appreciated.
Yours was excellent too :-)

Brewster
Score: 0 | 2 months ago | 1 reply

Hi John, I know your talk was more on 'processing' via FFT but I figure I'll ask this anyway...I still feel unsure when I'm faced with an application where estimating the exact peak and the exact frequency are needed, or when there are frequencies that are close to each other. Do you have a good pointer to an "idiots guide to FFT use" that might provide a good summary of what technique(s) are best for this type of application?

john.edwardsSpeaker
Score: 0 | 2 months ago | no reply

Hi Brewster,
Good question. Yes, a common method for achieving this is to use interpolation in the Frequency domain to improve the peak detection. This is the technique used in the ultrasound application I presented.
Another thing to note is that in the scenario where the frequencies are close and also have similar magnitude is to not window the input data because windowing spreads the main lobe energy so can be detremental in these scenarios.

AaronEdwards
Score: 0 | 2 months ago | 1 reply

Thanks John. As someone who works with Time Domain processing a lot in my day to day work, this presented a lot of good trade-offs and was very informative!

john.edwardsSpeaker
Score: 0 | 2 months ago | no reply

Thanks Aaron, much appreciated.

woodpecker
Score: 0 | 2 months ago | 1 reply

Hi John, A great talk - Thanks ! My feeling is that far too much AI is working on raw data, whereas even a little DSP pre-processing would reduce the MIPs by orders of magnitude.
I look forward to more of your informative lectures.

john.edwardsSpeaker
Score: 0 | 2 months ago | no reply

Thanks very much for your comments.
Yes, I totally agree. I have been doing a lot of work into Machine Learning and using the frequency domain to improve the performance of CNNs. I have a paper that will be presented to the TinyML Foundation shortly so please keep an eye out. If Stephane runs this event next year I will gladly present more details then.

jonbram
Score: 1 | 2 months ago | 1 reply

John, Great presentation, but one question. In the implementation of filtering in the frequency domain, does the choice of Windowing Function in the time domain effect the filter response of the Filtering in the frequency domain?

john.edwardsSpeaker
Score: 1 | 2 months ago | 1 reply

Excellent question. If you are using one of the overlap methods then the iFFT on the output unrolls the windowing effects from the input so you do not need to use a window.

jonbram
Score: 0 | 2 months ago | no reply

Thanks.