数字信号处理实验matlab版用双线性变换法设计IIR数字滤波器

实验21用双线性变换设计IIR数字滤波器
(完美格式版,本人自己完成,所有语句正确,不排除极个别错误,特别适用于山大,勿用冰点等工具下载,否则下载之后的word格式会让很多部分格式错误,谢谢)
XXXX学号姓名处XXXX
一、实验目的
ttx2基板1. 加深对双线性变换法设计IIR数字滤波器基本方法的了解。
2. 掌握用双线性变换法设计数字低通、高通、带通、带阻滤波器的方法。
3. 了解MATLAB有关双线性变换法的子函数。
二、实验内容
1. 双线性变换法的基本知识。
2. 用双线性变换法设计IIR数字低通滤波器。
3. 用双线性变换法设计IIR数字高通滤波器。
4. 用双线性变换法设计IIR数字带通滤波器。
5. 用双线性变换法设计IIR数字带阻滤波器。
三、实验环境
MATLAB7.0 
四、实验原理
1.实验涉及的MATLAB子函数
Bilinear
功能:双线性变换——将s域(模拟域)映射到z域(数字域)的标准方法,将模拟滤波器变换成离散等效滤波器。
调用格式:
[numd,dend]=bilinear(num,den,Fs);将模拟域传递函数变换为数字域传递函数,Fs为取样频率。
[numd,dend]=bilinear(num,den,Fs,Fp);将模拟域传递函数变换为数字域传递函数,Fs为取样频率,Fp为通带截止频率。
[zd,pd,kd]=bilinear(z,p,k,Fs);将模拟域零极点增益系数变换到数字域,Fs为取样频率。
[zd,pd,kd]=bilinear(z,p,k,Fs,Fp);将模拟域零极点增益系数变换到数字域,Fs为取样频率,Fp为通带截止频率。
[Ad,Bd,Cd,Dd]=bilinear(A,B,C,D,Fs);将模拟域状态变量系数变换到数字域,Fs为取样频率。
2. 双线性变换法的基本知识
双线性变换法是将整个s平面映射到整个z平面,其映射关系为
  或     
双线性变换法克服了脉冲响应不变法从s平面到z平面的多值映射的缺点,消除了频谱混叠现象。但其在变换过程中产生了非线性的畸变,在设计IIR数字滤波器的过程中需要进行一定的预修正。
用MATLAB双线性变换法进行IIR数字滤波器设计的步骤(参见图19-1)与脉冲响应不变法设计的步骤基本相同:
(1)输入给定的数字滤波器设计指标;
(2)根据公式W=2[]Ttan[JB((]w[]2[JB))]进行预修正,将数字滤波器指标转换成模拟滤波器设计指标;
(3)确定模拟滤波器的最小阶数和截止频率;
(4)计算模拟低通原型滤波器的系统传递函数;
(5)利用模拟域频率变换法,求解实际模拟滤波器的系统传递函数;
(6)用双线性变换法将模拟滤波器转换为数字滤波器。
3. 用双线性变换法设计IIR数字低通滤波器
21-1 采用双线性变换法设计一个巴特沃斯数字低通滤波器,要求:wp=0.25p,Rp=1 dB;ws=0.4p,As=15 dB,滤波器采样频率Fs=100 Hz。
程序如下:
wp=0.25*pi;
ws=0.4*pi;
Rp=1;As=15;
肠镜裤ripple=10^(-Rp/20);Attn=10^(-As/20);
Fs=100;T=1/Fs;
Omgp=(2/T)*tan(wp/2);
Omgs=(2/T)*tan(ws/2);
[n,Omgc]=buttord(Omgp,Omgs,Rp,As,'s') ;
[z0,p0,k0]=buttap(n);
ba=k0*real(poly(z0));
aa=real(poly(p0));
[ba1,aa1]=lp2lp(ba,aa,Omgc);
%注意,以上4行求滤波器系数ba1、aa1的程序,可由下一条程序替代
%[ba1,aa1]=butter(n,Omgc,'s');
[bd,ad]=bilinear(ba1,aa1,Fs)
[sos,g]=tf2sos(bd,ad)
[H,w]=freqz(bd,ad);
dbH=20*log10((abs(H)+eps)/max(abs(H)));
subplot(2,2,1),plot(w/pi,abs(H));
ylabel('|H|');title('幅度响应');axis([0,1,0,1.1]);
set(gca,'XTickMode','manual','XTick',[0,0.25,0.4,1]);
set(gca,'YTickMode','manual','YTick',[0,Attn,ripple,1]);grid
subplot(2,2,2),plot(w/pi,angle(H)/pi);
ylabel('\phi');title('相位响应');axis([0,1,-1,1]);
set(gca,'XTickMode','manual','XTick',[0,0.25,0.4,1]);
set(gca,'YTickMode','manual','YTick',[-1,0,1]);grid
subplot(2,2,3),plot(w/pi,dbH);title('幅度响应(dB)');
ylabel('dB');xlabel('频率(\pi)');axis([0,1,-40,5]);
set(gca,'XTickMode','manual','XTick',[0,0.25,0.4,1]);
set(gca,'YTickMode','manual','YTick',[-50,-15,-1,0]);grid
subplot(2,2,4),zplane(bd,ad);
axis([-1.1,1.1,-1.1,1.1]);title('零极图')安全带插扣;
程序运行结果如下:
n=  5 
Omgc=103.2016
fp6290bd=0.0072  0.0362  0.0725  0.0725  0.0362  0.0072
ad=1.0000  -1.9434  1.9680  -1.0702  0.3166 -0.0392
sos=1.0000  1.0036  0  1.0000 -0.3193    0
  1.0000  2.0022 1.0022  1.0000 -0.6984  0.2053
