当前位置:文档之家› 任意分布随机序列的产生方法

任意分布随机序列的产生方法


又假设 f (x) 能量集中于 x∈[a, b] 内,位于其他
位置的能量可忽略不计。将[a, b] 等分为 N 份,有:
x(i) = a + (i −1)*c
c =(b−a)/ N , i =1, 2, L, N +1
(4)
故 f (x(i)) 表示随机序列在 x(i) 处的概率密度。
N +1
令 F =∑ f (x(i))
方法。
3 任意概率随机序列仿真
图 1 标准正态分布所有观测数据的随机序列与概率密度 Fig.1 Random sequence and probability density of all observing data
of a standard normal distribution
2.2 根据概率密度产生随机序列
u1 和 u2 ,利用二元函数变换得到: X1 =(−2lnu1)cos(2πu2)
X2 = (−2lnu1)sin(2πu2)
(2)
其中 X1 , X2 是两个独立的标准正态分布的随 机变量,将 u1 和 u2 代入式(2)中即可得到 X 的值。 此时所有的 X 值是服从正态分布的,我们将这些数
据画成曲线即可得到正态分布的概率密度曲线。本
reconstruction method
1 引言
随机数在现代生活中,特别是在系统仿真中起 着重要作用。利用自然特性来得到随机数不太实用。 因此,需要研究算法产生随机数来满足不同的需 求。目前随机序列发生器均能通过各种随机性统计 检验,其中比较著名的有线性同余发生器 LCG (Linear Congruential Generat or)、线性反馈移位寄存 器 LFSR(Linear Feedback Shift Register)和二次剩余 发生器 BBS(Blum, Blum and Shub Generator)等。
v 阶 K 类 Bessel 函数, Γ (·)为 Gamma 函数。当对
z
进行归一化后,
v
b = Γ2 (2
v+1)

第6期
曾治丽等:任意分布随机序列的产生方法
653
(2) K 分布的特征函数
∑ φˆXe
(ω) =
1 N
N
exp(jω Xn)
n=1
(10)
式中, Xn 是随机变量,N 为独立变量的个数,
通常得到随机数都是已知概率密度函数,求得 分布函数,再通过分布函数产生随机序列[1,2]。但此 方法有一定的局限性,当很难通过概率密度求出分 布函数时,就无法产生它的随机序列。比如 K 分布
收稿日期: 2009-12-24; 修回日期: 2010-04-02 作者简介: 曾治丽, 女(1984-), 海南东方人, 硕士, 研究方向为水下目
标信号特征提取。 通讯作者: 曾治丽, E-mail: lilyfu168@
的分布函数,我们很难用传统的方法求得,它的随 机数就很难得到。为解决此问题,提出了一种基于 频数的方法,直接由它的概率密度产生随机序列[3-5]。
本文首先介绍传统产生随机序列的方法,即根 据分布函数得到随机序列。再提出基于频数的方 法,即根据概率密度产生随机序列。并以产生 K 分 布随机序列的方法为例,从以下几个部分验证方法 的可行性:K 分布函数的概率密度;标准方差;特 征函数;从各变量对 K 分布的影响看方法的正确与 否。根据这些算法进行了建模仿真,且对仿真所得 的随机序列进行了统计分析,结果表明符合概率密 度分布要求。
第 29 卷第 6 期 2010 年 12 月
声学技术 Technical Acoustics
Vol.29, No.6 Dec., 2010
任意分布随机序列的产生方法
曾治丽,李亚安,金贝立
(西北工业大学航海学院,西安 710072)
摘要:随机序列已经被广泛地使用在信号处理中。通常都是由已知概率密度得到分布函数,通过分布函数产生随机
若已知某概率密度函数,通过积分得到分布函
数 F(X),并令分布函数为某一值 U,U 服从(0,1)上 的均匀分布[6]。MATLAB 环境提供了库函数 rand()
来产生一个随机的数。此随机序列 U 为常数,即可
解出 X 的的表达式,并对所有 X 的值画成概率密度
曲线。以产生正态分布随机序列为例来讨论。
生成 K 分布特征函数的标准差如图 6 所示,其 中 v 值取−0.5,0,0.5,1,1.5。K 分布特征函数的 标准差由式(3-3)得到,并进行统计分析,结果表明 符合此分布。
图 3 K 分布特征函数理论值 Fig.3 Theoretical value of K-distribution’s characteristic function
有些概率密度函数很难确切得出它的分布函 数,比如 K 分布的概率密度函数,不能明确得到分 布函数的表达式,而且该概率密度函数中含有两个 特殊的函数,即 Gamma 函数和 V 阶 K 类 Bessel 函数。因此要得到分布函数很困难,本文提出了一
3.1 仿真模型
本文采用一种基于频数的随机重构方法,利用
序列。然而在难以通过概率密度求得分布函数时,产生随机序列则变得十分困难。提出了一种随机数生成的新方法
——基于频数的随机重构方法,即由已知的概率密度直接产生随机序列;以 K 分布概率密度产生随机序列为例,并
用 K 分布的特征函数以及特征函数的标准差进行验证,通过仿真分析证明该方法的正确性。最后通过统计对比,此
文取 µ=0,σ =1,随机个数 N 取 1000。在 MATLAB
中建模计算,得到正态分布的随机序列见图 1。
种基于频数的随机重构方法来解决此问题。
假设任意随机序列的概率密度函数 f (x) 已知,
且 f (x) 能量有限,即:


∫ f (x)2dx<∞ , ∫ f (x)dx<∞
(3)
−∞
−∞
图 4 K 分布特征函数单次实验值 Fig.4 The value of K-distribution’s characteristic function from a
single experiment
4 结论
本文针对很难通过分布函数得到随机数的情
Xn =[X1, X2, ⋅⋅⋅, Xn] 。
(3) K 分布的特征函数的标准差
∑ S =
1 N −1
N n=1
(
X
n

X
)2
(11)
式中,S 表示标准差,N 表示独立变量的个数,
Xn 表示随机变量, X 表示 X1, X2, ⋅⋅⋅, Xn 的平均数。
3.2 仿真结果
本文生成的 K 分布概率密度的理论值与估计 值如图 2 所示,其中 v 值取−0.5、0、0.5、1、1.5。 K 分布概率密度的理论值由式(9)的仿真模型得到, K 分布概率密度的估计值由本文提出的基于频数的 方法得到,由于理论值与估计值的图形刚好吻合, 因此我们验证了该方法的正确性。
令 m(i)= fix( f (x(i))*L)
(7)
F
则:
gi = x(i)+e*rand(m(i))
(8)
其中,e 为一可调节参量,其取值可直接影响
到随机序列的合理性(e 取值应大于式(4)中的 c,以保
证在[a, b]取值范围内均有随机数存在)。
基于此,以 K 分布的概率密度、K 分布特征函
数以及 K 分布特征函数的标准差为例进行验证此
(5)
(i)) =1
i=1 F
(6)
要产生点数为 L 的一组随机序列,则只需在每
个 x(i) 附近产生一组均匀分布的随机序列 gi ,然后 将所有产生的随机数排列到一个 1 行 L 列的矩阵 G
中,再对 G 中每一个序列进行随机排列,即可得到
任意分布随机序列。下面介绍 gi 的产生办法:
已经建立的 K 分布随机序列仿真模型,建立了 K 分布函数的概率密度、K 分布特征函数以及 K 分布 特征函数的标准差的随机序列仿真模型。
(1) K 分布
K 分布的概率密度函数为:
( ) ( ) f
X
(x)
=
2 aΓ(v
+ 1)
x 2a
v+1
Kv
x a
x>0
(9)
式中,v 为形状系数,b 为标度系数, Kv(x) 为
生成 K 分布的特征函数理论值如图 3 所示,K 分布特征函数单次实验值如图 4 所示,K 分布特征 函数 100 次实验平均值如图 5 所示,其中 v 值都取 −0.5、0、0.5、1、1.5。K 分布的特征函数理论值由 式(10)得到,将单次实验、多次实验与理论值比较, 可知实验次数越多,得到的图形越光滑,越接近于 特征函数的理论值,也进一步验证了方法的可行性。
如果一个随机序列服从一维正态分布,那么它
有如下的概率密度函数:
f (x)=
1
e−(
x−µ )2 2σ 2
(1)
2πσ
其中 µ、σ(>0)为常数,它们分别为均值和方差。
从均匀高斯分布转化为标准正态分布一般用
Box_Muller 变换,可以产生精确的正态分布随机变
量。其变换式为:若取两个 0~1 均匀分布随机序列
2 任意概率分布随机数的算法
产生一组任意概率分布的随机数是计算机技 术在系统仿真和模拟中最基本和首要的问题,但计 算机产生的随机数都是有固定周期的随机数,不能 满足实际应用需要。因此,利用概率密度函数产生
652
声学技术
2010 年
随机序列。
2.1 根据分布函数产生随机序列(分布函数能算出 来的情况)
ZENG Zhi-li, LI Ya-an, JIN Bei-li
相关主题