Digital Signal Processing
IIR Filters design with BZT and
classical analog filters
Example
Design and realize a digital low-pass filter
using the bilinear transformation method to
satisfy the following characteristics:
Attenuation of 3.01 dB at cutoff frequency of 500Hz
Stopband attenuation of at least 15dB at 750Hz
Monotonic stopband and passband
The filter would be used in an A/D-H(z)-D/A
structure with a sampling rate of 2000
samples/sec.
Digital Spec
H(z)
Frequency
Domain
Transformation
H(s)
Given the digital lowpass filter wp,ws,Rp and
As, we want to determine H(z) by first designing an
equivalent analog filter and then mapping it into the desired
digital filter. Design procedure for Impulse Invariant:
specifications
1. Choose and determine the analog frequencies:
p=wp/T, s=ws/T
2. Design an filter Ha(s) using the specifications with one
of the three prototypes of the previous section.
3. Using partial fraction expansion, expand Ha(s) into
4. Now transform analog poles {pk} into digital poles {e
pkT
} to
obtain the digital filter
1
) (
1 1
1
) (
T
anal og
N
k
k
k
a
p s
R
s H
N
k T p
k
z e
R
z H
k
[ [
=
Given the digital filter specifications wp,ws,Rp and As, we
want to determine H(z). The BZT design steps in this
procedure are the following:
1. Choose a value for . this is arbitrary, and we may set T = 1.
2. Prewarp the cutoff freq.s wp and ws; that is calculate p and
s using:
p=2/T*tan(wp/2), s=2/T*tan(ws/2)
3. Design an analog filter Ha(s) to meet the specifications.
4. Finally set
And simplify to obtain H(z) as a rational function in z
-1
1
1
1
1 2
) (
T
z
z
T
H z H
a
[
[
[ [
Butterworth Filter
1 2 , , 1 , 0 , ) ( ) 1 (
) (
) (
) (
) (
1
1
) ( ) (
) 1 2 (
2
1
2
2 2
2
2
2 2
1
2
10 /
2
2
10 /
1
10
10 /
10 /
10
) 1 10 (
,
) 1 10 (
) / ( log 2
)] 1 10 /( ) 1 10 [( log
,
_
+
+ +
1
1
1
1
N k e j p
p s
j
j s
j
j
s
s H s H
N k j
c c k
N
k
k
N
c
N
c
N
N
c
N
c
a a
N N
N
A
s
c
N
R
p
c
s p
A
R
s p
s
p
or
N
L
p
Butterworth Polynomials and normalized
low-pass analog Butterworth Filter
Frequency Transformation in
Frequency Domain
Low pass Design with Matlab
Matlab Function:
[bz az]= impinvar (b,a,fs )
[bz az]= bilinear(b,a,fs);
[b,a]=butter(N,wn)
[b,a]=cheby1(N,Rp,wn)
[b,a]=cheby2(N,As,wn)
[b,a]=ellip(N,Rp,As,wn)
Matlab function ,
and can provide filter
order N and filter order wn.
buttord, cheby1ord
cheby2ord ellipord