MATLAB中传递函数Z域的脉冲响应

时间:2017-02-08 21:30:38

标签: matlab response

我在MATLAB上实现Z-Domain TF。在绘制极点图时,我发现它是正确的,我没有问题。问题是当我绘制脉冲响应时;即h(n);我发现第一个delta总是移一个,因此所有其他的delta也会移位。为什么会发生这种转变?有没有人对这个问题有任何想法?

我提供了一个我已经实施过的很多例子。

close all;clear;clc;

Ts = 0.1;

num = 1; % b
den = 1; % a

hz = tf(num, den, Ts, 'variable', 'z^-1')

%% Plotting
figure(1)
subplot(2,1,1)
pzplot(hz)
axis equal

subplot(2,1,2)
stem(impulse(hz*Ts))
axis([0 10 0 1.1])
grid minor

impulse response

1 个答案:

答案 0 :(得分:1)

问题在于绘图而不是结果。如果你没有指定'x-axis'的值,matlab将创建一个虚拟变量,它从1开始,以向量的长度结束,基本上是1:length(y)。您应该创建自己的x向量(并根据@Florian的建议进行缩放):

response = impulse(hz*Ts);
timevector = (0:length(response)-1)*Ts;
stem(timevector,reponse);
grid minor;