基于MATLAB模拟滤波器设计_第1页
基于MATLAB模拟滤波器设计_第2页
基于MATLAB模拟滤波器设计_第3页
基于MATLAB模拟滤波器设计_第4页
基于MATLAB模拟滤波器设计_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、方案论证基于MATLAB的模拟滤波器设计1 引言第 33 页 (共 35 页)方案论证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。在近代电信设备和各类控制系统中,滤波器应用极为广泛。几乎在所有的电子部件中使用最多,技术最为复杂的即为滤波器。滤波器的优劣直接决定着产品的优劣,所以对滤波器的研究和生产历来为各国所重视。随着电子工业的发展,对滤波器性能的要求越来越高。我国电子产品要实现大规模集成,滤波器集成化仍是重要课题。如何进一步实现滤波器的小型化、集成化和高效化是今后很长一段时间内不变的研究和发展主题。经过MathWorks公司的不断完善,在设计研究单

6、位和工业部门,MATLAB被广泛用于科学研究和解决各种具体问题,对于滤波器的研究,能够在MATLAB里找到合适的功能6。2 方案论证2.1 滤波器设计原理2.1.1 滤波器概述滤波器是通讯系统中的一种不可缺少的器件。滤波技术是信号分析,处理技术的重要分支。无论是信号的获取,传输,还是信号的处理和交换都离不开滤波技术,它对信号安全可靠和有效灵活地传递是至关重要的。在所有的电子系统中,使用最多,技术最为复杂的应该是滤波器了。滤波器的优劣直接决定着产品的优劣,所以,滤波技术一直是极为敏感和热门的课题,对滤波器的研制也历来为各国所重视。滤波器可广义地理解为一个信号选择系统。滤波器的功能是让某些频率的信

7、号比较顺利的通过,而另外频率的信号受到较大抑制与衰减。滤波器中,把信号能够通过的频率范围,称为通频带或通带;反之,信号受到很大衰减或完全被抑制的频率范围称为阻带;通带和阻带之间的分界频率称为截止频率;理想滤波器在通带内的电压增益为常数,在阻带内的电压增益为零;带通滤波器两个截至频率的差值为带宽(BW);实际滤波器的通带和阻带之间存在一定频率范围的过渡带7。2.1.2 模拟滤波器的工作原理模拟滤波器是对模拟信号实行线性滤波的一种线性时不变系统,如图1所示。在时域内,它的动态特性可以用系统的单位冲激函数的响应来描述,也就是该滤波系统在任何时刻对输入单位冲激信号=(t)的输出响应。这个函数从时域上反

8、映了该滤波系统的传输特性。对于任意输入信号,系统的输出可以卷积表示: = (1)上式表明在对线性滤波器系统进行时域分析时,采用了叠加原理,先将任意输入信号波形分成不同时间的窄脉冲之和,再分别求出各个脉冲通过滤波器之后的响应,并进行线性叠加从而得到总的输出信号。模拟滤波器,H(s)图1 模拟滤波器原理在频域分析时,线性滤波器的转移函数等于系统的单位冲激函数的响应的拉普拉斯变换; (2)很明显,当s=j,上式就是傅立叶变换的表达式,它反映了滤波器的传输特性对各种频率的响应,也就是滤波器的频率响应函数,它决定着滤波特性。当滤波器输入信号与输出信号的拉普拉斯变换,得 (3)这表明两信号卷积的变换等于各

