Reply by Fred Marshall July 28, 20062006-07-28
"spaz" <cmas@earthlink.net> wrote in message 
news:vbWdnRsjOZR4xFfZnZ2dnUVZ_vqdnZ2d@giganews.com...
> > >>"spaz" <cmas@earthlink.net> wrote in message >>news:rpWdnVXmcNMK9VrZnZ2dnUVZ_vKdnZ2d@giganews.com... >>> When I normally do a FFT, the frequency resolution = sampling >>> frequency/number of samples. >>> >>> When I use windowing (like BH4) to prevent smearing, this should > increase >>> the frequency resolution of the FFT, because of the convolution in the >>> frequency domain. I have seen tables which show the frequency > resolution >>> increases by a factor of 1.9 for a Blackman Harris window, so if the >>> frequency resolution was 100 Hz without windowing, it should now be > ~190 >>> Hz. >>> >>> 1) How can I calculate what this factor is, or what the new frequency >>> resolution is? >>> >>> 2) I can only do FFTs when the number of samples is a power of 2. So > if I >>> assume the 1.9 is correct, should I capture 1.9 x samples, and then >>> decimate by a factor of 1.9 (i.e. throw away 47% of the samples)? Is > this >>> the best or simplest way to obtain the correct spectrum? >>> >>> Can anyone refer me to a book or article which explains this? >> >>It's easy to confuse sampling interval with resolution because the sample > >>interval splits or "resolves" the signal into discrete points. >>However, the actual resolution is something else. >> >>How to determine? >> >>Compute the *continuous* Fourier Transform of the window you're using. >>If there's "no window" i.e. a continuous rectangular window then the FT > will >>be a sinc and you can ponder what resolution is implied by a sinc. >>If there's some other continuous window then you do the same thing. >> >>Now, if the data is time-sampled and you use the FFT then the frequency >>domain will be sampled and the underlying shape that you get above is >>obscured - but it's still there. >>Try doing an FFT of a sinusoid with exactly K+0.5 cycles in time. You > will >>see all the peaks of the sinc if the window is rectangular. >> >>No need to interpolate or decimate in this regard. But, there may be > other >>reasons. >> >>There is no "correct" spectrum *or* every spectrum that you compute is >>"correct" depending on how you view what you're doing and the associated > >>math... >> >>Fred >> >> >> > I guess I am confused. The frequency resolution I'm trying to get at is > the difference between two adjacent bins in the spectrum. I have heard > this also called the Fourier frequency. > > Suppose I have a signal at 1 MHz and another one at 1.024 kHz. If > everything is coherent, and I sample at 8.192 MHz, capture time domain > data with 1024 samples, fft, and then look at the spectrum, I have 512 > bins. Each one represents fres = fs/ns = 8 kHz, and see two signals which > I can easily resolve. There's one in bin #125 and one in bin #128. That's > what I call a correct spectrum. > > If I do the same thing, but window before the fft, and then look at the > spectrum, I still have 512 bins. But each bin does not represent 8 kHz, > because I messed with the time domain data before the fft. The signals > are still there in the frequency domain, but they are too close to each > other to easily resolve. So I think either this spectrum should either be > plotted with fewer bins or I have to to something else, like capture more > samples.
The "frequency resolution" you mention is the frequency interval between samples. It doesn't have to be very much related to the ability to separate frequencies. For example: If you zero-pad a time-domain sequence (so the time epoch is longer) you will get a smaller frequency interval but no better frequency resolution because the "window" remains the length of the original (presumably nonzero) data sequence. ... later on .... If you window before the fft you still have 512 (actually 1024) bins and each bin still represents 8iHz. That is, unless you changed the length of the time sequence. Windowing is generally weighting but not changing the length - so it has no affect on this. The reason the signals are "too close to each other to easily resolve is because: When you apply a window - that is, some shape on top of the rectangular window that's already there - you are generally doing it to reduce the spectral spreading sidelobe levels. This is done at the expense of the width of the spectral main lobe (of the FFT of the window). It gets wider than the sinc. If the main lobe extends to capture most of two sinusoids then the ability to resolve them is worsened. It is pretty much true that a rectangular window gives the narrowest main lobe and thus the best frequency to frequency resolution - albeit with higher sidelobes / more leakage into other frequencies. So, it's a trade between ability to separate closely adjacent signals and ability to see low level signals in the presence of strong signals (which affect many frequencies due to the window's sidlobes). Fred
Reply by Ron N. July 28, 20062006-07-28
spaz wrote:
> I guess I am confused. The frequency resolution I'm trying to get at is > the difference between two adjacent bins in the spectrum. I have heard > this also called the Fourier frequency. > > Suppose I have a signal at 1 MHz and another one at 1.024 kHz. If > everything is coherent, and I sample at 8.192 MHz, capture time domain > data with 1024 samples, fft, and then look at the spectrum, I have 512 > bins. Each one represents fres = fs/ns = 8 kHz, and see two signals which > I can easily resolve. There's one in bin #125 and one in bin #128. That's > what I call a correct spectrum. > > If I do the same thing, but window before the fft, and then look at the > spectrum, I still have 512 bins. But each bin does not represent 8 kHz, > because I messed with the time domain data before the fft. The signals > are still there in the frequency domain, but they are too close to each > other to easily resolve. So I think either this spectrum should either be > plotted with fewer bins or I have to to something else, like capture more > samples.
If everything is coherent, and the signal is composed on only bin frequency sinusoids, then you do not need a window to reduce smearing. If there are non-bin frequencies present, then plotting even more points (sinc interpolation) might help in resolving two nearby non-bin frequencies. Windowing might help if one frequency might be hidden within the aliased side-lobes of another. IMHO. YMMV. -- rhn A.T nicholson d.0.t C-o-M
Reply by spaz July 28, 20062006-07-28
> >"spaz" <cmas@earthlink.net> wrote in message >news:rpWdnVXmcNMK9VrZnZ2dnUVZ_vKdnZ2d@giganews.com... >> When I normally do a FFT, the frequency resolution = sampling >> frequency/number of samples. >> >> When I use windowing (like BH4) to prevent smearing, this should
increase
>> the frequency resolution of the FFT, because of the convolution in the >> frequency domain. I have seen tables which show the frequency
resolution
>> increases by a factor of 1.9 for a Blackman Harris window, so if the >> frequency resolution was 100 Hz without windowing, it should now be
~190
>> Hz. >> >> 1) How can I calculate what this factor is, or what the new frequency >> resolution is? >> >> 2) I can only do FFTs when the number of samples is a power of 2. So
if I
>> assume the 1.9 is correct, should I capture 1.9 x samples, and then >> decimate by a factor of 1.9 (i.e. throw away 47% of the samples)? Is
this
>> the best or simplest way to obtain the correct spectrum? >> >> Can anyone refer me to a book or article which explains this? > >It's easy to confuse sampling interval with resolution because the sample
>interval splits or "resolves" the signal into discrete points. >However, the actual resolution is something else. > >How to determine? > >Compute the *continuous* Fourier Transform of the window you're using. >If there's "no window" i.e. a continuous rectangular window then the FT
will
>be a sinc and you can ponder what resolution is implied by a sinc. >If there's some other continuous window then you do the same thing. > >Now, if the data is time-sampled and you use the FFT then the frequency >domain will be sampled and the underlying shape that you get above is >obscured - but it's still there. >Try doing an FFT of a sinusoid with exactly K+0.5 cycles in time. You
will
>see all the peaks of the sinc if the window is rectangular. > >No need to interpolate or decimate in this regard. But, there may be
other
>reasons. > >There is no "correct" spectrum *or* every spectrum that you compute is >"correct" depending on how you view what you're doing and the associated
>math... > >Fred > > >
I guess I am confused. The frequency resolution I'm trying to get at is the difference between two adjacent bins in the spectrum. I have heard this also called the Fourier frequency. Suppose I have a signal at 1 MHz and another one at 1.024 kHz. If everything is coherent, and I sample at 8.192 MHz, capture time domain data with 1024 samples, fft, and then look at the spectrum, I have 512 bins. Each one represents fres = fs/ns = 8 kHz, and see two signals which I can easily resolve. There's one in bin #125 and one in bin #128. That's what I call a correct spectrum. If I do the same thing, but window before the fft, and then look at the spectrum, I still have 512 bins. But each bin does not represent 8 kHz, because I messed with the time domain data before the fft. The signals are still there in the frequency domain, but they are too close to each other to easily resolve. So I think either this spectrum should either be plotted with fewer bins or I have to to something else, like capture more samples.
Reply by July 27, 20062006-07-27
Hi,

