跳转至

随机过程与噪声建模:白噪声、随机游走与 Q 阵

一篇会成长的笔记。IMU 的零偏不是常数,而是随机过程;卡尔曼滤波里的 \(Q\) 阵不是拍脑袋,而是由 Allan 方差标定出来的。这一篇按"定义 → 推导 → 物理/直觉 → 课程里用在哪 → 常见坑"把噪声这条线讲透:从随机过程的基础词汇(均值/自相关/功率谱),到三种核心噪声模型(白噪声、随机游走、一阶高斯-马尔可夫),最后落到 Allan 方差与 \(Q\) 阵定标。每节末尾附外链 Wiki。

核心要点

  • 随机过程 = 一族随时间变化的随机变量 \(X(t)\);刻画它的不是"一个数",而是均值函数 + 自相关函数
  • 维纳-辛钦定理:自相关函数 ⟷ 功率谱密度(傅里叶变换对)——时域"记忆"与频域"功率分布"是同一件事的两种说法。
  • 白噪声:功率谱平坦、\(R(\tau)\propto\delta(\tau)\)、无记忆 → 卡尔曼 \(Q,R\) 的默认噪声。
  • 白噪声积分 = 随机游走(维纳过程):方差 ∝ 时间线性增长、标准差 ∝ \(\sqrt{t}\)——这是陀螺 ARW、惯导位置误差发散的根源。
  • 一阶高斯-马尔可夫(GM-1):有界方差 + 相关时间 \(\tau\) → bias 建模的标配。
  • 连续噪声密度 → 离散 \(Q_d\)\(Q_d\approx GQ_cG^T\,\Delta t\)(更精确是矩阵指数积分)——"\(Q\) 是标定出来的,不是拍的"。
  • Allan 方差五指纹:QN/ARW/BI/RRW/RR,在 \(\log\sigma_A\)\(\log\tau\) 图上各占一段斜率,用来从实测提取 \(Q\) 素材。

一、随机过程:定义与三个统计量

1.1 定义

随机过程是一族随机变量:

\[\{X(t),\ t\in T\}\]
  • \(t\) 离散:随机序列 \(\{X_k\}\)(IMU 采样点);
  • \(t\) 连续:连续时间随机过程(真实物理量)。

两个视角:固定 \(t\)\(X(t)\) 是一个随机变量(掷骰子);固定一个样本\(X(t)\) 是一条样本轨道/实现(一次采集到的整条数据)。

1.2 三个核心统计量(替代普通随机变量的期望/方差)

均值函数(每个时刻所有实现的平均):

\[\mu_X(t)=\mathbb E[X(t)]\]

自相关函数(两个时刻之间的"关联强度"):

\[R_X(t_1,t_2)=\mathbb E[X(t_1)X(t_2)]\]

自协方差函数(去均值后的自相关,\(t_1=t_2\) 时就是方差):

\[C_X(t_1,t_2)=\mathbb E\big[(X(t_1)-\mu_X(t_1))(X(t_2)-\mu_X(t_2))\big]\]

直觉:自相关回答"这个噪声有没有记忆"——是每步独立(白噪声),还是一步连一步(随机游走),还是衰减记忆(GM-1)。这直接决定它会不会被积分放大、要不要放进状态方程。


二、平稳性与遍历性(为什么能"用一段数据估计")

2.1 严平稳

任意有限维联合分布对时间平移不变:统计特性"不随开机时间变"。工程里近似成立的假设。

2.2 宽平稳(够用即可)

  1. 均值为常数:\(\mu_X(t)=\mu\)
  2. 自相关只依赖时间差\(R_X(t_1,t_2)=R_X(\tau)\)\(\tau=t_2-t_1\)

宽平稳下的自协方差就是 \(C_X(\tau)=R_X(\tau)-\mu^2\)\(C_X(0)=\mathrm{Var}\)

2.3 遍历性(工程前提)

时间平均 = 集合平均

\[\lim_{T\to\infty}\frac{1}{T}\int_0^T X(t)\,dt=\mathbb E[X]\]

直觉:若过程遍历,一条足够长的实测数据就能代替"无穷多个样本",统计量可直接从这段数据估计——Allan 方差正是靠"静置一条几小时数据"来读噪声参数,依赖的就是这个。


三、功率谱密度(维纳-辛钦定理)

一句话:频率域的"功率分布"是时间域自相关的傅里叶变换。

对宽平稳过程:

\[S_X(\omega)=\int_{-\infty}^{+\infty}R_X(\tau)\,e^{-j\omega\tau}\,d\tau\]
\[R_X(\tau)=\frac{1}{2\pi}\int_{-\infty}^{+\infty}S_X(\omega)\,e^{j\omega\tau}\,d\omega\]

物理意义:

  • \(S_X(\omega)\) 描述各频率成分的功率;
  • 白噪声的 \(S_X(\omega)\) 是常数(各频率均匀 → 白);
  • IMU 噪声的 Allan 方差与 \(S_X(\omega)\) 有直接对应——频域是看清"低频漂移 vs 高频抖动"的放大镜;随机游走 \(S\propto\omega^{-2}\)(低频强)、白噪声 \(S=\text{const}\)、GM-1 是低通 \(\dfrac{2\sigma^2T_c}{1+\omega^2T_c^2}\)

四、白噪声(最基础的一块砖)

4.1 定义

连续时间白噪声 \(w(t)\) 满足

\[\mathbb E[w(t)]=0,\qquad R_w(\tau)=\mathbb E[w(t)w(t+\tau)]=q\,\delta(\tau)\]

其中 \(\delta(\tau)\) 是狄拉克函数,\(q\)噪声强度(功率谱值)。

功率谱:

\[S_w(\omega)=q,\qquad \forall\omega\]

"白" = 所有频率功率相等(像白光)。时域看:任何两个不同时刻都不相关(无记忆)。

4.2 离散白噪声(卡尔曼实际用的)

\[w_k\sim\mathcal N(0,Q),\qquad \mathbb E[w_k]=0,\qquad \mathbb E[w_kw_j^T]=Q\,\delta_{kj}\]

即 i.i.d. 高斯序列。这就是卡尔曼 \(Q\) 阵、\(R\) 阵的默认形状。

4.3 连续→离散(推导 \(Q_d\),课程核心换算)

设连续系统

\[\dot x=Fx+Gw\]

其中 \(w\) 是强度 \(Q_c\) 的连续白噪声。采样间隔 \(\Delta t\) 离散化:

\[x_{k+1}=F_d x_k+w_k\]
\[F_d\approx I+F\Delta t+\frac{(F\Delta t)^2}{2!}+\cdots=e^{F\Delta t}\]
\[Q_d\approx GQ_cG^T\,\Delta t\]

更精确(状态转移期间的积分,EKF 里 F 变雅可比时用):

\[Q_d=\int_0^{\Delta t}e^{F\tau}GQ_cG^T e^{F^T\tau}\,d\tau\]

这就是卡尔曼 \(Q\) 阵的来源

千万别把连续 \(Q_c\) 直接塞进离散滤波器。物理含义:连续噪声密度 \(q\)(rad/s/√Hz)× 采样间隔 \(\Delta t\) = 一个采样周期内累积的离散噪声方差 \(Q_d=q\,\Delta t\)。后面 §八的 ARW→Q 换算就是这条公式。


五、随机游走(= 白噪声的积分)

5.1 定义与推导

离散随机游走:

\[x_k=x_{k-1}+w_{k-1},\qquad w_{k-1}\sim\mathcal N(0,Q)\]

展开:

\[x_k=x_0+\sum_{i=0}^{k-1}w_i\]

均值(漂移中心不动):

\[\mathbb E[x_k]=x_0\]

方差(每步加一份,逐年线增长——关键结论):

\[\mathrm{Var}(x_k)=\sum_i \mathrm{Var}(w_i)=kQ\]

\(\sigma_x\propto\sqrt{t}\)

5.2 连续形式:维纳过程(布朗运动)

\[\dot x=w(t)\ \Rightarrow\ x(t)=x(0)+\int_0^t w(s)\,ds\]

这就是维纳过程(数学上对白噪声积分,严格定义是"不可导"的,工程上理解成"每步随机加一点"即可)。

5.3 课程对应

  • 陀螺/加计零偏常用随机游走建模:\(\dot b=w_b\)(bias 随机游走);
  • 姿态误差、速度误差中的随机驱动项就是随机游走型;
  • 对应 \(Q\) 阵的 bias 块(见 §八)。

物理直觉:白噪声进积分器一次就"长毛"成随机游走——这解释了 ARW(角速率白噪声积分一次 → 角度随机游走,°/√h)以及纯惯导位置误差为什么必然增长。


六、一阶高斯-马尔可夫过程(GM-1,bias 建模标配)

6.1 连续形式

\[\dot x=-\frac{1}{T_c}x+w\]
  • \(T_c\)相关时间(记住自身的时长);
  • \(w\):强度 \(q\) 的白噪声。

6.2 离散形式(卡尔曼状态方程直接可用)

\[x_k=e^{-\Delta t/T_c}\,x_{k-1}+w_{k-1}\]
\[w_{k-1}\ \text{方差}=\frac{qT_c}{2}\left(1-e^{-2\Delta t/T_c}\right)\]

\(\Delta t \ll T_c\)(采样远比相关时间密)时,\(\mathrm{Var}(w)\approx q\Delta t\),与白噪声离散化自洽。

极限情形(退化的连续谱)\(T_c\to\infty\) 退化为随机游走;\(T_c\to 0\) 退化为白噪声。

6.3 性质:自相关与功率谱

  • 自相关:\(R_x(\tau)=\sigma^2 e^{-|\tau|/T_c}\)——指数衰减的记忆
  • 功率谱:\(S_x(\omega)=\dfrac{2\sigma^2T_c}{1+\omega^2T_c^2}\)(一阶低通)。

稳态方差有界:\(\sigma^2=\dfrac{qT_c}{2}\)——不像随机游走那样无限涨。

6.4 课程对应

  • IMU 零偏常用一阶 \(\mathrm{GM}\) 建模:\(\dot b=-\frac{1}{T_c}b+w_b\)
  • 比纯随机游走更真实:零偏不会无限漂移(有界 + 相关时间);
  • 状态增广时把 \(b\) 放进状态向量,卡尔曼滤波同时估计(ESKF 15 态里的 bg/ba)。

七、Allan 方差:从实测读出噪声指纹

7.1 为什么要 Allan 方差

IMU 静止采集数据,普通方差只给"一个抖动总量",分不清是谁贡献的。Allan 方差按不同聚类时长重新切片,把噪声按频段拆开

  • 角度随机游走 ARW(陀螺白噪声)
  • 速度随机游走 VRW(加计白噪声)
  • 零偏不稳定性 BI(1/f 噪声平台)
  • 速率随机游走 RRW(bias 随机游走)
  • 量化噪声 QN(ADC 量化)

7.2 定义(聚类平均的相邻差)

对陀螺输出 \(\omega(t)\),采样间隔 \(\tau_0\),聚类时间 \(\tau=m\tau_0\)。每段平均:

\[\bar\omega_k(\tau)=\frac{1}{\tau}\int_{t_k}^{t_k+\tau}\omega(t)\,dt\]

Allan 方差(相邻两段平均的方差的一半):

\[\sigma_A^2(\tau)=\frac12\left\langle\big(\bar\omega_{k+1}(\tau)-\bar\omega_k(\tau)\big)^2\right\rangle\]

Allan 标准差:

\[\sigma_A(\tau)=\sqrt{\sigma_A^2(\tau)}\]

7.3 双对数曲线斜率(5 段指纹)

\(\log\sigma_A(\tau)\) vs \(\log\tau\) 图上:

噪声类型 斜率 含义
量化噪声 QN \(-1\) ADC 量化 / 数据截断
角度随机游走 ARW \(-1/2\) 白噪声积分(最快一项)
零偏不稳定性 BI \(0\)(平台) 1/f 噪声平台值
速率随机游走 RRW \(+1/2\) bias 的随机游走
速率斜坡 RR \(+1\) 确定性漂移(温度/老化)

Allan 曲线五段噪声指纹

7.4 参数提取

  • ARW\(\sigma_A(\tau)=\dfrac{N}{\sqrt{\tau}}\)\(-1/2\) 段拟合),\(N\) 是角度随机游走系数 [°/√h];
  • BI:曲线最低点(平台值)\(\sigma_{\min}=B\cdot 0.664 \Rightarrow B=\sigma_{\min}/0.664\) [°/h];
  • RRW\(+1/2\) 段拟合得 \(K\) [°/h^{1.5}]。

7.5 与卡尔曼 \(Q\) 的关系

  • ARW → 陀螺白噪声 → \(Q\) 的姿态部分;
  • VRW → 加计白噪声 → \(Q\) 的速度部分;
  • BI / RRW → bias 随机游走 → \(Q\) 的 bias 部分。

于是

\[Q=\begin{bmatrix} Q_{\text{姿态}} & 0 & 0\\ 0 & Q_{\text{速度}} & 0\\ 0 & 0 & Q_{\text{bias}} \end{bmatrix}\]

具体把 Allan 读出的 \(N\)\(B\)\(K\) 换算成连续噪声密度、再乘 \(\Delta t\) 进离散 \(Q_d\) 的完整流程与 PSINS/MATLAB/Python 实操,见 05 Allan 方差(含 ICM-42688P 实测 → ARW/BI)。


八、从噪声系数到 \(Q\) 阵(含单位换算)

目标:把 Allan 参数变成卡尔曼能用的离散 \(Q_d\)

陀螺 ARW \(N\)[°/√h] → 连续角速率噪声密度 \(\sigma_g\)[rad/s/√Hz]:

\[\sigma_g=N\cdot\frac{\pi}{180\cdot 60}\]

加计 VRW \(V\)[m/s/√h] → \(\sigma_a=V\cdot\dfrac{1}{60\sqrt{3600}}\) [m/s²/√Hz]。

零偏不稳定性 \(B\)[°/h] → bias 驱动密度:

\[\sigma_b=B\cdot\frac{\pi}{180\cdot 3600}\ \text{[rad/s²/√Hz]}\]

离散化(§四.3):每个采样间隔 \(\Delta t\)

\[Q_d^{(g)}=\sigma_g^2\,\Delta t,\qquad Q_d^{(b)}=\sigma_b^2\,\Delta t\]

量纲与符号(易错)

  • 连续密度是 \(\sqrt{\text{Hz}}\) 倒数、离散 \(Q\) 是"每步方差"——两者差一个 \(\Delta t\),忘记换算等于 \(Q\) 差 N 个数量级;
  • \((HPH^T+R)\)\(R\) 必须与 \(H x\) 同量纲(位置/m、速度/(m/s)),NEES/NIS 才能出对。

九、课程里用在哪

  • IMU 噪声建模:ARW、VRW、bias 随机游走 / GM-1(§五、§六);
  • \(Q\) 阵定标:Allan 方差 → 连续噪声强度 → 离散 \(Q_d\)(§七、§八);
  • 零偏估计:把 bias 增广进状态,用随机游走或 GM-1 建模(ESKF 15 态);
  • 组合导航滤波:GNSS 噪声用白噪声建模进 \(R\),IMU 噪声进 \(Q\)(§四、§八);
  • 一致性检验:新息协方差应与 \(S=HPH^T+R\) 匹配(见 概率统计基础 §七);
  • 仿真:用随机游走、GM 过程生成 IMU 仿真数据(PSINS imuerrset / imudeldrift 等)。

十、常见坑

  1. 把 bias 当常数:实际是随机过程,必须建模(随机游走或 GM-1),否则滤波把 bias 吃进位置估计。
  2. \(Q\) 拍脑袋给:应由 Allan 方差标定(\(Q\) 太大过动、太小自负,NEES/NIS 可诊断)。
  3. 混淆连续噪声强度与离散 \(Q\):差一个 \(\Delta t\) 或一次积分(§四.3、§八)。
  4. 忘记相关时间 \(T_c\):把 GM-1 当随机游走(\(T_c\to\infty\))会低估长期漂移;bias 建模时相关时间要明确。
  5. Allan 数据不够\(\tau\) 窗口不够长,曲线不平滑、长 \(\tau\) 段(BI/RRW)提取不准——通常要静置 4~8 小时。
  6. \(R\)\(Q\) 量纲不匹配:状态与观测单位必须统一(rad/°/m…),否则增益 \(K\) 完全失真。

十一、两部分的连接:从噪声到卡尔曼(完整链路)

  1. IMU 静止采集数据;
  2. Allan 方差分析 → 提取 ARW、VRW、bias 参数;
  3. 建立连续噪声模型:\(\dot b=w_b\)\(w_b\sim\mathcal N(0,Q_c)\)
  4. 离散化\(Q_d\approx GQ_cG^T\Delta t\)
  5. 构建 15 维误差状态方程:\(\dot{\delta x}=F\,\delta x+Gw\)
  6. 卡尔曼预测:\(P^-=FPF^T+Q_d\)
  7. GNSS 观测更新:\(K=PH^T(HPH^T+R)^{-1}\)
  8. 反馈校正 → 闭环组合导航。

这套链路里:概率统计给了 6、7 两步(条件高斯与协方差传播),随机过程给了 2、3、4、5 步(噪声建模与 \(Q\) 定标)。两边合起来,\(P^-=FPF^T+Q\)\(K=PH^T(HPH^T+R)^{-1}\) 就不只是公式,而是有明确物理和统计意义的系统语言。

一句话总结

  • 随机过程:IMU 噪声不是白噪声,而是随机游走 / 一阶 GM;\(Q\) 阵由 Allan 方差标定;
  • 三种基本噪声从频域看"各归其位":白噪声(平坦谱)→ 随机游走(\(\omega^{-2}\))→ GM-1(一阶低通),对应 \(R\) 阵、\(Q\) 的姿态/速度块、\(Q\) 的 bias 块。

关联

外链 Wiki