无迹卡尔曼滤波
UKF(Unscented Kalman Filter),中文释义是无损卡尔曼滤波、无迹卡尔曼滤波或者去芳香卡尔曼滤波。是无损变换(UT) 和标准Kalman滤波体系的结合,通过无损变换使非线性系统方程适用于线性假设下的标准Kalman滤波体系。
卡尔曼最初提出的滤波理论只适用于线性系统,Bucy,Sunahara等人提出并研究了扩展卡尔曼滤波(Extended Kalman Filter,简称EKF),将卡尔曼滤波理论进一步应用到非线性领域。EKF的基本思想是将非线性系统线性化,然后进行卡尔曼滤波,因此EKF是一种次优滤波。其后,多种二阶广义卡尔曼滤波方法的提出及应用进一步提高了卡尔曼滤波对非线性系统的估计性能。二阶滤波方法考虑了Taylor级数展开的二次项,因此减少了由于线性化所引起的估计误差,但大大增加了运算量,因此在实际中反而没有一阶EKF应用广泛。
在状态方程或测量方程为非线性时,通常采用扩展卡尔曼滤波(EKF)。EKF对非线性函数的Taylor展开式进行一阶线性化截断,忽略其余高阶项,从而将非线性问题转化为线性,可以将卡尔曼线性滤波算法应用于非线性系统中。这样一来,解决了非线性问题。EKF虽然应用于非线性状态估计系统中已经得到了学术界认可并为人广泛使用,然而该种方法也带来了两个缺点,其一是当强非线性时EKF违背局部线性假设,Taylor展开式中被忽略的高阶项带来大的误差时,EKF算法可能会使滤波发散;另外,由于EKF在线性化处理时需要用雅克比(Jacobian)矩阵,其繁琐的计算过程导致该方法实现相对困难。所以,在满足线性系统、高斯白噪声、所有随机变量服从高斯(Gaussian)分布这3个假设条件时,EKF是最小方差准则下的次优滤波器,其性能依赖于局部非线性度。
无损卡尔曼滤波是一种新型的滤波估计算法。UKF以UT变换为基础,摒弃了对非线性函数进行线性化的传统做法,采用卡尔曼线性滤波框架,对于一步预测方程,使用无迹(UT)变换来处理均值和协方差的非线性传递,就成为UKF算法。UKF是对非线性函数的概率密度分布进行近似,用一系列确定样本来逼近状态的后验概率密度,而不是对非线性函数进行近似,不需要求导计算Jacobian矩阵。UKF没有线性化忽略高阶项,因此非线性分布统计量的计算精度较高。基于上述优点,UKF被广泛应用于导航、目标跟踪、信号处理和神经网络学习等多个领域。
for nonlinear dynamic system, where w ~ N(0,Q) meaning w is gaussian noise with covariance Q, v ~ N(0,R) meaning v is gaussian noise with covariance R
\[ x_{k+1} = f(x_k) + w_k \\ z_k = h(x_k) + v_k \]
1 | f=@(x)[x(2);x(3);0.05*x(1)*(x(2)+x(3))]; % nonlinear state equations |