FIRフィルタとは

えふあいあーるふぃるた

インパルス応答が有限の長さで終わるデジタルフィルタ(有限インパルス応答フィルタ)。現在と過去の N 個の入力に係数を掛けて足し合わせる y[n] = Σh[k]x[n − k] で計算し、出力の帰還をもたない。極が z = 0 にしかないので係数によらず常に安定で、係数を左右対称にすると、すべての周波数の成分が (N − 1)/2 サンプルだけ遅れる直線位相になる。一方、急峻な特性を得るには多くのタップが必要で、出力1サンプルごとにタップ数と同じ回数の積和演算を行う。

「FIRフィルタ」は、2分野の9問の練習問題に出てきます(デジタル信号処理の基礎, AD/DA変換など)。

この用語の分野: デジタル信号処理の基礎

構造と演算量

入力を1サンプルずつ遅らせる遅延素子を並べ、各段の値に係数を掛けて足し合わせる構造で、遅延素子の並びをタップ付き遅延線と呼びます。Nタップなら出力1サンプルあたり N 回の積和が必要で、例えば256タップを44.1 kHzで動かすと、1秒あたり約1130万回の積和になります。DSPが1サイクルで積和を行う命令や専用の積和器をもつのは、このためです。

設計の方法

理想的な特性のインパルス応答(ローパスなら sinc 関数)を有限の長さで切り出し、窓関数を掛けて端の影響を和らげる窓関数法が、最も基本的な方法です。指定した周波数特性からの誤差の最大値を最小にするパークス・マクレラン法もよく使われます。いずれも、タップ数を増やすほど理想の特性に近づけられます。

直線位相と遅延

係数が対称なFIRフィルタは、すべての周波数の成分が同じ時間だけ遅れるので、パルスや音声の波形の形をくずしません。その遅れは (N − 1)/2 サンプルで、101タップを48 kHzで動かすと約1.04 msになります。遅延が問題になる用途では、直線位相をあきらめて、遅れの小さい最小位相のFIRフィルタを使うこともあります。

FIRフィルタの練習問題に挑戦

サンプリング周波数8 kHzで動作する、伝達関数 H(z) = 1 + z⁻²(y[n] = x[n] + x[n − 2])のFIRフィルタがある。出力が0になる正弦波の入力の周波数として正しいものはどれか。

  1. A1 kHz
  2. B2 kHz
  3. C4 kHz
答えと解説を見る

正解:B. 2 kHz

1 + z⁻² = 0 の解、つまり零点は z² = −1 から z = ±j で、単位円の上の ω = ±π/2 にあります。ω = π/2 は f = ω·fs/(2π) = fs/4 = 2 kHz に当たり、2 kHz の正弦波は2サンプル前の値とちょうど符号が逆になるので、足すと0になります。零点が単位円の上にあると、その周波数を完全に取り除くノッチ(切り欠き)ができます。4 kHz(ナイキスト周波数)では z⁻² = 1 なので、利得は2になります。

FIRフィルタ(有限インパルス応答フィルタ)の特徴として正しいものはどれか。

  1. A出力を入力の側に戻す帰還をもつので、少ない係数で急峻な特性が得られる
  2. Bインパルス応答が無限に続くので、係数の量子化によって不安定になりやすい
  3. C帰還をもたないので常に安定で、係数を対称にすれば直線位相にできる
答えと解説を見る

正解:C. 帰還をもたないので常に安定で、係数を対称にすれば直線位相にできる

FIRフィルタは、現在と過去の入力に係数を掛けて足すだけで、出力の帰還をもちません。インパルス応答は係数の数(タップ数)で終わり、極は z = 0 にしかないので、係数がどんな値でも安定です。係数を左右対称にすると、すべての周波数の成分が同じ時間だけ遅れる直線位相になり、波形の形をくずしません。その代わり、急峻な特性を得るには、IIRフィルタより多くのタップが必要です。

よくある質問

FIRフィルタとIIRフィルタはどう使い分けますか?

位相を直線にしたい、確実に安定にしたい、係数の量子化の影響を受けにくくしたい、という場合はFIRフィルタが向きます。少ない演算量と小さな遅延で急峻な特性を得たい場合はIIRフィルタが向きますが、位相は直線にならず、係数の量子化による不安定に注意が必要です。

タップ数はどのように決まりますか?

遷移帯域(通過帯域から阻止帯域までの幅)が狭いほど、また阻止帯域の減衰を大きくするほど、多くのタップが必要です。目安として、タップ数は「サンプリング周波数 ÷ 遷移帯域の幅」に比例し、必要な減衰量が大きいほど、その比例の係数も大きくなります。

解説の中の「FIRフィルタ」

「FIRフィルタ」が出てくる問題(9問)

  1. サンプリング周波数8 kHzで動作する、伝達関数 H(z) = 1 + z⁻²(y[n] = x[n] + x[n − 2])のFIRフィルタがある。出力が0になる正弦波の入力の周波数として正しいものはどれか。
  2. FIRフィルタ(有限インパルス応答フィルタ)の特徴として正しいものはどれか。
  3. 次の係数をもつ5タップのFIRフィルタのうち、直線位相(線形位相)の特性をもつものはどれか。
  4. 101タップの直線位相FIRフィルタ(係数が左右対称)の群遅延として正しいものはどれか。
  5. 256タップのFIRフィルタを、サンプリング周波数44.1 kHzで実時間に動かす。1秒あたりに必要な積和演算(MAC)の回数として正しいものはどれか。
  6. サンプリング周波数48 kHzで、1サンプルごとにFIRフィルタの出力を計算する。クロック200 MHzで1サイクルに1回の積和ができるプロセッサを使い、ほかの処理の時間を無視するとき、実時間で処理できるタップ数の上限に最も近いものはどれか。
  7. 16ビットの固定小数点のデータと係数の積を32ビットで表し、その積を256個たし合わせるFIRフィルタの計算がある。途中で桁あふれが起こらないことを保証するのに必要な、アキュムレータのビット数の最小値として正しいものはどれか。
  8. ΔΣ型ADコンバータで、高速で粗い量子化出力を、低いサンプリング周波数の高分解能なデータに変換するデジタル回路はどれか。
  9. 次数の高いIIRフィルタを、係数のビット数が限られた固定小数点で実装するときの注意として正しいものはどれか。

デジタル信号処理の基礎の参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

関連する用語

直線位相 IIRフィルタ 固定小数点 ナイキスト周波数 インパルス応答 群遅延 割り込み 飽和演算 デシメーション ΔΣ型ADC

用語集の一覧へ