基于MATLAB的图形用户界面设计

合集下载

基于MATLAB GUI图像处理系统的设计与实现

基于MATLAB GUI图像处理系统的设计与实现

基于MATLAB GUI图像处理系统的设计与实现MATLAB是一种功能强大的图像处理工具,其GUI(图形用户界面)设计及实现可以使图像处理更加直观和简单。

本文将介绍基于MATLAB GUI图像处理系统的设计与实现,包括系统的功能设计、界面设计及实现步骤等内容,旨在为使用MATLAB进行图像处理的读者提供一些参考和帮助。

一、系统功能设计1. 图像基本处理功能:包括图像的读取、显示、保存,以及图像的基本操作(如缩放、旋转、翻转等)。

2. 图像增强功能:包括亮度、对比度、色彩平衡调整,以及直方图均衡化、滤波等操作。

3. 图像特征提取功能:包括边缘检测、角点检测、纹理特征提取等。

4. 图像分割功能:包括阈值分割、边缘分割、区域生长等。

5. 图像识别功能:包括基于模板匹配、人工智能算法的图像识别等。

6. 图像测量功能:包括测量图像中物体的大小、长度、面积等。

二、界面设计1. 主界面设计:主要包括图像显示区域、功能按钮、参数调节控件等。

2. 子功能界面设计:根据不同的功能模块设计相应的子界面,以便用户进行更详细的操作。

3. 界面美化:可以通过添加背景图案、调整按钮颜色、字体等方式美化界面,提高用户体验。

三、实现步骤1. 图像显示与基本处理:通过MATLAB自带的imread()函数读取图像,imshow()函数显示图像,并设置相应的按钮实现放大、缩小、旋转、翻转等基本操作。

2. 图像增强:利用imadjust()函数实现对图像亮度、对比度的调整,利用histeq()函数实现直方图均衡化,利用imfilter()函数实现图像的滤波处理。

3. 图像特征提取:利用edge()函数实现图像的边缘检测,利用corner()函数实现角点检测,利用texture()函数实现纹理特征提取。

4. 图像分割:利用im2bw()函数实现阈值分割,利用edge()函数实现边缘分割,利用regiongrowing()函数实现区域生长。

matlab中gui设计计算器原理及设计方案

matlab中gui设计计算器原理及设计方案

matlab中gui设计计算器原理及设计方案在MATLAB中设计GUI(图形用户界面)计算器的基本原理和设计方案如下:基本原理:MATLAB的GUI设计基于事件驱动模型。

这意味着当用户与界面交互(例如,点击按钮或输入文本)时,会触发一个或多个事件。

这些事件会调用相应的回调函数,执行相应的操作。

设计方案:1. 启动MATLAB并创建GUI:打开MATLAB。

使用guide命令启动GUI设计器。

2. 添加GUI组件:在GUI设计器中,添加需要的组件,如按钮(push button)、文本框(edit text)、标签(label)等。

3. 设置组件属性:为每个组件设置必要的属性,例如位置、大小、标签文本等。

4. 编写回调函数:双击每个组件,MATLAB会自动生成一个默认的回调函数。

根据需要修改这些函数,以实现所需的功能。

例如,对于按钮,当用户点击它时,可以编写代码来执行相应的计算。

5. 测试GUI:在设计过程中,经常测试GUI以确保其正常工作。

可以使用simulink中的模拟功能,或直接在MATLAB环境中测试。

6. 保存和运行:保存GUI文件。

在MATLAB命令窗口中输入文件名(不包括扩展名),然后按Enter运行GUI。

7. 调试和优化:根据测试结果,调整回调函数和组件属性,优化GUI的行为和外观。

8. 发布:一旦GUI满足所有需求,可以发布它以供其他人使用。

这通常涉及将GUI打包为一个可执行文件或应用程序包。

9. 维护和更新:随着软件的发展,可能需要定期维护和更新GUI。

这可能涉及添加新功能、修复错误或改进性能。

