www.pudn.com > Gngauss.rar > Gngauss.m, change:1999-07-09,size:789b


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