FIRフィルタ
WEB上の設計ツールを使って、FIRフィルタを作成し、試験信号で確認します。
ソースコードやプロジェクトファイルのダウンロードはこちら →fir.zip
| (1)雑音入り正弦波による試験用のプログラムです。 | ||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ブロック図 | ![]() | |||||||||||||||||||||||||||||||||
| プログラム |
coef = "fir_coef.csv"; // FIRフィルタ係数ファイル
dim = 31; // FIRフィルタ段数
dtMsec=1; // 演算周期(ミリ秒)
proc
{
signal = Ain( 0, 0, 1 ); // アナログ入力ch0
test = w_sin( period, 0, 1 ) + gauss( sd ); // 試験信号
if mode>0 { FIRin = signal; } // mode>0 ならアナログ入力
else { FIRin = test; } // mode=0 ならシミュレーション
FIRout = fir( FIRin, dim, coef ); // FIRフィルタ
Aout( 0, 0, 1, FIRout ); // アナログ出力ch0:フィルタ出力
Aout( 1, 0, 1, test ); // アナログ出力ch1:試験信号出力
} | |||||||||||||||||||||||||||||||||
| 記号 |
以下の関数、信号、パラメータを使っています。 ソースコードで宣言したパラメータの値を操作パネルから変更はできません。
| |||||||||||||||||||||||||||||||||
| 説明 |
石川高専山田洋二研究室ホームページ http://dsp.jpn.org/dfdesign/のメニューから 「FIRフィルタ設計」の「窓関数法」を選択し、下図左のように設計パラメータを入力して「設計する」ボタンを押しますと、下図右のような結果が得られます。
この計算結果の、Nを除く31個の数値をそのままテキストファイルに貼り付け、 "fir_coef.csv"という名前でプロジェクトファイルのあるフォルダに保存します。 宣言したパラメータ dim の値は、フィルタ長 N=31 と一致させねばなりません。 | |||||||||||||||||||||||||||||||||
| 設定例 | ![]() | |||||||||||||||||||||||||||||||||
| 記録例 | ![]() | |||||||||||||||||||||||||||||||||
| (2)試験部を削除した実用のプログラムです。 | |
|---|---|
| ブロック図 | ![]() |
| プログラム |
coef = "fir_coef.csv"; // FIRフィルタ係数ファイル
dim = 31; // FIRフィルタ段数
dtMsec=1; // 演算周期(ミリ秒)
proc
{
FIRin = Ain( 0, 0, 1 ); // アナログ入力ch0
FIRout = fir( FIRin, dim, coef );// FIRフィルタ
Aout( 0, 0, 1, FIRout ); // アナログ出力ch0:フィルタ出力
} |




