[comp.dsp] Help on FFT frequency resolution

opto1k@jetson.uh.edu (A JETSON News User) (01/09/91)

Hello,

I have a question about frequency bins from discrete FFT.  Please respond
by email.


From what I understand, bin k corresponds to frequency
	f(k) = (k * SR)/N (Hz), where k = 0, 1, ..., N/2, and
	SR is the sampling rate in Hz; N is the sample size

So, given a sample of 512 points sampled at 1024 Hz, the frequency bins are
0, 2, 4, 6, 8, 10, ..., 512 Hz.

Now, if I pad 512 zeros to the end of the data points, I have 1024 samples
sampled at 1024 Hz, and the frequency bins will be 0, 1, 2, 3, ... 512 Hz.

This seems to increase the DFFT frequency resolution.  But I remember I read
from a text book somewhere that says it isn't so (I forget which book that is);
the padding is just a way of interpolation.  Is it true?

If the padding is just an interpolation, is it acceptable to use the values
to calculate the amplitudes of the harmonics (not PSD) at 1 Hz, 3 Hz, etc.?

If it is not acceptable mathematically, is there a way to find what I want at
those frequencies?

No, this is not a class homework.  I have large amount of data from an
experiement which cannot be redone.  Any help would be appreciated.

Thanks in advance.
___
Tong Ho
University of Houston
College of Optometry
Email: opto1k@jetson.uh.edu

bobc@hplsla.HP.COM (Bob Cutler) (01/11/91)

>This seems to increase the DFFT frequency resolution.  But I remember I read
>from a text book somewhere that says it isn't so (I forget which book that is);
>the padding is just a way of interpolation.  Is it true?
>

In a sense, it is.  The best way to think about this problem is to imagine
that you had all 1024 samples to begin with and then applied a rectangular
window 512 points wide.  This multiplication in the frequency domain 
corresponds to a convolution in the frequency domain.  To understand how
the windowing is going to affect your data, you need to consider the
window shape (in the frequency domain).  For example, a rectangular window
has a sin(x)/x type of response.  Narrow windows (in the time domain) are
generally fat in the frequency domain.  So, in the frequency domain, a
512 point rectangular window would be twice as wide (i.e. cover twice
as many bins) as a 1024 point window.  In this example the nulls in the 
sinc(x) function would be two bins apart instead of one bin apart..

>If the padding is just an interpolation, is it acceptable to use the values
>to calculate the amplitudes of the harmonics (not PSD) at 1 Hz, 3 Hz, etc.?
>
>If it is not acceptable mathematically, is there a way to find what I want at
>those frequencies?
>

It sounds as though you're more interested in amplitude accuracy that
frequency resoltion.  If this is the case, then you don't even really need
to go to a double width FFT.  Just select a window function that emphasises
amplitude accuracy.  With the appropriate window, it won't matter if the
spectral line does not land on a frequency bin.   Don't forget to apply
a gain correction for the selected window if you're interested in the
absolute levels of each harmonic.

					Bob Cutler
					KE7ZJ
					Hewlett-Packard
					Lake Stevens Instrument Division

bobc@hplsla.HP.COM (Bob Cutler) (01/11/91)

/ hplsla:comp.dsp / bobc@hplsla.HP.COM (Bob Cutler) /  1:25 pm  Jan 10, 1991 /


>This seems to increase the DFFT frequency resolution.  But I remember I read
>from a text book somewhere that says it isn't so (I forget which book that is);
>the padding is just a way of interpolation.  Is it true?
>

window 512 points wide.  This multiplication in the frequency domain 
                                                    ^^^^^^^^^

This should be 'multiplication in the time domain'.   Sorry for the 
confusion.