最小二乗フィルタを設計
Hz = yulewalk(N,frq,mag)
整数 (指定するフィルタの次数)
実数行ベクトル (非降順), 周波数.
非負の実数行ベクトル (frqと同じ大きさ), 指定する振幅.
フィルタ B(z)/A(z)
Hz = yulewalk(N,frq,mag) は N次IIRフィルタを見つけます.
n-1 n-2 B(z) b(1)z + b(2)z + .... + b(n) H(z)= ---- = --------------------------------- n-1 n-2 A(z) z + a(2)z + .... + a(n)
は,ベクトルfrqおよびmagで指定された周波数応答に振幅が一致します. 周波数frqは,1.0がサンプルレートの半分に対応するとして, 0.0および1.0の間とする必要があります. これらは昇順で, 0.0 から始まり, 1.0で終わる必要があります.
f=[0,0.4,0.4,0.6,0.6,1]; H=[0,0,1,1,0,0]; Hz=yulewalk(8,f,H); fs=1000; fhz = f*fs/2; scf(0); clf plot2d(fhz',H'); xtitle('Desired Frequency Response (Magnitude)') [frq,repf]=repfreq(Hz,0:0.001:0.5); scf(1); clf plot2d(fs*frq',abs(repf')); xtitle('Obtained Frequency Response (Magnitude)') | ![]() | ![]() |