第六章 卡尔曼滤波 (The Kalman filtering)
第一节 卡尔曼滤波信号模型 第二节 卡尔曼滤波方法 第三节 卡尔曼滤波的应用 第一节 卡尔曼滤波信号模型 第二节 卡尔曼滤波方法 第三节 卡尔曼滤波的应用
6.1 信号模型 6.1.1状态方程和量测方程 维纳滤波的模型:信号 可以认为是由白噪声 激励一个线性系统 的响应,假设响应和激励的时域关系可以用下式表示: (6-52) 上式也就是一阶AR模型。
在卡尔曼滤波中信号 被称为是状态变量,用矢量的形式表示为 ,激励信号 也用矢量表示为 ,激励和响应之间的关系用传递矩阵 来表示, 得出状态方程: (6-53) 上式表示的含义就是在k时刻的状态 可以由它的前一个时刻的状态 来求得,即认为k-1时刻以前的各状态都已记忆在状态 中了
卡尔曼滤波是根据系统的量测数据(即观测数据)对系统的运动进行估计的,所以除了状态方程之外,还需要量测方程。 在卡尔曼滤波中,用表示量测到的信号矢量序列,表示量测时引入的误差矢量,则量测矢量与状态矢量之间的关系可以写成 (6-54)
上式和维纳滤波的概念上是一致的,也就是说卡尔曼滤波的一维信号模型和维纳滤波的信号模型是一致的。 把式(6-55)推广就得到更普遍的多维量测方程 (6-55) 上式中的称为量测矩阵,它的引入原因是,量测矢量的维数不一定与状态矢量的维数相同,因为我们不一定能观测到所有需要的状态参数。
根据状态方程 和量测方程 ,卡尔曼滤波的信号模型,如图6.12所示。 6.1.2 信号模型 根据状态方程 和量测方程 ,卡尔曼滤波的信号模型,如图6.12所示。 图6.12 卡尔曼滤波的信号模型
【例6-1】设卡尔曼滤波中量测方程为 ,已知信号的自相关函数的z变换为 噪声的自相关函数为 ,信号和噪声统计独立。求卡尔曼滤波信号模型中的 和 。
解:根据等式 可以求得 变换到时域得: 因此 又因为 , 所以 =1。
6.2 卡尔曼滤波方法 (The method of Kalman filtering) 6.2.1卡尔曼滤波的一步递推法模型 把状态方程和量测方程重新给出: (6-56) (6-57) 假设信号的上一个估计值 已知,现在的问题就是如何来求当前时刻的估计值 。
用上两式得到的和分别用和表示,得: (6-58) (6-59) 必然,观测值 和估计值 之间有误差,它们之间的差 称为新息(innovation): (6-60) 显然,新息的产生是由于我们前面忽略了 与 所引起的
用新息 乘以一个修正矩阵 ,用它来代替式(6-56)的 来对 进行估计: (6-61) 由(6-56)~(6-61)可以画出卡尔曼滤波对 进行估计的递推模型,如图6.13所示
输入为观测值 ,输出为信号估计值 。 图6.13 卡尔曼滤波的一步递推法模型
从图6.13容易看出,要估计出 就必须要先找到最小均方误差下的修正矩阵 ,结合式(6-61)、(6-56)、(6-57)得: 6.2.2 卡尔曼滤波的递推公式 从图6.13容易看出,要估计出 就必须要先找到最小均方误差下的修正矩阵 ,结合式(6-61)、(6-56)、(6-57)得: (6-62) 根据上式来求最小均方误差下的 ,然后把求到的 代入(6-61)则可以得到估计值 。
设真值和估计值之间的误差为: 误差是个矢量,因而均方误差是一个矩阵,用 表示。把式(6-62)代入得 (6-63) 均方误差矩阵: (6-64) 表示对向量取共轭转置。
为了计算方便,令 (6-65) 找到和均方误差矩阵的关系: (6-66) 把式(6-63)代入式(6-64),最后化简得:
把式(6-66)代入(6-67)得 令 , 代入上式化简: (6-68) 要使得均方误差最小,则必须
求得最小均方误差下的修正矩阵为: (6-69) 把上式代入(6-61)即可得均方误差最小条件下的 递推公式。 最小均方误差为: (6-70)
综上所述,得到卡尔曼滤波的一步递推公式: (6-71) (6-72) (6-73) (6-74)
【例6-2】设卡尔曼滤波中量测方程为 已知信号的自相关函数的z变换为 ,噪声的自相关函数为 ,信号和噪声统计独立,已知 在k=0时刻开始观测信号。试用卡尔曼滤波的公式求 和 ,k=0,1,2,3,4,5,6,7;以及稳态时的 和 。 解:由例6-6的结果知,
把上式代入式(6-71)~ (6-74)得 (1) (2) (3) (4) 求逆 把(1)代入(2)、(3)式,消去 ,再把(2)和(3)联立,得到 (5)
初始条件为 ,k=0开始观测,利用等式(4),(5)进行递推得: 上面是递推过程,还没有达到稳态的情况。
假设到了某一时刻k-1,前后时刻的均方误差相等,也就是误差不再随着递推增加而下降,达到最小的均方误差了,即稳态情况,式(5)中的误差 代入(5)式可以计算到稳态时的均方误差为: 即稳态时的修正矩阵 ,代入式4得稳态时的信号估计: 化到z域有: 。
6.3 卡尔曼滤波器的应用 (Application Kalman filter) 【例6-3】已知条件和例6-2一样,状态方程和测量方程为: 其中 , 信号和噪声统计独立。求卡尔曼滤波器的稳态 和 。
解:根据函数调用sys=ss(A,B,C,D,1),得到离散卡尔曼状态模型,采样周期这里设为1。A,C已知,由于函数调用中是设计了两个观测信号的,我们这里只有一个观测信号,所以B取[0 1],后一个1表示噪声 的系数。D取0。实际的语句如下: sys=ss(A,B,C,D,1) 然后调用函数[S,L,,H,]=kalman(sys,Q,R),设计离散卡尔曼滤波器。实际语句和计算结果如下: [s,l,,h,]=kalman(sys,0.36,1) l =0.3000 =0.6000 h =0.3750 =0.3750 这里省略了输出的S,它表示的信息是达到稳态后系统状态模型,H和 表示系统稳态的最终值
有了修正矩阵和均方误差,代入式(6-74)就可以根据观测信号得到卡尔曼滤波的估计值了。 从上面例题知道,只要确定了状态模型,就可以调用函数很快设计出卡尔曼滤波器,下面来看看卡尔曼滤波器在生物医学信号中的应用。 在生物医学信号处理中脑电图的肌电伪迹和其它噪声的消除,以及诱发电位的提取都有研究者尝试用卡尔曼滤波器来处理。本节介绍卡尔曼滤波器在诱发电位提取中的应用,方法如下:
1.自发电位模型(EEG)和诱发电位(EP)模型的建立。 如图6.14所示,EEG信号通过用AR模型建立,激励是白噪声,EP信号的激励是单位脉冲序列,用等式表示如下: 阶AR模型 d表示从该时刻开始有单位脉冲刺激。
图6.14 EEG和EP模型
从图6.14知道,观测信号是EEG和EP的线性相加,用 表示第i次刺激后测量的信号,对M次测量平均得: 叠加平均后的信号长度为N。利用先验知识建立好图6.14的模型。假设单次诱发信号和平均诱发信号的关系是延时和幅度变化但波形一致的情况,即
2.卡尔曼状态方程和量测方程的建立。 A= 是系统矩阵, 为输入矩阵 是噪声矩阵 是测量噪声 是输出矩阵 其中X表示状态变量,包括诱发信号、单位脉 冲信号、自发信号,长m+p+q+1 A= 是系统矩阵, 为输入矩阵 是噪声矩阵 是测量噪声 是输出矩阵
有了上述方程后就可以利用卡尔曼滤波公式对 进行估计,由于它包含多种状态,诱发信号和它的关系为: 自发信号和估计值的关系为: 其中k=min(m,p)。
3.设计好了卡尔曼滤波器后对数据处理的结果如图6.15所示。
习 题 对于图1中的系统模型,假设h(n)是因果的,用相关函数法推导出维纳滤波器的维纳-霍夫方程的离散形式,以及从该方程中解出了最佳滤波器 后的最小均方误差的最简式。 设线性系统如图1所示,已知 相互独立,且 , 。要求设计一个滤波器 ,试确定c使得滤波后的输出 与真实信号 的均方误差最小,即 最小。