版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、信号与系统分析上机浜马佥指导吴冬梅石崟闫红梅编西安科技大学2006年3月冃u s“信号与系统分析”课程是电子与通信类专业的主要专业基础课之一,该课程是将学牛 从电路分析的知识领域引入信号处理与传输领域的关键性课程,对后续专业课起着承上启下 的作用。该课程的棊本方法和理论大量应用于计算机信息处理的各个领域,特别是通信、数 字语音处理、数字图像处理、数字信号分析等领域,应用更为广泛。因此,让学生掌握对信 号与系统进行分析的基本方法和理论,无论对今后专业课的教学,还是学生毕业后从事专业 工作的能力,都具冇重要的意义。长期以来,“信号系统分析”课程一直采用黑板式的单一教学方式,学生仅依靠做习题来 巩固
2、和理解教学内容,对课程中大量的应用性较强的内容不能实际动手设计、调试、分析, 严重影响和制约了教学效果。因此,该课程迫切需要进行教学方法和教学手段的改革,即在 改进教学方法和调整教学内容的同时,实现在实验环境小,以计算机辅助教学手段,用信号 分析的软件帮助学牛完成数值计算、信号与系统分析的可视化建模及仿真调试,培养学生主 动获取知识和独立解决问题的能力,为学习后继专业课打下坚实的基础。matlab语言在矩阵运算和数值计算等方面具有强人的功能,非常宜观、简洁,且效率高, 交互性好,因而它在科学与工程计算方面的优势是显而易见的。采用matlab语言作为编程工 具,便于学生快速掌握和进行自主创造性的
3、学习。本上机指导廿主要由九个实验组成,内容包括:matlab的基本使用;信号的表示及可视 化;信号的时域运算、时域变换及matlab实现;离散序列卷积和的matlab实现;周期信号 傅里叶级数;傅立叶变换及性质;利用matlab分析系统的频率特性;拉普拉斯变换及其曲面 图;离散系统的零极点分析。本指导书由石崟、闫红梅共同编写,吴冬梅负责全书的修改审订。在编写过程小得到通 信学院教师的大力支持,在此一并表示感谢!由于作者水平冇限,本帖难免会冇错误与不足z处,欢迎读者对本巧提出批评和建议。 来信请寄:西安科技大学51信箱(邮编710054),闫红梅;电话:(029) 85580827;电子邮 箱:
4、yhm523163. com作者2006. 2实验一matlab的基本使用1实验二信号的表示及可视化is实验三信号的时域运算、时域变换及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是“matric laboratory" 的缩写,意及“矩阵实验室”。matlab是一完整的并可扩展的计算机环境,是一种进行科学 和工程计算的交互式程序语言。它的基木数据单元是不需要指定维数的矩阵,它可肓接用于 表达数学的算式和技术概念,而普通的高级语言只能对一个个具体的数据单元进行操作。因 此,解决同样的数值计算问题,使用matlab要比使用basic. fortran和c语言等
6、提高效率 许多倍。许多人赞誉它为万能的数学“演算纸”。matlab釆用开放式的环境,你可以读到它 的算法,并能改变当前的函数或增添你自己编写的函数。在欧美的大学和研究机构中, matlab是一-种非常流行的计算机语言,许多重要的学术刊物上发表的论文均是用matlab 来分析计算以及绘制出各种图形。它还是一种有利的教学工具,它在大学的线性代数课程以 及其它领域的高一级课程的教学中,已成为标准的教学工具。二. matlab的启动和退出1 .matlab的启动有如下两种方式:方式一:双击操作系统桌曲上的matlab快捷方式,即可启动并打开matlab命令窗 口。方式二 单击【开始】菜单,依次指向【程
7、序】一 matlab - matlab 6.5即町 启动并打开matlab命令窗口。2. matlab的退出退出matlab非常简单,只需在matlab命令窗口内键入命令quit或单击命令窗口的 【关闭】按扭即可。三. matlab使用界面简介打开matalb后,缺省的操作桌面如图1.1所示。常用的有命令窗、历史命令窗、当前 1=1录浏览器、t作空间浏览器、和交互界血分类1=1录窗5个窗口。如图1.1所示。1. 命令窗(command window)该窗缺省地处在matlab桌面的右侧,该窗功能是进行各种matlab操作的主要窗 口。在该窗内,可键入各种送给matlab运作的指令、函数、表达式
8、;显示除图形外的所 有运算结果。图1.1 matlab操作桌面的缺省外貌2. 历史命令窗(command history)该窗缺省地处于matlab桌面的左下方前台。该窗记录已经运作过的指令、函数、表 达式;允许用户对它们进行选择复制、重运行、及产生m文件。3. 当前 h 录浏览器(current directory browser)该浏览器缺省地位于matlab桌面左下方的后台。在此交互界面中,可以进行当前ii 录的设置;展示和应口录上的m、mdl等文件;复制、编辑和运行m文件;装载mat数 据文件。4. 工作空间浏览器(workspace browser)该交互界面缺省地位于matlab桌
9、面的左上方后台。该窗口列出matlab工作空间 中所冇的变屋名、大小、字节数;在该窗中,可对变虽进行观察、编辑、提取和保存。5. 交互界面分类目录窗(launchpad)该交互界面缺省地位于matlab桌面的左上方前台。该窗以可展开的树状结构列着 matlab提供的所冇交互界面,包括:帮助界面、演示界面、各种应用交互界面。用户若 双击该树状结构上的分类图标,就可展现出相应的交互界面。四.帮助信息的获取matlab里有以下儿种方法可获得帮助:帮助命令(help)、look for命令、帮助窗口 (help window)、帮助桌面(help desk)、在线帮助页或直接通过网络连接到mathwo
10、rks公司。1. 帮助命令(help)帮助命令是查询函数相关信息的最直接方式,信息会直接显示在命令窗口中。如果你知 道要找的题材(topic)是什么,直接键入help<topic>o例11例如在命令窗口键入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 subs1ndex subscript index.isinf true for infinite elements.acos inverse cosine.acosh inverse hyperbolic cosine.asin inverse sine.asinh inverse hyperbolic sin
12、e.cos cosine.cosh hyperbolic cosine.sin sine.3. 帮助窗口 (help window)帮助窗口捉供与帮助命令相同的信息,但窗口式的帮助界面更为方便直接。在matlab 命令窗口中有三种方法进入帮助窗口 : 选取帮助菜单里的“help window”项双击菜单条上的问号按钮键入 helpwin4. 帮助桌面(help desk)通过在命令窗口屮选择帮助菜单的“help desk”选项后键入help desk命令即可进入帮助 桌而。这两种方法都会口动启动浏览器,用户可利用浏览器的功能来浏览帮助。5. 在线帮助贝帮助桌面的在线帮助均有相应的pdf格式文件
13、,可以用adobe acrobat reader浏览器打开。 可以方便的翻页和查找。用户选屮帮助桌面的关于pdf格式文件的选项,或是在命令窗口键 入doc,便会口动打开文件。6. mathworks 网站对于已连入internet的用户,可通过helpdesk直接访问mathworks公司的网站 询 问 有关问题。五.matlab的数值计算功能1. 变量和其它高级语言一样,matlab也是使用变量来保存信息。变量由变量名表示,变量的命名应遵循如下规则: 变景名必须以字母开头。 变量名可以由字母、数字和下划线混合组成。 变量名区分字母大小写。变量名的字符长度不应超过31个。在matlab内部还存
14、在着一些系统默认的特殊变量和常数,如表1.1表1-1matlab内部的特殊变最和常数变量或常数含义 l,j虚数单位7-1ans在没有定义变虽:名时,系统默认的变量名为anspi圆周率兀inf无穷人nan表示不定值,由inf/inf或()/0产生why提供几乎任何问题的简捷回答matlab的变量分为字符变呈和数值变量两种,字符变量必须用单引号括起来。 例13例如,用户可输入:a='happy new year则表示将字符串,happy new year,赋值给字符变量a0若用户输入:b 二 365则表示将数值356赋值给数值变量bo和其它高级语言不同的是,matlab使川变量时不需要先对
15、变量类型进行说明,matlab 会h动根据所输入的数据来决定变最的数据类型和分配存贮空间。2. 数值在matlab内部,每一个数据元素都是用双精度來表示和存储的,人约有16位有效数 字。其数值冇效范围约为io-308 io+308o但在其进行数据输入输出时,matlab却可以用不同的榕式。如果参加运算的每一个元 素均为整数,则matlab将用不加小数点的纯整数格式显示运算结果,否则,按默认的输出 格式显示结果。matlab的默认格式为short格式,该格式显示运算结果为保留小数点后4位 有效数字。用户可以通过format命令改变输出格式为long,以得到更多的有效数字(小数点 后14位)。需要
16、注意的是,数据输出格式的改变并不彫响该数据在matlab内部的存储精度。 设置为short和long输出格式的命令分别为:format shortformat longmatlab通常用i进制数来表示一个数,亦可用科学计数法来表示一个数。另外, 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中矩阵的输入一般有以下儿种方法:直接输入矩阵元索。直接输入矩阵元索必须注意:各元素之间用空格或逗号间隔,川分 号(“;”)或回车结束矩阵行,用屮括号“”把矩阵所有元素括起来。例1-4在命令窗口输入如卜-形式:a=l,2,3;4,5,6;7,&9或 a=fl 2 34567 8 9结果为a =matlab中冇许多特殊矩阵,可直接调用matlab函数产生。如表1.2所示。表1.2 matlab屮的特殊矩阵特殊短阵调用格式含义onesa=ones(
18、m,n)生成mxn大小的全1矩阵zerosa=zeros(m,n)生成mxn人小的全0矩阵eyea=eye(m,n)生成mxn大小的单位阵randa=rand(m,n)生成mxn人小的随机矩阵2) 矩阵的下标在matlab系统中,矩阵的元素是通过其行、列的标号來标识的,矩阵元素所处的行号 和列号称为该元索的下标。矩阵元索可以通过具卜标來引用,a(i,j)即表示矩阵a第i行第j 列的元素。例1-5定义矩阵a如卜-所示:a=ll1.21.31.41.51.61.71.81.9则a(2,3)表示矩阵a第2行第3列的元素1.6。若输入语句:x二 a(l,l)+1(2,2)+a(3,3)则x即是矩阵a对
19、角线元素之和,运行结果为x= 4.5000注意:在matlab中,矩阵下表的行、列号都是从1开始的。3) 利用外部数据文件保存和装载矩阵在运行过程中,有时需耍将矩阵数据长期保留下来,以备以后使用,这时就可以使用在 m/vt文件来对矩阵数据进行保存,在需耍时又将其装载到matlab环境中。mat文件(即扩展名为mat的文件)是matlab保存数据的一种标准格式的二进制文件。mat文 件的生成和调用有专用命令save和load来进行。用户可以将已定义过的矩阵(变量)以mat文件的格式存入到磁盘上,命令格式为:save路径文件名变量名save命令可同时将多个矩阵(变量)保存到一个mat文件屮,此时变
20、量名之间需用空格分 开。例如,用户输入命令:save c:my a b则表示将变量a、b以文件名mymat保存到c盘根冃录2若路径默认,则matlab 口动将变量保存到其默认的h录(work)中。以mat文件保存的矩阵,用户在使用matlab的任何时候均可用load命令装载到matlab的工 作空间屮。例如,要将上述保存的变量a、b重新装载到matlab的工作空间,只需键入命令:load c:my4) 矩阵和数组的运算在matlab屮,数纽也是一个非常重要的概念,矩阵在某些情况卜可视为二阶的数值型 数组。但是在matlab中,数组和矩阵运算规则却有着较大的区别。例如,两矩阵相乘和两 数组相乘所
21、遵循的运算规则就是完全不相同的。具体运算规则如表1.3所示。表1.3 matlab中关于矩阵和数组的算术运算符运算符名称指令示例说明+加a+b若a、b为同维矩阵,则表示a与b对应元素和加;若其中 一个矩阵为标量,贝ij表示另一矩阵的所有元索加上该标量-减a-b若a、b为同维矩阵,则表示a与b对应元索相减;若其中 一个矩阵为标最,则表示另一矩阵的所有元索减去该标最*矩阵乘a*b矩阵a与b相乘,a和b均可是向量或标量,但a和b的维数必须符合矩阵乘法的定义*数组乘a*b矩阵a与b对应元索相乘,a与b必须为同维矩阵或其中z 一为标量a矩阵乘方aaba、b均为标量时,表示a的b次方幕;a为方阵,b为正整
22、 数时,表示矩阵a的b次乘积:a为方阵,b为负整数时, 表示矩阵a逆矩阵的b次乘积;当a、b均为矩阵时无定义a数组乘方a. ab矩阵a的各元素与矩阵b的对应元素的乘方运算,即a(i,jfb(i,j), 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必须为同维矩阵或其中之一为标量共辘转登a'矩阵a的共轨转置另外,在matlab内部有一些特殊的函数用于对矩阵进行运算,如下所示。 sizc()函数size()函
23、数用于计算矩阵的行数和列数,其调用格式为:d=sizc(a) 将矩阵a的行数和列数赋值给变量dfm,n=size(a) 将愆阵a的彳亍数赋值给m、列数赋值给n length()函数length()函数川于计算矩阵的长度(列数),其调用格式为:a= length(b)将矩阵b的列数赋值给变量a sum()函数sum()函数用于实现矩阵元索的求和运算,其调用格式为:sum(a)若a为向量,则该调用格式将计算出向量a所有元索之和。若a为矩阵,则该 调用格式将产生一行向量,其元素分别为矩阵a的各列元素之和。 max()两数max ()函数用于求出矩阵元素的最大值,其调用格式为:max (a)若a为向量
24、,贝u该调用格式求出向量a所有元素的最大值。若a为矩阵,则 该调用格式将产牛一行向量,具元索分别为矩阵a的各列元索的最人值。4. 运算符matlab的基本运算为算术运算、关系运算、逻辑运算和特殊运算等,每一类运算都有 自己专用的运算符。关于矩阵和数组的算术运算符已在表1.3中列出,如下表1.4、表1.5、表 1.6分别列hit matlab的关系运算符、逻辑运算符、特殊运算符和合其对应的功能为示例。表1.5 matlab的逻辑运算符运算符名称=等于=不等于>大于<小于>=大于等于<=小于等于表1.4 matlab的关系运算符表运算符名称&逻辑与1逻辑或逻辑非运算
25、符名称说明冒号用于产生向罐方括号用于创建和表示矩阵分号用于分隔矩阵的行或不显示中间结呆%n分号用于注释语句逗号用于分隔矩阵列=等号用于赋值()圆括号用于函数调用和指定运算顺序表1.6matlab的特殊运算符六程序流程控制matlab为川户提供了丰富的程序结构语旬川來实现川户对程序流程的控制。1. 循环控制语旬肖程序段中的某段指令需要根据一定能够的条件多次重复执行时,就需要用到循环控制。 在matlab中,循环控制由for语句和while语句实现。1) for循环语句for循环语句的格式为:for变量=表达式语句纽end在上述格式中,end是必需的,不可默认。表达式是一个矩阵,语句组则是一组合法
26、的 matlab 命令。for循环语句则执行过程是:从表达式的笫一列开始,依次将表达式(矩阵)的各列之值 赋值给变量,然后执行语句组中的语句,直到授后一列。for语句的典型格式是表达式为冒号运算的行向量,即:for i=m:p:n语句组end其中m为循环起始值,n为循环终止值,p为步长值。例16 我们用for语句來实现求和运算s=l+3+5+7+99,对应的matlab命令如下: s=0;for i= 1:2:99s=s+i;ends运行结果为:s=2500在上述格式屮,步长p可以默认,系统将默认步长为1。例1-7.我们可用如下语句來实现求和运算s=l+2+3+4+100s=0;for 1=
27、1:100s=s+i;ends运行结果为:5050for语句也町实行多重循坏的恢套,其格式为:for变量1=表达式1for变量2二表达式2语句组endend注意:在用for语句实现多重循环时,for和end必须成对出现。2) while 语句while语句川來实现在某一逻辑关系控制下的循坏。while语句的格式为:while关系表达式语句组end在while语句屮,end也是必需的,不可默认。while语句的执行过程是:首先判断关系表 达式是否成立,如果成立则运行语句组中的语句,否则停止循环。通常是通过在语句中对关 系表达式进行改变來控制循坏是否结束。(111 1例1-8.我们用while语句
28、來实现下列级数求和:5 = 1 + - + - + - + + 234100命令如下:s=0;n=l;while n<= 100s=s+l/n;n=n+l;end运行结果为:58742. 条件控制语句和其他高级程序语言一样,matlab也为用户提供了方便的条件控制语旬,用以实现程 序的条件分支运行。实现条件控制的matlab命令是讦语句和switch语句。1 ) if语句if语句有两种格式。当分支条件z有两种悄况时,可采用if语句的第一种格式,即if表达式语句组1else语句组2end上述if语句的运行结果是,如果表达式成立,则运行语句纟f11,若表达式不成立,则运行 语句组2o当程序运
29、行的分支条件多于两个时,则可采用if语句的第二种格式,即:if 表达式1语句组1elseif 表达式2语句组2else语句组3end上述if语句的运行结果是,若果表达式1成立,则运行语句纽1;若表达式2成立,则运 行语句组2;否则,则运行语句组3。2) switch 语句当程序运行过程中需耍根据某个变量的多种不同取值情况來运行不同的语句时,就要川 到switch语句。switch语句适合于多个条件的分支程序,其基本格式为:switch控制变量case变量1语句组1case变量2语句组2case变量3语句组3otherwise语句纽nend在上述格式中,switch语句通过判断控制变量的取值情况
30、来决定运行哪一个语句组,即当 控制变量的值为变量值1时,则运行语句组1;当控制变量的值为变量值2时,则运行语句组 2,依此类推。若所有条件均不满足,则运行otherwise后的语句组。注意,在switch语句中,end是必需的,不对默认。七.m文件matlab为用户提供了专用的m文件编辑器,川业帮助川户完成m文件的创建、保存 及编辑等工作。1. 创建新m文件利用m文件编辑器创建新m文件有如f两种方法:方法一:启动matlab,选中命令窗口菜单栏file菜单下【new】菜单选项的【m-f订e】 命令,打开matlab的m文件编辑窗口。方法二:单击matlab命令窗口工具栏的“new m-file
31、"图标按钮,也可打开m文件编 辑器。2. 保存m文件当用户的m文件己输入或编辑完毕后,贝ij可将m文件保存到磁盘上。保存m文件的方 法是,单击m文件编辑器窗口的工具栏小的“save”图标按钮或选屮m文件编辑器窗口菜单 栏【file】菜单的【save】命令,打开m文件保存对话框。如果是新建m文件,则系统默认的文件名为“untitledl.ni”,用户可以对要保存的文件 进行重新命名。系统默认的文件保存冃录为“work”,用户也可以通过保存对话框对文件保存 位置进行更改和设置。当保存的文件名和保存位置设定完成后,按下【保存】按钮,即可将m 文件保存到指定位證。3. 打开m文件若需要对己保
32、存过的m文件进行修改和编辑,则可单击matlab命令窗口工具栏的“open file”图标按钮或选中命令窗口菜单栏file菜单卜-的open命令,系统即启动m文件编 辑器并打开用户指定的m文件。4. 搜索与执行m文件m文件中的命令是通过在matlab命令窗口中键入m文件的文件名并按下回车键來执行 的。当用户在命令窗口中键入m文件的文件名并按下回年键后,系统先搜索该文件,若该文 件存在,则以解释方式按顺序逐条执行m文件语句。“work”目录是系统m文件的默认保存目录。若用户的m文件保存在“work”目录以外 的其他位置,则可通过如卜两种方式在matlab命令窗口屮直接调用该m文件。方式一:启动m
33、atlab jti,用“cd”命令将当前工作目录更改为m文件的保存目录, 如:cd a:mydata方式二 用“path”命令将m文件的保存h录添加到matlab的默认搜索路径中。设待执行的m文件的保存位置为“d:myfib”,则添加的搜索路径的命令为:path(path,' d:myfile,)运行该命令后,即可直接在matlab命令窗口屮直接调用并执行d:mytile目录卜的所 有m文件。八. 函数文件函数文件是m文件的另一种类型,它也是由matlab语句构成的ascii码文本文件,扩 展名为m。用户可用前述的m文件的创建、保存及编辑的方法來进行函数文件的创建、保存 与编辑,但特别
34、需要注意以下几点:函数文件必须以关键字” function ”开头。函数文件的第1行为函数说明语句,其格式为:function 返回参数1,返回参数2,匸函数名(传入参数1,传入参数2,)其屮函数名为用户白己定义的函数名(与变量的命名规则相同)。函数文件保存的文件名应与用八定义的函数名一致,例如,若函数文件说明语句中定义的 函数名为u example m ,则该函数文件保存的文件名为”example m”。用户对通过函数说明语句屮的返回参数及传入参数來实现函数参数传递。返回参数和传 入参数并不是必需的。卞血是函数文件调用及参数传递的例子。例1-9.首先创建如下所示的函数文件并保存。functi
35、on s,m=pjz(a) %定义函数文件pj乙m, a为传入参数,m、s为返回参数 l=length(a);%计算传入向量长度s=sum(a);%对传入向量a求和并赋值给sm=s/l;%计算传入向量的平均值并赋值给返回向量m上述函数文件定义了 1个新的函数pjz,其作用是対指定向量求和及平均值,并通过向量 s、m返回计算结果。用八可通过如下所示的命令调用该函数:a=l:9;s,mj=pjz(a)运行结果为:s =45m =5九. matlab的可视化matlab在数据可视化方面的表现力很强。它的图形处理能力不仅功能强大,而冃充分 考虑了高低不同层次川户的不同需求,系统具冇两个层次的绘图指令:
36、一个层次是直接对图 形句柄进行操作的底层绘图指令,它具有控制和表现数据图形能力强,控制灵活多变等优点, 对于有较鬲和特殊需求的用户而言,该层次能够完全满足他们的需求;另一层次是在底层指 令基础上建立的高层绘图指令,它的指令简单明了,易于掌握,适用于普通用户。常丿ij的matlab绘图语句有figure、plot、subplot、stem,等,图形修饰语句有title、axis、 text 等。1 .figure 语句figure语句有两种用法,只用一句figure命令,会创建一个新的图形窗口,并返回一个整 数型的窗口编号。figure(n)表示将笫n号图形窗口作为当前的图形窗口,并将具显示在所
37、有窗 口最前面;如果该图形窗口不存在,则新建一个窗口,并辅以编号n。2. plot语句线型绘图函数,将点和点z间用直线段连接。用法为plot(x,ys)参数x为横轴变量,y 为纵轴变量,s用以控制图形的基本特征如颜色、粗细,通常可以省略。常用方法如表1.7 所示。表1.7 plot命令的参数及其含义参数含义参数含义参数含义y黄色点八、实线m紫色0圆虚线c青色x打叉点划线r红色+加号一破折线g绿色*星号a向上的三角形b蓝色s正方形<向左的三角形wd菱形>向右的三角形kv向下的三角形p五角星形3. stem语句绘制离散序列图,常用格式stem(y)和stem(x,y)分别和相应的plo
38、t的函数绘图规则和同, 只是用stem命令绘制的是离散序列图。4. subplot 语句subplot(m,n,i)图形显示时分割窗口命令,把一个图形窗i i分为m彳亍,n列,mx n个小窗 口,并指定第i个小窗口为当前窗口。5. 绘图修饰命令在绘制图形时,我们通常需要为图形添加各种标注以增加可读性。在plot语句后使用title ('标题')可以在图形上方添加标题;使用xlabelc标记j或ylabel(,标记j为x轴和y轴添加 说明;使用text(x值、y值、想加的标示jnj以在图形中任意位置添加标示:使用 axis(xmin,xmax,ymin,ymax)设置坐标轴的最小
39、最大值;gtext('string')利用鼠标添加说明性文本 信息;grid on(off)给当前图形标记添加(取消)网格。例11()用matlab语句绘止弦图,其运行结果见图1.2x=0:0.01*pi:2*pi; figure(l); subplot(2,2,l); plot(x,sin(x); title('正弦线');%定义x向量%创建一个新的图形窗口,编号为1%将窗口划分为2行2列,在第1个窗口中作图%画图%给图形加标题subplot(2,2,2); plot(x,sin(x)/rr);%在第2个窗口屮作图%画一正弦波,红色xlabel(x);%给x轴
40、加说明ylabelcsincx)1);%给 y 轴加说明subplot(2,2,3);%在第3个窗口中作图plot(x,sin(x),t;%画一正弦波,破折线subplot(2,2,4);%在第4个窗口中作图plot(x,sin(x),r+,);%画一正弦波,红色加号text(4,0;i± 记');%在位置(4,0)处加一注记正弦线图1.2例1-10的运行结果6. 添加图利函数legend()基本格式:legend('stringv,string2,.)iegend(.,pos)功能:给图加图例,对于每个己经画出的illi线,可以配宜想要的图例。参数:'str
41、ing 1','string2',解释图例的字符串pos 决定放置图例的位置pos=-l将图例放在轴边距外右边pos=0将图例放在轴边距内右边占川尽量少的点 pos=l将图例放在轴的右上方(缺省值)pos=2将图例放在轴的左上方pos=3将图例放在轴的左下方pos=4将图例放在轴的右下方例1-11. legend用法举例x=-pi:pi/20:pi;plot(x,cos(x),-rox,sin(x)/-.b,)图1.3例1-11的运行结果【三】上机练习1. 仔细预习第二部分內容,关于matlab的基础知识。2. 熟悉matlab环境,将第二部分所有的例子在计算机上练习一
42、遍1 2 3_9 8 7_3.已知矩阵人=4 5 6=6 5 47 8 93 2 1求a*b, a*b,比较二者结果是否相同。并利用matlab的内部函数求矩阵a的大小、元素和、长度以及最 大值。4. fibonacci数组的元索满足fibonacci规则:0“ =色+,伙=1,2,);且a=a2=lo现耍求该数组中第一个大于10000的元素。1)在命令窗口中完成;2)利用m文件完成;3)口己定义一个函数文件,并在命令窗口中调用该函数完成。5. 在同一个图形窗口的两个了窗口中分别画岀cos(彳x)(红色、虚线)和cos(£x)(蓝色、星号)的波形。要求有标题,x、y轴有标注。【四】思
43、考题1. 在语句末加分号和不加分号有什么区别?2. m文件和函数文件有什么界同之处?3. 矩阵乘(*)和数组乘(*)有何不同?【五】实验报告要求1. 简述实验冃的;2. 实验内容及结果分析:1)附上源程序清单,要求可读性好,必要处要加注释;2)实验结果,包括运行的数值结果或图形;3)结果分析,正确与否,误差原因。3. 简要回答思考题;4. 简述本次实验的体会和建议。实验二信号的表示及可视化-1实验目的1. 掌握连续信号的matlab表示方法(表达式及图形描述);2. 掌握离散序列的matlab表示方法(表达式及图形描述);-实验原理在matlab屮通常用两种方法来表示信号,一种是向量表示信号,
44、另一种则是用符号运 算的方法来表示信号。用适当的matlab语句表示岀信号后,我们就可以利用matlab的 绘图命令绘f il直观的信号波形。一.连续时间信号的表示及可视化从严格意义上来讲,matlab并不能处理连续信号,在matlab中,是用连续信号在 等时间间隔点的样值来近似地表示连续信号的,当取样时间间隔足够小时,这些离散的样值 就能较好的近似出连续信号。1. 向量表示法对于连续时间信号f(t),我们可以用两个行向罐f和t来表示,其中t向聚是形如t=":p:t2 的matlab命令定义的时间范围向量,为信号起始时间,t2为终止时间,p为时间间隔。向 量f为连续信号f在向量t所定
45、义的吋间点上的样值。例21.例如对于连续信号f(t)=sa(t),我们可以用如下两个向量来表示:(=-10:1.5:10;f=sin(t)./t;观察执行结果。用上述向量对连续信号进行表示示,就可以用plot命令来绘出该信号的时域波形。plot 命令可将点与点间用直线连接,当点与点间的距离很小时,绘出的图形就成了光滑的曲线。 matlab命令如下:plot(t,f)title(7(t)=sa(0,)xlabel(*f)2. 符号运算表示法如果信号可以用一个符号表达式来表示它,则我们可用ezplot命令绘制出信号的波形。例22对于连续信号/(/) = sin(ff),我们可以用符号表达式表示为:
46、f=sy mcsin(pi/4*t)5)然后用ezplot命令绘制其波形:ezplot(f,-16,161)3. 常用连续信号的表示1) 单位阶跃信号单位阶跃信号的定义为:£(t = j 1f>00 r<0单位阶跃信号是信号分析的基本信号之一,在信号与系统分析中有着十分重要的作用, 常用丁简化信号的吋域表示。根据单位阶跃信号的特性,我们可以用它来表示吋限信号和单 边信号(因果信号)。方法一:一种得到单位阶跃信号的方法是在matlab的symbolic math toolbox中调用单 位阶跃函数heaviside,这样可方便地表示出单位阶跃信号。但是,在用函数ezplot
47、实现其可 视化时,就出现一个问题:函数ezplot只能画出既存在于symbolic math t.具箱屮,又存在于 总matlab 丁具箱屮的函数,而heaviside函数仅存在symbolic math toolbox屮,因此,就 需要在自己的工作目录work f创建heaviside的m文件,该文件如f:function f=heaviside(t)f=(t>0);%t>0 时 f 为 1,否则为 0止确定义出该函数并保存运行后,就可调用该函数了。例 2-3.用 matlab 画出信号 f(t) =+ 3)- 2g(f)的波形。f=sym( <heaviside(t+3)
48、-2 *heaviside(t)5)ezplot(f,-5,4)hold on,plot(0,0,-1,1),axis(卜5,4,1,1.1 ),hold off1 t>q方法二:用符号函数sgn(f)= j o t = 0 来生成单位阶跃函数,即-1 r <0£(/) = 1 +丄sgn(f)。而sgn(t)的表示可调用matlab中的符号函数sign來实现。2 2例24若定义向豊t=5:0.05:5;f=sign(t);然后,用下而的命令就可绘出符号函数的波形:plot(t,f),axis(-5,5,-l .1,1.1)再用以下的命令表示单位阶跃信号并绘出它的波形ff
49、=l/2+l/2*f;plot(t,ff),axis(-5,5,-0.1,1.1)2) 单位冲激信号单位冲激信号的定义为§ (t)的定义表明,该信号除原点以外,处处为零,且倍号而积为一。即设有矩形脉冲 pn(t),则由 6 (t)的定义可得5(/) = lim#”(f)s (t)是信号与系统分析的基本信号之一,是我们进行信号分析的基础。严格说來,matlab是不能表示单位冲激信号的,但我们可用时间宽度为dt,高度为1/dt 的矩形脉冲來近似地农示冲激信号。当dt趋近于零时,就较好地近似出冲激信号的实际波形。 下面是绘制单位冲激信号及其在吋间轴上的平移信号« (t+to)的m
50、atlab子程序,其中匕,t2 表示信号的起始时刻,5表示信号沿坐标的平移屋。绘图命令用stairs,该命令一燉用于绘 制类似楼梯形状的步进图形,在这里使用该命令是因为显示连续信号中的不连续点用stairs 命令绘图效果较好。function chongji(tl,t2,t0)dt=o.o1;t=tl:dt:t2;n=lcngth(t);x=zeros(l,n);x(l,(-to-tl)/dt+l)=l/dt;stairs(t,x);axis(t 1 ,t2,0,1.2/dt)titlec单位冲激信号)例2-5.下面就调用chongji函数绘制8 (t), -l<t<5的波形。ma
51、tlab调用命令为:chongji (-1, 5, 0)程序执行后结果为:单位冲激信号»ia二.离散时间信号的表示及可视化1一般离散信号的表示一般说来,离散时间信号用f(k)表示,其屮变最k为整数,代表离散的采样时间点。在matlab «|>,用一个向量f即可表示一个有限长度的序列。但是,这样的向量并没有 包含其对应的吋间序号信息。所以,要完整地表示离散信号需要用两个向量。例 2-6如序列:f(k) = l,2,-l,3, 2,4,-1在matlab屮应表示为:k=3,2,l,0,1,2,3或是 k=-3:3;f=l,2,-l,3, 2, 4,-1;在用matlab表
52、示离散序列并将其可视化时,我们耍注意以下几点:第一,与连续时间 信号不同,离散时间信号无法用符号运算來表示;笫二,由于在matlab中,矩阵的元素个 数是有限的,因此,matlab无法表示无限序列:第三,在绘制离散信号波形时,要使用专 门的绘制离散数据的stem命令,而不是plot命令。如对于上面的定义的二个向量f和k,可 用如下的命令绘图:stem(k,f,'filled'),axis(卜 4,4, 1.5,4.5j)得到对应波形,如图2.2。图2.2例2.6的运行结果2. 典型离散序列的表示下面通过一些典烈的离散信号来说明如何用matlab实现离散序列的表示和可视化。1)
53、单位序列6 (k)(1 k = 0单位序列的定义为(£) = *-0 "0由单位序列定义知,只有在k二0吋,8 (k)的值为1,而其它时刻为0,因此,用matlab 来表示单位序列及绘制其波形非常简单。下面是绘制s (k+ko)的子程序,其中k0为6 (k)在时间轴上的位移量,k0<0则右移,k0>0 则左移,kl, k2分别为时间序列的起始和终止时间序号,且klwkowk2,调用该函数就可以 绘出单位序列及其移位序列的波形图:function dwxulie(kl,k2,k0)k=kl:k2;n=length(k)f=zeros(l,n)f(l,-ko-kl+
54、l)=l%在画时刻,信号赋值为1stem(k,f,'filled')axis(kl,k2,0,1.5)titlec单位序列5 (k)*)例2-7.画出6 (k)在-5wkw5区间的图形。调用上述函数dwxulie来完成,调用命令为:dwxulie(-5,5,0)2)单位阶跃序列单位阶跃序列£伙)=j1 >0 o k<q与单位序列类似,下面给出绘制单位阶跃序列£ (k+k。)的matlab子程序: function jyxulie(kl, k2, ko) k二kl:-ko-l;kk=-k0:k2;n二 1 ength(k);rm 二length(k
55、k);u二zeros (1, n) ;%k0而信号赋值为零uu=ones(l, nn) ;%k0后信号赋值为一stem(kk, uu,' filled,)hold onstem(k, u,' fillcd,)hold offaxis(kl, k2, 0, 1. 5)ti tle('单位阶跃序列')例2-8.用matlab绘出单位阶跃序列£ (k)在3wkw8区间的图形。可调用上述程序來完成,调用命令为:jyxulie(-3, 8, 0)3) .正弦序列正弦序列的表达式为:/伙)=acos(re + /)式中£为无量纲的整数,0和0以弧度为单位,69称为正弦序列的数字角频率,(p为 初相位。需
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 餐饮合伙股份合同范本
- 饭店异业合作合同范本
- 饲料公司销售合同范本
- 鱼池定制采购合同范本
- 鱼苗运输配送合同范本
- 鲜牛肉采购合同协议书
- 动物学实验操作流程
- 流动规划制度规定
- 签合同协议书范本模板
- 签试用期协议没签合同
- 2025年南陵县县属国有企业公开招聘工作人员55人笔试考试参考试题及答案解析
- 2025年医疗机构输血科(血库)基本标准(试行)
- 肠代食管吻合口狭窄的护理个案
- 普通高中化学课程标准(2025年版)
- 陕西省2025年中考物理真题(AB合卷)附答案
- 科学认识天气知到智慧树期末考试答案题库2025年中国海洋大学
- 国开(甘肃)2024年春《地域文化(专)》形考任务1-4终考答案
- 生产部3S管理检查表
- 2022-2023学年贵州省威宁县市级名校中考一模化学试题含解析
- GB/T 29618.2-2017现场设备工具(FDT)接口规范第2部分:概念和详细描述
- GA/T 1133-2014基于视频图像的车辆行驶速度技术鉴定
评论
0/150
提交评论