实验:用双线性变换法设计IIR数字滤波器
用双线性变换法设计IIR数字滤波器

用双线性变换法设计IIR数字滤波器一.实验目的:1)熟悉用双线性变换法设计IIR数字滤波器的原理和方法。
2)掌握数字滤波器设计的计算机仿真方法。
3)观察对心电图信号的实际滤波作用,获得数字滤波的感性认识。
二.实验内容:1)用双线性变换法设计巴特沃斯IIR数字滤波器。
设计指标为:通带内频率低于0.3πrad时,最大衰减小于2dB;在阻带[0.6π,π]频率区间上,最大衰减大于20dB。
2)绘出数字滤波器的幅频响应特性曲线、相频特性曲线和零极图。
三.实验程序:wp=0.3*pi;ws=0.6*pi;Rp=2;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');%计算阶数n和截至频率[ba1,aa1]=butter(n,Omgc,'s');%求模拟滤波器系数[bd,ad]=bilinear(ba1,aa1,Fs)%用双线性变换法求数字滤波器系数b,a[sos,g]=tf2sos(bd,ad);%由直接型变换为级联型[H,w]=freqz(bd,ad);%求数字系统的频率特性subplot(2,2,1);plot(w/pi,abs(H));title('幅度响应');axis([0,1,0,1.1]);subplot(2,2,2);plot(w/pi,angle(H)/pi);title('相位响应');axis([0,1,-1,1]);subplot(2,2,3);zplane(bd,ad);title('零极图');axis([-1.1,1.1,-1.1,1.1]);四.实验结果:程序运行结果:bd =0.0780 0.2339 0.2339 0.0780ad =1.0000 -0.7958 0.5020 -0.0824五.总结:通过这个实验,对设计数字滤波器的整个过程有了比较好的掌握。
数字信号处理实验三 ——用双线性变换法设计IIR数字滤波器

1 T j T
z
2
1 T
j
2 T
1
2
2
1 j T
z
2 1
1 j T
2
1 T j T
z
2
1 T
j
2 T
1
2
2
j
j Im[z]
-1
1 Re[z]
0
0
s平面
z平面
(2)整个左半平面映射成单 位圆的内部,因此这是一个 稳定的变换。 (3)虚轴以一一对应的方式 映射成单位圆,因此在频域 中不会出现混叠。
实验原理及方法
由于幅度为1,把ω 看做Ω 的函数求解,得到:
1 j T
0 z
2 e j
1 j T
2
2 tan1
T 2
2 T
tan
2
这说明Ω和ω的关系是非线性的,但是没出现混叠。在把Ω变换为
ω时产生了非线性畸变。为了克服它带来的问题,通常要使Ω按上式预
把给出的数字滤波器的性能指标转换为模拟滤波器的 性能指标
根据转换后的性能指标,通过滤波器阶数选择函数, 来确定滤波器的最小阶数N和固有频率Wn
由最小阶数N得到低通滤波器原型 由固有频率Wn把模拟低通滤波器原型转换为低通、高
实验三用双线性变换法设计iir数字滤波器

