
信号処理において、デジタルフィルタとは、サンプリングされた離散時間信号に対して数学演算を行い、その信号の特定の側面を減衰または増強するシステムである。これは、もう一つの主要な電子フィルタであるアナログフィルタとは対照的である。アナログフィルタは、通常、連続時間アナログ信号に対して動作する電子回路である。
デジタルフィルタシステムは通常、入力信号をサンプリングするアナログ-デジタル変換器(ADC)と、それに続くマイクロプロセッサ、およびデータやフィルタ係数などを格納するメモリなどの周辺コンポーネントで構成されます。マイクロプロセッサ上で実行されるプログラム命令(ソフトウェア)は、ADCから受信した数値に対して必要な数学演算を実行することでデジタルフィルタを実装します。一部の高性能アプリケーションでは、汎用マイクロプロセッサの代わりにFPGAまたはASIC 、あるいはフィルタリングなどの処理を高速化するための特定の並列アーキテクチャを備えた専用デジタル信号プロセッサ(DSP)が使用されます。[ 1 ] [ 2 ]
デジタルフィルタは、その複雑さゆえに同等のアナログフィルタよりも高価になる場合があるが、アナログフィルタでは実現不可能または非現実的な多くの設計を実用化できる。デジタルフィルタは高次のものを作ることができ、多くの場合、線形位相応答を可能にする有限インパルス応答フィルタである。リアルタイムアナログシステムで使用する場合、デジタルフィルタは、関連するアナログ-デジタル変換およびデジタル-アナログ変換、アンチエイリアシングフィルタ、または実装上のその他の遅延のために、レイテンシー(入力と応答の時間差)が問題となることがある。
デジタルフィルターは一般的であり、ラジオ、携帯電話、AVレシーバーなどの日常的な電子機器に不可欠な要素である。
デジタルフィルタは、その伝達関数、あるいはそれと同等の差分方程式によって特徴づけられます。伝達関数を数学的に解析することで、入力に対する応答を記述できます。したがって、フィルタの設計とは、問題に適した仕様(例えば、特定のカットオフ周波数を持つ2次ローパスフィルタ)を策定し、その仕様を満たす伝達関数を作成することから成ります。
線形時不変デジタルフィルタの伝達関数は、Z 領域の伝達関数として表現できます。因果的である場合、その形式は次のようになります。[ 3 ]
ここで、フィルタの次数はNまたはMのうち大きい方である。この伝達関数の詳細については、Z変換のLCCD方程式を参照のこと。
これは再帰フィルタの形式であり、通常は無限インパルス応答(IIR)特性を示しますが、分母を1に等しくする、つまりフィードバックをなくすと、有限インパルス応答(FIR)フィルタになります。
特定のデジタルフィルタの動作を解析するために、さまざまな数学的手法が用いられる。これらの解析手法の多くは設計にも用いられ、フィルタ仕様の基礎となることが多い。
一般的に、フィルタの特性は、インパルス応答のような単純な入力に対する応答を計算することによって評価されます。そして、この情報を拡張することで、より複雑な信号に対するフィルタの応答を計算することができます。
インパルス応答は、しばしば次のように表記されます。またはは、フィルタがクロネッカーデルタ関数にどのように応答するかを示す尺度です。[ 4 ]例えば、差分方程式が与えられた場合、 と設定します。そしてのためにそして評価します。インパルス応答はフィルタの動作特性を表します。デジタルフィルタは通常、無限インパルス応答(IIR)と有限インパルス応答(FIR)の2つのカテゴリに分類されます。線形時不変FIRフィルタの場合、インパルス応答はフィルタ係数のシーケンスと完全に等しくなり、したがって次のようになります。
一方、IIRフィルタは再帰的であり、出力は現在および過去の入力、そして過去の出力の両方に依存します。IIRフィルタの一般的な形式は次のとおりです。
インパルス応答をプロットすると、フィルタが突然の瞬間的な外乱にどのように反応するかがわかります。IIRフィルタは常に再帰的です。再帰フィルタでも有限のインパルス応答を持つことは可能ですが、非再帰フィルタは常に有限のインパルス応答を持ちます。移動平均(MA)フィルタは、再帰的にも非再帰的にも実装できる例です。
離散時間システムでは、デジタルフィルタは、 Z変換を介して伝達関数を線形定数係数差分方程式(LCCD)に変換することによって実装されることが多い。離散周波数領域の伝達関数は、2つの多項式の比として表される。例えば、次のようになる。
これは拡張版です。
そして対応するフィルタを因果的にするために、分子と分母を最高次の:
分母の係数、は「フィードバック」係数であり、分子の係数は「フィードフォワード」係数である。結果として得られる線形差分方程式は次のとおりです。
または、上記の例の場合:
用語の並べ替え:
次に、逆z変換を行うことで:
そして最後に、:
この式は、次の出力サンプルを計算する方法を示しています。過去の成果に関して言えば、現在の入力、、そして過去の入力、この形式の入力にフィルタを適用することは、評価の正確な順序に応じて、直接形式IまたはII(下記参照)の実現と同等です。
例えば、上記の式をコードに実装するコンピュータプログラマーが使う場合、平易な言葉で次のように説明できます。
= 出力、またはフィルタリングされた値 = 入力、または入力された生の値 = サンプル番号、反復番号、または期間番号
したがって:
= 現在のフィルタリングされた(出力)値 = 最後にフィルタリングされた(出力)値 = 最後から2番目のフィルタリングされた(出力)値 = 現在の生入力値 = 最後の生入力値 = 最後から2番目の生入力値
フィルターは理解しやすく計算も容易であるが、その設計と実装における実際的な課題は大きく、多くの高度な研究の対象となっている。
デジタルフィルタには、再帰フィルタと非再帰フィルタの2種類があります。これらはそれぞれIIRフィルタとFIRフィルタと呼ばれることが多いです。[ 5 ]
フィルタを設計した後、サンプルシーケンスに対する演算の観点からフィルタを記述する信号フロー図を作成することによって、フィルタを実現する必要があります。
与えられた伝達関数は、さまざまな方法で実現できます。次のような単純な式を考えてみましょう。評価できる–同等のものを計算することもできる同様に、すべての実現は同じ伝達関数の因数分解と見なすことができますが、異なる実現は異なる数値特性を持ちます。具体的には、実装に必要な演算数や記憶要素数の観点からより効率的な実現もあれば、数値安定性の向上や丸め誤差の低減といった利点を提供する実現もあります。固定小数点演算に適した構造もあれば、浮動小数点演算に適した構造もあります。
IIRフィルタを実現するための簡単なアプローチは、差分方程式を直接評価する直接形式Iです。この形式は小さなフィルタには実用的ですが、複雑な設計では非効率的で非実用的(数値的に不安定)になる可能性があります。 [ 6 ] 一般に、この形式では、次数Nのフィルタに対して2N個の遅延要素(入力信号と出力信号の両方)が必要です。
![]()
代替の直接形式 II では、フィルタの次数 Nの遅延ユニットのみが必要で、直接形式 I の半分程度で済む可能性があります。この構造は、直接形式 I の分子と分母のセクションの順序を逆にすることで得られます。実際にはこれらは 2 つの線形システムであり、可換性が適用されます。すると、遅延の列が 2 つあることがわかります ()は中央のネットから分岐しており、これらは冗長であるため組み合わせることができ、以下に示すような実装が得られます。
欠点は、直接形式 II では、高Qまたは共振のフィルタで演算オーバーフローが発生する可能性が高くなることです。[ 7 ] Q が増加すると、両方の直接形式トポロジの丸めノイズが際限なく増加すること が示されています。 [ 8 ] これは、概念的には、信号が最初に全極フィルタ (通常は共振周波数でゲインを増幅する) を通過し、その結果が飽和し、次に全ゼロフィルタ (全極半分が増幅したものの大部分を減衰させることが多い) を通過するためです。
![]()
一般的な戦略は、高次 (2 より大きい) デジタルフィルタを、2 次バイカドラトリック(またはバイカッド) セクションのカスケード接続として実現することです[ 9 ] (デジタル バイカッドフィルタを参照)。この戦略の利点は、係数の範囲が制限されることです。直接形式 II セクションをカスケード接続すると、次数NのフィルタではN個の遅延要素になります。直接形式 I セクションをカスケード接続すると、 N + 2 個の遅延要素になります。これは、任意のセクション (最初のセクションを除く) の入力の遅延要素が、前のセクションの出力の遅延要素と冗長であるためです。
その他の形態としては以下が挙げられます。
デジタルフィルタは、アナログフィルタの設計を著しく複雑にする部品の許容誤差、温度変化、非線形性の影響を受けません。アナログフィルタは不完全な電子部品で構成されており、その値は温度によって変化したり、時間とともにドリフトしたりする可能性があります。アナログフィルタの次数、つまり部品数が増えるにつれて、部品のばらつきによる誤差の影響は大きく増幅されます。デジタルフィルタでは、係数の値はコンピュータのメモリに保存されるため、はるかに安定していて予測可能です。[ 12 ]
デジタルフィルタの係数は確定しているため、より複雑で選択性の高い設計を実現できます。特に、デジタルフィルタでは、アナログフィルタでは実現困難な、より低い通過帯域リップル、より高速な遷移、およびより高い阻止帯域減衰を実現できます。たとえアナログフィルタで同様の設計が可能であったとしても、同等のデジタルフィルタを設計する方が、設計コストははるかに低くなるでしょう。さらに、デジタルフィルタの係数を容易に変更することで、適応フィルタやユーザー制御可能なパラメトリックフィルタを作成できます。これらの技術はアナログフィルタでも可能ですが、やはりはるかに困難です。
デジタルフィルタは、位相シフトなしで極めて急峻なロールオフ特性を実現できる有限インパルス応答フィルタの設計に利用できます。同じ機能を果たすアナログフィルタは、多くの遅延要素が必要となるため、多くの場合、はるかに複雑になります。
デジタルフィルタはアナログ回路への依存度が低いため、信号対雑音比が向上する可能性があります。デジタルフィルタは、アナログローパスフィルタリング、アナログ-デジタル変換、デジタル-アナログ変換の際に信号にノイズを発生させ、量子化によってデジタルノイズが発生する場合もあります。アナログフィルタでは、すべてのコンポーネントが熱雑音(ジョンソン雑音など)の発生源となるため、フィルタの複雑さが増すにつれてノイズも増加します。
しかしながら、デジタルフィルタはシステムに高い基本遅延をもたらします。アナログフィルタでは、遅延はしばしば無視できるほど小さく、厳密に言えば、電気信号がフィルタ回路を通過するのにかかる時間です。デジタルシステムでは、遅延はデジタル信号経路の遅延要素だけでなく、アナログ信号を処理するために必要なアナログ-デジタル変換器やデジタル-アナログ変換器によっても発生します。さらに、デジタルフィルタは量子化誤差や丸め誤差にも対処しなければなりません。
さらに、非常に単純なケースや、周波数とフィルタの傾斜が固定されている場合は、アナログフィルタを使用する方がコスト効率が良い。前述のように、デジタルフィルタを導入するには、2つのローパスアナログフィルタを含む、かなりのオーバーヘッド回路が必要となる。また、アナログフィルタはデジタルフィルタよりも消費電力が大幅に少ないため、電力要件が厳しい場合には唯一の解決策となる。
プリント基板上に電気回路を作る場合、処理ユニットが長年にわたって高度に最適化されているため、一般的にはデジタルソリューションを使用する方が容易です。アナログ部品を使用して同じ回路を作ると、ディスクリート部品を使用した場合に、はるかに多くのスペースが必要になります。代替案としてFPAA [ 13 ]とASICがありますが、これらは少量生産では高価です。
フィルターを特徴付ける方法は様々あります。例えば、
フィルタはブロック図で表現でき、それを用いてフィルタをハードウェア命令で実装するためのサンプル処理アルゴリズムを導出できます。フィルタは、差分方程式、零点と極の集合、インパルス応答、またはステップ応答として記述することもできます。
デジタルフィルタの中には、高速フーリエ変換(FFT)に基づくものがあります。FFTは、信号の周波数スペクトルを素早く抽出する数学的アルゴリズムで、スペクトルを操作(例えば、非常に高次のバンドパスフィルタを作成するなど)した後、逆FFT演算によって変更されたスペクトルを時系列信号に変換します。これらのフィルタの計算コストはO(n log n)ですが、従来のデジタルフィルタはO(n 2 )になる傾向があります。
デジタルフィルタのもう一つの形態は、状態空間モデルである。よく用いられる状態空間フィルタとしては、 1960年にルドルフ・カルマンによって発表されたカルマンフィルタが挙げられる。
従来の線形フィルタは通常、減衰に基づいています。一方、非線形フィルタを設計することもできます。これには、エネルギー伝達フィルタ[ 14 ]が含まれます。エネルギー伝達フィルタを使用すると、不要なノイズや影響を、周波数の低い周波数帯域または高い周波数帯域に移動したり、周波数範囲に広げたり、分割したり、集中させたりできるような、設計された方法でエネルギーを移動させることができます。エネルギー伝達フィルタは、従来のフィルタ設計を補完し、フィルタ設計に多くの自由度をもたらします。デジタルエネルギー伝達フィルタは、比較的簡単に設計および実装でき、非線形ダイナミクスを活用できます。