Title: DSP-CIS Chapter-4: FIR
1DSP-CISChapter-4 FIR IIR Filter Design
- Marc Moonen
- Dept. E.E./ESAT, KU Leuven
- marc.moonen_at_esat.kuleuven.be
- www.esat.kuleuven.be/scd/
2Filter Design/Realization
- Step-1 define filter specs
- (pass-band, stop-band, optimization
criterion,) - Step-2 derive optimal transfer function
- FIR or IIR design
- Step-3 filter realization (block scheme/flow
graph) - direct form realizations, lattice
realizations, - Step-4 filter implementation (software/hardware)
- finite word-length issues,
- question implemented filter designed
filter ? - You cant always get what you want
-Jagger/Richards (?)
Chapter-4
Chapter-5
Chapter-6
3Step-1 Filter Specification
4Chapter-4 FIR IIR Filter Design
- FIR filters
- Linear-phase FIR filters
- FIR design by optimization
- Weighted least-squares design, Minimax
design - FIR design in practice
- Windows, Equiripple design, Software
(Matlab,) - IIR filters
- Poles and Zeros
- IIR design by optimization
- Weighted least-squares design, Minimax
design - IIR design in practice
- Analog IIR design Butterworth/Chebyshev/ell
iptic - Analog-gtdigital impulse invariant,
bilinear transform, - Software (Matlab)
5FIR Filters
- FIR filter finite impulse response filter
-
- Also known as moving average filters (MA)
- L poles at the origin z0 (hence guaranteed
stability) - L zeros (zeros of B(z)), all zero filters
- corresponds to difference equation
- impulse response
6Linear Phase FIR Filters
- Non-causal zero-phase filters
- example symmetric impulse response (length
2.Lo1) - h-Lo,.h-1, h0 ,h1,...,hLo
- hkh-k, k1..Lo
-
- frequency response is
-
- i.e. real-valued (zero-phase) transfer
function
7Linear Phase FIR Filters
- Causal linear-phase filters non-causal
zero-phase delay - example symmetric impulse response L even
- h0,h1,.,hL
- L2.Lo
- hkhL-k, k0..L
- frequency response is
-
- i.e. causal implementation of
zero-phase filter, by - introducing (group) delay
k
N
0
8Linear Phase FIR Filters
- Type-1 Type-2 Type-3
Type-4 - N2Loeven N2Lo1odd N2Loeven
N2Lo1odd - symmetric symmetric
anti-symmetric anti-symmetric - hkhN-k hkhN-k
hk-hN-k hk-hN-k -
-
- zero at
zero at zero at - LP/HP/BP LP/BP BP
HP - PS modulating Type-2 with 1,-1,1,-1,.. gives
Type-4 (LP-gtHP) - PS modulating Type-4 with 1,-1,1,-1,.. gives
Type-2 (HP-gtLP) - PS modulating Type-1 with 1,-1,1,-1,.. gives
Type-1 (LPlt-gtHP) - PS modulating Type-3 with 1,-1,1,-1,.. gives
Type-3 (BPlt-gtBP) - PS IIR filters can NEVER have linear-phase
property ! (proof see literature)
9FIR Filter Design by Optimization
- (I) Weighted Least Squares Design
- select one of the basic forms that yield linear
phase - e.g. Type-1
- specify desired frequency response (LP,HP,BP,)
-
- optimization criterion is
-
- where is a weighting function
10FIR Filter Design by Optimization
- this is equivalent to
- Quadratic Optimization problem
-
11FIR Filter Design by Optimization
- Example Low-pass design
-
- optimization function is
- i.e.
12FIR Filter Design by Optimization
- a simpler problem is obtained by replacing the
F(..) by -
- where the wis are a set of (n) selected
sample frequencies - This leads to an equivalent (discretized)
quadratic optimization function -
- simple
- - - - unpredictable behavior in between
sample freqs.
Compare to p.10
13FIR Filter Design by Optimization
- This is often supplemented with additional
constraints, e.g. for pass-band and stop-band
ripple control -
- The resulting optimization problem is
- minimize
(quadratic function) -
- subject to (pass-band
constraints) -
(stop-band constraints) - Quadratic Programming problem
14FIR Filter Design by Optimization
- (II) Minimax Design
- select one of the basic forms that yield linear
phase - e.g. Type-1
- specify desired frequency response (LP,HP,BP,)
-
- optimization criterion is
- where is a weighting function
- shown to be equivalent to a semi-definite
programming problem for which efficient
algorithms/software is available.
15FIR Filter Design by Optimization
- Conclusion
- (I) weighted least squares design
- (II) minimax design
- provide general framework, procedures to
translate filter design problems into standard
optimization problems - In practice (and in textbooks)
- emphasis on specific (ad-hoc) procedures
- - filter design based on windows
- - equiripple design
16FIR Filter Design using Windows
- Example Low-pass filter design
- ideal low-pass filter is
- hence ideal time-domain impulse response is
- truncate hdk to L1 samples (L even)
- add (group) delay to turn into causal filter
17FIR Filter Design using Windows
- Example Low-pass filter design (continued)
- PS it can be shown (use Parcevals theorem)
that the filter obtained by such time-domain
truncation is also obtained by using a weighted
least-squares design procedure with the given Hd,
and weighting function - truncation corresponds to applying a rectangular
window - simple procedure (also for HP,BP,)
- - - - truncation in time-domain results in
Gibbs effect in frequency domain, i.e. large
ripple in pass-band and stop-band (at band edge
discontinuity), which cannot be reduced by
increasing the filter order L.
18FIR Filter Design using Windows
- Remedy apply windows other than rectangular
window - time-domain multiplication with a window function
wk corresponds to frequency domain convolution
with W(z) - candidate windows Han, Hamming, Blackman,
Kaiser,. (see textbooks, see DSP-I) - window choice/design trade-off between
side-lobe levels (define peak pass-/stop-band
ripple) and width main-lobe (defines transition
bandwidth)
19FIR Equiripple Design
- Starting point is minimax criterion, e.g.
- Based on theory of Chebyshev approximation and
the alternation theorem, which (roughly) states
that the optimal ds are such that the max
(maximum weighted approximation error) is
obtained at Lo2 extremal frequencies - that hence will exhibit the same maximum
ripple (equiripple) - Iterative procedure for computing extremal
frequencies, etc. (Remez exchange algorithm,
Parks-McClellan algorithm) - Very flexible, etc., available in many software
packages - Details omitted here (see textbooks)
20FIR Filter Design Software
- FIR Filter design abundantly available in
commercial software - Matlab
- bfir1(L,Wn,type,window), windowed linear-phase
FIR design, L is filter order, Wn defines
band-edges, type is high,stop, - bfir2(L,f,m,window), windowed FIR design
based on inverse Fourier transform with frequency
points f and corresponding magnitude response m - bremez(L,f,m), equiripple linear-phase FIR
design with Parks-McClellan (Remez exchange)
algorithm
21FIR Filter Design Matlab Examples
1/10
filter_order-10
22FIR Filter Design Matlab Examples
2/10
filter_order-40
23FIR Filter Design Matlab Examples
3/10
filter_order-70
24FIR Filter Design Matlab Examples
4/10
filter_order-100
25FIR Filter Design Matlab Examples
- Full Matlab Code (ignore)
-
- See help fir1
- Bandpass filter
- B FIR1(N,Wn,'bandpass')
- Wn W1 W2 upper and lower cut-off
frequencies - W1 0.25 1/4pi
- W2 0.75 3/4pi
- for filter_order1030100
- Impulse response
- b fir1(filter_order,W1 W2,'bandpass')
- Frequency response
- H Wfreqz(b)
- Plotting
- subplot(211)
- plot(W,db(abs(H)))hold on
- set(gca,'XTick',0pi/2pi)
- set(gca,'XTickLabel','0','pi/2','pi')
- title('FIR filter design')
5/10
26FIR Filter Design Matlab Examples
6/10
27FIR Filter Design Matlab Examples
7/10
28FIR Filter Design Matlab Examples
8/10
29FIR Filter Design Matlab Examples
9/10
30FIR Filter Design Matlab Examples
- Full Matlab Code (ignore)
-
-
- See help fir1
- Bandpass filter
- B FIR1(N,Wn,'bandpass',win)
- Wn W1 W2 upper and lower cut-off
frequencies - win windown type
- W1 0.25 1/4pi
- W2 0.75 3/4pi
- filter_order 50
- win1 triang(filter_order1)
- win2 rectwin(filter_order1)
- win3 hamming(filter_order1)
- win4 blackman(filter_order1)
-
- b1 fir1(filter_order,W1 W2,'bandpass',win1)
- b2 fir1(filter_order,W1 W2,'bandpass',win2)
- b3 fir1(filter_order,W1 W2,'bandpass',win3)
10/10
31IIR filters
- Rational transfer function
-
-
- L poles (zeros of A(z)) , L zeros (zeros of
B(z)) - infinitely long impulse response
- stable iff poles lie inside the unit circle
- corresponds to difference equation
- also known as ARMA (autoregressive-moving
average)
32IIR Filter Design
-
- low-order filters can produce sharp frequency
response - low computational cost
- - - -
- design more difficult
- stability should be checked/guaranteed
- phase response not easily controlled
- (e.g. no linear-phase IIR filters)
- coefficient sensitivity, quantization noise, etc.
can be a problem (see Chapter-6)
33IIR filters
- Frequency response versus pole-zero location
- (cfr. frequency response is z-transform
evaluated on the unit circle) - Example-1
- Low-pass filter
- poles at
pole near unit-circle introduces peak in
frequency response hence pass-band can be set
by pole placement
34IIR filters
- Frequency response versus pole-zero location
-
- Example-2
- Low-pass filter
- poles at
- zeros at
zero near (or on) unit-circle introduces dip
(or transmision zero) in freq. response hence
stop-band can be emphasized by zero placement
35IIR Filter Design by Optimization
- (I) Weighted Least Squares Design
- IIR filter transfer function is
- specify desired frequency response (LP,HP,BP,)
- optimization criterion is
- where is a weighting function
- stability constraint
-
36IIR Filter Design by Optimization
- (II) Minimax Design
- IIR filter transfer function is
- specify desired frequency response (LP,HP,BP,)
- optimization criterion is
- where is a weighting function
- stability constraint
-
37IIR Filter Design by Optimization
- These optimization problems are significantly
more - difficult than those for the FIR design case
- Problem-1 presence of denominator polynomial
leads to non-linear (non-quadratic) optimization - Problem-2 stability constraint
- (zeros of a high-order polynomial are
related to the polynomials - coefficients in a highly non-linear manner)
- Solutions based on alternative stability
constraints, that e.g. are affine functions of
the filter coefficients, etc - Topic of ongoing research, details omitted here
38IIR Filter Design by Optimization
- Conclusion
- (I) weighted least squares design
- (II) minimax design
- provide general framework, procedures to
translate filter design problems into
standard optimization problems - In practice (and in textbooks)
- emphasis on specific (ad-hoc) procedures
- - IIR filter design based analog filter
design (s-domain - design) and analog-gtdigital conversion
- - IIR filter design by modeling direct
z-domain design - (Pade approximation, Prony, etc.)
39IIR Filter Design Software
- IIR filter design considerably more complicated
than FIR design (stability, phase response,
etc..) - (Fortunately) IIR Filter design abundantly
available in commercial software - Matlab
- b,abutter/cheby1/cheby2/ellip(L,,Wn),
- IIR LP/HP/BP/BS design based on analog
prototypes, pre-warping, - bilinear transform,
- immediately gives H(z) ?
- analog prototypes, transforms, can also be
called individually - filter order estimation tool
- etc...
40IIR Filter Design Matlab Examples
1/5
Butterworth 2nd order
41IIR Filter Design Matlab Examples
2/5
Butterworth 10th order
42IIR Filter Design Matlab Examples
3/5
Butterworth 18th order
43IIR Filter Design Matlab Examples
4/5
Butterworth 26th order
44IIR Filter Design Matlab Examples
- Full Matlab Code (ignore)
-
- See help butter
- Bandpass filter
- B,A butter(filter_order,W1
W2,'bandpass') - Wn W1 W2 upper and lower cut-off
frequencies - W1 0.25 1/4pi
- W2 0.75 3/4pi
- for filter_order2828
- Coefficients response
- B,A butter(filter_order,W1
W2,'bandpass') - Frequency response
- H W freqz(B,A)
- Impulse response
- h filter(B,A,zeros(2,1)1zeros(100,1)
) - Plotting
- subplot(211)
- plot(W,db(abs(H)))hold on
- set(gca,'XTick',0pi/2pi)
5/5