基于FPGA的Kalman濾波器实现研究.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于FPGA的Kalman濾波器实现研究

基于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技术的不断成熟,其内嵌资源不断丰富,硬核乘法器和块ram的数目不断增长,使得fpga实现复杂的数字信号处理算法变得更为简单和快速。因此,本文对fpga技术和kalman滤波算法进行结合研究,探索kalman滤波算法在fpga中的实现方式并进行性能验证,以对基于fpga的kalman滤波算法的工程实现提供参考。 1kalman滤波算法理论 kalman滤波是在时域内以信号的一、二阶统计特性已知为前提、以均方误差极小为判据,能自动跟踪信号统计性质的非平稳变化,具有递归性质的一种算法。它处理的对象是随机系统,并能正确估计出有用信号。设离散系统差分方程如下:xk+1=φk+1,kxk+tk+1,kuk+γk+1wk zk+1=hk+1xk+1+vk+1则kalman滤波方程组如下: 状态一步预测方程:k+1/k=φk+1,kk/k+tk+1,kuk(1)一步预测均方误差方程:pk+1/k=φk+1,kpk/kφtk+1.k+γk+1,kqkγtk+1,k(2)滤波增益方程:kk+1=pk+1/khtk+1(hk+1pk+1/khtk+1+rk+1)-1(3)状态估值方程: k+1/k+1=k+1/k+kk+1(zk+1-hk+1k+1/k)(4)估计均方误差方程:pk+1/k+1=(i-kk+1hk+1)pk+1/k(i-kk+1hk+1)t +kk+1rk+1ktk+1(5)或pk+1/k+1=(i-kk+1hk+1)pk+1/k(6)从式(1)~(6)可知,若利用传统的处理器实现kalman滤波算法,由于其指令执行的顺序性,至少需要分为5步来实现,其中每一步还都需要进行至少1次的加法和乘法等运算,每次运算都要顺序执行,其执行速度和效率很低;如果利用fpga来进行kalman滤波,根据其各步的逻辑关系,可以分为3步来实现,即第一步计算状态一步预测值k+1/k和一步预测均方误差pk+1/k,第二步计算滤波增益kk+1,第三步计算状态最优估值k+1/k+1和估计均方误差pk+1/k+1。由此可知,利用fpga技术可以实现kalman滤波的并行计算[2],压缩计算时间,提高解算速度。因此,对fpga的kalman滤波进行研究开发,可实现基于fpga的快速kalman滤波解算,满足在对实时性要求更高的环境中使用。 2在fpga中实现kalman滤波算法研究 由于fpga实现kalman滤波[3]解算速度非常快,若利用fpga 的串行口依次输入观测值,由于数据串行输入的特点,会使fpga的解算部分等待数据接收完毕才能执行滤波解算,导致整体的解算时间过长。为检验fpga实现kalman滤波器的计算性能,本文预先将观测值输入并保

文档评论(0)

fglgf11gf21gI + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档