FFT-IFTフィルタ
FFTとIFT(逆FFT)を利用したフィルタ関数です。
使い道は限られますが、とんでもなく急峻な減衰特性と完璧な位相特性を持っていますので、特定の周波数成分をピンポイントでフィルタしたいときに有効です。
入力
- フィルタタイプ
フィルタの通過特性を選びます。ローパス、ハイパス、バンドパス、バンドストップが選べます。デフォルトはローパスです。
- X
フィルタ処理したいデータ配列です。
- サンプル周波数 : fs
サンプリング周波数です。デフォルトは1.0です。
- 高域カットオフ周波数 : fh
高域のカットオフ周波数です。フィルタタイプがバンドパスまたはバンドストップのときのみ有効です。
- 低域カットオフ周波数 : fl
低域のカットオフ周波数です。全てのフィルタタイプで使われます。たとえばハイパスのときもこの値がカットオフ周波数になります。
出力
- フィルタされたX
フィルタ処理されたデータ配列です。
ダイアグラムの解説
- データ配列をFFTします。
- フィルタタイプに応じて、周波数領域のウィンドウデータを複素数で作ります。ストップ領域をゼロにするとかえって特性がおかしくなるので10e-9程度にします。これでも-180dBに相当します。
- 周波数領域でウィンドウをかけます。
- 逆FFTします。
パフォーマンス
上がFFT-IFTフィルタのバンドパス特性。下が33次のバターワースフィルタのバンドパス特性です。
制限または仕様
- LabVIEW7.1のVIです。それ以外のバージョンでもコンバートすれば使えます。
- 通常のフィルタ関数にある初期化/継続端子がありません。常に初期化状態で動作しますので、ブロックシーケンスの連続フィルタ処理はできません。
ダウンロード
fft_filter.zip(22KB)