ImageVerifierCode 换一换
格式:DOCX , 页数:43 ,大小:464.26KB ,
资源ID:6930569      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6930569.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于MATLAB+GUI的滤波器设计软件设计.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于MATLAB+GUI的滤波器设计软件设计.docx

1、基于MATLAB+GUI的滤波器设计软件设计【摘 要】面对庞杂繁多的原始信号, 如何提取所需信号、抑制不需要的信号这就需要使用滤波器。滤波器的作用主要是选择所需频带的信号内容而抑制不需要的其他频带的信号内容。数字滤波器因其精度高、可靠性好、灵活性大等优点, 在语音信号处理、信号频谱估计、信号去噪、无线通信中的数字变频以及图像处理等工程实际应用中都很广泛。根据其冲击响应函数的时域特性可将数字滤波器分为IIR(有限长冲击响应)和FIR(无限长冲击响应)。作为强大的计算软件, MATLAB提供了编写图形用户界面的功能。所谓图形用户界面, 简称为GUI, 是由各种图形对象, 如图形窗口菜单按钮、文本框

2、等构建的用户界面。MATALB 可以创建图形用户界面GUI ( GraphicalUser Interface) ,它是用户和计算机之间交流的工具。MATLAB 将所有GUl 支持的用户控件都集成在这个环境中并提供界面外观、属性和行为响应方式的设置方法,随着版本的提高,这种能力还会不断加强。而且具有强大的绘图功能,可以轻松的获得更高质量的曲线图。关键词:MATLAB;GUI ;IIR;滤波器Abstract Facing the huge range of original signal, how to extract the required signal and suppress unwa

3、nted signals which need to use the filter. The role of filters is to select the desired signal frequency band and suppress the contents of the other bands do not need the contents of the signal. Digital filters because of their high accuracy, reliability, and flexibility advantages, in the speech si

4、gnal processing, signal spectrum estimation, signal de-noising, the number of wireless communications in frequency as well as image processing and other projects are wide practical application. Impulse response functions in accordance with its time-domain characteristics can be divided into digital

5、filter IIR (finite impulse response) and FIR (infinite impulse response). As a powerful software, MATLAB provides a graphical user interface to prepare the function. The so-called graphical user interface, referred to as the GUI, by a variety of graphic object, such as the graphics window menu butto

6、n, text box, such as building a user interface. MATALB can create a graphical user interface GUI (GraphicalUser Interface), it is between user and computer tools. MATLAB support for all users GUl controls are integrated in this environment and provide the interface appearance and behavior in respons

7、e to the way attribute settings methods, with the improved version, this capability will continue to strengthen. And a powerful graphics capabilities, can easily access to higher-quality curve.Keywords: MATLAB;GUI;IIR;filter1设计任务1 设计目的1.巩固所学习过的关于数字信号处理的滤波器的设计2.学习使用MATLAB GUI设计工具应用平面2 设计要求要求:“滤波器设计软件

8、”设计1、要有人机交互界面。2、滤波器设计的类型、参数均有多个值可供选择。3、当用户选择(或输入)滤波器的参数时,能够及时显示设计好的滤波器的频谱。4、该软件可设计FIR或IIR型滤波器至少一种。2 MATLAB GUI的简介MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB是矩阵实验室(Matrix Laboratory)的简称,和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB

9、可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多,并且mathwork也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C+ ,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用。 MATALB 可

10、以创建图形用户界面GUI ( GraphicalUser Interface) ,它是用户和计算机之间交流的工具。MATLAB 将所有GUl 支持的用户控件都集成在这个环境中并提供界面外观、属性和行为响应方式的设置方法,随着版本的提高,这种能力还会不断加强。而且具有强大的绘图功能,可以轻松的获得更高质量的曲线图。3 滤波器设计原理3.1滤波器概述随着信息时代和数字世界的到来,数字信号处理已成为当今一门极其重要的学科和技术领域。数字信号处理在通信、语音、图像,自动控制、雷达、军事、航空航天、医疗和家用电器等众多领域得到了广泛的应用。在数字信号处理中,数字滤波器占有极其重要的地位。现代数字滤波器可

