欢迎FPGA工程师加入官方微信技术群
卡尔曼滤波器是一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法。而且由于观测包含系统的噪声和干扰的影响,所以最优估计也可看做是滤波过程。
1 卡尔曼滤波的原理与理解
1.1 预测
假设有一辆小车,其在t时刻的位置为 (假设其在一维直线上运动,则位置可以用数轴上的点表示),速度为
。
因此在t时刻小车的状态可用向量表示为 。
![f57069b5e66e4a9aebbd3e2d0b55d58f.png](https://img-blog.csdnimg.cn/img_convert/f57069b5e66e4a9aebbd3e2d0b55d58f.png)
但是我们并没有捕捉到一切信息,可能存在外部因素会对系统进行控制,带来一些与系统自身状态没有相关性的改变。如汽车司机可能会操纵油门,让汽车加速。
假设由于油门的设置或控制命令,我们知道了期望的加速度为 (加速度理解为外部的控制量),则可由运动学公式从t-1时刻推出其在t时刻的速度与位置如下:
![70fb277d4ca3752187102b6ab91d8ed1.png](https://img-blog.csdnimg.cn/img_convert/70fb277d4ca3752187102b6ab91d8ed1.png)
进一步的可以将其写成向量形式:
![8a0030bb098b2b96434a4a65053057b3.png](https://img-blog.csdnimg.cn/img_convert/8a0030bb098b2b96434a4a65053057b3.png)
即:
![802fb777297979ba9bed1fc81dc59194.png](https://img-blog.csdnimg.cn/img_convert/802fb777297979ba9bed1fc81dc59194.png)
令