Kaiser window

From Infogalactic: the planetary knowledge core
Jump to: navigation, search

The Kaiser window, also known as the Kaiser-Bessel window, was developed by James Kaiser at Bell Laboratories. It is a one-parameter family of window functions used for digital signal processing, and is defined by the formula ,[1][2]:



w[n] =

\left\{
\begin{matrix}

\frac{I_0\left(\pi \alpha \sqrt{1 - \left(\frac{2n}{N-1}-1\right)^2}\right)} {I_0(\pi \alpha)},
 & 0 \leq n \leq N-1 \\ \\

0 & \mbox{otherwise}, \\

\end{matrix}
\right.

where:

  • N is the length of the sequence.
  • I0 is the zeroth order Modified Bessel function of the first kind.
  • α is an arbitrary, non-negative real number that determines the shape of the window. In the frequency domain, it determines the trade-off between main-lobe width and side lobe level, which is a central decision in window design.

When N is an odd number, the peak value of the window is  \scriptstyle w[(N-1)/2] = 1,  and when N is even, the peak values are  \scriptstyle w[N/2-1]\ =\ w[N/2]\ <\ 1.

Fourier transform

Underlying the discrete sequence is this continuous-time function and its Fourier transform:

\underbrace{\frac{I_0\left(\pi \alpha \sqrt{1 - \left(\frac{2t}{(N-1)T}\right)^2}\right)} {I_0(\pi \alpha)}}_{w_0(t)}
 \quad \stackrel{\mathcal{F}}{\Longleftrightarrow}\quad
\underbrace{\frac{(N-1)T\cdot\sinh\left(\pi \sqrt{\alpha^2-\left((N-1)T\cdot f\right)^2}\right)}{I_0(\pi \alpha)\cdot\pi \sqrt{\alpha^2-\left((N-1)T\cdot f\right)^2}}}_{W_0(f)}.
File:Kaiser-Window-Spectra.jpg
Fourier transforms of Kaiser windows for typical values of parameter α

The maximum value of w0(t) is w0(0) = 1.  The w[n] sequence defined above are the samples of:

w_0\left(t-\tfrac{(N-1)T}{2}\right)\cdot \operatorname{rect}\left(\tfrac{t-(N-1)T/2}{NT}\right),    sampled at intervals of T,

and where rect() is the rectangle function.  The first null after the main lobe of W0(f) occurs at:

f = \frac{\sqrt{1+\alpha^2}}{NT},      which in units of DFT bins is just  \scriptstyle \sqrt{1+\alpha^2}.[3]

α controls the tradeoff between main-lobe width and side-lobe area.  As α increases, the main lobe of W0(f) increases in width, and the side lobes decrease in amplitude, as illustrated in the figure at right.  α = 0 corresponds to a rectangular window. For large α, the shape of the Kaiser window (in both time and frequency domain) tends to a Gaussian curve.  The Kaiser window is nearly optimal in the sense of its peak's concentration around frequency 0 (Oppenheim et al., 1999).

Kaiser-Bessel derived (KBD) window

A related window function is the Kaiser-Bessel derived (KBD) window, which is designed to be suitable for use with the modified discrete cosine transform (MDCT). The KBD window function is defined in terms of the Kaiser window of length M+1, by the formula:


d_n =

\left\{\begin{matrix}

\sqrt{\frac{\sum_{i=0}^{n} w[i]} {\sum_{i=0}^M w[i]}}
 & \mbox{if } 0 \leq n < M \\ \\

\sqrt{\frac{\sum_{i=0}^{2M-1-n} w[i]} {\sum_{i=0}^M w[i]}}
 & \mbox{if } M \leq n < 2M \\ \\

0 & \mbox{otherwise}. \\

\end{matrix}
\right.

This defines a window of length 2M, where by construction dn satisfies the Princen-Bradley condition for the MDCT (using the fact that wMn = wn): dn2 + dn + M2 = 1 (interpreting n and n + M modulo 2M). The KBD window is also symmetric in the proper manner for the MDCT: dn = d2M−1−n.

Applications

The KBD window is used in the Advanced Audio Coding digital audio format.

Notes

  1. Lua error in package.lua at line 80: module 'strict' not found. Article on FFT windows which introduced many of the key metrics used to compare windows.
  2. Lua error in package.lua at line 80: module 'strict' not found.
  3. Lua error in package.lua at line 80: module 'strict' not found.

References

  • Lua error in package.lua at line 80: module 'strict' not found.
  • Kaiser, J. F. (1966). Digital Filters. In Kuo, F. F. and Kaiser, J. F. (Eds.), System Analysis by Digital Computer, chap. 7. New York, Wiley.
  • Craig Sapp, Kaiser-Bessel Derived Window Examples and C-language Implementation, Music 422 / EE 367C: Perceptual Audio Coding (Stanford University course page, 2001).

External links