基于MATLAB-GUI平台连续时间信号的傅里叶变换系统设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

MATLAB程序设计基于MATLABGUI平台的连续时间信号的傅里叶变化与傅里叶反变换系统平台的设计报告院系:电子信息与电气工程学院专业:光电信息科学与工程班级:2016级光电1班学号:201614590117作者:郭艳喜基于MATLABGUI平台连续时间信号傅里叶变换与傅里叶反变换系统的开发课题报告光电班郭艳喜学号:201614590117第1页共10页目录引言································02一、GUI图形用户界面介绍······················02二、M文件的编写··························03(一)M文件中常用函数介绍···················03(二)编写M文件·······················03三、连续时间信号的傅里叶变换与傅里叶反变换系统的设计开发····························03(一)设计的基本内容······················03(二)、系统的设计功能·····················04(三)、系统界面························04(四)、控件属性设置·······················05(五)、系统功能的实现·····················07四、系统的测试···························08五、结论······························09参考文献······························11基于MATLABGUI平台连续时间信号傅里叶变换与傅里叶反变换系统的开发课题报告光电班郭艳喜学号:201614590117第2页共10页引言科学技术不断发展,为了适应当代社会的要求,作为大学生既要有扎实的理论基础又要有一定的创新和实践能力。为了培养这种创新实践能力我们专门开设了MATLAB这门课程。MATLAB是国际上公认的优秀、可靠的科学计算和仿真的标准软件。它以强大的科学计算功能、简单易用、开放式可扩充环境,特别是所附带的30多种迈向不同领域的工具箱的支持,使得它在许多科学领域中成为计算机辅助设计和分析、算法研究和应用开发的基本工具和首选的平台。“信号与系统”课程是电类专业的主干课程,电子信息工程、通信工程、自动控制、电气工程等专业都要求学生掌握这两门课程,它以“高等数学”、“工程数学”、“电路分析基础”等课程为基础,同时又是后续“数字信号处理”、“通信原理”等专业课程的基础,在教学环节中起着承上启下的重要作用。因此,学好这两门课程的质量,掌握信号处理的基本思路和方法,以备后续课程的学习和工作的需要,是一件意义深远的事。基于MATLABGUI的连续时间信号的傅里叶变换与傅里叶反变换系统的开发,主要涉及两个方面的问题:1.MATLABGUI的图形设计;2.用MATLAB傅里叶变换分析的建模与仿真。本文围绕该设计涉及的问题分为三大部分:第1部分对图形化用户界面进行了介绍,包括如何启动GUI、编辑GUI的常用函数、GUI的建立,M文件的编写等,着重研究以GUI编辑界面——GUIDE建立GUI。第2部分是GUI信号与系统的设计,包括设计的基本内容、总体设计步骤、系统的设计及实现。第3部分对系统涉及的部分功能进行了分析,并给出了部分功能的测试结果。一、GUI图形用户界面介绍图形用户界面(GraphicalUserInterfaces,GUI)是提供人机交互的工具和方法,包含窗口、图标、菜单和文本等图形对象。以某种方式选择或激活这些对象时,通常会引起动作或者发生变化。MATLAB的GUI为开发者提供了一个不脱离MATLAB的简便开发环境,大大提高了可视化应用程序的开发效率。[1](一)、GUI的启动方法启动GUI可以采用如下几种方法。1.在命令窗口的提示符下,输入命令:图1.1GUIDEQuickStart对话框(1)Guide——打开GUIDE启动界面(2)Guidefile——打开文件名为file的GUIDE用户界面。2.单击菜单项“Home”→“New”→“GraphicalUserInterface”,打开GUIDE启动界面。基于MATLABGUI平台连续时间信号傅里叶变换与傅里叶反变换系统的开发课题报告光电班郭艳喜学号:201614590117第3页共10页二、M文件的编写(一)M文件中常用函数介绍1.get:获得对象的属性值语法如下所示:get(handle,‘属性名称’)获得特定属性名称对应的属性值,若’属性名称’省略,则获得所有属性值.其中handle表示该对象的句柄值。MATLAB中所有GUI对象都是由句柄值进行对象的控制,句柄值就好像一个对象的识别证,每个对象都有一个专属的句柄值,这个值可以由用户自行设置或直接通过MATLAB绘图函数、GUI对象相关函数自动产生,如plot等函数都会产生句柄值,借助句柄值就可以指定对应的对象通过其属性来编辑操作。2.set:设置对象的属性值语法如下所示:set(handle,‘属性名称1’,‘属性值’,‘属性名称2’,‘属性值’,---)一次设置多个属性set的使用方式与get类似,只是set用以设置对象的属性,因此输入参数中多一个属性值,也就是设置指定属性名称所对应的属性值,并且set在语法上可以一次设置多个属性。除了以上这两个最常使用的属性获得与设置的函数外,在GUI中若能够善用gcf、gca、gco、gcbf、gcbo、findobj等函数来查询对象的句柄值,在对象属性设置上更能方便与快捷地实现GUI对象的目的。所谓的当前对象有以下两个定义:最后建立的对象与最后选取的对象。3.gcf:对当前的figure对象回报其句柄值,即当前所画的绘图窗口句柄值。4.gca:对当前的axes对象回报其句柄值,即当前所画的图像坐标轴句柄值。5.gco:对当前的对象回报其句柄值,回报其句柄值前先检查该图形是否存在,即返回鼠标刚刚单击过的对象句柄值。6.gcbf:获得当前正在执行Callback程序的图形对象的父对象句柄值。7.gcbo:获得当前正在执行Callback程序的图形对象的句柄值。[2]8.findobj:借助已设置的对象属性(一般常用卷展栏属性,即Tag)查找该属性值所对应的对象句柄值,语法如下所示:Handle=findobj(‘属性名称’,‘属性值’)如此就会通过指定的属性名称与属性值来查找出对应的句柄值,一般来说为了避免搜索到其他对象的句柄值,我们会以Tag属性来作为搜索的准则。如通过以下程序,找出Tag名称为Axes1对象的句柄值为axes_handleaxes_handle=finfobj(‘tag’,‘axes1’)(二)编写M文件通过GUIDE建立GUI后,在执行或存储该界面时,会产生一个M文件,这时就可以单击【M-fileEditor】图标按钮来编写该GUI下每个对象的Callback与一些初始设置,如下图所示,除了扩展名不同外,存储后的文件名称与FIG文件名称一致。M文件的编辑器非常好用,直接在各对象Callback下输入当用户按下这个对象后所应该触发执行的操作所对应的程序代码即可。使用【Showfunction】按钮来观察此界面中所有的Callback函数,当单击该按钮后会出现一个列表,直接在该列表上依据对象的tag名称与Callback来选取欲查询的内容,GUIDE会立即移动到选取的Callback位置处。如选取fusnbuton1的Callback函数,GUI就会移动到相应的位置处。三、连续时间信号的傅里叶变换与傅里叶反变换系统的设计开发(一)设计的基本内容本系统主要针对信号与系统中的连续时间信号处理部分,通过GUI平台输入一个函数可以对连续时间信号进行傅里叶变换、对频域信号进行傅里叶反变换以及两种信号的原信号、变换信号的图像绘制,本系统的傅里叶变换与傅里叶反变换通过fourier()和ifourier()函数实现;绘图功能用通ezplot()函数数实现。经过测试可以对信号进行傅里叶变换和反变换,但在绘图师由于某些函数可能包含一些不能直接用符号表达的式子,所以变换后的图像绘制存在一定问题。基于MATLABGUI平台连续时间信号傅里叶变换与傅里叶反变换系统的开发课题报告光电班郭艳喜学号:201614590117第4页共10页(二)、系统的设计功能(三)、系统界面(四)、控件属性设置首先,我在整体界面上设置了一个大标题,‘string’属性设置为“连续时间信号的傅里叶变换与傅里叶反变换处理系统”,‘FontName’属性设置为“楷体”,‘FontSize’属性设置为“20”,‘ForegroundColor’属性设置为“R:0.467\G:0.675\B:0.188”,‘Tag’属性设置为“txet2”为初始属性。之后在界面上放置了两个“panel”,把两个panel的分别‘Titel’属性设置为“傅里叶变换模块”和“傅里叶饭变换模块”,‘FontName’属性均设置为“楷体”,‘FontSize’属性均设置为“20”,‘ForegroundColor’属性均设置为“R:0.467\G:0.675\B:0.188”,‘Tag’属性分别设置为“uipanel1”和“uipanel2”,进入系统退出系统时域信号频域信号绘制图像傅里叶变换绘制频域图像绘制图像傅里叶反变换绘制时域图输入函数基于MATLABGUI平台连续时间信号傅里叶变换与傅里叶反变换系统的开发课题报告光电班郭艳喜学号:201614590117第5页共10页之后的控件属性设置如下图:输入文本框的属性设置“请输入一个函数”标题的属性设置“开始傅里叶变换”按钮的属性设置原函数绘图坐标轴的属性设置基于MATLABGUI平台连续时间信号傅里叶变换与傅里叶反变换系统的开发课题报告光电班郭艳喜学号:201614590117第6页共10页傅里叶频域函数绘图坐标轴的属性设置退出按钮属性设置其他相同控件设置基本相同,只是‘Tag’属性和‘String’属性设置稍有不同,这里不再赘述。(五)、系统功能的实现1.傅里叶变换及函数图像的绘制functionpushbutton2_Callback(hObject,eventdata,handles)%hObjecthandletopushbutton2(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)fw2=get(findobj('tag','edit3'),'string');%获取输入函数f3=sym(fw2)%声明输入的表达式为符号函数axes(handles.axes3);%启用axes1ezplot(f3);%在axes1中绘制原函数图像gridon;%打开网格an=char(ifourier(f3));%获取傅里叶变换set(handles.t14,'string',an);%给显示窗口赋值ft2=sym(get(handles.t14,'string'));%获取窗口的函数表达式axes(handles.axes4);%打开绘图窗口4cla;%清除当前图像ezplot(ft2);%绘制傅里叶变换后图像gridon;%打开网格2.傅里叶反变换的实现基于MATLABGUI平台连续时间信号傅里叶变换与傅里叶反变换系统的开发课题报告光电班郭艳喜学号:201614590117第7页共10页functionpushbutton1_Callback(hObject,eventdata,handles)%hObjecthandletopushbutton1(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithh

1 / 12
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功