基于Matllab的FIR数字滤波器的设计.doc

上传人:文库蛋蛋多 文档编号:4141544 上传时间:2023-04-07 格式:DOC 页数:24 大小:387.50KB
返回 下载 相关 举报
基于Matllab的FIR数字滤波器的设计.doc_第1页
第1页 / 共24页
基于Matllab的FIR数字滤波器的设计.doc_第2页
第2页 / 共24页
基于Matllab的FIR数字滤波器的设计.doc_第3页
第3页 / 共24页
基于Matllab的FIR数字滤波器的设计.doc_第4页
第4页 / 共24页
基于Matllab的FIR数字滤波器的设计.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《基于Matllab的FIR数字滤波器的设计.doc》由会员分享,可在线阅读,更多相关《基于Matllab的FIR数字滤波器的设计.doc(24页珍藏版)》请在三一办公上搜索。

1、青海民族大学毕 业 论 文(设计)题 目:基于MATLAB的FIR数字滤波器的设计作 者: 陈 龙 玉 毕业届期: 2 0 1 0 届 指导教师: 陈 善 继 院 系: 物理与电子信息工程学院 专 业: 通 信 工 程 2010 年5月5日目 录摘要3Abstract4第1章 绪论51.1 MATLAB语言5 1.1.1 MATLAB语言简介5 1.1.2 MATLAB软件组成51.2 滤波器简介51.2.1数字滤波器6 1.2.2数字滤波器的分类6 1.2.3 FIR数字滤波器的技术指标7 1.2.4数字滤波器的优点7第2章 FIR数字滤波器的设计条件及步骤 7 2.1 FIR数字滤波器的设

2、计条件8 2.2 FIR数字滤波器设计的步骤8第3章 FIR滤波器的设计方法及各方法步骤9 3.1 FIR数字滤波器的设计方法定义 9 3.2 FIR滤波器各种设计方法介绍9 3.2.1窗函数法设计法FIR滤波器9 3.2.1.1 FIR滤波器常用的窗函数10 3.2.2频率采样法设计FIR数字滤波器12 3.2.3等波纹最佳逼近法设计FIR数字滤波器13第四章 FIR数字滤波器窗函数法的MATLAB程序实现134.1利用窗函数法设计FIR数字滤波器13 4.1.1利用窗函数法设计FIR数字低通滤波器13 4.1.2利用用窗函数法设计FIR数字高通滤波器15 4.1.3利用窗函数法设计FIR数

3、字带阻滤波器164.2用频率采样法设计FIR数字滤波器174.3利用逼近法设计FIR带阻滤波器194.4 MATLAB仿真21结束语 22致谢 22参考文献 23基于Matllab的FIR数字滤波器的设计摘 要数字滤波器是一种用来过滤时间离散信号的数字系统, 是数字信号处理中的重要组成部分。本文主要介绍了MATLAB软件的特点,简单地讲述了频率采样法、等波纹逼近法设计FIR滤波器的原理及条件,重点讲述了采用各种窗函数法来实现FIR滤波器的设计,并通过MATLAB程序实现了仿真与验证。MATLAB语言与设计理论相结合,来设计FIR数字滤波器, 不但使设计结果更加直观, 而且提高了滤波器的设计精度

4、,从而更好地达到预期效果。关 键 词MATLAB语言 滤波器 数字滤波器 窗函数法 频率抽样法 等波纹实现法AbstractThe Digital Filter is a time discrete signal that used to filt the number of system.It is the most important part in digital signal processing components. This paper describes the characteristics of MATLAB software,it simply tells us that

5、 the principles and conditions of the method of Frequency sampling and other FIR filter design ripple approximation,talks us how to realize FIR filter design with some kinds of window functions,and implements simulation and verification by MATLAB language.It is more intuitive and improved the accura

