2803.基于MATLAB 平台的《 信号与系统》教学辅助软件开发设计_第1页
2803.基于MATLAB 平台的《 信号与系统》教学辅助软件开发设计_第2页
2803.基于MATLAB 平台的《 信号与系统》教学辅助软件开发设计_第3页
2803.基于MATLAB 平台的《 信号与系统》教学辅助软件开发设计_第4页
2803.基于MATLAB 平台的《 信号与系统》教学辅助软件开发设计_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

1、目录摘要.abstract. 第一章 引言11.1论文写作的大背景11.2问题的提出2第二章 matlab软件简介52.1 matlab介绍及其特点、功能、优点52.2 matlab语言平台简单介绍72.3图形用户界面编程过程7第三章 信号与系统课程介绍93.1 信号与系统简介93.2本设计涉及的信号与系统课程内容介绍10第四章 matlab与信号与系统结合的简单实例124.1 matlab中信号的表示和可视化124.2信号与系统与 matlab结合其他例子14第五章 实验系统的设计过程和主要代码155.1 实验系统的设计过程155.2 系统设计过程详细介绍24第六章 实验系统各模块简单介绍3

2、46.1 函数基本性质模块介绍346.2 信号抽样模块简单介绍376.3 信号频谱分析模块简单介绍376.4 lti系统特性模块简单介绍39第七章 结论及进一步研究方向41参考文献42致 谢43本文源码索取,请联系qq:6866150842摘要随着计算机技术和信息技术的飞快发展,数字信号处理技术在各种工程技术领域,特别是新兴高技术产业内获得了越来越广泛的应用。因而信号与系统课程作为学习数字信号处理技术的基础课程,越发受到师生的重视。利用matlab强大的计算仿真功能和方便易用的图形绘制功能可以将抽象的数学和技术理论以易于理解的可视化形式展示给学生,起到更好的教学效果。关键词:信号与系统,mat

3、lab,教学abstractas the computer technology and information technology develop rapidly, digital signals disposing technology is becoming more and more important ,especially in high tech industry. so the signal and system course , which is the base of studying digital signal disposing technology, attach

4、es a more importance of both teachers and students. we can make use of the powerful calculate function and convenient graph protract function of matlab to make the abstract mathematic theory more understandable and have a better teaching effect.key words : matlab , signal and system,teaching 第一章 引言1

5、.1论文写作的大背景课堂教学是目前高校开展教学活动的一种主要形式, 学生的大多数学习时间是在教室、实验室里度过的,课堂和实验室的教学活动为学生的学习和成才提供了极其重要的场所和机会。因此,课堂和实验的教学效果如何,直接关系到我们培养出来的人才的质量,直接关系到高校创新教育的成败。改革教学手段和方法是推进创新教育的重要条件。实施创新教育,必须研究和创新课堂、实验教学的手段和方法。 1. 从近几年对教学情况的调查和学生反映来看,当前高校在教学方法上还是存在很多问题的。从教师方面看主要有: (1) 许多教师在教学方法上采“注入式”、“填鸭式” 和“满堂灌”等落后的教学方法,尤其以青年教师严重;缺乏启

6、发、引导、教与学间的交流。(2) 以教师为主、以课堂为中心的传统的传授知识的教学方法仍普遍存在;缺乏教与学的双主体教学法,没有充分调动学生学习的积极性和主动性。(3) 采用共性、集中、统一的教学方式明显增多,而有利于促进学生个性发展和全面发展的教学方式显得非常不足。从学生方面看:由于受“应试教育”和落后教学方法的影响,被动学习、死记硬背、课堂气氛死气沉沉依然存在;学习热情普遍不高,缺乏构造学生知识层和科学、人文层次等。2. 存在这些问题的原因很多,有客观的有主观的。较为普遍的一是高校对教学方法这个关系到培养人才质量的问题重视不够,热情不高,多年来不组织和开展教学方法研究,不采取有效措施推广好的

7、教学效果方面的经验,不开展同门课逐章逐节内容和适合方式的集体研讨活动等。二是在许多中青年教师的认识上,存在教学是软的,承担科研任务的数量是硬的等观念;教师在教学上投的精力不足,而在搞科研、写论文或考研,评职称上狠下功夫。3. 应高度重视教学观念和教学方法的改革。江泽民同志1996 年6 月在全教会上指出,教育在培养民族创新精神和培养创新人才上,肩负着特殊的使命。“必须转变妨碍学生创新精神和创新能力发展的教育观念、教育模式,特别是由教师单向灌输知识,以考试分数作为衡量教学质量的唯一标准。” 陈至立同志也指出:“教学方法已不是一个战术问题,而是一个战略问题”。1.2问题的提出1.2.1信号与系统教

