Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Matlab chp7

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 60

CHAPTER 7 filter design techniques

7.0 introduction
7.1design of discrete-time IIR filters from continuous-time filters
7.1.1 filter design by impulse invariance
7.1.2 filter design by bilinear transform
7.1.3 not low pass filter design and other method
7.2 design of FIR filters by windowing.
7.3 summary
7.0 introduction ideal frequency selective filter

band-stop filter : notch filter ; quality factor of band-pass


filter=pass-band width/center frequency
Figure 7.1

impulse response of ideal low-pass filter , noncausal , unrealizable


1 c sin( c n)
hd (n) 
2 
 c
H d (e j )e jn d 
n
, n  ......

Specifications for filter design : given in frequency domain


phase : linear?
magnitude : given by a tolerance scheme
analog or digital , absolute or relative
absolute specification
magnitude response of
equivalent analog system

passband
tolerance

3dB cutoff
frequency

1/ 2

stopband
Figure 7.2 tolerance monotonous descent

passband cc
 stopband
cutoff cutoff
frequency frequency
relative specifications : maximum magnitude in passband is normalized to 1, viz. 0dB
 p  20 * log10(1   p) 0 maximum attenuation in passband
 s  20 * log10  s  0 minimum attenuation in stopband

3dB cutoff frequency :


| H (e j c ) | 1 / 2
 20 log10 | H (e j c ) | 3dB

magnitude response of equivalent analog system:


 j 
 H (e ) |  T |  |
T
H eff ( j )  


0 |  |

 T
digital specification, finally:  p   pT , s   sT
Specifications for bandpass and bandstop filters :
up and down passband cutoff frequency ,
up and down stopband cutoff frequency

Design steps :

( 1 ) decide specifications according to application


( 2 ) decide type according to specification : generally , if the
phase is required , choose FIR.
( 3 ) approach specifications using causal and stable discrete-
time system :
viz. design H(z0) or h[n] , nonuniform
( 4 ) choose a software or hardware realization structure, take
effects of limited word length into consideration
H(z) or h[n]
7.1 design of discrete-time IIR filters
from continuous-time filters
A/ D
ala log y low pass  digital low pass
 frequency transform 
A/ D
ala log y high pass  digital high pass

attention : original analog filter and equivalent analog filter is different,


their frequency response is not always the same

7.1.0 introduction of analogy filter


7.1.1filter design by impulse invariance
7.1.2 filter design by bilinear transform
7.1.0 introduction of analog filter

comparison:
1.wave
2.the same order,
increase performance
3.increase design
complexity

(A) ( C ) small aliasing in the impulse invariance design


technique
BW design formula: specificationsystem function
1
magnitude frequency function: | H c ( j) |2  2N
 H c ( s ) H c (  s ) | s  j
1  ( /  c )

  p

1
2 
take the specifications into system   10 10  1  
function and get the results from N  log  p s    
  10 s 10  1  
equation group:    
p s
c  1
OR c  1
s
  p 10  2N   2N
10  1 10 10  1
   
 2 k 1 1 
j  
confirm the poles of system function: s k  c e  2N 2 
, k  0      N  1
( in the left half plane )
N
N 1
1 c
H c (s)   
s N 1
get system function : k 0 1 
sk  (s  s )
k 0
k
EXAMPLE
 

design a low pass analogy filter:


 p  2 1000rad / s,  s  2  2000rad / s,  p  1dB,  s  15dB

[N,Wc]=buttord(2000*pi,4000*pi,1,15, 's')
[Bs,As]=butter(N,Wc, 's')
[H,W]=freqs(Bs,As);
plot(W/2/pi,20*(log10(abs(H))))
axis([1000,2000,-16,0])
grid on
OUTPUT:
N= 4
Wc = 8.1932e+003
Bs = 1.0e+015 * 0 0 0 0 4.5063
As = 1.0e+015 * 0.0000 0.0000 0.0000 0.0014 4.5063

b0  b1s  b2 s 2  b3 s 3  b4 s 4
H c ( s) 
a0  a1s  a2 s 2  a3 s 3  a4 s 4
Or : 
[N,Wc]=buttord(2000*pi,4000*pi,1,15, 's')
[z,p,k]=butter(N,Wc, 's' )

Output:
z = Empty matrix: 0-by-1
p = 1.0e+003 *
-7.5695 + 3.1354i
-7.5695 - 3.1354i
-3.1354 + 7.5695i
-3.1354 - 7.5695i
k = 4.5063e+015
k
H c ( s) 
( s  p0 )( s  p1 )( s  p 2 )( s  p3 )
 
