セミナ特製EXCEL@-1 高性能FIRフィルタ(Remez法)の設計と検証

セミナ用コンテンツです

 コラム27では「窓関数法」でFIRフィルタを設計しましたが、ここでは「
Remez法」で設計します(*1)。

(*1)近年では窓関数法よりもRemez法が減衰率を深くとりやすいためよく使われる(ここ参照)。Remez法は「等リプル近似法」、「Parks-McClellan法」とも呼ばれる。

 fir_remez.xlsmを開きましょう(CQエレクトロニクスセミナで配布)。READMEシートにパラメータがありますが、B4〜B12 までが設計用、B13, 14は検証用です。
 デフォルトではフィルタタイプが0なので
LPF、下図のようにfc1=1500からfc2=2000Hzにかけて減衰します。ひとまずこれらパラメータで設計してみましょう。


●VBAでフィルタ係数の導出

 開発タブのVisual Basicをクリックし、Module01(fir_coeff_cal)を開いて実行します(下図)。


 f-responseシートのD列に係数が現れます。係数は280個あります(READMEシートでタップ数280とした)。


周波数特性の確認(低域通過特性)

 同シートの右の方に周波数特性があります。下図は振幅特性で、1500〜2000Hzにかけて一気に減衰しています(READMEシートでfc1, fc2を設定した)。
 また減衰量は-90dB弱になっています。READMEシートで減衰量 att= -100 と設定しましたが、これはあくまでも目安で、他のパラメータによって増減します。


 周波数特性が計算されないときはVBAのModule02を実行しましょう。


 振幅特性の下に位相特性があります。下図のようにATAN2関数を使って計算するのでギザギザになりますが、実際は直線位相特性です。


次のページへ

目次へ戻る