2017-04-22 148 views
0

我正在研究一个需要计算数据序列的二阶差分图的项目。数据矢量为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

什么您的阵列的X和Y的样子?从你的算法看来,你的x似乎是'[A1,A1 * A1,A0 * A1^2,A0 * A1^3 ...]'。它是否正确? – Anthony

+0

亲爱的安东尼, 'x'是一个TXT文件,由ASCII代码中的一个EEG时间序列的4096个样本组成。我读这个文件为x(n),需要计算x(n + 1)和x(n + 2)。希望这给你一个清晰的想法。谢谢 – Dattaprasad

回答

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)=南(无法计算x(1-1)中,x(0)不存在)

Y(2)= X(3)-x(1)

Y(3)= X(4)-x(2)

+0

亲爱的Gelliant,谢谢你的回答。在信号和系统观点中,信号x(n)在时间尺度上移动以得到x(n + 1)。我无法理解你为什么在Y = [nan; x(3:end)-x(1:end-2)]中取得'NaN';任何建议请建议,可以移动信号给我所需的结果? – Dattaprasad

+0

亲爱的Dattaprasad,我做了它,因为我不能计算x(1-1),x(0)不存在。所以Y的第一个值不能被计算出来。 – Gelliant

+0

是Gelliant,我明白了。这就是我想要的结果。谢谢你的答案。 – Dattaprasad