9、自变换的乘积。在频谱关系上,一个输入信号的频谱,经过滤波器的作用后,被变换成的频谱。因此,根据不同的滤波要求来选定,就可以得到不同类型的模拟滤波器。还可以看出,滤波器的滤波过程就是完成信号与它的单位冲激函数响应之间的数学卷积运算过程8。2.1.3 模拟滤波器的设计模拟滤波器按幅度特征可以分成低通、高通、带通和带阻滤波器。它们的幅频特性如图2所示,但我们设计滤波器时,总是先设计低通滤波器,再通过频率变换将低通滤波器转换成希望类型的滤波器。实际通带阻带理想理想通带阻带实际(a)(b)(c)理想实际 理想实际(d)图2 几种滤波器的幅频响应模拟滤波器的设计方法:利用频率变换设计模拟滤波器的步骤为:(

10、1) 给定模拟滤波器的性能指标,如截止频率或上、下边界频率等。(2) 确定滤波器阶数(3) 设计模拟低通原型滤波器。(4) 按频率变换设计模拟滤波器(低通、高通、带通、带阻)。模拟低通滤波器的设计指标有,和,其中和分别称为通带截止频率和阻带截止频率。是通带中的最大衰减系数,是阻带的最小衰减系数,和一般用dB表示。对于单调下降的幅度特性,可表示成: (4) (5)如果=0处幅度已归一化为一,即,和表示为 (6) (7)以上技术指标用图3表示,图中称为3dB 截止频率,因,-20 10.7070图3 低通滤波器的幅度特性滤波器的技术指标给定以后,需要设计一个传输函数,希望其幅度平方函数满足给定的指

11、标和,一般滤波器的单位冲激响应为实数,因此 = (8)如果能由,求出,那么就可以求出所需的,对于上面介绍的典型滤波器,其幅度平方函数有自己的表达式,可以直接引用9。2.2 巴特沃斯与切比雪夫滤波器2.2.1 巴特沃斯滤波器巴特沃斯滤波器是最基本的逼近方法形式之一。它的幅频特性模平方为 (9)式中N是滤波器的阶数。当=0时,;当=时,是3dB截止频率。不同阶数N的巴特沃斯滤波器特性如图4所示,这一幅频特性具有下列特点:(1) 最大平坦性:可以证明:在=0点,它的前(2N-1)阶导数都等于0,这表明巴特沃斯滤波器在=0附近一段范围内是非常平直的,它以原点的最大平坦性来逼近理想低通滤波器。“最平响应

12、”即由此而来。(2) 通带,阻带下降的单调性。这种滤波器具有良好的相频特性。(3) 3dB的不变性:随着N的增加,频带边缘下降越陡峭,越接近理想特性,但不管N是多少,幅频特性都通过-3dB点。图4 不同阶数N的巴特沃斯滤波器特性MATLAB中设计巴特沃斯模拟滤波器的函数10:(1) buttord功能:用于计算巴特沃斯模拟滤波器的阶数N和3dB截止频率wc。格式:N,wc=buttord(wp,ws,Rp,Rs,s)(2) buttap功能:用于计算滤波器的零点z,极点p,增益k。格式:z,p,k=buttap(n)(3) zp2tf功能:将模拟原型滤波器函数设计出的零点z,极点p,增益k形式

13、转换为传递函数形式格式:b,a=zp2tf(z,p,k)(4) lp2hp功能:模拟低通滤波器到模拟高通滤波器的变换。格式:bt,at = lp2hp(b,a,Wo)(5) lp2bp功能:模拟低通滤波器到模拟带通滤波器的变换。格式:bt,at = lp2bp(b,a,Wo,Bw)(6) lp2bs功能:模拟低通滤波器到模拟带阻滤波器的变换。格式:bt,at = lp2bs(b,a,Wo,Bw)(7) freqs功能:求幅频响应和相频响应格式:H,f=freqs(b,a,w)2.2.2 切比雪夫滤波器巴特沃斯滤波器的频率特性曲线,无论在通带和阻带都是频率的单调函数。当通带边界处满足指标要求时,

14、通带内肯定会有余量。因此,更有效的设计方法应该是将精确度均匀地分布在整个通带内。这可通过选择具有等波纹特性的逼近函数来达到。切比雪夫滤波器的振幅特性就是具有这种等波纹特性。它有两种型式:振幅特性在通带内是等波纹的,在阻带内是单调的切比雪夫I型滤波器;振幅特性在通带内是单调的,在阻带内是等波纹的切比雪夫II型滤波器。采用何种型式切比雪夫滤波器取决于实际用途11。这种滤波器的幅频特性模平方为: (10)方案论证式中是决定通带内起伏的等波纹参数,是第一类切比雪夫多项式。图5(a)是按式(10)画出的切比雪夫等波纹滤波器的幅频特性,图6(b)是通带内起伏与的关系12。1N=4N=5(a)11o-111

