Matlab for the DPSS WindowThe function dpss in the Matlab Signal Processing Tool Box4.10 can be used to compute them as follows:
w = dpss(M,alpha,1); % discrete prolate spheroidal sequencewhere is the desired window length, and can be interpreted as half of the window's time-bandwidth product in ``cycles''. Alternatively, can be interpreted as the highest bin number inside the main lobe of the window transform , when the DFT length is equal to the window length . (See the next section on the Kaiser window for more on this point.)
Some examples of DPSS windows and window transforms are given in Fig.3.29.
Kaiser Window Beta ParameterThe parameter of the Kaiser window provides a convenient continuous control over the fundamental window trade-off between side-lobe level and main-lobe width. Larger values give lower side-lobe levels, but at the price of a wider main lobe. As discussed in §5.4.1, widening the main lobe reduces frequency resolution when the window is used for spectrum analysis. As explored in Chapter 9, reducing the side lobes reduces ``channel cross talk'' in an FFT-based filter-bank implementation. The Kaiser beta parameter can be interpreted as 1/4 of the ``time-bandwidth product'' of the window in radians (seconds times radians-per-second).4.13 Sometimes the Kaiser window is parametrized by instead of . The parameter is therefore half the window's time-bandwidth product in cycles (seconds times cycles-per-second).
3.24 plots the Kaiser window and its transform for . Note how increasing causes the side-lobes to fall away from the main lobe. The curvature at the main lobe peak also decreases somewhat. 3.25 shows a plot of the Kaiser window for various values of . Note that for , the Kaiser window reduces to the rectangular window.
sinusoids was discussed in §5.5.2. This section considers this issue for the Kaiser window. Table 3.1 lists the parameter required for a Kaiser window to resolve equal-amplitude sinusoids with a frequency spacing of rad/sample [1, Table 8-9]. Recall from §3.9 that can be interpreted as half of the time-bandwidth of the window (in cycles).
3.29 shows an overlay of DPSS and Kaiser windows for some different values. In all cases, the window length was . Note how the two windows become more similar as increases. The Matlab for computing the windows is as follows:
w1 = dpss(M,alpha,1); % discrete prolate spheroidal seq. w2 = kaiser(M,alpha*pi); % corresponding kaiser windowbin number of the edge of the critically sampled window main lobe, i.e., when the DFT length equals the window length:
format long; M=17; alpha=5; abs(fft([ dpss(M,alpha,1), kaiser(M,pi*alpha)/2])) ans = 2.82707022360190 2.50908747431366 2.00652719015325 1.92930705688346 0.68469697658600 0.85272343521683 0.09415916813555 0.19546670371747 0.00311639169878 0.01773139505899 0.00000050775691 0.00022611995322 0.00000003737279 0.00000123787805 0.00000000262633 0.00000066206722 0.00000007448708 0.00000034793207 0.00000007448708 0.00000034793207 0.00000000262633 0.00000066206722 0.00000003737279 0.00000123787805 0.00000050775691 0.00022611995322 0.00311639169878 0.01773139505899 0.09415916813555 0.19546670371747 0.68469697658600 0.85272343521683 2.00652719015325 1.92930705688346Finally, Fig.3.30 shows a comparison of DPSS and Kaiser window transforms, where the DPSS window was computed using the simple method listed in §F.1.2. We see that the DPSS window has a slightly narrower main lobe and lower overall side-lobe levels, although its side lobes are higher far from the main lobe. Thus, the DPSS window has slightly better overall specifications, while Kaiser-window side lobes have a steeper roll off.
Matlab for the Dolph-Chebyshev Window
Matlab for the Hann-Poisson Window