11、以用软件或设计专用的数字处理硬件两种方式来实现,用软件来实现数字滤波器优点是随着滤波器参数的改变,很容易改变滤波器的性能。根据数字滤波器单脉冲响应的时域特性可将数字滤波器分为两种, 即IIR (Infinite Impulse Response)无限长脉冲响应数字滤波器和FIR (Finite Impulse Response)有限长脉冲响应数字滤波器。从功能上分类, 可分为低通、高通、带通、带阻滤波器。3.2 IIR数字滤波器3.2.1 IIR数字滤波器设计原理滤波器的设计质上是寻找一个既能物理实现,又能满足给定频率特性指标要求的系统传输函数。IIR滤波器一般采用递归型的结构,系统的输入与输

12、出服从N阶差分方程: 相应的传输函数为:设计IIR数字滤波器就是要确定传输函数中的系数、或零极点增益、A,使滤波器的频率特性满足给定的性能指标要求。设计原理主要包括两个方面:一是根据设计指标,先设计出相应的模拟滤波器再通过脉冲响应不变法或双线性变换法转换成对应的数字滤波器;二是选择一种优准则,如最小均方准则,再在, 先最误差此准则下求出滤波器传输函数的系数。根据设计理论,在MATLAB环境下设计IIR数字滤波器主要有四种方法:一是典型设计法;二是完全设计法;三是最优设计法;四是工具设计法。由于完全设计法程序简单,我们在这里利用完全设计法设计滤波器。2、所谓数字滤波器,是指输入,输出均为数字信号

13、,通过一定运算关系改变输入信号所含频率成分的相对比例或者滤除某些频率成分的硬件。 实质上就是一个由有限精度算法实现的线性时不变离散系统。 它的基本工作原理是利用离散系统的特性对系统输入信号进行加工和变换, 改变输入序列的频谱或信号波形, 让有用的频率分量通过, 抑制无用的信号分量输出,根据其频率特性同样可以分为低通,高通,带通,带阻。如果要处理的信号是模拟信号,就可以通过 A/D 或者 D/A 转换,在信号形式上进行匹配转换,同样可以使用数字滤波器对模拟信号进行滤波1。数字滤波器滤波的数学表达式: (1-1) 如果滤波器的输入输出信号都是离散信号,那么该滤波器的脉冲响应也一定是离散信号,这样的

14、滤波器就成为了数字滤波器。其频域特性为: (1-2) 其中分别是数字滤波器的输出序列和输入序列的频域响应,是数字滤波器的频域响应。 可以看见按照输入信号的频谱特点和处理信号的目的适当选择滤波器的频域响应, 使得滤波后的输出信号满足设计性能要求, 就是滤波器的滤波原理。 1.1 IIR数字滤波器传输特性 IIR 数字滤波器的系统函数可以表示为: (1-3) 式中H(Z)称为N阶 IIR 滤波器函数,它是一种递归型的滤波器。 1.2 数字滤波器的技术要求 我们通常设计的数字滤波器一般属于选频滤波器, 我们的目的是要设计一个因果可实现的滤波器,另外买也要考虑到成本和复杂性问题,因此实用中通带和阻带都

15、允许一定的误差容限,即通带不一定是完全水平的,阻带也不可能完全衰减到零2。而且,通带和阻带之间还要设置一定带宽的过渡带。如下图表示低通滤波器的技术要求:图 1.2.1 低通滤波器特性 Figure1.2.1 low pass filters characteristic图中,分别表示通带截止频率和阻带截止频率,通带频率范围为0 w p w ,通带中要求,阻带截止频率范围 ,再阻带中要求,从到 称为过渡带,在这个频带内,幅度响应从通带平滑的下落到阻带。2 MATLAB简介 MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语

