基于MATLAB的数字信号处理虚拟实验仿真平台 毕业设计_第1页
基于MATLAB的数字信号处理虚拟实验仿真平台 毕业设计_第2页
基于MATLAB的数字信号处理虚拟实验仿真平台 毕业设计_第3页
基于MATLAB的数字信号处理虚拟实验仿真平台 毕业设计_第4页
基于MATLAB的数字信号处理虚拟实验仿真平台 毕业设计_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、学 号: 3040431211 题目类型: 设计 (设计、论文、报告)桂林工学院GUILIN UNIVERSITY OF TECHNOLOGY本科毕业设计(论文)题目: 基于MATLAB的数字信号处理虚拟实验仿真平台 系 ( 院 ): 电子与计算机系 专业(方向): 通信工程 班 级: 学 生: 指导教师: 2008 年 5 月 22日29摘 要数字信号处理在大专院校的通信类及电子类专业中是一门非常重要的基础课程, 具有内容抽象,学生不容易掌握的特点。另一方面,教师在讲授主要些内容时也不方便。针对教学中存在的这种问题,为了方便教师授课和学生学习,使抽象的内容形象化,提高学生的学习兴趣,本文以M

2、ATLAB作为开发平台,设计了基于MATLAB的数字信号处理虚拟实验仿真平台,改变了传统的实验方式 ,将数字信号处理的实验内容集中在一个平台上,操作简单方便,结果直观准确。MATLAB开放的环境、功能极强的图形绘制、各种工具箱及其简单易学的特点,使系统开发简单、快捷。本系统采用友好的GUI界面设计,用简洁的文字、丰富的画面将抽象的内容展现在学生面前,提高了学生的学习积极性和主动性。关键词: 数字信号处理;实验平台;MATLAB;GUIThe design of digital signal processing virtual experiment simulation platform ba

3、sed on Matlab Student:Huang Zhong-Ze Teacher: Li XinAbstract : “Digital Signal Processing” is the important foundation course of electrical and communications professionals in university, the content is very abstracty and students are not easy to grasp. The other hand, teachers taught in some main c

4、ontents not very convenient. Against such problems exist in teaching,to allow teachers to teach and students to learn. So abstract as figurative, Enhance their learning interest. This paper represents digital signal processing virtual experiment simulation platform using Matlab. It changes the tradi

5、tional teaching methods and focus on the content of a platform. Operation is simple and convenient. Results is visual and accurate. Matlab provides an open environment, highly functional graphical rendering. Toolbox and its features is easy to learn, which make the system development simple and fast

6、, The system uses a friendly GUI interface design, using simple language, rich picture will be displayed the abstract content in the front of the students and improved students learning enthusiasm and initiative. Key words : digital signal processing ;experiment platform ;matlab ;gui目录摘 要IAbstractII

7、目录11 引言21.1 课题的背景21.2国内外研究现状21.3 课题主要研究内容和研究意义32 MATLAB的介绍42.1 MATLAB 简介42.2 MATLAB语言的发展历程和影响42.3 MATLAB语言的特点52.4 MATLAB的工作环境52.5 工作环境的特点53 MATLAB在数字信号处理教学中的应用63.1 MATLAB的应用现状63.2 MATLAB在数字信号处理教学中的应用63.3 在数字信号处理教学实验中应用MATLAB 的意义74 数字信号处理虚拟实验仿真平台设计的必要性和可行性84.1增加 MATLAB 内容的必要性和可行性84.1.1 必要性84.1.2可行性10

8、4.2 用MATLAB做数字信号处理虚拟实验仿真平台的优点104.2.1 数字信号处理课程实验的教学现状104.2.2 强大的作图功能使抽象的概念一目了然114.2.3利用现代化的教学手段, 增强教学效果115 基于matlab数字信号处理虚拟实验仿真平台整体构建方案125.1仿真平台应用软件设计实现125.1.1总体结构设计125.1.2软件实现136 基于matlab的数字信号处理虚拟实验仿真平台的实现146.1 界面的设计方法146.1.1句柄图形及图形用户界面146.1.2 GUIDE的设计过程146.1.3 基于matlab的数字信号处理虚拟实验仿真平台主界面156.1.4 基于MA

9、TLAB数字信号处理实验设计实例196.1.5实验仿真平台的特点257 结论26致 谢27参考文献281 引言1.1 课题的背景数字信号处理是应用最快、成效最显著的新科学之一, 广泛地应用在通信、控制、生物医学、遥测遥感、地址勘探、航空航天、自动化仪表等领域, 国内外高校都为相关专业的学生开设了这门课程。除通信电子信息类的专业外, 计算机科学与技术、光信息科学与技术、地理信息系统、信息安全、生物医学工程、测控技术与仪器等专业都在教学计划中相继设置了数字信号处理课程。数字信号处理是一门非常重要的课程,它利用傅立叶变换和Z变换等数学方法,阐述了离散信号的特性和时域离散系统,通过对IIR 和DIR

10、滤波器的设计,分析了数字信号处理的实现方法。数字信号处理课程的特点是概念多, 公式、性质的推导和证明繁琐, 还需信号与系统等相关课程的基础, 被公认为大学课程中最难的课程之一,学生对上课内容的理解往往跟不上老师授课的进度。现在很多大学教师在课堂上采用了多媒体教学, 多媒体授课具有教学信息量大, 信息传递便捷、交互性较强、感官刺激效果好等特点。对于讲授数字信号处理课程的老师来说,要提高学生对这门课的认识, 可从丰富教学手段入手, 除了考虑制作具有动态效果的幻灯片之外, 还可以采用像MATLAB这样的软件设计多媒体课件,而利用MATLAB 强大的数值计算和信号处理功能 ,可以很方便地得到设计结果,

11、并能直观地分析和比较滤波器的各项性能指标以及各种设计方法的优劣,为学生理解算法和简化运算带来了极大的方便。数字信号处理是一门以算法为核心的理论性很强的学科,许多理论都基于比较抽象和繁琐的推论和推导,本科学生学习这门课程具有一定的困难,所以实验显得尤为重要。目前我校的数字信号处理课程共48学时,其中10学时MATLAB软件编程实验,对理论进行验证,可帮助学生理解与掌握课程中的基本概念, 基本分析方法, 提高学生的动手能力, 科研能力和创新能力。1.2 国内外研究现状随着科学技术的发展 ,传统的教学媒体如黑板教科书承载信息的种类和能力都十分有限 ,远远满足不了现代教学的需要.另一方面学生理解和接授

12、知识时感觉枯燥、难度大.计算机技术的飞速发展和MATLAB软件的推出 ,利用计算机进行辅助教学这种教学手段己经逐步进入课堂教学领域。MATLAB是数字信号处理的一个卓越平台,具有开放的环境、功能极强的矩阵运算、图形绘制、数据处理、各种工具箱等许多优点,为系列课的教学提供了一个连续的、有实用价值的工具1。国外在若干年前,就开始把交互式软件MATLAB用于数字信号处理的教学,采用易学易用、功能强大的系统开发平台作为计算机辅助教学软件。目前,我国数字信号处理教学辅助软件已经不少,但是大多采用的VB、VC或使用FLASH动画实现,而采用MATLAB自身的图形用户界面设计,取得了良好的效果,但数字信号处

13、理实验平台在设计过程中还有许多不尽完善的地方,学生实验复杂,还容易出错,实验设备损坏率较高。1.3 课题主要研究内容和研究意义根据我校学生的实际情况,考虑到如果采用学生自己编程的方法,需要学生熟练掌握一种高级语言和具有一定的软件编程能力和技巧。本课程教学的重点不在于提高学生的编程能力,而是要求学生掌握数字信号处理的基本概念,基本方法和基本技能。因此,为了提高教学效果,激发学生的学习的兴趣,降低实验成本,本文基于MATLAB 设计了一套数字信号处理虚拟实验平台,该平台利用MATLAB的图形用户界面(GUI)设计工具,以实验内容为依托,设计了与实验内容配套,与课堂教学相结合,将实验内容融入教学过程

14、中,可用于数字信号处理课程的实验辅助教学、课堂教学演示,也可作为学生课后自学的辅助工具。实践证明,这种教学实验辅助软件起到了良好的效果,提高了同学们对理论的理解和对内容的掌握,并且学生在使用过程中再进行一系列的验证,加深了对所学内容进一步的理解和巩固。2 MATLAB的介绍2.1 MATLAB 简介MATLAB是美国Math works公司开发的新一代科学计算软件,是一套高性能的数值计算和可视化软件,功能强大,编程简单,开放性强,广泛应用于计算机辅助分析设计、仿真、数据处理等领域,是当今国际上公认的在科技领域方面最为优秀的应用软件和开发环境。在欧美各高等院校,已经成为应用线性代数、自动控制理论

