首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有人能解释和/或发布高级卡尔曼滤波算法的C代码吗?

有人能解释和/或发布高级卡尔曼滤波算法的C代码吗?
EN

Stack Overflow用户
提问于 2010-01-06 12:53:58
回答 1查看 3.4K关注 0票数 6

我需要一个先进的卡尔曼滤波算法的解释。最好是C代码,但只有算法对我有效。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-01-06 12:56:03

卡尔曼滤波器是维纳滤波器的特殊版本。具体地说,卡尔曼滤波器采用关于问题域的信息,并通过应用此域特定知识来增强维纳滤波器。我发现Wikipedia页面是理解算法细节的一个很好的参考来源。

在这里不重复特定的细节(没有线性代数图像函数),卡尔曼滤波器递增地估计未来的状态(就这一点而言,维纳滤波器也是如此)。特别是,我们估计状态,应用问题域特定的噪声估计和状态变化近似,然后迭代。也就是说,我们获取当前状态的观察值,过滤这些观察值,预测下一个状态,然后组合输出以产生一些新的下一个状态观察值。

我发现卡尔曼滤波器对预测运动路径非常有用。由于运动路径是平滑的,卡尔曼滤波器工作得特别好--运动可以很容易地使用过去已知的状态观测来预测。假设你在一辆汽车里沿着道路行驶,你会记录汽车的当前坐标作为当前状态。然后过滤过去的状态观察(您以前的位置),以预测汽车将(在时间上)的下一个点。请注意,您可以应用物理定律(比方说,动量)来定制此过滤器,并得出相当合理的结果。速度或方向的随机变化会对预测产生一些影响。

看一下这个C implementation,你可以看到我们有两个主要的函数来运行卡尔曼滤波器estimateupdate ( wikipedia article谈到了这两个函数,但是调用estimate "predict")。

最终,您将需要为您希望应用卡尔曼滤波器的问题确定一些非常具体的统计信息。特别是,您需要生成/记录/观察有关您观察到的噪声信号的方差如何随时间演变的统计数据。假设您预测的过程也是随机的,因此您还需要估计其统计数据。

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2011030

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档