基于gui的仿真平台的设计.doc
《基于gui的仿真平台的设计.doc》由会员分享,可在线阅读,更多相关《基于gui的仿真平台的设计.doc(21页珍藏版)》请在冰豆网上搜索。
3基于GUI的《信号与系统实验》仿真平台的设计
3.1设计思想
3.1.1设计步骤
本课题设计的界面布局是先设计GUI总界面,然后设计子界面,再在子界面上设置按钮、坐标轴、文本框等一系列控件,最后借助于callback函数调用程序。
在函数调用程序的设计中先编写各个子界面中的回调函数下的程序,再编写GUI界面的回调函数下的程序。
1.用MATLAB的GUIDE提供的创建图形界面工具设计整个实验仿真界面的主界面,在设计子界面;
2.在实验子界面中添加各个控件对象,编写控件按钮回调函数,实现每个控件的控制功能,直接通过界面上的控件实现对结果的分析;
3.最后编写GUI总界面的回调函数程序,把所有的子界面集合在总界面中,通过总界面可以进入任意子界面中并可以进行操作;
4.退出实验界面。
设计流程如图3-1:
编写子界面控件
按钮的回调函数
在子界面中添加
相应的控件按钮
最后编写GUI主界面回调函数,总界面可进入任意实验子界面
先设计GUI主界
面再设计子界面
退出实验界面
图3-1设计流程图
3.1.2实验系统整体结构设计
信号与系统实验繁多、复杂、许多实验还需要输入参数,若将系统设计成一个界面,使得系统繁重、拥挤、不能够实现友好,美化的界面的设计要求。
因此,在设计界面的时候,采用一个主界面和若干个子界面,每个子界面是一个模块,实现一个实验或功能,并且可以通过主界面调用子界面的设计方法。
本实验系统整体结构设计由两部分组成:
界面模块设计和菜单模块设计。
其中界面模块中包含六大实验模块:
主界面模块、基本信号的产生实验模块、信号的基本运算实验模块、卷积实验模块、傅里叶变换实验模块、连续零状态响应实验模块、低通滤波器实验模块。
如傅里叶变换实验模块又包含方波傅里叶实验界面、离散傅里叶实验界面、快速傅里叶实验界面。
在菜单设计时,在实验子界面中除了使用系统约定的菜单条外,还增加了几个控制背景和退出实验的菜单。
系统的整体结构如图3-2所示:
基本信号的产生
信号的基本运算
卷积
傅立叶变换
连续系统零状态
低通滤波器
主界面
退出界面
图3-2实验系统的整体结构
3.2基于GUI的系统总界面的设计
3.2.1设计步骤
在GUIDE的编辑界面中,在空白处双击或者单机右键选择propertyinspector,出现属性设置对话框,可以对GUI的属性风格进行个性化。
Color选项可以改变背景颜色,选择自己喜欢的颜色,本课题是插入图片。
Position选项可以对界面窗口的大小进行调整,窗口的大小可以通过设置width和height进行调整,也可以用鼠标拖拽窗口,用鼠标拖拽窗口设置比较方便、快捷,也更容易设置适合于实验设计内容的大小GUI界面。
下面详细介绍主界面的设计过程:
点击运行MATLAB软件后,在软件界面中直接点击GUIDE工具,选择CreateNewGUI中的BlankGUI(Defarlt)点击OK,在弹出的新建窗口中拖入7个静态文本框(StatecText)和7个按钮(PushButton)如图3-4所示。
设置静态文本的String为“基于GUI的信号与系统仿真实验平台的设计”BackgroundColor为浅红色,FontSize为28.0,ForegroundColor位黑色。
依次设置另外六个静态文本框String为“实验一基本信号的产生”、“实验二信号的基本运算”、“实验三卷积”、“实验四傅里叶变换”、“实验五连续系统零状态响应”、“实验六低通滤波器”这几个实验的Fonsize为22.0,另外的六个按钮依次设计的Fonsize为16.0。
点击每个实验后的按钮编写回调函数进入相应的实验子界面中,也可参考图3-3流程:
创建NewGUI点击OK,在窗口中拖入7个静态文本框和7个按钮
结束
在文本框中依次输入每个实验字体,设置字体的背景颜色、大小,
编写主界面进入子界面中的调用函数
在界面中MenuEditor中加入主界面标题
点击MATLAB软件中的GUIDE工具
图3-3主界面流程图
在其相应的位置编写主界面进入子界面的程序如下:
functionpushbutton1_Callback(hObject,eventdata,handles)
set(0,'CurrentFigure',jbxhdcs)进入“实验一基本信号的产生”实验中可实现信号的产生。
还可在主界面中插入一些背景图片,使主界面看起来更加的美观,如添加学校LOGO、风景图片等来美化实验主界面。
插入背景图片相应的需要编写回调函数,点击主界面背景函数Callback中的CreateFcn进入相应的程序编写位置,编写的背景插入图片的程序参考附录,点击主界面中的运行按钮如图3-5所示是设计完成后的实验系统主界面。
3.2.2主界面仿真平台设计
在设计的主界面平台添加相应的按钮、文本框、设置字体的大小和字体背景的颜色,编写回调函数和界面背景图片插入。
如图3-4所示:
图3-4主界面
3.2.3仿真结果分析
点击运行按钮后的主界面仿真结果如图3-5所示,可以点击任意一个实验按钮进入相应的子界面实验中,实验仿真结果结束后,可点击退出按钮结束本次实验。
图3-5运行后的主界面
3.3基于GUI的系统子界面的设计
3.3.1设计步骤
子界面的设计和主界面的设计有些相似,主要由每个控件的属性,并加入相应的回调函数callback程序实现其相应的功能。
如图3-7所示以“基本信号的产生”子界面为例,点击MenuEditor中的NewMenu会出现Untitled1,在其上点击出现MenuProperties,修改其中的Label选项,命名为“基本信号的产生”。
点击Axes按钮,在GUIDE界面空白处适当位置点击,会出现一个坐标轴图标,用鼠标拖拽到想要的大小。
在此图标上点击右键,在ViewCallback选项中选择buttondownfcn,编写回调函数。
选择Statictext按钮,在空白处点击左键,把出现在窗口中的Static文本拖拽到适当大小,单击右键或双击左键,设置背景颜色“Backgroundcolor”,字体颜色“Foregroundcolor”,字体大小“Fontsize”;选择Edittext按钮,在空白处适当位置处点击,把出现的文本框拖拽到适当大小,双击左键,设置“String”为“”等的属性。
本课题设计的字体大小一般设置为15,有的会适当调整。
“退出”的设置:
在Pushbutton5上双击左键将“String”选项内容改为“退出”,在这个按钮的回调函数viewCallback中的Callback选项下写入“Closejbxhdcs”就可实现子界面的关闭。
可参考流程图3-6:
创建子界面
结束
编写子界面关闭按钮的程序
点击界面中的MenuEditor中的NewMenu出现Untitled1,点击其上出现的MenuProperties,修改Label为实验名称
在控件按钮处添加回调函数,
实现实验仿真波形
坐标和按钮调节到适当的大小,设置界面背景颜色,按钮字体大小(15)、颜色
在子界面中添加坐标、控件按钮
图3-6子界面参考流程图
3.3.2《信号与系统实验》仿真子平台的设计
1实验一:
基本信号的产生
基本信号的产生包含了正弦信号、指数信号、单位脉冲信号、单位阶跃信号。
在界面中输入正弦信号的幅度、角度、相位为231;在指数信号下输入幅度、相位为32;在单位脉冲信号下输入平移量5;在单位阶跃下输入4;相应的各个信号波形输出呈现的图形如图3-7所示:
图3-7基本信号的产生界面
(1)正弦信号
正弦信号的大小与方向都是随时间作周期性变化的,信号在任一时刻的值,称为瞬时值。
其公式如下,一般写做:
(3-1)
式中为振幅,为角频率,为初相位。
正弦信号是周期信号,其周期与角频率满足下列关系式:
(3-2)
(2)指数信号
指数信号一般分为实指数信号与复指数信号,指数信号的表达式为:
(3-3)在式中,是实数。
若,信号将随着时间而增长;若,信号则随时间衰减。
常数表示指数信号在点的初始值。
(3)单位脉冲信号
冲激函数表示在处的冲激,在处出现的冲激可写为
狄拉克(Dirac)给出了冲击函数的另一种定义:
(3-4)式中的含义是该函数波形下的面积等于1,呈现出的的波形如图3-7所示。
(4)单位阶跃信号
单位阶跃信号的公式:
(3-5)类似于连续时间系统中的单位阶跃信号,但应注意在点发生跳变,往往不予定义,而在在点明确规定为。
在该子界面单位阶跃信号那栏里输入平移量4,输出的波形如图3-7所示。
参考附录程序。
2实验二:
信号的基本运算。
常遇到的信号基本计算包括信号的翻转、平移、相加、相乘等。
(1)序列的翻转和平移。
在翻转处输入翻转量为2,在平移处输入平移量3,原序列和翻转、平移后的序列如图3-8所示:
图3-8序列的翻转、平移图3-9两个信号的相加、相乘
(2)两个信号的相加、相乘。
信号与之和是指同一瞬时两个信号之值对应相加所构成的“和信号”,即;而信号与之乘积是指同一瞬时两个信号之值对应相乘所构成的“积信号”,这里给出的已知信号,正弦信号与余弦信号的相