6、cy of the filter that MATLAB language combined with design theory. It better achieves the desired result.KeywordsMATLAB software Filter Digital filter Window function Method of frequency sampling Realization of same corrugate第1章 绪 论1.1 MATLAB语言1.1.1 MATLAB语言简介MATLAB是MathWorks公司于1982年推出的一套高性能的数值计算软件,

7、集数值分析、矩阵运算、信号处理和图形显示于一体,功能强大,编程效率高。作为强大的科学计算语言平台,它几乎能够满足所有的计算需求1。MATLAB为用户提供了具有条件控制、函数调用、数据输入输出及面向对象等特性的高层的、完备的编程语言。MATLAB语言语法简单,程序调试和维护容易,其编程效率远远高于BASIC、PISCAL及C等高级语言。利用MATLAB软件设计滤波器,可以随时对比设计要求,对滤波器特性进行参数调整,直观简便,极大的减轻了工作量,有利于滤波器设计的最优化。1.1.2 MATLAB软件组成MATLAB软件包括五个主要部分:开发环境:开发环境是帮助用户使用MATLAB函数和文件的工具的

8、集合。开发环境包括MATLAB桌面及其命令窗口、命令记录、帮助浏览器、工作平台、文件和搜索路径等。MATLAB数学函数库:该库收集了大量的计算算法。包括基本函数(求和、三角运算、复杂算术等)和复杂函数(矩阵求逆、求矩阵特征值、贝塞尔函数和快速傅立叶变换等)等等MATLAB语言:MATLAB语言是一种包括流程控制语句、函数、数据结构、输入/输出和面向对象编程方式的高级矩阵/数组语言,该语言能够通过与其它MATLAB系统组成部分之间的交互式功能来完成非常复杂的计算任务。图形句柄:图形句柄即MATLAB的图形系统,该系统既包括二维和三维数据的可视化、图像处理、动画和图形描述等高级命令,又包括允许用户

9、完全自定义图形,并在MATLAB应用程序中建立自己的图形界面的低级命令。MATLAB应用程序接口API:API是允许用户编写C、FORTIULN和MATLAB接口程序的系统库,该库中包含一些调用工具,其它应用程序能够通过动态链接、作为计算引擎、读写MAT文件三种形式来使用这些工具以调用MATLAB程序。MATLAB最初是单纯用于开发矩阵计算的,但经过这些年的迅速发展,MATLAB已经成为一种高速的工程计算语言,在数值计算、数据处理、自动控制、图像处理、神经网络、小波分析等方面应用广泛。MATLAB还采用了一组被称为工具箱的特殊应用解答集。MATLAB的工具箱能够解决许多特殊的问题。例如,信号处

10、理、自动控制、神经网络、模糊逻辑、小波变换、系统仿真等。1.2 滤波器简介滤波器是各种电子产品的重要部件,其主要功能是实现各种电信号的提取、分离及抑止干扰。随着电子技术的飞速发展,电子产品的应用领域发生着日新月异的变化2。由于电子产品门类及使用频段的不断扩展,各种电子设备之间的干扰也日趋严重。因此,滤波器不但是确保电子产品本身正常可靠工作的重要器件,而且是减少相互影响、确保正常工作环境的重要器件。1.2.1数字滤波器数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域滤波的目的。数字滤波器本质上是用一种数值运算,改变输入信号中所含频率分量的相对比例,滤除某些频率

11、分量。滤波器设计的任务,是就根据预先规定的技术指标,选择一组系数,使滤波器的性能满足要求。数字滤波器用N阶差分方程来描述:(1)相应的系统函数为:(2)1.2.2数字滤波器的分类按照不同的分类方法,数字滤波器分为许多种类。但是,总起来说可以分成两大类:经典滤波器和现代滤波器。经典滤波器的特点是其输入信号中有用的频率成分和希望滤除的频率成分各占有不同的频带,通过一个合适的选频滤波器滤除干扰,得到纯净的信号,从而达到滤波的目的。现代滤波器是根据随机信号中的一些统计特性,在某种最佳准则下,最大限度地抑制干扰,同时最大限度地恢复信号,从而达到最佳滤波的目的。本论文没有探讨现代滤波器,只是简单地介绍了经

