PDA

View Full Version : Frequency Smearing FFT


dmorris619
Mar24-11, 02:15 AM
I understand that for the FFT the resolution or bin size is a function of the number of samples in your signal and that while padding the signal with zeros will make the graph look more precise it will not enable you to resolve between two frequencies if they are contained in the same bin. What I do not understand is how the amplitude of each bin is determined. For example, so I have a bin size of 5 Hz and I have two cosine signals of equal magnitude in that bin separated by 1 Hz(lets say 1000 and 1001) why does the magnitude of that reported bin not equal 2? As they are moved further apart the amplitude becomes even less and also starts impacting the bin next to it as well. I imagine this has something to do with the fact that in the rectangularly windowed FFT cosine and sine are sincs rather than diracs, but am not exactly sure why the amplitude comes out to some seemingly(to my inexperienced eyes) random value. This then leads me to ask two more questions. The first is whether there is some kind of formula to determine the amplitude give the frequency and the amplitude of my cosines. The second and more ignorant question, is there anything I can do, like windowing, to make it so that the amplitude seems more logical for a bin size(so two equal magnitudes are twice the magnitude). Again the second question really is based in the fact that I don't fully understand what the meaning of each bin's amplitude is, i.e. those seemingly arbitrary numbers actually correlate to some important part of the FFT.

e-o
Mar26-11, 09:21 AM
The FFT uses the same formula as the DFT to perform the Fourier transform (it just uses some fancy manipulations to speed up the calculations). So the amplitudes in the FFT are calculated using the DFT formula, which you can find here:

http://en.wikipedia.org/wiki/Discrete_Fourier_transform#Definition

For your second question, I'm not really sure of the answer. I doubt it's possible to make the amplitude results completely logical (i.e. two frequencies of identical amplitude in a bin adding up to 2), since that would cause the FT calculation to be irreversible. For example, if you had 1000Hz and 1002Hz and that gave you the same spectrum as 1000Hz and 1001Hz, then what would the inverse Fourier transform give you? It should be different for the two cases, but it can't be if those cases give the same spectrum.
That being said, there might be some way to make it at least more meaningful by windowing as you suggest, but I don't know enough about that to be of any help unfortunately.

If you're concerned about where the numbers are coming from, I'd suggest zero padding the signal before transforming it. As you say, this won't allow you to separate the frequencies any better (because of the sinc vs. delta problem), but it will add more bins which will help 'fill-out' the spectrum. That should allow you to view the actual shape of the spectrum at the frequencies of interest.

dmorris619
Mar26-11, 01:07 PM
After more research I realized that the height isn't random but it is the sum of all of the sincs at that frequency. So why it may not be logical visually mathematically it is logical for the exact reason of being reversible. However I was able to help limit the amount to which the bin affected each other by windowing the data. I specifically used the hanning window to severly reduce the amplitude of the side lobes at a minimal cost to main lobe width.

Another great website to learn all of this from is bores.com

rbj
Mar27-11, 09:03 PM
i would also suggest the USENET newsgroup, comp.dsp.