您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 电子设计/PCB > 基于matlab的滤波器的设计与仿真
i目录1引言....................................................................12关于MATLAB.............................................................13数字滤波的基本概念.....................................................24设计方案................................................................34.1数字滤波器设计的基本步骤............................................34.1.1确定指标........................................................34.1.2模型逼近........................................................34.1.3实现性能分析和计算机仿真........................................34.2基于MATLAB的FIR数字滤波器的设计与仿真.............................34.3基于MATLAB的IIR数字滤波器的设计...................................74.3.1IIR数字滤波器的设计原理........................................74.3.2IIR数字滤波器的传统设计方法....................................74.3.3IIR数字滤波器的设计............................................84.3.4IIR数字滤波器的程序设计........................................94.3.5IIR数字滤波器的仿真...........................................105FIR数字滤波器与IIR数字滤波器的比较...................................116结论..................................................................12参考文献................................................................13ii摘要数字滤波器是一个离散系统。该系统能对输入的离散信号进行处理,从而获得所需的有用信息。现代数字滤波器的设计大体可以分为IIR和FIR两大类,可以用软件和硬件两种方法来实现,而选用MATAB信号处理工具箱为设计通用滤波器带来了极大的方便。本文按设计指标要求设计了滤波器,其中IIR采用巴特沃什,FIR采用布莱克曼窗进行设计,得出了与之对应的幅度响应曲线和相位响应曲线,最后对IIR和FIR的实现形式和性能等方面进行比较。关键词:MATLAB;IIR;FIRiiiAbstractThedigitalfilterisadiscretesystem.Thesystemcanbeabletohandlediscretesignals.Soitcanachieverequiredimportantinformation.Therearetwomajorkindsofdesignprincipleofdigitalfilter,whicharefiniteimpulseresponse(FIR)andinfiniteimpulseresponse(IIR).Themoderndigitalfiltercanbereceivedbytwokindsofmethodofsoftwareandhardware.ButusingMATLABsignaldisposingtoolcasetodesignthedigitalfilterismoreconvenientanduniversallyapplied.Themainbodyofthepaperisdemandedtodesignadigitalfilteraccordingtothedesigningindex.IIRadoptsButterworthandFIRadoptstheBlackmanwindowtodesignthedigitalfilter.Finally,carryoutcomparisononIIRandtheFIRrealizationandfunctionaspect.Keywords:MATLAB;IIR;FIR11引言理想滤波器就是一个让输入信号中的某些有用频谱分量无任何变化的通过,同时又能完全抑制另外那些不需要的成分的具有某种选择性的器件、网络或计算机硬件支持的计算程序。根据对不同信号的处理可将滤波器分为模拟滤波器和数字滤波器两种。模拟滤波器和数字滤波器的概念相同,只是信号的形式和实现滤波的方法不同。数字滤波器是指输入输出都是数字信号的滤波器。滤波器的滤波原理就是根据信号与噪声占据不同的频带,将噪声的频率放在滤波器的阻带中而由于阻带的响应为零,这样就滤去了噪声。数字滤波器可以分为两大类:一类是经典滤波器,即一般的滤波器,特点是输入信号中有用的频率成分和希望滤去的频率成分各占不同的频率带,通过一个合适的选频滤波器达到滤波的目的,这种滤波器主要是无限冲激响应滤波器和有限冲激响应滤波器;另外一类滤波器是现代滤波器,当信号和干扰的频带相互重叠,经典滤波器不能完成对干扰的有效去除时,可以采用现代滤波器,这些滤波器可以按照随即信号内部的一些统计分布规律,从干扰中最佳的提取信号。这种滤波器主要有维纳滤波器、卡尔曼滤波器、自适应滤波器等[10]。与模拟滤波器相同,数字滤波器从功能上可以分为四类,即低通(LP)、高通(HP)、带通(BP)、带阻(BS)滤波器等。数字滤波器在数字信号处理的各种应用中发挥着十分重要的作用,任何数字系统都可看成一个数字滤波器,因此数字滤波器的应用相当广泛。设计任务:设计一数字带通滤波器,分别用IIR和FIR两种类型来实现。2关于MATLABMATLAB是MatrixLaboratory(矩阵实验室)的缩写。它是美国MathWorks公司推出的用于数值计算和图形处理的数学计算环境,现已发展成为一个具有高性能数值计算和可视化功能的科学计算环境,问题的提出和解答只需以数学方式表达和描述,不需要大量原始而传统的编程过程。该软件包括:数值分析、矩阵计算、数字信号处理、建模和系统控制等应用程序。MATLAB语言简洁、紧凑、使用方便,有丰富的运算符号和函数库,还具有结构化的控制语句和面向对象编程的特点。随着其版本的不断提高,各种2工具箱的扩充和完善,MATLAB的功能越来越强大,从而被广泛应用于仿真技术、自动控制和数字信号处理等领域。MATLAB是一个交互式系统,特别适用于研究、解决工程和数学问题,典型应用包括:一般的数值计算、算法原型以及通过矩阵公式解决一些特殊问题,促进了统计、数字信号处理等科学的发展。MATLAB功能强大、简单易学、编程效率高,深受广大科技工作者的欢迎。特别是MATLAB还具有信号分析工具箱,不需具备很强的编程能力,就可以很方便地进行信号分析、处理和设计。MATLAB的信号处理工具箱提供了丰富而简便的设计、实现IIR和FIR的方法,使原来烦琐的程序设计简化成函数的调用,特别是滤波器的表达方式和滤波器形式之间的相互转换显得十分简便,为滤波器的设计和实现开辟了一片广阔的天地。数字滤波器采用传统的设计方法要进行大量复杂的运算,而利用MATLAB强大的计算功能进行计算机辅助设计,就可以快速要效的设计数字滤波器,大大的简化计算量,直观简便。MATLAB的信号处理工具箱包含了各种经典的和现代的数字信号处理技术,是一个非常优秀的算法研究和辅助设计的工具。在设计数字滤波器时,通常采用信号处理工具箱提供的设计模拟和数字滤波器的MATLAB函数采用编程的方法和仿真实现,亦可以利用信号处理工具箱提供的滤波器设计和分析工具(FilterDesign&AnalysisTool)实现。MATLAB的一种重要的工作方式就是M文件的编程工作方式。M文件有两种形式,一种是脚本文件,另一种是函数文件。M文件的扩展名为“.m”。M文件可以通过任何纯文本编辑器进行编辑,MATLAB也自带有文本编辑器,使用“edit”命令即可开启。3数字滤波的基本概念滤波器的种类很多,从功能上可以分为低通、高通、带通和带阻滤波器,每一种又有模拟滤波器和数字滤波器两种形式。如果滤波器的输入和输出都是离散时间信号,则该滤波器的冲击响应也必然是离散的,这种滤波器称之为数字滤波器。该滤波器通过对时域中离散的采样数据作差分运算实现滤波。一个线性时不变数字滤波器可以用常系数线性差分方程表示为3式中x(n),y(n)分辨是输入和输出信号序列;ai,bk分别是滤波系数。当上式bk中系数全部为零时,就有这种形式的滤波器为有限冲激响应滤波器,简称FIR型。此事系统的输出仅与输入有关。它的实现一般采用非递归算法。4设计方案4.1数字滤波器设计的基本步骤4.1.1确定指标在设计一个滤波器之前,必须首先根据工程实际的需要来确定滤波器的技术指标。在很多实际应用中,数字滤波器常被用来实现选频操作。因此指标的形式一般在频域中给出幅度和相位响应。4.1.2模型逼近一旦确定了技术指标,就可以利用已学习过的基本原理和关系式,提出一个滤波器模型来逼近给定的技术指标。这是滤波器设计所要研究的主要问题。4.1.3实现性能分析和计算机仿真以上两步的结果得到的滤波器,通常是以差分方程、系统函数或脉冲响应描述的。根据这个描述就可以分析其频率特性和相位特性,以验证设计结果是否满足指标要求;或者利用计算机仿真实现设计的滤波器,再分析滤波结果来判断。4.2基于MATLAB的FIR数字滤波器的设计与仿真利用MATLAB设计滤波器,可以随时对比设计要求和滤波器特性调整参数,直观简便,极大地减轻了工作量,有利于滤波器设计的优化。FIR滤波器的设计方法有窗函数法、最优化设计法及约束最小二乘逼近法。MATLAB信号处理工具箱中提供了滤波器设计方法的工具函数,编程中可以根据设计要求直接调用相应函数,方便快捷。本设计数字滤波器的性能指标为:2.0,BRBAd25.0d50s.03ps,,,4要求用窗函数设计一个高通滤波器。本例采用凯泽窗函数设计该高通滤波器,原程序节选如下:As=50;ws=0.2*Pi;wp=0.3*Pi;tr_width=wp-ws;M=ceil((As-7.95)*2*pi/(14.36*tr_width)+l)+l;disp([‘滤波器的长度为’,num2str(M)]);beta=0.1102*(AS-8.7);n=【0:l:M-l]:disp([‘线性相位斜率为’,num2str(beta)]);w_kai=(kaiser(M,beta))’;wc=(ws+wp)/2:hd=ideal_lp(pi,M)-ideal_lp(wc,M);h==hd.*w_kai;[db,mag,pha,grd,w]=freqz_m(h,[1]);delta_w=2*pi/l000;Rp=-(min(db(wp/delta_w+l:l:501)));disp([‘实际通带波动为’,num2str(Rp)]);As=-round(max(db(l:l:ws/delta_w+l)));disp([‘最小阻带衰减为’,num2str(As)]);subplot(l,l,l);subplot(2,2,l);stem(n,hd);title(‘理想脉冲响应’);axis([0,M-l-0,40.8])
本文标题:基于matlab的滤波器的设计与仿真
链接地址:https://www.777doc.com/doc-2570718 .html