EXAMPLE design a low pass cheby analogy filter:
 p  2 1000rad / s,  s  2  2000rad / s,  p  1dB,  s  15dB

[N,Wc]=cheb1ord(2000*pi,4000*pi,1,15, 's')
[Bs,As]=cheby1(N,1,Wc, 's')
[H,W]=freqs(Bs,As);
plot(W/2/pi,20*(log10(abs(H))))
axis([0,4000,-30,0])
grid on
 
EXAMPLE design a low pass cheby analogy filter:
 p  2 1000rad / s,  s  2  2000rad / s,  p  1dB,  s  15dB

[N,Wc]=cheb2ord(2000*pi,4000*pi,1,15, 's')
[Bs,As]=cheby2(N,15,Wc, 's')
[H,W]=freqs(Bs,As);
plot(W/2/pi,20*(log10(abs(H))))
axis([0,4000,-30,0])
grid on
 
EXAMPLE
design a high pass analogy filter:

 p  2  2000rad / s,  s  2 1000rad / s,  p  1dB,  s  15dB

[N,Wc]=buttord(4000*pi,2000*pi,1,15, 's')
[Bs,As]=butter(N,Wc, 'high', 's')
[H,W]=freqs(Bs,As);
plot(W/2/pi,20*(log10(abs(H))))
axis([0,4000,-16,0])
grid on
transformation from analog filter to digital filter:
H(s)H(z) , viz. mapping from S plane to Z plane, must satisfy:
the same frequency response ( map imaginary axis to the unit circle );
causality and stability is preserved ( map poles from left half plane to the
inside circle )。
S plane  Z plane imaginary axis
the unit circle

Ha(s)
H(z)

poles in left half plane inside


the unit circle
7.1.1 filter design by impulse invariance

according to :
h[ n]  Td hc [ nTd ]
H c ( s )  hc (t ) h
[ n ]Td hc [ nTd ]
  h[ n]  H ( z )

conversion formula :
N 1
Ak
H c (s)  
k 0 s  sk

N 1
Td Ak
H ( z )  H c ( s) 1 Td  s k Td 1
s  sk

1 e sk Td z 1 k 0 1  e z
Relationship between poles ( causal and stable): sk  e sk Td
relation between frequencies:

  Td ,     ,    


S plane
Z plane

3π/Td

π/Td

-π/Td

-3π/Td
relation between frequency response: when aliasing is small, the frequency response is
the same. 
2
j
H (e )   H c ( j  jk
k  
)
Td  

Td

strongpoint : linear frequency mapping; shortcoming : aliasing in frequency


response 。
restriction in application : can not used in high-pass and bandstop filter
Design steps :
 p   ' p T , S   'S T
(1)[equivalent analog specification     ,digital specification]
  / T ,  / T
digital specification p p 
d

S

S
d  prototype analog specification

( 2) design H c ( s )

(3) H ( z )  H c (s) 1 Td

s  sk 1 e sk Td z 1

about Td:
independent of T;
do not influence aliasing;
arbitrary value , generally, take 1 ( attention ( 1 ) and ( 3 ) have the same
value ) .
EXAMPLE
design a BW digital lowpasss filter , need :
 p  0.2 ,  s  0.4 , p  1dB, s  12dB,
wp=0.2*pi; ws=0.4*pi
ap=1; as=12
Td=1; Wp=wp/Td; Ws=ws/Td
[N,Wc]=buttord(Wp,Ws, ap , as, 's')
[Bs,As]=butter(N,Wc, 's')
[Bz,Az]=impinvar(Bs,As,1/Td)
[H,W]=freqs(Bs,As);
plot(W/pi,20*(log10(abs(H))), 'r*')
hold on
[H,w]=freqz(Bz,Az);
plot(w/pi,20*(log10(abs(H))))
axis([0.2,0.4,-20,0])
grid
7.1.2 filter design by bilinear transform

design thought :

S1 平面 z 平面
S 平面
jΩ jΩ1 Im(z)

+π/T

σ σ1 Re(z)
-π/T

Ω=(-∞,∞) Ω1=(-π/T,π/T) ω=(-π,π)

design formula :
H ( z )  H c (s) | 2 1 z 1
s 
Td 1 z 1
left half s-plane  inside the unit circle in the z-plane ( causality and stability
are preserved );

imaginary axis of the s-plane the unit circle in z-plane (the same frequency
response), one-by-one mapping

relation between frequencies:


 Td  2  
  2 arctan    tan  
 2  Td 2
relation between frequency response: H ( e j  )  H c ( j ) 2  
 tan  
