MATLAB课程设计报告基于MATLABGUI的“滤波器设计软件”设计摘要面对庞杂繁多的原始信号,如何提取所需信号、抑制不需要的信号这就需要使用滤波器。滤波器的作用主要是选择所需频带的信号内容而抑制不需要的其他频带的信号内容。数字滤波器因其精度高、可靠性好、灵活性大等优点,在语音信号处理、信号频谱估计、信号去噪、无线通信中的数字变频以及图像处理等工程实际应用中都很广泛。根据其冲击响应函数的时域特性可将数字滤波器分为IIR(有限长冲击响应)和FIR(无限长冲击响应)。作为强大的计算软件,MATLAB提供了编写图形用户界面的功能。所谓图形用户界面,简称为GUI,是由各种图形对象,如图形窗口菜单按钮、文本框等构建的用户界面。MATALB可以创建图形用户界面GUI(GraphicalUserInterface),它是用户和计算机之间交流的工具。MATLAB将所有GUl支持的用户控件都集成在这个环境中并提供界面外观、属性和行为响应方式的设置方法,随着版本的提高,这种能力还会不断加强。而且具有强大的绘图功能,可以轻松的获得更高质量的曲线图。关键词:MATLABGUIIIR滤波器FIR滤波器目录1设计任务..........................................................12MATLABGUI的简介................................................23滤波器设计原理...................................................33.1滤波器概述...................................................33.2IIR数字滤波器...............................................43.2.1IIR数字滤波器设计原理................................43.2.2IIR滤波器设计思想....................................53.2.3IIR滤波器设计编程实现................................63.3FIR数字滤波器...............................................83.3.1FIR数字滤波器设计原理................................83.3.2FIR滤波器设计思想....................................94基于MatlabGUI的数字滤波器设计思路及实现......................124.1GUI界面设计概述..........................................124.2“滤波器设计软件”设计所实现任务...........................144.3基于MatlabGUI的数字滤波器设计实现........................164.3.1“滤波器设计软件”GUI界面设计........................164.3.2“滤波器设计软件”回调函数编写........................174.3.3AutoChoose.m程序的编写................................224.4运行和结果显示.............................................285设计总结和心得.................................................335.1设计总结...................................................335.2设计心得...................................................34Abstract..........................................................35参考文献..........................................................36附录11设计任务1设计目的1.巩固所学习过的关于数字信号处理的滤波器的设计2.学习使用MATLABGUI设计工具应用平面2设计要求要求:“滤波器设计软件”设计1、要有人机交互界面。2、滤波器设计的类型、参数均有多个值可供选择。3、当用户选择(或输入)滤波器的参数时,能够及时显示设计好的滤波器的频谱。4、该软件可设计FIR或IIR型滤波器至少一种。22MATLABGUI的简介MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB是矩阵实验室(MatrixLaboratory)的简称,和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多,并且mathwork也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用。MATALB可以创建图形用户界面GUI(GraphicalUserInterface),它是用户和计算机之间交流的工具。MATLAB将所有GUl支持的用户控件都集成在这个环境中并提供界面外观、属性和行为响应方式的设置方法,随着版本的提高,这种能力还会不断加强。而且具有强大的绘图功能,可以轻松的获得更高质量的曲线图。33滤波器设计原理3.1滤波器概述随着信息时代和数字世界的到来,数字信号处理已成为当今一门极其重要的学科和技术领域。数字信号处理在通信、语音、图像,自动控制、雷达、军事、航空航天、医疗和家用电器等众多领域得到了广泛的应用。在数字信号处理中,数字滤波器占有极其重要的地位。现代数字滤波器可以用软件或设计专用的数字处理硬件两种方式来实现,用软件来实现数字滤波器优点是随着滤波器参数的改变,很容易改变滤波器的性能。根据数字滤波器单脉冲响应的时域特性可将数字滤波器分为两种,即IIR(InfiniteImpulseResponse)无限长脉冲响应数字滤波器和FIR(FiniteImpulseResponse)有限长脉冲响应数字滤波器。从功能上分类,可分为低通、高通、带通、带阻滤波器。43.2IIR数字滤波器3.2.1IIR数字滤波器设计原理滤波器的设计质上是寻找一个既能物理实现,又能满足给定频率特性指标要求的系统传输函数。IIR滤波器一般采用递归型的结构,系统的输入与输出服从N阶差分方程:相应的传输函数为:设计IIR数字滤波器就是要确定传输函数中的系数ja、ib或零极点增益ic、jd、A,使滤波器的频率特性满足给定的性能指标要求。设计原理主要包括两个方面:一是根据设计指标,先设计出相应的模拟滤波器再通过脉冲响应不变法或双线性变换法转换成对应的数字滤波器;二是选择一种优准则,如最小均方准则,再在,先最误差此准则下求出滤波器传输函数的系数。根据设计理论,在MATLAB环境下设计IIR数字滤波器主要有四种方法:一是典型设计法;二是完全设计法;三是最优设计法;四是工具设计法。由于完全设计法程序简单,我们在这里利用完全设计法设计滤波器。53.2.2IIR滤波器设计思想IIR滤波器设计思想是:利用已有的模拟滤波器设计理论,首先根据设计指标设计一个合适的模拟滤波器,然后再通过脉冲响应不变法或双线性变换法,完成从模拟到数字的变换。常用的模拟滤波器有巴特沃斯(Butterworth)滤波器、切比雪夫(Chebyshev)滤波器、椭圆(Ellipse)滤波器、贝塞尔(Bessel)滤波器等,这些滤波器各有特点,供不同设计要求选用。滤波器的模拟数字变换,通常是复变函数的映射变换,也必须满足一定的要求由于数字滤波器传输函数只与频域的相对值有关,故在设计时可先将滤波器设计指标进行归一化处理,设采样频率为Fs,归一化频率的计算公式是:利用完全设计法设计数字滤波器的步骤:(1)将设计指标归一化处理。(2)根据归一化频率,确定最小阶数N和频率参数Wn。可供选用的阶数选择函数有:buttord,cheblord,cheb2ord,ellipord等。(3)运用最小阶数N设计模拟低通滤波器原型。根据最小阶数直接设计模拟低通滤波器原型,用到的函数有:butter,chebyl,cheby2,ellip和bessel。如[B,A]=butter(N,Wn,'type')设计'type'型巴特沃斯(Butterworth)滤波器filter。N为滤波器阶数,Wc为截止频率,type决定滤波器类型,type=high,设计高通IIR滤波器,ftype=stop,设计带阻IIR滤波器。(4)再用freqz函数验证设计结果。63.2.3IIR滤波器设计编程实现例如选择设计IIR的Butterworth低通滤波器,其Fs=22050Hz,Fp1=3400Hz,Fs1=5000Hz,Rp=2dB,Rs=20dB程序和效果图(图2)如下:Fs=22050;Fp1=3400;Fs1=5000;Rp=3;Rs=20;%设计指标wp1=2*Fp1/Fs;ws1=2*Fs1/Fs;%求归一化频率%确定butterworth的最小阶数N和频率参数Wn[n,Wn]=buttord(wp1,ws1,Rp,Rs);[B,A]=butter(N,Wn);%确定传递函数的分子、分母系数[h,f]=freqz(b,a,Nn,Fs_value);%生成频率响应参数plot(f,20*log(abs(h)))%画幅频响应图plot(f,angle(h));%画相频响应图%[N,Wn]=buttord(Wp,Ws,Rp,Rs)确定butterworth的N和Wn%[N,Wn]=cheblord((Wp,Ws,Rp,Rs)确定Chebyshev滤波器的N和Wn%[N,Wn]=cheb2ord(Wp,Ws,Rp,Rs)确定Chebyshev2滤波器的N和Wn%[N,Wn]=ellipord(Wp,Ws,Rp,Rs)确定椭圆(Ellipse)滤波器的N和Wn%[B,A]=butter(N,Wn,'type')设计'type'型巴特沃斯(Butterworth)滤波器filter.%[B,A]=cheby1(N,R,Wn,'type')设计'type'型切比雪夫Ⅰ滤波器filter.%[B,A]=cheby2(N,R,Wn,'type')设计'type'型切比雪夫Ⅱ滤波器filter.%[B,A]=ellip(N,Rp,Rs,Wn,'type')设计'type'型椭圆filter.7图2Butterworth低通滤波器83.3FIR数字滤波器3.3.1FIR数字滤波器设计原理根据数字滤波器冲激响应的时域特征,可将数字滤波器分为2种,即无限长冲激响应滤波器(IIRDF)和有限长冲激响应滤波器(FIRDF)。FIRDF具有突出的优点:系统总是稳定的、易于实现线性相位、允许设计多通带(或多阻带)滤波器。因此FIRDF在数字信号处理中得到广泛的应用。但与IIRDF相比,在满足同样的阻带衰减的情况下需要较高的