伝達関数の定義とフィルタの周波数特性

伝達関数の定義とフィルタの周波数特性
ここではデジタル線形フィルタの設計図とも言える伝達関数の定義を学びます。この伝達関数によってデジタル線形
フィルタの周波数的な特性を知ったり、デジタル線形フィルタ (特に IIR フィルタ) を実際にプログラム出来るようにな
ります。
1
伝達関数の定義
伝達関数とは、デジタル線形フィルタへ入力信号 x[i] を入力した時にどのような出力信号 y[i] が出てくるかを表す関
数であり、定義が 2 つあります。まずは大元の定義である定義その 1 を見てみましょう。
定義: 伝達関数の定義その 1
あるデジタル線形フィルタへ入力信号 x[i] を入力した時の出力信号を y[i] とする。
x[i] の Z 変換 X(z) と y[i] の Z 変換 Y(z) の比
H(z) =
Y(z)
X(z)
をそのデジタル線形フィルタの伝達関数という。
この式はデジタル線形フィルタならどんな x[i] を入力しても成り立ちます。そこで x[i] として n = 0 のデジタルイン
パルス信号 x[i] = δ[i] = {1, 0, 0, · · · } を選んでみると、出力信号 y[i] はインパルス応答 h[i] でしたね。
一方、n = 0 のデジタルインパルス信号の Z 変換は「Z 変換の定義と例」のテキストより X(z) = 1 でした。つまり伝
達関数の定義その 1 より H(z) = Y(z) となります。よって次の定義その 2 が導かれます。
定義: 伝達関数の定義その 2
あるデジタル線形フィルタのインパルス応答を h[i] とすると、そのデジタル線形フィルタの伝達関数 H(z) は h[i]
の Z 変換である。
この 2 つの定義はどちらも大変重要なものですので、きちんと覚えておきましょう。
2
周波数特性
前のテキストで、IIR フィルタにしろ FIR フィルタにしろ、あるデジタル線形フィルタに入力した信号がどういう風
に変化して出力されるかを知るためには伝達関数を使えば良いと書きました。そこでここでは伝達関数からそのフィル
タの周波数的な特性を求める方法について学びます。
と言っても、そんなに難しい話ではありません。伝達関数の定義その 1 を変形すると
Y(z) = H(z) · X(z)
のように、y[i] の Z 変換は、インパルス応答 h[i] の Z 変換である伝達関数と x[i] の Z 変換の (複素数どうしの) 掛け算
で表されることが分かります。さらにこの式の両辺を「(Z 変換の) 連続スペクトルの導出とその意味」のテキストで学
んだように連続スペクトルに変換します。すると
1
Y(w) = H(w) · X(w)
のように、y[i] の連続スペクトルは、h[i] の連続スペクトルと x[i] の連続スペクトルの (複素数どうしの) 掛け算で表さ
れることが分かります。従って複素数どうしの掛け算の性質から次の事が言えます。
デジタル線形フィルタの周波数特性
伝達関数が H(z) であるデジタル線形フィルタに入力信号 x[i] を入力したとき、
(1) 出力信号 y[i] に含まれる角周波数 w (rad/秒) のデジタルサイン波の振幅は、x[i] に含まれる角周波数 w (rad/秒)
のデジタルサイン波の振幅を |H(w)| 倍した値である
(2) 出力信号 y[i] に含まれる角周波数 w (rad/秒) のデジタルサイン波の位相は、x[i] に含まれる角周波数 w (rad/秒)
のデジタルサイン波の位相に ∠H(w) を足した値である
(3) |H(w)| をこのフィルタのゲインまたは振幅特性という
(4) ∠H(w) をこのフィルタの位相特性という
ゲイン |H(w)| と位相特性 ∠H(w) は Z 変換の連続スペクトルの演習で描いたような、横軸が角周波数 w である 2 つ
のグラフによって表されます。このグラフのことをボード線図と呼びます (今回の演習でも描いてみます)。
この様にしてある線形デジタルフィルタの周波数特性は伝達関数から分かるようになりましたが、まだ伝達関数から
どうやって線形デジタルフィルタ (特に IIR フィルタ) をプログラムするのかという問題が残っています。これについて
は次のテキスト以降で学びます。
2
演習
演習 1 (個人):インパルス応答 h[i] が有限長 L、h[i] = {1/L, 1/L, · · · , 1/L, 0, 0, · · · } で表されるデジタル線形フィル
タをフィルタ長 L の移動平均フィルタという。この移動平均フィルタの伝達関数 H(z) をノートに書け。なお L = 2 と
する。
演習 2 (個人):演習 1 の移動平均フィルタのゲイン |H(w)| を戻り値とする関数 double abs H( double w ) と位相特性
∠H(w) を戻り値とする関数 double arg H( double w ) を C 言語を用いて作成せよ。なお τ = 0.1 とする。
更にそれらの値を printf で出力し (フォーマットは”w, ゲイン, 位相¥n”。csv ファイルに出力すればよりベター)、ゲ
インと位相特性のグラフ (ボード線図) を表計算ソフトを使って描いて保存せよ。w の範囲は 0 ≤ w ≤ ws /2 とし、代表
点は 1 (rad/秒) 刻みとする (まずはナイキスト角周波数 ws /2 がいくつになるかから考えよう)。
演習 3 (個人):演習 2 で描いたボード線図のゲインを見ると周波数が高くなるほど出力信号に含まれるサイン波の振幅
が小さくなっていく事がわかる。このような性質をもったフィルタを何フィルタというか調べてノートに書け。
演習 4 (個人):逆に周波数が低くなるほど出力信号に含まれるサイン波の振幅が小さくなっていく性質をもったフィル
タを何フィルタというか調べてノートに書け。
演習 5 (個人):演習 2 で描いたボード線図のゲインを見て、角周波数 w = ws /3 (rad/秒) のデジタルサイン波をこの移
動平均フィルタに入力すると、振幅が大体何倍されるのかを予測せよ。
演習 6 (個人):C 言語で実際にフィルタ長 L = 2 の移動平均フィルタを作成し、このフィルタに角周波数 w = ws /3
(rad/秒) のデジタルサイン波 (振幅は 1、位相は 0 ) を入力して出てきたサイン波の振幅が予測した値とほぼ一致してい
ることを確認せよ。i の範囲は i = 0, 1, · · · , 20 とする (まずはデジタル周期 Td がいくつになるかから考えよう)。
3