デジタルフィルターの設計は非常に大規模で成熟したトピックであり、質問で述べたように、多くの資料が用意されています。ここで試してみたいのは、始めて、既存の資料をよりアクセスしやすくすることです。ここでは係数と信号の量子化を考慮しないため、デジタルフィルターの代わりに、実際には離散時間フィルターについて説明する必要があります。FIRフィルターとIIRフィルターについてはすでに知っていますし、DF IやIIなどのフィルター構造も知っています。それにもかかわらず、いくつかの基本から始めましょう。
非再帰的線形時不変(LTI)フィルターは、次の差分方程式で記述できます。
y(n )= h0x (n )+ h1x (n − 1 )+ … + hN− 1x (n − N+ 1 )= ∑k = 0N− 1hkx (n − k )(1)
ここで、は出力シーケンス、x (n )は入力シーケンス、nは時間インデックス、h kはフィルター係数、Nはフィルター長(タップ数)です。入力信号がインパルス、つまりx (n )= δ (n )の場合、y (n )= h nであるため、フィルタータップh kはフィルターのインパルス応答でもあります。y(n )x (n )nhkNhkx (n )= δ(n )y(n )= hn(フィルタのメモリがゼロで初期化されている場合)。式(1)は、線形時不変有限インパルス応答(FIR)システムを記述しています。(1)の右側の和は畳み込み和です。つまり、出力信号は、入力信号をインパルス応答で畳み込むことによって得られます。これは常に当てはまりますが、IIRフィルターの場合、インパルス応答が無限に長いため、つまり無限に多くの係数h kがあるため、畳み込み和を明示的に計算できませんhk。FIRフィルターの重要な利点の1つは、フィルターが常に安定していることです。つまり、入力シーケンスが制限されている場合、出力シーケンスは常に制限されます。もう1つの利点は、FIRフィルターは常に正確な線形位相で実現できることです。つまり、純粋な遅延以外に位相歪みを追加しません。さらに、後で見るように、設計の問題は通常簡単です。
再帰的LTIフィルターは、次の差分方程式で記述されます。
y(n )= b0x (n )+ b1x (n − 1 )+ … + bMx (n − M)−− a1y(n − 1 )− … − aNy(n − N)(2)
bkakak これは、IIRフィルタが不安定になる可能性があるためです。つまり、入力シーケンスが制限されている場合でも、出力シーケンスが制限されない可能性があります。
フィルターは、時間(サンプル)ドメインまたは周波数ドメイン、あるいはその両方の仕様に従って設計できます。質問でカットオフ周波数について言及しているので、周波数ドメインの仕様にもっと興味があると思います。この場合、FIRおよびIIRシステムの周波数応答を確認する必要があります。システムの周波数応答は、インパルス応答が存在すると仮定した場合のインパルス応答のフーリエ変換です(安定したシステムの場合)。FIRフィルターの周波数応答は次のとおりです。
H(ejはθ)= ∑k = 0N− 1hke- jはk個のθ(3)
θ
θ = 2 πffs
ffs
H(ejはθ)= ∑Mk = 0bke- J θ1 + ∑Nk = 1ake- J θ(4)
ak= 0k = 1 、… 、N
ここで、フィルターの設計方法を簡単に見てみましょう。FIRフィルターの場合、目的の周波数応答の逆フーリエ変換を実行して、フィルター係数に直接対応するフィルターのインパルス応答を取得できます。有限長のインパルス応答で目的の応答を近似するため、取得したインパルス応答に滑らかなウィンドウを適用して、ギブズ現象による実際の周波数応答の振動を最小限に抑える必要があります。この方法は、周波数サンプリング法と呼ばれます。
理想的なローパスフィルター、ハイパスフィルター、バンドパスフィルター、またはバンドストップフィルター(および他のいくつか)のような単純な標準フィルターの場合、理想的な望ましい応答の逆フーリエ変換を行うことで正確なインパルス応答を分析的に計算することもできます:
hk= 12個のπ∫π- πH(ejはθ)ej個のk個のθdθ
この積分は、理想的な周波数選択フィルターの場合のように、区分的に一定の所望の応答を簡単に評価できます。これにより、無限に長く非因果的なインパルス応答が得られます。これは、有限で因果的にするためにウィンドウ化およびシフトする必要があります。この方法は、ウィンドウデザインとして知られています。
もちろん、他にも多くのFIRフィルターの設計方法があります。1つの重要な数値的手法は、有名なParks-McClellan交換アルゴリズムで、一定の通過帯域と遮断帯域のリップルをもつ最適なフィルターを設計します。これは数値近似法であり、MatlabやOctaveなど、多くのソフトウェア実装が利用可能です。
ssz
もちろん、あなたが持っている仕様の種類に応じて、もっと多くの興味深く有用な方法がありますが、これがあなたを開始し、あなたが出会うどんな資料でもより理解できるようになることを願っています。いくつかの基本的なフィルター設計法(およびそれ以上)を網羅した非常に優れた(そして無料の)本は、Orfanidisによる信号処理の紹介です。いくつかの設計例を見つけることができます。もう1つの素晴らしい古典的な本は、Parks and BurrusによるDigital Filter Designです。