




已阅读5页,还剩61页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
信号与系统实验指导书计算机与信息工程学院电子与信息工程系二O一一年三月64目 录第一章 MATLAB及实验系统简介11.1程序设计环境11.2 基本操作11.3 实验系统简介1第二章 连续信号与系统的时域分析1实验一 连续信号的波形1实验二 连续信号的运算1实验三 连续时间系统的零状态响应1实验四 连续时间系统的冲激响应和阶跃响应1第三章 连续系统的频域分析1实验一 连续信号的傅里叶变换1实验二 连续时间系统的频率特性1实验三 连续时间系统的s域分析1实验四 连续信号及系统的综合分析1第四章 离散信号与系统的时域分析1实验一 离散信号的MATLAB表示1实验二 离散信号的运算1实验三 离散时间系统的零状态响应1实验四 离散时间系统的冲激响应和阶跃响应1第五章 离散系统的z域分析1实验一 离散系统函数的部分分式展开1实验二 离散系统函数的零极点图1实验三 离散信号及系统的综合分析1第一章 MATLAB及实验系统简介MATLAB 是一套功能十分强大的工程计算及数据分析软件,它的应用范围覆盖了工业、电子、医疗、建筑等多个领域。它也是一种交互式、面向对象的程序设计语言,其结构完整,具有优良的移植性。它主要用于矩阵运算,同时在数据分析、自动控制、数字信号处理、绘图等方面具有强大的功能。1.1程序设计环境 MATLAB的工作环境简单、明了、易于操作。1、命令窗口启动MATLAB后,显示的操作界面如图1-1所示:命令窗口工作目录当前路径窗口命令历史记录工作空间窗口启动平台图1-1 MATLAB的操作界面1、命令窗口命令窗口是MATLAB的主窗口,用户可以通过单击命令窗口右上角的按钮使其放大成一个独立窗口。在命令窗口中可以直接输入命令,系统将自动显示信息,例如,在命令窗口中输入指令:x=1 2 3;4 5 6数据放在方括号内,行与行之间用分号间隔,数值之间用空格或逗号间隔。如果命令后不加“;”,则系统解释该命令为一个的矩阵,并显示如下结果:x = 1 2 3 4 5 6如果程序有多行语句,且不需要每行都显示结果,可以在不需要显示结果的语句后加“;”,这在编写M文件时非常有用。2、启动平台当用户需要启动某个工具箱的应用程序时,可以在Launch Pad(启动平台)中实现,当单击Launch Pad窗口的按钮后,启动平台最大化。此时用户可以方便地打开工具箱的内容,包括帮助文件、演示示例、实用工具以及Web文档。3、工作空间工作空间是MATLAB 6及以后版本的新特点,以前版本的工作空间只是一个对话框,可操作性差,现在的工作空间是一个独立的窗口,操作非常方便。当单击工作空间窗口的按钮后,工作空间最大化。4、命令历史记录与当前路径窗口 命令历史记录窗口主要显示已经执行过的命令。当前路径窗口主要显示当前工作在什么路径下,包括M文件的打开路径等。1.2 基本操作一、MATLAB 支持的数据结构 MATLAB 语言的赋值语句有两种: 变量名 = 运算表达式 返回变量列表 = 函数名(输入变量列表) MATLAB 支持变量和常量,其中 pi 为圆周率 p, 更重要的,MATLAB 支持 IEEE 标准的运算符号,如 Inf 表示无穷大,NaN (Not a Number) 为 0/0, 0*Inf 或 Inf/Inf 等运算结果。MATLAB 变量名应该由字母引导,后面可以跟数字、字母或下划线等符号。MATLAB 是区分变量名字母大小写的。 下面主要介绍几种常用的MATLAB支持的数据结构。1、矩阵 MATLAB 最基本的数据结构是复数矩阵。输入一个复数矩阵是很简单的事。例如可以给出下面的语句: B=1+9i,2+8i,3+7i; 4+6i 5+5i,6+4i; 7+3i,8+2i 1i其中 为 MATLAB 的提示符。矩阵各行元素由分号分隔,而同行不同元素由逗号或空格分隔。给出了上面的命令,则可以给出下面的结果。 B = 1.0000 + 9.0000i 2.0000 + 8.0000i 3.0000 + 7.0000i 4.0000 + 6.0000i 5.0000 + 5.0000i 6.0000 + 4.0000i 7.0000 + 3.0000i 8.0000 + 2.0000i 0 + 1.0000i 其中,元素 1+9i 表示复数项。有这样的表述方法,实矩阵、向量或标量均可以更容易地输入了。如果赋值表达式末尾有分号,则其结构将不显示,否则将显示出全部结果。 MATLAB 和其他语言不同,它无需事先声明矩阵的维数。下面的语句可以建立一个更大的矩阵 B(2,5)=1B = 1.0000 + 9.0000i 2.0000 + 8.0000i 3.0000 + 7.0000i 0 0 4.0000 + 6.0000i 5.0000 + 5.0000i 6.0000 + 4.0000i 0 1.0000 7.0000 + 3.0000i 8.0000 + 2.0000i 0 + 1.0000i 0 0 冒号表达式是 MATLAB 里最具特色的表示方法。其调用格式为 a=s1:s2:s3; 这一语句可以生成一个行向量,其中 s1 为向量的起始值,s2 为步距,而 s3 为向量的终止值。例如 S=0:.1:2*pi; 将产生一个起始于 0, 步距为 0.1, 而终止于 6.2 的向量 (pi 为 MATLAB 保留常量p), 而不是终止于2p。如果写成 S=0:-0.1:2*pi; 则不出现错误,而返回一个空向量。 冒号表达式可以用来提取矩阵元素,例如 B(:,1) 将提取 B 矩阵的第 1 列而 B(1:2,1:2:3) 将提取 B 的前 2 行与 1,3,5 列组成的子矩阵。在矩阵提取时还可以采用end 这样的算符。如 B(2:end,:) 将提取 B 矩阵的后 2 列构成的子矩阵。 2、多维数组 多维数组是 MATLAB 在其 5.0 版本开始提供的。假设有 2 个 3x3 矩阵 A1, A2,则可以由下面的命令建立起一个 3x3x2 的数组:A=cat(3,A1,A2)。试验 A1=cat(2,A1,A2) 和 A2=cat(1,A1A2) 将得到什么结果。 对矩阵或多维数组 A 可以使用 size(A) 来测其大小,也可以使用 reshape() 函数重新按列排列。对向量来说,还可以用 length(A) 来测其长度。 不论原数组 A 是多少维的,A(:) 将返回列向量。 3、字符串与字符串矩阵 MATLAB 的字符串是由单引号括起来的。如可以使用下面的命令赋值 strA=This is a string. 多个字符串可以用 str2mat() 函数构造出字符串矩阵。如 B=str2mat(strA, ksa saj,aa);字符串变量可以由下表中的命令进行操作: 命令意义命令意义strcmp(A,B)比较A和B字符串是否相同。findstr(A,B)测试A是否为B的子字符串,或反过来strrep(A,s1,s2)在A中用s2替换s1length(A)字符串A的长度deblank(A)删除A字符串尾部的空格double(A)字符串转换双精度数据4、单元数据结构 用类似矩阵的记号将给复杂的数据结构纳入一个变量之下。和矩阵中的圆括号表示下标类似,单元数组由大括号表示下标。 B=1,Alan Shearer,180,100, 80, 75; 77, 60, 92; 67, 28, 90; 100, 89, 78B = 1 Alan Shearer 180 4x3 double访问单元数组应该由大括号进行,如第 4 单元中的元素可以由下面的语句得出 B4ans = 100 80 75 77 60 92 67 28 90 100 89 78 二、变量的运算1、MATLAB 变量的代数运算 如果给定两个矩阵 A 和 B, 则我们可以用 A+B, A-B, A*B 可以立即得出其加、减和乘运算的结果。若这两个矩阵数学上不可以这样运算,则将得出错误信息,并终止正在运行的程序。 在 MATLAB 下,如果 A 和 B 中有一个是标量,则可以无条件地进行这样的运算。MATLAB 不介意这些变量是纯实数还是含有虚部的复数。 矩阵的除法实际上就是线性方程的求解,如 Ax=B 这一线性方程的解即为 x=inv(A)*B, 或更简单地 x=AB。这又称为矩阵的左除,而 x=B/A 称为矩阵的右除。 方阵的乘方可以由 算符直接得出,如 An。用 MATLAB 这样的语言,你可以轻易地算出 A0.1, 亦即 A 矩阵开 10 次方得出的主根。 矩阵的点运算也是相当重要的。所谓点运算即两个矩阵相应元素的运算,如 A.*B 得出的是 A 和 B 对应元素的积,故一般情况下 A*B 不等于 A.*B。矩阵的点乘又称为其 Hadamard 积。点运算的概念又可以容易地用到点乘方上,例如 A.2, A.A 等都是可以接受的运算式子。 Kronecker 乘积是 MATLAB 在矩阵运算中的另一个有意义的问题,用 kron(A,B) 立即可以得出两个矩阵的 Kronecker 乘积。 2、逻辑运算 MATLAB 并没有单独定义逻辑变量。在 MATLAB 中,数值只有 0 和“非 0” 的区分。非 0 往往被认为是逻辑真,或逻辑 1。除了单独两个数值的逻辑运算外,还支持矩阵的逻辑运算,如 A & B, A | B, 和 A 分别表示逻辑与、或、非的运算。例如,下面的 A 和 B 矩阵与运算将得出如下结果 A=0 2 3 4;1 3 5 0; B=1 0 5 3;1 5 0 5; A&B ans = 0 0 1 1 1 1 0 0 3、关系表达式与表达式函数 MATLAB 的大于、小于和等于等关系分别由 、 A=0 2 3 4;1 3 5 0; B=1 0 5 3;1 5 0 5; A=B ans = 0 0 0 0 1 0 0 0 确实使得 A 和 B 对应元素相等的位将返回 1,否则返回 0。MATLAB 还可以用 = 和 mysum=0; for i=1:1:100,mysum=mysum+i; end; mysummysum =5050在上面的式子中,可以看到 for 循环语句中 s3 的值为 1。在 MATLAB 实际编程中,如果 s3 的值为 1,则可以在该语句中省略,故该语句可以简化成 for i=1:100。在实际编程中,在 MATLAB 下采用循环语句会降低其执行速度,所以前面的程序可以由下面的命令来代替: i=1:100; mysum=sum(i)。在这一语句中,首先生成了一个向量 i, 然后用内部函数 sum() 求出 i 向量的各个元素之和,或更简单地,该语句还可以写成 sum(1:100)。如果前面的 100 改成 10000, 再运行这一程序,则可以明显地看出,后一种方法编写的程序比前一种方法快得多。 MATLAB 并不要求循环点等间距,假设 V 为任意一个向量,则可以用 for i=V 来表示循环。 同样的问题在 while 循环结构下可以表示为 mysum = 0; i=1; while (i 下键入该 M 文件的文件名,这样 MATLAB 就会自动执行该 M 文件中的各条语句,并将结果直接返回到 MATLAB 的工作空间。M 函数格式是 MATLAB 程序设计的主流,一般情况下, 不建议您使用 M 脚本文件格式编程。 MATLAB 的 M 函数是由 function 语句引导的,其基本格式如下: function 返回变量列表 = 函数名 (输入变量列表)注释说明语句段, 由 % 引导输入、返回变量格式的检测函数体语句 这里输入和返回变量的实际个数分别由 nargin 和 nargout 两个 MATLAB 保留变量来给出,只要进入该函数,MATLAB 就将自动生成这两个变量,不论您是否直接使用这两个变量。返回变量如果多于 1 个,则应该用方括号将它们括起来,否则可以省去方括号。输入变量和返回变量之间用逗号来分割。注释语句段的每行语句都应该由百分号 % 引导,百分号后面的内容不执行,只起注释作用。用户采用 help 命令则可以显示出来注释语句段的内容。此外,正规的变量个数检测也是必要的。如果输入或返回变量格式不正确,则应该给出相应的提示。MATLAB具有强大的函数功能,从本质讲,可以将其分为3类: MATLAB内部函数,这是由MATLAB自身提供的,用户不能进行修改,这种函数如调试函数、快速傅立叶变换函数等、 MATLAB各种工具箱中的M文件提供了大量的实用函数,这些函数在各自领域内具有广泛的用途。用户可以根据需要,对M文件内的语句作适当的修改与补充,以完成特定的功能。 用户自己编写的M文件。用户为了实现某种功能或某一特定领域的算法,可以根据理论知识,自己进行编程。另外,由于MATLAB中的函数很多,并且本书篇幅有限,因此在本书中对于引用函数的具体解释放在具体引用的地方。1.3 实验系统简介一、实验系统简介信号与系统实验分为:验证性实验,研究性和综合设计性实验。实验系统分为连续信号及系统实验和离散信号及系统实验两大部分。连续信号及系统实验中,验证性实验包括连续信号的波形及运算;研究性实验包括系统的零状态响应,系统的冲激响应与阶跃响应,系统的频率特性分析和s域分析;综合性实验包括连续信号及系统的综合分析。在离散信号及系统实验中,验证性实验包括离散信号的波形及运算;研究性实验包括系统的零状态响应,系统的冲激响应和阶跃响应和离散时间系统的z域分析;综合性实验包括离散信号及系统的综合分析。实验体系如图1-2所示。图1-2 信号与系统实验体系二、系统操作介绍运行MATLAB界面,将工作目录更改为信号与系统实验系统所在的目录,例如“D:信号与系统实验program”,在命令窗口输入“main”,打开信号与系统实验系统的主界面,如图1-3所示。图1-3 信号与系统实验主界面在界面有两个按钮,分别是“连续信号及系统实验”和“离散信号及系统实验”,单击后分别进入连续时间信号及系统实验系统和离散时间信号及系统实验系统,如图1-4和1-5所示。在连续时间信号及系统实验系统和离散时间信号及系统实验系统中,可以选择相应的菜单选作相应的实验项目,具体的实验项目在以下的章节中详细介绍。图1-4 连续时间信号及系统实验界面图1-5 离散时间信号及系统实验界面第二章 连续信号与系统的时域分析实验一 连续信号的波形一、实验目的1、了解连续信号的表达式。2、通过实验观察连续信号的波形。3、掌握用MATLAB画出典型连续信号的波形的方法。二、实验步骤 打开连续信号及系统实验的界面,选择“信号的波形菜单”,会出现正弦信号,指数信号,抽样信号和矩形脉冲信号四个子菜单,如图2-1所示。可以通过选择相应的菜单打开对应信号的显示界面,下面以正弦信号为例说明如何显示正弦信号的波形。图2-1 信号的波形菜单单击“信号的波形”|“正弦信号”菜单,弹出如图2-2所示的界面,在该界面上的三个文本框内输入正弦信号的幅度,角频率和相位(默认值分别为1,2,0.25),单击“绘图”按钮后,界面上会出现正弦信号的波形,如图2-3所示。图2-2 正弦信号波形界面图2-3 正弦信号的波形绘图界面指数信号,抽样信号,和矩形脉冲信号的界面如图2-4,2-5和2-6所示,操作方法与正弦信号的波形显示相似。图2-4 指数信号的波形界面图2-5 抽样信号的波形界面图2-6 矩形脉冲信号的波形界面三、实验原理下面分别介绍几种典型连续信号的MATLAB表示。1、指数信号的MATLAB表示指数信号的表示式为,在MATLAB中可以用函数exp表示,其调用形式为:y=K*exp(a*t) (2-1)例:画出指数信号的波形图的关键源代码如下所示:K=1; a=-0.5;t=0:0.01:10;y=K*exp(a*t);plot(t,y); grid on;title(Decaying exponential signal);xlabel(t(sec); ylabel(y(t);(注:plot函数是最基本的绘图命令函数。在二维绘图中,输入plot(a,b)这个命令函数,就会画出一个以向量a表示数据点的x轴坐标值,以向量b表示数据点的y轴坐标值的点点相连的连续的曲线图形。grid函数用于为所绘制图形加上虚线的坐标网格,以便于更容易地确定图中各点地坐标位置。xlabel和ylabel函数为绘图窗口中的x轴和y轴上加上标签。title函数可以在所绘制的图形上方添加一行标题。)将以上源代码输入MATLAB的命令窗口,程序运行结果如图2-7所示。由于在界面程序中嵌入了相同的源代码,因此图2-7与图2-4的波形完全相同。图2-7 单边指数衰减信号2、正弦信号正弦信号和余弦信号可以用MATLAB的函数sin和cos表示。例:画出正弦信号的波形图的关键源代码如下所示:K=1; w=2; thita=0.25;t=0:0.001:8;y=K*sin(w*pi*t+thita*pi);plot(t,y); grid on;title(Sinusoidal signal);xlabel(t(sec); ylabel(y(t);3、抽样信号抽样信号的定义如下,但在MATLAB中表示抽样信号的函数为,因此可以得到,。例:画出抽样信号的波形图的关键源代码如下所示:t=-3*pi:pi/100:3*pi;y=sinc(t/pi);plot(t,y); grid on;title(Sample function);xlabel(t(sec); ylabel(y(t);四、实验内容1、通过实验界面观察以下信号的波形: a. b. c画出一条到之间的sinc曲线。2、熟悉各种信号波形的MATLAB代码,写成画出以下信号波形的MATLAB代码。 a. b. 实验二 连续信号的运算一、实验目的1、复习连续时间信号的运算:相加,相乘和卷积。2、掌握信号运算的MATLAB代码。二、实验步骤1、连续信号的相加(1)两个正弦信号相加打开“连续时间信号及系统实验”界面,单击“信号的运算”|“信号的相加”|“正弦信号相加”菜单,打开正弦信号相加界面,如图2-8所示,在界面中输入两个信号的幅度,相位和角频率后,单击“相加”按钮,界面左下角出现两个正弦信号相加的波形。图2-8 两个正弦信号的相加(2)两个指数信号相加打开“连续时间信号及系统实验”界面,单击“信号的运算”|“信号的相加”|“指数信号相加”菜单,打开两个指数信号相加界面,如图2-9所示,在界面中输入两个信号的幅度和指数后,单击“相加”按钮,界面左下角出现两个指数信号相加的波形。图2-9 两个指数信号的相加(3)正弦信号与指数信号的相加打开“连续时间信号及系统实验”界面,单击“信号的运算”|“信号的相加”|“混合信号相加”菜单,打开指数信号与正弦信号相加界面,如图2-10所示,在界面中输入两个信号的幅度,相位,角频率和指数后,单击“相加”按钮,界面左下角出现两个信号相加的波形。图2-10 指数信号与正弦信号的相加2、连续信号的相乘(1)两个正弦信号的相乘打开“连续时间信号及系统实验”界面,单击“信号的运算”|“信号的相乘”|“正弦信号相乘”菜单,打开正弦信号相乘界面,如图2-11所示,在界面中输入两个信号的幅度,相位和角频率后,单击“相乘”按钮,界面左下角出现两个正弦信号相乘的波形。图2-11 正弦信号相乘界面(2)正弦信号与指数信号相乘打开“连续时间信号及系统实验”界面,单击“信号的运算”|“信号的相乘”|“混合信号相乘”菜单,打开正弦信号与指数信号相乘界面,如图2-12所示,在界面中输入两个信号的幅度,相位,角频率和指数后,单击“相乘”按钮,界面左下角出现两个信号相乘的波形。图2-12 正弦信号与指数信号相乘界面3、连续信号的卷积(1)矩形脉冲信号的卷积打开“连续时间信号及系统实验”界面,单击“信号的运算”|“信号的卷积”|“矩形脉冲信号的卷积”菜单,打开矩形脉冲信号卷积界面,如图2-13所示,在界面中输入两个矩形脉冲信号的幅度和持续时间的上下限,单击“绘图”按钮,界面左下角出现两个信号卷积后的波形。图2-13 矩形脉冲信号卷积界面(2)指数信号的卷积打开“连续时间信号及系统实验”界面,单击“信号的运算”|“信号的卷积”|“指数信号卷积”菜单,打开指数信号卷积界面,如图2-14所示,在界面中输入两个指数信号的幅度和指数,单击“绘图”按钮,界面左下角出现两个信号卷积后的波形。图2-14 指数信号卷积界面三、实验原理1、信号相加在MATLAB中,两个信号相加使用符号“+”。下面以正弦信号相加为例说明源代码。两个正弦信号相加的MATLAB源代码如下所示:K1 = 1; w1 =2; thita1 =0.25;K2 = 1; w2 = 1; thita2 = 0.33;t=0:0.001:8;y1=K1*sin(w1*pi*t+pi*thita1);y2=K2*sin(w2*pi*t+pi*thita2);y=y1+y2;plot(t,y); grid on;title(Sinusoidal signal adding);xlabel(t(sec); ylabel(y(t);2、信号相乘在MATLAB中,两个信号相乘使用符号“.*”。下面以正弦信号与指数信号相乘为例说明源代码。正弦与指数信号相乘的MATLAB源代码如下所示:K1 = 1; a1 =-0.5;K2 = 1; w2 = 2; thita2 =0.25;t=0:0.001:8;y1=K1*exp(a1*t);y2=K2*sin(w2*pi*t+pi*thita2);y=y1.*y2;plot(t,y); grid on;title(Continuous signal multiplying);xlabel(t(sec); ylabel(y(t);3、信号的卷积在MATLAB中,两个信号的卷积可以用函数conv实现。下面以矩形脉冲信号的卷积为例说明源代码。正弦与指数信号相乘的MATLAB源代码如下所示:a1 = -3; b1 = 3; c1 = 1;a2 = -2; b2 = 2; c2 = 1;signal1=a1:0.01:b1;signal2=a2:0.01:b2;s1=c1*ones(1,length(signal1);s2=c2*ones(1,length(signal2);y=conv(s1,s2)/100; t=(a1+a2):0.01:(b1+b2);plot(t,y); grid on;title(Squared signal convolution);xlabel(t(sec); ylabel(y(t);注:由于在MATLAB中连续信号的卷积实际上也是由离散信号的卷积实现的,因此当连续信号的采样率为100时,卷积后的信号要除以100。四、实验内容1、画出如下信号的波形a. b. c. 2、写成画出信号波形的MATLAB源代码。实验三 连续时间系统的零状态响应一、实验目的1、复习连续时间系统的零状态响应的求解方法2、掌握在MATLAB中如何求解连续时间系统的零状态响应二、实验步骤打开“连续时间信号及系统实验”界面,单击“系统的时域分析”|“系统的零状态响应”菜单,打开如图2-15所示界面。在文本框中输入微分方程r(t)和e(t)的系数,例如微分方程,r(t)的系数为:1 2 100,e(t)的系数为10。在下拉列表框中选择输入信号e(t),以正弦信号为例,在文本框中输入所选信号的参数。单击“绘图”按钮,在界面左下角显示该微分方程所表示的系统在相应的输入下的零状态响应,如图2-16所示。三、实验原理LTI连续时间系统以常系数微分方程描述,系统的零状态响应可通过求解初始状态为零的微分方程得到。在MATLAB中,控制系统工具箱提供了一个用于求解零初始条件微分方程数值解的函数lsim,其调用形式为:y=lsim(sys,f,t) (2-2)其中,t表示计算系统响应的抽样点向量,f是系统输入信号向量,sys是LTI系统模型,用来表示微分方程,差分方程,状态方程。在求解微分方程时,微分方程的LTI系统模图2-15 连续系统的零状态响应界面图2-16 连续系统的零状态响应波形图型sys要借助MATLAB中的tf函数来获得,其调用形式为:sys=tf(b,a) (2-3)其中,b和a分别为微分方程右端和左端各项的系数向量。例如对于二阶微分方程:可以用下面MATLAB语句来获得LTI模型:a=a2,a1,a0;b=b2,b1,b0;sys=tf(b,a);例:系统的微分方程为,输入信号,求系统的零状态响应。MATLAB源程序为:t=0:0.01:5;sys=tf(10,1,2,100);f=sin(2*pi*t);y=lsim(sys,f,t);plot(t,y); title(Solution of differential equation);grid on; xlabel(t(sec); ylabel(y(t); 四、实验内容1、已知系统的微分方程为,当系统的输入信号为,求系统的零状态响应,并画出图形。2、已知系统的微分方程为,当系统的输入信号为,求系统的零状态响应,并画出图形。实验四 连续时间系统的冲激响应和阶跃响应一、实验目的1、复习连续时间系统的冲激响应和阶跃响应的求解方法2、掌握在MATLAB中如何求解连续时间系统的冲激响应和阶跃响应二、实验步骤1、连续时间系统的冲激响应打开“连续时间信号及系统实验”界面,单击“系统的时域分析”|“系统的冲激响应”菜单,打开连续系统的冲激响应界面。在文本框中输入微分方程r(t)和e(t)的系数,例如微分方程,r(t)的系数为:1 2 100,e(t)的系数为10。单击“绘图”按钮,在界面左下角显示该微分方程所表示的系统的冲激响应,如图2-17所示。图2-17 连续系统的冲激响应界面2、连续时间系统的阶跃响应打开“连续时间信号及系统实验”界面,单击“系统的时域分析”|“系统的阶跃响应”菜单,打开连续系统的阶跃响应界面。在文本框中输入微分方程r(t)和e(t)的系数,例如微分方程,r(t)的系数为:1 2 100,e(t)的系数为10。单击“绘图”按钮,在界面左下角显示该微分方程所表示的系统的阶跃响应,如图2-18所示。图2-18 连续系统的阶跃响应界面3、冲激响应理论值与近似值的比较打开“连续时间信号及系统实验”界面,单击“系统的时域分析”|“系统冲激响应理论值与近似值的比较示例”菜单,打开如图2-19所示界面。在界面中画出了微分方程所表征的系统的冲激响应的理论值与近似值的波形。理论值为:,当t0时,。近似值为用MATLAB中的函数impulse求出的冲激响应,impulse的函数说明见下节实验原理。图2-19冲激响应理论值与近似值的比较示例界面4、阶跃响应理论值与近似值的比较打开“连续时间信号及系统实验”界面,单击“系统的时域分析”|“系统阶跃响应理论值与近似值的比较示例”菜单,打开如图2-20所示界面。在界面中画出了微分方程所表征的系统的阶跃响应的理论值和近似值的波形。理论值为,近似值为用MATLAB中的函数step求出的冲激响应,step的函数说明见下节实验原理。三、实验原理在MATLAB中,求解系统冲激响应可以用控制系统工具箱提供的函数impulse,求解阶跃响应可利用函数step,其调用形式为:y=impulse(sys,t)y=step(sys,t)式中,t表示计算系统响应的抽样点向量,sys是LTI系统模型。图2-20阶跃响应理论值与近似值的比较示例界面1、系统的冲激响应的MATLAB源代码如下所示。t=0:0.01:5;sys=tf(10,1 2 100);y=impulse(sys,t);plot(t,y); grid on;title(Impulse response of LTI system);xlabel(t(sec); ylabel(y(t);2、系统的阶跃响应的源代码如下所示:t=0:0.01:5;sys=tf(10,1 2 100);y=step(sys,t);plot(t,y); grid on;title(Step response of LTI system);xlabel(t(sec); ylabel(y(t);3、系统的冲激响应理论值与近似值的比较示例的MATLAB源代码如下所示:t=0:0.01:5;sys=tf(2 0,1,3);y=impulse(sys,t);subplot(2,1,1); plot(t,y); grid on;title(冲激响应的近似值);xlabel(t(sec); ylabel(y(t);y1=-6*exp(-3*t);subplot(2,1,2); plot(t,y1); grid on;title(冲激响应的理论值);xlabel(t(sec); ylabel(y(t);4、系统的阶跃响应理论值与近似值的比较示例的MATLAB源代码如下所示:t=0:0.01:5;sys=tf(2 0,1,3);y=step(sys,t);subplot(2,1,1); plot(t,y); grid on;title(阶跃响应的近似值);xlabel(t(sec); ylabel(y(t);y1=2*exp(-3*t);subplot(2,1,2); plot(t,y1); grid on;title(阶跃响应的理论值);xlabel(t(sec); ylabel(y(t);四、实验内容求下列微分方程描述的系统的冲激响应和阶跃响应,并写出相应的MATLAB源代码。12第三章 连续系统的频域分析实验一 连续信号的傅里叶变换一、实验目的1、复习连续时间信号的傅里叶变换。2、掌握在MATLAB中如何画出正弦信号、指数信号和矩形脉冲信号的傅里叶变换的波形。二、实验步骤打开“连续时间信号及系统实验”界面,单击“系统的频域分析”|“连续信号的傅里叶变换”菜单,打开如图3-1所示界面。在下拉列表框中选择信号的类型,然后在文本框中输入相应信号的参数,单击“绘图”按钮,在界面左下角会出现该信号的傅里叶变换的频谱图。如图3-2所示。图3-1 连续信号的傅里叶变换图3-2 正弦信号的傅里叶变换指数信号的傅里叶变换和矩形脉冲信号的傅里叶变换如图3-3和图3-4所示:图3-3 指数信号的傅里叶变换3-4 矩形脉冲信号的傅里叶变换三、实验原理在MATLAB中,傅里叶变换及逆变换的函数是fourier()及ifourier()。下面以正弦信号为例说明连续信号的傅里叶变换的MATLAB源代码。 a=1; b=0.5; c=0;f=a*sin(b*pi*t+pi*c)*sym(Heaviside(t); FF = fourier(f);ezplot(abs(FF) ;采用fourier()及ifourier()得到的返回函数,仍然是符号表达式。若需对返回函数作图,则应用ezplot()绘图命令而不能用plot()命令。用fourier函数求信号变换时,有它的局限性。如果返回函数中含有诸如狄拉克函数的项,则用ezplot()也无法作图;此外,用fourier()对某些信号求变换时,其返回函数可能会包含一些不能直接表达的式子;另一个局限实在很多应用场合,原信号f(t)尽管是连续的,但却不可能表示成符号表达式;而更多的实际测量现场获得的信号是多组离散的数值量f(k),此时也不可能用fourier()对f(k)进行处理四、实验内容1、画出以下信号的傅里叶变换的波形a. b. c. 实验二 连续时间系统的频率特性一、 实验目的1、复习连续时间系统的频率特性。2、掌握在MATLAB中如何求解连续时间系统的频率响应。二、实验步骤打开“连续时间信号及系统实验”界面,单击“系统的频域分析”|“系统的频域特性”菜单,打开系统的频域特性界面。输入系统函数分子分母中前的系数,例如系统函数,分子的系数为1,分母的系数为1 2 2 1。单击“绘图”按钮,在界面左下角会出现该系统的频域特性图。如图3-5所示。图3-5 系统的频域特性界面三、 实验原理当连续时间系统的频率响应是的有理多项式时,即: (3-1)或写成的形式: (3-2)MATLAB信号处理工具箱提供了freqs函数可以直接计算系统的频率响应,它的一般调用形式为:Hfreqs(b,a,w) (3-3)式中b为中分子多项式的系数向量,a为分母多项式的系数向量,w为需要计算的的频率抽样点向量(w中至少需包含2个频率点,w的单位为rad/s)。如果没有输出参数直接调用freqs函数,则MATLAB会在当前绘图窗口中自动画出幅频和相频响应曲线图形。例:三阶归一化的Butterworth低通滤波器的频率响应为:利用MATLAB画出该系统的幅频响应和相频响应的MATLAB源程序为:w=linspace(0,5,200);b=1; a=1,2,2,1;H=freqs(b,a,w);subplot(2,1,1);plot(w,abs(H);set(gca,xtick,0 1 2 3 4 5);set(gca,ytick,0 0.4 0.707 1);xlabel(omega(rad/s); ylabel(|H(jomega)|); grid on;subplot(2,1,2);plot(w,angle(H);set(gca,xtick,0 1 2 3 4 5);xlabel(omega(rad/s); ylabel(phi(rad); grid on;四、实验内容1. 设有两个稳定的LTI系统,可分别由下列微分方程来描述:a.b.分别画出它们的系统频率响应的幅值和相位特性曲线。2、有一模拟滤波器,其传递函数为:用freqs函数画出它的幅频特性和相位特性曲线。实验三 连续时间系统的s域分析一、 实验目的1、复习连续时间系统的s域分析的相关知识。2、掌握在MATLAB中实现s域的部分分式展开,求零极点并画出系统的零极点图。二、实验步骤1、系统函数的部分分式展开打开“连续时间信号及系统实验”界面,单击“系统的s域分析”|“拉氏变换部分分式展开”菜单,打开拉氏变换部分分式展开界面。在界面上输入系统函数分子分母s前面的系数,例如系统函数,分子的系数为1 2,分母的系数为1 4 3 0。单击“极点为:”按钮,则该系统函数的极点以及各个极点对应的待定系数显示在界面上,如图3-6所示。即该系统函数被展开为。图3-6 系统函数部分分式展开2、系统的零极点图打开“连续时间信号及系统实验”界面,单击“系统的s域分析”|“系统的零极点图”菜单,打开系统零极点图界面。在界面上输入系统函数分子分母s前面的系数。单击“绘图”按钮,界面上显示出该系统的零极点图,同时界面上显示该系统函数的零点和极点,如图3-7所示。图3-7 系统的零极点图三、 实验原理1、利用MATLAB实现s域的部分分式展开式 利用MATLAB中的resi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 银行引流推广活动方案
- 焊工考试题 题库及答案
- 共性学法考试题及答案
- 公交操作考试题及答案
- 幼儿园教学教案设计:安全用吸管
- 房产行业考试题及答案
- 企业培训需求分析工具员工成长支持
- 安全健康作业保障承诺书3篇
- 把握文章的内在逻辑:初中语文课文深度解读教案
- 医疗用品购销及设备租赁合同
- 2025至2030年中国密炼机上辅机系统行业投资前景及策略咨询研究报告
- 《T CPSS 1013-2021-开关电源电子元器件降额技术规范》
- 四川省德阳市中江县2024-2025学年九年级上学期期中考试英语试题(无答案)
- 2024年职工职业技能大赛数控铣工赛项理论考试题库-下(多选、判断题)
- 房地产行业市场调查报告
- 资金分析师职业鉴定考试复习题及答案
- 三级筑路工(高级)职业技能鉴定考试题库(含答案)
- 中职英语第三版第一册Unit1-Lesson1-课件
- 窗帘订购合同范本简单
- 人教版:生命生态安全六年级上册教案
- 抖音洗浴按摩足浴商家本地团购短视频直播运营策划方案【抖音本地生活运营】
评论
0/150
提交评论