tjucruiser 发表于 2010-11-27 22:27

请教滤波器设计中,直接设计法是什么意思?

比如有这么一个例子
低通,采样频率为 1Hz,通带临界频率 fp =0.2Hz,通带内衰减小于 1dB(αp=1) ;阻
带临界频率 fs=0.3Hz,阻带内衰减大于 25dB(αs=25) 。设计一个数字滤波器满足以上参数。

我不明白直接设计法是什么依据,而且该方法得到的结果与脉冲响应不变法或者双线性变换法都不同,请高手指点。

%直接设计
FS=1
=buttord(0.2/(FS/2),0.3/( FS /2),1,25);
=butter(n,Wn);
=freqz(b,a);
f=w/pi*FS./2;
figure(1);
plot(f,20*log10(abs(h)));
grid;

%脉冲响应不变法
FS=1
=buttord(0.2*2*pi,0.3*2*pi,1,25,'s');   %临界频率采用角频率表示
=butter(n,Wn,'s');
%freqs(b,a)      %设计模拟的
=impinvar(b,a,FS);   %映射为数字的
=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);
=buttord(OmegaP,OmegaS,1,25,'s');
=butter(n,Wn,'s');
%freqs(b,a) %设计模拟的
=bilinear(b,a,FS); %映射为数字的
=freqz(bz,az);
f=w/pi*FS./2;
figure(3);
plot(f,20*log10(abs(h)));
grid;

pzfs1016 发表于 2010-12-2 21:55

直接涉及法应该指的是直接设计数字滤波器,而不是先设计模拟滤波器,再变换到数字域。
你所说的直接设计法其实不是真正的直接设计法,直接设计法给出频率序列和幅值序列,可以设计较为复杂的幅频特性(不限于低通、高通、带通、带阻)
你所说的直接涉及法,采用的还是双线性变换法,可能是进行了预畸变,所以使得结果有所不同。
个人意见,仅供参考。
页: [1]
查看完整版本: 请教滤波器设计中,直接设计法是什么意思?