MATLAB实训报告.docx

上传人:b****2 文档编号:18002523 上传时间:2023-08-05 格式:DOCX 页数:13 大小:42.65KB
下载 相关 举报
MATLAB实训报告.docx_第1页
第1页 / 共13页
MATLAB实训报告.docx_第2页
第2页 / 共13页
MATLAB实训报告.docx_第3页
第3页 / 共13页
MATLAB实训报告.docx_第4页
第4页 / 共13页
MATLAB实训报告.docx_第5页
第5页 / 共13页
MATLAB实训报告.docx_第6页
第6页 / 共13页
MATLAB实训报告.docx_第7页
第7页 / 共13页
MATLAB实训报告.docx_第8页
第8页 / 共13页
MATLAB实训报告.docx_第9页
第9页 / 共13页
MATLAB实训报告.docx_第10页
第10页 / 共13页
MATLAB实训报告.docx_第11页
第11页 / 共13页
MATLAB实训报告.docx_第12页
第12页 / 共13页
MATLAB实训报告.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

MATLAB实训报告.docx

《MATLAB实训报告.docx》由会员分享,可在线阅读,更多相关《MATLAB实训报告.docx(13页珍藏版)》请在冰点文库上搜索。

MATLAB实训报告.docx

MATLAB实训报告

MATLAB语言编程实训报告

 

题目MATLAB在信号与系统中的应用

年级2008专业电子信息工程

目录

第一章绪论2

1.1本设计课题目的及意义,重点解决的问题2

1.1.1MATLAB在信号与系统中应用的目的及意义2

1.1.2重点解决的问题2

1.2课题的社会和技术背景3

1.3实现的具体功能3

第二章课题的基本概念和原理4

2.1MATLAB的概念4

2.2信号与系统的概念5

2.3信号与系统分析的基本内容与方法5

2.4离散系统的基本概念6

2.5连续系统模型及表示6

第三章系统设计和实现7

3.1采用的软件及开发平台7

3.1.1系统设计软件7

3.1.2开发平台和编程环境7

3.2系统的详细设计8

3.2.1建模8

3.2.2解决方法9

3.3系统设计的亮点10

第四章结束语10

参考文献12

 

第一章绪论

1.1本设计课题目的及意义,重点解决的问题

1.1.1MATLAB在信号与系统中应用的目的及意义

MATLAB在信号与系统中应用能够让学生熟悉MATLAB软件平台、工具箱、高效的数值计算及符号计算功能。

熟悉MATLAB软件的信号处理编程方法和结果的可视化。

了解数字信号处理的计算机仿真方法。

进一步加深对信号与系统的基本原理、方法及应用的理解。

MATLAB软件具有强大的数值分析和计算结果可视化的功能.运用MATLAB软件,通过一个应用实例,将信号与系统课程的理论与实践教学有机地结合,有效地解决了教学中的难点问题,说明了MATLAB软件在信号与系统课程的实践教学中具有重要的实际意义

1.1.2重点解决的问题

matlab的基本使用方法,matlab的预定义函数,如何用matlab绘图,如何在matlab中编程,基于matlab的矩阵运算、符号运算、数值分析等。

1.2课题的社会和技术背景

长期以来,“信号与系统”课程一直采用黑板式的单一的教学方式,学生仅依靠做习题来巩固和理解教学内容,对课程中大量的应用性较强的内容不能实际动手设计、调试、分析,严重影响和制约了教学效果。

由于黑板式教学,课程中大量信号分析结果缺乏可视化的直观表现,学生自己设计的系统也不能直观的得到系统特性的可视化测试结果,学生将大量的精力和时间用于繁杂的手工教学运算,而未理解所得结果在信号处理中的实际应用。

因此,该课程迫切需要进行教学方法和手段的改革,即在改进教学方法和调整教学内容的同时,实现在实验环境中,以计算机为辅助教学手段,用信号分析的软件帮助学生完成数值计算、信号与系统分析的可视化建模即仿真调试,培养学生主动获取知识和独立解决问题的能力,为学习后继专业课打下坚实的基础。

国际上公认的优秀科技应用软件MATLAB的出现给“信号与系统”课程的计算机辅助教学带来了福音,是利用计算机辅助学生完成“信号与系统”课程的数值计算、信号与系统分析的可视化建模即仿真调试成为可能。

该软件由公司于1984年推出,经过十几年的发展和完善,目前已成为科技界最流行的应用软件。

它的主要特点是:

(1)高效的数值计算及符号计算功能,使用户从繁杂的数学运算分析中解脱出来。

(2)完善图像处理功能,实现计算结果和编程的可视化。

(3)友好的用户界面即接近数学表达式的自然化语言,使学着易于学习和掌握。

(4)功能丰富的应用工具箱(如信号处理工具箱),为用户提供了大量方便实用的处理工具。

