-1-摘要根据IIR数字滤波器的设计原理,提出了IIR数字滤波器的快速设计方法,并在matlab环境下做出了实现快速设计IIR数字滤波器的设计系统.在该系统中,只需要将数字滤波器的技术性能指标根据指定的或是需要的设计方法(如双线性变换法或脉冲响应不变法等),转换为模拟滤波器的技术性能指标,根据指定的模拟滤波器设计出相应的数字滤波器,该系统中指定的模拟滤波器为巴特沃斯滤波器和切比雪夫滤波器,该系统为快速、高效地设计IIR数字滤波器提供了一个可靠而有效的工作平台.本文首先对MATLAB软件进行了介绍,并对数字滤波器在其环境下如何实现进行了介绍;其次描述了数字滤波器的基本概念,其包括系统的描述、系统的传递函数、基本结构运算单元;本文重点描述了IIR数字滤波器的设计过程及几种设计方法,并对IIR滤波器的仿真做了一些介绍。关键词:IIR数字滤波器模拟滤波器脉冲响应数字频率设计系统双线性变换幅频特性AbstractThefastdesignmethodofIIR(InfiniteImpulseresponse)filterisprovidedbasedontheprincipleoffilterdesign,andthedesignsystemoftheIIRfilterworkedoutundertheMATLABenvironment.Itisnecessarythattheparameterofdigitalfilteristransformedtotheparameterofanalogfilterbasedontheindicatedmethod(forexample,themethodofdoublelineartransformorthemethodofnon-changingimpulseresponse,etc.),andthedigitalfilterisdesignedbasedontheindicatedanalogfilter.TheButterworthfilterandtheChebyshevfilter(bothareanalogfilter)areindicated.Areliableandefficientworkstationisprovidedinordertodesignfilterquicklyandefficiently.FirstthistextcarriesontheintroductiontothesoftwareofMATLAB,anddescribesthedesignofdigitalfilterbasedonMATLAB;Describesthebasicconceptofthedigitalfilterthenextinorder,itincludesthedescriptionofsystem,deliveringfunctionofthesystem,thebasicstructureoperationunit;ThistextpointdescribesdesignprocessandseveraldesignmethodsoftheIIRdigitalfilterandthesimulationoftheIIRfiltertodosomeintroduction.Keywords:IIRdigitalfilter;analogfilter;impulseresponse;digitalfrequency;designsystem;doublelineartransformation;characterofmagnitudeandfrequency-2-第一章前言1.1数字滤波器技术的发展状况数字滤波器是数字信号处理理论的一部分。数字信号处理主要是研究用数字或符号的序列来表示信号波形,并用数字的方式去处理这些序列,把它们改变成在某种意义上更为有希望的形式,以便估计信号的特征参量,或削弱信号中的多余分量和增强信号中的有用分量。具体来说,凡是用数字方式对信号进行滤波、变换、调制、解调、均衡、增强、压缩、固定、识别、产生等加工处理,都可纳入数字信号处理领域。数字信号处理学科的一项重大进展是关于数字滤波器设计方法的研究。关于数字滤波器,早在上世纪40年代末期就有人讨论它的可能性问题,在50年代也有人讨论过数字滤波器,但直到60年代中期,才开始形成关于数字滤波器的一整套完整的正规理论。在这一时期,提出了各种各样的数字滤波器结构,有的以运算误差最小为特点,有的则以运算速度高见长,而有的则二者兼而有之。出现了数字滤波器的各种通近访法和实现方法,对递归和非递归两类滤波器作了全面的比较,统一了数字滤波器的基本概念和理论。数字滤波器的领域的一个重要发展是对有限冲激响应(FIR)和无限冲激响应(IIR)关系的认识的转化。在初期,一般认为IIR滤波器比FIR滤波器具有更高的运算效率,因而明显的倾向前者,但当人们提出用快速傅立叶变换(FFT)实现卷积运算的概念之后,发现高阶FIR滤波器也可以用很高的运算效率来实现,这就促使人们对高性能FIR滤波器的设计方法和滤波器的频域设计方法进行了大量的研究,从而出现了此后数字滤波器设计中频域方法和适于方法并驾齐驱的局面。然而,这些均属数字滤波器的早期研究。早期的数字滤波器尽管在语音、声纳、地震和医学的信号处理中曾经发挥过作用,但由于当时计算机主机的价格很昂贵,严重地阻碍了专用数字滤波器的发展。70年代科学技术的蓬勃发展,数字信号处理开始与大规模和超大规模集成电路技术、微处理技术、高速数字算术单元、双极性高密度半导体存储器、电荷转移器件等新技术、新工艺结合了起来,并且引进了计算机辅助设计方法,它使数字滤波器的设计不仅仅是对相应模拟滤波器的逼近。一般说来,通过对模拟滤波器函数的变换来设计数字滤波器,很难达到逼近任意频率响应或冲激响应,而采用计算机辅助设计则有可能实现频域或时域的最佳逼近,或频域时域联合最佳逼近。这样,数字滤波器的分析与设计其内容也更既丰富起来,各种新的数字信号处理系统,也都能用专用数字硬件实时加以实现。数字信号处理理论与技术的发展,主要是由于电子计算机与大规模集成电路-3-的大量生产和广泛应用,替代了原来的模拟信号处理中的线性滤波与频谱分析所应用的模拟计算机和分立元件L、C、R线性网络,高度发挥了计算技术与数字技术相结合的特色和优越性。特别是微处理器和微型计算机技术日新月异的发展,经更有利于电子仪器与电子技术应用系统朝着数字化、小型化、自动化以及多功能等方向发展,促使它们成为富有智能型的电子系统。现在,包括数字滤波在内的数字信号处理技术正以惊人的速度向纵深和高级的方向发展;据统计这种趋势还要持续一个较长的时期,未来的发展可能会比过去的进程更为激动人心,必将引起某些领域的飞跃性发展。1.2MATLAB软件简介MATLAB是英文MatrixLaboratory(矩阵实验室)的缩写。它是由美国Mathworks公司推出的用于数值计算和图形处理的数学计算环境。在MATLAB环境下,用户可以集成地进行程序设计、数值计算、图形绘制、输入输出、文件管理等各项操作。它优秀的数值计算能力和卓越的数据可视化能力使其很快在同类软件中脱颖而出。MATLAB系统最初是由CleveMoler用FORTRAN语言设计的,现在的MATLAB程序是Mathworks公司用C语言开发的。它的第一版(DOS版本1.0)发行于1984年;经过20年的不断改进,MATLAB已经成为国际上最流行的科学与工程计算的软件工具,最流行的计算机高级编程语言了,有人称它为“第四代”计算机语言,它在国内外高校和研究部门正扮演着重要的角色。MATLAB语言的功能也越来越强大,不断适应新的要求提出新的解决方法。可以预见,在科学运算、自动控制与科学绘图领域MATLAB语言将长期保持其独一无二的地位。MATLAB语言之所以能如此迅速地普及,显示出如此旺盛的生命力,是由于它有着不同其他语言的特点。1.语言简洁紧凑,使用方便灵活,库函数极其丰富。MATLAB程序书写形式自由,利用其丰富的库函数避开了繁杂的子程序编程任务,压缩了一切不必要的编纂工作。由于库函数都是由本领域的专家编写,所以用户不必担心函数的可靠性。2.运算符号丰富。由于MATLAB是用C语言编写的,所以MATLAB提供了C语言几乎一样多的运算符,灵活使用MATLAB的运算符将使程序变得极为简短。3.高效方便的矩阵和数组运算。MATLAB语言像Basic、Fortran、C语言一样规定了矩阵的算术运算符、关系运算符、逻辑运算符、条件运算符及赋值运算符,而且这些运算符大部分可以毫无改变地照搬到数组间的运算,另外,它不需要定义数组的唯数,并给出矩阵函数、特殊矩阵函数、特殊矩阵专门的库函数,-4-使之在求解诸如信号处理、建模、系统识别、控制、优化等领域的问题时,显得大为简捷、高效、方便,这是其它高级语言所不能比拟的。在此基础上,高版本的MATLAB已逐步发展到科学及工程计算的其它领域。因此,不久的将来,它一定能名副其实地成为“万能演算纸式的”科学算法语言。4.MATLAB即具有结构化的控制语句,又有面向对象编成的特性。5.语法限制不严格,程序设计自由度大。为了充分利用Fortran、C等语言的资源,包括用户已编好的Fortran、C语言程序,通过建立M文件的的形式,混合编程,方便地调用有关的Fortran、C语言的子程序。6.程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行。7.MATLAB的图形功能强大。在C和FORTRAN语言里,绘图都很不容易,但在MATLAB里,数据的可视化非常简单。此外,MATLAB还具有较强的编辑图形界面的能力。8.MATLAB具有的一项重要特色是拥有功能强大的工具箱。MATLAB包含两个部分;核心部分和各种可选的工具箱。功能性工具箱主要用来扩充其符号计算功能、图示建模仿真功能、文字处理功能以及与硬件实施交互功能。功能性工具箱能用于多种学科。而学科性工具箱是专业性比较强的;如Controltoolbox、Signalprocessingtoolbox、Communicationtoolbox等,这些工具箱都是由该领域内的学术水平很高的专家编写的,所以用户无需编写自己学科范围内的基础程序,而直接进行高、精、尖的研究。9.源程序的开放性。除内部函数以外,所有MATLAB的核心文件和工具箱文件都是可读可改变的源文件,用户可通过对源文件的修改以及加入自己的文件构成新的工具箱。MATLAB软件自1984年推向市场以来,历经十几年的发展和竞争,现已成为(IEEE评述)国际公认的最优秀的科技应用软件。它功能强大、界面友好、语言自然、开放性强的特点是它获得了对应用学科(特别是边缘学科和交叉学科)的季强是盈利,并且很快成为应用学科计算机辅助分析、设计、仿真、教学乃至科技文字处理不可缺少的基础软件。在欧美等高校,MATLAB已成为理工科高级课程的基本工具,成为攻读学位的大学生、硕士生、博士生必须掌握的技能。在设计研究单位和工业部门,MATLAB已经成为研究和解决各种具体工程问题的一种标准软件。近年来该软件系统开始在我国国内流行。受到理工科大中专院校释省级科研人员的重视,这也是本文选择用它来设计实现数学滤波器原因所在。-5-1.3数字滤波器及其MATLAB实现数字滤波器是数字信号处理中最重要的组成部分之一。在许多科学技术领域中,广泛使用滤波器对信号进行了处理。滤波器是一种选频装置,它对某一个或几个频率范围(频带)内的电信号给以很小的衰减:使这部分信号能够顺利通过,对其它频带内的电信号则给以很大的衰减,从而尽可能地阻止这部分信号的通过。通过滤波器时不经受衰减或经受很小的衰减的频带称为通带,经受的衰减超过某一规定值的频带称为阻带,位于通带和阻带之间的频带称为过渡带。于是,根据通带的不同,滤波器可分为低通滤波器、高通滤波器、带通滤波器、带阻滤波器等。此外,根据它所处理的信号型类,滤波器又可分为模拟滤波器和数字滤波器,