Generate noise using Box muller meathod

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

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

Thanks man... How can I increase my variance. Also I need to check the energy of noise signal. I'm implementing QPSK Modulation and Demodulation and I need to match energy so that i can have nearly eqal BER plot. Help me with this.
As I mentioned already in my answer, if you increase the value of "sigma_noise", you'll increase the variance of AWGN_noise.
I don't know anything more about the techniques you mention, so I'm afraid I can't help with that.
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.
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)

Is there some reason why you are not using the randn function?

1 Comment

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!