西工大信号系统上机实验一实验二文档格式.docx

上传人:b****5 文档编号:21163509 上传时间:2023-01-28 格式:DOCX 页数:16 大小:218.07KB
下载 相关 举报
西工大信号系统上机实验一实验二文档格式.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

功能:

产生一个阶跃信号

调用格式:

stepfun(t,t0),其中t是时间区间,在该区间内阶跃信号一定会产生;

t0是信号发生从0到1的条约的时刻。

2.diff函数

diff(f):

求函数f对预设的独立变数的一次微分值。

diff(f,’t’):

求函数f对独立变数t的一次微分。

3.int函数

Int(f):

函数F对预设独立变数的积分值。

Int(f,’t’):

函数f对独立和变数t的积分值。

4.conv函数

实现信号的卷积运算。

w=conv(u,v):

计算两个有限长度序列的卷积。

说明:

该函数假定两个序列都从零开始。

四、试验内容与结果

(1)相加:

f(t)=f1(t)+f2(t)

MATLAB程序:

clearall;

t=0:

0.001:

3;

b=3;

t0=1;

u=stepfun(t,t0);

n=length(t);

fori=1:

n

u(i)=b*u(i)*(t(i)-t0);

end

y=sin(2*pi*t);

f=y+u;

plot(t,f);

xlable('

时间(t)'

);

