算法:数据融合datafusion
本文目的
结合例子,介绍一个简单的,线性系统下的data fusion,也就是数据融合。对于理解高维数据的数据融合,卡尔曼具有一定的意义。
前置知识点
- 基本概率论知识
一维情况下的例子
一维空间下,有一个物体k时刻位置为
s
k
s_k
sk,两个有误差的GPS分别对他进行观测,想要尽可能准确的得到物体位置。
系统状态为:
x
⃗
k
=
[
s
k
]
\vec{x}_k=\begin{bmatrix} s_k\end{bmatrix}
xk=[sk]
- 前提
- 两个GPS读数都是 s k s_k sk的无偏估计
- 两个GPS读数的噪声相互独立。
MEA是测量值的意思,在这里MEA1代表第一个GPS,MEA2代表第二个GPS,k代表k时刻测量值
观测求解
1. 理想观测模型
如果GPS无误差,无噪声的情况下观测数据就是位置真实值,此时根本只需要一个GPS就能得到物体的位置。
z
k
M
E
A
1
=
z
k
M
E
A
2
=
s
k
z^{MEA1}_k = z^{MEA2}_k = s_k
zkMEA1=zkMEA2=sk
2. 实际观测模型
事实上GPS有误差,假设两个GPS分别的误差如下
- 第一个gps的误差是 σ 1 = 3 \sigma_1 = 3 σ1=3,观测数据 z k M E A 1 ∼ N ( s k , σ 1 2 ) z^{MEA1}_k\sim N(s_k,{\sigma_1}^2) zkMEA1∼N(sk,σ12)
- 第二个gps的误差是 σ 2 = 5 \sigma_2 = 5 σ2=5,观测数据 z k M E A 2 ∼ N ( s k , σ 2 2 ) z^{MEA2}_k\sim N(s_k,{\sigma_2}^2) zkMEA2∼N(sk,σ22)
3. 数据融合提高精度
3.1 单个传感器测量值直接当状态估计值
如果将GPS信号直接当作位置的估计值
第一个GPS测出来的数据均方误差为
σ
z
k
M
E
A
1
2
=
D
(
s
k
−
z
k
M
E
A
1
)
=
σ
1
2
\sigma_{z^{MEA1}_k}^2 = D(s_k - z^{MEA1}_k) = \sigma_1^2
σzkMEA12=D(sk−zkMEA1)=σ12
第二个GPS测出来的数据均方误差为
σ
z
k
M
E
A
2
2
=
D
(
s
k
−
z
k
M
E
A
2
)
=
σ
2
2
\sigma_{z^{MEA2}_k}^2 = D(s_k - z^{MEA2}_k) = \sigma_2^2
σzkMEA22=D(sk−zkMEA2)=σ22
3.2 数据线性融合作为当前状态估计
现在我希望一次估计能同时用到两个GPS的数据,以更多的信息来提高位置估计的精度。
观测值采用两个GPS线性加权,也是无偏估计。
z
ˆ
k
=
(
1
−
K
)
z
k
M
E
A
1
+
K
z
k
M
E
A
2
=
z
k
M
E
A
1
+
K
(
z
2
M
E
A
2
−
z
k
M
E
A
1
)
\^z_k = (1-K)z^{MEA1}_k + Kz^{MEA2}_k = z^{MEA1}_k + K(z^{MEA2}_2 - z^{MEA1}_k)
zˆk=(1−K)zkMEA1+KzkMEA2=zkMEA1+K(z2MEA2−zkMEA1)
也就是:
z
ˆ
k
=
z
k
M
E
A
1
+
K
(
z
2
M
E
A
2
−
z
k
M
E
A
1
)
\^z_k =z^{MEA1}_k + K(z^{MEA2}_2 - z^{MEA1}_k)
zˆk=zkMEA1+K(z2MEA2−zkMEA1)
此时估计的均方误差就是:
σ
z
ˆ
k
2
=
D
(
s
k
−
z
ˆ
k
)
=
(
1
−
K
)
2
σ
1
2
+
K
2
σ
2
2
\sigma_{\^z_k}^2 = D(s_k - \^z_k) = {(1-K)}^2\sigma_1^2+ K^2\sigma_2^2
σzˆk2=D(sk−zˆk)=(1−K)2σ12+K2σ22
注意区分这里的加权系数K(大写),以及代表时刻的角标k(小写)
这里的 z ˆ k \^z_k zˆk是估计值的意思,或者也可以说是 z k E S T z^{EST}_k zkEST,EST是估计estimate的意思
K在卡尔曼滤波中就是卡尔曼增益了
按照MMSE最小均方误差准则,问题变成了求解系数K的值使得
σ
z
ˆ
k
2
\sigma_{\^z_k}^2
σzˆk2最小,这是一个极值点求解问题,非本文重点,这里给出结果。
arg max
K
∈
[
0
,
1
]
σ
z
ˆ
k
2
=
σ
1
2
σ
1
2
+
σ
2
2
\argmax_{K\in [0,1]}{\sigma_{\^z_k}^2} = \frac{\sigma_1^2}{\sigma_1^2+\sigma_2^2}
K∈[0,1]argmaxσzˆk2=σ12+σ22σ12
3.2 线性融合均方误差分析
σ
z
ˆ
k
2
=
σ
1
2
σ
2
2
σ
1
2
+
σ
2
2
\sigma_{\^z_k}^2 = \frac{\sigma_1^2\sigma_2^2}{\sigma_1^2+\sigma_2^2}
σzˆk2=σ12+σ22σ12σ22
这个误差单一传感器测量的均方误差都要小,也叫做线性最优估计。
4. 实际复杂系统的观测
在实际测量的时候,会遇到如下情况。
- 观测数据不只是一维的。
- 观测数据不直接等于物体特征,而是有一个线性变化,比如GPS会给出数字化之后的位置,和实际位置有一个线性缩放。有噪声情况也就是 z k = H x k + V k z_k = Hx_k+V_k zk=Hxk+Vk x k = H − ( z k − V k ) x_k = H^-(z_k - V_k) xk=H−(zk−Vk)
- 一般仍然假设噪声满足多维高斯分布 z k M E A ∼ N ( s k , Q 2 ) z^{MEA}_k\sim N(s_k,{Q}^2) zkMEA∼N(sk,Q2)其中Q是观测噪声 V k V_k Vk的协方差矩阵(同一个传感器的不同维度观测数据噪声可能是相关的,会有协方差)。
- 不仅传感器之间可以线性融合求解数据估计,系统本身状态方程也可以进行数据估计