15、-1o0.590.310.950.75(b)图5 切比雪夫滤波特性及内波纹关系切比雪夫滤波器的滤波特性具有下列特点:(1) 所有曲线在=时通过点,因而把定义为切比雪夫滤波器的截止角频率。(2) 在通带内/1,在1和之间变化;在通带外,/ >1,特性呈单调下降,下降速度为20NdB/dec。(3) N为奇数,=1;N为偶数,=。通带内误差分布是均匀的,实际上这种逼近称为最佳一致逼近。(4) 由于滤波器通带内有起伏,因而使通带内的相频特性也有相应的起伏波动。即相位是非线性的,这给信号传输时带来线性畸变,所以在要求群时延为常数时不宜采用这种滤波器。2.2.2.1 ChbbyshevI型Chbb

16、yshev I型阻带内是平滑的,而通带具有等波纹起伏特性13。MATLAB中设计巴特沃斯模拟滤波器的函数14:(1) cheb1ord功能:用于计算切比雪夫I型模拟滤波器的阶数n格式:n,Wn=cheb1ord(wp,ws,Rp,Rs,'s')(2) cheby1功能:确定阶数为n的切比雪夫I型模拟滤波器的分子、分母多项式格式:b,a=cheby1(n,Rp,Wn,'s');(3) freqs功能:求幅频响应和相频响应格式:H,f=freqs(b,a,w)2.2.2.2 ChbbyshevII型ChbbyshevII型通带内是平滑的,而阻带具有等波纹起伏特性。因

17、此,在阶数N的计算公式上是相同的,而-3dB截止频率则不同15。MATLAB中设计巴特沃斯模拟滤波器的函数:(1) cheb2ord功能:用于计算切比雪夫II型模拟滤波器的阶数n格式:n,Wn=cheb2ord(wp,ws,Rp,Rs,'s')(2) cheby2功能:确定阶数为n的切比雪夫II型模拟滤波器的分子、分母多项式格式:b,a=cheby2(n,Rp,Wn,'s');(3) freqs功能:求幅频响应和相频响应格式:H,f=freqs(b,a,w)2.3 运行环境及实现技术在Matlab中,图形用户界面(graphical user interface

18、,GUI) (如图6所示)是Matlab中一个专用于GUI程序设计的向导设计器,而GUI是由各种图形对象,如图形窗口、图轴、菜单、按钮、文本框等构建的用户界面,是人机交互的有效工具和方法。通过GUIDE可以很方便地设计出各种符合要求的图形用户界面。用户通过一定的方法(如鼠标或键盘)选择、激活这些图形对象,使计算机产生某种动作或变化,比如实现计算、绘图等。GUIDE将用户保存设计好的图形用户界面保存在一个FIG资源文件中,同时自动生成包含图形用户界面初始化和组件界面布局控制代码的M文件,这个M文件为实现回调函数的编写提供了一个参考框架。FIG文件是一个二进制文件,包含系列化的图形窗口对象。所有对

19、象的属性都是用户创建图形窗口时保存的属性。该文件最主要的功能是对象句柄的保存。M文件包含GUI设计、控制函数及控件的回调函数,主要用来控制GUI展开时的各种特征。该文件基本上可以分为GUI初始化和回调函数两个部分,控件的回调函数可根据用户与GUI的具体交互行为分别调用16。本设计主要是先设计MATLAB中GUI界面设计。进行设计时, 首先单击面板左边所需的控件, 然后在右边的图形界面编辑区中再次单击某一恰当位置, 这时将在该位上为图形界面添加相应的控件。“滤波器设计软件”图形界面(如图7所示)的完成后,点击guide界面上方的Run按钮,会生成一个FIG文件,一个M文件,其中FIG文件就是界面

20、的图形,M文件是界面的回调函数,在M文件里每个控件的回调函数都已经自动生成,要做的工作就是在文件框架下定义某些特殊要求的状态并补充完整回调函数, 使单击控件时激活回调程序完成一定的功能。图6 GUI设计的图形界面图7 “滤波器设计软件”GUI界面设计“滤波器设计软件”回调函数编写设计总框图如图8所示:设置参数幅频响应和相频响应曲线滤波器设计选择滤波器类型图8 设计总框图3 设计论述3.1 设计综合要求要实现的功能:(1) 能够实现人机交互,便于操作;(2) 能够选择巴特沃斯(Butterworth)、切比雪夫(Chebyshev)滤波器、切比雪夫(Chebyshev)滤波器;(3) 在下拉菜单

