Topic 8: Filter Design: IIR ELEN E4810: Digital Signal Processing 1.

advertisement
ELEN E4810: Digital Signal Processing
Topic 8:
Filter Design: IIR
1. Filter Design Specifications
2. Analog Filter Design
3. Digital Filters from Analog Prototypes
Dan Ellis
2013-11-11
1
1. Filter Design Specifications
The filter design process:
performance
Analysis constraints
• magnitude response
• phase response
• cost/complexity
Dan Ellis
Design
• FIR/IIR
• subtype
• order
2013-11-11
G(z)
Implement
transfer
function
• platform
• structure
• ...
2
Solution
Problem

Performance Constraints

.. in terms of magnitude response:
\G(ejW)\
0
gain / dB
-10
Passband
-20
-30
-40
0
0.1
0.2
passband
edge
frequency
Dan Ellis
minimum
optimal
stopband
filter
attenuation
will touch
here
Stopband
transition band
passband
ripple
0.3
0.4
0.5
stopband
edge
frequency
2013-11-11
0.6
0.7
0.8
0.9
P
frequencyW
3
Performance Constraints

“Best” filter:
smallest
Passband Ripple
narrowest
Transition Band
greatest
Minimum SB Attenuation


improving one usually worsens others
But: increasing filter order (i.e. cost)
can improve all three measures
Dan Ellis
2013-11-11
4
Passband Ripple
\G(ejW)\
0
-10
-20
-30
Passband
detail
\G(ejW)\
-40
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
√E
PB ripple
parameter


Assume peak passband gain = 1
then minimum passband gain =
Or, ripple  max = 20 log10 1+ 
Dan Ellis
2013-11-11
2
1
1+  2
dB
5
P
Stopband Ripple
\G(ejW)\
0
-10
-20
-30
Stopband
detail
-40
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
1
A
SB ripple
parameter
0
freqW
Peak passband gain is A× larger than
peak stopband gain
 Hence, minimum stopband attenuation
 s = 20 log10 A1 = 20 log10 A dB

Dan Ellis
2013-11-11
6
0.9
P
Filter Type Choice: FIR vs. IIR
FIR
IIR
No feedback
(just zeros)
 Always stable
 Can be
linear phase
Feedback
(poles & zeros)
 May be unstable
 Difficult to control
phase

BUT

High order
(20-2000)
 Unrelated to
continuoustime filtering
Typ. < 1/10th
order of FIR (4-20)
 Derive from
analog prototype

Dan Ellis

2013-11-11
7
FIR vs. IIR

If you care about computational cost
→ use low-complexity IIR
(computation no object → linear phase FIR)

If you care about phase response
→ use linear-phase FIR
(phase unimportant → go with simple IIR)
Dan Ellis
2013-11-11
8
IIR Filter Design

IIR filters are directly related to
analog filters (continuous time)


via a mapping of H(s) (CT) to H(z) (DT) that
preserves many properties
Analog filter design is sophisticated
signal processing research since 1940s
→ Design IIR filters via analog prototype
 need to learn some CT filter design

Dan Ellis
2013-11-11
9
2. Analog Filter Design
Decades of analysis of transistor-based
filters – sophisticated, well understood
 Basic choices:

ripples vs. flatness in stop and/or passband
 more ripples → narrower transition band

Dan Ellis
Family
PassBand
StopBand
Butterworth
Chebyshev I
Chebyshev II
Elliptical
flat
ripples
flat
ripples
flat
flat
ripples
ripples
2013-11-11
10
CT Transfer Functions

Analog systems: s-transform (Laplace)

frequency response still from a polynomial
Continuous-time
st
Transform H a s = ha t e dt
( )  ()
Discrete-time
H d (z ) =  hd [n] z
( )
H a ( j)
Frequency
response
Hd e
Im{s}
Pole/zero
diagram
ej!
Re{s}
Dan Ellis
j
Im{z}
j≠
stable
poles
n
s-plane
s scales freq
2013-11-11
stable
poles
1
Re{z}
z-plane
11
Butterworth Filters
Maximally flat in pass and stop bands
 Magnitude
filter
1
2
order
response (LP): H a ( j) =
2N
N
1+ c


≠ ≪ ≠c,
|Ha(j≠)|2 →1
\Ha(j7)\
( )
0.8
0.6
N
0.4
≠ = ≠c,
|Ha(j≠)|2 = 1/2
0.2
0
3dB point
Dan Ellis
1
N
0
1
2
3
7/7c
analog freq
2013-11-11
12
Butterworth Filters
≠ ≫ ≠c, |Ha(j≠)|2 →(≠c/≠)2N
\Ha(j7)\/ dB

