1、论文题目:基于 MATLAB GUI 的数字信号处理实验平台设计专 业:通信工程 学 生: 签名:指导教师: 签名:摘 要数字信号处理是一门涉及许多学科而又广泛应用于许多领域的新兴学科,主要应用在通信、电气控制、生物医学、遥测遥感、地质勘探、航空航天、自动化仪表等领域,它涵盖内容多、概念抽象、原理复杂、推理繁琐,因此,在有限的的课堂时间内掌握这门课程的知识是对学生的基本要求。本文主要研究了数字信号处理实验平台的设计,首先,利用 MATLAB GUI 完成数字信号处理课程中的离散系统时频域分析、离散傅里叶变换、快速傅里叶变换、IIR 滤波器和 FIR 滤波器设计 5 个模块的界面构建,然后, 利
2、用 MATLAB 语言完成图形用户界面(GUI)的编程,最后,对数字信号处理实验平台的各个实验界面进行测试与优化。该实验平台将数字信号处理课程中的重点、难点用交互式、实时、可视化界面进行展示,有利于教师的教学和学生的学习,具有一定的应用价值。【关键词】数字信号处理 实验平台 MATLAB 图形用户界面(GUI)【论文类型】设计型Title: The Design of Digital Signal Processing Experiment Platform Based On MATLAB GUIMajor: Communication Engineering Name: Signature:
3、Supervisor: Signature:ABSTRACTDigital signal processing is a new discipline which involves many subjects and widely used in many fields. It mainly used in communications, electrical control, biomedical, remote sensing, geological exploration, aerospace, automation instrument and other fields. It inc
4、ludes much more content and abstract concept. It has more complex principles and complicated reasoning. Therefore, in the limtited classroom time ,to master the knowledge of the course is a basic requirement of students. This paper mainly studies the design of digital signal processing experiment pl
5、atform. Firstly,using MATLAB GUI to complete the construction of digital signal processing course in the five modules: the frequency domain analysis and the time domain analysis of discrete system, discrete Fourier transform, fast Fourier transform, FIR filter design and IIR filter design .after tha
6、t, using MATLAB programming language to complete graphical user interface (GUI) programming. finally ,through testing and optimizing the digital signal processing experiment platform, we can display the key and difficult content by the interactive, real time and visual experiment platform. It is hel
7、pful for the teaching of teachers and students learning, and it has some application value.【Key words】Digital Signal Processing Experiment Platform MATLAB Graphical User Interfaces(GUI )【Type of Thesis】 Design 目 录1 绪论 11.1 研究目的及意义 11.2 国内外研究现状 11.3 MATLAB GUI 简介 21.4 本文研究内容 22 数字信号处理实验平台设计 42.1 实验平台
8、分析 42.1.1 实验平台的基本结构 42.1.2 实验平台设计的步骤 52.2 开始引导界面与实验主界面设计 52.3 子界面的设计 62.3.1 离散系统时频域分析实验界面设计 62.3.2 离散信号傅里叶变换实验界面设计 82.3.3 离散序列快速傅里叶变换实验界面设计 92.3.4 IIR 滤波器实验界面设计 102.3.5 FIR 滤波器实验界面设计 112.4 本章小结 133 实验平台测试 143.1 离散信号时频域分析 143.1.1 常见离散信号 143.1.2 离散信号时域变换 153.1.3 离散信号时域运算 153.1.4 离散信号的卷积 163.1.5 离散 LTI
9、 系统的时域分析 173.1.6 离散 LTI 系统的频域分析 193.2 离散傅里叶变换 203.2.1 离散时间序列傅里叶变换(DTFT) 203.2.2 周期序列离散傅里叶级数(DFS) 213.2.3 离散信号傅里叶变换(DFT) 223.3 快速傅里叶变换 233.3.1 基二快速傅里叶变换原理 233.3.2 离散序列的快速傅里叶变换实验测试 243.4 IIR 滤波器设计 253.4.1 常见的模拟低通滤波器设计 253.4.2 模拟滤波器的频带变换 293.4.3 脉冲响应不变法设计 IIR 数字滤波器 313.4.4 双线性变换法设计 IIR 数字滤波器 323.4.5 直接
10、函数法设计 IIR 数字滤波器 343.4.6 IIR 滤波器的应用 363.5 FIR 滤波器设计 363.5.1 常见的窗函数 373.5.2 窗函数法设计 FIR 滤波器 383.5.3 频率采样法设计 FIR 滤波器 413.5.4 等波纹法设计 FIR 滤波器 423.5.5 FIR 滤波器的应用 443.6 本章小结 454 结论 464.1 工作总结 464.2 工作展望 46致谢 48参考文献 4901 绪 论1.1 研究目的及意义数字信号处理是通信类专业核心主干课程,该课程是一门理论与实践、原理与应用紧密结合的课程。它涵盖内容多、概念抽象、原理复杂、推理繁琐,仅靠课堂上的理论
11、教学和习题演练,学生根本无法将所学的内容与实践、应用相结合,同时,传统模式的教学也早已满足不了新时代学生的兴趣。在计算机快速发展的今天,MATLAB 的交互式界面为数字信号处理课程的教学提供了很大的帮助,其数值计算功能强大,拥有可视化信号处理能力和建模仿真功能,为数字信号处理的学习提供了良好的氛围:将抽象理论知识运用图像、文字、数据等多种形式展现,而且为实验教学提供一个界面美观、操作简便的虚拟环境。在课堂教学中老师运用 MATLAB GUI 设计的平台对所讲内容进行仿真演示,同时适量结合多媒体课件进行理论讲解,使学生从直观形象的角度,理解和巩固了所学知识。课后学生可以将课堂中的重点、难点及部分
12、课后练习用 MATLAB GUI 进行可视化计算机模拟与仿真实现。学生也可以自己进行设计和编程,既提高了动手能力,又充分激发学习数字信号处理的积极性。1.2 国内外研究现状数字信号处理是一门涉及许多学科而又广泛应用于许多领域的新兴学科,广泛地应用在通信、控制、生物医学、遥测遥感、地址勘探、航空航天、自动化仪表等领域,国内外高校都为相关专业的学生开设了这门课程。该课程本身是通信类专业核心主干课程,同时也是学习后续专业课程的基础。它涵盖内容多、概念抽象、原理复杂,推演繁琐,仅依靠教师在黑板上的板书理论教学,学生对概念难以理解,难以将所学的知识和原理很好的与实际相结合。虽然各高校在与这门课对应的实验
13、上投入大量的设施,但是发现其效果并不是很好, 学生只是单纯地验证实验,对实验原理与所涉及的数学基础往往只是一知半解。而且大部分时间学生仅依靠做习题来巩固和理解教学内容,对课程中大量的应用性较强的内容不能实际动手操作严重影响和制约了教学效果。MATLAB 是当今最优秀的科技应用软件之一。在国外,数年前就已经将 MATLAB应用在了教学领域,尤其在数字信号处理的教学中,MATLAB 的可视化交互界面为数字信号处理的学习提供了一个卓越的平台,它强大的数值运算能力有助于数字信号处理中的复杂运算,同时,它将传统模式的一维黑板教学完成不了的二维、三维信号处理展现的清晰、直观,在一定程度上影响学生对知识的深
14、入了解与掌握。课后学生也可以将1课堂中的重点、难点及部分课后练习用 MATLAB GUI 进行可视化计算机模拟与仿真。学生也可以自己进行设计和编程,既提高了动手能力,又充分激发学习数字信号处理的积极性。1.3 MATLAB GUI 简介图形化用户界面(Graphical User Interfaces,简称 GUI) ,是一种图形化人机交互界面,通过用户与计算机或者计算机程序进行通信、交互的方式来完成相应的操作。在GUI 中,可以自行设计按钮,滑动条,下拉菜单,窗口,对话框等,MATLAB 全面支持 GUI 的编程,用户可以根据自己设计的界面来编程 M 文件,通过 M 文件的编译实现可以实现相
15、应的操作方式。图形用户界面是由图形对象构成的界面,在 MATLAB 中,最典型的就是通过GUIDE(Graph User Interface Development Environment)建立 GUI,GUIDE 能帮助用户方便设计出的各种符合用户需求的图形用户界面。在 MATLAB 中,打开 GUIDE 的方法有两种,第一种是在 MATLAB 界面中点击GUIDE 按钮直接进入,第二种是在命令窗口输入命令 Guide 来实现调用。在打开的GUIDE 窗口中可以新建 GUI 或者打开已存在的 GUI 的.fig 文件,而后,通过菜单编辑器(Menu Editor) 、对象浏览器(Object
16、 Browser) 、属性设计器(Properties Inspector) 、控件布置编辑器(Alignment Objects) 、网格标尺(Grid and Rulers)设置编辑器以及GUIDE 属性( GUIDE Application Options)设置编辑器对 GUI 进行编辑。对于建立好的对象,可以通过双击修改对象的属性(背景颜色、字体颜色、字体大小等) ,同时也可以通过右击对象,在出现的菜单栏中选择 callback 对相应的对象进行M 文件内的编程,使相应对象实现相应的功能。1.4 本文研究内容本设计主要完成数字信号处理实验平台的设计,该实验平台的设计的内容有:离散系统时
17、频域分析、离散傅里叶变换、快速傅里叶变换、IIR 滤波器和 FIR 滤波器设计,通过利用 MATLAB 语言完成图形用户界面(GUI )的编程,将数字信号处理课程中的重点、难点内容用交互式、实时、可视化实验平台进行展示,以便于学生在数字信号处理课堂上的学习。本文的主要内容安排如下:第 1 章是绪论。主要介绍课题研究的背景与意义,并简述了 MATLAB GUI 软件。2第 2 章是数字信号处理平台的设计,主要涉及实验系统的主界面和子界面。数字信号处理实验平台的主界面主要有离散系统的时频域分析界面、离散傅里叶变换界面、快速傅里叶变换界面、IIR 数字滤波器设计界面、FIR 数字滤波器设计界面第 3
18、 章是数字信号处理实验平台的系统测试,即对设计出的各个界面进行测试,通过观察输入不同参数时信号显示区的输出波形,验证和分析实验的合理性、正确性。第 4 章是结论,即对本设计进行总结,对今后工作进行展望。32 数字信号处理实验平台设计2.1 实验平台分析本设计以 MATLAB 为软件开发平台,利用它可视化、可编程的图形用户界面GUI,按照实验内容设计出相应的界面模块与菜单模块,通过主界面与子界面的调用选择进行不同实验的操作,通过菜单模块的选择与响应,完成子界面中分模块的操作,点击界面上的按钮,来操作实验的开始、结束与视图分析。2.1.1 实验平台的基本结构本设计将数字信号处理实验系统的整体结构划
19、分由两部分:界面模块和菜单模块。界面模块包括 6 大部分:开始引导界面、实验主界面(进行实验项目选择) 、离散系统的时频域分析界面、离散傅里叶变换界面、快速傅里叶变换界面和数字滤波器设计界面。如图 2.1 所示为实验平台的基本结构。开始引导界面常见信号的时频域分析常见信号的时域运算LTI 离散系统时频域分析离散时间序列傅里叶变换离散傅里叶变换周期信号离散傅里叶变换实验主界面离散系统时频域分析离散傅里叶变换快速傅里叶变换数字滤波器设计IIR 滤波器设计FIR 滤波器设计图 2.1 数字信号处理实验平台结构图42.1.2 实验平台设计的步骤本设计的实验平台按照树形结构的步骤进行设计,先完成开始引导
20、界面与后续的实验主界面的搭建,而后依次展开对各个子界面的建立(离散系统的时频域分析界面、离散傅里叶变换界面、快速傅里叶变换界面和数字滤波器设计界面),在各个子界面的搭建过程中,要按照以下步骤进行 1:1) 建立一个图形用户界面,并为之命名。2) 根据界面的需求,先在草稿纸上对界面进行预先的设计,而后,通过 MATLAB的图形用户界面(GUI)在界面中放入相应的 GUI 对象,并合理的布局安放这些对象,以及设置对象的属性,如字体,大小,颜色等。3) 根据 GUI 对象的功能在 M 文件中编辑相应的 Callback,并保存、调试、运行,确保其能实现预定的功能。图形界面的设计要满足以下几条原则 2
21、:1) 简单性。要求设计界面时应该力求简洁直接清晰地体现界面的功能和特点。对于可有可无的功能最好删除,确保界面的整洁。窗口数目尽量少,力避不同窗口间来回切换,设计的界面要直观,应多采用图形。2) 一致性。确保设计的界面风格前后要尽量保持一致。3) 习惯性。要求设计的界面应该尽量使用人们熟悉的标志和符号,保持界面的自然,使用户能见而习之。2.2 开始引导界面与实验主界面设计开始引导界面主要是引导实验的开始,通过开始引导界面中的开始按钮进入实验主界面,实验主界面主要是完成实现子界面的选择与调用功能,通过点击选择进入各个子界面。作为数字信号处理实验平台的第一个界面,开始引导实验界面必须包含实验开始、
22、退出按钮,通过点击开始、退出按钮分别完成进入实验主界面、退出实验系统的功能。在界面的顶部加入一个 Axes 对象,用来读取并显示本学校的校徽图案,开始引导界面也可以加入 Static Text 对象(静态文本编辑器) ,用这个对象制作开始界面的欢迎标题和介绍实验平台的文字。图 2.2(a)所示为开始引导界面。在开始引导界面中通过点击开始按钮可以进入实验主界面,实验主界面主要的功能是选择并进入实验子界面,因此需要在该界面中添加 5 个 Push Button 对象(按钮) ,通过点击它们来打开不同的实验子界面,例如:点击实验主界面上的“FIR 滤波器设计”按钮,则进入该实验子界面,然后进行仿真实
23、验。如图 2.2(b)所示为实验主界面效果图。5(a) 开始引导界面 (b) 实验主界面图 2.2 开始引导界面与实验主界面2.3 子界面的设计根据试验系统的内容要求,本实验平台的子界面划分为离散系统的时频域分析界面、离散傅里叶变换界面、快速傅里叶变换界面、IIR 数字滤波器设计界面、FIR 数字滤波器设计界面共五个子界面的设计 36。2.3.1 离散系统时频域分析实验界面设计离散系统时频域分析界面主要完成常见离散信号的时频域分析、常见离散信号的运算和 LTI 系统的时频域分析。该实验子界面展示了离散信号的时频域分析功能,通过菜单栏的选择可以分别打开离散信号的运算界面和 LTI 系统时频域分析
24、界面。图 2.3 常见时间离散信号时频域分析界面6在常见离散时间信号时频域分析界面中要展示 8 种常见离散时间信号的时、频域函数图,其中实指数序列底数 a 值与正弦序列的频率 f 值是可变的,通过 a、f 的变化观察输出函数图的变化可以分析常见离散信号的的时域信号图与有限长度序列的傅里叶变换频谱,因此构建该界面需要用到以下 GUI 对象:(1)通过 Pushbutton 对象(按钮)分别选用不同的信号进行分析。 (2)通过 Edit Text 对象(编辑框)完成相关信号参数的编辑。 (3)用两个 Axes 对象分别绘制所选信号时域图、频域图,外加一个 Pushbutton 对象用来完成返回实验
25、主界面功能。设计出来的常见离散时间信号的时频域分析界面如图2.3 所示。通过菜单栏选择,点击它们可以分别进入离散信号的基本运算界面和 LTI 离散系统时频域分析界面。在离散信号的基本运算界面中主要完成常见信号的时域尺度变换运算、常见离散信号的加、减、乘运算和正余弦信号的卷积运算,并展现基本运算的输出图形。因此,构建该界面需要以下的 GUI 对象:(1)运用到了 Pop-up Menu 对象完成对常见离散信号的选择。 (2)运用 Pushbutton 对象完成对所选信号的尺度变换、平移、翻转、加法、减法、乘法等运算功能。 (3)运用 Axes 图表绘制所选原始信号图以及运算结果图。设计出来的离散
26、信号的基本运算界面如图 2.4 所示。图 2.4 离散信号的基本运算界面在离散 LTI 系统的时域系统分析中,通过改变说明区给定的二阶 LTI 系统方程的系数与激励来分析离散 LTI 系统的输出响应图,借此达到离散系统的时域分析。因此,构建该界面主要需要用到以下 GUI 对象:(1)运用 Static Text 对象来输出说明 LTI 系统方程。 (2)运用 Edit Text 对象来编辑 LTI 系统函数的系数。 (3)运用 Pushbutton 对象7完成激励的选择与界面返回。 (4)运用 Axes 对象展现 LTI 系统响应输出波形分析。所设计的 LTI 系统的时域分析界面如图 2.5(
27、a)所示。在离散 LTI 系统的频域系统分析中,通过改变说明区给定的二阶 LTI 系统方程的系数或者改变给定给定二阶 LTI 系统函数的系数,然后分析离散 LTI 系统的输出响应图与其零、极点图,借此达到离散系统的频域的分析。因此,构建该模块界面主要需要有以下的 GUI 对象:(1)运用 Static Text 对象来输出说明 LTI 系统方程和系统函数。 (2)运用 Edit Text 对象来编辑 LTI 系统函数的系数。 (3)运用 Pushbutton 对象完成系统函数运算与界面返回。 (4)运用 Axes 对象展现 LTI 系统零极点、响应输出波形分析。所设计的 LTI 系统的时域分析
28、界面如图 2.5(b)所示。(a) 离散 LTI 系统的时域分析界面 (b) 离散 LTI 系统的频域分析界面图 2.5 离散 LTI 系统的时频域分析界面2.3.2 离散信号傅里叶变换实验界面设计离散信号傅里叶变换实验界面主要完成常见信号的离散信号傅里叶变换、离散时间序列傅里叶变换、周期性序列的离散傅里叶变换,根据实验内容要求,该界面需要需要展示常见离散信号的离散傅里叶变换的相关信号图像(如原信号的时域图、信号变换后的幅频特性信号图与相频信号图) ,因此,构建此界面需要以下 GUI 对象:(1)运用Pop-up Menu 对象完成对常见离散信号的选择。 (2 )运用 Pushbutton 对
29、象完成对所选离散信号的相关运算与界面返回。 (3)运用 Axes 对象展现所选对象的时频域相关谱线(如信号时域图、信号变换后的幅频图、相频图) 。根据实验要求,这里所设计的离散傅里叶变换界面如图 2.6 所示。8图 2.6 离散信号傅里叶变换界面2.3.3 离散序列快速傅里叶变换实验界面设计图 2.7 快速傅里叶变换界面离散序列快速傅里叶变换实验界面主要完成可编辑的 8 点离散序列快速傅里叶变换,根据实验的内容,构建此界面需要用到以下 GUI 对象: (1)运用 Edit Text 对象完成可编辑序列的输入。 (2)运用 Pushbutton 对象完成对所输入离散信号的运算与界面返回。(3)运
30、用 Axes 对象展现所输入序列与其快速傅里叶变换后的相关特性图。 (4)运用9Static Text 对象解释说明快速傅里叶变换界面。所设计的快速傅里叶变换界面如图 2.7所示。2.3.4 IIR 滤波器实验界面设计无限脉冲响应滤波器,简称 IIR 滤波器。IIR 滤波器的设计分为模拟滤波器和数字滤波器的设计,数字滤波器设计又分为用线性脉冲不变法、双线性变换法和直接法设计数字滤波器。然而,IIR 数字滤波器的设计是基于 IIR 模拟低通滤波器的成熟理论和框架设计。因此,在 IIR 滤波器界面的设计中,应先构建 IIR 模拟滤波器界面,然后通过这个界面菜单栏的调用来打开其它 IIR 滤波器设计
31、界面(如脉冲响应不变法设计 IIR 数字滤波器界面、双线性变换法设计数字滤波器界面、直接法设计 IIR 滤波器界面) 。(a) 模拟滤波器 (b) 线性脉冲不变法(c) 双线性变换法 (d) 直接法图 2.8 IIR 滤波器设计界面通过实验内容的需求,构建 IIR 滤波器设计界面中主要用到以下 GUI 对象:(1)运用 Edit Text 对象完成可编辑参数的输入。 (2)运用 Pushbutton 对象完成与其命名相对应的功能。 (3)运用 Axes 对象展现所设计滤波器的相关频谱特性曲线。 (4)运用到了Pop-up Menu 对象完成对相关滤波器设计的类型选择。 (5)运用 Static
32、 Text 对象说明滤10波器设计的要求。这里构建的的 IIR 模拟滤波器设计界面如图 2.8(a)所示,利用线性脉冲不变法设计的 IIR 数字滤波器如图 2.8(b)所示,利用双线性变换法设计的 IIR 数字滤波器如图 2.8(c)所示,利用直接法设计的 IIR 数字滤波器如图 2.8(d)所示, 。根据 IIR 滤波器设计内容的要求,需设计一个 IIR 滤波器应用界面,该界面展现了原始信号通过滤波器,滤除杂波得到有用波形的功能。因此,该界面需要用到以下 GUI对象:(1)Pushbutton 对象,通过点击按钮控制展现输出结果与波形。 (2)运用 Axes对象展现原始信号、滤波器、输出信号
33、的相关曲线。 (3)运用 Static Text 对象解释说明滤波过程。根据要求构建的 IIR 滤波器应用界面如图 2.9 所示。图 2.9 IIR 滤波器应用界面2.3.5 FIR 滤波器实验界面设计有限脉冲响应滤波器,简称 FIR 滤波器。FIR 滤波器的设计方法主要有窗函数法、频率抽样法、等波纹法。在 IIR 滤波器的设计界面中主要用到以下 GUI 对象:(1)运用 Edit Text 对象完成可编辑参数的输入。 (2)运用 Pushbutton 对象完成与其命名相对应的功能。 (3)运用 Axes 对象展现滤波器的相关频谱特性曲线。 (4)运用到了 Pop-up Menu 对象完成对相关窗函数的选择, (5)运用 Static Text 对象说明滤波器设计的要求。已知窗函数阶数时,利用常见窗函数设计 FIR 滤波器界面如图 2.10(a)所示。根据滤波器设计方法的不同,本设计在 FIR 滤波器设计主界面下又开辟了三个子界面,这三个界面分别利用窗函数法、频率采样法、等波纹法设计 FIR 滤波器。在这三