MATLAB的上述特点,使他深受工程技术人员及科技专家的欢迎,并很快成为应用科计机辅助分析设计、仿真、教学等领域不可缺少的基础软件。

目前,在国外高校,MATLAB已成为本科生、研究生必须掌握的基础软件,国内一些理科院校也已经或正把MATLAB作为学生必须掌握的一种软件。

近年来国内大专院校的计算机应用环境和设备均有了较大的完善,许多学生家庭拥有个人计算机。

这使得MATLAB应用的硬件有了保证。

同时MATLAB教学版的推出也大大促进了MATLAB的推广使用。

1.3实现的具体功能

自上而下的编程方法,不仅适用于编程,而且适用于我们做事。

具体步骤为:

首先对你所面临的问题进行精确描述,即你遇到的到底是什么问题。

然后定义输入输出量,即我们的目的和现有的条件。

之后设计算法,逐层分解,逐步求精,这是做事谋的一个过程,大部分人做事出错就在这个地方,懒得到逐层分解,逐步求精,总是妄想一步登天。

再把算法转化为matlab语言,这一步是踏踏实实做的过程,没有这一步你什么也做不成。

最后检测程序,我们做的东西是否正确,不正确检测错误。

这一步是需要耐心的,不要怕错误,每一次检测都会让你提高。

做事时,不要因一些错误而停止不前。

该课题研究的是线性时不变系统的一般数学模型和求解方法。

具体为描述一个二阶线性时不变连续系统的微分方程,然后求出系统的零状态响应。

 

第二章课题的基本概念和原理

2.1MATLAB的概念[1]

MATLAB为美国Mathworks公司1984年正式推出的一套高性能的数值分析和计算软件,其功能不断扩充,版本不断升级,1992年推出划时代的4.0版,1993年推出了可以配合MicrosoftWindous使用的微机版,95年4.2版,97年5.0版,99年5.3版,5.X版无论是界面还是内容都有长足的进展,其帮助信息采用超文本格式和PDF格式,可以方便的浏览。

至2001年6月推出6.1版,2002年6月推出6.5版,继而推出6.5.1版,2004年7月MATLAB7和Simulink6.0被推出,目前的最新版本为7.1版。

MATLAB将矩阵运算、数值分析、图形处理、编程技术结合在一起,为用户提供了一个强有力的科学及工程问题的分析计算和程序设计工具,它还提供了专业水平的符号计算、文字处理、可视化建模仿真和实时控制等功能,是具有全部语言功能和特征的新一代软件开发平台。

MATLAB已发展成为适合众多学科,多种工作平台、功能强大的大型软件。

在欧美等国家的高校,MATLAB已成为线性代数、自动控制理论、数理统计、数字信号处理、时间序列分析、动态系统仿真等高级课程的基本教学工具。

成为攻读学位的本科、硕士、博士生必须掌握的基本技能。

在设计研究单位和工业开发部门,MATLAB被广泛的应用于研究和解决各种具体问题。

在中国,MATLAB也已日益受到重视,短时间内就将盛行起来,因为无论哪个学科或工程领域都可以从MATLAB中找到合适的功能。

2.2信号与系统的概念[2]

信号(signal)的概念广泛地出现在各个领域中,它以各种各样的形式表现且携带着特定的信息。

古战场曾以击鼓鸣金传达前进或撤退的命令,更以烽火作为信号传递敌人进犯的紧急情况。

近代,信号的利用更是涉及力、热、声、光、电等诸多方面。

就其基本含义而言,信号是用来传递某种消息或信息的物理形式。

在通信技术中,通常把语言、文字、图像或数据等统称为消息(message),信号是消息的表现形式或运载工具,而消息则是信号的具体内容,消息蕴涵于信号之中。

与信号密切相关的更广义的概念是信息(information)。

信号一般可表示为一个或多个变量的函数。

例如,锅炉的温度可表示为温度随时间变化的函数;语音信号可表示为声压随时间变化的函数;一张黑白图片可表示为灰度随二维空间变量变化的函数。

因此,本课程主要讨论电信号。

电信号通常是随时间变化的电压或电流(电荷或磁通),由于信号是随时间而变化的,在数学上常用时间t的函数来表示,因此,“信号”与“函数”这两个名词常交替使用。

概括而言,系统(system)是由某些相互作用、相互关联的元器件或子系统组合而成的某种物理结构,其基本功能是对输入信号进行处理,并产生相应的输出信号。

如通信系统、计算机系统、机器人、自动控制系统、软件等都可称之为系统。

在各种系统中,电系统具有特殊的重要作用。

这是因为大多数的非电系统都可以用电系统来模拟或仿真。

2.3信号与系统分析的基本内容与方法

信号与系统分析主要包括信号分析和系统分析两部分内容。