16、言和交互式环境,主要包括 MATLAB 和SIMULINK两大部分。 MATLAB 是矩阵实验室 (Matrix Laboratory) 的简称, 和Mathematica、Maple 并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB 可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。 MATLAB 对许多专门的领域都开发了功能强大的模块集和工具箱。一般来说,它们都是由特定领域的专家开发的,用户可以直接使用工具箱学习、应用和评估不同的方法

17、而不需要自己编写代码。目前,MATLAB已经把工具箱延伸到了科学研究和工程应用的诸多领域,诸如数据采集、数据库接口、概率统计、样条拟合、优化算法、偏微分方程求解、神经网络、小波分析、信号处理、图像处理、系统辨识、控制系统设计、LMI 控制、鲁棒控制、模型预测、模糊逻辑、金融分析、地图工具、非线性控制设计、实时快速原型及半物理仿真、嵌入式系统开发、定点仿真、DSP 与通讯、电力系统仿真等,都在工具箱(Toolbox)家族中有了自己的一席之地。本文将利用其中的信号处理工具箱来设计IIR 数字滤波器。 3 IIR数字滤波器的几种设计方法 3.1 程序设计法IIR 数字滤波器设计的一般方法是先设计低通

18、模拟滤波器,进行频率变换,将其转换为相应的(高通,带通等)模拟滤波器,在转换为高通,带通或带阻数字滤波器,由模拟滤波器设计数字滤波器的方法。这是因为模拟滤波器设计方法已经很成熟,它不仅有完整的设计公式,还有完善的图表供查阅,另外,还有一些典型的滤波器类型可供我们使用。对设计的全过程的各个步骤,MATLAB 都提供了了相应的工具箱函数,使 IIR 数字滤波器设计变得非常简单。 3.1.1设计方法 程序设计法3是基于MATLAB 中相应的工具箱函数来实现的, IIR 数字滤波器的设计步骤可由图3.1.1所示的流程图来表示。 这个图也清晰的表示了5类 20个信号处理工具箱函数的作用,图 3.1.1

19、滤波器设计流程 Figure3.1.1 flow of filters design在 MATLAB 中,模拟滤波器的系统函数: (3-1)数字滤波器的系统函数:(3-2)在实际工程中,需要的设计结果是系数向量B 和 A,用B 和A 来综合滤波器的硬件实现结构或软件运算结构,为了直观的看出设计结果,本文的实例均以滤波器幅频响应曲线作为设计结果输出。如果需要滤波器系数,在运行程序后,只要在 MATLAB命令窗口键入系数向量名,则相应的系数就显示出来了。3.1.2程序设计及分析 1) 设计高通和带通BUTTERWORTH数字滤波器 我们给出四阶归一化BUTTERWOTH模拟滤波器的系统函数(3-3

20、)用双线性变换法从 Ha(s)设计四阶带通 BUTTERWOTH 数字滤波器,并图示,设计采样周期T=1s,指标: 本例主要涉及三个问题:由数字滤波器指标求相应的模拟滤波器指标; 模拟滤波器频率变换(因为已给定阶数和模拟滤波器的归一化低通原型) ; 由相应的模拟滤波器到数字滤波器(双线性变换法) 。 由于调用 bilinear 函数将模拟滤波器转换成数字滤波器4非常容易,并且有效抑制频率失真的问题,本例给定了数字滤波器指标,所以首先要设计处与该指标相应的四阶BUTTERWORTH 模拟滤波器,然后调用 bilinear 函数将其转换为数字滤波器即可,应当特别注意的是,对于双线性变换法,由数字边