12、典滤波器的MATLAB的程序实现方法3。经典数字滤波器从滤波特性上分类,可以分为低通滤波器、高通滤波器、带通滤波器、带阻滤波器等。从实现的网络结构或者从单位冲激响应长度分类,可以分为无限长单位脉冲响应(IIR)滤波器和有限长单位脉冲响应(FIR)滤波器。它们的系统函数分别为:(3)(4)由上式可以看出,IIR滤波器的系统函数是两个Z的多项式的有理分式,而FIR滤波器的分母为1,即只有一个分子多项式。有限脉冲响应滤波器,说明其脉冲响应是有限的,其名称也是根据此产生的。FIR与IIR滤波器相比,FIR滤波器传输函数的极点固定在原点,其实现是非递归的,总体稳定性比较强,系统稳定,对运算精度要求不高,

13、运算误差也较小;更重要的是,FIR滤波器在满足幅频响应要求的同时,可以获得严格的线性相位特性,使信号经过处理后不产生相位失真,舍入误差小,稳定而且能够设计具有优良特性的多带通滤波器、微分器和希尔伯特变换器。因此,它在高保真的信号处理中,如数字音频、图像处理、数据传输、生物医学等领域得到广泛应用。缺点是对于同样的滤波器幅频特性指标,FIR 滤波器所需要的阶数比IIR滤波器高510倍,因而使成本增高。1.2.3 FIR数字滤波器的技术指标常用的数字滤波器一般属于选频滤波器。假设数字滤波器的频率响应函数用下式表示:(5)(5)式中,称为幅频特性函数;称为相频特性函数。幅频特性函数表示信号通过该滤波器

14、后各频率成分振幅衰减情况,而相频特性反映各频率成分通过滤波器后在时间上的延时情况。因此,即使两个滤波器幅频特性相同,而相频特性不同,对相同的输入,滤波器输出的信号也是不一样的4。一般选频滤波器的技术要求由幅频特性给出,对于常用的几中典型滤波器,其相频特性是确定的。所以设定过程中,对相频特性一般不作要求。但如果对输出波形有要求,则需要考虑相频特性的技术指标,例如波形传输,图像信号处理等。FIR数字滤波器便实现了这一要求。1.2.4数字滤波器的优点数字滤波器具有比模拟滤波器精度高、稳定、体积小、重量轻、灵活、不要求阻抗匹配以及实现模拟滤波器无法实现的特殊滤波功能等优点。如果要处理的是模拟信号,可通

15、过模数转换器(A/DC)和数模转换器(D/AC),在信号形式上进行匹配转换,同样可以使用数字滤波器对模拟信号进行滤波。第2章 FIR数字滤波器的设计条件及步骤FIR数字滤波器的设计核心是求出有限的脉冲响应来逼近给定的频率响应,理论证明FIR 滤波器脉冲响应在满足条件h(n)=h(N-1-n)时,其具有严格的线性相位特性,使所设计的数字滤波器无相位失真。FIR滤波器可以用如下的差分方程和系统函数表示:(6)(7)H(z)在z平面上有N-1个零点,在原点有N-1个重极点,H(z)永远稳定。2.1 FIR数字滤波器的设计条件FIR数字滤波器设计主要是选择有限长度为N的单位脉冲响应h(n),使传输函数

16、满足技术要求线性相位条件对于长度为N的h(n),传输函数为:(8)(9)(9)式中,成为幅度特性,成为相位特性。注意,这里不同于,为的实函数,可能取负值,而总是正值。线性相位FIR滤波器是指是的线性函数,即 为常数 (10)如果满足下式: 是起始相位(11),严格的说,此时不具有线性相位,但以上两种都满足群时延是一个常数,即(12)也称这种情况为线性相位。一般称为满足,为常数的情况为第一类线性相位;满足,是起始相位的称之为第二类线性相位。2.2 FIR数字滤波器设计的步骤确定指标。在设计一个滤波器之前,必须首先根据工程实际的需要确定滤波器的技术指标。在很多实际应用中,数字滤波器常常被用来实现选

