信号与系统分析上机实验指导_第1页
信号与系统分析上机实验指导_第2页
信号与系统分析上机实验指导_第3页
信号与系统分析上机实验指导_第4页
信号与系统分析上机实验指导_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

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

文档简介

1、信号与系统分析上机买验指导吴冬梅闫红梅石崟编西安科技大学2006年3月信号与系统分析i:机指导刖言“信号与系统分析”课程是电子与通信类专业的主要专业基础课z_,该课程是将学生 从电路分析的知识领域引入信号处理与传输领域的关键性课程,对后续专业课起着承上启下 的作用。该课程的基本方法和理论大量应用于计算机信息处理的各个领域,特别是通信、数 字涪音处理、数字图像处理、数字信号分析等领域,应用更为广泛。因此,让学生学握对信 号与系统进行分析的基木方法和理论,无论对今后专业课的教学,述是学生毕业后从事专业 工作的能力,都具有重要的意义。长期以來,''信号系统分析”课程一直采用黑板式的单

2、i教学方式,学生仅依靠做习题來 巩i占i和理解教学内容,对课程中大量的应用性较强的内容不能实际动手设计、调试、分析, 严重彩响和制约了教学效果。因此,该课程迫切需要进行教学方法和教学手段的改革,即在 改进教学方法和调整教学内容的同时,实现在实验环境中,以计斃机辅助教学手段,用信号 分析的软件帮助学生完成数值计算、信号与系统分析的可视化建模及仿真调试,培养学生主 动获取知识和独立解决问题的能力,为学习后继专业课打下坚实的基础。matlab语言在矩阵运算和数值计算等方而具有强大的功能,非常直观、简洁,且效率高, 交互性好,因而它在科学与丁程计算方面的优势是显而易见的。采用matlab语言作为编程工

3、 具,便于学生快速学握和进行白主创造性的学习。本上机指导书主耍山九个实验组成,内容包括:matlab的基本使用;信号的表示及可视 化;信号的时域运算、时域变换及matlab实现:离散序列卷积和的matlab实现:周期信号 傅里叶级数;傅立叶变换及性质:利ju matlab分析系统的频率特性;拉普拉斯变换及其曲面 图;离散系统的零极点分析。本指导书山石崟、闫红梅共同编写,吴冬梅负责全书的修改审订。在编写过程中得到通 信学院教师的大力支持,在此-并表示感谢!市于作者水平有限,木书难免会有错误与不足之处,欢迎读者对木书提出批评和建议。 来信请寄:西安科技大学51信箱(邮编710054),闫红梅;电话

4、:(029) 85580827:电子邮 箱:yhm523163. com作者2006.2实验一matlab的基本使用1实验二信号的表示及可视化18实验三信号的时域运算、时域变换及matlab实现27实验四离散序列卷积和的matlab实现34实验五周期信号傅里叶级数39实验六傅里叶变换及其性质46实验七利用matlab分析系统的频率特性50实验八拉普拉斯变换及其曲面图54实验九离散系统的零极点分析58参考文献63实验一 matlab的基本使用【一】实验目的1. 了解matalb程序设计语言的基本特点,熟悉matlab软件的运行环境;2掌握变量、函数等有关概念,掌握m文件的创建、保存、打开的方法,

5、初步具备将一 般数学问题转化为对应计算机模型处理的能力;3. 学握二维图形绘制的方法,并能川这些方法实现计算结果的可视化。【二】matlab的基础知识一. matlab 简介matlab是由美国math works公司推出的软件产品。matlab是"mairic laboratory 的缩写,意及“矩阵实验室”。matlab是一完整的并可扩展的计算机环境,是一种进行科学 和工程计算的交互式程序语言。它的基木数据单元是不需要指定维数的矩阵,它可直接用于 表达数学的算式和技术概念,而普通的高级语言只能对一个个具体的数据单元进行操作。因 此 解决同样的数值计算问题,使用matlab耍比使用

6、basic、fortran和c语言等捉高效率 许多倍。许多人赞誉它为万能的数学“演算纸”。matlab采用开放式的环境,你可以读到它 的算法,并能改变当前的函数或增添你口己编写的函数。在欧美的大学和研究机构中, matlab是一种非常流行的计算机语言,许多重要的学术刊物匕发表的论文均是用matlab 來分析计算以及绘制出各种图形。它还是一种有利的教学工具,它在大学的线性代数课程以 及其它领域的高一级课程的教学中,l2成为标准的教学工具。二. matlab的启动和退出1. matlab的启动有如下两种方式:方式一:双击操作系统桌面上的matlab快捷方式,即可启动并打开matlab命令窗 口。方