实验_三_题目_用双线性变换法设计IIR 数字滤波器 第16周星期_3_第6,7节一. 实验目的(1)熟悉用双线性变换法设计IIR 数字滤波器的原理与方法。
(2)掌握数字滤波器的计算机仿真方法。
(3)通过观察对实际心电图信号的滤波作用,获得数字滤波的感性知识。
二、实验内容、方法、设计程序及实验结果(1)复习有关巴特沃斯模拟滤波器设计和用双线性变换法设计IIR 数字滤波器的内容,用双线性变换法设计数字滤波器系统函数()z H 。
其中满足本实验要求的数字滤波器系统函数为:()()()()()212121612155.09044.013583.00106.117051.02686.1110007378.0-------+-+-+-+=zz z z z zz z H ()z H k k ∏==31()式中: ()()3211212121,,,k z C z B z z A z H k k k =--++=----()2155.09044.03583.00106.17051.02686.109036.0332211-==-==-===C B C B C B A ,,,根据设计指标,调用MATLAB 信号处理工具箱buttord 和butter ,也可以得到()z H 。
由公式()和()可见,滤波器()z H 由三个二阶滤波器()z H 1、()z H 2和()z H 3级联而成,如图3-1所示。
()n y图3-1 滤波器()z H 的组成此参数下的程序如下:%实验三,用双线性变换法设计 IIR数字滤波器x=[-4,-2,0,-4,-6,-4,-2,-4,-6,-6,-4,-4,-6,-6,-2,6,12,8,0,-16,... -38,-60,-84,-90,-66,-32,-4,-2,-4,8,12,12,10,6,6,6,4,... 0,0,0,0,0,-2,-4,0,0,0,-2,-2,0,0,-2,-2,-2,-2,0];k=1; %控制滤波循环变量close all; %关闭全部绘图窗口figure(1); %创建绘图窗口subplot(2,2,1); %定位子图 1n=0:55; %横坐标stem(n,x,'.'); %画出枝干图axis([0,56,-100,50]); %调整坐标xlabel('n'); %标注横坐标ylabel('x(n)'); %标注纵坐标title('心电图信号采集序列x(n)');%命名该子图B=[,2*,];%H1 滤波器的分子系数矩阵A=[,]; %H1滤波器的分母系数矩阵A1=[,]; %H2滤波器的分母系数矩阵A2=[,]; %H3滤波器的分母系数矩阵while(k<=3)y=filter(B,A,x); %进行滤波x=y; %重新赋值X 进行下一次滤波k=k+1; %控制循环变量if k==2A=A1;else A=A2;endendsubplot(2,2,3); %定位子图3stem(n,y,'.');axis([0,56,-100,50]);xlabel('n');ylabel('y(n)');title('三级滤波后的心电图信号(原坐标)');subplot(2,2,2)stem(n,y,'.');axis([0,56,-15,5]);xlabel('n');ylabel('y(n)');title('调整坐标后的心电图信号');%求数字滤波器的幅频特性A=[,2*,];%滤波器的分子系数矩阵B1=[1,,]; %H1滤波器的分母系数矩阵B2=[1,,]; %H2滤波器的分母系数矩阵B3=[1,,]; %H3滤波器的分母系数矩阵[H1,w]=freqz(A,B1,100); %进行滤波器幅频特性分析[H2,w]=freqz(A,B2,100);[H3,w]=freqz(A,B3,100);H4=H1.*(H2); %点积H=H4.*(H3);db=20*log10(abs(H)+eps);subplot(2,2,4)plot(w/pi,db);axis([0,,-50,10]);xlabel('w');ylabel('|H(e^j^w)|');grid on; %显示方格title('滤波器的幅频响应曲线');(2)用双线性变换法设计一个巴特沃斯低通IIR数字滤波器。
实验三-用双线性变换法设计IIR数字滤波器

实验三用双线性变换法设计IIR数字滤波器实验项目名称:用双线性变换法设计IIR数字滤波器实验项目性质:验证性实验所属课程名称:数字信号处理实验计划学时:2一.实验目的(1)熟悉用双线性变换法设计IIR数字滤波器的原理与方法。
(2)掌握数字滤波器的计算机仿真方法。
(3)通过观察对实际心电图信号的滤波作用,获得数字滤波的感性知识。
二.实验内容和要求(1)用双线性变换法设计一个巴特沃斯低通IIR数字滤波器。
设计指标参数为:在通带内频率低于π时,最大衰减小于1dB;在阻带内[π,π]频率区间上,最小衰减大与15dB。
(2)以π为采样间隔,打印出数字滤波器在频率区间[0,π/2]的幅频响应特性曲线。
(3)用所设计的滤波器对实际心电图信号采样序列(在本实验后面给出)进行仿真滤波处理,并打印出滤波前后的心电图信号波形图,观察总结滤波作用与效果。
三.实验主要仪器设备和材料计算机,或以上版本四. 实验方法、步骤及结果测试(1)复习有关巴特沃斯模拟滤波器设计和用双线性变换法设计IIR 数字滤波器的内容,用双线性变换法设计数字滤波器系统函数()z H 。
其中满足本实验要求的数字滤波器系统函数为:()()()()()212121612155.09044.013583.00106.117051.02686.1110007378.0-------+-+-+-+=zz z z z zz z H ()z H k k ∏==31()式中: ()()3211212121,,,k z C z B z z A z H k k k =--++=----()2155.09044.03583.00106.17051.02686.109036.0332211-==-==-===C B C B C B A ,,,根据设计指标,调用MATLAB 信号处理工具箱buttord 和butter ,也可以得到()z H 。
由公式()和()可见,滤波器()z H 由三个二阶滤波器()z H 1、()z H 2和()z H 3级联而成,如图3-1所示。
实验三 用双线性变换法设计IIR滤波器

