粒子滤波是上世纪90年代发展起来的一种基于蒙特卡罗方法和递推贝叶斯估计的新滤波方法,在处理非线性、非高斯系统的参数估计和状态滤波方面具有独到的优势。但是其复杂的算法结构、庞大的计算量和缓慢的运算速度限制了其在实时系统中的应用。本文研究的目的是降低粒子滤波算法的复杂度,提高运算速度,设计一种运算速度快、性能可靠、占用硬件资源少的粒子滤波器,使其能应用于目标跟踪等实时系统中。
现场可编程门阵列(FieId Programmable Gate Array,FPGA)是一种硬件逻辑器件,执行真正意义上的并行运算。理论上,一个时钟周期,FPGA能输出一个结果,粒子滤波在FPGA系统中能达到最快运算速度。所以本文选取FPGA作为粒子滤波硬件实现的目标器件。
本文首先介绍了粒子滤波的现状和本文研究的意义。接着详细介绍了粒子滤波基本原理和FPGA的结构特点。然后对SIRF算法的步骤、复杂度、并行性进行深入分析,在此基础上对重采样、权值计算、采样三步进行改进,降低了粒子滤波算法的复杂度,提高了运算速度。并以被动定位系统中目标跟踪为例进行Matlab仿真,验证改进后算法的正确性。然后基于改进后的SIRF算法,在FPGA中设计出高斯随机数生成器、重采样、采样、权值计算各个模块,并进行波形图仿真,验证模块设计的正确性。最后,连接各个模块,在FPGA中实现粒子滤波算法。
本文在FPGA中设计并实现了这种改进的粒子滤波算法。波形图仿真和FPGA资源使用情况报告表明这种算法器具有速度快、占用资源少的特点,能广泛适用于目标跟踪、导航与制导、图像处理、参数估计等实时系统中。