基于MATLAB的FIR数字滤波器的设计与仿真精品资料.doc
本科毕业设计论文题 目 基于MATLAB的FIR数字滤波器的设计与仿真 专业名称 电子信息工程 学生姓名 指导教师 毕业时间 2012年6月 设计论文 毕业 任务书一、题目基于MATLAB的FIR数字滤波器的设计与仿真二、指导思想和目的要求1. 指导思想:随着信息技术的迅猛发展,数字信号处理已成为一个极其重要的学科和技术领域,在通信、语音、图像、自动控制和家用电器等众多领域得到了广泛的应用。数字滤波器是数字信号处理的一个重要的技术分支。利用它可以在形形色色的信号中提取所需要的信号,抑制不需要的干扰或噪声。数字滤波器根据其单位冲激响应函数的时域特性分为两种:无限长冲激响应(IIR)滤波器和有限长冲激响应(FIR)滤波器。IIR滤波器保留了模拟滤波器较好的幅度特性,设计简单有效,但这些特性是以牺牲相位特性为代价而获得的,然而现在许多数据传输、图像处理系统都越来越多的要求系统具有线性相位特性。在这方面,FIR滤波器具有独特的优点,它可以保持严格的线性相位特性,因此越来越受到广泛的重视。2. 目的要求:(1)介绍当今国内外关于MATLAB设计数字滤波器的设计及研究方向,熟练使用MATLAB软件并熟练运用MATLAB编程语言;(2)介绍数字滤波器的类型并着重研究FIR数字滤波器的主要设计方法:窗函数法,频率采样法,等波纹最佳逼近法。根据不同方法的不同设计思路编出具体程序,并将其分别进行分析比较,利用Simulink进行仿真并验证;(3)经过仿真,将各种方法设计出的滤波器对指定波形滤波前后进行比较并得出有关结论。三、进度和要求1. 3-5周查阅资料,确定方案,撰写开题报告。2. 6-7周学习使用MATLAB软件,翻译英文资料。3. 8-13周完成FIR数字滤波器的设计,并通过MATLAB进行仿真测试;4. 14-15周整理、完成毕业设计,并撰写论文;5. 15-16周准备及完成毕业设计答辩。四、主要参考书及参考资料1高西全、丁玉美,数字信号处理。西安:西安电子科技大学出版社2李哲英、骆丽、刘元盛,DSP基础理论与应用技术。北京:航空航天大学出版社 3贺超英,MATLAB应用与实验教程。北京:电子工业出版社 4陈桂明,张明照,戚红雨,应用Matlab语言处理数字信号与数字图像。北京: 科学出版社5张葛祥,李娜,MATLAB仿真技术与应用。北京:清华大学出版社6楼顺天、李博菡,基于MATLAB的系统分析与设计信号处理。西安:西安电子科技大学出版社7董长虹等,MATLAB信号处理与应用。北京:国防工业出版社8 美 M.H.海因斯 著,张建华等译,数字信号处理。北京:科学出版社学生 _ 指导教师 _ 系主任 _西北工业大学明德学院本科毕业设计论文目 录摘 要IABSTRACTII第1章 绪论11.1 课题研究的背景及意义11.2 FIR数字滤波器研究概况21.3 本文的主要研究内容3第2章 数字滤波器及MATLAB语言概述42.1 数字滤波器的分类42.2 常用滤波器的性能指标52.3 MATLAB概述8第3章 FIR滤波器的设计方法研究103.1 FIR数字滤波器的数学模型和基本结构103.2 窗函数设计法113.3 频率采样法223.4 等波纹最佳逼近法283.5 本章小结29第4章 FIR滤波器的设计和仿真314.1 设计滤波系统314.2 仿真结果分析324.3 本章小结34结 论35致 谢36参考文献37毕业设计小结38西北工业大学明德学院本科毕业设计论文摘 要随着科学技术的飞速发展,数字信号处理技术广泛的应用于各种领域中,而数字滤波技术在数字信号处理中占有极其重要的地位。由于传统的模拟滤波器很难满足工业生产的需求,因此,对数字滤波器的研究具有重要的实际意义。相对于模拟滤波器,数字滤波器没有漂移,可以得到非常理想的频率响应特性,而且可以达到非常高的精度,这些优势决定了数字滤波器的应用将会越来越广泛。本文首先介绍了数字滤波器的发展概况和分类,分析了有限冲激响应(FIR)数字滤波器的数学模型及结构;然后,针对不同的设计思想,先后采用了窗函数法、频率采样法和等波纹最佳逼近法对不同类型的FIR数字滤波器进行编程设计,并进行了对比分析;最后,在Simulink环境下建立FIR数字滤波器的系统模型。利用FDA Tool工具,采用窗函数法设计低通滤波器验证建立的系统模型,同时使用多台示波器对滤波过程进行全程跟踪。通过对仿真结果的分析和比较,总结出每种设计方法的特点。关键词:FIR数字滤波器,MATLAB,Simulink,FDA ToolABSTRACT With the rapid development of science and technology, digital signal processing technology is widely used in various fields, and the digital filter technology in digital signal processing plays an important role in.Because the traditional analog filter is hard to meet the needs of industrial production, therefore, the digital filter is of important practical significance to study.Compared with analog filter, digital filter can be obtained without drift, the ideal frequency response characteristics, and can achieve very high precision, which determines the advantages of the application of digital filter will be more and more widely.This paper introduces the digital filter development overview and classification, analysis of the finite impulse response (FIR) digital filter model and structure; then, according to the different design ideas, have used the window function method, frequency sampling method and the best bellows approximation method for different types of FIR digital filter design and programming, compared and analyzed; finally, in the Simulink environment to establish the FIR digital filter system model.Using the FDA Tool tool, using the method of window function low pass filter verifies the system model, and the use of multiple oscilloscope to the filtering process tracking.Through the analysis of the simulation results and comparison, summed up the characteristics of each kind of design method.KEY WORDS:fir digital filter,matlab,simulink,fda toolII西北工业大学明德学院本科毕业设计论文第1章 绪论1.1 课题研究的背景及意义随着信息时代和数字世界的到来,数字信号处理技术已成为当今一门极其重要的学科和技术领域。数字信号处理 DSP(Digital Signal Proeessing)是利用计算机或专用处理设备,以数值计算的方法对信号进行采样、变换、综合、估值和识别等加工处理,以达到提取信息和便于应用的目的。目前,它正在各种工程技术领域里快速发展,并且在许多的应用领域逐步代替传统的模拟信号处理系统,如通讯、自动控制、电力系统、故障检测、语音、自动化仪表、航空航天、铁路、机器人、雷达、声纳、遥感等领域。数字滤波是提取有用信息非常重要、非常灵活的方法,是现代信号处理的重要内容。所谓数字滤波器,就是其输入和输出都是数字信号,通过一定的运算关系改变输入信号所含频率成分的相对比例或者滤除某些频率成分。相对于模拟滤波器,数字滤波器具有以下显著优点。1. 精度高模拟电路中元件精度很难达到以上,而数字系统17位字长就可以达到,因此在一些精度要求很高的滤波系统中,就必须采用数字滤波器来实现。 2. 灵活性大数字滤波器的性能主要取决于乘法器的各系数,而这些系数是存放在系数存储器中的,只要改变存储器中存放的系数,就可以得到不同的系统,这些都比改变模拟滤波器系统的特性要容易和方便的多,因而具有很大的灵活性。3. 可靠性高因为数字系统只有两个电平信号:“1”和“0”,受噪声及环境条件的影响小,而模拟滤波器各个参数定的温度系数,易受温度、振动、电磁感应等影响。并且数字滤波器多采用大规模集成电路,也可以用专用的DSP处理器来实现,这些大规模集成电路的故障率远比都有一众多分立元件构成的模拟系统的故障率低。4. 易于大规模集成因为数字部件具有高度的规范性,便于大规模集成,大规模生产,且数字滤波电路主要工作在截止或饱和状态,对电路参数要求不严格,因此产品的成品率高,价格也日趋降低。相对于模拟滤波器,数字滤波器在体积、重量和性能方面的优势已越来越明显。比如在用一些用模拟网络做的低频滤波器中,网络的电感和电容的数值会大到惊人的程度,甚至不能很好地实现,这时候若采用数字滤波器则方便的多。5. 并行处理数字滤波器的另外一个最大优点就是可以实现并行处理,比如数字滤波器可采用DSP 处理器来实现并行处理。TI 系列的DSP芯片采用多条指令并行处理的结构,时钟频率为几十MHz的DSP芯片,可高达几百MIPS(即每秒执行百万条指令)。基于上述众多优点它正在各种工程技术领域里快速发展,并且在许多的应用领域逐步代替了传统的模拟滤波器,所以,对数字滤波器的研究具有很重要的实际意义。1.2 FIR数字滤波器研究概况目前,在所有的工程技术领域中都会涉及到信号处理问题,其信号表现形式有电、磁、机械以及热、光、声等,信号处理的目的一般是对信号进行分析、变换、综合、估值与识别等。如何在较强的噪声背景下提取出真正的信号或信号的特征,并将其应用于工程实际是信号处理的首要任务。根据处理对象的不同,信号处理技术分为模拟信号处理和数字信号处理技术。数字信号处理学科的一项重大进展是关于数字滤波器设计方向的研究。关于数字滤波器,早在上个世纪40年代末期,就有人讨论它的可能性问题,在50年代也有人讨论过数字滤波的问题。在这一段时期,科学家们做了大量的卓有成效的工作,这些工作为后来的数字滤波器的飞速发展起到了极其重要的奠基作用。到上个世纪60年代中期,美国科学家库利、图基总结前人的研究成果,经过长期钻研,使得举世文明的快速傅立叶变换问世。在数字信号处理领域和数字滤波领域,快速傅立叶变换的诞生是学术界普遍认可的一个科学里程碑。从此以后,各种各样的快速傅立叶变换相继出现,在数字滤波领域,开始形成关于数字滤波器的一整套完整的正规理论。在这一时期,提出了各种各样的数字滤波结构,有的以运算误差为最小误差为特点,有的则以运算速度快见长,而有的则二者皆有,出现了数字滤波器的各种实现方法,对递归和非递归两类滤波器作了全面的比较,统一了数字滤波器的基本概念和理论。数字滤波器的一个重要发展是对有限冲激响应(FIR)和无限冲激响应(IIR)关系的认识转化。在初期,一般认为IIR滤波器比FIR滤波器具有更高的运算效率,因而明显地趋向于前者。后来,当人们提出用快速傅利叶变换(FFT)实现卷积运算的概念之后,发现高阶FIR滤波器也可以用很高的运算效率来实现,这就促使人们对高性能FIR滤波器的设计方法和数字滤波器的频域设计方法进行了大量的研究,从而出现了此后数字滤波器设计中频域方法与时域方法并驾齐驱的局面。数字滤波器尽管在语音、声纳、地震的信号处理中曾经发挥过作用,但由于以前计算机主机的价格很昂贵,严重阻碍了数字滤波器的发展,随着计算机科学的飞速发展,数字滤波器越来越多的展示出它自身的优势,正在加速进入各种工业领域。1.3 本文的主要研究内容本文主要完成以下内容:1. 首先介绍有限冲击响应数字滤波器的基本概念,分析有限冲击响应数字滤波器的结构和数学特征。2. 论述设计有限冲击响应数字滤波器的思路和步骤。分别采用窗函数法、频率采样法、等波纹最佳逼近法进行设计。3. 利用MATLAB软件,采用上述3种方法设计滤波器,并在Simulink环境下建立系统模型,得出仿真结果并加以分析。 第2章 数字滤波器及MATLAB语言概述2.1 数字滤波器的分类数字滤波器按照不同的分类方法有很多种类,根据其冲击响应的特点的不同可以分为FIR(Finite Impulse Response)和IIR(Infinite Impulse Response)数字滤波器。在性能上,IIR数字滤波器可以用较少的阶数获得较高的选择特性,所用存储单元少,运算次数少,故经济效益高,但是其代价则是相位的非线性,选择性能越好则相位非线性越严重。FIR数字滤波器可以得到严格的线性相位,但若获得一定的选择性,则需要较多的存储单元,信号的延迟要长一点,FIR数字滤波器的这些缺点是相对与IIR数字滤波器而言的,若按照相同的线性相位和选择性要求的话,IIR数字滤波器必须加全通网络来进行相位校正,这会大大增加滤波器的阶数和复杂性。电子工业正在飞速发展,对滤波器的性能要求越来越高,功能也越来越多,对FIR滤波器而言,从理论上讲要尽可能的降低其阶数,因为随着阶数的增加,实现数字滤波器的运算量就越大,如果阶数不能降低,则对算法的运算在结构上IIR数字滤波器是递归型,极点位置必须在单位圆内,如果落在单位圆外,则滤波器就不稳定,另外,这种结构在对四舍五入进行处理的时候,往往会产生寄生震荡。尤其是在高阶的IIR数字滤波器的研究中,稳定性和收敛性都存在问题。相反,FIR数字滤波器采用非递归型结构,不论在理论上还是在有限精度运算中都不存在问题,运算误差也较小,在相同阶数的条件下,FIR数字滤波器可以利用FFT算法,会大大提高运算速度。还有一个重要的趋势就是要求具体实现它们的硬件电子元器件必须向大规模集成化方向发展,如果没有重大的理论突破,则只能在硬件寻找突破口,所以电子元件的集成化尤其重要。我国数字滤波器研制和生产与上述要求相差甚远,为缩短这个差距,电子工程和科技人员肩负着重大的历史责任,而且在世界范围内集成化也是一个重要的发展趋势。2.2 常用滤波器的性能指标滤波器性能一般用系统频率特性来说明,常用的性能指标主要有以下三个参数:1. 幅度平方函数 (2-1)该性能指标主要用来说明系统的幅频特性。2. 相位函数 (2-2)其中: (2-3)该指标主要用来说明系统的相位特性。3. 群延时 (2-4)定义为相位对角频率导数的负值,说明了滤波器对不同的频率成分的平均延时。当要求在通带内的群延迟是常数时,滤波器相位响应特性应该是线性的。实际设计中所能得到的滤波器的频率特性与理想滤波器的频率特性之间存在着一些显著的差别,现以低通滤波器的频率特性为例进行说明。理想滤波器的特性:设滤波器输入信号为,信号中混入噪音,它们有不同的频率成分。滤波器的单位脉冲响应为。则理想滤波器输出为: (2-5)即噪音信号被滤除,而信号无失真只有延时和线性放大。对上式作傅里叶变换得: (2-6)假定噪音信号被滤除,即: (2-7)整理得: (2-8)h(t)t 图2-1 理想低通滤波器频率特性 图2-2 理性滤波器的单位冲激响应假定信号频率成分为:,噪音频率成分为。则完成滤波的理想低通滤波器特性是: (2-9)即: (2-10) (2-11)系统的单位冲激响应为: (2-12)理性低通滤波器的频率特性如图2-1所示,单位冲激响应的波形如图2-2所示。理想滤波器具有非因果、无限长的单位脉冲响应和不连续的频率特性,要用稳定的线性时不变(LTI)系统来实现这样的特性是不可能的。工程上是用冲激响应为有限长的、因果的、稳定的线性时不变系统或具有连续频率特性的线性时不变系统来逼近理想特性。在满足一定的误差要求的情况下来实现理想滤波特性。因此实际的滤波器的频率特性如图2-3所示。图2-3 实际滤波器频率特性其中:截止频率 阻带起始频率过渡带宽在通带内幅度响应以的误差接近于1,即: (2-13)为阻带起始频率,在阻带内幅度响应以小于的误差接近于零,即: (2-14)为了使逼近理想低通滤波器的方法成为可能,还必须提供一带宽为的不为零的过渡带。在这个频带内,幅度响应从通带平滑地下落到阻带。2.3 MATLAB概述MATLAB是美国MathWorks公司开发的一种功能极其强大的高技术计算语言和内容极其丰富的软件库,集数值计算、矩阵运算和信号处理与显示于一身。该软件最初是由美国教授Cleve Moler创立的。1980年前后,他在教线性代数课程时,发现用其他高级语言编程时极不方便,便构思开发了MATLAB,即矩阵实验室(Matrix Laboratory)。该软件利用了当时代表数值线性代数领域最高水平的EISPACK和LINPACK两大软件包,并且利用Fortran语言编写了最初的一套交互式软件系统,MATLAB的最初版本便由此诞生了。最初的MATLAB由于语言单一,只能进行矩阵的运算,绘图也只能用原始的描点法,内部函数只有几十个,因此功能十分简单。1984年该公司推出了第一个MATLAB的商业版,并用C语言作出了全部改写。现在的MATLAB程序是MathWorks公司用C语言开发的,第一版由Steve Bangert主持开发编译解释程序,Steve Kleiman完成图形功能的设计,John Little和Cleve Moler主持开发了各类数学分分析的子模块,撰写用户指南和大部分的M文件。接着又添加了丰富的图形图像处理、多媒体功能、符号运算和与其它流行软件的接口功能,使MATLAB的功能越来越强大。MATLAB系统主要由以下五个部分组成:(1)MATALB语言体系。MATLAB是高层次的矩阵数组语言,具有条件控制、函数调用、数据结构、输入输出、面向对象等程序语言特性。利用它既可以进行小规模端程,完成算法设计和算法实验的基本任务,也可以进行大规模编程,开发复杂的应用程序。(2)MATLAB工作环境。这是对MATLAB提供给用户使用的管理功能的总称。包括管理工作空间中的变量据输入输出的方式和方法,以及开发、调试、管理M文件的各种工具。(3)图形句相系统。这是MATLAB图形系统的基础,包括完成2D和3D数据图示、图像处理、动画生成、图形显示等功能的高层MATLAB命令,也包括用户对图形图像等对象进行特性控制的低层MATLAB命令,以及开发GUI应用程序的各种工具。(4)MATLAB数学函数库。这是对MATLAB使用的各种数学算法的总称。包括各种初等函数的算法,也包括矩阵运算、矩阵分析等高层次数学算法。(5)MATLAB应用程序接口(API)。这是MATLAB为用户提供的一个函数库,使得用户能够在MATLAB环境中使用C程序或FORTRAN程序,包括从MATLAB中调用于程序(动态链接),读写MAT文件的功能。除此之外,MATLAB系统还具有如下特点:(1)具有易学易用的语言体系;(2)具有交互式的工作环境;(3)具有多层面的图像处理系统;(4)具有丰富高效的MATLAB工具箱;(5)具有便利的程序接口(API);(6)应用领域广泛。第3章 FIR滤波器的设计方法研究3.1 FIR数字滤波器的数学模型和基本结构1. 直接型:如图3-1可以看出直接型结构共需要N个乘法器,若系数不对称则不能设计线性相位。图3-1 FIR滤波器的直接型结构2. 级联型:这种结构的每一节控制一对共轭极点,因此调整传输零点方便,但是这种结构所需的系数和所需的乘法运算比直接型多,所以这种结构使用的比较少。图3-2 FIR滤波器的级联型结构3. 频率抽样型:把一个有限长序列(长度为N点)的z变换在单位圆上作N等分抽样,就得到,其主值序列就等于h(n)的离散傅里叶变换。谐振器的极点正好与梳状滤波器的零点相抵消,保证了网络的稳定性。N个并联谐振器与梳状滤波器级联后,得到图3-3的频率抽样结构。图3-3 FIR滤波器的频率抽样型结构3.2 窗函数设计法窗函数法的设计流程如图3-4所示: 图3-4 窗函数法设计流程图 常用的窗函数有:矩形窗、汉宁窗、海明窗、布莱克曼窗、凯塞窗、三角窗等。在窗函数中,凯塞窗是比较灵活的一种窗函数,调整凯塞窗中的参数的大小,我们可以得到不同性能的滤波器。窗函数设计法是一种常用的设计数字滤波器的方法,不过在设计精度和性能方面并不是十分理想。几种窗函数的性能比较如表3-1所示:表3-1 各种窗函数的参数表窗函数过渡带宽度(P/N)阻带最小衰减(dB)矩形窗421三角窗825汉宁窗844海明窗853凯塞窗(=5.6)7.44260布莱克曼窗12741. 用窗函数法设计低通滤波器,满足如下指标: rad, rad,=3dB,=50dB程序如下:%阻带衰减50dB,选用海明窗clear;close all;wd=0.275*pi;N=133;M=(N-1)/2;nn=-M:M;n=nn+eps;hd=sin(wd*n)./(pi*n); % 理想冲激响应w=hamming(N)' % 海明窗h=hd.*w; % 实际冲激响应H=20*log10(abs(fft(h,1024); % 实际滤波器的幅频特性HH=H(513:1024) H(1:512);subplot(221),stem(nn,hd,'k');xlabel('n');title('理想冲激响应');axis(-70 70 -0.1 0.3);subplot(222),stem(nn,w,'k');axis(-70 70 -0.1 1.2);title('海明窗');xlabel('n');subplot(223),stem(nn,h,'k');axis(-70 70 -0.1 0.3);xlabel('n');title('实际冲激响应');w=(-512:511)/511;subplot(224),plot(w,HH,'k');axis(-1.2 1.2 -140 20);xlabel('omega/pi');title('滤波器幅频特性');set(gcf,'color','w');运行后结果:图3-5 用海明窗设计FIR低通滤波器的运行结果该低通滤波器的设计参数为通带频率,阻带频率,过渡带宽度为,由运行结果(图3-5)可以看出,设计出的滤波器实际特性过渡带为,所以该设计满足要求。2. 用窗函数法设计高通滤波器,满足如下指标: rad, rad,=0.25dB,=50dB程序如下:%阻带衰减50dB,选择海明窗clear;close all;wd=0.5*pi;N=33;M=(N-1)/2;nn=-M:M;n=nn+eps;hd=2*(-1).n).*sin(wd*n)./(pi*n); % 理想冲激响应w=hamming(N)' % 海明窗h=hd.*w; % 实际冲激响应H=20*log10(abs(fft(h,1024); % 实际滤波器的幅频特性HH=H(513:1024) H(1:512);subplot(221),stem(nn,hd,'k');xlabel('n');title('理想冲激响应');axis(-18 18 -0.8 1.2);subplot(222),stem(nn,w,'k');axis(-18 18 -0.1 1.2);title('海明窗');xlabel('n');subplot(223),stem(nn,h,'k');axis(-18 18 -0.8 1.2);xlabel('n');title('实际冲激响应');w=(-512:511)/511;subplot(224),plot(w,HH,'k');axis(-1.2 1.2 -140 20);xlabel('omega/pi');title('滤波器幅频特性');set(gcf,'color','w');程序运行结果如下:图3-6 用海明窗设计FIR高通滤波器的运行结果该低通滤波器的设计参数为通带频率,阻带频率,过渡带宽度为,由运行结果(图3-6)可以看出,设计出的滤波器实际特性过渡带为,所以该设计满足要求。3. 用窗函数法设计带通滤波器,满足如下指标: rad, rad, rad, rad =1dB,=1dB,=60dB,=60dB程序如下:%阻带衰减60dB,选择布莱克曼窗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',blackman(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=blackman(N)'H=20*log10(abs(fft(h,1024); % 实际滤波器的幅频特性HH=H(513:1024) H(1:512);subplot(221),stem(nn,hd,'k');xlabel('n');title('理想冲激响应');axis(-30 30 -0.4 0.5);subplot(222),stem(nn,w,'k');axis(-30 30 -0.1 1.2);title('布莱克曼窗');xlabel('n');subplot(223),stem(nn,h,'k');axis(-30 30 -0.4 0.5);xlabel('n');title('实际冲激响应');w=(-512:511)/511;subplot(224),plot(w,HH,'k');axis(-1.2 1.2 -140 20);xlabel('omega/pi');title('滤波器幅频特性');set(gcf,'color','w');运行结果如下:图3-7 用布莱克曼窗设计FIR带通滤波器的运行结果该低通滤波器的设计参数中过渡带宽度为,由运行结果(图3-7)可以看出,设计出的滤波器实际特性过渡带为,所以该设计满足要求。4. 用窗函数法设计带阻滤波器,满足如下指标: rad, rad, rad, rad =1dB,=1dB,=40dB,=40dB程序如下:%阻带衰减40dB,选用汉宁窗clear all;close all;clc;wpl=0.2*pi;wph=0.8*pi;wsl=0.4*pi;wsh=0.6*pi;wd1=(wpl+wsl)/2;wd2=(wph+wsh)/2;Bt=min(abs(wsl-wpl),abs(wsh-wph);N=ceil(6.2*pi/Bt);wn=wd1/pi,wd2/pi;h=fir1(N-1,wn,'stop',hanning(N);wd11=(wpl+wsl)/2;wd22=(wph+wsh)/2;M=(N-1)/2;nn=-M:M;n=nn+eps;hd=(sin(pi*n)+sin(wd11*n)-sin(wd22*n)./(pi*n); % 理想冲激响应w=hanning(N)'H=20*log10(abs(fft(h,1024); % 实际滤波器的幅频特性HH=H(513:1024) H(1:512);subplot(221),stem(nn,hd,'k');xlabel('n');title('理想冲激响应');axis(-17 17 -0.2 0.7);subplot(222),stem(nn,w,'k');axis(-17 17 -0.1 1.2);title('汉宁窗');xlabel('n');subplot(223),stem(nn,h,'k');axis(-17 17 -0.2 0.7);xlabel('n');title('实际冲激响应');w=(-512:511)/511;subplot(224),plot(w,HH,'k');axis(-1.2 1.2 -140 20);xlabel('omega/pi');title('滤波器幅频特性');set(gcf,'color','w');程序运行结果如下:图3-8 用汉宁窗设计FIR带阻滤波器的运行结果该低通滤波器的设计参数中过渡带宽度为,由运行结果(图3-8)可以看出,设计出的滤波器实际特性过渡带为,所以该设计满足要求。3.3 频率采样法工程上,常给出频域上的技术指标,所以有时会采用更直接的方法-频率采样法设计FIR数字滤波器。频率采样法的设计流程如图3-9所示:图3-9 频率采样法设计流程图1. 用频率采样法设计低通滤波器,其理想特性为: 1 N=33 0 程序如下:close all;clear all;clc;N=33;wc=pi/3;N1=fix(wc/(2*pi/N);N2=N-2*N1-1;A=ones(1,N1+1),zeros(1,N2),ones(1,N1); theta=-pi*0:N-1*(N-1)/N; H=A.*exp(j*theta);h=real(ifft(H);v=1:N;subplot(2,2,1);stem (v ,h,'k'); xlabel('n');ylabel('h(n)'),title('冲激响应');axis(0,fix(N*1.1),-0.1,0.4);M=500; nx=1:N;w=linspace(0,pi,M); X=h*exp(-j*nx'*w);subplot(2,2,2);plot(w./pi,abs(X),'k');title('幅频特性');xlabel('omega/pi');ylabel('Hd(omega)');axis(0,1,-0.1,1.3);subplot(2,2,3);plot(w./pi,20*log10(abs(X),'k');title('幅频特性');xlabel('omega/pi');ylabel('dB');axis(0,1,-50,10);运行结果如下:3-10 用频率采样法设计FIR低通滤波器的运行结果该低通滤波器的理想特性为通带频率,阻带频率,由运行结果可以看出,设计出的滤波器实际特性为截止频率,阻带起始频率,过渡带宽度。2. 用频率采样法设计高通滤波器,其理想特性为: 0 N=33 1 程序如下:close all;clear all;clc;N=33;wc=pi/3;N1=fix(wc/(2*pi/N);N2=N-2*N1-1;A=zeros(1,N1+1),ones(1,N2),zeros(1,N1); A(N1+2)=0.3904;A(N-N1)=0.3904;