8、学中存在的问题 信号与系统课程作为电子信息类专业的一门基础课程在实际教学中占据重要地位。该课程无论是从教学内容还是从教学目的来看,都是一门实践性较强的课程,其基本方法和原理广泛应用于计算机信息处理的各个领域. 因此,如何有效地提高信号与系统课程的教学质量和效果,使学生在信号处理与分析领域具有较强的主动获取知识和独立解决问题的能力,是一项具有重要意义的工作.但是,由于信号与系统课程的特点是概念抽象,数学含量大;繁杂的教学公式推导及其数学结果常常使学生难于理解,再加上长期以来,由于信号与系统课程本身的特点导致的教学方法和手段的单一,使信号与系统这门课程一直处于教难学更难的困难境况中. 该课程是一门

9、公式和理论推导相对较多的学科,黑板式的单一教学方式,使学生只能依靠做习题来巩固和理解所学知识,面对大量应用性较强的内容学生不能实际动手设计、调试和分析,教学中的负面效应越来越突出 :1) 该课程的特点是数学要求较高,理论结果往往来源于复杂的数学运算及推导,这就导致学生将大量的时间用于进行数学运算(如微分、积分、方程求解、多项式求根等),而没有真正理解该结果在信号处理中的实际运用. 因此,学生迫切需要一种工具软件来完成课程中的数值计算与分析. 2) 由于是黑板式教学及习题式练习,课程中大量信号分析的结果缺乏可视化的直观表现. 例如,对于信号分析的波形学生只能用手工绘制,信号频谱特性或系统频率响应

10、只能表现为不易理解的数学表达式,拉普拉斯变换也不能看到直观的三维空间表现,这些都严重影响了学生对所学知识的理解. 3)从实践环节来看,传统的信号与系统实验是基于验证性的实验,即使是要求学生完成的一些用软件实现的算法也是基于c 语言的,但由于大多数学生c 语言编程能力有限,学生的计算机编程解决专业基础课及专业课具体问题的能力较差,致使学生不能有效地完成实验,难以适应现代教学要求。4) 由于缺乏实验环境中的设计、分析过程,学生在学习过程中被动性较大. 特别是在系统设计方面,学生自己设计的系统,经过复杂的手工数学计算后,往往不能直观地得到系统特性的可视化测试结果,达不到培养综合能力的目的.5)教材内

11、容偏重理论,相关理论的最新应用实例不够,容易造成理论于实际的分离。基于以上几点,该课程迫切需要在实验环境中,用教学辅助软件帮助学生完成数值计算、信号分析的可视化建模及仿真调试。利用计算机辅助教学是对传统教学手段一大突破,它可以充分利用计算机的特点,如文字、声音、动态图形及友好的人机界面等生动地表达抽象的概念和理论,使学生在可视化的环境中易于掌握和理解所学知识。1.2.2 信号与系统实验目前流行方式对比 ()硬件实现方式 即利用示波器、波形分析仪观察信号的波形,分析信号的组成,利用选频电平表或频谱分析仪测试信号的频谱或系统的幅频特性,用电子器件实现系统的模拟等。硬件实现方式要求投入的设备资金比较

12、多,另外,由于学生在学习“信号与系统”时,所学的硬件知识不够全面,因而在实验过程会遇到超越本身能力的困难,这样的实验效果可能是适得其反。 ()软件实现方式 目前利用软件实现信号与线性系统实验的方法有若干种。常用的几种如下:1、利用 语言编程实现 这种方法只需要提供微机和 语言环境就可以进行了,。需要学生有较强的 语言编程能力和对理论内容有较深的理解。如果学生在这方面基础与能力较差,实验效果就不理想。2、利用systemview软件实现systemview 是elanix 公司推出的一个完整的动态系统设计、仿真和分析的可视化软件。它提供了开发电子系统的模拟和数字工具, 有大量信号源、接收器、操作