7、式二:单击【开始】菜单,依次指向【程序】一【matlab - matlab 6.5即可 心动并打开matlab命令窗口。2. matlab的退出退出matlab非常简单,只需在matlab命令窗口内键入命令quit或单击命令窗口的 【关闭】按扭即可。三. matlab使用界面简介打开matalb后,缺省的操作桌面如图i所示。常川的有命令窗、历史命令窗、当前 门录浏览器、工作空间浏览器、和交互界面分类目录窗5个窗口。如图1所示。i. 命令窗(command window)该窗缺省地处在matlab桌而的右侧,该窗功能足进行各种matlab操作的主耍窗口。在该窗内,可键入各种送给matlab运作的

8、指令、函数、表达式;显示除图形外的所 有运算结果。图1.1 matlab操作桌面的缺省外貌2. 丿力史命令窗(command history)该窗缺省地处于matlab桌啲的左下方前台。该窗记录ll经运作过的指令、函数、表 达式;允许用户对它们进行选择复制、重运行、及产住m文件。3. 当前目录浏览器(cunenl directory browser)该浏览器缺省地位于matlab桌面左下方的后台。在此交互界面中,可以进行当前h 录的设置;展示和应口录上的m、mdl等文件;复制、编辑和运行m文件;装载mat数 据文件。4. t作空间浏览器(workspace browser)该交互界面缺省地位于

9、matlab桌面的左上方后台。该窗口列出matlab工作空间 中所有的变量名、大小、字节数;在该窗屮,可对变量进行观察、编辑、提取和保存。5. 交互界而分类u录窗(launch pad)该交互界面缺省地位于matlab桌面的左上方前台。该窗以可展开的树状结构列肴 matlab提供的所有交互界面,包括:帮助界而、演示界面、各种应用交互界面。用户若 双击该树状结构上的分类图标,就可展现出相应的交互界面。四. 帮助信息的获取matlab里有以下几种方法可获得帮助:帮助命令(help)、look for命令、帮助窗口 (help window)、帮助桌血(help desk)在线帮助页或直接通过网络连

10、接到maihworks公司。1. 帮助命令(help)帮助命令是查询函数相关信息的最直接方式,信息会直接显示在命令窗口屮。如杲你知 道要找的题材(topic)是什么,直接键入help <topic>o例1-1例如在命令窗口键入help sin ,会出现如下解释:sin sine.sin(x) is the sine of the elements of x.overloaded methodshelp sym/sin.m2. lookfor 命令它可以从你键入的关键字(即使这个关键字并不是matlab的指令)列出所有相关的题 材,和help相比,lookfor所能覆盖的范围更宽,可

11、查找到包含在某个主题屮的所有词组或短 语。例1-2例如在命令窗口键入lookfor sin会显示:java.m: %using java from within matlabsyntax.m: % you can enter matlab commands using either a function subsindex subscript index.isinf true for infinite elementsacos inverse cosineacosh inverse hyperbolic cosine.asin inverse sine.asinh inverse hyperb

12、olic sine.cos cosine cosh hyperbolic cosine.sin sine.3. 帮助窗口 (help window)帮助窗口提供与帮助命令相同的信息,但窗口式的帮助界而更为方便直接。在matlab 命令窗口中有三种方法进入帮助窗口: 选取帮助菜单里的“help window”项双击菜单条上的问号按钮键入 helpwin4. 帮助桌面(helpdesk)通过在命令窗口屮选择帮助菜单的“help desk"选项后健入help desk命令即可进入帮助 桌面。这两种方法都会门动启动浏览器,用户可利用浏览器的功能來浏览帮助。5. 在线帮助页帮助桌面的在线帮助均

13、有相应的pdf格式文件,可以用adobe acrobat reader浏览器打开。 可以方便的翻页和查找。用户选中帮助桌面的关于pdf格式文件的选项,或是在命令窗口键 入doc,便会口动打开文件。6. mathworks 网站对于已连入internet的用户,可通过helpdesk直接访问math works公司的网站 询问有关 问题。五. matlab的数值计算功能1.变量和其它岛级语言一样,matlab也是使川变量來保存信息。变量由变最名表示,变量的命名应遵循如下规则: 变量名必须以字母开头。 变量名可以由字母、数字和下划线混合组成。 变量名区分字母大小写。变量名的字符长度不应超过31个。

14、在matlab内部还存在着一些系统默认的特殊变杲和常数,如表1.1表1-1 matlab内部的特殊变量和常数变量或常数含义 1,)虚数单位ans在没有定义变最名时,系统默认的变最名为anspi圆周率兀inf无穷大nan表示不定值,由inf/inf或0/0产生why提供几乎任何问题的简捷回答matlab的变量分为字符变暈和数值变量两种,字符变量必须用单引号括起來。 例1-3例如,用户可输入:a='happy new year'则表示将字符出'happy new year,赋值给字符变量a。若用户输入:b=365则表示将数值356赋值给数值变量b。和其它高级语言不同的是,m

