14
FIR システム FIR フィルタ インパルス応答が有限長で0になるシステム =入力しか利用しないシステム 周波数特性上で、決まった帯域の信号だけを通 過させる機能をFIRシステムとして実現したもの 処理方法を表す用語 処理方法と機能を表す用語 FIRフィルタの設計(1) 2020年度通信工学特論(豊嶋) 今回から2回にわたり、FIRフィルタの設計と題して説明を行っていきます。 まず、用語の説明ですが、「FIRシステム」は、Finite Impulse Response システムの 略で、インパルス応答が有限長で0になるシステムのことです。 つまり、入力しか利用しないという処理方法を表す用語です。 一方、電気電子通信分野では、周波数特性上で決まった帯域の信号のみを通過さ せる機能のことを「フィルタ」といいます。 「FIRフィルタ」という用語は、「FIR」で処理方法を表し、「フィルタ」で機能を表してい ることになります。 もちろんFIRシステムではなく、IIRシステムでフィルタを実現する方法もありますが、 この授業では時間の都合上、FIRフィルタのみを扱います。 1

FIRフィルタの設計(1) - Toyolab · 「firフィルタ」という用語は、「fir」で処理方法を表し、「フィルタ」で機能を表してい ることになります。

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: FIRフィルタの設計(1) - Toyolab · 「firフィルタ」という用語は、「fir」で処理方法を表し、「フィルタ」で機能を表してい ることになります。

FIRシステム

FIRフィルタ

インパルス応答が有限長で0になるシステム=入力しか利用しないシステム

周波数特性上で、決まった帯域の信号だけを通過させる機能をFIRシステムとして実現したもの

処理方法を表す用語

処理方法と機能を表す用語

FIRフィルタの設計(1)

2020年度通信工学特論(豊嶋)

今回から2回にわたり、FIRフィルタの設計と題して説明を行っていきます。

まず、用語の説明ですが、「FIRシステム」は、Finite Impulse Response システムの略で、インパルス応答が有限長で0になるシステムのことです。

つまり、入力しか利用しないという処理方法を表す用語です。

一方、電気電子通信分野では、周波数特性上で決まった帯域の信号のみを通過させる機能のことを「フィルタ」といいます。

「FIRフィルタ」という用語は、「FIR」で処理方法を表し、「フィルタ」で機能を表していることになります。

もちろんFIRシステムではなく、IIRシステムでフィルタを実現する方法もありますが、この授業では時間の都合上、FIRフィルタのみを扱います。

1

Page 2: FIRフィルタの設計(1) - Toyolab · 「firフィルタ」という用語は、「fir」で処理方法を表し、「フィルタ」で機能を表してい ることになります。

離散フーリエ変換(DFT)

逆離散フーリエ変換(IDFT)

1周期𝑛 = 𝑁は𝑁𝑇𝑆に相当 1周期𝑘 = 𝑁は2𝜋

𝑇𝑆に相当

𝑥(𝑛) 𝑋(𝑘)

FIRフィルタの設計に入る前に、離散フーリエ変換について復習しておきます。

離散フーリエ変換(DFT)は、離散時間信号x(n)を周波数成分X(k)に変換するものです。

逆離散フーリエ変換(IDFT)は、逆に周波数成分X(k)を離散時間信号x(n)に変換するものです。

x(n)に対してDFTをとって、それに対してIDFTをとると、もとのx(n)に戻るという「可逆変換」の関係があります。

ここで注意することは、x(n)、X(k)ともに周期性があり、それぞれNサンプルを1周期とした信号が繰り返されているということです。

DFTとIDFTは、正確にいうと、周期信号どうしの変換であり、その1周期分だけの計算を定義しただけです。

あと、x(n)における1周期は、サンプリング間隔をTsとしたときのNTsに相当します。

また、X(k)における1周期は、サンプリング周波数fs=2πωs=2π/Tsに相当することに注意してください。

2

Page 3: FIRフィルタの設計(1) - Toyolab · 「firフィルタ」という用語は、「fir」で処理方法を表し、「フィルタ」で機能を表してい ることになります。

