離散 LTI システム
インパルス応答で雑音を削る
上はこのデジタルフィルタのインパルス応答 h[n] = (1−α)αⁿ だ。インパルス δ[n] を一つ入れると、この形がそのまま出る。下で、薄い線が雑音混じりの入力 x[n](ステップ + 雑音)、金色の棒がその出力 y[n] だ。出力は h[n] を入力の上で滑らせて掛けて足した離散畳み込みだ。平滑の強さ α を上げて h[n] の尾を長く伸ばすと、近傍をより多く平均して雑音が削れる。ただし上げすぎるとステップの角がつぶれる。
インパルス応答がシステムのすべて
離散 LTI システムは線形(入力を足せば出力も足される)で時不変(入力を遅らせれば出力も同じだけ遅れる)なシステムだ。こうしたシステムはインパルス応答 h[n] 一つで完全に決まる。インパルス δ[n](n=0 で 1、他は 0)を入れたときに出る出力が h[n] だ。なぜこれ一つで足りるのか。どんな入力 x[n] も複数のインパルスの和 Σ x[k]·δ[n−k] に分けられるからだ。線形・時不変なので各インパルス x[k]δ[n−k] の出力は x[k]·h[n−k] であり、これらをすべて足せば全体の出力になる。
出力は滑る加重和
その和 y[n] = Σₖ h[k]·x[n−k] が離散畳み込みだ。各出力時刻 n ごとに、インパルス応答 h を時間反転して入力の n の位置に重ね、重なった標本同士を掛けてすべて足す。そして一こま移して次の出力を求める。B 章の連続畳み込みで積分 ∫ が和 Σ に、曲線が標本に変わっただけで原理は同じだ。h[n] が短ければ近い数点だけ、長ければより遠い過去まで混ぜる。滑らかな平均形の h は雑音を削る低域通過、差分形の h は変化を強める高域通過になる。
FIR と IIR、そして差分方程式
インパルス応答が有限の長さで終われば FIR(有限インパルス応答)フィルタだ。長さ M の移動平均 h[n] = 1/M(n=0..M−1)が代表例で、入力標本だけを加重和するので常に安定だ。一方、過去の出力を戻す再帰式なら、インパルス応答が無限に続く IIR(無限インパルス応答)だ。最初の画面のフィルタ y[n] = α·y[n−1] + (1−α)·x[n] がその例で、インパルス応答が h[n] = (1−α)αⁿ なので永遠に尾を引く。この再帰式が差分方程式で、E3 のように z 変換すると H(z) = (1−α)/(1 − α z⁻¹)、極が z = α だ。極が単位円の内(α<1)にあってこそインパルス応答が収まり安定する。少ない係数で長い応答を出す IIR は効率的だが、極が円の外へ出ると発散しうる。
最初の画面に戻ると
上で見たインパルス応答 h[n] = (1−α)αⁿ 一つが、このフィルタのすべてだった。平滑の強さ α を上げて h[n] の尾を伸ばすと、離散畳み込みがより多くの近傍を平均して出力の雑音が削れ、上げすぎるとステップの角がつぶれた。出力は常に y[n] = Σₖ h[k]x[n−k]、すなわち h を入力の上で滑らせた加重和だった。インパルス一つへの応答さえ分かれば、それを滑らせてどんな入力の出力も作れる。離散 LTI システムのすべてが、その小さな h[n] の中に収まっていたのだ。
時間の上で畳み込みによって濾した結果は見たが、このフィルタが正確にどの周波数を生かしどの周波数を殺すかは、まだ数で見ていない。次のユニットDTFT と DFTでは、インパルス応答を周波数へ広げる。インパルス応答を単位円上 z = ejω で評価したものが DTFT、すなわち離散システムの周波数応答だ。平均形 h の DTFT は高い ω で小さくなる低域通過の形で出る。そして無限の DTFT をコンピュータが実際に計算できるよう有限個の周波数で標本化したものが DFT で、それを速く計算するアルゴリズムが FFT だ。畳み込みは周波数領域では再び掛け算になる。