6N dB/oct
rolloff
Log-log
magnitude
response
0
N
-10
slope →
-6N dB/oct
-20
-30
-40
-50
N
-60
-70
-1
10
0
10
analog freq
n

7/7c
1
10
d
2
H a ( j) = 0
flat →
n
d
@ ≠ = 0 for n = 1 .. 2N-1
Dan Ellis
2013-11-11
13
Butterworth Filters

How to meet design specifications?
√E
\Ha(j7)\
1
1+
( )
p
c

2N
1
A

1+(
7
)
 s 2N
c
7p
7s

k1 =
2
A 1

k=
=“discrimination”, ≪ 1
Dan Ellis
1
1+2
2013-11-11

1
A2
Design
Equation
N
( )
2
A
1
1 log10  2
2 log10 s
p
( )
p
s
=“selectivity”, < 1
14
Butterworth Filters
1

H a ( j) =

Traditionally, look it up in a table
2
1+ (c )2 N
... but what is Ha(s)?
calculate N → normalized filter with ΩΩc = 1
 scale all coefficients for desired ΩΩ
c

1
 In fact, H a ( s ) =
i(s  pi )
where pi =  c e
i1
j N +2
2N
i = 1..N
Im{s}
×
2013-11-11
Re{s}
×
odd-indexed uniform divisions of c-radius circle
Dan Ellis
× ΩΩc
×
 s 2N
  = 1
 c 
s-plane
15
Butterworth Example
0 dB
= -1 dB
√E
Design a Butterworth
filter with 1 dB cutoff
at 1kHz and a
minimum attenuation
= -40 dB
of 40 dB at 5 kHz
7
A
1kHz
5kHz
7p
7s
1
2
1dB = 20 log10
  = 0.259
2
1+ 
9999
log
1
40dB = 20 log10 A  A = 100
N  21 10 0.259
log10 5
s
=5
p
 N = 4  3.28
Dan Ellis
2013-11-11
16
Butterworth Example
Order N = 4 will satisfy constraints;
What are ΩΩc and filter coefficients?



from a table, ΩΩ-1dB = 0.845 when ΩΩc = 1
ΩΩc = 1000/0.845 = 1.184 kHz
from a table, get normalized coefficients for
N = 4, scale by 1184·2º
Or, use Matlab:
[B,A] =
butter(N,Wc,’s’);
Dan Ellis
2013-11-11
gain / dB

0
-10
-20
-30
-40
-50
-60
0
2000
4000
6000
freq / Hz
17
M
Chebyshev I Filter
Equiripple in passband (flat in stopband)
→ minimize maximum error
1
|H(j )| =
1 + 2 TN2 (
2
gain / dB

(Чебышёв)
ripple
depth
0
N -10
)
p
-20
N -30
-40
Chebyshev
polynomial
of order N
Dan Ellis
TN ( ) =
0
0.5
1
cos(N cos 1 )
cosh(N cosh 1 )
2013-11-11
1.5
7
2
| | 1
| |>1
18
Chebyshev I Filter
TN ( ) =
|H(j )|2 =
cos(N cos 1 )
cosh(N cosh 1 )
1
1 + 2 TN2 (
| | 1
| |>1
T (7)
5
2
T5 ( )
1
0
-1
-2
T25(7)
3
T52 (
)
2
1
0
-1
1
1 + 0.1T52 ( )
Dan Ellis
1/(1+0.1 T25(7))
1
0.5
0
-2
-1.5
-1
-0.5
0
2013-11-11
0.5
1
1.5
7
2
19
p
)
Chebyshev I Filter

Design procedure:
desired passband ripple → "
 min. stopband atten., ΩΩ , ΩΩ → N :
p
s

1
1
1
=
=
2
2 2 s
A 1+  TN ( p ) 1+  2 cosh N cosh 1  s
p
N
Dan Ellis
cosh
1
(
A 2 1

( )
1  s
cosh  p
[
)
(
)]
1/k1, discrimination
1/k,
selectivity
2013-11-11
cosh-1 grows
slower than
log10
20
2
Chebyshev I Filter

What is Ha(s)?
complicated, get from a table
 .. or from Matlab cheby1(N,r,Wp,’s’)
 all-pole; can inspect them:
