Kalman 滤波原理

系统模型

状态变量法是描述动态系统的一种很有价值的方法,采用这种方法,系统的输入输出关系是用状态转移模型和输出观测模型在时域内加以描述的。输入可以由确定的时间函数和代表不可预测的变量或噪声的随机过程组成的动念模型进行描述,输出是状态的函数,通常受到随机观测误差的扰动,可由量测方程描述。

离散时间系统的动态方程(状态方程)可表示为;
Python中时间序列滤波处理_初始状态
其中: Python中时间序列滤波处理_状态方程_02为状念转移矩阵;Python中时间序列滤波处理_协方差_03为状态向量;Python中时间序列滤波处理_初始状态_04为输入控制项矩阵;Python中时间序列滤波处理_初始状态_05为已知输入或控制信号;Python中时间序列滤波处理_初始状态_06是零均值、白色高斯过程噪声序列,其协方差为Python中时间序列滤波处理_协方差_07;如果过程噪声Python中时间序列滤波处理_初始状态_06Python中时间序列滤波处理_初始状态_09代替,则Python中时间序列滤波处理_协方差_07变为Python中时间序列滤波处理_初始状态_11, Python中时间序列滤波处理_状态方程_12为过程噪声分布矩阵,而
Python中时间序列滤波处理_初始状态_13

式中Python中时间序列滤波处理_协方差_14kronecker_delta 函数,该性质说明不同时刻的过程噪声是相互独立的。

离散时间系统的量测方程为∶
Python中时间序列滤波处理_协方差_15
其中:Python中时间序列滤波处理_人工智能_16为量测矩阵,Python中时间序列滤波处理_初始状态_17为具有协方差Python中时间序列滤波处理_状态方程_18的零均值、白色高斯量测噪声序列,而
Python中时间序列滤波处理_状态方程_19
该性质说明不同时刻的量测噪声也是相互独立的。

上述离散时间线性系统也可用图1的框图来表示,该系统包含如下先验信息

● 初始状态 Python中时间序列滤波处理_状态方程_20是高斯的,具有均值Python中时间序列滤波处理_协方差_21和协方差Python中时间序列滤波处理_Python中时间序列滤波处理_22;

● 过程噪声和量测噪声序列与初始状态无关;

● 过程噪声和量测噪声序列互不相关。

Python中时间序列滤波处理_Python中时间序列滤波处理_23

图1 离散时间线性系统

在上述假定条件下,状态方程(1)和量测方程(2)的线性性质可保持状态和量测的高斯性质。根据已知的Python中时间序列滤波处理_人工智能_24时刻和Python中时间序列滤波处理_人工智能_24以前时刻的量测值对Python中时间序列滤波处理_状态方程_26时刻的状态Python中时间序列滤波处理_协方差_03做出的某种估计若记为Python中时间序列滤波处理_状态方程_28,则按照状态估计所指的时刻,估计问题可归纳为下列三种∶

● 当Python中时间序列滤波处理_状态方程_29时,是滤波问题,Python中时间序列滤波处理_状态方程_28Python中时间序列滤波处理_状态方程_26时刻状态Python中时间序列滤波处理_协方差_03的滤波值;

● 当Python中时间序列滤波处理_人工智能_33时,是预测问题,Python中时间序列滤波处理_状态方程_28Python中时间序列滤波处理_状态方程_26时刻状态Python中时间序列滤波处理_协方差_03的预测值∶

● 当Python中时间序列滤波处理_状态方程_37时,是平滑问题,Python中时间序列滤波处理_状态方程_28Python中时间序列滤波处理_状态方程_26时刻状态Python中时间序列滤波处理_协方差_03的平滑值。