Td 2

prewarp :
 2 p 
 p  tan  

 Td  2 

   2 tan   s 
 s Td  2 

strongpoint : no aliasing ;
shortcoming : nonlinear 。
restriction in application :
can not used in
differentiator.
design steps:
(1) 
 p   ' p T , S   ' S T
[equivalent analog system specification     digital specification ]
2 2
p  tan( p / 2 ), S  tan( s / 2 )
Td Td
digital specification         specifications of prototype analog filter

( 2) H c ( s )

(3) H ( z )  H c (s) | 2 1 z 1
s 
Td 1 z 1

out Td:
independent of T ;
arbitrary value , generally, take 1 ( attention ( 1 ) and ( 3 ) have the same value
EXAMPLE design a lowpass filter, need
 p  0.2613 ,  s  0.4018 ,  p  0.75dB,  s  20dB,

wp=0.2613*pi; ws=0.4018*pi; ap=0.75; as=20;


Td=1; Ws=2/Td*tan(ws/2); Wp=2/Td*tan(wp/2)
[N,Wc]=buttord(Wp,Ws,ap,as,’s’)
[Bs,As]=butter(N,Wc, ‘s’)
[Bz,Az]=bilinear(Bs,As,1/Td)
[H,W]=freqs(Bs,As);
plot(W/pi,20*(log10(abs(H))),’Rx‘)
hold on
[H,w]=freqz(Bz,Az);
plot(w/pi,20*(log10(abs(H))))
ylabel(‘ 虚线:模拟滤波器幅度 [dB] 实线:数字滤波器幅度 [dB]’)
xlabel(‘ 虚线:模拟角频率 [*π 弧度 / 秒 ] 实线 : 数字角频率 [*π 弧度 ]’)
axis([0.25,0.5,-20,-0.45])
grid
OR
wp=0.2613*pi; ws=0.4018*pi;ap=0.75; as=20
[N,wc]=buttord(wp/pi,ws/pi,ap,as)
[Bz,Az]=butter(N,wc)
[H,w]=freqz(Bz,Az);
plot(w/pi,20*(log10(abs(H))))
EXAMPLE design a highpass filter , need
 p  0.6 ,  s  0.5 ,  p  1dB,  s  12dB,
[N,Wc]=buttord(0.6,0.5,ap,as)
[Bz,Az]=butter(N,Wc, 'high')
[H,w]=freqz(Bz,Az);
plot(w/pi,20*(log10(abs(H))))
grid
EXAMPLE

 0  0.5rad ,
 pl  0.45rad , pu  0.55rad : 3dB
 sl  0.4rad , su  0.6rad : 10dB
[N,wc]=buttord([0.45 0.55],[0.4 0.6],3,10) % 双线性变换法
[B,A]=butter(N,wc)
[H,w]=freqz(B,A);
plot(w/pi,20*(log10(abs(H))))
ylabel(‘20log|H(ejω)| [dB]’)
xlabel(‘ 数字角频率 [*π 弧度 ]’)
axis([0.4,0.6,-10,0]); grid on

Output:
N= 2
wc = 0.4410 0.5590
B= 0.0271 0 -0.0541 0 0.0271
A= 1.0000 0 1.4838 0 0.5920
7.1.3 IIR summary
1.design steps
 p  ' p T ,  S  ' S T
(1)equivalent analog system specification digital specification
 p   p / Td ,  S   S / Td
specifications of prototype analog filter
2 2
 p  tan( p / 2),  S  tan( s / 2)
Td Td

(2)H a ( s )
1 Td

s  sk 1 e skTd z 1
(3) H a ( s ) 1
H(z )
2 1 z
s

Td 1  z 1
2. impulse invariance:
frequency axis is linear many-to-one mapping , aliasing in frequency response,
inapplicable to high-pass filter.
bilinear transformation :
frequency axis is one-to-one mapping with aberrance, no aliasing in frequency
response, inapplicable to differentiator
7.1.4 frequency conversion

Frequency conversion in analog domain :

lowpass  lowpass:s  s /  c
lowpass  highpass:s   c / s
lowpass  bandpass:s  ( s 2   c1 c 2 ) /[ s ( c 2   c1 )]
lowpass  bandstop:s  [ s ( c 2   c1 )] /( s 2   c1 c 2 )
 c 2 : up cutoff frequency,  c1:down cutoff frequency
Frequency conversion in digital domain :

1 z 1  
lowpass  lowpass:z 
1  z 1
1 z 1  
lowpass  highpass:z  
1  z 1
2k 1 k  1
z 2  z 
lowpass  bandpass:z 1   k 1 k 1
k  1  2 2k 1
z  z 1
k 1 k 1
2 2k 1 k  1
z  z 
lowpass  bandstop:z 1  k 1 k 1
k  1  2 2k 1
 z  z 1
k 1 k 1
 , k is dependent of filter cutoff frequency before and after conversion
7.2 design of FIR filters by windowing

7.2.1 design ideas


7.2.2 properties of commonly used windows
7.2.3 effect to frequency response
7.2.4 design step
7.2.1 design ideas

j
hd (n)  IFT ( H d (e j )) H(
d e )

2
M 1

w[n] sin[ ( M  1) / 2]
( d )W (e j ) 
sin( / 2)

h[n]  hd [n]  wM [n] 1


( f ) H ( e j )  H d ( e j )  W ( e j )
2
Gibbs phenomenon: frequency response oscillate at wc.

transition width of filer’smainlobe width of window spectrum


length and shape of window’s
passband-stopband error of filter’ssidelobe amplitude of window
spectrum window’s shape

The smaller mainlobe width, the narrower transition width of filter’s;


The smaller sidelobe amplitude of window spectrum, the smaller
relative error of filter’s.

M increases mainlobe width of window spectrum minishes


filter oscillate more quickly, transition width minishes, relative
amplitude of oscillation is preserved.
In order to improve relative amplitude of oscillation, we need to
change the shape of window’s.
7.2.2 properties of commonly used windows
1,0nM
(1)rec tan gular : w[n]  
0, other  2n M
 M , 0n 2

 2n M
( 2)bartlett (triangular ) : w[ n]  2  , nM
 M 2
 0, other
 
  2n 
0.5  0.5 cos  0nM
(3)hanning : w[ n]    M , other
 0

  2n  0  n  M
0.54  0.46 cos 
( 4)ham min g : w[ n]    M , other
 0

  2n   4n  0  n  M
0.42  0.5 cos   0.08 cos 
(5)blackman : w[ n]    M   M , other
 0

A general designation: Blackman window family, except triangular window

Figure 7.21
  1
 I   (1  [(n  M ) /  M ]2 ) 2 
 0  2  2   0nM
(6)kaiser : w[n]    
 other
I0 ( )

 0

Figure 7.24(a)
(a)-(e) attenuation of sidelobe increases,
width of mainlobe increases.
As B increases,
attenuation of
sidelobe increases,
width of mainlobe
M=20
increases.

B=6
As N increases :
attenuation of
sidelobe is preserved
width of mainlobe
decreases.

Figure 7.24(b)(c)
Transition width is a
little less than
mainlobe width
Table 7.1
7.2.3 effect to frequency response
attenuation of window spectrum’s sidelobe attenuation of filter’s stopband
width of window spectrum’s mainlobetransition width of filter’s

check the table for Blackman window;


formulas of Kaiser window:

 0.1102( A  8.7) A  50

  0.584( A  21) 0.4  0.07886( A  21) 21  A  50 (5.50)
 0 A  21

A8
 
2.285M
A : attenuation of stopband, Δω : transition width
7.2.4 design step
1. Write the ideal impulse response :
 c  ( p   s ) / 2
 jM
 pass band
H d (e j )  H d ( )e j ( )  e 2
 0 stop band
1  

j j n
hd [n]  H d (e )e d
2 

2.Comfirm the shape of window’s based on attenuation of stopband :


  min( p ,  s ) A  20 log10 
( 1 ) check the table for Blackman window
( 2 ) calculation for Kaiser window
 0.1102( A  8.7) A  50

  0.584( A  21) 0.4  0.07886( A  21) 21  A  50
 0 A  21

3.Comfirm length of window’s based on transition width ( M is even):

 |  s   p |
(1) check the table for Blackman window: compute
D
M 
the length of window’s based on width of mainlobe: 2
(2) calculation for Kaiser window : A8
M 
2.285
4.Cut the ideal impulse response

h[n]  hd [n]  w[n]


j
5. validate H (e ),correct c , M , (Kaiser)

We can think that the 4 specifications is  ,  , A


c
transformed into :
The same with IIR, maybe the specification is equivalent analog one.
Example 1 Blackman family
design a FIR high pass filter , need :
 p  0.7 , s  0.54 , p  3dB, s  40dB
(1)  c  ( p   s ) / 2  0.62
1 

j jn
hd [n]  H d ( e ) e d
2 

sin[ (n  M / 2)] sin[0.62 (n  M / 2)]


  , n  ......
 (n  M / 2) 0.62 (n  M / 2)
(2)   min( ,  )  min(1  10  p / 20 ,10  s / 20 )  0.01, A  40dB hamming
p s

(3) |  p   s |
8
/ 2  (0.7  0.54) , M  25  26
M
 sin[ (n  13)] sin[0.62 (n  13)]   2n 
(4) h[n]    
  0 .54  0. 46 cos( )  R27 [n]
  (n  13)  (n  13)   25 
( 5 ) validate the frequency response in MATLAB

h=fir1(26,0.62, 'high',hamming(27))
H=fft(h,512);
plot([0:511]/256,20*log10(abs(H)))
axis([0.5,0.7,-50,0]); grid on
( 6 ) correct
h=fir1(24,0.665, 'high',hamming(25))
H=fft(h,512);
plot([0:511]/256,20*log10(abs(H)))
axis([0.5,0.7,-80,0]);
grid on
h= 0.0001 0.0023 -0.0040 0.0004 0.0104 -0.0170 0.0009 0.0358
-0.0538 0.0014 0.1288 -0.2727 0.3357 -0.2727 0.1288 0.0014

-0.0538 0.0358 0.0009 -0.0170 0.0104


0.0004 -0.0040 0.0023 0.0001
Example 2 Kaiser family
design a FIR high pass filter , need :
 p  0.7 , s  0.54 , p  3dB, s  40dB
Solution1:
(1)  c  ( p   s ) / 2  0.62
1  sin[ (n  M / 2)] sin[0.62 (n  M / 2)]
 H
j jn
hd [ n]  d (e ) e d   , n  ......
2   (n  M / 2) 0.62 (n  M / 2)
(2)   min( ,  )  min(1  10  p / 20 ,10  s / 20 )  0.01, A  40dB
p s

  0.5842(40  21) 0.4  0.07886(40  21)  3.3953


40  8
(3) M   27.86  28
2.285(0.7  0.54 )
(4) h[n]  sin[ (n  14)]  sin[0.62 (n  14)]  w[n]
 (n  14)
( 5 ) validate and correct in MATLAB

h=fir1(18,0.662, 'high', kaiser (19,3.2953));


H=fft(h,512);
k=0:511;
subplot(1,2,1); plot(k/256,20*log10(abs(H))); grid on;
subplot(2,2,2); plot(k/256,20*log10(abs(H)));
axis([0.5,0.55,-50,-0]); grid on
subplot(2,2,4); plot(k/256,20*log10(abs(H)));
axis([0.65,0.75,-5,0]); grid on
Example 3
plot the response to signal
x[n]  10 cos(0.1 )  3 sin(0.8 ) R20 [n]

h=fir1(18,0.5, 'high',kaiser(19,6));
n=[0:100]; x=10*cos(0.1*pi*n)+3*sin(0.8*pi*n) ;
subplot(2,1,1); plot(n,x)
y=filter(h,1,x) ; subplot(2,1,2); plot(n,y)
7.2.5 FIR summary

w[n] W ( e j ) H ( e j )
shape attenuation of sidelobe attenuation of stopband
( the first row in the table )( the third row in the table )
length width of mainlobe transition width
(the second row) ( the second row /2 )
7.3 brief introduction of other filter design
techniques using matlab

1. IIR: minimum mean square error in frequency domain: invfreqz( )


2. FIR: frequency sampling : fir2( )
3. FIR: minimum mean square error : firls( )
4. FIR: Parks-McCellan/Remez arithmetic :
remez( )
7.4 summary

FIR digital filter IIR digital filter

finite-length IR infinite-length IR

no non-zero poles, stable non-zero poles, stable?

realization: convolution /recursion recursion

realize linear phase easily can not realize linear phase in deed

stable maybe instable because of rounding


higher order lower order because of recursion

FFT no fast arithmetic


summary

7.1 design of IIR ( continuous-time filter )


7.1.1 impulse invariance
7.1.2 bilinear transform
7.2 design of FIR ( windowing )
7.2.1 design ideas
7.2.2 properties of commonly used windows
7.2.3 effect to frequency response
7.2.4 design step
7.3 comparison between IIR and FIR
requirements :
understand the principles of impulse invariance and bilinear
transform and their mapping characteristic, implication;
understand design ideas of windowing;
design various filters using MATLAB.

difficulties :
relationship among prototype analog filter, digital filter and
equivalent analog filter;
effects of shape and length of window’s to system
characteristic ;
why impulse invariance and bilinear transform can not be used
in high-pass filter design 。
exercise and experiment
7.16 7.18 7.22(a)(b) 7.23

the second experiment


50
52
56
57
59

You might also like