Just for fun, I thought I'd try and list many of the misconceptions that people seem to have regarding using the FFT, as seen in various previous posts to comp.dsp. The FFT is a widely used algorithm because the result has something (not precisely understood) to do with frequencies. Some Common FFT Misconceptions: 1. The FFT will directly produce the frequency of some phenomena, without regard to the relationship between FFT length versus the period of any oscillations (e.g. what rectangular window?), or any envelope on or modulation of some periodic waveform. 2. The FFT will find the correct frequency content without regard to the relationship between the sample rate and the highest frequency content present in the sampled phenomena, or any other need for bandlimiting (for example, of closing price data). 2b. The sample rate only needs to be twice the highest present, or twice the highest frequency of interest for an FFT to "find" that frequency. 3. Since the FFT always produces "frequencies", there must be some periodic phenomena within the sampled data. 4. The perceive pitch of a musical or speech waveform is the same as the frequency represented by the FFT magnitude peak. 5. Windowing (non-rectangular) will always result in a more accurate frequency estimation. 6. One can perfectly filter out a signal band by just zeroing out some bins between an FFT and IFFT. 7. One can filter in the frequency domain without regard to the length of the (significant) impulse response of the filter. 8. One can reconstruct a signal from just the FFT magnitude result. 9. One can reconstruct a real signal by just feeding the "positive frequency" bins to a generic IFFT. 10. One can extrapolate a signal from an FFT without inferring circular boundary conditions. 11. The (complex) FFT contains no information about the time domain envelope. 11. The phase of a sinusoid (or how far that sinusoid is away from Fs/4) does not affect the magnitude result of an FFT. 12. Information from preceding, overlapping, or different length FFT frames is of no interest in analyzing the spectrum of some waveform. 13. The "resolution" of a frequency estimation depends only on the FFT length, and has nothing to do with anything known about the signal-to-noise ratio in the sampled data. 13b. More "resolution" of frequency estimation is created by zero-padding (...beyond that provided by other methods of interpolation). 14. An FFT is not just an efficient implementation of a DFT. (Or: "What's a DFT?") 15. Using an entire FFT is the best way to check for even a very small number of frequencies (say a DTMF tone). 16. The FFT can only operate on vector lengths that are an integer power of 2. (Or FFT's of vectors not a power of 2 are "really" slow.) 17. The performance of an FFT implementation (on contemporary PC's) depends mostly on the number of arithmetic operations (or MACs or FMACs). 18. An FFT is less accurate than using the defining DFT formula for computation. 19. ??? The above are common FFT misconceptions, or sometimes just poorly thought out or stated conceptions that can lead to strange misinterpretations of the results of using an FFT. IMHO. YMMV. First posted: 2008-March-28 to comp.dsp Last edited: 2008-March-31Ron's DSP web page
Copyright 2008 Ronald H Nicholson, Jr.