在整个过程中,熟悉MATLAB的GUI设计和编程技巧是非常重要的。

此外,由于GUI设计可能需要反复的测试和调整,因此耐心和细心也是必不可少的。

第11章 MATLAB图形用户界面设计

第11章  MATLAB图形用户界面设计

2.控件对象的属性 . MATLAB的10种控件对象使用相同的属性类型,但是 种控件对象使用相同的属性类型, 的 种控件对象使用相同的属性类型 这些属性对于不同类型的控件对象,其含义不尽相同。 这些属性对于不同类型的控件对象,其含义不尽相同。除 Children、Parent、Tag、Type、UserData、Visible等公 、 、 、 、 、 等公 共属性外,还有一些常用的特殊属性。 共属性外,还有一些常用的特殊属性。
通过顶层菜单Test形成的带分格的封闭坐标轴 图1 通过顶层菜单 形成的带分格的封闭坐标轴
11.1.3 快捷菜单 快捷菜单是用鼠标右键单击某对象时在屏幕上弹出的菜单。 快捷菜单是用鼠标右键单击某对象时在屏幕上弹出的菜单。 这种菜单出现的位置是不固定的, 这种菜单出现的位置是不固定的,而且总是和某个图形对 象相联系。 象相联系。在MATLAB中,可以使用 中 可以使用uicontextmenu函数 函数 和图形对象的UIContextMenu属性来建立快捷菜单,具体 属性来建立快捷菜单, 和图形对象的 属性来建立快捷菜单 步骤为: 步骤为: (1) 利用 利用uicontextmenu函数建立快捷菜单。 函数建立快捷菜单。 函数建立快捷菜单 (2) 利用 利用uimenu函数为快捷菜单建立菜单项。 函数为快捷菜单建立菜单项。 函数为快捷菜单建立菜单项 (3) 利用 函数将该快捷菜单和某图形对象联系起来。 利用set函数将该快捷菜单和某图形对象联系起来 函数将该快捷菜单和某图形对象联系起来。
uicontrol('style','frame',...%创建用户控件区 创建用户控件区 'position',[0.67,0.55,0.25,0.25]); uicontrol(‘style’,‘text’,... %创建静态文本框 创建静态文本框 'string','正斜体图名 正斜体图名:',... 正斜体图名 'position',[0.68,0.77,0.18,0.1],... 'horizontal','left'); hr1=uicontrol(gcf,‘style’,‘radio’,... %创建“无线电”选择按 创建“ 创建 无线电” 键 'string','正体 正体',... %按键功能的文字标识 正体 按键功能的文字标识'正体 正体 按键功能的文字标识 正体' 'position',[0.7,0.69,0.15,0.08]); %按键位置 按键位置 set(hr1,‘value’,get(hr1,‘Max’)); %因图名缺省使用正体,所以小圆圈应被点黑 因图名缺省使用正体, 因图名缺省使用正体 set(hr1,'callback',[... 'set(hr1,''value'',get(hr1,''max'')),',...%选中将小圆圈点黑 选中将小圆圈点黑 'set(hr2,''value'',get(hr2,''min'')),',...%将"互斥 选项点白 互斥"选项点白 将 互斥 'set(htitle,''fontangle'',''normal''),',... %使图名字体正体显示 使图名字体正体显示 ]);

第七讲MATLAB图形用户界面(GUI)设计

第七讲MATLAB图形用户界面(GUI)设计

第七讲MATLAB图形⽤户界⾯(GUI)设计第7讲MATLAB图形⽤户界⾯(GUI)设计图形⽤户界⾯(GUI, Graphical User Interface)是由图形控件构建的⽤于⼈与计算机交互信息的界⾯。

在图形⽤户界⾯上,⽤户可以根据界⾯上的提⽰信息完成⾃⼰的⼯作,⽽不需要记忆⼤量繁琐的命令,只需通过⿏标、键盘等便捷的⽅式与计算机交互信息、选择想要运⾏的程序、控制程序的运⾏、实时显⽰图形信息。

