LTIシステムの動作はインパルス応答によって記述されますが、ディジタルフィルタに求められる動作は特定の周波数帯域を通過し、それ以外の周波数帯域を遮断するということが求められます。したがって、周波数軸上でのシステムの応答を考えます。
複素指数関数入力に対する応答
任意の周波数の正弦波入力に対する応答を計算する場合、複素正弦波が用いられます。これは線形なシステムでは、正弦波入力に対して、出力周波数は変化せず、振幅と位相のみを変化させるため、振幅と位相の両方を一度に扱える複素数が便利という理由で用いられています。
角周波数\(\omega\)の複素指数関数\(e^{j\omega n}\)を入力したときのディジタルフィルタの入出力関係を考えます。このとき、入力は次式で与えられます。
$$x[n] = e^{j\omega n}$$
この入力信号をディジタルフィルタ\(h[n]\)に入力することを考えます。このとき、畳み込みの式から次式が得られます。
$$y[n] = \sum_{k=-\infty}^{\infty}h[k]x[n-k]$$
$$=\sum_{k=-\infty}^{\infty}h[k]e^{j\omega (n-k)}$$
$$=\{ \sum_{k=-\infty}^{\infty} h[k]e^{-j\omega k}\} e^{j\omega n}$$
ここで、
$$H[\omega] = \sum_{k=-\infty}^{\infty} h[k]e^{-j\omega k} $$
とすると、ディジタルフィルタの出力を次式で記述することができます。
$$y[n] = H[\omega] e^{j\omega n}$$
上式に対して、複素数の振幅\(|H[\omega]|\)と位相\(\theta[\omega]\)を用いて表すと次式のようになります。
$$H[\omega] = |H[\omega]|e^{j\theta[\omega]}$$
したがって、出力は
$$y[n] = H[\omega] e^{j\omega n}$$
$$ = |H[\omega]|e^{j\theta[\omega]}e^{j\omega n}$$
$$ = |H[\omega]|e^{j\omega(\theta[\omega]/\omega+n)}$$
この式からも、出力と入力は同じ周波数を持つことがわかります。
さらに、出力の振幅は\(|H[\omega]|\)によって表されていることもわかります。また、入力に比べて出力は時間的に\(\theta[\omega]/\omega\)だけ進んでおり、逆の表現では、入力に比べて出力は\(-\theta[\omega]/\omega\)だけ遅れていることを表しています。
このことから、ディジタルフィルタに複素正弦波を入力したときの応答は\(H[\omega]\)でわかります。このことから、\(H[\omega]\)のことをディジタルフィルタの周波数応答と呼ばれます。これに色々な角周波数を入力してみて出力を調べてみれば、ある角周波数\(\omega\)に対する応答がわかります。
周波数応答は一般に複素数です。また、特にその応答の大きさ(振幅)を表す\(|H[\omega]|\)は振幅特性と呼ばれ、\(\theta[\omega]\)を位相特性と呼ばれます。
フーリエ変換の立場からは、\(|H[\omega]|\)と\(\theta[\omega]\)はそれぞれ、振幅スペクトルと位相スペクトルと呼ばれます。
差分方程式表現によるディジタルフィルタの周波数応答
ディジタルフィルタの差分方程式は次式で表されます。
$$y[n] = – \sum_{k=1}^{N} a_k y[n-k] + \sum_{k=0}^{N} b_k x[n]$$
これに対して、複素正弦波を入力することを考えます。\(x[n] = e^{j\omega n}\)とおくと、\(x[n-k]=e^{j\omega (n-k)}\)および\(y[n-k] = y[n] e^{-j\omega k}\)となります。
再帰形フィルタ(IIRフィルタ)の周波数応答
上式より、再帰形フィルタに複素正弦波を入力することを考えると、次式が得られます。
$$y[n] = -\sum_{k=1}^{N} a_k y[n] e^{-j\omega k} + \sum_{k=0}^{N} b_k e^{j\omega (n-k)}$$
これを式変形すると、
$$y[n] + \sum_{k=1}^N a_k y[n]e^{-j\omega k} = \sum_{k=0}^{N} b_k e^{j\omega (n-k)}$$
$$y[n](1 + \sum_{k=1}^N a_k e^{-j\omega k}) = \sum_{k=0}^{N} b_k e^{-j\omega k}e^{j\omega n}$$
$$y[n] = \frac{\sum_{k=0}^{N} b_k e^{-j\omega k}}{1 + \sum_{k=1}^N a_k e^{-j\omega k}} e^{j\omega n}$$
となります。ここで、
$$H[\omega] = \frac{\sum_{k=0}^{N} b_k e^{-j\omega k}}{1 + \sum_{k=1}^N a_k e^{-j\omega k}}$$
とおくと、
$$y[n] = H[\omega] e^{j\omega n}$$
となります。上式で与えられる\(H[\omega]\)が再帰形フィルタの周波数応答を表します。この式からわかるように、係数\(a_k, b_k\)によって周波数応答が決定されます。
非再帰形フィルタ(FIRフィルタ)の周波数応答
非再帰形の周波数応答は上式の\(a_k=0\)とすると得ることができます。
$$H[\omega] = \sum_{k=0}^{N} b_k e^{-j\omega k}$$
非再帰形フィルタのインパルス応答は\(h[k] = b[k]\)であることを用いると、上の式はインパルス応答を用いて次式で表されます。
$$H[\omega] = \sum_{k=0}^{N} h[k] e^{-j\omega k}$$
伝達関数(Transfer function)
ディジタルフィルタの入力\(x[n]\)のz変換\(X[z]\)に対する、出力\(y[n]\)のz変換\(Y[z]\)の比、
$$\frac{Y[z]}{X[z]}$$
を、ディジタルフィルタの伝達関数(transfer function)といいます。
上記で、示したディジタルフィルタの差分方程式を考えます。この方程式の両辺にz変換を適用することを考えます。
$$y[n] = – \sum_{k=1}^{N} a_k y[n-k] + \sum_{k=0}^{N} b_k x[n]$$
$$Z[y[z]] = \sum_{n=0}^{\infty}(- \sum_{k=1}^{N} a_k y[n-k] + \sum_{k=0}^{N} b_k x[n])z^{-n}$$
線形性より
$$ = – \sum_{k=1}^{N} a_k \sum_{n=0}^{\infty} y[n-k] z^{-n} + \sum_{k=0}^{N} b_k \sum_{n=0}^{\infty} x[n] z^{-n}$$
ここで、線形性と推移の性質から
$$Y[z] = – \sum_{k=1}^{N} a_k Y[z] z^{-k} + \sum_{k=0}^{N} b_k X[z] z^{-k}$$
したがって、ディジタルフィルタの伝達関数\(H[z] = Y[z]/X[z]\)は、
$$H[z] = \frac{Y[z]}{X[z]} = \frac{\sum_{k=0}^{N} b_k X[z] z^{-k}}{1 + \sum_{k=1}^{N} a_k Y[z] z^{-k} }$$
と求めることができます。このように表すと、伝達関数\(H[z]\)は入力\(X[z]\)を\(H[z]\)倍だけ増幅して出力\(Y[z]\)が得られるという解釈ができます。この意味でディジタルフィルタの増幅率と考えることができます。
ただし、増幅率はH[z]なので、定数ではなくzの関数ということになります。
ディジタルフィルタの伝達関数\(H[z]\)に\(z = e^{j\omega}\)を代入すると、関数\(H[z]\)はディジタルフィルタの周波数応答となる。これは、再帰形フィルタの周波数応答と同じ式になっています。
コメント