Gaussian complex distribution over noise vector

2 vues (au cours des 30 derniers jours)
Anthony Koussaifi
Anthony Koussaifi le 12 Mai 2020
Réponse apportée : AR le 20 Juin 2025
Hello,
Hope everyone is well!
I have a channel input-output relation : Y(k)= H(k) X(k) + W(k) with k=1,...,L
W(k)~CN(0,I(nc)) where W(k) is a gaussian vector, CN is a complex gaussian and I(nc) is an identity matrix of dimension nc.
How can I generate multiple random variables for W(k)?
Is it correct to write :
V=(randn(0,I) + i*randn(0,I))

Réponses (1)

AR
AR le 20 Juin 2025
To generate a complex Gaussian random vector, the standard approach is to combine two independent real Gaussian vectors (for the real and imaginary parts) and scale by 1/√2 to maintain unit variance.
If you want to generate L such vectors each of dimension nc × 1, use:
W = (randn(n_c, L) + 1i * randn(n_c, L)) / sqrt(2);
  • Each column of W corresponds to one sample W(k)∼CN(0,I(nc)).
  • This ensures that the total variance remains 1, as expected for standard complex Gaussian noise.
Additionally, the function randn expects integer dimensions, like randn(rows, cols)
You can refer to the following documentation page for more information:
I hope this helps!

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by