ここでは、前章の基本的なディジタルフィルタの応用として、 少し高度なディジタルフィルタを設計、作成してみましょう。
前節の1次および2次の基本的ディジタルフィルタでは、カットオフ周波数や、 通過帯域幅は固定であり、変化させることはできませんでした。さらに、低域 通過特性や高域通過特性はかなりなだらかなもので、カットオフ周波数付近に おける理想的な急峻な減衰を得られませんでした。
カットオフ周波数を変化させたり、その付近でより急峻な減衰特性を 得るためには、より高次のディジタルフィルタを用いなければなりません。 ここでは、フーリエ級数近似法を用いた、最も簡単なFIRフィルタの 設計法を紹介します。
まず、実現したいディジタルフィルタの周波数特性を与えます。例えば、 カットオフ周波数がfcで与えられる、理想ローパスフィルタを 考えてみます。これを逆フーリエ級数展開すると、時間軸(n)で表される 時系列信号が得られます。 逆フーリエ級数展開は、4-2節で述べたフーリエ級数展開における周波数と 時間の関係を逆にしたもので、周波数軸上で与えられる任意関数を、 無限個の「周波数軸上の正弦波」の和で表すものです。その結果、各正弦波の 振幅は時間軸でマイナス無限大からプラス無限大まで続く離散的な係数列として 得られます。この時系列信号そのものが、与えられた周波数 特性を実現するFIRフィルタの係数(a0〜 aN)となります。
このような係数を持つFIRフィルタを実際に有限の次数で構成する場合には、 a(n)の大きいところだけを残して、途中で係数を打ち切る必要が あります。 すると、その影響で、対応するフィルタの周波数特性には、通過域および阻止域 両方にリップル(さざ波のような形)が生じてしまいます。
このようなリップルを抑えるために、例えば窓関数が用いられます。 真ん中で大きく、端では次第に小さくなる窓関数をa(n)に 乗算すると、フィルタの周波数特性におけるリップルをある程度抑えて 変化を滑らかにすることができます。
【実習 4-4-1】<FIRフィルタの設計>
【実習 4-4-2】<ディレイ(遅延)>
今までにも何度か出てきた信号を遅らせるディレイ機能は、入力信号に 任意個数の遅延をかけることで実現されています。この場合、遅らせたい サンプル数分の過去の値を保存しておく必要があります。
【実習 4-4-3】<櫛形(コム)フィルタ>
図のように、現在の入力からN個前の入力(N個の遅延をかけたもの)を 引き算すると、実習 4-3-4で述べたバンドエリミネーションフィルタのように、 ある周波数の付近だけを減衰させるフィルタを実現することができます。 ただしこの場合は、サンプリング周波数の1/Nの周波数毎に減衰させる周波数が 周期的に現れます。これを、櫛のような周波数特性を持つという意味で、 櫛型(コム)フィルタと呼びます。
【実習 4-4-4】<エコー>
カラオケなどで使用される、音にエコーをかけるフィルタです。 図のように、出力をN個遅らせたものを係数倍(b<1)して入力と足し合わせる ことで、入力された信号が徐々に弱くなりながら繰り返し出力に現れる (エコーがかかる)ようになります。 どの程度の時間長までエコーがかかるかは、係数bにより決まります。 これは出力が入力に戻るIIRフィルタの一種となっています。