21、界频率求相应的模拟边界频率时,一定要考虑预畸变矫正。只有这样,最终设计结果才能满足所给指标。 设计高通数字滤波器时,相应的模拟高通滤波器3dB 截止频率为 (3-4)设计带通数字滤波器时,相应的模拟滤波器的3dB截止频率为 (3-5)调用 MATLAB频率变换函数lp2lp,lp2hp,lp2bp,分别实现从模拟低通到模拟低通,高通带通,带阻的频率变换。Bt,At=lp2hp(B,A,wc) ,将系数向量为B 和A的模拟滤波器归一化低通原型(3Db)截止频频为1rad/s) ,变换成3dB截止频率为wc的高通模拟滤波器,返回高通模拟滤波器系数向量Bt和At。Bt,At=lp2bp(B,A,wo

22、,Bw)将系数向量为 B 和 A 的模拟滤波器归一化低通原型变换成中心频率为 wo,带宽为 Bw 的带通模拟滤波器,返回带通模拟滤波器的系数向量 Bt 和At。其中,wo= uc lc , lc uc w B = ,由以上原理我们来编写如下程%用双线性变换法设计数字高通和带通滤波器 clear; close all T=1;wch=pi/2; %T:采样间隔,wch:数字高通3dB 截止Wlc =0.35*pi; wuc=0.65*pi; %wlc,wuc;数字高通 3dB 截止频率 B=1;A=1,2.6131,3.4142,2.6131,1; h,w=freqs(B,A,512); %求原