MATLAB创建的图形⽤户界⾯对象有三类:⽤户界⾯控件,如按钮、列表框、编辑框等;下拉菜单,如菜单、⼦菜单;内容菜单,如弹出式菜单。

⼀、命令⾏建⽴⽤户界⾯的⽅法1、创建控件命令:uicontrol调⽤格式:1)uicontrol(‘PropertyName1’,value1, ‘PropertyName2’,value2,……)功能:在当前图形⽤户的界⾯上,应⽤当前制定的属性值创建控件;2)h=uicontrol(‘PropertyName1’,value1, ‘PropertyName2’,value2,……)功能:在当前图形⽤户的界⾯上,应⽤当前制定的属性值创建控件,并返回控件的句柄;3)uicontrol(FIG, ‘PropertyName1’,value1, ‘PropertyName2’,value2,……)功能:在句柄FIG指定的图形⽤户界⾯上,创建控件;4)h=uicontrol(FIG, ‘PropertyName1’,value1, ‘PropertyName2’,value2,……) 功能:在句柄FIG指定的图形⽤户界⾯上,创建控件,并返回控件的句柄。

说明:函数中的PropertyName参数的参数值有:Push buttons(命令按钮)、sliders (滚动条控件)、Radio button(单选按钮)、Check box(复选框)、Edit text (可编程⽂本框)、Static text(静态⽂本框)、Pop_up menus(弹出式菜单)、listbox(列表框)、Toggle button(开关按钮)、Axes(坐标轴)、Panel(⾯板控件)、Button group(按钮组框)、ActiveX control(ActiveX 控件)。

MATLAB的图形用户界面设计

MATLAB的图形用户界面设计
(3) UserData属性
UserData属性的取值是一个矩阵,缺省值为空矩阵,用户可以在 这个属性中保存与该菜单对象相关的重要数据或信息,借此可以达 到传递数据或信息的目的。可以用set和get函数访问该属性。
二、菜单设计
【例2】 建立一个菜单系统。
菜单条中含有File和Help两个菜单项。如果选择File中的New 选项,则将显示New Item字样,如果选择File中的Open选项, 则将显示出Open Item字样。File中的Save菜单项初始时处于禁 选状态,在选择Help选项之后将此菜单项恢复成可选状态,如 果选择File中的Save选项,则将出现一个新的菜单(三级菜单), 其中共有两个子菜单项Text file和Graphics file,如果选择第1项, 则将变量k1和k2分别赋为0和1,然后调用file01.m文件来进行 相应的处理(该文件需要另行编写),如果选择第2项,则将变 量k1和k2分别赋为1和0,然后调用file10.m文件来进行相应的 处理(该文件也需要另行编写)。如果选择File中的Save As选项, 则将显示Save As Item字样。如果选择File中的Exit选项,则将 关闭当前窗口。如果选择Help中About …选项,则将显示Help Item字样,并将Save•菜单设置成可选状态。
第八讲 MATLAB图形用 户界面设计
所谓图形用户界面是指由窗口、菜单、对 话框等各种图形对象组成的用户界面。在 这种用户界面下,用户的操作是通过“选 择”各种图形对象来实现的。
一、图形窗口的控制
一、图形窗口的控制
1.建立图形窗口 要建立一个图形窗口,有两种方法:
(1)菜单操作:在MATLAB命令窗口选择File菜单中 的New命令,再选取Figure子菜单,这样将建立一个标准 的MATLAB图形窗口;

基于matlab的gui设计报告

基于matlab的gui设计报告

基于matlab的gui设计报告当然,我很乐意帮助你完成这篇文章。

以下是按照你提供的格式完成的《基于Matlab的GUI设计报告》。

一、介绍1. 引言本报告将探讨基于Matlab的GUI设计,其中包括设计背景、目的和重要性。

2. Matlab简介在开始讨论GUI设计之前,先简要介绍一下Matlab。

