资源描述:
《实验三-用双线性变换法设计IIR数字滤波器.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验_三_题目_用双线性变换法设计IIR数字滤波器第16周星期_3_第6,7节一.实验目的(1)熟悉用双线性变换法设计IIR数字滤波器的原理与方法。(2)掌握数字滤波器的计算机仿真方法。(3)通过观察对实际心电图信号的滤波作用,获得数字滤波的感性知识。二、实验内容、方法、设计程序及实验结果(1)复习有关巴特沃斯模拟滤波器设计和用双线性变换法设计IIR数字滤波器的内容,用双线性变换法设计数字滤波器系统函数。其中满足本实验要求的数字滤波器系统函数为:(3.1)式中:(3.2)根据设计指标,调用MATLAB信号处理工具箱butto
2、rd和butter,也可以得到。由公式(3.1)和(3.2)可见,滤波器由三个二阶滤波器、和级联而成,如图3-1所示。图3-1滤波器的组成此参数下的程序如下:%实验三,用双线性变换法设计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]
3、;k=1;%控制滤波循环变量closeall;%关闭全部绘图窗口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=[0.09036,2*0.09036,0.09036];%H1滤波器的分子系数矩阵A=[1.2686,-0.7051];%H1滤波器的分
4、母系数矩阵A1=[1.0106,-0.3583];%H2滤波器的分母系数矩阵A2=[0.9044,-0.2155];%H3滤波器的分母系数矩阵while(k<=3)y=filter(B,A,x);%进行滤波x=y;%重新赋值X进行下一次滤波k=k+1;%控制循环变量ifk==2A=A1;elseA=A2;endendsubplot(2,2,3);%定位子图3stem(n,y,'.');axis([0,56,-100,50]);xlabel('n');ylabel('y(n)');title('三级滤波后的心电图信号(原坐标)
5、');subplot(2,2,2)stem(n,y,'.');axis([0,56,-15,5]);xlabel('n');ylabel('y(n)');title('调整坐标后的心电图信号');%求数字滤波器的幅频特性A=[0.09036,2*0.09036,0.09036];%滤波器的分子系数矩阵B1=[1,-1.2686,0.7051];%H1滤波器的分母系数矩阵B2=[1,-1.0106,0.3583];%H2滤波器的分母系数矩阵B3=[1,-0.9044,0.2155];%H3滤波器的分母系数矩阵[H1,w]=fr
6、eqz(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,0.5,-50,10]);xlabel('w');ylabel('
7、H(e^j^w)
8、');gridon;%显示方格title('滤波器的幅频响应曲线');(2)用双线性变换法设计一个巴特沃斯低通IIR数字滤波器。
9、设计指标参数为:在通带内频率低于0.2π时,最大衰减小于1dB;在阻带内[0.3π,π]频率区间上,最小衰减大与15dB。参数如下截图:程序设计如下: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;%控制滤波循环变量%关闭全部绘图窗口fig
10、ure(2);%创建绘图窗口subplot(2,2,1);%定位子图1n=0:55;%横坐标stem(n,x,'.');%画出枝干图axis([0,56,-100,50]);%调整坐标xlabel('n');%标注横坐标ylabel('x(n)');%标注纵坐标title('心电图信号采集