インパルス応答と周波数特性

システムインパルス𝛿(𝑛)

インパルス応答

DFT DFT

システムの周波数特性

次にインパルス応答と周波数特性について確認しておきます。

インパルス信号は、n=0のときだけ1となる信号なので、DFTを計算すると、1となります。

つまり、すべての周波数を均一に含む信号ということです。

そのインパルスをシステムの入力としたときの出力は、「インパルス応答」といいます。

インパルス応答は、インパルスとは異なる信号となるので、DFTをとると、周波数によって大きさの異なる特性となります。

システムを通すことで、フラットな周波数特性が変化したことになるので、インパルス応答のDFTをシステムの周波数特性と考えることができます。

3

Page 4: FIRフィルタの設計(1) - Toyolab · 「firフィルタ」という用語は、「fir」で処理方法を表し、「フィルタ」で機能を表してい ることになります。

FIRフィルタの設計の原理

システムの周波数特性(理想特性)

IDFT

インパルス応答

フィルタの係数ℎ𝑛

フィルタの設計

一般にフィルタの設計というのは、周波数特性上で通過させたい帯域を設定し、その特性になるような処理方法(ここでは差分方程式、あるいはシステム関数の係数)を決定することです。

FIRフィルタの場合は、FIRシステムで実現するので、差分方程式は入力信号のみを利用する形となります。

IIRフィルタの場合は差分方程式に出力を含む形になるだけですが、フィルタの設計原理は、FIRとIIRとでは大きく異なります。

FIRシステムの場合、インパルス応答がフィルタの係数と一致するという関係があります。

その関係を使うと、システムの周波数特性のIDFTをとるだけで、インパルス応答が求まり、それがそのままフィルタの係数となり、フィルタが設計できることになります。

IIRシステムの場合は、この関係が使えないので、フィルタの設計原理は複雑になります。

4

Page 5: FIRフィルタの設計(1) - Toyolab · 「firフィルタ」という用語は、「fir」で処理方法を表し、「フィルタ」で機能を表してい ることになります。

周波数特性(振幅特性)の与え方

低域通過フィルタ(LPF) 高域通過フィルタ(HPF)

帯域通過フィルタ(BPF) 帯域阻止フィルタ(BSF)

は、負の周波数特性対称に与える

フィルタの仕様として与える周波数特性には、振幅特性と位相特性がありますが、ここではまず振幅特性の方を考えます。

スライドで4つの特性を挙げていますが、共通して注意することは、周波数特性の1周期分の右半分は、周期性を考えると、負の周波数の特性だということです。

なので、実際に仕様として考えればよいのは、左半分の部分ということになります。

横軸は0から1までとなっていますが、実際には1のところがωs=2π/Tsです。ただ、サンプリング間隔Ts=1と正規化するので、1のところが2πになると考えてください。

真ん中のω=0.5(×2π)が一番高い周波数なので、LPF(Low Pass Filter)が低い周波数だけを通過させる、HPF(High Pass Filter)が高い周波数だけ通過させる特性だということがわかると思います。

あと、BPF(Band Pass Filter)は0と0.5の間の一部の帯域だけ通過させ、BSF(Band Stop Filter)は逆に一部の帯域だけ通さない特性になっています。

右半分の特性は負の周波数ということですが、ここは無視してよいわけではなく、左半分の特性と対称になる特性を与えなくてはいけません。

これは、インパルス応答が実数になるための条件です。

特性が対称にならないと、インパルス応答が複素数になってしまうので、注意してください。

5

Page 6: FIRフィルタの設計(1) - Toyolab · 「firフィルタ」という用語は、「fir」で処理方法を表し、「フィルタ」で機能を表してい ることになります。

FIRフィルタの係数の数

⚫ 一般的なFIRフィルタの係数の数数十個から数百個(2桁から3桁)

DFT/IDFTのサイズ

