9-IIR

advertisement
Infinite Impulse Response (IIR) Filters
Recursive Filters:
y(n)  a1 y(n  1) ...a N y(n  N )  b0 x(n) ...bN x(n  N )
with ai , ... , b j
Advantages:
Disadvantages:
constant coefficients.
very selective filters with a few parameters;
a) in general nonlinear phase,
b) can be unstable.
Design Techniques: discretization of analog filters
analog
digital



s-plane





z-plane
Ha ( s)
H (z)
d
Problem: we need to map
the derivative operator “s” into the time shift operator “z”,
and make sure that the resulting system is still stable.
Two major techniques
• Euler Approximation (easiest),
• Bilinear Transformation (best).
Euler Approximation of the differential operator:
y (nT )  y (nT  T )
y (nT ) 
T
take the z-Transform of both sides:
approximation of “s”
Y ( z)  z 1Y ( z)  1  z 1 
Z y (nT ) 

 Y ( z)
T
 T 
1  z 1
s
T
Example:
take the analog filter with transfer function
H a ( s) 
with a sampling frequency Fs  5Hz .
2
s 1
and discretize it
By Euler’s approximation
Hd ( z) 
2
0.333 z

z  0.833
 1  z 1 

1


 0.2 
The filter is implemented by the difference equation
y (n)  0.833 y (n  1)  0.333x (n)
analog
digital

s-plane

z-plane
Problem with Euler Approximation:
it maps the whole stable region of the s-plane into a subset of the stable region in the z-plane
s-plane
z-plane
s

since
1

s 
1
1
1 1
T
z 
  
2 1  sT 2 2  s  1 


T


1
1
z 
2
2

if Re[s]<0.
1
T
1
T
Bilinear Transformation. It is based on the relationship
T
y(nT )  y(nT  T )  
y (t )dt   y (nT )  y (nT  T )
nT  T
2

nT
area ABCD
C
Take the z-Transform of both sides:

T
Y ( z )  z Y ( z )  Y1 ( z )  z 1Y1 ( z )
2
1
B

A
nT-T
which yields the bilinear transformation:
2 1  z 1
s
T 1  z 1
2
s
T
z
2
s
T
D
nT
Main Property of the Bilinear Transformation: it preserves the stability regions.
s-plane
z-plane
s

since:
2
T
2
s
T
s
| z| 
 1

2
T
2
T
Mapping of Frequency with the Bilinear Transformation.
Magnitude:
| e j | 
2
j 
T
2
j 
T
j 
 1

2
T
2
T
Phase:
2 

j




T
  phase 
  (  )  2

2
  j  

T
1  T 
where
  tg 

 2 
 T 
  2tg 

 2 
1

j

2
T
 j
2   
  tg

T  2 

See the meaning of this:
 T 
  2tg 

 2 
1

2   
  tg


T
2 
it is a frequency mapping between analog frequency and digital freqiency.

 c
c
0
   c
0
c 



Example: we want to design a digital low pass filter with a bandwith Fo  8kHz
and a sampling frequency
Fs  24kHz . Use the Bilinear Transformation.
Solution:
• Step 1: specs in the digital freq. domain
c  (2 )(8 / 24)  2 / 3 rad
• Step 2: specs of the analog filter to be digitized:
 c 
c  2 Fs tg
.  103 rad / sec
  (2)(24  103 ) tg ( / 3)  8313
 2 
or equivalently
Fc  13.23kHz
• Step 3: design an analog low pass filter (more later) with a bandwith Fc  13.23kHz ;
• Step 4: apply Bilinear Transformation to obtain desired digital filter.
Design of Analog Filters
| H()|2
Specifications:
1
1 
2
1
2
2 2
p
pass
band
c
transition
band
s

stop
band
Two Major Techniques: Butterworth, Chebychev
Butterworth:
| H ()| 
2
1
 
1  
 c 
2N
Specify  ,  p from passband, determine
| H ( s )| 
2
1


2 s

1  
 p 
2N
 2 2

1
 
2

1  

 p
2N
N from stopband:

 1  2 2 
log 2 2 
  2 
N
 s 

2 log
 p 
Poles of Butterworth Filter:
| H ()|  H ( s) H (  s) s  j
2
 H ( s) H (  s) 
1
 
1  
 c 

2N

s
j
1
s 
1  2 
 c 
2
N
which yields the poles as solutions
1
 s2
 N
2  1
c

s  jce
j
  k 2
2N
j

 c e 2 e
j ( 2 k 1)

2N
, k  0,...,2 N  1
N=2
and choose the N poles in the stable region.
+
+
+
+
poles
s-plane
Example: design a low pass filter, Butterworth, with 3dB bandwith of 500Hz and 40dB
attenuation at 1000Hz.
c  1000 ; s  2000 ,
Solution:
solve for N from the expression
1
 s 
1  
 c 
2N
1
2

2 N  0.01
1 2
| H ()|dB
log(104  1)
N
 6.64  N  7
2 log(2)
poles at
sk  1000 e j ( / 2( 2 k 1) /14) , k  0,...,6

Chebychev Filters.
Based on Chebychev Polynomials:
TN ( x )  cos( Nt ) x  cos( t )
T0 ( x )  cos(0)  1,
T3 ( x )
T1 ( x )  cos(t ) x  cos( t )  x ,
T2 ( x )  cos(2t )  2 cos2 (t )  1 x  cos( t )  2 x 2  1,