spaz schrieb:
> When I normally do a FFT, the frequency resolution = sampling > frequency/number of samples. > > When I use windowing (like BH4) to prevent smearing, this should increase > the frequency resolution of the FFT, because of the convolution in the > frequency domain. I have seen tables which show the frequency resolution > increases by a factor of 1.9 for a Blackman Harris window, so if the > frequency resolution was 100 Hz without windowing, it should now be ~190 > Hz.
Well, something like that... Look at http://en.wikipedia.org/wiki/Window_function There are many common window functions with the corresponding B factor.
> 1) How can I calculate what this factor is, or what the new frequency > resolution is?
Do an FFT from the window function sufficiently padded with zeros. E.g. calculate the window function for 1024 samples and pad it with 3072 zeros. The absolute values of the FFT coefficients is the frequency response of the window function. Look where it croses the -3dB line compared to the rectangular window. I have done this for several window functions, removing the fine structure at higher frequencies. It looks like http://www.maazl.de/upload/WindowFunction.pdf (this link may get invalid in future)
> 2) I can only do FFTs when the number of samples is a power of 2. So if I > assume the 1.9 is correct, should I capture 1.9 x samples, and then > decimate by a factor of 1.9 (i.e. throw away 47% of the samples)? Is this > the best or simplest way to obtain the correct spectrum?
Use 2 x as much samples. Marcel
Reply by Anton July 27, 20062006-07-27
Hi Spaz,