15、、数据统计、数字信号处理、时间序列分析、动态系统仿真、图像处理等高级课程的基本教学工具。MATLAB 是一种既可交互使用又能解释执行的计算机编程语言,使用接近数学表达式的自然化语言,简单易学,具有可靠的数值、符号运算能力和强大的图形和可视化功能;此外,MATLAB 内部包括许多专业性较强的工具包并与其他高级语言有接口2。MATLAB的功能和特点使它具备了对应用学科(特别是边缘学科和交叉学科)的极强适应力,并很快成为应用学科计算机辅助分析、设计、仿真、数学乃至科技文字处理不可缺少的基础软件。 2.2 MATLAB语言的发展历程和影响 MathWorks公司于1993年推出MATLAB4.0版本,

16、从此告别DOS版。4.x版在继承和发展其原有的数值计算和图形可视能力。1997年仲春,MATLAB5.0版问世,紧接着是5.1、5.2,以及和1999年春的5.3版。 诚然,到1999年底,Mathematica也已经升到6.0版,它特别加强了以前欠缺的大规模数据处理能力。但是,就影响而言,至今仍然没有一个别的计算软件可与MATLAB匹敌。 在欧美大学里,诸如应用代数、数理统计、自动控制、数字信号处理、模拟与数字通信、时间序列分析、动态系统仿真等课程的教科书都把MATLAB作为内容。在国外MATLAB是攻读学位的大学生、硕士生、博士生必须掌握的基本工具。 在国际学术界,MATLAB已经被确认为

17、准确、可靠的科学计算标准软件。在许多国际一流学术刊物上,都可以看到MATLAB的应用。2.3 MATLAB语言的特点 MATLAB自问世起,就以数值计算称雄。MATLAB进行数值计算的基本处理单位是复数数组(或称阵列),并且数组维数是自动按照规则确定的。这一方面使MATLAB程序可以被高度“向量化”,另方面使用户易写易读。 MATLAB指令是简单的,但其内涵却远远超出了普通教科书的范围,其计算的快速性、准确性和稳定性都是普通程序所远不及的。数据类型的变革,面向对象编程技术的采用,所产生的影响是广泛而深层的。这种影响首先表现在MATLAB的自身。新版MATLAB的控制流新增了多分支结构switc

18、h-case、try-catch结构和警告提示指令error、warning,这进一步提高了程序的可读性和运行可靠性。新版的函数类型大大丰富,适应编制和管理复杂程度不同的程序。而子函数、私用函数的增添,使得复杂函数比较容易组织,既提高了软件的“重用度”,又避免了众多内存变量名的冲突、庞大工具库的函数名冲突。2.4 MATLAB的工作环境 所谓工作环境是指:帮助系统、工作内存管理、指令和函数管理、搜索路径管理、操作系统、程序调试和性能剖析工具等。2.5 工作环境的特点(1)大量引入图形用户界面(2)引入了全方位帮助系统(3)M文件编辑、调试的集成环境(4)Notebook新的安装方式3 MATL

19、AB在数字信号处理教学中的应用3.1 MATLAB的应用现状MATLAB的函数和命令几乎可以实现C或FORTRAN语言的全部功能,用户不懂C或者FOR2TRAN等高级语言也能开发出功能强大、界面友好、稳定可靠的程序来,开发周期大大缩短。若用户熟悉C或FORTRAN ,MATLAB提供了相应的接口,允许相互调用,因此MATLAB具有较好的开放性。MATLAB的高效编程还体现在各类学科的专家在各自的领域用MATLAB编写的许多准确、高效的工具箱,工具箱实际上是对MATLAB进行扩展应用的一系列MATLAB函数(称为M 文件) ,供用户方便地使用,诸如信号处理、图象处理、控制系统、工程优化及神经网络