⚫ 理想的な周波数特性を与えるためにはフィルタ係数の数の10倍程度必要数百個から数千個(3桁から4桁)

⚫ FFTの場合、2のべき乗(128~8192)

ここで、FIRフィルタの係数の数とDFTのサイズについて説明しておきます。

FIRフィルタの係数の数は、計算に使う入力値の個数のことですが、当然ながらその個数は有限です。

一般に実用的なFIRフィルタの係数の数は、2桁から3桁程度となります。

それに対して、FIRフィルタの設計に使用するDFTのサイズは、仕様となる特性の精度にもよりますが、だいたい3桁から4桁のサイズが必要となります。

目安としては、フィルタの係数の数の10倍程度と考えるとよいでしょう。

ただ、DFTは実際にはFFTを使用するので、サイズは2のべき乗となります。

具体的には、128, 256, 512, 1024, 2048, 4096, 8192 のなかから選ばれることになります。

6

Page 7: FIRフィルタの設計(1) - Toyolab · 「firフィルタ」という用語は、「fir」で処理方法を表し、「フィルタ」で機能を表してい ることになります。

インパルス応答からFIRフィルタの係数へ

インパルス応答の例256個

20個程度のフィルタ係数に削減DFT

周波数特性の劣化

FIRフィルタの設計には、その係数がインパルス応答と同じということを利用するわけですが、前のスライドで説明したように、IDFTで求めたインパルス応答の数はDFTのサイズと同じく、3桁から4桁あります。

スライドの例では256個です。

このインパルス応答をすべて使えば、仕様通りの特性が実現できますが、それではコスパがよくありません。

フィルタ回路では、コスパが重要となるので、できるだけ少ない計算量(回路規模)で許容できる特性を実現する必要があります。

そのために、256個のインパルス応答を1/10程度のフィルタ係数に削減する必要があります。

スライドの例では、インパルス応答の最初の20個だけを取り出して、残りは0にしています。

これでFIRフィルタの計算量は減らすことができましたが、これにDFTをかけたフィルタの周波数特性は、かなり劣化してしまいます。

7

Page 8: FIRフィルタの設計(1) - Toyolab · 「firフィルタ」という用語は、「fir」で処理方法を表し、「フィルタ」で機能を表してい ることになります。

周波数特性の劣化の原因

⚫ インパルス応答のなかで値の大きな部分を削除している

その理由

⚫ フィルタの振幅特性しか与えておらず、位相特性を0にしているから

このように周波数特性が劣化する原因は、インパルス応答のなかで値の大きな部分を削除しているためです。

では、どうしてインパルス応答の終わりの方に大きな値が表れているのでしょうか?

これは、フィルタの周波数特性として振幅特性しか与えていなかったためです。

つまり、位相特性を0として考えていたからです。

8

Page 9: FIRフィルタの設計(1) - Toyolab · 「firフィルタ」という用語は、「fir」で処理方法を表し、「フィルタ」で機能を表してい ることになります。

FIRフィルタの周波数特性

:振幅特性

:位相特性

⚫ 振幅特性は実現できる特性と係数の個数に関係はない

⚫ 位相特性は実現できる特性が係数の個数の制約を受ける

ここで、FIRフィルタの周波数特性についてちゃんと見てみましょう。

DFTで求まる周波数特性は複素特性であり、極座標表現にすることで、振幅特性と位相特性に分けれらます。

振幅特性の種類については前に説明しましたが、実現できる特性と係数の個数に関係はありません。個数が多いほど理想特性に近づけられます。

一方、位相特性は、実現できる特性が係数の個数の制約を受けます。

つまり、どんな特性を与えてもよいというわけではないのです。

9

Page 10: FIRフィルタの設計(1) - Toyolab · 「firフィルタ」という用語は、「fir」で処理方法を表し、「フィルタ」で機能を表してい ることになります。

位相特性の与え方

FIRフィルタとして最も簡単で実用的な位相特性=直線位相特性

対称

システム関数

𝑧 = 𝑒𝑗𝜔

周波数特性