21、Filter Type中选择滤波器类型,能够选择Lowpass、Highpass、Bandpass、Bandstop四种类型;(4) 在设计滤波器阶数时,可选择自定义阶数和利用最小阶数设计滤波器 ;(5) 在参数输入中,可输入截止频率Fc、滤波器通带临界频率(Fp1、Fp2)、滤波器阻带临界频率(Fst1、Fst2)、通带内的最大衰减Rp、通带内的最小衰减Rs;(6) 当用户选择(或输入)滤波器的参数时,运行后能够及时显示设计好的滤波器的幅频特性和相频特性图。设计论述3.2 “滤波器设计”软件的总体设计GUI界面设计总框图如图9所示。ButterworthChebyShev2Chebyshev

22、1设置参数幅频响应和相频响应曲线滤波器设计选择滤波器类型图9 GUI界面设计总框图3.3 “滤波器设计”软件的详细设计3.3.1 GUI各控件简介用户欲启动GUI操作,可以在命令窗口中输入guide命令。当用户在guide中打开一个GUI时,该GUI将显示在Layout编辑器中,Layout编辑器是所有guide工具的控制面板。在布局编辑器件中可以很方便地改变GUI中网格窗口的大小,只需要单击网格区域的右下角,当鼠标变为箭头形式时,拖动鼠标,即可适时改变窗口大小。用户可以使用三种方法打开属性查看器:(1)在布局窗口中双击某个控件;(2)在View菜单中选择Property Inspector选

23、项;(3)右击某个控件并从弹出的快捷菜单中选择Inspector Properties选项。当运行GUI时,M文件创建一个包含所有GUI对象(如控件,菜单和坐标轴)的句柄结构,句柄结构作为每一个响应的输入来处理。用户使用句柄结构可以实现如下操作:(1)在各响应之间实现数据共享;(2)访问GUI数据。假如用户欲取得变量X的数据可以想将句柄结构的一个域设为X,然后在使用guidata函数保存该句柄,如下所示:然后在使用guidata函数保存该句柄,如下所示:handles current_data=X;guidata(hObject,handle);用户可以在其他任何响应中重新得到该变量值,使用的

24、操作如下:X=handles current_data;用户还可以利用句柄获取GUI控件的任意数据。用户想要使用GUI中的另一个控件(比如一个按钮)来在当前所选的某个菜单项实现某个操作,那么用户可以在该按钮的响应输入如下命令:all_choices=get(handles.my_menu,string) current_choice=all_choiceget(handles.my_menu,Value)用户可以给GUI的M文件的如下部分增加程序代码:(1)打开函数(openingfunction),该函数可在GUI可见之前实施操作。(2)输出函数(output function),在必要的时

25、候向命令行输出数据。(3)响应(callbacks),在用户激活GUI的响应控件时实施操作。打开函数包含有在GUI可见之前进行操作的代码,用户可以在打开函数中访问GUI的所有控件,因为所有GUI中的对象都在调用打开函数之前就已经创建。如果用户需要在访问GUI之前实现某些操作(如创建数据或图形),那么可以通过在打开函数中添加代码来实现17。如:对于一个文件名为my_gui的GUI来说,它的打开函数的定义语句如下:function my_gui_OpeningFcn(hObject,eventdata,handles,varargin)输出函数将输出结果返回给命令行。这一点在用户需要将某个变量传递

26、给另一个GUI时尤其使用。GUI在输出函数中生成如下代码: %-Outputs from this function are returned to the command line. function varargout=my_gui_OutputFcn(hObjcet,eventdata,handles) %Get default command line output from handles structure Varargout1=handles.output;按钮(Radio Buttons)的响应:在图形界面中添加该控件之后,该控件将在指定位置添加按钮,按钮的标识字符由属性Str

