基于MATLAB的信号与系统实验平台设计毕业论文.doc

上传人:good****022 文档编号:116773556 上传时间:2022-07-06 格式:DOC 页数:50 大小:1.34MB
返回 下载 相关 举报
基于MATLAB的信号与系统实验平台设计毕业论文.doc_第1页
第1页 / 共50页
基于MATLAB的信号与系统实验平台设计毕业论文.doc_第2页
第2页 / 共50页
基于MATLAB的信号与系统实验平台设计毕业论文.doc_第3页
第3页 / 共50页
点击查看更多>>
资源描述
摘要 1 基于基于 Matlab 的信号系统实平台设计的信号系统实平台设计 摘摘 要要 本文概述了信号仿真系统的需求、总体结构、基本功能。重点介绍了利 用 Matlab 软件设计实现信号仿真系统的基本原理及功能,以及利用 Matlab 软件提 供的图形用户界面(Graphical User Interfaces ,GUI)设计具有人机交互、界面友 好的用户界面。本文采用 Matlab 的图形用户界面设计功能, 开发出了各个实验界 面。在该实验软件中, 集成了信号处理中的多个实验, 应用效果良好。本系统是一 种演示型软件,用可视化的仿真工具,以图形和动态仿真的方式演示部分基本信号的 传输波形和变换,使学习人员直观、感性地了解和掌握信号与系统的基本知识。 关键词关键词 信号处理,MATLAB,图形用户界面,实验软件 Based on Matlab signaling system solid platform design Student:Yang Shuilianlian Wang Haibo Teacher:Sun Xiaoqi Abstract: This article has outlined the signal simulation systems demand, the gross structure, the basic function. Introduced with emphasis realizes the signal simulation system basic principle and the function using the matlab software design, as well as the graphical user interface which provides using the matlab software (Graphical User Interfaces, GUI) designs has the man-machine interaction, the contact surface friendly user interface. This article uses Matlab the graphical user interface design function, developed each experiment contact surface. In this experiment software, integrated in signal processing many experiments, the application effect has been good. This system is one kind of demonstration software, with the visualization simulation tool, by the graph and dynamic simulations way demonstration part elementary signals transmission profile and the transformation, causes the trainees direct-viewing, perceptually to understand and to know the correspondence principle the elementary knowledge. Key words: Signal Processing,MATLAB,Graphical user interface,Experimental Software 目录 1 目目 录录 第一章 引言 1 1.1 概述 1 1.2 基于 MATLAB的信号与系统实验平台开发现状 1 1.3 研究意义 2 1.4 本文的主要工作 2 第二章 系统分析 .3 2.1 引言 3 2.2 需求分析3 2.3 可行性分析 4 2.3.1 技术可行性 4 2.3.2 经济可行性4 2.3.3 操作可行性4 2.4 系统主要目标及功能4 2.4.1 系统目标4 2.4.2 系统主要功能4 2.5 小结5 第三章 方案选取 .6 3.1 引言 6 3.2 界面工具的选取 6 3.3 模拟信号实验的软件工具选择 6 3.4 设计方案选择6 第四章 开发运行环境 7 4.1 系统开发环境和运行环境 7 4.2 开发语言和开发工具介绍7 4.2.1 Windows XP.7 4.2.2 Matlab 7.0.7 4.2.3图形用户界面(GUI)8 第五章 系统软件平台的设计 10 目录 5.1 引言 .10 5.2 系统整体框图 .10 5.3 系统设计步骤.11 5.4 系统模块.11 5.4.1 模块划分简介.11 5.4.2 模块具体设计.11 5.5 生成可执行文件.26 5.6 小结.26 第六章 系统测试 27 6.1 引言 .27 6.2 测试背景.27 6.3 测试概要.27 6.3.1 测试结果.27 6.3.2 测试分析.34 6.4 小结.34 第七章 结论 35 致 谢 .37 参考文献 38 附录:主要代码 .39 第一章 引言 1 第一章 引言 1.1 概述 随着计算机的普及应用以及科技的发达,现代社会是信息的社会,对信息的研 究变得非常重要,而对信号波形的模拟可以方便研究人员研究。以前的信号模拟是 用硬件,对仪器和实验室的要求较高,不便于广泛应用,而且信号处理具有内容繁 多、概念抽象、设计复杂等特点,学生在学习时常常会感到枯燥,难以理解和掌握。 硬件模拟信号波形对设备要求较高,有时候受仪器或操作不对等因素的影响将无法 正确直观的看到波形,参数改变时不能立即看到波形变化。而用软件的形式对信号 波形进行仿真有着界面可视性强,操作简单方便;便于数据修改,文件保存,实验 效率高,实验内容丰富,结果直观易懂,便于分析;而且系统容易扩展新的实验项 目。所以仿真很有必要而且急为迫切。因而选择此课题作为我们的毕业设计。 1.2 基于 Matlab 的信号与系统实验平台开发现状 Matlab在全世界内都很是流行,特别是在工程计算领域。近年来越来越多的国 人也喜爱上了这一套软件。Matlab的toolbox中也含有概率统计方面的库函数。概率 方面的库函数主要有各种常见分布的分布函数、概率密度、分布率以及生成服从各 种分布随机数的函数统计方面的库函数含盖了简单随机样本下常见的参数估计 (点估计、区间估计) ,假设检验等等。 林月美, 陈仁安研究了基于Matlab 软件的信号与系统实验平台, 弥补了教学 中的不足. 通过实验, 加强学生对信号与系统课程的理解和掌握7。李世银,辛晓 丽,罗驱波,岳 婷基于MATLAB Web Server的远程仿真系统具有交互性强和使用简 单方便等优点。介绍了Matlab Web Server的基本原理及系统配置方法,并结合通信 原理远程仿真程序的开发实例,重点讨论了仿真系统的三个基本组成部分:M文档, HTML输入文档和HTML输出文档开发的关键步骤和代码,最后,给出了AM调制的仿 真结果21。初秀琴,何蕾,李玉山认为Matlab是一种高性能的用于工程计算的编程软 件,它具有强大的数学计算、算法推导、建模仿真、图形绘制等功能,但是这些功能 只能在Matlab本身所提供的平台上使用,且具有代码执行速度慢的缺点。文中提出 了实现Matlab与其它编程语言之间接口的方案,并且对与VC之间的接口进行了验证,解 决了Matlab函数只能在其本身所提供的平台上使用的问题,使得代码的执行速度和 石河子大学学士学位论文 2 安全保密性都大大提高。周传胜等基于Matlab的Simulink工具箱、webserver工具 箱、虚拟现实工具箱和虚拟现实语言(VRML)构建了网络交互式虚拟现实实验系统, 系统由一个服务器和若干个客户机组成。学生在客户机上通过互联网可浏览服务器 上的虚拟演示实验,并可根据需要在客户端实时地修改实验参数,这些参数通过网络 传到服务器后,服务器会将更新的虚拟的实验现象和实验结果传到客户机,从而完成 交互式虚拟现实实验过程20。 1.3 研究意义 Matlab 作为编程语言和可视化工具 , 用 Matlab 开发的实验为学生提供了“信 号分析”、“信号抽样”、“系统仿真”、“系统特性”、“滤波器设计”及“傅 立叶变换”等实验模块 。 它的界面演示框如同通用示波器 , 显示了信号分析与 系统设计的动态仿真过程 , 给人以直观的感受1。在教学中它能为同学们提供了 大量的实例, 同时它也为同学们留下了动在实验中同学们可以改变信号、模块、仿 真子系统等的参数 , 并观察信号与系统的相应变化. 在实验过程中 , 同学们对所 学的书本知识会有感性的认识和直观的验证 , 加深对“信号与系统”原理的理解。 本课题能避开硬件系统的不足,巧妙的运用软件来仿真硬件才能实现的实验结 果,大大降低了实验设备要求,节约了人力和财力,而且有很多的库函数可以在实 验时直接调用,避免了用硬件做实验的局限性。可以更方便的做信号系统实验,为 教学和研究提供了方便。还能够锻炼一个人在面对一个具体的项目时,遇到问题, 分析问题,解决问题的能力;获得独立策划、实施课题,并按照既定计划进行开发 的经验,以及查找相关文献的能力。通过自己的努力使得对于 Matlab 有一个全面 的、深刻的认识,并且对 Matlab 做界面的软件有了一定的了解,对系统规划有了初 步的认识。为以后研发工作打下坚实的基础,积累宝贵的经验。 1.4 本文的主要工作 本文主要是针对以 Matlab 为软件平台的信号系统实验平台的设计,用 Matlab 语言编程开发一个适合小型的信号系统实验平台,方便学生学习。具体的工作主要 有: 1)通信模拟仿真系统的设计分析。 2)通信模拟仿真系统的总体框架。 3)通信模拟仿真系统的设计与实现。 4)系统测试与分析。 5)编写文档。 第二章 系统分析 3 第二章第二章 系统分析系统分析 2.1 引言 现代社会,通信与传感、仿真计算技术紧密结合,信息成为社会的高级“神经 中枢” ,随着我国科学技术的发展和国内外合作的加强,对通信水平的要求也日益 增加,如果通信水平跟不上,社会成员之间的合作程度就受到限制,生产力的发展 也必然受到限制,可见通信在现代生活中扮演的角色越来越重要,本课题以此为出 发点,采用 Matlab 语言为工作环境,Matlab 语言称为第四代编程语言,程序简洁、 可读性很强而且调试十分容易,自 1984 年由美国 MathWorks 公司推向市场以来, 历经十几年的发展,现已成为国际公认的优秀科技应用软件,是数字信号处理方面 得天独厚优势图形开发工具.本软件设计目标是以配合教学为出发点,主要是面对 通信工程专业的初学者,用简单,可视化的仿真模拟图形给大家演示部分基本波的 传输特性,以及在信道中的传输特性。使他们直观,感性地了解和掌握通信系统的 概念、传输性能等3。 为了规范和条理的进行本系统的设计以及使后续的开发维护工作变得有趣而轻 松,故编写本系统需求分析说明书;旨在开发过程中进行参考,使系统在需求的规 范之内,避免重复劳动,加快开发进度以及提高开发效率;同时也是为以后系统维 护服务提供指南;由于时间仓促,错误之处在所难免,请见谅。 2.2 需求分析 通信在现今生活中已是普遍存在,在经济发展,政治军事活动,个人生活中的 应运以是相当普遍,是社会发展不可缺少的工具,自 1844 年莫而斯在华盛顿和巴 尔的摩之间发送世界第一份电报以来,通信已经经历了 150 多年,发展到目前数字 通信趋于替代模拟通信的趋势。 信号与系统课程,是高等理工科类院校通信与 电子信息工程等专业中一门十分重要的基础理论课,也是电子信息工程专业许多后 续课程的重要理论基础。以前的信号模拟是通过硬件,对仪器和实验室的要求较高, 不便于广泛应用,而且信号处理具有内容繁多、概念抽象、设计复杂等特点, 学生 在学习时常常会感到枯燥, 难以理解和掌握。 基于此种需求,本系统设计为教学演示型软件,运用 Matlab 软件开发,便于 学生直观观察信号系统中涉及的波形及特性的原理图, 为后续课程的学习,以及独 石河子大学学士学位论文 4 立分析和设计新的系统,打下基础。 2.3 可行性分析 2.3.1 技术可行性 本课题所涉及的研究目标,在国内外已经有相当成熟的理论基础和技术基础。 通过开发人员的文献调查,对于 Matlab 做用户图象界面和信号模拟所涉及到的技 术问题进行细致的分析,很大一部分可以使用电子信息工程的专业知识进行构建, 其他的部分则可以通过自学,调用已经开发好的一些功能模块来完成课题涉及到的 技术要求。 2.3.2 经济可行性 本课题通过对既有开发平台的使用,能够设计出比较完善的信号系统实验平台, 没有任何经济上的负担,本课题可以自主开发信号系统实验平台,为实验提供了灵 活性,摆脱了硬件可以看到实验结果,而且又可脱离 Matlab 来进行仿真.为教学和研 究提供了方便,在经济上节约了实验开支,锻炼了学生的自我研发意识和自己动手的 能力。 2.3.3 操作可行性 Matlab 程序流程简单明了,开发率高,并且能够结合其他多种开发工具,共同 实现信号模拟功能。它易学易用,不需大量编程,能创作出一些高水平的模拟平台 作品,对于非专业的开发人员和专业开发人员都是一个好的选择。从可操作性的角 度来讲,完全可行。 2.42.4 系统主要目标及功能系统主要目标及功能 2.4.1 系统目标 本课题开发目标是利用 Matlab 软件开发一套集可视化图形与动态仿真为一体 的教学演示型软件,主要是面对初学者,用可视化的仿真模拟图形配合老师的讲课 内容给大家演示信号与系统课程中部分信号的传输波形、卷积、傅立叶变换以 及滤波器设计等,帮助他们直观、感性地了解和掌握信号系统的概念、基本特征等, 深化对通信概念的理解。 2.4.2 系统主要功能 本系统主要功能包括基本序列计算、基本信号产生、卷积、傅立叶变换、滤波 第二章 系统分析 5 器设计。简单基础地涵盖了信号与系统部分主要章节, 用可视化的仿真模拟图 形为大家演示部分基本信号的传输波形和调制变换,部分交互式界面可直接输入合 适的值使大家更直观、感性地了解和掌握信号系统的概念、传输性能、基本特征等,为 课程的学习打下基础。界面上的文字说明帮助大家了解本图形的特性或功能。整套 系统采取图文并茂、循序渐进、从感性到理性的方式,首先让初学者在掌握基本信 号模拟和运算。 2.52.5 小结小结 一个系统在开发之前就需要进行需求分析和可行性分析,本章重点阐述本设计 的需求分析、可行性分析和目的,对这个系统的需求有了一个比较有力的证明。 石河子大学学士学位论文 6 第三章第三章 方案选取方案选取 3.13.1 引言引言 本设计研究的信号系统实验平台是一个可执行的系统,可以脱离它的开发软件 Matlab 而独立运行。本系统的关键是实现参数的传递和生成可执行文件,这对刚接 触 Matlab 的我们来是说比较困难,老师为我们提出了一些参考方案来完成设计, 本章将在根据我们实力的基础上,给出本课题最适合选用的一种方案。 3.23.2 界面工具的选取界面工具的选取 由于我们的课题是基于 Matlab 的信号系统平台,所以在选择做界面的工具的 时候也选择 Matlab。如果用 VB 做界面的话在后面实现信号波形的时候需要建立 VB 和 Matlab 的链接,那样会增加工作量和工作难度,而且我们对他们的链接也是 知之甚少,实际链接的时候会很麻烦,所以在权衡了各方面的因素我们选择用 Matlab 做界面。 3.33.3 模拟信号实验的软件工具选择模拟信号实验的软件工具选择 我们在学习信号与系统和数字信号处理课程时,做实验的时候用的是 Matlab 软件来实现信号波形的模拟以及处理,可以比较直观准确的看到波形,对 Matlab 软件也有了初步的认识,也可以用它编写一些比较简单的程序来。在信号波 形模拟的领域中,我们只接触过 Matlab 软件,所以在编写模拟信号波形这个模块 中我们选择 Matlab 软件。Matlab 是 Math 和 Works 公司推出的一个为工程计算和 数据分析而专门设计的高级交互式软件包,利用它能容易地解决在系统仿真领域教 学与研究中遇到的问题。 3.43.4 设计方案选择设计方案选择 在本系统的设计中, 界面布局设计采用自顶向下的设计方法, 即先设计引导界 面和主界面, 再设计各个实验子界面。界面设计完成后, 只是一些静态的画面而已, 没有什么内涵, 还不能用于实验操作, 要想达到实验目的, 必须借助于函数调用。 在设计中, 各个回调函数的编写顺序则是采用自底向上的设计方法, 即先编制各个 实验子界面的回调函数, 再编写主界面和引导界面的回调函数。 第四章 开发运行环境 7 第四章第四章开发运行环境开发运行环境 4.14.1 系统开发环境和运行环境系统开发环境和运行环境 1) 硬件环境 能运行普通大型应用程序的计算机一台(要求能接入网络) ; 2)软件环境 操作系统:Windows XP 开发工具:Matlab7.0 Matlab Gui 4.24.2 开发语言和开发工具介绍开发语言和开发工具介绍 4.2.1 Windows XP Windows XP,或视窗 XP 是微软公司最新发布的一款视窗操作系统。它发行 于 2001 年 10 月 25 日,原来的名称是 Whistler。微软最初发行了两个版本,家庭版 (Home)和专业版(Professional)。家庭版的消费对象是家庭用户,专业版则在家庭 版的基础上添加了新的为面向商业的设计的网络认证、双处理器等特性。且家庭版 只支持 1 个处理器,专业版则支持 2 个。字母 XP 表示英文单词的“体验” (experience)。Windows XP 是基于 Windows 2000 代码的产品,同时拥有一个新 的用户图形界面(叫做月神 Luna),它包括了一些细微的修改,其中一些看起来是从 Linux 的桌面环境(desktop environmen)诸如 KDE 中获得的灵感。带有用户图形的 登陆界面就是一个例子。此外,Windows XP 还引入了一个“基于人物”的用户界 面,使得工具条可以访问任务的具体细节。 它包括了简化了的 Windows 2000 的用户安全特性,并整合了防火墙,以用来 确保长期以来以着困扰微软的安全问题。 4.2.2 Matlab 7.0 Matlab(MATrix LABoratory)语言是美国的 Cleve Moler 博士构思并开发集命令 翻译、科学计算于一身的一套交互式软件系统,是目前国际工程控制界应用最广、 最流行的一种控制系统计算机辅助设计的软件工具,它集成了计算功能,符号运算, 石河子大学学士学位论文 8 数据可视化等功能,具有功能强大、界面友好、配套工具箱完善等特点,其 SIMULINK 仿真环境及 S 函数的应用为我们提供了有效实用的设计方法,该软件先 前的版本与 Visual C+和 Visual Basic 等可视化编程软件相比功能较差,但是新版 的 MATLAB 7.0 软件已经在这方面向这些软件靠近,其可视化编程能力有了很大程 度的提高.该软件最突出的特点就是简洁的,开放式代码。提供了更为直观,符合人 们思维习惯的代码,现简单介绍该软件的主要特点。 1) 语言简单,代码灵活,极其丰富的库函数资源。在程序设计中该软件对代 码的书写形式没有很严格的限制,同时利用丰富的库函数简化了子程序的编写任务, 利用极其丰富的库函数可以使程序开发避免繁杂的子程序编程任务避免了一些不必 要的错误,提高了程序的可靠性。 2) 丰富灵活的运算符。Matlab 提供了和 C 语言一样多的运算符,使用这些运 算符可使程序短小、灵活。 3) 面向对象编程和结构化控制功能。尤其是新版的 MATLAB7.0 软件在可视 化方面较以前版本有了很大程度的提高,使得界面编程更加自由,方便。 4) 程序设计自由度大。在新版的 MATLAB7.0 软件中,用户无须对矩阵进行 预定义就可以使用,对数组和变量的应用也得到很大程度的扩展。 5) 程序可移植性好,基本上可以不作修改就可以在各种型号的计算机和操作 系统上运用。 6) 分门别类的工具箱是该软件的又一大特点。核心工具箱和学科类的工具箱。 这些工具箱都是该学科的高水平的专业人士所编,所以用户可以直接使用。提高了 编程效率。 7) 开放的共享源代码。开放性的代码是该软件最受欢迎的另一大特点。所有 的核心文件和工具箱文件都是可读可该的源代码。所以 matlab 语言被称为第四代 编程语言3。 4.2.3图形用户界面(GUI) 图形用户界面(GUI)是用户与计算机程序之间的交互方式,是用户与计算机 进行信息交流的方式。计算机在屏幕显示图形和文本,若有扬声器还可产生声音。 用户通过输入设备,如:键盘、鼠标、跟踪球、绘制板或麦克风,与计算机通讯。 用户界面设定了如何观看和如何感知计算机、操作系统或应用程序。通常,多是根 据悦目的结构和用户界面功能的有效性来选择计算机或程序。图形用户界面或 GUI 是包含图形对象,如:窗口、图标、菜单和文本的用户界面。以某种方式选择或激 活这些对象,通常引起动作或发生变化。最常见的激活方法是用鼠标或其它点击设 备去控制屏幕上的鼠标指针的运动。按下鼠标按钮,标志着对象的选择或其它动作。 第四章 开发运行环境 9 Matlab 在 demo 命令中包含了 GUI 功能的极好例子。Matlab 为表现其基本功 能而设计的演示程序 demo 是使用图形界面的最好范例。Matlab 的用户,在指令 窗中运行 demo 打开那图形界面后,只要用鼠标进行选择和点击,就可浏览那丰富 多彩的内容。如: demo 研究该命令,以了解 uimenu 和 uicontrol 如何给 MATLAB 函数提供交互输入。 在运行了 demo 例子后,很可能会问“为什么要在 MATLAB 中建立一个 GUI?”这是一个很好的问题,简单的回答是可能并不需要使用 MATLAB 来分析 数据,求解问题,绘制结果的绝大多数的人,并不会发现 GUI 工具很有用。但另 一方面,GUI 可以在 MATLAB 中生成非常有效的工具和应用程序,或是建立演示工 作的交互式界面。 对“句柄图形”的理解是设计和实现 GUI 的先决条件。 由图形命令生成的每一事物是一个图形对象。图形对象不仅包括 uimenu 和 uicontrol 对象,而且还包括图形、坐标轴和他们的子对象。让我们从另一个角度来 看这一层次结构。计算机的屏幕本身是根结点,图形是根对象的子对象,坐标轴, uimenu ,uicontrol 是图形的子对象。根可以包括多个图形,每个图形含有一组或 多组坐标轴以及其子对象,每个图形也可以有一个或多个与坐标轴无关的 uimenu 和 uicontrol。虽然 uicontrol 对象无子对象结点,但他们确实具有多种类型。 uimenu 对象常将其它的 uimenu 对象作为其子对象。 石河子大学学士学位论文 10 第五章第五章 系统软件平台的设计系统软件平台的设计 5.15.1 引言引言 信号系统实验繁多、复杂,许多实验还需要输入参数,若将系统设计成一个界 面,使得系统繁重、拥挤,不能够实现友好、美化的界面的设计要求。因此,在设 计界面的时候,采用一个主界面和若干子界面,每个子界面是一个模块,实现一个 实验或功能,并通过主界面调用子界面的设计方法。 5.25.2 系统整体框图系统整体框图 本实验系统整体结构设计由两部分组成: 界面模块设计和菜单模块设计。其中, 界面模块总共包括八个模块: 开始引导模块、主模块、序列基本计算模块、基本信 号的产生模块、卷积模块、傅里叶变换模块、滤波器设计模块和说明模块。一个实 验界面模块下面又有下一级实验界面模块, 如滤波器设计模块下面还有 FIR 滤波 器设计模块和 IIR 滤波器设计模块, 其中 FIR 滤波器模块又包含 FIR 滤波器线性 的判断实验界面、窗函数的频率响应实验界面和 FIR 滤波器的设计实验界面; IIR 滤波器模块又包含完全 IIR 滤波器的设计实验界面和典型 IIR 滤波器实验界面; 主界面中还包含了说明模块。在菜单设计时, 在实验子界面中除使用系统约定的菜 单条外, 还增加了几个控制背景和退出实验的菜单。系统的整体结构如图 5-1 所示。 图 5-1 系统的整体结构 开始引导界面 开始界面 序列基本计 算 基本信号产 生 卷积 卷积 傅立叶变换 滤波器设 计 系统说明 第五章 系统软件平台的设计 11 5.35.3 系统设计步骤系统设计步骤 设计的具体步骤如下: 1)运用 Matlab 的图形用户界面(GUI)设计方法, 设计整个实验系统的开始引 导界面、实验主界面及其实现信号处理课程中具体实验的各个子界面。 2)运用 Matlab 的图形用户界面(GUI)设计方法, 设计系统的说明界面及其各 个实验的说明界面。 3)分别编写各个子界面的各个控件对象的回调函数, 来实现控件相应控制功 能, 达到直接通过界面上各个控件就可以控制数据的输入输出, 并可以方便地对实 验结果的数据及其图形进行读取和分析的目的。 4)编写主界面的回调函数, 将各个实验子界面整合在信号处理系统实验主界 面中, 即通过主界面就可以进入任何一个实验子界面进行实验。 5)编写开始引导界面的回调函数, 实现从引导界面直接进入主界面。 5.5.4 4 系统模块系统模块 5.4.1 模块划分简介 本系统根据要实现的实验类别、个数的要求来规划模块,在设计的时候本着界 面美观、简洁的原则。各个模块可以相互切换,每个实验时可以完成参数的传递, 5.4.2 模块具体设计 1)系统欢迎模块。可视调用的方法有 pushbuttondownfcn closerequestfcn createfcn delectfcn keypressfcn resizefcn,在 label 选框中为其命名,调用某一个 m 函数, functionUntitledcallball 中写入函数名。 主窗体对象的层次图如图 5-2。 根对象 (计算机屏幕) 图形框架窗口对象 Uimenu对象Uicontrol对象坐标系对象 影象对象线条对象贴片对象文本对象曲面对象 图形框架窗口对象 坐标系对象 图 5-2 主窗体对象的层次图 系统欢迎界面如图 5-3 所示。 石河子大学学士学位论文 12 图 5-3 系统主界面 图 5-3 中可以看出这个系统的主要模块,简洁明了,对每个模块都有详细的说 明,在做实验之前可以参考说明以便能顺利的进行实验,在主界面上选择任何一个 实验都可以切换到它的子界面。 2)序列基本计算模块 A序列基本计算模块界面如图 5-4 所示。 图 5-4 序列基本计算模块界面 由图 5-4 可以看出在这个模块里包括了单位脉冲序列、单位阶跃序列、指数序列一 共三个序列,并且还给出了序列卷积这个运算。下面来主要介绍这单位阶跃序列和 指数序列及其设计方法。 a单位阶跃序列 单位阶跃序列的公式 (5-1) )0(0 )0(1 n n nu 第五章 系统软件平台的设计 13 类似于连续时间系统中的单位阶跃信号,但应注意在点发生跳变,往tutu0t 往不予定义(或定义为) ,而在=0 点明确规定为。在该子界面的单 2 1 tun 10 u 位阶跃序列那栏里输入位移量 3 如图 5-5 所示。 图 5-5 单位阶跃变量输入框 然后点击“单位阶跃序列”按钮,即出现如图 5-6 所示的波形。 图 5-6 位移量为 3 的单位阶跃序列 单位阶跃序列关键程序: function pushbutton2_Callback(hObject, eventdata, handles) t=str2num(get(handles.edit2,String); k=t-3:t+7; fk=(k-t)=0; stem(k,fk) title(单位阶跃序列) b指数序列 指数序列是公式是 (5-2) nuanx n 当1 时序列是发散的, 0 序列都取正值, 0,信号将随着时间而增长,若 a/extern/lib/win32/mglinstallar.exel 拷贝到到待运行机器上 第五章 系统软件平台的设计 27 4)在机器上先运行 mglinstallar.exe, 然后选择解压目录,将在指定目录下解压缩出 bin 和 toolbox 两子目录,其中在 binwin32 目录下就是数学库和图形库脱离 MATLAB 运行所需的所有动态连接库,共有 37 个。可以将这些.dll 考入 system32, 也可以直接放在应用程序目录下。而 toolbox 目录则必须与应用程序同一目录。 5)大功告成。 5.6 小结 本章讨论了软件平台的整体设计,给出了系统整体框图和各模块的界面和设计 方法,详细介绍了各个模块产生波形的原理,并分析了最后生成可执行文件的方法。 第六章第六章 系统测试 6.1 引言 经过为期六周的紧张工作,我们终于按照用户要求完成了一系列的程序设计, 为了更好的对本软件的正确性做出客观公正的评价,为了更进一步的对本软件进行 验证,为了能给用户一个满意的软件,让用户更好的使用本软件,也为了发现软件 本身隐蔽的一系列问题从而提高用户的工作效率。为此本测试组对此软件做了详细 的测试。本报告最终的用户是此软件的开发者以及此软件的最终维护者,为软件以 后升级和修改提供参考。特此对以下模块进行了测试:基本序列计算模块,基本信 号产生模块,卷积仿真模块, 信号的傅立叶分析模块,通过多次测试作以下说明。 注:本测试报告在系统经过较为严格测试的基础上编写。 6.2 测试背景 被测试软件的名称为:信号与系统实验平台。 石河子大学信息科学与技术学院信号与系统实验平台已经调试成功,在未正式 运行之前,完全有必要进行全面的测试,以检验软件的可靠性,正确性,及稳定性。 这也是开发项目的最基本规范。软件的测试具有真实性,所以本系统测试有较强的 说服力。 石河子大学学士学位论文 28 6.3 测试概要 6.3.1 测试结果 1)测试界面链接 测试本系统最主要的就是看能否正确实现信号的模拟并且动态的反映参数改变 时波形的变化。双击已经生成的可执行文件后出现主界面如图 6-1,可以看到此系 统的主要模块,在主界面里可以链接到其他子界面。如在主界面内点击按钮“傅立 叶变换”则弹出它的子界面如图 6-2。 图 6-1 系统主界面 图 6-2 傅立叶变换子界面 主界面和各子界面的链接可以实现,并且各个模块可以很容易的切换,这部分 符合要求。 第六章 系统测试 29 2)测试波形。下面具体测试各个模块的波形 A基本序列计算模块。在本模块中,我们选择指数序列为例。 测试一:能否正确显示波形。 在第五章我们已经介绍过了指数序列的公式,根据公式我们可以轻松的得到它 的波形。在本系统的主界面里点击“序列基本计算”按钮,出现序列基本计算模块 的子界面,在指数序列那栏内输入底数 3,出现如图 6-3 波形: 图 6-3 底数为 3 时的指数序列 根据公式可以知道改波形显示正确。 nuanx n 测试二:参数改变时看波形能否正确的相应变化。 在本系统的主界面里点击“序列基本计算”按钮,出现序列基本计算模块的子 界面,在指数序列那栏内输入底数 6,出现如图 6-4 所示波形: 图 6-4 底数为 6 时的指数序列 根据图 6-3 和 6-4 可知波形出现变化,根据公式 n=10 时,由可得 nuanx n ,图示波形正确无误。 10610 10u x 石河子大学学士学位论文 30 B基本信号产生模块。由于此系统中做的基本信号类型比较多,在这里我们选择 正弦信号为例。 测试一:能否正确显示波形。 正弦信号,一般写做 (6-1)tKtfsin 式中 K 为振幅,是角频率,为初相位。 正弦信号是周期信号,其周期 T 与角频率和频率满足下列关系式 (6-2) f T 12 在初中我们就开始接触正弦信号了,可以根据函数来轻易画出波形。在式(6-1) 中如果我们取=1, =1,=0 的时候式(6-1)就可以写成K (6-3)ttfsin 这是最简单的正弦函数,它的波形应该如图 6-5 所示。 图 6-5 的波形ttfsin 在本系统的基本信号产生模块中,正弦信号的输入参数如图 6-6 所示,在 A,W,P 各自的编辑框内输入值会即可出现相应的波形,其中 A,W,P 分别为式(6-1)中 的 K,在编辑框按图 6-5 内输入 1,1,0 即和式(6-3)是一个函数。 图 6-6 正弦信号变量输入框 第六章 系统测试 31 图 6-7 正弦信号变量输入 1,1,1 输入参数后点击“正弦信号”按钮即可看见波形如图 6-8 所示: 图 6-8 的波形0*1sin*1ttf 可以看出图 6-5 和图 6-8 所描绘的波形是同一个函数,即波形准确。 测试二:参数改变时看波形能否正确的相应变化。 在图 6-6 所示的编辑框 A,W,P 内分别输入 2,2,2,即如图 6-9 所示,此时 的正弦函数是 (6-4)22sin2ttf 然后点击“正弦信号”按钮,出现波形如图 6-10 所示。 图 6-9 石河子大学学士学位论文 32 图 6-10 的波形22sin2ttf 可以轻易的看出图 6-8 和图 6-10 的区别,后者的频率和振幅均变大了 2 倍,且向左 移了两个单元。则波形可以正确的根据参数的变化而变化。 C卷积模块 卷积方法的原理就是将信号分解为冲激信号之和,借助系统的冲激响应,th 求解系统对任意激励信号的零响应。在设计的时候我们限定了两个函数,改变参数 的时候只能改变卷积幅度。 测试一:能否正确显示波形。 在卷积子界面内输入卷积幅度 3,出现如图 6-11 所示波形: 图 6-11 卷积幅度为 3 时的 f1(t)*f2(t) 在界面里可知函数 1 和函数 2 的表达式,利用卷积定义 可知结果正确。 dtfftf 21 第六章 系统测试 33 测试二:参数改变时看波形能否正确的相应变化。 在卷积子界面中把卷积幅度修改为 6,即出现如图 6-12 的波形:: 图 6-12 卷积幅度为 6 时的 f1(t)*f2(t) 比较图 6-11 和 6-12 可知幅度增加了一倍,可以实现此功能。 D傅立叶变换分析模块 本系统设计了方波傅立叶变换、快速傅立叶变换和离散傅立叶变换三个实验。在这 个模块里我们以快速傅立叶变换为例来测试。 测试一:能否正确显示波形。 在本系统的主界面里点击“傅立叶变换”按钮,出现傅立叶变换模块的子界面, 在离散傅立叶变换那栏内输入周期延拓数-0.9,出现以下波形: 图 6-13 底数为-0.9 时的离散傅立叶变换 测试结果正确。 测试二:参数改变时看波形能否正确的相应变化。 在周期延拓数后的编辑框内把-0.9 修改为-0.6,出现如下波形: 石河子大学学士学位论文 34 图 6-14 底数为-0.6 时的离散傅立叶变换 在图 6-13 和图 6-14 里比较,结果正确。 6.3.2 测试分析 1) 序列基本计算模块的测试:可以基本完成要求的功能。 2) 基本信号产生模块的测试: 能够实现的波形较丰富,可以实现参数的传递,能清楚、直观的看见波形随这 参数的改变而呈现相应的变化,从整体来说,满足实验要求,可以基本完成要求的 功能。 3) 卷积模块的测试: 可以实验一些基本函数的卷积,可以方便的看到实验结果,方便分析波形变化。 可以基本完成要求的功能。 5) 傅立叶变换模块的测试: 可以完成一些简单函数的快速傅立叶变换、离散傅立叶变换、连续傅立叶变换, 呈现出它们的傅立叶变换波形。可以基本完成要求的功能。 6.4 小结 我们完成的功能是仿真, 对信号波形的动态仿真、基本序列计算、基本信号的 产生过程、傅立叶变换分析、信号卷积等。基本序列的人机交互,基本信号产生模 块的人机交互,卷积分析的人机交互,滤波器设计模块的人机交互,信号的傅立叶 变换模块的人机交互。当输入数据之后,结果会以可视化的方式显示出来。其他的 就是一些静态的演示图,通过编程显示出来,主要实现的内容包括基本信号的波形 产生例如正弦波形,三角波形,脉冲波形。各种滤波器的设计低通滤波器、高通滤 波器和巴特沃斯滤波器。通过测试,本软件具有良好的系统稳定性。经过大量数据 第六章 系统测试 35 测试,我们发现了一些问题,并及时地对其作了修改,我们边测试边调试。目前系 统能够完全按要求正常运行,通过测试也使我们明白了:编写一个功能完善的软件 是需要经过多次的测试调试才能够正常运行的。程序编写的完成只是整个开发过程 中的小部分,我们所进行的单元测试和集成测试是软件的开发过程中较为繁重的一 个环节。在测试过程中出现的某些故障都是出乎意料的,有些问题的解决也许并不 困难,但要周密的考虑过程。 第七章第七章 结论 在孙小齐老师的指导下,本次毕业设计,就要画上一个句号了。通过对信号与 系统实验平台这个课题的开发,我们在开发能力上有了实质性地提高。 鉴于本文开发的信号与系统实验平台为个人计算机,其性能有限,故暂不能做 大规模的精确系统测试。虽然信号与系统实验平台已经顺利完工并能够正常运行, 但想要成为一个能够在大范围内广泛应用的实验平台,本系统还需要投入更多的人 力和物力,引入更多的技术才能进一步完善,使得系统更加健壮。 Matlab 实验平台发展到现在,虽然时间不长,然现如今已经发展成为信息产业 中一个大的研究热点。更是由于次实验系统的复杂性和所具有的挑战性,才使得有 更多的 Matlab 爱好者投身其中,为基于 Matlab 的信号与系统实验平台的发展贡献 力量。 希望通过本文,给喜欢 Matlab 的爱好者提供一些可以借鉴的材料,以此共勉! 1)团队开发的认识。 要在最短的时间内做出最成功的软件,仅靠个人的能力是不够的。软件英雄时 代已经结束。Matlab 软件有这很好的图象处理功能,。其特点是开发效率高,和其 他工具软件配合较好。我们此次的毕业设计就是在 Matlab 环境中开发的。如果所 实现的波形较多则可显示出非常高的效率和使用价值。 2)编程和系统规划的认识。 熟练使用开发工具不等于编程,或许掌握一种开发工具并不容易。使用开发工 具并不能提高编程水平。我们的程序是利用 Matlab 的用户图象功能来编写界面, 并且规划了这个系统的各个板块,各个板块互相独立,条理清晰,能方便快捷的在 各个板块中切换。这次毕业设计是我们第一次尝试这做一个系统,一个比较完整和 石河子大学学士学位论文 36 优秀的系统是有很好的规划的。虽然是第一次尝试,可也大概实现了一个具备的条 理和功能。 在编程的时候我们遇到一些麻烦,因为对 Matlab 软件本来就很陌生,且并不 是任何工具都可以写出高效的代码。当然这是我们的弱项,我们或许无权去评判。 3)不足和提高。 毕业设计期间,我们对自己有了更加理性的了解,我们的软件工程的思想是有 限的,软件需求的能力也是有限的,编程能力和系统规划能力有待提高。尽管这样, 我们还是尽量运用了软件工程的思想。我们的编程能力在开发当中得到了很大提高, 可以写出高效紧凑的代码,当然这是我们每个人都可以做到的。 4)设计心得 大学毕业设计是我们所必须面对的。过几周的奋战我的毕业设计终于完成了。 在没有做毕业设计以前觉得毕业设计只是对这几年来所学知识的单纯总结,但是通 过这次做毕业设计发现自己的看法有点太片面。毕业设计不仅是对前面所学知识的 一种检验,而且也是对自己能力的一种提高。通过这次毕业设计使我明白了自己原 来知识还比较欠缺。自己要学习的东西还太多,以前老是觉得自己什么东西都会, 什么东西都懂,有点眼高手低。通过这次毕业设计,我才明白学习是一个长期积累 的过程,在以后的工作、生活中都应该不断的学习,努力提高自己知识和综合素质。 毕业设计过程中所学到的东西是这次毕业设计的最大收获和财富,使我终身受益。 第七章 结论 37 致 谢 本论文是在我们导师孙小齐的悉心指导下完成。都给我们留下了很深的印象。 在整个作课题的过程中,孙老师不时给予我们热情的鼓励和实验设施上的大力支持, 这是我们的课题顺利完成的保障。 首先,我要向我的导师孙小齐老师,表示最衷心的感谢。从本论文一开始设计, 到系统的最初规划,程序编写以及最后的论文撰写过程中都给于了我许多得建议和 指正。 另外,还要感谢这四年来所有老师对我的辛苦培育。还有这四年来所有关心我 的人。 参考文献 38 参考文献 1 苏中义.MATLAB简介J.上海电机技术高等专科学院学报,2003,4:78. 2 杨建强,罗先香.MATLAB软件工具箱简介J水科学进展,2001,12(2):237242. 3 刘瑞桢.MATLAB简介J电脑编程技巧与维护,1997,7(1):4851. 4 杨世文,许小健.MATLAB 优化工具箱在结构优化设计中的应用J科学技术与工程, 2008,8(5):13471349. 5 刘勤让,罗小武.基于MATLAB的信号处理仿真J. 信息工程大学学报,2000,1(1):3840. 6 高飞,汪浩.基于MATLAB的“信号与系统”仿真实验及其性能分析J南民族学院学报 (自然科学版),2001,10(2):266269. 7 林月美, 陈仁安,基于MATLAB 的信号与系统软件实验平台J集美大学学报, 2001,6(3): 51254. 8 夏平基于matlab的信号与系统、数字信号处理实验体系J.教学实验,2004,26(5): 7376. 致谢 39 9 李蕴华基于Matlab的信号与系统频域分析J.武汉科技学院学报,2006,19(5): 2124. 10 任亚莉MATLAB 在信号与系统仿真实验中的应用J.编程园地,2006,16(2):3436. 11 许艳惠基于MA丁LAB的信号系统仿真及应用J. 仪器仪表用户,2006:9697. 12 吕锋,刘泉,江雪梅基于MATLAB 的信号与系统软件实验平台J. 理工高教研究, 2006 ,4 (25):9899. 13 罗朝明,李文,李延平,刘杰基于Matlab 和VB 的信号与系统虚拟实验系统J. 湖南理工学院学报(自然科学版),2007,20(1):5962. 14 马蕾,任全会基于MATLAB 的信号与系统频域方面仿真教学J. SCIENCE gui_State = struct(gui_Name, mfilename, . gui_Singleton, gui_Singleton, . gui_OpeningFcn, xljbjs_OpeningFcn, . gui_OutputFcn, xljbjs_OutputFcn, . gui_LayoutFcn, , . gui_Callback, ); if nargin end if nargout varargout1:nargout = 附录 40 gui_mainfcn(gui_State, varargin:); else gui_mainfcn(gui_State, varargin:); end function xljbjs_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject; guidata(hObject, handles); function varargout = xljbjs_OutputFcn(hObject, eventdata, handles) varargout1 = handles.output; function pushbutton1_Callback(hObject, eventdata, handles) t=str2num(get(handles.edit1,String); k=t-5:t+5; fk=(k-t)=0; stem(k,fk) title() function pushbutton2_Callback(hObject, eventdata, handles) t=str2num(get(handles.edit2,String) 2基本信号产生 function varargout = jbxhcs(varargin) gui_Singleton = 1; gui_State = struct(gui_Name, mfilename, . gui_Singleton, gui_Singleton, . gui_OpeningFcn, jbxhcs_OpeningFcn, . gui_OutputFcn, jbxhcs_OutputFcn, . gui_LayoutFcn, , . gui_Callback, ); if nargin end if nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:); else gui_mainfcn(gui_State, varargin:); end function jbxhcs_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject; guidata(hObject, handles); function varargout =jbxhcs_OutputFcn(hObject, eventdata, handles) varargout1 = handles.output; function pushbutton1_Callback(hObject, eventdata, handles) clc A=str2num(get(handles.edit6,String); a=str2num(get(handles.edit4,String); t=0:.001:10; ft=A*exp(a*t); plot(t,ft),grid title(A*exp(a*t) function pushbutton2_Callback(hObject, eventdata, handles) clc A=str2num(get(handles.edit3,String); W=str2num(get(handles.edit2,String); P=str2num(get(handles.ed
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 压缩资料 > 中医养生


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!