Gngauss.m
上传用户:loeagle
上传日期:2013-03-02
资源大小:1236k
文件大小:1k
源码类别:

通讯编程文档

开发平台:

Matlab

  1. function [gsrv1,gsrv2]=gngauss(m,sgma)
  2. %   [gsrv1,gsrv2]=gngauss(m,sgma)
  3. %   [gsrv1,gsrv2]=gngauss(sgma)
  4. %   [gsrv1,gsrv2]=gngauss
  5. % GNGAUSS  generates two independent Gaussian random variables with mean
  6. %    m and standard deviation sgma. If one of the input arguments is missing, 
  7. %    it takes the mean as 0.
  8. %    If neither the mean nor the variance is given, it generates two standard
  9. %    Gaussian random variables. 
  10. if nargin == 0,
  11.   m=0; sgma=1;
  12. elseif nargin == 1,
  13.   sgma=m; m=0;
  14. end;
  15. u=rand;                          % a uniform random variable in (0,1)       
  16. z=sgma*(sqrt(2*log(1/(1-u))));   % a Rayleigh distributed random variable
  17. u=rand;                          % another uniform random variable in (0,1)
  18. gsrv1=m+z*cos(2*pi*u);
  19. gsrv2=m+z*sin(2*pi*u);