第 2 章 デジタル信号処理入門 (デジタルフィルタ)
ここではデジタル信号処理の代表例としてデジタルフィルタについて紹介します。
- フィルタとは?
- FIR フィルタ
- IIR フィルタ
- アダプティブフィルタ
フィルタとは?
私たちの生活の中にも「フィルタ」と呼ばれるものが色々あります。例えばコーヒーのフィルタ、エアコンや掃除機のフィルタなどなど。
「フィルタ」とは、「欲しい物だけ取り出すもの、または余分なものを取り除くもの」といえます。
コーヒーのフィルタはお湯を注ぐとコーヒー豆は通さず、コーヒーだけを通し、掃除機のフィルタは埃は通さずきれいな空気だけを通します。 |
ページトップへ
信号のフィルタ
デジタル信号処理で「フィルタ」とは、電気的な信号(いくつかの振動周期成分のあつまり)のフィルタです。
例えば音楽の信号を取り扱い、ある特定の音だけを取り出したり、ノイズ成分をカットしてきれいな音だけを取り出したりすることを想像してください。 |
このような特定の周波数成分を抽出したり、ノイズをカットしたりする処理は、画像処理や通信システムなどでも多く用いられ、様々なところで「フィルタ」は活躍しています。
|
ページトップへ
フィルタの種類
周波数成分のフィルタを大きく 3 つに分類すると
ローパスフィルタ (低域通過フィルタ)
ハイパスフィルタ (高域通過フィルタ)
バンドパスフィルタ (帯域通過フィルタ)
に分けられます。 |
ページトップへ
アナログフィルタ
デジタルフィルタの話をする前にアナログフィルタについて簡単に紹介します。
図のように抵抗とコンデンサを使ってローパスフィルタを作ることができます。
このようにアナログ電子部品で構成させたフィルタをアナログフィルタと言います。
詳細は専門書に譲りますが、抵抗とコンデンサの接続を逆にするとハイパスフィルタができあがります。 |
ページトップへ
デジタルフィルタ
ではデジタルフィルタについて見ていきます。
デジタル信号(離散的な信号)に対し、数学的な処理を加える、というのがデジタル信号処理です。
入力データに対し数学的な処理をし、得たい周波数成分を抽出するのが、デジタルフィルタです。
図にあるのが代表的なデジタルフィルタ、FIR フィルタのブロック図です。
X は入力データで X(n) にサンプリングされたデジタルデータが次々に入ってきます。Y(n) は出力で、このブロック図が示す計算結果が1つデータが入力される度に 1 つの出力が得られます。
マークは×が掛け算、+が足し算、Z-1 が単位遅延回路を表します。
単位遅延回路とは時間的な遅れを意味し、X(n-2) は X(n-1) より時間的に 1 つ前の(時間的に遅れている)データ、X(n-1) は X(n) より時間的に 1 つ前のデータになります。
このブロック図が表す計算式は
Y(n) = a0 × X(n) + a1 × X(n-1) + a2 × X(n-2)
となります。この図、この式が本当にフィルタを表しているのか、ある具体的な例を通してみてみましょう。 |
ページトップへ
フィルタの動作を確認してみよう
具体的な数値として株価を例にとってみます。
ある会社の 1 日毎の株価を表に示します。
ここではサンプリング周期が 1 日ということになりますが、ある一定間隔に基づいてサンプリングされたデータとしてみることができます。
a0 〜 a2 の係数も具体的な数字を用意しました。
これらのデータを右上のフィルタのブロック図にあてはめ、各曜日の出力がどうなるか計算してみます。 |
まず、月曜日。
月曜日に、このフィルタのシステムが動き出し X(n) に月曜日のデータ “60” が入ってきたとしてください。
X(n-1) や X(n-2) にはまだデータはありませんから “0” として計算します。
結果は “15” になりますね。 |
火曜日は月曜日のデータが X(n-1) に移動し、X(n) に火曜日の 60 が入り、結果は 45。
水曜日になると初めて 3 つのデータが埋まり、結果は入力と同じ “60” です。 |
木曜日になると、X(n-2) のところにあった月曜日のデータは次の遅延回路はないので、システムから落ちてしまいます。よって月曜日のデータは使わずに、火曜日から木曜日の 3 つのデータを使って計算し、結果 65 になります。 |
あとは日曜日まで同じように計算していきます。
結果は表のようになります。
入力と出力の関係を見る為に、グラフ化してみます。 |
同じグラフ上に入力データを青で、出力データを赤でプロットしてみました。
このグラフを見ると、入力データは木曜日と金曜日で株価が大きく変動していることがよくわかります。この時の出力を見てみると出力には大きな変動はなく、滑らかな動きになっています。
すなわち入力にあった大きな株価の変動を出力はカットしていると言えます。
大きな株価の変動というのは短期間での大きく変化する信号、すなわち高周波を表していて、このシステムは入力にあったノイズのような高周波成分をカットし、低周波成分だけを通すローパスフィルタの役割をしていることが言えます。 |
ページトップへ
デジタルフィルタの種類
デジタルフィルタには大きく分けて FIR フィルタと IIR フィルタがあります。またその応用としてアダプティブ・フィルタというのがあります。 |
ページトップへ
FIR フィルタ
FIR フィルタ=有限インパルス応答フィルタの「有限」の意味することは、入力データはある決められた有限な期間のみこのシステムで使用され、有限な期間を経過した後はもう使わない、という事を意味しています。
一般に FIR フィルタが好んで使われるのは、フィルタの位相応答が重要となる場合で、正確な線形位相応答の設計、安定で予測可能であるという性質を必要とするシステムです。 |
ページトップへ
IIR フィルタ
IIR=無限インパルス応答フィルタとは「無限」ですから一度システムに入力されたデータはその後ずっとシステムの中で使いまわされていきます。すなちフィードバックのパスがあるフィルタです。
図でもこのフィルタにはフィードバックパスとフォワードパスがあることがわかります。
このフィルタは FIR フィルタより少ない演算(タップ数)で性能の良い(最良のロールオフを実現できる)フィルタを設計することができます。(FIR フィルタの 5 〜 10 倍効率的)
ただし、フィードバックがあること、係数感度が高いことから不安定になりやすいという点、位相応答が非線型であるという弱点もあります。 |
ページトップへ
アダプティブ・フィルタ
最後にアダプティブ・フィルタ(適応フィルタ)について紹介します。
FIR フィルタや IIR フィルタはある特定の周波数成分を得るために係数を決めます。
一方、ノイズ・キャンセラのようなシステムで使われるフィルタは、その場、その時によって変化するノイズ成分だけをカットするように、その場に応じたフィルタ係数を、フィルタを動作させながら変化、適応させていきます。このように入力信号やノイズが変わったとき係数を自動的に更新するフィルタを「適応」フィルタ=アダプティブ・フィルタと呼んでいます。
この係数の更新に LMS(Least Mean Square):最小二乗法の処理を用い、係数を最適値に変更させますが、フィルタの係数を更新させ、なおかつフィルタの出力もするのです。 |
ページトップへ