基于FPGA的高斯噪声发生器的设计

2017-11-28 07:35朱鹏夏际金
山东工业技术 2017年23期
关键词:插值

朱鹏 夏际金

摘 要:高斯噪声的产生作为一个系统的小模块,需要有速度快、占用资源小、精度高等特殊要求,本文采用FPGA生成高斯噪声,首先使用m序列发生器产生均匀的随机分布的噪声,然后利用均匀分布和高斯分布之间的映射函数关系,采用线性插值拟合出一次曲线,进而产生高斯噪声。实验证明该方法完全满足工程需要。

关键词:FPGA;均匀分布;高斯噪声;插值

DOI:10.16640/j.cnki.37-1222/t.2017.23.085

0 引言

在雷达领域,需产生一个模拟目标来进行系统仿真验证,为了尽可能模拟真实目标,需要在模拟目标中添加高斯噪声。传统的高斯噪声在DSP软件系统中生成,生成的高斯噪声周期有限,影响系统后处理。考虑到硬件资源少、精度高、速度快等特点,本文采用FPGA生成高斯噪声,可移植性强。

1 算法介绍

高斯噪声与均匀噪声有一定的映射关系,通过映射关系采用分段线性拟合方式,可以求解出高斯噪声。由高斯噪声和均匀噪声对应曲线可知,对应曲线在[0,0.5]和[0.5,1]是对称关系,且随着高斯噪声绝对值增大,对应的斜率也逐渐增大。如果按照映射关系对应的函数进行计算,含有超越函数、运算量大且不易工程实践。如果对均匀噪声采用线性拟合,那么高斯噪声绝对值越高,误差越大[1]。所以需要对均匀噪声采用分段线性拟合,在高斯噪声绝对值高的地方,减少拟合区间,提高拟合精度。

2 实现方法

工程实践方案是使用m序列发生器产生均匀的随机分布,这里为了减少m序列之间的相关性,采用多个m序列发生器并行工作,经非相干化处理生成32位的均匀分布噪声,经过比较器,落在相应的插值区间,最后拟合出高斯分布的噪声[2]。

2.1 均匀分布的噪声产生

M序列是由带线性反馈的移位寄存器产生的周期最长的序列。M序列的每一个状态可以看成对应一个随机噪声。当m序列使用n级寄存器时,对应的周期最大为2n-1。M序列前后输出具有较强的相关性,为了减少均匀噪声序列的相关性,可以采取L个m序列产生器并行工作,不同时刻采用不同的m序列产生器产生均匀噪声[3]。一般取L≥6, n≥20。本文使用的L=6,n=32;理论上产生此序列的长度为232-1。

2.2 高斯噪声的产生

高斯噪声与均匀噪声的映射关系可以用函数来表示:

其中x表示均匀分布的随机变量,y表示高斯随机变量。采用斜率不同的折线来逼近关系曲线。在[0.5,1]段通过Matlab产生15段的折线,其中对Y轴的高斯分布值进行[0,5]区间等间隔均匀分割,得到的起点折线坐标(x1,y1)…(x15,y15)和对应的斜率(k1,…k15)。

32阶M序列发生器产生的伪随机数作为高斯噪声转换的X轴值。该值经过量化之后会落在[0,1]区间内。考虑到均匀噪声和高斯噪声关于(0.5,0)对称。在[0,0.5]区间内的值进行取反操作,就可得到[0.5,1]对应的区间值,最后在[0.5,1]拟合出该值。

3 实验结果

本文在Altera公司的EP4SGX360芯片上实现该设计,高斯取值范围[-5,5],均值0,方差1 的高斯噪声。使用Modelsim仿真产生10000个点的噪声值,并将10000点结果导入matlab里绘制直方图如图1所示,可见生成的噪声序列密度符合高斯分布,达到设计要求。

4 结束语

基于分段插值的方法产生高斯噪声精度高,而且占用的FPGA资源比常规方法少,是FPGA产生高斯噪声的一种非常有效的方法,并且易于工程实现。

参考文献:

[1]肖沛,林季资.一种伪随机数组合发生器的研究.数理醫药学杂志,2009(02):315-320.

[2]束礼宝,宋克柱,王砚方.伪随机数发生器的FPGA实现与研究[J].电路与系统学报,2003,8(03):121-124.

[3]曾祥能,张永顺.基于改进M序列的数字噪声源设计及其FPGA实现[J].电视技术,2008,1(48):3.endprint

猜你喜欢
插值
无定河流域降水量空间插值方法比较研究
基于随机森林回归的围岩应力插值方法
福州市PM2.5浓度分布的空间插值方法比较
关于Lagrange插值公式教学的体会
不同空间特征下插值精度及变化规律研究
基于混合并行的Kriging插值算法研究