MATLAB Problem with Karhunen-Loève expansion in matlab

  • Thread starter Thread starter confused_engineer
  • Start date Start date
  • Tags Tags
    Expansion Matlab
AI Thread Summary
The discussion centers on performing the Karhunen-Loève (KL) expansion in MATLAB and the challenge of obtaining zero-mean uncorrelated random variables. The user has implemented code based on an accepted answer from the MATLAB forums, which includes transposing the input matrix and calculating eigenvalues and eigenvectors. The user confirms that the eigenvectors are orthonormal and that the covariance of the transformed variables yields orthogonal results. However, the user encounters an issue where the means of the resulting variables are not zero, contrary to theoretical expectations. They seek clarification on what might be causing this discrepancy.
confused_engineer
Messages
34
Reaction score
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.
 
Physics news on Phys.org
confused_engineer said:
However, if I writethe means aren't zero, as the theory says.

If you write... what? Exactly?
 
confused_engineer said:
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.

Arjan82 said:
If you write... what? Exactly?
Sorry, if I write mean(KLT')
 

Similar threads

Replies
2
Views
3K
Replies
4
Views
1K
Replies
2
Views
3K
Replies
2
Views
2K
Replies
6
Views
2K
Back
Top