Im{s}

1
0.5
0
-0.5
-1
-1
-0.5
0
0.5
1
Re{s}
..like squashed-in Butterworth (why?)
Dan Ellis
2013-11-11
21
Chebyshev II Filter
Flat in passband, equiripple in stopband
H a ( j) =
2
constant
~1/TN(1/ΩΩ)
1
2

T ( s ) 
2  N p 
1+ 
 TN (s ) 
 

gain / dB

0
N -10
-20
N -30
peak of
stopband
ripples
-40
-50
-60
0
0.5
1
1.5
7
2
zeros on imaginary axis
Filter has poles and zeros (some )
 Complicated pole/zero pattern

Dan Ellis
2013-11-11
22
Elliptical (Cauer) Filters
Ripples in both passband and stopband
H a ( j)
2
1
=
1+  2 RN2 (p )
function; satisfies
RN(ΩΩ-1) = RN(ΩΩ)-1
zeros for ΩΩ<1 → poles for ΩΩ>1

gain / dB

PB
ripple
depth
0
-10
-20
N N -30
peak
SB
ripples
-40
-50
-60
0
0.5
1
1.5
very narrow
transition band
7
2
Complicated; not even closed form for Ν
Dan Ellis
2013-11-11
23
Analog Filter Types Summary
Chebyshev I
gain / dB
gain / dB
Butterworth
0
-10
-20
-30
-40
-20
-30
-50
c
0
0.5
1
1.5
-60
2
0
-10
-20
-30
A
-40
Dan Ellis
0.5
1
0.5
1
1.5
2
r
-10
1.5
2
r = 3 dB
A = 40 dB
0
-20
-30
A
-50
s
0
0
-40
-50
N=6
p
Elliptical
gain / dB
gain / dB
Chebyshev II
-60
r
-10
-40
-50
-60
0
-60
p
0
2013-11-11
0.5
1
1.5
2
24
Analog Filter Transformations


lowpass
prototype

All filters types shown as lowpass;
other types (highpass, bandpass..)
derived via transformations
1
s
=
F
ˆ
i.e.
(s )
H LP (s )

H D (sˆ )
Desired alternate
response; still a
rational polynomial
General mapping of s-plane
^
BUT keep LHHP & jΩΩ → jΩΩ;
poles OK, frequency response ‘shuffled’
Dan Ellis
2013-11-11
25
Lowpass-to-Highpass

Example transformation:
H HP (sˆ) = H LP ( s ) s=  p ˆ p
sˆ



Dan Ellis
take prototype HLP(s) polynomial
ˆp


p
replace s with
sˆ
simplify and rearrange
^
→ new polynomial HHP(s)
2013-11-11
26
Lowpass-to-Highpass

What happens to frequency response?
s = j  sˆ =
ˆ =


ˆp
 p 

=j
ˆ = 
ˆp
 
ˆ < 
ˆp
 
 > p
ˆ > 
ˆp
 
LP stopband
(
ˆp
 p 

...freq.→freq.
 = p
 < p
LP passband

ˆp
 p
j
)
imaginary axis
stays on self...
^
7
HPF
LPF
HP passband
7p
^
7p
HP stopband
Frequency axes inverted
Dan Ellis
2013-11-11
27
7
Transformation Example
Design a Butterworth highpass filter
^
with PB edge -0.1dB @ 4 kHz (ΩΩp)
^
and SB edge -40 dB @ 1 kHz (ΩΩs)
 Lowpass prototype: make ΩΩ = 1
p
ˆ
 p p
  s = () ˆ = ()4
s
 Butterworth -0.1dB @ ΩΩ =1, -40dB @ ΩΩ =4
p
s
A
1
0.1
1
1 log10 (  )
10

@
0.1dB

=
10
N
p
 p 10
2 log10 (  )
1+ ( c )

➝ N=5, 2N=10
 c =  p /0.6866 = 1.4564
2
2
s
p
Dan Ellis
2013-11-11
28
Transformation Example


1
j N +2
2N
LPF proto has p = c e
N
c
 H LP ( s ) = N
=1 ( s  p )
×
Im{s}
× ΩΩc
Re{s}
×
×
Map to HPF: H HP (sˆ) = H LP ( s ) s=  p ˆ p
 H HP (sˆ) =