15、atlab使川变量时不需要先对变量类型进行说明,matlab 会口动根据所输入的数据来决定变量的数据类型和分配存贮空间。2. 数值在matlab内部,每一个数据元索都是用双精度來表示和存储的,大约有16位有效数 字。其数值有效范围约为io-308 io+308o但在其进行数据输入输出时,matlab却可以用不同的格式。如果参加运算的每一个元 素均为幣数,则matlab将用不加小数点的纯整数格式显示运算结果,否则,按默认的输出 格式显示结果。matlab的默认格式为short格式,该格式显示运算结果为保留小数点后4位 有效数字。用户可以通过format命令改变输出格式为long,以得到更多的有效

16、数字(小数点 后14位)。需耍注意的是,数据输出格式的改变并不影响该数据在matlab内部的存储精度。 设s为short和long输出格式的命令分别为:format shortformat longmatlab通常用十进制数来表示一个数,亦可用科学计数法来表示一个数。另外, matlab还可以进行复数运算,复数运算可以由如下语句来产生:c=a+j*b (或c=a+i*b)将实部为a虚部为b的复数值賦值给复变量cc=a*cxp(j*b)(或c=a*cxp(i*b) 将模为a幅角为b的复数赋值给复变戢c3. 矩阵矩阵是matlab进行数据处理和运算的基本元素,matlab的大部分运算或命令都是在

17、矩阵运算的盘义下执行的。我们通常意义上的数量(标量)在matlab系统中是作为1x1 的矩阵来处理的,而仅有一行或-列的矩阵在matlab屮称为向屋。1)矩阵的创建matlab屮矩阵的输入-般有以卜-儿种方法:直接输入矩阵元索。直接输入矩阵元索必须注意:各元索z间用空格或逗号间隔,用分 号(¥ ”)或回午结朿矩阵行,用中括号“”把矩阵所有元索括起來。例1-4在命令窗口输入如下形式:a二1,2,3;4,5,6;7,8,9或 a=l 2 34567 8 9结果为a =®matlab屮有许多特姝矩阵,可直接调用matlab函数产生。如衣1.2所示。表1.2 matlab中的特殊矩

18、阵特殊矩阵调用格式含义onesa=ones(m,n)生成mxn大小的全1矩阵zerosa=zeros(m,n)生成mx n大小的全0矩阵eyea=eye(m,n)生成m x n人小的单位阵randa=rand(m,n)生成mxn大小的随机矩阵2) 矩阵的下标在matlab系统中,矩阵的元索是通过其行、列的标号來标识的,矩阵元素所处的行号 和列号称为该元索的下标。矩阵元索对以通过其下标来引用,a(i,j)即表示矩阵a第i行第j 列的元索。例1-5定义矩阵a如下所示:a=11.21.31.41.51.61.71.8i.9j则a(2,3)表示矩阵a第2行笫3列的元素1.6。若输入语句:x 二 a(l

19、,l)+1(2,2)+a(3,3)则x即是矩阵a对和线元素之和,运行结果为x= 4.5000注意:在matlab中,矩阵下表的行、列号都是从1开始的。3) 利用外部数据文件保存和装载矩阵在运行过程中,有时需耍将矩阵数据长期保留下來,以备以后使用,这时就可以使用在 mat文件来对矩阵数据进行保存,在需要时又将其装载到matlab环境中。mat文件(即扩展名为mat的文件)是matlab保存数据的-种标准格式的二进制文件。mat文 件的生成和调用有专用命令save和1 oad来进行。用户可以将己定义过的矩阵(变最)以mat文件的格式存入到磁盘上,命令格式为:save路径文件名变最名save命令可同

20、时将多个矩阵(变量)保存到一个mat文件中,此时变量名之间需用空格分 开。例如,用户输入命令:save c:my a b则表示将变量a、b以文件名my. mat保存到c盘根目录下。若路径默认,则matlab自动将变量保存到其默认的目录(work)中。以mat文件保存的矩阵,用户在使用matlab的任何时候均可用load命令装载到matlab的工 作空间中。例如,要将上述保存的变屋b直新装载到matlab的工作空间,只需键入命令: load c:my4) 矩阵和数组的运算在matlab屮,数组也是一个非常重耍的概念,矩阵在某些情况下可视为二阶的数值型 数纽。但是在matlab中,数组和矩阵运算规

21、则却有着较大的区别。例如,两矩阵相乘和两 数组和乘所遵循的运算规则就是完全不相同的。具体运算规则如表13所示。表1.3 matlab中关于矩阵和数组的算术运算符运算符名称指令示例说明+加a+b若a、b为同维矩阵,则表示a与b对应元索相加;若其中 一个矩阵为标量,则表示另一矩阵的所有元索加上该标量减a-b若a、b为同维矩阵,则表示a与b对应元索相减;若其中 一个矩阵为标虽,则表示另一矩阵的所有元索减去该标虽*矩阵乘a*b矩阵a与b相乘,a和b均可是向量或标虽,但a和b的维数必须符合矩阵乘法的定义数组乘a.*b矩阵a与b对应元素相乘,a与b必须为同维矩阵或其中z为标量a矩阵乘方aaba、b均为标量