20、等工具箱。所以MATLAB 逐渐成为涉及数值分析的各类学科教学与科学研究必不可少的工具。SIMULINK是一个用来对动态系统进行建模、仿真和分析的软件包,SIMULINK为用户提供了用方框图进行建模的图形接口,采用这种结构化模型就像用笔和纸来画一样容易。它与传统的仿真软件包用微分方程和差分方程建模相比,更具直观、方便、灵活的优点。目前,发达国家高等院校的工科类学生都把MATLAB作为必修课, 实验室通常都配备装有MATLAB的计算机供学生学习和研究使用。学生的许多作业都可以在计算机上完成,这些硬条件为许多课程的教学带来了极大的灵活性和便利性。而我国工科类的教学还未能充分利用MATLAB强大功能

21、,现有的MATLAB书籍大都作为计算机应用工具书出现,未能与具体学科的教材有机地结合起来。3.2 MATLAB在数字信号处理教学中的应用 数字信号处理是20世纪60年代以来, 随着大规模集成电路和计算机技术的发展而迅速发展起来的一门新兴学科。它以精度高、灵活性大、可靠性强、易于大规模集成等优点在通信、雷达、地震、声纳、遥感和生物医学等领域得到了越来越广泛的应用。它不仅是电子信息、通信类专业的主干课程, 也是工科学生受益较多的一门课程。数字信号处理研究的是用数字的方法, 正确快速地处理信号提取各类信息。该课程的特点是理论性强, 涉及到的数学理论、公式很多, 知识面非常广泛, 既讨论理论问题, 又

22、讨论理论的应用。该课程内容比较抽象,尤其是课程中的许多章节的内容,需要作图才能理解有关概念和原理,学生学习起来难于理解, 学习的积极性和学习质量都受到一定影响,教学质量难以提高。我认为现有的教材缺乏典型具体的实例,来全面系统地贯穿这些理论基础知识。这就使得学生在学习时,一直停留于抽象的、表面的理解,不能与实际信号处理系统联系起来,形成明确的解决问题的思路。鉴于教学中的这些问题,我认为可从如下几个方面来着手解决:(1)从专业课程设置上,建议给通信工程专业低年级学生开设计算机应用教程,把MATLAB的基础知识作为此课程的重要内容。使得学生能够掌握使用MATLAB 这类工程计算软件的基本技术,包括基

23、本数学计算、矩阵处理、计算结果的可视化和符号运算等。(2)现有的数字信号处理教材,应适当地加以更新。课程内容应紧密结合当前电子信息学科发展的趋势,不仅注重理论,而且还要侧重于系统性强、有工程实际意义的实例,并且将MATLAB引入教学中。使得学生通过典型信号处理系统的数学建模、系统性能分析及设计,真正掌握信号系统理论解决工程问题的一套系统科学的方法。再次,教师在推动MATLAB的教学应用中起着相当重要的作用。教师应该通过应用MATLAB进行科研来提高自身的水平,只有通过科研才能深刻理解MATLAB强大的功能及其在工程中的应用。这样讲课才能真正做到科研与教学相长。总之,MATLAB在电子信息领域的

24、应用潜力极大,尤其在数字信号处理课程教学过程中的应用,设计一些有典型代表意义的仿真实验,帮助学生学习复杂的信号处理系统的数学模型建立、算法实现。此外,将MATLAB有效地贯穿于数字信号处理课程教学环节中,需不断总结和积累经验,只有这样,才能切实改进和提高教学质量。3.3 在数字信号处理教学实验中应用MATLAB 的意义由于这门学科的抽象性,数字信号处理课程处于一种教难、学更难的境况中,主要因为:一方面本课程要求较好的数学基础,公式和推导很多,大量的算法适于在计算机上实现,对于学生来说运算量大而繁琐,学习者难以亲手验证,因而得不到形象化的结果,使得对理论的理解难以透彻;另一方面,学生难以把本课程

25、的理论应用到实际当中去,解决一些实际问题,从而无法提高对本课程的学习兴趣。因此,针对课程教学中存在的上述问题,设计基于Matlab 软件的数字信号处理课程实验系统,利用Matlab的图形界面设计功能和相应的信号处理工具箱, 将课程中枯燥的原理、理论及分析方法等内容设计成一个完整的交互式实验演示系统, 以图形的方式展示给学生, 一方面直观地验证了相关原理、方法的正确性, 有助于学生对抽象理论的理解, 另一方面加深了学生对所学知识的理解, 更重要的是激发了学生的学习兴趣,又能弥补实验手段的不足,从而达到提高课堂教学质量目的3。4 数字信号处理虚拟实验仿真平台设计的必要性和可行性数字信号处理是电子通