1实验三 用双线性变换法设计IIR 滤波器一、实验目的1、了解两种工程上最常用的变换方法:脉冲响应不变法和双线性变换法。
2、掌握双线性不变法设计IIR 滤波器的原理及具体设计方法,熟悉双线性设计法设计低通、带通和高通IIR 滤波器的计算机程序。
3、观察用双线性变换法设计的滤波器的频域特性,并与脉冲响应不变法相比较,了解双线性变换法的特点。
4、熟悉用双线性变换法设计数字Butterworth 和Chebyshev 滤波器的全过程。
5、了解多项式乘积和多项式乘方运算的计算机编程方法。
二、实验原理与方法从模拟滤波器设计IIR 数字滤波器具有四种方法:微分—差分变换法、脉冲响应不变法、双线性变换法、匹配Z 变换法;在工程上常用的是其中两种:脉冲响应不变法、双线性变换法。
脉冲响应不变法需要经历如下步骤:由已知系统传输函数H (s )计算系统冲击响应h(t);对h(t)进行等间隔取样得到h(n)=h(nT);由h(n)活的数字滤波器的系统响应H (z )。
这种方法非常直观,其算法宗旨是保证所设计的IIR 滤波器的脉冲响应和响应模拟滤波器的冲击响应在采样点上完全一致。
而双线性变换法的设计准则是使数字滤波器的频率响应与参考模拟滤波器的频率响应相似。
脉冲响应不变法的优点是频率坐标的变换是线性的,缺点是有频谱的周期延拓效应,存在频谱混淆的现象。
为了克服频谱混淆提出了双线性变换法,它依靠双线性变换公式:1111--+-=zz s ,z=s s -+11 其中,s=Ω+j σ,z=ωj re 建立起S 平面和Z 平面的单值映射关系,数字频域和模拟频域之间的关系:)2/(ωtg =Ω,Ω=arctg 2ω (3-1)由上面的关系式可知,当-〉∞Ω时,ω中止在折叠频率πω=处,整个Ωj 轴单值的对应于单位圆的一周。
因此双线性变换法不同于脉冲响应不变法,不存在频谱混淆的问题。
从式(3-1) 还可以看出,两者的频率不是线性关系。
实验六 用双线性变换法设计IIR数字滤波器

实验六用双线性变换法设计IIR数字滤波器一、实验目的学会运用MATLAB设计数字低通、带通、高通、带阻滤波器的设计方法。
二、实验涉及的matlab子函数bilinear功能:双线性变换——将s域映射到z域。
调用格式:[numd,dend]= bilinear (num,den,Fs),将模拟域系统函数转换为数字域的系统函数,Fs为采样频率。
三、实验原理下面举例说明用双线性变换法设计各种数字滤波器的过程。
例1、采用双线性变换法设计一个巴特沃斯数字低通滤波器,要求:wp=0.25*pi,rp=1db,ws=0.4*pi,as=15db,滤波器采样频率Fs=100hz。
MATLAB源程序为:%数字滤波器指标wpd=0.25*pi; %滤波器的通带截止频率wsd=0.4*pi; %滤波器的阻带截止频率Rp=1;As=15; %输入滤波器的通阻带衰减指标%转换为模拟原型滤波器指标Fs=100;T=1/Fs;wp=(2/T)*tan(wpd/2);ws=(2/T)*tan(wsd/2);%模拟原型滤波器计算[n,wc]=buttord(wp,ws,Rp,As,'s') %计算阶数n和截止频率[z0,p0,k0]=buttap(n); %归一化切比雪夫1型原型设计ba=k0*poly(z0); %求原型滤波器系数baa=poly(p0); %求原型滤波器系数a[ba1,aa1]=lp2lp(ba,aa,wc);%变换为模拟低通滤波器%用双线性变换法计算数字滤波器系数[bd,ad]=bilinear(ba1,aa1,Fs) %双线性变换%求数字系统的频率特性[H,w]=freqz(bd,ad);dbH=20*log10(abs(H)/max(abs(H))); %化为分贝值subplot(2,2,1),plot(w,abs(H));ylabel('|H|');title('幅度响应');axis([0,pi,0,1.1]);grid subplot(2,2,2),plot(w,angle(H));ylabel('\phi');title('相位响应');axis([0,pi,-4,4]);grid subplot(2,2,3),plot(w,dbH);title('幅度响应(dB)'); ylabel('dB');xlabel('频率');axis([0,pi,-40,5]);grid subplot(2,2,4),zplane(bd,ad); axis([-1.1,1.1,-1.1,1.1]);title('零极图');运行结果为: n = 5wc = 103.2016bd = 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 则所求滤波器的系统函数为54321-5432-10.0392z 166z 3.01.0702z z 68.911.9434z 1z 072.00z 362.00z 725.00z 725.000.0362z 0.0072H(z)---------+-+-+++++=|H |幅度响应φ相位响应幅度响应(dB)d B频率-1-0.500.51Real PartI m a g i n a r y P a r t零极图例2、采用双线性变换法设计一个椭圆数字高通滤波器,要求通带250hz ,1db ,阻带150hz ,20db ,滤波器采样频率为Fs=1000hz 。
数字信号处理实验matlab版用双线性变换法设计IIR数字滤波器

数字信号处理实验matlab版⽤双线性变换法设计IIR数字滤波器实验21⽤双线性变换法设计IIR 数字滤波器(完美格式版,本⼈⾃⼰完成,所有语句正确,不排除极个别错误,特别适⽤于⼭⼤,勿⽤冰点等⼯具下载,否则下载之后的word 格式会让很多部分格式错误,)XXXX 学号处XXXX⼀、实验⽬的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 平⾯,其映射关系为11z 1z 1T 2s --+-=或2sT/12sT/1z -+=双线性变换法克服了脉冲响应不变法从s 平⾯到z 平⾯的多值映射的缺点,消除了频谱混叠现象。
双线性变换法设计数字滤波器

双线性变换法设计IIR数字滤波器一:实验目的1)熟悉用双线性变换法设计IIR数字滤波器的原理和方法。
2)掌握数字滤波器设计的计算机仿真方法。
3)观察对心电图信号的实际滤波作用,获得数字滤波器的感性认识。
二:实验原理在滤波器的设计过程中,毕竟那是一个重要环节,所谓逼进就是根据性能指标的要求,对理想特性进行逼进,以求得一个因果、稳定且客户实现的传递函数。
目前模拟滤波器的频域设计理论已经发展的相当成熟,它不仅具有简单而严格的设计公式,而且设计参数已经表格化了。
借助模拟滤波器的逼进方法,用模拟与大树自语的某种变换,完成数字滤波器的逼进,这是一类简单而又行之有效的方法。
双线性变换法采用非线性频率压缩方法,将整个频域轴上的频率范围压缩到-π/T~π/T之间,再用z=e sT转换到z平面上。
也就是说,第一步现将整个S平面压缩映射到S1平面的-π/T~π/T一条横带里;第二步再通过标准变换关系1e S T将此横带变换到整个z平面上去。
这样就使S平面与Z平面建立了一一对应的胆汁关系,消除了多只变换性,也就消除了频谱混跌现象,映射关系如图所示。
] 为了将S 平面的整个虚轴j Ω压缩到1S 平面轴上的-π/T 到π/T 段上,可以通过以上的正切的变换实现Ω=2/Ttan(1ΩT/2)(1-1)式中,T 仍是采样间隔。
当1Ω由-π/T 经过0变化到π/T 时,Ω由-∞经过0变化到+∞,也即映射了整个j Ω轴。
将上式(1-1)写成111122222T Tj j T T j j e e j T e e ΩΩΩΩ--Ω=•+ (1-2)将此关系解析延拓到整个S 平面和1S 平面,令j Ω=s, 1j Ω=S 1,则得111221tan()21e s Ts TS T e T T --==•+(1-3)再将S 1平面通过以下标准变换关系映射到Z 平面:z=S1T e (1-4) 从而得到S 平面和Z 平面的单值映射关系为;11211ZS T Z ---=+(1-5) 122122T T S S Z T TS S ++==--(1-6)式(1-5)和式(1-6)是S 平面与Z 平面之间的单值映射关系,这种变换都是两个线性函数之比,因此成为双线性变换。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三:用双线性变换法设计IIR 数字滤波器(设计性 4学时)一.实验目的:(1)熟悉用双线性变换法设计IIR 数字滤波器的原理与方法。
(2)掌握数字滤波器的计算机仿真方法。
(3)通过观察对实际心电图信号的滤波作用,获得数字滤波的感性知识。
二.实验内容及步骤:(1) 用双线性变换法设计一个巴特沃斯低通IIR 数字滤波器,设计指标参数为:在通带内频率低于0.2pi 时,最大衰减小于1dB;在阻带内[0.3pi , pi] 频率区间上,,最小衰减大于15dB ;(2) 以 0.02pi 为采样间隔,打印出数字滤波器在频率区间[ 0, 0.5pi]上的幅频响应特性曲线;(3) 用所设计的滤波器对实际心电图信号采样序列(在本实验后面给出)进行仿真滤波处理,并分别打印出滤波前后的心电图波形图,观察总结滤波作用与效果。
(4)采用不同阶数的Butterworth 低通滤波器,比较滤波效果。
三.实验步骤:(1)复习有关巴特沃斯模拟滤波器设计和用双线性变换法设计IIR 数字滤波器的内容,按照教材例6.4.2,用双线性变换法设计数字滤波器系统函数H (z )。
方法一:教材例6.4.2种已求出满足本实验要求的数字滤波器系统函数:方法二:根据设计指标,调用MATLAB 信号处理工具箱函数buttord 和butter ,也可得到H (z )。
(2)编写滤波器仿真程序,计算H(z)对心电图信号采样序列x(n)的相应序列y(n)。
(3)在通过计算机上运行仿真滤波程序,并调用通用绘图子程序,完成实验内容(2)和(3)。
本实验要用的MATLAB 绘图函数参阅教材。
四.,思考题:用双线性变换法设计数字滤波器过程中,变换公式: s=11z1z 1T 2--+-中T 的取值,对设计结果有无影响? 为什么? 五.实验报告要求(1)简述实验目的及原理;(2)由所打印的特性曲线及设计过程简述双线性变换法的特点;(3)对比滤波前后的心电图信号波形,说明数字滤波器的滤波过程与滤波作用;(4) 简要回答思考题.六:心电图信号采样序列 x(n):人体心电图信号在测量过程中往往受到工业高频干扰,所以必须经过低通滤波处理后,才能作为判断心脏功能的有用信息。
下面给出一实际心电图信号采样序列样式本x(n),其中存在高频干扰,在实验中,以x(n)作为输入序列,滤除其中的干扰成分。
{ x(n) } = { -4 , -2, 0, -4, -6, -4, -2, -4, -6, -6, -4, -4, -6, -6, -2, 6, 12, 8, 0, -16-38, -60, -84, -90, -66, -32, -4, -2, -4, 8,12, 12 , 10, 6, 6, 6, 4, 0, 0, 00, 0, -2, -4, 0, 0, 0, -2, -2, 0,0 , -2,, -2, -2, -2, 0}参考程序:一;T=1;Fs=1/T;wpz=0.2;wsz=0.3;wp=2*tan(wpz*pi/2);ws=2*tan(wsz*pi/2);rp=1;rs=15; [N,wc]=buttord(wp,ws,rp,rs,'s');[B,A]=butter(N,wc,'s');fk=0:1/512:1;wk=2*pi*fk;Hk=freqs(B,A,wk);subplot(2,2,1);plot(fk,20*log10(abs(Hk)));grid on;xlabel('\omega/\pi');ylabel('幅度(dB)');axis([0,1,-100,5]);title('(b)');[N,wc]=buttord(wpz,wsz,rp,rs);[Bz,Az]=butter(N,wc);wk=0:pi/512:pi;Hz=freqz(Bz,Az,wk);subplot(2,2,4);plot(wk/pi,20*log10(abs(Hz)));grid on;xlabel('\omega/\pi');ylabel('幅度(dB)');axis([0,1,-100,5]);title('(b)');二;x=[-4,-2,0,-4,-6,-4,-2,-4,-6,-6,-4,-4,-6,-6,-2,6,12,8,0,-16,-38,-60,-84,-90,-66,-32,-4,-2,-4,8,12,12,10 ,6,6,6,4,0,0,0,0,0,-2,-4,0,0,0,-2,-2,0,0,-2,-2,-2,-2,0];subplot(2,2,1);n=0:55;stem(n,x,'.');xlabel('n');ylabel('x(n)');title('x(n)的脉冲响应');A=0.09036;b1=[A,2*A,A];a1=[1,-1.2686,0.7051];h1=filter(b1,a1,x);[H1,w]=freqz(b1,a1,100);b2=[A,2*A,A];a2=[1,-1.0106,0.3583];h2=filter(b2,a2,h1);[H2,w]=freqz(b2,a2,100);b3=[A,2*A,A];a3=[1,-0.9044,0.2155];h3=filter(b3,a3,h2);[H3,w]=freqz(b3,a3,100);subplot(2,2,2);stem(n,h3,'.');xlabel('n');ylabel('y(n)');title('通过滤波器H1(z),H2(z),H3(z)后的y3(n)函数');subplot(2,2,3);H4=H1.*(H2);H=H4.*(H3);mag=abs(H);db=20*log10((mag+eps)/max(mag));plot(w/pi,db);xlabel('ω/π');ylabel('20log[Ha3(ejw)]');title('通过滤波器H1(z),H2(z),H3(z)后的对数频率响应20log[Ha3(ejw)]函数');grid;figure(2);N=1024;n=0:N/2-1;Xk=fft(x,N);AXk=abs(Xk(1:N/2));f=(0:N/2-1)*Fs/N;f=f/Fs;subplot(211);plot(f,AXk);title('x(n)的频谱');xlabel('f');ylabel('| X(k) |');axis([0,0.5,0,400]);Yk=fft(y,N);AYk=abs(Yk(1:N/2));subplot(212);plot(f,AYk);title('y(n)的频谱');xlabel('f');ylabel('| Y(k) |');axis([0,0.5,0,400])x=[-4,-2,0,-4,-6,-4,-2,-4,-6,-6,-4,-4,-6,-6,-2,6,12,8,0,-16,-38,-60,-84,-90,-66,-32,-4,-2,-4,8,12,12,10 ,6,6,6,4,0,0,0,0,0,-2,-4,0,0,0,-2,-2,0,0,-2,-2,-2,-2,0];subplot(2,2,1);n=0:55;stem(n,x,'.');xlabel('n');ylabel('x(n)');title('x(n)的脉冲响应');A=0.09036;b1=[A,2*A,A];a1=[1,-1.2686,0.7051];h1=filter(b1,a1,x);[H1,w]=freqz(b1,a1,100);b2=[A,2*A,A];a2=[1,-1.0106,0.3583];h2=filter(b2,a2,h1);[H2,w]=freqz(b2,a2,100);b3=[A,2*A,A];a3=[1,-0.9044,0.2155];h3=filter(b3,a3,h2);[H3,w]=freqz(b3,a3,100);subplot(2,2,2);stem(n,h3,'.');xlabel('n');ylabel('y(n)');title('通过滤波器H1(z),H2(z),H3(z)后的y3(n)函数');subplot(2,2,3);H4=H1.*(H2);H=H4.*(H3);mag=abs(H);db=20*log10((mag+eps)/max(mag));plot(w/pi,db);xlabel('ω/π');ylabel('20log[Ha3(ejw)]');title('通过滤波器H1(z),H2(z),H3(z)后的对数频率响应20log[Ha3(ejw)]函数'); grid;%x(n)的心电脉冲函数x=[-4,-2,0,-4,-6,-4,-2,-4,-6,-6,-4,-4,-6,-6,-2,6,12,8,0,-16,-38,-60,-84,-90,-66,-32,-4,-2,-4,8,12,12,10,6,6,6,4,0,0,0,0,0,-2,-4,0,0,0,-2,-2,0,0,-2,-2,-2,-2,0] subplot(2,2,1);n=0:55;stem(n,x,'.');xlabel('n');ylabel('x(n)');title('x(n)的心电脉冲函数');%通过滤波器H1(z)后的y1(n)函数A=0.09036;b1=[A,2*A,A];a1=[1,-1.2686,0.7051];h1=filter(b1,a1,x);[H1,w]=freqz(b1,a1,100);%通过滤波器H1(z),H2(Z)后的y2(n)函数b2=[A,2*A,A];a2=[1,-1.0106,0.3583];h2=filter(b2,a2,h1);[H2,w]=freqz(b2,a2,100);%通过滤波器H1(z),H2(Z),H3(Z)后的y3(n)函数b3=[A,2*A,A];a3=[1,-0.9044,0.2155];h3=filter(b3,a3,h2);[H3,w]=freqz(b3,a3,100);subplot(2,2,2);stem(n,h3,'.');xlabel('n');ylabel('y(n)');title('通过滤波器H1(Z),H2(Z),H3(Z)后的y3(n)函数');subplot(2,2,3);H4=H1.*(H2);H=H4.*(H3);mag=abs(H);db=20*log10((mag+eps)/max(mag));plot(w/pi,db);xlabel('w/pi');ylabel('20log[Ha3(ejw)]');title('通过滤波器H1(z)、H2(z)、H3(z)后的对数频率响应20log[Ha3(ejw)]函数'); grid;。