22、时,表示a的b次方标:a为方阵,b为正整 数时,表示矩阵a的b次乘积:a为方阵,b为负整数时, 表示雉阵a逆矩阵的b次乘积;当a、b均为矩阵时无定义a数组乘方a. ab矩阵a的各元索与矩阵b的对应元索的乘方运算,即a(ij)ab(ij), a、b必须为同维矩阵矩阵左除ab方程a*x=b的解x数组左除a.b矩阵b的各元索与矩阵a的对应元索,a与b必须为同维矩 阵或其中之一为标量/矩阵右除a/b方程x*b=a的解x/数组右除a./b矩阵a的务元素与矩阵b的对应元素,a与b必须为同维矩 阵或其中之一为标量9共轨转置a,矩阵a的共轨转置另外,在matlab内部有一些特殊的函数用于对矩阵进行运算,如下所

23、示。 size()函数size()函数用于计算矩阵的行数和列数,其调用格式为:d=size(a)将矩阵a的行数和列数赋俏给变量d(m,n=size(a) 将矩阵a的行数赋值给m、列数赋值给n lcngth()函数length()函数用于计算矩阵的长度(列数),其调用格式为:a= length(b)将矩阵b的列数赋值给变量asum()函数sum()函数用于实现矩阵元素的求和运算,其调用格式为:sum(a)若a为向量,则该调用格式将计算出向量a所有元索z和。若a为矩阵,则该 调用格式将产生一行向量,其元素分别为矩阵a的各列元素之和。 max()函数max ()函数用于求出矩阵元索的最大值,其调用格

24、式为:max (a)若a为向量,则该调用格式求出向屋a所有元索的最大值。若a为炬阵,则 该调用格式将产生一行向量,其元素分别为矩阵a的各列元素的最大值。4 运算符matlab的基本运算为算术运算、关系运算、逻辑运算和特殊运算等,每一类运算都有自己专用的运算符。关于矩阵和数组的算术运算符已在表1.3中列出,如下表1.4、表1.5、表16分别列jut matlab的关系运算符、逻辑运算符、特殊运算符和合其对应的功能与示例。表1.5 matlab的逻辑运算符运算符名称=等于不等于>大于<小于>=大于等于<=小于等于表1.4 matlab的关系运算符表运算符名称&逻辑与

25、1逻辑或逻辑非运算符名称说明 冒号用于产生向屋方括号用于创建和表示矩阵分号用于分隔矩阵的行或不显示屮间结果%百分号用于注释语句9逗号用于分隔矩阵列=等号用于赋值()圆括号用于函数调用和指定运算顺序表1.6matlab的特殊运算符六程序流程控制matlab为用户提供了丰富的程序结构语旬用來实现用户对程序流程的控制。1. 循环控制语句当程序段中的某段指令需要根据一定能够的条件多次重复执行时,就需要用到循环控制。 在matlab中,循环控制由for语句和while语句实现。1) for循环语句for循环语句的格式为:for变量=表达式语句组end在上述格式中,end是必需的,不可默认。表达式是一个矩

26、阵,语句组则是一组合法的 matlab 命令。for循环语句则执行过程是:从表达式的第一列开始,依次将表达式(矩阵)的各列z值 赋值给变最,然后执行语句组屮的语句,直到故后一列。for语句的典型格式是表达式为冒号运算的行向屋,即:for i=m:p:n语句组end其中m为循环起始值,n为循环终止值,p为步长值。例1-6.我们用for语句來实现求和运算s=l+3+5+7+-+99,对应的matlab命令如下: s=0;for i=l:2:99s=s+i;ends运行结果为:s=2500在上述格式中,步长p可以默认,系统将默认步长为1。例1-7.我们可用如下语句来实现求和运算s=l+2+3+4+1

27、00s=0;for 1=1:100s=s+i;end运行结果为:5050for语句也训实行多重循环的嵌套,其格式为:for变量1二表达式ifor变量2=表达式2语句组endend注意:在用for语句实现多重循环时,for和end必须成对出现。2) while 语句while语句用来实现在某一逻辑关系控制下的循环。while语句的格式为:while关系表达式语句组end在while语句中,end也是必需的,不可默认。while语句的执行过程是:首先判断关系表达式是否成立,如果成立则运行语句组中的语句,否则停止循环。通常是通过在语句中对关系表达式进行改变來控制循环是否结束。(111 1例1-8.我

28、们用while语句來实现下列级数求和:s = 1 + + + + 234100命令如下:s=0;n=l;while n<= 100s=s+l/n:n=n+1;end运行结果为:5.18742 条件控制语句和其他高级程序语言样,matlab也为用户提供了方便的条件控制语句,用以实现程 序的条件分支运彳亍。实现条件控制的matlab命令是if语句和switch语句。1) if语句if语句有两种格式。当分支条件z有两利箭况时,可采用if语句的第一种格式,即if表达式语句组ielse语句组2end上述if语句的运行结果是,如果表达式成立,则运行语句组1,若表达式不成立,则运行 语句组2。当程序运