Matlab是一种高级的计算机语言和环境,常用于数学计算、数据分析和可视化。

3. GUI设计概述介绍GUI(图形用户界面)设计的概念和重要性。

GUI设计可以提供用户友好的界面,使用户能够通过图形或图标与程序交互。

二、Matlab的GUI设计工具1. Guide工具Guide是Matlab的一个可视化工具,用于创建图形用户界面。

本节将介绍Guide 的基本功能和使用方法。

2. App Designer工具App Designer是Matlab新引入的GUI设计工具,相比Guide具有更强大的功能和更好的用户体验。

本节将介绍App Designer的特点和使用技巧。

3. Matlab的其他GUI工具除了Guide和App Designer,Matlab还提供了其他GUI设计工具,如uifigure 和uitab。

本节将概述这些工具的功能和用途。

三、GUI设计原则1. 界面布局和设计介绍如何合理安排界面布局,包括按钮、文本框、下拉菜单等组件的摆放位置和大小。

2. 用户交互探讨合理的用户交互方式,包括按钮点击、鼠标悬停等,以提供更好的用户体验和减少误操作。

3. 数据可视化介绍如何将计算结果以图表、图像等形式展示给用户,提高数据分析和可视化的效率。

四、案例分析1. GUI设计案例1:温度转换器以一个简单的温度转换器为例,展示如何使用Matlab的GUI设计工具创建一个实用的应用程序。

2. GUI设计案例2:图像处理工具以图像处理为应用场景,展示如何使用Matlab的GUI工具进行图像处理和显示。

3. GUI设计案例3:数据分析工具以数据分析为应用场景,展示如何使用Matlab的GUI工具进行数据可视化和分析。

利用Matlab的图形用户界面(GUI)功能,设计与实现实验.

利用Matlab的图形用户界面(GUI)功能,设计与实现实验.

