2017-04-22 12 views
0

私はデータシリーズの二次差分プロットを計算する必要があるプロジェクトに取り組んでいます。データベクトルは、x(n)は、私はグラフ上にプロットするには、次の値を計算する必要があります二次差分プロット

X(n) = x(n+1)- x(n)-----Equation(1) 
Y(n) = x(n+2) - x(n-1)-------Equation(2) 

そしてY(N)対Xのプロット(n)が私のSODPあろう。 MATLABの第1式のx(n + 1)と第2式のx(n + 2)の計算方法

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)のデータを取得しています。私は、x(N + 1)の値を計算するために、次のコードを試してみました。 私は質問の入力を感謝します。 ありがとうございます。

+0

あなたの配列xとyは次のように何を求めますか?あなたのアルゴリズムから、あなたのxは '[A1、A1 * A1、A0 * A1^2、A0 * A1^3 ...]'であるようです。これは正しいです? – Anthony

+0

Dear Anthony、 「x」はASCIIコードで1つのEEG時系列の4096サンプルからなるTXTファイルです。私はこのファイルを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)はNaN(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

関連する問題