13、符和功能块, 各功能模块都用形象直观的图标表示。使用systemview 不用编程, 只需用鼠标从systemview 库中选择图联标并将它们拖放到设计窗口中, 通过连线来创建线性和非线性、离散和连续、模拟、数字、模数混合系统以及各种多速率系统, 可用于各种线性和非线性控制系统的仿真。该软件的操作界面好, 分析结果显示直观, 对系统的修改、调试简单易行, 并提供了与编程语言vc6 和仿真工具matlab 的接口, 可以很方便地调用其函数。 3、利用软件实现 由美国公司开发的软件想必大家不会感到陌生,这个软件充分利用了计算机图形处理技术,可以在计算机显示设备上做到输入、输出图形化。但是,在使用分

14、析系统或电路)时,需要画出具体电路图,这种方法离不开具体电路,对信号与系统这门课来讲,具有一定的局限性。4、利用ewb软件实现ewb 软件最明显的特点是:仿真手段切合实际,选用元器件、仪器与实际情形非常相近。其元件库不仅提供了数千种电路元器件供选用,而且还提供了各种元器件的理想值,如对分析精度有特殊的需要,可以选择具有具体型号的器件模型。作为虚拟的电子工作台,ewb 提供了较为详细的电路分析手段,不仅可以完成电路的瞬态分析、稳态分析、时域和频域分析、器件的线性和非线性分析、电路的噪声分析和失真分析等常规电路分析方法,而且还提供了离散傅里叶分析、电路零极点分析、交直流灵敏度分析和电路容差分析等共

15、计14 种电路分析方法1.2.3 在信号与系统教学中引入matlab的必要性 虽然我们可以通过做大量信号与系统的试验来帮助学生理解信号与系统中的众多抽象概念。但是,由于信号与系统实验所需的设备价格较高,试验难度较大,许多教学单位都因不具备试验条件而放弃了试验课程的开设,这极大地影响了教育质量的提高。如何找到一种切实可行的途径来解决这一问题一直是努力的方向。近年以来,随着计算机硬件性能的不断提升和计算机软件技术的飞速发展,利用计算机进行虚拟试验成为一种国际潮流,国内也逐步开始了这一方面的工作,并在取得积极的成果。而matlab经过多年的不断发展与完善已发展成为由matlab 语言、matlab工

16、作环境、matlab 图形处理系统、matlab 数据函数库和matlab 应用程序接口五大部分组成的集数值计算、图形处理、程序开发为一体的功能强大的系统。它具有以下的功能和特点:高效的数值计算及符号计算功能,能使我们从繁杂的数学运算分析中解脱出来;完备的图形处理功能,实现了计算结果和编程的可视化;功能丰富的应用工具箱,提供了大量方便实用的处理工具;友好的界面及接近数学表达式的自然化语言,便于学习和掌握。实践证明,学生可以在几十分钟的时间内学会matlab的基本知识,经过几个小时的使用就能初步掌握它。matlab强大的数值分析功能和计算结果可视化功能及其功能丰富的工具箱,使得它特别适合在信号与

17、系统课程中应用,为开发高效、实用的信号与系统虚拟实验提供了强有力的支持。以matlab 为平台开发的 信号与系统教学辅助软件可以充分利用计算机快速运算,文字、动态图形、声音及交互式人机界面的特点,运用matlab 的数值分析及计算结果可视化、信号处理工具箱的强大功能,将“信号与系统”课程中较难掌握和理解的重点理论和方法通过概念浏览、动态演示及典型例题分析等方式,形象生动地展现出来,从而使学生对所学知识的理解更加透彻,同时运用教学软件中的数值计算工具箱, 将使学生从大量繁琐的手工数学运算中解放出来, 将更多的时间留于对基本概念和基本方法的思考.第二章 matlab软件简介2.1 matlab介绍

18、及其特点、功能、优点2.1.1 matlab的简单介绍和发展过程matlab,取自矩阵(matrix)和实验室(laboratory)两个英文单词的前三个字母,意即“矩阵实验室”。它是一种以矩阵作为基本数据单元的程序设计语言,提供了数据分析、算法实现与应用开发的交互式开发环境。matlab到今天已经历了近30年的发展过程。20世纪70年代中期,美国新墨西哥大学计算机系主任clever moler 博士和其同事在美国国家自然科学基金的帮助下,开发了调用linpack和eispack的fortran子程序。20世纪70年代后期,moler博士编写了相应的接口程序,并将其命名为matlab。1983

