巴特沃夫低通滤波器在MATLAB中怎么实现

 我来答
135246kdb
2010-11-27 · TA获得超过1052个赞
知道答主
回答量:111
采纳率:0%
帮助的人:107万
展开全部

%利用脉冲响应不变法,用巴特沃斯原型设计

%技术指标:wp=0.4*pi,ws=0.6*pi,Ap=0.5dB,As=50dB

wp=0.4*pi;

ws=0.6*pi;

Ap=0.5;

As=50;

Fs=1000;T=1/Fs;

omegap=wp*Fs;omegas=ws*Fs;

ripple=sqrt(1/10^(0.1*Ap));

attn=1/(10^(As/20));

[N,omegac]=buttord(omegap,omegas,Ap,As,'s');

[z0,p0,k0]=buttap(N);

k=k0*omegac^N;

z=z0*omegac;p=p0*omegac;

ba=k*real(poly(z));

aa=real(poly(p));

[bd,ad]=impinvar(ba,aa,Fs);

[H,w]=freqz(bd,ad,1000,'whole');

H=[H(1:501)]';

w=[w(1:501)]';

mag=abs(H);

db=20*log10(mag);

pha=angle(H);

figure;

subplot(221);

plot(w/pi,mag);

ylabel('|H|');title('幅度响应');axis([0 1 0 1.1]);

grid;

set(gca,'xtickmode','manual','xtick',[0 0.4 0.6 1]);

set(gca,'ytickmode','manual','ytick',[0 attn ripple 1]);

subplot(222);

plot(w/pi,pha/pi);

xlabel('频率(单位:pi)');ylabel('单位:pi');title('相位响应');

axis([0 1 -1 1]);

grid;

set(gca,'xtickmode','manual','xtick',[0 0.4 0.6 1]);

set(gca,'ytickmode','manual','ytick',[-1 0 1]);

subplot(223);

plot(w/pi,db);

xlabel('频率(单位:pi)');ylabel('分贝');title('幅度(单位:分贝)');

axis([0 1 -150 50]);

grid;

set(gca,'xtickmode','manual','xtick',[0 0.4 0.6 1]);

set(gca,'ytickmode','manual','ytick',[-100 -50 0 50]);

set(gcf,'color','w');

%程序运行结果如下图

赛恩科仪
2025-08-07 广告
广州赛恩科学仪器有限公司(原中大科仪)始创于2032年,是全球领先的精密测量仪器供应商和微弱信号检测方案提供商。公司以锁相放大器为核心产品,陆续推出光学斩波器、源表、功率放大器、电化学工作站、电流源等一系列产品。赛恩科仪推出的锁相放大器,覆... 点击进入详情页
本回答由赛恩科仪提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式