MATLAB GUI在《信号与系统》教学中的应用探究
马崇霄 王枫 杨英 薛艳茹 张云
摘?要:本文介绍了图形用户界面(Graphical User Interface,简称GUI)的相关知识。利用MATLAB的用户图形界面GUI设计一款仿真实验软件,采用可视化的界面展示信号的运算和变换及系统的设计,使学生直观地了解和掌握信号与系统的理论知识。
关键词:信号与系统;GUI;实验软件
中图分类号:G434?文献标识码:A
Abstract:This paper introduces some knowledge of the Graphical User Interface(GUI for short).We need to take advantage of the MATLAB GUI to design a simulation experiment software.The use of visual interface display the calculation and transformation of signal and system design,so that students intuitively understand and grasp the theoretical knowledge of signals and systems.
Key words:Signals and Systems;GUI;experiment software
《信号与系统》是电子电气类专业的一门专业基础课程。以往的信号实验使用硬件实验箱,由于实验箱故障经常不能得到正确的图形和数据。本文在MATLAB基础上,利用GUI的优势搭建实验软件的图形用户界面,给读者提供一个辅助信号与系统学习的仿真平台[1]。用户仅通过点击鼠标,即可实现对应模块内的功能,简单直观使学生建立起学习《信号与系统》课程的兴趣。
1 软件平台设计
信号与系统实验繁多、复杂,界面不仅要达到友好、美化的设计要求,还需要便于用户操作与理解。设计界面时采用一个主界面和几个子界面的布局,主界面起引导作用使用户对该实验软件的功能有大致了解,每个子界面是一个具体的功能模块,能够独立地展示其中一个实验或功能[2]。
1.1 软件整体框图
本软件主要有六大功能模块,分别为信号的基本运算、基本信号的产生、卷积、傅里叶变换和滤波器设计,用户进入开始界面后可以通过点击不同的按键进入到不同功能的子模块中。
1.2 软件设计步骤
软件设计的主要流程步骤如下:
(1)运用MATLAB的图形用户界面(GUI)的设计方法,设计整个仿真系统的开始引導界面、实验的主界面及实现信号与系统课程中某个实验功能的子界面[3]。
(2)设置各个子界面的各个控件对象的属性值。
(3)编写各个子界面的所有控件对象的回调函数,来实现控件的相应控制功能。
(4)编写主界面的回调函数,将各个实验子界面布置在信号与系统的实验仿真软件的主界面中,即通过主界面可以进入其中的某一子界面进行仿真实验[4]。
2 具体模块设计
模块设计时,按照实现的实验类别和个数的要求来规划模块,各个模块之间可以互相切换[5]。
2.1 开始模块
该模块简洁明了的介绍了该软件的所有功能,具体设计步骤如下:
(1)在MATLAB命令窗口输入guide,按回车键,启动GUI工具箱以后,用鼠标单击左侧所需要的控件,然后画在布局区域。
(2)对各控件进行属性设置:
①双击工作区或控件会弹出图形窗和相应控件的“属性编辑框(Property Inspector)”。
在图形窗的属性编辑框中,设置如下属性值:
Name?platform1 %图形窗的名称
Tag?figuer1 %生成handles.figure1域存放图形窗句柄
②对静态文本的属性编辑框进行属性值设置。
③以卷积为例,对按键的属性编辑框中,设置如下属性值:
Fontsize?12.0?%字体大小
HorizontalAlignment Center%文字中心对齐
String卷积?%在按键上显示尺度变换
Tag?pushbutton3%生成handles.pushbutton2域存放该键句柄
2.2 信号的基本运算模块
信号的基本运算主要包括加、减、平移、反转和尺度变换等。具体设计步骤如下:
(1)在MATLAB的命令窗口输入guide,按回车键,启动GUI工具箱后,用鼠标单击左侧所需要的控件,画在布局区域中。界面主要包含静态文本框、按键、坐标轴和动态文本框等控件。
(2)对各控件进行属性设置:
进行各控件属性设置后,得到如下界面:
(3)界面的激活与回调函数的生成。点击工具栏上的保存图标后,会弹出一个询问对话框,按提示对以上的设计进行保存以后,就会引出2个界面:名字为jibenjisuan的(待激活的)图形用户界面和展示名为jibenjisuan的(待填写回调指令的)M函数文件的文件编辑器界面。同时,在当前目录或给定目录上,由MATLAB软件会自动生成了2个文件,即jibenjisuan.fig和jibenjisuan.m。
在jibenjisuan.m文件中,填写回调指令:
对返回首页按钮的回调函数的编写:
function pushbutton6_Callback(hObject,eventdata,handles)
hGUI=gcf;
set(hGUI,'visible','off');
platform1
对保存图像按钮和清空按钮的回调函数的编写与返回首页按钮的类同。
对尺度变换按钮的回调函数的编写:
function pushbutton2_Callback(hObject,eventdata,handles)
a=str2double(get(handles.edit2,'string'));
t=-3:0.001:3;
ft1=tripuls(a*t,4,0.5);
plot(t,ft1);
grid on;
title('尺度變换')
其余控件的编写不再详述。
经过以上几个步骤生成的图形用户界面已经可以使用了,只要jibenjisuan.m和jibenjisuan.fig在当前目录或在MATLAB搜索路径上,那么在指令窗口运行jibenjisuan就能使用该界面,实现功能如下:
其余模块的设置与信号的基本运算模块类同。
3 结论
针对信号与系统课程内容的特点,利用MATLAB的GUI搭建了一个简单的仿真平台,使复杂抽象的理论知识变得直观可见,增强学生的学习兴趣和借助计算机解决实际问题的能力。
参考文献:
[1]唐亮,吴扬,宫丽娜.基于GUI的信号与系统实验仿真平台设计[J].电脑知识与技术,2020,16(10):264-265.
[2]王志鹏,谢渝闽.基于MATLAB的信号与系统课程综合演示平台[J].南阳师范学院学报,2020,19(5):71-74.
[3]高燕.基于MATLAB的信号与系统实验平台开发研究[J].许昌学院学报,2017,36(5):71-74.
[4]刘荣华,于红光.信号与系统仿真平台的设计[J].电子设计工程,2017,25(9):167-170.
[5]王焕友,谭乔来.基于“信号与系统”的MATLAB GUI实验仿真平台设计[J].电脑与信息技术,2019,27(3):1-3.
基金项目:2019—2020年度河北省应用技术大学研究会项目(项目编号:JY2019060)
作者简介:马崇霄(1979—?),女,硕士,讲师,主要研究方向:系统仿真、网络路由协议。