信号分析的核心是信号分解,即将复杂信号分解为一些基本信号的线性组合,通过研究基本信号的特性和信号的线性组合关系来研究复杂信号的特性。

系统分析的主要任务就是在已知系统结构与输入激励的前提下,求解系统相应的输出响应。

在种类繁多的系统中,线性时不变系统的分析具有重要的意义。

因为实际应用中的大部分系统属于或可近似地看做是线性时不变系统,而且线性时不变系统的分析方法已有较完善的理论,因此本课程主要分析线性时不变系统。

对于非线性系统与时变系统,近年来也有较大理论进展和应用领域,将在其他的课程中进行专门的研究。

随着现代科学技术的迅猛发展,新的信号与系统的分析方法不断涌现。

其中计算机辅助分析方法就是近年来较为活跃的方法。

这种方法利用计算机进行数值运算,从而免去复杂的人工运算,且计算结果精确可靠,因而得到广泛的应用和发展。

本教材中,引入了软件工具MATLAB对信号与系统进行分析。

此外,计算机技术的飞速发展与应用,为信号分析提供了有力支持,但同时对信号分析的深度与广度也提出了更高的要求,特别是对离散时间信号的分析。

因此,近年来,离散时间信号的理论研究得到很大发展,离散时间信号与系统的分析已形成一门独立的课程。

综上所述,信号与系统分析这门课程主要研究确定信号与线性时不变系统。

该课程应用了较多的高等数学知识与电路分析的内容。

在学习过程中,着重掌握信号与系统分析的基本理论与基本方法,将数学概念、物理概念及其工程概念相结合。

注意其提出问题、分析问题与解决问题的方法,只有这样才可以真正理解信号与系统分析的实质,为以后的学习与应用奠定坚实基础。

2.4离散系统的基本概念

所谓离散系统,是指系统的输入与输出仅在离散的时间上取值,而且离散的时间具有相同的时间间隔。

凡是满足如下条件的系统均为离散系统:

(1)系统每隔固定的时间间隔才“更新”一次,即系统的输入与输出每隔固定的时间间隔便改变一次。

固定的时间间隔称为系统的“采样”时间。

(2)系统的输出依赖于系统当前的输入、以往的输入与输出,即系统的输出是它们的某种函数。

(3)离散系统具有离散的状态。

其中状态指的是系统前一时刻的输出量。

其数学描述应为

(2-1)

线性离散系统:

当离散系统同时满足齐次性与叠加性时,即

(2-2)

则称此离散系统为线性离散系统。

2.5连续系统模型及表示

与离散系统不同,连续系统是指系统输出在时间上连续变化,而非仅在离散的时刻采样取值。

满足如下条件的系统为连续系统:

(1)系统输出连续变化。

变化的间隔为无穷小量。

(2)对系统的数学描述来说,存在系统输入或输出的微分项(导数项)。

(3)系统具有连续的状态。

在离散系统中,系统的状态为时间的离散函数,而连续系统的状态为时间连续量。

由连续系统的基本概念可以写出连续系统的最一般的数学描述,即

(2-3)

线性连续系统:

如果一个连续系统能够同时满足如下的性质:

(1)齐次性。

对于任意的参数,系统满足

(2-4)

(2)叠加性。

对于任意输入变量与,系统满足

(2-5)

则此连续系统为线性连续系统。

第三章系统设计和实现

3.1采用的软件及开发平台

3.1.1系统设计软件

该系统设计采用的是MATLAB数学软件。

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

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

3.1.2开发平台和编程环境

MATLAB由一系列工具组成。

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

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

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

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

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

MATLAB一个高级的矩阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。

用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。

新版本的MATLAB语言是基于最为流行的C++语言基础上的,因此语法特征与C++语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式。

使之更利于非计算机专业的科技人员使用。

而且这种语言可移植性好、可拓展性极强,这也是MATLAB能够深入到科学研究及工程计算各个领域的重要原因。

MATLAB自产生之日起就具有方便的数据可视化功能,以将向量和矩阵用图形表现出来,并且可以对图形进行标注和打印。

高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。

可用于科学计算和工程绘图。

新版本的MATLAB对整个图形处理功能作了很大的改进和完善,使它不仅在一般数据可视化软件都具有的功能(例如二维曲线和三维曲面的绘制和处理等)方面更加完善,而且对于一些其他软件所没有的功能(例如图形的光照处理、色度处理以及四维数据的表现等),MATLAB同样表现了出色的处理能力。

同时对一些特殊的可视化要求,例如图形对话等,MATLAB也有相应的功能函数,保证了用户不同层次的要求。

3.2系统的详细设计

3.2.1建模

先求系统的冲激响应,写出其特征方程

求其特征根p1,p2,及其r1,r2,则冲激响应为

输出y(t)可用输入u(t)与冲激响应h(t)的卷积求得

MATLAB程序

clf,clear