29、行的分支条件多于两个时,则可采用if语句的第二种格式,即:if 表达式1语句组1cl seif表达式2语句组2else语句组3end上述if语句的运行结果是,若果表达式1成立,则运行语句组1;若表达式2成立,则运 行语句组2;否则,则运行语句组3。2) switch 语句当程序运行过程屮需要根据某个变量的多种不同取值悄况來运行不同的语句时,就要用 到switch语句。switch语句适合于多个条件的分支程序,其基木格式为:switch控制变量case变量1语句组1case变量2语句组2case变量3语句组3otherwise语句组n在上述格式屮,switch语句通过判断控制变量的取值悄况來决定

30、运行哪一个语句组,即当 控制变最的值为变最值1时,则运行语句组1;当控制变最的值为变杲值2时,则运行语句组 2,依此类推。若所有条件购不满足,则运行otherwise后的语句组。注意,在switch语句中,end是必需的,不对默认。七.m文件matlab为用户提供了专用的m文件编辑器,用业帮助用户完成m文件的创建、保存 及编辑等工作。1. 创建新m文件利用m文件编辑器创建新m文件有如下两种方法:方法一:启动matlab,选中命令窗口菜单栏file菜单下new菜单选项的m-file 命令,打开matlab的m文件编辑窗口。方法二:单击matlab命令窗口工具栏的“new m-file"

31、图标按钮,也町打开m文件编 辑器。2. 保存m文件当用户的m文件己输入或编辑完毕后,则可将m文件保存到磁盘上。保存m文件的方 法超,单击m文件编辑器窗口的匸具栏中的“save”图标按钮或选中m文件编辑器窗口菜单 栏file菜单的【save】命令,打开m文件保存对话框。如果是新建m文件,则系统默认的文件名为“untitledl.m”,用户可以对要保存的文件 进行重新命名。系统默认的文件保存li录为“work”,用户也可以通过保存对话框对文件保存 位置进行更改和设置。当保存的文件名和保存位置设定完成后,按下【保存】按钮,即可将m 文件保存到指定位賈。3. 打开m文件若需要对己保存过的4文件进行修改

32、和编辑,则可单击matlab命令窗口工具栏血open file”图标按钮或选中命令窗口菜单栏【file】菜单下的【open】命令,系统即启动m文件编 辑器并打开用户指定的h文件。4. 搜索与执行m文件m文件中的命令是通过在matlab命令窗口中键入m文件的文件名并按下冋年键來执行 的。当用户在命令窗口屮键入m文件的文件名并按下回车键后,系统先搜索该文件,若该文 件存在,则以解释方式按顺序逐条执行m文件语句。“work”冃录是系统m文件的默认保存冃录。若用户的m文件保存在“work”冃录以外 的其他位置,则町通过如下两种方式在matlab命令窗口中直接调丿ij该m文件。方式一:启动matlab后

33、,用“cd”命令将当前工作口录更改为m文件的保存口录, 如:cd a:mydata方式二:用“path”命令将m文件的保存口录添加到matlab的默认搜索路径中。设待执行的m文件的保存位置为“d:myfile”,则添加的搜索路径的命令为:path( path.'d:myfilc')运行该命令后,即可直接在matlab命令窗口屮直接调用并执行d:myfile冃录下的所 有m文件。八. 函数文件函数文件是m文件的另一种类型,它也是山matlab语句构成的ascii码文本文件,扩 展名为用户可用前述的m文件的创建、保存及编辑的方法來进行函数文件的创建、保存 与编辑,但待别需要注意以下

34、儿点:函数文件必须以关键字"function 11开头。函数文件的第1行为函数说明语句,其格式为:function 返回参数1,返回参数2,匸函数名(传入参数1,传入参数2,)其中西数名为用户自己定义的怖数名(与变量的命名规则相同)。函数文件保存的文件名应与用户定义的函数名一致,例如,若函数文件说明语句中定义 的函数名为"example ”,则该函数文件保存的文件名为"examplem"。用户对通过函数说明语句屮的返回参数及传入参数来实现函数参数传递。返回参数和传 入参数并不是必需的。下面是函数文件调用及参数传递的例子。例1-9.首先创建如f所示的函数文