17、频操作。因此,指标的形式一般在频域中给出幅度和相位响应。幅度指标主要以两种方式给出。第一种是绝对指标。它提供对幅度响应函数的要求,一般应用于FIR滤波器的设计。第二种指标是相对指标。它以分贝值(dB)的形式给出要求。在工程实际中,这种指标最受欢迎。对于相位响应指标形式,通常希望系统在通频带中有线性相位。逼近。确定了技术指标后,就可以建立一个目标的数字滤波器模型。通常采用理想的数字滤波器模型。之后,利用数字滤波器的设计方法,设计出一个实际滤波器模型来逼近给定的目标。性能分析和计算机仿真。上两步的结果是得到以差分或系统函数或冲激响应描述的滤波器。根据这个描述就可以分析其频率特性和相位特性,以验证设

18、计结果是否满足指标要求;或者利用计算机仿真实现设计的滤波器,再分析滤波结果来判断。第3章 FIR滤波器的设计方法及各方法步骤3.1 FIR数字滤波器的设计方法定义设计FIR数字滤波器的本质是对理想滤波器频率特性作某种近似。下面阐述几种基本的设计方法。窗函数设计法:从时域出发,用窗函数把理想的hd(n)截取成有限长的h(n)去逼近理想的hd(n)。频率采样法:从频域出发,把理想的Hd(ejw)抽样成H(k), 进而得到滤波器的H(z)。等波纹逼近法:使用切比雪夫最佳一致逼近理论可设计出实际滤波器频响与期望的频响之间的最大误差最小化的最佳拟合滤波器5。3.2 FIR滤波器设计方法介绍3.2.1 F

19、IR滤波器的窗函数设计法窗函数设计法的基本原理是用一定宽度窗函数截取无限脉冲响应序列获得有限长的脉冲响应序列,主要设计步骤为:根据对阻带衰减及过渡带的指标要求,选择窗函数的类型,并估计窗口长度N。先按照阻带衰减选择窗函数类型。原则是在保证阻带衰减满足要求的情况下,尽量选择主瓣窄的窗函数。然后根据过渡带宽度估计窗口长度N。待求滤波器的过渡带宽度Bt等于窗函数主瓣宽度,且与窗口长度成反比,NA/Bt,A取决于窗口类型。构造希望逼近的频率响应函数,即(13)所谓的“标准窗函数法”,是选择为线性相位理想滤波器(理想低通、理想高通、理想带通、理想带阻)。以低通滤波器为例,就满足: (14)其中,分别为设

20、计指标给定通带边界频率和阻带边界频率。通过傅里叶逆变换计算机理想滤波器的单位脉冲响应,(15) 加窗得到设计结果h(n),(16)窗函数法是设计FIR数字滤波器的最简单的方法。它在设计FIR数字滤波器中有很重要的作用,正确地选择窗函数可以提高设计数字滤波器的性能,或者在满足设计要求的情况下,减小FIR数字滤波器的阶次。3.2.1.1 FIR滤波器常用的窗函数FIR滤波器常用的窗函数有以下几种6:矩形窗(Rectangle window)、三角窗(Bartlett window)、汉宁窗(Hanning window)、哈明窗(Hamming window)、布莱克曼窗(Blackman win

21、dow)、切比雪夫窗(Chebyshev window)及凯塞窗(Kaiser-Bbasel window)。在MATLAB中,实现矩形窗的函数为boxcar,其调用格式如下: wn=boxcar(N)%其中N是窗函数的长度,返回值w是一个N阶的向量,它的元素由窗函数的值组成。%在MATLAB中,实现三角窗的函数为bartlett,调用格式为: wn=bartlett(N) %在MATLAB中,实现汉宁窗的函数为hann,调用格式如下: wn=hanning(N)wn=hanning(N,sflag)%Hanning函数中的参数sflag为采样方式,其值可取symmetric(默认值)或per