Maybe I was a bit unconcentrated when I replied.

Anton <berlach@koncon.nl> writes:

> "spaz" <cmas@earthlink.net> wrote in message
....
>> >> When I use windowing (like BH4) to prevent smearing, this should increase >> the frequency resolution of the FFT, because of the convolution in the >> frequency domain. I have seen tables which show the frequency resolution >> increases by a factor of 1.9 for a Blackman Harris window, so if the >> frequency resolution was 100 Hz without windowing, it should now be ~190 >> Hz. > > You prevent smearing or you reduce leakage , but I would say you > definitely do not increase the frequency resolution. > And how is a frequency resolution of 190 Hz better than 100 Hz? > How do you interpret those numbers? > I don't know where the 1.9 you saw comes from but it is probably > some number about the side-lobe reduction.
Windowing could change the resolution. I just don't think that it is important if you use a von Hann or Blackman Harris or rectangular window. However if you put a window with half the size of the buffer over the signal, you have the same situation as if you take an fft of half the size with zero padding. So you would see a sampling intervall of SR/N but every second (frequency) sample is just the result of a sinc interpolation and the information containted is just as much as you can get from the non-zero part of the window. And for the part where I asked you how 190Hz would be better than 100Hz, I maybe read something into your question which you did not say. gr. Anton
Reply by Jerry Avins July 26, 20062006-07-26
spaz wrote:
> When I normally do a FFT, the frequency resolution = sampling > frequency/number of samples. > > When I use windowing (like BH4) to prevent smearing, this should increase > the frequency resolution of the FFT, because of the convolution in the > frequency domain. I have seen tables which show the frequency resolution > increases by a factor of 1.9 for a Blackman Harris window, so if the > frequency resolution was 100 Hz without windowing, it should now be ~190 > Hz. > > 1) How can I calculate what this factor is, or what the new frequency > resolution is? > > 2) I can only do FFTs when the number of samples is a power of 2. So if I > assume the 1.9 is correct, should I capture 1.9 x samples, and then > decimate by a factor of 1.9 (i.e. throw away 47% of the samples)? Is this > the best or simplest way to obtain the correct spectrum?
If I understand what you are asking, your questions are based on more than one misconception. For examples, windows don't alter frequency resolution /per se/, and the smaller the frequency range, the better the resolution (so 100 Hz in nearly twice as fine as 190 Hz).
> Can anyone refer me to a book or article which explains this?
http://www.bores.com/courses/intro/basics/index.htm http://dspguide.com/ Jrry -- Engineering is the art of making what you want from things you can get. &#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;&#2013266095;
Reply by Richard Owlett July 26, 20062006-07-26
Anton wrote:
> "spaz" <cmas@earthlink.net> wrote in message > snip >>Can anyone refer me to a book or article which explains this? > > > http://ccrma.stanford.edu/~jos/mdft/ >
Not sure if that's what OP desired. BUT, I think I'll find link useful. Thank you. [Even if I attended Cornell ;]
Reply by Anton July 26, 20062006-07-26
"spaz" <cmas@earthlink.net> wrote in message 
> When I normally do a FFT, the frequency resolution = sampling > frequency/number of samples. > > When I use windowing (like BH4) to prevent smearing, this should increase > the frequency resolution of the FFT, because of the convolution in the > frequency domain. I have seen tables which show the frequency resolution > increases by a factor of 1.9 for a Blackman Harris window, so if the > frequency resolution was 100 Hz without windowing, it should now be ~190 > Hz.
You prevent smearing or you reduce leakage , but I would say you definitely do not increase the frequency resolution. And how is a frequency resolution of 190 Hz better than 100 Hz? How do you interpret those numbers? I don't know where the 1.9 you saw comes from but it is probably some number about the side-lobe reduction.
> 1) How can I calculate what this factor is, or what the new frequency > resolution is?
If your fft is taken over N points, you will have bins that are spaced in a distance of SR/N Hz (SR=samplerate). So if your first component (after DC) is at 100Hz you have 100,200,300.. and so on. So the smaller the intervall between the bins, the better is your frequency resolution. Windowing does not change the resolution.
> > 2) I can only do FFTs when the number of samples is a power of 2.
No, there are algorithms to do FFTs for any number of samples.
> So if I > assume the 1.9 is correct, should I capture 1.9 x samples, and then > decimate by a factor of 1.9 (i.e. throw away 47% of the samples)? Is this > the best or simplest way to obtain the correct spectrum?
I don't really understand. What exactly do you want to achieve?
> Can anyone refer me to a book or article which explains this?
http://ccrma.stanford.edu/~jos/mdft/ gr. Anton
Reply by Michael Kreeger July 26, 20062006-07-26
There have been some great explanations so far but I would like to
simplfiy the problem even further.