19、年,john little 和 moler、bangert 等一起合作开发了第2代专业版matlab.1984年moler 博士和一批数学专家、软件专家成立了 math works公司,继续 matlab 软件的研制和开发,并着力将软件推向市场。1993年,math works 公司连续推出了 matlab 3.x (第1个windows版本)、matlab 4.0. 1997年,math works 公司推出了matlab 5.0。2001年,math works 公司推出了 matlab 6.x。2004年,math works公司推出了 matlab 7.0。 2.1.2 matlab

20、功能及其应用matlab分为总包和若干个工具箱,随着版本的不断升级,它具有越来越强大的数值计算能力,更为卓越的数据可视化能力以及良好的符号计算功能,逐步发展成为各种学科、多种工作平台下功能强大的大型软件,获得广大科技工作者的普遍认可。一方面,matlab可以方便实现数值分析、优化分析、数据处理、自动控制、信号处理等领域的数学计算,另一方面,也可以快捷实现计算可视化、图形绘制、场景创建和渲染、图像处理、虚拟现实和地图制作等分析处理工作。在欧美许多高校,matlab已经成为线性代数、自动控制理论、概率论与数理统计、数字信号处理、时间序列分析、动态系统仿真等课程的基本教学工具,是攻读本科、研究生学位

21、必须掌握的技能。在国内,这一语言也逐步成为一些大学工科专业学生的重要课程。2.1.3 matlab的基本特点1、语言简单易学 matlab是一种解释执行的语言,语句采用通用的数学形式,语法规则和一般结构化高级编程语言相差不大,并把编辑、编译、连接、执行功能融为一体,调试程序手段丰富、调试速度快,可以快速排除输入程序时书写、语法等方面的错误,具有一般语言基础的人可以较快掌握。2、代码短小高效 matlab将矩阵作为最基本的数据单元、无须预先定义维数。函数是matlab中最基本、最重要的组成部分,而matlab 将数学问题的许多算法编成库函数,具有能解决很多问题的工具箱,只要熟悉算法的基本特点、函

22、数调用格式和参数具体意义等内容,调用现成函数就可以较快解决自己专业领域很多问题,而不必再花很多时间去实现常规算法,使得所编写的代码文件简单短小、求解专业问题时高效方便。3、计算功能强大 matlab 语言具有强大的矩阵数值计算功能、可以方便地处理很多特殊矩阵,利用符号和函数可以对矩阵进行线性代数运算(加减乘除、转置、求逆),适用于大型数值算法的编成实现;工具箱中许多搞性能的数值计算算法,可以解决实际应用中的许多数学问题,尤其是与矩阵计算有关的问题。4、绘图非常方便 matlab 语言具有强大的绘图功能,有很多绘图函数命令,可以绘制一般的二维或三维图形(如线形图、条形图、饼图、直方图等),可以绘

23、制工程特性较强的特殊图形(如玫瑰花图、极坐标图等),通过其可视化功能可以绘制一些用于数据分析的图形(如矢量图、等值线图、曲面图、切面图等),还可以生成快照并进行动画制作,使用 matlab 句柄图形对象结合绘图函数可以绘制自己最为满意的图形。5、扩充能力强大 可扩展性是 matlab的一个重要特点,matlab通常包括系统本身定义的大量库函数,用户也可以定义自己的函数、组成自己的工具箱,不仅进行数学运算时可以直接调用,而且库函数名称和用户文件保持一致,用户可以根据需要方便地建立和扩充库函数,方便地解决本领域内的计算问题。matlab提供了与fortran、c/c+语言及一些应用程序(如exce

24、l)的接口,利用matlab编译器和运行服务器还可以生成独立的可执行程序,使用户可以混合编程,也可以隐藏算法并避免依赖matlab平台环境。6、源程序具有开放性 除了内部函数以外,所有matlab的核心文件和工具箱文件都是可读可改的源文件,用户可以通过对源文件的修改以及加入自己的文件构成新的工具箱7、功能强大的工具箱 matlab具有的一项重要特色是拥有功能强大的工具箱。matlab包括两个部分:核心部分和各种可选的工具箱。核心部分是数百个核心内部函数。其工具箱又可以分成两类:功能性工具箱和学科性工具箱。功能性工具箱主要用来扩充其符号计算功能、图示建模仿真功能、文字处理功能以及与硬件实时交互功

