Filter Design by window method - Rectangular, Haanning and Hamming Window
Filter
- Filter is a system that is used to modify certain frequencies relative to others.
- It passes certain frequency components and totally rejects all other.
Linear Phase FIR Filter
- The system function of an FIR filter of length N is given by:
H(z) = ∑n=0to N-1 { h[n] z-n }
- The corresponding frequency response is given by substituting the value of z with ejΩ :
H(ejΩ) = ∑n=0to N-1 { h[n] ejΩn } = H(Ω) . ejϕ(Ω)
where,
H(Ω) is zero phase frequency response
ϕ(Ω) is a phase term
- A filter is called linear phase filter if the phase term has the form of:
ϕ(Ω) = αΩ + β
Types of linear phase FIR filter
- A filter will have linear phase if its impulse response is symmetric or anti symmetric.
h[N-1-n] = (+ or -) h[n] for all n
- There are four types of linear phase FIR filters. They are as follows:
1. N odd and h[n] symmetrical (Type I)
2. N even and h[n] symmetrical (Type II)
3. N odd and h[n] asymmetrical (Type III)
4. N even and h[n] asymmetrical (Type IV)
FIR Filter Design using Windows
- FIR filter is designed by window method by simply multiplying the infinitely long impulse response by a window function.
- Let us consider the desired frequency of the digital filter be Hd(ejΩ).
So, the impulse response of the required filter is given by:
hd[n] = 1/2π . ∫-π to π {Hd(ejΩ) . (ejΩn) . dΩ}
- The impulse response obtained by the digital filter may not be of finite duration.
- An approximate FIR filter of finite duration can be obtained by truncating the impulse response. This truncation can be done with the help of a window function such that:
h[n] = hd[n] . w[n]
where,
w[n] is a window function.
Rectangular Window
- Rectangular window is a window function having magnitude 1 for the range of n = 0 to M-1.
- It is denoted by wR[n].
- Mathematically,
wR[n] = 1 for 0 <= n <= M-1 = 0 elsewhere
Let us consider the fourier transform of rectangular window as: WR(w) = ∑n = 0 to M-1 { wR(n) . e-jwn } = ∑n = 0 to M-1 { e-jwn }
From the standard series relation:
WR(w)
= [e-jw*0 - e-jwM ] / [ 1 - a ]
= [ 1- e-jwM ] / [ 1 - e-jw ]
= [ {e-jwM/2 . ejwM/2} - {e-jwM/2 . e-jwM/2} ] / [ {e-jw/2 . ejw/2} - {e-jw/2 . e-jw/2} ]
= [ e-jwM/2 {ejwM/2 - e-jwM/2} ] / [ e-jw/2 {ejw/2 - e-jw/2} ]
= [ e-jw{(M-1)/2} ] * [ sin(wM/2) ] / [ sin(w/2) ]
Comparing with polar form :
The magnitude response of rectangular window is given by:
| WR(w) | = | [ sin(wM/2) ] / [ sin(w/2) ] |
The magnitude response for M = 11 is shown in figure below:
Problems with Rectangular Window:
- With increase in window length, width of main lobe in frequency response decreases while side lobes are unaffected.
- Large side lobes in W(Ω) cause undesirable ringing in the filter designed.
Hamming Window
- Hamming window is given by:
wH(n) = 0.54 - 0.46 cos (2πn / (M-1)) for n = 0, 1, 2, .......... , M-1 = 0 ; elsewhere
Hanning Window
- Hanning window is given by:
wHN(n) = 1/2 [ 1 - cos (2πn / (M-1)) ] for n = 0, 1, 2, .........., M-1 = 0 ; elsewhere
Filter Design by Kaiser Window
- In other windows, width of main lobe and attenuation of side lobes depend only upon window length M.
- Kaiser window allows separate control of these factors.
- Kaiser window is defined as:
wk(n) = [ Io { β [ 1 - ((n-α)/α)2]1/2} ] / [ Io(β) ] for 0 <= n <= M = 0 ; elsewhere
where, Io() is 0th order modified Bessel function of first kind.
α = M/2
β is called shape parameter
Design Steps
1. Get desired frequency response Hd(w)
2. Take inverse fourier transform of Hd(w) to obtain hd[n]
3. Decide length of FIR filter
4. Multiply hd[n] by selected window function to get h[n].
Q) Design linear phase filter using Kaiser window to meet the given specification.
The given specification is: 0.99 <= | H(ejw | <= 1.01 ; for 0 >= w >= 0.19π | H(ejw | <= 0.01 ; for 0.21π <= w <= π
From the above specification, we get:
δp = 0.01
δs = 0.01
wp = 0.19π
ws = 0.21π
Now,
Δw = ws - wp = 0.02π
Minimum value of ripple (δ) = min(δp, δs) = 0.01
Attenuation in dB is:
A = -20 log10δ = 40 dB
Cut off frequency is:
wc = { ws + wp } / 2 = 0.2π
Now,
As, 21 <= A <= 50; the value of β is given by:
β = 0.5842 (A-21)0.4 + 0.07886 (A-21) = 3.395
Window width is calculated as:
M = (A-8) / 2.285Δw = 222.88 = 223
The value of α is given by:
α = M / 2 = 111.5
Now, the Kaiser window is defined by:
wk(n) = [ Io { β [ 1 - ((n-α)/α)2]1/2} ] / [ Io(β) ] for 0 <= n <= M
= 0 ; elsewhere
So,
wk(n) = [ Io { 3.395 [ 1 - ((n-111.5)/111.5)2]1/2} ] / [ Io(3.395) ] for 0 <= n <= M
= 0 ; elsewhere
Now,
The low pass filter has desired frequency response of :
Hd(w) = e-jw((M-1)/2) ; for -wc <= w <= wc
= 0 ; elsewhere
Taking inverse fourier transform:
hd(w) = sin[wc (n - (M-1)/2)] / [ π (n - (M-1)/2) ] ; for n != (M-1) / 2
= wc / π ; for n = (M-1) / 2
As the desired filter length is M+1;
hd(w) = sin[wc (n - M/2)] / [ π (n - M/2) ] ; for n != M / 2
= wc / π ; for n = M / 2
As M/2 is not a integer;
hd(w) = sin[wc (n - M/2)] / [ π (n - M/2) ]
= sin[0.02π (n - 111.5)] / [ π (n - 111.5) ] ; for 0 <= n <= M
Hence, the required filter design is obtained by:
h[n] = hd(n) . wn
Q) Design FIR filter having pass band edge frequency w<sub>p</sub> = 0.03π, w<sub>s</sub> = 0.05π and α<sub>s</sub> = 40 dB using appropriate window function.
Here, αs = 40 dB which is close to 44 dB (Hanning window). So, we choose Hanning window for the design of the given FIR filter.
Given:
wp = 0.03π
ws = 0.05π
For Hanning window, width of main lobe = 8π / M = k (2π / M )
So, k = 4
And,
M = k . [ 2π / { ws - wp } ] = 400
The Hanning window function is given by:
wHN(n) = 1/2 [ 1 - cos (2πn / 399) ] for n = 0, 1, 2, .........., M-1
= 0 ; elsewhere
The desired frequency response of LPF is given by:
Hd(w) = e-jw((M-1)/2) ; for -wc <= w <= wc
= 0 ; elsewhere
Taking the inverse fourier transform:
hd(w) = sin[wc (n - (M-1)/2)] / [ π (n - (M-1)/2) ] ; for n != (M-1) / 2
= wc / π ; for n = (M-1) / 2
Hence, the required filter design is obtained by:
h[n] = hd(n) . wHN(n)
Filter Design by Frequency Sampling Method
- The desired frequency response is specified as samples at a set of equally spaced frequencies.
- h(n) = 1/N ∑n = 0 to M-1 { H(k + α) . e-j 2π(k+α) n/M } ; n = 0, 1, ....., M-1
Filter Design by Optimum Approximation
- Optimal filter is a filter that is designed to spread the weighted approximation error between the desired frequency response and the actual frequency response across the passband and stopband of the filter.
- The main aim is to reduce the maximum error.
- The result has ripples in both passband and stopband.
Remez Exchange Algorithm
Definition:
- Remez exchange algorithm is an iterative algorithm to determine the set of filter parameters as required by alternation theorem.
Flowchart:
- The flow chart for Remez Exchange Algorithm is shown in given figure:
Derivation:
The real valued frequency response can be written as:
Hr(Ω) = Q(Ω) . P(Ω) where, P(Ω) = ∑k = 0 to L {α(k) . cos Ωk}
Q(Ω) = 1 ; case 1
= cos Ω/2 ; case 2
= sin Ω ; case 3
= sin Ω/2 ; case 4
αk are filter parameters.
Let the desired real valued frequency response be Hdr(Ω).
The error between desired and designed frequency response is controlled with weighted error function as:
E(Ω) = W(Ω) [ Hdr(Ω) - Hr(Ω) ]
The weight function is normalized as:
W(Ω) = δ2 / δ1 ; Ω in pass band = 1 ; Ω in stop band
Now,
E(Ω) = W(Ω) Q(Ω) [ Hdr(Ω) / Q(Ω) - P(Ω) ]
Let W'(Ω) = W(Ω) . Q(Ω) H'dr(Ω) = Hdr(Ω) / Q(Ω)
So,
E(Ω) = W'(Ω) [ H'dr(Ω) - P(Ω) ]
Now,
The filter parameters should be obtained such that:
minover {α(k)} [ maxw ∈ S { |E(Ω)| }] = minover {α(k)} [ maxw ∈ S { |W'(Ω) [ H'dr(Ω) - P(Ω) ]| }]
Ⓒ Copyright ESign Technology 2019. A Product of ESign Technology. All Rights Reserved.