11-24-2009 05:53 AM
Hi everybody,
i have some general questions about FFT on FPGA's and the frequency resolution in spectral analysis.
To establish understanding:
i want to read a frequency with fs = 500kS on my FPGA. The FFT function from the FPGA palette allows a maximum of N = 8192 samples. This results in a frequency resolution of fs/N = 500.000/8192 = 61,035Hz and a frequency range of fs/2 = 250.000Hz.
My destination in the spectral analysis is a resolution of 1Hz in the range from 9kHz to 11kHz.
My questions:
1. Is there a similar function for FPGA applications like the "Zoom FFT" in the Sound and Vibration toolkit or can i use it on FPGA target-VI?
2. Is there any existing example code for an other "overlap and add" or "overlap and save"- method for Fourier Transformations on FPGA?
3. Any other suggestions for the described problem?
Best regards and
thanks in advance
Sebeck
Solved! Go to Solution.
11-25-2009 02:11 AM
Hi sebeck,
The result of your calculation is correct, you get a frequency resolution of about 60Hz, but the way you calculated it is wrong. If you sample with 500kS/s you can have a maximum frequency of 250kHz and from the FFT you will have 8192 lines in your spectrum, so theoretical you would have a resolution of about 30Hz. But the FFT at the FPGA is both-sided, so it returns positiv and negativ frequencies. You cannot use the negaive ones, so you have only 4096 lines left from which you get a frequency resolution of about 60Hz.
That being said there is no Zoom FFT for FPGA and you cannot use the Express VI from Sound&Vibration TK there.
So if you need the frequencies up to 11kHz, you could decimate the data and sample with 22Ks/s, then you get a resolution from 2.7Hz.
With a fixed blocksize you can only get a better frequency resolution in measureing a longer time.
Hope this helps,
Christian