FIRフィルタについて

1種類のフィルタ係数で2個の独立したバッファを持つFIRフィルタを同時に2個使用できます。 フィルタ係数のサイズは512、1024、2048、4096から実行中のものと同じサイズが選択されます。 FIRフィルタを使用するに当たって以下の利点と欠点があります。

⚫️利点⚫️
思うままの周波数特性が自由に実現でき、急峻な特性でも安定に得られます。
アナログフィルタでは実現できない位相直線性が得られます。

⚫️欠点⚫
サイズによりますが大きな遅延が発生します。
CPUへの負荷が大きく発熱が増大します。
フィルタサイズを大きすると処理がリアルタイムに追従できない場合があります。





FIRフィルタを使用するには、このようにFIRフィルタブロックを経路に置くだけです。
フィルタ係数はグラフィックイコライザのようにVolumeで設定する方法と
CSVファイルから係数を読み込む方法があります。

FIR専用ボリューム





メニューバーの「Instrument」→「FIR」で上のFIR専用ボリューム画面が開きます。
見た通りのオーディオ用グラフィックイコライザです。
周波数特性の設定は音声再生中にリアルタイムで可能です。





この設定の時のスペアナ表示はこのようになります。
この鋭い切れ味はFIRならではのものです。

オシロスコープの「ON」スイッチを操作してOFFにした状態でボリュームを操作すると、 その時のf得設定値とフィルタ係数をオシロ画面に表示します。

フィルタ係数の読み込み





FIR Fileという回路ブロックを選ぶと上の回路図左下にある「FIR File No」 というファイル定義が可能になり、FIR専用ボリュームではなくフィルタから係数を読み出します。
Documentsフォルダの下に以下のファイル名で係数を置いておく必要があります。

fircoef0.csv
fircoef1.csv
fircoef2.csv

ファイル名はfircoef+番号でなければならず、番号は0から9までです。
読み込むファイル番号は「FIR File No=0」のように指定します。
Documentsフォルダとして「書類」が認識される場合と「ライブラリ」の以下の「Documents」 が認識される場合があります。 オシロなどが出力するwaveform.csvと同じフォルダになるため、これを検索すると良いでしょう。

ファイル内部の書式は512サイズの場合以下のようになります。
フィルタサイズは必ずバッファサイズと同じ大きさのものを用意してください。

0,係数1
1,係数2
3,係数3


511,係数511

FIRフィルタの構造は以下の通りになります。
係数1、2、3はこの図のa0、a1、a2になります。


サンプル回路のダウンロード