连续时间信号的卷积运算word资料5页
- 格式:doc
- 大小:47.00 KB
- 文档页数:5
实验二连续时间信号的卷积运算与LTI系统的时域分析
实验人:Mr.yan
1 实验目的
(1)熟悉卷积的定义和表示;
(2)掌握利用计算机进行卷积运算的原理和方法;
(3)熟悉连续信号卷积运算函数conv的应用。
(4)熟悉连续LTI系统在典型激励信号下的响应及其特征;
(5)掌握连续LTI系统单位冲激响应的求解方法;
(6)掌握用卷积法计算连续时间系统的零状态响应;
(7)能够应用Matlab对系统进行时域分析。
2 实验原理
(1)卷积的定义、卷积的几何解法、卷积积分的应用(求系统的零状态响应)
(2)对于一般的n阶LTI连续系统,如果n的数值比较小时,可以通过解析的方法得到响应。
但是,对于高阶系统,手工运算比较困难,要利用一些计算工具软件。
3 涉及的Matlab函数
(1)conv函数:实现信号的卷积运算。
调用格式:w=conv(u,v)计算两个有限长度序列的卷积。
说明:该函数假定两个序列都从零开始。
(2)lsim函数:计算并画出系统在任意输入下的零状态响应。
调用格式:lsim(b,a,x,t)
其中:a和b是由描述系统的微分方程系数决定的表示该系统的两个行向量;x和t是表示输入信号的行向量。
该调用格式将会绘出由向量a和b所定义的连续系统在输入为向量x 和t所定义的信号时,系统的零状态响应的时域仿真波形,且时间范围与输入信号相同。
(3)impulse函数:计算并画出系统的冲激响应。
调用格式:impulse(b,a)
该调用格式以默认方式绘出向量a和b定义的连续系统的冲激响应的时域波形。
impulse(b,a,t)
该调用格式将绘出向量a和b定义的连续系统在0-t时间范围内的冲激响应波形。
impulse(b,a,t1:p:t2)
该调用格式将绘出向量a和b定义的连续系统在t1-t2时间范围内,且以时间间隔p均匀取样的冲激响应波形。
(4)step函数:计算并画出系统阶跃响应曲线
调用格式:该函数与函数impulse()一样,也有相似的调用格式。
(5)roots函数:计算齐次多项式的根。
调用格式:R=roots(b),计算多项式b的根,R为多项式的根。
4 实验内容与方法
(1)下面为利用Matlab实现连续信号卷积的通用函数sconv(),该程序在计算出卷积积分的数值近似的同时,还绘出f(t)的时域波形图。
function[f,k] = sconv(f1,f2,k1,k2,p)
%计算连续信号卷积积分f(t)=f1(t)*f2(t)
%f:卷积积分f(t)的对应的非零样值向量;
%k:f(t)对应时间向量
%f1:f1(t) 非零样值向量;
%f2:f2(t) 非零样值向量; %k1:f(1) 对应时间向量 %k2:f(2) 对应时间向量
%p:取样时间间隔
f = conv(f1,f2); f = f*p;
k0 = k1(1)+k2(1); k3 = length(f1)+length(f2)-2; k = k0:p:k3*p; subplot 311; plot(k1,f1); title('f1(t)') xlabel('t') ylabel('f1(t)') subplot 312 plot(k2,f2) title('f2(t)') xlabel('t') ylabel('f2(t)') subplot 313 plot(k,f)
h = get(gca,'position'); h(3) = 2.5*h(3); set(gca,'position'); title('f(t)=f1(t)*f2(t)'); xlabel('t') ylabel('f(t)')
下面举例说明,如何利用上述子程序求解连续时间信号的卷积。
已知两连续时间信号如图2.28所示,试求二者的卷积,并画出其时域波形图。
源程序如下:
p = 0.005; k1= 0:p:2; f1 = 0.5*k1; k2 = k1; f2=f1;
[f,k]=sconv(f1,f2,k1,k2,p); 程序运行结果如图1所示
图1
(2)已知某连续系统的微分方程为()()()()28y t y t y t f t '''++=。
试绘出该系统的冲激
响应和阶跃响应的波形。
源程序如下:
b = [1];
a = [2 1 8]; subplot 121 impulse(b,a) subplot 122 step(b,a)
程序运行结果如图2所示
图2
(2)描述某连续系统的微分方程为()()()()()22y t y t y t f t f t ''''++=+。
求当输入信号为()()25t f t e u t -=时,该系统的零状态响应y(t)。
源程序为:
a = [1 2 1];
b = [1 2]; p=0.01; t = 0:p:5; f = 5*exp(-2*t); lsim(b,a,f,t); ylabel('y(t)');
程序运行结果为图3所示
图3
5 实验要求
(1)在Matlab 中输入程序,验证实验结果,并将实验结果存入指定存储区域。
(2)要求通过对验证性实验的练习,自行编制完整的实验程序,实现以下几种信号的模拟,并得出实验结果。
①计算以下信号的卷积
function [f,k] = sconv(f1,f2,k1,k2,p) %计算连续信号卷积积分f(t)=f1(t)*f2(t)
%f:卷积积分f(t)的对应的非零样值向量; %k:f(t)对应时间向量 %f1:f1(t) 非零样值向量; %f2:f2(t) 非零样值向量; %k1:f(1) 对应时间向量 %k2:f(2) 对应时间向量
%p:取样时间间隔
f = conv(f1,f2); f = f*p;
k0 = k1(1)+k2(1); k3 = length(f1)+length(f2)-2; k = k0:p:k3*p; subplot 311;
plot(k1,f1); title('f1(t)') xlabel('t') ylabel('f1(t)') subplot 312 plot(k2,f2) title('f2(t)') xlabel('t') ylabel('f2(t)') subplot 313 plot(k,f)
h = get(gca,'position'); h(3) = 2.5*h(3); set(gca,'position'); title('f(t)=f1(t)*f2(t)'); xlabel('t') ylabel('f(t)')
源程序如下:
p = 0.005; k1= 0:p:2; f1 = 0.5*k1;
k2 = k1; f2=f1;
[f,k]=sconv(f1,f2,k1,k2,p);
②计算以下信号的卷积
function [f,k] = sconv(f1,f2,k1,k2,p) %计算连续信号卷积积分f(t)=f1(t)*f2(t)
%f:卷积积分f(t)的对应的非零样值向量; %k:f(t)对应时间向量 %f1:f1(t) 非零样值向量; %f2:f2(t) 非零样值向量; %k1:f(1) 对应时间向量 %k2:f(2) 对应时间向量
%p:取样时间间隔
f = conv(f1,f2); f = f*p;
k0 = k1(1)+k2(1); k3 = length(f1)+length(f2)-2; k = k0:p:k3*p; subplot 311; plot(k1-2,f1); title('f1(t)') xlabel('t') ylabel('f1(t)') subplot 312
plot(k2-2,f2) title('f2(t)') xlabel('t') ylabel('f2(t)') subplot 313 plot(k-4,f)
h = get(gca,'position'); h(3) = 2.5*h(3); set(gca,'position'); title('f(t)=f1(t)*f2(t)'); xlabel('t') ylabel('f(t)')
输入参数:p=0.01; t=0:0.01:4;
f1=2*(stepfun(t,1)-stepfun(t,3)) % subplot(2,1,1),plot(t,f1); axis([-2.1,2.1,-0.1,2.1]); f2=stepfun(t,0)-stepfun(t,4); %subplot(2,1,2),plot(t,f2); axis([-2.1,2.1,-0.1,1.1]); [f,k]=sconv(f1,f2,t,t,p);
③描述某连续系统的微分方程为()()()()()22y t y t y t f t f t ''''++=+。
求当输入信号为
()()22t f t e u t -=时,系统的零状态响应。
a=[1,2,1]; b=[1,2]; p=0.01; t = 0:p:5;
f = 2*exp(-2*t); lsim(b,a,f,t); ylabel('y(t)');
④描述某连续系统的微分方程为()()()()23y t y t y t f t '''+-=,试绘出该系统的冲激响应和阶跃响应的波形。
%4 b = [1]; a = [2 1 -3]; subplot 121 impulse(b,a) subplot 122
step(b,a)
(3)在实验报告中,写出完整的自编程序,并给出实验结果。