本发明属于噪声产生,更为具体地讲,涉及一种基于等概率高斯混合模型的任意指定分布噪声实时合成方法。
背景技术:
1、任意指定分布噪声通常由任意指定分布,如二项分布、泊松分布、指数分布和正态分布等的随机数通过数模转换(dac)得到。因此,如何生成各种指定分布的随机数就成为计算机技术在仿真等领域应用必须解决的问题。生成“任意指定分布的随机数”时通常会使用到已有“均匀分布的随机数”,有了均匀分布的伪随机数,就可以通过各种变换及映射关系来得到任意指定分布的随机数,现有方法主要有反函数法、查表法和舍选法等。
2、1、反函数法
3、反函数法是根据逆变换采样(inverse transform sampling)理论,首先求出所需的概率分布的随机数函数的反函数,其次在硬件上构建一个这样的反函数运算模块,再将均匀分布的随机数输人反函数运算模块进行实时计算,最后将计算结果经dac输出,这样理论上可以产生符合指定分布的随机数。
4、过程如下:
5、(1)、己知[0,1]区间上均匀分布的随机数r;
6、(2)、将所需的概率分布的随机数函数f(x)进行反变换,求解随机数函数f(x)的反函数f-1(z);
7、(3)、令z=f-1(r),则z就是服从概率分布函数为f(x)的随机数;
8、因此,只要知道所需概率分布函数f(x)的反函数f-1(z),就可以从[0,1]均匀分布的随机数产生服从所需指定分布的随机数。
9、但是,有些概率分布函数并非初等函数,求得其反函数较为困难,此外,在硬件上构建极其反函数复杂,甚至无法构建一个反函数运算模块来对均匀分布的随机数进行变换输出。因此只能用一些数学方法近似拟合并求得反函数,或者大容量的存储器存储概率分布函数的定义域值域映射关系。由于要对输入进行实时数学运算,故输出速度较慢。
10、2、舍选法
11、舍选法的基本原理如下:设给定随机数的概率分布函数为f(x),u1和u2分别为范围在(0,a)和(0,b)上均匀分布的随机数,若u2<f(u1),则输出u1;否则拒绝u1即不输出,这样输出的随机数分布满足概率分布函数f(x)。
12、如图1所示,阴影部分面积为s,则输出的效率为η=s/(ab),假设均匀分布的随机数的产生速率为w(in),则输出给定概率分布随机数的平均速率:w(out)=ηw(in)。
13、在舍选法的fpga实现过程中,根据给定概率分布函数f(x)构建一个对应的函数运算模块,进行实时计算输出。对于较复杂的概率分布函数f(x),可以直接将其离散化,存储于rom中(rom中存储的为概率分布函数f(x),而非计算生成的随机数样本),后续通过均匀分布的随机数(即u1)对rom中所存的概率分布函数f(x)进行寻址、读值(即f(u1))、判断是否满足u2<f(u1),若满足判断是,则输出u1。若不满足,则当前时钟无随机数输出。
14、舍选法的实现较为简单,rom资源开销较少,仅需要存储离散化后的概率分布函数,但随机数生成速率不稳定,不能保证每个时钟都有符合要求的随机数输出。实验表明,三角分布的接受率为50%,标准正态分布(4σ)接受率为31.33%。
15、1.3查表法
16、查表法是产生任意指定分布随机数的最常用的方法之一。如图2所示,查表法是根据随机数的概率分布函数(probability distribution function)f(x)通过上位机(pc)软件预先计算出一组符合概率分布的随机数存入fpga的存储器rom众,把均匀分布的随机数x1作为输人映射到实际物理地址,然后寻址输出随机数x2,随机数x2的概率分布符合概率分布函数f(x)。
17、查表法的实现最为简单、直观,无需复杂计算,输出速度快且稳定,但是输出依赖于预先存入的符合概率分布的随机数,随机性差,且由于rom存储深度的限制,低概率的随机数输出误差很大。
18、以使用查表法生成符合图3(a)的概率分布函数(pdf)的随机数为例,设置生成随机数的位宽为10bit,低概率样本的采样误差小于5%,此时生成的随机数样本集合(pdfintrom)的统计结果如图3(b)图所示,随机数样本集合的样本总数为96301,对应在fpga中实现时,需要深度为96301位,宽度为10bit的rom空间(共计963010bit rom空间),用以存储随机数表,等待后续使用均匀分布的随机数进行寻址输出。
19、如需设置生成的随机数位宽为14bit,此时所需的rom深度为1540265,宽度为14,rom资源开销极大。此外,配置参数多且不灵活
技术实现思路
1、本发明的目的在于克服现有技术的不足,提供一种基于等概率高斯混合模型的任意指定分布噪声实时合成方法,以实现任意指定分布噪声的稳定生成,并提高其随机性,同时,降低低概率随机数输出误差并减少配置参数,增强配置灵活性。
2、为实现上述发明目的,本发明基于等概率高斯混合模型的任意指定分布噪声实时合成方法,其特征在于,包括以下步骤:
3、(1)、在上位机端获取k组均值以及方差
4、1.1)、将任意指定分布随机数的分布函数作为待拟合的分布函数f(x),并根据分布函数f(x),得到n个观测数据yj=f(xj),j=1,2,...,n,xj为分布函数f(x)取值范围均匀取值的数;
5、1.2)、初始化k组均值以及方差初始化迭代次数i=0;令待拟合噪声的幅度区间为[amin,amax],则有k组高斯模型的初值分布设置如下:
6、
7、1.3)、计算第i次迭代下第j个观测数据yj来自第k个任意高斯分布合成模型的概率
8、
9、其中,为均值方差构成的高斯分布密度函数在y=yj时的高斯分布密度值,概率为第k个任意高斯分布合成模型对第j个观测数据yj的响应度;
10、1.4)、计算第i+1次迭代的均值方差
11、
12、1.5)、判断是否小余设定的阈值ε1,是否小于设定的阈值ε2,如果都小于,或者迭代次数达到设定的上限,则终止迭代,得到的均值方差并转换为双精度浮点数,分别作为k个任意高斯分布合成模型的均值μk以及方差σk,k=1,2,...,k,发到fpga端对应的k个任意高斯分布合成模型;
13、(2)、在fpga端输出任意指定分布噪声
14、2.1)、在fpga端,首先将混沌模型作为数字熵源,输出k路服从均匀分布随机序列其中,k为均匀分布随机序列的路数序号,n均匀分布随机序列中随机数的序号,均匀分布随机序列的位数为q,且q满足条件:
15、然后按照每两路均匀分布随机序列输入到一路box-muller变换模块,转化为服从标准高斯分布的随机序列其中,k为单数,并输入到各自对应的任意高斯分布合成模型:
16、在box-muller变换模块中,使用fpga内部的定点数ip核将q位均匀分布随机序列归一化到区间(-1,1),并采用定点数表示,1位符号位、31位小数位,再与定点数π相乘,其中,定点数π数据格式为:1位符号位、2位整数位、29位小数位,乘法器的输出送入cordicip核中完成三角函数的计算,得到和其数据格式为:1位符号位、31位小数位,再使用floating-point ip核将两路定点数转换双精度浮点数;将q位均匀分布随机序列与常数1相加,得到区间[1,2q]的随机数,再用floating-point ip核的fixed-to-float功能将区间[1,2q]的随机数归一化到区间(0,1],并同时转为双精度的浮点数,得到的浮点数通过对数运算、乘以-2运算以及平方根运算,得到双精度浮点格式的
17、将浮点格式的分别与浮点格式的和相乘即可得到两组相互独立的服从标准高斯分布的随机序列
18、2.2)、第k路高斯噪声的合成
19、第k路高斯噪声在第k个任意高斯分布合成模型中进行数字合成:
20、
21、其中,乘法和加法运算使用floating-point ip核实现;
22、2.3)、幅度限制
23、对第k路高斯噪声进行幅度限制:
24、
25、其中,
26、2.4)、归一化
27、对第k路高斯噪声进行归一化,得到第k路高斯噪声
28、
29、其中,参数:
30、
31、由上位机端在线发送参数,格式为双精度浮点数;
32、根据dac位数n,将第k路高斯噪声转为定点数;
33、(3)、噪声输出
34、dac为k路输入、1路输出的并行dac,k路高斯噪声进行无重复置乱排序后并行输入dac,得到的k路模拟信号放大amax-amin倍,再设置偏置电压为amin,得到输出模拟信号幅度区间为[amin,amax]的噪声,这样得到服从指定分布的噪声。
35、本发明的目的是这样实现的。
36、现有技术中,舍选法rom资源开销小,rom中仅需要存储离散化后的概率分布函数,但随机数生成速率不稳定。查表法简单、直观,无需复杂计算,输出速度快且稳定,但是rom中需存储由概率分布函数生成的随机数,rom资源开销大,且输出依赖于预先存人的数据,随机性差,同时,受限于rom存储深度,低概率的样点输出误差很大。
37、本发明基于等概率高斯混合模型的任意指定分布噪声实时合成方法,包含上位机和fpga两部分。其中,上位机负责基于弱化的gmm,使用em算法,对给定的待拟合分布函数进行拟合,将k个任意高斯分布合成模型的均值μk以及方差σk,k=1,2,...,k,并分别下发到fpga端的k个任意高斯分布合成模型;在fpga端包含3个部分,首先将混沌模型作为数字熵源,输出服从k路均匀分布随机序列,并分别输入k路box-muller变换模块,然后每一路box-muller变换模块将均匀分布随机序列转化为服从标准高斯分布的随机序列并输入到各自对应的任意高斯分布合成模型,然后,在第k个任意高斯分布合成模块中,结合上位机发送来的均值μk以及方差σk,将输入的标准高斯分布的随机序列转换为服从n(μk,σk)的任意高斯分布随机序列并输出,最后,将k个任意高斯分布合成模型输出的任意高斯分布随机序列集合在一块,共同组成任意指定分布随机数,经过输出限幅与模拟端输出放大,将随机数的数值信号转化为对应的模拟信号,得到任意指定分布噪声。
38、本发明直接对随机序列进行变换处理,任意指定分布随机数可稳定随机生成,且随机性不受影响。同时,需要重新指定分布噪声时,只需要上位机重新计算k个任意高斯分布合成模型的均值μk以及方差σk即可,配置灵活且配置参数少。
1.一种基于等概率高斯混合模型的任意指定分布噪声实时合成方法,其特征在于,包括以下步骤: