实验二.docx
- 文档编号:25444325
- 上传时间:2023-06-08
- 格式:DOCX
- 页数:16
- 大小:52.97KB
实验二.docx
《实验二.docx》由会员分享,可在线阅读,更多相关《实验二.docx(16页珍藏版)》请在冰豆网上搜索。
实验二
实验二连续时间信号的卷积运算及连续LTI的时域分析
一、实验目的
1、熟悉卷积的定义,掌握利用计算进行卷积运算的原理与方法。
2、熟悉连续信号卷积运算函数conv的应用。
3、熟悉连续LTI系统在典型激励信号下的响应及特征。
4、会用MATLAB对系统进行时域分析。
二、实验原理
1、卷积的定义
卷积积分可以表示为:
2、卷积计算的几何解法
卷积积分的计算从几何上可以分为四个步骤:
翻转平移相乘叠加。
3、卷积积分的应用
卷积积分是信号与系统时域分析的基本手段,主要用于求系统零状态响应,它避开了经典分析方法中求解微分方程时需要求系统初始值的问题。
4、系统的响应一般包括两个部分,即由当前输入所产生的响应(零状态响应)和由历史输入(初始状态)得到的响应(零输入响应)。
对于低阶系统,一般可以通过解析的方法得到响应。
但对于高阶系统,手工计算就比较困难,这时MATLAB强大的计算功能就能比较容易地确定系统的各种响应,如冲激响应,阶跃响应,零输入响应,零状态响应,全响应。
(1)直接求解法
涉及到的MATLAB函数有:
impulse(冲激响应),step(阶跃响应),roots(零输入响应),lsim(零状态响应)等。
在MATLAB中,要求以系数向量的形式输入系统的微分方程,因此,在使用前必须对系统的微分方程进行变换,得到其传递函数。
其分别用向量a和向量b表示分母多项式和分子多项式的系数。
(2)卷积计算法
根据系统的单位冲激响应,利用卷积计算的方法,也可以计算任意输入状态下系统的零状态响应。
三、涉及的MATLAB函数
1、conv函数
功能:
实现信号的卷积运算。
调用格式:
w=conv(u,v):
计算两个有限长度序列的卷积。
说明:
该函数假定两个序列都从零开始。
2、impulse函数
功能:
计算并画出系统的冲激响应。
调用格式:
impulse(sys):
其中sys可以是利用命令tf,zpk或ss建立的系统函数。
impulse(sys,t):
计算并画出系统在向量t定义的时间内的冲激响应。
Y=impulse(sys,t):
保证系统的输出值。
3、step函数
功能:
计算并画出系统的阶跃响应曲线。
调用格式:
step(sys):
其中sys可以是利用命令tf,zpk或ss建立的系统函数。
step(sys,t):
计算并画出系统在向量t定义的时间内的阶跃响应。
4、lsim函数
功能:
计算并画出系统在任意输入下的零状态响应。
调用格式:
lsim(sys,x,t):
其中sys可以是利用命令tf,zpk或ss建立的系统函数,x是系统的输入,t定义的是时间范围。
lsim(sys,x,t,zi):
计算出系统在任意输入和零状态下的全响应,sys必须是状态空间形式的系统函数,zi是系统的初始状态。
5、roots函数
功能:
计算齐次多项式的根。
调用格式:
r=roots(b):
计算多项式b的根,r为多项式的根。
四、实验内容与方法
(一)卷积部分
1、验证性实验
利用离散conv函数实现连续运算。
函数卷积计算:
若f1(t)=u(t),f2(t)=δ(t),试利用给出的参考程序,计算f(t)=f1(t)*f2(t),f(t)=f1(t)*f1(t),f(t)=f2(t)*f2(t)。
MATLAB程序:
%连续函数卷积计算
a=1000;
t1=-5:
1/a:
5;
f1=stepfun(t1,0);
f2=stepfun(t1,-1/a)-stepfun
(t1,1/a);
subplot(231);
plot(t1,f1);axis([-5,5,0,1.2]);
ylabel('f1(t)');title('单位阶跃函数');
subplot(232);
plot(t1,f2);axis([-5,5,0,1.2]);
ylabel('f2(t)');title('单位冲激函数');
y=conv(f1,f2);r=2*length(t1)-1;t=-10:
1/a:
10;
subplot(233);
plot(t,y);axis([-5,5,0,1.2]);
ylabel('y(t)');title('f1(t)与f2(t)的卷积');
f11=conv(f1,f1);f22=conv(f2,f2);
subplot(234);plot(t,f11);title('f1与f1的卷积');
ylabel('f11(t)'),axis([-5,5,0,5000]);
subplot(235);plot(t,f22);title('f2与f2的卷积');
ylabel('f22(t)'),axis([-10,10,0,1]);
得到的结果为:
2、程序设计实验
若f1(t)=δ(t),f2(t)=u(t),f3(t)=u(t)-u(t-4),试计算以下两部分内容:
(1)f1(t)*f2(t)+f1(t)*f3(t)
(2)f1(t)*[f2(t)+f3(t)]
clear;
>>a=1000;
>>t1=-5:
1/a:
5;
>>f1=stepfun(t1,-1/a)-stepfun(t1,1/a);
>>f2=stepfun(t1,0);
>>f3=stepfun(t1,0)-stepfun(t1,4);
>>subplot(231);
>>plot(t1,f1);
>>axis([-5,5,0,1.2]);
>>ylabel('f1(t)');
>>title('f1(t)=δ(t)');
>>subplot(232);
>>plot(t1,f2);
>>axis([-5,5,0,1.2]);
>>ylabel('f2(t)');
>>title('f2(t)=u(t)');
>>subplot(233);
>>plot(t1,f3);
>>axis([-5,5,0,1.2]);
>>ylabel('f3(t)');
>>title('f3(t)=u(t)-u(t-4)');
>>y11=conv(f1,f2);
>>y12=conv(f1,f3);
>>y1=y11+y12;
>>r=2*length(t1)-1;
>>t=-10:
1/a:
10;
>>subplot(234);
>>plot(t,y1);
>>axis([-5,5,0,1.2]);
>>ylabel('y1(t)');
>>title('y1(t)=f1(t)*f2(t)+f1(t)*f3(t)');
>>y21=f2+f3;
>>y2=conv(f1,y21);
>>r=2*length(t1)-1;
>>t=-10:
1/a:
10;
>>subplot(235);
>>plot(t,y2);
>>axis([-5,5,0,1.2]);
>>ylabel('y2(t)');
>>title('y2(t)=f1(t)*[f2(t)+f3(t)]');
3、选做
试完成该程序的图形的生成,并对程序进行注释:
s=0.01;
k1=0:
s:
2;
k2=k1;
f1=3*k1;
f2=3*k2;
f=conv(f1,f2);
f=f*s;
k0=k1
(1)+k2
(1);
k3=length(f1)+length(f2)-2;
k=k0:
s:
k3*s;
subplot(3,1,1);
plot(k1,f1);
title('f1(t)');
subplot(3,1,2);
plot(k2,f2);
title('f2(t)');
subplot(3,1,3);
plot(k,f);
title('f(t)');
(二)连续LTI系统的时域分析
1、验证性实验
(1)求系统y’’(t)+6y’(t)+8y(t)=3x’(t)+9x(t)的冲激响应与阶跃响应。
MATLAB程序:
%求系统的冲激响应:
b=[3,9];a=[1,6,8];
sys=tf(b,a);
t=0:
0.1:
10;
y=impulse(sys,t);
plot(t,y);
xlabel('时间');ylabel('y(t)');title('单位冲激响应');
得到的结果为:
MATLAB程序:
%求系统的阶跃响应
b=[3,9];a=[1,6,8];
sys=tf(b,a);
t=0:
0.1:
10;
y=step(sys,t);
plot(t,y);
xlabel('时间');ylabel('y(t)');title('单位阶跃响应');
得到的结果为:
(2)求系统:
y’’(t)+y(t)=costu(t),y(0+)=y’(0+)=0的零状态响应。
MATLAB程序:
%求系统在正弦激励下的零状态响应
b=[1];a=[1,0,1];
sys=tf(b,a);
t=0:
0.1:
10;
x=cos(t);
y=lsim(sys,x,t);
plot(t,y);
xlabel('时间(t)');ylabel('y(t)');title('零状态响应')
得到的结果为:
2、程序设计实验
已知某线性时不变系统的动态方程式为:
y’’(t)+4y’(t)+4y(t)=e-3tu(t),t>0
系统的初始状态为y(0+)=y’(0+)=0,求系统的零状态响应。
3、选做
试完成该程序的图形的生成,并对程序进行注释:
求系统:
y’’(t)+y(t)=costu(t),y(0+)=1,y’(0+)=0的零状态响应。
MATLAB程序:
%求系统的全响应
b=[1];%设定系数向量b
a=[1,0,1];%设定系数向量a
[A,B,C,D]=tf2ss(b,a);%得到系统的传递函数模型
sys=ss(A,B,C,D);%状态空间模型
t=0:
0.1:
10;%设定时间向量
x=cos(t);%系统输入
zi=[-1,0];%输入系统的时间向量
y=lsim(sys,x,t,zi);%参数同上,但不绘图,结果保留在Y中
plot(t,y);%画出二维图形
xlabel('时间(t)');%设置X的坐标名
ylabel('y(t)');%设置Y的坐标名
title('系统的全响应');%设置整个图形的坐标名
五、实验报告要求
1、实验目的
2、完成两部分程序设计实验的程序编写,并将仿真出的图形部分粘贴到实验报告上。
3、完成《信号与系统》第二章2.6节中至少两个实验验证,并将仿真出的图形部分粘贴到实验报告上。
4、两题选做题需要完成其中之一,并将相关结果反应到实验报告上。
5、实验小结。
(实验报告中,除实验结果图形打印外,其余均需手写(包括实验程序与注释),请将每张图裁剪后粘贴于对应程序旁。
)
第二章
2、6、3
clear
b=[1];%设定系数向量b
a=[101];%设定系数向量a
sys=tf(b,a);
t=0:
0.1:
10;
f=cos(2*pi*t);
y=lsim(sys,f,t);%计算并画出系统在任意输入下的零状态响应。
lsim(sys,x,t):
其中sys可以是利用命令tf,zpk或ss建立的系统函数,x是系统的输入,t定义的是时间范围。
plot(t,y);
xlabel('时间(t)');
ylabel('y(t)');
title('零状态响应');
2.6.1
clear
b=[010];%设定系数向量b
a=[156];%设定系数向量a
sys=tf(b,a);%t表示计算系统响应的抽样点,f表示系统输入信号向量,sys表示LTI系统模型
t=0:
0.1:
10;%设置时间向量
y=impulse(sys,t);%impulse(sys,t):
计算并画出系统在向量t定义的时间内的冲激响应。
保证系统的输出值。
plot(t,y);%画图
axis([-0.2,4,-0.2,1.1]);%设置坐标范围
line([-0.2,4],[0,0]);
xlabel('时间(t)');
ylabel('h(t)');
title('例2.3-1的单位冲激响应');
>>
y’’(t)+4y’(t)+4y(t)=e-3tu(t),t>0
系统的初始状态为y(0+)=y’(0+)=0,求系统的零状态响应。
clear
b=[1];
a=[144];
sys=tf(b,a);
t=0:
0.1:
10;
f=exp(-3*t)*u(t);%u(t)为单位单位阶跃信号
y=lsim(sys,f,t);
plot(t,y);
xlabel('时间(t)');
ylabel('y(t)');
title('零状态响应');
y=
-1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验