|
10体能
比如有这么一个例子
低通,采样频率为 1Hz,通带临界频率 fp =0.2Hz,通带内衰减小于 1dB(αp=1) ;阻
带临界频率 fs=0.3Hz,阻带内衰减大于 25dB(αs=25) 。设计一个数字滤波器满足以上参数。
我不明白直接设计法是什么依据,而且该方法得到的结果与脉冲响应不变法或者双线性变换法都不同,请高手指点。
%直接设计
FS=1
[n,Wn]=buttord(0.2/(FS/2),0.3/( FS /2),1,25);
[b,a]=butter(n,Wn);
[h,w]=freqz(b,a);
f=w/pi*FS./2;
figure(1);
plot(f,20*log10(abs(h)));
grid;
%脉冲响应不变法
FS=1
[n,Wn]=buttord(0.2*2*pi,0.3*2*pi,1,25,'s'); %临界频率采用角频率表示
[b,a]=butter(n,Wn,'s');
%freqs(b,a) %设计模拟的
[bz,az]=impinvar(b,a,FS); %映射为数字的
[h,w]=freqz(bz,az);
f=w/pi*FS./2;
figure(2);
plot(f,20*log10(abs(h)));
grid;
%双线性变换法
FS=1
%通带、阻带截止频率
Fl=0.2;Fh=0.3;
%频率预畸
wp=(Fl/FS)*2*pi; %临界频率采用角频率表示
ws=(Fh/FS)*2*pi; %临界频率采用角频率表示
OmegaP=2*FS*tan(wp/2);
OmegaS=2*FS*tan(ws/2);
[n,Wn]=buttord(OmegaP,OmegaS,1,25,'s');
[b,a]=butter(n,Wn,'s');
%freqs(b,a) %设计模拟的
[bz,az]=bilinear(b,a,FS); %映射为数字的
[h,w]=freqz(bz,az);
f=w/pi*FS./2;
figure(3);
plot(f,20*log10(abs(h)));
grid;
|
|