FIR フィルターの基礎

5月 23, 2021
admin

1.1 「FIR フィルター」とは何ですか。

FIR フィルターは、デジタル信号処理 (DSP) アプリケーションで使用するデジタル フィルターの主要な 2 種類の 1 つで、他の種類は IIR です。

1.2 「FIR」とは何ですか。 インパルス、つまり1つの「1」サンプルの後に多数の「0」サンプルを入れると、「1」サンプルがフィルタの遅延線を通過した後に0が出てきます。 フィードバックがないと、インパルス応答が有限であることが保証されます。 したがって、「インパルス応答が有限である」という用語は「フィードバックがない」とほぼ同義である。

しかし、フィードバックが採用されていてもインパルス応答が有限であれば、そのフィルタはやはりFIRである。 例として、移動平均フィルタがあり、新しいサンプルが来るたびに、N 番目の前のサンプルが差し引かれます(フィードバックされます)。 このフィルタはフィードバックを使用してもインパルス応答が有限です。インパルスのNサンプル後、出力は常に0になります。

1.4 FIRの発音は?

F-I-Rという人もいれば、木の一種と同じように発音する人もいます。 私たちは木の方が好きです。 (F-I-Rフィルタについて話すかFIRフィルタについて話すかの違いです。)

1.5 FIRフィルタに代わるものは何ですか?

DSPフィルタにも「IIR」(Infinite Impulse Response)フィルタを使用することができます。 (dspGuruのIIR FAQを参照) IIRフィルタはフィードバックを使用するので、インパルスを入力すると、理論的には出力が無限に鳴ります。

1.6 FIRフィルタとIIRフィルタの比較は?

それぞれにメリットとデメリットがあります。 しかし全体的にはFIRフィルタの利点が欠点を上回っているので、IIRよりもずっと多く使われています。

1.6.1 FIRフィルタ(IIRフィルタと比較して)の利点は何ですか。

IIRフィルタと比較して、FIRフィルタには次の利点があります:

  • They can be easily designed to “linear phase” (and usually be). 簡単に言えば、線形位相フィルタは入力信号を遅らせますが、その位相を歪めません。
  • 実装が簡単です。 ほとんどのDSPマイクロプロセッサでは、FIR計算は1つの命令のループで行うことができます。
  • マルチレート・アプリケーションに適しています。 マルチレートとは、「デシメーション」(サンプリングレートを下げる)、「インターポレーション」(サンプリングレートを上げる)、またはその両方を意味します。 デシメーションにせよインターポレーションにせよ、FIRフィルタを使用することで計算の一部を省略することができ、重要な計算効率を得ることができます。 対照的に、IIR フィルターを使用する場合、たとえその出力が破棄されるとしても、各出力を個別に計算しなければなりません(したがって、フィードバックはフィルターに組み込まれます)
  • 望ましい数値特性を備えています。 実際には、すべての DSP フィルターは有限精度の演算、つまり限られたビット数を使用して実装する必要があります。 IIR フィルタで有限精度演算を使用すると、フィードバックの使用により大きな問題が発生しますが、フィードバックを使用しない FIR フィルタは通常より少ないビット数で実装でき、設計者は非理想演算に関連して解決すべき実用上の問題が少なくて済みます。 IIRフィルタと異なり、1.0未満の係数を使用してFIRフィルタを実装することは常に可能である。 (FIRフィルタ全体の利得は、必要に応じて出力側で調整することができます)。

1.6.2 FIRフィルタの欠点(IIRフィルタと比較して)

IIRフィルタと比較すると、FIRフィルタはあるフィルタ応答特性を得るために多くのメモリや計算を必要とするという欠点もあります。 また、ある種の応答はFIRフィルタで実装するのは現実的ではありません。

1.7 FIRフィルタを説明するときに使う用語は? (多数の「0」サンプルに続く「1」サンプルからなる FIR フィルタに「インパルス」を入力すると、1 サンプルが順番に各係数を通過して出力を形成するため、フィルタの出力は係数のセットになります)

  • Tap – FIR「タップ」は単に係数/遅延ペアを指します。 FIRタップの数(しばしば「N」と指定される)は、1)フィルタを実装するために必要なメモリ量、2)必要な計算数、3)フィルタが実行できる「フィルタリング」の量、を示します。
  • Multiply-Accumulate (MAC) – FIR のコンテキストでは、「MAC」は、対応する遅延データ サンプルで係数を乗算し、その結果を蓄積する操作です。 FIRは通常、1タップにつき1つのMACを必要とします。 ほとんどのDSPマイクロプロセッサは、1つの命令サイクルでMAC操作を実装します。
  • Transition Band – 通過帯域と阻止帯域のエッジ間の周波数帯域。 遷移帯域が狭いほど、フィルタを実装するために多くのタップが必要になります。 (
  • Delay Line – FIR 計算の「Z^-1」遅延要素を実装するメモリ要素のセット。
  • Circular Buffer – 末端で増分すると先頭に回り込み、先頭から減分すると最後に回り込むため「循環」する特殊なバッファ。 DSPマイクロプロセッサでは、FIR遅延線を介したサンプルの「移動」を実装するために、メモリ内のデータを文字通り移動させることなく円形バッファを提供することがよくあります。 新しいサンプルがバッファに追加されると、自動的に最も古いサンプルと置き換わります。
  • コメントを残す

    メールアドレスが公開されることはありません。