22、iodic。当sflagsymmetric时,为对称采样;当sflagperiodic时,为周期采样,此时hann函数计算N+1个点的窗,但是仅返回前N个点。%在MATLAB中,实现海明窗的函数为hamming,调用格式分别如下: wn=hamming (N)wn=hamming (N,sflag)%其中sflag的用法同上。%在MATLAB中,实现布拉克曼窗的函数为blackman,调用格式如下:wn=blackman (N)wn=blackman (N,sflag)%在MATLAB中,实现切比雪夫窗的函数为chebwin,调用格式为: wn=chebwin (N,r)%其中r表示切比雪夫窗

23、函数的傅里叶变换旁瓣幅度比主瓣低rdB(其默认值为100dB),且旁瓣是等纹波的。%在MATLAB中,实现凯塞窗的函数为kaiser,调用格式为: wn=kaiser (N,beta)设计FIR数字滤波器的常用的几种窗函数的性能比较图,窗函数性能比较图 图(1)各种窗函数之间的参数比较如下表(1):窗函数参数对比表 表(1)窗函数第一旁瓣相对于主瓣衰减/dB主 瓣 宽阻带最小衰减/dB矩形窗134/N21三角窗258/N25汉宁窗318/N44哈明窗418/N53布拉克曼窗5712/N74凯塞窗可调可调可调切比雪夫窗可调可调可调3.2.2频率采样法设计FIR数字滤波器窗函数设计FIR数字滤波器

24、是从时域出发,把理想的滤波器的单位取样响应hd(n)用合适的窗函数截短成为有限长度的h(n),并使h(n)逼近理想的hd(n),以实现所设计的滤波器的频率响应Hd(ej)逼近于理想滤波器的频率响应Hd(ej)。频率采样法的原理如下:由模拟信号与数字信号相互转化知识得知,一个有限长的序列,如果满足频率采样定理,可以通过频谱的有限个采样点的值被准确地得以恢复。设理想滤波器的频率响应是Hd(ej),它是连续频率的周期函数。对其在0到2之间等间隔采样N点,使每一个周期有N个抽样值,得到Hd(k),(17)对做IDFT,可得到N点的单位抽样序列h(n),即: (18)将h(n)作为所设计的滤波器的单位冲

25、激响应,这样就可以求出该滤波器的传输函数,即:(19)在频率抽样法中指定hd(k)要比在窗函数法中指定Hd(ej)复杂。hd(k)指定的原则是:(1)在通带内,可令|hd(k)|=1,阻带内|hd(k)|=0,且在通带内赋给hd(k)相位函数;(2)指定的hd(k)应保证h(n)是实的;(3)由抽样序列h(n)求出的Hd(ej)应具有线性相位。在窗函数设计法中,通过加大过渡带宽度换取阻带衰减的增加。频率采样法同样满足这一规律。提高阻带衰减的具体方法是在频响间断点附近区间内插一个或几个过渡采样点,使不连续点变成缓慢过渡带,这样,虽然加大了过渡带,但阻带中相邻内插函数的旁瓣正负对消,明显增大了阻带

26、衰减。过渡带采样点的个数与阻带最小衰减as的关系以及使阻带最小衰减as最大化的每个过渡带采样值求解都要用优化算法解决。其基本思想是将过渡带采样值设为自由量,用一种优化算法(如线性规划算法)改变它们,最终使阻带最小衰减as最大。将过渡带采样点的个数m与滤波器阻带最小衰减as的经验数据列于表(2)中,我们可以根据给定的阻带最小衰减as选择过渡带采样点的个数m7。频率抽样估算值 表(2)m123as4454dB6575dB8595dB3.2.3等波纹最佳逼近法设计FIR滤波器窗函数法和频率采样法设计FIR数字滤波器都是比较有效的,但同时它们都有一定的缺点。窗函数法不容易设计预定截止频率的滤波器,也不

