《2022年信号与系统实验教案 .pdf》由会员分享,可在线阅读,更多相关《2022年信号与系统实验教案 .pdf(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、名师精编优秀教案信 号 与 系 统实 验 指 导 书( M atlab)董海兵湖南工学院电气与信息工程系二一年三月一日精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 25 页名师精编优秀教案前言信号与系统 、 数字信号处理是电子信息类专业的两门主要技术基础课程,是电子信息类专业本科生的必修课程,也是电子信息类专业硕士研究生入学必考课程。该课程的任务在于研究信号与系统理论的基本概念和基本分析方法,使学生初步认识如何建立信号与系统的数学模型,如何经适当的数学分析求解,并对所得结果给予物理解释,赋予物理意义。该课程的基本理论和方法大量用于计算
2、机信息处理的各个领域,特别是通信、数字语音处理、数字图像处理、数字信号分析等领域应用更为广泛。通过实验,配合信号与系统和数字信号处理课程的教学、加强学生对信号与系统理论的感性认识、提高学生的综合能力具有重要的意义。长期以来,信号与系统和数字信号处理课程一直采用黑板式的单一教学方式,学生仅依靠做习题来巩固和理解教学内容,对课程中大量的应用性较强的内容不能实际动手设计、调试、分析,严重影响和制约了教学效果。由于黑板式教学,课程中大量的信号分析结果缺乏可视化的直观表现,学生自己设计系统也不能直观地得到系统特性的可视化测试结果,学生将大量的时间和精力用于繁杂的手工数学运算,而未真正理解所得结果在信号处
3、理中的实际意义。近年来,计算机多媒体教序手段的运用逐步普及,大量优秀的科学计算和系统仿真软件不断涌现,为我们实现计算机辅助教学和学生上机实验提供了很好的平台。通过对这些软件的分析和对比,我们选择MATLAB语言作为辅助教学工具,借助MA TLAB 强大的计算能力和图形表现能力,将信号与系统和数字信号处理中的概念、方法和相应的结果,以图形的形式直观地展现给学生,大大的方便学生迅速掌握和理解教学内容。为了使学生能够较好的使用MA TLAB语言完成相应的实验任务,本指导书中详细地给出了与信号与系统相关的众多的MATLAB函数及其用法,同时给出了一些范例程序,说明针对某一具体问题进行编程的方法等。学生
4、们在实验前,只要认真阅读、 预习实验的相关内容,并在实验中,严格按照实验指导书中规定的实验内容和步骤进行实验,即可完成相应的实验报告。信号与系统实验指导书中设计的实验项目包括:1、信号与系统的时域分析;2、连续时间信号的频域分析;3、连续时间LTI 系统的频域分析; 4、通信系统仿真;5、连续时间LTI 系统的复频域分析。所有这些实验项目和所涉及到的实验内容基本上覆盖了信号与系统这门课程的大部分主要内容。和其他课程的实验指导书有所不同的是,本实验指导同时兼作实验报告之用,目的是希望将学生从不是特别必要的实验报告的文字撰写中解脱出来,从而将主要精力和时间用到对问题的分析、算法的确定和程序的编写之
5、中。本实验指导中所给出的全部范例程序,都在MATLAB6.5上运行,且是正确的。由于时间仓促和编者水平有限,本实验指导在编写和编辑的过程中,不可避免地存在错误和不当之处,恳请老师和同学们批评指正。湖南工学院电气与信息工程系二一年三月一日精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 25 页名师精编优秀教案目录实验一:连续时间信号与系统的时域分析-6 一、实验目的及要求-6 二、实验原理-6 1、信号的时域表示方法-6 2、用 MATLAB仿真连续时间信号和离散时间信号-7 3、LTI 系统的时域描述-11 三、实验步骤及内容-15 四
6、、实验报告要求-26 实验二:连续时间信号的频域分析-27 一、实验目的及要求-27 二、实验原理-27 1、连续时间周期信号的傅里叶级数CTFS-27 2、连续时间信号的傅里叶变换CTFT-28 3、离散时间信号的傅里叶变换DTFT -28 4、连续时间周期信号的傅里叶级数CTFS 的 MATLAB实现-29 5、用 MATLAB实现 CTFT 及其逆变换的计算-33 三、实验步骤及内容 -34 四、实验报告要求 -48 实验三:连续时间LTI 系统的频域分析 -49 一、实验目的及要求-49 二、实验原理-49 1、连续时间LTI 系统的频率响应-49 2、LTI 系统的群延时-50 3、
7、用 MATLAB计算系统的频率响应-50 三、实验步骤及内容 -51 四、实验报告要求 -58 实验四:通信系统仿真 -59 一、实验目的及要求-59 二、实验原理-59 1、信号的抽样及抽样定理-59 2、信号抽样过程中的频谱混叠-62 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 25 页名师精编优秀教案3、信号重建 - -62 4、调制与解调 -64 5、通信系统中的调制与解调仿真-66 三、实验步骤及内容-66 四、实验报告要求-75 实验五:连续时间LTI 系统的复频域分析 -76 一、实验目的及要求-76 二、实验原理-7
8、6 1、连续时间LTI 系统的复频域描述-76 2、系统函数的零极点分布图-77 3、拉普拉斯变换与傅里叶变换之间的关系-78 4、系统函数的零极点分布与系统稳定性和因果性之间的关系-79 5、系统函数的零极点分布与系统的滤波特性-80 6、拉普拉斯逆变换的计算-81三、实验步骤及内容-82 四、实验报告要求-87 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 25 页名师精编优秀教案实验一信号与系统的时域分析一、实验目的1、熟悉和掌握常用的用于信号与系统时域仿真分析的MA TLAB 函数;2、掌握连续时间和离散时间信号的MATLAB
9、产生,掌握用周期延拓的方法将一个非周期信号进行周期信号延拓形成一个周期信号的MATLAB编程;3、牢固掌握系统的单位冲激响应的概念,掌握 LTI 系统的卷积表达式及其物理意义,掌握卷积的计算方法、卷积的基本性质;4、掌握利用MATLAB计算卷积的编程方法,并利用所编写的MATLAB程序验证卷积的常用基本性质;掌握 MATLAB描述 LTI 系统的常用方法及有关函数,并学会利用MATLAB求解 LTI 系统响应,绘制相应曲线。基本要求:掌握用 MATLAB描述连续时间信号和离散时间信号的方法,能够编写 MA TLAB程序,实现各种信号的时域变换和运算,并且以图形的方式再现各种信号的波形。掌握线性
10、时不变连续系统的时域数学模型用MATLAB描述的方法,掌握卷积运算、线性常系数微分方程的求解编程。二、实验原理信号( Signal)一般都是随某一个或某几个独立变量的变化而变化的,例如,温度、压力、声音,还有股票市场的日收盘指数等,这些信号都是随时间的变化而变化的,还有一些信号,例如在研究地球结构时,地下某处的密度就是随着海拔高度的变化而变化的。一幅图片中的每一个象素点的位置取决于两个坐标轴,即横轴和纵轴,因此,图像信号具有两个或两个以上的独立变量。在信号与系统课程中,我们只关注这种只有一个独立变量( Independent variable )的信号, 并且把这个独立变量统称为时间变量 (T
11、ime variable ) ,不管这个独立变量是否是时间变量。在自然界中,大多数信号的时间变量都是连续变化的,因此这种信号被称为连续时间信号(Continuous-Time Signals)或模拟信号( Analog Signals) ,例如前面提到的温度、压力和声音信号就是连续时间信号的例子。但是,还有一些信号的独立时间变量是离散变化的,这种信号称为离散时间信号。前面提到的股票市场的日收盘指数,由于相邻两个交易日的日收盘指数相隔 24 小时,这意味着日收盘指数的时间变量是不连续的,因此日收盘指数是离散时间信号。而系统则用于对信号进行运算或处理,或者从信号中提取有用的信息,或者滤出信号中某些
12、无用的成分,如滤波,从而产生人们所希望的新的信号。系统通常是由若干部件或单元组成的一个整体( Entity ) 。系统可分为很多不同的类型,例如,根据系统所处理的信号的不同,系统可分为 连续时间系统(Continuous-time system)和离散时间系统(Discrete-time system) ,根据系统所具有的不同性质,系统又可分为因果系统( Causal system ) 和非因果系统 (Noncausal system ) 、 稳定系统(Stable system ) 和不稳定系统 (Unstable system) 、 线性系统(Linear system)和 非 线 性 系
13、 统 ( Nonlinear system) 、 时 变 系 统 ( Time-variant system) 和 时 不 变 系 统(Time-invariant system )等等。然而,在信号与系统和数字信号处理中,我们所分析的系统只是所谓的线性时不变系统,这种系统同时满足两个重要的基本性质,那就是线性性和时不变性,通常称为线性时不变(LTI)精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 25 页名师精编优秀教案系统。1. 信号的时域表示方法1.1将信号表示成独立时间变量的函数例如x(t)=sin( t) 和 xn=n(0.5
14、)nun 分别表示一个连续时间信号和一个离散时间信号。在MATLAB中有许多内部函数,可以直接完成信号的这种表达,例如:sin():正弦信号cos():余弦信号exp():指数信号1.2用信号的波形图来描述信号用函数曲线表示一个信号,图1.1 就是一个连续时间信号和一个离散时间信号的波形图。图 1.1 连续时间信号与离散时间信号的波形图1.3将信号用一个数据序列来表示对于离散时间信号,还可以表示成一个数的序列,例如:xn=., 0.1, 1.1, -1.2, 0, 1.3, . n=0 在信号与系统和数字信号处理课程中,上述三种信号的描述方法是经常要使用的。2 用 MATLAB 仿真连续时间信
15、号和离散时间信号在 MATLAB中,无论是连续时间信号还是离散时间信号,MATLAB都是用一个数字序列来表示信号,这个数字序列在MATLAB中叫做向量 (vector)。通常的情况下,需要与时间变量相对应。如前所述, MATLAB 有很多内部数学函数可以用来产生这样的数字序列,例如 sin()、 cos()、exp()等函数可以直接产生一个按照正弦、余弦或指数规律变化的数字序列。2.1连续时间信号的仿真程序 Program1_1是用MATLAB对一个正弦信号进行仿真的程序,请仔细阅读该程序,并在计算机上运行,观察所得图形。精选学习资料 - - - - - - - - - 名师归纳总结 - -
16、- - - - -第 6 页,共 25 页名师精编优秀教案% Program1_1 % This program is used to generate a sinusoidal signal and draw its plot clear, % Clear all variables close all, % Close all figure windows dt = 0.01; % Specify the step of time variable t = -2:dt:2; % Specify the interval of time x = sin(2*pi*t); % Generate
17、 the signal plot(t,x) % Open a figure window and draw the plot of x(t) title(Sinusoidal signal x(t) xlabel(Time t (sec) 常用的图形控制函数axis(xmin,xmax,ymin,ymax): 图型显示区域控制函数,其中 xmin 为横轴的显示起点,xmax为横轴的显示终点,ymin 为纵轴的显示起点,ymax 为纵轴的显示终点。有时,为了使图形具有可读性,需要在所绘制的图形中,加上一些网格线来反映信号的幅度大小。 MATLAB 中的 grid on/grid off 可以实现
18、在你的图形中加网格线。grid on:在图形中加网格线。grid off :取消图形中的网格线。x = input( Type in signal x(t) in closed form: ) 在 信号与系统 课程中, 单位阶跃信号u(t) 和单位冲激信号 (t) 是二个非常有用的信号。它们的定义如下0,0)(1)(ttdttt1.1(a) 0, 00, 1)(tttu1.1(b) 这里分别给出相应的简单的产生单位冲激信号和单位阶跃信号的扩展函数。产生单位冲激信号的扩展函数为:function y = delta(t) dt = 0.01; y = (u(t)-u(t-dt)/dt; 产生单位
19、阶跃信号的扩展函数为:% Unit step function function y = u(t) y = (t=0); % y = 1 for t 0, else y = 0 请将这二个MA TLAB 函数分别以delta 和 u 为文件名保存在work 文件夹中,以后,就可以像教材中的方法使用单位冲激信号 (t) 和单位阶跃信号u(t)。2.2离散时间信号的仿真程序 Program1_2 用来产生离散时间信号xn =sin(0.2 n)。% Program1_2 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 25 页名师精编优秀教
20、案% This program is used to generate a discrete-time sinusoidal signal and draw its plot clear, % Clear all variables close all, % Close all figure windows n = -10:10; % Specify the interval of time x = sin(0.2*pi*n); % Generate the signal stem (n,x) % Open a figure window and draw the plot of xn tit
21、le (Sinusoidal signal xn) xlabel (Time index n) 请仔细阅读该程序,比较程序Program1_1 和 Program1_2 中的不同之处,以便自己编程时能够正确使用这种方法方针连续时间信号和离散时间信号。程序 Program1_3 用来仿真下面形式的离散时间信号:xn=., 0.1, 1.1, -1.2, 0, 1.3, . n=0 % Program1_3 % This program is used to generate a discrete-time sequence % and draw its plot clear, % Clear a
22、ll variables close all, % Close all figure windows n = -5:5; % Specify the interval of time, the number of points of n is 11. x = 0, 0, 0, 0, 0.1, 1.1, -1.2, 0, 1.3, 0, 0; % Generate the signal stem(n,x,.) % Open a figure window and draw the plot of xn grid on, title (A discrete-time sequence xn) xl
23、abel (Time index n) 由于在程序的stem(n,x,.) 语句中加有 .选项,因此绘制的图形中每根棒条线的顶端是一个实心点。如果需要在序列的前后补较多的零的话,可以利用函数zeros(),其语法为:zeros(1, N):圆括号中的1和 N 表示该函数将产生一个一行N 列的矩阵,矩阵中的所有元素均为零。利用这个矩阵与序列xn 进行组合,从而得到一个长度与n 相等的向量。例如,当xn= 0.1, 1.1, -1.2, 0, 1.3 时,为了得到程序Program1_3 中的序列, n=0 可以用这个MA TLAB 语句 x = zeros(1,4) x zeros(1, 2)
24、来实现。用这种方法编写的程序如下:% Program1_4 % This program is used to generate a discrete-time sinusoidal signal % and draw its plot clear, % Clear all variables close all, % Close all figure windows n = -5:5; % Specify the interval of time x = zeros(1,4), 0.1, 1.1, -1.2, 0, 1.3, zeros(1,2); % Generate the sequen
25、ce stem (n,x,.) % Open a figure window and draw the plot of xn grid on, 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 8 页,共 25 页名师精编优秀教案title (A discrete-time sequence xn) xlabel (Time index n) 离散时间单位阶跃信号un 定义为0,00, 1nnnu1.2 离散时间单位阶跃信号un 除了也可以直接用前面给出的扩展函数来产生,还可以利用MATLAB内部函数ones(1,N) 来实现。这个函数类似于zero
26、s(1,N),所不同的是它产生的矩阵的所有元素都为1。值得注意的是,利用ones(1,N) 来实现的单位阶跃序列并不是真正的单位阶跃序列,而是一个长度为N 单位门 (Gate)序列,也就是un-un-N 。但是在一个有限的图形窗口中,我们看到的还是一个单位阶跃序列。在绘制信号的波形图时,有时我们需要将若干个图形绘制在图一个图形窗口中,这就需要使用 MATLAB的图形分割函数subplot(),其用法是在绘图函数stem 或 plot 之前,使用图形分割函数 subplot(n1,n2,n3) ,其中的参数n1,n2 和 n3 的含义是,该函数将把一个图形窗口分割成n1xn2 个子图,即将绘制的
27、图形将绘制在第n3 个子图中。2.3信号的时域变换2.3.1 信号的时移信号的时移可用下面的数学表达式来描述:设一个连续时间信号为x(t),它的时移y(t) 表示为:y(t) = x(t - t0) 1.3 其中, t0为位移量。若t0为正数,则y(t)等于将 x(t)右移 t0秒之后的结果。反之,若t0为负数,则 y(t) 等于将 x(t)左移 t0秒之后的结果。在 MATLAB中,时移运算与数学上习惯表达方法完全相同。程序 Program1_5 对给定一个连续时间信号x(t) = e-0.5tu(t), 对它分别左移2 秒钟和右移2 秒钟得到信号x1(t) = e-0.5(t+2)u(t+
28、2)和 x2(t) = e-0.5(t-2)u(t-2) 。% Program1_5 % This program is used to implement the time-shift operation % on a continuous-time signal and to obtain its time-shifted versions % and to draw their plots. clear,close all, t = -5:0.01:5; x = exp(-0.5*t).*u(t); % Generate the original signal x(t) x1 = exp
29、(-0.5*(t+2).*u(t+2); % Shift x(t) to the left by 2 second to get x1(t) x2 = exp(-0.5*(t-2).*u(t-2); % Shift x(t) to the right by 2 second to get x2(t) subplot(311) plot(t,x) % Plot x(t) grid on, title (Original signal x(t) subplot (312) 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 9 页,共 25 页名师精编优秀
30、教案plot (t,x1) % Plot x1(t) grid on, title (Left shifted version of x(t) subplot (313) plot (t,x2) % Plot x2(t) grid on, title (Right shifted version of x(t) xlabel (Time t (sec) 2.3.2 信号的时域反褶对一个信号xn 的反褶运算在数学上表示为yn = x-n 1.4 这种反褶运算,用MATLAB实现起来也是非常简单的。有多种方法可以实现信号的反褶运算。方法一 ,修改绘图函数plot(t,x) 和 stem(n,x)中
31、的时间变量t 和 n,即用 -t 和-n 替代原来的t和 n,这样绘制出来的图形,看起来就是原信号经时域反褶后的版本。方法二 ,直接利用原信号与其反褶信号的数学关系式来实现。这种方法最符合信号反褶运算的实际意义。方法三 ,使用 MATLAB内部函数fliplr() 来实现信号的反褶运算。其用法如下:y = fliplr(x) : 其中 x 为原信号 x(t)或 xn, 而 y 则为 x 的时域反褶。需要说明的是, 函数 fliplr()对信号作时域反褶,仅仅将信号中各个元素的次序作了一个反转,这种反转处理是独立于时间变量 t 和 n 的。因此,如果信号与其时间变量能够用一个数学函数来表达的话,
32、那么建议将时间变量 t 和 n 的范围指定在一个正负对称 的时间区间即可。2.3.3 信号的时域尺度变换信号 x(t)的时域尺度变换在数学描述为y(t) = x(at) ,1.5 其中 a 为任意常数。根据a 的不同取值,这种时域尺度变换对信号x(t) 具有非常不同的影响。当 a = 1 时, y(t) = x(t) ;当 a = -1 时, y(t) = x(-t) ,即 y(t) 可以通过将x(t)反褶运算而得到;当 a 1 时, y(t) = x(at) ,y(t)是将 x(t) 在时间轴上的压缩而得到;当 0 a 1 时, y(t) = x(at) , y(t)是将 x(t)在时间轴上
33、的扩展而得到;当 -1 a 0 时, y(t) = x(at) ,y(t)是将 x(t) 在时间轴上的扩展同时翻转而得到;当 a 0 时图形右移,t 0 时图形左移。4.计算两个信号重叠部分的乘积x( )h(t- );5.完成相乘后图形的积分。对于两个 时限信号( Time-limited signal) ,按照上述的五个步骤,作卷积积分运算时,关键是正确确定不同情况下的积分限。只要正确地确定了积分限都能得到正确定积分结果。尽管如此,在时域中计算卷积积分,总体上来说是一项比较困难的工作。借助 MATLAB的内部函数conv()可以很容易地完成两个信号的卷积积分运算。其语法为:y = dt*co
34、nv(x,h) 。其中 x 和 h 分别是两个作卷积运算的信号,y 为卷积结果。对于定义在不同时间段的两个时限信号x(t) ,t0 t t1,和 h(t),t2 t t3。 如果用 y(t) 来表示它们的卷积结果,则 y(t)的持续时间范围要比x(t)或 h(t)要长,其时间范围为t0+t2 t t1+t3。这个特点很重要,利用这个特点,在处理信号在时间上的位置时,可以很容易地将信号的函数值与时间轴的位置和长度关系保持一致性。根据给定的两个连续时间信号x(t) = tu(t)-u(t-1) 和 h(t) = u(t)-u(t-1) ,编写程序,完成这两个信号的卷积运算,并绘制它们的波形图。范例
35、程序如下:% Program1_6 % This program computes the convolution of two continuou-time signals clear;close all; 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 12 页,共 25 页名师精编优秀教案t0 = -2; t1 = 4; dt = 0.01; t = t0:dt:t1; x = u(t)-u(t-1); h = t.*(u(t)-u(t-1); y = dt*conv(x,h); % Compute the convolution of x(
36、t) and h(t) subplot(221) plot(t,x), grid on, title(Signal x(t), axis(t0,t1,-0.2,1.2) subplot(222) plot(t,h), grid on, title(Signal h(t), axis(t0,t1,-0.2,1.2) subplot(212) t = 2*t0:dt:2*t1; % Again specify the time range to be suitable to the % convolution of x and h. plot(t,y), grid on, title(The co
37、nvolution of x(t) and h(t), axis(2*t0,2*t1,-0.1,0.6), xlabel(Time t sec) 在有些时候,做卷积和运算的两个序列中,可能有一个序列或者两个序列都非常长,甚至是无限长, MATLAB 处理这样的序列时,总是把它看作是一个有限长序列,具体长度由编程者确定。实际上,在信号与系统分析中所遇到的无限长序列,通常都是满足绝对可和或绝对可积条件的信号。因此,对信号采取这种截短处理尽管存在误差,但是通过选择合理的信号长度,这种误差是能够减小到可以接受的程度的。若这样的一个无限长序列可以用一个数学表达式表示的话,那么,它的长度可以由编程者通过指
38、定时间变量n 的范围来确定。例如,对于一个单边实指数序列xn = 0.5nun,通过指定n 的范围为0 n 100,则对应的 xn 的长度为101 点,虽然指定更宽的n 的范围, xn 将与实际情况更相符合,但是,注意到,当 n 大于某一数时,xn之值已经非常接近于0 了。对于序列xn = 0.5nun,当 n = 7 时,x7 = 0.0078 ,这已经是非常小了。所以, 对于这个单边实指数序列,指定更长的n 的范围是没有必要的。当然,不同的无限长序列具有不同的特殊性,在指定n 的范围时,只要能够反映序列的主要特征就可以了。3.4 用线性常系数微分方程描述LTI 系统线性常系数微分方程或差分
39、方程是描述LTI 系统的另一个时域模型。一个连续时间LTI 系统,它的输入信号x(t)输出信号y(t) 关系可以用下面的微分方程来表达MkkkkNkkkkdttxdbdttyda00)()(1.12 式 1.12 中,max (N, M) 定义为系统的阶。式1.12 描述了 LTI 系统输入信号和输出信号的一种隐性关系( Implicit relationship ) 。为了求得系统响应信号的显式表达式 (Explicit expression ) ,必须对微分方程和差分方程求解。在 MATLAB中,一个LTI 系统也可以用系统微分方程的系数来描述,例如,一个LTI 连续时间系统的微分方程为)
40、()(2)(3)(22txtydttdydttydMATLAB则用两个系数向量num = 1 和 den = 1 3 2 来描述该系统, 其中 num 和 den分别精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 13 页,共 25 页名师精编优秀教案表示系统微分方程右边和左边的系数,按照微分运算的降阶排列。MATLAB的内部函数impulse() ,step(),initial() ,lsim() 可以用来计算并绘制连续时间LTI系统的 单位冲激响应,单位阶跃响应,零输入响应和任意信号作用于系统的零状态响应 。这些函数的用法描述如下:h= imp
41、ulse(num, den, T) 和impulse(num, den, T) s = step(num, den, T) 和step(num, den, T) y = lsim(num, den, x, t) 和lsim (num, den, x, t) 函数 impulse(),step()用来计算由num 和 den 表示的 LTI 系统的单位冲激响应和单位阶跃响应,响应的时间范围为0T,其中 den 和 num 分别为系统微分方程左右两边的系数向量,T为指定的响应的终点时间。h 和 s 的点数默认值为101 点。由此可以计算时间步长为dt = T/(101-1) 。不带返回值 的函数如
42、impulse(num, den, T) 和 step(num, den, T)将直接在屏幕上绘制系统的单位冲激响和单位阶跃响应曲线。带返回值 的函数如 y = lsim(num, den, x, t) 和 y = lsim(num, den, x, t),用来计算由num 和 den 表示的 LTI 系统在输入信号x 作用下的零状态响应。其中t为指定的时间变化范围,x 为输入信号, 它们的长度应该是相同的。如带返回参数y,则将计算的响应信号保存在y 中,若不带返回参数y,则直接在屏幕上绘制输入信号x 和响应信号y 的波形图。例如,编写程序,计算并绘制由下面的微分方程表示的系统的单位冲激响应h
43、(t),单位阶跃响应 s(t)。)(8)(2)(3)(22txtydttdydttydMATLAB范例程序如下:% Program1_7 % This program is used to compute the impulse response h(t) and the step response s(t) of a % continuous-time LTI system clear, close all; num = input(Type in the right coefficient vector of differential equation: ); den = input(Ty
44、pe in the left coefficient vector of differential equation: ); t = 0:0.01:8; x = input(Type in the expression of the input signal x(t):); subplot(221), impulse(num,den,8); subplot(222), step(num,den,8) subplot(223), plot(t,x); subplot(224), y=lsim(num,den,x,t);plot(t,y) 精选学习资料 - - - - - - - - - 名师归纳
45、总结 - - - - - - -第 14 页,共 25 页名师精编优秀教案三、实验内容及步骤实验前,必须首先阅读本实验原理,读懂所给出的全部范例程序。实验开始时,先在计算机上运行这些范例程序,观察所得到的信号的波形图。并结合范例程序应该完成的工作,进一步分析程序中各个语句的作用,从而真正理解这些程序。实验前,一定要针对下面的实验项目做好相应的实验准备工作,包括事先编写好相应的实验程序等事项。Q1-1:修改程序 Program1_1,将 dt 改为 0.2,再执行该程序,保存图形,看看所得图形的效果如何?dt = 0.01 时的信号波形dt = 0.2 时的信号波形此处粘贴图形此处粘贴图形这两幅
46、图形有什么区别,哪一幅图形看起来与实际信号波形更像?答:Q1-2:修改程序 Program1_1,并以 Q1_2 为文件名存盘,产生实指数信号x(t)=e-2t。 要求在图形中加上网格线,并使用函数axis()控制图形的时间范围在02 秒之间。然后执行该程序,保存所的图形。修改 Program1_1 后得到的程序Q1_2 如下:信号 x(t)=e-0.5t的波形图Q1-3:修改程序 Program1_1,并以 Q1_3 为文件名存盘,使之能够仿真从键盘上任意输入的一个连续时间信号,并利用该程序仿真信号x(t)=e-2t。修改 Program1_1 后得到的程序Q1_3 如下:信号 x(t)=e
47、-2t的波形图此处粘贴图形Q1-4:将实验原理中所给的单位冲激信号和单位阶跃信号的函数文件在MATLAB文件编辑器中编写好,并分别以文件名delta 和 u 存入 work 文件夹中以便于使用。抄写函数文件delta 如下:抄写函数文件u 如下:精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 15 页,共 25 页名师精编优秀教案Q1-5:修改程序Program1_4,并以Q1_5 为文件名存盘,利用axis()函数,将图形窗口的横坐标范围改为 -2 n 5,纵坐标范围改为-1.5 x 1.5。修改 Program1_4 后得到的程序Q1_5 如下
48、:信号的波形图此处粘贴图形Q1-6:仿照前面的示例程序的编写方法,编写一个MATLAB 程序,以Q1_6 为文件名存盘,使 之 能 够 在 同 一 个 图 形 窗 口 中 的 两 个 子 图 中 分 别 绘 制 信 号xn=0.5|n| 和x(t)=cos(2 t)u(t)-u(t-3) 。要求选择的时间窗能够表现出信号的主要部分(或特征)。编写的程序Q1_6 如下:信号 xn=0.5|n| 的波形图和信号x(t)=cos(2 t)u(t)-u(t-3) 的波形图Q1-7:根据示例程序的编程方法,编写一个MA TLAB 程序,以 Q1_7 为文件名存盘,由给定信号x(t) = e-0.5tu(
49、t) 求信号 y(t) = x(1.5t+3) ,并绘制出x(t) 和 y(t)的图形。编写的程序Q1_7 如下:信号 x(t)的波形图信号 y(t) = x(1.5t+3) 的波形图此处粘贴图形此处粘贴图形Q1-8:给定一个离散时间信号xn = un un-8 , 仿照示例程序Program1_5, 编写程序 Q1_8,产生 xn 的左移序列x1n = xn+6 和右移序列x2n = xn-6 ,并在同一个图形窗口的三个子图中分别绘制这三个序列的图形。编写的程序Q1_8 如下:精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 16 页,共 25 页
50、名师精编优秀教案信号波形图此处粘贴图形Q1-9:编写程序Q1_9,使之能够接受以键盘方式输入的定义在不同时间段 的两个不同连续时间信号 并完成 卷积运算 ,分别绘制这两个信号及其卷积的结果的图形,图形按照2 2分割成四个子图。编写的程序Q1_9 如下:信号 x (t)、h(t)和 x (t)*h(t) 的波形图此处粘贴图形Q1-10:给定两个离散时间序列xn = 0.5nun-un-8 hn = un-un-8 编写程序Q1_10,计算它们的卷积,并分别绘制xn 、hn和它们的卷积yn 的图形。编写的程序Q1_10 如下:信号 xn、hn和 yn的波形图此处粘贴图形Q1-11已知一个序列为o