𝜃 𝜔 = −𝜔直線位相特性

では、どのような位相特性を与えればよいかですが、FIRフィルタとして最も簡単で、しかも実用性のある特性として直線位相特性があります。

これはすべての周波数で信号の遅れが一定となる特性で、そのため、波形の歪みがないという特徴があります。

オーディオなど、周波数成分だけでなく、波形が重要となるアプリケーションで必要となる特性です。

この直線位相特性は、スライドの例のように、係数を対称にすることで確実に実現できます。

10

Page 11: FIRフィルタの設計(1) - Toyolab · 「firフィルタ」という用語は、「fir」で処理方法を表し、「フィルタ」で機能を表してい ることになります。

直線位相特性とフィルタの次数の関係

係数の個数=(𝑀 + 1)個フィルタの次数=𝑀

ℎ0 = ℎ𝑀,ℎ1 = ℎ𝑀−1・・・の対称性があるとき

位相特性

では、フィルタの係数の個数と直線位相特性との関係についてみてみます。

ここでは、フィルタの係数の個数の代わりに、フィルタをシステム関数で表した時の最高次数に注目します。

これをフィルタの次数といいます。ちなみに係数の個数は「フィルタの次数+1」と表せます。

フィルタの次数をMとすると、対称となる係数で周波数特性が複素共役となるように計算できるので、位相特性は傾きが-M/2となる直線位相となります。

11

Page 12: FIRフィルタの設計(1) - Toyolab · 「firフィルタ」という用語は、「fir」で処理方法を表し、「フィルタ」で機能を表してい ることになります。

直線位相特性の与え方

は、負の周波数特性反対称に与える

そこで、フィルタの周波数特性の仕様として、傾きが-M/2となるように位相特性を与えます。

実際にはNサンプルの周波数特性のk番目の周波数は、2πk/Nとなるので、それに-M/2を掛けた値が、フィルタの次数に対応した直線位相特性となります。

また周波数特性の右半分は、負の周波数の特性に相当しますが、これも振幅特性の時と同様に対称に与えます。

ただし、位相特性は奇関数なので、符号が逆になる反対称の形で与えます。

12

Page 13: FIRフィルタの設計(1) - Toyolab · 「firフィルタ」という用語は、「fir」で処理方法を表し、「フィルタ」で機能を表してい ることになります。

位相特性を考慮した周波数特性

振幅特性|𝐻 𝑘 |

IDFT

インパルス応答

位相特性𝜃(𝑘)

|𝐻 𝑘 |𝑒𝑗𝜃(𝑘)

実数部がインパルス応答虚数部は必ず0

このように振幅特性と位相特性を与えて、複素数の周波数特性としたものに対してIDFTをとると、インパルス応答の前半にピークが来るような特性となります。

ここでインパルス応答が実数になっていることを確認してください。

一般にIDFTの結果は複素数として表されます。

ここで、実数部のみに値があり、虚数部が0(実数部に比べて限りなく0に近い値)になっていることを確認してください。

もし、虚数部に割と大きめの値が入っている場合、最初に与えた周波数特性が対称になっていない可能性があります。

この場合、実数部だけ取り出してフィルタの係数にしても、正しい結果ではありません。

13

Page 14: FIRフィルタの設計(1) - Toyolab · 「firフィルタ」という用語は、「fir」で処理方法を表し、「フィルタ」で機能を表してい ることになります。

インパルス応答からFIRフィルタの係数へ

インパルス応答の例256個

20個程度のフィルタ係数に削減DFT

このように求められたインパルス応答に対して、最初の20個をフィルタの係数とすると、右上の図のようになります。

この図でははっきりとはわかりませんが、フィルタの係数は左右で対称になっています。

またこの係数のDFTをとり周波数特性の絶対値(振幅特性)を表示させると左下のような形になります。

最初のフィルタの仕様に比べて劣化はしていますが、位相特性を無視したときの結果よりはよくなっていることがわかると思います。

以上がもっとも簡単なFIRフィルタの設計方法です。

14