| |
在matlab中一般容易得到一个[0,1]间均匀分布的随机变量,比如A;利用此随机变量,可以产生其他概率分布函数的随机变量。
比如,希望产生一个随机变量C,其概率分布函数为F(C)。因为F(C)的范围在(0,1)内,可以先产生一个在(0,1)内均匀分布的随即变量A,若置F(C)=A,则有:C=F-1(A),即:C为F(A)的逆。
例1:
F(C)=(0, C<0);(C*C/4, 0<C<2);(1, C>2)。首先产生一个均匀分布的随机变量A,F(C)=C*C/4=A,所以:C=2*sqrt(A)。
例2:
瑞利分布随机变量:R=sqrt(2*sigma*sigma*ln(1/(1-A))),其中,A为(0,1)内均匀分布的随即变量。
例3:
高斯分布随机变量:可利用瑞利分布随机变量R产生一对均值为m、方差为例2中的sigma的高斯随机变量C和D:
C=m + R*cos(theta)
D=m + R*sin(theta)
其中,theta=2*pi*B;(B为0到1内均匀分布的随机变量)
参考资料:《现代通信系统(MATLAB版)》 John G.Proakis著