cN
(
ˆp
N  p
sˆ
=1
 p
)
=
sˆ
cN sˆ N
N zeros
@ ^s = 0
=1 ( pˆ p  p sˆ)
N
^ /p
new poles @ s^ = ΩΩpΩΩ
p l
Dan Ellis
2013-11-11
29
Transformation Example
In Matlab:
ΩΩp ΩΩs Rp
Rs
[N,Wc]=buttord(1,4,0.1,40,'s');
[B,A] = butter(N, Wc, 's');
[U,D] = lp2hp(B,A,2*pi*4000);

4
gain / dB
x 10
1.5
Im{s}
1
-10
0.5
-20
0
-30
-0.5
-40
-1
-50
-1.5
-2
-1
Re{s}
Dan Ellis
0
0
1
4
x 10
-60
0
2013-11-11
1000
2000
3000
4000
5000
7 / Hz
30
3. Analog Protos → IIR Filters
Can we map high-performance CT
filters to DT domain?
 Approach: transformation H (s)→G(z)
a
i.e. G (z ) = H a (s ) s=F ( z )
where s = F(z) maps s-plane z-plane:

s = F(z)
z = F-1(s)
Im{s}
Every value of G(z)
is a value of Ha(s)
somewhere on the
s-plane & vice-versa
Dan Ellis
Ha(s0)
Im{z}
G(z0)
Re{z}
Re{s}
s-plane
2013-11-11
1
z-plane
31
CT to DT Transformation

Desired properties for s = F(z):

s-plane jΩΩ axis z-plane unit circle
→ preserves frequency response values

s-plane LHHP z-plane unit circle interior
→ preserves stability of poles
Im{s}
jΩΩ
Im u.c.
Re{s}
s-plane
Dan Ellis
Im{z}
1
ej!
Re{z}
LHHP UCI
z-plane
2013-11-11
32
Bilinear Transformation

Solution:
1 z
s=
1+z
1
1
z 1 Bilinear
=
z + 1 Transform
1+ s
 Hence inverse: z =
1 s


unique,
1:1 mapping
Freq. axis? s = j  z =
|z| = 1 i.e.
on unit circle
(1+ )+ j
z = (1 ) j
2
Poles? s =  + j 
2
1+
2

+

+
2
z =
2
2
1  2 +  + 
Dan Ellis
1+ j
1 j
2013-11-11
σ<0
|z| < 1
33
Bilinear Transformation

How can entire half-plane fit inside u.c.?
4
4
3
3
2
2
1
1
0
0
-1
-1
-2
-2
-3
-3
-4
-4
-2
s-plane

0
2
4
-4
-4
-2
0
2
4
z-plane
Highly nonuniform warping!

Dan Ellis
“Moebius Transformations Revealed”
http://www.youtube.com/watch?v=G87ehdmHeac
2013-11-11
34
Bilinear Transformation

What is CT DT freq. relation ΩΩ ! ?
 j
2 j sin  / 2
j
1e
z = e  s = 1+e j = 2 cos / 2 = j tan 2
im.axis
u.circle
W (DT)
P

i.e.
 = tan (
)

2
1
 = 2 tan 
0.5P
7
0
(CT)
-0.5P
-P
-5
0
5
infinite range of CT frequency  <  < 
maps to finite DT freq. range  <  < 
pack it all in!
 nonlinear; d    as ! → º
d

Dan Ellis
2013-11-11
35
Frequency Warping
Bilinear transform makes
j
Ge
= H a ( j)  =2 tan1  for all !, ΩΩ

( )
|G(ej )|
0.8