25、能。功能性工具箱能用于多种学科。而学科性工具箱是专业性比较强的,如 control toolbox、signal processing toolbox、communication toolbox等。这些工具箱都是由该领域内的学术水平很高的专家编写的,所以用户无需编写自己学科范围内的基础程序,而直接进行高、精、尖的研究。8、帮助功能完整 matlab采用基于html的自述文件,自述文件中不仅介绍了matlab语言,还对各种算法的理论基础与算法实现进行了比较详细的说明,并给出了相应的常规实例,帮助功能比较完整。 2.2 matlab语言平台简单介绍2.2.1 程序编制步骤1、进入编译平台。在win

26、dows上平台上双击桌面的matlab图标或者选择开始程序matlab,均可以进入matlab编辑平台。2、 编译m文件或者通过命令窗口输入适当的函数命令。3、若使用图形用户界面编程,则设计matlab下可视化程序界面(加入控件、对有关属性进行设置等)并编制相应的m文件。4、m文件有命令文件和函数文件两种形式,命令文件的变量均为全局变量且无参数传递,而函数文件一般由function命令开始,变量通常是局部变量,可以传递多个输入输出参数。5、 执行编译过程并修改完善程序2.2.2 使用帮助文件 matlab的函数命令很多,全部记住既不需要也不可能,这些函数可以通过以下两种方法学习。1、 使用函数

27、在线帮助。通常使用命令help,比如要知道函数sin的含义、格式、实例,可在命令窗口中键入help sin。对于已知函数命令名称,但不熟悉其具体使用方法的命令来说,使用help命令时,函数命令名称通常都是小写字母。2、 使用全部帮助。在matlab的自述文件中给出了matlab中的全部帮助,包括matlab语言介绍、函数命令含义与算法、工具箱说明、典型算例等。2.3图形用户界面编程过程 此次实验系统的开发我主要使用图形用户界面进行编程操作,图形界面的外观设计的可视化编程过程如下:1、 进入gui(图形用户界面);2、 添加图形对象;3、 修改菜单属性;4、 修改图形对象属性;5、 编辑回调函数

28、或命令;6、 另存为图形文件;7、 打开图形文件,对有关对象属性进行修改。 第三章 信号与系统课程介绍3.1 信号与系统简介3.1.1 信号与系统课程简介信号与系统课程把具体系统的物理功能抽象为系统的数学模型,经过数学解析,再回到物理实际,以揭示信号与系统得一般特性,是通信与信息系统、交通信息与控制工程、信号与信息处理等学科专业本科生必选的技术基础课程。该课程同样也对我们遥感科学技术专业的学生进一步学习专业知识有很大帮助。本课程主要讨论确定性信号的时域和频域分析,线性时不变系统的描述与特性,以及信号通过线性时不变系统的时域分析与变换域分析。通过本课程的学习,使学生牢固掌握信号与系统的时域、变换

29、域分析的基本原理和基本方法,理解傅里叶变换、拉普拉斯变换、z变换的数学概念、物理概念与工程概念,掌握利用信号与系统的基本理论与方法分析和解决实际问题的基本方法,可以为学生今后进一步学习数字信号处理、通信原理、数字图像处理、遥感原理、遥感图象处理等课程打下良好的基础。3.1.2 信号与系统课程特点 信号与系统是电子信息类本科学生一门重要的专业基础课、必修课,国内许多高校都将它作为相关专业的研究生入学考试课程. 美国麻省理工学院(mit) 著名教授a. v. 奥本海姆在他所著教科书signals and systems 的前言中指出:“信号与系统课程不仅是工程教学中一门非常基本的课程,而且也成为工

30、科学生在大学教育阶段所修课程中最有得益而又引人入胜和最有用处的一门课”。 该课程一方面以高等数学、工程数学及电路分析基础等课程为基础,同时又是相关专业后继的数字信号处理、通信原理等专业课程的先修课程,在教学环节中起着承上启下的作用.本课程最大特点是理论性强,较为抽象。既有严格的数学理论做支撑,又有现代技术的实践背景。课程中需要掌握的公式、定理和性质多;而且所涉及的数学知识多。因此,在学习中一定要注意数学与物理概念的紧密结合,深刻理解公式、定理和性质等的物理含义。3.1.3 信号与系统课程的基本要求 通过本课程的学习,应理解和掌握信号分析与系统分析的基本方法、理论及应用,为专业课学习打下必要的基

