Andy的GNSS工坊

GNSS DOP计算与Sherman–Morrison快速更新

GNSS DOP计算与Sherman–Morrison快速更新

1. 什么是DOP(精度衰减因子)?

DOP(Dilution of Precision) 是GNSS定位中衡量卫星几何分布对定位精度影响的指标。

GNSS定位本质上是在求解一个把接收机位置作为未知参数的超定方程组,不存在唯一解,而是存在多个解,这些解的精度不同,且跟卫星分布构型相关,而DOP就是用来衡量这些解的精度,DOP越小,精度越高。因此,DOP实际反映了卫星空间分布对定位误差的放大效应

1.1 DOP的计算公式

在GNSS定位中,观测方程为: \(\Delta \rho = G \cdot \Delta x\) 其中:

  • $\Delta \rho$ 是伪距残差向量
  • $G$ 是几何矩阵(设计矩阵)
  • $\Delta x$ 是状态向量修正量

协方差矩阵为: \(Q = (G^T G)^{-1}\)

各种DOP的定义: \(\begin{aligned} PDOP &= \sqrt{Q_{11} + Q_{22} + Q_{33}} \\ HDOP &= \sqrt{Q_{11} + Q_{22}} \\ VDOP &= \sqrt{Q_{33}} \\ TDOP &= \sqrt{Q_{44}} \\ GDOP &= \sqrt{Q_{11} + Q_{22} + Q_{33} + Q_{44}} \end{aligned}\)

1.2 DOP的物理意义

  • PDOP < 2:优秀(卫星分布很好)
  • PDOP 2-4:良好
  • PDOP 4-6:一般
  • PDOP > 6:较差(定位精度会显著下降)

2. 常规矩阵求逆做法

2.1 标准DOP计算流程

2.1.1 构建几何矩阵 $G$: \(G = \begin{bmatrix} \frac{x_1 - x_u}{\rho_1} & \frac{y_1 - y_u}{\rho_1} & \frac{z_1 - z_u}{\rho_1} & 1 \\ \frac{x_2 - x_u}{\rho_2} & \frac{y_2 - y_u}{\rho_2} & \frac{z_2 - z_u}{\rho_2} & 1 \\ \vdots & \vdots & \vdots & \vdots \\ \frac{x_n - x_u}{\rho_n} & \frac{y_n - y_u}{\rho_n} & \frac{z_n - z_u}{\rho_n} & 1 \end{bmatrix}\)

2.1.2 计算协方差矩阵: \(A = G^T G\)

2.1.3 矩阵求逆: \(Q = A^{-1}\)

2.1.4 提取DOP值: \(PDOP = \sqrt{Q_{11} + Q_{22} + Q_{33}}\)

2.2 常规方法的局限性

时间复杂度:矩阵求逆的时间复杂度为 $O(n^3)$,其中 $n$ 是状态向量维度(通常为4)。

实时性问题:当卫星构型发生变化时,需要重新计算整个矩阵的逆,这在实时系统中效率较低。


3. 为什么需要快速更新?

Sherman–Morrison 公式是一个在线性代数中非常有用的秩-1矩阵逆更新公式, 在GNSS、滤波、机器学习和信号处理等场景中都频繁使用。


4. Sherman–Morrison快速更新

在GNSS定位或其他实时系统中,经常有这样的情况:

\(A = G^T G\) 我们已经计算好了 $A^{-1}$(记作 $Q$)。

如果系统只新增或删除一颗卫星, 意味着 $A$ 只变化了一个秩-1的修正:

\[A' = A + u v^T\]

比如在DOP计算中, 新增一颗卫星的观测行向量 $g$,则 \(A' = G'^T G' = G^T G + g^T g = A + g^T g\) 这里 $u = g^T$,$v = g$。

此时我们希望快速算出 $A’^{-1}$,而不是重算整个矩阵求逆。


5. Sherman–Morrison 公式

对于一个可逆矩阵 $A$ 和两个列向量 $u, v$, 若 $1 + v^T A^{-1} u \neq 0$,则:

\[(A + u v^T)^{-1} = A^{-1} - \frac{A^{-1} u v^T A^{-1}}{1 + v^T A^{-1} u}\]

6. 直观理解

6.1 矩阵“加秩1”的效果

$A + u v^T$ 表示在原矩阵 $A$ 上, 增加了一个“方向为 $u$、强度为 $v^T$”的微小扰动。

而 $A^{-1}$ 是一个非常昂贵的操作, 但如果这个扰动只有秩1(即只影响一个方向), 我们可以用一次外积修正 $A^{-1}$。


6.2 修正项意义

修正项: \(\frac{A^{-1} u v^T A^{-1}}{1 + v^T A^{-1} u}\) 可以看作:

  • 分子:扰动的传播(通过 $A^{-1}$ 左右传播)
  • 分母:扰动对整体系统的放大因子(标量)

因此,这一项是对原逆矩阵的低秩补偿修正


6.3 推导思路

我们要找一个矩阵 $X$,使得: \((A + u v^T) X = I\)

假设 $X = A^{-1} + \Delta$,代入上式: \((A + u v^T)(A^{-1} + \Delta) = I\) 展开: \(I + A\Delta + u v^T A^{-1} + u v^T \Delta = I\) 化简: \(A\Delta + u v^T A^{-1} + u v^T \Delta = 0\) 左乘 (A^{-1}): \(\Delta + A^{-1} u v^T A^{-1} + A^{-1} u v^T \Delta = 0\)

令 $y = A^{-1} u$,得: \(\Delta + y v^T A^{-1} + y v^T \Delta = 0\)

将 $\Delta$ 移项: \(\Delta = - y v^T (A^{-1} + \Delta)\)

代入自身: \(\Delta = - y v^T A^{-1} - y v^T \Delta\) \(\Rightarrow (I + y v^T)\Delta = - y v^T A^{-1}\) 两边右乘 $(I + y v^T)^{-1}$, 根据矩阵逆的Woodbury恒等式的秩1特例: \((I + y v^T)^{-1} = I - \frac{y v^T}{1 + v^T y}\) 代入得到: \(\Delta = -\frac{y v^T A^{-1}}{1 + v^T y}\) \(\Rightarrow X = A^{-1} + \Delta = A^{-1} - \frac{A^{-1} u v^T A^{-1}}{1 + v^T A^{-1} u}\) 即原公式。


6.4 删除元素的逆公式(减秩)

如果是删除一颗卫星(矩阵减少秩1),则: \(A' = A - u v^T\) 只需把公式中的 “+” 改成 “−”: \((A - u v^T)^{-1} = A^{-1} + \frac{A^{-1} u v^T A^{-1}}{1 - v^T A^{-1} u}\)


7. 与Woodbury矩阵恒等式的关系

Sherman–Morrison 是更一般公式——Woodbury恒等式的特例(当秩为1时):

\((A + UCV^T)^{-1} = A^{-1} - A^{-1}U(C^{-1} + V^T A^{-1}U)^{-1}V^T A^{-1}\) 当 $U=u, V=v, C=1$,就变成 Sherman–Morrison。


8. 数值稳定性提示

  • 需要确保分母 $1 + v^T A^{-1} u$ 不接近0,否则不稳定;
  • 在GNSS应用中,$g Q g^T$ 通常很小,数值稳定;
  • 可以用双精度浮点$double$计算避免舍入误差。
返回首页