= 2tan 1( )
0.6
0.4
0.2
0
-60
-40
-20
0
0
|Ha(j )|
-20
-40
-60
Dan Ellis
0
1
2
3
4
5
Same gain &
phase (", A...),
in same ‘order’,
but with
warped
frequency axis
6
2013-11-11
36
Design Procedure

Obtain DT filter specs:

general form (LP, HP...),  p ,  s ,
‘Warp’ frequencies to CT:
p
s

 p = tan 2  s = tan 2
 Design analog filter for  , ,
p
s
1 ,1
1+ 2 A

Oldstyle


Convert to DT domain: G (z ) = H a (s ) s=1z1


→ Ha(s), CT filter polynomial
1 ,1
1+ 2 A
1+z 1
→ G(z), rational polynomial in z
Implement digital filter!
Dan Ellis
2013-11-11
37
Bilinear Transform Example
DT domain requirements:
Lowpass, 1 dB ripple in PB, !p = 0.4º,
SB attenuation ≥ 40 dB @ !s = 0.5º,
attenuation increases with frequency
|G(ejW)| / dB

0
-1
PB ripples,
SB monotonic
→ Chebyshev I
-40
0.4 0.5
Dan Ellis
1
WP
2013-11-11
38
Bilinear Transform Example

Warp to CT domain:
p
 p = tan 2 = tan 0.2 = 0.7265 rad/sec
s
 s = tan 2 = tan 0.25 = 1.0 rad/sec

Magnitude specs:
1 dB PB ripple
1/ 20
1

= 10
= 0.8913   = 0.5087
2
1+
40 dB SB atten.
40 / 20
1
 A = 10
= 0.01  A = 100
Dan Ellis
2013-11-11
39
Bilinear Transform Example
Chebyshev I design criteria:
1 A 2 1
cosh

N
=
7.09
i.e.
need
N
=
8
1  s
cosh  p
 Design analog filter, map to DT, check:
( )
)
\G(ejW)\/ dB
>>
>>
>>
>>
>>
(
\Ha(j7)\/ dB

0
-10
0
-10
N=8;
wp=0.7265;
CT
DT
freqs(B,A)
freqz(b,a)
pbripple = 1.0;
7
W/P
[B,A] = cheby1(N,pbripple,wp,'s');
[b,a] = bilinear(B,A,.5);
M
Dan Ellis
2013-11-11
40
-20
-30
-40
-50
-60
-20
-30
-40
-50
0
0.5
1
1.5
2
-60
0
0.2
0.4
0.6
0.8
1
Other Filter Shapes
Example was IIR LPF from LP prototype
 For other shapes (HPF, bandpass,...):

CT
trans
Bilinear
Analog
warp
design
DT
CT
HLP(s)
specs
specs
Bilinear
transform

HD(s)
Bilinear
transform
GD(z)
GLP(z) DT
trans
Transform LP→X in CT or DT domain...
Dan Ellis
2013-11-11
41
DT Spectral Transformations



Same idea as CT LPF→HPF mapping,
but in z-domain:
GD (zˆ ) = GL (z ) z=F ( zˆ ) = GL (F (zˆ))
To behave well, z = F (zˆ ) should:

map u.c. → u.c. (preserve G(ej!) values)

map u.c. interior → u.c. interior (stability)
F (zˆ) < 1 zˆ < 1
i.e. F (zˆ) = 1 zˆ = 1
 in fact, F ( z
ˆ ) matches the definition of an
1
allpass filter ... replace delays with F ( zˆ )
Dan Ellis
2013-11-11
42
DT Frequency Warping

zˆ 
Simplest mapping z = F (zˆ ) = 1
zˆ
has effect of warping frequency axis:
jˆ
e
jˆ
j
zˆ = e
z=e =
1 ejˆ
Æ>0:
W
0.8
1+ tan ˆ
 tan (2 ) = 1
(2 )

expand HF
P
A = 0.6
0.6
0.4
0
0
Dan Ellis
2013-11-11
Æ<0:
expand LF
A = -0.6
0.2
0.2
0.4
0.6
0.8
^
W
P
43
Another Design Example

Spec:
Bandpass, from 800-1600 Hz (SR = 8kHz)
 Ripple = 1dB, min. stopband atten. = 60 dB
 8th order, best transition band
→ Use elliptical for best performance


Full design path:
prewarp spec frequencies
 design analog LPF prototype
 analog LPF → BPF
 CT BPF → DT BPF (Bilinear)

Dan Ellis
2013-11-11
44
Another Design Example

Frequency prewarping

800 Hz @ SR = 8kHz
= 800/8000 x 2  rad/sample
→ L =0.2 , U =1600/8000 x 2  =0.4 
L = tan L/2 = 0.3249, U = 0.7265
 Note distinction between:

application’s CT domain (800-1600 Hz)
and
 CT prototype domain (0.3249-0.7265 rad/s)

Dan Ellis
2013-11-11
45
Another Design Example
Or, do it all in one step in Matlab:
[b,a] = ellip(8,1,60,
[800 1600]/(8000/2));

Magnitude (dB)
0
-20
-40
-60
-80
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
Normalized Frequency (¾P rad/sample)
0.8
0.9
1
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
Normalized Frequency (¾P rad/sample)
0.8
0.9
1
Phase (degrees)
1000
500
0
-500
-1000
Dan Ellis
2013-11-11
46
Download