26、信类相关专业的一门重要专业基础课程, 是本科生后续课程和研究生课程的基础, 它在专业课程体系中占有重要地位. 该课程的主要任务是通过对数字信号处理理论知识的学习,培养学生对数字信号处理系统的分析和设计能力、工程实践能力和创新能力.课程的特点是:内容丰富、理论性强、涉及知识面广、信息量大、更新发展快,而且比较抽象,习题多、难度大,是具有一定深度和学习难度的课程,学生感到难学,教师难教.显然面对这样一门课程,沿用传统的“课堂讲授+验证性实验”的教学方法是无法解决问题的.必须更新观念,建立一套包括理论讲授、计算机辅助教学、实践教学在内的全方位的课程教学新体系,充分调动教师和学生两方面的积极性,利用各

27、种教学方法和手段,全面提高课程的教学质量.4.1增加 MATLAB 内容的必要性和可行性4.1.1 必要性数字信号处理是一门技术基础课,需要将所学得理论应用到实践中去。有必要从一开始就让学生以简单的MATLAB语言学习用计算机如何建模,如何分析和设计函数等 ,以强化数字信号理论的应用性,另一方面,MATLAB强大的可视化数据处理功能也能够弥补数字信号处理理论课程授课时数的不足。例如 ,在数字信号处理理论课程中常采用各种图形进行分析,这些图形需要分析、计算、描绘点等过程,常常要花费不少的时间。如果采用MATLAB语言只需一条指令立刻就可以得到。举例如下:对于定义在离散域的函数,卷积定义为:,通过

28、MATLAB编程就可以实现两个函数a,b进行卷积,卷积在MATLAB中的调用命令是conv(a,b)。a=input(Type in the first sequence =);b=input(Type in the second sequence =); %输入参数a,bc=conv(a,b); % a,b进行卷积M=length(c)-1; %M的长度n=0:1:M; % n的取值范围disp(output sequence =);disp(c) %显示输出数stem(n,c) %画离散序列数据图xlabel(Time index n); ylabel(Amplitude); %X表示抽样

29、时间指数,Y轴表示幅度在上面的程序中输入a=1,2,3,b=4,5,6 。a,b进行卷积所得结果如下:图1 卷积结果对于a=1,2,3与b=4,5,6的卷积可以通过手算得到结果:运算如下1 2 3 * 4 5 6 6 12 18 5 10 15 + 4 8 12 4 13 22 27 18 手算的结果与MATLAB所得结果一样,证明用MATLAB做的结果是对的,并且MATLAB得到的结果更直观,更生动,更快捷,不需要花费时间。实践证明,由于教学内容直观性增强了,教材中的理论和公式更易于理解,教学质量明显提高。学生学会使用MATLAB语言之后,也能很容易地利用它绘制出各种图形,有利于更好地理解数

30、字信号处理的基本原理和核心概念4。增加MATLAB语言内容,可以促进数字信号处理理论的教学,提高学生兴趣,增强学生自己动手分析、设计系统的能力,而且老师在课堂可以直观的演示使抽象的理论变成生动的图形界面,而且还可以对系统的稳定性进行分析使学生对于这门课程有一个全新的认识。总之 ,这将利于培养出知识面广、动手能力强、综合素质高的学生 。4.1.2可行性MATLAB语言可在目前的各种类型的计算机上运行,安装简易。MATLAB语言比一般的高级语言(如C、FORTAN等)执行效率低,而其编程效率与可读性、可移植性要远远高于其他高级语言。将MATLAB加入到实验教学中,一方面让学生用简单的MATLAB

31、语言学习用计算机如何建模如何分析和设计系统等以强化原理的应用性,另一方面MATLAB强大的可视化数据处理功能也可以弥补课程授课时的不足以减少教师绘图表的麻烦和不精确,还可避免传统理论教学中教师在黑板画图耗费时间及手工画图的不精确性。在课程中增加MATLAB语言内容可以促进电子信息工程的教学提高学生兴趣增强学生自己动手分析MATLAB设计系统的能力,MATLAB这将有利于培养知识面更广,动手能力更强,综合素质更高的学生,数字信号处理理论教学与MATLAB语言有机的结合是电子信息领域发展的潮流也顺应了通信与电子信息专业学生专业立足点高,知识更新,综合素质更突出的要求,因此在数字信号处理基础课程中增

