Generate Gassian Colored Noise

Hello all,
Is there any built-in function in MATLAB to generate a Gaussian noise with a specific covariance matrix R (colored noise), not necessarily the identity matrix (white noise)?
Thanks

 Respuesta aceptada

Matt J
Matt J el 23 de Mayo de 2014
Editada: Matt J el 23 de Mayo de 2014
There's MVRND, if you have the Stats Toolbox.
Otherwise, you can just do
sqrtm(R)*randn(size(R,2),1);

5 comentarios

S. David
S. David el 23 de Mayo de 2014
Editada: S. David el 23 de Mayo de 2014
Both are equivalent right? Because using the first method I have an error saying R must be symmetric semi-positive. It seems to be symmetric but I am not sure about semi-positive.
What is the difference between sqrt® and sqrtm®? Don't they both give the same results?
Matt J
Matt J el 23 de Mayo de 2014
It seems to be symmetric but I am not sure about semi-positive.
All covariance matrices are positive semi-definite. R therefore has to be psd in order to be a legitimate candidate.
What is the difference between sqrt® and sqrtm®?
sqrt is the elementwise square root and sqrtm is the matrix square root.
S. David
S. David el 23 de Mayo de 2014
I am computing R numerically. May be there is some precision errors to be perfectly symmetric.
Anyway, I am using the second method.
Thanks for your answer.
Matt J
Matt J el 24 de Mayo de 2014
Editada: Matt J el 24 de Mayo de 2014
If R is close to singular, it can be mis-perceived as having some negative eigenvalues (and hence as not being psd) due to numerical imprecision.
However, if your R is close to singular, it really means you're taking the covariance of have some redundant variables - some of them are approximately linear combinations of the others - and should get rid of them.
S. David
S. David el 24 de Mayo de 2014
Editada: S. David el 24 de Mayo de 2014
I have two matrices, and I found the eigenvalue of both of them: one of them has all positive eigenvalues, but the other has some negative eigenvalues. I guess the second one is close to singular as you said. But even when I try the first one in mvrand(Mu,Sigma), I still get the same error.
For the matrix with negative eigenvalues, how to eliminate the redundant variables?

Iniciar sesión para comentar.

Más respuestas (0)

Preguntada:

el 23 de Mayo de 2014

Editada:

el 24 de Mayo de 2014

Community Treasure Hunt

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

Start Hunting!

Translated by