What is the best way to generate samples from a multivariate complex normal distribution with an arbitrary covariance matrix?

10 ビュー (過去 30 日間)
Is there a simple way to generate samples from X ~ CN(0,R), where X is Mx1 and R can be chosen arbitrarily?

回答 (2 件)

Bruno Luong
Bruno Luong 2019 年 7 月 9 日
編集済み: Bruno Luong 2019 年 7 月 9 日
% Generate test complex covariance matrix R sdp (m x m)
m = 3;
A = randn(m)+1i*randn(m);
R = A'*A
% Generate x, n-samples of complex normal random vector
% (in R^m) that have R as covariance matrix
n = 10000;
L = chol(R)
x = L'*(randn(m,n)+1i*randn(m,n))/sqrt(2);

the cyclist
the cyclist 2011 年 7 月 27 日
Do you have the Statistics Toolbox? If so, you can generate a 2-d vector using mvnrnd(), and take the first component as the real part, and second component as the imaginary part.
[Disclaimer: I just read about the complex normal distribution on Wikipedia, and I think what I said is accurate, but you might want to check.]
  2 件のコメント
wenhao chen
wenhao chen 2017 年 4 月 21 日
The answer is good for the condition when M = 1,but for M > 1,we need to find other way!
Pratish Dwivedi
Pratish Dwivedi 2019 年 7 月 9 日
I don't get what you meant by taking the first component as real and second as complex.

サインインしてコメントする。

Community Treasure Hunt

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

Start Hunting!

Translated by