gngauss.m

来自「turbo 码matlab编译码程序」· M 代码 · 共 21 行

M
21
字号
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);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?