![](https://csdnimg.cn/release/download_crawler_static/22691403/bg1.jpg)
3 卡尔曼滤波器的简介
3.1 卡尔曼滤波器的概述
卡尔曼滤波器 由一系列递归数学公式描述,它们提供了一种高效可计算的方法来估计过程的状态,
并使估计均方误差最小。卡尔曼滤波器应用广泛且功能强大,它可以估计信号的过去和当前状态,甚至能
估计将来的状态,即使并不知道模型的确切性质。
假设我们要研究的对象是一个房间的温度。根据你的经验判断,这个房间的温度是恒定的,也就是下
一分钟的温度等于现在这一分钟的温度(假设我们用一分钟来做时间单位)。假设你对你的经验不是 100%
的相信,可能会有上下偏差几度。我们把这些偏差看成是高斯白噪声(White Gaussian Noise),也就是这
些偏差跟前后时间是没有关系的而且符合高斯分配( Gaussian Distribution)。另外,我们在房间里放一
个温度计,但是这个温度计也不准确的,测量值会比实际值偏差。我们也把这些偏差看成是高斯白噪声。
现在对于某一分钟我们有两个有关于该房间的温度值:你根据经验的预测值(系统的预测值)和温度
计的值(测量值)。下面我们要用这两个值结合他们各自的噪声来估算出房间的实际温度值。
假如我们要估算
k
时刻的是实际温度值。首先你要根据
k 1
时刻的温度值,来预测
k
时刻的温度。因
为你相信温度是恒定的,所以你会得到
k
时刻的温度预测值是跟
k 1
时刻一样的,假设是
23
度,同时该
值的高斯噪声的偏差是
5
度(
5
是这样得到的:如果
k 1
时刻估算出的最优温度值的偏差是
3
,你对自己
预测的不确定度是
4
度,他们平方相加再开方,就是
5
)。然后,你从温度计那里得到了
k
时刻的温度值,
假设是
25
度,同时该值的偏差是
4
度。
由于我们用于估算
k
时刻的实际温度有两个温度值,分别是
23
度和
25
度。究竟实际温度是多少呢?
相 信 自 己 还 是 相 信 温 度 计 呢 ? 究 竟 相 信 谁 多 一 点 , 我 们 可 以 用 他 们 的 协 方 差 来 判 断 。 因 为
[4]
Kg
2 5
2 (5
2 4
2)
, 所 以
Kg 0.78
, 我 们 可 以 估 算 出
k
时 刻 的 实 际 温 度 值 是 :
,所以估算
23 0.78 (25 23) 24.56
度。可以看出,因为温度计的协方差比较小(比较相信温度计)
出的最优温度值偏向温度计的值。
现在我们已经得到
k
时刻的最优温度值了,下一步就是要进入
k 1
时刻,进行新的最优估算。到现在
为止,好像还没看到什么自回归的东西出现。对了,在进入
k 1
时刻之前,我们还要算出
k
时刻那个最优
值(
24.56
度)的偏差。算法如下:
((1 Kg) 5 2) 0.5 2.35
。这里的
5
就是上面的
k
时刻你预测的
那个
23
度温度值的偏差,得出的
2.35
就是进入
k 1
时刻以后
k
时刻估算出的最优温度值的偏差(对应于
上面的
3
)。
就是这样,卡尔曼滤波器就不断的把协方差递归,从而估算出最优的温度值。他运行的很快,而且它
只保留了上一时刻的协方差。上面的
Kg
,就是卡尔曼增益(Kalman Gain)。他可以随不同的时刻而改变
他自己的值!
3.2 卡尔曼滤波器的算法