05蒙特卡洛仿真
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3 任意概率密度的随机数产生方法 4 5 6
37
常用随机数的生成算法
随机序列的产生
MC仿真的应用
杨扬 SISE@GUCAS
高斯白噪声
在整个频域内具有恒定的功率谱密度(PSD) 实际系统常是带限的,常考察带限高斯噪声对系 统的影响。 对于带宽为B的系统,其采样频率为2B,在通带 内的噪声PSD 得采样方差为 维纳-辛钦定理
产生泊松分布的随机变量 产生均值和方差为λ的泊松分布变量X的 步骤: (解析变换) 设定A=1,k=0; 产生U[k],服从[0,1]上均匀分布 设定A=U[k]A 如果A< ,X=k,返回步骤1,否则: 设定k=k+1,返回步骤3
1. 2. 3. 4. 5.
27
杨扬 SISE@GUCAS
指数分布
滑动部分系数为0,则产生了自回归模型 (AR(p))模型,AR过程也称马尔科夫过程
46
杨扬 SISE@GUCAS
马尔科夫链的功率
输入序列 均值为0,方差为 的一个不相关 高斯序列,则p阶马尔科夫序列的相关函数为:
根据上式,可得
与
的关系
根据Yule-Walker方程可获得了AP(p)过程的参数
47 杨扬 SISE@GUCAS
高斯白噪声序列可以由N(0,1)的高斯随机数生成 器输出乘以 N 0 f S / 2 仿真实现。
38 杨扬 SISE@GUCAS
二进制随机序列与二进制随机波形
二进制随机序列{ }, = 0或1,可通过一个均匀 分布序列 来实现,其中
二进制随机波形:
采样率是N倍比特速率, 样值
是单位幅度脉冲采
39
杨扬 SISE@GUCAS
Gamma分布
Gamma分布
其中: a为整数时: 均值和方差
应用:等待时间的通用模型。
30
杨扬 SISE@GUCAS
产生Gamma分布的随机变量 产生参数为α、β的服从Gamma分布的随 机变量X的步骤: (解析变换) 设X=0; 生成参数为λ,服从指数分布的变量V 设定X=X+V 如果α=1,返回X= β X,然后返回步骤 1,否则: 设定α= α -1,返回到步骤2.
杨扬 SISE@GUCAS
离散随机变量的变换方法 离散型随机变量Z: 有限型Z值生成算法:
1. 2. 3. 4.
,
设定k=1; 产生[0,1]上均匀分布的U; 如果 ,输出 ,返回步骤1,否则: 令 ,返回步骤3。
21
杨扬 SISE@GUCAS
1. 2. 3. 4.
无限型Z值的生成算法: 令 产生在[0,1]上均匀分布的U 如果 ,输出 ,返回步骤 1,否则: C 令 , = AkC (Ak = pk / pk −1 ) , , 返回步骤3。
相关的随机序列有着重要的应用,如仿真 语音信号源、时变的通信信道等。 相关高斯序列模型在仿真中应用广泛。 生成相关高斯序列的方法: 1. 基于相关函数的时域方法 2. 基于功率谱密度的频域方法
45
杨扬 SISE@GUCAS
ARMA模型方法
滑动自回归(ARMA)模型,利用一个不相关的 高斯序列得到相关的高斯序列
17
杨扬 SISE@GUCAS
解析变换法
设随机变量Z的概率密度函数为 今有 , 是Z的累积分布函数, 显然Y在[0,1]上均匀分布。 结合以上事实,利用 则可以产生 Z。 解析变换法的条件: 1. Z的累积分布函数能闭式表达 2. Z的累积分布函数的逆函数能闭式表达
18 杨扬 SISE@GUCAS
5
杨扬 SISE@GUCAS
提纲
1 2 MC仿真背景
随机数的产生
3 任意概率密度的随机数产生方法 4 5 6
6
常用随机数的生成算法 随机序列的产生 MC仿真的应用
杨扬 SISE@GUCAS
随机数生成器的作用和意义
7
杨扬 SISE@GUCAS
随机数生成器的指标 代数特性:结构、周期 统计特性:输出的分布特性 运算复杂度
22
杨扬 SISE@GUCAS
随机数产生器汇总
pdf是闭式? 是 是 cdf是闭式? 否 否 量化pdf,计算经 验cdf,使用经验 逆变换
逆cdf是闭式? 是
否
是
是否有限支 撑?
否
解析反变换
经验的反变 换
A/R方法
CAS
提纲
1 2 MC仿真背景 随机数的生成
N1 和 N 2 互素,则:
Wichman-Hill算法比同余算法计算更复杂
12
杨扬 SISE@GUCAS
一种常用的方法 用同余算法生成周期较短的随机数序列
可得出U(n)的周期:
13
杨扬 SISE@GUCAS
Marsaglia-Zaman算法
Marsaglia-Zaman算法:线性递归算法,能生成 周期更长的均与分布的随机数 在递归过程中使用了带进位的加法或者带借位的 减法。
15 杨扬 SISE@GUCAS
提纲
1 2 MC仿真背景 随机数的生成
3 任意概率密度的随机数产生 4 5 6
16
常用随机数的生成算法 随机序列的产生 MC仿真的应用
杨扬 SISE@GUCAS
产生任意概率密度随机数的方法 基本思路: 已有服从[0,1]内均匀分布的随机变量U, 为生成服从某概率分布的随机变量Y,建 立U与Y的关系,利用U来产生Y。 1. 解析变换方法 2. 经验搜索算法 3. 离散随机变量的变换方法
蒙特卡洛仿真
提纲
1 2
MC仿真背景
随机数的产生
3 任意概率密度的随机数产生方法 4 5 6
2
常用随机数的生成算法 随机序列的产生 MC仿真的应用
杨扬 SISE@GUCAS
蒙特卡洛 蒙特卡洛(Monte Carlo ) 蒙特卡洛是摩纳哥公国第一大城市,与澳 门、美国拉斯维加斯并称世界三大赌城。
3
杨扬 SISE@GUCAS
二进制伪随机序列
二进制序列由统计独立等概率出现的0和1组成。 伪随机序列也称伪噪声(PN)序列,周期性的二 进制序列,自相关函数类似于二进制随机序列的 自相关函数。 常用用反馈的移位寄存器来PN序列。
M级移位寄存器有 个不同的状态,序列的周期 不会超过 。 如移位寄存器状态为全0,寄存器会进入“死锁”
例
用均匀分布的随机变量U生产具有单边指数的随机变量X
px (x ) = a exp( −ax )u (x )
求出x的CDF:
a >0
Fx (x ) = ∫ a exp( −ay )u (y )d y = 1 − exp( −ax )
x −∞
由于U在(0,1]内均匀分布,令:
U = 1 − exp( −ax )
8
杨扬 SISE@GUCAS
均匀分布随机数生成
程序语言一般自带了生成随机数的函 数,如c++中的rand()。 经常不能满足MC仿真的需求 常用的算法: 1. 同余算法 2. Wichman-Hill算法 3. Marsaglia-Zaman算法
9 杨扬 SISE@GUCAS
均匀分布随机数生成 简单高效的递归算法实现:同余算法
蒙特卡洛最著名的是其赌场。 Las vegas的Monte Carlo赌场
蒙特卡洛(MC)仿真,是一种基于“随机数” 的仿真方法。
4 杨扬 SISE@GUCAS
准解析MC仿真-分层 仿真中并不是所有的随机过程和随机变量 都采用MC仿真,而是对一些随机过程可以 用解析方法处理。 系统中一部分随机过程被直接仿真,而其 他的影响则利用解析的方法来处理,叫做 局部MC仿真或者准解析(QA)仿真 QA仿真比纯MC仿真需要更少的采样点, 但能产生同样准确度的估计
42
杨扬 SISE@GUCAS
GF( )有很多种表达方式,以GF(8) 为例
1. 多项式表达法 2. 二进制K维数组表达法 3. 本原值的n次幂表达法
43
杨扬 SISE@GUCAS
生成M进制PN序列
利用一个系数是GF(q)上的本原多项式 获得递归序列
44
杨扬 SISE@GUCAS
相关随机序列的产生
高斯分布 高斯分布:
均值、方差:
应用:热噪声的幅度分布、大量独立随机 情况决定的随机变量 中心极限定理
34 杨扬 SISE@GUCAS
产生高斯分布的随机变量 产生标准正态分布的随机数Y的方法: 12求和法:依据中心极限定理
注意:以上方法获得的Y值仅能分布在[-6.6]之间 取值12是效率和准确的折中,不是限定的
1. 2. 3. 4. 5.
31
杨扬 SISE@GUCAS
Rayleigh分布 Rayleigh分布
均值和方差
应用:信道衰落, 窄带高斯变量的包络
32 杨扬 SISE@GUCAS
产生Rayleigh分布的随机变量 思考题: 如何生成均值和方差分别是
服从Rayleigh分布的随机变量R?
33
杨扬 SISE@GUCAS
40 杨扬 SISE@GUCAS
PN序列的性质 1. 一个周期内,1的个数总比0的个数多1个 2. 自相关函数是周期函数。 3. 游程规律:1/(2^m)的游程时间长度是 m。 4. 一个周期中具有所有的m位组合方式,除 m个0。最长的0值序列是m-1个0。
41
杨扬 SISE@GUCAS
M进制伪噪声序列 许多系统都用到了M进制波形 有限个(q个)元素组成的域叫做伽罗华域 (Galois field)GF(q)。 一个GF(q)域内的m阶多项式,如果可以整 除 ( ≥ ),此多项式叫做本原 多项式。 本原多项式的根称为本原值。 在电子、通信和计算机系统,常有M=
谱分析法
独立的高斯序列通过一个滤波器,输出的高斯序 列功率谱函数为 如果 则有 应用拉普拉斯变换,把 分解为 式,获得可实现的平稳的滤波器。
的形
48
杨扬 SISE@GUCAS
例1
寻找一个滤波器传输函数,该滤波器可以在输入为N(0,1) 的高斯随机过程时输出均值为0,PSD如下的高斯噪声 可得
35
杨扬 SISE@GUCAS
Box-Muller算法 用瑞利分布和均匀分布的变量变换生成高 斯随机变量:
1. 生成(0,1]上均匀分布、相互独立的随机变量 和 2. 得到一对独立高斯随机变量
产生的随机数取值整个实数域 较12求和y运算复杂度要高很多
36
杨扬 SISE@GUCAS
提纲
1 2 MC仿真背景 随机数的产生
3 任意概率密度的随机数产生方法 4 5 6
24
常用随机数的生成算法
随机序列的产生 MC仿真的应用
杨扬 SISE@GUCAS
二项分布 二项分布 均值方差
应用:事件成功的可能性
25
杨扬 SISE@GUCAS
泊松分布 泊松分布
均值和方差
应用:给定时间给出现事件数、到达的信 息数等
26
杨扬 SISE@GUCAS
几点需要注意 同余算法生成的随机数范围:[0,M) ; 设计同余随机数生成器,为保证较长的周 期,需要选取的M较大:常选用2的整数次 方。 选取M时需要注意仿真所使用计算机自身的 位数。
11
杨扬 SISE@GUCAS
Wichman-Hill算法
便捷、易于实现长周期随机序列。 核心思想:合并不同的短周期随机数生成器的输 出结果获得长周期随机数序列。 两个周期分别为 N1 和 N 2 的序列波形相加,则其周 期:
14
杨扬 SISE@GUCAS
Marsaglia-Zaman算法
Ci −1
Ci
⎧0, Z ≥ 0 Ci = ⎨ i ⎩1, Z i < 0
+
+
+
+
Zi
⎧ Z ,Z ≥ 0 Xi = ⎨ i i ⎩Z i + b, Z i < 0
X i−r
X i −r +1
L
X i−s
L
Xi
基数b,滞后r和s,最大周期M-1,按如下方式确 定: 是素数,b是模M的本源根 初始化长度为r的寄存器矢量, 借位首先置0。
1 解得:x = − ln(1 − U ) a
19
杨扬 SISE@GUCAS
经验搜索算法
当CDF的逆变换不能闭式表达,可以采用经验搜 索算法来生成任意概率密度的随机数 1. 将连续分布随机变量Z的分布函数均匀量化
2. 3. 4. 5.
20
产生均匀分布[0,1]的U i 令 Fi = ∑ j =0 p j , 找到i,满足 输出
M是模数,为保证输出序列周期长度,选择较大的M a是乘数,0<a<M c是增量,c=1或者0 X(0)是种子,0<X(0)<M,种子的选取可能影响较短的子序 列性能
X (k ) = [69069 ⋅ X (k − 1) + 1] mod 232
对于32位的计算机,周期为2^32
10
杨扬 SISE@GUCAS
指数分布
均值和方差
应用:电子器件寿命、失效时间,信息可 信度,通信中的数据长度等
28 杨扬 SISE@GUCAS
产生指数分布的随机变量 参数为 的服从指数分布的随机变量Z的生 成步骤 (解析变换) 1. 产生在[0,1)或(0,1]上服从均匀分布的U 2. 或者 依据运算复杂度和U的区间
29
杨扬 SISE@GUCAS