FIRフィルタの周波数応答
タップ係数 h[n] を上下させると、インパルス応答(時間)と振幅特性(周波数)が同時に動きます。「係数が応答を決める」を直結で体感します。
プリセット(よくあるフィルタの係数)
11
0.20
↑ プリセットと N・fc で係数を生成。下の係数バーをマウス/指で上下にドラッグすると、任意の係数に手で変えられます。
タップ数 N
—
フィルタ種別(推定)
—
DC利得 H(0)
—
−6dB 遮断 fc
—
インパルス応答 h[n](バーをドラッグ)
振幅特性 |H(f)|(周波数応答)
FIRフィルタ(有限インパルス応答)は、過去 N 個の入力に重み
この重みの並び
つまり「どの周波数を通し、どこで遮断するか」は係数の形だけで決まります。バーを上下させて、低い周波数だけ残る(ローパス)/高い周波数だけ残る(ハイパス)様子を確かめましょう。
h[n] を掛けて足すだけの仕組みです:y[k] = Σ h[n]·x[k−n]。この重みの並び
h[0..N−1] がインパルス応答そのもので、それを周波数で見たものが周波数応答 H(f) です。両者は離散時間フーリエ変換で1対1に対応します(下のグラフの振幅特性 |H(f)| はその絶対値)。つまり「どの周波数を通し、どこで遮断するか」は係数の形だけで決まります。バーを上下させて、低い周波数だけ残る(ローパス)/高い周波数だけ残る(ハイパス)様子を確かめましょう。
いま何が起きている?
ここがポイント
- 係数 ⇔ 周波数応答 ──
h[n]とその周波数応答H(f)はフーリエ変換で1対1に対応する(グラフの|H(f)|はその絶対値)。 - 遮断は係数の形で決まる ──
fcを上げると通過域が広がり、係数の振動が細かくなる(sinc が縮む)。 - N を増やすほど切れ味が鋭い ── タップが多いほど遷移帯が狭くなり、理想に近づく。
- 窓関数で副ローブを抑える ── 窓を掛けると阻止域の漏れ(リップル)が小さくなる代わり、遷移帯はやや広がる。