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)输入为,输出为,如图所示。 t若输入为f(t):得输出:当
2、时:所以:如果只求离散点上的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),编写程序,完成这两个信号的卷积运算,并绘制它们的波形图。范例程序如下:先编写单位阶跃函数u(t)function y=u(t)y=(t=0);% Program1% This program computes the convolution
3、of two continuou-time signalsclear;close all;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(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
4、)subplot(212)t = 2*t0: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)在有些时候,做卷积和运算的两个序列中,可能有一个序列或者两个序列都非常长,甚至是无限长,MATLAB处理这样的序列时,总是把它看作是一个有限长序列,具体长度由编程者确定。实际上,在
5、信号与系统分析中所遇到的无限长序列,通常都是满足绝对可和或绝对可积条件的信号。因此,对信号采取这种截短处理尽管存在误差,但是通过选择合理的信号长度,这种误差是能够减小到可以接受的程度的。若这样的一个无限长序列可以用一个数学表达式表示的话,那么,它的长度可以由编程者通过指定时间变量n的范围来确定。例如,对于一个单边实指数序列xn = 0.5nun,通过指定n的范围为0 n 100,则对应的xn的长度为101点,虽然指定更宽的n的范围,xn将与实际情况更相符合,但是,注意到,当n大于某一数时,xn之值已经非常接近于0了。对于序列xn = 0.5nun,当n = 7时,x7 = 0.0078,这已经
6、是非常小了。所以,对于这个单边实指数序列,指定更长的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)。MATLAB范例程序如下:% Program2% This progr
7、am 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(Typ
8、e in the expression of the input signal x(t):subplot(221), impulse(num,den,8);subplot(222), step(num,den,8)四、预习要求:掌握MATLAB的使用。五、实验内容及步骤实验前,必须首先阅读本实验原理,读懂所给出的全部范例程序。实验开始时,先在计算机上运行这些范例程序,观察所得到的信号的波形图。并结合范例程序应该完成的工作,进一步分析程序中各个语句的作用,从而真正理解这些程序。实验前,一定要针对下面的实验项目做好相应的实验准备工作,包括事先编写好相应的实验程序等事项。1、根据示例程序的编程方法,
9、编写一个MATLAB程序,由给定信号 x(t) = e-0.5tu(t)求信号y(t) = x(1.5t+3),并绘制出x(t) 和y(t)的图形。编写的程序如下:clear, % Clear all variablesclose all, % Close all figure windowsdt = 0.01; % Specify the step of time variablet = -5:5; % Specify the interval of timex = exp(-0.5*t).*u(t); % Generate the signaly=exp(-0.75*t-1.5).*u(1
10、.5*t+3);subplot(1,1,1),plot(t,x); % Open a figure window and draw the plot of x(t)grid on;title(Sinusoidal signal x(t)Time t (sec)axis(0,5,0,1);subplot(1,1,3),plot(t,y);Sinusoidal signal y(t)axis(-2,5,0,1);信号x(t)的波形图 和 信号y(t) = x(1.5t+3) 的波形图此处粘贴图形 此处粘贴图形2、计算并用MATLAB实现下列信号的卷积t1 = 4;x1 = u(t)-u(t-2);
11、x2=u(t-1)-u(t-3);y = dt*conv(x1,x2);subplot(131)plot(t,x1), grid on, title(Signal x1(t)subplot(132)plot(t,x2), grid on, title(Signal x2(t)subplot(133)The convolution of x1(t) and x2(t), axis(2*t0,2*t1,-3,3), 信号x1(t)、x2(t)和x1(t)*x2(t)的波形图此处粘贴图形3、给定两个离散时间序列 xn = 0.5nun-un-8 hn = un-un-8编写程序、,计算它们的卷积,并
12、分别绘制xn、hn和它们的卷积yn的图形。编写的程序、如下:n = -10:1:10;x = 0.5.n.*(u(n)-u(n-8);h = u(n)-u(n-8); y=conv(x,h); subplot(131)stem (n,x) grid ontitle (x = 0.5*n.*(u(n)-u(n-8)stem (n,h) h = u(n)-u(n-8)n = -20:20;stem (n,y) y=conv(x,h)信号xn、hn和yn的波形图4 、仿照范例程序Program2,编写程序,计算并绘制由如下微分方程表示的系统在输入信号为x(t) = (e-2t - e-3t)u(t)
13、时的零状态响应和你手工计算得到的系统零状态响应曲线。手工计算得到的系统零状态响应的数学表达式是:t=0:x=8*(exp(-2*t)-exp(-3*t).*u(t);y=lsim(1,1 3 2,x,t);subplot(121)plot(t,y) q=4*exp(-t)-8*t.*exp(-2*t)-4*exp(-3*t);subplot(122)plot(t,q);用MATLAB绘制的手工计算的系统响应粘帖用MATLAB绘制的手工计算的系统响应执行程序得到的系统响应此处粘帖执行程序得到的系统响应思考题:MATLAB是如何表示一个由微分方程描述的连续时间LTI系统的?求解连续时间LTI系统的单位冲激响应、单位阶跃响应以及系统在某一个输入信号作用下的零状态响应的MATLAB函数有哪些?答:它的输入信号x(t)输出信号
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1