2020 >
Frequency Domain Signal Processing
John Edwards  Watch Now  Duration: 57:15
Hi,
Thank you for your nice comments.
Yes, this would be entirely possible but the important thing is that the FFT length >= N+M1, 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
Loved it ultipro
Thanks lason, much appreciated.
John
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?
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.
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.
Thank you, much appreciated.
I have added some more answers to the live discussion thread : https://www.dsponlineconference.com/meeting/Live_Discussion_Frequency_Domain_Signal_Processing
Hi John, You mentioned defaulting to BH 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?
Hi Brewster,
You are correct. In general signal processing applications (voice etc.) I tend to use the Hanning Window, which has a good tradeoff between mainlobe spreading and sidelobe magnigude. For higher resolution applications like radar, sonar and ultrasound I find the BlackmanHarris 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
This is the FFT Nlog2(N) efficency?
Absolutely correct, Chris
Thanks for this presentation, very inspiring. I'm sure I'll get use of some of the techniques presented
Thanks Christophe, much appreciated.
Very informative talk. Thank you!
Thanks Allen, much appreciated.
Good luck with your talk, I'm looking forward to it.
Great overview.
Thanks Danilo, much appreciated.
Fascinating, thank you
Thanks Chris, much appreciated.
Yours was excellent too :)
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?
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.
Thanks John. As someone who works with Time Domain processing a lot in my day to day work, this presented a lot of good tradeoffs and was very informative!
Thanks Aaron, much appreciated.
Hi John, A great talk  Thanks ! My feeling is that far too much AI is working on raw data, whereas even a little DSP preprocessing would reduce the MIPs by orders of magnitude.
I look forward to more of your informative lectures.
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.
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?
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.
Thanks.
Here are answers to the questions that we did not have time to answer in the live session.
From Evan
Two questions:

Are cascaded integrator comb filters the type typically used for
onchip sigmadelta data converters (decimator for ADC, interpolator for
DAC)?
Yes, they are exactly the same. 
Overlapadd vs overlapsave, is there a difference in effective
filter response, since overlapadd isn't exactly the same operation as
the fully timedomain convolution operation?
Overlapadd, overlapsave 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/APR8sigmadelta.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 nonflat passband to compensate for the CIC rolloff.
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/Crosscorrelation
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@numerixdsp.com
Enjoy the rest of the conference,
John
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?