信号系统实验终结版.docx

上传人:b****6 文档编号:8667694 上传时间:2023-02-01 格式:DOCX 页数:17 大小:242.97KB
下载 相关 举报
信号系统实验终结版.docx_第1页
第1页 / 共17页
信号系统实验终结版.docx_第2页
第2页 / 共17页
信号系统实验终结版.docx_第3页
第3页 / 共17页
信号系统实验终结版.docx_第4页
第4页 / 共17页
信号系统实验终结版.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

信号系统实验终结版.docx

《信号系统实验终结版.docx》由会员分享,可在线阅读,更多相关《信号系统实验终结版.docx(17页珍藏版)》请在冰豆网上搜索。

信号系统实验终结版.docx

信号系统实验终结版

上机实验1连续时间信号的时域分析

一、实验目的

(1)掌握连续时间信号的时域运算的基本方法;

(2)掌握相关函数的调用格式及作用;

(3)掌握连续信号的基本运算;

(4)掌握利用计算机进行卷积运算的原理和方法;

(5)熟悉连续信号卷积运算函数conv的应用。

二、实验原理

信号的基本运算包括信号的相加减和相乘除。

信号的时域变换包括信号的平移、翻转、倒相、尺度变换等,由以下公式所描述。

(1)加(减):

f(t)=f1(t)±f2(t)

(2)乘:

f(t)=f1(t)×f2(t)

(3)延时或平移:

f(t)→f(t-t0)t0>0时右移;t0《0时左移

(4)翻转:

f(t)→f(-t)

(5)尺度变换:

f(t)→f(at)

1)、|a|>1时尺度缩小

2)、|a|<1时尺度放大

3)、a<0时,还必须包含翻转

(6)标量乘法:

f(t)→af(t)

(7)倒相:

f(t)→-f(t)

(8)微分:

f(t)→df(t)/dt

(9)积分:

f(t)→∫t-∞f(τ)/τ

(10)卷积:

f(t)=f1(t)*f2(t)

三、实验内容

1.验证性实验(直接利用符号法进行编程)

(1)相加

实现两个连续信号的相加,即f(t)=f1(t)+f2(t)

Matlab程序:

clearall;

t=0:

0.0001:

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);

xlabel('时间(t)');ylabel('幅值f(t)');title('连续信号的相加');

两个连续信号的相加结果如图所示。

(2)相乘

实现两个连续信号的相乘,即f(t)=f1(t)*f2(t)

Matlab程序:

clearall;

t=0:

0.0001:

5;

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);

xlabel('时间(t)');ylabel('幅值f(t)');title('连续信号相乘');

两个连续信号的相乘结果如图。

(3)尺度变换

将信号f(t)中的自变量t替换为at。

Matlab程序:

clearall;

t=0:

0.001:

1;

a=2;

y=sin(2*pi*t);

y1=sin(2*a*pi*t);

subplot(2,2,1)

plot(t,y);

ylabel('y(t)');xlabel('t');

title('尺度变化');

subplot(2,1,2)

plot(t,y1);

ylabel('y1(t)');xlabel('t');

信号及其尺度变换结果如图所示。

(4)卷积

利用离散conv函数实现连续运算,并寻找其他方法。

1)函数卷积计算

δ(t),

=u(t),计算f(t)=f1(t)*f2(t),f(t)=f1(t)*

(t),f(t)=f2(t)*f2(t)。

(利用conv函数)。

Matlab程序:

%连续函数卷积计算

clearall;

a=1000;

t1=-5:

1/a:

5;

f1=stepfun(t1,0);

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

subplot(2,3,1);

plot(t1,f1);axis([-5,5,0,1.2]);

xlabel('时间(t)');ylabel('f1(t)');title('单位阶跃函数');

subplot(2,3,2);plot(t1,f2);ylabel('f2(t)');

title('单位冲激函数');

y=conv(f1,f2);r=2*length(t1)-1;t=-10:

1/a:

10;

subplot(2,3,3);plot(t,y);axis([-5,5,0,1.2]);

title('f1与f2的卷积');ylabel('y(t)');

f11=conv(f1,f1);f22=conv(f2,f2);

subplot(2,3,4);plot(t,f11);title('f1与f1的卷积');

ylabel('f11(t)');axis([-5,5,0,5000]);

subplot(2,3,5);plot(t,f22);title('f2与f2卷积');ylabel('f22(t)');

连续函数卷积计算结果如图所示。

2.程序设计实验

(1)已知信号f1(t)=(-t+4)[U(t)-U(t-4)],f2(t)=sin(2πt),用matlab绘出下列信号的时域波形。

要求写出全部程序,并绘制出信号时域波形。

(a)f3(t)=f1(-t)+f1(t)

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

(c)f5(t)=f1(t)×f3(t)

(d)f6(t)=f1(t)×f2(t)

Matlab程序:

symst

f1=sym('(4-t)*(heaviside(t)-heaviside(t-4))');

subplot(2,3,1);ezplot(f1,[-5,5]);title('f1');

f2=sin(2*pi*t);subplot(2,3,2);ezplot(f2,[-5,2,5]);title('f2');

f3=subs(f1,t,-t)+f1;subplot(2,3,3);ezplot(f3,[-5,5]);title('f3');

f4=-f3;subplot(2,3,4);

ezplot(f4,[-5,5]);title('f4');f5=f2*f3;subplot(2,3,5);

ezplot(f5,[-5,5]);title('f5');

f6=f1*f2;

subplot(2,3,6);ezplot(f6,[-5,5]);title('f6');axis([-5,5,-4,4]);

各个信号波形如图所示。

(2)若

δ(t),

=u(t),f3(t)=u(t)-u(t-4)试证明卷积满足如下结论:

(a)f1(t)*f2(t)=f2(t)*

