基于Matlab数字虑波器的设计与仿真.doc
《基于Matlab数字虑波器的设计与仿真.doc》由会员分享,可在线阅读,更多相关《基于Matlab数字虑波器的设计与仿真.doc(44页珍藏版)》请在沃文网上搜索。
1、基于Matlab数字虑波器的设计与仿真 摘 要本文分别研究了在Matlab环境下IIR数字滤波器和FIR数字滤波器的设计方法及实现方法。在无限脉冲响应(IIR)数字滤波器设计中,先进行模拟滤波器的设计,然后进行模拟-数字滤波器转换,即采用脉冲响应不变法及双线性Z变化法设计数字滤波器,最后进行滤波器的频带转换。在有限脉冲响应(FIR)数字滤波器设计中,讨论了FIR线性相位滤波器的特点和用窗函数法设计FIR滤波器两个问题。两类滤波器整个设计过程都是按照理论分析、编程设计、具体实现的步骤进行的。用Matlab对几种滤波器进行仿真之后对比观察,直接型效果更好,如果不考虑时域混叠现象,则用脉冲响应不变法
2、较好,经济高效,如果要求严格的线性相位,用双线性变换法较好,但滤波器的阶次较高。关键词:数字滤波器Matlab/无限脉冲响应/有限脉冲响应。THE DIGITAL FILTERS DESIGNING BASING MATLAB ABSTRACTIn this paper, the Infinite Impulse Response digital filter (IIR) and Finite Impulse Response digital filter (FIR) based MATLAB are designed. When the IIR filter is designed , an
3、 analog low-pass filter is designed at first; then convert it into a digital filter by using Bilinear transform method; lastly, make up the conversion of filter frequency band. When designing a FIR filter, we use window function method in which the phase of the filter is linear. In comparison of the
4、 simulations of these filters based Matlab, the direct-filter is better; if not considering the aliasing in time domain, the filter designed by using impulse response method is better; if requiring a linear phase, the filter designed by using Bilinear transform method is better, but the order of the
5、 filter is higher.KEY WORDS: Digital Filter, Matlab, IIR, FIRII目 录中文摘要I英文摘要II1 绪论11.1 数字滤波技术11.1.1 滤波器原理21.1.2 数字滤波器设计方法概述21.2 Matlab软件简介32 IIR滤波器设计及其Matlab实现62.1 模拟滤波器设计及其Matlab实现62.1.1 巴特沃斯低通滤波器设计62.1.2 切比雪夫低通滤波器设计82.1.3 椭圆低通滤波器设计122.2 模拟-数字滤波器变换及其Matlab实现142.2.1 脉冲响应不变法152.2.2 双线性Z变换法172.3小结193 F
6、IR滤波器设计及其Matlab实现203.1 线性相位FIR数字滤波器的条件和特点203.1.1 线性相位条件203.1.2 线性相位FIR滤波器幅度特性的特点213.1.3 线性相位FIR滤波器零点分布特点213.2 常用窗函数及Matlab实现223.2.1 常用窗函数介绍223.2.2 各种窗函数的实现与比较233.3 基于窗函数的FIR数字滤波器设计及其Matlab实现253.3.1 海明窗设计数字低通滤波器263.3.2 汉宁窗设计数字高通滤波器283.3.3 布拉克曼窗及三角窗设计数字带通滤波器303.3.4 汉宁窗设计数字带阻滤波器323.4 小结34结束语35致 谢36参考文献
7、37附 录38401 绪论1.1 数字滤波技术数字滤波1是数字信号处理的重要基础,数字信号处理主要是研究用数字或符号的序列来表示信号波形,并用数字的方式去处理这些序列,把它们改变成在某种意义上更希望的形式,以便估计信号的特征参量,或削弱信号中的多余分量和增强信号中的有用分量。数字滤波器在对信号的过滤、检测与参数估计等处理过程中,是使用最为广泛的一种线性系统。数字滤波器(Digital Filter,简称为DF)是指完成信号滤波处理功能的、用有限精度算法实现的离散时间线性非时变系统。数字滤波器的数学运算通常有两种实现方式。一种是频域法,即利用FFT快速运算办法对输入信号进行离散傅立叶变换,分析其
8、频谱,然后根据希望的频率特性进行滤波,再利用傅立叶反变换恢复出时域信号。这种方法具有较好的频域选择特性和灵活性,并且由于信号频率与所希望的频谱特性是简单的相乘关系,所以它比计算等价的时域卷积要快得多。另一种方法是时域法,这种方法是通过对离散抽样数据作差分数学运算来达到滤波目的的。数字滤波器的输入是一组(由模拟信号取样和量化的)数字量,其输出是经过数字变换的另一组数字量。数字滤波器具有稳定性高、精度高、灵活性大等突出优点。随着数字技术的发展,用数字技术实现滤波器的功能愈来愈受到人们的重视,并得到了广泛的应用。数字信号处理学科2的一项重大进展是关于数字滤波器设计方法的研究。60年代中期,开始形成关
9、于数字滤波器的一套完整的正规理论。这一时期,提出了各种各样的数字滤波器结构,有的以运算误差最小为特点,有的则以运算速度高见长;出现了数字滤波器的各种逼近方法和实现方法,对递归和非递归两类滤波器作了全面的比较;统一了数字滤波器的基本概念和理论,对有限冲激响应(IIR)和无限冲激响应(FIR)的认识有了完整理论。70年代后,科学技术蓬勃发展,数字信号处理开始与大规模和超大规模集成电路技术、微处理技术等新工艺新技术结合起来,并引进计算机辅助设计方法,大大丰富了数字滤波器的分析与设计,各种新的数字信号处理系统,也都能用专用数字硬件实时加以实现。相信在未来,随着电子仪器与电子技术应用系统朝着数字化、小型
10、化、自动化以及多功能化等方向发展,包括数字滤波器在内的数字信号处理技术会有以惊人的速度进行飞跃式发展。1.1.1 滤波器原理滤波器,顾名思义,其作用是对输入信号起到滤波的作用。对于图1-1所示的LSI系统,其时域输入输出关系为: (1-1)h (n)x(n) y(n)若y(n),x(n)的傅立叶变换存在,则输入输出的频域关系是: (1-2)当输入信号x(n) 通过滤波器系统h(n) 后,其输出 y(n) 中不再含有|c的频率成分,仅使|c的信号成分通过。因此,滤波器的形状不同,其滤波后的信号结果也不一样。若滤波器的输入、输出都是离散时间信号,那么该滤波器的单位冲激响应h(n)也必然是离散的,这
11、种滤波器称为数字滤波器(DF,Digital Filter)。当用硬件实现一个DF时,所需元件是延迟器、乘法器和加法器;而利用MATLAB软件时,它仅需线性卷积程序便可实现。而模拟滤波器(AF,Analog Filter)只能用硬件实现。因此DF比AF容易实现,且更容易获得理想的滤波性能。数字滤波器还具有以下优点:精度和稳定性高;系统函数容易改变;灵活性高;不存在阻抗匹配问题;便于大规模集成;可实现多维滤波。1.1.2 数字滤波器设计方法概述数字滤波器从功能上分类3:可以分为低通滤波器(LP,Low Pass)、高通滤波器(HP,High Pass)、带通滤波器(BP,Band Pass)、带
12、阻滤波器(BS,Band Stop)。从滤波器的网络结构或者从单位脉冲响应分类:如同模拟滤波器的性能可由g(t)和G(s)来表征一样,数字滤波器的性能完全取决于h(n)和H(z)。因此,数字滤波器可以按照单位取样响应(或称脉冲响应,冲激响应等)h(n)的性质分为两类:有限脉冲响应(Finite Impulse Response)数字滤波器,简称FIR数字滤波器,它的h(n)序列长度是有限的;无限脉冲响应(Infinite Impulse Response)数字滤波器,简称IIR数字滤波器,它的h(n)序列长度是无限的,即当时,h(n)仍有效。数字滤波器的设计与实现,通常按下述步骤进行4:1、根
13、据不同用途提出数字滤波器的技术指标、性能要求。2、设计一个稳定的、因果的数学模型H(z)来逼近所要求的技术指标,并用有限精度的运算实现所设计的系统。本文将重点介绍此步骤。3、设计专用的数字硬件来实现这个数字模型,或者通过电子计算机运行程序软件予以实现。本文将侧重于软件实现。IIR滤波器和FIR滤波器的设计方法很不相同:IIR滤波器设计方法有两类,经常用到的一类设计方法是借助于模拟滤波器的设计方法进行的。其设计思路是:先设计模拟滤波器得到传输函数G(s),然后将G(s)按某种方法转换为数字滤波器的系统函数H(z)。这一类方法是基于模拟滤波器的设计方法相对比较成熟,它不仅有完整的设计公式,也有完整
14、的图标供查阅,更可以直接调用MATLAB中的对应的函数进行设计。另一种是直接在频域或者时域中进行设计,设计时必须使用计算机辅助,直接调用MATLAB中的程序或函数即可设计。FIR滤波器不能采用由模拟滤波器设计进行转换的方法,而经常使用的是窗函数法和频率采样法。也可以借助计算机辅助设计软件采用切比雪夫等波纹逼近法进行设计。1.2 Matlab软件简介Matlab5是英文Matrix Laboratory(矩阵实验室)的缩写,它是由美国MathWorks公司推出的用于数值计算和图形处理的数学计算环境。在MATLAB环境下,用户可以集成的进行程序设计、数值计算、图形绘制、输入输出、文件管理等各项操作
15、。它优秀的数值计算能力和卓越的数据可视化能力使其在同类软件中脱颖而出。Matlab系统最初由Cleve Moler用FORTRAN语言设计,现在的MATLAB程序是由MathWorks公司用C语言开发的。它的第一版(DOS版本1.0)发行于1984年,经过多年的改进,版本不断升级,其所包含的工具箱功能也越来越丰富,应用越广泛。Matlab语言之所以能如此迅速的普及,显示出如此旺盛的生命力,是由于它有着不同于其他语言的特点,归纳如下:1)简单易学:Matlab不仅是一个开发软件,也是一门编程语言。其语法规则与结构化高级编程语言(如C语言等)大同小异,而且使用更为简便。用Matlab编程写程序犹如
16、在演算纸上排列出公式与求解问题,所以被称为演算纸式科学算法语言。2)计算功能强大:Matlab6拥有庞大的数学、统计及工程函数,可使用户立刻实现所需的强大数学计算功能。由各领域的专家学者们开发的数值计算程序,使用了安全、成熟、可靠的算法,从而保证了最快的运算速度和可靠的结果。此外,Matlab还有数十个工具箱,可解决应用中的大多数数学、工程问题。3)先进的可视化工具:Matlab提供功能强大的、交互式的二维和三维绘图功能,可使用户创建富有表现力的彩色图形。可视化工具包括曲面渲染、线框图、伪彩图、光源、图像显示、动画等。4)开放性、可扩展性强:M文件是可见的Matlab程序,所以用户可以查看源代
17、码。开放的系统设计使用户能够检查算法的正确性,修改已存在的函数,或者加入自己的新部件。5)特殊应用工具箱:Matlab的工具箱加强了对工程及科学中特殊应用的支持。工具箱也和Matlab一样是完全用户化的,可扩展性强。将某个或几个工具箱与MATLAB联合使用,可以得到一个功能强大的计算组合包,满足用户的特殊要求。Matlab数字信号处理工具箱7和滤波器设计工具箱专门应用于信号处理领域。工具箱提供了丰富而简便的设计,使原来繁琐的程序设计简化成函数的调用。只要以正确的指标参数调用相应的滤波器设计程序或工具箱函数,便可以得到正确的设计结果,使用非常方便。接下来的两章我们将分别对IIR数字滤波器和FIR
18、数字滤波器的设计实现进行分析讨论。在具体的设计过程中,将充分发挥Matlab软件在数值计算、图像处理中的优势,并充分利用其强大的滤波器设计工具箱(Filter Design Toolbox)及图像用户界面工具辅助设计分析。2 IIR滤波器设计及其Matlab实现IIR数字滤波器具有无限持续时间脉冲响应,而所有的模拟滤波器一般都具有无限长的脉冲响应,因此它与模拟滤波器相匹配。于是,设计IIR数字滤波器可以先设计模拟低通滤波器G(s),然后按一定规则将G(s)进行滤波器变换而得到数字域的IIR低通滤波器H(z),最后通过频带变换转换成其它频带滤波器。本章按此思路将IIR数字滤波器设计分为三部分:设
19、计模拟滤波器;进行滤波器转换,得到数字滤波器;最后再简单分析数字滤波器的频带转换问题。下面,将以此进行分别讨论。2.1 模拟滤波器设计及其Matlab实现IIR数字滤波器技术设计最通用的方法是借助于模拟滤波器的设计方法。模拟滤波器设计已经有了一套相当成熟的方法,它不但有完整的设计公式,而且还有较为完整的图表可供查询,因此充分利用这些已有的资源将会给数字滤波器的设计带来很大方便。滤波器设计最重要的是寻找一个稳定、因果的系统函数去逼近滤波器的技术指标,因此模拟滤波器的设计十分重要。实际中,有三种广泛应用的滤波器,即巴特沃斯低通滤波器、切比雪夫低通滤波器,椭圆低通滤波器,下面,将分别予以介绍。2.1
20、.1 巴特沃斯低通滤波器设计巴特沃斯滤波器拥有最平滑的频率响应,在截止频率以外,频率响应单调下降。在通带中是理想的单位响应,在阻带中响应为0。在截止频率处有3dB的衰减。巴特沃斯滤波器除了具有平滑单调递减的频率响应的优点之外,其过渡带的陡峭程度正比于滤波器的阶数。高阶巴特沃斯滤波器的频率响应近似于理想低通滤波器。巴特沃斯(Butterworth)低通滤波器是将巴特沃斯函数作为滤波器的传递函数,它的平方幅度函数为: (2-1)式中,为滤波器频率,为3dB截止频率,N表示滤波器的阶次。MATLAB信号处理工具箱为低通模拟巴特沃斯滤波器的产生提供了函数buttap,其调用的格式为:z,p,k=but
21、tap(N),其中,z表示零点,p表示极点,k表示增益,N表示阶次。下面举例设计巴特沃斯低通模拟滤波器:%巴特沃斯低通模拟滤波器clear all;n=0:0.01:2;for i=1:4switch icase 1 N=2;case 2 N=5;case 3 N=10;case 4 N=20;endz,p,k=buttap(N); %函数buttap-设计巴特沃斯低通滤波器b,a=zp2tf(z,p,k); %函数zp2tf-零极点增益模型转换为传递函数模型H,w=freqs(b,a,n); %函数freqs-求解模拟滤波器频率响应magH2=(abs(H).2; %函数abs-取模值函数
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Matlab 数字 虑波器 设计 仿真
