《毕业设计(论文)高通数字滤波器的仿真实现.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)高通数字滤波器的仿真实现.doc(30页珍藏版)》请在三一办公上搜索。
1、高通数字滤波器的仿真实现【摘要】 鉴于滤波器在数字信号处理中的广泛应用以及在Matlab环境下设计滤波器的快捷方便等特性,本文研究了Matlab环境下,数字滤波器的设计与实现。具体实现了IIR(无限脉冲响应)数字滤波器和FIR(有限脉冲响应)数字滤波器。应用MATLAB语言设计数字滤波器时采用直接程序设计法、FDATool以及SPTool信号处理工具箱的设计方法,通过实例,给出了FIR程序设计法和使用信号处理工具箱中SPTool进行设计的仿真图形,并在MATLAB的Simulink环境下,调用所设计的FDATool滤波器进行了仿真。 【关键词】 Matlab,有限脉冲响应,无限脉冲响应,FDA
2、Tool,SPTool。 High pass digital filter simulation【Abstract】 Due to the abroad application of the digital filter in Digital Signal Processing and the convenience of designing filters with Matlab, in this paper, the design and implementation of digital filters using the Matlab toolbox is studied. Both
3、the IIR(Infinite Impulse Response) and FIR(Finite Impulse Response) digital filter are designed and realized.The design methods of direct programming, FDATool interface and SP Tool signal processing toolbox are introduced in designing digital filter with MATLAB in this article. The imulation figures
4、 are given by programming and SPTool signal processing toolbox. Further more, the designed FDA tool filter are called and simulated in SIMULINK【Key Words】 Matlab,FIR Filter,IIR Filter,FDATool,SPTool. 目录第1章 绪论11.1数字滤波器的研究背景与意义11.1.1数字滤波器的应用现状与发展趋势21.1.2数字滤波器的实现方法分析21.2 MATLAB简介31.2.1 MATLAB的语言特点41.2.
5、2 MTALAB的功能5第2章 数字滤波器62.1数字滤波器概述62.1.1数字滤波器分类62.1.2数字滤波器的的技术要求72.2数字滤波器的设计原理82.2.1 IIR数字滤波器的设计方法102.2.2 FIR数字滤波器的设计方法11第3章基于MATLAB的FIR滤波器的实现143.1 FIR滤波器的设计143.1.1直接程序设计法143.1.2窗函数法设计FIR滤波器163.2 FIR滤波器设计与小结183.2.1 FIR滤波器设计实例183.2.2 FIR滤波器设计小结20第4章基于MATLAB的IIR滤波器的实现214.1 IIR滤波器的设计214.1.1典型的IIR数字滤波器的设计
6、214.1.2 Matlab提供的其它设计IIR滤波器的函数234.2 IIR滤波器的设计与小结244.2.1直接法设计IIR滤波器244.2.2 IIR滤波器设计小结25结论26参考文献27致谢28第1章 绪论1.1数字滤波器的研究背景与意义当今,数字信号处理技术正飞速发展,它不但自成一门学科,更是以不同形式影响和渗透到其他学科;它与国民经济息息相关,与国防建设紧密相连;它影响或改变着我们的生产、生活方式,因此受到人们的普遍关注。数字化、智能化和网络化是当代信息技术发展的大趋势,而数字化是智能化和网络化的基础,实际生活中遇到的信号多种多样,例如广播信号、电视信号、雷达信号、通信信号、导航信号
7、、射电天文信号、控制信号、气象信号、遥感遥测信号,等等。上述信号大部分是模拟信号,也有小部分数字信号。模拟信号是自变量的连续函数,自变量可以是一维的,也可以是二维或多维的。大多数情况下一维模拟信号的自变量是时间,经过时间上的离散化(采样)和幅度上的离散化(量化),这类模拟信号便成为一维数字信号。因此,数字信号实际上是用数字序列表示的信号,语音信号经采样和量化,得到的数字信号是一个一维离散的时间序列;而图像信号经采样和量化后,得到的数字信号是一个二维离散空间序列。数字信号处理,就是用数值计算的方法对数字序列进行各种处理,把信号变换成符合需要的某种形式。例如,对数字信号经过滤波以限制他的频带或滤除
8、噪音和干扰,或将他们与其他信号进行分离;对信号进行频谱分析或功率谱分析以了解信号的频谱组成,进而对信号识别;对信号进行某种变换,使之更适合传输、存储和应用;对信号进行编码以达到数据压缩的目的,等等。数字滤波技术是数字信号分析、处理技术的重要分支。无论是信号的获取、传输,还是信号的处理和交换都离不开滤波技术,它对信号安全可靠和有效灵活地传输是至关重要的。在所有的电子系统中,使用最多技术最复杂的要算数字滤波器了,数字滤波器的优劣直接决定产品的优劣。1.1.1数字滤波器的应用现状与发展趋势在信号处理过程中,所处理的信号往往混有噪声,从接收到的信号中消除或减弱噪音是信号处理和传输中十分重要的问题。根据
9、有用信号和噪音的不同特性,提取有用信号的过程称为滤波,实现滤波的系统称为滤波器。在近代电信设备和各类控制系统中,数字滤波器的应用极为广泛,这里只列举部分应用最成功的领域。(1)语音处理语音处理是最早应用数字滤波器的领域之一,也是最早推动数字信号处理理论发展的领域之一。该领域主要包括5个方面的内容:第一,语音信号分析。即对语音信号的波形特征、统计特征、模型参数等进行分析计算;第二,语音合成。即利用专用数字硬件或在通用计算机上运行软件来产生语音;第三,语音识别。即用专用硬件或计算机识别人讲的话,或者识别说话的人;第四,语音增强。即从噪音或干扰中提取被掩盖的语音信号。第五,语音编码。主要用于语音数据
10、压缩,目前已经建立了一系列语音编码的国际标准,大量用于通信和语音处理。近年来,这5个方面都取得可不少的研究成果,并且,在市场上已出现了一些相关的软件和硬件产品。例如,盲人阅读器、哑人语音合成器、口授打印机、语音应答机,各种会说话的仪器和玩具,以及通信和视听产品大量使用的音频编码技术。(2)图像处理数字滤波技术以成功地应用于静态图像和活动图像的恢复和增强、数据压缩、去噪音和干扰、图像识别以及层析X射线摄影,还成功地应用于雷达、声纳、超声波和红外信号的可见图像成像。(3)通信在通信技术领域内,几乎没有一个分支不受到数字滤波技术的影响。信源编码、信道编码、调制、多路复用、数据压缩以及自适应信道均衡等
11、,都广泛应用数字滤波器,特别是在数字通信、网络通信、图像通信、多媒体通信等应用中,离开了数字滤波器,几乎寸步难行。其中,被认为是通信技术未来发展方向的软件无线电技术,更是以数字滤波器为基础。(4)电视数字电视取代模拟电视已是必然趋势。高清晰度电视的普及指日可待,与之配套的视频光盘技术已经形成具有巨大市场的产业;可视电话和会议电视产品不断更新换代。视频压缩和音频压缩技术所取得的成就和标准化工作,促成了电视领域产业的蓬勃发展,而数字滤波器及其相关技术是视频压缩和音频压缩技术的重要基础。(5)雷达雷达信号占有的频带非常宽,数据传输速率也非常高,因而压缩数据量好降低数据传输速率是雷达信号数字处理面临的
12、首要问题。高速数字器件的出现促进了雷达信号处理技术的进步。在现代雷达系统中,数字信号处理部分是不可或缺的,因为从信号的产生、滤波、加工到目标参数的估计和目标成像显示都离不开数字滤波器技术。雷达信号的数字滤波器是当今十分活跃的研究领域之一。(6)生物医学信号处理数字滤波器在医学中的应用日益广泛,如对脑电图和心电图的分析、层析X射线摄影的计算机辅助分析、胎儿心音的自适应检测等。(7)其他领域数字滤波器的应用领域如此广泛,以至于想完全列举他们是根本不可能的,除了以上几个领域外,还有很多其他的应用领域。例如,在军事上被大量应用于导航、制导、电子对抗、战场侦测;在电力系统中被应用于能源分布规划和自动检测
13、;在环境保护中被应用于对空气和噪声干扰的自动检测;在经济领域中被应用于股票市场预测和经济效益分析,等等。1.1.2数字滤波器的实现方法分析数字滤波器的实现,大体上有如下几种方法:(1)在通用的微型机上用软件实现。软件可以由使用者自己编写或使用现成的。这种实现方法速度较慢,多用于教学与科研。(2)用单片机来实现目前单片机的发展速度很快,功能也很强,依靠单片机的硬件环境和信号处理软件可用于工程实际,如数字控制、医疗仪器等。(3)利用专门用于信号处理的DSP片来实现。DSP芯片较之单片机有着更为突出的优点,如内部带有乘法器、累加器,采用流水线工作方式及并行结构,为信号处理技术应用于工程实际提供了可能
14、。1.2 MATLAB简介Matlab是由美国MathWorks公司于1982 年推出的一套高性能的数值计算和可视化软件,它集数值分析、矩阵运算、信号处理和图形显示于一体。在Matlab内部配备了涉及到自动控制、信号处理和计算机仿真等种类繁多的工具箱,所以Matlab的应用非常广泛,它可涉足于数值分析、控制、信号分析和通信等多种领域。Matlab不仅可完成基本代数运算操作,而且还可完成矩阵函数运算,提供丰富的实用函数命令。另外,用户还可以根据自己的需要编写函数。1.2.1 MATLAB的语言特点以下简单介绍一下MATLAB的主要特点:a.语言简洁紧凑,使用方便灵活,库函数极其丰富。b.运算符丰
15、富。由于MATLAB是用C语言编写的,MATLAB提供了和C语言几乎一样多的运算符,灵活使用MATLAB的运算符将使程序变得极为简短。c.MATLAB既具有结构化的控制语句,又有面向对象编程的特性。d.程序限制不严格,程序设计自由度大。例如,在MATLAB里,用户无需对矩阵预定义就可使用。e.程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行。f. MATLAB的图形功能强大。在FORTRAN和C语言里,绘图都很不容易,但在MATLAB里,数据的可视化非常简单。MATLAB还具有较强的编辑图形界面的能力。g.MATLAB的缺点是,它和其他高级程序相比,程序的执行速度较慢
16、。由于MATLAB的程序不用编译等预处理,也不生成可执行文件,程序为解释执行,所以速度较慢。h.功能强大的工具箱是MATLAB的另一特色。MATLAB包含两个部分:核心部分和各种可选的工具箱。j.源程序的开放性。开放性也许是MATLAB最受人们欢迎的特点。除内部函数以外,所有MATLAB的核心文件和工具箱文件都是可读可改的源文件,用户可通过对源文件的修改以及加入自己的文件构成新的工具箱。1.2.2 MTALAB的功能MATLAB包含的内容非常丰富,功能强大,可以概括为以下几个方面:a.可以在多种操作系统下运行,如DOS、Windows 95/98/2000/2000/NT、Compaq Alp
17、ha、LinuxSun Solaris等。b.有超过500种的数学、统计、科学及工程方面的函数,使用简单快捷,并且有很强的用户自定义函数的能力。c. 有强大的图形绘制和可视化功能,可以进行视觉数据处理和分析,进行图形、图像的显示及编辑,能够绘制二维、三维图形,使用户可以制作高质量的图形,从而写出图文并茂的文章。d. 有和用其他高级语言(如C,C+,FORTRAN,JAVA)编写的外部程序相接口的能力,也可把MATLAB程序转换成上述高级语言的子程序。e. 有从外部文件及外部硬件设备读入数据的能力。f .有丰富的网络资源,从相关的Web网站可以直接获得全套的MATLAB联机帮助文件和说明书的电子
18、文档,还可以获得各类技术支持与帮助。g. 有丰富的工具箱toolbox。其工具箱可以分为两大类,即功能性工具箱和科学性工具箱。第2章 数字滤波器2.1数字滤波器概述数字滤波器可以用差分方程、单位取样响应以及系统函数等表示。对于研究系统的实现方法,即它的运算结构来说,用框图表示最为直接。一个给定的输入输出关系,可以用多种不同的数字网络来实现。在不考虑量化影响时,这些不同的实现方法是等效的;但是在考虑量化影响时,这些不同的实现方法性能上就有差异。因此,运算结构很重要,同一个系统函数,运算结构的不同,将会影响系统的精度、误差、稳定性、经济性以及运算速度等许多重要性能。IIR滤波器与FIR滤波器在结构
19、上有自己不同的特点,在设计时需要综合考虑。2.1.1数字滤波器的分类数字滤波器从功能上分类:可分为低通滤波器、高通滤波器、带通滤波器、带阻滤波器。从滤波器的网络结构或者从单位脉冲响应分类:可分为IIR滤波器和FIR滤波器。它们的函数分别为: (2.1) (2.2)公式(2.1)中的H (z)称为N阶IIR滤波器函数,公式(2.2)中的H (z)称为(N-1)阶FIR滤波器函数。IIR数字滤波器和FIR数字滤波器各有优缺点,也各有不同的应用场合。IIR数字滤波器的特性:(1)IIR数字滤波器可以比较容易地实现系统的通带与阻带衰减特性。而在同样的性能要求条件下,IIR滤波器的阶次要比FIR滤波器低
20、得多。因此,在要求计算速度的场合,一般选用IIR滤波器进行滤波。(2)IIR系统不易实现线性相位性,如果对选择性和线性都有要求,IIR滤波器就必须加全能网络进行相位校正,这就增大了滤波器的节数和复杂性,增加了运算成本。所以,IIR滤波器一般只应用于对相位要求不严格的场合。FIR数字滤波器的特性:(1)FIR滤波器具有精确的的线性相位 ,即 FIR 滤波器的系数具有奇对称或偶对称的规律 ,经过FIR滤波器滤波后的信号只是被简单地延迟了个时间步长 ,也就是没有相位失真。因此 ,从要求计算精度的角度来看应选择 FIR滤波器来进行数字滤波。同时,在结构上看,FIR滤波器采用非递归结构,因此FIR系统具
21、有稳定性。(2)由于FIR滤波器传输函数的极点位于原点,要达到相同的选择性,必须采用更高的阶数,这就提高了系统的成本,同时也降低了运算的速度。但是,由于FIR滤波器可以采用FFT,速度可以得到相应的提升。2.1.2数字滤波器的的技术要求我们通常用的数字滤波器一般属于选频滤波器。假设数字滤波器的传输函数用下式表示: (2.3)式中,称为幅频特性函数,称为相频特性函数。幅频特性表示信号通过该滤波器后各频率成分的衰减情况,而相频特性反映各频率通过滤波器后在时间上的延时情况。一般来说,对于IIR滤波器,相频特性不作要求,而对于有线性相位要求的滤波器,一般用FIR滤波器来实现。图2.1表示低通滤波器的幅
22、度特性,和分别称为通带截止频率和阻带截止频率。通带频率范围为,在通带中要求,阻带频率范围为,在阻带中要求,从至称为过渡带。通带内所允许的最大衰减(dB)和阻带内允许的最小衰减(dB)分别为和,分别定义为:公式(2.4)和(2.5). (2.4) (2.5)图2.12.2数字滤波器的设计原理数字滤波器根据其冲激响应函数的时域特性,可分为无限脉冲响应(IIR)滤波器和有限脉冲响应(FIR)滤波器。IIR 滤波器的特征是,具有无限持续时间冲激响应。这种滤波器一般需要用递归模型来实现,因而有时也称为递归滤波器。FIR 滤波器的冲激响应智能持续一段时间,在工程实际中可以采用递归的方式实现,也可以采用非递
23、归的方式实现。数字滤波器设计方法有多种,如双线性变换法、窗函数法、频率抽样法、Chebyshev 逼近法等等。随着MATLAB软件尤其是MATLAB的信号处理工具箱的不断完善,不仅数字滤波器的计算机辅助设计有了可能,而且还可以使设计达到最优化。数字滤波器设计的基本步骤如下:(1)确定指标在设计一个滤波器之前,必须首先确定一些技术指标。这些技术指标需要来制定。在很多实际应用中,例如语音或音频信号处理中,数字滤波器常用来实现选频操作。因此,指标的形式一般确定为频域中幅度和相位的响应。(2)逼近这是因为理想的频率响应是不可能实现的,由于它的幅度响应在频带之间是突变的,因而其单位抽样响应是非因果的、不
24、可实现的,只能对其逼近。逼近所用的系统函数有无限长单位冲激响应(IIR)系统函数与有限长单位冲激响应(FIR)系统函数两种;(3)性能分析和计算机仿真以上两步的结果是得到以差分或系统函数或冲激响应描述的滤波器。根据这个描述就可以分析其频率特性和相位特性,以验证设计结果是否满足指标要求;或者利用计算机仿真实现设计的滤波器,再分析滤波结果来判断。我们在进行滤波器设计时,需要确定其性能指标。一般来说,滤波器的性能要求往往以频率响应的幅度特性的允许误差来表征。以低通滤波器特性为例,频率响应有通带、过渡带、阻带三个范围。在通带内: 1-Ap=|=1 |w|=Wc 在阻带内: |=Ast Wst=|w|=
25、Wc 其中Wc 为通带截止频率,Wst为阻带截止频率,Ap为通带误差,Ast为阻带误差。如图2.2所示:图2.2与模拟滤波器类似,数字滤波器按频率特性划分为低通、高通、带通、带阻、全通等类型,由于数字滤波器的频率响应是周期的,周期为2。各种数字滤波器的幅度频率响应如图2.3所示: 图2.3 2.2.1 IIR数字滤波器的设计方法目前,IIR数字滤波器的设计最通用的方法是借助于模拟滤波器的设计方法。模拟滤波器设计已经有了一套相当成熟的方法,它不但有完整的设计公式,而且还有较为完整的图表供查询。因此,充分利用这些已有的资源将会给数字滤波器的设计带来很大的方便,IIR 数字滤波器的设计步骤是:(1)
26、按一定的规则将给出的数字滤波器的技术指标转换为模拟滤波器的技术指标;(2)根据转换后的技术指标设计模拟低通滤波器;(3)利用频率转换函数将得到的模拟滤波器转换为IIR低通数字滤波器;(4)利用域转换函数将IIR低通滤波器转换为所需技术指标的低通、高通、带通或带阻数字滤波器;s-z 映射的设计方法为:冲激响应不变法、双线性变换法等。双线性变换法是指首先把s平面压缩变换到某一个中介平面s1的一条横带(宽度为2T即从-T到T),然后再利用的关系把s1平面上的这条横带变换到整个z平面。这样s平面与z平面是一一对应关系,消除了多值变换性,也就消除了频谱混叠现象。S平面到z平面的变换可采用: (2.6)
27、(2.7)令,有: (2.8)从s1平面到z平面的变换,即 (2.9)代入上式,得到: (2.10)一般来说,为使模拟滤波器的某一频率与数字滤波器的任一频率有对应关系,可引入待定常数c, (2.11) 则 (2.12)这种s平面与z平面间额映射关系就是双线性变换。2.2.2 FIR数字滤波器的设计方法IIR滤波器7的优点是可以利用模拟滤波器的设计结果,缺点是相位是非线性的,若需要线性相位,则要用全通网络进行校正。FIR 滤波器的优点是可方便的实现线性相位。FIR滤波器单位冲激响应h(n)的特点:其单位冲激响应h(n)是有限长(1=n=N-1),系统函数为: (2.13)在有限z平面有(N-1)
28、个零点,而它的(N-1)个极点均位于原点z=0处。FIR 滤波器线性相位的特点:如果FIR滤波器单位冲激响应为实数,而且满足以下任一条件:偶对称h(n)=h(N-n-1);奇对称h(n)= -h(N-n-1);其对称中心在n=(N-1)/2处,则滤波器具有准确的线性相位。窗函数设计法8:一般是先给定所要求的理想滤波器的频率响应,有导出,我们知道理想滤波器的冲击响应是无限长的非因果序列,而我们要设计的是有限长的FIR滤波器,所以要用有限长序列来逼近无限长序列,设: (2.14)常用的方法是用有限长度的函数w(n)来截取即: (2.15)这里窗函数就是矩形序列R(n),加窗以后对理想低通滤波器的频
29、率响应将产生什么样的影响呢?根据在时域是相乘关系,在频域则是卷积关系: (2.16)其中,为矩形窗谱,是FIR滤波器频率响应。通过频域卷积过程看的幅度函数H(W)的起伏现象,可知,加窗处理后,对理想矩形的频率响应产生以下几点影响:(1)使理想频率特性不连续点处边沿加宽,形成一个过渡带,其宽度等于窗的频率响应的主瓣宽度。(2)在截止频率的两边即过渡带的两边,出现最大的肩峰值,肩峰的两侧形成起伏震荡,其震荡幅度取决于旁瓣的相对幅度,而震荡的多少,则取决于旁瓣的多少。(3)改变N,只能改变窗谱的主瓣宽度,改变W的坐标比例以及其绝对值的大小,但不能改变主瓣与旁瓣的相对比例(此比例由窗函数的形状决定)。
30、(4)对窗函数的要求a、窗谱主瓣尽量窄,以获取较陡的过渡带;b、尽量减小窗谱的最大旁瓣的相对幅度;即能量集中于主瓣,使肩峰和波纹减小,增大阻带的衰减。表2.1是各种窗函数的参数指标:表2.1各种窗函数的比较窗函数旁瓣峰值衰减/db主瓣过渡区带宽阻带最小衰减/db1.矩形窗-134/N-212.汉宁窗-318/N-253.海明窗-418/N-254.布莱克曼窗-5712/N-54频率采样法:窗函数设计是从时域出发,把理想的用一定形状的窗函数截取形成有限长的,来近似理想的,这样得到的频率响应逼近于所要求的理想的频率响应。频率抽样法则是从频域出发,把给定的理想频率响应加以等间隔抽样得到Hd(k),然
31、后以此Hd(k)作为实际FIR滤波器的频率特性的抽样值H(k),即 (2.17)知道H(k)后,由DFT定义可唯一确定有限长序列h(n),利用这N个频域抽样值H(k)同样利用频率内插公式可得FIR滤波器的系数函数H(S),以及频率响应,即频率抽样法内插公式: (2.18)频率抽样法小结:优点:可以在频域直接设计,并且适合于最优化设计。缺点:抽样频率只能等于2/N的整数倍,或等于2/N的整数倍加上/N。因而不能确保截止频率Wc的只有取值,要实现自由地选择截止频率,必须增加抽样点数N,但这又使计算量增大。第3章 基于MATLAB的FIR滤波器的实现3.1 FIR滤波器的设计传统的数字滤波器的设计过
32、程复杂,计算工作量大,滤波特性调整困难,影响了它的应用。利用MATLAB信号处理工具箱(Signal Processing Toolbox)10可以快速有效的设计由软件组成的常规数字滤波器的设计方法。给出了使MATLAB语言进行程序设计和利用信号处理工具箱的FDATool工具进行界面设计的详细步骤。利用MATLAB设计滤波器,可以随时对比设计要求和滤波器特性调整参数,直观简便,极大的减轻了工作量,有利于滤波器的设计最优化。利用MATLAB信号处理工具箱进行FIR滤波器设计有三种方法:程序设计法、FDATool设计法和SPTool设计法。现针对一个混和正弦波信号,设计一个FIR低通滤波器,给出利
33、用MATLAB实现的三种方法:程序设计法、 FDATool设计法和SPTool设计法,以验证滤波器的性能。3.1.1直接程序设计法利用MATLAB界面提供的命令窗口(Command Window)输入需要设计的滤波器源程序,确定后即可输出所要求的滤波器幅频特性曲线。也可以新建M文件,输入程序后保存,在命令窗口(Command Window)中直接输入M文件名,确定后即可。以下以线性相位FIR低通滤波器的设计为例:例1.设数字滤波器的性能指标如下,通带截止频率p = 0.5,阻带截止频率s = 0.66,实际通带波动不大于3dB,最小阻带衰减不小于 50dB。假设一个混频信号,其中f1=3Hz,
34、f2=20Hz。信号采样频率为50Hz。现将原信号与通过滤波器的信号进行比较。根据窗函数最小阻带衰减的特性表2-1,可采用汉宁窗提供大于30dB的衰减。本例选择汉宁窗, 其MATLAB实现程序如下所示:wp=0.5*pi;ws=0.66*pi; %滤波器边界频率wdelta=ws-wp; %过渡带宽N=ceil(8*pi/wdelta) %根据过渡带,计算所用窗函数的最小长度Nw=N;wc=(wp+ws)/2; %截止频率在通带和阻带边界频率的中点n=0:N-1;alpha=(N-1)/2; %滤波器的相位延迟m=n-alpha+eps; %eps为matlab系统精度hd=sin(wc*m)
35、./(pi*m); %理想滤波器脉冲响应win=hanning(Nw); %采用汉宁窗h=hd.*win; %在时域乘积对应于频域的卷积b=h;figure(1)H ,f=freqz(b,1,512,50); %采用50hz的采样频率绘出该滤波器的幅度和相频响应subplot(2,2,1), plot(f,20*log10(abs(H)xlabel(频率/Hz);ylabel(振幅/dB);grid on;subplot(2,2,2) ,plot(f,180/pi*unwrap(angle(H)xlabel(频率/hz);ylabel(相位/0);grid on;f1=3; f2=20; dt
36、=0.02;t=0:dt:3;x=sin(2*pi*f1*t)+cos(2*pi*f2*t); %输入时域信号y=fftfilt(b,x); %给出滤波器的输出subplot(2,2,3),plot(t,x),title(输入信号) %绘输入信号subplot(2,2,4),plot(t,y)hold on; plot(1 1*(N-1)/2*dt,ylim, r) %绘出延迟到的时刻xlabel(时间/s),title(输出信号)程序运行结果如图3.1示:图3.1所设计滤波器的幅频、相频响应及滤波前后的时域波形小结分析:由以上两图可知,该例设计的滤波器通带边界频率wp=0.5,阻带边界频率w
37、s=0.66,对应于50Hz的采样频率通带边界频率为fp=Fs*wp/2=50*0.5/2=12.5Hz,fs=50*0.66/2=16.5Hz。其中,Fs为采样频率。图3.1上面两图中在小于12.5Hz的频段上,几乎看不到下降且具有线性相位即满足通带纹波不大于3dB的要求。在大于16.5Hz的频带上,阻带衰减大于30dB,满足设计要求。图3.1下面两图中给出输入混合信号(包含3Hz和20Hz的信号)以及滤波后的输出信号,通过滤波后只剩下3Hz的信号,20Hz的信号被衰减或滤除,从而实现滤波效果,满足设计要求。由于FIR滤波器所需阶数较高,信号延迟较大,输出信号前面的一段直线就是延迟造成的。相
38、位延迟时间为(N-1)/2*1/Fs=0.49s,程序运行后N取50。3.1.2窗函数法设计FIR滤波器Matlab中,函数fir1和fir2就是基于窗函数方法的。firl函数实现了加窗线性相位FIR数字滤波器设计的经典方法。主要用于常用的标准通带滤波器设计,包括:低通、带通、高通和带阻数字滤波器。b=fir1(n, Wn)可得到n阶低通FIR滤波器,滤波器系数包括在b中,这可表示为。这是一个截止频率为Wn的加汉明窗的线性相位FIR滤波器。如果Wn是一个包含两个元素的向量,Wn=W1 W2,firl返回一个n阶的带通滤波器,其通带为W1WW2。b=fir1(n, Wn, high)设计一个高通
39、滤波器。b=fir1(n, Wn, stop)设计一个带阻滤波器。如果Wn是一个多元素的向量,W=W1 W2 W3 . Wn,函数将返回一个n阶的多通带的滤波器。b=firl (n,Wn, DC-1),使第一频带为通带;b=fir1(n,Wn,DC-0)使第一频带为阻带。对于在Fs/2附近为通带的滤波器如高通或带阻滤波器,n必须是偶数。缺省情况下,firl()使用Hamming窗。可以在参数window中指定其它窗,包括矩形窗、Harming窗、Bartlett窗、 Blackman窗、Kaise窗等。缺省情况下,滤波器被归一化,以使经加窗后的第一个通带的中心幅值刚好是1。使用参数noscal
40、e可以阻止这样做。如图3.2是分别用切比雪夫窗和汉明窗设计的带通滤波器的频率响应,带通滤波器的通带频率(归一化后的频率)为0.25到0.60,阶数为38。设定截止频率和阶数:Wn=0.25,0.60;n=38;使有默认汉明窗的带通滤波器:b1=fir1(n, Wn);使用切比雪夫窗函数的带通滤波器,先输入切比雪夫窗函数:window=chebwin(n+1,40);b2=fir1(n, Wn, window);图3.2从图3.2可以看出,汉明窗函数具有较低的旁瓣幅度,尤其是第一旁瓣幅度;而切比雪夫窗函数具有比较窄的主瓣,相比之下,过渡带也较窄。从分析结果来看,汉明窗函数适用于对阻带衰减有要求的
41、场合,而切比雪夫窗适用于要求较窄的过渡带的场合。函数fir2()也设计加窗的FIR滤波器,但它针对任意形状的分段线性频率响应,这一点在fir1中是受到限制的。B=fir2(n, F, M)设计一个n阶的FIR数字滤波器,其频率响应由F和M指定,滤波器的系数返回在向量B中,向量F和M指定滤波器的采样点的频率及其幅值,F的频率必须在0到1之间,1对应于采样频率的一半。它们必须按递增的顺序从0至1结束。缺省情况下,函数fir2()默认使用的是Hamming窗,可在后面参数中指定其它的窗函数。以下是用fir2()设计的一个多带FIR滤波器,它的频率响应要求如下表3.1:表3.1归一化频率范围幅值f=0
42、.0 - 0.1m =0f=0.1 0.3m =1f=0.3 0.6m =0f=0.6 0.8m =1f=0.8 1.0m =03.2 FIR滤波器设计与小结3.2.1 FIR滤波器设计实例设原始信号为x=sin(2*pi*70*t)+2*sin(2*pi*120*t),抽样频率为Fs=1000Hz,,由于某种原因,信号被白噪声污染,实际获得的信号为xn=x+randn(size(t),要求设计一个FIR滤波器恢复出原始信号。由于白噪声分布在整个频带,所以需要在不衰减原信号的前提下,对整个频带进行滤波,使用最小二乘法设计一个多带滤波器。滤波器设计要求在65/500 75/500(即0.13 0
43、.15)段和115/500 125/500(即0.23 0.25)段频带内的幅度是1,在0 60/500(即0 0.12 )段、80/500 110/500(即0.16 0.22)段、130/500 1(即0.26 1)段频带内的幅度是0。取2秒长度的序列:Fs=1000;t=0:1/Fs:2;先生成相应的信号:x=sin(2*pi*70*t)+2*sin(2*pi* 120*t);加入噪声:xn=x+randn(size(t);滤波器的阶数:n=90;f=0 0.12 0.13 0.15 0.16 0.22 0.23 0.25 0.26 1m=0 0 1 1 0 0 1 1 0 0b=fir1s(n,f,m);滤波器filter的幅频特性如图3.2所示:用滤波器对xn进行滤波:xo=filter(b, l ,xn);图3.3是滤波信号和原信号的比较:图3.2滤波器的幅频特性图3.3滤波前后各信号比较原始信号经过rand()函数加噪污染后,再经过所设计的FIR多带滤波器滤波,得到了滤波信号。从滤波前后各信号波形图来看,滤波信号与原始信号波形是基本一致的,说明所设计的滤波器是有效的;而滤波信号与原始信号之