関数 > 信号処理 > デジタルフィルタ > 例: FIR フィルタ設計
例: FIR フィルタ設計
lowpasshighpassbandpassbandstop関数を使用して FIR フィルタを設計します。
ローパスフィルタのウィンドウの比較
矩形のウィンドウと Blackman ウィンドウを使用して、ローパスフィルタの係数を計算します。
1. 正規化されたカットオフ周波数と係数の数を設定します。
クリックしてこの式をコピー
クリックしてこの式をコピー
2. lowpass 関数を使用し、矩形のウィンドウと Blackman ウィンドウを使用して係数を計算します。
クリックしてこの式をコピー
クリックしてこの式をコピー
3. 係数を表示して周波数応答を計算する範囲を定義します。
クリックしてこの式をコピー
4. 2 セットの係数をプロットします。
クリックしてこの式をコピー
5. gain関数を使用して、周波数応答のゲインを計算します。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
6. phase関数とphasecor関数を使用して、周波数応答のマグニチュードと位相を計算します。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
7. 周波数応答のマグニチュードをプロットします。横マーカーを使用して、カットオフ周波数におけるマグニチュードをマーク付けします。
クリックしてこの式をコピー
クリックしてこの式をコピー
どちらのトレースもカットオフ周波数で同じ点を通過していますが、M1 の方が遷移が鋭くなっています。どちらの周波数応答も、カットオフ周波数におけるマグニチュードは 0.5 です。
8. 周波数応答の位相をプロットします。横マーカーを使用して、カットオフ周波数における位相をマーク付けします。
クリックしてこの式をコピー
クリックしてこの式をコピー
どちらのトレースもカットオフ周波数で同じ点を通過しています。カットオフ周波数における周波数応答の位相は -18.85 です。
9. 周波数応答の dB マグニチュードをプロットします。横マーカーを使用して、カットオフ周波数における dB マグニチュードをマーク付けします。
クリックしてこの式をコピー
クリックしてこの式をコピー
どちらのトレースもカットオフ周波数で同じ点を通過しています。カットオフ周波数における dB マグニチュードは -0.304 です。
コンボリューションによるフィルタ
コンボリューションを使用してこれらの FIR 係数を適用します。
1. sin関数を使用して、サンプリング周波数を基準にして正規化された、低周波数、中周波数、高周波数から成る信号を定義します。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
2. 信号 x をプロットします。
クリックしてこの式をコピー
3. lowpass 関数、highpass 関数、bandpass 関数、bandstop 関数を使用し、Hamming ウィンドウ (5 番) と正規化されたフィルタカットオフ周波数を使用して、フィルタの係数を生成します。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
4. 信号のフィルタを 2 つの方法によって実行してみます。フィルタのインパルス応答と x をコンボリューションしますが、最初の 2 つでは関数convolve、次の 2 つでは関数responseを使用します。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
5. convolve の出力の長さは、x の長さと係数配列の長さの和よりも 1 少なくなっています。
クリックしてこの式をコピー
クリックしてこの式をコピー
6. ローパス出力と信号の低周波成分をプロットします。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
フィルタによって生じる遅延を考慮して、正弦波が右に 25 シフトしています。このフィルタは基本的には低周波成分だけを通し、通過した信号はいくらか減衰します。
7. ハイパス出力と信号の高周波成分をプロットします。
クリックしてこの式をコピー
クリックしてこの式をコピー
フィルタによって生じる遅延を考慮して、正弦波が右に 25 シフトしています。このフィルタは基本的には高周波成分だけを通し、通過した信号はいくらか減衰します。
フィルタの効果のチェック
1. dft関数を使用して、元の信号のスペクトルをフィルタ後のスペクトルと比較することで、バンドストップフィルタの効果を調べます。
クリックしてこの式をコピー
クリックしてこの式をコピー
2. フィルタ前後の最初の 60 個のスペクトル値をプロットします。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
中周波数がうまく減衰しています。
3. dft 関数を使用して、元の信号のスペクトルをフィルタ後のスペクトルと比較することで、バンドパスフィルタの効果を調べます。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
ほとんどの低周波数とすべての高周波数がうまく減衰しています。
これは役に立ちましたか?