1、 MATLAB 课程设计报告 基于 MATLAB GUI 的“滤波器设计软件”设计 摘摘 要要 面对庞杂繁多的原始信号, 如何提取所需信号、抑制不需要的信号这就需要 使用滤波器。 滤波器的作用主要是选择所需频带的信号内容而抑制不需要的其他 频带的信号内容。数字滤波器因其精度高、可靠性好、灵活性大等优点, 在语音 信号处理、信号频谱估计、信号去噪、无线通信中的数字变频以及图像处理等工 程实际应用中都很广泛。根据其冲击响应函数的时域特性可将数字滤波器分为 IIR (有限长冲击响应) 和 FIR (无限长冲击响应) 。 作为强大的计算软件, MATLAB 提供了编写图形用户界面的功能。所谓图形用户界
2、面, 简称为 GUI, 是由各种图 形对象, 如图形窗口菜单按钮、文本框等构建的用户界面。 MATALB 可以创建图形用户界面 GUI ( GraphicalUser Interface) ,它是用户 和计算机之间交流的工具。MATLAB 将所有 GUl 支持的用户控件都集成在这 个环境中并提供界面外观、属性和行为响应方式的设置方法,随着版本的提高,这 种能力还会不断加强。而且具有强大的绘图功能,可以轻松的获得更高质量的曲 线图。 关键词:MATLAB GUI IIR 滤波器 FIR 滤波器 目目 录录 1 设计任务 1 2 MATLAB GUI 的简介 2 3 滤波器设计原理 3 3.1 滤
3、波器概述. 3 3.2 IIR 数字滤波器. 4 3.2.1 IIR 数字滤波器设计原理 4 3.2.2 IIR 滤波器设计思想 5 3.2.3 IIR 滤波器设计编程实现 6 3.3 FIR 数字滤波器. 8 3.3.1 FIR 数字滤波器设计原理 8 3.3.2 FIR 滤波器设计思想 9 4 基于 Matlab GUI 的数字滤波器设计思路及实现. 12 4. 1 GUI 界面设计概述 12 4.2 “滤波器设计软件”设计所实现任务 . 14 4.3 基于 Matlab GUI 的数字滤波器设计实现 16 4.3.1 “滤波器设计软件”GUI 界面设计 16 4.3.2 “滤波器设计软件
4、”回调函数编写 17 4.3.3AutoChoose.m 程序的编写 22 4.4 运行和结果显示 . 28 5 设计总结和心得 33 5.1 设计总结 . 33 5.2 设计心得 . 34 Abstract. 35 参考文献. 36 附录 1 1 设计任务设计任务 1 设计目的 1.巩固所学习过的关于数字信号处理的滤波器的设计 2.学习使用 MATLAB GUI 设计工具应用平面 2 设计要求 要求:“滤波器设计软件”设计 1、要有人机交互界面。 2、滤波器设计的类型、参数均有多个值可供选择。 3、当用户选择(或输入)滤波器的参数时,能够及时显示设计好的滤波器的 频谱。 4、该软件可设计 F
5、IR 或 IIR 型滤波器至少一种。 2 2 MATLAB GUI的简介的简介 MATLAB 是美国 MathWorks 公司出品的商业数学软件, 用于算法开发、 数 据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括 MATLAB 和 Simulink 两大部分。 MATLAB 是矩阵实验室(Matrix Laboratory)的简称,和 Mathematica、 Maple 并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈 一指。MATLAB 可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界 面、连接其他编程语言的程序等,主要应用于工程计算、控制设计
6、、信号处理与 通讯、图像处理、信号检测、金融建模设计与分析等领域。 MATLAB 的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的 形式十分相似,故用 MATLAB 来解算问题要比用 C,FORTRAN 等语言完相同 的事情简捷得多,并且 mathwork 也吸收了像 Maple 等软件的优点,使 MATLAB 成为一个强大的数学软件。在新的版本中也加入了对 C,FORTRAN,C+ , JAVA 的支持。 可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB 函数库中方便自己以后调用。 MATALB 可以创建图形用户界面 GUI ( GraphicalUser Interface) ,它是用户和 计算机之间交流的工具。MATLAB 将所有 GUl 支持的用户控件都集成在这个 环境中并提供界面外观、属性和行为响应方式的设置方法,随着版本的提高,这种 能力还会不断加强。而且具有强大的绘图功能,可以轻松的获得更高质量的曲线 图。 3 3 滤波器设计原理滤波器设计原理 3.1 滤波器概述 随着信息时代和数字世界的到来,数字信号处理已成为当今一门极其重要 的学科和技