基于MATLABGUI信号与系统虚拟实验平台使用(2)

2019-04-02 14:18

第三章 虚拟实验平台设计

3.1系统方案设计

本系统根据要实现的实验类别、个数的要求来规划模块,在设计的时候本着界面美观、简洁的原则。各个模块可以相互切换,每个实验时可以完成参数的传递。

本实验系统整体结构设计由两部分组成: 界面模块设计和菜单模块设计。其中, 界面模块总共包括七个模块: 开始引导模块、简单函数的性质、信号抽样、信号频谱分析、LTI系统特性、滤波器设计和说明模块。一个实验界面模块下面又有下一级实验界面模块, 如滤波器设计模块下面还有模拟滤波器设计模块和数字滤波器设计模块, 各实验模块中还包含了说明模块。在菜单设计时, 在实验子界面中除使用系统约定的菜单条外, 还增加了几个控制背景和退出实验的菜单。系统的整体结构如图3.1 所示。

开始引导界面 简单函数 性质 信号抽样 信号频谱分析 LTI系统特性 滤波器设计 说明模块 开始界面 卷积 图3.1 系统的整体结构

设计的具体步骤如下:

(1)运用 MATLAB的图形用户界面(GUI)设计方法, 设计整个实验系统的开始引导界面、实验主界面、实现信号与系统课程中具体实验的各个子界面、设计系统的说明界面及其各个实验的说明界面。

5

(2)分别编写各个子界面的各个控件对象的回调函数, 来实现控件相应控制功能, 达到直接通过界面上各个控件就可以控制数据的输入输出, 并可以方便地对实验结果的数据及其图形进行读取和分析的目的。

(3)编写主界面的回调函数, 将各个实验子界面整合在信号与系统虚拟实验平台的主界面中, 即通过主界面就可以进入任何一个实验子界面进行实验。

(4)编写开始引导界面的回调函数, 实现从引导界面直接进入主界面。

3.2 系统主界面设计

启动MATLAB R2010b,在命令窗口输入guide,打开GUI制作窗口,在窗体上有界面制作工具。

系统欢迎界面共使用了五个静态文本框(Static Text)和两个按钮(Push Button),进入GUI设计界面将所需的控件放置在适当位置后,双击控件就会出现控件的属性修改对话框(Inspector),根据需要修改相关信息(字体颜色、字体大小、控制内容、背景色等),点击GUI界面上工具栏中的按钮“

” 就可以运行设计的GUI界面,MATLAB系统会自动生成相应的M文件,即源程序文件,运行程序后得到结果如图3.2所示。在M文件中创建好链接后,点击“进入实验”按钮可以进入到实验仿真平台,点击“退出”就可退出本实验系统。

图3.2 系统主界面

6

点击“进入实验”按钮后就可以进入该实验平台的引导界面了,本界面是由一个静态文本框(Static Text)、一个列表框(Listbox)和三个按钮(Push Button)组成,如图3.3所示。

图3.3 系统引导界面

图3.3中可以看出这个系统的主要模块,简洁明了,且通过帮助可以初步了解该虚拟系统。在主界面上选择任何一个实验都可以切换到它的子界面。

3.3 简单函数性质模块

3.3.1 简单函数性质模块主界面 简单函数性质模块主界面如图3.4所示。

7

图3.4简单函数性质模块界面

由图3.4可以看出在这个模块里包括进入实验、帮助和返回上层三个选择按钮。点击“进入实验”按钮可以进到几个简单函数(正弦波、方波、锯齿波、阶跃函数、脉冲函数)的相加、移位和序列的拆分界面,如图3.5所示。帮助模块主要介绍有关函数的性质简介。点击“返回上层”可以回到系统的引导界面,从而选择自己想要仿真的实验。 3.3.2简单函数性质仿真界面

该模块包括了正弦波、方波、锯齿波、阶跃函数和脉冲函数五个简单函数。此实验可以实现两个信号的相加,单个信号的移位和序列的奇偶量的拆分,并且生成相应的波形,显示在图片框中。

在pushbutton下单击右键callback,打开callback function,调用MATLAB内部提供的函数,square函数, sawtooth函数, sin函数。

在GUI制作窗口,axes是用来显示图形,当单击pushbutton运行结果,会在axes中显示出来。

通过人机交互方式进行设计,在信号1和信号2中输入幅值,频率,初相,移位不同的值,对其信号相加,信号相乘,信号移位使信号在axes窗口中,显示出来。仿真的波形有正弦波,三角波,指数函数,抽样函数,脉冲函

8

数等。Popupmenu 函数中用 switch val1 case 来调用不同的波形,设置句柄get(handles.popupmenu)。

用strdouble(get(handles.edit,’string’)来输入测试数据,达到直观仿真模拟图。

图3.5 简单函数性质实验仿真界面

3.3.3 简单函数波形程序

实验中正弦波、方波、锯齿波、阶跃函数和脉冲函数实现的主要程序为: a1 = str2double(get(handles.edit1,'String')); f1 = str2double(get(handles.edit2,'String')); s1 = str2double(get(handles.edit3,'String')); a2 = str2double(get(handles.edit5,'String')); f2 = str2double(get(handles.edit6,'String')); s2 = str2double(get(handles.edit7,'String')); val1 = get(handles.popupmenu4,'Value'); switch val1 case 1

t = 0:0.01*pi:6*pi; y1 = a1*sin(f1*t+s1); case 2

9


基于MATLABGUI信号与系统虚拟实验平台使用(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:课程设计简易波形发生器

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: