1

buttord 関数に問題があります。機能が理解できていないと思います。いくつかのパラメーターを渡し、フィルターの負の順序を取得しています。これはどのように可能ですか?通過帯域が 1500Hz で終了し、阻止帯域が 2000Hz で始まるアナログ ローパス フィルターを作成しています。リップル要件は dB 単位であり、何かが変わるかどうかはわかりません。Matlab のドキュメントを見てきましたが、コードのどこが悪いのかわかりません。

これは私のコードです:

rbp = 0.10; %pass band ripple requierement 
rbs = 0.05; %stop band ripple

fp = 1500; %pass band freq
fs = 2000; %stop band freq

Wp = 2*pi*fp; % change to rad/sec
Ws = 2*pi*fs;

[N, Wn] = buttord(Wp,Ws,rbp,rbs,'s') %yields N = -1

ありがとうございました!

4

1 に答える 1

2

rbsストップ バンド リップルと誤って解釈しています。実際には、これは阻止帯域の最小減衰量を表すため、はるかに高い値を持つ必要があります。たとえば、設定 . rbs=20(dB) を与えN=15ます。

からhelp buttord:

[N, Wn] = BUTTORD(Wp, Ws, Rp, Rs) returns the order N of the lowest 
order digital Butterworth filter that loses no more than Rp dB in 
the passband and has at least Rs dB of attenuation in the stopband.  
Wp and Ws are the passband and stopband edge frequencies, normalized 
from 0 to 1 (where 1 corresponds to pi radians/sample).
于 2013-10-20T20:32:00.117 に答える