2017-04-22 146 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