インパルス応答の周波数特性表示 [Octave workshop]
タップ数やフィルタ係数を決め打ちで、f特を求めたい時に使います。
> IP=[1,1,1]/3;
> [h,w]=freqz(IP);
> grid on;
> plot(w, 20*log10(abs(h)));
3平均化フィルタの周波数特性(ナイキスト=π)
フィルタによっては、次のような、変な特性が求まることがあります。
> IP=[1,0,2,0,1]/4;
> [h,w]=freqz(IP);
> grid on;
> plot(w, 20*log10(abs(h)));
[1,0,2,0,1]/4のフィルタ係数を持つフィルタのf特 変な例
これは、算出したf特が絶対値0(0+0i)を持つ場合に現れる現象のようです。
暫定かもしれませんが、解決法としては、
①周波数軸を0~πに限定表示する方法
②該当する部分のf特を、固定値に挿げ替える方法
の2種類が考えられます。
①周波数軸を0~πに限定表示する方法
> axis([0 3.15 -100 0]);
以下の警告は、その通りです、と認識する程度。
warning: axis: some elements in list of return values are undefined
[1,0,2,0,1]/4のフィルタ係数を持つフィルタのf特 表示域0~π
②該当する部分のf特を、固定値に挿げ替える方法
plot文の行、abs(h)の部分をabs(h+0.00001)→-100dB(h=0) に挿げ替え
> plot(w, 20*log10(abs(h+0.00001)));
これで、abs(h)=0で変になっていた点が、-100dBに固定されます。
何dBに固定するかは、TPOに合わせて、お好みで。
[1,0,2,0,1]/4のフィルタ係数を持つフィルタのf特 -100dB固定
コメント 0