实验二 离散时间系统的时域响应
一、实验目的
1.加深对离散线性移不变(LSI)系统基本理论的理解,明确差分方程与系统函数之间
的关系密切。
2.初步了解用 MATLAB 语言进行离散时间系统研究的基本方法。
3.掌握求解离散时间系统单位脉冲响应及任意输入序列引起的零状态响应程序的编写
方法,了解常用子函数。
二、实验原理
1.离散时间系统的单位脉冲响应
设系统输入
即
)(
nh
([
T
n
,系统输出 )(ny 的初始状态为零,这是系统输出用 )(nh 表示,
)(
n
)(
nx
)]
,则称 )(nh 为系统的单位脉冲响应。
2.任意输入序列 x(n)引起的零状态响应 y(n)
)(
ny
(
mnhmx
()
)
)(
nx
)(
nh
m
该式说明线性时不变系统的响应等于输入序列与单位脉冲序列的卷积。
3. 实验涉及到的 MATLAB 子函数:
1). impz :求解离散系统的冲激响应
调用格式:
[h, t ]=impz(b, a); 求解离散系统的冲激响应 h,取样点数为缺省值。
[h, t ]=impz(b, a, n); 求解离散系统的冲激响应 h,取样点数由 n 确定。
impz(b, a);在当前窗口用 stem(t, h)函数画出图。
2). y=conv(x,h): 计算两个有限长序列线性卷积的函数, 其中 x, h 为两个输入序列,y
为卷积的结果,可用该线性卷积函数计算零状态响应。
3). y=filter(b,a,x):求离散系统对输入 x 序列的零状态响应输出序列 y。
三、实验内容
1. 已知某系统的差分方程是:y(n)-2y(n-1)+3y(n-2)=x(n)-2x(n-2), 计算并绘出其单位脉
冲响应 h(n)的波形(前 9 项).
参考程序:
clear;
a=[1,-2,3];
b=[1,0,-2];
h=impz(b,a,9)
stem(h);
xlabel('n'); ylabel('h(n)');
axis([-1,10,min(h),max(h)]);
2. 当输入序列 x= cos(2*pi*0.4*n)时,求上述系统的零状态响应 y.
(用“y=conv(x,h)”来计算,自己编写程序,并记录结果)
3.已知某系统的差分方程是:y(n)-0.9y(n-1)=x(n), 当输入序列x(n)= cos(2*pi*0.4*n), 边
界条件y(-1)=0时,求系统的零状态响应。(用“y=filter(b,a,x)”来计算)
x=cos(2*pi*0.4*n);
参考程序:
clear;
n=[0:30];
a=[1,-0.9]; b=[1];
Y=[0];
y=filter(b,a,x,Y)
subplot(2,1,1) ;
stem(n,x); axis([-2,30, min(x),max(x)]); xlabel('n'); title('输入序列 x(n)');
subplot(2,1,2);
stem(n,y); axis([-2,30, min(y),max(y)]); xlabel('n'); title('零状态响应 y(n)');
四、思考题
1.线性时不变系统的输出y的长度与输入x和系统的单位冲激响应h的长度有什么关系?