FIRフィルタ係数計算機は、フィルタ係数(タップとも呼ばれます)を自動計算することで、エンジニア、DSPを学ぶ学生、オーディオ開発者が有限インパルス応答(FIR)フィルタを設計するのに役立ちます。これらの係数は、入力信号の重み付けと加算方法を定義し、所望のフィルタリング効果を生み出します。このツールは、手作業による計算に比べて時間を節約し、エラーを最小限に抑えます。
このツールは、 デジタル信号処理(DSP)計算機 カテゴリ。
FIRフィルタ係数計算機の計算式
1. FIRフィルタ出力
基本的な FIR フィルタは、過去の入力サンプルの加重合計を適用します。
y[n] = Σ (k = 0 から N−1 まで) [ h[k] × x[n−k] ]
どこ:
- y[n] = 時間の出力 n
- x[n−k] = 時刻の入力サンプル n−k
- h[k] = タップにおけるフィルタ係数 k
- N = タップ数(フィルタ次数 + 1 に等しい)
2. 係数計算(ウィンドウ法)
単純なローパス FIR フィルタの場合、理想的なインパルス応答は次のようになります。
h[k] = ( sin(2πf_c (k − M)) ) / (π (k − M))
どこ:
- ふー = 正規化されたカットオフ周波数(希望するカットオフ周波数をサンプリング周波数で割ったもの)
- k = インデックス (0 ~ N−1)
- M = (N−1)/2 (センタータップ)
k = M の場合の特別なケース:
h[M] = 2 × f_c
3. ウィンドウ関数を適用する
リップルを減らしてパフォーマンスを向上させるために、理想的な係数にウィンドウを掛けます。
h_windowed[k] = h[k] × w[k]
どこ:
- w[k] = タップ時のウィンドウ関数の値 k
一般的なウィンドウ関数には、ハミング、ハニング、ブラックマンなどがあります。
一般的なウィンドウ関数表
ウィンドウ名 | メインローブ幅 | サイドローブ減衰 | 典型的な使用 |
---|---|---|---|
長方形の | 最も狭い | 減衰が悪い | 基本的な使用、高リップル |
ハミング | 広い | より良い減衰 | 一般的なDSPフィルター |
ハニング | ハミングに似ている | わずかに低い減衰 | 滑らかな信号エッジ |
ブラックマン | 最も広い | 高減衰 | 高精度フィルター |
FIRフィルタ係数計算機の例
ローパス FIR フィルタを設計します。
仕様:
- カットオフ周波数: 1 kHz
- サンプリング周波数:8 kHz
- フィルタ次数: 20 (N = 21 タップ)
- ウィンドウ:ハミング
ステップ:
- 正規化されたカットオフ周波数を計算します。
f_c = 1 kHz / 8 kHz = 0.125 - Mを計算します:
M = (21 − 1)/2 = 10 - 各k(0~20)について、次を計算します。
h[k] = sin(2π × 0.125 × (k − 10)) / (π (k − 10)) k = M (10)の場合:
h[10] = 2 × 0.125 = 0.25 - ハミングウィンドウw[k]を乗算します。
計算機はこれらすべてのステップを即座に自動化します。
最も一般的な FAQ
次数が高いほど(タップ数が多いほど)、周波数分離は向上しますが、処理時間は長くなります。オーディオや一般的なDSPの場合、典型的な次数は20~100です。
理想的なフィルタは無限の応答特性を持ちます。Windowsはこれを制限しますが、不要なリップルやリークを抑制し、実用的な性能を向上させます。
はい。FIR フィルタは本質的に安定しており予測可能であるため、リアルタイム アプリケーションに適していますが、次数が高いと計算時間が長くなる可能性があります。