27、能解决当滤波器的阶次N给定时,怎样设计一个最佳的FIR数字滤波器的问题。频率取样法是一种优化设计方法,但是在进行优化设计时所使用的变量仅限于过渡带上的几个采样值,因而它不是全局的最优设计方法。从FIR数字滤波器的系统函数可以看出,极点都是在z平面的原点,而零点的分布是任意的。不同的分布将对应不同的频率响应,最优化设计实际上就是调节这些零点的分布,使得实际滤波器的频率响应Hd(ej)与理想滤波器的频率响应Hd(ej)之间的最大绝对误差最小。切比雪夫逼近法利用逼近定理设计FIR数字滤波器,由于是在一致意义上对Hd(ej)作最佳逼近,因而获得了较好的通带和阻带性能,并能准确地指定通带和阻带的边缘,是

28、一种更佳有效的设计方法。利用等波纹最佳逼近准则设计线性相位FIR数字滤波器的数学模型的建立及其求解算法的推导复杂,求解计算必须借助计算机。MATLAB信号处理工具箱函数remezord和remez,解决了这个技术问题,只要简单地调用这两个函数就可以完成线性相位FIR数字滤波器的等波纹最佳逼近设计8。等波纹最佳逼近法设计FIR数字滤波器的过程是:(1)根据给定的逼近指标估算滤波器阶数N和误差加权函数W();(2)采用remez算法得到滤波器单位脉冲响应h(n)。第四章 FIR数字滤波器窗函数法的MATLAB程序实现4.1利用窗函数法设计FIR数字滤波器4.1.1利用窗函数法设计FIR数字低通滤波

29、器具体要求如下:对模拟信号进行低通滤波处理,要求通带0f 1.5kHz内衰减小于1 dB, 阻带2.5kHzf 上衰减大于40 dB。希望对模拟信号采样后用线性相位FIR数字滤波器实现上述滤波,采样频率Fs=10 kHz。用窗函数法设计满足要求的FIR数字低通滤波器,求出h(n),并画出损耗函数曲线。为了降低运算量,希望滤波器阶数尽量低。9由题意知,为了使滤波器的阶数尽量低,根据图(1)与表(1),我们选择Kaiser窗函数设计。% 用kaiser窗函数设计线性相位低通FIRDF运行程序如下:FIRDF_L请输入通带上限频率fp,fp=1500请输入阻带下限频fs,fs=2500请输入阻带最小

30、衰rs减,rs=40请输入采样频率Fs,Fs=10000单位冲激响应与损耗函数曲线如下图形:单位冲激响应与损耗函数曲线图 图(2)FIRDF_L()的m文件如下%用kaiser窗函数法设计FIR低通滤波器function FIRDF=FIRDF_L()close all;clear all;clc;%设计指标参数赋值fp=input(请输入通带上限频率fp,nfp=);fs=input(请输入阻带下限频率fs,nfs=);rs=input(请输入阻带最小衰减rs,nrs=);Fs=input(请输入采样频率Fs,nFs=);wp=2*pi*fp/Fs;ws=2*pi*fs/Fs;Bt=ws-w

