课程设计任务书题目基于MATLAB的图形用户界面设计专业、班级电子信息工程11级1班学号57姓名朱东丽主要内容、基本要求、主要参考资料等:主要内容:利用MATLAB创建具有人机交互功能的图形用户界面(GUI),实现对某虚拟信号处理实验箱的操作平台界面的设计。
基本要求:1、在欢迎界面,具有进入功能模块、返回模块和退出模块。
2、在功能模块中,包括参数设置区、图形显示区和数据显示区等组成单元,可以完成对指定功能的设置、显示和实现。
3、自选设置三个功能模块,用于实现一定的信号和系统的设计或分析。
主要参考资料:1、《数字信号处理教程(第三版)》,程佩青著,清华大学出版社,2007。
2、《数字信号处理教程——MATLAB释义与实现(第2版)》,陈怀琛著,电子工业出版社,2008。
3、《MATLAB及在电子信息课程中的应用(第4版)》,陈怀琛等著,电子工业出版社,2013。
完成期限:2014.06.09~2014.06.13指导教师签名:课程负责人签名:2014年06月06日基于MATLAB的图形用户界面设计摘要MATLAB的GUIDE是专门用于图形用户界面 (GUI)程序设计的快速开发环境。
从介绍GUIDE入手 ,结合具体的软件图形界面实例 ,给出了利用GUIDE制作图形用户界面的基本方法。
在该设计中 ,利用GUIDE设计的界面可以实现一些基本信号的产生,卷积计算,傅里叶变换等功能,界面友好 ,具有开放性 ,方便用户不断地完善和扩充其功能。
利用MATLAB软件提供的图形用户界面(Graphical User Interfaces ,GUI)设计具有人机交互、界面友好的用户界面。
本文采用MATLAB 的图形用户界面设计功能, 实现对某虚拟信号处理试验箱的操作平台界面的设计。
在该界面系统中, 集成了信号处理中的多个实验, 应用效果良好。
本系统是一种演示型软件,用可视化的仿真工具,以图形和动态仿真的方式演示部分基本信号的传输波形和变换,使学习人员直观、感性地了解和掌握信号与系统的基本知识。
关键词MATLABGUIDE用户界面卷积目录摘要 (II)1.绪论 (1)1.1概述 (1)1.2MATLAB软件 (1)2.图形用户界面 (3)2.1图形用户界面定义 (3)2.2图形用户界面应用 (3)3.GUI的设计 (4)3.1系统整体结构 (4)3.2设计步骤 (4)3.3功能模块 (4)结束语 (13)致谢 (14)参考文献 (15)1.绪论1.1 概述随着计算机的普及应用以及科技的发达,现代社会是信息的社会,对信息的研究变得非常重要,而对信号波形的模拟可以方便研究人员研究。
以前的信号模拟是用硬件,对仪器和实验室的要求较高,不便于广泛应用,而且信号处理具有内容繁多、概念抽象、设计复杂等特点,学生在学习时常常会感到枯燥,难以理解和掌握。
硬件模拟信号波形对设备要求较高,有时候受仪器或操作不对等因素的影响将无法正确直观的看到波形,参数改变时不能立即看到波形变化。
而用软件的形式对信号波形进行仿真有着界面可视性强,操作简单方便;便于数据修改,文件保存,实验效率高,实验内容丰富,结果直观易懂,便于分析;而且系统容易扩展新的实验项目。
所以仿真很有必要而且急为迫切。
1.2 MATLAB软件20世纪70年代,美国新墨西哥大学计算机科学系主任CleveMoler为了减轻学生编程的负担,用FORTRAN编写了最早的MA TLAB。
1984年由Little、Moler、Steve Bangert合作成立了的MathWorks公司正式把MATLAB推向市场。
到20世纪90年代,MATLAB已成为国际控制界的标准计算软件。
MATLAB(矩阵实验室)是MATrixLABoratory的缩写,是一款由美国TheMathWorks公司出品的商业数学软件。
MATLAB是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。
除了矩阵运算、绘制函数/数据图像等常用功能外,MATLAB还可以用来创建用户界面及与调用其它语言(包括C,C++和FORTRAN)编写的程序。
尽管MATLAB主要用于数值运算,但利用为数众多的附加工具箱(Toolbox)它也适合不同领域的应用,例如控制系统设计与分析、图像处理、信号处理与通讯、金融建模和分析等。
另外还有一个配套软件包Simulink,提供了一个可视化开发环境,常用于系统模拟、动态/嵌入式系统开发等方面。
MATLAB由一系列工具组成。
这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。
包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。
随着MATLAB 的商业化以及软件本身的不断升级,MATLAB的用户界面也越来越精致,更加接近Windows的标准界面,人机交互性更强,操作更简单。
而且新版本的MATLAB提供了完整的联机查询、帮助系统,极大的方便了用户的使用。
简单的编程环境提供了比较完备的调试系统,程序不必经过编译就可以直接运行,而且能够及时地报告出现的错误及进行出错原因分析。
MATLAB和Mathematica、Maple并称为三大数学软件。
它在数学类科技应用软件中在数值计算方面首屈一指。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB 成为一个强大的数学软件。
在新的版本中也加入了对C,FORTRAN,C++,JA V A 的支持。
可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。
2.图形用户界面2.1图形用户界面定义用户界面是用户与计算机进行信息交流的方式。
计算机用户界面在屏幕显示图形和文本,若有扬声器还可产生声音。
用户通过输入设备(如:键盘、鼠标、跟踪球、绘制板或麦克风),与计算机通讯。
用户界面设定了如何观看和如何感知计算机、操作系统或应用程序。
通常,多是根据悦目的结构和用户界面功能的有效性来选择计算机或程序。
图形用户界面(GUI)是指由窗口、菜单、图标、光标、图形用户界面按键、对话框和文本等各种图形对象的用户界面。
它让图形对象用户定制用户与MATLAB的交互方式,而命令窗口不是唯一与MATLAB的交互方式。
用户通过鼠标或键盘选择、激活这些图形对象,使计算机产生某种动作或变化。
基本图形对象分为控件对象用户界面菜单对象控件对象和用户界面菜单对象控件对象用户界面菜单对象,简称控件菜单和菜单控件。
2.2 图形用户界面应用运用MATLAB软件开发,设计图形用户界面系统平台,已经广泛应用于实验教学中,此系统平台便于学生直观观察信号系统中涉及的波形及特性的原理图,使学生更加深刻的理解“信号与系统”各信号的产生过程及原理。
MATLAB作为编程语言和可视化工具 , 用MATLAB开发的实验为学生提供了“信号分析”、“信号抽样”、“系统仿真”、“系统特性”及“傅立叶变换”等功能模块。
它的界面演示框如同通用示波器 , 显示了信号分析与系统设计的动态仿真过程 , 给人以直观的感受[1]。
此系统使同学对所学的书本知识会有感性的认识和直观的验证 , 加深对“信号与系统”原理的理解。
3.GUI的设计3.1系统整体结构本实验系统整体结构设计的界面模块总共包括5个模块,其中包括两个整体模块:引导模块、主模块;三个功能模块:基本序列计算模块、卷积模块、傅里叶变换模块。
3.2设计步骤设计的具体步骤如下:(1)运用MATLAB的图形用户界面(GUI)设计方法, 设计整个系统的开始引导界面、功能主界面及其实现信号处理课程中具体功能的各个子界面。
(2)分别编写各个子界面的各个控件对象的回调函数, 来实现控件相应控制功能, 达到直接通过界面上各个控件就可以控制数据的输入输出, 并可以方便地对实验结果的数据及其图形进行读取和分析的目的。
(3)编写主界面的回调函数, 将各个实验子界面整合在信号处理系统主界面中, 即通过主界面就可以进入任何一个子界面进行操作。
(4)编写开始引导界面的回调函数, 实现从引导界面直接进入主界面。
3.3功能模块(1)系统欢迎模块。
系统欢迎界面如图3-1所示。
图3-1系统欢迎界面(2)系统主界面系统主界面包含了各个子界面,由此进入各个子功能模块,系统主界面如图3-2所示。
图3-2系统主界面(3)基本序列产生模块A .基本序列产生模块界面如图3-3所示。
图3-3基本序列产生模块界面由图3-3可以看出在这个模块里包括了单位脉冲序列、单位阶跃序列、指数序列一共三个序列,并且还给出了序列卷积这个运算。
下面来主要介绍这单位阶跃序列和指数序列及其设计方法。
a .单位阶跃序列单位阶跃序列的公式()⎩⎨⎧<≥=)0(0)0(1n n n u (3-1)类似于连续时间系统中的单位阶跃信号()t u ,但应注意()t u 在0=t 点发生跳变,往往不予定义(或定义为21),而()t u 在n =0点明确规定为()10=u 。
在该子界面的单位阶跃序列那栏里输入位移量3,然后点击“单位阶跃序列”按钮,即出现如图3-4所示的波形。
图3-4 位移量为3的单位阶跃序列单位阶跃序列关键程序:function pushbutton3_Callback(hObject, eventdata, handles)t=str2num(get(handles.edit2,'String'));k=[t-3:t+7];fk=[(k-t)>=0];stem(k,fk)title('单位阶跃序列')b.指数序列指数序列是公式是()()n u anx n=(3-2)当a>1时序列是发散的,a<1时序列收敛,a>0序列都取正值, a<0序列在正负摆动。
此外还有()n ua n-的序列。
在该子界面的指数序列那栏里输入底数2,然后点击“指数序列”按钮,出现如图3-5波形图3-5底数为2,指数为10时的指数序列指数序列模块关键程序:function pushbutton4_Callback(hObject, eventdata, handles)t=str2num(get(handles.edit3,'String'));k=[0:10];fk=t.^k;stem(k,fk)title('指数序列')(4)卷积模块A.卷积定义对于任意两个信号()tf1和()t f2,两者做卷积运算定义为()()()τττdtfft f-=⎰∞∞-21(3-3)做一变量代换不难证明()()()()()()()t f t f t f t f d t f f t f 122112**==-=⎰∞∞-τττ (3-4)式中()()t f t f 21*是两函数作卷积运算的简写符号,也可以写成()()t f t f 21⊗。