一种基于FPGA的整数形状参数伽马分布随机数发生器

文档序号:35971962发布日期:2023-11-09 12:58阅读:18来源:国知局
一种基于FPGA的整数形状参数伽马分布随机数发生器

本发明属于雷达,更进一步涉及雷达参数估计中的一种基于fpga的整数形状参数伽马分布随机数发生器。


背景技术:

1、gamma分布随机数在多个领域中广泛应用:如雷达杂波模拟,统计模拟,网络安全,无线通信,蒙特卡罗计算等。其中,对于杂波生成也起到了重要作用。杂波是制约雷达目标检测和跟踪性能的主要因素之一。海杂波的研究对于雷达检测和系统设计具有重要意义。

2、基于软件的随机数发生器速度慢、并行度差。基于硬件的随机数发生器具有高速、低功耗、并行度高和安全性高等优点。随着可编程逻辑器件的发展以及硬件仿真工具性能的提高,fpga作为一种硬件加速器,被广泛地应用到高性能计算的各个领域。

3、因此,要解决的问题是如何合理地把gamma分布随机数和fpga整合起来。


技术实现思路

1、针对背景技术中提出的挑战,本发明开发一种基于fpga的整数形状参数伽马分布随机数发生器,对雷达检测和系统设计具有重要意义。

2、本发明提供如下技术方案:一种基于fpga的整数形状参数伽马分布随机数发生器,包括均匀随机数生成模块和伽马随机数生成模块,其中均匀随机数生成模块包括数据预处理单元、种子产生单元、convert单元和mixer单元;伽马随机数生成模块包括对数查找表和加法器。

3、优选地,所述数据预处理单元用于对输入的初始参数进行规格化处理,使其转换成对应进制的数。例如,本文需要将递归长度为十进制的参数转换为32位二进制数据。

4、优选地,所述种子产生单元把初始种子作为数据链初值,根据递推式:

5、

6、获得包括初始种子的初始数据(x[0]-x[n-1]),初始数据(x[0]-x[n-1])组成初始数据链dn,其中,k∈[1,n-1],n为算法递归长度,w为位宽,x[0]为初始种子,f为初始化旋转链所需参数,其中n=624,f=1812433253,w=32,x[0]=5489,位宽均为32位,x[k-1]>>(w-2)表示x[k-1]右移(w-2)位,表示异或运算。

7、优选地,所述convert单元用于对初始数据链部分数据执行旋转算法,旋转算法具体为:

8、每次从dn数据链中抽取3个数据,根据公式1-2计算

9、

10、其中m为递推度中值,取整数,满足m∈[1,n],x[k]、x[k+1]、x[k+m]均是初始数据链中已有数据,表示将高位低位数据相结合,组成一个w位的新数据,再乘以矩阵a,并与x[k+m]进行异或运算,得到新生成的随机数x[k+n],并将该随机数插入dn的尾端,数据依次覆盖前一位数据,生成新的数据链dn+1,&表示与运算,|表示或运算,其中p=0x80000000,q=0x7fffffff,递推度中值m取397,所述矩阵a为l×l的扭转变换矩阵,内容为

11、

12、其中iw-1为单位矩阵,l和w为32,a0和aw-1为32位旋转矩阵的参数,位宽为32位,a矩阵形式选取使得x与a相乘有更快的速度。优选地,所述mixer单元负责处理旋转算法所得结果,将公式1-2下生成新的数据x(当k=0时即为x[n])

13、进行位运算,具体公式如下:

14、

15、其中,b,c,s,t都为tgfsr(twistedgfsr)的参数,分别为掩码b,c和位移量s,t,u,l则为旋转链旋转过程的位移量,(y1<<s)表示将w位的y1数据向左移动s位,其中u=11,s=7,t=15,l=18,b,c位宽为32,b=9d2c5680,c=efc60000。

