FIRフィルタ設計

FIRフィルタ

FIR(Finite Impulse Response)フィルタとは、直訳すると有限長のインパルス応答をもつディジタル回路ならではのフィルタです。FIRフィルタは通信、計測、制御などの様々な分野で用いられています。次にFIRフィルタの回路図を示します。

FIRフィルタ

この図より入力信号に対して遅延、乗算、加算をすることで出力信号を生成する回路だと分かります。ここで重要な演算は乗算です。乗算時の係数によって得られる出力信号が変化します。フィルタ設計とは、所望する出力信号に近似するようにフィルタ係数hを決定する問題です。

FIRフィルタに対する設計法はすでに確立されていて、窓関数法、最小2乗法、線形計画法などがあります。次に線形計画法で設計したFIRフィルタの振幅特性を示します。

FIRフィルタの振幅特性

この設計は比較的簡単にできます。では何を研究するの?となると思いますが、実はFIRフィルタには問題点があります。それはフィルタの精度を高くすると高次数となり、回路規模が大きくなる傾向があることです。次数とは遅延器の個数であり、上の回路図ではNで表しています。このNが数千にも及ぶことは珍しくないそうです。そうなると問題となるのが消費電力の増加とそれに伴う動作速度の低下です。これを解決するために回路規模を削減しようという考えがあります。私はこの考えに基づいて研究していました。

スパースFIRフィルタ

先に述べた問題の解決法の1つが「乗算器を疎らに配置する」というものです。こうしたFIRフィルタを「スパースFIRフィルタ」と呼びます。次にスパースFIRフィルタの回路図を示します。

スパースFIRフィルタ

上のFIRフィルタの回路図と見比べるとN-1番目の乗算器がなくなっていることが分かります。このようにして回路規模を削減します。ただし、乗算器を削減しているため、当然ながらフィルタの精度は低くなります。フィルタの精度をなるべく維持するように削減する乗算器を決定することがこの問題の最も難しい点です。例えば100次(N=100)程度のFIRフィルタの乗算器をたかが5個削減するだけでも7千万以上の選び方があります。その中から最も良い、またはそれに準じる精度をもつフィルタを選ぶとなると相当難しい問題であることが伝わると思います。次に私が提案したタブーサーチによる設計法で設計したスパースFIRフィルタの振幅特性を示します。

スパースFIRフィルタの振幅特性

この特性と同程度の精度を非スパースFIRフィルタで得ようとしたら、このスパースFIRフィルタよりも回路規模が大きくなります。