23、归一化模拟滤波器的频率响应 subplot(3,2,1);plot(w,20*log10(abs(h); %画模拟滤波器幅频特性 grid;axis(0,10,-90,0) xlabel(w/ ); title(模拟低通幅度(dB)) %(1)设计高通 omegach=2*tan(wch/2)/T; %预畸变求模拟高通 3dB 截止频率Bhs,Ahs=lp2hp(B,A,omegach); %模拟域低通转换为高通系数 Bhz,Ahz=bilinear(Bhs,Ahs,1/T); %模拟转换位数字高通系数变量 h,w=freqz(Bhz,Ahs,512); %求画出数字滤波器幅频特性Subplo

24、t(3,2,3);plot(w/pi,20*log10(abs(h); grid;axis(0,1,-150,0) xlabel(w/ );title (数字滤波器幅度(dB))%(2)设计带通 omegalc=2*tan(wlc/2)/T; %预畸变求滤波器通带低端截止频率 omegauc=2*tan(wuc/2)/T; %预畸变求滤波器通带高端截止频率wo=sqrt(omegalc*omegauc);Bw=omegauc-omegalc; Bbs,Abs=lp2bp(B,A,wo,Bw); %模拟域低通转换为带通系数 Bbz,Abz=bilinear(Bbs,Abs,1/T); %模拟转换

25、为数字带通系数变量 h,w=freqz(Bbz,Abz,512); %求并画出数字滤波器幅频特性 subplot(3,2,4);plot(w/pi,20*log10(abs(h); grid;axis(0,1,-150,0) xlabel(w/pi );title (数字滤波器幅度(dB)) 程序运行结果如图3.1.2, 3.1.3 ,3.1.4所示分别表示模拟低通幅度,数字高通幅度和数字带通幅度特性。 、 图 3.1.2 模拟低通幅度 Figure 3.1.2 analog lowpass filters range 图 3.1.3 数字高通幅度 Figure3.1.3 digital hi

26、gh pass filters range 图 3.1.4 数字带通幅度 Figure3.1.4 digital band pass filters range3.1.3 结论 从以上一系列函数设计中,我们由MATLAB 函数来设计滤波器是次优化的,它的设计步骤为:1 先选择设计方法;2 猜测滤波器参数,后进行设计;3 观察滤波器的响应,判断其是否符合要求;4反复这一尝试与失败过程直到符合要求。这种设计方法,很显然在设计要求上进行权衡分析是不是很有效,它更多时候是凭借设计者的经验来设计的,需要反复的检验, 并且编程的过程很繁琐, 工作量是比较大的, 因此我们下面将探讨更优化的设计方法。 3.2

27、 基于信号处理用户界面设计 IIR数字滤波器 基于 MATLAB函数的滤波器设计完成后,需要对已设计的滤波器的频率响应要进行校核。要得到幅频、相频响应特性,运算量也是很大的。而利用 MATLAB 强大的信号处理界面工具进行计算机辅助设计,可以快速有效地设计数字滤波器,大大地简化了计算量。3.2.1 FDATOOL设计 IIR数字滤波器 我们将以一个 IIR 滤波器的设计实例来具体说明使用 MATLAB 工具箱的方便。要求设计 Chebyshev1 型低通滤波器满足指标,首先在 Response Type 中选择 Bandpass 高通滤波器, 然后在下面的Desigh Method中选择IIR

28、类型, 并且指定Filter Order项中的阶数SpecifyOrder=10,由于是设计 chebyshev 滤波器,其下面 Option 就不必选择。 然后在 FrequencySpecifications中选择Unit为Hz,给出采样频率 Fs=1000, ;最后在 Magnitude Specification中选择Unit为 dB,Apass=1。 设置完成后点击 Design Filter即可得到所设计的IIR 滤波器。通过菜单选项Analysis可以在特性区看到所设计的幅频响应、相频响应、冲击响应和零极点配置等特性。设计完成后将结果保存,封装为 filterl.fda 文件,下

29、面是运用 FDATool 设计滤波器:其中幅频特性如图3.2.1所示图 3.2.1 FDA设计主界面 Figure3.2.1 main contact surface of FDA design 图 3.2.2 相频特性 Figuer3.2.2 phase-frequency characteristic图 3.2.3 冲激响应特性 Figure3.2.1 Impulse response characteristic3.2.2 结论 从以上这些界面中我们可以清晰明了的看到设计的该滤波器的幅频, 相频和冲击响应特性:我们能够分析到,图 3.2.1 中 Chebshev1 型滤波器具有等纹波的通

30、频带、阻带衰减的特性,总之,使用FDATOOL工具包设计和分析滤波器,是非常方便易行的,而且交互性良好,不需要极其复杂的程序编制就可以实现。 而且我们在最后的仿真模型设计中将载入这一模块进行信号滤波。 4 基于 FDESIGN更加优化的设计方法 4.1 FDESIGN设计方法 FDESIGN 是一种面向对象的滤波器设计方法。这种设计方法的设计思路是: 1 载入需要处理的信号源 2 根据需要,设计相应的数字滤波器,对信号进行滤波,显示滤波后效果 3 分析滤波后信号的频谱,如果未达到要求,可以修改滤波参数重复试验4.2 基于 SPTOOL设计 IIR数字滤波器(面向对象设计) SPTOOL是FDE

31、SIGN设计法中常用的工具箱,它包含了信号处理工具箱中的大部分函数,可以方便快捷地完成对信号、滤波器及频谱的分析、设计和浏览,因此只需要操作界面就可以载入,观察,分析,和打印数字信号,分析和设计数字滤波器5。首先在 MATLAB命令窗口输入sptool命令:在命令窗中写入以下命令 Fs500;t = (0:500)/Fs; f=sin(2*pi*t*40)+sin(3*pi*t*50)+sin(2*pi*t*100); 此时,变量Fs、t、s将显示在 workspace列表中,如图4.2.1所示;我们按照以下步骤操作: 1)点击菜单File/Import将信号f导入并取名为f。 2)单击Filters列表下的New,按照参数要求设计出滤波器filt1。 3)将滤波器filt1应用到f信号序列。分别在Signals、Filters、Spectra 列 表中选择 f、filt1、mtlbse auto 单击 Filters列表下的Apply按钮,在弹出的Apply Filter对话框中将输出信号命名为信号3。4)进行频谱分析。在 Signals 中选滤波后的信号信号 3,单击 Spectra 下的 Crea

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1