Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
 
 
主题工具 显示模式
旧 2011-04-25, 18:22   #1
aytianyu
初级会员
 
注册日期: 2011-04-25
帖子: 1
声望力: 0
aytianyu 正向着好的方向发展
问题 求助高手!如何利用双线性变换法设计模拟低通滤波器。

1.用双线性变换法设计一个数字低通滤波器。模拟低通滤波器用BW型低通滤波器。设系统的抽样频率为44.1kHZ。所设计的数字滤波器要能取代具有下列指标的模拟低通滤波器。
fp=2000hz fs=10000hz Ap=0.5db As=50db


我设计的仿真程序如下:
Wp=4000*pi; Ws=20000*pi; Ap=0.5; As=50;%分别定义了通带、阻带截频以及最大最小衰减
Fs=441000; %抽样频率为441000hz
wp=2*tan(Wp/2)/T;ws=2*tan(Ws/2)/T;%利用模拟低通滤波器的特性。
[N,wc]=buttord(wp,ws,Ap,As,'s')%选用bw型 低通滤波器
[numa,dena]=butter(N,wc,'s')
[numd,dend]=bilinear(numa,dena,Fs)
w=linspace(0,pi,1024);%输出频率响应
h=freqz(numd,dend,w);
plot(w/pi,20*log10(abs(h)));
axis([0 1 -50 0]);grid;
xlabel('频率');
ylabel('幅度响应,dB');
w=[Wp Ws];h=freqz(numd,dend,w);
fprintf('Ap= %.4f\n',-20*log10( abs(h(1))));
fprintf('As= %.4f\n',-20*log10( abs(h(2))));




可是当运行matlab时 系统说我:??? Error using ==> buttord at 42
The cutoff frequencies must be non-negative for analog filters.


请问高手如何解决!!谢谢!
aytianyu 当前离线   回复时引用此帖
 

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 15:24


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.