matlab设计模拟带通滤波器

对接接头matlab设计模拟带通滤波器
简单记录下在matlab上如何设计出模拟的带通滤波器,包括:巴特沃斯滤波器、切⽐雪夫I型滤波器、切⽐雪夫II型滤波器、椭圆型滤波器。代码如下:涂锡焊带
%设计带通滤波器
%巴特沃斯、切⽐雪夫I型、切⽐雪夫II型、椭圆型滤波器
clear all;
%wp和ws分别是通带和阻带的频率(截⽌频率)。当wp和ws为⼆元⽮量时,为带通或带阻滤波器,这时求出的Wn也是⼆元⽮量;当wp和ws 为⼀元⽮量时,为低通或⾼通滤波器:当wp<ws时为低通滤波器,当wp>ws时为⾼通滤波器。
%wp和ws为⼆元⽮量发热的鞋子
wp=[0.1*2*pi 0.15*2*pi]; %设置通带频率
ws=[0.05*2*pi 0.2*2*pi]; %设置阻带频率
螺旋板冷凝器
Rp=1; %设置通带波纹系数
Rs=20; %设置阻带波纹系数
%巴特沃斯滤波器设计
[N,Wn]=buttord(wp,ws,Rp,Rs,'s'); %求巴特沃斯滤波器阶数,输出参数N代表满⾜设计要求的滤波器的最⼩阶数,Wn是等效低通滤波器的截⽌频率
%⽆论是⾼通、带通和带阻滤波器,在设计中最终都等效于⼀个截⽌频率为Wn的低通滤波器(我现在也不是很理解为啥是这样,毕竟我也是刚接触滤波器)
fprintf('巴特沃斯滤波器 N= %4d\n',N); %显⽰滤波器阶数
[bb,ab]=butter(N,Wn,'s'); %求巴特沃斯滤波器系数,即求传输函数的分⼦和分母的系数向量
W=0:0.01:2; %设置模拟频率
[Hb,wb]=freqs(bb,ab,W); %求巴特沃斯滤波器频率响应
plot(wb/pi,20*log10(abs(Hb)),'b'); %作图
hold on
%切⽐雪夫I型滤波器设计
[N,Wn]=cheb1ord(wp,ws,Rp,Rs,'s'); %求切⽐雪夫I型滤波器阶数
fprintf('切⽐雪夫I型滤波器 N= %4d\n',N); %显⽰滤波器阶数
[bc1,ac1]=cheby1(N,Rp,Wn,'s'); %求切⽐雪夫I型滤波器系数,即求传输函数的分⼦和分母的系数向量
[Hc1,wc1]=freqs(bc1,ac1,W); %求切⽐雪夫I型滤波器频率响应
plot(wc1/pi,20*log10(abs(Hc1)),'k'); %作图
%切⽐雪夫II型滤波器设计
[N,Wn]=cheb2ord(wp,ws,Rp,Rs,'s'); %求切⽐雪夫II型滤波器阶数
fprintf('切⽐雪夫II型滤波器 N= %4d\n',N);%显⽰滤波器阶数
[bc2,ac2]=cheby2(N,Rs,Wn,'s'); %求切⽐雪夫II型滤波器系数,即求传输函数的分⼦和分母的系数向量
云计算导航[Hc2,wc2]=freqs(bc2,ac2,W); %求切⽐雪夫II型滤波器频率响应
plot(wc2/pi,20*log10(abs(Hc2)),'r'); %作图
%椭圆型滤波器设计
[N,Wn]=ellipord(wp,ws,Rp,Rs,'s'); %求椭圆型滤波器阶数
fprintf('椭圆型滤波器 N= %4d\n',N); %显⽰滤波器阶数
[be,ae]=ellip(N,Rp,Rs,Wn,'s'); %求椭圆型滤波器系数,即求传输函数的分⼦和分母的系数向量
[He,we]=freqs(be,ae,W); %求椭圆型滤波器频率响应
%作图
plot(we/pi,20*log10(abs(He)),'g');
axis([0 max(we/pi) -30 2]);
legend('巴特沃斯滤波器','切⽐雪夫I型滤波器','切⽐雪夫II型滤波器','椭圆型滤波器');
xlabel('⾓频率{\omega}/{\pi}');
ylabel('幅值/dB');
line([0 max(we/pi)],[-20 -20],'color','k','linestyle','--');%在画布上画线
line([0 max(we/pi)],[-1 -1],'color','k','linestyle','--');
line([0.2 0.2],[-30 2],'color','k','linestyle','--');
line([0.3 0.3],[-30 2],'color','k','linestyle','--');
运⾏结果如下:
巴特沃斯滤波器 N= 4
切⽐雪夫I型滤波器 N= 3
切⽐雪夫II型滤波器 N= 3
抗振压力表椭圆型滤波器 N= 2
注:
1、求各种滤波器的传输函数的分⼦和分母向量系数的函数,例如:
[bc1,ac1]=cheby1(N,Rp,Wn,'s'); %求切⽐雪夫I型滤波器系数,即求传输函数的分⼦和分母的系数向量
这⾥的函数cheby1()中的参数为
cheby1(N,Rp,Wn,'type','s');
其中注意’type’可为⾼通:'high’或带阻:‘stop’,如果不填的话,默认是低通或者带通,⾄于是低通还是带通,主要看你前⾯的wp和ws是⼆元⽮量还是⼀元⽮量:⼆元⽮量对应带通,⼀元⽮量对应低通。

本文发布于:2024-09-22 07:18:56,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/117539.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:系数   带通   设计   频率   椭圆型   函数
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议