Generate noise using Box muller meathod

15 次查看(过去 30 天)
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.

采纳的回答

the cyclist
the cyclist 2012-6-8
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 个评论
Ronak Sakaria
Ronak Sakaria 2012-6-8
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 2019-10-24
Hello everyone,
Can anybody body tell me how to change mean of the generated Gaussian RV using this method ?

请先登录,再进行评论。

更多回答(1 个)

Peter Perkins
Peter Perkins 2012-6-8
Is there some reason why you are not using the randn function?
  1 个评论
Ronak Sakaria
Ronak Sakaria 2012-6-8
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.

请先登录,再进行评论。

Community Treasure Hunt

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

Start Hunting!

Translated by