ylabel('

幅值f(t)'

title('

连续信号的相加'

实验结果截屏如下:

(2)相乘:

MATLAB程序如下:

f=y.*u;

xlabel('

连续信号的相乘'

(3)倒相:

由f(t)得到-f(t)

t=-1:

0.02:

1;

g1=3.*t.*t;

g2=-3.*t.*t;

gridon;

plot(t,g1,'

r-'

t,g2,'

b--'

t'

g(t)'

倒相'

(4)综合:

f(t)=(1+t/2)*[U(t+2)-U(t-2)];

绘制f(t+2);

f(t-2);

f(-t);

f(2t);

-f(t)

symst

f=sym('

(t/2+1)*(heaviside(t+2)-heaviside(t-2))'

subplot(2,3,1);

ezplot(f,[-3,3]);

y1=subs(f,t,t+2);

subplot(2,3,2);

ezplot(y1,[-5,1])

y2=subs(f,t,t-2);

subplot(2,3,3);

ezplot(y2,[-1,5]);

y3=subs(f,t,-t);

subplot(2,3,4);

ezplot(y3,[-3,3]);

y4=subs(f,t,2*t);

subplot(2,3,5);

ezplot(y4,[-2,2]);

y5=-f;

subplot(2,3,6);

ezplot(y5,[-3,3]);

运行程序前建立一个Heaviside的M文件函数。

Heaviside的函数M文件如下:

function[x,n]=Heaviside(n0,n1,n2)

n=[n1:

n2];

x=[(n-n0)==0];

运行结果截图:

五.程序设计题

1.已知信号f1(t)=(-t+4)[U(t)-U(t-4)],f2(t)=sin(2*pi*t),用MATLAB绘制出信号的时域波形。

(1)f3(t)=f1(-t)+f1(t);

(2)f4(t)=-[f1(-t)+f1(t)]

(3)f5((t)=f2(t)*f3(t);

(4)f6(t)=f1(t)*f2(t);

symst;

f1=sym('

(-t+4)*(heaviside(t)-heaviside(t-4))'

f2=sin(2*pi*t'

ezplot(f1,[-4,3]);

ezplot(f2,[-2,5]);

F3=subs(f1,t,-t);

f3=F3+f1;

ezplot(f3,[0,7]);

f4=-f3;

ezplot(f4,[-3,4]);

f5=f2*f3;

ezplot(f5,[-1,6]);

f6=f1*f2;

ezplot(f6,[-2,5]);

2.若f1(t)=δ(t),f2=U(t),f3(t)=U(t)-U(t-4),试证明卷积满足以下结论:

(1)f1(t)*f2(t)=f2(t)*f1(t);

(2)f1(t)*(f2(t)+f3(t))=f1(t)*f2(t)+f1(t)*f3(t);

a=1000;

t1=-5:

1/a:

5;

f1=stepfun(t1,-1/a)-stepfun(t1,1/a);

f2=stepfun(t1,0);

F3=stepfun(t1,4);

f3=f2-F3;

subplot(241);

plot(t1,f1);

axis([-5,5,0,1.2]);

时间'

f1(t)'

单位冲激函数'

subplot(242);

plot(t1,f2);

f2(t)'

title('

单位阶跃函数'

subplot(243);

plot(t1,f3);

axis([-10,10,0,1.2]);

f3(t)'

门函数'

y1=conv(f1,f2);

r=2*length(t1)-1;

t=-10:

10;

y2=conv(f2,f1);

subplot(244);

plot(t,y1);

f1卷积f2'

y1(t)'

subplot(245);

plot(t,y2);

f2卷积f1'

y2(t)'

f5=f2+f3;

f11=conv(f1,f5);

f22=conv(f1,f2);

f33=conv(f1,f3);

f44=f22+f33;

subplot(246);

plot(t1,f5);

axis([-10,10,0,5]);

f5(t)'

f2+f3'

subplot(247);

plot(t,f11);

f1卷积(f2+f3)'

subplot(248);

plot(t,f44);

f1卷积f2加f1卷积f3'

f44(t)'

运行结果截屏如下:

 

上机实验2连续LTI系统的时域分析

(1)熟悉LTI系统在典型激励信号的响应及其特性;

(2)熟悉连续LTI系统单位冲激响应的求解方法;

(3)重点掌握用卷积计算连续时间系统的零状态响应;

(4)熟悉MATLAB相关函数的调用格式及作用;

(5)会用MATLAB对系统进行时域分析。

二、实验原理

连续时间系统可用如下的线性常系数微分方程来描述:

其中,

,系统的初始条件为

,...,

系统的响应一般包括两部分:

零状态响应和零输入响应。

对于低阶系统,一般可以通过解析的方法得到响应,但是对与高阶的系统,手工计算比较困难,需要靠MSTLAB来确定系统的各种响应。

1、直接求解法

涉及到的MATLAB函数有:

impulse/step/roots/lsim等。

在MATLAB中,要以系统向量的形式输入系统的微分方程,因此在使用前必须对系统的微分方程进行变换,得到其传递函数。

其分别用向量a,b表示分母多项式和分子多项式的系数(按降序排列)。

2、卷积计算法

根据系统的单位冲激响应,里用卷积计算的方法,也可以计算任意输入状态下系统的零状态响应。

设一个线性零状态系统,已知系统的单位冲激响应为h(t),当系统的激励信号为f(t)时,系统的零状态响应为:

也可简记为

,由于计算机采用的数值计算,因此系统的零状态响应也可以用离散序列卷积和近似为

式中

分别对应以T为时间间隔对连续时间信号

进行采样得到的离散序列。

三.涉及的MATLAB函数

1、impulse函数

计算并画出系统的冲激函数

调用格式:

impulse(sys):

其中sys可以是利用命令tf,zpk或ss建立的系统函数。

Impulse(sys,t):

计算并画出系统在向量t定义的时间内的冲激响应。

Y=impulse(sys,t):

保存系统的输出值。

2.step函数

功能:

计算并画出系统的阶跃响应曲线

Step(sys):

step(sys,t):

计算并画出系统在向量t定义的时间内的阶跃响应。

3.Isim函数

计算并画出系统在任意输入下的零状态响应

Isimlism(sys,t)其中sys可以是利用命令tf,zpk或ss建立的系统函数,x是系统的输入,t定义的是时间范围;

Lsimlism(sys,x,t,zi):

计算系统在任意输入的零状态下的全响应,sys必须是状态空间形式的系统函数,zi是系统的初始状态。

4:

roots函数

计算其次多项式的根。

r=roots(b):

计算多项式b的根,r为多项式的根.

四、实验内容:

1.验证性实验

(1)求系统y’’(t)+6*y’(t)+8*y(t)=3*x’(t)+9*x(t)的冲激响应和阶跃响应。

b=[39];

a=[168];

sys=tf(b,a);

0.1:

y=impulse(sys,t);

y2=step(sys,t);

subplot(121);

plot(t,y);

y(t)'

单位冲激响应'

subplot(122);

单位阶跃响应'

(2)求系统y’’(t)+y(t)=cosU(t),y(0+)=y’(0+)=0的全响应。

%正弦系统下零状态响应

b=[1];

a=[101];

x=cos(t);

y=lsim(sys,x,t);

零状态响应'

运行截屏如下:

%正弦系统下全响应

MATLAB程序如下:

[ABCD]=tf2ss(b,a);

sys=ss(A,B,C,D);

zi=[-10];

y=lsim(sys,x,t,zi);

系统的全响应'

(3)已知某LTI系统的激励为f1=sinU(t),单位冲激响应h(t)=t*e^(-2*t)U(t),试给出系统零状态响应yf(t)的数学表达式。

T=0.1;

T:

f=3*t.*sin(t);

h=t.*exp(-2*t);

Lf=length(f);

Lh=length(h);

fork=1:

Lf+Lh+1;

y(k)=0;

fori=max(1,k-(Lh-1)):

min(k,Lf);

y(k)=y(k)+f(i)*h(k-i+1);

yzsappr(k)=T*y(k);

end;

subplot(3,1,1);

f(t)'

subplot(3,1,2);

plot(t,h);

h(t)'

subplot(3,1,3);

plot(t,yzsappr(1:

length(t)));

零状态响应近似结果'

运行结果如下:

2.程序设计实验

(1)计算下述系统在指数函数激励下的零状态响应

H(s)=(1.65*s^4-0.331*s^3-576*s^2+90.6*s+19080)/

(s^6+0.996*s^5+463*s^4+97.8*s^3+12131*s^2+8.11*s)

b=[001.65-0.331-57690.619080];

a=[10.99646397.8121318.110];

x=exp(t);

指数函数激励下的零状态响应'

(3)计算下述系统在冲激、阶跃、斜坡和正弦激励下的零状态响应。

Y(4)(t)+0.6363y(3)(t)+0.9396y

(2)(t)+0.5123y

(1)(t)+0.0037y(t)=-0.475f(3)(t)-0.248f

(2)(t)-0.1189f

(1)(t)-0.0564f(t)

b=[0-0.475-0.248-0.1189-0.0564];

a=[10.63630.93960.51230.0037];

40;

y1=impulse(sys,t);

subplot(221);

冲激激励下的零状态响应'

subplot(222);

阶跃激励下的零状态响应'

f=t;

y3=lsim(sys,f,t);

subplot(223);

plot(t,y3);

y3(t)'

斜坡激励下的零状态响应'

x=sin(t);

y4=lsim(sys,x,t);

subplot(224);

plot(t,y4);

y4(t)'

正弦激励下的零状态响应'

(4)已知某线性时不变系统的动态方程为y’’(t)+4y’(t)+4y(t)=2f’(t)+3f(t),t>

0系统的初始状态为y(0)=0,y’(0)=1,求系统的零输入响应yx(t)。

b=[144];

0.01:

r=roots(b);

A=[1,-r(1,1);

1,-r(2,1)];

B=[0;

1];

X=B\A;

y=X

(1)*exp(t.*(-r(1,1)))+X

(2)*exp(t.*(-r(2,1)));

零输入响应'

运行截图如下:

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

当前位置:首页 > 医药卫生 > 基础医学

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

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