16、优选地,所述对数查找表的生成步骤包括:首先通过matlab软件设计一个查找表,生成y=-ln(x)的对数波形数据,量化结果为y/max(y)*216,量化位宽为16位,深度为216,x∈[0,1],间距为216;将产生的对数波形数据存储进rom里面;均匀随机数生成模块生成1个32位均匀随机数y4,截取其16位得到1个16位均匀随机数,重复三次即可得到3个16位的均匀随机数,将均匀随机数的数据输出与对数查找表数据输入连接,得到三个16位的rom ip,命名为rom1,rom2,rom3,分别对应的就是对数查找表1,2,3。

17、优选地,所述加法器的输入和输出位宽均为16,将rom1和rom2通过第一加法器add1相加得到一个16位的输出,再由第二加法器add2将rom1+rom2与rom3相加,位宽不变,得到位宽为16的输出rom1+rom2+rom3,即得到最终的16位gamma随机数。

18、本发明具备以下有益效果:

19、本发明可以在fpga上生成符合伽马分布的随机数,并且随机数的质量较好,可以用于杂波生成及仿真。



技术特征:

1.一种基于fpga的整数形状参数伽马分布随机数发生器,其特征在于,包括均匀随机数生成模块和伽马随机数生成模块,其中均匀随机数生成模块包括数据预处理单元、种子产生单元、convert单元和mixer单元;伽马随机数生成模块包括对数查找表和加法器。

2.根据权利要求1所述的一种基于fpga的整数形状参数伽马分布随机数发生器,其特征在于,所述数据预处理单元用于对输入的初始参数进行规格化处理,使其转换成对应进制的数。

3.根据权利要求1所述的一种基于fpga的整数形状参数伽马分布随机数发生器,其特征在于,所述种子产生单元把初始种子作为数据链初值,根据递推式:

4.根据权利要求3所述的一种基于fpga的整数形状参数伽马分布随机数发生器,其特征在于,所述convert单元用于对初始数据链部分数据执行旋转算法,旋转算法具体为:

5.根据权利要求4所述的一种基于fpga的整数形状参数伽马分布随机数发生器,其特征在于,所述mixer单元负责处理旋转算法所得结果,将公式1-2下生成新的数据x进行位运算,具体公式如下:

6.根据权利要求5所述的一种基于fpga的整数形状参数伽马分布随机数发生器,其特征在于,所述对数查找表的生成步骤包括:首先通过matlab软件设计一个查找表,生成y=-ln(x)的对数波形数据,量化结果为y/max(y)*216,量化位宽为16位,深度为216,x∈[0,1],间距为216;将产生的对数波形数据存储进rom里面;均匀随机数生成模块生成1个32位均匀随机数y4,截取其16位得到1个16位均匀随机数,重复三次即可得到3个16位的均匀随机数,将均匀随机数的数据输出与对数查找表数据输入连接,得到三个16位的rom ip,命名为rom1,rom2,rom3,分别对应的就是对数查找表1,2,3。

7.根据权利要求6所述的一种基于fpga的整数形状参数伽马分布随机数发生器,其特征在于,所述加法器的输入和输出位宽均为16,将rom1和rom2通过第一加法器add1相加得到一个16位的输出,再由第二加法器add2将rom1+rom2与rom3相加,位宽不变,得到位宽为16的输出rom1+rom2+rom3,即得到最终的16位gamma随机数。


技术总结
本发明公开了一种基于FPGA的整数形状参数伽马分布随机数发生器。包括均匀随机数生成模块和伽马随机数生成模块,其中均匀随机数生成模块包括数据预处理模块、种子生成模块,Convert模块和Mixer模块。伽马随机数生成模块包括对数查找表模块和加法器模块。此伽马分布随机数发生器可以在FPGA上生成符合伽马分布的随机数,并且随机数的质量较好,可以用于杂波生成及仿真。

技术研发人员:浣沙,李衡,杨元嘉,张曼,尚文利,曹忠,胡泽桂,刘佳俊,王清远
受保护的技术使用者:广州大学
技术研发日:
技术公布日:2024/1/16
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1