FIR フィルターの基礎
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フィルタで実装するのは現実的ではありません。