How to generate 2D complex white Gaussian sequence with a zero mean and identity covariance?

3 views (last 30 days)
I'm trying to create a 2D complex white Gaussian with a mean of zero and a covariance of (N/2)I where N is the size of the matrix.
I've been trying it with the following code:
w = randn(N) + i*randn(N);
but if I do cov(w) or mean(w) it doesn't fit that criteria. I feel like my process is a gross oversimplification of making a 2D complex Gaussian.

Accepted Answer

Shaik
Shaik on 16 May 2023
Edited: Torsten on 16 May 2023
N = 100; % Size of the matrix
w_real = randn(N) * sqrt(N/2); % Real part with mean 0 and variance N/2
w_imag = randn(N) * sqrt(N/2); % Imaginary part with mean 0 and variance N/2
w = w_real + 1i * w_imag; % Combine real and imaginary parts
% Verify mean and covariance properties
mean_w = mean(w(:)) % Mean of w
mean_w = -0.0326 - 0.0201i
cov_w = cov([real(w(:)), imag(w(:))]) % Covariance of w (real and imaginary parts)
cov_w = 2×2
51.1531 -0.5130 -0.5130 50.2423
Hey, can you check this modified code.

More Answers (0)

Categories

Find more on Numerical Integration and Differential Equations in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!