32、加MATLAB内容不仅使学生掌握了理论教学的内容同时也教学生一些应用理论的手段5。4.2 用MATLAB做数字信号处理虚拟实验仿真平台的优点4.2.1 数字信号处理课程实验的教学现状现代科学技术的迅速发展,促进了数字信号处理理论和技术的迅速发展,该课程以高等数学、工程数学、电路分析、信号与系统等课程为基础背景,课程数学含量大,概念抽象,数学公式推导以及数学结果繁杂难以理解,长期以来一直采用单一的黑板式教学,许多分析结果只能停留在复杂的数学表达式上,缺乏直观表现。学生在理解和巩固教学内容的时候,经常要耗费很大的精力在数学计算和计算公式的熟练使用上,注重数学推倒却忽略变换过程的本质,工程概念薄弱,

33、理论与实际联系不足。原理、方法与应用脱节,达不到课程本身要求培养学生综合应用能力的目的,也很难调动学生学习的积极性。 随着教学改革的深入开展和计算机应用技术的普及和提高,利用计算机进行辅助教学这种教学手段己经逐步进入课堂教学领域。MATLAB是计算机辅助分析与设计的一个卓越平台,具有开放的环境、功能极强的矩阵运算、图形绘制、数据处理、各种工具箱等许多优点,为教学提供了一个连续的、有实用价值的工具,对系统仿真和稳定性分析等课程均可在这个平台上进行教学改革。4.2.2 强大的作图功能使抽象的概念一目了然数字信号处理课程学习离散信号频域分析,离散富里叶变换快速算法解决信号分析问题,数字滤波器的设计原

34、理和实现方法,信号谱分析的基本方法,概念抽象,公式多,学习起来难度比较大。MATLAB强大的绘图功能使得用图形来验证理论结果不再是一件繁琐的事情,直观、方便。时域分析法、频域分析法及状态空间分析法用MATLAB均能实现。4.2.3利用现代化的教学手段, 增强教学效果教学硬件设施的不断加强和完善,为把计算机作为教学媒体引人课堂提供了条件,在课堂教学进行的过程中,适时地穿插应用计算机进行演示教学,用简洁的文字、丰富的画面、逼真的动画以及声音等形象直观地呈现在学生面前,不仅提高了学生学习本课程的兴趣,还使得一些比较抽象的概念和过去教学过程中学生反映难以理解和掌握的内容,通过生动、形象的方法向学生阐明

35、,使学生更容易理解和掌握.5 基于matlab数字信号处理虚拟实验仿真平台整体构建方案5.1仿真平台应用软件设计实现5.1.1总体结构设计软件采用MATLAB开发平台,利用其可视化编程能力的图形用户界面GUI,按照控制教学、实验、应用等内容,设计出相应的仿真平台应用软件结构图,如图2所示.系统主界面由10个主要子窗体模块构成,分别大纲要求的10个实验.通过单击主界面上子模块相应的按钮即可启动相应的子窗体,MATLAB的应用程序,以M文件形式出现.各软件模块主要的功能是实现教学大纲要求做的实验。MATLAB总体结构图:基于MATLAB的数字信号处理虚拟实验仿真平台构建实验一MATLAB基本操作实

36、验二离散信号的时域运算实验三因果离散线性系统时域分析实验四DTFT变换的性质及应用实验五Z变换的性质及应用实验六离散时间系统的频域分析实验七DFT变换的性质及应用实验八数字低通巴特沃斯滤波器的设计实验九窗函数设计FIR滤波器实验十基于FFT的图象压缩与放大图2 基于MATLAB的数字信号处理虚拟实验仿真平台构建5.1.2软件实现要将系统结构图中的内容在用户界面里表现出来,就必须有参数输入、结果输出、图形仿真输出等,且这些都能进行对比分析,因此要求有个友好、操作简单、可读性强、易修改的图形用户界面,选择MATLAB中具有可视化编程能力的图形界面GUI,将它提供的工具与编程经验结合起来,完成软件界

