Upload
others
View
5
Download
0
Embed Size (px)
Citation preview
11 IIR フィルタの直接設計 演習問題解答
1. (a) 教科書の式 (11.13) から,N = 1 (奇数)のとき
qk = tan(
π/22
)exp
(jkπ
1
)
= tan(π
4
)exp(jkπ), k = 0, 1
= 1,−1 (11.1)
教科書の式 (11.15) から
pk =1 + qk
1 − qk, k = 0, 1
= ∞, 0 (11.2)
安定性のために,|p1| = |0| < 1 を選ぶと
H(z) =K(1 + z−1)1 − 0 · z−1
= K(1 + z−1) (11.3)
教科書の式 (11.17) から
K =121
(1 − 0)
=12
(11.4)
よって
H(z) =12(1 + z−1) (11.5)
図 11.1に振幅特性を示す.
� �【MATLAB11.1】%次数と遮断周波数N = 1; wc = pi/2;%N = 2; wc = pi/2;%N = 1; wc = pi/3;%N = 2; wc = pi/3;
%q平面の極の計算k = 0:2*N-1;
2 11 IIR フィルタの直接設計 演習問題解答
0 1 2 30
0.2
0.4
0.6
0.8
1
Frequency ω [rad]
¦H(ejω)¦
図 11.1 振幅特性
if mod(N,2) == 0 %Nは偶数かqk = tan(wc/2)*exp(j*(2*k+1)*pi/(2*N)) %N=偶数のとき
elseqk = tan(wc/2)*exp(j*k*pi/N) %N=奇数のとき
end
%z平面の極pk = ((1+qk)./(1-qk))’ %極pl = pk(abs(pk)<1) %安定な極 (絶対値 1以下)を選択
%伝達関数の計算zr = -ones(N,1); %零点K = abs(prod(1-pl)/2^N) %伝達関数のゲイン[num,den] = zp2tf(zr,pl,K) %零点と極,ゲインから伝達関数へ
%周波数応答の計算w = linspace(0,pi,512);H = freqz(num,den,w);
%計算結果の表示subplot(2,2,1);plot(w,abs(H)); grid;axis([0 pi 0 1.2]);xlabel(’Frequency \omega [rad]’); ylabel(’|H(e^{j\omega})|’);subplot(2,2,2);zplane(num,den);
———————————————— 以下 ディスプレイの表示 ————————————————qk =
1.0000 -1.0000 + 0.0000i
pk =1.0e+016 *1.80140.0000 - 0.0000i
3
pl =5.5511e-017 -6.1232e-017i
K =0.5000
num =0.5000 0.5000
den =1.0000 -0.0000� �
(b) 教科書の式 (11.13) から,N = 2 (偶数)のとき
qk = tan(
π/22
)exp
(j2k + 1
4π
)
= exp(
j2k + 1
4π
), k = 0, 1, 2, 3
=1√2(1 + j),
1√2(−1 + j),
1√2(−1 − j),
1√2(1 − j) (11.6)
教科書の式 (11.15) から
pk =1 + qk
1 − qk, k = 0, 1, 2, 3
= (1 +√
2)j, (−1 +√
2)j, (1 −√
2)j, (−1 −√
2)j (11.7)
安定性のために,|pk| < 1 を選ぶと
p1 = (−1 +√
2)j, p2 = (1 −√
2)j (11.8)
よって
H(z) =K(1 + z−1)2(
1 − (√
2 − 1)jz−1) (
1 + (√
2 − 1)jz−1)
=K(1 + z−1)2
1 + (√
2 − 1)2z−2(11.9)
教科書の式 (11.17) から
K =122
(1 − (
√2 − 1)j
)(1 + (
√2 − 1)j
)=
12(2 −
√2) (11.10)
よって
H(z) =12 (√
2 − 1)(1 + z−1)2
1 + (√
2 − 1)2z−2(11.11)
図 11.2に振幅特性を示す.
� �【MATLAB11.2】プログラムは (a)と同じ.
———————————————— 以下 ディスプレイの表示 ————————————————
4 11 IIR フィルタの直接設計 演習問題解答
0 1 2 30
0.2
0.4
0.6
0.8
1
Frequency ω [rad]
¦H(ejω)¦
図 11.2 振幅特性
qk =0.7071+0.7071i -0.7071+0.7071i -0.7071-0.7071i 0.7071-0.7071i
pk =0.0000 - 2.4142i0.0000 - 0.4142i0.0000 + 0.4142i0.0000 + 2.4142i
pl =0.0000 - 0.4142i0.0000 + 0.4142i
K =0.2929
num =0.2929 0.5858 0.2929
den =1.0000 -0.0000 0.1716� �
(c) 教科書の式 (11.13) から,N = 1 (奇数)のとき
qk = tan(
π/32
)exp
(jkπ
1
)
= tan(π
6
)exp (jkπ) , k = 0, 1 (11.12)
=1√3, − 1√
3(11.13)
教科書の式 (11.15) から
pk =1 + qk
1 − qk, k = 0, 1
= 2 +√
3, 2 −√
3 (11.14)
5
安定性のために,|p1| < 1 を選ぶと
H(z) =K(1 + z−1)
1 − (2 −√3) · z−1
(11.15)
教科書の式 (11.17) から
K =121
(1 − (2 −√
3)
=12(√
3 − 1) (11.16)
よって
H(z) =12 (√
3 − 1)(1 + z−1)
1 − (2 −√3) · z−1
(11.17)
図 11.3に振幅特性を示す.
0 1 2 30
0.2
0.4
0.6
0.8
1
Frequency ω [rad]
¦H(ejω)¦
図 11.3 振幅特性
� �【MATLAB11.3】プログラムは (a)と同じ.
———————————————— 以下 ディスプレイの表示 ————————————————qk =
0.5774 -0.5774 + 0.0000i
pk =3.73210.2679 - 0.0000i
pl =0.2679 - 0.0000i
K =0.3660
num =0.3660 0.3660
den =1.0000 -0.2679� �
6 11 IIR フィルタの直接設計 演習問題解答
(d) 式 (11.13) から,N = 2 (偶数)のとき
qk = tan(
π/32
)exp
(j2k + 12 · 2 π
)
=1√3
exp(
j2k + 1
4π
), k = 0, 1, 2, 3
=1√6(1 + j),
1√6(−1 + j),
1√6(−1 − j),
1√6(1 − j) (11.18)
式 (11.15) から
pk =1 + qk
1 − qk, k = 0, 1, 2, 3 (11.19)
=15(4 +
√6) +
15(3 + 2
√6)j,
15(4 −
√6) +
15(−3 + 2
√6)j,
15(4 −
√6) +
15(3 − 2
√6)j,
15(4 +
√6) +
15(−3 − 2
√6)j (11.20)
安定性のために,p1 と p2 を選ぶ.このとき
H(z) =K(1 + z−1)2
(1 − p1z−1)(1 − p2z−1)
=K(1 + z−1)2
1 − (p1 + p2)z−1 + p1p2z−2(11.21)
p1 + p2 =25(4 −
√6) (11.22)
p1p2 =15(11 − 4
√6) (11.23)
H(z) =K(1 + z−1)2
1 − 25 (4 −√
6)z−1 + 15 (11 − 4
√6)z−2
(11.24)
式 (11.17) から
K =122
(1 − p1)(1 − p2)
=12(1 − (p1 + p2) + p1p2)
=110
(4 −
√6)
(11.25)
よって
H(z) =110
(4 −√
6)(1 + z−1)2
1 − 25 (4 −√
6)z−1 + 15 (11 − 4
√6)z−2
(11.26)
図 11.4に振幅特性を示す.
� �【MATLAB11.4】プログラムは (a)と同じ.
———————————————— 以下 ディスプレイの表示 ————————————————qk =
0.4082+0.4082i -0.4082+0.4082i -0.4082-0.4082i 0.4082-0.4082i
pk =
7
0 1 2 30
0.2
0.4
0.6
0.8
1
Frequency ω [rad]
¦H(ejω)¦
図 11.4 振幅特性
1.2899 - 1.5798i0.3101 - 0.3798i0.3101 + 0.3798i1.2899 + 1.5798i
pl =0.3101 - 0.3798i0.3101 + 0.3798i
K =0.1551
num =0.1551 0.3101 0.1551
den =1.0000 -0.6202 0.2404� �
2. 以下のプログラムによって低域フィルタが直接設計法で設計される.図 11.5に設計された低域フィ
ルタの振幅特性を示す.
� �【MATLAB11.5】%直接法によるディジタル低域フィルタの設計wc = 0.4*pi; %遮断周波数ws = 0.6*pi; %阻止域端周波数As = 20; %阻止域減衰量[b,a,N] = direct(wc,ws,As) %直接設計 (分子,分母,次数)w = linspace(0,pi,512);H = freqz(b,a,w); %周波数応答の計算plot(w,20*log10(abs(H)+eps)); %振幅特性の図示axis([0 pi -60 5]); grid;xlabel(’Frequency \omega [rad]’); ylabel(’|H(e^{j\omega})| [dB]’);
———————————————— 以下 ディスプレイの表示 ————————————————b =
0.0466 0.1863 0.2795 0.1863 0.0466
8 11 IIR フィルタの直接設計 演習問題解答
a =1.0000 -0.7821 0.6800 -0.1827 0.0301
N =4� �
0 1 2 3-60
-50
-40
-30
-20
-10
0
Frequency ω [rad]
¦H(ejω)¦ [dB]
図 11.5 振幅特性
3. 以下のプログラムによって,高域フィルタ,帯域フィルタおよび帯域阻止フィルタが設計される.図
11.6に振幅特性を示す.
� �【MATLAB11.6】%直接法によるディジタルフィルタの設計%プロトタイプ低域フィルタwc = 0.4*pi %遮断周波数b = [0.0466 0.1863 0.2795 0.1863 0.0466] %分子係数a = [1 -0.7821 0.6800 -0.1827 0.0301] %分母係数
w = linspace(0,pi,512);Hl = freqz(b,a,w); %周波数応答の計算subplot(2,2,1);plot(w,20*log10(abs(Hl)+eps)); %振幅特性の図示axis([0 pi -60 5]); grid;xlabel(’Frequency \omega [rad]’); ylabel(’|H_l(e^{j\omega})| [dB]’);
%高域フィルタの設計wch = 0.8*pi; %遮断周波数[bh,ah] = freqztrans(b,a,’hp’,wc,wch) %周波数変換Hh = freqz(bh,ah,w); %周波数応答の計算subplot(2,2,2);plot(w,20*log10(abs(Hh)+eps)); %振幅特性の図示axis([0 pi -60 5]); grid;xlabel(’Frequency \omega [rad]’); ylabel(’|H_h(e^{j\omega})| [dB]’);
%帯域フィルタの設計wcbp = [0.2*pi 0.8*pi]; %遮断周波数
9
[bbp,abp] = freqztrans(b,a,’bp’,wc,wcbp) %周波数変換Hbp = freqz(bbp,abp,w); %周波数応答の計算subplot(2,2,3);plot(w,20*log10(abs(Hbp)+eps)); %振幅特性の図示axis([0 pi -60 5]); grid;xlabel(’Frequency \omega [rad]’); ylabel(’|H_{bp}(e^{j\omega})| [dB]’);
%帯域阻止フィルタの設計wcbst = [0.2*pi 0.8*pi]; %遮断周波数[bbst,abst] = freqztrans(b,a,’bs’,wc,wcbst) %周波数変換Hbst = freqz(bbst,abst,w); %周波数応答の計算subplot(2,2,4)plot(w,20*log10(abs(Hbst)+eps)); %振幅特性の図示axis([0 pi -60 5]); grid;xlabel(’Frequency \omega [rad]’); ylabel(’|H_{bst}(e^{j\omega})| [dB]’);
———————————————— 以下 ディスプレイの表示 ————————————————wc =
1.2566
b =0.0466 0.1863 0.2795 0.1863 0.0466
a =1.0000 -0.7821 0.6800 -0.1827 0.0301
bh =0.0048 -0.0192 0.0290 -0.0192 0.0048
ah =1.0000 2.3695 2.3140 1.0547 0.1874
bbp =Columns 1 through 70.1672 -0.0000 -0.6687 0.0000 1.0030 0.0000 -0.6687
Columns 8 through 9-0.0000 0.1672
abp =Columns 1 through 71.0000 -0.0000 -0.7821 0.0000 0.6800 -0.0000 -0.1826
Columns 8 through 90.0000 0.0301
bbst =Columns 1 through 70.0466 -0.0000 0.1863 -0.0000 0.2795 -0.0000 0.1863
Columns 8 through 9-0.0000 0.0466
abst =Columns 1 through 7
10 11 IIR フィルタの直接設計 演習問題解答
1.0000 -0.0000 -0.7821 0.0000 0.6800 -0.0000 -0.1827Columns 8 through 90.0000 0.0301� �
0 1 2 3-60
-50
-40
-30
-20
-10
0
Frequency ω [rad]
¦Hh(ejω)¦ [dB]
0 1 2 3-60
-50
-40
-30
-20
-10
0
Frequency ω [rad]
¦Hbp(ejω)¦ [dB]
(a) 高域フィルタ (b) 帯域フィルタ
0 1 2 3-60
-50
-40
-30
-20
-10
0
Frequency ω [rad]
¦Hbst(ejω)¦ [dB]
(c) 帯域阻止フィルタ
図 11.6 振幅特性
4. (a) 与えられた設計仕様 (ωp, Rp, ωs, As) を実現するバタワースフィルタの次数 N と遮断周波数
ωc を求める.
求める伝達関数 H(z) の周波数応答は以下のようなものである.
|H(ejω)| =1√
1 +[
tan(ω/2)tan(ωc/2)
]2N(11.27)
この周波数応答は,与えられた設計仕様を満たさなければならないから
i. ω = ωp において,通過域リップルが Rp であるために
−20 log10
1√
1 +[
tan(ωp/2)tan(ωc/2)
]2N
= Rp (11.28)
とならなければならない.
ii. ω = ωs において,阻止域減衰量が As であるために
11
−20 log10
1√
1 +[
tan(ωp/2)tan(ωc/2)
])2N
= As (11.29)
とならなければならない.
式 (11.28) と (11.29) は,それぞれ次のように書き換えられる.
2N · [log10 (tan(ωp/2)) − log10 (tan(ωc/2))] = log10(10Rp/10 − 1) (11.30)
2N · [log10 (tan(ωs/2)) − log10 (tan(ωc/2))] = log10(10As/10 − 1) (11.31)
式 (11.30) − 式 (11.31) によって,ωc を消去すれば
2N · [log10 (tan(ωp/2)) − log10 (tan(ωs/2))] = log10
(10Rp/10 − 110As/10 − 1
)(11.32)
となる.上式から,必要な次数 N が次のように求められる.
N =log10
(10Rp/10−110As/10−1
)2 log10
[tan(ωp/2)tan(ωc/2)
] (11.33)
次に遮断周波数 ωc を求める.式 (11.30) を用いると[tan(ωp/2)tan(ωc/2)
]2N
= (10Rp/10 − 1) (11.34)
上式から
ωc = 2 tan−1
(tan(ωp/2)
(10Rp/10 − 1)
)(11.35)
よって,通過域端周波数 ωp を正確に実現したい場合には,上のように遮断周波数を選ばなけれ
ばならない.
一方,式 (11.31) を用いると[tan(ωs/2)tan(ωc/2)
]2N
= (10As/10 − 1) (11.36)
上式から
ωc = 2 tan−1
(tan(ωs/2)
(10As/10 − 1)
)(11.37)
よって,阻止域端周波数 ωs を正確に実現したい場合には,上のように遮断周波数を選ばなけれ
ばならない.
(b) 式 (11.33)を用いて
N =log10
(107/10−11016/10−1
)2 log10
[tan(0.2π/2)tan(0.3π/2)
] = 2.5221 (11.38)
となる.N は整数でなければならないので,N = 3 とする.ωp を正確に実現したい場合は,式
(11.35)より
12 11 IIR フィルタの直接設計 演習問題解答
ωc = 2 tan−1
(tan(0.2π/2)(107/10 − 1)
)= 0.5045 (11.39)
となる.また,ωs を正確に実現したい場合は,式 (11.37)より
ωc = 2 tan−1
(tan(0.3π/2)(1016/10 − 1)
)= 0.5403 (11.40)
となる.
� �【MATLAB11.7】%設計仕様(通過域端周波数 wp[rad], 通過域リップル Rp[dB],% 阻止域端周波数 ws[rad], 阻止域減衰量 As[dB])% からの直接設計wp = 0.2*pi; Rp = 7; %通過域端周波数と通過域リップルws = 0.3*pi; As = 16; %阻止域端周波数と阻止域リップル
%次数と零点の計算N = 0.5*log10( (10^(Rp/10)-1) / (10^(As/10)-1) ) ...
/ log10( tan(wp/2) / tan(ws/2) )N = ceil(N)
%通過域端周波数をあわせる場合wc = 2*atan( tan(wp/2) / ( (10^(Rp/10)-1)^(1/(2*N)) ) )%阻止域端周波数をあわせる場合wc = 2*atan( tan(ws/2) / ( (10^(As/10)-1)^(1/(2*N)) ) )
———————————————— 以下 ディスプレイの表示 ————————————————N =
2.5221
N =3
wc =0.5045
wc =0.5403� �
5. (a) F (z) = Z−1−α1−αZ−1 の振幅特性を以下のように求める.
|F (ejω)|2 = F (ejω)F ∗(ejω)
=e−jω − α
1 − αe−jω· ejω − α
1 − αejω
=1 − 2α cos ω + α2
1 − 2α cos ω + α2
= 1 (11.41)
よって,|F (ejω)| = 1.
(b) z−1 = Z−1−α1−αZ−1 を α について解くと
13
α =Z−1 − z−1
1 − z−1Z−1(11.42)
z = ejθ と Z = ejω を上式に代入すれば
α =Z−1 − z−1
1 − z−1Z−1
=e−jω − e−jθ
1 − e−jωe−jθ
=ej(θ−ω)/2 − e−j(θ−ω)/2
ej(θ+ω)/2 − e−j(θ+ω)/2
=sin (θ−ω)
2
sin (θ+ω)2
(11.43)
(c) z−1 = Z−1−α1−αZ−1 を Z について解くと
Z =z + α
1 + αz(11.44)
z 平面上の極を p = rejθ とおくと,Z 平面上の極の絶対値は以下のように求められる.
|P |2 =p + α
1 + αp· p∗ + α
1 + αp∗
=r2 + 2αr cos θ + α2
1 + 2αr cos θ + α2r2(11.45)
ここで,−1 < α < 1, 0 < r < 1 であるから
r2 + 2αr cos θ + α2 − (1 + 2αr cos θ + α2r2) = (1 − α2)(r2 − 1) < 0 (11.46)
となり,(r2 + 2αr cos θ + α2)/(1 + 2αr cos θ + α2r2) < 1 である.よって,|P |2 < 1 すなわち,
|P | < 1 である.すなわち,低域-低域変換によって,z 平面上の安定な極は,Z 平面上の安定
な極に写像されるため,ディジタルフィルタの安定性は保証される.
6. (a) まず,議論を容易にするために,低域フィルタ Hl(z) は以下のような特性をもっているものと
する.
ω −π −θc 0 θc π
|Hl(ejω)| 0 1/√
2 1 1/√
2 0
問題で与えられた Hl(z) は遮断周波数 θc [rad] の低域フィルタであるので,Hl(ej0) � 1,
Hl(ej±π) � 0 であれば十分であるが,上の表のように特性を単純な数値で表しておく.これ
により,以下の議論は一般性を失うことはない.
i. Hh(Z) の遮断周波数は以下の式を満たす ω である.
|Hh(ejω)| = |Hl(−ejω)|= |Hl(ej(ω±π))|=
1√2
= |Hl(ej±θc)| (11.47)
よって,ω − π = −θc より,ω = π − θc が遮断周波数となる.また,Hh(Z) の振幅特性は
以下の表のようになり,高域特性をもつ.
14 11 IIR フィルタの直接設計 演習問題解答
ω 0 π − θc π
ω − π −π −θc 0
|Hh(ejω)| = |Hl(ej(ω−π))| 0 1/√
2 1ii. Hbp(Z) の遮断周波数は以下の式を満たす ω である.
|Hbp(ejω)| = |Hl(−ej2ω)|= |Hl(ej(2ω±π))|=
1√2
= |Hl(ej±θc)| (11.48)
よって,2ω − π = ±θc より,ω = π±θc
2 が遮断周波数となる.また,Hbp(Z) の振幅特性は
以下の表のようになり,帯域特性をもつ.ω 0 (π − θc)/2 π/2 (π + θc)/2 π
2ω − π −π −θc 0 θc π
|Hbp(ejω)| = |Hl(ej(2ω−π))| 0 1/√
2 1 1/√
2 0iii. Hbs(Z) の遮断周波数は以下の式を満たす ω である.
|Hbs(ejω)| = |Hl(ej2ω)|= |Hl(ej(2ω))|=
1√2
= |Hl(ejθc)|, |Hl(ej(2π−θc))| (11.49)
よって,2ω = θc, 2π − θc より,ω = θc
2 , 2π−θc
2 が遮断周波数となる.また,Hbs(Z) の振幅
特性は以下の表のようになり,帯域阻止特性をもつ.ω 0 θc/2 π/2 (2π − θc)/2 π
2ω 0 θc π 2π − θc 2π
|Hbs(ejω)| = |Hl(ej2ω)| 1 1/√
2 0 1/√
2 1
(b) i. 式 (11.47)より,遮断周波数 ωc は以下のようになる.
ωc = π − θc (11.50)
ii. 式 (11.48)より,遮断周波数 ωc は以下のようになる.
ωc =π ± θc
2(11.51)
iii. 式 (11.49)より,遮断周波数 ωc は以下のようになる.
ωc =θc
2,2π − θc
2(11.52)
(c) i. 遮断周波数は式 (11.50)より
ωc = π − θc = 0.75π [rad] (11.53)
図 11.7(a)に振幅特性を示す.
ii. 遮断周波数は式 (11.51)より
ωc =π ± θc
2= 0.375π, 0.625π [rad] (11.54)
図 11.7(b)に振幅特性を示す.
iii. 遮断周波数は式 (11.52)より
ωc =θc
2,2π − θc
2= 0.125π, 0.875π [rad] (11.55)
15
図 11.7(c)に振幅特性を示す.
� �【MATLAB11.8】%単純な周波数変換によるディジタルフィルタの設計%プロトタイプ低域フィルタsyms z Z; %シンボルの宣言b = [0.2929 0.2929]; %分子係数a = [1 -0.4142]; %分母係数Hlz = poly2sym(b,z)/poly2sym(a,z); %伝達関数
w = linspace(0,pi,512);Hl = freqz(b,a,w); %周波数応答の計算subplot(2,2,1);plot(w,abs(Hl)); %振幅特性の図示axis([0 pi 0 1.2]); grid;xlabel(’Frequency \omega [rad]’); ylabel(’|H_l(e^{j\omega})|’);
%高域フィルタHhZ = compose(Hlz,-Z) %Hlの zに-Zを代入HhZ = simplify(HhZ); %HhZを簡単化し,Zの有理多項式とする[BZ,AZ] = numden(HhZ); %HhZを分子・分母多項式にわけるbh = sym2poly(BZ); %分子多項式から分子係数ah = sym2poly(AZ); %分母多項式から分母係数bh = bh/ah(1) %分子係数の正規化ah = ah/ah(1) %分子係数の正規化Hh = freqz(bh,ah,w); %周波数応答の計算subplot(2,2,2);plot(w,abs(Hh)); %振幅特性の図示axis([0 pi 0 1.2]); grid;xlabel(’Frequency \omega [rad]’); ylabel(’|H_h(e^{j\omega})|’);
%帯域フィルタの設計HbpZ = compose(Hlz,-Z^2) %Hlの zに-Z^2を代入HbpZ = simplify(HbpZ);[BZ,AZ] = numden(HbpZ);bbp = sym2poly(BZ);abp = sym2poly(AZ);bbp = bbp/abp(1)abp = abp/abp(1)Hbp = freqz(bbp,abp,w); %周波数応答の計算subplot(2,2,3);plot(w,abs(Hbp)); %振幅特性の図示axis([0 pi 0 1.2]); grid;xlabel(’Frequency \omega [rad]’); ylabel(’|H_{bp}(e^{j\omega})|’);
%帯域阻止フィルタの設計HbstZ = compose(Hlz,Z^2) %Hlの zに Z^2を代入HbstZ = simplify(HbstZ);
16 11 IIR フィルタの直接設計 演習問題解答
[BZ,AZ] = numden(HbstZ);bbst = sym2poly(BZ);abst = sym2poly(AZ);bbst = bbst/abst(1)abst = abst/abst(1)Hbst = freqz(bbst,abst,w); %周波数応答の計算subplot(2,2,4)plot(w,abs(Hbst)); %振幅特性の図示axis([0 pi 0 1.2]); grid;xlabel(’Frequency \omega [rad]’); ylabel(’|H_{bst}(e^{j\omega})|’);
———————————————— 以下 ディスプレイの表示 ————————————————HhZ =(-2929/10000*Z+2929/10000)/(-Z-2071/5000)
bh =0.2929 -0.2929
ah =1.0000 0.4142
HbpZ =(-2929/10000*Z^2+2929/10000)/(-Z^2-2071/5000)
bbp =0.2929 0 -0.2929
abp =1.0000 0 0.4142
HbstZ =(2929/10000*Z^2+2929/10000)/(Z^2-2071/5000)
bbst =0.2929 0 0.2929
abst =1.0000 0 -0.4142� �
7. z−1 = − Z−1+α1+α+Z−1 において,z = ejθ, Z = ejω とおくと
e−jθ = − e−jω + α
1 + αe−jω(11.56)
よって
θ = −�(− e−jω + α
1 + αe−jω
)(11.57)
である.上式を図示すると図 11.8 のようになる.
� �【MATLAB11.9】%ディジタルフィルタの周波数変換のデモンストレーション%ftype = ’lp’; wc = 0.25*pi; %フィルタのタイプと遮断周波数をえらぶftype = ’hp’; wc = 0.75*pi;
17
0 1 2 30
0.2
0.4
0.6
0.8
1
Frequency ω [rad]
¦Hh(ejω)¦
0 1 2 30
0.2
0.4
0.6
0.8
1
Frequency ω [rad]
¦Hbp(ejω)¦
(a) 高域フィルタ (b) 帯域フィルタ
0 1 2 30
0.2
0.4
0.6
0.8
1
Frequency ω [rad]
¦Hbst(ejω)¦
(c) 帯域阻止フィルタ
図 11.7 振幅特性
%ftype = ’bp’; wc = [0.5*pi 0.75*pi];%ftype = ’bs’; wc = [0.25*pi 0.5*pi];
%原型低域ディジタルフィルタN = 4; %フィルタ次数thetac = 0.5*pi; %原型フィルタの遮断周波数[num den] = butter(N,thetac/pi); %バタワースフィルタをつかうtheta = linspace(-pi,pi,1024);dtheta = theta(2)-theta(1);Hz = freqz(num,den,theta); %原型フィルタの周波数特性subplot(2,2,1);plot(abs(Hz),theta); hold on;
%フィルタタイプにわけて遮断周波数を図示するswitch ftype
case{’lp’} %低域フィルタthetac_point = round((pi+thetac)/dtheta)+1;plot(abs(Hz(thetac_point)),thetac,’.’); %遮断周波数
case{’hp’} %高域フィルタ
18 11 IIR フィルタの直接設計 演習問題解答
thetac_point = round((pi+thetac)/dtheta)+1;plot(abs(Hz(thetac_point)),-thetac,’.’); %遮断周波数
case{’bp’} %帯域フィルタthetac_pointp = round((pi+thetac)/dtheta)+1; %正の遮断周波数thetac_pointm = round((pi-thetac)/dtheta); %負の遮断周波数plot(abs(Hz(thetac_pointp)), -thetac,’.’); %遮断周波数 1plot(abs(Hz(thetac_pointm)),thetac,’o’); %遮断周波数 2
case{’bs’} %帯域阻止フィルタthetac_pointp = round((pi+thetac)/dtheta)+1; %正の遮断周波数thetac_pointm = round((pi-thetac)/dtheta); %負の遮断周波数plot(abs(Hz(thetac_pointp)), thetac,’.’); %遮断周波数 1plot(abs(Hz(thetac_pointm)),-thetac,’o’); %遮断周波数 2
otherwiseerror(’ftype error 1’);
endaxis([0 1.2 -pi pi]);xlabel(’|H_l(e^{j\theta})|’); ylabel(’Frequency \theta [rad]’);hold off;
%周波数変換のダイアグラム(写像)subplot(2,2,2);w = linspace(-pi,pi,1024);switch ftypecase{’lp’} %低域-低域変換alpha=sin ((thetac-wc)/2) / sin((thetac+wc)/2)theta=-angle((exp(-j*w)-alpha )./ (1-alpha*exp(-j*w)));plot(w,theta); hold on;plot(wc,thetac,’.’); %遮断周波数
case{’hp’} %低域-高域変換alpha = -cos((wc+thetac)/2) / cos((wc-thetac)/2)theta=-angle(-(exp(-j*w)+alpha )./(1+alpha*exp(-j*w)));plot(w,theta); hold on;plot(wc,-thetac,’.’); %遮断周波数
case{’bp’} %低域-帯域変換alpha = cos((wc(2)+wc(1))/2) / cos((wc(2)-wc(1))/2);k = cot((wc(2)-wc(1))/2)*tan(thetac/2);theta = -angle( ...-( exp(-j*2*w) -2*alpha*k/(k+1)*exp(-j*w)+(k-1)/(k+1) ) ./ ...( (k-1)/(k+1)*exp(-j*2*w) - 2*alpha*k/(k+1)*exp(-j*w)+1 ) ...
);plot(w,theta); hold on;plot(wc(1),-thetac,’.’); %遮断周波数plot(wc(2),thetac,’o’); %遮断周波数
19
case{’bs’} %低域-帯域阻止変換alpha = cos((wc(2)+wc(1))/2) / cos((wc(2)-wc(1))/2);k = tan((wc(2)-wc(1))/2)*tan(thetac/2);theta = - angle( ...
(exp(-j*2*w) -2*alpha/(1+k)*exp(-j*w)+(1-k)/(1+k) ) ./ ...( (1-k)/(1+k)*exp(-j*2*w) - 2*alpha/(1+k)*exp(-j*w) +1 ) ...
);plot(w,theta); hold on;plot(wc(1),thetac,’.’); %遮断周波数plot(wc(2),-thetac,’o’); %遮断周波数
otherwiseerror(’ftype error 2’);
endaxis([-pi pi -pi pi]);xlabel(’\omega’); ylabel(’\theta’);hold off;%周波数変換による所望のフィルタの設計[dnum dden] = freqztrans(num,den,ftype,thetac,wc);dw = w(2)-w(1);Hzd = freqz(dnum,dden,w); %所望のフィルタの周波数特性subplot(2,2,4);plot(w,abs(Hzd)); hold on;
%フィルタタイプごとに遮断周波数をひくswitch ftypecase{’lp’} %低域wc_point = round((pi+wc)/dw)+1;plot(wc,abs(Hzd(wc_point)),’.’); %遮断周波数
case{’hp’} %高域wc_point = round((pi+wc)/dw)+1;plot(wc,abs(Hzd(wc_point)),’.’); %遮断周波数
case{’bp’} %帯域wc_point1 = round((pi+wc(1))/dw)+1;wc_point2 = round((pi+wc(2))/dw)+1;plot(wc(1),abs(Hzd(wc_point1)),’.’); %遮断周波数 1plot(wc(2),abs(Hzd(wc_point2)),’o’); %遮断周波数 2
case{’bs’} %帯域阻止wc_point1 = round((pi+wc(1))/dw)+1;wc_point2 = round((pi+wc(2))/dw)+1;plot(wc(1),abs(Hzd(wc_point1)),’.’); %遮断周波数 1plot(wc(2),abs(Hzd(wc_point2)),’o’); %遮断周波数 2
otherwise disp(’ftype error 3’);
20 11 IIR フィルタの直接設計 演習問題解答
endaxis([-pi pi 0 1.2]);xlabel(’Frequency \omega [rad]’); ylabel(’|H(e^{j\omega})|’);hold off;� �
0 0.5 1
-2
0
2
¦Hl(e jθ)¦
Frequency
θ [rad]
-2 0 2
-2
0
2
ω
θ
-2 0 20
0.5
1
Frequency ω [rad]¦H(ejω)¦
図 11.8 低域-高域変換
8. (a) 低域-帯域変換
z−1 = − Z−2− 2αkk+1 Z−1+ k−1
k+1k−1k+1 Z−2− 2αk
k+1 Z−1+1において,z = ejθ, Z = ejω とおくと
e−jθ = − e−2jω − 2αkk+1e−jω + k−1
k+1k−1k+1e−2jω − 2αk
k+1e−jω + 1(11.58)
よって
θ = −�
(− e−2jω − 2αk
k+1e−jω + k−1k+1
k−1k+1e−2jω − 2αk
k+1e−jω + 1
)(11.59)
である.上式を図示すると図 11.9 のようになる.
(b) 低域-帯域阻止変換
z−1 =Z−2− 2α
1+k Z−1+ 1−k1+k
1−k1+k Z−2− 2α
1+k Z−1+1において,z = ejθ, Z = ejω とおくと
e−jθ =e−2jω − 2α
1+ke−jω + 1−k1+k
1−k1+k e−2jω − 2α
1+ke−jω + 1(11.60)
よって
θ = −�e−2jω − 2α
1+ke−jω + 1−k1+k
1−k1+k e−2jω − 2α
1+ke−jω + 1(11.61)
である.上式を図示すると図 11.10 のようになる.
21
0 0.5 1
-2
0
2
¦Hl(e jθ)¦
Frequency
θ [rad]
-2 0 2
-2
0
2
ω
θ
-2 0 20
0.5
1
Frequency ω [rad]
¦H(ejω)¦
図 11.9 低域-帯域変換
0 0.5 1
-2
0
2
¦Hl(e jθ)¦
Frequency
θ [rad]
-2 0 2
-2
0
2
ω
θ
-2 0 20
0.5
1
Frequency ω [rad]
¦H(ejω)¦
図 11.10 低域-帯域阻止変換