基于FPGA的Kalman滤波器实现研究摘要:卡尔曼(kalman)滤波计算精度和速度是工程应用中是否成功的决定性条件,为进一步提高kalman滤波算法在更复杂的环境下使用的性能,并能够同时满足实时性和精度的要求,采用现场可编程逻辑阵列(fpga)技术,设计了kalman滤波算法在fpga上的实现方案,选择了一种可以同时满足精度和实时性的方案进行实现,对算法中的矩阵相乘、状态机的应用以及资源分时复用等关键技术进行了设计
通过与matlab及dsp的计算结果相对比,验证了在fpga内实现kalman滤波器的优势
关键词:fpga;kalman滤波器;ip核;实时性kalman滤波理论[1]在20世纪60年代一经提出,便得到了军事、控制、通信等领域的极广泛的应用
它可以实现随机干扰下的线性动态系统的最优估计,目前kalman滤波器的实现方式主要有两种,一是在pc机上实现,可以同时满足计算精度和实时性的要求,但是pc机体积大,质量重,成本高;二是通过dsp等芯片来实现,用这种方式实现的kalman滤波器虽然体积小,质量轻,但是因其指令顺序执行的cpu架构,在系统复杂时无法满足系统的实时性要求
随着控制系统的复杂性的提高,系统的阶次变大,如组合导航系统的滤波,其滤波的阶次一般都要18阶,如果对系统进一步细化建模或增加其复杂性,其滤波阶次可以达到几十阶
因此,kalman滤波器在工程应用中的实现遇到了系统体积、重量、成本和系统精度、速度等性能不能兼顾的问题
随着现代电子技术的发展,fpga具有系统结构和逻辑单元灵活、集成度高以及适用范围宽等特点,可以很好地解决这个难题
因为fpga采用的是硬件并行算法,能很好的解决速度和实时性的问题,并且其具有灵活的可配置特性和优良的抗干扰能力,使得fpga构成的数字信号处理系统非常易于修改、测试及硬件升级
随着fpga技术的不断成熟,其内嵌资源不断