confused_engineer
- 34
- 1
- TL;DR Summary
- I want to perform the KL expansion in Matlab, but I cannot calculate the zero-mean uncorrelated random variables
I have copied the code of the accepted answer to this post in the official Matlab forums, since I am interested in performing the KL expansion myself.
[CODE lang="matlab" title="Calculation of random variables"]clc
clear all
y=[1,2,4;2,3,10];
y=y' %Reasons for transposing will become clear when you will read the second point given below.
[V,D]=eig(cov(y))
KLT = V' * y';[/CODE]
As far as I understand, the vector defined in the last line, KLT are the uncorrelated random variables. The eigenvectors are certainly orthnormal since
[CODE title="orthonormal eigenvectors"]V(:,2)'* V(:,1) %Eigenvectors
[/CODE]
returns zero and
[CODE title="orthonormal eigenvectors2"]V(:,2)'* V(:,2)
[/CODE]
returns one.
Also,
[CODE title="orthogonal RV"]
cov(KLT')[/CODE]
returns orthogonal results and
[CODE title="variance"]var(KLT')
[/CODE]
are the eigenvalues. However, if I writethe means aren't zero, as the theory says.
Can someone please tell me what am I doing wrong?
Best regards.
Confused Engineer.
[CODE lang="matlab" title="Calculation of random variables"]clc
clear all
y=[1,2,4;2,3,10];
y=y' %Reasons for transposing will become clear when you will read the second point given below.
[V,D]=eig(cov(y))
KLT = V' * y';[/CODE]
As far as I understand, the vector defined in the last line, KLT are the uncorrelated random variables. The eigenvectors are certainly orthnormal since
[CODE title="orthonormal eigenvectors"]V(:,2)'* V(:,1) %Eigenvectors
[/CODE]
returns zero and
[CODE title="orthonormal eigenvectors2"]V(:,2)'* V(:,2)
[/CODE]
returns one.
Also,
[CODE title="orthogonal RV"]
cov(KLT')[/CODE]
returns orthogonal results and
[CODE title="variance"]var(KLT')
[/CODE]
are the eigenvalues. However, if I writethe means aren't zero, as the theory says.
Can someone please tell me what am I doing wrong?
Best regards.
Confused Engineer.