Reconstruction of a Stochastic Process usong the KL expansion
5 views (last 30 days)
Show older comments
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.
0 Comments
Answers (0)
See Also
Categories
Find more on Dimensionality Reduction and Feature Extraction in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!