版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科毕业设计(论文)题目:基于MATLAB的数字滤波器设计姓名:学号:02452102专业:电子信息工程指导教师:职称:讲师2006年月日摘要本文分别研究了在MATLAB环境下IIR数字滤波器和FIR数字滤波器的设计方法及实现方法,并进行图形用户界面设计,以显示本文所介绍滤波器的特性。在无限脉冲响应〔IIR〕数字滤波器设计中,先进行模拟滤波器的设计,然后进行模拟-数字滤波器转换,即采用脉冲响应不变法及双线性Z变化法设计数字滤波器,最后进行滤波器的频带转换。在有限脉冲响应〔FIR〕数字滤波器设计中,讨论了FIR线性相位滤波器的特点和用窗函数法设计FIR滤波器两个问题。两类滤波器整个设计过程都是按照理论分析、编程设计、具体实现的步骤进行的。为方便分析者直观,形象,方便的分析滤波器的特性,创新的设计出了图形用户界面——滤波器分析系统。整个系统分为两个界面,其内容主要包含四局部:System(系统)、Analysis(分析)、Tool(工具)、Help(帮助)。关键词:数字滤波器、MATLAB、无限脉冲响应、有限脉冲响应、图形用户界面AbstractInthisthesis,designsoftheInfiniteImpulseResponsedigitalfilter(IIR)andFiniteImpulseResponsedigitalfilter(FIR)underMATLABarestudied.AndtheGraphicalUserInterfaces(GUI)toanalysisthecharacteristicsoffilterisdesigned.ThedesignofIIRfilterscanbeachievedthroughthreesteps:firstly,thedesignofanaloglow-passfilter;secondly,itisanalog-to-digitalfilterconversion;lastly,itistheconversionoffilterfrequencyband.IndesignofFIRfilters,twoquestionsarediscussed:thecharacteristicsofFIRlinearphasefilterandreasoningofrelatedformulas;theotherisaboutthedesignoftheFIRfiltersbymeansofwindowfunctions.ThedesignofFIRandIIRfollowstheproceduresoftheoreticalanalysis,programmingdesignandrealization.WedesigntheGraphicalUserInterfaces(GUI)ofthedigitalfilteranalysissystemmakessureofpeoplecananalysisthecharacteristicsofthedesigndirectlyandeasily.Thewholesystemdivideintotwographicalinterfaces,itcontainsfourparts:System,Analysis,ToolandHelp.Keywords:DigitalFilter,MATLAB,IIR,FIR,GraphicalUserInterfaces目录第1章绪论………………11.1数字滤波技术………………………11.1.1滤波器原理………………………21.1.2数字滤波器设计方法概述………21.2MATLAB软件简介……………………3第2章IIR滤波器设计及其MATLAB实现………………52.1模拟滤波器设计及其MATLAB实现…………………52.1.1巴特沃斯低通滤波器设计………52.1.2切比雪夫低通滤波器设计………72.1.3椭圆低通滤波器设计……………112.2模拟—数字滤波器变换及其MATLAB实现………132.2.1脉冲响应不变法…………………132.2.2双线性Z变换法…………………172.3频带变换及其MATLAB实现………192.3.1模拟低通滤波器转换成数字高通滤波器………192.3.2模拟低通滤波器转换成数字带通滤波器………212.3.3模拟低通滤波器转换成数字带阻滤波器………232.4小结…………………25第3章FIR滤波器设计及其MATLAB实现……………263.1线性相位FIR数字滤波器的条件和特点…………263.1.1线性相位条件……………………263.1.2线性相位FIR滤波器幅度特性的特点…………273.1.3线性相位FIR滤波器零点分布特点……………273.2常用窗函数及其MATLAB实现……………………273.2.1常用窗函数介绍…………………273.2.2各种窗函数的实现与比拟………293.3基于窗函数的FIR数字滤波器设计及其MATLAB实现……………303.3.1海明窗设计数字低通滤波器…………………313.3.2汉宁窗设计数字高通滤波器…………………333.3.3布拉克曼窗及三角窗设计数字带通滤波器…………………353.3.4汉宁窗设计数字带阻滤波器………………373.4小结…………………38第4章图形用户界面设计--滤波器分析系统………394.1MATLAB中GUI设计技术特点……………………394.1.1GUIDE简介………………………394.1.2GUI设计标准及设计步骤………404.2滤波器分析系统及其MATLAB实现………………404.2.1滤波器分析系统的初始界面……………………414.2.2滤波器分析系统的主界面………434.3小结…………………48第5章总结……………49参考文献…………………50致谢………………………51第1章绪论1.1数字滤波技术数字滤波是数字信号处理的重要根底,数字信号处理主要是研究用数字或符号的序列来表示信号波形,并用数字的方式去处理这些序列,把它们改变成在某种意义上更希望的形式,以便估计信号的特征参量,或削弱信号中的多余分量和增强信号中的有用分量。数字滤波器在对信号的过滤、检测与参数估计等处理过程中,是使用最为广泛的一种线性系统。数字滤波器〔DigitalFilter,简称为DF〕是指完成信号滤波处理功能的、用有限精度算法实现的离散时间线性非时变系统。数字滤波器的数学运算通常有两种实现方式。一种是频域法,即利用FFT快速运算方法对输入信号进行离散傅立叶变换,分析其频谱,然后根据希望的频率特性进行滤波,再利用傅立叶反变换恢复出时域信号。这种方法具有较好的频域选择特性和灵活性,并且由于信号频率与所希望的频谱特性是简单的相乘关系,所以它比计算等价的时域卷积要快得多。另一种方法是时域法,这种方法是通过对离散抽样数据作差分数学运算来到达滤波目的的。数字滤波器的输入是一组〔由模拟信号取样和量化的〕数字量,其输出是经过数字变换的另一组数字量。数字滤波器具有稳定性高、精度高、灵活性大等突出优点。随着数字技术的开展,用数字技术实现滤波器的功能愈来愈受到人们的重视,并得到了广泛的应用。数字信号处理学科的一项重大进展是关于数字滤波器设计方法的研究。60年代中期,开始形成关于数字滤波器的一套完整的正规理论。这一时期,提出了各种各样的数字滤波器结构,有的以运算误差最小为特点,有的那么以运算速度高见长;出现了数字滤波器的各种逼近方法和实现方法,对递归和非递归两类滤波器作了全面的比拟;统一了数字滤波器的根本概念和理论,对有限冲激响应〔IIR〕和无限冲激响应〔FIR〕的认识有了完整理论。70年代后,科学技术蓬勃开展,数字信号处理开始与大规模和超大规模集成电路技术、微处理技术等新工艺新技术结合起来,并引进计算机辅助设计方法,大大丰富了数字滤波器的分析与设计,各种新的数字信号处理系统,也都能用专用数字硬件实时加以实现。相信在未来,随着电子仪器与电子技术应用系统朝着数字化、小型化、自动化以及多功能化等方向开展,包括数字滤波器在内的数字信号处理技术会有以惊人的速度进行飞跃式开展。1.1.1滤波器原理滤波器,顾名思义,其作用是对输入信号起到滤波的作用。对于图1-1所示的LSI系统,其时域输入输出关系为:(1-1)h(n)x(n)y(n)h(n)图1-1假设y(n),x(n)的傅立叶变换存在,那么输入输出的频域关系是:(1-2)当输入信号x(n)通过滤波器系统h(n)后,其输出y(n)中不再含有|ω|>ωc的频率成分,仅使|ω|<ωc的信号成分通过。因此,滤波器的形状不同,其滤波后的信号结果也不一样。假设滤波器的输入、输出都是离散时间信号,那么该滤波器的单位冲激响应h(n)也必然是离散的,这种滤波器称为数字滤波器〔DF,DigitalFilter〕。当用硬件实现一个DF时,所需元件是延迟器、乘法器和加法器;而利用MATLAB软件时,它仅需线性卷积程序便可实现。而模拟滤波器〔AF,AnalogFilter〕只能用硬件实现。因此DF比AF容易实现,且更容易获得理想的滤波性能。数字滤波器还具有以下优点:精度和稳定性高;系统函数容易改变;灵活性高;不存在阻抗匹配问题;便于大规模集成;可实现多维滤波。1.1.2数字滤波器设计方法概述数字滤波器从功能上分类:可以分为低通滤波器(LP,LowPass)、高通滤波器(HP,HighPass)、带通滤波器(BP,BandPass)、带阻滤波器(BS,BandStop)。从滤波器的网络结构或者从单位脉冲响应分类:如同模拟滤波器的性能可由g(t)和G(s)来表征一样,数字滤波器的性能完全取决于h(n)和H(z)。因此,数字滤波器可以按照单位取样响应〔或称脉冲响应,冲激响应等〕h(n)的性质分为两类:有限脉冲响应(FiniteImpulseResponse)数字滤波器,简称FIR数字滤波器,它的h(n)序列长度是有限的;无限脉冲响应(InfiniteImpulseResponse)数字滤波器,简称IIR数字滤波器,它的h(n)序列长度是无限的,即当EQ时,h(n)仍有效。数字滤波器的设计与实现,通常按下述步骤进行:1、根据不同用途提出数字滤波器的技术指标、性能要求。2、设计一个稳定的、因果的数学模型H(z)来逼近所要求的技术指标,并用有限精度的运算实现所设计的系统。本文将重点介绍此步骤。3、设计专用的数字硬件来实现这个数字模型,或者通过电子计算机运行程序软件予以实现。本文将侧重于软件实现。IIR滤波器和FIR滤波器的设计方法很不相同:IIR滤波器设计方法有两类,经常用到的一类设计方法是借助于模拟滤波器的设计方法进行的。其设计思路是:先设计模拟滤波器得到传输函数G(s),然后将G(s)按某种方法转换为数字滤波器的系统函数H(z)。这一类方法是基于模拟滤波器的设计方法相比照拟成熟,它不仅有完整的设计公式,也有完整的图标供查阅,更可以直接调用MATLAB中的对应的函数进行设计。另一种是直接在频域或者时域中进行设计,设计时必须使用计算机辅助,直接调用MATLAB中的程序或函数即可设计。FIR滤波器不能采用由模拟滤波器设计进行转换的方法,而经常使用的是窗函数法和频率采样法。也可以借助计算机辅助设计软件采用切比雪夫等波纹逼近法进行设计。1.2MATLAB软件简介MATLAB是英文MatrixLaboratory〔矩阵实验室〕的缩写,它是由美国MathWorks公司推出的用于数值计算和图形处理的数学计算环境。在MATLAB环境下,用户可以集成的进行程序设计、数值计算、图形绘制、输入输出、文件管理等各项操作。它优秀的数值计算能力和卓越的数据可视化能力使其在同类软件中脱颖而出。MATLAB系统最初由CleveMoler用FORTRAN语言设计,现在的MATLAB程序是由MathWorks公司用C语言开发的。它的第一版〔DOS版本1.0〕发行于1984年,经过多年的改良,版本不断升级,其所包含的工具箱功能也越来越丰富,应用越广泛。MATLAB语言之所以能如此迅速的普及,显示出如此旺盛的生命力,是由于它有着不同于其他语言的特点,归纳如下:1、简单易学:MATLAB不仅是一个开发软件,也是一门编程语言。其语法规那么与结构化高级编程语言(如C语言等)大同小异,而且使用更为简便。用MATLAB编程写程序犹如在演算纸上排列出公式与求解问题,所以被称为演算纸式科学算法语言。2、计算功能强大:MATLAB拥有庞大的数学、统计及工程函数,可使用户立刻实现所需的强大数学计算功能。由各领域的专家学者们开发的数值计算程序,使用了平安、成熟、可靠的算法,从而保证了最快的运算速度和可靠的结果。此外,MATLAB还有数十个工具箱,可解决应用中的大多数数学、工程问题。3、先进的可视化工具:MATLAB提供功能强大的、交互式的二维和三维绘图功能,可使用户创立富有表现力的彩色图形。可视化工具包括曲面渲染、线框图、伪彩图、光源、图像显示、动画等。4、开放性、可扩展性强:M文件是可见的MATLAB程序,所以用户可以查看源代码。开放的系统设计使用户能够检查算法的正确性,修改已存在的函数,或者参加自己的新部件。5、特殊应用工具箱:MATLAB的工具箱加强了对工程及科学中特殊应用的支持。工具箱也和MATLAB一样是完全用户化的,可扩展性强。将某个或几个工具箱与MATLAB联合使用,可以得到一个功能强大的计算组合包,满足用户的特殊要求。MATLAB数字信号处理工具箱和滤波器设计工具箱专门应用于信号处理领域。工具箱提供了丰富而简便的设计,使原来繁琐的程序设计简化成函数的调用。只要以正确的指标参数调用相应的滤波器设计程序或工具箱函数,便可以得到正确的设计结果,使用非常方便。接下来的两章我们将分别对IIR数字滤波器和FIR数字滤波器的设计实现进行分析讨论。在具体的设计过程中,将充分发挥MATLAB软件在数值计算、图像处理中的优势,并充分利用其强大的滤波器设计工具箱(FilterDesignToolbox)及图像用户界面工具辅助设计分析。第2章IIR滤波器设计及其MATLAB实现IIR数字滤波器具有无限持续时间脉冲响应,而所有的模拟滤波器一般都具有无限长的脉冲响应,因此它与模拟滤波器相匹配。于是,设计IIR数字滤波器可以先设计模拟低通滤波器G(s),然后按一定规那么将G(s)进行滤波器变换而得到数字域的IIR低通滤波器H(z),最后通过频带变换转换成其它频带滤波器。本章按按此思路将IIR数字滤波器设计分为三局部:设计模拟滤波器;进行滤波器转换,得到数字滤波器;最后再简单分析数字滤波器的频带转换问题。下面,将以此进行分别讨论。2.1模拟滤波器设计及其MATLAB实现IIR数字滤波器技术设计最通用的方法是借助于模拟滤波器的设计方法。模拟滤波器设计已经有了一套相当成熟的方法,它不但有完整的设计公式,而且还有较为完整的图表可供查询,因此充分利用这些已有的资源将会给数字滤波器的设计带来很大方便。滤波器设计最重要的是寻找一个稳定、因果的系统函数去逼近滤波器的技术指标,因此模拟滤波器的设计十分重要。实际中,有三种广泛应用的滤波器,即巴特沃斯低通滤波器、切比雪夫低通滤波器,椭圆低通滤波器,下面,将分别予以介绍。2.1.1巴特沃斯低通滤波器设计巴特沃斯滤波器拥有最平滑的频率响应,在截止频率以外,频率响应单调下降。在通带中是理想的单位响应,在阻带中响应为0。在截止频率处有3dB的衰减。巴特沃斯滤波器除了具有平滑单调递减的频率响应的优点之外,其过渡带的陡峭程度正比于滤波器的阶数。高阶巴特沃斯滤波器的频率响应近似于理想低通滤波器。巴特沃斯(Butterworth)低通滤波器是将巴特沃斯函数作为滤波器的传递函数,它的平方幅度函数为:(2-1)式中,为滤波器频率,为3dB截止频率,N表示滤波器的阶次。MATLAB信号处理工具箱为低通模拟巴特沃斯滤波器的产生提供了函数buttap,其调用的格式为:[z,p,k]=buttap(N),其中,z表示零点,p表示极点,k表示增益,N表示阶次。下面举例设计巴特沃斯低通模拟滤波器:%巴特沃斯低通模拟滤波器clearall;n=0:0.01:2;fori=1:4switchicase1N=2;case2N=5;case3N=10;case4N=20;end[z,p,k]=buttap(N);%函数buttap--设计巴特沃斯低通滤波器[b,a]=zp2tf(z,p,k);%函数zp2tf--零极点增益模型转换为传递函数模型[H,w]=freqs(b,a,n);%函数freqs--求解模拟滤波器频率响应magH2=(abs(H)).^2;%函数abs--取模值函数holdon%函数hold--控制是否保持当前图形plot(w,magH2)%函数plot--画二维线性图axis([0201]);%函数axis--控制坐标轴比例和外观endxlabel('w/wc');ylabel('|H(jw)|^2');title('巴特沃斯低通模拟滤波器');gridon由此得出的巴特沃斯低通模拟滤波器的平方幅度响应曲线如下图:图2-1巴特沃斯滤波器的幅频特性(基于MATLAB实现)由图2-1可清楚地分析出,巴特沃斯滤波器拥有平滑的频率响应,在截止频率以外,频率响应单调下降。其过渡带的陡峭程度正比于滤波器的阶数,高阶巴特沃斯滤波器的频率响应近似于理想低通滤波器。由图2-1所示,对N=2阶滤波器和N=20阶滤波器的平方幅度响应进行比拟后,证明了高阶巴特沃斯滤波器有着更好的幅度特性,更接近理想低通滤波器。2.1.2切比雪夫低通滤波器设计巴特沃斯滤波器的频率特性在通带和阻带内部都是随频率单调变化的,如果在通带的边缘能够满足指标,那么在通带的内部会超过设计的指标要求,造成滤波器的阶次N比拟高。因此,有效地设计方法是将指标的精确度均匀的分布在整个通带内,或者均匀分布在整个阻带内,或者同时分布在两者之内,这样就可用阶数较低的系统来满足要求。这可通过选择具有等波纹特性的逼近函数来到达。切比雪夫滤波器的振幅特性就具有这种等波纹特性。它有两种形式:振幅特性在通带内是等波纹的、在阻带内是单调的切比雪夫I型滤波器;振幅特性在通带内是单调的、在阻带内是等波纹的切比雪夫II型滤波器。采用何种形式的切比雪夫滤波器取决于实际用途。切比雪夫I型(Chebyshev-I)滤波器平方幅度响应函数为:(2-2)其中是一个小于1的正数,它与通带波纹有关,越大,波纹也越大;是的切比雪夫多项式,它的定义为:(2-3)而切比雪夫II型(Chebyshev-II)滤波器平方幅度响应函数为:(2-4)其中是一个小于1的正数,表示波纹变化情况;为截止频率;N为滤波器的阶次,也是的阶次。N为奇数N为偶数图2-2理想切比雪夫I型滤波器的幅频特性N为奇数N为偶数图2-3理想切比雪夫II型滤波器的幅频特性图2-2和图2-3分别画出了理想时的切比雪夫I型与切比雪夫II型滤波器阶次N为奇数与偶数时的幅频特性。而通过MATLAB信号处理工具箱中的函数cheb1ap及cheb2ap,可以实现切比雪夫滤波器设计,其调用格式为:[z,p,k]=cheb1ap(N,Rp)[z,p,k]=cheb2ap(N,Rs)其中,z表示零点,p表示极点,k表示增益,N表示阶次,Rp为通带波纹(dB),Rs为阻带波纹(dB)。%切比雪夫I型低通模拟滤波器clearall;n=0:0.01:2;fori=1:2switchicase1N=7;case2N=8;endRp=1;%通带纹波系数为1dB[z,p,k]=cheb1ap(N,Rp);%函数cheb1--设计切比雪夫I型低通滤波器[b,a]=zp2tf(z,p,k);[H,w]=freqs(b,a,n);%函数freqs--求解模拟滤波器频率响应magH2=(abs(H)).^2;%绘制图形posplot=['12'num2str(i)];%输出图形subplot(posplot)%函数subplot--创立子图图区plot(w,magH2)axis([0201]);xlabel('w/wc');ylabel('|H(jw)|^2');title(['N='num2str(N)]);end图2-4切比雪夫I型滤波器的幅频特性(基于MATLAB实现)%切比雪夫II型低通模拟滤波器clearall;n=0:0.01:2;fori=1:2switchicase1N=7;case2N=8;endRs=10;%阻带文波系数为10dB[z,p,k]=cheb2ap(N,Rs);%函数cheb2---设计切比雪夫II型低通滤波器[b,a]=zp2tf(z,p,k);[H,w]=freqs(b,a,n);magH2=(abs(H)).^2;%输出图形posplot=['12'num2str(i)];subplot(posplot)plot(w,magH2)axis([0201.1]);图2-5切比雪夫II型滤波器的幅频特性(基于MATLAB实现)用图2-4、图2-5与图2-2、2-3分别作比拟可清楚地分析得出,切比雪夫滤波器有效地将技术指标的精确度均匀分布,切比雪夫I型滤波器的振幅特性在通带内是等波纹的、在阻带内是单调的;切比雪夫II型滤波器的振幅特性在通带内是单调的、在阻带内是等波纹的。2.1.3椭圆低通滤波器设计切比雪夫I型滤波器在通带内成等波纹振荡,在阻带内却仍是单调下降的,切比雪夫II型在阻带内是等波纹的,在通带内却是单调下降的。因此过渡带的特性有所提高,但是并不理想。它的主要原因在于两者的系统函数在截止频率附近没有有限个零点,其零点在无限远处。1931年,考尔提出了采样有限零点设计的滤波器,因为这种方法在确定零点位置时与椭圆函数的许多特性有关,所以称之为椭圆低通滤波器。它的平方幅度响应函数为:(2-5)式中是雅可比椭圆函数,是与通带衰减有关的函数。滤波器阶次N等于通带和阻带内最大点和最小点的和。MATLAB信号处理工具箱为低通模拟椭圆滤波器的产生提供了函数ellipap,其调用的格式为:[z,p,k]=ellipap(N,Rp,Rs),其中,z表示零点,p表示极点,k表示增益,N表示阶次,Rp为通带波纹(dB),Rs为阻带波纹(dB)。下面举例设计椭圆低通模拟原型滤波器:%椭圆低通滤波器clearall;n=0:0.01:2;fori=1:4switchicase1N=2;case2N=3;case3N=4;case4N=5;endRp=1;%Rp--通带纹波系数为1dBRs=10;%Rs--阻带纹波系数为10dB[z,p,k]=ellipap(N,Rp,Rs);%函数ellipap--设计椭圆低通滤波器[b,a]=zp2tf(z,p,k);[H,w]=freqs(b,a,n);magH2=(abs(H)).^2;%输出图形posplot=['22'num2str(i)];subplot(posplot)plot(w,magH2)axis([0201.1]);xlabel('w/wc');ylabel('|H(jw)|^2');title(['N='num2str(N)]);gridonend图2-6椭圆滤波器的幅频特性(基于MATLAB实现)由图2-6可得出,椭圆滤波器在通带及阻带内均成等波纹振荡,并具有最窄的过渡带,其性质比拟优越,但椭圆滤波器的转移函数不但有极点,而且在轴上还有零点,所以椭圆滤波器的设计比拟复杂。2.2模拟-数字滤波器变换及其MATLAB实现在设计了模拟低通滤波器后,就可以把它们变成数字滤波器了。这些变换均是复值映射,许多文献对此都有研究,根据数字滤波器所保持的模拟滤波器的不同特性,研究出不同的变换技术。其中,最重要的有两种:脉冲响应不变法〔保持脉冲响应不变,又叫冲激响应不变法〕和双线性Z变换法〔保持系统函数不变〕。2.2.1脉冲响应不变法脉冲响应不变法的设计原理是使数字滤波器的单位抽样响应序列h(n),模仿模拟滤波器的脉冲响应g(t)。设系统传递函数为G(s)的模拟滤波器的单位脉冲响应为g(t),并将脉冲响应g(t)进行等间隔采样,使得数字滤波器的单位抽样响应h(n)刚好等于g(t)的采样值,即:(2-6)其中的为采样周期。G(s)是模拟滤波器的系统传递函数,又令H(z)是数字滤波器的系统传递函数。采样信号的拉式变换与相应的采样序列Z变换的映射关系为:(2-7)所以系统函数G(s)和H(z)的关系为:(2-8)式(2-8)的物理意义为首先将模拟滤波器的系统函数G(s)作周期的延拓,在经过式(2-7)的映射变换,映射到Z平面上,从而得到数字滤波器的系统函数H(z)。且模拟和数字频率满足以下关系:ω=ΩT。经过式(2-7)的映射,s平面的左半平面映射为Z平面的单位圆内,因此,一个因果的和稳定的模拟滤波器映射成因果的和稳定的数字滤波器。经过以上分析,按照脉冲响应不变法,通过模拟滤波器的系统传递函数G(s),可直接求得数字滤波器系统函数H(Z),其设计具体步骤归纳如下:(1)利用ω=ΩT〔可由关系式推出〕,将数字滤波器指标,转换为模拟滤波器指标,(2)根据指标,来设计模拟滤波器G(s)(3)利用局部分式展开法,把G(s)展成(2-9)(4)最后把模拟极点转换为数字极点,得到数字滤波器:(2-10)根据上述理论,将举例在MATLAB环境下用函数实现脉冲响应不变法设计一数字低通滤波器。其函数为[b,a]=impinvar(c,d,T),其中,b表示数字滤波器自变量为的分子多项式,a表示数字滤波器自变量为的分母多项式,c表示模拟滤波器自变量为s的分子多项式,d表示模拟滤波器自变量为s的分母多项式,T表示采样变换参数。%设模拟低通巴特沃斯滤波器,通带纹波为Rp=1dB,通带上限角频率ωp=0.2п,阻带下限角频率ωs=0.3п,带阻最小衰减αs=15dB,根据该低通模拟滤波器,利用冲激响应不变法设计相应的数字低通滤波器wp=0.2*pi;ws=0.3*pi;Rp=1;As=15;T=1;%采样周期%性能指标Rip=10^(-Rp/20);Atn=10^(-As/20);OmgP=wp*T;OmgS=ws*T;[N,OmgC]=buttord(OmgP,OmgS,Rp,As,'s');%选取模拟滤波器的阶数[cs,ds]=butter(N,OmgC,'s');%设计出所需的模拟低通滤波器[b,a]=impinvar(cs,ds,T);%应用脉冲响应不变法进行转换[db,mag,pha,grd,w]=freqz_m(b,a);%求得相对,绝对频响及相位、群延迟响应%绘制各条曲线subplot(2,2,1);plot(w/pi,mag);title('幅频特性');xlabel('w(/pi)');ylabel('|H(jw)|');axis([0,1,0,1.1]);set(gca,'XTickMode','manual','XTick',[00.20.30.51]);set(gca,'YTickMode','manual','YTick',[0AtnRip1]);gridsubplot(2,2,2);plot(w/pi,db);title('幅频特性(dB)');xlabel('w(/pi)');ylabel('dB');axis([0,1,-40,5]);set(gca,'XTickMode','manual','XTick',[00.20.30.51]);set(gca,'YTickMode','manual','YTick',[-40-As-Rp0]);gridsubplot(2,2,3);plot(w/pi,pha/pi);title('相频特性');xlabel('w(/pi)');ylabel('pha(/pi)');axis([0,1,-1,1]);set(gca,'XTickMode','manual','XTick',[00.20.30.51]);gridsubplot(2,2,4);plot(w/pi,grd);title('群延迟');xlabel('w(/pi)');ylabel('Sample');axis([0,1,0,12]);set(gca,'XTickMode','manual','XTick',[00.20.30.51]);grid%本设计用到的M文件函数function[db,mag,pha,grd,w]=freqz_m(b,a)%滤波器幅值响应〔绝对、相对〕、相位响应及群延迟%Usage:[db,mag,pha,grd,w]=freqz_m(b,a)%500点对应[0,pi]%db相对幅值响应;mag绝对幅值响应;pha相位响应;grd群延迟响应;%w采样频率;b系统函数H(z)的分子项%a系统函数H(z)的分母项[H,w]=freqz(b,a,500);%500点的幅频响应mag=abs(H);db=20*log10(mag/max(mag));pha=angle(H);grd=grpdelay(b,a,w);图2-7脉冲响应不变法设计数字低通滤波器的特性(基于MATLAB实现)总结以上,脉冲响应不变法的优点是频率坐标变换是线性的,即ω=ΩT,如不考虑频率混叠现象,用这种方法设计数字滤波器会很好的重现原模拟滤波器的频率响应。另外一个优点是数字滤波器的单位脉冲响应完全模仿模拟滤波器的单位冲激响应,时域逼近好。但其也具有很大的缺点,假设抽样频率不高或其它原因将产生混叠失真,不能重现原模拟滤波器频率响应。所以,脉冲响应不变法适合低通、带通滤波器设计,不适合高通、带阻滤波器的设计。2.2.2双线性Z变换法利用脉冲响应不变法设计数字滤波器时,由于ω=ΩT的频率关系是根据推导的,所以是轴每隔2π/T便映射到单位圆上一周,引起了频域混叠。为克服这一现象,人们找到了另一种映射关系:(2-11)此关系称为双线性Z变换法。双线性Z变换法的根本思路是:首先将整个s平面压缩到s1平面的一条带宽为2π/T〔丛-π/T到π/T〕的横带里,然后通过标准的变化关系将横带变换成整个Z平面上去,这样就得到s平面与Z平面间的一一对应的单值关系,整个过程如图2-8所示:jΩjΩ1jIm(Z)π/T0б0б01б-π/Ts平面s1平面Z平面图2-8双线性Z变换法的映射关系由式(2-11)得(2-12)及(2-13)(2-14)式(2-11)及式(2-12)给出了s和z之间的映射关系,而式(2-13)和式(2-14)给出了Ω和ω之间的映射关系,但这是一种非映射关系,双线性Z变换法正是利用了正切函数的非线性特点,把整个jΩ轴压缩到了单位圆的一周上。在MATLAB中,双线性Z变换可通过bilinear函数实现,其调用格式为:[Bz,Az]=bilinear(B,A,Fs),其中B,A为模拟滤波器的传递函数G(s)的分子分母多项式系数分量,而Bz,Az为数字滤波器的传递函数H(Z)的分子分母多项式的系数分量。%使用双线性Z变换设计一低通数字滤波器,fp=100HZ,fs=300HZ,αp=3dB,αs=20dB,抽样频率为Fs=1000HZfp=100;fs=300;Fs=1000;rp=3;rs=20;wp=2*pi*fp/Fs;ws=2*pi*fs/Fs;Fs=Fs/Fs%使Fs为一wap=tan(wp/2);was=tan(ws/2);[n,wn]=buttord(wap,was,rp,rs,'s')[z,p,k]=buttap(n);[bp,ap]=zp2tf(z,p,k)[bs,as]=lp2lp(bp,ap,wap)[bz,az]=bilinear(bs,as,Fs/2)[H,w]=freqz(bz,az,256,Fs*1000);图2-9双线性Z变换设计数字低通滤波器的特性(基于MATLAB实现)2.3频带变换及其MATLAB实现除了低通数字滤波器之外,实际中还常常需要高通、带通、及带阻数字滤波器。设计这三种滤波器的方法有很多,例如基于模拟滤波器转换法的IIR数字滤波器设计,基于直接数字域法的IIR数字滤波器设计等等。下面将具体介绍基于滤波器转换法的IIR数字滤波器设计—直接由模拟低通滤波器转换成数字高通、带通或带阻滤波器。2.3.1模拟低通滤波器转换成数字高通滤波器假设模拟低通滤波器的系统传递函数为G(s),那么模拟低通滤波器s平面到数字高通滤波器的Z平面的变换公式为:(2-15)频率变换公式为:(2-16)从而得到数字高通滤波器的传递函数表达式为:(2-17)接下来,基于MATLAB利用巴特沃斯模拟滤波器举例,设计一数字高通滤波器,要求通带截止频率为通带截至频率为0.6π,通带内衰减不大于1dB,阻带起始频率为0.4π,阻带内衰减不小于15dB,采样周期为Ts=1。clearall;Wp=0.6*pi;Ws=0.4*pi;Ap=1;As=15;[N,wn]=buttord(Wp/pi,Ws/pi,Ap,As)%计算巴特沃斯滤波器阶次和截至频率[b,a]=butter(N,wn,'high');%频率变换法设计巴特沃斯高通滤波器[b0,B,A]=dir2cas(b,a)%数字高通滤波器级联型[db,mag,pha,grd,w]=freqz_m(b,a)%数字滤波器响应subplot(211);plot(w/pi,mag);title('高通数字滤波器幅频响|H(ejOmega)|')subplot(212);plot(w/pi,db);title('高通数字滤波器幅频响(db)')其MATLAB运行结果为:b0=0.0751B=1.0000-2.00001.00001.0000-2.00001.0000A=1.00000.15620.44881.00000.11240.0425所以由巴特沃斯模拟滤波器设计的数字高通滤波器的传递函数表达式为:图2-10基于巴特沃斯模拟滤波器设计的数字高通滤波器的幅频响应曲线2.3.2模拟低通滤波器转换成数字带通滤波器假设模拟低通滤波器的系统传递函数为G(s),那么模拟低通滤波器s平面到数字带通滤波器的Z平面的变换公式为:(2-18)频率变换公式为:(2-19)其中:(2-20)式中为下截止频率,为上截止频率。从而可得数字带通滤波器的传递函数表达式为:(2-21)接下来,基于MATLAB利用巴特沃斯模拟滤波器举例,设计一数字带通滤波器,要求带通上下截止频率为0.4π,0.3π,带通内衰减不大于3dB,阻带上下起始频率为0.5π,0.2π,阻带内衰减不小于18dB。clearall;Wp=[0.3*pi,0.4*pi];Ws=[0.2*pi,0.5*pi];Ap=3;As=18;[N,wn]=buttord(Wp/pi,Ws/pi,Ap,As);%计算巴特沃斯滤波器阶次和截至频率[b,a]=butter(N,wn,'bandpass');%频率变换法设计巴特沃斯带通滤波器[b0,B,A]=dir2cas(b,a)%数字带通滤波器级联型[db,mag,pha,grd,w]=freqz_m(b,a);%数字滤波器响应subplot(211);plot(w/pi,mag);title('带通数字滤波器幅频响|H(ejOmega)|')subplot(212);plot(w/pi,db);title('带通数字滤波器幅频响(db)')其MATLAB运行结果为:b0=0.0213B=1.0000-2.00001.00001.00002.00001.0000A=1.0000-0.62490.78401.0000-1.00530.8061所以由巴特沃斯模拟滤波器设计的数字带通滤波器的传递函数表达式为:图2-11基于巴特沃斯模拟滤波器设计的数字带通滤波器的幅频响应曲线2.3.3模拟低通滤波器转换成数字带阻滤波器假设模拟低通滤波器的系统传递函数为G(s),那么模拟低通滤波器s平面到数字带阻滤波器的Z平面的变换公式为:(2-22)频率变换公式为:(2-23)其中:(2-24)式中为下截止频率,为上截止频率。从而可得数字带阻滤波器的传递函数表达式为:(2-25)接下来,基于MATLAB利用巴特沃斯模拟滤波器举例,设计一数字带通滤波器,要求通带上下截止频率为0.8π,0.2π,通带内衰减不大于1dB,阻带上下起始频率为0.7π,0.4π,阻带内衰减不小于30dB。clearall;Wp=[0.4*pi,0.7*pi];Ws=[0.2*pi,0.8*pi];Ap=1;As=30;[N,wn]=buttord(Wp/pi,Ws/pi,Ap,As);%计算巴特沃斯滤波器阶次和截至频率[b,a]=butter(N,wn,'stop');%频率变换法设计巴特沃斯带阻滤波器[b0,B,A]=dir2cas(b,a)%数字带阻滤波器级联型[db,mag,pha,grd,w]=freqz_m(b,a);%数字滤波器响应subplot(211);plot(w/pi,mag);title('数字带阻滤波器幅频响|H(ejOmega)|')subplot(212);plot(w/pi,db);title('数字带阻滤波器幅频响(db)')其MATLAB运行结果为:b0=0.1054B=1.00000.35631.00211.00000.35480.99681.00000.35271.00531.00000.34960.99481.00000.34751.00321.00000.34600.9979A=1.00001.14500.80871.00000.84690.50871.00000.46080.29431.0000-0.02220.26311.0000-0.39590.45081.0000-0.66170.7750图2-12基于巴特沃斯模拟滤波器设计的数字带阻滤波器的幅频响应曲线2.4小结这一章主要是用MATLAB语言进行IIR滤波器的设计和实现。IIR滤波器的设计步骤分为三步,即模拟低通滤波器设计,模拟-数字滤波器变换,滤波器的频带变换。在模拟低通滤波器的设计中,主要讨论了三种设计方法;在模拟-数字滤波器变换中,讨论了两种变换方法,即脉冲响应不变法和双线性Z变换法;在频带变换的实现中,主要以巴特沃斯滤波器为例并结合MATLAB信号处理工具箱中提供的几个相关函数来进行分析设计。整个设计过程都是在理论分析的根底上,用MATLAB语言来进行编程设计,并最终通过具体滤波器指标来加以实现的。第3章FIR滤波器设计及其MATLAB实现IIR数字滤波器的设计方法是利用模拟滤波器成熟的理论及设计图表进行的,因而保存了一些典型模拟滤波器优良的幅度特性,但设计中只考虑到了幅度特性,没考虑到相位特性,所设计的滤波器相位特性一般是非线性的。为得到线性相位特性,必须增加相位校正网络,使滤波器设计变得复杂。而FIR滤波器在保证幅度特性满足技术要求的同时,很容易做到有严格的线性相位特性。设FIR滤波器单位脉冲响应h(n)长度为N,其系统函数H(z)为H(z)是的(N-1)次多项式,它在z平面上有(N-1)个零点,原点z=0是(N-1)阶重极点。因此,H(z)永远稳定。稳定和线性相位特性是FIR滤波器突出的特点。FIR滤波器的设计方法与IIR数字滤波器的设计方法有很大的不同。FIR滤波器的设计任务是选择有限长度的h(n),使传递函数满足技术要求。3.1线性相位FIR数字滤波器的条件和特点3.1.1线性相位条件对于长度为N的h(n),传输函数为(3-1)(3-2)式中,称为幅度特性,称为相位特性。的线性相位是指是的线性函数,即,为常数(3-3)如果满足下式:,是起始相位(3-4)以上两种情况都满足群延迟是一个常数,即一般称满足(3-3)为第一类线性相位;满足(3-4)为第二类线性相位。第一类线性相位特性是h(n)是实序列且对(N-1)/2偶对称,即h(n)=h(N-n-1)。第二类线性相位特性是h(n)是实序列且对(N-1)/2奇对称,即h(n)=-h(N-n-1)。3.1.2线性相位FIR滤波器幅度特性的特点由于h(n)的长度N取奇数还是偶数,对的特性有影响。因此,对于两类线性相位,下面将分四种情况讨论其幅度特性特点。(1)h(n)=h(N-n-1),N=奇数,其幅度特性的特点是对ω=0,π,2π是偶对称的。(2)h(n)=h(N-n-1),N=偶数,其幅度特性的特点是对ω=π奇对称的,且在ω=π处有一零点,使,这样,对于高通和带阻不适合采用这种情况。(3)h(n)=-h(N-n-1),N=奇数,其幅度特性的特点在ω=0,π,2π处为零,即在z=1处是零点,且对ω=0,π,2π呈奇对称形式。(4)h(n)=-h(N-n-1),N=偶数,其幅度特性在ω=0,2π处为零,即在z=1处有一个零点,且对ω=0,2π奇对称,对ω=π呈偶对称。3.1.3线性相位FIR滤波器零点分布特点第一类和第二类线性相位的系统函数综合起来表示为:(3-5)上式说明,如是H(z)的零点,其倒数也必然是其零点;又因为h(n)是实序列,H(z)的零点必定共轭成对,因此和也是其零点。这样,线性相位FIR滤波器零点分布特点是零点必须是互为倒数的共轭对,确定其中一个,另外三个零点也就确定了。3.2常用窗函数及MATLAB实现窗函数在设计FIR数字滤波器中有很重要的作用,正确的选择窗函数可以提高所设计的数字滤波器的性能,或者在满足设计要求的情况下,减小FIR数字滤波器的阶数。因此必须对各种窗函数有相应的了解。3.2.1常用窗函数介绍1、矩形窗(Rectangularwindow)这是一种最简单的窗函数,但从阻带衰减的角度来看,其性能最差。它的定义为:(3-6)其频率响应为:(3-7)主瓣宽度为4π/N,第一副瓣比主瓣低13dB。在MATLAB中,实现矩形窗的函数为rectwin,其调用格式为w=rectwin(N),其中N是窗函数的长度,返回值w是一个N阶的向量,它由窗函数的值组成。2、三角形窗(Triangularwindow)(3-8)其频率响应为:(3-9)其主瓣宽度为8π/N,第一副瓣比主瓣低26dB。在MATLAB中,实现矩形窗的函数为triang,其调用格式为w=triang(N)。3、汉宁窗(Hanningwindow)汉宁窗函数又称升余弦函数,其时域表达式为:(3-10)其频率响应为:(3-11)其主瓣宽度为8π/N,能量更集中在主瓣之中。在MATLAB中,实现矩形窗的函数为hann,其调用格式为w=hann(N)。4、海明窗(Hammingwindow)海明窗函数是一种改良的升余弦函数,其时域表达式为:(3-12)其幅度频率特性为:(3-13)其主瓣宽度为8π/N,能量更集中在主瓣之中,主瓣的能量约占99.96%,第一旁瓣的峰值比主瓣小40dB。在MATLAB中,实现矩形窗的函数为hamming,其调用格式为w=hamming(N)。5、布拉克曼(Blackmanwindow)(3-14)布拉克曼的主瓣宽度是矩形窗主瓣宽度的三倍,为12π/N。它的最大旁瓣比主瓣值低57dB。在MATLAB中,实现矩形窗的函数为blackman,其调用格式为w=blackman(N)。3.2.2各种窗函数的实现与比拟在FIR数字滤波器的设计中,要寻找适当的窗函数来进行处理,调整窗口长度N可以有效地控制过渡带宽度;调整窗函数形状可使带内波动减少以及加大阻带衰减。如果找到的窗函数形状,使其谱函数的主瓣包含更多的能量,那么相应的旁瓣幅度就能减小,而旁瓣的减小可使通带阻带波动减小,加大阻带衰减,但这样总是以加宽过渡带为代价的。所以要根据实际需要和技术要求来选取窗函数进行设计。在MATLAB中,各个窗函数的调用函数均已给出(见3.2.1节)且用法比拟简单,所以为了更好的比拟、区别、分析及选择各个窗函数,特对各函数的幅度特性进行比拟。图3-1给出了以上五种窗函数的时域幅度波形,图3-2给出了当N=64时五种窗函数的频域幅度谱。可以看出,随着旁瓣的减小,主瓣宽度相应增加了。图3-1常用窗函数时域幅度曲线比拟(a)矩形窗(b)三角窗(c)汉宁窗(d)海明窗(e)布拉克曼窗图3-2常用窗函数频域幅度曲线比拟表3-1各种窗函数的性能比拟窗函数第一旁瓣相对于主瓣衰减/dB主瓣宽阻带最小衰减/dB矩形窗-134π/N21三角窗-258π/N25汉宁窗-318π/N44海明窗-418π/N53布拉克曼窗-5712π/N743.3基于窗函数的FIR数字滤波器设计及其MATLAB实现设计FIR数字滤波器的根本方法有窗函数法,频率抽样法,等波纹切比雪夫逼近法等,在此主要讨论基于窗函数法设计FIR数字滤波器及其MATLAB实现的问题。窗函数法又称为傅立叶级数法,它是在时域进行的,因而必须由理想滤波器的频率响应推导出其单位脉冲响应,再设计一个FIR数字滤波器的单位脉冲响应去逼近。假设理想滤波器的频率响应的表示为:(3-15)由于理想滤波器的频率响应与单位脉冲响应序列是傅立叶变换对,所以根据傅立叶反变换得到。求得理想滤波器的单位脉冲响应后,可得到该离散滤波器的系统传递函数:(3-16)但该为无限长序列,因此是物理不可实现的。求了使系统变为物理可实现的,且使实际的FIR滤波器频率响应尽可能逼近理想滤波器的频率响应,采用窗函数将无限脉冲响应截取一段h(n)来近似表示,可得:(3-17)式中ω(n)表示窗函数。从而有:(3-18)式中N表示窗口长度,这样H(z)就是物理可实现的系统了。由于这种方法是用一定宽度窗函数截取无限脉冲响应序列,获得有限长的脉冲响应序列,从而得到FIR滤波器,故称为FIR滤波器的窗函数设计法。3.3.1海明窗设计数字低通滤波器设计一个FIR低通滤波器,要求Wp=0.2π,Ws=0.4π,Ap=0.25dB,As=50dBclearall;Wp=0.2*pi;Ws=0.4*pi;tr_width=Ws-Wp;%过渡带宽度N=ceil(6.6*pi/tr_width)+1%滤波器长度n=0:1:N-1;Wc=(Ws+Wp)/2;%理想低通滤波器的截至频率hd=ideal_lp(Wc,N);%理想低通滤波器的单位冲激响应w_ham=(hamming(N));%海明窗h=hd.*w_ham;%截取得到实际的单位脉冲响应[db,mag,pha,w]=freqz_m4(h,[1]);%计算实际滤波器的幅度响应delta_w=2*pi/1000;Ap=-(min(db(1:1:Wp/delta_w+1)))%实际通带纹波As=-round(max(db(Ws/delta_w+1:1:501)))%实际阻带纹波subplot(221)stem(n,hd)%火柴棍图title('理想单位脉冲响应hd(n)')subplot(222)stem(n,w_ham)title('海明窗w(n)')subplot(223)stem(n,h)title('实际单位脉冲响应h(n)')subplot(224)plot(w/pi,db)title('幅度响应(dB)')axis([0,1,-100,10])%本程序用到的自定义函数functionhd=ideal_lp(Wc,N)alpha=(N-1)/2;n=0:1:N-1;m=n-alpha+eps;hd=sin(Wc*m)./(pi*m);function[db,mag,pha,w]=freqz_m4(b,a)[H,w]=freqz(b,a,1000,'whole');H=(H(1:1:501));w=(w(1:1:501));mag=abs(H);db=20*log10((mag+eps)/max(mag));pha=angle(H);图3-3FIR数字低通滤波器脉冲响应与幅度响应3.3.2汉宁窗设计数字高通滤波器设计一个FIR数字高通滤波器,Wp=0.6π,Ws=0.4π,Ap=0.25dB,As=40dBWp=0.6*pi;Ws=0.4*pi;tr_width=Wp-Ws;%过渡带宽度N=ceil(6.2*pi/tr_width)+1%滤波器长度n=0:1:N-1;Wc=(Ws+Wp)/2;%理想高通滤波器的截至频率hd=ideal_hp(Wc,N);%理想高通滤波器的单位冲激响应w_han=(hanning(N))';%汉宁窗h=hd.*w_han;%截取得到实际的单位脉冲响应[db,mag,pha,w]=freqz_m4(h,[1]);%计算实际滤波器的幅度响应delta_w=2*pi/1000;Ap=-(min(db(Wp/delta_w+1:1:500)))%实际通带纹波As=-round(max(db(1:1:Wp/delta_w+1)))%实际阻带纹波subplot(221)stem(n,hd)%火柴棍图title('理想单位脉冲响应hd(n)')subplot(222)stem(n,w_ham)title('汉宁窗w(n)')subplot(223)stem(n,h)title('实际单位脉冲响应h(n)')subplot(224)plot(w/pi,db)title('FIR数字高通滤波器幅度响应(dB)')axis([0,1,-100,10])functionhd=ideal_hp(Wc,N)alpha=(N-1)/2;n=0:1:N-1;m=n-alpha+eps;hd=(sin(pi*m)-sin(Wc*m))./(pi*m);图3-4FIR数字高通滤波器脉冲响应与幅度响应3.3.3布拉克曼窗及三角窗设计数字带通滤波器设计一FIR数字带通滤波器,Wpl=0.4π,Wph=0.6π,Wsl=0.2π,Wsh=0.8π,Apl=1dB,Aph=1dB,Asl=60dB,Ash=60dB。要求用布莱克曼窗和三角窗分别设计,并分析比拟设计出的带通滤波器的区别。Wpl=0.4*pi;Wph=0.6*pi;Wsl=0.2*pi;Wsh=0.8*pi;tr_width=min((Wpl-Wsl),(Wsh-Wph));%过渡带宽度N=ceil(11*pi/tr_width)+1%滤波器长度n=0:1:N-1;Wcl=(Wsl+Wpl)/2;%理想带通滤波器的下截至频率Wch=(Wsh+Wph)/2;%理想带通滤波器的上截至频率hd=ideal_bp(Wcl,Wch,N);%理想带通滤波器的单位冲激响应w_bman=(blackman(N))';%布拉克曼窗w_tri=(triang(N))';%三角窗h1=hd.*w_bman;%截取得到实际的单位脉冲响应h2=hd.*w_tri;[db1,mag1,pha1,w1]=freqz_m6(h1,[1]);%计算实际滤波器的幅度响应[db2,mag2,pha2,w2]=freqz_m7(h2,[1]);delta_w=2*pi/1000;Ap=-(min(db(Wpl/delta_w+1:1:Wph/delta_w+1)))%实际通带纹波As=-round(max(db(Wsh/delta_w+1:1:500)))%实际阻带纹波subplot(332)stem(n,w_bman)title('布拉克曼窗w(n)')subplot(333)stem(n,w_tri)title('三角窗w(n)')subplot(334)stem(n,hd)%火柴棍图title('理想单位脉冲响应hd(n)')subplot(335)stem(n,h1)title('布拉克曼窗截到的实际单位脉冲响应h1(n)')subplot(336)stem(n,h2)title('三角窗截到的实际单位脉冲响应h2(n)')subplot(338)plot(w1/pi,db1)title('布拉克曼窗数字带通滤波器幅度响应(dB)')subplot(339)plot(w2/pi,db2)title('三角窗数字带通滤波器幅度响应(dB)')functionhd=ideal_hp(Wc,N)alpha=(N-1)/2;n=0:1:N-1;m=n-alpha+eps;hd=(sin(pi*m)-sin(Wc*m))./(pi*m);图3-5FIR数字带通滤波器脉冲响应与幅度响应3.3.4汉宁窗设计数字带阻滤波器设计一FIR数字带阻滤波器,Wpl=0.2π,Wph=0.8π,Wsl=0.4π,Wsh=0.6π,Apl=1dB,Aph=1dB,Asl=40dB,Ash=40dB。Wpl=0.2*pi;Wph=0.8*pi;Wsl=0.4*pi;Wsh=0.6*pi;tr_width=min((Wsl-Wpl),(Wph-Wsh));%过渡带宽度N=ceil(6.2*pi/tr_width)%滤波器长度n=0:1:N-1;Wcl=(Wsl+Wpl)/2;%理想带阻滤波器的下截至频率Wch=(Wsh+Wph)/2;%理想带阻滤波器的上截至频率hd=ideal_bs(Wcl,Wch,N);%理想带阻滤波器的单位冲激响应w_hann=(hanning(N))';%汉宁窗h=hd.*w_hann;%截取得到实际的单位脉冲响应[db,mag,pha,w]=freqz_m7(h,[1]);%计算实际滤波器的幅度响应delta_w=2*pi/1000;Ap=-(min(db(1:1:Wpl/delta_w+1)))%实际通带纹波As=-round(max(db(Wsl/delta_w+1:1:Wsh/delta_w+1)))%实际阻带纹波subplot(221)stem(n,hd)%火柴棍图title('理想单位脉冲响应hd(n)')subplot(222)stem(n,w_bman)title('汉宁窗w(n)')subplot(223)stem(n,h)title('实际单位脉冲响应h(n)')subplot(224)plot(w/pi,db)title('FIR汉宁窗数字带阻滤波器幅度响应(dB)')axis([0,1,-100,10])functionhd=ideal_bs(Wcl,Wc2,N)alpha=(N-1)/2;n=0:1:N-1;m=n-alpha+eps;hd=(sin(Wcl*m)+sin(pi*m)-sin(Wch*m))./(pi*m);图3-6FIR数字带阻滤波器脉冲响应与幅度响应3.4小结这一章主要是用MATLAB语言进行FIR滤波器的设计和实现。本章FIR滤
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 技术转让合同(2篇)
- 卫生间卫生设施配置方案
- 健身用垫产业链招商引资的调研报告
- 2024年企业贷款抵押合同
- 2024年全面劳动合同:共绘职业蓝图
- 2024年专业版特许经营许可合同
- 加热装置产品供应链分析
- 医疗电子设备销售合同
- 2024年医疗机构室内装修工程项目合同
- 2024年商业店铺电工装修分包合同
- 2023年04月山东济南市槐荫区残联公开招聘残疾人工作“一专两员”公开招聘笔试参考题库+答案解析
- 消失的13级台阶
- 营销管理知识点
- 船体强度与结构设计课程设计
- 不宁腿综合征诊断与治疗
- 初中英语教学活动设计
- 三写作的载体与受体
- GB/T 451.3-2002纸和纸板厚度的测定
- 网签授权书(学生就业平台)
- GB/T 17853-2018不锈钢药芯焊丝
- MORA-Super摩拉生物物理治疗仪
评论
0/150
提交评论