Generate noise using Box muller meathod

9 views (last 30 days)
What are the other meathod for generating Guassian Noise?
I wrote code for Box muller like:
noise = rand(2,length(data));
AWGN_noise = zeros(1,length(data));
for i1=1:length(data)
AWGN_noise(i1) = sigma_noise * sqrt(-2*log(noise(1,i1)))*cos(2*pi*noise(2,i1));
end
The thing is that I'm not getting much variance in values after Box Muller Transformation. Suggest me some good code to generate guassian noise.

Accepted Answer

the cyclist
the cyclist on 8 Jun 2012
If I set sigma_noise to 1, then the variance of your noise is also 1, exactly as I would expect. (See for example http://en.wikipedia.org/wiki/Box%E2%80%93Muller_transform.) If you increase the value of sigma_noise, then you'll get more variance.
Also, your code can be vectorized to have a significant speedup. Replace your for loop with:
AWGN_noise = sigma_noise * sqrt(-2*log(noise(1,:))).*cos(2*pi*noise(2,:));
  4 Comments
Ronak Sakaria
Ronak Sakaria on 8 Jun 2012
Are you aware of Sigma for QPSK modulation? My theory and simulation BER result doesnt match very much. I know that it depends on sigma of noise but i have tried various values of sigma and i am not getting good simultation BER curve, And thanks for suggesting alternate for for loop. I'm making less error than theoritical case at higher SNR.
Ali Sabra
Ali Sabra on 24 Oct 2019
Hello everyone,
Can anybody body tell me how to change mean of the generated Gaussian RV using this method ?

Sign in to comment.

More Answers (1)

Peter Perkins
Peter Perkins on 8 Jun 2012
Is there some reason why you are not using the randn function?
  1 Comment
Ronak Sakaria
Ronak Sakaria on 8 Jun 2012
Well no need to use randn function. I'm trying not to use any predefined function in matlab like randn, and other related to QPSK modulation.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!