资源描述
燕 山 大 学 课 程 设 计 说 明 书 摘要数字滤波器上是一个时域离散的线性时不变(LTI)系统 ,它的滤波作用就是将输入信号经过某种运算(或变换)转变成为满足特定需要的输出信号。数字滤波器根据单位冲激响应h(n)的长度可分为两类。分别称为无限长脉冲响应(Infinite Impulse Response,IIR)滤波器和有限长脉冲响应(Finite Impulse Response,FIR)滤波器。 其中无限冲激响应(IIR)滤波器具有无限长持续时间脉冲响应h(n),。在设计IIR滤波器时,常用的方法是利用模拟滤波器来设计数字滤波器。广泛采取这种设计方法的主要因素有:1)模拟滤波器的设计技术已非常成熟;2)可得闭合性式的解;3)关于模拟滤波器设计有完整的设计公式和图表可以利用和查询。随着MATLAB软件尤其是MATLAB的信号处理工作箱的不断完善,不仅数字滤波器的计算机辅助设计有了可能,而且还可以使设计达到最优化。本文以MATLAB6. 5为设计平台,利用MATLAB完全工具函数Ellip与SPTool工具进行IIR数字带通滤波器的设计,并加以仿真。第一章 滤波器基础 1.1 模拟滤波器基础模拟滤波器的理论和设计方法已发展得相当成熟,且有若干典型的模拟滤波器供我们选择,如巴特沃斯(Butterworth)滤波器、切比雪夫(Chebyshev)滤波器、椭圆(Cauer)滤波器、贝塞尔(Bessel)滤波器等,这些滤波器都有严格的设计公式、现成的曲线和图表供设计人员使用。 1.1.1模拟滤波器概述模拟低通滤波器的设计指标有p, p,s和s。其中p和s分别称为通带截止频率和阻带截止频率,p是通带(=0p)中的最大衰减系数,s是阻带s的最小衰减系数,p和s一般用dB数表示。对于单调下降的幅度特性,可表示成:如果=0处幅度已归一化到1,即|Ha(j0)|=1,p和s表示为: 以上技术指标用图表示。图中c称为3dB截止频率,因 滤波器的技术指标给定后,需要设计一个传输函数Ha(s),希望其幅度平方函数满足给定的指标p和s,一般滤波器的单位冲激响应为实数,因此2.巴特沃斯低通滤波器的设计方法 巴特沃斯低通滤波器的幅度平方函数|Ha(j)|2用下式表示: 巴特沃斯幅度特性和N的关系低通巴特沃斯设计步骤如下:(1)根据技术指标p,p,s和s,求出滤波器的阶数N。(2)求出归一化极点pk,得到归一化传输函数Ha(p)。 (3)将Ha(p)去归一化。将p=s/c代入Ha(p),得到实际的滤波器传输函数Ha(s)。 1.2 数字滤波器基础 1.2.1数字滤波器概述若滤波器的输入、输出都是离散时间信号,那么该滤波器的单位冲激响应h(n)也必然是离散的,这种滤波器称为数字滤波器。数字滤波是数字信号分析中最重要的组成部分之一,与模拟滤波相比,它具有精度和稳定性高、系统函数容易改变、灵活性强、便于大规模集成和可实现多维滤波等优点。在信号的过滤、检测和参数的估计等方面,经典数字滤波器是使用最广泛的一种线性系统。和模拟滤波器一样,一般数字滤波器从功能上分类,可以分为低通、高通带通和带阻等滤波器。理想滤波器是不可能实现的,因为它们的单位脉冲响应均是非因果、无限长的,我们只能按照某些准则设计滤波器,使之尽可能逼近它,这些理想滤波器可作为逼近的标准。另外,需要注意的是数字滤波器的传输函数都是以2为周期的,滤波器的低通频带处于2的整数倍处,而高频频带处于的奇数倍附近,这一点和模拟滤波器是有区别的。数字滤波器的作用是对输入信号进行滤波,就如同信号通过系统一样。对于线性时不变系统,其时域输入输出关系是:y(n)=x(n)*h(n)若y(n)、x(n)的傅里叶变化存在,则输入输出的频域关系是:当输入信号x(n)通过滤波器h(n)后,其输出y(n)中不再含有的频率成分,仅使的信号成分通过,其中是滤波器的转折频率。 理想低通、高通、带通、带阻滤波器幅度特性 1.2.2数字滤波器的分类数字滤波器按照单位取样响应h(n)的时域特性可分为无限冲激响应(IIR,Infinite Impulse Response)系统和有限冲激响应(FIR,Finite Impulse Response)系统。如果单位取样响应是时宽无限的h(n),则称之为IIR系统;而如果单位取样响应是时宽有限的h(n),则称之为FIR系统。数字滤波器按照实现的方法和结构形式分为递归型或非递归型两类。递归型数字滤波器的当前输出y(n)是输入x(n)的当前值和以前各输入值x(n),x(n1),.,及以前各输出值y(n),y(n1),.的函数。递归系统的传递函数H(z)在Z平面上不仅有零点,而且有极点。非递归型数字滤波器当前的输出值y(n)仅为当前及以前的输入序列的函数,而与以前的各个输出值无关,因此从结构上看非递归系统没有反馈环路。FIR滤波器可以对给定的频率特性直接进行设计,而IIR滤波器目前最通用的方法是利用已经很成熟的模拟滤波器的设计方法来进行设计。6. 数字滤波器设计的步骤 不论是IIR滤波器还是FIR滤波器的设计都包括三个步骤:(1) 按照实际任务的要求,确定滤波器的性能指标。(2) 用一个因果、稳定的离散线性时不变系统的系统函数去逼近这一性能指标。根据不同的要求可以用IIR系统函数,也可以用FIR系统函数去逼近。(3) 利用有限精度算法实现系统函数,包括结构选择、字长选择等。IIR数字滤波器设计的最通用的方法是借助于模拟滤波器的设计方法。模拟滤波器设计已经有一套相当成熟的方法,它不但有完整的设计公式,而且还有较为完整的图表以供查询,因此充分利用这些已有的资源将会给数字滤波器的设计带来很大的方便。1.3 模拟-数字滤波器变换1.3.1脉冲响应不变法利用模拟滤波器来设计数字滤波器,也就是使数字滤波器能模仿模拟滤波器的特性,这种模仿可以从不同的角度出发。脉冲响应不变法是从滤波器的脉冲响应出发,使数字滤波器的单位脉冲响应序列h(n)模仿模拟滤波器的冲激响应ha(t),即将ha(t)进行等间隔采样,使h(n)正好等于ha(t)的采样值,满足h(n)=ha(nT)式中,T是采样周期。转换步骤如下:Ha(s)拉氏逆变换 ha(t)等间隔采样 ha(nt)=h(n) Z变换 H(z)脉冲响应不变法主要用于设计某些要求在时域上能模仿模拟滤波器功能的数字滤波器。这种变换法的主要特点是:频率坐标的变换是线性的,即=T;具有频谱的周期延拓效应,只能用于限带的频响特性。脉冲响应不变法的映射关系1.3.2.双线性变换法脉冲响应不变法的主要缺点是产生频率响应的混叠失真。这是因为从S平面到平面是多值的映射关系所造成的。为了克服这一缺点,可以采用非线性频率压缩方法,将整个频率轴上的频率范围压缩到-/T/T之间,再用z=esT转换到Z平面上。也就是说,第一步先将整个S平面压缩映射到S1平面的-/T/T一条横带里;第二步再通过标准变换关系z=es1T将此横带变换到整个Z平面上去。这样就使S平面与Z平面建立了一一对应的单值关系,消除了多值变换性,也就消除了频谱混叠现象。 图2-4双线性变换法的映射关系第二章 MATLAB的IIR滤波器实现 在Matlab中设计IIR数字滤波器的步骤如下:把给出的数字滤波器的性能指标转换为模拟低通滤波器的性能指标;根据转换后的性能指标,通过滤波器阶数选择函数,来确定滤波器的最小阶数N和固有频率Wn;有最小阶数N得到低通滤波器原型;由固有频率Wn把模拟低通滤波器原型转换为模拟低通、高通、带通或带阻滤波器;运用脉冲响应不变法或双线性变换法把模拟滤波器转换成数字滤波器。2.1butterworth低通滤波器:(1) butterworth低通数字滤波器wp=100*2*pi; %通带截止频率ws=150*2*pi; %阻带截止频率rp=0.5; %通带衰减rs=30; %阻带衰减fs=2000; %采样频率 n,wn=buttord(wp,ws,rp,rs,s); %计算阶数,与截止频率 z,p,k=buttap(n); %建立巴特沃斯数字滤波器 a,b,c,d=zp2ss(z,p,k); %零极点转换到空间状态表达式 at1,bt1,ct1,dt1=lp2lp(a,b,c,d,wn); %低通转换到低通 at2,bt2,ct2,dt2=bilinear(at1,bt1,ct1,dt1,fs); %双线性变换%空间状态表达式转换到传递函数num,den=ss2tf(at2,bt2,ct2,dt2)%绘制幅频、相频图(频率响应特性图)figure(1);freqz(num,den,128,fs);grid on;%绘制脉冲响应特性图figure(2);t=linspace(0,0.06,400);x=zeros(1,400);x(1)=1;y=filter(num,den,x);plot(t,y);axis(0 0.06 -0.06 0.12);xlabel(nT(second);ylabel(Amplitude); title(impulze response);grid;实验结果:低通滤波器阶数N=3直接型网络结构图系数分子num=-0.0000 0.5816 0.2114 0分母den=1.0000 -0.3979 0.2473 -0.0432(2) butterworth高通滤波器wp=.5*pi; ws=.4*pi;rp=3; rs=10;fs=20;omegap=cot(wp/2);omegas=cot(ws/2);%低通滤波器的通带和阻带截止频率 n,wn=buttord(omegap,omegas,rp,rs,s); z,p,k=buttap(n); a,b,c,d=zp2ss(z,p,k); at1,bt1,ct1,dt1=lp2hp(a,b,c,d,wn); at2,bt2,ct2,dt2=bilinear(at1,bt1,ct1,dt1,fs); num,den=ss2tf(at2,bt2,ct2,dt2);figure(1);freqz(num,den,128,fs);grid on;figure(2);t=linspace(0,0.06,400);x=zeros(1,400);x(1)=1;y=filter(num,den,x);plot(t,y);axis(0 0.02 -0.4 1);xlabel(nT(second);ylabel(Amplitude); title(impulze response);grid;实验结果:高通滤波器阶数 n=4直接型网络结构图系数 num 分子= 0.9340 -3.7359 5.6038 -3.7359 0.9340 den 分母= 1.0000 -3.8634 5.5994 -3.6083 0.8723(3) butterworth带通滤波器%数字带通滤波器技术指标wp1=0.4*pi;wp2=0.6*pi;Ap=1;ws1=0.3*pi;T=0.5;As=10; ws2=0.7*pi;%频率预畸变wc1=wp1/T;wc2=wp2/T;wr1=ws1/T;wr2=ws2/T;w0=(sqrt(wp1*wp2)/T;B=wc2-wc1;%将指标转换成归一化模拟低通滤波器的指标normwr1=(wr12)-(w02)/(B*wr1);normwr2=(wr22)-(w02)/(B*wr2);%设计归一化的模拟低通滤波器if(abs(normwr1)-abs(normwr2)0;normwr=abs(normwr2);elsenormwr=abs(normwr1);endnormwp=1;N,wn=buttord(normwp,normwr,Ap,As,s);bLP,aLP=butter(N,wn,s);bBP,aBP=lp2bp(bLP,aLP,w0,B);%用双线性变换法转换成数字滤波器Fs= 1/T;b,a=impinvar(bBP,aBP,Fs);w=linspace(0,2*pi,500);figure(1);freqz(b,a,128,Fs);grid on;figure(2);x=zeros(1,400)x(1)=1;t=linspace(0,0.06,400);y=filter(b,a,x);plot(t,y);axis(0 0.01 -0.4 0.4)grid;实验结果:带阻滤波器阶数 N=4直接型网络结构图系数分子num= 0.6746 -4.9858 16.5164 -31.9777 39.5453 -31.9777 16.5164 -4.9858 0.6746分母den = 1.0000 -6.6678 19.9429 -34.9061 39.0833 -28.6606 13.4460 -3.6925 0.4551(4) butterworth带阻滤波器程序如下:wp1=0.15*pi;wp2=0.45*pi;ws1=0.2*pi;ws2=0.4*pi;rp=.5rs=20;fs=10;omegas1=ws1*fsomegas2=ws2*fsomegap1=wp1*fsomegap2=wp2*fsomegas1=2*fs*tan(ws1)/2)omegas2=2*fs*tan(ws2)/2)omegap1=2*fs*tan(wp1)/2)omegap2=2*fs*tan(wp2)/2)omegao=sqrt(omegap1*omegap2)bw=omegap1-omegap2%将指标转换成归一化模拟低通滤波器的指标normwr1=(omegas12)-(omegao2)/(bw*omegas1)normwr2=(omegas22)-(omegao2)/(bw*omegas2)%设计归一化的模拟低通滤波器%组带截至频率if(abs(normwr1)-abs(normwr2)0;omegas=abs(normwr2)elseomegas=abs(normwr1);end%计算阶数n,与截止频率wnn,wn=buttord(1,omegas,rp,rs,s);%建立巴特沃斯数字滤波器z,p,k=buttap(n);%零极点模型转换到空间状态模型n1,d1=zp2tf(z,p,k);%低通转换到高通n2,d2=lp2bs(n1,d1,omegao,fs);%用双线性变换法实现模拟滤波器到数字滤波器的转换num,den=bilinear(n2,d2,fs);%空间状态模型转换到传递函数模型%绘制幅频、相频图(频率响应特性图)figure(1);freqz(num,den,128,fs);grid on;%绘制脉冲响应特性图figure(2);t=linspace(0,0.06,400);x=zeros(1,400);x(1)=1;y=filter(num,den,x);plot(t,y);axis(0 .01 -0.6 0.6);xlabel(nT(second);ylabel(Amplitude); title(impulze response);grid;实验结果:带阻滤波器阶数 N=4直接型网络结构图系数 num(分子) = 0.2684 -1.7703 6.0132 -13.2445 20.7636 -24.0214 20.7636 -13.2445 6.0132 -1.7703 0.2684den (分母)= 1.0000 -4.9282 12.3434 -20.2480 23.9520 -21.1989 14.1840 -7.0806 2.5389 -0.5953 0.0720频率响应特性图低通高通带通带阻脉冲响应特性图低通高通带通带阻网络结构图低通滤波器高通滤波器带通滤波器带阻滤波器课程设计心得体会通过这两周的课程设计学习,过程曲折可谓一语难尽。在此期间我也失落过,也曾一度热情高涨。从开始时满富盛激情到最后汗水背后的复杂心情,点点滴滴无不令我回味无长。 首先,在本次课程设计的过程中,我感触最深的是查阅大量的设计资料的时候。为了让自己的设计更加完善,不停地查阅这方面的资料,去图书馆,上matlab论坛,参考了很多有关于信号和滤波器的资料。看到别人的程序,开始的时候一头雾水,看也看不懂,但是经过大量的积累后,自己也能做出一些简单的程序,当时心里十分有成就感。 其次,在这次课程设计中,我们运用到了学到的专业课知识,更重要的是对于信号处理原理及应用这本书有了更深刻的了解与认识,真正做到了学为己用,学以致用。课设过程中,我们复习到了各种以前的知识,也接触到了很多新的知识。让我知道,做出一个东西不仅仅是学好一方面的知识就能做好,一定要广涉猎,深研究,才能取得好的效果。 最后,我想感谢我的老师谢平老师和林洪彬老师,在我们课程设计的过程中,始终认真仔细的跟我们讲解我们的疑难问题,帮我们出主意,向我们介绍各种参考书目,正是有这样的老师,才让我们的课程设计真正的学到了东西。附录 参考文献资料1 谢平 信号处理原理及应用 燕山大学,20082薛年喜 MATLAB在数字信号处理中的应用(第二版)清华大学出版社,20083戴育良 用MATLAB辅助设计IIR数字滤波器 台州学晚报 2005年12月第27卷 第6期4严小军,赵妮 基于MATLAB的IIR数字滤波器 计算机与现在化 2007年第6期5武卫华 基于MATLAB的IIR数字滤波器的设计 维普资讯 第24期 2003年7月6 胡广书 数字信号处理、理论、算法与实现M.北京:清华大学出版社,1997 共 26 页 第 26 页
展开阅读全文