前序
今天跟大家聊一聊博主理解的卡尔曼滤波器。有兴趣看这篇文章的同学大多应该都是做导航定位、多传感器数据融合或者图像识别研究的,所以不再过多赘述卡尔曼滤波器应用的场景,而是以卡尔曼滤波器能解决的实际问题为切入点,解释卡尔曼滤波器。具体地,解释内容分为以下三个部分:
- 什么是卡尔曼滤波
- 什么问题可以用卡尔曼滤波进行处理
- 卡尔曼滤波与统计学
一、什么是卡尔曼滤波
一句话概括:在含有不确定信息的动态系统中,对系统状态的最优估计。
- 不确定信息指向系统的两种不确定:1.系统的状态变量是随机且服从高斯分配的;2.系统存在不确定的外部干扰。
- 系统状态由可以描述系统某种物理意义(例如温度、重量、速度、位置等)的变量组成,可以是单变量系统状态,也可以是多变量状态。在多变量状态中,变量之间可以是相关的也可以是不相关的。
- 最优估计是指求得的状态与系统状态真实值之间的偏离程度最小。估计的过程可以用一句话进行概括:根据当前时刻的仪器测量值和上一个时刻对当前时刻的预测值,计算得到当前时刻的最优量,并依据该最优量预测下一个时刻的值。
从最优估计的过程描述可以知道,卡尔曼滤波需要的数据仅仅是上一个时刻的最优值和当前时刻的测量值,是一种向前的递推,属于IIR滤波器范畴,且计算量和存储量要求都很少,可以进行实时处理,因此非常易于工程实现。
二、什么问题可以用卡尔曼滤波进行处理
卡尔曼滤波应用场景有很多,不再一一列举,大多数网上可查的举例都与相应的场景知识掺杂在一起,不利于初学者快速理解卡尔曼滤波。在这里,博主通过两个简单的例子让大家能够快速了解卡尔曼滤波到底能解决什么样的问题。
例子1:房间温度的研究
我们要研究一个房间的温度,以一分钟为时间单位,根据经验判断,这个房间的温度是恒定的,但是对这种经验我们不可能是完全相信的,可能存在上下几度的偏差,这种偏差是服从高斯分配的白噪声。另外房间里还放了一个温度计,且该温度计也不准确,测量得到的温度与实际值存在偏差。那怎么才能知道房间的实际温度到底是多少呢。利用卡尔曼滤波解决这个问题,对照卡尔曼滤波中最优估计的描述即是:通过预测的温度和温度计测量的温度去估计房间的实际温度。那到底怎么估计呢?我们先把问题放在着,继续往下,待清楚了卡尔曼滤波与统计学后,我们再回过头来解决这个具体的问题。
例子2:汽车行驶状态的研究
我们要研究一辆汽车的行驶状态,即汽车行驶的位置和行驶的速度,在这个例子中,我们设定一个前提,小车位置和速度的方向是确定的,且位置和速度的大小在其定义域内具有正态的高斯分布规律。用如下矩阵来描述我们关注的汽车行驶状态(位置和速度):
上式中,