毕业设计-基于matlab数字滤波器设计.doc_第1页
毕业设计-基于matlab数字滤波器设计.doc_第2页
毕业设计-基于matlab数字滤波器设计.doc_第3页
毕业设计-基于matlab数字滤波器设计.doc_第4页
毕业设计-基于matlab数字滤波器设计.doc_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

青岛农业大学本科生毕业论文(设计)题 目: 基于MATLAB的数字滤波器设计 姓 名: 潘西金 学 院: 机电工程学院 专 业: 电气工程及其自动化 班 级: 2004.4 学 号: 0320040631 指导教师: 杨丽丽 完成时间: 2008.6.8 2008年6 月 8日36基于MATLAB的数字滤波器设计 目录摘要3Abstract4第一章 绪论51.1 数字滤波技术的发展概况51.2 MATLAB软件简介61.3 数字滤波器及其MATLAB实现8第二章 FIR滤波器设计及其MATLAB实现92.1 FIR线性相位滤波器的特点102.2 窗函数法设计FIR滤波器的MATLAB实现112.21 基本步骤112.22 工具箱函数132. 3 小结18第三章 IIR滤波器设计193.1 设计方法193.2 IIR滤波器经典设计193.2.1 IIR滤波器完全设计函数193.2.2 模拟滤波器变换法253.3 小结34第四章 总结与展望34参考文献:35致谢36摘要数字滤波器是数字信号处理中最重要的组成部分之一。在许多科学技术领域中,广泛使用滤波器对信号进行处理。数字滤波器可以分为两类,即有限冲激响应数字滤波器(FIR)和无限冲激响应数字滤波器(IIR)。本文就分别对这两类数字滤波器的设计和实现来进行分析研究。在FIR滤波器的设计过程中主要探讨了用窗函数法设计FIR滤波器。在IIR滤波器的设计过程中,将设计步骤分为三步,即模拟低通滤波器原型设计,模拟-数字滤波器变换,滤波器频带变换。在这两类滤波器的整个设计过程都是按照理论分析、编程设计、具体实现的步骤来进行的。相对于模拟滤波器来说,数字滤波器稳定、没有漂移、精度高、参数容易控制,这些优势决定了数字滤波器的应用越来越广泛。关键词:数字滤波器 , 有限冲激响应, 无限冲激响应 AbstractDigital filter is one of the most important parts of digital signal processing. In many fields of science and technology, it is widely used for signal processing. Digital filter can be divided as the Finite Impulse Response digital filter (FIR) and the Infinite Impulse Response digital filter (IIR). The paper aims at respective study in the design and realization of these two kinds of digital filters.During the design of FIR filters, we mainly discuss the design of the FIR filters by means of window functions. The design of IIR filters can be achieved through three steps: the design of prototype of analog low-pass filter, analog-to-digital filter conversion and the conversion of filter frequency band. The design of FIR and IIR follows the procedures of theoretical analysis, programming design and concrete realization.Relative to ana1og fi1ter,the digital filter without excursion, be able to process low frequency signal ,the characteristic of frequency response close to ideal va1ue,with high precision ,and easy to integrated .These advantages decide the application of digita1 filter become more and more extensively.Key words: Digital Filter ,FIR , IIR第一章 绪论1.1 数字滤波技术的发展概况数字滤波是数字信号处理理论的一部分。数字信号处理主要是研究用数字或符号的序列来表示信号波形,并用数字的方式去处理这些序列,把它们改变成在某种意义上更为有希望的形式,以便估计信号的特征参量,或削弱信号中的多余分量和增强信号中的有用分量。具体来说,凡是用数字方式对信号进行滤波、变换、调制、解调、均衡、增强、压缩、估值、识别、产生等加工处理,都可纳入数字信号处理领域。数字信号处理学科的一项重大进展是关于数字滤波器设计方法的研究。关于数字滤波器,早在40年代末期,就有人讨论过它的可能性问题.但直到60年代中期,才开始形成关于数字滤波器的一套完整的正规理论。在这一时期,提出了各种各样的数字滤波器结构,有的以运算误差最小为特点,有的则以运算速度高见长,而有的则二者兼而有之:出现了数字滤波器的各种逼近方法和实现方法,对递归和非递归两类滤波器作了全面的比较,统一了数字滤波器的基本概念和理论.数字滤波器领域的一个重要发展是对有限冲激响应(FIR)和无限冲激响应(IIR)关系的认识的转化。2在初期,一般认为IIR滤波器比FIR滤波器具有更高的运算效率,因而明显地倾向于前者,但当人们提出用快速傅立叶变换(FFT)实现卷积运算的概念之后,发现高阶FIR滤波器也可以用很高的运算效率来实现,这就促使人们对高性能FIR滤波器的设计方法和数字滤波器的频域设计方法进行了大里的研究,从而出现了此后数字滤波路设计中频域方法和时域方法并驾齐驱的局面。然而,这些均属数字滤波器的早期研究。早期的数字滤波器尽管在语音、声纳、地震和医学的信号处理中曾经发挥过作用,但由于当时计算机主机的价格很昂贵,严重阻碍了专用数字滤波器的发展。70年代科学技术蓬勃发展,数字信号处理开始与大规模和超大规模集成电路技术,徽处理器技术、高速数字算术单元、双极型高密度半导体存储器、电荷转移器件等新技术、新工艺结合了起来,并且引进了计算机辅助设计方法,它使数字滤波器的设计仅仅是对相应模拟滤波器的通近。一般说来,通过对模拟滤波器函数的变换来设计数字滤波器,很难达到逼近任意频率响应或冲激响应,而采用计算机辅助设计则有可能实现频域或时域的最佳逼近,或频域时域联合最佳逼近。这样,数字滤波器的分析与设计其内容也更加丰富起来:各种新的数字信号处理系统,也都能用专用数字硬件实时加以实现,恩格斯曾经指出:“科学的发生和发展一开始就是由生产决定的”。10数字信号处理理论与技术的发展,主要是由于电子计算机与大规模集成电路的大量生产和广泛应用,替代了原来的模拟信号处理中的线性滤波与颇谱分析所应用的模拟计算机和分立元件L. C. R线性网络,高度发挥了计算技术与数字技术相结合的特色和优越性。特别是微处理器和微型计算机技术日新月异的发展,将更有利于电子仪器与电子技术应用系统朝着数字化、小型化、自动化以及多功能化等方向发展,促使它们成为富有智能性的电子系统。现在,包括数字滤波在内的数字信号处理技术正以惊人的速度向纵深和高级的方向发展,据估计这种趋势还要持续一个较长的时期,未来的发展可能会比过去的进程更为激动人心,必将引起某些领域的飞跃性转析。91.2 MATLAB软件简介MATLAB是 英文Matrix Laboratory(矩阵实验室)的缩写。它是由美国Math Works公司推出的用于数值计算和图形处理的数学计算环境。在MATLAB环境下,用户可以集成地进行程序设计、数值计算、图形绘制、输入输出、文件管理等各项操作。其优秀的数值计算能力和卓越的数据可视化能力使其很快在同类软件中脱颖而出MATLAB系统最初是由Cleve Moler用FORTRAN语言设计的,现在的MATLAB程序是Math Works公司用C语言开发的。它的第一版(DOS版本1.0)发行于1984年,经过10余年的不断改进,MATLAB的版本不断升级,其所含的“工具箱”功能也越来越丰富,工具越来越多,因此应用范围也越来越广泛。MATLAB语言之所以能如此迅速地普及,显示出如此旺盛的生命力,是由于它有着不同于其它语言的特点1、语言简洁紧凑,使用方便灵活,库函数极其丰富。MATLAB程序书写形式自由,利用其丰富的库函数避开了繁杂的子程序编程任务,压缩了一切不必要的编程工作。由于库函数都是由本领域的专家编写,所以用户不必担心函数的可靠性。2、 运算符丰富。由于MATLAB是用C语言编写的,所以MATLAB提供了和C语言几乎一样多的运算符,灵活使用MATLAB的运算符将使程序变得极为简短。3. MATLAB既具有结构化的控制语句,又有面向对象编程的特性。4. 语法限制不严格,程序设计自由度大5. 程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行。6.MATLAB的图形功能强大。在C和FORTRAN语言里,绘图都很不容易,但在MATLAB里,数据的可视化非常简单。此外,MATLAB还具有较强的编辑图形界面的能力.7.MATLAB具有的一项重要特色是拥有功能强大的工具箱。MATIAB包含两个部分:核心部分和各种可选的工具箱。核心部分有数百个核心内部函数。其工具箱又可分为两类:功能性工具箱和学科性工具箱。功能性工具箱主要用来扩充其符号计算功能、图示建模仿真功能、文字处理功能以及与硬件实时交互功能。功能性工具箱能用于多种学科。而学科性工具箱是专业性比较强的,如control toolbox、signal processing toolbox, communication toolbox等。这些工具箱都是由该领域内的学术水平很高的专家编写的,所以用户无需编写自己学科范围内的基础程序,而直接进行高、精、尖的研究。8. 源程序的开放性。除内部函数以外,所有MATLAB的核心文件和工具箱文件都是可读可改的源文件,用户可通过对源文件的修改以及加入自己的文件构成新的工具箱。MATLAB软件自1984年推向市场以来,历经十几年的发展和竞争,现已成为(IEEE评述)国际公认的最优秀的科技应用软件。7它功能强大、界面友善、语言自然、开放性强的特点使它获得了对应用学科(特别是边缘学科和交叉学科)的极强适应力,并很快成为应用学科计算机辅助分析、设计、仿真、教学乃至科技文字处理不可缺少的基础软件.在欧美等高校,MATLAB己成为理工科高级课程的基本教学工具,成为攻读学位的大学生、硕士生、博士生必须掌握的技能。在设计研究单位和工业部门,MATLAB己经成为研究和解决各种具体工程问题的一种标准软件.近年来该软件系统开始在国内流行,受到理工科大专院校师生及科研人员的重视,这也是本文选择用它来设计实现数字滤波器的原因所在。1.3 数字滤波器及其MATLAB实现数字滤波器是数字信号处理中最重要的组成部分之一。在许多科学技术领城中,广泛使用滤波器对信号进行处理。滤波器是一种选频装置,它对某一个或几个频率范围(频带)内的电信号给以很小的衰减,使这部分信号能够顺利通过;对其它频带内的电信号则给以很大的衰减,从而尽可能地阻止这部分信号的通过。通过滤波器时不经受衰减或经受很小的衰减的频带称为通带,经受的衰减超过某一规定值的频带称为阻带,位于通带和阻带之间的频带称为过渡带。于是根据通带的不同,滤波器可分为低通滤波器、高通滤波器、带通滤波器、带阻滤波器等。此外,根据它所处理的信号类型,滤波器又可分为模拟滤波器和数字滤波器,模拟滤波器用来处理连续信号,而数字滤波器用来处理离散信号,后者是在前者的基础上发展起来的。数字滤波器与模拟滤波器比较,其主要优点是:精度和稳定性高;系统函数容易改变,因而灵活性高:不存在阻抗匹配问题;便于大规模集成:可以实现多维滤波。因此,目前在诸如通信、雷达、遥感、声纳、卫星通信、宇宙航行、测量、语音和生物医学等科学领域的信号处理中,已经运用了数字滤波技术,而且随着大规模集成技术和数字计算技术的发展,它的应用会越来越广泛数字滤波器实际上就是一种数字信号处理系统的算法或设备。数字滤波实际上是一种运算过程,数字滤波器的功能是将一组输入的数字序列通过一定的运算后转变为另一组输出的数字序列,因此它本身就是一台数字式的处理设备。数字滤波器的基本原理是:首先利用取样开关和模拟/数字转换器将一个连续性的信号转换成数字信号。在-数字计算器中完成所要求的传输函数运算之后,再通过数字/模拟转换器和保持电路,使信号形成最后要求的波形。数字滤波器一般可用两种方法实现:一种是根据描述数字滤波器的数学模型或信号流图,用数字硬件装配成一台专门的设备,构成专用的信号处理机,这就是硬件实现方式;另一种方法就是直接利用通用计算机,将所需要的运算编成程序来让计算机执行,这也就是软件实现方式。在硬件实现方式中,是以数字组件如延迟器、加法器和乘法器作为基本部件构成专用的数字信号处理系统,不像模拟滤波器需要用电感和电容元件,因此、数字信号处理机很容易用数字集成电路来制成,而且它的转移函数可变,各回路之间不存在阻抗匹配问题,因此可以很容易做成最佳冲激响应和恒定延迟的线性相移网络。在软件实现方式中,它是借助于通用计算机机器语言、汇编语言或高级语言程序来做数字滤波的运算过程。数字滤波器的设计与实现,通常按下述步骤进行:首先,根据不同用途提出数字滤波器的技术指标;然后,设计一个稳定的、因果的数学模型H(z)来逼近所要求的技术指标:最后,设计专用的数字硬件来实现这个数字模型,或者用通用电子计算机运行程序软件予以实现。11本文侧重于软件实现并将重点放在第二步。如同模拟滤波器的性能可由h(t)和H(s)来表征一样,数字滤波器的性能完全取决于h(n)和H(z)。因此,数字滤波器可以按照单位取样响应(或称脉冲响应冲激响应等)h(n)的性质分为两类:1.有限冲激响应(Finite Impulse Response)数字滤波器,简称FIR数字滤波器,它的h(n)序列长度是有限的。2.无限冲激响应(Infinite Impulse Response)数字滤波器,简称IIR数字滤波器,它的h(n)序列长度是无限的,即当n时,h (n)仍有值。下面将分别对FIR数字滤波器和IIR数字滤波器的设计实现进行分析讨论。在具体设计过程中,将充分发挥MATLAB软件在数值计算、图像处理中的优势,并充分利用其强大的信号处理工具箱(signal processing toolbox)。8第二章 FIR滤波器设计及其MATLAB实现通常,计算机解决一个具体问题的步骤是这样的:首先,分析这个待处理的问题,从中找出数学模型(包括计算机要处理的对象、对象的特点及对象之间的关系等),然后寻求解此数学模型的算法,最后进行编程设计。4其中最为关键的步骤就是寻求合适的数学模型,这个数学模型必须能被计算机所识别,并使程序设计人员能够很容易、很方便的根据这些模型进行程序设计。为了能用计算机进行滤波器的设计。我们有必要在经典的数字滤波器理论的基础上,进行进一步的数学推导,得出一些有意义的公式,以使计算机程序设计更加容易,这实质是一个化抽象为具体、化复杂为简单的过程。因此,在设计FIR滤波器之前,先讨论一下FIR线性相位滤波器的特性,推导出它的振幅响应的公式,然后根据这些公式进行程序设计。2.1 FIR线性相位滤波器的特点设h(n) (0nM-1)是长度为M的线性相位滤波器的脉冲响应,它的系统函数为: H(z)=它的频率响应函数为:它具有一个线性相位约束:其中,=0或,为一个常数。则h(n)有下面的特性:h(n) = h(M-1-n) =0, 0nM-1称之为对称脉冲响应:或者h(n) = -h(M-1-n) =,0nM-1称之为反对称脉冲响应于是,根据值的不同和M的奇偶性,就产生了四种类型的线性FIR相位滤波器。它们分别是:1型线性相位FIR滤波器:,M为奇数,h(n)以中心点(M-1)/2 对称;2型线性相位FIR滤波器:,M为偶数,h(n)以点(M/2)-1与点(M/2)之间的中心对称3型线性相位FIR滤波器:,M为奇数,h(n)以点(M-1)/2 为中心反对称:4型线性相位FIR滤波器:,M为偶数,h(n)以点(M/2)-1与点(M/2)之间的中心反对称。根据这4类FIR滤波器,可得到相应的频率响应的特点:其中为振幅响应,它与幅值特性不同,前者可正可负,而后者只能为非负值。2.2 窗函数法设计FIR滤波器的MATLAB实现2.21 基本步骤基于窗函数的FIR数字滤波器设计其主要步骤如下:3(1) 由数字滤波器理想特性进行傅立叶逆变换,获得理想滤波器的单位脉冲响应。一般假设理想低通滤波器的截止频率为,其幅频特性为: 或 (2)由性能指标确定窗函数和窗口长度N,由过度带近似于窗函数主瓣宽度求得窗口长度N。(3)求滤波器的单位脉冲响应 即为所设计的FIR滤波器系数向量。(4)检验滤波器的性能指标用窗函数设计一个线性相位FIR低通滤波器,并满足性能指标:通带边界频率,阻带边界频率,阻带衰减不小于40dB,通带波纹不大于3dB.程序如下:%program p211wp=0.5*pi;ws=0.66*pi;width=ws-wp;%width of transition bandN=ceil(8*pi/width);%the length of the filterif(rem(N,2)=0 N=N+1; endNw=N;%the length of the filterwc=(wp+ws)/2;%cutoff freq.of the filtern=0:N-1;alpha=(N-1)/2;m=n-alpha+0.00001;hd=sin(wc*m)./(pi*m);win=hanning(Nw);h=hd.*win;b=h;freqz(b,1,512);程序运行结果如下:图 2-1 2.22 工具箱函数MATLAB信号处理工具箱还提供了基于窗函数的工具函数fir1和fir2。(1) fir1函数。其调用格式为: b=fir1(n,Wn) b=fir1(n,Wn,ftype) b=fir1(n,Wn,window) b=fir1(n,Wn,ftypewindow)格式中:n为FIR滤波器的阶数,对于高通、带阻滤波器,n取偶数。n为滤波器的截止频率,;对于带通、带阻滤波器,n,且W1 wap 1.0e+003 * 2.0381 2.9062bp = 0 0 1ap = 1.0000 1.4142 1.0000bw = 868.0683w0 = 2.4337e+003bs = 1.0e+005 * 7.5354 -0.0000 0.0000as = 1.0e+013 * 0.0000 0.0000 0.0000 0.0007 3.5083bz1 = 0.0201 0.0000 -0.0402 0.0000 0.0201az1 = 1.0000 -1.6368 2.2376 -1.3071 0.6414 图 3-93.3 小结这一章主要是用MATLAB语言进行IIR滤波器的设计和实现。IIR滤波器的设计步骤分为三步,即模拟低通滤波器原型设计,模拟-数字滤波器变换,频带变换。在模拟低通滤波器原型的设计中,主要讨论了两种设计方式;在模拟-数字滤波器变换中,讨论了两种变换方法,即脉冲响应不变法和双线性变换法;在频带变换的设计实现

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论