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: