Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MATLAB中传递函数Z域的脉冲响应_Matlab_Response - Fatal编程技术网

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

MATLAB中传递函数Z域的脉冲响应,matlab,response,Matlab,Response,我正在MATLAB上实现Z域TF。在绘制零极点图时,我发现它是正确的,我在这方面没有问题。问题是当我绘制脉冲响应时;i、 e-hn;我发现第一个三角洲总是移位一个,因此所有其他三角洲也都移位了。为什么会发生这种转变?有人知道这个问题吗 我提供了一个简单的例子,其中有许多我已经实现了 close all;clear;clc; Ts = 0.1; num = 1; % b den = 1; % a hz = tf(num, den, Ts, 'variable', 'z^-1') %% Pl

我正在MATLAB上实现Z域TF。在绘制零极点图时,我发现它是正确的,我在这方面没有问题。问题是当我绘制脉冲响应时;i、 e-hn;我发现第一个三角洲总是移位一个,因此所有其他三角洲也都移位了。为什么会发生这种转变?有人知道这个问题吗

我提供了一个简单的例子,其中有许多我已经实现了

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

问题在于绘图,而不是结果。如果未指定“x轴”的值,matlab将创建一个虚拟变量,该变量从1开始,以向量的长度结束,基本上为1:1。您应该创建自己的x向量,并按照@Florian的建议进行缩放:

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

这可能是个问题。如果只执行stem1:10,“x轴”将从1开始,而不是从0开始。我没有一些工具箱,所以我无法测试和验证。@mpaskov实际上我让MATLAB用它的虚拟轴绘图。我在许多其他实现中都这样做了,但是当我在本例中尝试时,增量会向右移动一个!!!确切地说,matlab的虚拟轴从1开始,这是脉冲的第一个值,这不是你所期望的吗?@mpaskov是的,我不期望这个偏移。我曾尝试使用syms绘制许多其他示例,但没有发生偏移,尽管我在syms示例中使用了虚拟轴。这就是我不明白的。如果你做stem0:lengthz-1,pulsehz*Ts,那看起来怎么样?