FIR Window Filters
General Information
The FIR filters Rectangular, Bartlett, Hanning, Hamming, Blackman, Blackman-Harris, Kaiser, and Dolph-Chebyshev are all Window FIR filters. The name "Window" comes from the fact that these filters are created by scaling a sinc (SIN(X)/X) pattern with a window to produce the desired frequency effect. All FilterSolutions FIR Window filters create the same sinc pattern, which is the Fourier Transform of a square pulse. The FIR selection then determines the window to use to scale the sinc pattern and thereby create the desired filter. If you look closely at the windows shown below, they are all similar, but unique. The Kaiser and Dolph-Chebyshev are adjustable. It is the uniqueness of each window that creates a unique FIR Window filter.
Types of Windows
|
Rectangular |
Constant, Essentially no window
|
|
Bartlett |
Triangular window W(n) = 1.-2*abs(n-N/2.)/(N+2)
|
|
Hanning |
W(n) = [1-COS(2PI * n/(N-1))]/2
|
|
Hamming |
W(n) = .54 - .46*COS(2PI * n/(N-1))
|
|
Blackman |
W(n) = .42 - .50*COS(2PI * n/(N-1)) + .08*COS(4PI * n/(N-1))
|
|
Blackman-Harris |
W(n) = .35875 .48829*COS(2PI * n/(N-1)) + .14128*COS(4PI * n/(N-1)) - .01168*COS(6PI * n/(N-1))
|
|
Kaiser |
Let: Ka = Kaiser Constant Na = (N-1)/2 Wa = Ka/Na W(n) = Io[Wa*SQRT(Na**2 - (n-Na)**2)] / Io(Ka)
Where Io() is the zeroth order Hyperbolic Bessel function
|
|
Dolph-Cheby |
Let: X = desired stop band attenuation in dB B = COSH[(1/N)*ACOSH(10**[X/20])] Dn = COS[ N*ACOS( B*COS[ PI*k/N] ) ] Dd = COSH[ N*ACOSH( B ) ] W(k) = [(-1)**k ] * (Dn/Dd) W(n) = FIr[W(k)]
Where: FIr[] is the real part of the Inverse Fourier Transform
The argument of the ACOS may exceed unity. Therefore, complex arithmetic applies for all Dolph-Cheby calculations |
Illustration of FIR Construction
This is a sinc pattern for the 29 tap low pass filter below. It is used in the initial step of creating the FIR filter. The number of taps is the order of the filter plus 1 to account for the 0 term. The value of the taps at the sinc curve is scaled by the window and then is installed directly into the Z transform numerator.
The frequency response of the Sinc pulse Z transform appears in the picture below. Note the constant group delay.
A typical window that scales the sinc pulse looks like this:
A window has the effect of improving the stop band performance as shown below: