CN102542149A - 基于fpga的裂变自举粒子滤波算法的硬件实现方法 - Google Patents

基于fpga的裂变自举粒子滤波算法的硬件实现方法 Download PDF

Info

Publication number
CN102542149A
CN102542149A CN2011103080983A CN201110308098A CN102542149A CN 102542149 A CN102542149 A CN 102542149A CN 2011103080983 A CN2011103080983 A CN 2011103080983A CN 201110308098 A CN201110308098 A CN 201110308098A CN 102542149 A CN102542149 A CN 102542149A
Authority
CN
China
Prior art keywords
weights
unit
particle
sampling
weight
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2011103080983A
Other languages
English (en)
Inventor
朱志宇
李阳
张冰
薄超
王建华
伍雪冬
赵强
万振刚
杨官校
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jiangsu University of Science and Technology
Original Assignee
Jiangsu University of Science and Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Jiangsu University of Science and Technology filed Critical Jiangsu University of Science and Technology
Priority to CN2011103080983A priority Critical patent/CN102542149A/zh
Publication of CN102542149A publication Critical patent/CN102542149A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

本发明基于FPGA的裂变自举粒子滤波算法的硬件实现方法,由采样、权值计算和求和、权值锐化检测、重采样、输出结果、高斯信号发生器、只读ROM和检测控制单元组成;高斯信号发生器用来产生高斯白噪声来初始化粒子和粒子裂变;采用采样单元完成粒子的初始化和更新;采用检测控制单元用于控制采样单元、权值计算和求和单元和输出单元;采用权值计算和求和模块主要用于计算粒子的权值和计算权值和;采用权值锐化检测单元主要用来检测权值锐化程度,如果权值锐化严重则对粒子进行裂变处理,进行裂变处理以后就直接进入采样单元,如果权值锐化程度较弱则进入重采样单元;采用重采样单元主要进行重采样,完成重采样后将粒子送入采样单元进行更新。

Description

基于FPGA的裂变自举粒子滤波算法的硬件实现方法
技术领域
本发明设计了一种应用FPGA实现裂变自举粒子滤波的方法,属非线性系统滤波及电子技术领域。 
背景技术
粒子滤波算法是一种基于贝叶斯采样估计的序列重要采样非线性滤波方法,它采用后验概率密度函数的随机采样点集以及相应的权值来表示状态向量的变化,从而完全突破了卡尔曼滤波理论框架,对系统的过程噪声和量测噪声的形式没有任何限制。粒子滤波算法几乎可以解决任何非线性滤波问题,因此近年来该算法在计算机视觉、自适应估计、语音和图象处理、机器学习、统计学和现代信号处理等领域应用广泛。 
但是粒子滤波算法存在着粒子退化和粒子匮乏两个主要缺陷,影响了算法的性能,为此人们提出了许多改进方法,其中裂变自举粒子滤波(FBPF)算法就是在粒子滤波算法的基础上改进重采样过程,引入了权值锐化检测和“权值排序(Sorting)-裂变繁殖(Fission)-权值归一(Normalizing)”过程(简称SFN预处理过程)。裂变过程实质上是一种随机采样方法,它的样计划不是始终保持不变的,而是根据实验结果不断进行调整,设计出新的采样计划,从而克服了粒子匮乏问题。 
另一方面,粒子滤波算法比较复杂,运算量比较大,从而使得粒子滤波的实时性很差,阻碍了其实际应用。考虑到各粒子的独立性及其操作的并行性,硬件实现不失为提高粒子滤波实时性的有效途径之一。目前,绝大部分粒子滤波文献是关于其理论研究和算法仿真的,而关于其硬件实现的则很少。软件的并行是宏观上并行,微观上交替执行,而硬件的并行才是真正的并行。目前,粒子滤波器在硬件系统上的应用还只是初级阶段,而粒子滤波器从理论、算法研究走向实际应用的过程中,硬件实现是一个关键环节。随着粒子滤波算法的深入研究和嵌入式微处理器技术的发展,使粒子滤波算法的硬件实现成为可能。 
对于粒子滤波的硬件实现,主要有两个方面的研究内容:一是简化粒子滤波算法。粒子滤波算法结构复杂,含有大量乘除、指数运算、三角运算,使得计算量庞大、运算缓慢。如何优化算法,减少乘除、指数运算等非线性运算是研究的一个重要内容;二是算法中各个模块的硬件设计。如何设计运算速度快、性能可靠、占用硬件资源少的各个硬件模块和粒子滤波算法的步骤一一对应,使得这些模块能独立并行完成各自的操作也是粒子滤波硬件实现研究的一个重要内容。采用一种在减少硬件复杂度、提高运算速度的同时,保持滤波性能的有效机制是粒子滤波硬件实现的关键点。研究粒子滤波信号处理技术和粒子滤波算法的复杂度,设计一种与硬件合理结合的粒子滤波器有着极其重要的理论和现实意义。 
发明内容
粒子滤波算法主要分为采样、权值计算和重采样三个阶段,应用硬件实现粒子滤波算法时,这三个阶段可以流水执行,并且前两个阶段中各个粒子运算相互独立,因此可以并行计算,而重采样需要考虑所有粒子的似然分布,只有待全部粒子的权值计算完成后,才能进行,如何简化重采样算法,减弱粒子间的相互联系,使得重采样过程能和前面两步并行执行,将是粒子滤波算法硬件实现研究的难点。本发明针对现有技术存在的缺陷提出了一种基于FPGA的裂变自举粒子滤波算法的硬件实现方法。 
本发明基于FPGA的裂变自举粒子滤波算法的硬件实现方法,由采样、权值计算和求和、权值锐化检测、重采样、输出结果、高斯信号发生器、只读ROM和检测控制八个单元组成;其中高斯信号发生器用来产生高斯白噪声来初始化粒子和粒子裂变;采样单元完成粒子的初始化和更新;检测控制单元用于控制采样单元、权值计算和求和单元和输出单元;权值计算和求和模块用于计算粒子的权值和计算权值和;权值锐化检测单元主要用来检测权值锐化程度,如果权值锐化严重则对粒子进行裂变处理,进行裂变处理以后就直接进入采样单元,如果权值锐化程度较弱则进入重采样单元;采用重采样单元主要进行重采样,首先按粒子权值从大到小进行排列,将大权值的粒子进行裂变,然后覆盖后面小权值的十个粒子,完成重采样后将粒子送入采样单元进行更新。 
所述高斯信号发生器由均匀随机数发生模块、地址产生模块、双端口RAM、正交转换模块和平方和修正模块组成: 
(1)均匀随机数发生模块 
均匀随机数发生模块首先对三个随机数进行异或运算,然后利用三个线性反馈移位寄存器(LFSR)对三个随机数的异或运算结果进行移位,从而得到随机序列,输出的均匀随机变量 
Figure BDA0000097739410000021
其中si(i=1,2,3)分别为三个LFSR的输出, 
Figure BDA0000097739410000022
且都是32bit的无符号数,常数mi、ni、ki、wi可由Tausworthe算法计算获得,其中s1,s2,s3初始值为整数,应满足s1≥2,s2≥8,s3≥16; 
(2)地址产生模块 
本发明中每次输出四个高斯白噪声信号,因此正交变换每次需要四个变量,于是地址产生模块在每个时钟周期必须提供四个独立的地址,分别为p、q、r、s;存储到双端口RAM中的数据长度是1024,所以选择地址长度为10bit,具体算法如下: 
①三个10bit变量,first,second和third,并分别按下式计算: 
first=s[31:22];second={s[21:13],1’b1};third=s[12:3]。 
其中first,second和third是3个10bit初始变量,s表示均匀运算; 
②四个地址变量可通过下式计算得到: 
Figure BDA0000097739410000023
q = ( first + sec ond ) ⊕ third ; r = ( first + sec ond × 2 ) ⊕ third ; s = ( first + sec ond × 3 ) ⊕ third ; 其中first,second和third是3个10bit初始变量,p、q、r、s表示由上述运算得到的四个地址; 
(3)双端口RAM 
选用两块这样的双输入双输出可读写式块状双端口RAM;双端口RAM中的数据是通过Matlab生成的1024个服从标准正态分布的随机数,且通过归一化使其平方和为1,此数据是在IP核生成双输入双输出可读写式块状双端口RAM时预先存入双端口RAM中; 
(4)正交转换模块 
本模块实现正交变换Y=AiX(i=1,2,3,4),减少高斯随机数变量之间的相关性,其中X=(x1+x2+x3+x4)/2,变量x1,x2,x3,x4服从N(0,1)的; 
A 1 = 1 2 1 1 - 1 1 1 - 1 1 1 1 - 1 - 1 - 1 - 1 - 1 - 1 1 , A 2 = 1 2 1 - 1 - 1 - 1 1 - 1 1 1 1 1 - 1 1 - 1 - 1 - 1 1 ,
A 3 = 1 2 1 - 1 1 1 - 1 - 1 1 - 1 - 1 - 1 - 1 1 - 1 1 1 1 , A 4 = 1 2 - 1 1 - 1 - 1 - 1 - 1 1 - 1 - 1 1 1 1 1 1 1 - 1 ;
(5)平方和修正模块 
根据Wallace算法,对正交变换产生的归一化高斯变量进行平方和修正,从而得到需要的高斯白噪声。 
本发明以裂变自举粒子滤波算法为例,对该算法的复杂度、实时性等进行了分析和研究。针对裂变自举粒子滤波算法运算量大、实时性差和裂变条件难以判定等缺点,提出了改进的裂变自举粒子滤波算法,将裂变条件的选择进一步细分,并且将权值归一化步骤合并到结果输出、权值锐化检测和重采样等几个步骤中,从而减少大量的除法运算和降低了硬件的开销。 
根据粒子滤波运算量大的特点,选择现场可编程门阵列器件(FPGA)来硬件实现改进的裂变自举粒子滤波算法。选用现场可编程门阵列器件实现粒子滤波算法时采用自上而下的设计方法,分别设计了高斯信号发生器模块和粒子滤波模块,并进行波形图仿真来验证模块设计的正确性,最后将各模块连接起来实现粒子滤波算法,不仅增加了粒子多样性,有效防止粒子退化现象,改善滤波精度,而且能提高算法的实时性和鲁棒性。 
附图说明
图1:基于FPGA实现的改进FBPF算法框图; 
图2:Wallace算法结构图; 
图3:硬件实现的高斯发生器结构图。 
具体实施方式
下面结合附图对本发明的实施例做详细的说明。 
本发明选用的FPGA为Xilinx公司生产的Xilinx virtex2xc2v8000。800万门,168个18bit*18bit的乘法器,168个18kbit块状RAM,1456kbit分布式RAM,12个DCM控制器,1108个I/O引脚,内部时钟最高可倍频到420MHz。选用的开发软件是Xilinx公司专门为其自身FPGA设计的集成综合环境(ISE),它是Xilinx FPGA/CPLD的综合性集成设计平台,该平台集成了从设计、仿真、逻辑综合、布局布线与实现、时序分析、芯片下载与配置、功率分析等几乎所有设计流程所需工具。利用ISE集成的工具可以完成整个FPGA/CPLD的开发过程。 
如图1所示本发明采用流水线结构实现改进的FBPF算法,框图中主要由采样、权值计算和求和、权值锐化检测、重采样、输出结果、高斯信号发生器、只读ROM和检测控制八个单元组成。其中,xk代表k时刻采样的粒子值; 
Figure DEST_PATH_GDA0000131076920000035
代表裂变后k时刻的粒子值; 
Figure DEST_PATH_GDA0000131076920000036
代表重采样后k时刻的粒子值;wk代表初始化时归一化的权值; 
Figure DEST_PATH_GDA0000131076920000037
代表重采样前k时刻非归一 化的权值; 
Figure DEST_PATH_GDA0000131076920000041
代表裂变后k时刻非归一化的权值; 
Figure DEST_PATH_GDA0000131076920000042
代表重采样后k时刻非归一化的权值; 
Figure DEST_PATH_GDA0000131076920000043
代表有效样本容量;Nth代表有效样本容量门限;Sk代表k时刻的权值和;yk代表k时刻的量测值;en代表k时刻的使能信号。通过一个检测控制单元来分别控制采样单元、权值计算和求和单元以及输出结果部分,其余单元的使能信号是由其上一单元级发送的。 
高斯信号发生器主要用来产生高斯白噪声来初始化粒子和粒子裂变。 
采样单元主要完成粒子的初始化和更新。在初始化过程中,采样单元接收高斯信号发生器输出高斯白噪声,用来对粒子进行初始化,每一个时钟周期可以初始化四个粒子。经过初始化或更新的粒子被送到权值计算和求和单元,其中粒子初始化或更新与权值计算和求和是同时进行的,即在一个时钟周期内完成了粒子初始化或更新以及权值计算和求和,这充分体现了FPGA的运行并行性。 
检测控制单元主要用于控制采样单元、权值计算和求和单元和输出单元。通过检测采样单元中的参数来分别对采样单元、权值计算和求和单元和输出单元进行使能控制。 
权值计算和求和模块主要用于计算粒子的权值和计算权值和。采样模块将每个粒子更新并传送给权值计算和求和模块,权值计算和求和模块通过量测方程计算出每个粒子的量测值,通过量测值与只读ROM中存储的数据来计算权值,在计算权值的同时将权值累加求和。在权值求和过程中要用到指数运算,此函数的设计比较复杂,计算周期比较长,函数程序的执行效率直接影响粒子滤波效果,所以本发明选用Xilinx公司提供的IP核来实现指数运算。采用IP核的好处就是高效便捷,既能提高可靠性,又能节省大量时间。本文对指数函数的计算选用的是ISE提供的基于坐标旋转数字式计算(CORDIC)IP核。 
权值锐化检测单元主要用来检测权值锐化程度,如果权值锐化严重则对粒子进行裂变处理,进行裂变处理以后就直接进入采样单元;如果权值锐化程度较弱则进入重采样单元。 
重采样单元主要进行重采样,将权值较大的粒子进行复制,舍去权值较小的粒子,完成重采样后将粒子送入采样单元进行更新。 
本发明采用的数据是定点数补码表示,格式为Q格式。XQN格式里Q代表二进制实数中小数点的位置,X代表二进制实数中整数的位置和位宽,N代表二进制实数中小数的位置和位宽,最高位为符号位。Q格式的表示范围为-2X:(2X-2-N),数据精度1/2N,本发明中的数据格式如表1所示。 
表1本发明中的数据格式 
Figure BDA0000097739410000044
如表1所示,本发明中具体的存储空间分配如下:观测值通过建立IP核事先存储在一个16*1024bit的只读块状RAM中,粒子存储在一个16*52bit的可读写分布式RAM中,权值存储在一个16*52bit的可读写分布式RAM中,权值和存储在一个17bit的寄存器中。另外在粒子初始化和粒子裂变中需要一个高斯信号发生器来产生高斯信号,本发明选用了一个四输出的高斯信号发生器,此高斯信号发生器内部需要四个16*1024bit的可读写块状RAM。本文中粒子数选取为52。 
高斯信号发生器的设计 
在通信和控制系统中,高斯噪声是很常见的噪声信号,因此需要高斯噪声信号源测试和检测系统的抗干扰性。所以,设计一个性能良好、结构简单可靠的高斯信号发生器具有 重要意义。 
1.高斯信号发生器的原理介绍 
本发明基于Wallace算法来实现高斯信号发生器。Wallace算法的结构图如图2所示。正态分布存在可加性,若x1...xN是相互独立的正态随机变量,且服从 
Figure BDA0000097739410000051
分布,则∑xi:N(μ,σ2),其中μ=∑μk, 
Figure BDA0000097739410000052
Wallace算法利用这个性质,取四个服从N(0,1)的变量x1,x2,x3,x4,定义X=(x1+x2+x3+x4)/2,则X:N(0,1),且其平方和服从χ2分布。 
利用正态分布的这种性质,Wallace算法将N=K*L个(K为每次输出向量的维数,L为输出K维向量的次数)服从单位正态分布的原变量进行归一化,使其平方和为1,将这四个变量看成一个向量X4,通过正交变换Y4=AX4(A为正交矩阵),得到一个新的服从正态分布的四维向量Y4;最后对新得到的N个变量进行一次平方和修正,通过一个缩放因子G使变量的平方和服从χ2分布,从而得到N个新的近似服从标准正态分布的高斯采样值。 
2.高斯信号发生器的硬件实现 
硬件实现的高斯信号发生器结构图如图3所示。 
本发明中高斯信号发生器主要由均匀随机数发生模块、地址产生模块、双端口RAM、正交转换模块和平方和修正模块组成。 
(1)均匀随机数发生模块 
均匀随机数发生模块首先对三个随机数进行异或运算,然后利用三个线性反馈移位寄存器(LFSR)对三个随机数的异或运算结果进行移位,从而得到统计性较好的随机序列,每个时钟生成一个32bit的均匀分布的随机数,序列周期约为288。 
输出的均匀随机变量 
Figure BDA0000097739410000053
其中si(i=1,2,3)分别为三个LFSR的输出, 
Figure BDA0000097739410000054
且都是32bit的无符号数。常数mi、ni、ki、wi可由Tausworthe算法计算获得。其中s1,s2,s3初始值为整数,应满足s1≥2,s2≥8,s3≥16。在本文中mi=4294967294,ni=12,ki=13,wi=19,s1=2,s2=8,s3=16。 
(2)地址产生模块 
本发明中每次输出四个高斯白噪声信号,因此正交变换每次需要四个变量,于是地址产生模块在每个时钟周期必须提供四个独立的地址,分别为p、q、r、s。本发明中存储到双端口RAM中的数据长度是1024,所以选择地址长度为10bit。它们不仅为正交变换的输入量提供了地址,而且还为正交变换的输出量提供了地址,具体算法如下: 
①定义三个10bit变量,first,second和third,并分别按下式计算: 
first=s[31:22];second={s[21:13],1’b1};third=s[12:3]。 
②四个地址变量可通过下式计算得到: 
Figure BDA0000097739410000055
q = ( first + sec ond ) ⊕ third ; r = ( first + sec ond × 2 ) ⊕ third ; s = ( first + sec ond × 3 ) ⊕ third .
(3)双端口RAM 
本发明中双端口RAM是通过IP核生成的双输入双输出可读写式块状双端口RAM,一个这样双端口RAM的存储容量是16*1024*2。因为本设计中一次输出的高斯白噪声是四个变量,所以选用两块这样的双输入双输出可读写式块状双端口RAM。双端口RAM中的数据是通过Matlab生成的1024个服从标准正态分布的随机数,且通过归一化使其平方和为1,此数据是在IP核生成双输入双输出可读写式块状双端口RAM时预先存入双端口RAM中。 
(4)正交转换模块 
本模块实现正交变换Y=AiX(i=1,2,3,4),减少高斯随机数变量之间的相关性。 
Wallace算法在K=4时,给出了四个正交矩阵A1,A2,A3和A4来完成正交变换, 
A 1 = 1 2 1 1 - 1 1 1 - 1 1 1 1 - 1 - 1 - 1 - 1 - 1 - 1 1 , A 2 = 1 2 1 - 1 - 1 - 1 1 - 1 1 1 1 1 - 1 1 - 1 - 1 - 1 1 ,
A 3 = 1 2 1 - 1 1 1 - 1 - 1 1 - 1 - 1 - 1 - 1 1 - 1 1 1 1 , A 4 = 1 2 - 1 1 - 1 - 1 - 1 - 1 1 - 1 - 1 1 1 1 1 1 1 - 1 .
硬件上实现这四个矩阵的乘法比较简单。本发明中称每得到1024个新变量的过程为“一轮”。为了减少各个高斯变量之间的相关性,每经过“一轮”则使用不同的正交变换矩阵。在粒子滤波算法中对高斯变量要求较高的是粒子初始化步骤,本文中选用的粒子数是52远远小于1024,所以没有在每“一轮”过后更换正交变换矩阵,一直使用的是A1正交变换矩阵。 
(5)平方和修正模块 
本模块根据Wallace算法,对正交变换产生的归一化高斯变量进行平方和修正,从而得到需要的高斯白噪声。理论上,若随机数x服从标准正态分布N(0,1),定义修正值G=A+Bx(A,B为常数),则G的平方和服从χ2分布。在本模块中每“一轮”中都选用同样的修正值G,该值由这“一轮”的第一个输出值x计算得到。本轮归一化变量乘以本轮修正值G就得到一个近似服从正态分布的随机序列,即要得到的高斯白噪声。 
根据Wallace算法A=(1-1/N)1/4,B=(1-A2)1/2;G的初始值为(1/N)1/2,本发明中N=1024。 
改进的FBPF算法模块设计 
用MATLAB生成量测数据。量测数据在块状RAM中存储的格式是5Q10,所以在MATLAB中要将量测数据扩大1024倍,然后将扩大1024倍的量测数据存储到后缀名为.txt的文件,在后缀名为.txt的文件中对量测数据进行修改,在数据最前方加入注释memory_initialization_radix=10;memory_initialization_vector=,并使每个数据之间以逗号相间隔,以分号为结尾。最后将后缀名为.txt的文件的后缀名更改为.coe。在编写FPGA程 序时调用IP核生成器,生成一个块状RAM,并将后缀名为.coe的文件存储于块状RAM中。 
采样单元首先对粒子进行初始化,一个时钟初始化的粒子数是4个,粒子初始化经过一个时钟周期后,检测控制单元便发送使能信号给权值计算和求和单元,使其对粒子权值 进行计算,并将一个周期内的权值进行累加。权值计算需要用到CORDIC IP核,计算一次指数函数exp()需要19个时钟周期。当检测控制单元检测到52个粒子初始化完毕时,便发送终止信号给采样单元使其停止初始化。当检测控制单元检测到52个粒子权值计算和求和完毕时,便发送使能信号给输出结果单元使其计算输出结果。权值计算和求和单元计算完52个粒子的权值、权值和时便发送使能信号给权值锐化检测单元,权值锐化检测单元使能后便开始进行权值锐化程度检测,当权值锐化严重时( 
Figure DEST_PATH_GDA0000131076920000071
其中Nth表示有效样本容量,取Nth=40)便开始裂变,来增加粒子的多样性,当权值锐化较轻时 便发送使能信号给重采样单元对粒子进行重采样。在重采样单元中对粒子进行重采样,即用权值较大的粒子覆盖权值较小的粒子。在重采样单元中当第一个粒子完成重采样后便发送使能信号给采样单元,采样单元便开始对其粒子进行更新,滤波程序如此反复循环。在本实验中采用的是补码一位乘法算法,可以在一个时钟周期里算出16*16bit的结果。 
设计完成后,使用ISE工具进行综合、实现,生成可下载的配置FPGA的流文件。 

Claims (2)

1.一种基于FPGA的裂变自举粒子滤波算法的硬件实现方法,其特征在于由采样、权值计算和求和、权值锐化检测、重采样、输出结果、高斯信号发生器、只读ROM和检测控制八个单元组成;其中高斯信号发生器用来产生高斯白噪声来初始化粒子和粒子裂变;采用采样单元完成粒子的初始化和更新;采用检测控制单元控制采样单元、权值计算和求和单元和输出单元;权值计算和求和模块主要用于计算粒子的权值和计算权值和;权值锐化检测单元主要用来检测权值锐化程度,如果权值锐化严重则对粒子进行裂变处理,进行裂变处理以后就直接进入采样单元,如果权值锐化程度较弱则进入重采样单元;采用重采样单元进行重采样,首先按粒子权值从大到小进行排列,将大权值的粒子进行裂变,然后覆盖后面小权值的十个粒子,完成重采样后将粒子送入采样单元进行更新。
2.根据权利要求1所述的基于FPGA的裂变自举粒子滤波算法的硬件实现方法,其特征在于所述高斯信号发生器由均匀随机数发生模块、地址产生模块、双端口RAM、正交转换模块和平方和修正模块组成:
(1)均匀随机数发生模块
均匀随机数发生模块首先对三个随机数进行异或运算,然后利用三个线性反馈移位寄存器(LFSR)对三个随机数的异或运算结果进行移位,从而得到随机序列,输出的均匀随机变量
Figure FDA0000097739400000011
其中si(i=1,2,3)分别为三个LFSR的输出,
Figure FDA0000097739400000012
且都是32bit的无符号数,常数mi、ni、ki、wi可由Tausworthe算法计算获得,其中s1,s2,s3初始值为整数,应满足s1≥2,s2≥8,s3≥16;
(2)地址产生模块
本发明中每次输出四个高斯白噪声信号,因此正交变换每次需要四个变量,于是地址产生模块在每个时钟周期必须提供四个独立的地址,分别为p、q、r、s;存储到双端口RAM中的数据长度是1024,所以选择地址长度为10bit,具体算法如下:
①三个10bit变量,first,second和third,并分别按下式计算:
first=s[31:22];second={s[21:13],1’b1};third=s[12:3]。
其中first,second和third是3个10bit初始变量,s表示均匀运算;
②四个地址变量可通过下式计算得到: q = ( first + sec ond ) ⊕ third ; r = ( first + sec ond × 2 ) ⊕ third ; s = ( first + sec ond × 3 ) ⊕ third ; 其中first,second和third是3个10bit初始变量,p、q、r、s表示由上述运算得到的四个地址;
(3)双端口RAM
选用两块这样的双输入双输出可读写式块状双端口RAM;双端口RAM中的数据是通过Matlab生成的1024个服从标准正态分布的随机数,且通过归一化使其平方和为1,此数据是在IP核生成双输入双输出可读写式块状双端口RAM时预先存入双端口RAM中;
(4)正交转换模块
本模块实现正交变换Y=AiX(i=1,2,3,4),减少高斯随机数变量之间的相关性,其中X=(x1+x2+x3+x4)/2,变量x1,x2,x3,x4服从N(0,1)的;
A 1 = 1 2 1 1 - 1 1 1 - 1 1 1 1 - 1 - 1 - 1 - 1 - 1 - 1 1 , A 2 = 1 2 1 - 1 - 1 - 1 1 - 1 1 1 1 1 - 1 1 - 1 - 1 - 1 1 ,
A 3 = 1 2 1 - 1 1 1 - 1 - 1 1 - 1 - 1 - 1 - 1 1 - 1 1 1 1 , A 4 = 1 2 - 1 1 - 1 - 1 - 1 - 1 1 - 1 - 1 1 1 1 1 1 1 - 1 ;
(5)平方和修正模块
根据Wallace算法,对正交变换产生的归一化高斯变量进行平方和修正,从而得到需要的高斯白噪声。
CN2011103080983A 2011-10-11 2011-10-11 基于fpga的裂变自举粒子滤波算法的硬件实现方法 Pending CN102542149A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2011103080983A CN102542149A (zh) 2011-10-11 2011-10-11 基于fpga的裂变自举粒子滤波算法的硬件实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011103080983A CN102542149A (zh) 2011-10-11 2011-10-11 基于fpga的裂变自举粒子滤波算法的硬件实现方法

