Reconstruction of a Stochastic Process usong the KL expansion

5 Ansichten (letzte 30 Tage)
Jaime De La Mota Sanchis
Jaime De La Mota Sanchis am 26 Mai 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.

Antworten (0)

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by