我试图以计算有效的方式实现卡尔曼滤波器。主要问题是创新残差的倒置:
S=HPH^t+R
K=PH^t*inv(S)
我的问题是,可以假设S矩阵是正定的吗?这将使计算效率更高的反转......
答案 0 :(得分:1)
是的,S是对称肯定,如此处所述,以及如何自动识别:
我发现这个演示文稿引人入胜!
编辑:我做了一些研究,结果发现在实现卡尔曼滤波器时必须非常小心,以保持对称的正定性。关键词:"稳定卡尔曼滤波器" " Josepf形式"。例如,请参阅Linear-Optimal Estimation for Discrete-Time Systems, page 7或Understanding and Applying Kalman Filtering, page 28。
要解决bits_international's comment问题,请参阅了解和应用卡尔曼过滤中的Under what circumstance will a covariance matrix be positive semi-definite rather than positive definite?或第7页。简而言之,除非存在线性,否则它是正定的 组件之间的依赖性。
答案 1 :(得分:0)
降低反转S
成本的另一种方法是使用串行更新。简而言之:预测,然后为H
的每个行重复更新步骤。在这种情况下,HPH'
,R
以及S
都是标量,因此反转S
是微不足道的。如果R
是对角线(通常是这种情况),则不需要任何额外的工作。如果存在非对角线项,则可以将测量值正交化。那里的大部分努力都可以预先计算出来。
几个平方根KF配方依赖于串行更新,因此请查看更多创意。