gngauss.m

来自「matlab通信仿真」· M 代码 · 共 21 行

M
21
字号


function [gsrv1,gsrv2]=gngauss(m,sgma)

% [gsrv1,gsrv2]=gngauss(m,sgma)
% [gsrv1,gsrv2]=gngauss(sgma)
% [gsrv1,gsrv2]=gngauss
% GNGAUSS产生两个均值为m、标准偏差为sgma的、相互独立的高斯随机变量。如果缺少其中一个输入参数,则取均值为零。
%如果既没有给出均值,也没有给出方差,本函数将产生两个标准高斯随机变量。

if nargin==0,
    m=0;sgma=1;
elseif nargin==1,
    sgma=m;m=0;
end;

u=rand;          %在区间(0,1)内的均匀随机变量
z=sgma*(sqrt(2*log(1/(1-u)))); %Raleigh分布随机变量
u=rand;           %在区间(0,1)内的另一个均匀随机变量
gsrv1=m+z*cos(2*pi*u);
gsrv2=m+z*sin(2*pi*u);

⌨️ 快捷键说明

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