37、面的创建. 各级界面主要利用向导编辑器GUIDE中提供的控件,利用图标及其对应的功能来设计友好的交互式界面.使用Property Inspector修改控件属性,如背景色、前景色、字体及大小、位置、标志、类型等.借助GUI设计面板提供的控件布置编辑器“Align Ob-jects”,很容易的对所选对象进行水平、垂直和间隔排列布置.通过图形界面中控件的操作来完成图形界面的功能,这些操作是通过函数代码的执行来完成的.函数代码的编制通过编写回调函数时实现,把函数代码放在一个自定义的M文件中,而在“callback”中只写上其文件名.当操作该控件时,系统会自动执行“callback”中所要求执行的内容

38、,将子菜单界面所保存的文件名与主界面的菜单名关联起来,完成相应的功能,从而实现整个软件设计6。6 基于matlab的数字信号处理虚拟实验仿真平台的实现6.1 界面的设计方法6.1.1句柄图形及图形用户界面句柄图形(Handle Graphics)就是将一个图形的每一个组件都视为一个对象(Object),每一个对象都有一个独一无二的“句柄”(handle),根据这个句柄,就可以找到这个对象(即图形组件)的各项属性,并进而更改这些属性,以产生不同的图形呈现效果。图形用户界面GUI(Graphics User Interface)是由各种图形对象,如图形窗口、图轴、菜单、按钮、文本框等构建的用户界面

39、,是人机交流信息的工具和方法,在该界面内,用户可以根据界面提示完成整个工程,却不必去了解工程内部是如何工作的。GUI设计即可以基本的MATLAB程序设计为主,也可以鼠标为主利用GUIDE工具进行设计。利用GUIDE设计图形用户界面时,可通过GUI应用属性设置编辑器来设置对句柄操作的响应,findobj命令可以获得所需对象的句柄7。6.1.2 GUIDE的设计过程1)GUI设计工具简介在GUIDE设计环境中,需要用到的工具有属性编辑器、控件布置编辑器、菜单编辑器、对象浏览器、网格标尺设置编辑器以及GUI应用属性设置编辑器等。2)属性编辑器(Properties Inspector)打开属性编辑器

40、的方法有多种,最常用的,选中控件对象以后,点击工具条上的属性设置按钮,即可打开属性编辑器。通过该属性编辑器来对所选图形对象设置相关属性。3)控件布置编辑器(Alignment Objects)在编辑CUI过程中,通过控件布置编辑器可以方便地设置面板上GUI控件的布局。选中需要对齐的对象,然后选择工具条上的控件布置按钮,即可打开控件布置编辑器。在控件布置编辑器中可以设置GUI控件水平以及垂直布局,包括对齐方式以及控件间距等。4)对象浏览器(Object Browser)在GUI面板中点击对象浏览按钮可打开对象浏览器,在该浏览器中可以方便地显示出所有的图形对象,单击该对象则可以打开相应的属性编辑器

41、。5)菜单编辑器(Menu Editor)在GUI面板中点击菜单编辑按钮可打开菜单编辑器,通过菜单编辑器可以为图形界面添加、设置和修改菜单项,以及为右键添加快捷菜单。6)网格标尺设置编辑器(Grid and Rulers)通过网格标尺设置编辑器,可以在GUI面板中添加网格以及标尺,来方便用户的界面设计。选择GUIDE主菜单中的Tools/Grid and Rulers即可打开网标尺设置编辑器。7) GUI应用属性设置编辑器(GUIDE Applica-tion Options)通过该编辑器可以设定GUI界面缩放形式、GUI对句柄操作的响应方式,以及定义GUI的保存方式。选择GUIDE主菜单中的

42、Tools/GUI Options即可打开GUI应用属性设置编辑器。8) GUI设计面板GUI设计面板是上述GUI设计工具应用的平台,如图1所示,面板上部提供了菜单和常用工具按钮,左边提供了多种GUI控件,如按钮、单选按钮、复选框、文本框等。进行GUI设计时,首先单击GUI面板左边所需的控件,然后在右边的图形界面编辑区中再次单击某一恰当的位置,这时将在该位置上为图形界面添加一相应的控件,接下来,通过属性编辑器和对齐编辑器对各控件设置相关属性和进行界面布置,以完善界面功能。图图3 GUI设计界面6.1.3 基于matlab的数字信号处理虚拟实验仿真平台主界面考虑到需要解决数据传递问题和编写一些算