a=input('多项式分母系数向量a=');

b=input('多项式分子系数向量b=');

t=input('输入时间序列t=');

u=input('输入序列u=');

tf=t(end);

dt=tf/(length(t)-1);

%用极点留数法求冲激响应

[r,p,k]=residue(b,a);

h=r

(1)*exp(p

(1)*t)+r

(2)*exp(p

(2)*t);

%求u和h的卷积,得输出y(t)

y=conv(u,h)*dt;

%画出输出y(t)

plot(t,y(1:

length(t)));grid

程序运行结果

执行这个程序,取a=[1,4,4],b=[1,3],t=[0:

0.1:

5]及u=exp(-1*t),所得结果如下图

 

 

图3-1零状态输出响应

3.2.2解决方法

1.掌握M函数的编写,弄清程序的入口和出口参数及参数的取值情况;

2.工具箱的应用其实就是一些别人编好的具有特定功能的函数,在掌握1的情况下,这个就不在话下了,还是那句话,弄清功能,弄清输出输入参数的情况及相互关系;

3.在写m函数前现在workspace里将主要源码操作一遍,一是可以熟悉各参数间的关系,二是可以验证源码的正确性;

4.程序的调试,主要就是断点的应用,特别是条件断点大家都很容易忽视,其实条件断点就是在断点出设置停止的条件,也就是一条逻辑操作,大家可以看看help;

5.调试过程中难免出错,出错是很正常的,重要的是你要清楚发生错误之后要怎么解决,都有那些可以利用的资源可以供你利用,用来判断错误的原因.断点运行到出错的位置,判断此时各种数据的维数,数值的大小,还有就是有没有出现调用前没有赋值等情况.这些做法的一个重要线索就是workspace里给出的最上面一个出错信息.

3.3系统设计的亮点

友好的工作平台和编程环境;简单易用的程序语言;强大的科学计算机数据处理能力;出色的图形处理功能;应用广泛的模块集合工具箱;实用的程序接口和发布平台;应用软件开发(包括用户界面)。

第四章结束语

实训总结与体会:

学习MATLAB没多久,有好多问题很不懂,但经过两周对MATLAB的学习和对MATLAB在信号系统和其他方面应用的实训,我充分了解到了MATLAB的实用性和便捷性,对我以后在其他方面的学习大有好处。

MATLAB博大精深,也不可能在短时间内学得很熟。

我觉得学习MATLAB首先要把基础掌握.什么是MATLAB的基础呢?

个人觉得是首先是矩阵(包括数组),它是MATLAB的核心,如矩阵的输入生成,矩阵处理等;还有绘图,各种画图函数,函数图形的加工;最后是编程,这是最重要的,能解决很多问题,也是后面学习的基础。

这三个方面掌握后,就可以做实践的锻炼了,有很多技巧在实践中可以不断地积累。

MATLAB语言的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。

附加的工具箱扩展了MATLAB环境,以解决这些应用领域内特定类型的问题。

因为之前学过VB,C语言之类的程序设计,所以MATLAB基础学起来还算容易。

它包括了很多编程的技巧问题,程序的结构设计问题,对于程序的运行效率非常有帮助。

有的时候,你编出来的程序,能够运行,但是耗时太长,也就是说你的程序没有错,但是不适合实际。

或者说,对于规模小的问题能够解决,但是规模大一点的问题就需要很长很长的时间,这就需要对程序的结构和算法问题进行改进。

MATLAB的自带函数很多,基本上能够满足一般的数据和矩阵的计算,所以基本上不用自己编函数。

这一点对程序非常有帮助,可以使程序简单,运行效率高,可以节省很多时间。

你把基本的知识学过之后,就需要找一个实际的程序来动手编一下,不要等所有的知识都学好之后再去编程,你要在编程的过程中学习,程序需要什么知识再去补充,编程是一点一点积累的,所以你要需做一些随手笔记什么的。

编程问题最头疼的不是编程序,而是调程序,所以在你的程序编完之后,一定要进行验证其正确性,你要尽量多的设想你的问题的复杂性,当然,要一步一步复杂,这样才能保证你的程序的适用性很强。

尽量摆脱c编程的习惯,总爱用循环,能不用的循环的尽量不用,掌握矢量化的精髓,要大胆的去试,试过才知道可不可以,多去编写程序,运行调试。

 

参考文献

[1]陈怀琛,吴大正,高西全.MATLAB及在电子信息课程中的应用[M].北京:

电子工业出版社,2006.

[2]郑君里,应启珩,杨为理.信号与系统(第二版)[M].北京:

高等教育出版社,2008.

[3]张志涌,杨祖樱.MATLAB教程[M].北京:

北京航空航天大学出版社,2009.

学生签名:

指导教师评语:

 

课程设计成绩:

指导教师签名:

教研室意见:

 

教研室主任签名:

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2