《基于MATLAB的数字滤波器设计精品资料.doc》由会员分享,可在线阅读,更多相关《基于MATLAB的数字滤波器设计精品资料.doc(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、物理与电子工程学院 数字信号处理原理及实现题 目 IIR数字滤波器的设计 专 业 电子信息工程 学生姓名 X X X 学 号 X X X 年 级 200X级 班级 X班 指导教师 X X 2011年 12 月 21 日IIR数字滤波器设计引言:数字滤波是数字信号处理中一个非常重要且应用普遍的技术。随着现代科学技术的发展,利用计算机辅助工具软件进行数字滤波器的设计越来越普遍。MATLAB是国际控制界的标准计算机软件。本次设计根据IIR数字滤波器设计的基本原理,利用MATLAB工具设计一个数字低通滤波器并给出了设计结果,达到了设计性能的指标要求。即一个信号含有两个频率分量100Hz和130Hz,现
2、要将130Hz分量衰减50dB,而通过的100Hz分量衰减小于2dB。设计一个最小阶次的切比雪夫I型数字滤波器完成这个滤波功能,画出幅度响应并对设计予以确认。关键词:低通滤波器,IIR,MATLAB,切比雪夫。一 IIR数字滤波器的原理和方法:如果滤波器的输入和输出都是离散的时间信号,则该滤波器的冲激响应也必然是离散的,这种滤波器称之为数字滤波器。该滤波器是通过对时域中离散的采样数据作差分运算实现滤波的。与FIR滤波器相比,IIR的实现是递归的,存在不稳定现象。只有极点在单位圆内(即其收敛域包括单位圆)时,数字滤波器的系统频率特性才稳定。IIR数字滤波器的阶次较低,不能用FFT计算,其单位冲激
3、响应h(n)是无限长的,可以用模拟滤波器来设计。无限长脉冲响应(IIR)滤波器的特点:(1)系统的单位冲激响应h(n)是无限长的;(2)系统函数H(z)在有限Z平面(0|z|1(阻带) 式中,是表示通带波纹大小的一个参数,越大,波纹也越大。c为通带截止频率。N滤波器阶数。(2).切比雪夫型低通滤波器的幅度特性 切比雪夫型低通滤波器的幅度特性 (3). 滤波器设计步骤 1).根据技术指标确定,N,。2).将模拟频率转换成数字域频率 fp=100Hz, fs=130Hz, wp=200pi, ws=260pi. Rp=2dB, Rs=50dB. 3). 确定预畸变的模拟滤波器的截止频率 wp=2*
4、pi*fp*T; ws=2*pi*fs*T; (T:采样间隔) 4).模拟滤波器 5).双线性变换法 (Bilinear Transform)1.变换原理 s平面到z平面的映射关系二次映射法:s s1 z为了将S平面的j轴压缩到S1平面j1轴上的-/T到/T一段上,可通过以下的正切变换实现: 当由负无穷经原点到正无穷时,1由-/T经过变化到/T,即S平面的整个j轴被压缩到S1平面的2/T一段.将这一关系解析扩展至整个S平面,s=j,s1= j1, 则得到S平面到S1平面的映射关系: 再将 S1 平面通过标准变换关系映射到Z平面,即从而得到s平面与z平面的单值映射关系:或。 S1的左半平面 Z平
5、面的单位圆内S1平面的虚轴 Z平面的单位圆上S1的右半平面 Z平面的单位圆外jj1ImZReZ/2-/2s平面到z平面的映射关系jj1ImZReZ-11/T/T双线性变换法的映射关系2. 双线性变换法的模拟角频率和数字角频率的映射关系w=2arctan(T/2); =2tan(w/2) /T ;6). 双线性变换得到IIR数字滤波器(低通切比雪夫型)H(z)=Ha(s)=Ha() , ( ) 7).对IIR低通数字滤波器进行仿真验证 分别产生一个100Hz和130Hz的正线信号,幅度均为1。然后将所设计的IIR低通数字滤波器保存起来,在MATLAB中调用filter(Hd,x)函数进行仿真。其
6、中,Hd为所设计的IIR低通数字滤波器的名字;x是要经过所设计的IIR低通数字滤波器的信号。四 IIR数字滤波器的设计结果:1. 利用切比雪夫I型设计低通滤波器:fp=100Hz,fs=130Hz,Apass=0.8dB,Astop=50dB,Fs=500Hz.2.利用MATLABFDATOOL工具设计切比雪夫I型低通IIR滤波器进行仿真。3.IIR数字滤波器设计的仿真结果。 4.IIR数字滤波器设计的仿真结果分析。 1):IIR低通数字滤波器的阶次较FIR的低,在相同阶次是IIR数字滤波器能取得更好的滤波效果。2):在对本次设计的IIR数字滤波器进行仿真时看到:1.在相同采样频率的情况下,采
7、样点数越多,经过滤波后,越可能看出仿真的精确结果,但是波形看起来就不是很光滑了。2.在相同采样点数的情况下,采样频率越高,经过滤波后,越可能看到光滑的波形。3): 在对本次设计的IIR数字滤波器进行仿真时得到:幅度为1,频率分别为100Hz和130Hz的正线信号,经过所设计的滤波器后得到上图的现象,100Hz的正线信号经过所设计的滤波器后,随着采样点数的增加,幅度越来越趋近0.8;而130Hz的正线信号经过所设计的滤波器后,随着采样点数的增加,幅度越来越趋近0,达到了设计要求。4):由于切比雪夫I型低通滤波器在通带内是等纹波的且设计的滤波器通带内有衰减,所以,100Hz的正线信号经过所设计的滤
8、波器后,随着采样点数的增加,幅度越来越趋近0.8。五设计总结与心得体会:本次由模拟滤波器,双线性变换法设计的切比雪夫I型IIR低通数字滤波器达到了设计要求。能将130Hz分量衰减50dB,而通过的100Hz分量衰减小于2dB。在本次课程设计中,通过对IIR低通数字滤波器的设计,更进一步的了解和熟悉了MATLAB的运行环境。基本掌握了利用MATLAB语言进行数字滤波器的设计与仿真,初步掌握了MATLAB语言在数字信号处理中一些基本库函数的调用和编写基础程序等的应用。设计过程中,自己整合思路,查找资料,遇到了不少问题,发现课堂上的学习只是获得一个方向,课本上的理论知识只是基础,把理论应用于实践时就
9、会发现自己的局限性。通过对IIR低通数字滤波器的设计,熟悉了数字滤波器设计的一般原理和设计步骤,对滤波器的类型以及功能特性有了深刻的了解和认识。还加深了对FIR与IIR的区别和印象,熟悉了由模拟滤波器设计数字滤波器和直接设计数字滤波器两种设计方法,掌握了脉冲响应不变法与双线性变换法设计以及两种设计方法优缺点。参考文献:1. 王艳芬. 数字信号处理原理及实现 清华大学出版社 2009.112. 周开利. Matlab基础及其应用教程 北京大学出版社2007.3 3. 张德丰. MATLAB数字信号处理与应用 清华大学出版社20104. 张森. MATLAB仿真技术与实例应用教程 机械工业出版社2
10、004.15. 苏金明. MATLAB工具箱应用 电子工业出版社2004.1附:程序IIR数字滤波器设计clear all;clc%用双线性变换法设计一个切比雪夫I型低通数字滤波器Rp=0.8;Rs=50;T=1/500;fp=100;fs=130;%求出待设计的数字滤波器的边界频率wp=2*pi*fp*T;ws=2*pi*fs*T;%预畸变wp1=(2/T)*tan(wp/2);ws1=(2/T)*tan(ws/2);%设计模拟滤波器n,wn=cheb1ord(wp1,ws1,Rp,Rs,s);b,a=cheby1(n,Rp,wn,low,s);%双线性变换法bz,az=bilinear(b
11、,a,1/T);db,mag,pha,grd,w=freqz_m(bz,az);plot(w/pi,db);axis(0,1,-60,5);clear all;clcIIR数字滤波器仿真clear all;clcf1=100;% 信号频率Hzf2=130;% 信号频率Hzfs=2000;% 采样频率HzN=300;% 采样点数t=(0:N-1)/fs;% 采样时间单位sx1=sin(2*pi*f1*t);% x1正弦信号x2=sin(2*pi*f2*t);% x2正弦信号y1=filter(Hd,x1);% x1信号通过滤波器y2=filter(Hd,x2);% x2信号通过滤波器x=x1+x
12、2; %x1与x2相加的混合信号y=filter(Hd,x);% x信号通过滤波器subplot(3,2,1);plot(x1);title(100Hz单频正弦信号);subplot(3,2,2);plot(y1);title(100Hz单频正弦信号经过滤波器);subplot(3,2,3);plot(x2);title(130Hz单频正弦信号);subplot(3,2,4);plot(y2);title(130Hz单频正弦信号经过滤波器);subplot(3,2,5);plot(x);title(100Hz和130Hz混合信号);subplot(3,2,6);plot(y);title(10
13、0Hz和130Hz混合信号经过滤波器);clear all;clc附录资料:matlab画二次曲面一、螺旋线1.静态螺旋线a=0:0.1:20*pi;h=plot3(a.*cos(a),a.*sin(a),2.*a,b,linewidth,2);axis(-50,50,-50,50,0,150);grid onset(h,erasemode,none,markersize,22);xlabel(x轴);ylabel(y轴);zlabel(z轴);title(静态螺旋线); 2.动态螺旋线t=0:0.1:10*pi;i=1;h=plot3(sin(t(i),cos(t(i),t(i),*,era
14、semode,none);grid onaxis(-2 2 -2 2 0 35)for i=2:length(t) set(h,xdata,sin(t(i),ydata,cos(t(i),zdata,t(i); drawnow pause(0.01)endtitle(动态螺旋线);(图略) 3.圆柱螺旋线t=0:0.1:10*pi;x=r.*cos(t);y=r.*sin(t);z=t;plot3(x,y,z,h,linewidth,2);grid onaxis(square)xlabel(x轴);ylabel(y轴);zlabel(z轴);title(圆柱螺旋线) 二、旋转抛物面b=0:0.
15、2:2*pi;X,Y=meshgrid(-6:0.1:6);Z=(X.2+Y.2)./4;meshc(X,Y,Z);axis(square)xlabel(x轴);ylabel(y轴);zlabel(z轴);shading flat;title(旋转抛物面)或直接用:ezsurfc(X.2+Y.2)./4) 三、椭圆柱面load clownezsurf(2*cos(u),4*sin(u),v,0,2*pi,0,2*pi)view(-105,40) %视角处理shading interp %灯光处理colormap(map) %颜色处理grid on %添加网格线axis equal %使x,y轴
16、比例一致xlabel(x轴);ylabel(y轴);zlabel(z轴);shading flat;title(椭圆柱面) %添加标题四、椭圆抛物面b=0:0.2:2*pi;X,Y=meshgrid(-6:0.1:6);Z=X.2./9+Y.2./4;meshc(X,Y,Z);axis(square)xlabel(x轴);ylabel(y轴);zlabel(z轴);shading flat;title(椭圆抛物面)或直接用:ezsurfc(X.2./9+Y.2./4)五、双叶双曲面ezsurf(8*tan(u)*cos(v),8.*tan(u)*sin(v),2.*sec(u),-pi./2,
17、3*pi./2,0,2*pi)axis equalgrid onaxis squarexlabel(x轴);ylabel(y轴);zlabel(z轴);shading flat;title(双叶双曲面)六、双曲柱面load clownezsurf(2*sec(u),2*tan(u),v,-pi/2,pi/2,-3*pi,3*pi)hold on %在原来的图上继续作图ezsurf(2*sec(u),2*tan(u),v,pi/2,3*pi/2,-3*pi,3*pi)colormap(map)shading interpview(-15,30)axis equalgrid onaxis equa
18、lxlabel(x轴);ylabel(y轴);zlabel(z轴);shading flat;title(双曲柱面)七、双曲抛物面(马鞍面)X,Y=meshgrid(-7:0.1:7);Z=X.2./8-Y.2./6;meshc(X,Y,Z);view(85,20)axis(square)xlabel(x轴);ylabel(y轴);zlabel(z轴);shading flat;title(双曲抛物面)或直接用:ezsurfc(X.2./8-Y.2./6) 八、抛物柱面X,Y=meshgrid(-7:0.1:7);Z=Y.2./8;h=mesh(Z);rotate(h,1 0 1,180) %
19、旋转处理%axis(-8,8,-8,8,-2,6);axis(square)xlabel(x轴);ylabel(y轴);zlabel(z轴);shading flat;title(抛物柱面)或直接用:ezsurfc(Y.2./8) 九、环面ezmesh(5+2*cos(u)*cos(v),(5+2*cos(u)*sin(v),2*sin(u),0,2*pi,0,2*pi)axis equalgrid onxlabel(x轴);ylabel(y轴);zlabel(z轴);shading flat;title(环面)十、椭球ezsurfc(5*cos(u)*sin(v),(3*sin(u)*sin
20、(v),4*cos(v),0,2*pi,0,2*pi)axis equalgrid onxlabel(x轴);ylabel(y轴);zlabel(z轴);shading flat;title(椭球)十一、单叶双曲面ezsurf(4*sec(u)*cos(v),2.*sec(u)*sin(v),3.*tan(u),-pi./2,pi./2,0,2*pi)axis equalgrid onxlabel(x轴);ylabel(y轴);zlabel(z轴);shading flat;title(单叶双曲面)十二、旋转单叶双曲面load clownezsurf(8*sec(u)*cos(v),8.*se
21、c(u)*sin(v),2.*tan(u),-pi./2,pi./2,0,2*pi)colormap(map)view(-175,30)%alpha(.2) %透明处理axis equalgrid onaxis squarexlabel(x轴);ylabel(y轴);zlabel(z轴);shading flat;title(旋转单叶双曲面)十三、圆柱面subplot(1,2,1)ezsurf(2*cos(u),2*sin(u),v,0,2*pi,0,2*pi)grid onshading interpaxis equalxlabel(x轴);ylabel(y轴);zlabel(z轴);tit
22、le(圆柱面)subplot(1,2,2)cylinder(30)shading interpaxis squaretitle(调用cylinder函数所得圆柱面)十四、二次锥面clc,clear;P=1,0,0; 0,cos(45*pi/180),sin(45*pi/180); 0,-sin(45*pi/180),cos(45*pi/180);for k2 = 1:31 for k1 = 1:31 x(k1,k2) = (k2-1)*cos ( (k1-1)*12*pi/180); y(k1,k2) = (k2-1)*sin ( (k1-1)*12*pi/180); z(k1,k2) = sqrt(x(k1,k2)2+y(k1,k2)2); Vxyz = P*x(k1,k2),y(k1,k2),z(k1,k2); x1(k1,k2)=Vxyz(1); y1(k1,k2)=Vxyz(2); z1(k1,k2)=Vxyz(3); endendsurf(x,y,z)hold on;surf(x1,y1,z1);shading flat;