2020 >

Frequency Domain Signal Processing

John Edwards - Watch Now - Duration: 57:15

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 | 4 years 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 | 4 years 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

Score: 0 | 4 years ago | 1 reply

Loved it ultipro

john.edwardsSpeaker
Score: 0 | 4 years ago | no reply

Thanks lason, much appreciated.
John

HardRealTime
Score: 0 | 4 years 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 | 4 years 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 | 4 years 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 | 4 years ago | no reply

Thank you, much appreciated.

john.edwardsSpeaker
Score: 0 | 4 years 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 | 4 years 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 | 4 years 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 | 4 years ago | 1 reply

This is the FFT Nlog2(N) efficency?

john.edwardsSpeaker
Score: 0 | 4 years ago | no reply

Absolutely correct, Chris

christophe.blouet
Score: 0 | 4 years 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 | 4 years ago | no reply

Thanks Christophe, much appreciated.

AllenDowney
Score: 0 | 4 years ago | 1 reply

Very informative talk. Thank you!

john.edwardsSpeaker
Score: 0 | 4 years ago | no reply

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

Danilo
Score: 0 | 4 years ago | 1 reply

Great overview.

john.edwardsSpeaker
Score: 0 | 4 years ago | no reply

Thanks Danilo, much appreciated.

ChrisBore
Score: 0 | 4 years ago | 1 reply

Fascinating, thank you

john.edwardsSpeaker
Score: 0 | 4 years ago | no reply

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

Brewster
Score: 0 | 4 years 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 | 4 years 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 | 4 years 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 | 4 years ago | no reply

Thanks Aaron, much appreciated.

woodpecker
Score: 0 | 4 years 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 | 4 years 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 | 4 years 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 | 4 years 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 | 4 years ago | no reply

Thanks.

john.edwardsSpeaker
Score: 0 | 4 years ago | no reply

Here are answers to the questions that we did not have time to answer in the live session.
From Evan
Two questions:

  1. Are cascaded integrator comb filters the type typically used for
    on-chip sigma-delta data converters (decimator for ADC, interpolator for
    DAC)?
    Yes, they are exactly the same.

  2. Overlap-add vs overlap-save, is there a difference in effective
    filter response, since overlap-add isn't exactly the same operation as
    the fully time-domain convolution operation?
    Overlap-add, overlap-save and time domain convolution will all give exactly the same result.

From Chris Bore
In medical radar applications, using VNA (Vector Network Analyzer) the measurements are of CW signals, in I and Q (amplitude and phase, or complex phasor) - but most commonly FFTed to time domain pulse because that is what the radar engineers are used to - tell me that makes no sense?
In a CW application, the phase should give you the delay, if that is what you are looking for.

From Michael Kirkhart
Might this be the app note?
http://xanthippi.ceid.upatras.gr/people/psarakis/courses/DSP_APL/demos/APR8-sigma-delta.pdf
Yes, that it the one. Thank you, Michael.

From Jonathan Bramwell
When filtering in the frequency domain should you window the time domain data prior to fft. and does the choice of windowing function effect the filter response?
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.

From Ali Ficici
I have designed CIC filters for large interpolation or decimation rates. They are efficient but the BW of the signal needs to be fairly small compared to fs because of the droop in the filter.
That is absolutely correct, Ali, which is why the standard FIR filter after the CIC filters will typically have a slightly non-flat pass-band to compensate for the CIC roll-off.

From km
is the phase role implementation you mentioned for delay compensation? if so could you expand?
Yes. Phase roll is an artefact of satellite communications where the up and down links have slight errors in their frequencies that can lead to problems with echo cancellers etc.
The phase roll simulator converted time domain signals to the frequency domain, rotated the phase and then converted back to the time domain.
This was used to develop an algorithm to detect and compensate for phase roll, in the ground based modems.

From Arthur Lobo
Can you briefly discuss Generalized Cross Correlation?
Hi Arthur, sorry we didn't have time to discuss this live.
This is a big subject so I would recommend the follwing links:
https://en.wikipedia.org/wiki/Cross-correlation
https://www.dspguide.com/
The DSP Guide is a particularly good DSP reference.
If anyone has any more questions then please do not hesitate to get in touch : jedwards@numerix-dsp.com
Enjoy the rest of the conference,
John

OUR SPONSORS