Having just read the rather long article on Wikipedia about window functions, I still do not see the mathematical point in using window functions when calculating spectral estimates (using e.g. Welch's method).

For example,

The Fourier transform of the function cos ωt is zero, except at frequency ±ω. However, many other functions and waveforms do not have convenient closed form transforms

what is this supposed to mean? I doubt any sampled and digitized signal has a convenient closed form transform anymore.

  • 3
    $\begingroup$ One main reason is control of spectral leakage. $\endgroup$ – Jason R Aug 15 '14 at 17:49
  • $\begingroup$ windows also is using to analyse short segments of signals which is assumed to be stationary,for example STFT use windows for non stationary signals $\endgroup$ – dato datuashvili Aug 15 '14 at 19:46

You are right that no real-world signal will have a "convenient closed form" transform. I also find the quoted sentence misleading, and in my opinion it does not motivate the use of windowing. From your question I believe that you do not actually ask about the pros and cons of different window functions, but if I understand you correctly you ask yourself why people cut signals into pieces anyway if they want to analyze their spectrum. The reason is that many real-world signals are simply too long and/or their length is not known. So you don't want to wait till the signal is 'complete', and you also don't want the complexity of processing such a long signal. So you do block-processing, which reduces computational complexity and gives you quickly a spectral estimate. When you cut the signal into blocks you have many parameters that will influence the result of the spectral estimate: the block length, the type of window, the overlap between blocks, etc. This is a complex topic but you'll find a lot of literature about it. If you have access to Oppenheim and Schafer's Discrete-time Signal Processing I would recommend the chapter on Fourier Analysis of Signals Using the Discrete Fourier Transform. It has a lot of valuable information about block processing and windowing.


The DFT has a built-in implicit rectangular window. You're taking a chunk of a stream of input data and transforming it. But by just slicing it out of the input, you leave very sharp edges on it. This gives the overall transform a rectangular shape, which after transforming gives you a sinc envelope in the frequency domain (DFT(rect) = sinc). Sincs have very poor sidelobe characteristics (-13dB first sidelobe). So you can get a lot of energy leaking back into your passband that you didn't want. Windowing the data before transforming smoothes out those sharp edges and dramatically reduces the sidelobes.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.