Matlab chp7
Matlab chp7
Matlab chp7
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
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
Design steps :
comparison:
1.wave
2.the same order,
increase performance
3.increase design
complexity
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
[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:
[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)
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
-π/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
( 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
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
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,
0 0.5rad ,
pl 0.45rad , pu 0.55rad : 3dB
sl 0.4rad , su 0.6rad : 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
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
2k 1 k 1
z 2 z
lowpass bandpass:z 1 k 1 k 1
k 1 2 2k 1
z z 1
k 1 k 1
2 2k 1 k 1
z z
lowpass bandstop:z 1 k 1 k 1
k 1 2 2k 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
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)
Figure 7.21
1
I (1 [(n M ) / M ]2 ) 2
0 2 2 0nM
(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 mainlobetransition width of filter’s
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
A8
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
| 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 : A8
M
2.285
4.Cut the ideal impulse response
(3) | p s |
8
/ 2 (0.7 0.54) , M 25 26
M
sin[ (n 13)] sin[0.62 (n 13)] 2n
(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
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
finite-length IR infinite-length IR
realize linear phase easily can not realize linear phase in deed
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