基于MATLAB的信号与系统实验开发平台实现.docx
- 文档编号:7491562
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:48
- 大小:1.03MB
基于MATLAB的信号与系统实验开发平台实现.docx
《基于MATLAB的信号与系统实验开发平台实现.docx》由会员分享,可在线阅读,更多相关《基于MATLAB的信号与系统实验开发平台实现.docx(48页珍藏版)》请在冰豆网上搜索。
基于MATLAB的信号与系统实验开发平台实现
SJ005-1
CHANGZHOUINSTITUTEOFTECHNOLOGY
毕业设计说明书
题目:
基于MATLAB的“信号与系统”实验平台的设计与实现
二级学院:
计算机信息工程学院
专业:
通信工程
班级:
10通信
学生姓名:
陈观
学号:
10030302
指导教师:
何松
职称:
讲师
评阅教师:
_______________
职称:
________________
2014年6月
基于MATLAB的“信号与系统”实验平台的设计与实现
摘要
Matlab是一种非常专业的计算机程序,可以用于工程科学的数学计算。
随着科技的发展,计算机越来越普及,Matlab也渐渐发展成了一种灵活简单的计算体系,可以解决一些工作中的复杂技术问题。
Matlab语言提供了一个广泛的预定义函数库,可以把一个复杂的计算问题变得简单化。
Matlab软件提供的图形用户界面(GUI)设计具有人机交互,界面友好等特点。
本文采用了Matlab图形用户界面设计功能,开发出所需要的各个子界面,从而完成信号仿真系统的需求,总体结构和基本功能。
《信号与系统》课程是一门实用性较强,涉及知识面非常广的专业基础课,是电子信息,通信工程与自动控制等专业本科学生的必修课程,也是信息类专业硕士研究生入学必考科目。
本文重点介绍了利用Matlab软件设计实现信号仿真系统的基本原理及功能,集成了信号处理中的多个实验,应用效果良好。
本系统是一种演示型软件,用可视化的仿真工具,以图像和动态仿真方式演示了大学的一些基本信号的传输波形和变换,使学习人员直观清晰地掌握信号与系统中的基本知识。
关键词:
信号与系统;Matlab的GUI;仿真平台
DESIGNANDIMPLEMENTATIONOFEXPERIMENTALPLATFORMOF‘SIGNALANDSYSTEM’BASEDONMATLAB
Abstract
Matlabisaveryspecializedcomputerprograms,canbeusedinengineeringscienceandmath.Withthedevelopmentofscienceandtechnology,computerismoreandmorepopular,Matlabalsograduallyevolvedintoakindofsimplecalculationsystem,flexiblecansolvecomplextechnicalproblemsinsomeofthework.Matlablanguageprovidesawiderangeofpredefinedfunctionlibrary,canbecomeacomplexcalculationproblemsimple.
Matlabsoftwareprovidesagraphicaluserinterface(GUI)designwithhuman-computerinteraction,friendlyinterface,etc.ThispaperUSESthefunctionofMatlabgraphicaluserinterfacedesign,neededtodevelopeachinterface,thusaccomplishesthedemandsignalsimulationsystem,generalstructureandbasicfunctions."Signalsandsystems"isapracticalcourse,involvesverywiderangeofknowledgeofprofessionalbasiccourse,istheelectronicinformation,communicationengineeringandautomaticcontrolandotherprofessionalundergraduatestudents'compulsorycourse,andinformationengineeringgraduatestudentmatriculationstudysubjects.ThisthesismainlyintroducesthedesignandimplementationofbasicprinciplesandfunctionofthesignalsimulationsystembyusingMatlab.Italsointegratesmultiplewell-functioningexperimentsofsignalprocessing.Thissystemisademonstratingsoftware.Itdemonstratesthetransmissionwareformandtransformationofsomebasicinuniversitywithimagesanddynamicsimulationbyusingvisualsimulationtools.
Keywords:
SignalsandSystems;MatlabGUI;simulationplatform
第1章绪论1
1.1概述1
1.2基于Matlab的信号与系统实验平台的研究现状1
1.3研究意义2
1.4本文的主要工作2
1.5小结3
第2章开发平台的介绍4
2.1Matlab语言的简介4
2.2Matlab的开发环境5
2.2.1Matlab7.05
2.2.2图形界面用户(GUI)5
2.3小结6
第3章GUI的建立7
3.1GUI界面基本操作7
3.2回调函数7
3.3GUI的M文件8
3.4控件的介绍8
3.4.1触控按钮(PushButton)8
3.4.2坐标轴(Axes)9
3.4.3静态文本(StaticText)10
3.4.4弹起式菜单(Pop-upMenu)11
3.4.5可编辑文本(EditText)12
3.5小结13
第4章系统软件平台设计14
4.1引言14
4.2系统整体框图14
4.3系统设计步骤14
4.4系统模块15
4.4.1模块划分简介15
4.4.2模块具体设计15
4.5生成可执行文件28
4.6小结29
第5章系统测试30
5.1引言30
5.2测试概要30
5.2.1测试结果30
5.2.2测试分析40
5.3小结40
总结41
致谢43
参考文献44
第1章绪论
1.1概述
随着科技的快速发展,计算机在生活中越来越普及,家家户户都能享受到计算机带来的方便。
当今社会是一个信息化的社会,对信息的研究变得越来越重要,信号波形的模拟可以使研究人员方便,快捷,直观地观察出结果,加深对波形的理解。
传统意义上的信号模拟是在实验室中进行的,对硬件要求比较高,在实验的过程中仪器会受到环境,仪器,和操作不当等方面的影响,致使研究的数据不完善,有时候可能会得到不准确的波形,导致研究人员对实验数据的错误研究,而且信号处理具有概念非常抽象,内容复杂而且多变,设计要求难度普遍偏高等特点,所以学生在学习信号系统时往往会感到枯燥乏味,难以沟通理解和掌握,这给老师们的教学难度带来了极大的不便。
而用软件的形式对信号波形进行仿真,具有操作简单方便,界面可视性强等特点,而且在进行实验时可以对数据进行修改,实验内容比较丰富,结果直观易懂,便于分析,一目了然,生成的图形也可以保存,大大缩短了实验时间,使学习人员清楚直观地认识和掌握信号与系统中的一些基本知识。
所以仿真实验是大学生活中一个重要的学习实验平台。
1.2基于Matlab的信号与系统实验平台的研究现状
Matlab软件目前在全世界内都很流行,尤其是在工程计算领域。
Matlab是由美国MathWorks公司生产的一款具有商业科技价值应用的软件,作为最常用的虚拟实验仿真软件,具有适合多学科性,功能强大,仿真度高等特点。
它是一种面向对象的交互式程序设计语言,利用其图像用户界面设计技术和强大的仿真功能来完成原本在物理设备上所需要完成的理论实验,不但可以把书本上难以理解的抽象知识通过图形,数据,文字等多种形式表示出来,而且为实验教学提供了一个界面友好,操作简单的虚拟环境。
GUI工具是一种包含很多种图形对象的界面,包括图形显示、功能按钮控件以及用户自定义的功能菜单等主要内容,用户可以利用属性、事件过程和菜单等编辑器,来构建一个界面良好,功能完善的交互式操作平台,进而实现人机信息的交互。
在设计界面内,用户可以根据要求来完成整个实验,而不用担心实验内部是如何进行运作的。
GUI设计主要依赖于MATLAB环境所提供的基本科学计算,同时也可以利用GUI来进行设计,用户可以很方便地创建各种图形句柄对象,实现仿真平台的用户界面设置功能。
“信号与系统”这门课程理论性很强,在教学中出现了教师难教,学生难学的情况,对学生的学习理解带来了极大的不便。
如何深刻理解基本物理概念,理清基本物理过程,牢固掌握它的分析方法并能够灵活运用到理论工具来解决实际问题,是教学过程中所要迫切解决的重要问题。
为了解决这一难题,在国内外的信号与系统的教材中,都加入了Matlab的一些基本实验内容,利用实验来加深学生对课程的理解能力和实际动手分析能力,起到一个一举两得的作用。
1.3研究意义
Matlab作为编程语言和可视化工具,可以开发出多个不同种的实验平台模块。
本设计使用Matlab开发出的实验平台为学生提供了“基本信号产生”、“周期信号的合成与分解”、“抽样定理的验证”及“信号零极点分布与冲激相应的关系”等实验模块。
它所形成的界面演示框和通用示波器差不多,用于显示信号分析与系统设计的动态仿真过程,一目了然,给人最直观的感受。
在教学中Matlab能为同学们提供大量的实例,同时它也可以改变信号的周期、幅值、频率等参数,进而观察信号与系统的相应变化。
在实验进行的过程中,同学们对所学的书本知识会有感性的认识和直观的验证来加深对“信号与系统”相关知识的理解。
本课题避开硬件系统的不足之处,巧妙地运用软件来仿真硬件系统从而实现实验结果,大大降低了实验设备要求,节约了人力和成本,而且有很多的库函数可以在实验时直接拿来调用,避免了用硬件做实验的局限性,实验人员可以更方便地从事信号与系统的实验,为教学和研究提供了方便。
还能够锻炼一个人在面对一个具体的项目时,遇到问题,分析问题和解决问题的能力;获得独立思考的空间来完成课题,并按照既定计划进行开发的经验,以及查找相关文献的能力。
通过努力使自己对Matlab有一个全面的、深刻的认识,并且对用Matlab做界面的软件有了一定的了解,对系统规划有了初步的认识。
为以后研发工作打下坚实的基础,积累宝贵的经验。
1.4本文的主要工作
计算机应用在教学学习中有两个层面:
一是选择Matlab作为计算工具,编写一些命令程序来计算机的模拟实验。
二是不需要编程,通过已经做好的课程软件,输入所需要的数据,改变参数来观察实验结果。
显然第二种方案更适合日常的学习理解,所以学生需要一套这种操作系统,这种操作系统不需要编程,只要输入参数和改变数据,就可以形象,直观地观察出课程中难以理解的复杂公式。
为此,研究人员利用Matlab强大的数值计算和绘图功能,采用图形用户界面(GUI)编程方法,设计出一套“信号与系统仿真模拟实验平台”。
该课题选择在实验环境中,用教学辅助软件帮助学生完成数值计算、信号分析的可视化建模及仿真调试。
利用计算机来进行辅助教学是传统教学改革上的一个重要的突破,它可充分利用计算机的特点,如文字、声音、动态图形及友好的人机界面等生动地表达抽象的概念和理论,使学生在可视化的环境中易于掌握和理解所学知识。
本实验以应用软件Matlab为平台,开发出可以在计算机网络环境下使用的,与“信号与系统”教学大纲相配套的教学辅助软件。
设计的实验软件系统在Matlab7.0环境下进行,利用Matlab的图形用户界面设计工具GUI来进行整个系统的设计。
要求完成至少四个模块:
基本信号产生模块、周期信号的分解与合成模块、抽样信号及频谱(或抽样定理的验证)模块、信号零极点分布与冲激响应的关系模块等。
1.5小结
本章主要介绍了该课题的研究背景及研究现状,总结了国内外对于该领域的研究现状和研究本课题的目的与意义,并说明其在教学实验中的应用。
此外本章还分析了课题设计的一些工作,总体介绍了该课题的设计方法和设计思路,最后叙述了论文的主要工作。
第2章开发平台的介绍
2.1Matlab语言的简介
Matlab语言是当今科学界最具活力和最具影响力的软件,它逐渐发展成为了一种高度集成的计算机语言。
它提供了灵活的程序设计流程,高质量的界面设计,强大的科学运算和便捷的与其他语言衔接的功能,所以在各国的科学研究当中Matlab语言起到了重要的作用。
Matlab是“矩阵实验室”(MatrixLaboratoy)的缩写,它是一种以矩阵运算为基础的交互式程序语言,基本元素是无须定义维数的矩阵,方便矩阵的存取,主要用于科学、工程计算及绘图的需求。
Matlab数值计算的基本单位是复数数组,使得Matlab高度“向量化”,它使用方便,输入简捷,运算高效,内容丰富,并且很容易由用户自行扩展,其特点是简洁,高效与方便,是其他语言无法比拟的。
Matlab使用解释方式工作,键入程序就可以立即得到结果,人机交互性高,深得科研人员的喜爱,特别是Matlab能适应多种平台,能随着计算机硬件的更新而及时升级,不影响实验的需求。
大学的电子信息类学生假如能很好地掌握Matlab软件,就可以大大提高所学知识的理解能力和分析研究的效率。
Matlab的最突出的优点就是简洁,它用更直观,符合大家思考方式的代码,代替了传统的C和FORTRAN语言的冗长代码,给用户带来的是最直观,最简洁的程序开发环境,这是大家希望看到的。
Matlab之所以可以在世界范围之内流行,具有以下几个特点:
(1)语言简洁紧凑,编程效率高
因为Matlab定义了专门用于矩阵运算的运算符,所以矩阵运算可以像列出算式一样简单方便,而且这些运算符本身就能执行标量和向量的多种运算,关键是库函数都是由本领域的专家编写,不用质疑它的正确性。
用户利用这些运算符可以使高级语言中的循环结构变成一个简单的Matlab语句,然后再结合Matlab丰富的库函数可以使程序变得非常简短,几条语句即可代替几十行C语言或FORTRAN语言程序语句的功能,给学生节省了不少脑力和时间。
(2)交互性好,使用方便
在MATLAB的命令窗口中输入一条指令,就能马上看到该条指令的执行结果,体现了良好的交互性。
交互方式减少了编程和调试程序的工作量,给用户带来了很大的方便。
(3)绘图功能强大,便于数据可视化
Matlab不但能在多种不同坐标系中绘制二维曲线,还能绘制三维曲面,体现了强大的绘图能力。
正是这种能力给数据的可视化提供了方便,使数据的展示更加形象生动,有利于描绘出数据间的内在关系。
(4)领域广泛的工具箱,便于众多学科直接使用
功能强大的工具箱是Matlab的另一特色,包含两个部分:
核心部分和各种可选的工具箱。
其工具箱又可以为两类:
功能性工具箱和学科性工具箱。
功能性工具箱主要有扩充符号计算,图示建模仿真和文字处理及与硬件实时交互功能。
而学科性工具箱有很强的专业性,如优化工具箱、控制工具箱、统计工具箱、图像处理工具箱、通信工具箱等。
(5)开放性好,便于扩展
除内部函数外,所有Matlab的核心和工具箱文件都是可读可改的源文件,体现了Matlab的开放性。
开放性也是Matlab受人们欢迎的另一个特点,用户可通过对源文件的修改或者加入自己的文件构成新的工具箱来满足用户本身的需要。
2.2Matlab的开发环境
2.2.1Matlab7.0
Matlab7.0是Matlab6.0的升级版本,兼容性比较好。
Matlab7.0的界面并没有太大改变,命令(Command)窗口仍然是用户主界面,图形窗口用来显示图形信息和创建图形界面用户,文本编辑器用来创建和编辑Matlab代码。
Matlab7.0在数值表示和操作方法上有了新变化,增加和修改了一些内核数值算法,可以支持各种数据类型的数学运算。
随着Matlab7.0不断升级以及商业化,它的用户界面也越来越精致简洁,更加符合于Windows的标准界面,人机交互,操作更简单。
新版本的Matlab7.0还提供了联机查询帮助功能,当用户不确定自己的编写程序是否出现问题时,可以上网进行查证,方便了用户的使用。
简单的Matlab编程环境提供了完善的调试系统,程序不需要经过编辑就可以直接运行出来,并具有及时地报告错误和对数据错误分析的能力。
2.2.2图形界面用户(GUI)
图形用户界面(GUI)是指采用图形方式显示计算机操作环境的用户接口。
随着计算机的快速发展,GUI的使用越来越广泛,它极大地方便了非专业人士的使用,不需要、死记硬背大量的公式,节省了用户很多宝贵的时间,取而代之的是通过窗口,按键,菜单等方式来进行操作。
嵌入式GUI具有以下几个基本要求:
轻巧,高性能,可靠性大,占用资源少,便于移植,方便配置等特点。
图形用户界面是由各种图形对象,如图轴,图形窗口,菜单,按钮,文本框按钮等构建的用户界面,是人机交流信息的工具和方法。
GUI设计可以由两种形式来实现。
一种是由GUIDE工具进行编写,这种方法的好处在于简单易懂,比较容易上手,但是对于一些复杂的功能实现比较困难,不能完善优化整个系统。
第二种方法是基本代码法,就是在M文件当中用Matlab语言来编写出所有图像对象控件所对应的代码,通过这种方法,用户可以很轻松灵活的来实现所需要的功能,本实验中所用到的一些控件就是按照这种形式定义好了,方便用户的编写,这种方法的优点在于功能比较强大,能满足用户的任何需求,可以通过编码来实现许多复杂的功能,调试起来也比较方便,但是缺点在于编写程序比较复杂难懂,上手十分困难。
因为用户是初学者,对于Matlab语言还不是很了解,所以选择第一种形式来满足此次试验的要求。
创建Matlab用户图形界面必须由三个基本元素组成:
1.组件。
在MatlabGUI中的每一个项目(按钮,标签,编辑框等)都是一个图形化组件,组件可分为三类:
图形化控件(按钮,编辑框,列表,滑动条等),静态元素(窗口和文本字符串),菜单和坐标系,图形化控件和静态元素由函数uicontrol创建,菜单由函数uimenu和uicontextmenu创建,坐标系常用函数axes创建,用来显示图形化数据。
2.图像窗口。
GUI的每一个组件都必须安排图像窗口中。
以前,用户在画数据图像时,图像窗口会被自动创建。
但用户还可以用函数figure来创建空图像窗口,空图像窗口经常用于放置各种类型的组件。
3.响应。
最后,当用户用鼠标或用键盘输入一些信息,那么程序就要有相应的动作。
鼠标单击或输入信息是一个事件,如果Matlab程序运行相应的函数,那么Matlab函数肯定会有所反应。
例如,如果用户单击一个按钮,这个事件必然导致相应的Matlab语句执行。
这些相应的语句被称为响应。
只要执行GUI的单个图形组件,必须有一个响应。
2.3小结
本章主要介绍了本课题的开发平台,简述了Matlab语言的优缺点,简述了设计平台(GUI)的搭建步骤,在下面的章节中将详细介绍GUI平台的搭建过程。
第3章GUI的建立
3.1GUI界面基本操作
为什么用户要在MATLAB中使用GUI呢?
其实GUI相当于MATLAB中的VisualBasic,是面向对象的编程,可以使用户不懂MATLAB语言也可以轻易操作该程序GUI编辑界面主要包括GUI对象选择区,GUI布局区,GUI工具栏和状态栏4个部分。
本小节将简述一下GUI界面的基本操作,具体操作步骤流程在以后的章节中具体阐述。
1、启动GUIDE
用户有两种方法启动GUIDE。
第一种是在命令行里输入:
>>guide,点回车键进入GUI界面。
第二种在MATLAB主界面左上角点击File->New->GUI->CreateNewGUI->BlankGUI->OK即可打开图形用户界面开发环境。
创建了新的GUI之后用户可以选择4种样板:
BlankGUI:
一个空的样板,用户打开之后可以编辑所需要的figure子对象,方便用户。
GUIwithUicontrols:
打开之后包含uicontrol对象的编辑器,具有单位换算功能。
GUIwithaxesandMenu:
打开之后包含菜单栏和坐标轴图形对象的编辑器,具有数据描绘功能。
ModalQuestionDialog:
打开以后是一个对话框的编辑器,默认为一个问题的对话框。
本次的实验都是最基础的信号与系统的研究,所以选择BlankGUI样板。
在里面可以拖放需要的控件,包括pushbutton、slider、radiobutton、togglebutton、checkbox、listbox、popupmenu、edittext、statictext、table、axes、panel、buttongroup、activeXcontrol,这些属于uicontrol对象。
还可以添加菜单,进行各种属性的设置,使Matlab界面看起来更美观。
布局好后,用户点保存按钮保存成fig文件,剩下的主要工作就是编写callback函数。
2、界面菜单:
可以通过uimenu函数添加菜单;
3、基于命令行的控件:
可以通过uicontrol函数按照指定的属性值来创建控件对象;
4、GUI布局区。
GUI布局区用于布局GUI对象,使用GUIDE编辑器编辑GUI,要分别编辑两个文件:
一个是fig文件,包含了GUI对象属性设置和布局,另一个是M文件,包含了控制GUI对象执行的回调函数,用户一旦使用了GUIDE编辑器,就一定会同时存在这两个文件。
所以用户首先需要对GUI对象属性布局设置,然后再编辑回调函数。
3.2回调函数
当一个图形对象发生时,GUI传递要执行的子函数到M文件下,该子函数就是所谓的回调函数(也称为callback函数)。
在Matlab中,如果控件是按钮,点击按钮时,按钮下的Callback就会触动执行命令;如果控件是滑块,拖动滑块时,滑块下的Callback就会执行。
具体地讲,当用户对控件进行默认操作时,Matlab后台就会自动调取所需要的Callback函数。
3.3GUI的M文件
由GUIDE生成的M文件,控制着GUI以及用户操作之后的响应,它包含了运行响应的所有代码。
当用户建立GUI界面时,系统会自动生成其M文件的大体框架,所以用户就可以在其框架下编写该控件的回调函数。
GUI的M文件由一系列的子函数构成,包括了主函数,Opening函数,Output函数和各种回调函数CallBack。
函数gui_mainfcn是GUI默认的处理函数。
它根据传入的参数来确定执行回调函数还是打开GUI运行OpeningFcn和OutputFcn。
如果回调函数为空,就直接运行GUI,打开fig文件,否
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 MATLAB 信号 系统 实验 开发 平台 实现