1.0000  1.9942 0.9942  1.0000 -0.9257  0.5976
法兰加工设备
g= 0.0072
频率特性如图21-1所示。
图21-1 用双线性变换法设计的巴特沃斯数字低通滤波器特性
  由频率特性曲线可知,该设计结果在通阻带截止频率处能满足Rp≤1 dB、As≥15 dB的设计指标要求,系统的极点全部在单位圆内,是一个稳定的系统。由n=5可知,设计的巴特沃斯数字低通滤波器是一个5阶的系统,原型Ha(s)在s=-∞处有5个零点,映射到z=-1处。这个巴特沃斯数字低通滤波器的级联型传递函数应为
4. 用双线性变换法设计IIR数字高通滤波器
21-2 采用双线性变换法设计一个椭圆数字高通滤波器,要求通带fp=250 Hz,Rp=1 dB;阻带fs=150 Hz,As=20 dB,滤波器采样频率Fs=1000 Hz。
程序如下:
fs=150;fp=250;Fs=1000;T=1/Fs;
wp=fp/Fs*2*pi;
ws=fs/Fs*2*pi;
Rp=1;As=20;
ripple=10^(-Rp/20);
Attn=10^(-As/20);
Omgp=(2/T)*tan(wp/2);
Omgs=(2/T)*tan(ws/2);
[n,Omgc]=ellipord(Omgp,Omgs,Rp,As,'s')
[z0,p0,k0]=ellipap(n,Rp,As);
ba=k0*real(poly(z0));
1苯基1丙酮aa=real(poly(p0));
[ba1,aa1]=lp2hp(ba,aa,Omgc);
[bd,ad]=bilinear(ba1,aa1,Fs)
[H,w]=freqz(bd,ad);
dbH=20*log10((abs(H)+eps)/max(abs(H)));
subplot(2,2,1),plot(w/2/pi*Fs,abs(H),'k');
ylabel('|H|');title('幅度响应');axis([0,Fs/2,0,1.1]);
set(gca,'XTickMode','manual','XTick',[0,fs,fp,Fs/2]);

本文发布于:2024-09-22 12:40:58,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/166686.html

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

标签:数字   设计   模拟   变换   实验   传递函数   映射   频率
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议