TN 1 ( x )  2 xTN ( x )  TN 1 ( x )
x
Property of Chenychev Polynomials:
within the interval 1  x  1 Chebychev polynomials have least maximum deviation
from 0 compared to polynomials of the same degree and same highest order coefficient
P( x)  4 x 3  ax 2  bx  c
T3 ( x)  4 x 3  3x
x
Why? Suppose there exists
P  T3  1
T3 ( x )
P( x)  4 x3  ax2  bx  c
with smaller deviation then
P  T3  1
B
D

P( x )  T3 ( x )
A

P( x)
T3 ( x )
C


A
P  T3  1
C
root B
P  T3  1
But: P( x)  T3 ( x)  4 x 3  ax 2  bx  c  4 x 3  3x
…
root
root
has degree 2 …
and it cannot have three roots!!!
So: you cannot find a P(x) which does better (in terms of deviation from 0) then the
Chebychev polynomial.
D
Chebychev Filter:
| H ()| 
1
2
 

1   TN 
 p 
2
2
Since TN (1)  1 (easy to show from the definition), then | H ( p )|2 
| H()|2
1
1 

p
2
1
1  2
Design of Chebychev Filters:
Formulas are tedious to derive. Just give the results:
Given:  p

the passband, and
which determines the ripple in the passband,
compute the poles from the formulae

  

1    1




2
1
N
 2 1
r1,2 
2
 k
s-plane

2
 (2 k  1)

2N
, k  0,..., N  1
Example: design a Chebychev low pass filter with the following specs:
• passband Fp  500Hz,
with a 1dB ripple,
Fs  1000Hz,
• stopband
Step 1: determine
For 1dB ripple,
 , p
with attenuation of at least 40dB.
. The passband frequency  p  1000
1
2
 1 
2

20 log


10
log(
1


)  1dB
 1  2 

| H ()|
Step 2: determine the order N. Use the formula
N
  0.5088
 1    1   (1    /   
log( /  )  ( /  )  1
2
log
2
2
2
2
2
2
s
p
with 2  0.01, to obtain N  4
s
p

p
Frequency Transformations
We can design high pass, bandpass, bandstop filters from transformations of low pass filters.
Low Pass to High Pass:
s 
| H ()|
 c
c
c2
s
 c2 
H

 j 

same value at
 c
c
 c 2 
 c 
  H    H (  jc )
H
 j 
 jc 
c

Low Pass to Band Pass:
 c
 u
l
 l
The tranformation
maps
c
s2  l u
s  c
s(u  l )
s  j l
 l 2  l u
 c
  j c
j l ( u   l )
s  j u
 u 2  l u
 c
  j c
j u ( u   l )
u
Low Pass to Band Stop
 c
 u
 l
c
l
s(u  l )
s  c 2
s  cl
u
How to make the transformation:
Consider the transfer function
K ( s  z1 )( s  z2 )...( s  zm )
H ( s) 
, mn
( s  p1 )( s  p2 )...( s  pn )
then with s  F ( s)
we obtain
HT ( s)  H  F ( s) 
K  F ( s)  z1 ...  F ( s)  zm 
 F ( s)  p ... F ( s)  p 
1
with zeros and poles solutions of
F ( s)  zk , k  1,..., m
F ( s)  p j , j  1,..., n
also n-m extra zeros at s where F ( s)  






n
IIR filter design using Matlab
In Matlab there are three functions for each class of filters (Butterworth, Chebytchev1, Chebytchev2):
BUTTAP
CHEB1AP
CHEB2AP
Poles and Zeros of Analog Prototype Filter
BUTTER
CHEBY1
CHEBY2
Numerator and Denominator from N and  c
BUTTORD
CHEBY1ORD
CHEBY2ORD
N and  c from specifications
Example. We want to design an IIR Digital Filter with the following specifications:
Pass Band
0 to 4kHz, with 1dB ripple;
Stop Band
> 8kHz with at least 40 dB attenuation
Sampling frequency 40kHz
Type of Filter: Butterworth.
Using Matlab:
>> [N, fc]=butterord(fp, fs, Rp, Rs);
>> [B, A]=butter(N, fc);
% fp, fs=passband and stopband freq relative to Fs/2
% B, A vectors of numerator and denominator coefficients.
In our case:
[N, fc]=butterord(4/20, 8/20, 1, 40),
would yield N=7, fc=0.2291;
[B, A]=butter(7, 0.2291), would yield the transfer function B(z)/A(z).
Let’s verify these numbers:
Step 1: specifications in the digital frequency domain:
4 
 p  2  rad
40 5
8 2
s  2

rad
40 5
band pass freq
stop band freq


 2
Step 2: specifications for analog filter from the transformation   2 Fs tan

 p  2(40  10 ) tan   26  103 rad / sec
 10 
3

 s  2(40  103 ) tan   58  103 rad / sec
 5
1
2
H ( ) 
Step 3: choose (say) Butterworh Filter
with
 p  26  103 rad / sec

and


2 

1  
 p 
from the ripple specification
1
2
 1 
20 log10 
  0.5
2   1 
 1  
Step 4: determine order N from attenuation of 40dB
10 log10
1
 s 

1  0.5 
 
 p
2
with
s 58

 p 26
yields
N=7
2N
2N
 40
Step 5: finally the cutoff frequency, from the equation
1
2
H ( c ) 
Which yields
c 
2


1  0.5
 26  103 
c  28.7  103 rad / sec
14
1

2
, corresponding to a digital frequency
 28.7 
c  2atan
  0.6889 radians
 2  40 
Step 6: the desired Filter is obtained by the function
[num, den] = butter( 7 , 0.6889/)
Magnitude and Phase Plots:
Download