
一、实验目的:
1、学习MATLAB语言的编程方法及熟悉MATLAB指令。
2、掌握连续时间信号的卷积运算方式,分析建立信号波形间的联系。
3、通过使用MATLAB函数研究线性时不变离散时间系统的时域特性,以加深对线性时不变离散时间系统的时不变性的理解。
二、实验仪器
1、计算机
2、MATLAB 软件
三、实验原理
一个离散时间系统是将输入序列变换成输出序列的一种运算。若以T[•]表示这种运算,则一个离散时间系统可由图1-1来表示,即
→∙→(1-1)
x n T y n
()[]()
图1-1 离散时间系统
离散时间系统中最重要的、最常用的是“线性时不变系统”。
时不变系统
系统的运算关系T[•]在整个运算过程中不随时间(也不随序列的先后)而变化,这种系统称为时不变系统(或称移不变系统)。这个性质可用以下关系表示:若输入)
(n
y,则将输入序列移动任意位后,其输出序列除了跟着x的输出为)
(n
移位外,数值应保持不变,即
若)
y
n
m
[m
T-
-(m为任意整数)
=
(
x
n
(
(
)]
(
)]
[n
T=,则)
y
x
n
满足以上关系的系统就称为时不变系统。
四、实验内容及结论
1、连续时间系统的时域分析
已知微分方程: )(2)(3)(2)(3)(t f t f t y t y t y +'=+'+'',1)0(-='-y , 2)0(=-
y 若激励信号为)()(t u t f =,利用阶跃响应函数step(sys,t) 求解画波形;利用零状态响应函数lsim 求解画波形;利用卷积函数求解画波形;比较结果。 程序如下:
dt=0.001;t1=0:dt:10;
f1=-1*exp(-t1)+4*exp(-2*t1);
t2=t1;
f2=u(t2);
f=conv(f1,f2);
f=f*dt;
t3=0:dt:20;
subplot(311)
plot(t3,f);
xlabel('时间(t)');ylabel('y(t)');title('零状态响应(卷积法)');
b=[3 2];a=[1 3 2];
sys=tf(b,a);
t=0:0.01:10;
x=stepfun(t,0);
y=lsim(sys,x,t);
subplot(312)
plot(t,y);
xlabel('时间(t)');ylabel('y(t)');title('零状态响应(阶跃函数求法)');
sys=tf(b,a);
y=step(sys,t);
subplot(313)
plot(t,y);
xlabel('时间t)');ylabel('y(t)');title('阶跃响应');
结论:上述三种方法求得的都是输入为阶跃函数时候的零状态响应,也为阶跃响应,通过图形我们可以看出,利用卷积法求出的零状态和另外两种方法求出的零状态响应图形有一点差别,三者在0到10区间上响应都一致,而利用卷积法求的响应却在下面的区间内发生了变化,我试图修改程序,无论怎么改,发现只要调用了卷积函数,求得的图形就像上述的卷积法求的图形一样,不得解。
2、离散时间系统的时域分析
(DEN)y(n)-0.4y(n-1)+0.75y(n-2)=2.2403x(n)+2.4908x(n-1)+2.2403x(n-2) (NUM),试判别此系统是否为时不变系统。
MATLAB程序如下:
n=0:40;
D=10;
a=3;
b=-2;
num=[2.2403 2.4908 2.2403];
den=[1 -0.4 0.75];
ic=[0 0]; %设置零初始条件
x=a*cos(2*pi*0.1*n)+b*cos(2*pi*0.4*n);
y=filter(num,den,x,ic);通过滤波器。
xd=[zeros(1,D) x];
yd=filter(num,den,xd,ic);
N=length(y);
d=y-yd(1+D:N+D);
subplot(3,1,1);
stem(n,y);
ylabel('信号幅度');
title('输出y[n]');
grid;
subplot(3,1,2);
stem(n,yd(1:length(y)));
ylabel('信号幅度');grid;subplot(3,1,3);
stem(n,d);
xlabel('时间序列n');
ylabel('信号幅度');
title('差值信号');
grid;
执行结果如图1-7所示。
图1-7 时不变系统的判断
由图可知,y(n-D)=T[x(n-D)],故此系统为时不变系统。
五、实验心得
通过本次实验,我更进一步的了解了线性系统的时域分析,信号波形间的联系,掌握了连续时间信号的卷积运算方式,零状态响应的求解方法。此外,还验证了线性时不变离散时间系统的时不变性,加深了对时不变性的理解。
