fvtool
Matlab (2011a) で関数を使用しようとしています。
これは、多くの機能で構成されたインタラクティブな「ツール」です。私のコードは次のようになります。
%fs1=256; fs2=64; fs3=32;
b1 = fir1(52,0.25,kaiser(53,7.85726));
b2 = fir1(40,0.5,kaiser(41,7.85726));
b3 = fir1(204,0.5,kaiser(205,10.0613));
fvtool(b1,1,b2,1,b3,1);
これにより、次が生成されます。
次に、「分析」メニューに移動して「サンプリング周波数」を選択し、サンプリング周波数を入力します。フィルターごとに。結果は次のとおりです。
2 番目と 3 番目のフィルターの応答が繰り返されるため、あまり良くありません。最初のフィルターの応答は良好で、0 から 256/2=128 Hz まで変化します。2 番目と 3 番目のフィルターの応答を 64/2=32 と 32/2=16 にしたいと考えています。それぞれ。
だから私は手動でそれをやろうとしました、
%Digital filter:
fs1=256; fs2=64; fs3=32;
b1 = fir1(52,0.25,kaiser(53,7.85726)); b1(end+256)=0;
b2 = fir1(40,0.5,kaiser(41,7.85726)); b2(end+448)=0;
b3 = fir1(204,0.5,kaiser(205,10.0613)); b3(end+480)=0;
%Filters Response
n=1024;
w = logspace(-1,2,n);
digi_1 = freqz(b1,1,n,fs1); semilogx(w,20*log10(abs(digi_1)),'Color','k'); hold on
digi_2 = freqz(b2,1,n,fs2); semilogx(w,20*log10(abs(digi_2)),'Color','b'); hold on
digi_3 = freqz(b3,1,n,fs3); semilogx(w,20*log10(abs(digi_3)),'Color','r');
axis ([0.1 128 -140 10])
ここでは、freqz を使用して、フィルターの分子と分母、ポイント数 n、およびサンプリング周波数を指定します。fs。問題は、サンプリング周波数の有無にかかわらず、Matlab が変更を行わないように見えることです。つまり、何も変更しない場合です。
したがって、誰かが助けたい場合、彼/彼女は私を助けてくれるかfvtools
、fvtools
.