当前位置:文档之家› 基于GUI的仿真平台的设计

基于GUI的仿真平台的设计

3 基于GUI的《信号与系统实验》仿真平台的设计设计思想3.1.1 设计步骤本课题设计的界面布局是先设计GUI总界面,然后设计子界面,再在子界面上设置按钮、坐标轴、文本框等一系列控件,最后借助于callback函数调用程序。

在函数调用程序的设计中先编写各个子界面中的回调函数下的程序,再编写GUI界面的回调函数下的程序。

1. 用MATLAB的GUIDE提供的创建图形界面工具设计整个实验仿真界面的主界面,在设计子界面;2. 在实验子界面中添加各个控件对象,编写控件按钮回调函数,实现每个控件的控制功能,直接通过界面上的控件实现对结果的分析;3. 最后编写GUI总界面的回调函数程序,把所有的子界面集合在总界面中,通过总界面可以进入任意子界面中并可以进行操作;4. 退出实验界面。

设计流程如图3-1:3.1.2验界面、快速傅里叶实验界面。

在菜单设计时,在实验子界面中除了使用系统约定的菜单条外,还增加了几个控制背景和退出实验的菜单。

系统的整体结构如图3-2所示:图3-2 实验系统的整体结构基于的系统总界面的设计3.2.1 设计步骤在GUIDE 的编辑界面中,在空白处双击或者单机右键选择property inspector ,出现属性设置对话框,可以对GUI 的属性风格进行个性化。

Color 选项可以改变背景颜色,选择自己喜欢的颜色,本课题是插入图片。

Position 选项可以对界面窗口的大小进行调整,窗口的大小可以通过设置width 和height 进行调整,也可以用鼠标拖拽窗口,用鼠标拖拽窗口设置比较方便、快捷,也更容易设置适合于实验设计内容的大小GUI 界面。

下面详细介绍主界面的设计过程:点击运行MATLAB 软件后,在软件界面中直接点击GUIDE 工具,选择Create NewGUI 中的Blank GUI(Defarlt)点击OK ,在弹出的新建窗口中拖入7个静态文本框(Statec Text )和7个按钮(Push Button )如图3-4所示。

设置静态文本的String为“基于GUI 的信号与系统仿真实验平台的设计”Background Color 为浅红色,FontSize 为,Foreground Color 位黑色。

依次设置另外六个静态文本框String 为“实验一基本信号的产生”、“实验二信号的基本运算”、“实验三卷积”、“实验四傅里叶变换”、“实验五连续系统零状态响应”、“实验六低通滤波器”这几个实验的Fonsize 为,另外的六个按钮依次设计的Fonsize 为。

点击每个实验后的按钮编写回调函数进入相应的实验子界面中,也可参考图3-3流程:的产生。

基本信号信号的基卷积 傅立叶变连续系统低通滤波 主界面 退出界还可在主界面中插入一些背景图片,使主界面看起来更加的美观,如添加学校LOGO、风景图片等来美化实验主界面。

插入背景图片相应的需要编写回调函数,点击主界面背景函数Callback中的CreateFcn进入相应的程序编写位置,编写的背景插入图片的程序参考附录,点击主界面中的运行按钮如图3-5所示是设计完成后的实验系统主界面。

3.2.2 主界面仿真平台设计在设计的主界面平台添加相应的按钮、文本框、设置字体的大小和字体背景的颜色,编写回调函数和界面背景图片插入。

如图3-4所示:图3-4 主界面3.2.3 仿真结果分析点击运行按钮后的主界面仿真结果如图3-5所示,可以点击任意一个实验按钮进入相应的子界面实验中,实验仿真结果结束后,可点击退出按钮结束本次实验。

图3-5 运行后的主界面基于GUI的系统子界面的设计3.3.1 设计步骤子界面的设计和主界面的设计有些相似,主要由每个控件的属性,并加入相应的回调函数callback程序实现其相应的功能。

如图3-7所示以“基本信号的产生”子界面为例,点击Menu Editor 中的New Menu会出现Untitled1,在其上点击出现Menu Properties,修改其中的Label选项,命名为“基本信号的产生”。

点击Axes按钮,在GUIDE界面空白处适当位置点击,会出现一个坐标轴图标,用鼠标拖拽到想要的大小。

在此图标上点击右键,在View Callback选项中选择buttondownfcn,编写回调函数。

选择Static text按钮,在空白处点击左键,把出现在窗口中的Static文本拖拽到适当大小,单击右键或双击左键,设置背景颜色“Background color”,字体颜色“Foreground color”,字体大小“Font size”;选择Edit text按钮,在空白处适当位置处点击,把出现的文本框拖拽到适当大小,双击左键,设置“String”为“”等的属性。

本课题设计的字体大小一般设置为15,有的会适当调整。

“退出”的设置:在Push button5上双击左键将“String ”选项内容改为“退出”,在这个按钮的回调函数view Callback 中的Callback 选项下写入“Close jbxhdcs ”就可实现子界面的关闭。

