
matlab产生随机数的方法
第一种方法是用random语句,其一般形式为y=random("分布的英文名",A1,A2,A3,m,n),表示生成m行n列的m×n个参数为(A1,A2,A3)的该分布的随机数。例如:(1)R=random("Normal",0,1,2,4):生成期望为0,标准差为1的(2行4列)2×4个正态随机数(2)R=random("Poisson",1:6,1,6):依次生成参数为1到6的(1行6列)6个Poisson随机数第二种方法是针对特殊的分布的语句:一.几何分布随机数(下面的P,m都可以是矩阵)R=geornd(P)(生成参数为P的几何随机数)R=geornd(P,m)(生成参数为P的×m个几何随机数)1R=geornd(P,m,n)(生成参数为P的m行n列的m×n个几何随机数)例如(1)R=geornd(1./2.^(1:6))(生成参数依次为1/2,1/2^2,到1/2^6的6个几何随机数)(2)R=geornd(0.01,)(生成参数为0.01的(1行5列)5个几何随机数).二.Beta分布随机数R=betarnd(A,B)(生成参数为A,B的Beta随机数)R=betarnd(A,B,m)(生成×m个数为A,B的Beta随机数)1R=betarnd(A,B,m,n)(生成m行n列的m×n个数为A,B的Beta随机数).三.正态随机数R=normrnd(MU,SIGMA)(生成均值为MU,标准差为SIGMA的正态随机数)R=normrnd(MU,SIGMA,m)(生成1×m个正态随机数)R=normrnd(MU,SIGMA,m,n)(生成m行n列的m×n个正态随机数)例如(1)R=normrnd(0,1,)生成5个正态(0,1)随机数(2)R=normrnd([123;456],0.1,2,3)生成期望依次为[1,2,3;4,5,6],方差为0.1的2×3个正态随机数.四.二项随机数:类似地有R=binornd(N,P)R=binornd(N,P,m)R=binornd(N,p,m,n)例如n=10:10:60;r1=binornd(n,1./n)或r2=binornd(n,1./n,)(都生成参数分别为11),L,(60,)的6个二项随机数.(10,1060五.自由度为V的χ2随机数:R=chi2rnd(V)R=chi2rnd(VR=chi2rnd(V,m),m,n)六.期望为MU的指数随机数(即Exp随机数):1MUR=exprnd(MU)R=exprnd(MU,m)R=exprnd(MU,m,n)七.自由度为V1,V2的F分布随机数:R=frnd(V1,V2)R=frnd(V1,V2,m)R=frnd(V1,V2,m,n)八.Γ(A,λ)随机数:R=gamrnd(A,lambda)R=gamrnd(A,lambda,m)R=gamrnd(A,lambda,m,n)九.超几何分布随机数:R=hygernd(N,K,M)R=hygernd(N,K,M,m)R=hygernd(N,K,M,m,n)十.对数正态分布随机数R=lognrnd(MU,SIGMA)R=lognrnd(MU,SIGMA,m)R=lognrnd(MU,SIGMA,m,n)十一.负二项随机数:R=nbinrnd(r,p)R=nbinrnd(r,p,m)R=nbinrnd(r,p,m,n)十二.Poisson随机数:R=poissrnd(lambda)R=poissrnd(lambda,m)R=poissrnd(lambda,m,n)例如,以下3种表达有相同的含义:lambda=2;R=poissrnd(lambda,1,10)(或R=poissrnd(lambda,)或R=poissrnd(lambda(ones(1,10)))十三.Rayleigh随机数:R=raylrnd(B)R=raylrnd(B,m)R=raylrnd(B,m,n)十四.V个自由度的t分布的随机数:R=trnd(V)R=trnd(V,m)R=trnd(V,m,n)42十五.离散的均匀随机数:R=unidrnd(N)R=unidrnd(N,m)R=unidrnd(N,m,n)十六.[A,B]上均匀随机数R=unifrnd(A,B)R=unifrnd(A,B,m)R=unifrnd(A,B,m,n)例如unifrnd(0,1:6)与unifrnd(0,1:6,)都依次生成[0,1]到[0,6]的6个均匀随机数.:十七.Weibull随机数R=weibrnd(A,B)R=weibrnd(A,B,m)R=weibrnd(A,B,m,n)
MATLAB中产生高斯白噪声的两个函数
MATLAB中产生高斯白噪声非常方便,可以直接应用两个函数,一个是WGN,另一个是AWGN。WGN用于产生高斯白噪声,AWGN则用于在某一信号中加入高斯白噪声。
1.WGN:产生高斯白噪声
y=wgn(m,n,p)产生一个m行n列的高斯白噪声的矩阵,p以dBW为单位指定输出噪声的强度。
y=wgn(m,n,p,imp)以欧姆(Ohm)为单位指定负载阻抗。
y=wgn(m,n,p,imp,state)重置RANDN的状态。
在数值变量后还可附加一些标志性参数:
y=wgn(…,POWERTYPE)指定p的单位。POWERTYPE可以是"dBW","dBm"或"linear"。线性强度(linearpower)以瓦特(Watt)为单位。
y=wgn(…,OUTPUTTYPE)指定输出类型。OUTPUTTYPE可以是"real"或"complex"。
2.AWGN:在某一信号中加入高斯白噪声
y=awgn(x,SNR)在信号x中加入高斯白噪声。信噪比SNR以dB为单位。x的强度假定为0dBW。如果x是复数,就加入复噪声。
y=awgn(x,SNR,SIGPOWER)如果SIGPOWER是数值,则其代表以dBW为单位的信号强度;如果SIGPOWER为"measured",则函数将在加入噪声之前测定信号强度。
y=awgn(x,SNR,SIGPOWER,STATE)重置RANDN的状态。
y=awgn(…,POWERTYPE)指定SNR和SIGPOWER的单位。POWERTYPE可以是"dB"或"linear"。如果POWERTYPE是"dB",那么SNR以dB为单位,而SIGPOWER以dBW为单位。如果POWERTYPE是"linear",那么SNR作为比值来度量,而SIGPOWER以瓦特为单位。
注释
1.分贝(decibel,dB):分贝(dB)是表示相对功率或幅度电平的标准单位,换句话说,就是我们用来表示两个能量之间的差别的一种表示单位,它不是一个绝对单位。例如,电子系统中将电压、电流、功率等物理量的强弱通称为电平,电平的单位通常就以分贝表示,即事先取一个电压或电流作为参考值(0dB),用待表示的量与参考值之比取对数,再乘以20作为电平的分贝数(功率的电平值改乘10)。
2.分贝瓦(dBW,dBWatt):指以1W的输出功率为基准时,用分贝来测量的功率放大器的功率值。
3.dBm(dB-milliWatt):即与1milliWatt(毫瓦)作比较得出的数字。
0dBm=1mW
10dBm=10mW
20dBm=100mW
也可直接用randn函数产生高斯分布序列,例如:
y=randn(1,2500);
y=y/std(y);
y=y-mean(y);
a=0.0128;
b=sqrt(0.9596);
y=a+by;
