信号与线性系统实验二.docx
- 文档编号:11968157
- 上传时间:2023-06-03
- 格式:DOCX
- 页数:12
- 大小:119.09KB
信号与线性系统实验二.docx
《信号与线性系统实验二.docx》由会员分享,可在线阅读,更多相关《信号与线性系统实验二.docx(12页珍藏版)》请在冰点文库上搜索。
信号与线性系统实验二
实验二、信号与系统时域分析的MATLAB实现
一、实验目的
掌握利用Matlab求解LTI系统的冲激响应、阶跃响应和零状态响应,理解卷积概念。
二、实验内容
1、卷积运算的MATLAB实现:
(1)计算连续信号卷积用MATLAB中的函数conv,可编写连续时间信号卷积通用函数sconv,
function[f,n]=sconv(f1,f2,n1,n2,p)
f=conv(f1,f2);f=f*p;
n3=n1
(1)+n2
(1);
n4=n1(end)+n2(end);
n=n3:
p:
n4;
例2.1
p=0.01;
n1=-1:
p:
1;
f1=ones(1,length(n1));
n2=0:
p:
1;
f2=2*n2;
[f,n]=sconv(f1,f2,n1,n2,p);
subplot(3,1,1),plot(n1,f1),axis([-1.5,1.5,0,2]),gridon
subplot(3,1,2),plot(n2,f2),axis([-0.1,1.2,0,3]),gridon
subplot(3,1,3),plot(n,f),axis([-1.5,5,0,2]),gridon
利用此例验证两个相同的门函数相卷积其结果为一个等腰三角形,两个不同的门函数相卷积其结果为一个等腰梯形:
<1>相同:
p=0.01;
n1=-1:
p:
1;
f1=ones(1,length(n1));
n2=-1:
p:
1;
f2=ones(1,length(n2));
[f,n]=sconv(f1,f2,n1,n2,p);
subplot(3,1,1),plot(n1,f1),axis([-1.5,1.5,0,2]),gridon
subplot(3,1,2),plot(n2,f2),axis([-0.1,1.2,0,3]),gridon
subplot(3,1,3),plot(n,f),axis([-5,5,0,2]),gridon
<2>、不同:
p=0.01;
n1=-1:
p:
1;
f1=ones(1,length(n1));
n2=-3:
p:
1;
f2=ones(1,length(n2));
[f,n]=sconv(f1,f2,n1,n2,p);
subplot(3,1,1),plot(n1,f1),axis([-1.5,1.5,0,2]),gridon
subplot(3,1,2),plot(n2,f2),axis([-4,1.2,0,3]),gridon
subplot(3,1,3),plot(n,f),axis([-5,5,0,5]),gridon
(2)计算离散信号卷积用MATLAB中的函数conv,其调用格式为:
式中,a、b为待卷积两序列的向量表示。
向量c的长度为a、b长度之和减1。
例2.2已知序列
,计算
x=[1,2,3,4];y=[1,1,1,1];
k1=0:
3;
k2=0:
3
z=conv(x,y)
kz=k1
(1)+k2
(1):
k1(end)+k2(end);
stem(kz,z,'fill')
z=13610974
2、连续时间系统零状态响应的求解:
LTI连续时间系统的零状态响应可通过求解初始状态为零的常系数微分方程得到。
在MATLAB中控制系统工具箱中提供了一个用于求解零初始条件微分方程数值解的函数lsim。
其调用方式为:
式中,sys表示LTI系统模型,用来表示微分方程、差分方程、状态方程,t表示计算系统响应的抽样点向量,f是系统输入信号向量。
在求解微分方程时,微分方程的LTI系统模型sys借助于tf函数获得,其调用方式为:
式中,b和a分别为微分方程右端和左端各项的系数向量。
例如:
对2阶微分方程:
可用a=[32-5],b=[-102],sys=tf(b,a)获得LTI模型。
例2.3系统的微分方程为
,输入信号为
,求系统的零状态响应y(t)。
解:
sys=tf([001],[12100]);
t=0:
0.01:
5;
f=10*sin(2*pi*t);
y=lsim(sys,f,t);
plot(t,y)
3、
例2.3系统的状态响应
连续时间系统冲激响应和阶跃响应的求解
系统的冲激响应和阶跃响应在MATLAB中控制系统工具箱中提供函数impulse和step分别表示。
其调用方式为:
求例2.3所示系统的冲激响应
sys=tf([001],[12100]);
t=0:
0.01:
5;
y=impulse(sys,t);
plot(t,y)
title('连续系统冲激响应')
xlabel('time(sec)')
ylabel('y(t)')
4、离散时间系统零状态响应的求解
LTI离散系统一般用线性常系数差分方程描述:
f[k]、y[k]分别表示系统的输入和输出,n是差分方程的阶数。
已知差分方程的n个初始状态和输入f[k],就可以通过编程由下式迭代计算出系统的输出。
在零初始状态下,MATLAB信号处理工具中提供了一个filter函数,计算差分方程描述的系统的响应。
其调用方式为:
式中,b=[b0,b1,---,bn],a=[a0,a1,---an]分别是差分方程左、右端的系数向量,f表示输入序列,y表示输出序列,它们长度要相同。
5、离散时间系统单位脉冲响应的求解
离散系统的单位脉冲响应在MATLAB中控制系统工具箱中提供函数impz表示。
其调用方式为:
k表示输出序列的取值范围,h是系统的单位脉冲响应。
例2.4求离散时间系统:
的单位脉冲h[k]。
k=0:
10;a=[132];b=[100];
h=impz(b,a,k);
stem(k,h)
title('单位脉冲响应')
练习:
1、一系统满足微分方程为
,求出系统的零状态响应。
sys=tf([1],[1,5,-1]);
t=0:
0.01:
5;
f=2*cos(pi*t);
y=lsim(sys,f,t);
plot(t,y)
2、求下列各系统的单位冲激响应和单位阶跃响应。
(1)
sys=tf([1],[1sqrt
(2)1]);
t=0:
0.01:
5;
y=impulse(sys,t);
y1=step(sys,t);
subplot(2,1,1);
plot(t,y)
title('连续系统的冲激响应')
xlabel('time(sec)')
ylabel('y(t)')
subplot(2,1,2);
plot(t,y1)
title('连续系统的阶跃响应')
xlabel('time(sec)')
ylabel('y(t)')
(2)
sys=tf([011],[111]);
t=0:
0.01:
5;
y=impulse(sys,t);
y1=step(sys,t);
subplot(2,1,1);
plot(t,y)
title('连系统的冲激响应')
xlabel('time(sec)')
ylabel('y(t)')
subplot(2,1,2);
plot(t,y1)
title('连续系统的阶跃响应')
xlabel('time(sec)')
ylabel('y(t)
3、已知f(k)如下式所示,用conv函数计算
,并就它们的对称关系作总结。
x=[3.5,-1.2,2.3,6.5,-2.8];
y=[1,2,3,4,5];
z1=conv(x,y);
z2=conv(y,x);
N1=length(z1);
N2=length(z2);
subplot(2,1,1);
stem(-2:
N1-1-2,z1);
title('f[k]*h[k]')
subplot(2,1,2);
stem(-2:
N2-1-2,z2);
title('h[k]*f[k]')
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信号 线性 系统 实验
![提示](https://static.bingdoc.com/images/bang_tan.gif)