基于MATLAB的图形用户界面设计摘要本文概述了利用Matlab软件提供的图形用户界面创建具有人机交互、界面友好的图形用户界面。本文采用Matlab的图形用户界面设计功能,设计出了各个实验界面。在该软件中,实现了对某虚拟信号处理实验箱的操作平台界面的设计。Matlab语言是一种广泛应用于工程计算及数值分析领域的新型高级语言,Matlab功能强大、简单易学、编程效率高,深受广大科技工作者的喜爱。特别是Matlab还具有信号分析工具箱,不需具备很强的编程能力,就可以很方便地进行信号分析、处理和设计。通过数字信号处理课程的理论知识的综合运用。从实践上初步实现对数字信号的处理。关键字信号处理MATLAB图形用户界面目录1绪论...................................................................11.1概述..............................................................11.2本文的主要工作....................................................11.3研究意义..........................................................12系统分析与方案选取.....................................................22.1引言..............................................................22.2系统主要目标及功能................................................22.3模拟信号实验的软件工具选择........................................22.4设计方案选择......................................................23系统软件平台的设计.....................................................33.1引言..............................................................33.2系统整体框图......................................................33.3系统设计步骤......................................................33.4模块具体设计......................................................43.5基本序列表示......................................................73.6基本信号产生......................................................83.7卷积.............................................................104信号仿真演示..........................................................124.1基本序列表示仿真演示.............................................124.2基本信号产生仿真演示.............................................124.3卷积模块仿真演示.................................................13结束语..................................................................14致谢..................................................................15参考文献................................................................1611绪论1.1概述随着计算机的普及应用以及科技的发达,现代社会是信息的社会,对信息的研究变得非常重要,而对信号波形的模拟可以方便研究人员研究。以前的信号模拟是用硬件,对仪器和实验室的要求较高,不便于广泛应用,而且信号处理具有内容繁多、概念抽象、设计复杂等特点,让人难以理解和掌握。硬件模拟信号波形对设备要求较高,有时候受仪器或操作不对等因素的影响将无法正确直观的看到波形,参数改变时不能立即看到波形变化。而用软件的形式对信号波形进行仿真有着界面可视性强,操作简单方便;便于数据修改,文件保存,实验效率高,实验内容丰富,结果直观易懂,便于分析;而且系统容易扩展新的实验项目。1.2本文的主要工作本文主要是针对以Matlab为软件平台的信号系统实验平台的设计,用Matlab语言编程开发一个适合小型的信号系统实验平台,具体的工作主要有:1)在欢迎界面,具有进入功能模块,返回模块和退出模块。2)在功能模块中,包括参数设置区、图形显示区和数据显示区等组成单元,可以完成对指定功能的设置,显示和实现。3)设置三个功能模块,实现一定的信号和系统的设计或分析。1.3研究意义Matlab作为编程语言和可视化工具,它的界面演示框如同通用示波器,显示了信号分析与系统设计的动态仿真过程,给人以直观的感受。它可以改变信号、模块、仿真子系统等的参数,并观察信号与系统的相应变化.在实验过程中,我们对所学的书本知识会有感性的认识和直观的验证,加深对“信号与系统”原理的理解。本课题能避开硬件系统的不足,而且有很多的库函数可以在实验时直接调用,避免了用硬件做实验的局限性。可以更方便的做信号系统实验,还能够锻炼一个人在面对一个具体的项目时,遇到问题,分析问题,解决问题的能力;获得独立策划、实施课题,并按照既定计划进行开发的经验,以及查找相关文献的能力。而且对系统规划有了初步的认识。为以后研发工作打下坚实的基础,积累宝贵的经验。22系统分析与方案选取2.1引言Matlab语言称为第四代编程语言,程序简洁、可读性很强而且调试十分容易,自1984年由美国MathWorks公司推向市场以来,历经十几年的发展,现已成为国际公认的优秀科技应用软件,是数字信号处理方面得天独厚优势图形开发工具.用简单,可视化的仿真模拟图形给大家演示部分基本波的传输特性,以及在信道中的传输特性。使他们直观,感性地了解和掌握通信系统的概念、传输性能等。2.2系统主要目标及功能本课题开发目标是利用Matlab软件开发一套集可视化图形与动态仿真为一体的软件。表现出《信号与系统》课程中部分信号的产生、图形,卷积等,实现一定的信号和系统的设计和分析,可以直观、感性地了解和掌握信号系统的概念、基本特征等,深化对通信概念的理解。本系统主要功能包括基本序列计算、基本信号产生、卷积设计等。简单基础地涵盖了《信号与系统》部分主要章节,用可视化的仿真模拟图形演示部分基本信号的传输波形和调制变换,部分交互式界面可直接输入合适的值使大家更直观、感性地了解和掌握信号系统的概念、传输性能、基本特征等,让课程的学习和实践相结合。界面上的文字说明帮助大家了解本图形的特性或功能。2.3模拟信号实验的软件工具选择我们在学习《信号与系统》和《数字信号处理》课程时,做实验的时候用的是Matlab软件来实现信号波形的模拟以及处理,可以比较直观准确的看到波形,对Matlab软件也有了初步的认识,也可以用它编写一些比较简单的程序来。在信号波形模拟的领域中,我们只接触过Matlab软件,所以在编写模拟信号波形这个模块中我们选择Matlab软件。2.4设计方案选择在本系统的设计中,界面布局设计采用自顶向下的设计方法,即先设计引导界面和主界面,再设计各个实验子界面。界面设计完成后,只是一些静态的画面而已,没有什么内涵,还不能用于实验操作,要想达到实验目的,必须借助于函数调用。在设计中,各个回调函数的编写顺序则是采用自底向上的设计方法,即先编制各个实验子界面的回调函数,再编写主界面和引导界面的回调函数。33系统软件平台的设计3.1引言信号系统实验繁多、复杂,许多实验还需要输入参数,若将系统设计成一个界面,使得系统繁重、拥挤,不能够实现友好、美化的界面的设计要求。因此,在设计界面的时候,采用一个主界面和若干子界面,每个子界面是一个模块,实现一个实验或功能,并通过主界面调用子界面的设计方法。3.2系统整体框图本实验系统整体结构设计由两部分组成:界面模块设计和菜单模块设计。其中,界面模块总共包括四个模块:开始引导模块、序列基本计算模块、基本信号的产生模块、卷积模块。在菜单设计时,在实验子界面中除使用系统约定的菜单条外,还增加了几个控制背景和退出实验的菜单。系统的整体结构如图3-1所示。图3-1系统整体架构3.3系统设计步骤设计的具体步骤如下:1)运用Matlab的图形用户界面(GUI)设计方法,设计整个实验系统的开始引导界面、实验主界面及其实现信号处理课程中具体实验的各个子界面。2)分别编写各个子界面的各个控件对象的回调函数,来实现控件相应控制功能,达到直接通过界面上各个控件就可以控制数据的输入输出,并可以方便地对实验结果的数据及其图形进行读取和分析的目的。3)编写主界面的回调函数,将各个实验子界面整合在信号处理系统实验主界面中,开始引导界面开始界面基本序列计算基本信号产生卷积4即通过主界面就可以进入任何一个实验子界面进行实验。4)编写开始引导界面的回调函数,实现从引导界面直接进入主界面。3.4模块具体设计1)系统欢迎模块。系统欢迎界面如图3-2所示。图3-2系统欢迎界面2)基本序列表示模块序列基本表示模块界面如图3-3所示:5图3-3序列基本表示模块由图3-3可以看出在这个模块里包括了单位脉冲序列,单位阶跃序列,指数序列一共三个序列,可以看出这个系统的主要模块,简洁明了,对每个模块都有详细的说明,在做实验之前可以参考说明以便能顺利的进行实验,在主界面上选择任何一个实验都可以切换到它的子界面。3)基本信号产生模块基本信号产生模块的窗体创建启动matlabR2012B,在命令窗口输入guide,打开GUI制作窗口,在窗体上有界面制作工具。在pushbutton下单击右键callback,打开callbackfunction,调用MATLAB内部提供的函数:sin函数,exp函数,pulstran函数,chip函数在GUI制作窗口,axes是用来显示图形,当单击pushbutton,运行结果,会在axes中显示出来。简单函数基本性质的模块,通过人机交互方式进行设计,在信号1和信号2中输入幅值,频率,初相,移位不同的值,对其信号相加,信号相乘,信号移位使信号在axes窗口中,显示出来。仿真的波形有正弦波,指数函数,抽样函数,矩形脉冲函数。Popupmenu函数中用switchval1case1来调用不同的波形,)设置句柄get(handles.popupmenu).用strdouble(get(handles.edit,’string’)来输入测试数据,达到直观仿真模拟图.6基本信号的产生模块如图3-4所示:图3-4基本信号产生模块4)卷积模块:卷积模块如图3-5所示:图3-5卷积模块73.5基本序列表示a.单位阶跃序列单位阶跃序列的公式)0(0)0(1nnnu类似于连续时间系统中的单位阶跃信号tu,但应注意tu在0t点发生跳变,往往不予定义(或定义为21),而tu在n=0点明确规定为10u。单位阶跃序列的关键程序:functionpushbutton