How to use Window functions?
11 views (last 30 days)
Show older comments
Hi Everyone,
Let's discuss something about window functions if you feel interested.
I know what window functions are, and just know that they are used in analysis of signal in Engineering, but do not know their applications. I do not come from Engineering, so I am not sure about this kind of function. Google does not give me good keys for this, so I would like to raise this discussion.
Does anyone have experience about this? I think the most importance is understand:
+ Where can we apply these functions?
+ Why can we do that?
+ How can we apply them?
Thank you.
2 Comments
Jan
on 24 Sep 2012
"Window functions" is a very general term. Please specify what you are talking of and which problem you want to solve.
Answers (2)
Wayne King
on 24 Sep 2012
I'm not sure that this forum is the proper place for a general discussion about windows. In signal processing, windows have two uses:
1.) In the design of an FIR filter. You have an ideal filter response in mind but that cannot be realized in practice because the (impulse) response is infinite, so you form a truncated version of it with a window.
2.) In spectral analysis. The abrupt on-off nature of finite data sets has well known and documented consequences for the accurate estimation of the spectrum of the process from which the data is a realization. Multiplying the data by a window before you take the Fourier transform can mitigate some of these effects.
Both of these topics should be easily researched using Google (the web in general)
3 Comments
Wayne King
on 24 Sep 2012
the answer to that question is going to require a lengthy explanation, which is covered in every signal processing textbook
Mel
on 24 Sep 2012
The Fourier transform needs an infinite data series (note that in the definition of the Fourier transform, the integral goes from negative to positive infinity). I will refer to the Fourier transform of a signal as its "spectrum".
In reality, we do not have infinite data series. If you simply "chop" your signal after a particular amount of time, you introduce an error into the spectrum. Take for example, y=sin(2*pi*t*n), where t is in seconds and n is any number. The spectra would ideally be a delta function at n (since the signal is a simple sine wave of frequency n). In reality if you simply chop the data series, instead of the delta function, you will get a sinc(f) (sin(f)/f) shape, with its peak at n.
The reason for this: Multiplication in the time domain is equivalent to convolution (see http://en.wikipedia.org/wiki/Convolution) in the frequency domain. "Chopping" our signal is equivalent to multiplying it by a boxcar function (ones from your start time to your stop time and zeros at all other times). The Fourier transform of a boxcar function is a sinc(f) term. Therefore, the resulting spectrum in this example is the convolution of the real Fourier transform of the data (a delta function at f=n) and the Fourier transform of the boxcar function (sinc(f)).
The boxcar function is used as a window here. So, the fundamental reason why we use windows is we don't have infinite data series. Specific windows, such as Hamming, Hann, Butterworth, etc., have particular benefits that may interest a researcher to use them over other windows. See http://en.wikipedia.org/wiki/Window_function for more information on various windows.
Honglei Chen
on 24 Sep 2012
Applying Fourier transform directly in one domain generates a first sidelobe at -13dB in the transformed domain. In a lot of applications, this attenuation is not enough. Using a window beforehand could improve the attenuation and reduce the error in the estimation. For example, you mentioned Gaussian in your question. So you must be aware that the Fourier transform of Gaussian is still Gaussian, which means there will be no sidelobes in the transformed domain. On the other hand, the price you pay is a widened mainlobe. Using the same example, Gaussian is only an approximation of the delta function.
0 Comments
See Also
Categories
Find more on Windows in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!