雷达 · 通信 · 电子战 / 基础精学 175
随机游走Kalman滤波的后验误差方差收敛到标量Riccati方程的非负根,稳态增益可由噪声比预先计算。
实际记录只包含有限个采样值。由记录计算得到的数值与总体参数并不相同:前者受记录长度、噪声、边界约定及运算精度影响,后者属于给定模型的属性。建立可复核结论需要先固定输入含义、统计假设和归一化方式,再比较可计算量与理论量。
随机游走过程;常数Q严格为正、R严格为正;初始后验方差非负;方差单位一致。
P:稳态后验方差(状态平方)
Q,R:过程与测量噪声方差(状态平方)
K∞:稳态增益(无量纲)
将预测与测量更新合并为一次递推。
稳态要求输入与输出后验方差相同。
展开并消去相同项后得到Riccati二次式。
负根不满足方差非负,因此选取正根。
由预测方差恢复增益。
非负域映射导数严格小于一,给出局部及统一收缩界。
标量随机游走的稳态后验方差满足 P2+QP−QR=0。在 Q/R 很大时,正根的直接表达式涉及两个接近数之差,不利于浮点精度;有理化后得到
两个公式数学等价,但数值稳定性不同。
小过程噪声与大过程噪声的极限分别为
后者表示每次预测几乎失去过去信息,更新主要依赖当前测量。
Q=0 需单独按模型处理,不能直接用有理化表达式中的零除零计算;有限迭代收敛也取决于初始协方差。
稳定的方差不意味着状态停止变化,而意味着长期平均的不确定度达到过程噪声注入与测量信息减少之间的平衡。第二个正根表达式避免Q远大于R时两个接近数相减所造成的精度损失。
以Q为0.02、R为0.5,从零、1和100三个初值迭代300次,检验共同收敛与方程残差,并扫描Q/R显示稳态增益。数值脚本使用固定随机种子;随机实验的判据采用有限容差,代数关系的判据采用浮点残差。图中同时展示参数变化趋势与对应误差,关键数值写入独立结果文件。
| 量 | 数值 |
|---|---|
| 过程噪声方差 | 0.02 |
| 测量噪声方差 | 0.5 |
| positive riccati root | 0.0904987562112 |
| steady state gain | 0.180997512422 |
| fixed point residual | 1.73472347598e-18 |
| maximum final error | 1.38777878078e-17 |
| iterations | 300 |
图 1 标量稳态Riccati方程的正根的固定参数数值验证
表中数值和图中曲线由 MATLAB 实际运行得到,随机种子为 20261094;运行版本与完整结果另存为独立文件。
SystemVerilog实现固定整数尺度Q为64、R为256的非负标量方差映射子核,整数除法输出向零截断;该实例不等价于任意精度Riccati求解器。
端口为16位有符号码,内部64位,同步复位,valid空拍保持状态;逐有效输入输出。自检覆盖多组数据、空拍、边界和复位,仅验证所述整数子核,不代表完整算法的硬件验证。
独立自检程序已在 Icarus Verilog 13.0 中实际运行并通过。该结果不包含器件综合、静态时序分析或板级测试。
用于固定噪声数字滤波器增益预计算和递推方差初始化。采用稳态增益前应确认噪声水平与采样周期不随时间改变。
Q等于零时统一收缩界不再严格小于一。
整数截断会形成量化不动区间,而不是连续方程的精确根。
有限精度实现必须区分输入量化、内部舍入和最终结果格式,不能仅依据浮点曲线估计硬件误差。
稳态标量方差取Riccati方程的非负根,正Q与正R保证非负初值递推趋向唯一不动点。
内容依据:每日精学第 175 课《标量稳态Riccati方程的正根》。图表沿用原课固定参数数值结果,属于数值验证,不代表设备实测。