27、ing控制,而返回值由Value值控制。在GUI的M文件中使用如下形式的代码来编制Radio按钮的响应程序: if(get(hObject,Value)=get(hObject,Max) %then radio button is selected-take approriate action else %radio button is not selected-take approriate action end“复选框”控件(Check Boxes)的响应:在图形界面中添加该控件之后,该控件提供复选功能,将显示文本字符串及选择框。在GUI的M文件中使用如下形式的代码来编制“复选框”控件的响

28、应程序: function checkbox1_Callback(hObject,eventdata,handles) if(get(hObject,Value)=get(hObject,Max) %then checkbox is checked-take approriate action else % checkbox is not checked-take approriate action end“文本框”控件(Edit Text)的响应:在图形界面中添加该控件之后,该控件的属性相当于其他语言中的文本框属性,允许用户动态地编辑或是输入文本字符串。如果需要获取用户在文本框中输入的字符串

29、,可以在响应程序中输入如下代码: function edittext1_Callback(hObject,eventdata,handles) user_string=get(hObject,string); %proceed with callback3.3.2 “滤波器设计”软件界面的设计1、 Filter design下拉菜单在下拉菜单Filter design中选择Butterworth、 Chebyshev等滤波器,程序和效果图(图10)如下:function FilterDesign_Callback(hObject, eventdata, handles) AutoRun_val

30、ue=get(handles.AutoRun,'Value'); if(AutoRun_value=1) AutoChoose(handles) end图10 Filter design下拉菜单选项2、Filter Type下拉菜单在下拉菜单Filter Type中选择滤波器类型选择低通或者高通滤波器时,隐藏相应的带通和带阻的第二个临界频率,使其频率参数不能输入,程序和效果图(图11、图12)如下:function FilterType_Callback(hObject, eventdata, handles)%读取此时设计的滤波器的类型,“Lowpass、Highpass、B

31、andpass、Bandstop”FilterType_value=get(handles.FilterType,'Value');%当选择Lowpass或者Highpass,屏蔽相应的临界频率的显示 if(FilterType_value=1)|(FilterType_value=2) set(handles.Fp2,'visible','off');set(handles.Fs2,'visible','off'); set(handles.text17,'visible','off

32、9;);set(handles.text19,'visible','off'); set(handles.text6,'visible','off');set(handles.text10,'visible','off'); else %当选择Bandpass或者Bandstop,使相应的临界频率的显示,使参数能够输入 if(FilterType_value=3)|(FilterType_value=4) set(handles.Fp2,'visible','on')

33、;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'); end end 图11 低通、高通滤波器频率参数输入 图12 带通、带阻滤波器频率参数输入3

34、、Min Order和Custom Orde按钮在设计滤波器阶数时,可选择自定义阶数和利用最小阶数设计滤波器(1) 按钮Min Order选择使用最小阶数设置时,屏蔽自定义阶数的输入,如图13function MinOrder_Callback(hObject, eventdata, handles)MinOrder_value=get(handles.MinOrder,'Value'); if(MinOrder_value=1) set(handles.Order,'visible','off'); else set(handles.Order

35、,'visible','on'); end(2) 按钮Custom Order选择自定义阶数时,显示阶数输入框,如图14function CustomOrderButton_Callback(hObject, eventdata, handles) CustomOrderButton_value=get(handles.CustomOrderButton,'Value'); if(CustomOrderButton_value=0) set(handles.Order,'visible','off'); else

36、set(handles.Order,'visible','on'); end(3) 其中涉及Run控件中的程序如下:显示最小阶数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文本编辑框function Fp1

37、_Callback(hObject, eventdata, handles)Fp1_value=str2double(get(handles.Fp1,'String');Fp2、Fst1、Fst2的回调函数同理编程5、Run按钮运行结果及分析根据输入的参数显示设计的滤波器的幅频特性和相频特性图,其程序如下:function Run_Callback(hObject, eventdata, handles)%点击Run立即运行AutoChoose,m文件,实现滤波器设计程序AutoChoose(handles)6、Auto Run按钮当选择了Auto Run按钮时,能够根据所选的

38、IIR的滤波器(Butterworth、 Chebyshev等)、FIR的窗口选项、图形显示类型(Linear、Logarithmic)立即显示滤波器的幅频特性和相频特性图。回调函数程序如下:function FilterDesign_Callback(hObject, eventdata, handles)AutoRun_value=get(handles.AutoRun,'Value');%当选择了Filter(Butterworth、 Chebyshev等)中一种Filter运行AutoChoose,m文件 if(AutoRun_value=1) AutoChoose(h

39、andles) end7、Quit按钮退出滤波器设计窗口,其程序如下:function Quit_Callback(hObject, eventdata, handles)%点击Quti按钮退出Close8、AutoChoose.m程序的编写(见附录2)4 运行结果及分析4.1 软件运行结果以设计模拟低通滤波器为例,利用Butterworth滤波器进行设计其3dB截止频率Fc=1000Hz,Fp1=200Hz,Fs1=700Hz,Rp=3dB,Rs=30dB,n=5,n=7如图15、16所示:运行结果及分析 图15 Butterworth低通滤波器(n=5) 图16 Butterworth低通

40、滤波器(n=7)模拟低通滤波器:利用Chebyshev滤波器进行设计Fp1=200Hz,Fs1=700Hz,Rp=3dB,Rs=30dB,n=5,n=7如图17、18所示: 图17 Chebyshev低通滤波器(n=5) 图18 Chebyshev低通滤波器(n=7)模拟高通滤波器:用Butterworth滤波器进行设计Fc=2000Hz,Fp1=800Hz,Fs1=500Hz,Rp=3dB,Rs=30dB,n=5,如图19所示:图19 Butterworth高通滤波器模拟带通滤波器:用Chebyshev滤波器进行设计Fp1=400Hz,Fp2=800Hz,Fs1=200Hz,Fs2=1000

41、Hz ,Rp=3dB,Rs=30dB,n=5,如图20所示:图20 Chebyshev带通滤波器模拟带阻滤波器:Chebyshev滤波器进行设计Fp1=400Hz,Fp2=1200Hz,Fs1=600Hz,Fs2=1000Hz ,Rp=3dB,Rs=30dB,n=5,如图21所示:结束语图21 Chebyshev带阻滤波器4.2 运行结果分析由运行结果显示的幅频响应可看出,切比雪夫滤波器的振幅特性具有这种等波纹特性。它有两种型式:振幅特性在通带内是等波纹的,在阻带内是单调的切比雪夫I型滤波器;振幅特性在通带内是单调的,在阻带内是等波纹的切比雪夫II型滤波器。随着N的增加,频带边缘下降越陡峭,越

42、接近理想特性。设计Butterworth滤波器时,先设计低通滤波器,再通过频率变换将低通滤波器转换成高通、带通、带阻滤波器。由运行结果显示的幅频响应可看出Butterworth幅频特性具有下列特点:(1) 最大平坦性。(2) 通带,阻带下降的单调性。这种滤波器具有良好的相频特性。(3) 3dB的不变性:随着N的增加,频带边缘下降越陡峭,越接近理想特性,但不管N是多少,幅频特性都通过3dB点。5 结束语MATLAB以其强大的计算和绘图功能、大量稳定可靠的算法库、简洁高效的编程语言,所以利用MATLAB具有较严谨的科学计算和图形显示这一优点,从而使滤结束语波器设计结果显示的更加直观,而且对滤波器的

43、精度也有了很大的提高,设计扩展性好,便于调节滤波器的性能。本文首先介绍了模拟滤波器的工作原理及设计思路。然后重点介绍了模拟滤波器的设计和仿真,系统研究了模拟滤波器(包括巴特沃斯滤波器和切比雪夫滤波器)的设计原理和方法。先设计模拟低通滤波器,再通过频率变换将模拟低通滤波器转换成模拟高通、带通、带阻滤波器。在此基础上,描述了如何用MATLAB的图形用户界面来设置滤波器的设计界面及回调函数的编写。利用MATLAB具有较严谨的科学计算和图形显示这一优点,从而使滤波器设计结果显示的更加直观,设计扩展性好,便于调节滤波器的性能。最后设计了一个基于MATLAB平台的有多个滤波器的类型及参数可供选择的图形用户

44、界面,通过运行可以显示出模拟滤波器(包括巴特沃斯滤波器和切比雪夫滤波器)的幅频响应和相频响应曲线。通过本次设计,学习了巴特沃斯模拟滤波器和切比雪夫模拟滤波器设计的原理与方法,学习了MATLAB中GUI界面设计的操作和回调函数的编写。在今后的学习或工作中,我将继续努力,争取能设计出操作更加方便,运行速度更加快速的方案,来用MATLAB实现各种滤波器的幅频响应和相频响应曲线的显示。在实际完成论文的过程中,由于受个人的知识、经验和能力的限制,文中肯定难免存在不足之处,恳请大家提出批评和指正。参考文献参考文献1金波信号与系统基础M武汉:华中科技大学出版社,2006:1832022刘益成数字信号处理M北

45、京:电子工业出版社,2004:1231763金波信号与系统实验教程M武汉:华中科技大学出版社,2008:901454施阳MATLAB语言工具箱M西安:西北工业大学出版社,1998:931785赵红怡,张常年数字信号处理及其MATLAB实现M北京:化学工业出版社,2002:1131256王宏Matlab6.5及其在信号处理中的应用M北京:清华大学出版社,2004:1231757吴大正信号与线性系统分析M第3版北京:高等教育出版社,1998:1021528梁红,梁杰,陈跃斌信号与系统分析及Matlab实现M北京:电子工业出版社,2007:931469陈思巴特沃斯低通滤波器的简化快速设计J信阳师范学

46、院学报(自然科学版),1997,10(3)10甘俊英,胡异丁基于Matlab的信号与系统实验指导M北京:清华大学出版社,2007:13316211乐正友信号与系统M北京:清华大学出版社,2004:14316512胡光锐信号与系统M上海:上海交通大学出版社,1995:8312813陈后金信号与系统M第二版北京:清华大学出版社,北京交通大学出版社,2005:12614714吴大正,高西全Matlab在电子信息课程中的应用M北京:电子工业出版社,2002:13517815燕庆明信号与系统教程M北京:高等教育出版社,2004:931351621IC中国电子网Z17电子开发网Z致谢致谢在这次课题研究及论

47、文编写中,老师给了我大量的建议及指导,提供了课题研究的方向,在他的帮助下,课题的疑难问题能够得以成功解决,课题能够如期顺利地完成。同时,老师严谨的治学态度和实事求是的科研精神在课题研究中时刻影响着我,这将成为我在以后学习工作中的榜样,激励着我不断进步。在此特别感谢老师的悉心指导!通过这次毕业设计,我除了深入地学到了更多相关的专业知识之外,更重要的是经历了毕业设计这个过程,熟悉了一般课题研究的整个过程,为今后更深入的学习和工作奠定坚实的基础。再次对在实验及论文撰写过程中,给予我很大帮助的老师和同学们表示诚挚的谢意。附录1 附录:function varargout = Filter(vararg

48、in)% FILTER M-file for Filter.figgui_Singleton = 1;gui_State = struct('gui_Name', mfilename, . 'gui_Singleton', gui_Singleton, . 'gui_OpeningFcn', Filter_OpeningFcn, . 'gui_OutputFcn', Filter_OutputFcn, . 'gui_LayoutFcn', , . 'gui_Callback', );if nargi

49、n && ischar(varargin1) gui_State.gui_Callback = str2func(varargin1);endif nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:);else gui_mainfcn(gui_State, varargin:);end% - Executes just before Filter is made visible.function Filter_OpeningFcn(hObject, eventdata, handles, varargin)

50、% This function has no output args, see OutputFcn.handles.output = hObject;% Update handles structureguidata(hObject, handles);% - Outputs from this function are returned to the command line.function varargout = Filter_OutputFcn(hObject, eventdata, handles) varargout1 = handles.output;function Fc_Ca

51、llback(hObject, eventdata, handles)% Hints: get(hObject,'String') returns contents of Fc as text% str2double(get(hObject,'String') returns contents of Fc as a double% - Executes during object creation, after setting all properties.function Fc_CreateFcn(hObject, eventdata, handles)% H

52、int: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor') set(hObject,'BackgroundColor','white');endfunction Fp1_Callback(hObject, eventdata

53、, handles)Fp1_value=str2double(get(handles.Fp1,'String');% Hints: get(hObject,'String') returns contents of Fp1 as text% str2double(get(hObject,'String') returns contents of Fp1 as a double% - Executes during object creation, after setting all properties.function Fp1_CreateFcn(hObject, eventdata, handles)% Hint: edit controls usually have a white background on Window

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论