Reconstruction of a Stochastic Process usong the KL expansion

5 views (last 30 days)
Jaime De La Mota Sanchis
Jaime De La Mota Sanchis on 26 May 2021
I have a matrix of size 1000*500 which contains 500 realizations of a Stochastic process. I have used the KL expansion as defined in this other answer to decompose the process.
covMat=cov(realization_mat');
[evecF,evalF]=eig(cov(realization_mat'));
matSize=size(evalF,1);
tamanioVA=size(realization_mat,2);
evec=zeros(matSize, matSize);
eval=zeros(matSize, 1);
evec=evecF(:,end:-1:1);
for i=0:matSize-1
eval(i+1)=evalF(matSize-i, matSize-i);
end
randVar=evec*realization_mat;
for i=1:tamanioVA
randVarN(:,i)=randVar(:,i)/sqrt(eval(i));
end
Reconstruction=evec'*randVarN;
for i=1:tamanioVA
Reconstruction(:,i)=Reconstruction(:,i)*sqrt(eval(i));
end
I have done it and I have been able to reconstruct the original process with success. However, the KL expansion is designed to reduce the dimensionality, so, I want to reconstruct the original process using less random variables. For that, I would need to change the line
Reconstruction=evec'*randVarN;
to only include some of the random variables. However, if I write
Reconstruction=evec(1:3,:)'*randVarN(1:3, :);
Then, the results are quite different from the original ones. I need the full 1001 random variables to propperly reduceproduce the original realizations I don't know what to do to be able to try to reconstruct the original data using only a handful of random variables.
I will attach the realizations of the Stochastic process in case someone wants to take a look.
Any answer is appreciated.
Best regards.
Jaime.

Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by