张永安 非线性/非高斯滤波讲义第二讲 近似高斯滤波2.1 泰勒线性化和推广卡尔曼滤波给定随机系统的动态滤波问题,系统包括两个过程: (1) 状态过程(信号过程):具有初始分布0~()0x p x ,转移核为()1|k k p x x −的马尔科夫过程; (2) 观测过程:观测量与状态量k z k x 有概率关联()|k k p z x 。
若系统具有设系统具有线性、高斯性,亦即具有以下性质: SSM Σ∈S S (A1) 可以写成线性状态空间模型形式: S⎩⎨⎧+=+=Σ−k k k kkk k kv x C z w x A x 1LSSM :(A2) 和服从高斯分布,即k w k v GSSM Σ∈S ; (A3) 状态初始分布为高斯分布:000ˆ~(;,0)x x xP N以上(A2)与(A3)合称高斯假设,三个假设合起来线性高斯假设,具有线性高斯假设的模型称为线性高斯模型,其全体记为。
则可以证明,若服从高斯分布: LGSSM Σ)|(1:11−−k k z x p11:111|11|1ˆ(|)~(;,k k k k k k k p x z x xP −−−−−−−)N)|(1:1−k k z x p 和也是高斯的,)|(:1k k z x p 1:1|1|1ˆ(|)~(;,)k k k k k k k p x z x x P −−−N1:||ˆ(|)~(;,)k k k k k k k p x z x xP N 且这三个高斯分布的参数(状态的均值和协方差阵)满足卡尔曼滤波递推公式,类似于贝叶斯递推滤波公式,卡尔曼滤波分两部分: 一步预测和测量修正。
其算法如下:算法2.1 (卡尔曼滤波): (1) 给定0|00|0,P x (2) 递推计算:其中",1,0=k (a) 一步预测: k k k k k k q x A x+=−−−1|11|ˆˆk T k k k k k k Q A P A P +=−−−1|11|(b) 测量修正:11|1|)(−−−+=k Tk k k k T k k k k R C P C C P K )ˆ(ˆˆ1|1||k k k k k k k k k k r x C z K x x−−+=−−Tk k k T k k k k k k k k K R K C K I P C K I P +−−=−)()(1||由于状态的条件分布完全由其均值和协方差阵完全表征,因此卡尔曼滤波是递推贝叶斯最优滤波的显式解,在给定的线性高斯假设条件下与贝叶斯最优滤波完全等价。
若系统是非线性的,且具有加性高斯输入噪声,即GSSM S ∈Σ,则由第一讲可知,系统可表示为S1()()k k k k k k kkx f x w z g x v −=+⎧⎨=+⎩其中,,与分为独立同分布(i.i.d)白噪声输入,且相互独立,它们具有高斯分布,且均值和协方差阵 x w xn n n k f ℜ→ℜ×ℜ:z v x n n n k g ℜ→ℜ×ℜ:k v k wk k r Ev =,k k q Ew =,[][]{}Tk k k k k E v r v r R −−=, [][]{}T kkkkkE w q w q Q −−=ASSM Σ∈S 可以写为如下形式:11GSSM (|)[;(),]:(|)[;(),]k k k k k k k k k k k k k k p x x x f x q Q p z x z g x r R −−=+⎧Σ⎨=+⎩N N 人们通过各种非线性近似,来获得近似解。
最基本的近似方法是泰勒近似法,其思路是:当状态的先验分布可以用高斯分布近似时,状态的条件分布完全由其均值和协方差阵表征,若在状态的滤波值和预测值周围分别将状态方程和测量方程展开泰勒级数:k k k k k k k k k k k k w x x x x A xf x +−Δ+−+=−−−−−−−−)ˆ()ˆ()ˆ(1|1111|111|1|1|12|1ˆˆˆ()()()k k k k k k k k k k k k z g xC x x x x v −−=+−+Δ−−+这里和为二阶以上被截去掉的高阶项, )ˆ(1|111−−−−Δk k k xx )ˆ(1|2−−Δk k k x x1|11ˆ11)(−−−=−−∂∂=k k k xx k k k k x x f A ,|1ˆ()k k k k k k x kg x C x x−=∂=∂为线性化的雅可比阵,则可得GSSM Σ∈S 的局部线性化系统⎩⎨⎧++=++=Σ−kk k k k kk k k k v d x C z w c x A x ~~:1LSSM其中 1|11|1ˆ)ˆ(−−−−−=k k k k k k k x A xf c1|1|ˆ)ˆ(−−−=k k k k k k k x C xg d在分别给定和后为确定性分量,而 1|1ˆ−−k k x1|ˆ−k k x k k k k k w x x w +−Δ=−−−)ˆ(~1|111k k k kk v x x v +−Δ=−)ˆ(~1|2为随机输入,注意它们包含了线性化误差,因而它已经是非高斯的,我们分别称它们为虚拟过程噪声和虚拟测量噪声。
忽略线性化带来的误差时,kk k k v v w w ≈≈~,~,此时局部线性化系统具有线性、高斯模型,从而可以利用线性系统的卡尔曼滤波公式,递推的求解,即我们可以近似假定状态的条件分布是高斯的:)|(:1k k z x p11:111|11|11:1|1|11:||ˆ(|)(;,ˆ(|)(;,)ˆ(|)(;,)k k k k k k k k k k k k k k k k k k k k k p x z x xP p x z x xP p x z x xP −−−−−−−−−−⎧≈⎪≈⎨⎪≈⎩N N N )而中的参数的递推公式为当前最常用的非线性滤波公式——推广卡尔曼滤波(EKF)。
)|(:1k k z x p算法2.2 (EKF):(1) 给定先验高斯分布的均值和协方差估计: 00,ˆP x(2) 递推计算:其中",1,0=k (a) 一步预测状态估计:1|11ˆ1−−−=−=k k k xx k k k dx df Ak k k k k k q x f x+=−−−)ˆ(ˆ1|11|k Tk k k k k k Q A P A P +=−−−1|11|(b) 测量修正:|1ˆk k k kk x xkdg C dx −==11|1|)(−−−+=k Tk k k k T k k k k R C P C C P K ||1|1ˆˆˆ()k k k k k k k k k k x x K z g x r −−⎡⎤=+−−⎣⎦Tk k k T k k k k k k k k K R K C K I P C K I P +−−=−)()(1||从以上对EKF 的机理分析来看,EKF 将导致局部次优贝叶斯滤波估计,并且当系统的非线性较强、状态的条件分布用高斯分布近似的误差相当大时,采用EKF 近似非线性滤波可能引起较大的累积估计误差。
基于泰勒展开线性化的EKF 在应用中有两个注意的地方: (1) 基于泰勒展开的线性化方法易受参考点的影响。
而EKF 则是在当前估计值展开泰勒级数,取其前两项。
注意到在EKF 递推计算过程中卡尔曼滤波增益依赖于当前的状态估计值,若当前估计与真实值相差很大,由参考点的偏离将引起进一步的线性化误差以及不精确的卡尔曼滤波矫正。
k K (2) EKF 用到了两个雅可比矩阵的计算,因而使用EKF 时应注意到状态转移函数和测量函数的连续性。
以上前提构成了EKF 的基本应用条件:小偏差初始条件和系统较弱的非线性;且足够光滑,以确保雅可比阵,g k k f ,k k A C 的存在性。
2.2 迭代滤波尽管有不少缺陷,但是由于EKF 形式简单易懂,容易实现,人们还是常用它。
为了在应用中补偿线性化误差的影响,以及让EKF 适应在未知统计参数环境下的滤波,我们结合迭代法和噪声估值器来补偿线性化误差,其思想是:利用迭代法来改善线性化参考点,而利用噪声估值器来估计未知参数以及截尾线性化误差的大小。
下面,我们来叙述这两种方法,并加以改进,以提高EKF 的估计性能。
为了改善EKF 估计中泰勒展开线性化的参考点,可以应用迭代修正法。
最典型的方法是迭代卡尔曼滤波(IKF),其基本思想是,在状态滤波值得到后,分别在一步滞后平滑值和滤波值附近重新线性化状态方程和测量方程,然后再利用测量值对的值做进一步的修正。
Bell 等人证明:迭代测量修正实际上是一种基于高斯-牛顿最小二乘法的近似极大验后估计法。
k k x|ˆk k x |1ˆ−k k x |ˆk z k x 对系统,在计算其EKF 时我们对其滤波修正作反复迭代,由于平滑值一般来说比状态滤波值精确,状态滤波值比预测值精确,我们分别用状态的一步滞后平滑值和滤波值在对系统的状态方程和测量方程作线性化。
这里,我们仅考虑测量方程线性化且与的情况。
设, ,则次迭代滤波修正的计算过程为: GSSM Σ∈S 0=k q 0=k r 1|0|ˆˆ−=k k k k x x1|0|−=k k k k P P N()[]⎪⎪⎪⎩⎪⎪⎪⎨⎧+−−=−−−+=+==−+−−+−−=T i k k i k T i k i k k k i k i k i kk i k k k k i k i k k k k i k k k i k k T kTi k k k i k T i k k k i k x x kki k K R K C K I P C K I P x x C x g z K x x R C P C C P K dx dg C i kk k )()()ˆˆ()ˆ(ˆˆ1|1||1||1|1|1|1|ˆ|这里。
N i ,2,1,0"=从以上迭代方程来看,迭代修正的主要目的是利用滤波值改进线性化测量方程的参考点。
由于滤波值一般来说比预测值更精确,因而线性化的参考点得到了改善。
但是,由于迭代滤波忽略了线性化带来的截尾误差,因此由迭代滤波引入的改进常常是有限的,并且,过多的迭代将增加截尾效应在估计中的影响,反而导致估计误差的增加。
2.3 线性回归分析与UKFEKF 实际上是将非线性系统Taylor 线性化,取其一阶近似,然后利用线性高斯系统的Kalman 滤波算法。
在某些情况,例如若系统是非光滑的,这样Taylor 近似就失去意义,在种情况下,我们可以采用统计线性回归方法来获得线性回归近似。
下面,我们来叙述这类方法中的一种典型算法:无损卡尔曼滤波(Unscented Kalman Filter, UKF),它利用无损变换(Unscented Transformation)来近似系统的一阶矩和二阶矩信息。