http://en.wikipedia.org/wiki/Window_function
Window function
In
signal processing, a
window function (also known as an
apodization function or
tapering function[1]) is a
mathematical function that is zero-valued outside of some chosen
interval. For instance, a function that is constant inside the interval and zero elsewhere is called a
rectangular window, which describes the shape of its graphical representation. 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". Applications of window functions include
spectral analysis,
filter design, and
beamforming. In typical applications, the window functions used are non-negative smooth "bell-shaped" curves,
[2] though rectangle, triangle, and other functions can be used.
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, that is, that the function goes sufficiently rapidly toward zero.
[3]
[edit]Applications
[edit]Spectral analysis
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. Alternatively, one might be interested in their spectral content only during a certain time period.
In either case, the Fourier transform (or something similar) 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 (including rectangular) affects the spectral estimate computed by this method.
Figure 1: Zoomed view of spectral leakage
[edit]Windowing
Windowing of a simple waveform, like cos ω
t causes its Fourier transform to develop non-zero values (commonly called
spectral leakage) at frequencies other than ω. The leakage tends to be worst (highest) near ω and least at frequencies farthest from ω.
If the waveform under analysis comprises two sinusoids of different frequencies, leakage can interfere with the ability to distinguish them spectrally. If their frequencies are dissimilar and one component is weaker, then leakage from the larger component can obscure the weaker one’s presence. But if the frequencies are similar, leakage can render them unresolvableeven when the sinusoids are of equal strength.
The rectangular window has excellent resolution characteristics for sinusoids of comparable strength, but it is a poor choice for sinusoids of disparate amplitudes. This characteristic is sometimes described as low-dynamic-range.
At the other extreme of dynamic range are the windows with the poorest resolution. These high-dynamic-range low-resolution windows are also poorest in terms of sensitivity; this is, if the input waveform contains random noise close to the frequency of a sinusoid, the response to noise, compared to the sinusoid, will be higher than with a higher-resolution window. In other words, the ability to find weak sinusoids amidst the noise is diminished by a high-dynamic-range window. High-dynamic-range windows are probably 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 tradeoff between resolving comparable strength components with similar frequencies and resolving disparate strength components with dissimilar frequencies. That tradeoff occurs when the window function is chosen.
Comparison of two window functions in terms of their effects on equal-strength sinusoids with additive noise. The sinusoid at bin −20 suffers no scalloping and the one at bin +20.5 exhibits worst-case scalloping. The rectangular window produces the most scalloping but also narrower peaks and lower noise-floor. Thus a third sinusoid with amplitude −16 dB would be detectable in the rectangularly windowed spectrum, but not in the lower image.
[edit]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 (DFT). But the DFT provides only a coarse sampling of the actual
DTFT spectrum.
Figure 1shows a portion of the
DTFT for a rectangularly windowed sinusoid. The actual frequency of the sinusoid is indicated as "0" 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 happens to coincide with a DFT sample,
[note 1] and the maximum value of the spectrum is accurately measured by that sample. When it misses the maximum value by some amount [up to 1/2 bin], the measurement error is referred to as
scalloping loss(inspired by the shape of the peak). But the most interesting thing about this case is that all the other samples coincide with
nullsin the true spectrum. (The nulls are actually zero-crossings, which cannot be shown on a logarithmic scale such as this.) So in this case, the DFT creates the
illusion of no leakage. Despite the unlikely conditions of this example, it is a common misconception that visible leakage is some sort of artifact of the DFT. But since any window function causes leakage, its apparent
absence (in this contrived example) is actually the DFT artifact.
[edit]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. Think of it as redistributing the DTFT into a rectangular shape with height equal to the spectral maximum and width B.
[note 2][4] The more 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 (or
is just random noise). 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.
[edit]Processing gain
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 (SNR) 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 (B) and its potential scalloping loss. These effects partially offset, because windows with the least scalloping naturally have the most leakage.
For example, the worst possible scalloping loss from a
Blackman–
Harris window (below) is 0.83
dB, compared to 1.42 dB for a Hann window. But the noise bandwidth is larger by a factor of 2.01/1.5, which can be expressed in
decibels as
: . Therefore, even at maximum scalloping, the net processing gain of a Hann window exceeds that of a Blackman–Harris window by
: 1.27 + 0.83 − 1.42 = 0.68 dB. And when we happen to incur no scalloping (due to a fortuitous signal frequency), the Hann window is 1.27 dB more
sensitive than Blackman–Harris. In general (as mentioned earlier), this is a deterrent to using high-dynamic-range windows in low-dynamic-range applications.
[edit]Filter design
Main article:
Filter design
[edit]Window examples
Terminology:
- represents the width, in samples, of a discrete-time, symmetrical window function . When N is an odd number, the non-flat windows have a singular maximum point. When N is even, they have a double maximum.
- A common desire is for an asymmetrical window called DFT-even[7] or periodic, which has a single maximum but an even number of samples (required by the FFT algorithm). Such a window would be generated by the Matlabfunction hann(512,'periodic'), for instance. Here, that window would be generated by N=513 and discarding the 513thelement of the sequence.
- is an integer, with values 0 ≤ n ≤ N-1. Thus, these are lagged versions of functions denoted whose maximum occurs at n=0.
- Each figure label includes the corresponding noise equivalent bandwidth metric (B)[note 2], in units of DFT bins. As a guideline, windows are divided into two groups on the basis of B. One group comprises , and the other group comprises . The Gauss, Kaiser, and Poisson windows are parametric families that span both groups, though only one or two examples of each are shown.
[edit]High- and moderate-resolution windows
[edit]Rectangular window
Rectangular window; B=1.00
The rectangular window (sometimes known as the
boxcar or
Dirichlet window) is the simplest window, equivalent to replacing all but N values of a data sequence by zeros, making it appear as though the waveform suddenly turns on and off. Other windows are designed to moderate these sudden changes because discontinuities have undesirable effects on the
discrete-time Fourier transform (DTFT) and/or the algorithms that produce samples of the DTFT.
[8][9]
[edit]Hann (Hanning) window
Main article:
Hann function
- [note 3]
The ends of the cosine just touch zero, so the side-lobes roll off at about 18 dB per octave.
[10]
The Hann and Hamming windows, both of which are in the family known as "raised cosine" or "generalized Hamming" windows, are respectively named after
Julius von Hann and
Richard Hamming. This window is commonly called a "Hanning Window".
[11] [12]
[edit]Hamming window
The "raised cosine" with these particular coefficients was proposed by
Richard W. Hamming. The window is optimized to minimize the maximum (nearest) side lobe, giving it a height of about one-fifth that of the Hann window, a raised cosine with simpler coefficients.
[13][14]
- [note 3]
[edit]Tukey window
Tukey window, α=0.5; B=1.22
The Tukey window,
[7][15] also known as the
tapered cosine window, can be regarded as a cosine lobe of width
that is convolved with a rectangle window of width
At α=0 it becomes rectangular, and at α=1 it becomes a Hann window.
[edit]Cosine window
- [note 3]
- also known as sine window
- cosine window describes the shape of
[edit]Lanczos window
Sinc or Lanczos window; B=1.30
- used in Lanczos resampling
- for the Lanczos window, sinc(x) is defined as sin(πx)/(πx)
- also known as a sinc window, because:
-
- is the main lobe of a normalized sinc function
[edit]Triangular window
Triangular window; B=1.33
The end samples are positive (equal to 2/(
N+1)). This window can be seen as the convolution of two half-sized rectangular windows (for N even), giving it a main lobe width of twice the width of a regular rectangular window. The nearest lobe is −26 dB down from the main lobe.
[16]
[edit]Bartlett window
The Bartlett window is a slightly narrower variant of the triangular window, with zero weight at both ends:
[edit]Gaussian windows
Gauss window, σ=0.4; B=1.45
The frequency response of a
Gaussian is also a Gaussian (it is an
eigenfunction of the Fourier Transform). 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.
[17]
[edit]Bartlett–Hann window
Bartlett-Hann window; B=1.46
[edit]Blackman windows
Blackman window; α = 0.16; B=1.73
Blackman windows are defined as:
[note 3]
By common convention, the unqualified term
Blackman window refers to α=0.16, as this most closely approximates the "exact Blackman",
[21] with
,
, and
[22] These exact values place zeros at the third and fourth sidelobes.
[23]
[edit]Kaiser windows
Kaiser window, α =2; B=1.5
Kaiser window, α =3; B=1.8
Main article:
Kaiser window
A simple approximation of the DPSS window using Bessel functions, discovered by Jim Kaiser.
[24][25]
where
is the zero-th order modified Bessel function of the first kind, and usually
.
[edit]Low-resolution (high-dynamic-range) windows
[edit]Nuttall window, continuous first derivative
Nuttall window, continuous first derivative; B=2.02
Considering
as a real number, the function and its first
derivative are continuous everywhere.
- [note 3]
[edit]Blackman–Harris window
Blackman–Harris window; B=2.01
A generalization of the Hamming family, produced by adding more shifted sinc functions, meant to minimize side-lobe levels
[26][27]
- [note 3]
[edit]Blackman–Nuttall window
Blackman–Nuttall window; B=1.98
- [note 3]
[edit]Flat top window
- [note 3]
[edit]Other windows
[edit]Bessel window
[edit]Dolph-Chebyshev window
Minimizes the Chebyshev norm of the side-lobes for a given main lobe width.
[28]
[edit]Hann-Poisson window
A Hann window multiplied by a Poisson window, which has no side-lobes, in the sense that the frequency response drops off forever away from the main lobe. It can thus be used in
hill climbing algorithms like
Newton's method.
[29]
[edit]Exponential or Poisson window
Exponential window, τ=N/2, B=1.08
Exponential window, τ=(N/2)/(60/8.69), B=3.46
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 can be seen as the multiplication of an exponential function by a rectangular window
[30]). It is defined by
where
is the time constant of the function. The exponential function decays as
e = 2.71828 or approximately 8.69 dB per time constant.
[31] This means that for a targeted decay of
D dB over half of the window length, the time constant
is given by
[edit]Rife-Vincent window
[edit]DPSS or Slepian window
The DPSS (discrete prolate spheroidal sequence) or
Slepian window is used to maximize the energy concentration in the main lobe.
[32]
[edit]Comparison of windows
Window functions in the frequency domain ("spectral leakage")
When selecting an appropriate window function for an application, this comparison graph may be useful. The frequency axis has units of FFT "bins" when the window of length N is applied to data and a transform of length N is computed. For instance, the value at frequency ½ "bin" (third tick mark) is the response that would be measured in bins k and k+1 to a sinusoidal signal at frequency k+½. It is relative to the maximum possible response, which occurs when the signal frequency is an integer number of bins. The value at frequency ½ is referred to as the maximum scalloping loss of the window, which is one metric used to compare windows. The rectangular window is noticeably worse than the others in terms of that metric.
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 (for instance) 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 noiseenvironment. Interpolation techniques, such as
zero-padding and frequency-shifting, are available to mitigate its potential scalloping loss.
[edit]Overlapping windows
When the length of a data set to be transformed is larger than necessary to provide the desired frequency resolution, a common practice is to subdivide it into smaller sets and window them individually. To mitigate the "loss" at the edges of the window, the individual sets may overlap in time. See
Welch method of power spectral analysis and the
Modified discrete cosine transform.
[edit]Two-dimensional windows
Two-dimensional windows are utilized in, e.g., image processing. They can be constructed from one-dimensional windows in either of two forms.
[33]
The separable form,
is trivial to compute but creates corners that depend on the (arbitrary) orientation of the coordinate axes. The unseparable form,
involves the radius
. In terms of their frequency response, the separable form will be direction-dependent while the nonseparable form will be isotropic. This is akin to the result of
diffraction from rectangular vs. circular appertures, which can be visualized in terms of the product or two
sinc function vs. an
Airy function, respectively