next up previous contents
Next: Enveloped FFT Up: Frequency domain analysis Previous: Application: accurately determine amplitude   Contents


Zoom FFTs

The Zoom FFT is a way of speeding up some computations. Despite the name, it doesn't allow you to zoom in on a signal any closer than you could with a regular FFT. But, it does allow you to zoom in on a signal with a lot less computation than you might otherwise. Let us take as an example a waveform sampled at 10,000 samples/s which we suspect (for some reason) has two components, one at 4000 Hz and one at 3999 Hz. In order to distinguish these two components, we will need a frequency resolution of at least 0.5 Hz, which calls for a 2 second window. That requires a 20,000 point FFT. Actually, with a modern PC, that really doesn't take that long. But maybe we want to do a short time fourier transform 8.1over a few minutes worth of data (this happens quite frequently), or maybe we have an embedded device that has limited computational capabilities (this also happens quite frequently). Let us assume that we need to be able to use a 2000 point FFT. Then we employ the zoom FFT. There are three steps: frequency shift, low pass filter, and decimate. First, a frequency shift. We multiply the signal by the complex phasor exp(- i$ \omega$t) where $ \omega$ is choosen to be 3900 Hz. It should be easy to see that this will shift the signal at 4000 Hz down to 100 Hz (remember, when two exponential expressions are multiplied, their exponents add). Of course it has also made the signal complex, but that's okay. Then, we low pass filter with a cutoff filter of, say, 300 Hz (this is 3700 - 4300 Hz in the original signal, remember). Now, since we have no frequency content above 300 Hz, a sampling rate of 10,000 Hz is unnecessary. So we decimate by a factor of 10. Now the signal is sampled at 1000 Hz. So a 2 second window requires only a 2000 point FFT. After the FFT, we simply shift the frequencies back up by adding 3900 Hz to the result. Now we have 0.5 Hz resolution between 3700 Hz and 4300 hz with 10 times less computation.

Remember, we still need 2 seconds worth of data to get a 0.5 Hz resolution. This is no better than we could do without a zoom. All we did was save computation time.


next up previous contents
Next: Enveloped FFT Up: Frequency domain analysis Previous: Application: accurately determine amplitude   Contents " . $row['Name'] . " Posted on " . $row['DateTime']; echo "
"; echo $row['Comment']; echo "

"; } echo "
"; ?> Leave a comment on this page:

Name: (optional)
To prove you are not a robot, what is 2+3?

Creative Commons License
This work by Daniel Kiracofe (daniel dot kiracofe at gmail dot com) is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License./' $I