




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于MATLAB的模拟滤波器设计引言第 页(共34页)第 页(共34页)第 页(共34页)基于MATLAB的模拟滤波器设计引言1.1选题背景1917年美国和德国科学家分别发明了LC滤波器,次年美国发明了第一个多路复用系统。50年代无源滤波在相频技术日趋成熟,自60年代起由于微电子技术、信息技术、计算机技术、集成工艺和材料工业的发展,滤波器朝着低功耗、高精度、小体积、多功能、高稳定性和价廉方向努力,这些成为70年代以后的主攻方向。RC有源滤波器、数字滤波器、开关电容滤波器和电荷转移器等各种滤波器的发展很快,它们被单片集成化。80年代,主要致力于各类新型滤波器性能的研究,并逐渐扩大应用范围。90年
2、代至今主要致力于把各类滤波器应用于各类产品中,几乎在所有的工程技术领域中都会涉及到信号处理问题1,而滤波是信号处理的一种基本而重要的技术,利用滤波可从复杂的信号中抑制不需要的部分,提取所需要的信号2。滤波器的优劣直接决定着产品的优劣,所以滤波技术一直是极为敏感和热门的课题,对滤波器的研制也历来为各国所重视。在当今30多个数学类科技应用软件中,就软件数学处理的原始内核而言,可分为两大类。一类是数值计算型软件,如MATLAB,Xmath,Gauss等,这类软件长于数值计算,对处理大批数据效率高;另一类是数学分析型软件,Mathematica,Maple等,这类软件以符号计算见长,能给出解析解和任意
3、精确解,其缺点是处理大量数据时效率较低。时至今日,经过MathWorks公司的不断完善,MATLAB已经发展成为适合多学科,多种工作平台的功能强大的大型软件。在欧美等高校,MATLAB已经成为线性代数,自动控制理论,数理统计,数字信号处理,时间序列分析,动态系统仿真等高级课程的基本教学工具。利用MATLAB具有较严谨的科学计算和图形界面显示这一优点,从而使滤波器设计结果显示的更加直观,且设计扩展性好,便于调节滤波器的性能。1.2目的和意义MATLAB中的图形界面编程环境GUIDE为用户开发软件界面提供了强有力的工具,在图形界面编程环境GUIDE下,设计好滤波器的设计工具界面后,对界面上各个控件
4、的回调函数进行编写就能设计出交互式滤波器的分析设计软件。利用MATLAB具有较严谨的科学计算和图形显示这一优点,从而使滤波器设计结果显示的更加直观,设计扩展性好,便于调节滤波器的性能。通过对模拟滤波器(包括巴特沃斯滤波器和切比雪夫滤波器)的设计原理和方法的研究,在此基础上论述了模拟滤波器(包括低通、高通、带通、带阻)的设计3。1.3发展现状及趋势MATLAB以其强大的计算和绘图功能、大量稳定可靠的算法库、简洁高效的编程语言以及庞大的用户群,成为数学计算工具方面事实上的标准4。几乎所有的工程计算领域,MATLAB都有相应的软件工具箱。从20世纪90年代初期开始,MATLAB开始逐步引入到应用代数
5、、数理统计、信号与系统、制动控制、数字信号处理、通信系统、动态系统仿真等课程中学习和运用,时至今日,经过MathWorks公司的不断完善,MATLAB已经发展成为适合多学科,多种工作平台的功能强大大型软件5。在近代电信设备和各类控制系统中,滤波器应用极为广泛。几乎在所有的电子部件中使用最多,技术最为复杂的即为滤波器。滤波器的优劣直接决定着产品的优劣,所以对滤波器的研究和生产历来为各国所重视。随着电子工业的发展,对滤波器性能的要求越来越高。我国电子产品要实现大规模集成,滤波器集成化仍是重要课题。如何进一步实现滤波器的小型化、集成化和高效化是今后很长一段时间内不变的研究和发展主题。经过MathWo
6、rks公司的不断完善,在设计研究单位和工业部门,MATLAB被广泛用于科学研究和解决各种具体问题,对于滤波器的研究,能够在MATLAB里找到合适的功能6。方案论证2.1滤波器设计原理2.1.1滤波器概述滤波器是通讯系统中的一种不可缺少的器件。滤波技术是信号分析,处理技术的重要分支。无论是信号的获取,传输,还是信号的处理和交换都离不开滤波技术,它对信号安全可靠和有效灵活地传递是至关重要的。在所有的电子系统中,使用最多,技术最为复杂的应该是滤波器了。滤波器的优劣直接决定着产品的优劣,所以,滤波技术一直是极为敏感和热门的课题,对滤波器的研制也历来为各国所重视。滤波器可广义地理解为一个信号选择系统。滤
7、波器的功能是让某些频率的信号比较顺利的通过,而另外频率的信号受到较大抑制与衰减。滤波器中,把信号能够通过的频率范围,称为通频带或通带;反之,信号受到很大衰减或完全被抑制的频率范围称为阻带;通带和阻带之间的分界频率称为截止频率;理想滤波器在通带内的电压增益为常数,在阻带内的电压增益为零;带通滤波器两个截至频率的差值为带宽(BW);实际滤波器的通带和阻带之间存在一定频率范围的过渡带7。2.1.2模拟滤波器的工作原理模拟滤波器是对模拟信号实行线性滤波的一种线性时不变系统,如图1所示。在时域内,它的动态特性可以用系统的单位冲激函数的响应h(t)来描述,也就是该滤a波系统在任何时刻对输入单位冲激信号xC
8、)=6(t)的输出响应yC)二hC)。这个函数aaa从时域上反映了该滤波系统的传输特性。对于任意输入信号xC),系统的输出yC)可aa以卷积表示:yC)=JhG)x(/-P)dPTOC o 1-5 h za_aa=JxG)h(/_T)dT(1)一8aa上式表明在对线性滤波器系统进行时域分析时,采用了叠加原理,先将任意输入信号波形分成不同时间的窄脉冲之和,再分别求出各个脉冲通过滤波器之后的响应,xC)x仮并进行线性叠加从而得到总的输出信号。模拟滤波器h(t),H(s)a图1模拟滤波器原理在频域分析时,线性滤波器的转移函数H(S)等于系统的单位冲激函数的响应ah(t)的拉普拉斯变换;aA、HIJh
9、.e_stdt(2)al一)丿很明显,当s=j,上式就是傅立叶变换的表达式,它反映了滤波器的传输特性对各种频率的响应,也就是滤波器的频率响应函数H(加),它决定着滤波特性。当a滤波器输入信号xC)与输出信号yC)的拉普拉斯变换,得aaYC)=HC)XC)(3)aaa这表明两信号卷积的变换等于各自变换的乘积。在频谱关系上,一个输入信号的频谱X(jo),经过滤波器的作用后,被变换成H(jS)X(妙)的频谱。因此,根据不aaa同的滤波要求来选定H(jo),就可以得到不同类型的模拟滤波器。还可以看出,滤a波器的滤波过程就是完成信号xC)与它的单位冲激函数响应hC)之间的数学卷积运aa算过程8。2.1.
10、3模拟滤波器的设计模拟滤波器按幅度特征可以分成低通、高通、带通和带阻滤波器。它们的幅频特性如图2所示,但我们设计滤波器时,总是先设计低通滤波器,再通过频率变换将低通滤波器转换成希望类型的滤波器。利用频率变换设计模拟滤波器的步骤为:给定模拟滤波器的性能指标,如截止频率o或上、下边界频率O,O等。012确定滤波器阶数基于MATLAB的模拟滤波器设计方案论证方案论证第 页(共34页)第 页(共34页)第 页(共34页)(3)设计模拟低通原型滤波器。(4)按频率变换设计模拟滤波器(低通、高通、带通、带阻)。G和G,其中G和G分别称为通带截止psps模拟低通滤波器的设计指标有R,p频率和阻带截止频率。R
11、是通带Q中的最大衰减系数,R是阻带Q三G的最小衰减ps系数,R和R一般用dB表示。对于单调下降的幅度特性,可表示成:psR二101gp|H(j0)|2Hjp)F(4)R=10lgsH(j0)|2aH(jG)|2as)(5)如果Q=0处幅度已归一化为一,即|hCo)=1,a和a表示为sR=-10lg|H(jG)|2pap(6)R=-10lg|H(jG)2sas(7)以上技术指标用图3表示,图中称为3dB截止频率,因H(jG)=丄,-20|H(jG)=3dBac2ac图3低通滤波器的幅度特性滤波器的技术指标给定以后,需要设计一个传输函数HC),希望其幅度平方a函数满足给定的指标R和R,一般滤波器的
12、单位冲激响应为实数,因此psH(jO)|2二H(a)H(-s)Iaaas=jQ=H(jQ)H*(jQ)aa如果能由R,Q,R,Q求出|H(jQ”,那么就可以求出所需的H(s),对ppSsaa于上面介绍的典型滤波器,其幅度平方函数有自己的表达式,可以直接引用9。巴特沃斯与切比雪夫滤波器2.2.1巴特沃斯滤波器(9)当2=Q时,|H(jQ)=lca2巴特沃斯滤波器是最基本的逼近方法形式之一。它的幅频特性模平方为H(jQ)|2=)2a.Q1+()2NQc式中N是滤波器的阶数。当0=0时,|H(jQ)=1;aQ是3dB截止频率。c不同阶数N的巴特沃斯滤波器特性如图4所示,这一幅频特性具有下列特点:最大
13、平坦性:可以证明:在0=0点,它的前(2N-1)阶导数都等于0这表明巴特沃斯滤波器在0=0附近一段范围内是非常平直的,它以原点的最大平坦性来逼近理想低通滤波器。“最平响应”即由此而来。通带,阻带下降的单调性。这种滤波器具有良好的相频特性。3dB的不变性:随着N的增加,频带边缘下降越陡峭,越接近理想特性,但不管N是多少,幅频特性都通过-3dB点。图4不同阶数N的巴特沃斯滤波器特性MATLAB中设计巴特沃斯模拟滤波器的函数10:buttord功能:用于计算巴特沃斯模拟滤波器的阶数N和3dB截止频率wc。格式:N,wc=buttord(wp,ws,Rp,Rs,s)buttap功能:用于计算滤波器的零
14、点z,极点p,增益k。格式:z,p,k=buttap(n)zp2tf功能:将模拟原型滤波器函数设计出的零点z,极点p,增益k形式转换为传递函数形式格式:b,a=zp2tf(z,p,k)lp2hp功能:模拟低通滤波器到模拟高通滤波器的变换。格式:bt,at=lp2hp(b,a,Wo)lp2bp功能:模拟低通滤波器到模拟带通滤波器的变换。格式:bt,at=lp2bp(b,a,Wo,Bw)lp2bs功能:模拟低通滤波器到模拟带阻滤波器的变换。格式:bt,at=lp2bs(b,a,Wo,Bw)freqs功能:求幅频响应和相频响应格式:H,f=freqs(b,a,w)2.2.2切比雪夫滤波器巴特沃斯滤波
15、器的频率特性曲线,无论在通带和阻带都是频率的单调函数。当通带边界处满足指标要求时,通带内肯定会有余量。因此,更有效的设计方法应该是将精确度均匀地分布在整个通带内。这可通过选择具有等波纹特性的逼近函数来达到。切比雪夫滤波器的振幅特性就是具有这种等波纹特性。它有两种型式:振幅特性在通带内是等波纹的,在阻带内是单调的切比雪夫I型滤波器;振幅特性在通带内是单调的,在阻带内是等波纹的切比雪夫II型滤波器。采用何种型式切比雪夫滤波器取决于实际用途11。这种滤波器的幅频特性模平方为:(10)式中8是决定通带内起伏的等波纹参数,T6)是第一类切比雪夫多项式。N图5(a)是按式(10)画出的切比雪夫等波纹滤波器
16、的幅频特性,图6(b)是通带内起伏与T(Q)的关系。N切比雪夫滤波器的滤波特性具有下列特点:所有曲线在Q=Q时通过鼻点,因而把Q定义为切比雪夫滤波器的截止角1+2c频率。基于MATLAB的模拟滤波器设计基于MATLAB的模拟滤波器设计方案论证第 页(共34页)第 #页(共34页)第 页(共34页)(2)(3)(4)在通带内丨Q/Q|1,特性呈单调下降,下降速度为20NdB/dec。N为奇数,H(jO)=l;N为偶数,H(jO)=。通带内误差分布是均匀的,aJ1+2实际上这种逼近称为最佳一致逼近。由于滤波器通带内有起伏,因而使通带内的相频特性也有相应的起伏波动。即相位是非线性的,这给信号传输时带
17、来线性畸变,所以在要求群时延为常数时不宜采用这种滤波器。ChbbyshevI型ChbbyshevI型阻带内是平滑的,而通带具有等波纹起伏特性13。MATLAB中设计巴特沃斯模拟滤波器的函数:cheb1ord功能:用于计算切比雪夫I型模拟滤波器的阶数n格式:n,Wn=cheb1ord(wp,ws,Rp,Rs,s)cheby1功能:确定阶数为n的切比雪夫I型模拟滤波器的分子、分母多项式格式:b,a=cheby1(n,Rp,Wn,s);freqs功能:求幅频响应和相频响应格式:H,f=freqs(b,a,w)ChbbyshevII型ChbbyshevII型通带内是平滑的,而阻带具有等波纹起伏特性。因
18、此,在阶数N的计算公式上是相同的,而-3dB截止频率则不同。cMATLAB中设计巴特沃斯模拟滤波器的函数:cheb2ord功能:用于计算切比雪夫II型模拟滤波器的阶数n格式:n,Wn=cheb2ord(wp,ws,Rp,Rs,s)cheby2功能:确定阶数为n的切比雪夫II型模拟滤波器的分子、分母多项式格式:b,a=cheby2(n,Rp,Wn,s);freqs功能:求幅频响应和相频响应格式:H,f=freqs(b,a,w)2.3运行环境及实现技术在Matlab中,图形用户界面(graphicaluserinterface,GUI)(如图6所示)是Matlab中一个专用于GUI程序设计的向导设
19、计器,而GUI是由各种图形对象,如图形窗口、图轴、菜单、按钮、文本框等构建的用户界面,是人机交互的有效工具和方法。通过GUIDE可以很方便地设计出各种符合要求的图形用户界面。用户通过一定的方法(如鼠标或键盘)选择、激活这些图形对象,使计算机产生某种动作或变化,比如实现计算、绘图等。GUIDE将用户保存设计好的图形用户界面保存在一个FIG资源文件中,同时自动生成包含图形用户界面初始化和组件界面布局控制代码的M文件,这个M文件为实现回调函数的编写提供了一个参考框架。FIG文件是一个二进制文件,包含系列化的图形窗口对象。所有对象的属性都是用户创建图形窗口时保存的属性。该文件最主要的功能是对象句柄的保
20、存。M文件包含GUI设计、控制函数及控件的回调函数,主要用来控制GUI展开时的各种特征。该文件基本上可以分为GUI初始化和回调函数两个部分,控件的回调函数可根据用户与GUI的具体交互行为分别调用16。本设计主要是先设计MATLAB中GUI界面设计。进行设计时,首先单击面板左边所需的控件,然后在右边的图形界面编辑区中再次单击某一恰当位置,这时将在该位上为图形界面添加相应的控件。“滤波器设计软件”图形界面(如图7所示)的完成后,点击guide界面上方的Run按钮,会生成一个FIG文件,一个M文件,其中FIG文件就是界面的图形,M文件是界面的回调函数,在M文件里每个控件的回调函数都已经自动生成,要做
21、的工作就是在文件框架下定义某些特殊要求的状态并补充完整回调函数,使单击控件时激活回调程序完成一定的功能。方案论证方案论证第 #页(共34页)第 页(共34页)图6GUI设计的图形界面图7“滤波器设计软件”GUI界面设计基于MATLAB的模拟滤波器设计设计论述第 页(共34页)第 页(共34页)滤波器设计软件”回调函数编写设计总框图如图8所示:图8设计总框图设计论述3.1设计综合要求要实现的功能:(1)能够实现人机交互,便于操作;能够选择巴特沃斯(Butterworth)、切比雪夫I(ChebyshevI)滤波器、切比雪夫II(ChebyshevII)滤波器;在下拉菜单FilterType中选择
22、滤波器类型,能够选择Lowpass、Highpass、Bandpass、Bandstop四种类型;在设计滤波器阶数时,可选择自定义阶数和利用最小阶数设计滤波器;在参数输入中,可输入截止频率Fc、滤波器通带临界频率(Fpl、Fp2)、滤波器阻带临界频率(Fst1、Fst2)、通带内的最大衰减Rp、通带内的最小衰减Rs;当用户选择(或输入)滤波器的参数时,运行后能够及时显示设计好的滤波器的幅频特性和相频特性图。“滤波器设计”软件的总体设计GUI界面设计总框图如图9所示。图9GUI界面设计总框图“滤波器设计”软件的详细设计3.3.1GUI各控件简介用户欲启动GUI操作,可以在命令窗口中输入guide
23、命令。当用户在guide中打开一个GUI时,该GUI将显示在Layout编辑器中,Layout编辑器是所有guide工具的控制面板。在布局编辑器件中可以很方便地改变GUI中网格窗口的大小,只需要单击网格区域的右下角,当鼠标变为箭头形式时,拖动鼠标,即可适时改变窗口大小。用户可以使用三种方法打开属性查看器:(1)在布局窗口中双击某个控件;(2)在View菜单中选择PropertyInspector选项;(3)右击某个控件并从弹出的快捷菜单中选择InspectorProperties选项。当运行GUI时,M文件创建一个包含所有GUI对象(如控件,菜单和坐标轴)的句柄结构,句柄结构作为每一个响应的输
24、入来处理。用户使用句柄结构可以实现如下操作:(1)在各响应之间实现数据共享;(2)访问GUI数据。假如用户欲取得变量X的数据可以想将句柄结构的一个域设为X,然后在使用guidata函数保存该句柄,如下所示:然后在使用guidata函数保存该句柄,如下所示:handlescurrent_data=X;guidata(hObject,handle);用户可以在其他任何响应中重新得到该变量值,使用的操作如下:X=handlescurrent_data;用户还可以利用句柄获取GUI控件的任意数据。用户想要使用GUI中的另一个控件(比如一个按钮)来在当前所选的某个菜单项实现某个操作,那么用户可以在该按钮
25、的响应输入如下命令:all_choices=get(handles.my_menu,string)current_choice=all_choiceget(handles.my_menu,Value)用户可以给GUI的M文件的如下部分增加程序代码:(1)打开函数(openingfunction),该函数可在GUI可见之前实施操作。输出函数(outputfunction),在必要的时候向命令行输出数据。(3)响应(callbacks),在用户激活GUI的响应控件时实施操作。打开函数包含有在GUI可见之前进行操作的代码,用户可以在打开函数中访问GUI的所有控件,因为所有GUI中的对象都在调用打开函
26、数之前就已经创建。如果用户需要在访问GUI之前实现某些操作(如创建数据或图形),那么可以通过在打开函数中添加代码来实现【17。如:对于一个文件名为my_gui的GUI来说,它的打开函数的定义语句如下:functionmy_gui_OpeningFcn(hObject,eventdata,handles,varargin)输出函数将输出结果返回给命令行。这一点在用户需要将某个变量传递给另一个GUI时尤其使用。GUI在输出函数中生成如下代码:%Outputsfromthisfunctionarereturnedtothecommandline.functionvarargout=my_gui_Ou
27、tputFcn(hObjcet,eventdata,handles)%GetdefaultcommandlineoutputfromhandlesstructureVarargout1=handles.output;按钮(RadioButtons)的响应:在图形界面中添加该控件之后,该控件将在指定位置添加按钮,按钮的标识字符由属性String控制,而返回值由Value值控制。在GUI的M文件中使用如下形式的代码来编制Radio按钮的响应程序:if(get(hObject,Value)=get(hObject,Max)%thenradiobuttonisselected-takeapproria
28、teactionelse%radiobuttonisnotselected-takeapproriateactionend“复选框”控件(CheckBoxes)的响应:在图形界面中添加该控件之后,该控件提供复选功能,将显示文本字符串及选择框。在GUI的M文件中使用如下形式的代码来编制“复选框”控件的响应程序:functioncheckbox1_Callback(hObject,eventdata,handles)if(get(hObject,Value)=get(hObject,Max)%thencheckboxischecked-takeapproriateactionelse%checkb
29、oxisnotchecked-takeapproriateactionend“文本框”控件(EditText)的响应:在图形界面中添加该控件之后,该控件的属性相当于其他语言中的文本框属性,允许用户动态地编辑或是输入文本字符串。如果需要获取用户在文本框中输入的字符串,可以在响应程序中输入如下代码:functionedittext1_Callback(hObject,eventdata,handles)user_string=get(hObject,string);%proceedwithcallback“滤波器设计”软件界面的设计1、Filterdesign下拉菜单在下拉菜单Filterdesi
30、gn中选择Butterworth、ChebyshevI等滤波器,程序和效果图(图10)如下:functionFilterDesign_Callback(hObject,eventdata,handles)AutoRun_value=get(handles.AutoRun,Value);if(AutoRun_value=1)AutoChoose(handles)end设计论述设计论述基于MATLAB的模拟滤波器设计第 #页(共34页)第 页(共34页)第 页(共34页)FilterChooseFilterDesignButterworthFilterTypeButterworthCheybysh
31、evlDisplayTypeCheybyshev2Linear图10Filterdesign下拉菜单选项2、FilterType下拉菜单在下拉菜单FilterType中选择滤波器类型选择低通或者高通滤波器时,隐藏相应的带通和带阻的第二个临界频率,使其频率参数不能输入,程序和效果图(图11、图12)如下:functionFilterType_Callback(hObject,eventdata,handles)%读取此时设计的滤波器的类型,“Lowpass、Highpass、Bandpass、BandstopFilterType_value=get(handles.FilterType,Valu
32、e);%当选择Lowpass或者Highpass,屏蔽相应的临界频率的显示if(FilterType_value=1)|(FilterType_value=2)set(handles.Fp2,visible,off);set(handles.Fs2,visible,off);set(handles.text17,visible,off);set(handles.text19,visible,off);set(handles.text6,visible,off);set(handles.text10,visible,off);else%当选择Bandpass或者Bandstop,使相应的临界频率
33、的显示,使参数能够输入if(FilterType_value=3)|(FilterType_value=4)set(handles.Fp2,visible,on);set(handles.Fs2,visible,on);set(handles.text17,visible,on);set(handles.text19,visible,on);set(handles.text6,visible,on);set(handles.text10,visible,on);endendParametersInpi.jtFrequ已ncySpecificationsParametersInputFreque
34、ncySpecifications图11低通、高通滤波器频率参数输入3、MinOrder和CustomOrde按钮图12带通、带阻滤波器频率参数输入在设计滤波器阶数时,可选择自定义阶数和利用最小阶数设计滤波器(1)按钮MinOrder选择使用最小阶数设置时,屏蔽自定义阶数的输入,如图13functionMinOrder_Callback(hObject,eventdata,handles)MinOrder_value=get(handles.MinOrder,Value);if(MinOrder_value=1)set(handles.Order,visible,off);elseset(ha
35、ndles.Order,visible,on);end(2)按钮CustomOrder选择自定义阶数时,显示阶数输入框,如图14functionCustomOrderButton_Callback(hObject,eventdata,handles)CustomOrderButton_value=get(handles.CustomOrderButton,Value);if(CustomOrderButton_value=0)set(handles.Order,visible,off);elseset(handles.Order,visible,on);end(3)其中涉及Run控件中的程序如
36、下:显示最小阶数运行结果及分析运行结果及分析基于MATLAB的模拟滤波器设计第l9页(共34页)第l9页(共34页)第 页(共34页)set(handles.MinOrderDisplay,string,num2str(n)当选择了自定义阶数时,读取自定义阶数if(MinOrder_value=0)n=str2double(get(handles.Order,String)end图13使用最小阶数设计Filter图14使用自定义阶数设计Filter4、Fp1、Fp2、Fst1、Fst2文本编辑框functionFp1_Callback(hObject,eventdata,handles)Fp1
37、_value=str2double(get(handles.Fp1,String);Fp2、Fst1、Fst2的回调函数同理编程5、Run按钮根据输入的参数显示设计的滤波器的幅频特性和相频特性图,其程序如下functionRun_Callback(hObject,eventdata,handles)%点击Run立即运行AutoChoose,m文件,实现滤波器设计程序AutoChoose(handles)6、AutoRun按钮当选择了AutoRun按钮时,能够根据所选的IIR的滤波器(Butterworth、ChebyshevI等)、FIR的窗口选项、图形显示类型(Linear、Logarith
38、mic)立即显示滤波器的幅频特性和相频特性图。回调函数程序如下:functionFilterDesign_Callback(hObject,eventdata,handles)AutoRun_value=get(handles.AutoRun,Value);%当选择了Filter(Butterworth、ChebyshevI等)中一种Filter运行AutoChoose,m文件if(AutoRun_value=1)AutoChoose(handles)end7、Quit按钮退出滤波器设计窗口,其程序如下:functionQuit_Callback(hObject,eventdata,handl
39、es)%点击Quti按钮退出Close8、AutoChoose.m程序的编写(见附录2)运行结果及分析4.1软件运行结果以设计模拟低通滤波器为例,利用Butterworth滤波器进行设计其3dB截止频率Fc=1000Hz,Fp1=200Hz,Fs1=700Hz,Rp=3dB,Rs=30dB,n=5,n=7如图15、16所示:r-PFdkEHrrgT1图15Butterworth低通滤波器(n=5)图16Butterworth低通滤波器(n=7)模拟低通滤波器:利用ChebyshevI滤波器进行设计Fpl=200Hz,Fsl=700Hz,Rp=3dB,Rs=30dB,n=5,n=7如图17、18
40、所示:运行结果及分析运行结果及分析基于MATLAB的模拟滤波器设计第 #页(共34页)第 页(共34页)第 页(共34页)图17ChebyshevI低通滤波器(n=5)图18ChebyshevI低通滤波器(n=7)模拟高通滤波器:用Butterworth滤波器进行设计Fc=2000Hz,Fp1=800HzFsl=500Hz,Rp=3dB,Rs=30dB,n=5,如图19所示:图19Butterworth高通滤波器模拟带通滤波器:用ChebyshevI滤波器进行设计Fp1=400Hz,Fp2=800Hz,Fs1=200Hz,Fs2=1000Hz,Rp=3dB,Rs=30dB,n=5,如图20所示
41、:图20ChebyshevI带通滤波器模拟带阻滤波器:ChebyshevII滤波器进行设计Fpl=400Hz,Fp2=1200Hz,Fsl=600Hz,Fs2=1000Hz,Rp=3dB,Rs=30dB,n=5,如图21所示:图21ChebyshevII带阻滤波器结束语结束语基于MATLAB的模拟滤波器设计第 #页(共34页)第 页(共34页)第 页(共34页)4.2运行结果分析由运行结果显示的幅频响应可看出,切比雪夫滤波器的振幅特性具有这种等波纹特性。它有两种型式:振幅特性在通带内是等波纹的,在阻带内是单调的切比雪夫I型滤波器;振幅特性在通带内是单调的,在阻带内是等波纹的切比雪夫II型滤波器
42、。随着N的增加,频带边缘下降越陡峭,越接近理想特性。设计Butterworth滤波器时,先设计低通滤波器,再通过频率变换将低通滤波器转换成高通、带通、带阻滤波器。由运行结果显示的幅频响应可看出Butterworth幅频特性具有下列特点:(1)最大平坦性。(2)通带,阻带下降的单调性。这种滤波器具有良好的相频特性。3dB的不变性:随着N的增加,频带边缘下降越陡峭,越接近理想特性,但不管N是多少,幅频特性都通过3dB点。结束语MATLAB以其强大的计算和绘图功能、大量稳定可靠的算法库、简洁高效的编程语言,所以利用MATLAB具有较严谨的科学计算和图形显示这一优点,从而使滤波器设计结果显示的更加直观
43、,而且对滤波器的精度也有了很大的提高,设计扩展性好,便于调节滤波器的性能。本文首先介绍了模拟滤波器的工作原理及设计思路。然后重点介绍了模拟滤波器的设计和仿真,系统研究了模拟滤波器(包括巴特沃斯滤波器和切比雪夫滤波器)的设计原理和方法。先设计模拟低通滤波器,再通过频率变换将模拟低通滤波器转换成模拟高通、带通、带阻滤波器。在此基础上,描述了如何用MATLAB的图形用户界面来设置滤波器的设计界面及回调函数的编写。利用MATLAB具有较严谨的科学计算和图形显示这一优点,从而使滤波器设计结果显示的更加直观,设计扩展性好,便于调节滤波器的性能。最后设计了一个基于MATLAB平台的有多个滤波器的类型及参数可
44、供选择的图形用户界面,通过运行可以显示出模拟滤波器(包括巴特沃斯滤波器和切比雪夫滤波器)的幅频响应和相频响应曲线。通过本次设计,学习了巴特沃斯模拟滤波器和切比雪夫模拟滤波器设计的原理与方法,学习了MATLAB中GUI界面设计的操作和回调函数的编写。在今后的学习或工作中,我将继续努力,争取能设计出操作更加方便,运行速度更加快速的方案,来用MATLAB实现各种滤波器的幅频响应和相频响应曲线的显示。在实际完成论文的过程中,由于受个人的知识、经验和能力的限制,文中肯定难免存在不足之处,恳请大家提出批评和指正。参考文献金波.信号与系统基础M.武汉:华中科技大学出版社,2006:183202刘益成.数字信
45、号处理M.北京:电子工业出版社,2004:123176金波.信号与系统实验教程M.武汉:华中科技大学出版社,2008:90145施阳.MATLAB语言工具箱M.西安:西北工业大学出版社,1998:93178赵红怡,张常年.数字信号处理及其MATLAB实现M.北京:化学工业出版社,2002:113125王宏.Matlab6.5及其在信号处理中的应用M.北京:清华大学出版社,2004:123175吴大正.信号与线性系统分析M.第3版.北京:高等教育出版社,1998:102152梁红,梁杰,陈跃斌.信号与系统分析及Matlab实现M.北京:电子工业出版社,2007:93146陈思.巴特沃斯低通滤波器
46、的简化快速设计J.信阳师范学院学报(自然科学版),1997,10(3)甘俊英,胡异丁.基于Matlab的信号与系统实验指导M.北京:清华大学出版社,2007:133162乐正友.信号与系统M.北京:清华大学出版社,2004:14316512胡光锐.信号与系统M.上海:上海交通大学出版社,1995:83128陈后金.信号与系统M.第二版.北京:清华大学出版社,北京交通大学出版社,2005:126147吴大正,高西全.Matlab在电子信息课程中的应用M.北京:电子工业出版社,2002:135178燕庆明信号与系统教程M.北京:高等教育出版社,2004:9313521IC中国电子网Z. HYPER
47、LINK /app/analog/201007/61639.htm /app/analog/201007/61639.htm电子开发网Z. HYPERLINK /html/EDAjishu/2007/0509/2051.html /html/EDAjishu/2007/0509/2051.html基于MATLAB的模拟滤波器设计附录1第 页(共34页)第 页(共34页)致谢在这次课题研究及论文编写中,老师给了我大量的建议及指导,提供了课题研究的方向,在他的帮助下,课题的疑难问题能够得以成功解决,课题能够如期顺利地完成。同时,老师严谨的治学态度和实事求是的科研精神在课题研究中时刻影响着我,这将成
48、为我在以后学习工作中的榜样,激励着我不断进步。在此特别感谢老师的悉心指导!通过这次毕业设计,我除了深入地学到了更多相关的专业知识之外,更重要的是经历了毕业设计这个过程,熟悉了一般课题研究的整个过程,为今后更深入的学习和工作奠定坚实的基础。再次对在实验及论文撰写过程中,给予我很大帮助的老师和同学们表示诚挚的谢意。附录:functionvarargout=Filter(varargin)%FILTERM-fileforFilter.figgui_Singleton=1;gui_State=struct(gui_Name,mfilename,.gui_Singleton,gui_Singleton,
49、.gui_OpeningFcn,Filter_OpeningFcn,.gui_OutputFcn,Filter_OutputFcn,.gui_LayoutFcn,.gui_Callback,);ifnargin&ischar(varargin1)gui_State.gui_Callback=str2func(varargin1);endifnargoutvarargout1:nargout=gui_mainfcn(gui_State,varargin:);elsegui_mainfcn(gui_State,varargin:);end%ExecutesjustbeforeFilterismad
50、evisible.functionFilter_OpeningFcn(hObject,eventdata,handles,varargin)%Thisfunctionhasnooutputargs,seeOutputFcn.handles.output=hObject;%Updatehandlesstructureguidata(hObject,handles);%Outputsfromthisfunctionarereturnedtothecommandline.functionvarargout=Filter_OutputFcn(hObject,eventdata,handles)vara
51、rgout1=handles.output;functionFc_Callback(hObject,eventdata,handles)%Hints:get(hObject,String)returnscontentsofFcastext%str2double(get(hObject,String)returnscontentsofFcasadouble%Executesduringobjectcreation,aftersettingallproperties.functionFc_CreateFcn(hObject,eventdata,handles)%Hint:editcontrolsu
52、suallyhaveawhitebackgroundonWindows.%SeeISPCandCOMPUTER.ifispc&isequal(get(hObject,BackgroundColor),get(0,defaultUicontrolBackgroundColor)set(hObject,BackgroundColor,white);endfunctionFp1_Callback(hObject,eventdata,handles)Fp1_value=str2double(get(handles.Fp1,String);%Hints:get(hObject,String)return
53、scontentsofFp1astext%str2double(get(hObject,String)returnscontentsofFp1asadouble%Executesduringobjectcreation,aftersettingallproperties.functionFp1_CreateFcn(hObject,eventdata,handles)%Hint:editcontrolsusuallyhaveawhitebackgroundonWindows.%SeeISPCandCOMPUTER.ifispc&isequal(get(hObject,BackgroundColo
54、r),get(0,defaultUicontrolBackgroundColor)set(hObject,BackgroundColor,white);endfunctionFp2_Callback(hObject,eventdata,handles)Fp2_value=str2double(get(handles.Fp2,String);%Hints:get(hObject,String)returnscontentsofFp2astext%str2double(get(hObject,String)returnscontentsofFp2asadouble%Executesduringob
55、jectcreation,aftersettingallproperties.functionFp2_CreateFcn(hObject,eventdata,handles)%Hint:editcontrolsusuallyhaveawhitebackgroundonWindows.%SeeISPCandCOMPUTER.ifispc&isequal(get(hObject,BackgroundColor),get(0,defaultUicontrolBackgroundColor)set(hObject,BackgroundColor,white);endfunctionFs1_Callba
56、ck(hObject,eventdata,handles)Fs1_value=str2double(get(handles.Fs1,String);%Hints:get(hObject,String)returnscontentsofFs1astext%str2double(get(hObject,String)returnscontentsofFs1asadouble%Executesduringobjectcreation,aftersettingallproperties.functionFs1_CreateFcn(hObject,eventdata,handles)%Hint:edit
57、controlsusuallyhaveawhitebackgroundonWindows.%SeeISPCandCOMPUTER.ifispc&isequal(get(hObject,BackgroundColor),get(0,defaultUicontrolBackgroundColor)set(hObject,BackgroundColor,white);endfunctionFs2_Callback(hObject,eventdata,handles)Fs2_value=str2double(get(handles.Fs2,String);%Executesduringobjectcr
58、eation,aftersettingallproperties.functionFs2_CreateFcn(hObject,eventdata,handles)%Hint:editcontrolsusuallyhaveawhitebackgroundonWindows.%SeeISPCandCOMPUTER.ifispc&isequal(get(hObject,BackgroundColor),get(0,defaultUicontrolBackgroundColor)set(hObject,BackgroundColor,white);endfunctionRp_Callback(hObj
59、ect,eventdata,handles)%Hints:get(hObject,String)returnscontentsofRpastext%str2double(get(hObject,String)returnscontentsofRpasadouble%Executesduringobjectcreation,aftersettingallproperties.functionRp_CreateFcn(hObject,eventdata,handles)%Hint:editcontrolsusuallyhaveawhitebackgroundonWindows.%SeeISPCan
60、dCOMPUTER.ifispc&isequal(get(hObject,BackgroundColor),get(0,defaultUicontrolBackgroundColor)set(hObject,BackgroundColor,white);endfunctionRs_Callback(hObject,eventdata,handles)%Hints:get(hObject,String)returnscontentsofRsastext%str2double(get(hObject,String)returnscontentsofRsasadouble%Executesdurin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年高中语文 第四单元 文言文(3)第15课 陈情表教学设计 粤教版必修5
- 18囊萤夜读教学设计-2023-2024学年四年级下册语文统编版
- Unit 2 Travelling around the world 第3课时Listening (p.24),Speaking (p.27) 教案 2024-2025学年沪教版(2024)七年级英语下册
- 2024-2025学年高中生物 第二章 基因和染色体的关系 第1节 减数分裂和受精作用 二 受精作用教学设计2 新人教版必修2
- 2024秋三年级英语上册 Unit 1 Hello Part B第一课时教学设计 人教PEP
- Module 9 Unit 1 Im going to do long jump. (教学设计)-2023-2024学年外研版(一起)英语三年级上册
- 5 国家机构有哪些 第二课时 国家机关的产生(教学设计)-部编版道德与法治六年级上册
- 11《军神》(教学设计)2023-2024学年统编版语文五年级下册
- 七年级地理下册 第七章 第4节《俄罗斯》教学设计 (新版)新人教版
- 三年级道德与法治下册 第四单元 多样的交通和通信 12 慧眼看交通教学设计2 新人教版
- 幼儿园小班社会课件:《小猴借玩具》
- DL-T5181-2017水电水利工程锚喷支护施工规范
- 【信息技术】组建无线局域网 课件 2023-2024学年人教-+中图版(2019)高中信息技术必修2
- 2023年全国护理技能大赛理论备考试题库(多选题)
- MOOC 电路基础-西北工业大学 中国大学慕课答案
- 《客舱安全与应急处置》-课件:灭火设备:洗手间灭火系统及其他
- 银发经济市场分析报告
- 枕颈椎管椎间盘狭窄个案护理
- 快乐与人分享课件
- 养老托育服务发展分析报告
- 煤矿反三违培训课件
评论
0/150
提交评论