31、础。1.了解信号的时域特性,学会建立一阶、二阶线性时不变连续系统的微分方程;掌握零输入响应、零状态响应和全响应等概念和一阶、二阶电路和计算等;学会计算冲激响应和卷积积分。 2 .掌握周期信号的非周期信号的频谱及其特点,熟悉傅里叶变换及其主要性质,了解连续系统的频域分析方法。 3.掌握单边拉普拉氏变换及其主要性质,熟悉电路和复频域模型及其计算方 法,了解系统函数的概念。 4.了解离散信号及其表示,熟悉 z变换及z反变换的基本计算方法。3.2本设计涉及的信号与系统课程内容介绍3.2.1连续时间信号与系统的时域分析 这一部分课程内容主要包括:信号的基本运算与变换、阶跃函数和冲激函数、线性时不变连续系

32、统的响应、线性时不变连续系统的响应、冲激响应与阶跃响应、用卷积积分法求零状态响应等。通过该部分的学习,要求熟悉描述线性时不变系统的数学模型(线性常系数微分方程)并掌握其求解方法;重点掌握零输入响应,零状态响应和全响应的概念;理解阶跃函数和冲激函数,会计算冲激响应和阶跃响应,能计算二个简单函数的卷积积分和利用卷积积分计算零状态响应。3.2.2连续系统的频域分析 这一部分课程内容主要包括: 周期信号的频谐、非周期信号的频谐、傅里叶变换的性质、连续系统的频域分析等。 通过学习这一部分内容我们要掌握如何将连续信号分解为不同频率的正弦信号之和,并在频域研究连续信号激励下,如何求系统的响应。掌握利用傅里叶

33、级数(或变换)将任意信号表示为一系列不同频率的正弦信号之和。深刻理解信号频谱的概念,熟悉掌握傅里叶变换的性质。学会利用叠加原理研究不同频率的正弦信号通过系统求响应。这部分内容的重点是掌握周期信号频谱的特点和傅里叶变换的性质。3.2.3离散时间信号和离散系统分析 这一部分课程内容主要包括: 离散时间信号、离散系统的时域分析、z变换、离散系统的z域分析等。 通过本部分的学习,要求了解离散时间信号和离散系统,了解离散时间信号及其运算。理解描述线性时不变离散系统的数学模型是线性常系数差分方程。初步掌握离散系统的时域分析方法,了解z变换及z变换的性质。本部分的重点是z变换及其性质和逆z变换。3.2.4连

34、续系统的复频域分析 这一部分课程内容主要包括: 拉普拉斯变换、拉普拉斯变换的性质、拉普拉斯逆变换、连续系统的复频域分析、系统模拟与系统函数。 利用拉普拉斯变换(简称拉氏变换)可以把线性常系数微分方程变换为s域的代数方程,从而把求解微分方程的问题变换为求解s域代数方程的问题,这使得利用拉氏变换分析线性时不变系统变得十分方便和有效。 通过学习,要求掌握拉氏变换的性质,电路的s域模型和利用拉氏变换分析线性时不变简单电路(或系统)。本部分重点是拉氏变换性质和利用复频域法分析简单电路。第四章 matlab与信号与系统结合的简单实例 利用matlab 的数值计算和分析功能,将学生从繁杂的数学运算及推导中解

35、脱出来。 信号与系统课程中有许多复杂的数学运算及推导,例如微积分运算,微分方程求解,差分方程求解,多项式求根,系统零极点计算,部分分式展开,卷积积分,卷积和运算等。 在传统的教学中,这类运算都是由学生经过手算来完成的,既耗费了大量的时间又达不到理想的学习效果. 利用matlab 可以让学生学会用科学的运算方法解决问题,从繁重的手工数学运算中解脱出来,将学习重点放在对信号与系统分析的基本概念、方法和原理的理解和运用上.4.1 matlab中信号的表示和可视化 在matlab中通常可以用两种方法来表示信号,一种是用向量来表示信号,另一种则是用符号运算的方法来表示信号。用适当的matlab语言语句表

