声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2244|回复: 1

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

[复制链接]
发表于 2010-11-27 22:27 | 显示全部楼层 |阅读模式
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;

回复
分享到:

使用道具 举报

发表于 2010-12-2 21:55 | 显示全部楼层
直接涉及法应该指的是直接设计数字滤波器,而不是先设计模拟滤波器,再变换到数字域。
你所说的直接设计法其实不是真正的直接设计法,直接设计法给出频率序列和幅值序列,可以设计较为复杂的幅频特性(不限于低通、高通、带通、带阻)
你所说的直接涉及法,采用的还是双线性变换法,可能是进行了预畸变,所以使得结果有所不同。
个人意见,仅供参考。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-18 10:23 , Processed in 0.068787 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表