FIR数字滤波器在MATLAB中的实现-学士论文_第1页
FIR数字滤波器在MATLAB中的实现-学士论文_第2页
FIR数字滤波器在MATLAB中的实现-学士论文_第3页
FIR数字滤波器在MATLAB中的实现-学士论文_第4页
FIR数字滤波器在MATLAB中的实现-学士论文_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

淮北师范大学信息学院 2 012 届学士学位论文 FIR 数字滤波器在 MATLAB 中的 实现 系系别别 : : 专专业业 : : 学学号号: : 姓姓名名: : 指指 导导 教教 师师: : 指导教师职称指导教师职称: : 2012 年5 月10 日 淮北师范大学信息学院 2012 届学士毕业论文FIR 数字滤波器在 MATLAB 中的实现 II FIR 数字滤波器在 MATLAB 中的实现 姓名 学校名邮编 摘要摘要数字滤波器是由数字乘法器、加法器和延时单元组成的一种装置。数字滤 波器的功能是对输入离散信号的数字代码进行运算处理,以达到改变信号频谱的 目的。近年来数字滤波在通信、图像编码、语言编码、雷达等许多领域中有着十 分广泛的应用。 本文首先介绍了数字滤波器的研究背景及其发展现状, 然后介绍了 FIR 数字滤 波器的设计原理。在理解设计方法的基础上,最后基于 MATLAB 软件利用窗函数法 实现了 FIR 数字带通滤波器的设计。仿真结果表明,所设计的滤波器具有良好的 滤波器特性,所设计的指标符合设计任务要求。 关键词关键词MATLAB;FIR 数字滤波器;窗函数;带通滤波器 淮北师范大学信息学院 2012 届学士毕业论文FIR 数字滤波器在 MATLAB 中的实现 III Realization of FIR Digital Filter Based On matlab Name # AbstractDigital Filter is a kind of instrument which is assembled with Digital multiplier, adder, and delay element , the function of the Digital Filter is operating and dealing with the digital code of discrete signal which is inputted to change the frequency spectrum . In recent years , Digital Filter is widely applied to all kinds of areas, such as Signal communication, image coding ,language coding ,radar and so on. This paper firstly introduces the studying background and current developing status of Digital FIR Filter, and then shows its design principle .Finally we realize the design of FIR Bandpass Digital Filter with Window Function based MATLAB software at the basement of understanding design methods. The outcome of simulation indicates that the Digital Filter does well in meeting the filter characters, at the same time ,indexes from the filter complies with the design requirements. KeywordsMATLAB; FIR Filter; Window Function Design; Band Pass Filter 淮北师范大学信息学院 2012 届学士毕业论文FIR 数字滤波器在 MATLAB 中的实现 IV 目次 1 引 言.1 1.1 数字滤波器的研究背景和意义.1 1.2 数字滤波器的发展及其现状.1 1.3 数字滤波器的实现方法.2 1.4 MATLAB 简介. 2 2 FIR 数字滤波器的设计原理.4 2.1 FIR 数字滤波器的特点.4 2.2 FIR 数字滤波器的实现结构. 4 2.3 窗函数法的设计原理.7 3 FIR 数字滤波器的设计与实现.9 3.1 几种常用的窗函数.9 3.2 利用窗函数设计 FIR 带通滤波器的设计步骤.12 3.3 基于 MATLAB 的 FIR 数字带通滤波器的仿真实现. 13 结论.17 参考文献.18 致谢.19 淮北师范大学信息学院 2012 届学士毕业论文FIR 数字滤波器在 MATLAB 中的实现 1 1 引 言 在线性系统中,信号滤波过程一般定义为,当输入波形通过一个系统时,对 它作一个线性运算,在时间域上这种变换如像内插,外插微分和积分,在频率域 上这种变换则如低通滤波或平滑,带通滤波,谱设计和谱分析。如模拟滤波器对 连续时间信号的这种运算,在数学上是用线性常系数微分方程确定的。用拉普拉 斯变换可在 S 域内进行这些运算的分析。用傅立叶变换则在 f 域内分析。同样的, 可用常系数线性方程来定义离散时间信号的线性变换,并且用二变换来分析和合 成离散时间滤波器1。 1.1 数字滤波器的研究背景和意义 当今,数字信号处理技术正飞速发展,它不但自成一门学科,更是以不同形 式影响和渗透到其他学科;它与国民经济息息相关,与国防建设紧密相连;它影 响或改变着我们的生产、生活方式,因此受到人们普遍的关注。 数字化、智能化和网络化是当代信息技术发展的大趋势,而数字化是智能化 和网络化的基础,实际生活中遇到的信号多种多样,例如广播信号、电视信号、 雷达信号、通信信号、导航信号等等。上述这些信号大部分是模拟信号,也有小 部分是数字信号。模拟信号是自变量的连续函数,自变量可以是一维的,也可以 是二维或多维的。大多数情况下一维模拟信号的自变量是时间,经过时间上的离 散化(采样)和幅度上的离散化(量化) ,这类模拟信号便成为一维数字信号。因 此,数字信号实际上是数字序列表示的信号,语音信号经采样和量化后,得到的 数字信号是一个一维离散时间序列;而图像信号的经采样和量化后,得到的是数 字信号是一个二维离散空间序列2。 数字滤波技术是数字信号分析、处理技术的重要分支。无论是信号的获取、 传输,还是信号的处理和交换都离不开滤波技术,它对信号安全可靠和有效灵活 地传输时至关重要的。在所有的电子系统中,使用最多技术最复杂的要算数字滤 波器了。数字滤波器的优劣直接决定产品的优劣。 1.2 数字滤波器的发展及其现状 数字滤波是从 20 世纪 60 年代发展起来的,当时主要采用计算机模拟的方法 研究数字滤波问题。到了 70 年代,开始将微处理器应用于数字滤波。但是由于微 处理器速度不高,在很多场合都难以实现实时处理。随着 VLSI 技术的发展,使用 淮北师范大学信息学院 2012 届学士毕业论文FIR 数字滤波器在 MATLAB 中的实现 2 硬件来实现数字滤波器已成为可能。80 年代,通用数字信号处理器的成熟和大量 涌现,使得音频范围内数字滤波技术迅速得到广泛的应用。近些年来,除了不断 提高通用信号处理器的速度和功能外,还出现了许多工作频率达 100MHZ 以上的专 用芯片和积木式部件,从而使数字滤波技术进入视频实时处理阶段3。 数字滤波在通信、图像编码、语言编码、雷达等许多领域中有着十分广泛的 应用。目前,数字信号滤波器的设计图像处理、数据压缩等方面的应用取得了令 人瞩目的进展和成就。近年来迅速发展起来的小波理论,由于其局部分析性能的 优异在图像处理中的应用研究,尤其是在图像压缩、图像去噪等方面的应用研究。 1.3 数字滤波器的实现方法 数字滤波器在语言信号处理、图像信号处理、医学生物信号处理以及其他应 用领域都得到了广泛应用。数字滤波器的实现,大体上有如下几种方法: 1. 用单片机来实现。 目前单片机的发展速度很快,功能也很强依靠单片机的硬件环境和信号处理 软件可用于工程实际,如数字控制,医疗仪器等。 2. 用 DSP 来实现。 DSP 芯片较之单片机有着更为突出的优点,如内部带有乘法器,累加器,采用 流水线工作方式及并行结构,多线程,速度快,配有适用于信号处理指令等,DSP 芯片的问世及飞速发展,为信号处理技术应用于工程实际提供了可能。 3. 在通用的微型计算机上用软件的方法来实现。 软件可以由自己编写或者使用现成的。自 IEEE DSP Comm 于 1979 年出第一 个信号处理软件包以来,国外的研究机构也陆续推出不同语言不同用途的信号处 理软件包4。MATLAB 软件具有良好的工作平台及编程环境、简单易用的程序语言、 强大的科学计算机数据处理能力和出色的图形处理功能等。因此,本文主要采用 MATLAB 软件来实现 FIR 数字滤波器的设计。 1.4 MATLAB 简介 MATLAB 是由美国 Mathworks 公司发布的主要面对科学计算、可视化以及交互 式程序设计的高科技计算环境5。它将数值分析、矩阵计算、科学数据可视化以及 非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境 中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一 种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如 C、 淮北师范大学信息学院 2012 届学士毕业论文FIR 数字滤波器在 MATLAB 中的实现 3 Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。 MATLAB 和 Mathematica、Maple 并称为三大数学软件。它在数学类科技应用软 件中在数值计算方面首屈一指。MATLAB 可以进行矩阵运算、绘制函数和数据、实 现算法、创建用户界面、连 接其他编程语言的程序等,主要应用于工程计算、控 制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域6。 MATLAB 的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式 十分相似,故用 MATLAB 来解算问题要比用 C,FORTRAN 等语言完成相同的事情简 捷得多,并且 MATLAB 也吸收了像 Maple 等软件的优点,使 MATLAB 成为一个强大 的数学软件。在新的版本中也加入了对 C,FORTRAN,C+,JAVA 的支持。可以直 接调用,用户也可以将自己编写的实用程序导入到 MATLAB 函数库中方便自己以后 调用,此外许多的 MATLAB 爱好者都编写了一些经典的程序,用户可以直接进行下 载就可以用。 MATLAB 具有以下特点和优势: 1.高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱 出来。 2.具有完备的图形处理功能,实现计算结果和编程的可视化。 3.友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握。 4.功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等) ,为用户提供 了大量方便实用的处理工具7。 淮北师范大学信息学院 2012 届学士毕业论文FIR 数字滤波器在 MATLAB 中的实现 4 2 FIR 数字滤波器的设计原理 FIR 滤波器设计的任务是选择有限长度的 nh, 使传输函数 jw eH满足一定的 幅度特性和线性相位要求。 由于 FIR 滤波器很容易实现严格的线性相位, 所以 FIR 数字滤波器设计的核心思想是求出有限的脉冲响应来逼近给定的频率响应。 设计过程一般包括以下三个基本问题8: (1) 根据实际要求确定数字滤波器性能指标; (2) 用一个因果稳定的系统函数去逼近这个理想性能指标; (3) 用一个有限精度的运算去实现这个传输函数。 2.1 FIR 数字滤波器的特点 FIR 数字滤波器相比较于 IIR 数字滤波器有以下的特点: (1) 单位抽样响应 h(n)是有限长的,因此 FIR 数字滤波器一定是稳定的。 (2) 经延时,h(n)总可变成因果序列,所以 FIR 数字滤波器总可以由因果系 统实现。 (3) h(n)为有限长,可以用 FFT 实现 FIR 数字滤波器。 (4) FIR 的系统函数是 1 Z的多项式,故 IIR 的方法不适用。 (5) FIR 的相位特性可以是线性的,因此,它有更广泛的应用。 2.2 FIR 数字滤波器的实现结构 FIR 滤波器的传递函数一般有如下形式: 1 0 )()( N n n znhzH (1) 其基本结构有以下几种:直接型,级联型,线性相位型,频率采样型。 1. 直接型 直接型也称卷积型或横截型,称为卷积型,是因差分方程是信号的卷积形式; 称为横截型,是因为滤波器是一条输入 x(n)延时链的横向结构。直接由差分方程 可画出对应的网络结构。其 FIR 滤波器的直接型结构结构图如图 1 所示,FIR 滤波 器的直接型转置结构如图 2 所示。 1 0 1 0 )()()()( N i N n r inxnhrnxbny (2) 式中, r b为实数;x(n)为输入序列,y(n)为输出序列,h(n)单位采样响应。 淮北师范大学信息学院 2012 届学士毕业论文FIR 数字滤波器在 MATLAB 中的实现 5 直接型结构的优点是:简单直观,乘法运算量较少;缺点是,调整零点较难。 )(nx ) 1 (h )0(h )2(h )2N(h ) 1N(h 1 z 1 z 1 z 1 z 图 1FIR 滤波器的直接型结构(一) 图 2FIR 滤波器的直接型转置结构(二) 2. 级联型(串联型) 当需要控制滤波器的传输零点时,可将传递函数分解为二阶实系数因子的形 式: 2/ 1 2 2 1 10 )()( N k kkk zzzH(3) 式中,H(z)为 h(n)的 z 变换; k0 、 k1 、 k2 为实数。级联型结构如图 3 所示。 图 3FIR 滤波器的级联型结构 该结构的优点是:可以分别控制每个子系统的零点;缺点是,所需要的系数 直接型的 H(z)多,乘法运算多于直接型。 3 线性相位型 FIR 滤波器的重要特点是可设计成具有严格线性相位的滤波器,此时 H(z)满 足偶对称或奇对称条件。其单位冲击响应有如下特性: )1()(nNhnh(4) 当 N 为偶数时, 12/ 0 )1( )()( N n nNn zznhzH (5) 其网络结构(信号流图)如图 4(a)所示。 当 N 为奇数时, 淮北师范大学信息学院 2012 届学士毕业论文FIR 数字滤波器在 MATLAB 中的实现 6 ) 2 1 ( 12/ 0 )1( ) 2 1 ()()( n N n nNn z N hzznhzH (6) 其网络结构(信号流图)如图 4 (b)所示。 ()x n 1 z 1 z 1 z 1 z 1 z 1 z (0)h (1)h(2)h 2 (1) N h2 () N h ()y n (a) (b) 图 4线性相位 FIR 滤波器的直接型结构 4. 频率采样型 频率采样型结构是一种用系数将滤波器参数化的一种实现结构。一个有限长 序列可以由相同长度频域采样值唯一确定。系统函数在单位圆上作 N 等分取样就 是单位取样响应 h(n)的离散傅里叶变换 H(k)。H(k)与系统函数之间的关系可用内 插公式表示: 1 0 1 1 )( )1 ( 1 )( N k k N N zW kH z N zH (7) 由上看出,FIR 系统可用一子 FIR 系统和一子 IIR 系统级联而成。 其网络结构(信号流图)如图 5 所示。 图 5FIR 滤波器的频率采样型结构 淮北师范大学信息学院 2012 届学士毕业论文FIR 数字滤波器在 MATLAB 中的实现 7 频率采样型结构的优点有: (1) 选频性好,适于窄带滤波,这时大部分 H(k)为零,只有较少的二阶子网 络。 (2) 不同的 FIR 滤波器,若长度相同,可通过改变系数用同一个网络实现。 (3) 复用性好。 频率采样型结构的缺点: (1) 具体实现时难免存在误差,零、极点可能不能正好抵消,造成系统不稳 定。 (2) 结构复杂,采用的存贮器多9。 2.3 窗函数法的设计原理 FIR 数字滤波器的设计主要有三种设计方法:窗函数法、频率抽样法、切比雪 夫逼近法。鉴于窗函数法的原理简单明了、选择性多、易于实现的优点等。本文 主要运用窗函数法来进行设计。以下就有关窗函数法的基本原理进行简单介绍。 设希望逼近的滤波器频率响应函数为)( j d eH,其单位脉冲响应是)(nhd。 nj n d j d enheH )()((8) deeHnh njj dd c c )(2/1)( (9) 如果能够由已知的)( j d eH求出)(nhd, 经过 Z 变换可得到滤波器的系数函数。 但通常以理想滤波器作为)( j d eH,其幅度特性逐段恒定,在边界频率处有不连续 点,因而)(nhd是无限时宽的,且是非因果序列。例如,线性相位理想低通滤波器 的频率响应函数)( j d eH为: )( j d eH= ww wwe c c jwa | 0 (10) 其单位脉冲响应)(nhd为: n n dee c njj c c sin 2 1 = nhd (11) 由上式看到,理想低通滤波器的单位脉冲响应)(nhd是无限长,且是非因果序 列。)(nhd的波形如图 6 所示。为了构造一个长度为 N 的第一类线性相位 FIR 滤波 器,只有将)(nhd截取一段,并保证截取的一段关于 n=(N-1)/2,偶对称,设截取的 一段用 h(n)表示,即: 淮北师范大学信息学院 2012 届学士毕业论文FIR 数字滤波器在 MATLAB 中的实现 8 nRnh Nd )(h(n) (12) 式中,)(n N R是一个矩形函数,长度为 N,波形如图所示。由该图 7 可知,当取 值为(N-1)/2 时,截取的一段 h(n)关于 n=(N-1)/2,偶对称,保证所设计的滤波器 具有线性相位。 我们实际设计的滤波器的单位脉冲响应为)(nhd,长度为 N,其系数函数为 H(z) : n N N zzH 1 0 h(n)((13) 这样用一个有限长的序列 h(n)去代替)(nhd,肯定会引起误差,表现在频域就 通常所说的吉布斯效应。该效应引起的过渡带加宽以及带通和阻带内的波动,尤 其使阻带的衰减小,从而满足不了技术上要求,这种吉布斯效应是由于将)(nhd直 接截取引起的,因此,也成为截断效应10。 图 6 窗函数设计法的时域波形 图 7 窗函数设计法的时域波形 淮北师范大学信息学院 2012 届学士毕业论文FIR 数字滤波器在 MATLAB 中的实现 9 3 FIR 数字滤波器的设计与实现 FIR 数字滤波器以其良好的线性特性被广泛应用于现代电子通信系统中, 是数 字信号处理的重要内容之一。 Matlab 软件含有多种现成的函数和工具箱,在滤波器 设计时只需要调用这些窗函数修改关键数据即可实现不同要求的滤波器设计 11。 本文主要介绍的是采用窗函数法设计实现 FIR 带通滤波器。 3.1 几种常用的窗函数 由上面的分析可知,窗函数法的设计关键是窗函数的选择。实际应用中比较 常用的窗函数有: 矩形窗函数、 三角形(Bartlett)窗函数、汉宁(Hanning)窗函数、 哈明(Hamming)窗函数、布莱克曼(Blackman)窗函数和凯塞(Kaiser)窗函数。下面 首先介绍这些窗函数的特点。 (1)矩形窗(Rectangle Window): 窗函数的表达式: )(nnRN R 其频率响应为: )1( 2 1 2 sin 2 sin e Nj j R e N W 其幅度函数为: 2 sin 2 sin N WRg (2)三角形窗(Bartlett Window) : 窗函数的表达式: 11 2 1 1 2 1 0 1 2 2 1 2 NnN Nn N n N n eW j B 其频率响应为: 2 12 ) 4 sin(/) 4 sin( 2 N j j Bg e N N eW (3)汉宁(Hanning)窗:(升余弦窗) 窗函数的表达式: nR N n n NHn 1 2 cos1 2 1 )( 频率响应为: 2 1 N j Hng j Hn eWeW N j R N j R j R j eWeWeWeW 22 25. 05 . 0 淮北师范大学信息学院 2012 届学士毕业论文FIR 数字滤波器在 MATLAB 中的实现 10 (4)哈明(Hamming)窗:(改进的升余弦窗) 窗函数的表达式:)( 1 2 cos0.46-54. 0)( Hm nR N n n N 其频率响应为: 1 2 1 2 m 23. 054. 0e N j R N j R j R j H eWeWeWW 其幅度响应为: 1 2 ) 1 2 (23. 054. 0 m N W N WWW RRRH (5)布拉克曼(Blackman)窗: 窗函数的表达式: nR N n N n n NB 1 4 cos08. 0 1 2 cos5 . 042. 0)( 1 其频率响应为: N j R N j R N j R N j R j R j B eWeWeWeWeWeW 4422 1 04. 025. 042. 0 其幅度响应为: ) 1 4 () 1 4 (0.04 ) 1 2 () 1 2 (25. 0)(42. 0)( Rglg N W N W N W N WWW RgRg RgRgB (6)凯塞(Kaiser)窗: 窗函数的表达式: 0 2 0 1 2 11 )( I N n I nw 0nN-1,其余 w(n)=0 其中 xI0为零阶贝塞尔函数: 2 0 0 ! ) 2 ( k k k k xI ,为主瓣宽度参数。 淮北师范大学信息学院 2012 届学士毕业论文FIR 数字滤波器在 MATLAB 中的实现 11 这几种窗函数的参数比较如表 1 所示。 表 1六种窗函数的基本参数 窗函数旁瓣峰值幅度/dB过渡带宽阻带最小衰减/dB 矩形窗-134/N-12 三角形窗-258/N-25 汉宁窗-318/N-44 哈明窗-418/N-53 布莱克曼窗-5712/N-74 凯塞窗-5710/N-80 窗函数的选择原则是: (1)具有较低的旁瓣幅度,尤其是第一旁瓣幅度; (2)旁瓣幅度下降速度要大,以利增加阻带衰减; (3)主瓣的宽度要窄,以获得较陡的过渡带12。 通常上述三点很难同时满足。当选用主瓣宽度较窄时,虽然得到较陡的过渡 带,但通带和阻带的波动明显增加:当选用最小的旁瓣幅度时,虽能得到匀滑的 幅度响应和较小的阻带波动,但过渡带加宽。因此,实际选用的窗函数往往是它 们的折衷。在保证主瓣宽度达到一定要求的条件下,适当牺牲主瓣宽度来换取旁 瓣波动的减少。 淮北师范大学信息学院 2012 届学士毕业论文FIR 数字滤波器在 MATLAB 中的实现 12 3.2 利用窗函数设计 FIR 带通滤波器的设计步骤 本文以带通滤波器的设计为例,介绍窗函数法的实现。用窗函数法设计 FIR 数字滤波器的步骤如下: 1 根据对阻带衰减及过渡带的指标要求,选择窗函数的类型,并估计窗口 长度 N。 先按照阻带衰减选择窗函数类型。 原则是保证阻带衰减满足要求的情况下, 尽量选择主瓣窄的窗函数。然后根据过渡带宽度估计窗口长度 N。待求滤波器的过 渡带宽度 t B近似等于窗函数主瓣宽度,切近似与窗口长度 N 成反比,N t A/B,A 取决于窗口类型,例如,矩形窗 A=4,哈明窗的 A=8等。 2 构造希望逼近的频率响应函数 j eHd,即 j eHd= 2/1 dg Nj eH (14) 选择 j eHd为线性相位理想滤波器(理想低通、理想高通、理想带通、理 想带阻) 。以带通滤波器为例, dg H应满足: 其他 hl H 0 1 dg (15) 3 计算 n d h。如果给出待求滤波器的频响函数 j eHd,那么单位脉冲响应 用下式求出: deeHn njj dd 2 1 h (16) 如果 j eHd较复杂,或者不能用封闭公式表示,则不能用上式求出 n d h。 我们可以对 j eHd从=0 到=2采样 M 点,采样值为 k M j dM eHkH 2 d , k=0,1,2, ,M-1,进行 M 点到 IDFT(IFFT),得到: M dMdM KHIDFTn h(17) 根据频域采样理论, n dM h与 n d h应满足如下关系: nRrMnhn MddM r h(18) 因此,如果 M 选的较大,可以保证在窗口内 n dM h有效逼近 n d h。对(15) 式给出的线性相位理想带通滤波器作为 j eHd,可求出单位脉冲响应 n d h: 2 1-N sinsin h h n nwnw n L d (19) 淮北师范大学信息学院 2012 届学士毕业论文FIR 数字滤波器在 MATLAB 中的实现 13 3.3 基于 MATLAB 的 FIR 数字带通滤波器的仿真实现 实例:用窗函数法设计 FIR 数字带通滤波器,带通滤波器的指标如下:通带 截止频率rad p 4 . 0 1 ,rad ph 6 , 0;阻带截止频率 rad s 2 , 0 1 ,rad sh 8 , 0;通带最大衰减dB p 1 1 ,dB ph 1;阻带最小衰 减dB s 60 1 ,dB sh 60;过渡带rad ps 2 . 02 . 04 . 0。 依次采用矩形窗、 布莱克曼窗、 汉宁窗和哈明窗进行设计。 仿真结果如图 8-11 所示。 实现程序如下: clear all;close all;clc; wpl=0.4*pi;wph=0.6*pi;wsl=0.2*pi;wsh=0.8*pi; wd1=(wpl+wsl)/2;wd2=(wph+wsh)/2; Bt=min(abs(wsl-wpl),abs(wsh-wph); N=ceil(11*pi/Bt); wn=wd1/pi,wd2/pi; h=fir1(N-1,wn,bandpass, boxcar (N); */ h=fir1(N-1,wn,bandpass,blackman(N);/ */ h=fir1(N-1,wn,bandpass,hanning(N);/ */ h=fir1(N-1,wn,bandpass,hamming(N);/ wd=(wd2-wd1)/2;w0=0.5*pi; M=(N-1)/2;nn=-M:M;n=nn+eps; hd=2*sin(wd*n).*cos(w0*n)./(pi*n);%理想冲激响应 w= boxcar (N);*/w= blackman (N);/ */W= hanning(N);/ */w= hamming (N);/ H=20*log10(abs(fft(h,1024);% 实际滤波器的分贝幅度特性 HH=H(513:1024) H(1:512); subplot(221),stem(nn,hd,k); xlabel(n);title(a)理想冲激响应);axis(-30 30 -0.4 0.5); subplot(222),stem(nn,w,k);axis(-30 30 -0.1 1.2); title(b)矩形窗);xlabel(n);*/ title(b)布莱克曼窗);xlabel(n);/ */ title(b)汉宁窗);xlabel(n);/ */ title(b)哈明窗);xlabel(n);/ 淮北师范大学信息学院 2012 届学士毕业论文FIR 数字滤波器在 MATLAB 中的实现 14 subplot(223),stem(nn,h,k); axis(-30 30 -0.4 0.5);xlabel(n);title(c)实际冲激响应); w=(-512:511)/511; subplot(224),plot(w,HH,k); axis(-1.2 1.2 -140 20);xlabel(omega/pi);title(d)滤波器分贝幅度特性); set(gcf,color,w); 图 8 带通滤波器仿真图(矩形窗) 图 8 为选用矩形窗窗设计带通滤波器的仿真结果图。图 8(a)表示所要设计 的滤波器的冲激响应图,图 8(b)为所选用的窗函数矩形窗。图 8(c)为加 窗后的实际冲击响应。图 8(d)为设计得到的带通滤波器的幅度损耗函数图。由 图可以看出,所设计的滤波器具有良好的带通滤波特性,满足设计任务要求。 矩形窗属于时间变量的零次幂窗。矩形窗使用最多,习惯上不加窗就是使信号 通过了矩形窗。这种窗的优点是主瓣比较集中,缺点是旁瓣较高,并有负旁瓣, 导致变换中带进了高频干扰和泄漏,甚至出现负谱现象。 淮北师范大学信息学院 2012 届学士毕业论文FIR 数字滤波器在 MATLAB 中的实现 15 图 9 带通滤波器仿真图(布莱克曼窗) 图 9 为选用布莱克曼窗设计带通滤波器的仿真结果图。图 9(a)表示所要设 计的滤波器的冲激响应图,图 9(b)为所选用的窗函数布莱克曼窗。图 9(c) 为加窗后的实际冲击响应。图 9(d)为设计得到的带通滤波器的幅度损耗函数图。 由图可以看出,所设计的滤波器具有良好的带通滤波特性,满足设计任务要求。 布莱克曼窗增加一个二次谐波余弦分量,可进一步降低旁瓣,但主瓣宽度进一 步增加,增加 N 可减少过渡带。布莱克曼窗设计的阻带最小衰减最大,达-74dB, 但过渡带最宽,约为矩形窗的三倍。 图 10 为选用汉宁窗设计带通滤波器的仿真结果图。图 10(a)表示所要设计 的滤波器的冲激响应图,图 10(b)为所选用的窗函数汉宁窗。图 10(c)为 加窗后的实际冲击响应。图 10(d)为设计得到的带通滤波器的幅度损耗函数图。 由图可以看出,所设计的滤波器具有良好的带通滤波特性,满足设计任务要求。 汉宁窗主瓣加宽并降低,旁瓣则显著减小,从减小泄漏观点出发,汉宁窗优于 矩形窗但汉宁窗主瓣加宽,相当于分析带宽加宽,频率分辨力下降。 淮北师范大学信息学院 2012 届学士毕业论文FIR 数字滤波器在 MATLAB 中的实现 16 图 10 带通滤波器仿真图(汉宁窗) 图 11 带通滤波器仿真图(哈明窗) 图 11 为选用哈明窗设计带通滤波器的仿真结果图。图 11(a)表示所要设计 的滤波器的冲激响应图,图 11(b)为所选用的窗函数哈明窗。图 9(c)为 加窗后的实际冲击响应。图 11(d)为设计得到的带通滤波器的幅度损耗函数图。 由图可以看出,所设计的滤波器具有良好的带通滤波特性,满足设计任务要求。 哈明窗是对汉宁窗的改进,只是加权系数不同。哈明窗加权的系数能使旁瓣 达到更小。在主瓣宽度(对应第一零点的宽度)相同的情况下,旁瓣进一步减小, 可使 99.96%的能量集中在主瓣内。 淮北师范大学信息学院 2012 届学士毕业论文FIR 数字滤波器在 MATLAB 中的实现 17 结论 本文首先介绍了数字滤波器的研究背景及其发展现状, 然后介绍了 FIR 数字滤 波器的设计原理。在理解设计方法的基础上,最后基于 MATLAB 软件利用窗函数法

温馨提示

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

最新文档

评论

0/150

提交评论