Basic concepts:
1) Multiplication in the time domain is convolution in the frequency
domain
2) Multiplication in the frequency domain is convolution in the time
domain (thats how digital filters work).
3) Shaping windows have impulse responses:
    a) The FFT has a built in box car impulse response which is a sinc
function in the frequency domain. if your waveform is not continus at
the edges of the FFT there will be impulse noise resembling a sinc
function.
    b) Various windows can reduce the noise caused by edge
discontinuities.

You can easily run an experiment by trying various impulse responses of
windows and then FFT them.

I have uses a squared Hanning window which gave me more than 100 db of
rejection.

Michael

Reply by Chris Bore July 26, 20062006-07-26
> Can anyone refer me to a book or article which explains this?
http://www.bores.com/courses/advanced/windows/index.htm Chris ================= Chris Bore BORES Signal Processing spaz wrote:
> When I normally do a FFT, the frequency resolution = sampling > frequency/number of samples. > > When I use windowing (like BH4) to prevent smearing, this should increase > the frequency resolution of the FFT, because of the convolution in the > frequency domain. I have seen tables which show the frequency resolution > increases by a factor of 1.9 for a Blackman Harris window, so if the > frequency resolution was 100 Hz without windowing, it should now be ~190 > Hz. > > 1) How can I calculate what this factor is, or what the new frequency > resolution is? > > 2) I can only do FFTs when the number of samples is a power of 2. So if I > assume the 1.9 is correct, should I capture 1.9 x samples, and then > decimate by a factor of 1.9 (i.e. throw away 47% of the samples)? Is this > the best or simplest way to obtain the correct spectrum? > > Can anyone refer me to a book or article which explains this?