实验二.docx

上传人:b****7 文档编号:25444325 上传时间:2023-06-08 格式:DOCX 页数:16 大小:52.97KB
下载 相关 举报
实验二.docx_第1页
第1页 / 共16页
实验二.docx_第2页
第2页 / 共16页
实验二.docx_第3页
第3页 / 共16页
实验二.docx_第4页
第4页 / 共16页
实验二.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

实验二.docx

《实验二.docx》由会员分享,可在线阅读,更多相关《实验二.docx(16页珍藏版)》请在冰豆网上搜索。

实验二.docx

实验二

实验二连续时间信号的卷积运算及连续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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1