基于MATLAB的数字信号处理实验平台的制作毕业设计.docx
- 文档编号:25544853
- 上传时间:2023-06-09
- 格式:DOCX
- 页数:72
- 大小:776.90KB
基于MATLAB的数字信号处理实验平台的制作毕业设计.docx
《基于MATLAB的数字信号处理实验平台的制作毕业设计.docx》由会员分享,可在线阅读,更多相关《基于MATLAB的数字信号处理实验平台的制作毕业设计.docx(72页珍藏版)》请在冰豆网上搜索。
基于MATLAB的数字信号处理实验平台的制作毕业设计
毕业设计(论文)原创性声明和使用授权说明
原创性声明
本人郑重承诺:
所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:
日 期:
指导教师签名:
日 期:
使用授权说明
本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:
按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:
日 期:
学位论文原创性声明
本人郑重声明:
所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:
日期:
年月日
学位论文版权使用授权书
本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:
日期:
年月日
导师签名:
日期:
年月日
基于MATLAB的“数字信号处理”实验平台的制作
摘要
《数字信号处理》是电子信息工程专业的一门基础课程,由于它内容繁多、概念抽象、设计复杂等,使得学生在学习时常常感到厌烦,难以理解和掌握。
为了使学生们打好专业课基础,提高学习兴趣,特用MATLAB设计了一个数字信号处理的实验软件。
该实验软件共有15个实验,各个实验都可以在实验界面中通过输入相应的参数,观察到实验结果和图形,以便于学生们通过实验加深对课程中概念和原理的理解。
MATLAB是一种交互式、面向对象的程序设计语言,其结构完整、具有优良的移植性。
更重要的是它在数字信号处理方面具有强大的功能。
因此本设计采用MATLAB的图形用户界面设计功能,设计各个实验界面。
本实验软件在MATLAB7.0环境下可以成功运行,只需将系统默认路径改为此实验软件的所在路径即可。
本实验系统可以完成基本信号的产生、卷积、傅里叶变换、Z变换、滤波器的设计等实验。
关键字MATLAB、交互式、图形用户界面、数字信号处理。
"Digitalsignalprocessing"experimentterraceofmanufacturebasdonMATLAB
ABSTRACT
DigitalsignalprocessingisabasiccurriculumintheElectricInformationspecialty.Becausethevariouscontent,abstractconcept,complexdesignandsoon.Thestudentsfrequentlyfeeldullwithdifficultyunderstandingandgrasping.Inordertomakethestudentshaveagoodbasicandenhancethestudyinterestofstudents,putforwarddevelopinganexperimentalsoftwarebasedonSignalProcessing.TheSignalProcessingsoftwareincludesfifteenexperiments,eachexperimentcanbecompletedintheexperimentalinterface,enterthecorrespondingexperimentalparameter,thencanobtaintheoutputofcorrespondinggraphanddata,whichcanmakethestudentshavebetterunderstandinginconceptandprinciple.
MATLABisaninteractivemodeandobjectlanguage.Ithascompleteconstructionandtransplantwell.especiallyithavestrongpowerintheDigitalSignalProcessing.SothedesignadoptsthedesignfunctionofthegraphicuserinterfaceinMATLABtodesigneachexperiment.
TheexperimentalsystemrunssuccessfullyundertheMATLAB7.0environment,onlyneedtoaltertheacquiescinginpathtothepathoftheSignalProcessingsoftware.TheexperimentalsystemcancompletetheexperimentsofBasicSignalGeneration,Convolution,FourierTransformation,ZTransformation,FilterDesignandsoon.
KEYWORDSMATLAB、Interactivemode、GraphicUserInterface、Digitalsignalprocessing.
1绪论
1.1问题提出及研究意义
随着计算机技术和信息科学的飞速发展,数字信号处理已经发展成为一门独立的学科并成为信息科学的重要组成部分,在语音处理、图像处理、雷达、航空航天、地质勘探、通信、生物医学工程等众多领域得到广泛的应用。
信号处理类课程主要介绍离散信号与离散系统分析的基本理论,包括离散傅里叶变换、数字滤波器的设计、数字信号处理的实现等内容。
通过本课程的学习,要求学生掌握信号处理的基本理论、基本方法和基本技能,为后继学习和应用信号处理技术奠定基础。
众所周知MATLAB的信号处理工具箱(SignalProcessingToolbox)覆盖了经典信号处理理论的大多数内容,是一个非常优秀的算法研究和辅助设计工具。
但是依靠MATLAB工具箱仍然不能直接地完成对信号的分析处理,它需要经过一系列的程序编写后方能进行。
所以使用者必须有一定的理论基础和实践经验,但并非所有使用者都学习过MATLAB。
为了使那些未学过MATLAB的学生同样能方便地进行信号的分析与处理,也为了对信号的分析与处理更加方便快捷、更加高效实用,设计了基于MATLAB的信号处理实验系统。
将MATLAB的数字信号处理工具箱、图形用户界面(GUI)设计和数字信号处理的基础知识有机地结合起来,在简要阐明函数原理和算法的基础上,给出了详细的函数使用说明,再通过具体的实验实例,进一步加深了学生对信号处理理论原理的理解,适合于学生对知识的学习和掌握。
1.2设计的基本内容
本设计为基于信号处理的实验软件系统的开发,是利用MATLAB的可视化图形用户界面(GUI)工具和信号处理知识,设计实验系统的图形用户界面的总体结构,能够用于完成相关的信号处理实验。
本设计主要完成以下功能:
(1)信号处理实验系统能够完成以下信号处理实验:
序列的基本计算、基本信号的产生、数据采集、卷积、傅里叶变换、Z变换以及FIR和IIR滤波器的设计。
(2)具有数据输入输出、图形输出、数据修改和文件保存、打印等功能。
(3)界面可视性强,操作简单方便,结果直观易懂、便于分析。
(4)系统易于扩展新的实验,以不断丰富信号处理系统的内容。
2系统设计工具简介
2.1MATLAB概述
MATLAB是一种高效的工程计算言语,它将计算、可视化和编程等功能集于一个易于使用的环境。
在MATLAB环境中描述问题及编制求解问题的程序时,用户可以按照符合人们科学思维的方式和数学表达习惯的语言形式来书写程序。
其典型应用主要包括以下几个方面:
数学计算;算法开发;数据采集;系统建模和仿真;数据分析和可视化;科学和工程绘图;应用软件开发(包括用户界面)。
MATLAB是一个交互式系统,其基本的数据元素是没有维数限制的阵列。
这使得用户可以解决很多工程技术上的问题,特别是那些包含了矩阵和向量的公式的计算。
采用MATLAB编制解决上述问题的程序比用采用只支持标量和非交互式的编程语言(C语言)更加方便。
MATLAB的一个重要特色就是它有一套程序扩展系统和一组称之为工具箱(Toolboxes)的特殊应用子程序。
工具箱是MATLAB函数的子程序库,每一个工具箱都是为某一类学科专业和应用而定制的,主要包括信号处理、控制系统、神经网络、模糊逻辑、小波分析和系统仿真等方面的应用。
MATLAB系统由以下5个主要部分组成,下面具体进行介绍。
开发环境:
由一系列工具组成。
这些工具方便用户使用MATLAB的函数和文件,其中的许多工具采用的是图形用户界面。
包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于浏览帮助、工作空间、文件的浏览器。
MATLAB数学函数库:
这是一个包含大量计算算法的集合,这些函数包括从最简单最基本的函数(如加法、正弦等)到诸如矩阵的特征向量、快速傅里叶变换等复杂的函数。
MATLAB语言:
这是一个高级的矩阵/阵列语言,它包括控制语句、函数、数据结构、输入输出和面向对象的编程特点。
用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起进行。
图形处理:
用MATLAB可以将向量和矩阵用图形表现出来,并且可以对图形进行标注和打印。
高层次的作图包括二维和三维数据可视化、图像处理、动画和表达式作图,低层次的作图包括定制图形的显示和为用户的MATLAB应用程序建立的图形用户界面。
2.2图形用户界面(GUI)设计
GUI是实现人机交互的中介,可以通过它实现数据输入、处理和输出。
MATLAB提供了一个专门的GUI设计工具——GUIDE。
使用该工具,可以快速完成GUI设计任务。
2.2.1创建GUI的步骤
MATLAB图形用户界面开发环境(GUIDE)提供了一系列创建图形用户界面(GUI)的工具。
这些工具极大地简化了GUI设计和生成的过程。
可以用GUIDE完成下面的任务。
(1)输出GUI;
(2)使用GUIDE输出编辑器,可以通过单击和拖拉GUI控件很容易地创建GUI;
(3)GUI编程;
(4)GUIDE自动生成一个控制GUI如何操作的M文件。
该文件初始化GUI并包含一个所有GUI回调(用户单击GUI控件时执行的命令)的框架。
使用M文件编辑器,可以向回调中添加代码,运行相关函数。
启动GUIDE
在命令窗口中键入guide或通过文件→新建→GUI,启动GUIDE显示如图2-1所示
图2-1“GUIDEQuickStart”对话框
打开“GUIDEQuickStart”对话框,利用GUIDE模板创建新的GUI,或者打开已经存在的GUI。
在本设计中选择BlankGUI(Default)后,单击“OK”按钮,在输出编辑器中打开GUI。
输出编辑器
在GUIDE中打开GUI以后,它显示在输出编辑器中。
它是所有GUIDE工具的控制面板。
图2-2显示了空白GUI模板的输出编辑器。
图2-2输出编辑器
可以通过拖拉控件输出GUI,这些控件位于输出编辑器左侧的工具箱中,有按钮、弹出式菜单和坐标轴等多种。
例如把一个按钮和一个坐标轴拖拉到输出区域,效果如图2-3所示。
双击此控件可以设置其基本属性。
图2-3在输出编辑器中拖放控件
菜单编辑器
菜单系统的设置可以通过菜单编辑器来完成。
选择GUIDE的Tools菜单中的MenuEditor选项或单击工具条中的
按钮。
该菜单编辑器如图2-4所示。
图2-4菜单编辑器
在菜单编辑器中:
图标
是新建菜单,
是新建子菜单;
和
用来将菜单向左移和右移;
和
是将菜单项上移和下移;
是删除菜单项。
“Label”栏用来填写菜单项的名称,如果在前面加“&”符号则加快捷键,当运行时第一个字母会加下划线,以方便用户快速激活菜单项;“Tag”是标记;“Separatorabovetheitem”是分隔符;“Checkmarkthisitem”是初值是否已选;“Enablethisitem”是此项有效;“Callback”栏用于输入回调函数。
回调函数是字符串,可以包含任何MATLAB的合法指令和M文件名,回调的作用是将字符串用“eval”执行,以实现菜单的功能。
运行GUI
从“Tools”菜单选择“Run”选项或单击
按钮,运行GUI。
这时将生成两个文件.m文件和.fig文件,在输出编辑器外显示功能GUI。
效果如图2-5所示。
图2-5GUI界面(.fig文件)
GUI的FIG文件和M文件
GUIDE把GUI保存在两个文件中,它们在第一次保存或运行时生成。
一个是FIG文件,扩展名为.fig,它包含对GUI和GUI控件的完整描述;另一个是M文件,扩展名为.m,它包含控制GUI的代码,包括其控件的回调。
这两个文件与GUI显示和编程任务相对应。
在界面编辑器中创建GUI时,内容保存在M文件中;对GUI编程时,内容保存在M文件中。
设计好GUI以后,可以用M文件编辑器编写GUI的M文件。
GUIDE会在第一次保存或运行GUI时生成这个文件。
这个GUI的M文件会初始化GUI,并在GUI显示屏幕上显示以前包含的代码来完成任务。
初始情况下,每个回调都只包含一个函数定义行,然后用M文件编辑器添加代码来完成函数的编写。
单击输出编辑器工具条上的
图标打开M文件。
图2-6显示了GUI界面.m文件。
图2-6GUI界面(.m文件)
2.2.2GUI编程
在输出编辑器中GUI的属性设置以后,下一步工作就是编程。
其主要内容包括:
(1)创建GUI的M文件;
(2)打开GUI的M文件;
(3)在回调间共享数据;通过将数据保存到MATLABhandles结构中,可以实现回调间的数据共享。
GUI中的所有控件使用同一个handles结构。
它会传递一个输入变量给GUIDE生成的所有回调函数。
可以在任何回调函数中获取handles结构中的数据,因为hObject和handles是GUIDE生成的所有回调函数的输入变量。
(4)在初始化函数中添加代码;
(5)在回调函数中添加代码;
这些回调函数有的是针对窗口而言的,还有的是针对具体控件而言的,学会了回调函数的编写将有助于高效编写MATLAB图形用户界面程序
2.2.3GUI的设计流程和设计原则
GUI的设计流程
GUI开发设计的一般流程图如图2-7所示:
图2-7开发设计流程图
从图中可以看出,整个开发过程分为两部分:
设计阶段和实现阶段。
创造性的劳动是在设计阶段进行的,开发文档便是对这些思想的记录,因此,设计者不要忽视设计阶段。
另外,开发流程不是单向进行的,有时有一个反复的过程。
后面会遇到一些无法解决的问题,因此需要对前面做局部调整。
这种反复过程是正常开发无法避免的。
严格按照上述流程进行开发带来的一个好处是,开发者能够从整体上把握设计,制定出合适的策略来解决问题。
GUI设计的原则
由于要求不同,设计出来的界面也是千差万别的。
但是,自从人们开始设计图形界面以来,界面设计的评判标准并没有太大的变化。
简单地说,一个好的界面应遵循的标准可以用九个字来概括:
简洁性、一致性、熟悉性。
简洁性意味着界面简单明了,直接清晰。
用户可以很快提取对自己有用的信息。
一致性意味着设计系统的各个环节应遵从统一的、简单的规则,保证不出现例外的情况。
熟悉性意味着系统设计时尽量保持与该类流行界面相似,比如VC的对话框风格,视图的风格、MATLAB的Figure风格。
这样用户操作起来就容易上手,误操作率比较低。
以上三点,就是要求在设计整个过程中贯穿以人为本的设计理念,设计者应该经常考虑以下两个问题:
一是用户在没有熟悉界面之前,完成一个操作需要多长时间?
二是用户在熟悉界面后,完成一个普通操作需要多长的时间?
总之,便于用户操作是最重要的。
2.2.4控件的使用
除了菜单外,控件也是很重要的界面组成部分,常用的控件包括命令按钮、单选按钮、开关按钮、复选框、文本框、静态文本、滚动条、框架、列表框、弹出式菜单和坐标轴。
各控件的具体功能如表2-8所示。
表2-8各控件的具体功能
控件名
PropertyName
功能
命令按钮
PushButton
最常用的控件,用于相应用户的鼠标单击,按钮上有说明文字说明其作用
开关按钮
ToggleButton
当单击时会凹凸状态切换
单选按钮
RodioButton
当单击时会用黑白点切换,总是成组出现,多个单选按钮互斥,一组中只有一个被选中
复选框
CheckBox
当单击时会用“√”切换,有选中、不选中和不确定等状态,总是成组出现,多个复选框可同时选用
文本框
EditText
可任意输入和编辑单行和多行文字,并显示出来
静态文本
StaticText
用于显示文字信息,但不接受输入
滚动条
Slider
可以用图示的方式显示在一个范围内数值的大概值范围,用户可以移动滚动条改变数值
框架
Frame
将一组控件围在框架中,用于装饰界面
列表框
ListBox
显示下拉文字列表,用户可以从列表中选择一项或多项
弹出式
菜单
Pop-upmenu
相当于文本框和列表框的组合,用户可以从下拉列表中选择
坐标轴
Axes
用于绘制坐标轴
创建控件以后,需要对控件的属性进行设置,以达到设计所需的功能。
大部分控件都有以下属性:
sting属性:
用于显示在控件上的字符串,起说明或提示作用。
Callback属性:
回调函数,和菜单的一样。
enable属性:
表示该控件有效,如果“on”则表示有效,如果“off”则表示无效。
tooltipstring属性:
当鼠标放在控件上时显示提示信息,为字符串。
字体属性:
包括fontname,fontsize等。
Tag属性:
控件的标记,用于识别控件。
3系统总体设计思路
3.1系统总体设计的步骤
在本系统的设计中,界面布局设计采用自底向上的设计方法,即先设计各个实验子界面再设计主界面,最后设计引导界面。
各个回调函数的编写顺序也是采用自底向上的设计方法,即先编制各个实验子界面的回调函数,再编写主界面和引导界面的回调函数,
其设计的具体步骤如下:
(1)运用MATLAB的图形用户界面(GUI)设计方法,设计整个实验系统的开始引导界面、实验主界面及其实现信号处理课程中具体实验的各个子界面;
(2)分别编写各个子界面的各个控件对象的回调函数,来实现控件相应控制功能,达到直接通过界面上各个控件就可以控制数据的输入输出,并可以方便的对实验结果的数据及其图形读取和分析;
(3)编写主界面的回调函数,将各个实验子界面整合在信号处理系统实验主界面中,即通过主界面就可以进入任何一个实验子界面进行实验;
(4)编写开始引导界面的回调函数,实现从引导界面直接进入主界面进行实验,从而形成一个完整的实验系统。
3.2系统总体设计的结构
本实验系统总共包括十个模块:
引导模块、主模块、简介模块、基本信号的产生模块、序列基本计算模块、数据采集模块、卷积模块、傅里叶变换模块、Z变换模块、滤波器设计模块。
有些实验界面模块下面又有下一级实验界面模块,如基本信号的产生模块下有基本离散信号的产生界面和基本连续信号的产生界面;卷积模块下有离散信号的卷积界面和连续信号的卷积界面;傅里叶变换模块下有基本序列的傅里叶变换界面和有限序列的傅里叶变换界面;Z变换模块下有有限长序列的Z变换模块和Z变换的应用模块,其中有限长序列的Z变换模块下有序列的Z变换界面和序列的逆Z变换界面,Z变换的应用模块下有解差分方程界面和系统函数及输入求输出界面;滤波器设计模块下面还有FIR滤波器设计模块和IIR滤波器设计模块,其中FIR滤波器模块又包含FIR滤波器线性的判断实验界面、窗函数的频率响应实验界面和FIR滤波器的设计实验界面,IIR滤波器模块又包含完全IIR滤波器的设计实验界面和典型IIR滤波器实验界面。
系统的总体设计结构图,如图3-1所示。
图3-1系统的总体设计结构图
4系统图形用户界面设计
本实验软件系统的设计是在MATLAB7.1环境下进行的,利用MATLAB的图形用户界面设计工具GUI来进行整个系统的设计。
对于基于MATLAB图形用户界面的设计,它的设计过程非常类似于VB的编程过程,本实验系统的设计工程可以分为以下两个部分:
(1)图形用户界面外观设计:
主要是通过对话框、按钮、文本框等许多工具的使用,设计出一个图形用户界面,同时也应清楚这个图形界面的功能是什么,即在图形界面上的操作会引起什么样的响应。
(2)图形用户控件编程:
用户将根据在外观设计阶段所确定的图形界面的功能,针对各个不同的图形对象,来编写能够实现该功能的回调函数及进行相应的属性设置,确保这个图形界面能够完成所希望的功能。
4.1图形用户界面外观设计
在MATLAB命令窗口中输入guide,或在Matlab主菜单中点击File菜单中的New选项,选择其中的GUI命令,就可以显示图形用户界面的设计模板。
总共有四个模板,本实验系统的设计中使用默认模板(BlankGUI)。
选定设计模版后,单击OK,即进入GUI界面设计环境。
4.1.1控件对象
本设计中用到的控件对象有以下几个:
静态文本框(Statictext)、可编辑文本框(Editabletext)、框架(Frame)、列表框(Listbox)、弹出式菜单(Pop-upmenu)、命令按钮(Pushbutton)几种。
需要哪个控件就在相应的控件单击鼠标左键,然后再设计窗口中需要放置的位置单击鼠标左键,即可完成放置。
下面分别介绍各个控件在本实验系统设计中的具体用途。
静态文本框:
用来静态显示文本字符串,在本设计中用于显示其它控件的说明信息,用来帮助说明其它控件的用途等,还有用作显示数据输出。
可编辑文本框:
用于进行数据的输入及输出,可进行单行或多行输入及输出,并且可以对数据进行修改。
列表框:
用于用户从中选择相应的实验选项进行实验,当选项比较多时,本设计采用了列表框,只要单击其中一个选项,就可以执行相应的操作并得出相应的结果。
弹出式菜单:
用于用户从中选择互相不同的实验选项进
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 MATLAB 数字信号 处理 实验 平台 制作 毕业设计
![提示](https://static.bdocx.com/images/bang_tan.gif)