你已经知道系统动态模型是这样描述的:
式中 是 时刻的过程噪声。
我们已经在“一维卡尔曼滤波”一节中讨论了过程噪声和它对卡尔曼滤波性能的影响。在一维卡尔曼滤波中,过程噪声方差记为 .
在多维情况下,过程噪声是一个协方差矩阵,记为 .
我们已经见到过程噪声方差对卡尔曼滤波性能有非常大的影响。过小的 会造成滞后误差(见示例 7)。而如果 的值过高,卡尔曼滤波会完全相信测量值(见示例 8),造成估计值噪声过大。
不同状态变量对应的过程噪声可以是独立的。这种情况下,过程噪声协方差矩阵 是对角阵:
过程噪声也可以是相关的。比如匀速运动模型假设零加速度(),但实际加速度的随机噪声 会造成速度和位置产生对应的扰动。这种情况下,过程噪声在状态变量间就是存在互相关的。
环境过程噪声有两种模型:
离散噪声模型假设噪声在每个采样点是不同的,但是在采样点之间是相同的(零阶保持)。
对匀速运动模型,过程噪声协方差具有下述形式:
我们以模型的随机加速度方差 来表示位置和速度的协方差。
我们用“必要的背景知识 II”一节里的期望的代数运算法则推导出每个矩阵元素的值:
现在我们可以把结果填入 矩阵:
还有两种方式能快速构建 矩阵。
如果动态模型不包含输入,我们可以用状态转移矩阵把加速度的方差 投影到我们的动态模型中。
我们先定义一个矩阵 :
过程噪声矩阵为:
对上述运动模型, 矩阵为:
如果动态模型包含输入,我们可以更快捷地算出 矩阵。我们可以用输入转移矩阵把加速度方差 投影到我们的动态模型里。
式中 是控制矩阵(或输入转移矩阵)。
对上述运动模型, 矩阵为:
你可以用上述方法构建离散 矩阵。
连续噪声模型假设噪声随时间连续改变。
为了推导连续噪声模型的过程噪声协方差矩阵 ,我们需要把离散过程噪声的协方差矩阵 对时间进行积分。
回答这个问题之前,你需要选择合适的过程噪声方差。你可以用统计和随机领域的公式去计算,或者根据经验手动选择一个合适的值(这种比较推荐)。
在雷达领域, 依赖目标的特性和模型完整性。对可以机动的目标,比如飞机, 应该相对高;对不能机动的目标,比如火箭,可以用较小的 . 模型完整性也是选择过程噪声方差的因素之一。如果你的模型包含了环境扰动,例如空气阻力,那么过程噪声的比例会比不包含要小。(译注:目标特性和模型完整性是一回事,一句话说就是过程噪声就是模型不准确性,模型近似程度越高就越不准确,噪声方差就要选得越大,大到一定程度KF就只相信测量值了,就起不到滤波效果了。)
一旦选定了过程噪声方差的值,接下来就要选择噪声模型了。应该选离散的还是连续的?
这个问题没有明确的答案。我推荐两种模型都尝试一下,实测看看哪种模型在你的滤波器中效果最好。当 非常小时,可以选取离散噪声模型,反之则最好选用连续噪声模型。