35、件并保存。function |s,m=pjz(a) %定义函数文件pjz.m» a为传入参数,m、s为返冋参数 l=length(a); %计算传入向量长度s=sum(a);%对传入向最a求和并赋值给sm=s/l;%计算传入向量的平均侑并赋值给返回向量m上述函数文件定义了 1个新的函数pjz,其作用是对指定向量求和及平均值,并通过向量 s、m返回计算结果。用户可通过如下所示的命令调川该函数:a=l:9;s,m=pjz(a)运行结果为:s =45m =5九. matlab的可视化matlab在数据可视化方面的表现力很强。它的图形处理能力不仅功能强大,而且充分 考虑了高低不同层次用户的不

36、同需求,系统具有两个层次的绘图指令:一个层次是直接对图 形句柄进行操作的底层绘图指令,它具有控制和表现数据图形能力强,控制灵活多变等优点, 对于有较高和特殊需求的用户而言,该层次能够完全满足他们的需求;另一层次是在底层指 令基础上建立的爲层绘图指令,它的指令简单明了,易于学握,适用于普通用户。常用的matlab绘图语句有figure、plot、subplot、stem,等,图形修饰语句有title、axis、 text 等。1 .figure 语句figure涪句有两种用法,只用一句figure命令,会创建一个新的图形窗口,并返回一个整 数型的窗口编号。figure(n)表示将第n号图形窗口作

37、为当前的图形窗口,并将其显示在所有窗 口最前面;如果该图形窗口不存在,则新建一个窗口,并辅以编号n。2. plot语句线型绘图函数,将点和点z间用直线段连接。用法为plot(x,y;s,),参数x为横轴变量,y 为纵轴变量,s用以控制图形的基本特征如颜色、粗细,通常可以省略。常用方法如表1.7 所示。表1.7 plot命令的参数及其含义参数含义参数含义参数含义y黄色点实线m紫色o圆虚线c育色x打叉点划线r红色+加号破折线g绿色*星号a向上的三角形b蓝色s正方形<向左的三角形w白色d菱形>向右的三角形k黑色v向下的三角形p五角星形3. stem语句绘制离散序列图,常用格式stem(y

38、)和stem(x,y)分别和相应的plot的函数绘图规则相同, 只是用slem命令绘制的是离散序列图。4. subplot 语句subplot(m,n,i)图形显示时分割窗口命令,把一个图形窗口分为m行,n列,mx n个小窗 口,并指定第i个小窗口为当前窗口。5. 绘图修饰命令在绘制图形时,我们通常需要为图形添加备种标注以增加可读性。在plot语句后使用title (,标题,)可以在图形上方添加标题;使用xlabelc标记')或ylabelc标记')为x轴和y轴添加 说明;使用tcxt(x值、y值、想加的标示,)可以在图形屮任童位置添加标示;使用 axis(xmin,xmax,

39、ymin,ymax)设置坐标轴的最小最大值;gtext(*string,)利用鼠标添加说明性文本 信息;grid on(off)给当而图形标记添加(取消)网格。例1-10用matlab语句绘正弦图,其运行结果见图1.2x=0:0.01*pi:2*pi;figure(l);subplot(2,2j); plot(x,sin(x); title('正弦线'); subplot(2,2,2);plot(x,sin(x)/r); xlabel(x);ylabelcsin(x)*);subplot(2,2,3);plo(x,sin(x);");subplot(2,2,4);pl

40、ot(x,sin(x)/r+,);text(4,0;注记');10.50-0.5-1%定义x向量%创建-个新的图形窗口,编号为1%将窗口划分为2行2列,在第i个窗口中作图%画图%给图形加标题%在第2个窗口中作图%画正弦波,红色%给x轴加说明%给丫轴加说明%在第3个窗口中作图%画一正弦波,破折线%在第4个窗口中作图%画一正弦波,红色加号%在位置(4,0)处加一注记正弦线0246810.50-0.5'102468图1.2例l10的运行结果6. 添加图利函数legend()基本格式:legend('stringl','string2',.)lege n

41、d( .,pos)功能:给图加图例,对于每个已经画出的曲线,可以配置想要的图例。参数:itringl丫string/,解释图例的字符串pos 决定放置图例的位置pos=-l将图例放在轴边距外右边pos= 0将图例放在轴边距内右边占用尽量少的点pos= 1将图例放在轴的右上方(缺省值)pos= 2将图例放在轴的左上方pos=3将图例放在轴的左下方pos=4将图例放在轴的右下方例1-11. legend用法举例x=-pi:pi/20:pi;plot(x,cos(x)/-rox,sin(x)/-.b*)图1.3例111的运行结果【三】上机练习1. 仔细预习第二部分内容,关于m/xtlab的基础知识。

42、2. 熟悉matlab环境,将第二部分所有的例子在计算机上练习一遍j23_987_3.已知矩阵a =456,b =654。求a*b, a.* b,比较二者结789321果是否和同。并利用matlab的内部函数求矩阵a的大小、元素和、长度以及最 大值。4. fibonacci数组的元索满足fibonacci规则:cl* =,伙=】,2,);且4 =色=1。现要求该数组中第一个大于10000的元索。1)在命令窗口中完成;2)利用m文件完成:3)白己定义一个函数文件,并在命令窗口中调用该函数完成。5. 在同一个图形窗口的两个子窗口中分别画出cos(彳兀)(红色、虚线)和cos( x)(蓝色、星号)的

