




已阅读5页,还剩115页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
信 号 与 系 统实 验 指 导 书(实验报告)班级:姓名:中原工学院理学院前 言 “信号与系统”是无线电技术、自动控制、通信工程、生物医学电子工程、信号图象处理、空间技术等专业的一门重要的专业基础课,也是国内各院校相应专业的主干课程。 当前,科学技术的发展趋势既高度综合又高度分化,这要求高等院校培养的大学生,既要有坚实的理论基础,又要有严格的工程技术训练,不断提高实验研究能力、分析计算能力、总结归纳能力和解决各种实际问题的能力。21世纪要求培养“创造型、开发型、应用型”人才,即要求培养智力高、能力强、素质好的人才。 由于该课程核心的基本概念、基本理论和分析方法都非常重要,而且系统性、理论性很强,为此在学习本课程时,开设必要的实验,对学生加深理解深入掌握基本理论和分析方法,培养学生分析问题和解决问题的能力,以及使抽象的概念和理论形象化、具体化,对增强学习的兴趣有极大的好处,做好本课程的实验,是学好本课程的重要教学辅助环节。实验内容实验一 系统的卷积响应实验八 信号与系统的时域分析实验九 连续时间信号的频域分析实验十 连续时间LTI系统的频域分析实验十一 抽样定理实验十二 连续时间LTI系统的复频域分析实验一 系统的卷积响应实验性质:提高性 实验级别:必做开课单位:理学院 学 时:2一、实验目的:深刻理解卷积运算,利用离散卷积实现连续卷积运算;深刻理解信号与系统的关系,学习MATLAB语言实现信号通过系统的仿真方法。二、实验设备:计算机,MATLAB软件三、实验原理: 1、 离散卷积和:调用函数:conv()为离散卷积和,其中,f1(k), f2 (k) 为离散序列,K=-2, -1, 0 , 1, 2, 。但是,conv函数只给出纵轴的序列值的大小,而不能给出卷积的X轴序号。为得到该值,进行以下分析:对任意输入:设非零区间n1n2,长度L1=n2-n1+1;非零区间m1m2,长度L2=m2-m1+1。则:非零区间从n1+m1开始,长度为L=L1+L2-1,所以S(K)的非零区间为:n1+m1 n1+m1+L-1。 (说明:第七章离散系统的卷积和-对位相乘求和)2、 连续卷积和离散卷积的关系:计算机本身不能直接处理连续信号,只能由离散信号进行近似:设一系统(LTI)输入为,输出为,如图所示。LTI t 若输入为f(t):得输出:当时:所以:如果只求离散点上的f 值所以,可以用离散卷积和CONV()求连续卷积,只需足够小以及在卷积和的基础上乘以。3、 连续卷积坐标的确定:设非零值坐标范围:t1t2,间隔P 非零值坐标范围:tt1tt2,间隔P非零值坐标:t1+tt1t2+tt2+1根据给定的两个连续时间信号x(t) = tu(t)-u(t-1)和h(t) = u(t)-u(t-1),编写程序,完成这两个信号的卷积运算,并绘制它们的波形图。范例程序如下:% Program1% This program computes the convolution of two continuou-time signalsclear;close all;t0 = -2; t1 = 4; dt = 0.01;t = t0:dt:t1;x = jieyue(t)-jieyue(t-1);h = t.*( jieyue(t)-jieyue(t-1);y = dt*conv(x,h); % Compute the convolution of x(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 convolution of x(t) and h(t), axis(2*t0,2*t1,-0.1,0.6), xlabel(Time t sec)补充:function f=jieyue(t)f=(t0) (首先建立jieyue.m文件)在有些时候,做卷积和运算的两个序列中,可能有一个序列或者两个序列都非常长,甚至是无限长,MATLAB处理这样的序列时,总是把它看作是一个有限长序列,具体长度由编程者确定。实际上,在信号与系统分析中所遇到的无限长序列,通常都是满足绝对可和或绝对可积条件的信号。因此,对信号采取这种截短处理尽管存在误差,但是通过选择合理的信号长度,这种误差是能够减小到可以接受的程度的。若这样的一个无限长序列可以用一个数学表达式表示的话,那么,它的长度可以由编程者通过指定时间变量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的范围时,只要能够反映序列的主要特征就可以了。4、 系统的响应:设微分方程: 均为降幂顺序。则:1)、冲激响应为:impulse(b,a) impulse(b,a,t) impulse(b,a,t1:p:t2) y=impulse( ) 2)、阶跃响应为:step( )3)、零状态响应:lism(b,a,x,t)例如,编写程序,计算并绘制由下面的微分方程表示的系统的单位冲激响应h(t),单位阶跃响应s(t),在x(t)=5*exp(-2*t)激励下的零状态响应。 % Program2% This program is used to compute the impulse response h(t) and the step response s(t) of a % continuous-time LTI systemclear, close all;num = input(Type in the right coefficient vector of differential equation:);den = input(Type 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), lsim(num,den,x,t)四、预习要求:掌握MATLAB的使用。五、实验内容及步骤实验前,必须首先阅读本实验原理,读懂所给出的全部范例程序。实验开始时,先在计算机上运行这些范例程序,观察所得到的信号的波形图。并结合范例程序应该完成的工作,进一步分析程序中各个语句的作用,从而真正理解这些程序。实验前,一定要针对下面的实验项目做好相应的实验准备工作,包括事先编写好相应的实验程序等事项。1、根据示例程序的编程方法,编写一个MATLAB程序,由给定信号 x(t) = e-0.5tu(t)求信号y(t) = x(1.5t+3),并绘制出x(t) 和y(t)的图形。编写的程序如下:% Program1% This program computes the convolution of two continuou-time signalsclear;close all;t0 = -4; t1 = 4; dt = 0.01;t = t0:dt:t1;x =exp(t*-0.5).*jieyue(t);y=subs(x,1.5*t+3);subplot(211)plot(t,x), grid on, title(Signal x(t), axis(t0,t1,-0.2,1.2)subplot(212)plot(1.5*t+3,y), grid on, title(Signal y(t), axis(t0,t1,-0.2,1.2)xlabel(Time t sec)补充:function f=jieyue(t)f=(t0) (首先建立jieyue.m文件)信号x(t)的波形图 和 信号y(t) = x(1.5t+3) 的波形图此处粘贴图形 此处粘贴图形2、计算并用MATLAB实现下列信号的卷积编写的程序如下:% Program1% This program computes the convolution of two continuou-time signalsclear;close all;t0 = -2; t1 = 4; dt = 0.01;t = t0:dt:t1;x = jieyue(t)-jieyue(t-2);h = jieyue(t-1)-jieyue(t-3);y = dt*conv(x,h); % Compute the convolution of x(t) and h(t)subplot(221)plot(t,x), grid on, title(Signal x1(t), axis(t0,t1,-0.2,1.2)subplot(222)plot(t,h), grid on, title(Signal x2(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 convolution of x1(t) and x2(t), axis(2*t0,2*t1,-0.1,1.2), xlabel(Time t sec)补充:function f=jieyue(t)f=(t0) (首先建立jieyue.m文件)信号x1(t)、x2(t)和x1(t)*x2(t)的波形图此处粘贴图形3、给定两个离散时间序列 xn = 0.5nun-un-8 hn = un-un-8编写程序、,计算它们的卷积,并分别绘制xn、hn和它们的卷积yn的图形。编写的程序、如下:% Program1% This program computes the convolution of two continuou-time signalsclear;close all;n0 = -2; n1 = 8; dn = 0.01;n = n0:dn:n1;h = jieyue(n)-jieyue(n-8);x = (0.5)n.*( jieyue(n)-jieyue(n-8);y = dt*conv(x,h); % Compute the convolution of x(t) and h(t)subplot(221)plot(n,x), grid on, title(Signal x(n), axis(t0,t1,-0.2,1.2)subplot(222)plot(n,h), grid on, title(Signal h(n), axis(t0,t1,-0.2,1.2)subplot(212)t = 2*n:dn2*n; % Again specify the time range to be suitable to the % convolution of x and h.plot(n,y), grid on, title(The convolution of x(n) and h(n), axis(2*n0,2*n1,-0.1,0.6), xlabel(Time n sec)补充:function f=jieyue(n)f=(n0) (首先建立jieyue.m文件)信号xn、hn和yn的波形图此处粘贴图形4 、仿照范例程序Program2,编写程序,计算并绘制由如下微分方程表示的系统在输入信号为x(t) =,u(t), exp(-2*t)时的零状态响应和你手工计算得到的系统零状态响应曲线。 手工计算得到的系统零状态响应的数学表达式是: x(t) = x(t) =u(t) x(t) =exp(-2*t)编写的程序如下:% Program2% This program is used to compute the impulse response h(t) and the step response s(t) of a % continuous-time LTI systemclear, close all;num = input(Type in the right coefficient vector of differential equation:);den = input(Type 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), lsim(num,den,x,t) 用MATLAB绘制的手工计算的系统响应粘帖用MATLAB绘制的手工计算的系统响应执行程序得到的系统响应此处粘帖执行程序得到的系统响应思考题:MATLAB是如何表示一个由微分方程描述的连续时间LTI系统的?求解连续时间LTI系统的单位冲激响应、单位阶跃响应以及系统在某一个输入信号作用下的零状态响应的MATLAB函数有哪些?本实验完成时间: 年 月 日实验八:信号与系统的时域分析(2学时)一、实验目的1、熟悉和掌握常用的用于信号与系统时域仿真分析的MATLAB函数;2、掌握连续时间和离散时间信号的MATLAB产生,掌握用周期延拓的方法将一个非周期信号进行周期信号延拓形成一个周期信号的MATLAB编程;3、牢固掌握系统的单位冲激响应的概念,掌握LTI系统的卷积表达式及其物理意义,掌握卷积的计算方法、卷积的基本性质;4、掌握利用MATLAB计算卷积的编程方法,并利用所编写的MATLAB程序验证卷积的常用基本性质;二、实验设备计算机,MATLAB软件三、实验原理信号(Signal)一般都是随某一个或某几个独立变量的变化而变化的,例如,温度、压力、声音,还有股票市场的日收盘指数等,这些信号都是随时间的变化而变化的,还有一些信号,例如在研究地球结构时,地下某处的密度就是随着海拔高度的变化而变化的。一幅图片中的每一个象素点的位置取决于两个坐标轴,即横轴和纵轴,因此,图像信号具有两个或两个以上的独立变量。 在信号与系统课程中,我们只关注这种只有一个独立变量(Independent variable)的信号,并且把这个独立变量统称为时间变量(Time variable),不管这个独立变量是否是时间变量。 在自然界中,大多数信号的时间变量都是连续变化的,因此这种信号被称为连续时间信号(Continuous-Time Signals)或模拟信号(Analog Signals),例如前面提到的温度、压力和声音信号就是连续时间信号的例子。但是,还有一些信号的独立时间变量是离散变化的,这种信号称为离散时间信号。前面提到的股票市场的日收盘指数,由于相邻两个交易日的日收盘指数相隔24小时,这意味着日收盘指数的时间变量是不连续的,因此日收盘指数是离散时间信号。 而系统则用于对信号进行运算或处理,或者从信号中提取有用的信息,或者滤出信号中某些无用的成分,如滤波,从而产生人们所希望的新的信号。系统通常是由若干部件或单元组成的一个整体(Entity)。系统可分为很多不同的类型,例如,根据系统所处理的信号的不同,系统可分为连续时间系统(Continuous-time system)和离散时间系统(Discrete-time system),根据系统所具有的不同性质,系统又可分为因果系统(Causal system)和非因果系统(Noncausal system)、稳定系统(Stable system)和不稳定系统(Unstable system)、线性系统(Linear system)和非线性系统(Nonlinear system)、时变系统(Time-variant system)和时不变系统(Time-invariant system)等等。 然而,在信号与系统和数字信号处理中,我们所分析的系统只是所谓的线性时不变系统,这种系统同时满足两个重要的基本性质,那就是线性性和时不变性,通常称为线性时不变(LTI)系统。1. 信号的时域表示方法1.1将信号表示成独立时间变量的函数例如 : x(t)=sin(t) 和 xn=n(0.5)nun分别表示一个连续时间信号和一个离散时间信号。在MATLAB中有许多内部函数,可以直接完成信号的这种表达,例如:sin():正弦信号cos():余弦信号exp():指数信号1.2用信号的波形图来描述信号用函数曲线表示一个信号,图8.1就是一个连续时间信号和一个离散时间信号的波形图。图8.1 连续时间信号与离散时间信号的波形图1.3将信号用一个数据序列来表示对于离散时间信号,还可以表示成一个数的序列,例如: xn=., 0.1, 1.1, -1.2, 0, 1.3, . n=0 在信号与系统和数字信号处理课程中,上述三种信号的描述方法是经常要使用的。2 用MATLAB仿真连续时间信号和离散时间信号 在MATLAB中,无论是连续时间信号还是离散时间信号,MATLAB都是用一个数字序列来表示信号,这个数字序列在MATLAB中叫做向量(vector)。通常的情况下,需要与时间变量相对应。 如前所述,MATLAB有很多内部数学函数可以用来产生这样的数字序列,例如sin()、cos()、exp()等函数可以直接产生一个按照正弦、余弦或指数规律变化的数字序列。2.1连续时间信号的仿真程序Program1_1是用MATLAB对一个正弦信号进行仿真的程序,请仔细阅读该程序,并在计算机上运行,观察所得图形。% Program1_1% This program is used to generate a sinusoidal signal and draw its plotclear, % Clear all variablesclose all, % Close all figure windowsdt = 0.01; % Specify the step of time variablet = -2:dt:2; % Specify the interval of timex = sin(2*pi*t); % Generate the signalplot(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可以实现在你的图形中加网格线。grid on:在图形中加网格线。grid off:取消图形中的网格线。x = input(Type in signal x(t) in closed form:)在信号与系统课程中,单位阶跃信号u(t) 和单位冲激信号(t) 是二个非常有用的信号。它们的定义如下 8.1(a) 8.1(b)这里分别给出相应的简单的产生单位冲激信号和单位阶跃信号的扩展函数。产生单位阶跃信号的扩展函数为:% Unit step functionfunction y = u(t)y = (t=0); % y = 1 for t 0, else y = 0产生单位冲激信号的扩展函数为:function y = delta(t)dt = 0.01;y = (u(t)-u(t-dt); 请将这二个MATLAB函数分别以delta 和u为文件名保存在work文件夹中,以后,就可以像教材中的方法使用单位冲激信号(t) 和单位阶跃信号u(t)。2.2离散时间信号的仿真程序Program1_2用来产生离散时间信号xn=sin(0.2n)。% Program1_2% This program is used to generate a discrete-time sinusoidal signal and draw its plotclear, % Clear all variablesclose all, % Close all figure windowsn = -10:10; % Specify the interval of timex = sin(0.2*pi*n); % Generate the signalstem (n,x) % Open a figure window and draw the plot of xntitle (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 plotclear, % Clear all variablesclose all, % Close all figure windowsn = -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 signalstem(n,x,.) % Open a figure window and draw the plot of xn,以.表示。grid on,title (A discrete-time sequence xn)xlabel (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可以用这个MATLAB语句x = zeros(1,4) x zeros(1, 2) 来实现。用这种方法编写的程序如下:% Program1_4% This program is used to generate a discrete-time sinusoidal signal% and draw its plotclear, % Clear all variablesclose all, % Close all figure windowsn = -5:5; % Specify the interval of time,共11个离散点x = zeros(1,4), 0.1, 1.1, -1.2, 0, 1.3, zeros(1,2); % Generate the sequencestem (n,x,., r) % Open a figure window and draw the plot of xn,红点grid on,title (A discrete-time sequence xn)xlabel (Time index n) 离散时间单位阶跃信号un定义为 8.2离散时间单位阶跃信号un除了也可以直接用前面给出的扩展函数来产生,还可以利用MATLAB内部函数ones(1,N) 来实现。这个函数类似于zeros(1,N),所不同的是它产生的矩阵的所有元素都为1。 值得注意的是,利用ones(1,N) 来实现的单位阶跃序列并不是真正的单位阶跃序列,而是一个长度为N单位门(Gate)序列,也就是un-un-N。但是在一个有限的图形窗口中,我们看到的还是一个单位阶跃序列。 在绘制信号的波形图时,有时我们需要将若干个图形绘制在图一个图形窗口中,这就需要使用MATLAB的图形分割函数subplot(),其用法是在绘图函数stem或plot之前,使用图形分割函数subplot(n1,n2,n3),其中的参数n1,n2和n3的含义是,该函数将把一个图形窗口分割成n1xn2个子图,即将绘制的图形将绘制在第n3个子图中。2.3信号的时域变换2.3.1 信号的时移 信号的时移可用下面的数学表达式来描述: 设一个连续时间信号为x(t),它的时移y(t) 表示为: y(t) = x(t - t0) 8.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+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(-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)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)另一种编程方法:% Program1_5_1% 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)subplot(311)plot(t,x) % Plot x(t)grid on,title (Original signal x(t)subplot (312)plot (t-2,x) % Plot x1(t)grid on,title (Left shifted version of x(t+2)subplot (313)plot (t+2,x) % Plot x2(t)grid on,title (Right shifted version of x(t-2)xlabel (Time t (sec)2.3.2 信号的时域反褶 对一个信号xn的反褶运算在数学上表示为 yn = x-n 8.4 这种反褶运算,用MATLAB实现起来也是非常简单的。有多种方法可以实现信号的反褶运算。方法一,修改绘图函数plot(t,x)和stem(n,x)中的时间变量t和n,即用-t和-n替代原来的t和n,这样绘制出来的图形,看起来就是原信号经时域反褶后的版本。方法二,直接利用原信号与其反褶信号的数学关系式来实现。这种方法最符合信号反褶运算的实际意义。方法三,使用MATLAB内部函数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 投标委托代理协议书
- 广告生意转让协议书
- 房屋建设安全协议书
- 房屋交易合同协议书
- 授权产品营销协议书
- 幼儿自愿春游协议书
- 断绝姨甥关系协议书
- 庭院装修赔偿协议书
- 征地安置补助协议书
- 投资项目分解协议书
- 珠海住建局质量问题防治脱落和开裂防治篇
- 职业暴露应急预案演练
- 2024年秋江苏开放大学文献检索与论文写作参考范文一:行政管理专业
- 《电力市场概论》 课件 第五章 系统安全与辅助服务
- 《10000以内数的读、写法》(教案)-二年级下册数学人教版
- 2024年湖南省高考生物试卷真题(含答案解析)
- 秘书公文写作范文
- 《民法典》2024年知识考试题库(含答案)
- 《篮球原地双手胸前传接球》教案 (三篇)
- 旅游经济专业知识和实务经济师考试(中级)试卷及解答参考(2025年)
- 高中化学新课标知识考试题库大全(新版)
评论
0/150
提交评论