第二章 维纳滤波与卡尔曼滤波§ 引言信号处理的实际问题,常常是要解决在噪声中提取信号的问题,因此,我们需要寻找一种所谓有最佳线性过滤特性的滤波器。
这种滤波器当信号与噪声同时输入时,在输出端能将信号尽可能精确地重现出来,而噪声却受到最大抑制。
维纳(Wiener)滤波与卡尔曼(Kalman)滤波就是用来解决这样一类从噪声中提取信号问题的一种过滤(或滤波)方法。
实际上这种线性滤波问题,可以看成是一种估计问题或一种线性估计问题。
一个线性系统,如果它的单位样本响应为h (n ),当输入一个随机信号x (n ),且)()()(n n s n x υ+=其中s (n )表示信号,)(n υ表示噪声,则输出y (n )为∑-=mm n x m h n y )()()(我们希望x (n )通过线性系统h (n )后得到的y (n )尽量接近于s (n ),因此称y (n )为s (n )的估计值,用)(ˆn s表示,即)(ˆ)(n sn y =图 维纳滤波器的输入—输出关系如图所示。
这个线性系统)(⋅h 称为对于s (n )的一种估计器。
实际上,式的卷积形式可以理解为从当前和过去的观察值x (n ),x (n -1),x (n -2)…x (n -m ),…来估计信号的当前值)(ˆn s。
因此,用)(⋅h 进行过滤的问题可以看成是一个估计问题。
由于我们现在涉及的信号是随机信号,所以这样一种过滤问题实际上是一种统计估计问题。
一般,从当前的和过去的观察值x (n ),x (n -1),x (n -2),…估计当前的信号值)(ˆ)(n s n y =称为过滤或滤波;从过去的观察值,估计当前的或将来的信号值)0)((ˆ)(≥+=N N n sn y 称为预测或外推;从过去的观察值,估计过去的信号值)1)((ˆ)(>-=N N n sn y 称为平滑或内插。
因此维纳过滤与卡尔曼过滤又常常被称为最佳线性过滤与预测或线性最优估计。
这里所谓“最佳”与“最优”是以最小均方误差为准则的。
本章仅讨论过滤与预测问题。
如果我们以ss ˆ与分别表示信号的真值与估计值,而用e (n )表示它们之间的误差,即)(ˆ)()(n sn s n e -=显然,e (n )可能是正的,也可能是负的,并且它是一个随机变量。
因此,用它的均方值来表达误差是合理的,所谓均方误差最小即它的平方的统计平均值最小:[][]22)ˆ()(ss E n e E -= 最小采用最小均方误差准则作为最佳过滤准则的原因还在于它的理论分析比较简单,不要求对概率的描述。
并且在这种准则下导出的最佳线性系统对其它很广泛一类准则而言也是最佳的。
维纳过滤与卡尔曼过滤都是解决最佳线性过滤和预测问题,并且都是以均方误差最小为准则的。
因此在平稳条件下,它们所得到的稳态结果是一致的。
然而,它们解决的方法有很大区别。
维纳过滤是根据全部过去的和当前的观察数据 ),2( ),1( ),(--n x n x n x 来估计信号的当前值,它的解是以均方误差最小条件下所得到的系统的传递函数H (z )或单位样本响应h (n )的形式给出的,因此更常称这种系统为最佳线性过滤器或滤波器。
而卡尔曼过滤是用前一个估计值和最近一个观察数据(它不需要全部过去的观察数据)来估计信号的当前值,它是用状态方程和递推的方法进行估计的,它的解是以估计值(常常是状态变量值)形式给出的。
因此更常称这种系统为线性最优估计器或滤波器。
维纳滤波器只适用于平稳随机过程,而卡尔曼滤波器却没有这个限制。
维纳过滤中信号和噪声是用相关函数表示的,因此设计维纳滤波器要求已知信号和噪声的相关函数。
卡尔曼过滤中信号和噪声是状态方程和量测方程表示的,因此设计卡尔曼滤波器要求已知状态方程和量测方程(当然,相关函数与状态方程和量测方程之间会存在一定的关系,见图及例3)。
卡尔曼过滤方法看来似乎比维纳过滤方法优越,它用递推法计算,不需要知道全部过去的数据,从而运用计算机计算方便,而且它可用于平稳和不平稳的随机过程(信号),非时变和时变的系统。
但从发展历史上来看维纳过滤的思想是40年代初提出来的,1949年正式以书[1]的形式出版。
卡尔曼过滤到60年代初才提出来[2],它是在维纳过滤的基础上发展起来的,虽然如上所述它比维纳过滤方法有不少优越的地方,但是最佳线性过滤问题是由维纳过滤首先解决的,维纳过滤的物理概念比较清楚,也可以认为卡尔曼滤波仅仅是对最佳线性过滤问题提出的一种新的算法。
§ 维纳滤波器的离散形式(I) —— 时域解维纳过滤最初是对连续信号用模拟滤波器的形式出现的,而后才有离散形式。
我们这里仅讨论维纳滤波的离散形式。
设计维纳滤波器的过程就是寻求在最小均方误差下滤波器的单位样本响应h (n )或传递函数H (z )的表达式,其实质是解维纳-霍夫(Wiener-Hopf)方程。
在要求满足因果性即物理可实现性的条件下,求解维纳-霍夫方程是一个典型的难题。
本节我们在时域求最小均方误差下的h (n ),并用)(n h opt 表示。
按图及式、、有∑-==mm n x m h n sn y )()()(ˆ)( 一个物理可实现的h (n ),必须是一个因果序列,即h (n )=0 当n <0因此上式的求和上下限应从0到∞,即∑∞=-==0)()()(ˆ)(m m n x m h n sn y上式可看成输出等于现在和过去各输入的加权之和。
为了讨论方便,上式可写成下列形式:∑∞==1)(ˆi i i x h n s式与式有如下关系:⎪⎭⎪⎬⎫-=+-==-=-=+=)()1()()1(11m n x i n x x m h i h h i m m i i i 或于是[]⎥⎥⎦⎤⎢⎢⎣⎡⎪⎭⎫ ⎝⎛-=∑∞=212)()(i i i x h n s E n e E现在的问题是需要求得使()[]2ˆss E -最小的i h ,为此,将上式对各h i 求偏导,并令其结果等于0,得)112()0 102()010i i i i j i i i i j E s n h x x j E ex E s n h x x j E ex ∞=∞=⎫⎡⎤⎛-=⎪⎢⎥ ⎝≥⎣⎦⎬⎪⎡⎤=⎣⎦⎭⎫⎡⎤⎛⎫-=⎪⎢⎥ ⎪⎝⎭≥⎣⎦⎬⎪⎡⎤=⎣⎦⎭∑∑式(2-10)称为正交性原理,这是借用当二个矢量正交时它们的点乘等于零的关系。
正交性原理也可以借用几何图形表示,如图所示。
正交性原理容易用i 的求和项数为2的特殊情况予以推广来理解。
在此情况下,21ˆx x s和必在共有的平面中,而e 则垂直于此平面,于是,21 ,x e x e ⊥⊥同时,此时e 的长度最短。
1z即图 用几何图形理解正交性原理由式可见,满足正交性原理与满足最小均方误差的条件是等价的。
由图所得到的sˆ即是满足最小均方误差的估计值。
因而我们可以从式中解得opt h 。
如果令[][]j j i sx j x x j i sx E x x E φφ∆∆及分别为x 的自相关函数和x 与s 的互相关函数,代入式得正交性原理的另一表达形式是∑∞=≥=11 ,i x x i s x j h ij jφφ如果我们将式的关系代回式及式,则式及式分别成为0 0)()()()(0≥=⎭⎬⎫⎩⎨⎧-⎥⎦⎤⎢⎣⎡--∑∞=k k n x m n x m h n s E m opt及0k ,)()()(0≥-=∑∞=m k m h k xx m opt xs φφ式与式称为维纳-霍夫方程(离散形式)。
从维纳-霍夫方程式中解出h ,它就是在最小均方误差下的最佳)(opt h h =。
注意式(或式)有一个约束条件)1(0≥≥j k 或,因此,虽然在式中的h (k )与)(k xs φ有卷积的形式,但是我们不能简单地将式应用卷积定理变换到z 域求H (z ),然后从H (z )的反z 变换求得h (k )。
有了0≥k 这个约束条件,要从维纳-霍夫方程求解最佳h (k )就变得困难。
式中0≥k 的约束条件是来源于我们假设了h (n )是一个物理可实现的因果序列。
如果不加物理可实现的约束,式中的0≥k 的约束条件也将不复存在。
因此非因果的维纳-霍夫方程为∑∞-∞=-=m xx optxs m k m hk )()()(φφ它没有约束条件,我们容易把它变换到z 域得 )()()(z z H z xx opt xs φφ=()()()xs opt xx z H z z φφ=或[]⎥⎦⎤⎢⎣⎡==--)()(Ζ)(Ζ)(11z z z H n h xx xs opt opt φφ从式来看,0≥k 的约束就是只能取过去和当前的)(⋅x 的读数。
如果从{})()(n s n x 求的估计值,并不要求在当时立即得到,而许可在将来(经过等待或滞后)得到,那么式的求和下限就不限制在m =0而可以允许m <0,此时,就没有h (m <0)=0的约束,对于方程,相应地也就没有k >0的约束了。
但是,如果我们不容许上述等待或滞后,那就必须考虑因果性约束,此时可以用下列方法来逼近,从而得到方程的解。
设h (n )是一个因果序列可以用有限长(长度为N )的序列去逼近它,此时式,,,,分别成为⎪⎪⎭⎪⎪⎬⎫=-==∑∑=-=Ni i i N m x h n sm n x m h n sn y 11)(ˆ)()()(ˆ)([]⎪⎭⎪⎬⎫===⎭⎬⎫⎩⎨⎧⎥⎦⎤⎢⎣⎡-∑=0 , ,2 ,1 ,01j i N i i i ex E N j x x h s E⎪⎪⎭⎪⎪⎬⎫-=-===∑∑-==1011 , ,1 ,0k ),()()( , ,2 ,1 ,N m xx xs Ni x x i s x N m k m h k Nj h ij j φφφφ于是我们可以将式的维纳-霍夫方程写成矩阵形式。
为此先将式中j =1, 2, …, N 分别代入,写成N 个线性方程:⎪⎪⎭⎪⎪⎬⎫=+++==+++==+++=s x x x N x x x x s x x x N x x x x sx x x N x x x x N N N N N N N h h h N j h h h j h h h j φφφφφφφφφφφφ 21222212112111212121 2 1于是,它的矩阵形式为[][][]xx xs h φφ=式为维纳-霍夫方程的矩阵形式,其中[]⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=N h h h h 21式中h 1, h 2, …, h N 为h (n )序列在n =0, 1, …, N -1时的值。
[]⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡=N N N N N N x x x x x x x x x x x x x x x x x x xx φφφφφφφφφφ 212221212111称为x 的自相关矩阵。