43、波形。要求有标题,x、y轴有标注。【四】思考题1. 在语句末加分号“;”和不加分号有什么区别?2. m文件和函数文件有什么异同z处?3. 矩阵乘(*)和数组乘(*)有何不同?【五】实验报告要求1. 简述实验目的;2. 实验内容及结果分析:1)附上源程序淸单,要求可读性好,必要处要加注释;2)实验结果,包括运行的数值结果或图形;3)结果分析,正确与否,谋差原因。3. 简耍回答思考题;4. 简述本次实验的体会和建议。实验二信号的表示及可视化【一】实验目的1. 掌握连续信号的matlab表示方法(表达式及图形描述);2. 拿握离散序列的matlab表示方法(表达式及图形描述);【二】实验原理在mat

44、lab中通常用两种方法來表示信号,一种是向量表示信号,另种则是用符号运 算的方法來表示信号。用适当的matlab语句表示出信号后,我们就训以利用matlab的 绘图命令绘出比观的信号波形。连续时间信号的表示及可视化从严格意义上來讲,matlab并不能处理连续信号,在matlab中,是用连续信号在 等时间间隔点的样值來近似地表示连续信号的,当収样时间间隔足够小时,这些离散的样值 就能较好的近似出连续信号。1向量表示法对于连续时间信号f(t),我们可以用两个行向量f和t來表示,其中t向量是形如t=h:p:t2 的matlab命令定义的时间范刖向量,u为信号起始时间,s为终止时间,p为时间间隔。向

45、量f为连续信号f(t)在向量t所定义的时间点上的样值。例2-1.例如对于连续信号f(t)=sa(l),我们可以用如下两个向量来表示:= 10:1.5:10;f=sin(t)7t;观察执行结果。用上述向量对连续信号进行表示后,就可以用plot命令來绘出该信号的时域波形。plot 命令可将点与点间用直线连接,当点与点间的距离很小时,绘出的图形就成了光滑的曲线。 matlab命令如下:plot(t,f)title(*f(t)=sa(o,)xlabel('t')2.符号运算表示法如果信号对以用-个符号表达式来表示它,则我们可用ezplot命令绘制出信号的波形。例22对于连续信号/= s

46、in(兰/),我们可以用符号表达式表示为:然后用ezplol命令绘制其波形:ezplot(f,-16,16)3. 常用连续信号的表示1) 单位阶跃信号单位阶跃信号的定义为:£(a = 1f>00 r<0单位阶跃信号是信号分析的基本信号z-,在信号与系统分析中有着十分垂要的作用, 常用于简化信号的时域表示。根据单位阶跃信号的特性,我们可以用它来表示时限信号和单 边信号(因呆信号)。方法一:一种得到单位阶跃信号的方法是在matlab的symbolic math toolbox中调用单 位阶跃函数heaviside,这样可方便地表示出单位阶跃信号。但是,在用函数ezplol实现

47、其可 视化时,就出现一个问题:函数czplot只能画出既存在于symbolic math t具箱屮,又存在于 总matlab工具箱中的函数,而heaviside函数仅存在symbolic math toolbox中,因此,就 需要在自己的工作目录work卜创建heaviside的m文件,该文件如下:function f=ieaviside(t)批注$2: h 小药批注s3:保存m文件。文件名=函数名heavisidc.nif=(t>0);%t>0 时 f 为 1,否则为 0正确定义出该函数并牖稠例2-3.用matlab画出信号/(/)二+ 3) 2g(f)的波形f=sym(*hea

48、viside(t+3)-2*heaviside(t)>)ezplot(f,-5,4j)hold on,plot(0,0,-l,l),axis(卜5,4厂 1,1.1),hold off1 r>0方法二:用符号函数sgn(f) = 0 ; = 0 来生成单位阶跃函数,即-1t<0£(/) = + sgn(r)。而sgn(t)的表示|j调用matlab中的符号函数sign來实现。例24若定义向量:=5:0.05:5;f=sign(t);然后,用下面的命令就可绘出符号函数的波形:plot(t,f),axis(-5,5,-1.1,1.!)再用以下的命令表示单位阶跃信号并绘出

