LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

How Do I know how accurate the result of a FFT is?

I'm getting data from a microphone during 3 seconds with an acquisition rate of 20 kHz. This data I'm running through a FFT, and afterwards I extract the magnitudes for six defined frequencies.
My question is, whether there is a way to know the accuracy of this computation (the FFT), and whether there are ways to increase the accuracy with which the resulting values are computed (for example including more or less points in the computation).
Thanks for any help!
Andreas
0 Kudos
Message 1 of 3
(3,313 Views)
There should be an output which tells you what the delta F is between points.

However, by definition of the FFT, the more time domain samples used in the FFT, the more accurate you can read the lower end frequencies of your signal. (You are using a longer sampling time). A faster acquisition rate increases the resolution of your FFT (smaller delta F between points).

I believe that's the relationships you're looking for.

Mark
0 Kudos
Message 2 of 3
(3,313 Views)
Andreas,

If you are using LV 6, you should use a vi called "Extract Single Tone". It uses interpolation to find the precise frequency and amplitude of a tone, and increases your accuracy significantly. If you just read the peak value, your values will be lower than they should be.

I wouldn't increase your FFT resolution too much. More points means more time for calculation, and you are more likely to miss information that is very close to your desired frequency. For example, if you have 1 Hz resolution on your FFT and you expect a tone at 500 Hz, but it is at 502 Hz, you will miss it if you only read the value at 500 Hz.

Bruce
Bruce Ammons
Ammons Engineering
0 Kudos
Message 3 of 3
(3,313 Views)