11/19/2019
BLT simplified (T=2)
s
(1 z 1 ) 1 s
z
Digital Signal Processing (1 z 1 ) 1 s
LECTURE 33-35
SARANG C DHONGDI
Example - p 0 . 25
Approaches of designing Digital IIR filter Approach 1 s 0 . 55
• Prewarp the freq specs of digital filter GD(z) • Prewarp the freq specs of digital filter GD(z)
Low pass filter p 0 . 5 dB
to obtain freq specs of analog filter HD(s). to obtain freq specs of analog filter HD(s). Butterworth
s 15 dB
• HD(s) HLP(s) • HD(s) HLP(s)
p 1
?
1
? N ??
p tan k k1
• Design HLP(s) • Design HLP(s) 2
s
s tan
• HLP(s) HD(s) • HLP(s) GLP(z) 2 H nor ( s ) ? H ( s ) ?
• HD(s) GD(z) • GLP(z) GD(z) G ( z ) ??
p 0 . 25 0 . 4142
Example - p
Approach 1 s 0 . 55 s 1 . 1708
Low pass filter p 0 . 5 dB
1 1
Butterworth 2 . 82 15 . 84
s 15 dB k k1
N 2 . 6586 3
1 0 . 203451
H nor (s) H (s)
( s 0 . 588 )( s 2 0 . 588 s 0 . 3459 )
( s 1)( s 2 s 1)
0.2034
𝐻 𝑠 =
𝑠 + 1.1760 𝑠 + 0.6915 𝑠 + 0.2034
0 . 066 (1 z 1 ) 3
G (z)
2 1 1 (1 0 . 259 z 1 )( 1 0 . 67 z 1 0 . 39 z 2 )
H ( j p ) 2N
1 2
c 0 . 588
1 p . . . .
c G 𝑧 =
. . .
1
11/19/2019
Edge frequencies
1
H nor ( s )
( s 1)( s 2 s 1)
1 1
𝐻(𝑗Ω ) = = ⇒ Ω = 0.6619
Ω 𝐴
1+
Ω
0.2899
𝐻 𝑠 =
𝑠 + 1.3238 𝑠 + 0.8762 𝑠 + 0.2899
. . . .
G 𝑧 =
. . .
f p 700 Hz
Example f s 500 Hz
Approach 1
Sampling freq 2000 Hz
[𝑁, 𝑊𝑛] = 𝑏𝑢𝑡𝑡𝑜𝑟𝑑(Ω , Ω , 𝛼 , 𝛼 , ′𝑠′) ‘s’ indicates Analog domain design High-pass filter
[𝐵, 𝐴] = 𝑏𝑢𝑡𝑡𝑒𝑟(𝑁, 𝑊𝑛, ′𝑙𝑜𝑤 , ′𝑠′)
Prewarped edge frequency values to be Chebyshev p 1 dB
[𝑁𝑢𝑚, 𝐷𝑒𝑛] = 𝑏𝑖𝑙𝑖𝑛𝑒𝑎𝑟(𝐵, 𝐴, 𝑠𝑎𝑚𝑝𝑙𝑖𝑛𝑔𝑓𝑟𝑒𝑞𝐹𝑠)
entered as input.
s 32 dB
Sampling freq = 1/T (Default T=2)
1 1
p ?? s ?? p 1, s ?? ? ? N ??
k k1
[𝑁, 𝑤𝑛] = 𝑏𝑢𝑡𝑡𝑜𝑟𝑑(0.4142,1.1708,0.5,15, ′𝑠′)
ˆ tan p
[𝐵, 𝐴] = 𝑏𝑢𝑡𝑡𝑒𝑟(𝑁, 𝑊𝑛, ′𝑙𝑜𝑤′, ′𝑠′)
[𝑁𝑢𝑚, 𝐷𝑒𝑛] = 𝑏𝑖𝑙𝑖𝑛𝑒𝑎𝑟(𝐵, 𝐴, 0.5)
H LP , nor ( s ) ? H LP ( s ) ? H HP ( s ) ?
p
2
ˆ tan s
s
2 G HP ( z ) ??
p 1 0 . 45 , p 2 0 . 65
Approach 1 -> MATLAB Examples
Approach 1 s 1 0 . 3 , s 2 0 . 75
‘s’ indicates Analog domain design
[𝑁, 𝑤𝑛] = 𝑐ℎ𝑒𝑏1𝑜𝑟𝑑(Ω , Ω , 𝛼 , 𝛼 , ′𝑠′)
Bandpass filter p 1 dB
[𝐵, 𝐴] = 𝑐ℎ𝑒𝑏𝑦1(𝑁, 𝑅, 𝑊𝑛, ′𝑠′)
[𝐵𝑇, 𝐴𝑇] = 𝑙𝑝2ℎ𝑝(𝐵, 𝐴, Ω )
Prewarped edge frequency values to be
entered as input.
Butterworth s 40 dB
[𝑁𝑢𝑚, 𝐷𝑒𝑛] = 𝑏𝑖𝑙𝑖𝑛𝑒𝑎𝑟(𝐵𝑇, 𝐴𝑇, 𝑠𝑎𝑚𝑝𝑙𝑖𝑛𝑔𝑓𝑟𝑒𝑞𝐹𝑠)
Sampling freq = 1/T
1 1
p ?, s ? ? ? N ??
ˆ
ˆ k k1
p 1 ?, p 2 ?
[𝑁, 𝑤𝑛] = 𝑐ℎ𝑒𝑏1𝑜𝑟𝑑(1,1.9626105,1,32, ′𝑠′)
[𝐵, 𝐴] = 𝑐ℎ𝑒𝑏𝑦1(𝑁, 1, 𝑊𝑛, ′𝑠′) ˆ ?,
ˆ ?
[𝐵𝑇, 𝐴𝑇] = 𝑙𝑝2ℎ𝑝(𝐵, 𝐴, 1.9626105) s1 s2
[𝑁𝑢𝑚, 𝐷𝑒𝑛] = 𝑏𝑖𝑙𝑖𝑛𝑒𝑎𝑟(𝐵𝑇, 𝐴𝑇, 0.5) H LP , nor ( s ) ? H LP ( s ) ? H BP ( s ) ?
ˆ2 ?
BW ?, o
G BP ( z ) ??
2
11/19/2019
Approach 1 -> MATLAB
[𝑁, 𝑤𝑛] = 𝑏𝑢𝑡𝑡𝑜𝑟𝑑(Ω , Ω , 𝛼 , 𝛼 , ′𝑠′) ‘s’ indicates Analog domain design
[𝐵, 𝐴] = 𝑏𝑢𝑡𝑡𝑒𝑟(𝑁, 𝑊𝑛, ′𝑠′)
[𝐵𝑇, 𝐴𝑇] = 𝑙𝑝2𝑏𝑝(𝐵, 𝐴, Ω , 𝐵𝑊) Prewarped edge frequency values to be
[𝑁𝑢𝑚, 𝐷𝑒𝑛] = 𝑏𝑖𝑙𝑖𝑛𝑒𝑎𝑟(𝐵𝑇, 𝐴𝑇, 𝑠𝑎𝑚𝑝𝑙𝑖𝑛𝑔𝑓𝑟𝑒𝑞𝐹𝑠) entered as input.
Sampling freq = 1/T
Complete example
IIR BANDPASS FILTER
[𝑁, 𝑤𝑛] = 𝑏𝑢𝑡𝑡𝑜𝑟𝑑(1,2.3617,1,40, ′𝑠′)
[𝐵, 𝐴] = 𝑏𝑢𝑡𝑡𝑒𝑟(𝑁, 𝑊𝑛, ′𝑠′)
[𝐵𝑇, 𝐴𝑇] = 𝑙𝑝2𝑏𝑝(𝐵, 𝐴, 1.18056,0.7777)
[𝑁𝑢𝑚, 𝐷𝑒𝑛] = 𝑏𝑖𝑙𝑖𝑛𝑒𝑎𝑟(𝐵𝑇, 𝐴𝑇, 0.5)
Bandpass specifications Step 1 = Digital freq and prewarped freq
𝑓 = 200𝐻𝑧, 𝑓 = 300𝐻𝑧 p1 0 .4 , p 2 0 .6
s 1 0 . 1 , s 2 0 .9
𝑓 = 50𝐻𝑧, 𝑓 = 450𝐻𝑧
𝑆𝑎𝑚𝑝𝑙𝑖𝑛𝑔 𝑓𝑟𝑒𝑞 1000𝐻𝑧
ˆ
ˆ
p 1 0 . 7265 , p 2 1 . 37638
𝛼 = 3𝑑𝐵 ˆ 0 . 15838 ,
ˆ 6 . 3138
s1 s2
𝛼 = 15𝑑𝐵
Step 2 Verifying all parameters for BP filter Step 3 = LP prototype
ˆ2
sˆ2
s P
0
ˆ
BW ˆ BW 0 . 64988 , ˆ
sˆ ˆ p 1
P2 P1 P2 P1
ˆ
ˆ ˆ ˆ s 9 . 4718233
ˆ center frequency
p1 p 2 s1 s 2 1
0
ˆ 2 1
ˆ 2
ˆ 2
ˆ ˆ ˆ ˆ ˆ2
o
For 0 s P 0 s1
p 3 dB
P1 P 2 s1 s 2 0 ˆ
s1 ( BW )
s 15 dB
3
11/19/2019
Step 4 = Find order (Butterworth approx) Step 5 = Denorm (substitute cut-off freq)
1
= 9.4721
H ( j p )
2
1
1
c 1
H ( j p )
2
1
1
c 1 . 7117
𝑘
2N
1 2
2N
A2
1 p 1 s
c c
1 [N,wn] = buttord(1, 9.4721,3,15,’s’)
= 5.5468
𝑘
1
1 H LP ( s )
𝑁 = 0.7626 ≅ 1 H LP ( s ) s 1 s
s
s 1 s
s 1 . 7117
1
1
𝐻 , (𝑠) = 1 . 7117
𝑠+1 1 H LP ( s )
H LP ( s ) s 1 . 7117
s 1
Step 6 = LP to BP conversion Step 7 = Substitution
sˆ ˆ2 2
s P
0
ˆ ˆ
sˆ P 2 1 . 7117
P1 1 H BP ( s )
H BP ( s ) s 1 . 7117 s 2 1
s 1 s 2 1 0 . 64988 s
sˆ2 1 0 . 64988 s
s
ˆs0.64988
0 . 64988 s 1 . 1124 s
H BP ( s ) H BP ( s )
s 2 0 . 64988 s 1 s 2 1 . 1124 s 1
H BP ( s ) H LP ( s ) s
s 2 1
0 . 64988 s
Step 8 = BLT
0 . 64988 s 1 . 1124 s 0 . 2452 ( z 2 1) 0 . 3574 ( z 2 1)
G BP ( z ) G BP ( z ) G BP ( z ) G BP ( z )
s 0 . 64988 s 1
2
s
z 1 s 1 . 1124 s 1
2
s
z 1 z 2 0 . 5095 z 2 0 . 2852
z 1 z 1
0 . 2452 ( z 2 1) 0 . 3574 ( z 2 1) num =[0.2452 0 -0.2452]; num =[0.3574 0 -0.3574];
G BP ( z ) G BP ( z ) den =[1 0 0.5095]; den =[1 0 0.2852];
z 2 0 . 5095 z 2 0 . 2852 freqz(num,den) freqz(num,den)
Wp = [200 300]/500; Ws = [50 450]/500; Wp = [200 300]/500; Ws = [50 450]/500;
Rp = 3; Rs = 15; Rp = 3; Rs = 15;
[N,Wn] = buttord(1,9.4721,3,15,'s') [N,Wn] = buttord(1,9.4721,3,15,'s') [n,Wn] = buttord(Wp,Ws,Rp,Rs); [n,Wn] = buttord(Wp,Ws,Rp,Rs);
[b,a] = butter(N,Wn,'s') % Put Wn =1 [b,a] = butter(N,Wn,'s') [b,a] = butter(n,Wp); [b,a] = butter(n,Wn);
[bt,at]=lp2bp(b,a,1,0.64988) [bt,at]=lp2bp(b,a,1,0.64988) freqz(b,a,128,1000) freqz(b,a,128,1000)
[num,den] = bilinear(bt,at,0.5) [num,den] = bilinear(bt,at,0.5)