43、法,在GUIDE中很难实现,而用m文件可以生成非常复杂的界面,可以容易实现在不同窗口尺寸下给对象以合适的位置,同时文件创建的对象,可以方便的在handle中存取数据,因此本主界面的GUI是通过M脚本文件实现的8。利用M函数文件制作GUI,程序如下:h0=figure(toolbar,none,. menu,none,. color,0,1,1,. Visible,on, Resize, off,. NumberTitle,off, HandleVisibility, on, . position,198 56 800 500,. name,基于matlab的数字信号处理虚拟实验仿真平台);h1

44、=axes(parent,h0,. position,0.24 0.46 0.7 0.5,. visible,on);f=uicontrol(parent,h0,. style,frame,. position,5 2 90 455);f_23=uicontrol(parent,h0,. style,frame,. position,100 10 660 200);p1=uicontrol(parent,h0,. style,pushbutton,. position,110 160 40 40,. string,绘图,. callback,. m=str2num(get(e1,string)

45、;,. n=str2num(get(e2,string);,. a=get(l1,value);,. x=m:0.1:n;,. if a=1,. plot(x,sin(x),. end,. if a=2,. plot(x,cos(x),. end,. if a=3,. plot(x,exp(x),. end); p2=uicontrol(parent,h0,. style,pushbutton,. position,700 10 40 40,. string,关闭,. callback,close);p3=uicontrol(parent,h0,. style,pushbutton,. pos

46、ition,160 160 140 40,. string,MATLAB基本操作,. callback,jibencao);p4=uicontrol(parent,h0,. style,pushbutton,. position,320 160 140 40,. string,离散信号的时域运算,. callback,shiyanyi);p5=uicontrol(parent,h0,. style,pushbutton,. position,540 160 190 40,. string,因果离散线性系统时域分析,. callback,shiyaner);p6=uicontrol(parent

47、,h0,. style,pushbutton,. position,110 110 190 40,. string,DTFT变换的性质及应用(略),. callback,. );p7=uicontrol(parent,h0,. style,pushbutton,. position,320 110 160 40,. string,Z变换的性质及应用(略),. callback,);p8=uicontrol(parent,h0,. style,pushbutton,. position,540 110 210 40,. string,离散时间系统的频域分析(略),. callback,); p9

48、=uicontrol(parent,h0,. style,pushbutton,. position,110 60 180 40,. string,DFT变换的性质及应用,. callback,shiyansan); p10=uicontrol(parent,h0,. style,pushbutton,. position,320 60 220 40,. string,数字低通巴特沃斯滤波器的设计,. callback,shiyansi); p11=uicontrol(parent,h0,. style,pushbutton,. position,560 60 160 40,. string,

49、窗函数设计FIR滤波器,. callback,shiyanwu); p12=uicontrol(parent,h0,. style,pushbutton,. position,110 10 220 40,. string,基于FFT的图象压缩与放大(略),. callback,); l1=uicontrol(parent,h0,. style,listbox,. position,10 300 80 80,. string,sin(x)|cos(x)|exp(x),. value,1,. max,0.5,. min,0);f2=uicontrol(parent,h0,. style,text,

50、. string,选择函数,. fontsize,10,. position,10 380 80 20);r1=uicontrol(style,radio,. string,grid on,. value,0,. position,10 100 60 20,. callback,. grid on,. set(r1,value,1);,. set(r2,value,0);r2=uicontrol(style,radio,. string,grid off,. position,10 80 60 20,. value,1,. callback,. grid off,. set(r2,value,

51、1);,. set(r1,value,0);e1=uicontrol(parent,h0,. style,edit,. string,0,. position,20 210 60 20,. horizontalalignment,right);e2=uicontrol(parent,h0,. style,edit,. string,3,. position,20 150 60 20,. horizontalalignment,right);t1=uicontrol(parent,h0,. style,text,. string,X from,. fontsize,10,. position,20 230 60 20,. horizontalalignment,center);t2=uicontrol(parent,h0,. style,text,. string,To,. fontsize,10,. position,20 170 60 20,.horizontalalignment,center);这个程序运行以后就形成了图4:图4 数字信号处理虚拟实验仿真平台主界面6.1.4 基于MATLAB数字信号处理实验设计实例1)数字

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论