奇异值(singular Value Decomposition,SVD)分解滤波
将三角阵的求逆变为对角阵(plotter平方根滤波)的求逆,大大降低计算量
<奇异值分解:>
A
:
当
为
n
阶
实
对
称
矩
阵
,
可
分
解
为
:
A:当为n阶实对称矩阵,可分解为:
A:当为n阶实对称矩阵,可分解为:
Q
Q
T
=
I
,
Q
为
标
准
正
交
阵
,
Q
的
列
坐
标
为
特
征
向
量
QQ^T=I,Q为标准正交阵,Q的列坐标为特征向量
QQT=I,Q为标准正交阵,Q的列坐标为特征向量
Γ
:
为
特
征
值
构
成
的
对
角
矩
阵
\Gamma:为特征值构成的对角矩阵
Γ:为特征值构成的对角矩阵
A
=
Q
Γ
Q
T
(
特
征
值
分
解
E
V
D
)
Γ
=
[
λ
1
.
.
.
.
.
.
.
.
.
.
.
.
.
λ
2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
λ
n
]
A=Q\Gamma Q^T(特征值分解EVD) \\ \Gamma=\left[\begin{matrix} \lambda_1&...&...&....\\...&\lambda_2&...&....\\...&...&....&....\\...&...&...&\lambda_n\\ \end{matrix}\right]
A=QΓQT(特征值分解EVD)Γ=⎣⎢⎢⎡λ1............λ2...............................λn⎦⎥⎥⎤
A
:
当
为
n
阶
实
矩
阵
,
可
分
解
为
:
A:当为n阶实矩阵,可分解为:
A:当为n阶实矩阵,可分解为:
U
U
T
=
I
,
U
为
单
位
正
交
阵
,
左
奇
异
矩
阵
,
U
∈
R
m
×
m
UU^T=I,U为单位正交阵,左奇异矩阵,U\in R_{m×m}
UUT=I,U为单位正交阵,左奇异矩阵,U∈Rm×m
V
V
T
=
I
,
V
为
单
位
正
交
阵
,
右
奇
异
矩
阵
,
V
∈
R
n
×
n
VV^T=I,V为单位正交阵,右奇异矩阵,V\in R_{n×n}
VVT=I,V为单位正交阵,右奇异矩阵,V∈Rn×n
Σ
:
奇
异
值
,
除
了
对
角
元
素
,
其
他
元
素
为
0
,
Σ
∈
R
m
×
n
\Sigma:奇异值,除了对角元素,其他元素为0,\Sigma \in R_{m×n}
Σ:奇异值,除了对角元素,其他元素为0,Σ∈Rm×n
A
=
U
Σ
V
T
Σ
=
[
σ
1
0
.
.
.
0
0
0
σ
2
.
.
.
0
0
0
0
.
.
.
0
0
0
0
.
.
.
σ
n
0
]
m
×
n
A=U\Sigma V^T \\ \Sigma=\left[\begin{matrix} \sigma_1&0&...&0&0\\0&\sigma_2&...&0&0\\ 0&0&...&0&0\\0&0&...&\sigma_n&0 \end{matrix}\right]_{m×n}
A=UΣVTΣ=⎣⎢⎢⎡σ10000σ200............000σn0000⎦⎥⎥⎤m×n
求解:
A
A
T
=
U
Σ
V
T
V
Σ
T
U
T
=
U
Σ
Σ
T
U
T
AA^T=U\Sigma V^TV\Sigma^TU^T=U\Sigma\Sigma^TU^T
AAT=UΣVTVΣTUT=UΣΣTUT
已知kalman滤波均方误差阵更新公式如下:
P
k
/
k
−
1
=
Φ
k
/
k
−
1
P
k
−
1
Φ
k
/
k
−
1
T
+
Γ
k
−
1
Q
k
−
1
Γ
k
−
1
T
P
k
−
1
=
P
k
/
k
−
1
−
1
+
H
k
T
R
k
−
1
H
k
P_{k/k-1}=\Phi_{k/k-1}P_{k-1}\Phi^T_{k/k-1}+\Gamma_{k-1}Q_{k-1}\Gamma_{k-1}^T \\ P_k^{-1}=P_{k/k-1}^{-1}+H_k^TR_k^{-1}H_k
Pk/k−1=Φk/k−1Pk−1Φk/k−1T+Γk−1Qk−1Γk−1TPk−1=Pk/k−1−1+HkTRk−1Hk
已知
P
k
/
k
−
1
,
P
k
−
1
P_{k/k-1},P_k^{-1}
Pk/k−1,Pk−1:是对称正定的,那么总可以进行奇异值分解:
U
k
,
U
k
/
k
−
1
:
单
位
正
交
阵
U_k,U_{k/k-1}:单位正交阵
Uk,Uk/k−1:单位正交阵
Λ
k
,
Λ
k
/
k
−
1
:
n
阶
对
角
阵
且
对
角
线
元
素
均
为
正
\Lambda_k,\Lambda_{k/k-1}:n阶对角阵且对角线元素均为正
Λk,Λk/k−1:n阶对角阵且对角线元素均为正
P
k
=
U
k
Λ
k
U
k
T
,
P
k
/
k
−
1
=
U
k
/
k
−
1
Λ
k
/
k
−
1
U
k
/
k
−
1
T
P_k=U_k\Lambda_kU_k^T,P_{k/k-1}=U_{k/k-1}\Lambda_{k/k-1}U_{k/k-1}^T
Pk=UkΛkUkT,Pk/k−1=Uk/k−1Λk/k−1Uk/k−1T
P
k
/
k
−
1
P_{k/k-1}
Pk/k−1的推导:
带入均方误差阵:
P
k
/
k
−
1
=
U
k
/
k
−
1
Λ
k
/
k
−
1
U
k
/
k
−
1
T
=
Φ
k
/
k
−
1
U
k
−
1
Λ
k
−
1
U
k
−
1
T
Φ
k
/
k
−
1
T
+
Γ
k
−
1
Q
k
−
1
Γ
k
−
1
T
=
[
Φ
k
/
k
−
1
U
k
−
1
Λ
k
−
1
1
/
2
Γ
k
−
1
Q
k
−
1
1
/
2
]
[
(
Λ
k
−
1
1
/
2
)
T
U
k
−
1
T
Φ
k
/
k
−
1
T
(
Q
k
−
1
1
/
2
)
T
Γ
k
−
1
T
]
P_{k/k-1}=U_{k/k-1}\Lambda_{k/k-1}U_{k/k-1}^T=\Phi_{k/k-1}U_{k-1}\Lambda_{k-1}U_{k-1}^T\Phi^T_{k/k-1}+\Gamma_{k-1}Q_{k-1}\Gamma_{k-1}^T \\ =\left[\begin{matrix} \Phi_{k/k-1}U_{k-1}\Lambda_{k-1}^{1/2}&\Gamma_{k-1}Q_{k-1}^{1/2} \end{matrix}\right]\left[\begin{matrix} (\Lambda_{k-1}^{1/2})^TU_{k-1}^T\Phi_{k/k-1}^T\\ (Q_{k-1}^{1/2})^T\Gamma_{k-1}^T \end{matrix}\right]
Pk/k−1=Uk/k−1Λk/k−1Uk/k−1T=Φk/k−1Uk−1Λk−1Uk−1TΦk/k−1T+Γk−1Qk−1Γk−1T=[Φk/k−1Uk−1Λk−11/2Γk−1Qk−11/2][(Λk−11/2)TUk−1TΦk/k−1T(Qk−11/2)TΓk−1T]
再对
[
Φ
k
/
k
−
1
U
k
−
1
Λ
k
−
1
1
/
2
Γ
k
−
1
Q
k
−
1
1
/
2
]
\left[\begin{matrix} \Phi_{k/k-1}U_{k-1}\Lambda_{k-1}^{1/2}&\Gamma_{k-1}Q_{k-1}^{1/2} \end{matrix}\right]
[Φk/k−1Uk−1Λk−11/2Γk−1Qk−11/2]进行奇异值分解为:
S
k
/
k
−
1
:
n
阶
单
位
正
交
阵
S_{k/k-1}:n阶单位正交阵
Sk/k−1:n阶单位正交阵
V
k
/
k
−
1
:
n
+
1
阶
单
位
正
交
阵
V_{k/k-1}:n+1阶单位正交阵
Vk/k−1:n+1阶单位正交阵
[
Φ
k
/
k
−
1
U
k
−
1
Λ
k
−
1
1
/
2
Γ
k
−
1
Q
k
−
1
1
/
2
]
=
S
k
/
k
−
1
D
k
/
k
−
1
V
k
/
k
−
1
T
\left[\begin{matrix} \Phi_{k/k-1}U_{k-1}\Lambda_{k-1}^{1/2}&\Gamma_{k-1}Q_{k-1}^{1/2} \end{matrix}\right]=S_{k/k-1}D_{k/k-1}V_{k/k-1}^T
[Φk/k−1Uk−1Λk−11/2Γk−1Qk−11/2]=Sk/k−1Dk/k−1Vk/k−1T
带入均方误差阵:
P
k
/
k
−
1
=
U
k
/
k
−
1
Λ
k
/
k
−
1
U
k
/
k
−
1
T
=
[
Φ
k
/
k
−
1
U
k
−
1
Λ
k
−
1
1
/
2
Γ
k
−
1
Q
k
−
1
1
/
2
]
[
(
Λ
k
−
1
1
/
2
)
T
U
k
−
1
T
Φ
k
/
k
−
1
T
(
Q
k
−
1
1
/
2
)
T
Γ
k
−
1
T
]
=
(
S
k
/
k
−
1
D
k
/
k
−
1
V
k
/
k
−
1
T
)
(
S
k
/
k
−
1
D
k
/
k
−
1
V
k
/
k
−
1
T
)
T
=
S
k
/
k
−
1
(
D
k
/
k
−
1
D
k
/
k
−
1
T
)
S
k
/
k
−
1
T
P_{k/k-1}=U_{k/k-1}\Lambda_{k/k-1}U_{k/k-1}^T =\left[\begin{matrix} \Phi_{k/k-1}U_{k-1}\Lambda_{k-1}^{1/2}&\Gamma_{k-1}Q_{k-1}^{1/2} \end{matrix}\right]\left[\begin{matrix} (\Lambda_{k-1}^{1/2})^TU_{k-1}^T\Phi_{k/k-1}^T\\ (Q_{k-1}^{1/2})^T\Gamma_{k-1}^T \end{matrix}\right] \\ =(S_{k/k-1}D_{k/k-1}V_{k/k-1}^T)(S_{k/k-1}D_{k/k-1}V_{k/k-1}^T)^T \\ =S_{k/k-1}(D_{k/k-1}D_{k/k-1}^T)S_{k/k-1}^T
Pk/k−1=Uk/k−1Λk/k−1Uk/k−1T=[Φk/k−1Uk−1Λk−11/2Γk−1Qk−11/2][(Λk−11/2)TUk−1TΦk/k−1T(Qk−11/2)TΓk−1T]=(Sk/k−1Dk/k−1Vk/k−1T)(Sk/k−1Dk/k−1Vk/k−1T)T=Sk/k−1(Dk/k−1Dk/k−1T)Sk/k−1T
其中
D
k
/
k
−
1
D
k
/
k
−
1
T
D_{k/k-1}D_{k/k-1}^T
Dk/k−1Dk/k−1T是n阶正定的对角阵,令:
U
k
/
k
−
1
=
S
k
/
k
−
1
,
Λ
k
/
k
−
1
1
/
2
=
(
D
k
/
k
−
1
D
k
/
k
−
1
T
)
1
/
2
U_{k/k-1}=S_{k/k-1},\Lambda_{k/k-1}^{1/2}=(D_{k/k-1}D_{k/k-1}^T)^{1/2}
Uk/k−1=Sk/k−1,Λk/k−11/2=(Dk/k−1Dk/k−1T)1/2
取
Λ
k
/
k
−
1
1
/
2
\Lambda_{k/k-1}^{1/2}
Λk/k−11/2为长方对角阵
D
k
/
k
−
1
D_{k/k-1}
Dk/k−1的对角元素,重新构成方阵,即:
D
k
/
k
−
1
=
[
Λ
k
/
k
−
1
1
/
2
0
n
×
l
]
D_{k/k-1}=\left[\begin{matrix} \Lambda_{k/k-1}^{1/2}&0_{n×l} \end{matrix}\right]
Dk/k−1=[Λk/k−11/20n×l]
P
k
P_{k}
Pk的推导(与
P
k
/
k
−
1
P_{k/k-1}
Pk/k−1相同):
S
k
:
n
阶
单
位
正
交
阵
S_k:n阶单位正交阵
Sk:n阶单位正交阵
V
k
:
n
+
m
阶
单
位
正
交
阵
V_k:n+m阶单位正交阵
Vk:n+m阶单位正交阵
D
k
:
n
×
(
n
+
m
)
阶
单
位
正
交
阵
D_k:n×(n+m)阶单位正交阵
Dk:n×(n+m)阶单位正交阵
P
k
/
k
−
1
=
U
k
/
k
−
1
Λ
k
/
k
−
1
−
1
U
k
/
k
−
1
T
+
H
k
T
R
k
−
1
H
k
=
[
U
k
/
k
−
1
Λ
k
/
k
−
1
−
1
/
2
H
k
T
R
k
−
1
/
2
]
[
(
Λ
k
/
k
−
1
−
1
/
2
)
T
U
k
/
k
−
1
T
(
R
k
−
1
/
2
)
T
H
k
]
=
(
S
k
D
k
V
k
T
)
(
S
k
D
k
V
k
T
)
T
P_{k/k-1}=U_{k/k-1}\Lambda_{k/k-1}^{-1}U_{k/k-1}^T+H_k^TR_k^{-1}H_k \\ =\left[\begin{matrix} U_{k/k-1}\Lambda_{k/k-1}^{-1/2}&H_k^TR_{k}^{-1/2} \end{matrix}\right]\left[\begin{matrix} (\Lambda_{k/k-1}^{-1/2})^TU_{k/k-1}^T\\ (R_k^{-1/2})^TH_k \end{matrix}\right] \\ =(S_kD_kV_k^T)(S_kD_kV_k^T)^T
Pk/k−1=Uk/k−1Λk/k−1−1Uk/k−1T+HkTRk−1Hk=[Uk/k−1Λk/k−1−1/2HkTRk−1/2][(Λk/k−1−1/2)TUk/k−1T(Rk−1/2)THk]=(SkDkVkT)(SkDkVkT)T
同理得到:
U
k
=
S
k
,
Λ
k
−
1
/
2
=
(
D
k
D
k
T
)
1
/
2
D
k
=
[
Λ
k
−
1
/
2
0
n
×
m
]
U_k=S_k,\Lambda_k^{-1/2}=(D_kD_k^T)^{1/2} \\ D_k=\left[\begin{matrix} \Lambda_k^{-1/2}&0_{n×m}\\ \end{matrix}\right]
Uk=Sk,Λk−1/2=(DkDkT)1/2Dk=[Λk−1/20n×m]
奇异值分解滤波算法流程如下:
[
Φ
k
/
k
−
1
U
k
−
1
Λ
k
−
1
1
/
2
Γ
k
−
1
Q
k
−
1
1
/
2
]
→
S
V
D
→
(
S
k
/
k
−
1
,
D
k
/
k
−
1
)
→
(
U
k
/
k
−
1
,
Λ
k
/
k
−
1
1
/
2
)
\left[\begin{matrix} \Phi_{k/k-1}U_{k-1}\Lambda_{k-1}^{1/2}&\Gamma_{k-1}Q_{k-1}^{1/2} \end{matrix}\right]\rightarrow^{SVD}\rightarrow(S_{k/k-1},D_{k/k-1}^{})\rightarrow(U_{k/k-1},\Lambda_{k/k-1}^{1/2})
[Φk/k−1Uk−1Λk−11/2Γk−1Qk−11/2]→SVD→(Sk/k−1,Dk/k−1)→(Uk/k−1,Λk/k−11/2)
[
U
k
/
k
−
1
Λ
k
−
1
−
1
/
2
H
k
T
R
k
−
1
−
1
/
2
]
→
S
V
D
→
(
S
k
,
D
k
)
→
(
U
k
,
Λ
k
−
1
/
2
)
\left[\begin{matrix} U_{k/k-1}\Lambda_{k-1}^{-1/2}&H_{k}^TR_{k-1}^{-1/2} \end{matrix}\right]\rightarrow^{SVD}\rightarrow(S_{k},D_{k}^{})\rightarrow(U_{k},\Lambda_{k}^{-1/2})
[Uk/k−1Λk−1−1/2HkTRk−1−1/2]→SVD→(Sk,Dk)→(Uk,Λk−1/2)
K
k
=
U
k
Λ
k
U
k
T
H
k
T
R
k
−
1
K_k=U_k\Lambda_kU^T_kH_k^TR_k^{-1}
Kk=UkΛkUkTHkTRk−1