離散畳み込みとシステムのインパルス応答

輪講も始まったので,ディジタル信号処理の基本である,離散畳み込みとインパルス応答の関係について書いておく.

離散畳み込み(前提)

2つの離散信号x[n],\;y[n]の離散畳み込みは次式で表される.
\;\;\;\;w[n] = \sum_{k=-\infty}^{\infty} x[k] y[n-k]
この式は単純な変数変換により,次のように書き直すこともできる.
\;\;\;\;w[n] = \sum_{k=-\infty}^{\infty} x[n-k] y[k]
一般に,このような演算を表す演算子として\astを用い,
\;\;\;\;w[n] = x[n] \ast y[n] = y[n] \ast x[n]
と書くことが多い.

インパルス

アナログ信号処理においてはディラックデルタ関数\delta(t)*1を用いるが,ディジタル信号処理においてはそれをモデル化したインパルス\delta [n]を用いる.定義は以下の通り.
\;\;\;\;\delta [n] = \left\{ \begin{array} 1 & (n=0) \\ 0 & (n \neq 0) \end{array} \right.

インパルスとの離散畳み込み

任意の離散信号f[n]は,上記のインパルスと離散畳み込みを用いて表すことができる.
\;\;\;\;f[n] = \sum_{k=-\infty}^{\infty} f[k] \delta[n-k]
この式の意味するところは,任意の離散信号f[n]は,任意の時刻kにおいてのみf[k]という値を持つインパルス的な離散信号の重ね合わせで表現できるということだ.これは非常に重要な考え方なので,当たり前などと言って理解したつもりになっていてはいけない.

システムの入出力の関係

あるシステム{\cal L}に,離散信号f[n]を入力した時の出力をg[n]とすると,それらは以下の式で関係づけられる.
\;\;\;\;g[n] = {\cal L}\{f[n]\}

インパルス応答

ここでシステム{\cal L}に,インパルス\delta [n]を入力したときの出力(応答)をh[n]とする.
\;\;\;\;h[n] = {\cal L}\{\delta [n]\}
このh[n]がいわゆるインパルス応答である.そして,{\cal L}が時不変性(Time-invariance)を持つとすれば,任意のkに対して,
\;\;\;\;h[n-k] = {\cal L}\{\delta [n-k]\}
が成り立つ.

再び,離散畳み込み

入出力の関係式に,インパルスと離散畳み込みを用いた表現を用いてみる.
\;\;\;\;\begin{array}{ccl} g [n] & = & {\cal L}\{f [n] \} \\ & = & {\cal L}\{ \sum_{k=-\infty}^{\infty} f[k] \delta[n-k] \} \\ & = & \sum_{k=-\infty}^{\infty} f[k] {\cal L}\{ \delta[n-k] \} \end{array}
このような式変形ができるのは,{\cal L}が線形性(Linearity)を持つ場合に限られる.

入出力とインパルス応答

今までの議論を全てまとめる.

インパルス応答に関しては,システム{\cal L}の時不変性により,
\;\;\;\;h[n-k] = {\cal L}\{\delta [n-k]\}\;\;\;\;{\rm for any}\;k
が成り立っている.

入出力の関係に関しては,システム{\cal L}の線形性により,
\;\;\;\;g[n] =  \sum_{k=-\infty}^{\infty} f[k] {\cal L}\{ \delta[n-k] \}
が成り立っている.

両者を統合すると,
\;\;\;\;g[n] = \sum_{k=-\infty}^{\infty} f[k] h[n-k]
となり,演算子を用いれば,
\;\;\;\;g[n] = f[n] \ast h[n]
と表現できる.つまり,システムの出力信号g[n]は,入力信号f[n]とシステムのインパルス応答h[n]の離散畳み込みで表現できるということだ.

まとめ

システムのインパルス応答h[n]さえ分かっていれば,任意の入力信号f[n]に対する出力信号g[n]は次式で計算できる.
\;\;\;\;g[n] = f[n] \ast h[n]

ただし,このようにして計算できるのは,システムが線形性・時不変性を持つ場合である.

*1:実は超関数なので扱いが難しい