Publications (1)

Publication Number Publication Date
CN102542149A true CN102542149A (zh) 2012-07-04

Family

ID=46349023

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011103080983A Pending CN102542149A (zh) 2011-10-11 2011-10-11 基于fpga的裂变自举粒子滤波算法的硬件实现方法

Country Status (1)

Country Link
CN (1) CN102542149A (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102855118A (zh) * 2012-08-10 2013-01-02 上海交通大学 一种随机数生成方法及装置
CN103065330A (zh) * 2013-01-15 2013-04-24 南京师范大学 基于流水线并行处理技术的粒子滤波目标跟踪方法及装置
CN104009733A (zh) * 2014-05-19 2014-08-27 江苏科技大学 基于fpga的样本重要性重采样粒子滤波器的硬件实现方法
CN104320106A (zh) * 2014-09-16 2015-01-28 江苏科技大学 基于fpga的高斯粒子滤波硬件实现方法
CN104536015A (zh) * 2014-12-09 2015-04-22 沈阳航空航天大学 一种粒子滤波raim方法的fpga实现方法
CN105958945A (zh) * 2016-04-27 2016-09-21 深圳康奥兴业科技有限公司 一种高斯白噪声信号源的产生方法及装置
CN108390648A (zh) * 2018-01-16 2018-08-10 四川安迪科技实业有限公司 一种基于fpga的高斯白噪声发生器
CN111930094A (zh) * 2020-07-13 2020-11-13 北京航空航天大学 一种基于扩展卡尔曼滤波的无人机执行机构故障诊断方法
CN112241253A (zh) * 2019-07-17 2021-01-19 富士通株式会社 随机数生成装置和随机数生成方法
CN112732637A (zh) * 2021-01-22 2021-04-30 湖南师范大学 一种基于贝叶斯重采样的粒子滤波的fpga硬件实现方法、装置及目标跟踪方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1881116A (zh) * 2006-04-19 2006-12-20 中国传媒大学信息工程学院 遗传粒子重采样、遗传粒子滤波器及其分布式实现方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1881116A (zh) * 2006-04-19 2006-12-20 中国传媒大学信息工程学院 遗传粒子重采样、遗传粒子滤波器及其分布式实现方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
冯永新等: "噪声调频信号发生器的研究与设计", 《火力与指挥控制》, vol. 35, no. 01, 31 January 2010 (2010-01-31), pages 35 - 38 *
洪少华等: "用于纯方位跟踪的简化粒子滤波算法及其硬件实现", 《电子与信息学报》, vol. 31, no. 01, 15 January 2009 (2009-01-15), pages 96 - 99 *
程水英等: "裂变自举粒子滤波", 《电子学报》, vol. 36, no. 03, 15 March 2008 (2008-03-15), pages 500 - 504 *

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102855118B (zh) * 2012-08-10 2016-03-30 上海交通大学 一种随机数生成方法及装置
CN102855118A (zh) * 2012-08-10 2013-01-02 上海交通大学 一种随机数生成方法及装置
CN103065330A (zh) * 2013-01-15 2013-04-24 南京师范大学 基于流水线并行处理技术的粒子滤波目标跟踪方法及装置
CN104009733A (zh) * 2014-05-19 2014-08-27 江苏科技大学 基于fpga的样本重要性重采样粒子滤波器的硬件实现方法
CN104009733B (zh) * 2014-05-19 2017-02-15 江苏科技大学 基于fpga的样本重要性重采样粒子滤波器的硬件实现方法
CN104320106B (zh) * 2014-09-16 2017-06-23 江苏科技大学 基于fpga的高斯粒子滤波硬件实现方法
CN104320106A (zh) * 2014-09-16 2015-01-28 江苏科技大学 基于fpga的高斯粒子滤波硬件实现方法
CN104536015A (zh) * 2014-12-09 2015-04-22 沈阳航空航天大学 一种粒子滤波raim方法的fpga实现方法
CN104536015B (zh) * 2014-12-09 2017-04-19 沈阳航空航天大学 一种粒子滤波raim方法的fpga实现方法
CN105958945A (zh) * 2016-04-27 2016-09-21 深圳康奥兴业科技有限公司 一种高斯白噪声信号源的产生方法及装置
CN108390648A (zh) * 2018-01-16 2018-08-10 四川安迪科技实业有限公司 一种基于fpga的高斯白噪声发生器
CN112241253A (zh) * 2019-07-17 2021-01-19 富士通株式会社 随机数生成装置和随机数生成方法
CN111930094A (zh) * 2020-07-13 2020-11-13 北京航空航天大学 一种基于扩展卡尔曼滤波的无人机执行机构故障诊断方法
CN112732637A (zh) * 2021-01-22 2021-04-30 湖南师范大学 一种基于贝叶斯重采样的粒子滤波的fpga硬件实现方法、装置及目标跟踪方法
CN112732637B (zh) * 2021-01-22 2022-03-25 湖南师范大学 一种基于贝叶斯重采样的粒子滤波的fpga硬件实现方法、装置及目标跟踪方法

Similar Documents

Publication Publication Date Title
CN102542149A (zh) 基于fpga的裂变自举粒子滤波算法的硬件实现方法
Göddeke et al. Performance and accuracy of hardware-oriented native-, emulated-and mixed-precision solvers in FEM simulations
Qiqieh et al. Significance-driven logic compression for energy-efficient multiplier design
Wang et al. Benchmarks and performance analysis of decimal floating-point applications
Zuo et al. A polyhedral-based systemc modeling and generation framework for effective low-power design space exploration
CN104615808A (zh) 一种待测试硬件运算部件的测试方法及参考模型装置
Montero et al. Template-based posit multiplication for training and inferring in neural networks
Tsoutsouras et al. The Laplace microarchitecture for tracking data uncertainty and its implementation in a RISC-V processor
Ahmadi-Pour et al. MircoRV32: an open source RISC-V cross-level platform for education and research
Galicia et al. Neurovp: A system-level virtual platform for integration of neuromorphic accelerators
CN105653785A (zh) 一种雷达杂波模拟方法、装置及系统
Popoff et al. High-efficiency logarithmic number unit design based on an improved cotransformation scheme
CN106385311A (zh) 一种基于fpga的复混沌简化系统的混沌信号发生器
Zhong et al. RTL-aware cycle-accurate functional power estimation
Singh et al. FPGA-based hardware-accelerated design of linear prediction analysis for real-time speech signal
Poplawski Synthetic models of distributed-memory parallel programs
Ascia et al. An instruction-level power analysis model with data dependency
CN1996235A (zh) 一种浮点复数乘法器
CN117077603B (zh) 一种验证方法、芯片、系统、电子设备及可读存储介质
Allugundu et al. Acceleration of distance-to-default with hardware-software co-design
Murillo et al. Generating Posit-Based Accelerators With High-Level Synthesis
Pedersen RISC-V Processor Core Customization and Verification for m-NLP Applications
Uguen High-level synthesis and arithmetic optimizations
Abdel-Haleem et al. TLM virtual platform for fast and accurate power estimation
ERTURAL et al. SENIOR DESIGN PROJECT

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20120704