49、它的波形ff=l/2+i/2*f;plot(t,ff),axis(-5,5,-0.l ,1.11)2)甲位冲激信号单位冲激信号的定义为加)del5(/) = 0,心0s (t)的定义表明,该信号除原点以外,处处为零,且信号ihi积为一。即设有矩形脉冲 pn(z),则由 8 (t)的定义可得5(/) = limpjz)§ (t)是信号与系统分析的基本信号之一,是我们进行信号分析的基础。严格说來,matlab是不能表示单位冲激信号的,但我们可用时间宽度为dt ,髙度为1/dt 的矩形脉冲來近似地表示冲激信号。当dt趋近于零时,就较好地近似出冲激信号的实际波形。 下面是绘制单位冲激信号及其

50、在时间轴上的平移信号s (t+to)的hatlab予程序,其中s , t2 表示信号的起始时刻,表示信号沿坐标的平移量。绘图命令用stairs,该命令一般用于绘 制类似楼梯形状的步进图形,在这里使用该命令是因为显示连续信号中的不连续点用stairs 命令绘图效果较好。function chongji(t 1 ,l2,t0)dt=o.ol;t=ti:dt:t2;n=length(t);x=zcros(l5n);x(l,(-to-tl)/dt+l)=l/dt;stair s(t,x);axis(tl,t250j.2/dt)title('单位冲激信号j例2-5.下面就调用chongji函数绘

51、制6(i), -kk5的波形。matlab调用命令为:chongji (-1, 5, 0)程序执行后结果为:甲2冲激借号-til二.离散时间信号的表示及可视化1. 一般离散信号的表示i般说来,离散时间信号用f(k)表示,其中变量k为整数,代表离散的采样时间点。在matlab中,用一个向量f即可表示一个有限长度的序列。但是,这样的向量并没有 包含其对应的时间序号信息。所以,耍完整地表示离散信号需要用两个向量。例 2-6.如序列:f(k) = p,2,-l,3,2,4,-lk=0在matlab屮应表示为:k=-3,-2,-l,0,l,2,3或是 k=-3:3;f=l,2,t,3, 2, 4,-1;

52、在用matlab表示离散序列并将其可视化时,我们要注意以下儿点:第一,与连续时间 信号不同,离散时间信号无法用符号运算来表示;第二,由于在matlab中,矩阵的元素个 数是有限的,因此,matlab无法表示无限序列:第三,在绘制离散信号波形时,耍使用专 门的绘制离散数据的stem命令,而不是plot命令。如对于上面的定义的二个向虽f和k,可 用如下的命令绘图:siem(k,f,'filled'),axis(卜 4,4, 1.5,4.5)得到对应波形,如图2.2。0 123图2.2例2.6的运行结果2 典型离散序列的表示下面通过一些典型的离散信号来说明如何用matlab实现离散序

53、列的表示利可视化。1) 单位序列6 (k)单位序列的定义为5(k) = <由单位序列定义知,只有在加0时,6 (k)的值为1,而其它时刻为0,因此,用matlab 來表示单位序列及绘制其波形非常简单。下面是绘制6 (k+ko)的子程序,其中k0为6 (k)在时间轴上的位移量,k0<0则右移,k0>0 则左移,kl, k2分别为时间序列的起始和终止时间序号,且klwkok2,调用该函数就可以 绘出单位序列及其移位序列的波形图:function dwxulie(kl,k2,k0)k=kl :k2;n=lcngth(k)f=zeros(l,n)f(l,-ko-kl + l)=l%在

54、1<0时刻,信号赋值为1stem(k,f,'filled')axis(kljc2,0,15)titlec ip-位序列 8 (k)')例2-7.画出6 (k)在-5wkw5区间的图形。调用上述函数dwxulie來完成,调用命令为:dwxulie(-5,5, 0)2)单位阶跃序列单位阶跃序列8(k) = <1 *>00 k<0与单位序列类似,下面给出绘制单位阶跃序列£ (k+ko)的matlab子程序:function jyxulie(kl, k2, ko)k=kl:-kot;kk=-ko:k2;n=length(k);nn=length

55、 (kk);u=zeros (1, n);%k0询信号赋值为零uu=ones(l, nn):%k0后信号赋值为一stem(kk, uu,j filled,)hold onstem(k, u,' filled')hold offaxis(kl, k2, 0, 1.5)titlec单位阶跃序列')例2-8.用matlab绘出单位阶跃序列£ (k)在-3wkw8区间的图形。可调用上述程序來完成,调用命令为:jyxulie(-3, & 0)单位阶跃序列3) 正弦序列正弦序列的表达式为:/伙)=a cos伙q +(p)式中£为无最纲的無数,q和0以弧度为单位,d称为正弦序列的数字角频率,0为 初柑位。需耍注意

温馨提示

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

评论

0/150

提交评论