我正在开展一个项目,我需要计算数据系列的二阶差分图。数据向量是x(n),我需要计算以下值以在图表上绘图:
X(n) = x(n+1)- x(n)-----Equation(1)
Y(n) = x(n+2) - x(n-1)-------Equation(2)
然后X(n)对Y(n)的图将是我的SODP。 如何计算第一个方程的x(n + 1)和MATLAB中第二个方程的x(n + 2)。我尝试使用以下代码来计算x(n + 1)的值:
X = zeros(1,N);
% Assume the first element is A1
X(1) = A1;
for n = 1:(N-1)
if rem(n,2) == 0
% even case
An = A0;
else
% odd case
An = A1;
end
% step to increment X(n) to X(n+1)
X(n+1) = An*X(n)
end
但是我得到了与输出相同的x(n)数据。 我感谢对此问题的任何意见。 提前谢谢大家。
答案 0 :(得分:1)
x=rand(1E4,1); %example vector
X=x(2:end)-x(1:end-1); %x(n+1)-x(n)
Y=[nan;x(3:end)-x(1:end-2)]; %x(n+2)-x(n-1)
plot(X,Y,'.')
Y的计算如下:
Y(1)= nan(不能计算x(1-1),x(0)不存在)
Y(2)= x(3)-x(1)
Y(3)= x(4)-x(2)
等