31、p; %计算过渡带宽度alph=0.5842*(rs-21)0.4+0.07886*(rs-21);%计算kaiser窗的控制参数N=ceil(rs-8)/2.285/Bt);%计算kaiser窗所需阶数Nwc=(wp+ws)/2/pi;%计算理想高通滤波器通带截止频率(关于归一化)hn=fir1(N,wc,kaiser(N+1,alph);%调用kaiser计算低通FIRDF的h(n)%以下是绘图部分M=1024;hk=fft(hn,M);n=0:N;subplot(2,2,1);stem(n,hn,.);grid on;title(单位冲激响应h(n)图形);xlabel(n);ylabe

32、l(h(n);k=1:M/2;w=2*(0:M/2-1)/M;subplot(2,2,2);plot(w,20*log10(abs(hk(k);axis(0,1,-80,5);xlabel(/);ylabel(20lg|Hg()|);grid on;title(损耗函数曲线图形);通过此程序,我们可以输入其他要求的FIR低通滤波器。4.1.2利用用窗函数法设计FIR数字高通滤波器要求通带截止频率p=/2rad,阻带截止频率s=/4 rad,通带最大衰减ap=1dB,阻带最小衰减as=40dB。10根据题意知,阻带最小衰减as=40dB,由表(1)可知,汉宁窗和哈明窗均满足要求,我们选择汉宁窗。

33、程序运行如下:FIRDF_H()请输入通带截止频率wp, wp=pi/2请输入阻带截止频率ws,ws=pi/4请输入通带最大衰减rp,rs=1请输入阻带最小衰减rs,rs=40单位冲激响应与损耗函数曲线如下图形所示,单位冲激响应与损耗函数曲线图 图(3)FIRDF_H的M文件如下:%用汉宁窗函数法设计FIR高通滤波器function FIRDF=FIRDF_H()close all;clear all;clc;%设计指标参数赋值wp=input(请输入通带截止频率wp,nwp=);ws=input(请输入阻带截止频率ws,nws=);rp=input(请输入通带最大衰减rp,nrp=);rs=

34、input(请输入阻带最小衰减rs,nrs=);DB=wp-ws;%计算过渡带宽度N0=ceil(6.2*pi/DB); %汉宁窗计算所需h(n)长度N0N=N0+mod(N0+1,2);%确保h(n)长度N是奇数wc=(wp+ws)/2/pi;%计算理想高通滤波器通带截止频率(关于归一化)hn=fir1(N-1,wc,high,hanning(N);%调用fir1计算高通FIRDFh(n)%以下是绘图部分M=1024;hk=fft(hn,M);n=0:N-1;subplot(2,2,1);stem(n,hn,.);xlabel(n);ylabel(h(n);grid on title(单位冲

35、激响应h(n)图形);k=1:M/2;w=2*(0:M/2-1)/M;subplot(2,2,2);plot(w,20*log10(abs(hk(k);axis(0,1,-80,5);xlabel(/);ylabel(20lg|Hg()|);grid ontitle(损耗函数曲线图形);4.1.3窗函数法设计FIR数字带阻滤波器要求通带下截止频率lp=0.2,阻带下截止频率ls=0.35,阻通带上截止频率us=0.65,通带上截止频率up=0.8,通带最大衰减ap=1dB,阻带最小衰减as=60dB。因为阻带最小衰减as=60dB,根据表(1),选择布莱克曼窗。程序运行如下:FIRDF_DS请

36、输入通带下截止频率wlp,wlp=0.2*pi请输入阻带下截止频率wls,wls=0.35*pi请输入阻带上截止频率wus,Wus=0.65*pi请输入通带上截止频率wus,Wus=0.8*pi请输入通带最大衰减rp,rp=1请输入阻带最小衰减rs,rs=60单位冲激响应与损耗函数曲线如下图形所示,单位冲激响应与损耗函数曲线图 图(4)FIRDF_DS的M文件如下%用布莱克曼窗函数设计FIR带阻滤波器function FIRDF=FIRDF_DS()close all;clear all;clc;%设计指标参数赋值wlp=input(请输入通带下截止频率wlp,nwlp=);wls=input

37、(请输入阻带下截止频率wls,nwls=);wus=input(请输入阻带上截止频率wus,nwus);wup=input(请输入通带上截止频率wus,nwus);rp=input(请输入通带最大衰减rp,nrp=);rs=input(请输入阻带最小衰减rs,nrs=);B=wls-wlp;%过渡带宽度N=ceil(12*pi/B);%计算阶数N,ceil(x)为大于等于x的最小整数wp=(wls+wlp)/2/pi,(wus+wup)/2/pi;%设置理想带通截止频率hn=fir1(N,wp,stop,blackman(N+1);%带阻滤波器要求h(n)长度为奇数,所以取N+1%以下为绘图部

38、分M=1024;hk=fft(hn,M);n=0:N;subplot(2,2,1);stem(n,hn,.);xlabel(n);ylabel(h(n);grid ontitle(单位冲激响应h(n)图形);k=1:M/2+1;w=2*(0:M/2)/M;subplot(2,2,2);plot(w,20*log10(abs(hk(k);axis(0,1,-90,5);xlabel(/);ylabel(20lg|Hg()|);grid ontitle(损耗函数曲线图形);4.2用频率采样法FIR数字滤波器要求通带截止频率p=/3,阻带最小衰减大于40dB,过渡带宽度Bt/1611查表(2),as

39、=40dB时,过渡带采样点数m=1。估算滤波器长度: N(m+1)2/Bt=64,留一点富余量,取N=65程序运行如下:FIRDF_FCL请输入过渡采样值T,T=0.38请输入通带截止频率wp,wp=pi/3请输入过渡带宽度datB,datB=pi/16请输入阻带最小衰减rs,rs=50单位冲激响应与损耗函数曲线如下图形所示,单位冲激响应与损耗函数曲线图 图(5)FIRDF_FCL的M文件如下:%用频率采样法设计FIR低通滤波器function FIRDF=FIRDF_FCL()close all;clear all;clc;T=input(请输入过渡采样值T,nT=);%键入过渡采样值Twp

40、=input(请输入通带截止频率wp,nwp=);%通带截止频率为pi/3;datB=input(请输入过渡带宽度datB,ndatB=);%过渡带宽度pi/16rs=input(请输入阻带最小衰减rs,nrs=);if (rs = 44)&(rs= 65)&(rs= 85)&(rs=95) m=3;end;N=(m+1)*2*pi/datB+1;%估算采样点数NN=N+mod(N+1,2);%确保h(n)长度N为奇数Np=fix(wp/(2*pi/N);Ns=N-2*Np-1;%Np+1为通带0,wc上采样点数,Ns为阻带wc,2*pi-wc上采样点数Ak=ones(1,Np+1),zero

41、s(1,Ns),ones(1,Np)%N为奇数,幅度采样向量A(k)=A(N-k)Ak(Np+2)=T;Ak(N-Np)=T;%加一个过渡采样thetak=-pi*(N-1)*(0:N-1)/N;%相位采样向量(k) Hk=Ak.*exp(j*thetak);%构造频域采样向量H(k)hn=real(ifft(Hk);%h(n)=IDFTH(k)Hw=fft(hn,1024);%计算频率响应函数:DFTh(n)wk=2*pi*0:1023/1024;Hgw=Hw.*exp(j*wk*(N-1)/2);%计算幅度响应函数Hg()%计算通带最大衰减Rp和阻带最小衰减RsRp=max(20*log1

42、0(abs(Hgw);hgmin=min(real(Hgw);Rs=20*log10(abs(hgmin);%以下绘图Aw=1,1,0,0,1,1;wk1=0,wp,wp,2*pi-wp,2*pi-wp,2*pi/pi;subplot(3,2,1);plot(wk1,Aw);axis(0,2,-0.2,1.2);xlabel(/);ylabel(Hg(k);title(采样图形);hold onwk2=0:N-1*2/N;plot(wk2,Ak,.);n=0:N-1;subplot(3,2,2);stem(n,hn,.);axis(0,65,-0.2,0.5);xlabel(n);ylabel(h(n);grid ontitle(单位冲激响应)subplot(3,2,3);plot(wk/pi,20*log10(abs(Hgw);axis(0,1,-60,3);xlabel(/);ylabel(20lg|Hg()|);grid ontitle(损耗函数);4.3利用逼近法设计FIR带阻滤波器利用等波纹最佳设计一个线性相位FIR带阻滤波器。要求通带下截止频率lp =0.2,阻带下截止频率ls=0.35,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号