36、示出信号后,我们就可以利用matlab的绘图命令绘制出直观的信号波形。比如对于连续信号f(t)=sa(t)=sin(t)/t,我们可以用如下两个向量来表示: t=-10:1.5:10 f=sin(t)/t命令执行结果为:t= columns 1 through 7-10.0000 -8.5000 -7.0000 -5.5000 -4.0000 2.5000 -1.0000columns 8 through 140.5000 2.0000 3.5000 5.0000 6.5000 8.0000 9.5000f= columns 1 through 7 -0.0544 0.0939 0.0939

37、-0.1283 -0.1892 0.2394 0.8415columns 8 through 140.9589 0.4546 -0.1002 -0.1918 0.0331 0.1237 -0.0079 用上述向量对连续信号进行表示后,就可以用plot命令来绘出该信号的时域波形。plot命令可将点与点间用直线连接,当点与点间的距离很小时,绘出的图形就成了光滑的曲线。matlab 命令如下: plot(t,f)title (f(t)=sa(t)xlabel(t)axis(-10,10,-0.4,1.1)绘制的波形图如图4.1所示: 图4.1 用matlab绘制的波形图如果把时间间隔(例如取0.02

38、时) 取小,就可以得到更光滑的近似波形。如图4.2所示: 图4.2 修改时间间隔后的波形图这样,我们不费什么力气就绘制出各种信号波形,比起通过手工来绘制图形既省去了大量复杂计算,绘制出来的图形也更加精确。这种简单实用的可视化图形对学生更好理解信号与系统相关概念大有裨益。 4.2信号与系统与 matlab结合其他例子 运用matlab语言可以较方便地绘出系统的冲激响应和阶跃响应的波形。具体的示例如下:现有二阶连续系统,其微分方程如下:要求其冲击响应,如果采用手工推导将会非常复杂而且很容易出错;如果采用matlab , 用户只需先建模,然后编制相应程序执行后就能得到结果,既方便又不容易出错。mat

39、lab语言的代码如下:其中运用了冲激函数impulse()和阶跃函数step(),具体执行相关程序的结果图如图4.3所示: 图4.3 冲击响应和阶跃响应的波形图第五章 实验系统的设计过程和主要代码5.1 实验系统的设计过程5.1.1 创建图形用户界面 图形用户界面,简称gui,是英文 graphic user interface 的缩写。其创建方法是:使用菜单file.new.gui或者在命令窗口使用命令guide,弹出如下图所示的对话框,在该对话框内可以创建图形用户界面或者通过browse打开一个已有用户界面。在创建新的图形用户界面时,可以进行适当的设置,图5.1中的blank(默认),gu

40、i with unicontrols,gui with axes and menu,modal question dialog 分别为图形用户界面的默认设置、含有控件、含有坐标系、含有问题对话框。在选择了一个已有图形界面或设置完成后。单击ok,将得到已有界面或者新界面。 图5.1 gui开始界面5.1.2在图形界面上添加图形对象matlab中使用图形用户界面进行编程时,经常会碰到不同的图形对象,这些对象主要包括窗口对象、菜单对象、对话框对象、控件对象和坐标轴对象。下面我仅举窗口对象有关属性的设置方法为例。1、 窗口对象属性的可视化设计窗口的基本属性包括位置(position)、窗口编号(num

41、ber title)、标题栏(name)和菜单(menubar)。分别简介如下:position属性:设置窗口位置,它为1*4的向量,前后两个数值分别为窗口矩形左下角及右上角的横坐标与纵坐标数值 name属性:窗口标题栏对应的字符串。 numbertitle属性:窗口编号选项,menubar属性:菜单栏属性窗口还有颜色、调整和可见性等属性。2、 窗口对象属性程序设计创建方法: set(对象句柄,属性1,属性值1,属性2,属性值2,)获取方法: get (对象句柄,属性1,属性值1,属性2,属性值2,)5.1.3 gui编程实现过程matlab编写gui程序也很方便,关键是需要之前准备好界面位置

42、参数。其原则尽量满足简单性,一致性和友好性。其具体步骤有 分析界面所要求实现的主要功能,明确设计任务。例如,单击某一按钮则运行相应的模块,或是将输入栏的参数传递给相应的功能模块。 在matlab中编写gui程序主要涉及到的命令(其他的gui命令由于本次设计没有用到,故略)有标准图形窗口菜单设置figure 用以创建标准菜单的图形窗set(gcf,menubar,none); 用以隐藏图形窗口的标准菜单set(gcf,menubar,figure) 用以恢复图形窗口的标准菜单hm=uimenu(h_parent,propertyname,propertyvalue,) 用以自己订制用户菜单用户控

43、件hc=uicontrol(h_parent,pn,pv) 控件制作函数用户控件类包括pushbutton,radiobutton等除了直接编程制作gui界面外还可以借助命令guide进行编写,guide 是一个强大的交互式用户界面制作工具,可以可视化地调整各个窗口的属性,下图是其运行情况: 图5.2 试验系统主界面设计图然后保存为fig文件,就完成了主界面的设计工作。当然,除了有fig文件外,还需要在相应的.m文件里面定义组件行为,这里给出的源程序为如下:function varargout = main(varargin)% main application m-file for main

44、.fig% fig = main launch main gui.% main(callback_name, .) invoke the named callback.if nargin = 0 % launch guifig = openfig(mfilename,reuse);% generate a structure of handles to pass to callbacks, and store it. handles = guihandles(fig);guidata(fig, handles);if nargout 0varargout1 = fig;endelseif is

45、char(varargin1) % invoke named subfunction or callbacktryif (nargout)varargout1:nargout = feval(varargin:); % feval switchyardelsefeval(varargin:); % feval switchyardendcatchdisp(lasterr);endend%| about callbacks:%| guide automatically appends subfunction prototypes to this file, and %| sets objects

46、 callback properties to call them through the feval %| switchyard above. this comment describes that mechanism.%|%| each callback subfunction declaration has the following form:%| (h, eventdata, handles, varargin)%|%| the subfunction name is composed using the objects tag and the %| callback type se

47、parated by _, e.g. slider2_callback,%| figure1_closerequestfcn, axis1_buttondownfcn.%|%| h is the callback objects handle (obtained using gcbo).%|%| eventdata is empty, but reserved for future use.%|%| handles is a structure containing handles of components in gui using%| tags as fieldnames, e.g. ha

48、ndles.figure1, handles.slider2. this%| structure is created at gui startup using guihandles and stored in%| the figures application data using guidata. a copy of the structure%| is passed to each callback. you can store additional information in%| this structure at gui startup, and you can change th

49、e structure%| during callbacks. call guidata(h, handles) after changing your%| copy to replace the stored original so that subsequent callbacks see%| the updates. type help guihandles and help guidata for more%| information.%|%| varargin contains any extra arguments you have passed to the%| callback

50、. specify the extra arguments by editing the callback%| property in the inspector. by default, guide sets the property to:%| (, gcbo, , guidata(gcbo)%| add any extra arguments after the last argument, before the final%| closing parenthesis.% -function varargout = pushbutton1_callback(h, eventdata, h

51、andles, varargin)close% -function varargout = pushbutton2_callback(h, eventdata, handles, varargin)closepage1% -function varargout = pushbutton4_callback(h, eventdata, handles, varargin)% -function varargout = ssexpe_callback(h, eventdata, handles, varargin)% -function varargout = pushbutton2_button

52、downfcn(h, eventdata, handles, varargin)% -function varargout = ssex_callback(h, eventdata, handles, varargin)其中阴影部分是自己定义的组件行为,而非阴影部分则是matlab自动生成的语句,当然%后面的都是注释语句,从中可以看到用matlab编写gui程序确实比较简单5.1.4 m文件的编写前面已经提及matlab是一个强大的数学处理工具,可以方便的处理大规模复杂运算。而实现这种运算的一个不可或缺的条件是其方便的脚本文件,这也是本章介绍的主要内容。matlab主要用到的脚本文件被命名为.m文件,其特点有4个:1. 该文件的指令形式和前后位置,与解决同一问题时在指令窗口中输入的那组指令没有任何区别;2. matlab运行此脚本时,仅简单地从文件中读取每条指令,送到matlab中执行;3. 同指令窗直接运行的指令一样,脚本文件的变量都是驻留在其基本内存空间中;4. 文件名的扩展名为 “.m “.m文件,实际上是就是一个普通文本文件,其中包含了matlab指令,而matlab指令由于与c语言相类似,所以易于上手,这也是matlab的易用性的体现。下面将介绍一个m文件例子,也可以从中体味matlab语言的风格例:实现离散信号移位功能1 functiony,n=sigshif(x,

温馨提示

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

评论

0/150

提交评论