可参考流程图3-6:3.3.2 1 3 2(1)正弦信号式中A 其周期T 与角频率f 满足下列关系式: f T /1= (3-2)(2)指数信号指数信号一般分为实指数信号与复指数信号,指数信号的表达式为:at e k t f *)(= (3-3)在式中,a 是实数。

若0>a ,信号将随着时间而增长;若0<a ,信号则随时间衰减。

常数k 表示指数信号在0=t 点的初始值。

(3)单位脉冲信号冲激函数)(t δ表示在0=t 处的冲激,在1t t =处出现的冲激可写为)(1t t -δ狄拉克(Dirac)给出了冲击函数的另一种定义:⎪⎩⎪⎨⎧=≠=⎰∞∞-1dt δ(t)0,1)(t t δ(3-4)式中⎰∞∞-=1)(dt t δ的含义是该函数波形下的面积等于1,呈现出的的波形如图3-7所示。

(4)单位阶跃信号单位阶跃信号的公式:⎩⎨⎧<>==)0(0)0(1)(n n t u (3-5) 类似于连续时间系统中的单位阶跃信号)(t u ,但应注意)(t u 在0=t 点发生跳变,往往不予定义,而在)(n u 在0=n 点明确规定为1)0(=u 。

在该子界面单位阶跃信号那栏里输入平移量4,输出的波形如图3-7所示。

参考附录程序。

2 实验二:信号的基本运算。

常遇到的信号基本计算包括信号的翻转、平移、相加、相乘等。

(1)序列的翻转和平移。

在翻转处输入翻转量为2,在平移处输入平移量3,原序列和翻转、平移后的序列如图3-8所示:图3-8 序列的翻转、平移 图3-9 两个信号的相加、相乘(2)两个信号的相加、相乘。

信号)(1t f 与)(2t f 之和是指同一瞬时两个信号之值对应相加所构成的“和信号”,即)()()(21t f t f t f +=;而信号)(1t f 与)(2t f 之乘积是指同一瞬时两个信号之值对应相乘所构成的“积信号”,)(*)()(21t f t f t f =这里给出的已知信号)2sin(*111+=t A f ω ,)sin(*222t A f ω=正弦信号与余弦信号的相加、相乘波形仿真结果如图3-9所示。

3 实验三:信号的卷积对于任意的两个信号)(1t f 和)(2t f 做卷积运算定义:τd t f t f t f ⎰∞∞-=)()()(21 (3-6) 做一变量代换证明⎰∞∞-==-=)(*)()(*)()()()(122112t f t f t f t f t f f t f ττ (3-7)式中)(*)(21t f t f 是两个函数做卷积运算的简写符号。

这里积分取∞和∞-,这是)(1t f 和)(2t f 的作用时间没有限制。

在卷积子界面中输入幅度3 波形结果图3-10所示: 图3-10 卷积界面图像4 实验四:傅里叶变换本实验中包含①方波傅里叶、②快速傅里叶、③离散傅里叶,如果以周期矩形信号为例,当周期1T 无线增大时,则周期信号就转化为非周期性的单脉冲信号,可以把非周期信号看成是周期信号1T 趋于无限大的周期信号。

当周期信号的周期1T 增大时,谱线的间隔112T πω=变小,若周期1T 无限大,则谱线的间隔趋于无限小,这样离散频谱就变成连续频谱了。

同时由于周期趋于无限大,谱线的长度也就趋于零。

这就是说,频谱将失去应有的意义,但是不论什么时候频谱的分布依然存在。

设有一周期信号)(t f 及其复数频谱)(1ωn F ,将)(t f 展成 dt e t f Tn F T T t jn ⎰-=221211)(1)(ωω (3-8)两边乘以1T ,得到dt e t f n F n F T T t jn ⎰-==22211121)()(2)(ωωωπω(3-9) 对于非周期信号,重复周期∞→1T ,重复频率01→ω,谱线间隔ωωd n →∆)(1,而离散频率1ωn 变成连续频率ω。

在这种极限情况下0)(1→ωn F ,但量11)(2ωωπn F 可不趋于零,而是趋近于有限值,且变成一个连续函数,常记作)(ωF ,这样式(3-8)在非周期信号的况下将变成 dt e t f F t jn ⎰∞∞--=1)()(ωω(3-10)同样,傅里叶级数t jn e n F t f 1)()(1ωω∑∞∞-= (3-11)在极限的情况下,傅里叶级数变成积分形式,它等于 ωωπd e F t f jnt ⎰∞∞-=)(21)((3-12)式(3-10)称为傅里叶正变换,式(3-12)称为傅里叶逆变换。

(1)方波傅里叶变换傅里叶变换是数字信号处理中的一种很重要的算法,要知道傅里叶变换算法的意义,首先我们要了解到傅里叶原理的意义。

傅里叶原理的表明:任何连续的时序或着信号,都是可以表示为不同频率正弦波信号的无线叠加。

而根据该原理创立的傅里叶变换算法,利用直接测量到原始信号,以累加方式来计算该信号中的不同正弦波信号的频率、振幅和相位。

在方波傅立叶相应的位置输入方波幅度为3。

运行后的波形如图3-11所示:图3-11 方波傅里叶图像图3-12 快速傅里叶变换(2)快速傅里叶变换的参考程序见附录,在快速傅里叶处输入幅度为2,显示的波形如图3-12所示。

(3)离散傅里叶变换对于非周期的信号,我们需要用许多不同频率的正弦曲线来表示,这对于计算机来说是不可能实现的。

所以对于离散信号的变换也只有离散傅里叶变换才能被试用,对于计算机来说只有离散的与有限长度的数据才能被处理,对于其它的变换类型只有在数学演算中才能用到,在计算机面前我们只能用DFT方法,后面我们要理解的也正是DFT方法。

这里要理解的是我们使用周期性的信号目的是为了能够用数学方法来解决问题,至于考虑周期性信号是从哪里得到或怎样得到是无意义的。

相关主题