*[f2(t)+f3(t)]=

(t)*f2(t)+

(t)*

Matlab程序:

clearall;

a=1000;

t1=-5:

1/a:

5;

f1=stepfun(t1,0);

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

f3=stepfun(t1,0)-stepfun(t1,4);

subplot(2,4,1);plot(t1,f1);axis([-5,5,0,1.2]);xlabel('时间(t)');

ylabel('f1(t)');title('单位阶跃函数');

subplot(2,4,2);plot(t1,f2);ylabel('f2(t)');

title('单位冲激函数');

subplot(2,4,3);plot(t1,f3);ylabel('f3(t)');xlabel('时间(t)');

title('门函数');axis([-5,5,0,2]);

y1=conv(f1,f2);r=2*length(t1)-1;t=-10:

1/a:

10;

subplot(2,4,4);plot(t,y1);axis([-5,5,0,1.2]);

title('f1与f2的卷积');ylabel('y1(t)');xlabel('时间(t)');

y2=conv(f2,f1);r=2*length(t1)-1;t=-10:

1/a:

10;

subplot(2,4,5);plot(t,y2);axis([-5,5,0,1.2]);

title('f2与f1的卷积');ylabel('y2(t)');xlabel('时间(t)');

y3=conv(f1,f2+f3);y4=conv(f1,f2)+conv(f1,f3);

subplot(2,4,6);plot(t,y3);title('f与f2+f3的卷积');xlabel('时间(t)');

ylabel('y3(t)');axis([-5,10,0,6000]);

subplot(2,4,7);plot(t,y4);

title('f1与f2卷积,f1与f3卷积之和');ylabel('y4(t)');

xlabel('时间(t)');axis([-5,10,0,6000]);

各个波形如图所示:

 

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

一、实验目的

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

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

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

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

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

二、实验原理

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

其中,

,系统的初始条件为

,...,

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

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

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

1、直接求解法

涉及到的MATLAB函数有:

impulse(冲激响应)、step(阶跃)、roots(零输入响应)、lsim(零状态响应)等。

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

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

2、卷积计算法

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

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

也可简单记为

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

式中

、f(k)、h(k)分别对应以T为时间间隔对连续时间信号

、f(t)和h(t)进行采样得到的离散序列。

三、实验内容:

1验证性实验

(1)求系统y

(2)(t)+6y

(1)(t)+8y(t)=3x

(1)(t)+9x(t)的冲击响应和阶跃响应。

Matlab程序:

%求系统的冲击响应

b=[39];a=[168];

sys=tf(b,a);

t=0:

0.1:

10;

y=impulse(sys,t);

plot(t,y);

xlabel('时间(t)');

ylabel('y(t)');

title('单位冲激响应');

%求系统的阶跃响应

B=[39];a=[168];

sys=tf(b,a);

t=0:

0.1:

10;

y=step(sys,t);

plot(t,y)

xlabel('时间(t)');

ylabel('y(t)');

title('单位阶跃响应');

(2)求系统y

(2)(t)+y(t)=costU(t),y(0+)=y

(1)(0+)=0的全响应

Matlab程序:

%求系统的正弦激励下的零状态响应

b=[1];a=[101];

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('系统的零状态响应');

plot(t,y);

xlabel('时间(t)');

ylabel('y(t)');

title('零状态响应');

%求系统的全响应

a=[101];

b=[1];

[ABCD]=tf2ss(b,a);

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

t=0:

0.1:

10;

x=cos(t);

zi=[-10];

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

plot(t,y);

xlabel('时间(t)');

ylabel('y(t)');

title('系统的全响应');

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

Matlab程序:

clearall;

T=0.1;

t=0:

T:

10;

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);

end

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

end

subplot(3,1,1);%f(t)的波形

plot(t,f);title('f(t)');

subplot(3,1,2);%h(t)的波形

plot(t,h);title('h(t)');

subplot(3,1,3);%零状态响应近似结果的波形

xlabel('时间');

plot(t,yzsappr(1:

length(t)));

title('零状态响应近似结果');

plot(t,y_f(1:

length(t)));

xlabel('时间(t)');

title('零状态响应近似结果');

2程序设计实验

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

解答:

a=[0,0,1.65,-0.331,-576,90.6,19080];

b=[1,0.996,463,97.8,12131,8.11,0];

sys=tf(a,b);

t=0:

0.0001:

1;

x=exp(t);

y=lsim(sys,x,t);

plot(t,y);

xlabel('时间(t)');ylabel('y(t)');

title('零状态响应');

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

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)

解答:

Matlab程序:

a=[0,-0.475,-0.248,-0.1189,-0.0564];

b=[1,0.6363,0.9396,0.5123,0.0037];

sys=tf(a,b,0);

subplot(2,2,1);

dt=0.001;t=0:

dt:

40;

x1=zeros(1,length(t));

x1

(1)=1/dt;

y1=lsim(sys,x1,t);

plot(t,y1);

xlabel('时间(t)');ylabel('y(t)');

title('在单位冲激激励下的零状态响应');

subplot(2,2,2);

f=sign(t);

x2=0.5+0.5*f;

y2=lsim(sys,x2,t);

plot(t,y2);

xlabel('时间(t)');ylabel('y(t)');

title('在单位阶跃激励下的零状态响应');

subplot(2,2,3);

x3=t;

y3=lsim(sys,x3,t);

plot(t,y3);

xlabel('时间(t)');ylabel('y(t)');

title('在斜坡激励下的零状态响应');

subplot(2,2,4);

x4=cos(t);

y4=lsim(sys,x4,t);

plot(t,y4);

xlabel('时间(t)');ylabel('y(t)');

title('在正弦激励下的零状态响应');

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

当前位置:首页 > 初中教育 > 数学

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

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