差分方程的Matlab计算

函数:
filter impz stepz

已知一个因果LTI系统定义如下:
y[n] + 0.7y[n-1] - 0.45y[n-2] - 0.6y[n-3] = 0.8x[n] -0.44x[n-1] + 0.36x[n-2] + 0.02x[n-3]

则冲激响应和阶跃响应的前41个样本,可由Matlab代码实现如下:

冲激响应:

p = [0.8 -0.44 0.36 0.02];
d = [1 0.7 -0.45 -0.6];
[h,m]=impz(p,d,41);
stem(m,h);

阶跃响应:

p = [0.8 -0.44 0.36 0.02];
d = [1 0.7 -0.45 -0.6];
[s,m]=stepz(p,d,41);
stem(m,s);

另可由filter函数实现:

p = [0.8 -0.44 0.36 0.02];
d = [1 0.7 -0.45 -0.6];
x1 = [1 zeros(1,40)]; %冲激响应输入
x2 = [ones(1,41)]; %阶跃响应输入
h = filter(p,d,x1);
s = filter(p,d,x2);
stem(h);
stem(s);

你可能感兴趣的:(差分方程的Matlab计算)