
Would you like to be notified by email when Rick Lyons publishes a new blog?
Chebyshev windows (also called Dolph-Chebyshev, or Tchebyschev windows), have several useful properties. Those windows, unlike the fixed Hanning, Hamming, or Blackman window functions, have adjustable sidelobe levels. For a given user-defined sidelobe level and window sequence length, Chebyshev windows yield the most narrow mainlobe compared to any fixed window functions.
However, for some reason, detailed descriptions of how to compute Chebyshev window sequences are not readily available in the standard DSP textbooks, and I'm not rightly sure why that is. In any case, here are the steps for one method of computing M-sample symmetrical Chebyshev window sequences:
If the desired Chebyshev window sequence length is M, then define integer N = M-1.
Define the window's sidelobe-level control parameter as γ.The window's sidelobe levels, relative to the mainlobe peak, will be -20g dB. (Thus, for example, if we desire frequency-domain maximum sidelobe levels of 60 dB below the mainlobe's peak magnitude then we set γ = 3.)
Compute parameter α as
α = cosh[cosh-1(10γ)/N].
Compute the N-length sequence A(m) using
A(m) = |α•cos(πm/N)|
where the index m is 0 ≤ m ≤ (N-1).
For each m, evaluate the Nth-degree Chebyshev polynomial whose argument is A(m) to generate a frequency-domain sequence W(m). There are many ways to evaluate Chebyshev polynomials. Due to its simplicity of notation, I suggest the following:
W(m) = (-1)m•cosh{N•cosh-1[A(m)]}, when |A(m)| > 1,
or
W(m) = (-1)m•cos{N•cos-1[A(m)]}, when |A(m)| ≤ 1.
The W(m) sequence is real-only, although our software's computational numerical errors may produce a complex-valued W(m) with very small imaginary parts. Those imaginary parts, if they exist, should be ignored. The above (-1)m factors are necessary because the frequency-domain index m is never less than zero.
Compute a preliminary time-domain window sequence, w(m), using
w(m) = real part of the N-point inverse DFT of W(m).
Replace w(0), the first w(m) time sample, with w(0)/2.
Append that new w(0) sample value to the end of the N-point w(m) sequence, w(M-1) = w(0), creating the desired M-length window sequence w(k) where time index k is 0 ≤ k ≤ (M-1).
Normalize the amplitude of w(k), to obtain a unity peak amplitude, by dividing each sample of w(k) from Step 8 by the maximum sample value in w(k).
The above procedure seems a bit involved but it's not really so bad, as the following Chebyshev window design example will show. Assume we need a 9-sample Chebyshev window function whose frequency-domain sidelobes are -60 dB below the window's mainlobe level. Given those requirements; M = 9, N = 8, γ = 3, and
a = cosh[cosh-1(103)/8] = 1.4863.
After the inverse DFT operation in the above Step 6, w(m=0)/2 = 11.91, thus we set w(k=0) = w(k=8) = 11.91. The maximum value of w(k) is 229.6323, so we divide w(k) by that value yielding our final normalized 9-sample Chebyshev window sequence listed in the rightmost column of Table 1.
Table 1 Nine-point Chebyshev window computations
m | A(m) | W(m) | w(m) | k | w(k) | w(k) norm. |
0 | 1.4863 | 1000.00 | 23.8214 | 0 | 11.910 | 0.0519 |
1 | 1.3732 | -411.49 | 52.1550 | 1 | 52.1550 | 0.2271 |
2 | 1.0510 | 6.41 | 123.5232 | 2 | 123.5232 | 0.5379 |
3 | 0.5688 | -0.13 | 197.5950 | 3 | 197.5950 | 0.8605 |
4 | 0.0000 | 1.00 | 229.6323 | 4 | 229.6323 | 1.0000 |
5 | -0.5688 | -0.13 | 197.5950 | 5 | 197.5950 | 0.8605 |
6 | -1.0510 | 6.41 | 123.5232 | 6 | 123.5232 | 0.5379 |
7 | -1.3732 | -411.49 | 52.1550 | 7 | 52.1550 | 0.2271 |
|
|
|
| 8 | 11.910 | 0.0519 |
Acknowledgement: I thank DSP guru fredric j. harris (San Diego State Univ.) for his generous personal guidance in helping me create this procedure.
Further Reading: I ran across an interesting website that discusses evaluating Chebyshev polynomials, and computing Chebyshev window sequences in conjunction with designing FIR filters. That website is the paper: "Notes of the Design of Optimal FIR Filters" by John R. Treichler at: http://www.appsig.com/products/tn070.htm
Copyright © 2008, Richard Lyons, All Rights Reserved
posted by Rick Lyons Would you like to be notified by email when Rick Lyons publishes a new blog?