(1 利用Matlab 的图形用户界面(GUI )功能,设计与实现实验主界面;(2 实现在“数值计算”图形用户界面中的各项数值计算,如实现Matlab 的线性方程组的求解、数据统计与分析、数值插值、曲线拟合、常微分方程的数值求解等数值计算;(3 利用Matlab 的二维、三维绘图功能,实现图形用户界面(GUI )中的数值计算的可视化,即给出数值计算实例的同时实现该实例的图形化描述。

如下图给出了一个简单的GUI 界面,学生可以参考如下图设计出自己的GUI 界面。

figure('Color' ,[1,1,1],'Position' ,[100,100,700,600],...'Name' , '' , ...'NumberTitle' , 'off' , 'MenuBar' , 'none' ;uicontrol('Style' , 'Frame' , 'Position' ,[0,0.08,0.45,1],...'Units' , 'normalized' , 'Back' ,[0,1,1];XIANQIU=['a=str2num(get(xishu,''String'';', ...'b=str2num(get(changshu,''String'';', ...'b=b'';x=a\b;', ...'set(jieguo,''string'',x;'];uicontrol('Style' , 'Push' , 'Position' ,[0.02,0.92,0.20,0.06],...'String' , 'ÏßÐÔ·½³Ì×éÇó½â', 'Units' , 'normalized' , 'Call' ,XIANQIU;uicontrol('Style' , 'Text' , 'Position' ,[0.01,0.83,0.1,0.05],... 'Units' , 'normalized' , 'Horizontal' , 'center' , ...'String' , 'ϵÊý¾ØÕó', 'Back' ,[0,1,1];xishu=uicontrol('Style' , 'Edit' , 'Position' ,[0.16,0.83,0.25,0.06],... 'Units' ,'normalized' , 'Back' ,[0,1,0];uicontrol('Style' , 'Text' , 'Position' ,[0.01,0.72,0.1,0.05],... 'Units' , 'normalized' , 'Horizontal' , 'center' , ...'String' , '³£ÊýÏî¾ØÕó', 'Back' ,[0,1,1];changshu=uicontrol('Style' , 'Edit' , 'Position' ,[0.16,0.72,0.25,0.06],.. .'Units' , 'normalized' , 'Back' ,[0,1,0];uicontrol('Style' , 'Push' , 'Position' ,[0.02,0.63,0.20,0.06],... 'String' ,'Êýֵͳ¼ÆÓë·ÖÎö';uicontrol('Style' , 'Text' , 'Position' ,[0.23,0.63,0.2,0.05],... 'Units' , 'normalized' , 'Horizontal' , 'center' , ...'String' , 'ÔÚϵÊý¾ØÕóÊäÈë¿òÖÐÊäÈëÒª·ÖÎöµÄ¾ØÕó', 'Back' ,[0,1,1];uicontrol('Style' , 'Push' , 'Position' ,[0.06,0.55,0.1,0.05],... 'String' , 'ÊýÖµ²åÖµ';uicontrol('Style' , 'Push' , 'Position' ,[0.22,0.55,0.1,0.05],... 'String' , 'ÇúÏßÄâºÏ';uicontrol('Style' , 'Text' , 'Position' ,[0.005,0.45,0.05,0.05],... 'Units' , 'normalized' , 'Horizontal' , 'center' , ...'String' , 'X' , 'Back' ,[0,1,1];chazhi=uicontrol('Style' , 'Edit' , 'Position' ,[0.05,0.45,0.15,0.06],... 'Units' ,'normalized' , 'Back' ,[0,1,0];uicontrol('Style' , 'Text' , 'Position' ,[0.2,0.45,0.05,0.05],... 'Units' , 'normalized' , 'Horizontal' , 'center' , ...'String' , 'Y' , 'Back' ,[0,1,1];nihe=uicontrol('Style' , 'Edit' , 'Position' ,[0.25,0.45,0.15,0.06],... 'Units' ,'normalized' , 'Back' ,[0,1,0];XIANXING=['s=(get(changwei,''String'';', ...'c=(get(tiaojian,''String'';', ...'c_f=dsolve(''s'',''b'',''x'';', ...'set(jieguo,''string'',char(c_f;'];uicontrol('Style' , 'Push' , 'Position' ,[0.02,0.35,0.25,0.06],...'String' , '³£Î¢·Ö·½³ÌÊýÖµÇó½â', 'Units' , 'normalized' , 'Call' ,XIANXING;chengwei=uicontrol('Style' , 'Edit' , 'Position' ,[0.16,0.25,0.25,0.06],.. .'Units' , 'normalized' , 'Back' ,[0,1,0];uicontrol('Style' , 'Text' , 'Position' ,[0.01,0.25,0.1,0.05],... 'Units' , 'normalized' ,'Horizontal' , 'center' , ...'String' , '΢·Ö·½³Ì', 'Back' ,[0,1,1];tiaojian=uicontrol('Style' , 'Edit' , 'Position' ,[0.16,0.15,0.25,0.06],.. .'Units' , 'normalized' , 'Back' ,[0,1,0];uicontrol('Style' , 'Text' , 'Position' ,[0.01,0.15,0.1,0.05],... 'Units' , 'normalized' ,'Horizontal' , 'center' , ...'String' , '³õÖµÌõ¼þ', 'Back' ,[0,1,1];h_axes=axes('position' ,[0.5,0.15,0.4,0.4];jieguo=uicontrol('Style' , 'text' , 'Position' ,[0.5,0.6,0.45,0.25],... 'Units' , 'normalized' , 'Back' ,[0,1,0];uicontrol('Style' , 'Text' , 'Position' ,[0.6,0.85,0.3,0.1],... 'Units' , 'normalized' ,'Horizontal' , 'center' , ...'String' , '½á¹û', 'Back' ,[1,1,1],'FontSize' ,35;uicontrol('Style' , 'Push' , 'Position' ,[0.018,0.02,0.08,0.05],... 'String' , 'Í˳ö', 'Units' , 'normalized' , 'Call' , 'close' ;uicontrol('Style' , 'Push' , 'Position' ,[0.65,0.025,0.08,0.05],...'String' , '°¡Êµ´òʵ', 'Units' , 'normalized' , 'Call' , '»æÍ¼º¯Êý°´Å¥';。

MATLAB图形用户界面设计与实例展示

MATLAB图形用户界面设计与实例展示

MATLAB图形用户界面设计与实例展示一、引言在当今科技发展日新月异的时代,图形用户界面(Graphical User Interface,简称GUI)已经成为了我们日常生活和工作中不可或缺的一部分。

作为一种直观、交互式的界面设计方式,GUI已经广泛应用于各个领域,包括但不限于商业软件、教育应用、科学研究等。

在本文中,我们将聚焦于MATLAB图形用户界面的设计与实例展示。

二、MATLAB GUI简介MATLAB是一种强大的数值计算和数据分析工具,其广泛的功能和开放的界面设计平台使得用户可以自由地根据自己的需求进行个性化的界面设计。

MATLAB提供了一系列GUI的工具箱,包括“GUIDE(Graphical User Interface Development Environment)”以及可视化编程语言“App Designer”,这些工具箱可以帮助用户快速构建自己的图形用户界面。

三、MATLAB GUI设计的基本原则1.简洁明了:在设计GUI时,我们应该尽量避免过多的冗余信息和复杂的布局,保持界面简洁明了,以便用户能够快速理解和使用。

2.一致性:保持界面的一致性是GUI设计的重要原则之一。

在整体风格、按钮布局、颜色选择等方面保持统一,可以提高用户的使用体验。

3.友好交互:GUI的主要目的是提高用户的交互体验。

在设计时,我们应该注重用户的感受,尽量使用户操作简单、直观,避免繁琐的步骤和复杂的操作。

四、MATLAB GUI实例展示1.数据可视化界面我们可以利用MATLAB的强大绘图功能来设计一个数据可视化界面,将用户所输入的数据实时可视化展示出来。

例如,我们可以设计一个简单的数据收集和绘图界面,用户可以通过GUI界面输入自己的数据,并选择绘制的类型和样式,最后点击绘图按钮,即可在界面上看到实时的绘图结果。

2.图像处理界面利用MATLAB的图像处理工具箱,我们可以设计一个图像处理界面,方便用户进行图像的编辑、增强和处理等操作。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计任务书题目基于MATLAB的图形用户界面设计专业、班级电子信息工程11级1班学号57姓名朱东丽主要内容、基本要求、主要参考资料等:主要内容:利用MATLAB创建具有人机交互功能的图形用户界面(GUI),实现对某虚拟信号处理实验箱的操作平台界面的设计。

基本要求:1、在欢迎界面,具有进入功能模块、返回模块和退出模块。

2、在功能模块中,包括参数设置区、图形显示区和数据显示区等组成单元,可以完成对指定功能的设置、显示和实现。

3、自选设置三个功能模块,用于实现一定的信号和系统的设计或分析。

主要参考资料:1、《数字信号处理教程(第三版)》,程佩青著,清华大学出版社,2007。

2、《数字信号处理教程——MATLAB释义与实现(第2版)》,陈怀琛著,电子工业出版社,2008。

3、《MATLAB及在电子信息课程中的应用(第4版)》,陈怀琛等著,电子工业出版社,2013。

完成期限:2014.06.09~2014.06.13指导教师签名:课程负责人签名:2014年06月06日基于MATLAB的图形用户界面设计摘要MATLAB的GUIDE是专门用于图形用户界面 (GUI)程序设计的快速开发环境。

从介绍GUIDE入手 ,结合具体的软件图形界面实例 ,给出了利用GUIDE制作图形用户界面的基本方法。

在该设计中 ,利用GUIDE设计的界面可以实现一些基本信号的产生,卷积计算,傅里叶变换等功能,界面友好 ,具有开放性 ,方便用户不断地完善和扩充其功能。

利用MATLAB软件提供的图形用户界面(Graphical User Interfaces ,GUI)设计具有人机交互、界面友好的用户界面。

本文采用MATLAB 的图形用户界面设计功能, 实现对某虚拟信号处理试验箱的操作平台界面的设计。

在该界面系统中, 集成了信号处理中的多个实验, 应用效果良好。

本系统是一种演示型软件,用可视化的仿真工具,以图形和动态仿真的方式演示部分基本信号的传输波形和变换,使学习人员直观、感性地了解和掌握信号与系统的基本知识。

关键词MATLABGUIDE用户界面卷积目录摘要 (II)1.绪论 (1)1.1概述 (1)1.2MATLAB软件 (1)2.图形用户界面 (3)2.1图形用户界面定义 (3)2.2图形用户界面应用 (3)3.GUI的设计 (4)3.1系统整体结构 (4)3.2设计步骤 (4)3.3功能模块 (4)结束语 (13)致谢 (14)参考文献 (15)1.绪论1.1 概述随着计算机的普及应用以及科技的发达,现代社会是信息的社会,对信息的研究变得非常重要,而对信号波形的模拟可以方便研究人员研究。

以前的信号模拟是用硬件,对仪器和实验室的要求较高,不便于广泛应用,而且信号处理具有内容繁多、概念抽象、设计复杂等特点,学生在学习时常常会感到枯燥,难以理解和掌握。

硬件模拟信号波形对设备要求较高,有时候受仪器或操作不对等因素的影响将无法正确直观的看到波形,参数改变时不能立即看到波形变化。

而用软件的形式对信号波形进行仿真有着界面可视性强,操作简单方便;便于数据修改,文件保存,实验效率高,实验内容丰富,结果直观易懂,便于分析;而且系统容易扩展新的实验项目。

所以仿真很有必要而且急为迫切。

1.2 MATLAB软件20世纪70年代,美国新墨西哥大学计算机科学系主任CleveMoler为了减轻学生编程的负担,用FORTRAN编写了最早的MA TLAB。

1984年由Little、Moler、Steve Bangert合作成立了的MathWorks公司正式把MATLAB推向市场。

到20世纪90年代,MATLAB已成为国际控制界的标准计算软件。

MATLAB(矩阵实验室)是MATrixLABoratory的缩写,是一款由美国TheMathWorks公司出品的商业数学软件。

MATLAB是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。

除了矩阵运算、绘制函数/数据图像等常用功能外,MATLAB还可以用来创建用户界面及与调用其它语言(包括C,C++和FORTRAN)编写的程序。

尽管MATLAB主要用于数值运算,但利用为数众多的附加工具箱(Toolbox)它也适合不同领域的应用,例如控制系统设计与分析、图像处理、信号处理与通讯、金融建模和分析等。

另外还有一个配套软件包Simulink,提供了一个可视化开发环境,常用于系统模拟、动态/嵌入式系统开发等方面。

MATLAB由一系列工具组成。

这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。

包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。

随着MATLAB 的商业化以及软件本身的不断升级,MATLAB的用户界面也越来越精致,更加接近Windows的标准界面,人机交互性更强,操作更简单。

而且新版本的MATLAB提供了完整的联机查询、帮助系统,极大的方便了用户的使用。

简单的编程环境提供了比较完备的调试系统,程序不必经过编译就可以直接运行,而且能够及时地报告出现的错误及进行出错原因分析。

MATLAB和Mathematica、Maple并称为三大数学软件。

它在数学类科技应用软件中在数值计算方面首屈一指。

MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB 成为一个强大的数学软件。

在新的版本中也加入了对C,FORTRAN,C++,JA V A 的支持。

可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。

2.图形用户界面2.1图形用户界面定义用户界面是用户与计算机进行信息交流的方式。

计算机用户界面在屏幕显示图形和文本,若有扬声器还可产生声音。

用户通过输入设备(如:键盘、鼠标、跟踪球、绘制板或麦克风),与计算机通讯。

用户界面设定了如何观看和如何感知计算机、操作系统或应用程序。

通常,多是根据悦目的结构和用户界面功能的有效性来选择计算机或程序。

图形用户界面(GUI)是指由窗口、菜单、图标、光标、图形用户界面按键、对话框和文本等各种图形对象的用户界面。

它让图形对象用户定制用户与MATLAB的交互方式,而命令窗口不是唯一与MATLAB的交互方式。

用户通过鼠标或键盘选择、激活这些图形对象,使计算机产生某种动作或变化。

基本图形对象分为控件对象用户界面菜单对象控件对象和用户界面菜单对象控件对象用户界面菜单对象,简称控件菜单和菜单控件。

2.2 图形用户界面应用运用MATLAB软件开发,设计图形用户界面系统平台,已经广泛应用于实验教学中,此系统平台便于学生直观观察信号系统中涉及的波形及特性的原理图,使学生更加深刻的理解“信号与系统”各信号的产生过程及原理。

MATLAB作为编程语言和可视化工具 , 用MATLAB开发的实验为学生提供了“信号分析”、“信号抽样”、“系统仿真”、“系统特性”及“傅立叶变换”等功能模块。

它的界面演示框如同通用示波器 , 显示了信号分析与系统设计的动态仿真过程 , 给人以直观的感受[1]。

此系统使同学对所学的书本知识会有感性的认识和直观的验证 , 加深对“信号与系统”原理的理解。

3.GUI的设计3.1系统整体结构本实验系统整体结构设计的界面模块总共包括5个模块,其中包括两个整体模块:引导模块、主模块;三个功能模块:基本序列计算模块、卷积模块、傅里叶变换模块。

3.2设计步骤设计的具体步骤如下:(1)运用MATLAB的图形用户界面(GUI)设计方法, 设计整个系统的开始引导界面、功能主界面及其实现信号处理课程中具体功能的各个子界面。

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

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

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

3.3功能模块(1)系统欢迎模块。

系统欢迎界面如图3-1所示。

图3-1系统欢迎界面(2)系统主界面系统主界面包含了各个子界面,由此进入各个子功能模块,系统主界面如图3-2所示。

图3-2系统主界面(3)基本序列产生模块A .基本序列产生模块界面如图3-3所示。

图3-3基本序列产生模块界面由图3-3可以看出在这个模块里包括了单位脉冲序列、单位阶跃序列、指数序列一共三个序列,并且还给出了序列卷积这个运算。

下面来主要介绍这单位阶跃序列和指数序列及其设计方法。

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

在该子界面的单位阶跃序列那栏里输入位移量3,然后点击“单位阶跃序列”按钮,即出现如图3-4所示的波形。

图3-4 位移量为3的单位阶跃序列单位阶跃序列关键程序:function pushbutton3_Callback(hObject, eventdata, handles)t=str2num(get(handles.edit2,'String'));k=[t-3:t+7];fk=[(k-t)>=0];stem(k,fk)title('单位阶跃序列')b.指数序列指数序列是公式是()()n u anx n=(3-2)当a>1时序列是发散的,a<1时序列收敛,a>0序列都取正值, a<0序列在正负摆动。

此外还有()n ua n-的序列。

在该子界面的指数序列那栏里输入底数2,然后点击“指数序列”按钮,出现如图3-5波形图3-5底数为2,指数为10时的指数序列指数序列模块关键程序:function pushbutton4_Callback(hObject, eventdata, handles)t=str2num(get(handles.edit3,'String'));k=[0:10];fk=t.^k;stem(k,fk)title('指数序列')(4)卷积模块A.卷积定义对于任意两个信号()tf1和()t f2,两者做卷积运算定义为()()()τττdtfft f-=⎰∞∞-21(3-3)做一变量代换不难证明()()()()()()()t f t f t f t f d t f f t f 122112**==-=⎰∞∞-τττ (3-4)式中()()t f t f 21*是两函数作卷积运算的简写符号,也可以写成()()t f t f 21⊗。

相关文档
最新文档