Window function
In signal processing and statistics, a window function is a mathematical function that is zero-valued outside of some chosen interval, normally symmetric around the middle of the interval, usually near a maximum in the middle, and usually tapering away from the middle. Mathematically, when another function or waveform/data-sequence is "multiplied" by a window function, the product is also zero-valued outside the interval: all that is left is the part where they overlap, the "view through the window". Equivalently, and in actual practice, the segment of data within the window is first isolated, and then only that data is multiplied by the window function values. Thus, tapering, not segmentation, is the main purpose of window functions.
The reasons for examining segments of a longer function include detection of transient events and time-averaging of frequency spectra. The duration of the segments is determined in each application by requirements like time and frequency resolution. But that method also changes the frequency content of the signal by an effect called spectral leakage. Window functions allow us to distribute the leakage spectrally in different ways, according to the needs of the particular application. There are many choices detailed in this article, but many of the differences are so subtle as to be insignificant in practice.
In typical applications, the window functions used are non-negative, smooth, "bell-shaped" curves. Rectangle, triangle, and other functions can also be used. A rectangular window does not modify the data segment at all. It's only for modelling purposes that we say it multiplies by 1 inside the window and by 0 outside. A more general definition of window functions does not require them to be identically zero outside an interval, as long as the product of the window multiplied by its argument is square integrable, and, more specifically, that the function goes sufficiently rapidly toward zero.
Applications
Window functions are used in spectral analysis/modification/resynthesis, the design of finite impulse response filters, as well as beamforming and antenna design.Spectral analysis
The Fourier transform of the function is zero, except at frequency ±ω. However, many other functions and waveforms do not have convenient closed-form transforms. Alternatively, one might be interested in their spectral content only during a certain time period.In either case, the Fourier transform can be applied on one or more finite intervals of the waveform. In general, the transform is applied to the product of the waveform and a window function. Any window affects the spectral estimate computed by this method.
Choice of window function
Windowing of a simple waveform like causes its Fourier transform to develop non-zero values at frequencies other than ω. The leakage tends to be worst near ω and least at frequencies farthest from ω.If the waveform under analysis comprises two sinusoids of different frequencies, leakage can interfere with our ability to distinguish them spectrally. Possible types of interference are often broken down into two opposing classes as follows: If the component frequencies are dissimilar and one component is weaker, then leakage from the stronger component can obscure the weaker one's presence. But if the frequencies are too similar, leakage can render them unresolvable even when the sinusoids are of equal strength. Windows that are effective against the first type of interference, namely where components have dissimilar frequencies and amplitudes, are called high dynamic range. Conversely, windows that can distinguish components with similar frequencies and amplitudes are called high resolution.
The rectangular window is an example of a window that is high resolution but low dynamic range, meaning it is good for distinguishing components of similar amplitude even when the frequencies are also close, but poor at distinguishing components of different amplitude even when the frequencies are far away. High-resolution, low-dynamic-range windows such as the rectangular window also have the property of high sensitivity, which is the ability to reveal relatively weak sinusoids in the presence of additive random noise. That is because the noise produces a stronger response with high-dynamic-range windows than with high-resolution windows.
At the other extreme of the range of window types are windows with high dynamic range but low resolution and sensitivity. High-dynamic-range windows are most often justified in wideband applications, where the spectrum being analyzed is expected to contain many different components of various amplitudes.
In between the extremes are moderate windows, such as [|Hamming] and [|Hann]. They are commonly used in narrowband applications, such as the spectrum of a telephone channel.
In summary, spectral analysis involves a trade-off between resolving comparable strength components with similar frequencies and resolving disparate strength components with dissimilar frequencies. That trade-off occurs when the window function is chosen.
Discrete-time signals
When the input waveform is time-sampled, instead of continuous, the analysis is usually done by applying a window function and then a discrete Fourier transform. But the DFT provides only a sparse sampling of the actual discrete-time Fourier transform spectrum. Figure 2, row 3 shows a DTFT for a rectangularly-windowed sinusoid. The actual frequency of the sinusoid is indicated as "13" on the horizontal axis. Everything else is leakage, exaggerated by the use of a logarithmic presentation. The unit of frequency is "DFT bins"; that is, the integer values on the frequency axis correspond to the frequencies sampled by the DFT. So the figure depicts a case where the actual frequency of the sinusoid coincides with a DFT sample, and the maximum value of the spectrum is accurately measured by that sample. In row 4, it misses the maximum value by ½ bin, and the resultant measurement error is referred to as [|scalloping loss]. For a known frequency, such as a musical note or a sinusoidal test signal, matching the frequency to a DFT bin can be prearranged by choices of a sampling rate and a window length that results in an integer number of cycles within the window.Noise bandwidth
The concepts of resolution and dynamic range tend to be somewhat subjective, depending on what the user is actually trying to do. But they also tend to be highly correlated with the total leakage, which is quantifiable. It is usually expressed as an equivalent bandwidth, B. It can be thought of as redistributing the DTFT into a rectangular shape with height equal to the spectral maximum and width B. The more the leakage, the greater the bandwidth. It is sometimes called noise equivalent bandwidth or equivalent noise bandwidth, because it is proportional to the average power that will be registered by each DFT bin when the input signal contains a random noise component. A graph of the power spectrum, averaged over time, typically reveals a flat noise floor, caused by this effect. The height of the noise floor is proportional to B. So two different window functions can produce different noise floors.Processing gain and losses
In signal processing, operations are chosen to improve some aspect of quality of a signal by exploiting the differences between the signal and the corrupting influences. When the signal is a sinusoid corrupted by additive random noise, spectral analysis distributes the signal and noise components differently, often making it easier to detect the signal's presence or measure certain characteristics, such as amplitude and frequency. Effectively, the signal to noise ratio is improved by distributing the noise uniformly, while concentrating most of the sinusoid's energy around one frequency. Processing gain is a term often used to describe an SNR improvement. The processing gain of spectral analysis depends on the window function, both its noise bandwidth and its potential scalloping loss. These effects partially offset, because windows with the least scalloping naturally have the most leakage.Figure 3 depicts the effects of three different window functions on the same data set, comprising two equal strength sinusoids in additive noise. The frequencies of the sinusoids are chosen such that one encounters no scalloping and the other encounters maximum scalloping. Both sinusoids suffer less SNR loss under the [|Hann window] than under the Blackman–Harris window. In general, this is a deterrent to using high-dynamic-range windows in low-dynamic-range applications.
Filter design
Windows are sometimes used in the design of digital filters, in particular to convert an "ideal" impulse response of infinite duration, such as a sinc function, to a finite impulse response filter design. That is called the window method.Statistics and curve fitting
Window functions are sometimes used in the field of statistical analysis to restrict the set of data being analyzed to a range near a given point, with a weighting factor that diminishes the effect of points farther away from the portion of the curve being fit. In the field of Bayesian analysis and curve fitting, this is often referred to as the kernel.Rectangular window applications
Analysis of transients
When analyzing a transient signal in modal analysis, such as an impulse, a shock response, a sine burst, a chirp burst, or noise burst, where the energy vs time distribution is extremely uneven, the rectangular window may be most appropriate. For instance, when most of the energy is located at the beginning of the recording, a non-rectangular window attenuates most of the energy, degrading the signal-to-noise ratio.Harmonic analysis
One might wish to measure the harmonic content of a musical note from a particular instrument or the harmonic distortion of an amplifier at a given frequency. Referring again to Figure 2, we can observe that there is no leakage at a discrete set of harmonically-related frequencies sampled by the DFT. This property is unique to the rectangular window, and it must be appropriately configured for the signal frequency, as described above.Symmetry
The formulas provided in this article produce discrete sequences, as if a continuous window function has been "sampled". Window sequences can be either symmetric or 1-sample short of symmetric. For instance, a symmetric sequence, with its maximum at a single center-point, is generated by the MATLAB functionhann
. Deleting the last sample produces a sequence identical to hann
. An even-length symmetric sequence has two equal center-points, but most window functions used in practice have a single peak value, whether they are symmetric or asymmetric.Some functions have one or two zero-valued end-points, which are unnecessary in most applications. Deleting a zero-valued end-point has no effect on its DTFT. But the function designed for +1 or +2 samples, in anticipation of deleting one or both end points, typically has a slightly narrower main lobe, slightly higher sidelobes, and a slightly smaller noise-bandwidth.
DFT-even
The terminology DFT-even describes a subclass of periodic windows, characterized by only even-length sequences. Some potential advantages for spectral analysis are:- Efficiency: FFT algorithms are most efficient when the sequence length is an integer power-of-two.
- Zero-valued DFT coefficients: The DFT-even subset of, including, have very few non-zero DFT coefficients. We see the rectangular window effect in the third row of Figure 2. A [|cosine-sum] example is , which shows that the -point DFT of the sequence generated by hann has only 3 non-zero values. All the other samples coincide with zero-crossings of the DTFT. Besides the application already described at, this property is useful for real-time applications that require both windowed and non-windowed transforms, because the windowed transforms can be efficiently derived from the non-windowed transforms by convolution. In that application, real-valued DFT coefficients is also an efficiency multiplier.
- Real-valued DFT coefficients: Harris cites this as the DFT equivalent of earlier work, where windows for the DFT's predecessor are "always an odd number of points and exhibit even symmetry about the origin", which results in an entirely real-valued DTFT.
- In both cases, only the window function itself will have real-valued DTFT samples. Windowed data will generally lack the symmetry to preserve that characteristic. But other than the predictable sign reversals, the phase component of the DTFT will be representative of the data, not the window function.
- Truncation affects only the real components of the DTFT samples. The imaginary ones remain zero-valued. Harris attributes this effect to what he calls DFT-even symmetry. is an exaggerated example of both methods, also showing how real-valued samples are obtained from the complex DTFT.
- The effect of truncation on spectral leakage is best understood in terms of the magnitude of the DTFT, shown in decibels. At , the graph labeled DTFT periodic8 is the DTFT of the truncated window labeled periodic DFT-even. The green graph labeled DTFT symmetric9 corresponds to the same window with its symmetry restored. The DTFT samples, labeled DFT8 periodic summation, are an example of using periodic summation to sample it at the same frequencies as the blue graph.
A list of window functions
- is a zero-phase function, continuous for where N is a positive integer.
- The sequence is symmetric, of length
- is asymmetric, of length
- The parameter B displayed on each spectral plot is the function's noise equivalent bandwidth metric, in units of DFT bins.
Rectangular window
Other windows are designed to moderate these sudden changes, which reduces scalloping loss and improves dynamic range, as described above.
The rectangular window is the 1st order B-spline window as well as the 0th power [|Power-of-sine window].
''B''-spline windows
B-spline windows can be obtained as k-fold convolutions of the rectangular window. They include the rectangular window itself, the and the . Alternative definitions sample the appropriate normalized B-spline basis functions instead of convolving discrete-time windows. A kth order B-spline basis function is a piece-wise polynomial function of degree k−1 that is obtained by k-fold self-convolution of the rectangular function.Triangular window
Triangular windows are given by:where L can be N, N+1,
or N+2. The first one is also known as Bartlett window or Fejér window. All three definitions converge at large N.
The triangular window is the 2nd order B-spline window. The L=N form can be seen as the convolution of two N/2 width rectangular windows. The Fourier transform of the result is the squared values of the transform of the half-width rectangular window.
Parzen window
Defining , the Parzen window, also known as the de la Vallée Poussin window, is the 4th order B-spline window given by:Other polynomial windows
Welch window
The Welch window consists of a single parabolic section:The defining quadratic polynomial reaches a value of zero at the samples just outside the span of the window.
Sine window
The corresponding function is a cosine without the π/2 phase offset. So the sine window is sometimes also called cosine window. As it represents half a cycle of a sinusoidal function, it is also known variably as half-sine window or half-cosine window.The autocorrelation of a sine window produces a function known as the Bohman window.
Power-of-sine/cosine windows
These window functions have the form:The , the , and the Hann window are members of this family.
Cosine-sum windows
This family is also known as .In most cases, including the examples below, all coefficients ak ≥ 0. These windows have only 2K + 1 non-zero N-point DFT coefficients, and they are all real-valued.
Hann and Hamming windows
The customary cosine-sum windows for case K = 1 have the form:which is easily confused with its zero-phase version:
Setting produces a Hann window:
named after Julius von Hann, and sometimes referred to as Hanning, presumably due to its linguistic and formulaic similarities to the Hamming window. It is also known as raised cosine, because the zero-phase version, is one lobe of an elevated cosine function.
This function is a member of both the cosine-sum and [|power-of-sine] families. Unlike the Hamming window, the end points of the Hann window just touch zero. The resulting side-lobes roll off at about 18 dB per octave.
Setting to approximately 0.54, or more precisely 25/46, produces the Hamming window, proposed by Richard W. Hamming. That choice places a zero-crossing at frequency 5π/, which cancels the first sidelobe of the Hann window, giving it a height of about one-fifth that of the Hann window.
The Hamming window is often called the Hamming blip when used for pulse shaping.
Approximation of the coefficients to two decimal places substantially lowers the level of sidelobes, to a nearly equiripple condition. In the equiripple sense, the optimal values for the coefficients are a0 = 0.53836 and a1 = 0.46164.
Blackman window
Blackman windows are defined as:By common convention, the unqualified term Blackman window refers to Blackman's "not very serious proposal" of , which closely approximates the exact Blackman, with a0 = 7938/18608 ≈ 0.42659, a1 = 9240/18608 ≈ 0.49656, and a2 = 1430/18608 ≈ 0.076849. These exact values place zeros at the third and fourth sidelobes, but result in a discontinuity at the edges and a 6 dB/oct fall-off. The truncated coefficients do not null the sidelobes as well, but have an improved 18 dB/oct fall-off.
Nuttall window, continuous first derivative
The continuous form of Nuttall window, and its first derivative are continuous everywhere, like the Hann function. That is, the function goes to 0 at unlike the Blackman–Nuttall, Blackman–Harris, and Hamming windows. The Blackman window is also continuous with continuous derivative at the edge, but the "exact Blackman window" is not.Blackman–Nuttall window
Blackman–Harris window
A generalization of the Hamming family, produced by adding more shifted sinc functions, meant to minimize side-lobe levelsFlat top window
A flat top window is a partially negative-valued window that has minimal scalloping loss in the frequency domain. That property is desirable for the measurement of amplitudes of sinusoidal frequency components. Drawbacks of the broad bandwidth are poor frequency resolution and high.Flat top windows can be designed using low-pass filter design methods, or they may be of the usual cosine-sum variety:
The has these coefficients:
Other variations are available, such as sidelobes that roll off at the cost of higher values near the main lobe.
Rife–Vincent windows
Rife–Vincent windows are customarily scaled for unity average value, instead of unity peak value. The coefficient values below, applied to, reflect that custom.Class I, Order 1 : Functionally equivalent to the Hann window.
Class I, Order 2 :
Class I is defined by minimizing the high-order sidelobe amplitude. Coefficients for orders up to K=4 are tabulated.
Class II minimizes the main-lobe width for a given maximum side-lobe.
Class III is a compromise for which order K = 2 resembles the.
Adjustable windows
Gaussian window
The Fourier transform of a Gaussian is also a Gaussian. Since the Gaussian function extends to infinity, it must either be truncated at the ends of the window, or itself windowed with another zero-ended window.Since the log of a Gaussian produces a parabola, this can be used for nearly exact quadratic interpolation in frequency estimation.
The standard deviation of the Gaussian function is σ · N/2 sampling periods.
Confined Gaussian window
The confined Gaussian window yields the smallest possible root mean square frequency width for a given temporal width . These windows optimize the RMS time-frequency bandwidth products. They are computed as the minimum eigenvectors of a parameter-dependent matrix. The confined Gaussian window family contains the and the in the limiting cases of large and small, respectively.Approximate confined Gaussian window
Defining , a of temporal width is well approximated by:where is a Gaussian function:
The standard deviation of the approximate window is asymptotically equal to for .
Generalized normal window
A more generalized version of the Gaussian window is the generalized normal window. Retaining the notation from the Gaussian window above, we can represent this window asfor any even. At, this is a Gaussian window and as approaches, this approximates to a rectangular window. The Fourier transform of this window does not exist in a closed form for a general. However, it demonstrates the other benefits of being smooth, adjustable bandwidth. Like the, this window naturally offers a "flat top" to control the amplitude attenuation of a time-series. In essence, it offers a good compromise, in terms of spectral leakage, frequency resolution and amplitude attenuation, between the Gaussian window and the rectangular window.
See also for a study on time-frequency representation of this window.
Tukey window
Defining , the Tukey window, also known as the cosine-tapered window, can be regarded as a cosine lobe of width that is convolved with a rectangular window of width.At it becomes rectangular, and at it becomes a Hann window.
Planck-taper window
The so-called "Planck-taper" window is a bump function that has been widely used in the theory of partitions of unity in manifolds. It is smooth everywhere, but is exactly zero outside of a compact region, exactly one over an interval within that region, and varies smoothly and monotonically between those limits. Its use as a window function in signal processing was first suggested in the context of gravitational-wave astronomy, inspired by the Planck distribution. It is defined as a piecewise function:The amount of tapering is controlled by the parameter ε, with smaller values giving sharper transitions.
DPSS or Slepian window
The DPSS or Slepian window maximizes the energy concentration in the main lobe, and is used in multitaper spectral analysis, which averages out noise in the spectrum and reduces information loss at the edges of the window.The main lobe ends at a frequency bin given by the parameter α.
The Kaiser windows below are created by a simple approximation to the DPSS windows:
Kaiser window
The Kaiser, or Kaiser-Bessel, window is a simple approximation of the DPSS window using Bessel functions, discovered by James Kaiser.where is the zero-th order modified Bessel function of the first kind. Variable parameter determines the tradeoff between main lobe width and side lobe levels of the spectral leakage pattern. The main lobe width, in between the nulls, is given by in units of DFT bins, and a typical value of is 3.
Dolph–Chebyshev window
Minimizes the Chebyshev norm of the side-lobes for a given main lobe width.The zero-phase Dolph–Chebyshev window function is usually defined in terms of its real-valued discrete Fourier transform, :
Tn is the n-th Chebyshev polynomial of the first kind evaluated in x, which can be computed using
and
is the unique positive real solution to, where the parameter α sets the Chebyshev norm of the sidelobes to −20α decibels.
The window function can be calculated from W0 by an inverse discrete Fourier transform :
The lagged version of the window can be obtained by:
which for even values of N must be computed as follows:
which is an inverse DFT of
Variations:
- Due to the equiripple condition, the time-domain window has discontinuities at the edges. An approximation that avoids them, by allowing the equiripples to drop off at the edges, is a .
- An alternative to the inverse DFT definition is also available..
Ultraspherical window
Like other adjustable windows, the Ultraspherical window has parameters that can be used to control its Fourier transform main-lobe width and relative side-lobe amplitude. Uncommon to other windows, it has an additional parameter which can be used to set the rate at which side-lobes decrease in amplitude.
The window can be expressed in the time-domain as follows:
where is the Ultraspherical polynomial of degree N, and and control the side-lobe patterns.
Certain specific values of yield other well-known windows: and give the Dolph–Chebyshev and Saramäki windows respectively. See for illustration of Ultraspherical windows with varied parametrization.
Exponential or [|Poisson window]
The Poisson window, or more generically the exponential window increases exponentially towards the center of the window and decreases exponentially in the second half. Since the exponential function never reaches zero, the values of the window at its limits are non-zero. It is defined bywhere τ is the time constant of the function. The exponential function decays as e ≃ 2.71828 or approximately 8.69 dB per time constant.
This means that for a targeted decay of D dB over half of the window length, the time constant τ is given by
Hybrid windows
Window functions have also been constructed as multiplicative or additive combinations of other windows.Bartlett–Hann window
Planck–Bessel window
A multiplied by a Kaiser window which is defined in terms of a. This hybrid window function was introduced to decrease the peak side-lobe level of the Planck-taper window while still exploiting its good asymptotic decay. It has two tunable parameters, ε from the Planck-taper and α from the Kaiser window, so it can be adjusted to fit the requirements of a given signal.Hann–Poisson window
A Hann window multiplied by a Poisson window, which has no side-lobes, in the sense that its Fourier transform drops off forever away from the main lobe. It can thus be used in hill climbing algorithms like Newton's method. The Hann–Poisson window is defined by:where α is a parameter that controls the slope of the exponential.
Other windows
Lanczos window
- used in Lanczos resampling
- for the Lanczos window, is defined as
- also known as a sinc window, because:
Comparison of windows
Other metrics that can be seen are the width of the main lobe and the peak level of the sidelobes, which respectively determine the ability to resolve comparable strength signals and disparate strength signals. The rectangular window is the best choice for the former and the worst choice for the latter. What cannot be seen from the graphs is that the rectangular window has the best noise bandwidth, which makes it a good candidate for detecting low-level sinusoids in an otherwise white noise environment. Interpolation techniques, such as zero-padding and frequency-shifting, are available to mitigate its potential scalloping loss.