当前位置:文档之家› 维纳滤波与卡尔曼滤波

维纳滤波与卡尔曼滤波

维纳滤波与卡尔曼滤波
维纳滤波与卡尔曼滤波

第二章 维纳滤波与卡尔曼滤波

§2.1 引言

信号处理的实际问题,常常是要解决在噪声中提取信号的问题,因此,我们需要寻找一种所谓有最佳线性过滤特性的滤波器。这种滤波器当信号与噪声同时输入时,在输出端能将信号尽可能精确地重现出来,而噪声却受到最大抑制。

维纳(Wiener)滤波与卡尔曼(Kalman)滤波就是用来解决这样一类从噪声中提取信号问题的一种过滤(或滤波)方法。

实际上这种线性滤波问题,可以看成是一种估计问题或一种线性估计问题。 一个线性系统,如果它的单位样本响应为h (n ),当输入一个随机信号x (n ),且

)()()(n n s n x υ+=

(2.1)

其中s (n )表示信号,)(n υ表示噪声,则输出y (n )为

∑-=m

m n x m h n y )()()(

(2.2)

我们希望x (n )通过线性系统h (n )后得到的y (n )尽量接近于s (n ),因此称y (n )为s (n )的估计值,用)(?n s

表示,即

)(?)(n s

n y = (2.3)

图2.1 维纳滤波器的输入—输出关系

如图2.1所示。这个线性系统)(?h 称为对于s (n )的一种估计器。

实际上,式(2.2)的卷积形式可以理解为从当前和过去的观察值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 s

n y 称为预测或外推;从过去的观察值,估计过去的信号值)1)((?)(>-=N N n s

n y 称为平滑或内插。因此维纳过滤与卡尔曼过滤又常常被称为最佳线性过滤与预测或线性最优估计。这里所谓“最佳”与“最优”是以最小均方误差为准则的。本章仅讨论过滤与预测问题。

如果我们以s

s ?与分别表示信号的真值与估计值,而用e (n )表示它们之间的误差,即

)(?)()(n s

n s n e -= (2.4)

显然,e (n )可能是正的,也可能是负的,并且它是一个随机变量。因此,用它的均方值来表达误差是合理的,所谓均方误差最小即它的平方的统计平均值最小:

[][]

22)?()(s

s E n e E -= 最小 (2.5)

采用最小均方误差准则作为最佳过滤准则的原因还在于它的理论分析比较简单,不要求对概率的描述。并且在这种准则下导出的最佳线性系统对其它很广泛一类准则而言也是最佳的。

维纳过滤与卡尔曼过滤都是解决最佳线性过滤和预测问题,并且都是以均方误差最小为准则的。因此在平稳条件下,它们所得到的稳态结果是一致的。然而,它们解决的方法有很大区别。维纳过滤是根据全部过去的和当前的观察数据 ),2( ),1( ),(--n x n x n x 来估计信号的当前值,它的解是以均方误差最小条件下所得到的系统的传递函数H (z )或单位样本响应h (n )的形式给出的,因此更常称这种系统为最佳线性过滤器或滤波器。而卡尔曼过滤是用前一个估计值和最近一个观察数据(它不需要全部过去的观察数据)来估计信号的当前值,它是用状态方程和递推的方法进行估计的,它的解是以估计值(常常是状态变量值)形式给出的。因此更常称这种系统为线性最优估计器或滤波器。维纳滤波器只适用于平稳随机过程,而卡尔曼滤波器却没有这个限制。维纳过滤中信号和噪声是用相关函数表示的,因此设计维纳滤波器要求已知信号和噪声的相关函数。卡尔曼过滤中信号和噪声是状态方程和量测方程表示的,因此设计卡尔曼滤波器要求已知状态方程和量测方程(当然,相关函数与状态方程和量测方程之间会存在一定的关系,见图2.13及例3)。卡尔曼过滤方法看来似乎比维纳过滤方法优越,它用递推法计算,不需要知道全部过去的数据,从而运用计算机计算方便,而且它可用于平稳和不平稳的随机过程(信号),非时变和时变的系统。但从发展历史上来看维纳过滤的思想是40年代初提出来的,1949年正式以书[1]的形式出版。卡尔曼过滤到60年代初才提出来[2],它是在维纳过滤的基础上发展起来的,虽然如上所述它比维纳过滤方法有不少优越的地方,但是最佳线性过滤问题是由维纳过滤首先解决的,维纳过滤的物理概念比较清楚,也可以认为卡尔曼滤波仅仅是对最佳线性过滤问题提出的一种新的算法。

§2.2 维纳滤波器的离散形式(I) —— 时域解

维纳过滤最初是对连续信号用模拟滤波器的形式出现的,而后才有离散形式。我们这里仅讨论维纳滤波的离散形式。

设计维纳滤波器的过程就是寻求在最小均方误差下滤波器的单位样本响应h (n )或传递函数H (z )的表达式,其实质是解维纳-霍夫(Wiener-Hopf)方程。在要求满足因果性即物理可实现性的条件下,求解维纳-霍夫方程是一个典型的难题。本节我们在时域求最小均方误差下的h (n ),并用)(n h opt 表示。按图2.1及式(2.1)、(2.2)、(2.3)有

∑-==m

m n x m h n s

n y )()()(?)( 一个物理可实现的h (n ),必须是一个因果序列,即

h (n )=0 当n <0

因此上式的求和上下限应从0到∞,即

∑∞

=-==0

)()()(?)(m m n x m h n s

n y (2.6)

上式可看成输出等于现在和过去各输入的加权之和。为了讨论方便,上式可写成下列形式:

∑∞

==1

)(?i i i x h n s

(2.7)

式(2.7)与式(2.6)有如下关系:

??

?

??

-=+-==-=-=+=)()1()()1(1

1m n x i n x x m h i h h i m m i i i 或 (2.8)

于是

[]

???

???????? ??-=∑∞=212

)()(i i i x h n s E n e E

(2.9)

现在的问题是需要求得使()[]

2

?s

s E -最小的i h ,为此,将上式对各h i 求偏导,并令其结果等于0,得

)112()0 1

02()01

0i 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)

式(2-10)称为正交性原理,这是借用当二个矢量正交时它们的点乘等于零的关系。正交性原理也可以借用几何图形表示,如图2.2所示。正交性原理容易用i 的求和项数为2的特殊情况予以推广来

理解。在此情况下,21?x x s

和必在共有的平面中,而e 则垂直于此平面,于是,21 ,x e x e ⊥⊥同时,此时e 的长度最短。

1

z

图2.2 用几何图形理解正交性原理

由式(2.10)可见,满足正交性原理与满足最小均方误差的条件是等价的。由图2.2所得到的s

?即是满足最小均方误差的估计值。因而我们可以从式(2.10)中解得opt h 。

如果令[][]

j j i sx j x x j i sx E x x E φφ??及分别为x 的自相关函数和x 与s 的互相关函数,代入式(2.10)得正交性原理的另一表达形式是

∑∞

=≥=1

1 ,i x x i s x j h i

j j

φφ

(2.11)

如果我们将式(2.8)的关系代回式(2.10)及式(2.11),则式(2.10)及式(2.11)分别成为

0 0)()()()(0≥=?

?????-???

???--∑∞

=k k n x m n x m h n s E m opt

(2.12)

0k ,)()()(0

≥-=∑∞

=m k m h k xx m opt xs φφ

(2.13)

式(2.11)与式(2.13)称为维纳-霍夫方程(离散形式)。从维纳-霍夫方程式中解出h ,它就是在最小均方误差下的最佳)(opt h h =。

注意式(2.13)(或式(2.11))有一个约束条件)1(0≥≥j k 或,因此,虽然在式(2.13)中的h (k )与

)(k xs φ有卷积的形式,但是我们不能简单地将式(2.13)应用卷积定理变换到z 域求H (z ),然后从H (z )

的反z 变换求得h (k )。有了0≥k 这个约束条件,要从维纳-霍夫方程求解最佳h (k )就变得困难。式(2.13)中0≥k 的约束条件是来源于我们假设了h (n )是一个物理可实现的因果序列。如果不加物理可实现的约束,式(2.13)中的0≥k 的约束条件也将不复存在。因此非因果的维纳-霍夫方程为

∑∞

-∞

=-=

m xx opt

xs m k m h

k )()()(φφ

(2.14)

它没有约束条件,我们容易把它变换到z 域得 )()()(z z H z xx opt xs φφ=

()

()()

xs opt xx z H z z φφ=

(2.15)

[]

??

?

???==--)()(Ζ)(Ζ)(11z z z H n h xx xs opt opt φφ

(2.16)

从式(2.12)来看,0≥k 的约束就是只能取过去和当前的)(?x 的读数。如果从{})()(n s n x 求的估计值,并不要求在当时立即得到,而许可在将来(经过等待或滞后)得到,那么式(2.6)的求和下限就不限制在m =0而可以允许m <0,此时,就没有h (m <0)=0的约束,对于方程(2.13),相应地也就没有k >0的约

束了。

但是,如果我们不容许上述等待或滞后,那就必须考虑因果性约束,此时可以用下列方法来逼近,从而得到方程(2.13)的解。

设h (n )是一个因果序列可以用有限长(长度为N )的序列去逼近它,此时式(2.6),(2.7),(2.10),(2.11),(2.13)分别成为

???

????

=-==∑∑=-=N

i i i N m x h n s

m n x m h n s

n y 11

)(?)()()(?)( (2.17)

[]

??

?

??===???

?????????-∑=0 , ,2 ,1 ,01

j i N i i i ex E N j x x h s E (2.18)

??

?

????

-=-===∑∑-==1

01

1 , ,1 ,0k ),()()( , ,

2 ,1 ,N m xx xs N

i x x i s x N m k m h k N

j h i

j j φφφφ (2.19)

于是我们可以将式(2.19)的维纳-霍夫方程写成矩阵形式。为此先将式中j =1, 2, …, N 分别代入,写成N 个线性方程:

???

?

?

??=+++==+++==+++=s x x x N x x x x s x x x N x x x x s

x 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

(2.20)

于是,它的矩阵形式为

[][][]xx xs h φφ=

(2.21)

式(2.21)为维纳-霍夫方程的矩阵形式,其中

[]?????

?

??????=N h h h h 21

(2.22)

式(2.22)中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

(2.23)

称为x 的自相关矩阵。

[]????

??

????????=s x s x s x xs N φφφφ 21

(2.24)

称为x 与s 的互相关矩阵。从式(2.21)可解出

[][][][]xs xx opt h h φφ1-==

(2.25)

由此可见,用有限长的h (n )来实现维纳滤波器时,当已知[][]xs xx φφ及,就可以按式(2.25)在时域内解得满足因果律的[]opt h 。但是,当N 大时,计算工作量很大,需要知道[]xs φ并计算[]xx φ及其逆矩阵。当N 大时,对计算机的存储量要求也很大。如果在计算过程中想增加h (n )的长度N 来提高逼近精度时,就需要在新N 的基础上重新进行计算。因此,最小方差准则的维纳滤波器,用有限冲激响应的FIR 滤波器来实现,并不是有效的办法。

§2.3 维纳滤波器的离散形式(II)——z 域解

在上一节我们讨论到,当要求维纳滤波器单位样本响应h (n )是一个物理可实现的因果序列时,所得到的维纳-霍夫方程式(2.13)将附有0≥k 的约束条件。在此约束条件下,式(2.13)不能直接转入z -域求解它的)()(n h z H opt opt ?。这使得在要求满足物理可实现条件下,求解维纳-霍夫方程成为一个十分困难的问题。在本节中我们将利用把x (n )加以白化的方法来求维纳-霍夫方程的z 域解(这种方法是由波德(Bode)和香农(Shannon)首先提出的)。为此,先引入信号模型的概念。

任何具有有理功率谱密度的随机信号都可以看成是由一白色噪声)(n w 激励一物理网络所形成。一般信号s (n )的功率谱密度)(z ss Φ是z 的有理分式,故s (n )的信号模型可用图2.3表示,其中A(z)表示信号s (n )的形成网络的传递函数。由于白噪声的自相关函数及功率谱密度分别为 )()(2

n n w ww δσ=Φ

常数==Φ2)(w ww z σ

所以s(n)的功率谱密度可表示为

)()()(12-=Φz A z A z w ss σ

(2.26)

由于)( ),()()(n x n v n s n x 因此+=的信号可表示成图2.4的形式。

如果x (n )的功率谱密度也为z 的有理分式,我们可以将x (n )的信号模型直接表示成图2.5的形式,其中B (z )是x (n )的形成网络的传递函数。同样,有

)()()(12-=Φz B z B z xx ωσ

(2.27)

为了白化x (n ),我们将直接用图2.5的信号模型。

图2.3 s(n)的信号模型图2.4 x(n)的信号模型图2.5 维纳滤波器的信号模型按式(2.27),如果1

1

2,1

ωj

e r

=是)

(z

xx

Φ在圆内的一对共轭极点(或零点)(设1

1

<

r),则1

/1r

e

z jω

=必是)

(z

xx

Φ在圆外的一对相应的极点(或零点),如图2.6所示。今令B(z)是由圆内的零极点组成,则)

(1-z

B是由相对应的圆外的零极点组成。故B(z)是一个因果(或物理可实现)的并且是最小相移的网络。

由图2.5可得

)

(

)

(

)

(z

W

z

B

z

X=

或)

(

)

(

1

)

(z

X

z

B

z

W=(2.28)

由于B(z)是一个最小相移网络函数,故1/B(z)也是一个物理可实现的最小相移网络,因此可以利用式(2.28)的关系白化x(n)。

将图2.1重画于图2.7(a),如前所述,设计维纳滤波器的问题就是求在[]2)?

(s

s

E-最小条件下的最佳H(z)的问题。为了便于求得这个H opt(z),将图2.7(a)中的滤波器分解成二个串联的滤波器:1/B

(z)与G(z),如图2.7(b)所示,于是

-1)

(b)

(a)

图2.6 B(z)是由单位圆内的图2.7 得用白化x(n)的方法求

零极点组成,B(z-1)是由对应解维纳-霍夫方程

的单位圆外的零极点组成。

()

)

(

)

(

z

B

z

G

z

H=(2.29)

其中B(z)由)

(z

xx

Φ在单位圆内的零极点组成。已知信号的)

(z

xx

Φ即可按式(2.27)求得B(z)(或1/B(z)),它是一个物理可实现的因果系统。于是,求在最小均方误差下的最佳H opt(z)的问题就归结为求最佳G(z)的问题了。我们可以对G(z)加以因果性或非因果性的约束具体求解。由于G(z)的激励源

是将x (n )白化后得到的白噪声,这就使得求图2.7(b )中的最佳G (z )比求图2.7(a )中的最佳H (z )容易得多。下面我们就分二种情况:即没有物理可实现约束的(非因果的)与有物理可实现约束的(因果的)维纳波器分别进行讨论。

2.3.1 没有物理可实现性约束的(非因果的)维纳滤波器 按图2.7(b )有

∑∞

-∞

=-=k k n w k g n s

)()()(?

(2.30)

这里g (k )为G (z )的逆z 变换。)(?n s

的均方误差为 []

??

??????????????--=∑∞-∞=22

)()()()(k k n w k g n s E N e E

?

?????--+--=∑∑∑∞-∞=∞

-∞=∞-∞=k r k r n w k n w r g k g n s k n w k g n s E )()()()()()()(2)(2

对上式逐项求均值: []

)0()(2ss n s E φ==第一项

[]∑∞

-∞=-=k n s k n w E k g )()()(2第二项

∑∞

-∞

=-=k s k k g )()(2ωφ

[]∑∑∞

-∞=∞

-∞

=--=

k r r n k n E r g k g )()()()( ωω第三项

∑∑∞-∞=∞

-∞

=-=

k r k r r g k g )()()( ωωφ

∑∞

-∞

==k w k g

)(2

代入原式,并进行部分配方得

[]

∑∑∞

-∞=∞

-∞

=+

-=k k s ss k g

k k g n e E 22

2

)()()(2)0()(ω

ωσφφ

∑∑∞

-∞=∞

-∞=-???? ??-+=k s k s ss k k k g 222

)()()()0(ω

ωωωωσφσφσφ (2.31)

现在让我们来求满足最小均方误差条件下的g (k )。式(2.31)中只有第二项与g (k )有关,且该项恒为正,所以可以利用第二项等于零的条件求得均方误差最小的g (k ),即

∞<<∞-=-

k k k g s opt 0)

()(ω

ωωσφσ 得

∞<<∞-=

k k k g s o p t )

()(2

ω

ωσφ (3.32)

其z 变换为

)(1

)(2

z z G s opt ωω

σΦ=

(2.33)

按式(2.29),得

)

()

( 1)()()(2z B z z B z G z H s

opt ωωσΦ==

利用相关-卷积定理可以证明 )()()(1z z B z s xs ωΦ=Φ- (2.34)

)

()

()( 1-Φ=

Φ∴z B z z xs s ω

代入上式,得

()

)()()()(1

)(1

2z z z B z z B z H xx

xs xs opt ΦΦ=Φ?=

-ωσ (2.35)

式(2.35)就是式(2.15)。

如果设)()()(n n s n x υ+=,且其中的)()(n n s υ与不相关,即对任何m ,[]0)()(=+?m n n s E υ,则

[]()[][]?

?

?

??

Φ+Φ=Φ=+=+?+=+=)

()()()()()( )()()()()()(z z z m m n s n s E m n s n n s E m n s n x E m ss xx ss xs υυφυφ

(2.36)

代入式(2.35),得

)

()()

()(z z z z H ss ss opt υυΦ+ΦΦ=

(2.37)

将ω

j e z =代入上式,得非因果的维纳滤波器的频率特性为

)()()

()()()()()()(ωωωυυ

ωυυωωωωω

P P P e e e e e e H ss ss j j xs j ss j xx j xs j opt +=

Φ+ΦΦ=ΦΦ= (2.38)

上式说明)(ω

j opt e

H 决定于信号与噪声的功率谱密度。当没有噪声时,,0)(=ωυυP 1)(=ω

j opt e H ;

随着)(ωυυP 的增加,)(ω

j opt e

H 将减小;当0)(=ωss P 而0)0(≠υυP 时,0)(=ω

j opt e H ;即

?????

????

≠≠<+=≠≠==0)(0)( ,1)()()(0)(0)( ,10)(0)( ,0)(ωωωωωωωωωυυυυυυυυωP P P P P P P P P e H ss ss

ss ss ss j opt 及当而当而当

(2.39)

现在设)(ωss P 与)(ωυυP 随ω的变化特性如图2.8中的实线所示,则维纳滤波器的)(ω

j opt

e H ,按式(2.39),将如图2.8中的虚线所示。由图可见,在噪声谱密度愈大的频率)(ωj opt e H 的值将愈小,因而这种滤波器的频率特性当然会有从噪声中提取信号的能力,这与我们直观想象中所要求的滤器特性是一致的。

ω

图2.8 )(ωj opt e H 决定于)(ωss P 与)(ωυυP 特性的例子

下面让我们求非因果维纳滤波器的最小均方误差()[]

min 2n e E 。按式(2.31)和(2.32)有

()[]

∑∞

-∞

=-

=k s

ss k n e E )(1

)0(2

2

min 2

ωω

φσφ

(2.40)

利用帕塞伐尔(Parseval)定理,上式在z -域可表示为

()[]

z

dz z z z j n e E s s ss ???????ΦΦ-Φ=-)()(1)(2112min

2

ωωωσπ (2.41)

上式第一项是因为

?-Φ=

dz z z j

m m ss ss 1)(21)(πφ 因而有

?Φ=

z

dz z j ss

ss )(21)0(πφ 上式第二项是因为,按帕塞伐尔定理:

∑?∞

-∞

=-***

=

n C dz z z Y z X j

n y

n x 1

)/1()(21)()(π (2.42)

当y *(n )=x (n )时,上式成为

?∞

-∞

=--=

n C

dz z z X z X j n x 112)()(21

)(π (2.43)

于是有

∑?∞

-∞

=-ΦΦ=k C s s s

z

dz z z j k )()(211

)(1

12

22

ωωω

ωω

πσ

φσ 再将式(2.34)代入式(2.41)得

()[]

()

()???????ΦΦ-Φ=--C xs xs ss z

dz

z B z z B z z j n e E )()(1)(21112min

2

ωσπ 考虑到式(2.35),有

()[]

[]

?-Φ-Φ=

C xs opt ss z

dz z z H z j n e E )()()(211min 2π (2.44)

当)()(n n s υ与不相关时,)()()( ),()(z z z z z ss xx ss xs υυΦ+Φ=ΦΦ=Φ,又因为

)()(1-Φ=Φz z ss ss ,代入上式得

()[]?Φ+ΦΦΦ=

C ss ss z

dz z z z z j n e E )()()()(21

min 2υυυυπ (2.45)

取单位圆为积分围线,以ω

j e z =代入得

()[

]

ωωωωωπ

π

π

υυυυd P P P P n e E ss ss ?-

+=

)

()()

()(21

min 2

(2.46)

由式(2.46)可见,()[]

min 2n e E 仅当信号与噪声的功率谱不相覆盖时方为零。

2.3.2 有物理可实现性约束的(因果的)维纳滤波器

对于有物理可实现性约束的维纳滤波器:0 ,0)(<=k k g 当,于是式(2.30)与式(2.31)分别成为

∑∞

=-=0

)()()(?k k n k g n s

ω

(2.47)

()[]

∑∑∞

=∞

=-?????

?-+=0

2

2

2

02)(1)()()0(k s k s ss k k k g n e E ωωωωωφσσφσφ (2.48)

所以

??

?<≥=0

,00

,/)()(2

n n n n g s opt ωωσφ (2.49)

如果某函数f (n )的z 变换为F (z ),即

)()(z F n f ?

我们把)()(n u n f 的z 变换用[F (z )]+表示,即

[]+?)()()(z F n u n f

)()(n u n f 代表一个因果序列,只在n >0时存在。如果它又是一个稳定序列,则[F (z )]+的全部极点必

定都在单位圆内。于是式(2.49)的z 变换可以写成

[]()

+

-+???

???Φ=Φ=

=

12

2)()(1)()(1)

()()(z B z z B z z B z B z G z G xs s opt opt ωωωσσ (2.51) 式(2.51)即是我们要求的因果的(物理可实现的)维纳滤波器的传递函数。它与式(2.35)的非因果的维纳滤波器的传递函数比较,除了多一个[ ]+外,其它完全相同。 因果的维纳滤波器的最小均方误差为

()[]

∑∞

=-

=0

2

min 2

)(1

)0(k s ss k n e E ωω

φσφ

[]∑∞

-∞

=-

=k s

s

ss k k u k )()()(1

)0(2ωωω

φφσφ

利用帕塞伐尔定理,上式可用Z 域表示如下:

()[]

[]???????ΦΦ-Φ=-+C s s ss z

dz z z z j n e E )()(1)(2112min

2

ωωωσπ

???????Φ?

?????Φ-Φ=-+-C xs xs ss z

dz

z B z z B z z j )()()()(1

)(21112

ω

σπ

[]

?-Φ-Φ=

C xs opt ss z

dz z z H z j )()()(211π (2.52)

这里可以取单位圆作为积分围线,将式(2.52)与式(2.44)比较可见,因果维纳滤波器的()[]

min 2n e E 表达式(2.52)与非因果维纳滤波器的()[]

min 2n e E 表达式(2.44)具有完全相同的形式,只是二者的)(z H opt 有所不同,前者应按式(2.51)计算,而后者应按式(2.35)计算。 [例1] 设已知)()()(n n s n x υ+=,以及 )

8.01)(8.01(36

.0)(1z z z ss --=

Φ-

1)(=Φz υυ (白噪声)

0)(=Φz υυ

()不相关与)()(n n s υ

其中s (n )代表所希望得到的信号,)(n υ代表加性白噪声。求物理可实现与物理不可实现这二种情况下的)(z H opt 及()[]

min 2

n e E 。

[解] 因为0)(=Φz s υ

所以

1)

8.01)(8.01(36

.0)()()(1

+--=

Φ+Φ=Φ-z z z z z ss xx υυ

)

8.01)(8.01()

5.01)(5.01(

6.11

1z z z z ----=-- 又因为)()()(12

-=Φz B z B z xx ωσ

其中B (z )由单位圆内的零极点组成,B (z -1)由单位圆外的零极点组成,上两式比较得

z z z B z

z z B 8.015.01)( ;8.015.01)( ;6.11

1

12

--=--==---ωσ (1) 物理可实现情况

??

?

???Φ=

-)()()(1)(12z B z z B z H xs opt ωσ

+

---??????----=)5.01)(8.01(36

.0)5.01(6.18.011

11z z z z 因为

n n z z Z )2(53)8.0(53)5.01)(8.01(36.01

1-=??

????---- 对于n n )8.0(5

3

,0只取

≥项。所以

1

18.015

/3)5.01)(8.01(36.0-+--=??????--z

z z

1

1115.018

/38.015/3)5.01(6.18.01)(-----=-?--=z

z z z z H opt 利用式(2.52)并考虑到)()()()(11--Φ=Φ=Φ=Φz z z z xs ss ss xs ,得

[]

[]

?-Φ-Φ=

C xs opt ss z

dz z z H z j n e E )()()(21)(1min 2π

???????--?----=

---C z

dz z z z z z j )8.01)(8.01(36

.05.018/3)8.01)(8.01(36.021111π

?----=

C dz z z z z j )

5.0)(8.0/1)(8.0()

5.08/5(45.021π 取单位圆为积分围线,上式等于单位圆内的积点)5.08.0(==z z 及的留数之和,即

[]

)

8.0/15.0)(8.05.0(5.05.08545.0)5.08.0)(8.0/18.0(5.08.08545.0)(min

2--?

?? ??-?-+--??? ??-?-=

n e E

#8/34/5.1==

而在经过此滤波器以前的均方误差为

[

][]{}[

]

1)0()()()()(22

2=Φ==-=υυυn E n s n x E n e E

所以通过维纳滤波器后均方误差下降8/3(≈2.7)倍。 (2) 非物理可实现的情况

)

()()

()()()(z z z z z z H ss ss xx xs opt υυΦ+ΦΦ=

ΦΦ=

1

)

8.01)(8.01(36

.0)

8.01)(8.01(36

.011+----=--z z z z

# )

5.01)(5.01(225

.01z z --=

-

[]

[]

?-Φ-Φ=

C xs opt ss z

dz z z H z j n e E )()()(21)(1min 2π

???

???????? ??---?--=--C z dz z z z z j )5.00)(5.01(225

.01)8.01)(8.01(36.02111π

?------=-C dz z z z z z z z j )

2)(5.0)(8.0/1)(8.0()

5.05.0025.1(9.0211π 取单位圆为积分围线C 。在单位圆内有二个极点:5.08.0==z z 与。H 式等于该二个极点的留数,因此

[]

)28.0)(5.08.0)(8.0/18.0()

8.05.08.0/5.0025.1(8.09.0)(min 2---?--?=

n e E

# 10/3)

25.0)(8.0/15.0)(8.05.0()

5.05.05.0/5.0025.1(5.09.0=---?--?+

前面求得物理可实现的[]

8/3)(min 2=n e E ,所以在此例中非物理可实现情况的均方误差略小于(即稍好于)物理可实现的情况。可以证明,物理可实现情况的最小均方误差总不会小于非物理可实现的情况。

§2.4 维纳预测器

前面讨论的维纳滤波器是一种估计器,是用观测到的x (n )的当前和全部过去数据

x (n ),x (n -1),x (n -2),…来估计当前的值)(?n s

,使估计的当前值与输入))()()((n n s n x υ+=的信号部分s (n )的当前值均方误差最小。本节将讨论维纳预测器,他同样也是一种估计器,但它是以观测到的全

部过去数据来估计当前或将来的值0),(?≥+N N n s

,使估计的)(?N n s +与真值s (n +N )的均方误差最小。

如果输入x (n )中没有噪声)()( ),(n s n x n =即υ,在这种情况下估计s (n +N )的问题称为纯预测问题。本节将着重讨论纯预测问题。 2.4.1 预测的可能性

我们所讨论的信号是随机的,任一时刻x (n )或s (n )的取值是具有偶然性的,即使在已知该序列以前的全部取值的情况下,仍然不能精确确定当前的取值,当然也更无法精确确定今后某个时刻的取值。但是通过估计的办法,利用x (n )与s (n )的某些统计特性,可以预测和确定当前和今后最可能的取值。在统计平均的意义上,我们说预测是可能的。

任何一个输入x (n ),可以从它的自相关函数了解它在任两点间相关(联系)的程度。换句话说,如果知道了自相关函数)(m xx φ以及x (n )在一个点及其全部过去的取值,就可以估计它在其后另一点的取值。当知道现在和全部过去的取值时,可以推测它在将来某一点的可能值,这就是一种预测。我们前面已提到一个随机信号x (n )可看成一个随机的白色噪声)(n ω通过一个线性系统B (z )产生的,如果2.5所示。从这个意义上看,一个随机信号x (n )的自相关性是由该线性系统B (z )的惯性造成的。 按图2.5,x (n )的自相关函数的z 变换为

)()()()(1z z B z B z xx ωΦ=Φ-

因为)(n ω是白色噪声,所以有 )()(2

m m δσφωωω=

2

)(ω

ωωσ=Φz 从而)()()(12

-=Φz B z B z xx ωσ

白色噪声的自相关函数为)()(2m m δσφωωω=,即,对于恒有 ,0≠m 0)(=m ωωφ,这说明白色噪

声)(n ω的各不同时间点上的值是不相关的。但白色噪声)(n ω通过一个系统B (z )后,如果B (z )是一个有惯性的系统,则x (n )一定是非白色的,即x (n )在各不同时间点上的值一定是相关的。x (n )的自相关函数)(m xx φ或其z 变换)(z xx Φ表达了这种相关性。因此,x (n )在各不同时间点上的值的相关性是起因于B (z )的惯性。如果B (z )的特性(惯性)已知,x (n )的自相关性当然也就知道了。

)()()(12-=Φz B z B z xx ωσ正表达了B (z )的特性与x (n )的相关性之间的关系,它说明了系统的惯性与

系统输出信号的自相关函数之间的关系。总上,可以利用系统的惯性来进行预测。

例如,当)(n ω的样本序列仅为()0)( ,0 ,=>n n n ωδ有当时。此时,我们可以精确地预测(知道)n >0时的s (n )值。因为现在x (n )=s (n )= b (n ),其中b (n )为B (z )的逆z 变换。而如果系统的B (z )已知,b (n )

就是已知的。事实上,因为当n >0时,)(0 ,0)(n s n n 的故>=ω完全决定于系统的惯性。系统有惯性,响应b (n )就有尾迹如图(2.9)(b )及(c )所示,在n >0时的s (n )是系统对()n δ响应的尾迹。现在如果)(n ω如图(2.9)(d )所示(在此例中)(n ω仅在n =0, 1, 2, 3时有值,0)( ,3=>n n ω),那么也同样可以精确地预测(知道)在将来任何n 值时的s (n )值。因为任何)(n ω的样本序列都可看成是在不同时间出现的δ函数之和,即

∑=-=n

i i i n A n 0

)()(δω

于是

∑=-===n

i i i n b A n b n w n s n x 0

)()(*)()()(

所以在任何将来时刻的s (n )值是完全可以由系统的b (n )的惯性确定的,它等于各)(i n b A i -在该时刻的尾迹之和如图2.9(e )所示。综上所述,如果我们仅观察到输入)(n ω在0到n 的一段样本序列所激励出来的系统响应s (n ),并且已知当N >0时0)(=+N n ω,那么只要我们知道系统的惯性,就可以精确地预测将来任何(n +N )时刻的s (n +N )值。

(a )

(b )

(c )

(d )

(e )

图2.9 利用系统的惯性进行预测

现在如果我们仅观察到)(n ω在n =0到n 的一段样本序列的响应s (n ),但是)0)((>+N N n 当ω的值并不一定等于0,此时s (n +N )不仅决定于系统的惯性,还与)0)((>+N N n ω的状态有关。然而我们并不能确切地知道)0)((>+N N n ω的状态。但是如果已知)(n ω的自相关函数,就可以根据)0)((>+N N n ω的统计平均特性以及系统的惯性来估计(或预测)s (n +N )的值。

这种估计当然不可能与

真值完全相同,而会有一定的误差。这是因为)0)((>+N N n ω本身的每个都是随机的、不确定的,而我们只观察到)(n ω在n 从0到n 的样本序列的响应s (n )。这里要强调的是,这种预测是可能的、有根据的。

上面所讨论的有关预测的物理概念,可以用手推动的一个钟摆来比喻。如果推了n 次后不再推动了,我们可以根据第n 次推摆后的状态(这个状态与过去n 次手推动的力的情况有关),以及钟摆的惯性,而完全确定它接下来运动规律。如果我们只观察到第n 次时钟摆的状态,而n 次以后仍继续用手推,且n 次以后手推动的情况是随机的,即只知道它的统计特性,没有观察到它的真值,则只能用估计的方法预测它后来的运动规律,而不能确知它后来的运动规律。

综上所述,当我们要从观测到的s 的当前值s (n )及其全部过去值估计将来值)(?N n s

+(N >0)时。如果当N >0,0)(=+N n ω,则)(?N n s

+仅由系统B (z )的惯性决定。已知B (z )的特性(惯性),就可以从s (n )的过去值和当前值精确地预测s (n +N )的值,即估计到的)()(?N n s N n s

+=+(真值)。但如果当N >0,0)(≠+N n ω,则s (n +N )的值应由系统的惯性及)0)((>+N N n ω的值共同确定。虽然我们不可能知道)0)((>+N N n ω的精确值,但可以知道它的统计平均特性,因此仍然可以对s (n +N )作

出估计,只是此时的估计将会有误差,即[]

0))()(?(2≠+-+N n s N n s

E 。实际的预测问题属于后一种情况。因为前一种情况,)(n ω实际上已全部观察到了,不需要预测了。 2.4.2 预测器的计算公式

图2.10表示一个预测器的输入输出信号,其中)(n y d 是希望得到的输出即)(N n s +,而实际得

到的输出)()(N n s n y +为的估计值)(?N n s

+。 利用前面维纳滤波器估计当前值的结果,我们很容易推广它们用于预测,得到预测器的计算公式。主要的讨论目标仍是求出H (z )——预测器的传递函数,以及[

]

)(2

N n e E +——预测的均方误差。维纳滤波器与维纳预测器的差别仅仅在于,前者所希望的输出为)(n s y d =,后者为)(N n s y d +=。

实际的输出前者为)(?)(n s

n y =,后者为)(?)(N n s n y +=。因而对于预测器有

∑∑=-=+=m

i

i i x h m n x m h N n s

n y )()()(?)( (2.53)

设计维纳预测器的问题就是求{}[]

min )(?)(2

=+-+N n s

N n s E 条件下的

)()(N n s n y d +=

图2.10 维纳预测器

h(n)或H(z)的问题。为此,令[]

)1(0)

(2≥=?+?j h N n e E j

,得

()02=????????? ?

?-+∑j i i i x x h N n s E

∑∞

=≥=1

1,i x x i y x

j h i j d

j φφ

(2.54a )

0 ,)()()(0

≥-=∑∞

=k m k m h k m xx opt xy d

φφ

(2.54b )

将式(2.54a )和(2.54b )与式(2.11)和式(2.13)比较可见,如果我们将所希望的输出用y d 表示,则维纳滤波器的)(n s y d =,因而有

[])()()()(k n s n x E k k xs xy d

+==φφ

而维纳预测器的)(N n s y d +=,因而有

[])()()()(N k k N n s n x E k xs xy d

+=++=φφ

上式的z 变换为

)()(z z z xs N xy d Φ=φ

(2.55a ) 及

)()(11---Φ=z z z xs N xy d

φ

(2.55b )

下面我们仍然分成二种情况:没有物理可实现性约束的和有物理可实现性约束的维纳预测器,分别进行讨论。

(1) 没有物理可实现性约束的(非因果的)维纳预测器

非因果的维纳预测器是物理不可实现的系统,但它指出了预测器可能得到的最好结果。 借用维纳滤波器的计算公式,在这里我们可以将其写成

)

()()(z z z H xx xy opt d ΦΦ=

(2.56)

对于维纳滤波器 )(n s y d = 对于维纳预测器 )(N n s y d +=

(N 步预测)

最小均方误差为 []

[]{

}

min 2

min 2)(?)()(N n s

N n s E N n e E +-+=+

[]

z

dz z z H z j C xy opt ss d ?-Φ-Φ=

)()()(211π (2.57)

这里)(N n s y d +=。将式(2.55)代入式(2.56)与(2.57),得

)

()

()(z z z z H xx xs N opt ΦΦ=

(2.58)

[]{}

[]

?--Φ-Φ=+-+C xs

N opt ss z

dz z z z H z j N n s

N n s E )()()(21)(?)(12π (2.59) (2) 有物理可实现性约束的(因果的)维纳预测器 借用因果的维纳滤波器的公式,在这里我们将其写成

+

-??????Φ=)()()(1

)(12z B z z B z H d xy opt σ

对于维纳滤波器)(n s y d =,对于维纳预测器)(N n s y d +=,故物理可实现的维纳预测器的传递函数应为

+

--??????Φ=??????Φ=)()()(1

)()()(1)(1212z B z z z B z B z z B z H xs N xy opt d ωωσσ (2.60)

最小均方误差的公式为

[]{

}

[]

?-Φ-Φ=

+-+C xy opt ss z

dz z z H z j N n s

N n s E d

)()()(21)(?)(1min

2

π

[]

?-Φ-Φ=

C xs N opt ss z

dz z z z H z j )()()(211π (2.61)

将式(2.61)与式(2.59)比较可见,二者具有完全相同的形式,只是它们的H opt 有所不同,前者应按式(2.60)计算,后者应按式(2.58)计算。 2.4.3 纯预测器(N 步)

纯预测是在0)(=n υ情况下对)(N n s +的预测。因此对纯预测器,)()(n s n x =,从而有

)()()()()(12

-=Φ=Φ=Φz B z B z z z xs ss xx ωσ

(2.62)

对于因果系统,将式(2.62)代入式(2.60)及(2.61)得

[]

++--=??????=)()

(1

)()()()(1)(1

12

2z B z z B z B z B z B z z B z H N N opt ωωσσ (2.63)

[]{}

[]

z

dz z B z B z z H z B z B j N n e

E C N opt ?----=

+)()()()()(21)

(1212min

2

ωωσσπ

[]

z

dz z B z B z Z B z z B z B z B j C N N ???????-=

--+

-)()()()(1)()(211212ωωσσπ

[]{}

z

dz Z B z z B z z B z B j C N

N ?+

----=

)()()()(211212ωωσσπ 此表达式可用帕塞伐尔定理进一步化简。按帕塞伐尔定理:

z dz z Y z X j n y n x C n ?∑?????

???? ??=

**∞

-∞

=*1)(21)()(π

当x (n )、y (n )是实序列时,可除去上式的共轭符号:

z

dz

z Y z X j n y n x C n ?∑??? ??=

-∞

=1)(21)()(π 设b (n )是B (z )的逆z 变换,利用上式,得

[]{}

[]∑∑∞

-∞

=∞

-∞

=++-=+n n N n b n u N n b n b

N n e

E )()()()()

(2

2

2

min

2

ω

ω

σσ (2.64)

又因为B (z )是一个因果系统,所以b (n )是一个因果序列,求和下限可从0开始。展开求和项,可进一步简化

∑∞

=∞++++=022222

)()2()1()0()(n b b b b n b

∑∞

=∞++++=+0

2222

)()1()()(n b N b N b N n b

代入式(2.64),得

[]{}

∑∑∞

=∞=+-=+0

20

2

2

2

min

2

)()()

(n n N n b n b N n e

E ωωσσ

∑-==1

22)(N n n b ωσ

(2.65)

上式说明最小均方误差将随着N 的增大而增大,即预测距越远,误差越大。 [例2] 已知)()(n s n x =及

11,)

1)(1(1)(1

2

<<----=Φ-α其中az az a z xx 求 (1) 使均方误差最小的 )(?N n s

+

(2) 最小均方误差

[]{}

min 2

)(N n e E +

[解] 因为)()()(12

-=Φz B z B z xx ωσ

所以

az

z B az z B a -=-=

-=--11)( ;11)( ;11

122

ωσ。

由式(2.63)得因果的维纳预测器,应有

[](

)+

--+???

??

?--==

11

111)()

(1

)(az z

az z B z z B z H N

N opt

因为

)(11)()(11n u a az Z n b z B n =?

?

?

???-=?-- 所以

维纳滤波的应用综述

基于维纳滤波的应用综述 一、维纳滤波概述 维纳(wiener)滤波是用来解决从噪声中提取信号问题的一种过滤(或滤波)的方法。实际上这种线性滤波问题,可以看成是一种估计问题或一种线性估计问题。一个线性系统,如果它的单位样本响应为h (n ),当输入一个随机信号x (n ),且 x (n )=s (n )+v (n ) (1.1) 其中s(n)表示信号,v(n)表示噪声,则输出y(n)为 ()=()()m y n h m x n m -∑ (1.2) 我们希望x (n )通过线性系统h (n )后得到的y (n )尽量接近于s (n ),因此称y (n )为s (n )的估计值,用^ s 表示,即 ^ ()()y n s n = (1.3) 实际上,式(1.2)的卷积形式可以理解为从当前和过去的观察值x (n ),x (n -1),x (n -2)…x (n -m ),来估计信号的当前值^()s n 。因此,用h (n )进行过滤的问题可以看成是一个估计问题。由于现在涉及的信号是随机信号,所以这样一种过滤问题实际上是一种统计估计问题。 维纳滤波器的优点是适应面较广,无论平稳随机过程是连续的还是离散的,是标量的还是向量的,都可应用。对某些问题,还可求出滤波器传递函数的显式解,并进而采用由简单的物理元件组成的网络构成维纳滤波器。维纳滤波器的缺点是,要求得到半无限时间区间内的全部观察数据的条件很难满足,同时它也不能用于噪声为非平稳的随机过程的情况,对于向量情况应用也不方便。因此,维纳滤波在实际问题中应用不多,更多的是基于维纳滤波器发展而来的滤波方式。 二、基于维纳滤波的应用 2.1在飞机盲降着陆系统中的应用 盲降着陆系统(ILS)又译为仪表着陆系统。它的作用是由地面发射的两束无线电信号实现航向道和下滑道指引,建立一条由跑道指向空中的虚拟路径。飞机通过机载接收设备确定自身与该路径的相对位置,使飞机沿正确方向飞向跑道并且平稳下降高度。最终实现安全着陆。在飞机盲降着陆时,飞机以较慢的恒定速度沿着一个无线电波束下降。为了自动对准跑道,通常要为盲目着陆系统提供两个信号。一个是由无线电波束提供的信号,由航向台提供,它与飞机航向滑离跑道方向的大小成正比;另一个信号由飞机通过自身方位的测量来提供。在这两个信号中,前者是飞机位置信号与高频噪声的叠加,作为前面分系统的x 1(n );后者由于飞机下降过程中风向的改变而在信号中引入了低频噪声,作为x 2(n )。为了对飞机的位置信号进行最佳估计,采用互补维纳滤波器去除无用噪声信号,提高信噪比。由此,增强了飞机着陆时的精度,提高了飞机自身的安全。 2.2在图像处理中的应用 在图像处理中,噪声问题是经常会遇到的问题,它使得图像信息受损,降低了信噪比。如何尽可能地滤去噪声,恢复真实的信号,是图像处理中关键的问题。几类简单、常用的滤

卡尔曼滤波算法总结

Kalman_Filter(float Gyro,float Accel) { Angle+=(Gyro - Q_bias) * dt; Pdot[0]=Q_angle - PP[0][1] - PP[1][0]; Pdot[1]= - PP[1][1]; Pdot[2]= - PP[1][1]; Pdot[3]=Q_gyro; PP[0][0] += Pdot[0] * dt; PP[0][1] += Pdot[1] * dt; PP[1][0] += Pdot[2] * dt; PP[1][1] += Pdot[3] * dt; Angle_err = Accel - Angle; PCt_0 = C_0 * PP[0][0]; PCt_1 = C_0 * PP[1][0]; E = R_angle + C_0 * PCt_0; K_0 = PCt_0 / E; K_1 = PCt_1 / E; t_0 = PCt_0; t_1 = C_0 * PP[0][1]; PP[0][0] -= K_0 * t_0; PP[0][1] -= K_0 * t_1; PP[1][0] -= K_1 * t_0; PP[1][1] -= K_1 * t_1; Angle += K_0 * Angle_err; Q_bias += K_1 * Angle_err; Gyro_x = Gyro - Q_bias; } 首先是卡尔曼滤波的5个方程: -=--+(1)先验估计 X k k AX k k Bu k (|1)(1|1)() -=--+(2)协方差矩阵的预测(|1)(1|1)' P k k AP k k A Q

卡尔曼滤波和粒子滤波最直白的解释

卡尔曼滤波本来是控制系统课上学的,当时就没学明白,也蒙混过关了,以为以后也不用再见到它了,可惜没这么容易,后来学计算机视觉和图像处理,发现用它的地方更多了,没办法的时候只好耐心学习和理解了。一直很想把学习的过程记录一下,让大家少走弯路,可惜总也没时间和机会,直到今天。。。 我一直有一个愿望,就是把抽象的理论具体化,用最直白的方式告诉大家--不提一个生涩的词,不写一个数学公式,像讲故事一样先把道理说明白,需要知道细节的同学可以自己去查所有需要知道的一切。因为学习的过程告诉我,最难的其实是最初和这个理论和应用背景亲和的过程--这些理论它究竟是做什么的,又是怎么做到的。可惜我们能看到的关于这些理论的资料大多数都是公式的堆砌并且假定我们明白许多“基本的道理”,其实这些“基本的道理”往往是我们最难想象和超越的。以卡尔曼滤波为例,让我们尝试一种不同的学习方法。 相信所有学习卡尔曼滤波的同学首先接触的都是状态方程和观测方程,学过控制系统的同学可能不陌生,否则,先被那两个看起来好深奥的公式给吓跑了,关键是还不知道他们究竟是干什么的,什么是状态,什么是观测。。。。。。如果再看到后面的一大串递归推导增益,实在很晕很晕,更糟糕的是还没整明白的时候就已经知道卡尔曼滤波其实已经不够使了,需要extended kalmanfilter和particle filter了。。。 其实我们完全不用理会这些公式。先来看看究竟卡尔曼滤波是做什么的,理解了卡尔曼滤波,下面的就顺其自然了。 用一句最简单的话来说,卡尔曼滤波是来帮助我们做测量的,大家一定不明白测量干嘛搞那么复杂?测量长度拿个尺子比一下,测量温度拿温度表测一下不就完了嘛。的确如此,如果你要测量的东西很容易测准确,没有什么随机干扰,那真的不需要劳驾卡尔曼先生。但在有的时候,我们的测量因为随机干扰,无法准确得到,卡尔曼先生就给我们想了个办法,让我们在干扰为高斯分布的情况下,得到的测量均方误差最小,也就是测量值扰动最小,看起来最平滑。 还是举例子最容易明白。我最近养了只小兔子,忍不住拿小兔子做个例子嘻嘻。 每天给兔子拔草,看她香甜地吃啊吃地,就忍不住关心一下她的体重增长情况。那么我们就以小兔子的体重作为研究对象吧。假定我每周做一次观察,我有两个办法可以知道兔子的体重,一个是拿体重计来称:或许你有办法一下子就称准兔子的体重(兽医通常都有这办法),但现在为了体现卡尔曼先生理论的魅力,我们假定你的称实在很糟糕,误差很大,或者兔子太调皮,不能老实呆着,弹簧秤因为小兔子的晃动会产生很大误差。尽管有误差,那也是一个不可失去的渠道来得到兔子的体重。还有一个途径是根据书本上的资料,和兔子的年龄,我可以估计一下我的小兔子应该会多重,我们把用称称出来的叫观察量,用资料估计出来的叫估计值,无论是观察值还是估计值显然都是有误差的,假定误差是高斯分布。现在问题就来了,按照书本上说我的兔子该3公斤重,称出来却只有2.5公斤,我究竟该信哪个呢?如果称足够准,兔子足够乖,卡尔曼先生就没有用武之地了呵呵,再强调一下是我们的现状是兔兔不够乖,称还很烂呵呵。在这样恶劣的情景下,卡尔曼先生告诉我们一个办法,仍然可以估计出八九不离十的兔兔体重,这个办法其实也很直白,就是加权平均,把称称出来的结果也就是观测值和按照书本经验估算出来的结果也就是估计值分别加一个权值,再做平均。当然这两个权值加起来是等于一的。也就是说如果你有0.7分相信称出来的体重,那么就只有0.3分相信书上的估计。说到这里大家一定更着急了,究竟该有几分相信书上的,有几分相信我自己称的呢?都怪我的称不争气,没法让我百分一百信赖它,还要根据书上的数据来做调整。好在卡尔曼先生也体会到了我们的苦恼,告诉我们一个办法来决定这个权值,这个办法其实也很直白,就是根据以往的表现来做决定,这其实听起来挺公平的,你以前表现好,我就相信你多一点,权值也就给的高一点,以前表现不好,我就相信你少一点,权值自然给的低一点。那么什么是表现好表现不好呢,表现好意思就是测量结果稳定,方差很小,

三阶卡尔曼滤波数字锁频环设计及性能分析

三阶卡尔曼滤波数字锁频环设计及性能分析 作者:李金海, 巴晓辉, 陈杰, LI Jin-hai, BA Xiao-hui, Chen Jie 作者单位:中国科学院微电子研究所,北京,朝阳区,100029 刊名: 电子科技大学学报 英文刊名:JOURNAL OF UNIVERSITY OF ELECTRONIC SCIENCE AND TECHNOLOGY OF CHINA 年,卷(期):2008,37(5) 被引用次数:1次 参考文献(10条) 1.HINEDI S.STATMAN J I High-dynamic GPS tracking final report[JPL Publication 88-35] 1988 2.AGUIRRE S.HINEDI S Two novel automatic frequency tracking loops 1989(05) 3.HINEDI S An extended Kalmaa filter based automatic frequency control loop[TDA Progress Report 42-95] 1988 4.VILNROTTER V A.HINEDI S.KUMAR R Frequency estimation techniques for high dynamic trajectories 1989(04) 5.BAR-SHALOM Y.LI X R.KIRUBARAJAN T Estimation with applications to tracking and navigation:Theory algorithms and soRware 2001 6.张厥盛.郑继禹.万心平锁相技术 2005 7.JURY E I Theory and application of the z-transform method 1964 8.邓自立.郭一新现代时间序列分析及其应用--建模、滤波、去卷、预报和控制 1988 9.GREWAL M S.ANDREWS A P Kalman filtering:theory and practice using matlab 2001 10.ARNOLD W https://www.doczj.com/doc/cd10124890.html,UB A J Generalized eigenproblem algorithms and software for algebraic Riccati equations 1984(12) 相似文献(9条) 1.学位论文孙峰高动态多星座接收机捕获和跟踪技术的研究与实现2009 全球导航卫星系统(GNSS)是用于定位用户接收机地理位置的一种卫星系统。目前,GNSS包括现已投入运行的三个卫星定位系统:全球定位系统(GPS)、全球导航卫星系统( GLONASS)、北斗一代系统(BD)。鉴于多星座导航定位系统的建立,多星座接收机将大大提高卫星导航定位的可靠性、精度和实时性。 高动态接收机的捕获和跟踪技术一直是研究的热点和难点。许多学者针对高动态的特殊应用做出了一些卓有成效的研究,提出了多种设计方案,重点为伪码的快速捕获和多普勒频率的跟踪。伪码的快速捕获的主要方法为:基于FFT和匹配滤波的并行捕获方法以及串并结合的滑动相关捕获方法。这些捕获方法在捕获性能和复杂性上各有优劣。本文采用了串并结合的滑动相关捕获方法,这种算法的捕获性能较好,硬件实现简单。 载波多普勒频率跟踪的主流方案是采用锁频环(FLL)+锁相环(PLL)的环路跟踪结构。使用FLL来跟踪频率的快速变化,当频率引导到PLL可处理的范围时,通过PLL来跟踪相位的变化,精确的锁定载波频率。本文采用二阶锁频环辅助三阶锁相环的环路结构,可很好的跟踪接收机的动态。 本文的主要内容为: 1.完成了多星座卫星信号接收机的硬件设计,为系统的实现搭建了硬件平台。 2.在分析了GPS、GLONASS、BD的伪码特性的基础上,采用串并结合的时域相关捕获的方法,缩短了伪码的捕获时间。 3.研究并设计了DLL码跟踪环路。经过测试验证了设计的DLL环路的正确性。 4.载波跟踪环采用三阶二象限反正切Costas环和二阶四相锁环相结合的方法,有效的消除了高动态的影响。 本论文设计的捕获和跟踪的方法最终在高动态多星座接收机上得到了实现,测试结果表明本文的设计满足系统指标要求。 2.学位论文郑宏磊GPS在干扰环境下的可用性研究2006 全球定位系统(GPS)能在全球范围内提供精确的位置、速度和时间信息,在军事和民用领域发挥着极其重要的作用。随着GPS的广泛应用,它易受到干扰的弱点也随之暴露出来,针对GPS进行的抗干扰技术也日益成为研究的热点。本文阐述了全球定位系统的工作原理,系统组成以及信号格式,在此基础上着重分析了GPS受干扰特性,为以后的工作奠定了基础。 本文将理论分析和实验相结合,结合商用GPS接收机的实际测量结果,对GPS信号受干扰前后的特性进行了分析。针对射频RF等干扰源以及多路径 ,本文介绍了抗干扰的总体设计方案,分析了几种可行的抗干扰措施,重点对环路滤波和自适应调零天线进行了研究设计。 论文在环路滤波器设计方面采用了由锁频环(FLL)辅助的锁相环(PLL)滤波器,在自适应调零天线方面设计空间-时间自适应阵列以代替空间自适应阵列,并采用功率最小预处理算法。最后通过实验仿真得到了较为理想的结果,可在一定程度上保证GPS在干扰环境下的可用性。 3.期刊论文李国栋.崔晓伟.尹旭明.冯振明.LI Guodong.CUI Xiaowei.YIN Xuming.FENG Zhenming GPS接收机中锁 频环频率误锁的检测-清华大学学报(自然科学版)2007,47(1) 为了解决全球定位系统(GPS)接收机中的锁频环在载波同步过程中可能出现的频率误锁问题,在分析了锁频环在噪声环境下的工作原理及产生频率误锁原因的基础上,基于有无发生频率误锁时同一信息符号对应的多个预检测积分值的变化规律,提出了一种用于频率误锁检测和快速纠正的算法.仿真结果表明:该方法能够在锁频环完成工作之后及时判决是否有误锁发生,误锁时可在1~2个导航比特时间内把载波频率调整到正确频率上.该方法实现简单,可

卡尔曼滤波器介绍 --- 最容易理解

10.6 卡尔曼滤波器简介 本节讨论如何从带噪声的测量数据把有用信号提取出来的问题。通常,信号的频谱处于有限的频率范围内,而噪声的频谱则散布在很广的频率范围内。如前所述,为了消除噪声,可以把 FIR滤波器或IIR滤波器设计成合适的频带滤波器,进行频域滤波。但在许多应用场合,需要进行时域滤波,从带噪声的信号中提取有用信号。虽然这样的过程其实也算是对信号的滤波,但所依据的理论,即针对随机信号的估计理论,是自成体系的。人们对随机信号干扰下的有用信号不能“确知”,只能“估计”。为了“估计”,要事先确定某种准则以评定估计的好坏程度。最小均方误差是一种常用的比较简单的经典准则。典型的线性估计器是离散时间维纳滤波器与卡尔曼滤波器。 对于平稳时间序列的最小均方误差估计的第一个明确解是维纳在1942年2月首先给出的。当时美国的一个战争研究团体发表了一个秘密文件,其中就包括维纳关于滤波问题的研究工作。这项研究是用于防空火力控制系统的。维纳滤波器是基于最小均方误差准则的估计器。为了寻求维纳滤波器的冲激响应,需要求解著名的维纳-霍夫方程。这种滤波理论所追求的是使均方误差最小的系统最佳冲激响应的明确表达式。这与卡尔曼滤波(Kalman filtering)是很不相同的。卡尔曼滤波所追求的则是使均方误差最小的递推算法。 在维纳进行滤波理论研究并导出维纳-霍夫方程的十年以前,在1931年,维纳和霍夫在数学上就已经得到了这个方程的解。 对于维纳-霍夫方程的研究,20世纪五十年代涌现了大量文章,特别是将维纳滤波推广到非平稳过程的文章甚多,但实用结果却很少。这时正处于卡尔曼滤波问世的前夜。 维纳滤波的困难问题,首先在上世纪五十年代中期确定卫星轨道的问题上遇到了。1958年斯韦尔林(Swerling)首先提出了处理这个问题的递推算法,并且立刻被承认和应用。1960年卡尔曼进行了比斯韦尔林更有意义的工作。他严格地把状态变量的概念引入到最小均方误差估计中来,建立了卡尔曼滤波理论。空间时代的到来推动了这种滤波理论的发展。 维纳滤波与卡尔曼滤波所研究的都是基于最小均方误差准则的估计问题。 维纳滤波理论的不足之处是明显的。在运用的过程中,它必须把用到的全部数据存储起来,而且每一时刻都要通过对这些数据的运算才能得到所需要的各种量的估值。按照这种滤波方法设置的专用计算机的存储量与计算量必然很大,很难进行实时处理。虽经许多科技工作者的努力,在解决非平稳过程的滤波问题时,给出能用的方法为数甚少。到五十年代中期,随着空间技术的发展,这种方法越来越不能满足实际应用的需要,面临了新的挑战。尽管如此,维纳滤波理论在滤波理论中的开拓工作是不容置疑的,维纳在方法论上的创见,仍然影响着后人。 五十年代中期,空间技术飞速发展,要求对卫星轨道进行精确的测量。为此,人们将滤波问题以微分方程表示,提出了一系列适应空间技术应用的精练算法。1960年

几种卡尔曼滤波算法理论

自适应卡尔曼滤波 卡尔曼滤波发散的原因 如果卡尔曼滤波是稳定的,随着滤波的推进,卡尔曼滤波估计的精度应该越来越高,滤波误差方差阵也应趋于稳定值或有界值。但在实际应用中,随着量测值数目的增加,由于估计误差的均值和估计误差协方差可能越来越大,使滤波逐渐失去准确估计的作用,这种现象称为卡尔曼滤波发散。 引起滤波器发散的主要原因有两点: (1)描述系统动力学特性的数学模型和噪声估计模型不准确,不能直接真实地反映物理过程,使得模型与获得的量测值不匹配而导致滤波发散。这种由于模型建立过于粗糙或失真所引起的发散称为滤波发散。 (2)由于卡尔曼滤波是递推过程,随着滤波步数的增加,舍入误差将逐渐积累。如果计算机字长不够长,这种积累误差很有可能使估计误差方差阵失去非负定性甚至失去对称性,使滤波增益矩阵逐渐失去合适的加权作用而导致发散。这种由于计算舍入误差所引起的发散称为计算发散。 针对上述卡尔曼滤波发散的原因,目前已经出现了几种有效抑制滤波发散的方法,常用的有衰减记忆滤波、限定记忆滤波、扩充状态滤波、有限下界滤波、平方根滤波、和自适应滤波等。这些方法本质上都是以牺牲滤波器的最优性为代价来抑制滤波发散,也就是说,多数都是次优滤波方法。 自适应滤波 在很多实际系统中,系统过程噪声方差矩阵Q和量测误差方差阵R事先是不知道的,有时甚至连状态转移矩阵 或量测矩阵H也不能确切建立。如果所建立的模型与实际模型不符可能回引起滤波发散。自适应滤波就是这样一种具有抑制滤波发散作用的滤波方法。在滤波过程中,自适应滤波一方面利用量测值修正预测值,同时也对未知的或不确切的系统模型参数和噪声统计参数进行估计修正。自适应滤波的方法很多,包括贝叶斯法、极大似然法、相关法与协方差匹配法,其中最基本也是最重要的是相关法,而相关法可分为输出相关法和新息相关法。

卡尔曼滤波的原理说明

卡尔曼滤波的原理说明 2009年10月23日星期五 01:19 在学习卡尔曼滤波器之前,首先看看为什么叫“卡尔曼”。跟其他著名的理论(例如傅立叶变换,泰勒级数等等)一样,卡尔曼也是一个人的名字,而跟他们不同的是,他是个现代人! 卡尔曼全名Rudolf Emil Kalman,匈牙利数学家,1930年出生于匈牙利首都布达佩斯。1953,1954年于麻省理工学院分别获得电机工程学士及硕士学位。1957年于哥伦比亚大学获得博士学位。我们现在要学习的卡尔曼滤波器,正是源于他的博士论文和1960年发表的论文《A New Approach to Linear Filtering and Prediction Problems》(线性滤波与预测问题的新方法)。如果对这编论文有兴趣,可以到这里的地址下 载:.edu/~welch/kalman/media/pdf/Kalman1960.pdf 简单来说,卡尔曼滤波器是一个“optimal recursive data processing algorithm(最优化自回归数据处理算法)”。对于解决很大部分的问题,他是最优,效率最高甚至是最有用的。他的广泛应用已经超过30年,包括机器人导航,控制,传感器数据融合甚至在军事方面的雷达系统以及导弹追踪等等。近年来更被应用于计算机图像处理,例如头脸识别,图像分割,图像边缘检测等等。 2.卡尔曼滤波器的介绍 (Introduction to the Kalman Filter) 为了可以更加容易的理解卡尔曼滤波器,这里会应用形象的描述方法来讲解,而不是像大多数参考书那样罗列一大堆的数学公式和数学符号。但是,他的5条公式是其核心内容。结合现代的计算机,其实卡尔曼的程序相当的简单,只要你理解了他的那5条公式。 在介绍他的5条公式之前,先让我们来根据下面的例子一步一步的探索。 假设我们要研究的对象是一个房间的温度。根据你的经验判断,这个房间的温度是恒定的,也就是下一分钟的温度等于现在这一分钟的温度(假设我们用一分钟来做时间单位)。假设你对你的经验不是100%的相信,可能会有上下偏差几度。我们把这些偏差看成是高斯白噪声(White Gaussian Noise),也就是这些偏差跟前后时间是没有关系的而且符合高斯分配(Gaussian Distribution)。另外,我们在房间里放一个温度计,但是这个温度计也不准确的,测量值会比实际值偏差。我们也把这些偏差看成是高斯白噪声。 好了,现在对于某一分钟我们有两个有关于该房间的温度值:你根据经验的预测值(系统的预测值)和温度计的值(测量值)。下面我们要用这两个值结合他们各自的噪声来估算出房间的实际温度值。 假如我们要估算k时刻的是实际温度值。首先你要根据k-1时刻的温度值,来预测k时刻的温度。因为你相信温度是恒定的,所以你会得到k时刻的温度预测值

基于维纳滤波的应用综述

基于维纳滤波的应用综述 摘要:介绍了维纳滤波的基本概念,列举了基于维纳滤波的滤波方式在飞机盲降着陆系统、在图像处理、桩基检测、超声物位计、地震数据信号处理和抗多址干扰盲检测中的应用。 一、维纳滤波概述 维纳(wiener)滤波是用来解决从噪声中提取信号问题的一种过滤(或滤波)的方法。实际上这种线性滤波问题,可以看成是一种估计问题或一种线性估计问题。一个线性系统,如果它的单位样本响应为h(n),当输入一个随机信号x(n),且 (1.1) 其中s(n)表示信号,v(n)表示噪声,则输出y(n)为 (1.2) 我们希望x(n)通过线性系统h(n)后得到的.y(n)尽量接近于s(n),因此称y(n)为s(n)的 估计值,用表示,即 (1.3) 如图1.1所示。这个线性系统h(n)称为对于s(n)的一种估计器。 实际上,式(1.2)的卷积形式可以理解为从当前和过去的观察值x(n),x(n一1),x(n一2)…x(n-m),来估计信号的当前值。因此,用h(n)进行过滤的问题可以看成是一个估计问题。由于现在涉及的信号是随机信号,所以这样一种过滤问题实际上是一种统计估计问题[1]。 维纳滤波器的优点是适应面较广,无论平稳随机过程是连续的还是离散的,是标量的还是向量的,都可应用。对某些问题,还可求出滤波器传递函数的显式解,并进而采用由简单的物理元件组成的网络构成维纳滤波器。维纳滤波器的缺

点是,要求得到半无限时间区间内的全部观察数据的条件很难满足,同时它也不能用于噪声为非平稳的随机过程的情况,对于向量情况应用也不方便。因此,维纳滤波在实际问题中应用不多,更多的是基于维纳滤波器发展而来的滤波方式。 二、基于维纳滤波的应用 2.1在飞机盲降着陆系统中的应用 盲降着陆系统(Instrument Landing System.ILS)又译为仪表着陆系统。是目前应用最为广泛的飞机精密进近和着陆引导系统。它的作用是由地面发射的两束无线电信号实现航向道和下滑道指引。建立一条由跑道指向空中的虚拟路径。飞机通过机载接收设备.确定自身与该路径的相对位置,使飞机沿正确方向飞向跑道并且平稳下降高度。最终实现安全着陆。由于是仪表指针引导飞行员按预定下滑线着陆,无需目视。故又称为盲降着陆系统。该系统为飞行员提供相对预定下滑线的水平和垂直面内的修正指示以及到跑道端口的距离指示。 在飞机盲目着陆系统的实际应用中。盲降着陆时,飞机以较慢的恒定速度沿着一个无线电波束下降。为了自动对准跑道,通常要为盲目着陆系统提供两个信号。一个是由无线电波束提供的信号。由航向台提供,它与飞机航向滑离跑道方向的大小成正比;另一个信号由飞机通过自身方位的测量来提供。在这两个信号中,前者是飞机位置信号与高频噪声的叠加。作为前面分系统的x1(n)后者由于飞机下降过程中风向的改变而在信号中引入了低频噪声,作为x2(n)。为了对飞机的位置信号进行最佳估计,采用互补维纳滤波器去除无用噪声信号[2],提高信噪比。由此,增强了飞机着陆时的精度,提高了飞机自身的安全。 2.2在图像处理中的应用 在图像处理中,噪声问题是经常会遇到的问题,它使得图像信息受损,降低了信噪比。如何尽可能地滤去噪声,恢复真实的信号.是图像处理中关键的问题。几类简单、常用的滤波器如维纳滤波器和卡尔曼滤波器等都是假定噪声是高斯的且是加性的,噪声和信号相互独立,这样能得到最小均方误差意义下的最优滤波。对于实际问题中遇到的非加性噪声,也能通过基于维纳滤波器的思想计算,求出适合的滤波器算式[3]。比如在处理乘性噪声时使用的方法就是基于维纳滤波器的思想[4],还有在处理图像运动模糊复原时的频域估计算法中也使用到基于维纳滤波器的一些推广算法[5]。同时,维纳滤波还是一种常见的图像复原方法,其思想是使复原的图像与原图像的均方误差最小原则采复原图像[6]。 2.3在桩基检测中的应用[7] 高层建筑、桥梁、海工结构及特殊建筑结构,都需采用深桩基础,即使普通

卡尔曼滤波的原理及应用自己总结

卡尔曼滤波的原理以及应用 滤波,实质上就是信号处理与变换的过程。目的是去除或减弱不想要成分,增强所需成分。卡尔曼滤波的这种去除与增强过程是基于状态量的估计值和实际值之间的均方误差最小准则来实现的,基于这种准则,使得状态量的估计值越来越接近实际想要的值。而状态量和信号量之间有转换的关系,所以估计出状态量,等价于估计出信号量。所以不同于维纳滤波等滤波方式,卡尔曼滤波是把状态空间理论引入到对物理系统的数学建模过程中来,用递归方法解决离散数据线性滤波的问题,它不需要知道全部过去的数据,而是用前一个估计值和最近一个观察数据来估计信号的当前值,从而它具有运用计算机计算方便,而且可用于平稳和不平稳的随机过程(信号),非时变和时变的系统的优越性。 卡尔曼滤波属于一种软件滤波方法,概括来说其基本思想是:以最小均方误差为最佳估计准则,采用信号与噪声的状态空间模型,利用前一时刻的估计值和当前时刻的观测值来更新对状态变量的估计,求出当前时刻的估计值,算法根据建立的系统方程和观测方程对需要处理的信号做出满足最小均方误差的估计。其所得到的解是以估计值的形式给出的。 卡尔曼滤波过程简单来说主要包括两个步骤:状态变量的预估以及状态变量的校正。预估过程是不考虑过程噪声和量测噪声,只是基于系统本身性质并依靠前一时刻的估计值以及系统控制输入的一种估计;校正过程是用量测值与预估量测值之间的误差乘以一个与过程

噪声和量测噪声相关的增益因子来对预估值进行校正的,其中增益因子的确定与状态量的均方误差有关,用到了使均方误差最小的准则。而这一过程中体现出来的递归思想即是:对于当前时刻的状态量估计值以及均方误差预估值实时进行更新,以便用于下一时刻的估计,使得系统在停止运行之前能够源源不断地进行下去。 下面对于其数学建模过程进行详细说明。 1.状态量的预估 (1)由前一时刻的估计值和送给系统的可控制输入来预估计当前时刻状态量。 X(k|k-1)=A X(k-1|k-1)+B U(k) 其中,X(k-1|k-1)表示前一时刻的估计值,U(k)表示系统的控制输入,X(k|k-1)表示由前一时刻估计出来的状态量的预估计值,A表示由k-1时刻过渡到k时刻的状态转移矩阵,B表示控制输入量与状态量之间的一种转换因子,这两个都是由系统性质来决定的。 (2)由前一时刻的均方误差阵来预估计当前时刻的均方误差阵。 P(k|k-1)=A P(k-1|k-1)A’+Q 其中,P(k-1|k-1)是前一时刻的均方误差估计值,A’代表矩阵A 的转置,Q代表过程噪声的均方误差矩阵。该表达式具体推导过程如下: P(k|k-1)=E{[Xs(k|k)-X(k|k-1)][Xs(k|k)-X(k|k-1)]’}------ 其中Xs(k|k)=A Xs(k-1|k-1)+B U(k)+W(k-1)表示当前时刻的实际值,Xs(k-1|k-1)表示前一时刻的实际值,可以看出与当前时刻的预估计值

卡尔曼滤波算法总结

卡尔曼滤波算法总结-标准化文件发布号:(9556-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

2015.12.12 void Kalman_Filter(float Gyro,float Accel) { Angle+=(Gyro - Q_bias) * dt; Pdot[0]=Q_angle - PP[0][1] - PP[1][0]; Pdot[1]= - PP[1][1]; Pdot[2]= - PP[1][1]; Pdot[3]=Q_gyro; PP[0][0] += Pdot[0] * dt; PP[0][1] += Pdot[1] * dt; PP[1][0] += Pdot[2] * dt; PP[1][1] += Pdot[3] * dt; Angle_err = Accel - Angle; PCt_0 = C_0 * PP[0][0]; PCt_1 = C_0 * PP[1][0]; E = R_angle + C_0 * PCt_0; K_0 = PCt_0 / E; K_1 = PCt_1 / E; t_0 = PCt_0; t_1 = C_0 * PP[0][1]; PP[0][0] -= K_0 * t_0; PP[0][1] -= K_0 * t_1; PP[1][0] -= K_1 * t_0; PP[1][1] -= K_1 * t_1; Angle += K_0 * Angle_err; Q_bias += K_1 * Angle_err; Gyro_x = Gyro - Q_bias; }

首先是卡尔曼滤波的5个方程: (|1)(1|1)() X k k AX k k Bu k -=--+(1)先验估计 (|1)(1|1)'P k k AP k k A Q -=--+(2)协方差矩阵的预测 ()(|1)'/(|1)')Kg k P k k H HP k k H R =--+(3)计算卡尔曼增益 (|)(|1)()(()(|1))X k k X k k Kg k Z k HX k k =-+--(4)进行修正 5个式子比较抽象,现在直接用实例来说: 一、卡尔曼滤波第一个式子 对于角度来说,我们认为此时的角度可以近似认为是上一时刻的角度值加上上一时刻陀螺仪测得的角加速度值乘以时间,因为d dt θω=?,角度微分等于时间的微分乘以角速度。但是陀螺仪有个静态漂移(而且还是变化的),静态漂移就是静止了没有角速度然后陀螺仪也会输出一个值,这个值肯定是没有意义的,计算时要把它减去。 由此我们得到了当前角度的预测值Angle Angle=Angle+(Gyro - Q_bias) * dt; 其中等号左边Angle 为此时的角度,等号右边Angle 为上一时刻的角度,Gyro 为陀螺仪测的角速度的值,dt 是两次滤波之间的时间间隔,我们的运行周期是4ms 或者6ms 。 同时 Q_bias 也是一个变化的量。 但是就预测来说认为现在的漂移跟上一时刻是相同的,即 Q_bias=Q_bias 将上面两个式子写成矩阵的形式 1_0 1_0 Angle dt Angle dt Q bias Q bia o s Gyr -= + 得到上式,这个式子对应于卡尔曼滤波的第一个式子 (|1)(1|1)() X k k AX k k Bu k -=--+ (|)(|1) P k k I Kg k H P k k =--(())(5)更新协方差阵

卡尔曼滤波简介及其实现(附C代码)

卡尔曼滤波简介及其算法实现代码(C++/C/MATLAB) 卡尔曼滤波器简介 近来发现有些问题很多人都很感兴趣。所以在这里希望能尽自己能力跟大家讨论一些力所能及的算法。现在先讨论一下卡尔曼滤波器,如果时间和能力允许,我还希望能够写写其他的算法,例如遗传算法,傅立叶变换,数字滤波,神经网络,图像处理等等。 因为这里不能写复杂的数学公式,所以也只能形象的描述。希望如果哪位是这方面的专家,欢迎讨论更正。 卡尔曼滤波器– Kalman Filter 1.什么是卡尔曼滤波器 (What is the Kalman Filter?) 在学习卡尔曼滤波器之前,首先看看为什么叫“卡尔曼”。跟其他著名的理论(例如傅立叶变换,泰勒级数等等)一样,卡尔曼也是一个人的名字,而跟他们不同的是,他是个现代人! 卡尔曼全名Rudolf Emil Kalman,匈牙利数学家,1930年出生于匈牙利首都布达佩斯。1953,1954年于麻省理工学院分别获得电机工程学士及硕士学位。1957年于哥伦比亚大学获得博士学位。我们现在要学习的卡尔曼滤波器,正是源于他的博士论文和1960年发表的论文《A New Approach to Linear Filtering and Prediction Problems》(线性滤波与预测问题的新方法)。如果对这编论文有兴趣,可以到这里的地址下载: https://www.doczj.com/doc/cd10124890.html,/~welch/media/pdf/Kalman1960.pdf。 简单来说,卡尔曼滤波器是一个“optimal recursive data processing algorithm(最优化自回归数据处理算法)”。对于解决很大部分的问题,他是最优,效率最高甚至是最有用的。他的广泛应用已经超过30年,包括机器人导航,控制,传感器数据融合甚至在军事方面的雷达系统以及导弹追踪等等。近年来更被应用于计算机图像处理,例如头脸识别,图像分割,图像边缘检测等等。 2.卡尔曼滤波器的介绍 (Introduction to the Kalman Filter) 为了可以更加容易的理解卡尔曼滤波器,这里会应用形象的描述方法来讲解,而不是像大多数参考书那样罗列一大堆的数学公式和数学符号。但是,他的5 条公式是其核心内容。结合现代的计算机,其实卡尔曼的程序相当的简单,只要你理解了他的那5条公式。 在介绍他的5条公式之前,先让我们来根据下面的例子一步一步的探索。

卡尔曼滤波简介及其算法实现代码

卡尔曼滤波简介及其算法实现代码 卡尔曼滤波算法实现代码(C,C++分别实现) 卡尔曼滤波器简介 近来发现有些问题很多人都很感兴趣。所以在这里希望能尽自己能力跟大家讨论一些力所能及的算法。现在先讨论一下卡尔曼滤波器,如果时间和能力允许,我还希望能够写写其他的算法,例如遗传算法,傅立叶变换,数字滤波,神经网络,图像处理等等。 因为这里不能写复杂的数学公式,所以也只能形象的描述。希望如果哪位是这方面的专家,欢迎讨论更正。 卡尔曼滤波器– Kalman Filter 1.什么是卡尔曼滤波器 (What is the Kalman Filter?) 在学习卡尔曼滤波器之前,首先看看为什么叫“卡尔曼”。跟其他著名的理论(例如傅立叶变换,泰勒级数等等)一样,卡尔曼也是一个人的名字,而跟他们不同的是,他是个现代人! 卡尔曼全名Rudolf Emil Kalman,匈牙利数学家,1930年出生于匈牙利首都布达佩斯。1953,1954年于麻省理工学院分别获得电机工程学士及硕士学位。1957年于哥伦比亚大学获得博士学位。我们现在要学习的卡尔曼滤波器,正是源于他的博士论文和1960年发表的论文《A New Approach to Linear Filtering and Prediction Problems》(线性滤波与预测问题的新方法)。如果对这编论文有兴趣,可以到这里的地址下载: https://www.doczj.com/doc/cd10124890.html,/~welch/media/pdf/Kalman1960.pdf。 简单来说,卡尔曼滤波器是一个“optimal recursive data processing algorithm(最优化自回归数据处理算法)”。对于解决很大部分的问题,他是最优,效率最高甚至是最有用的。他的广泛应用已经超过30年,包括机器人导航,控制,传感器数据融合甚至在军事方面的雷达系统以及导弹追踪等等。近年来更被应用于计算机图像处理,例如头脸识别,图像分割,图像边缘检测等等。 2.卡尔曼滤波器的介绍 (Introduction to the Kalman Filter) 为了可以更加容易的理解卡尔曼滤波器,这里会应用形象的描述方法来讲解,而不是像大多数参考书那样罗列一大堆的数学公式和数学符号。但是,他的5条公式是其核心内容。结合现代的计算机,其实卡尔曼的程序相当的简单,只要你理解了他的那5条公式。 在介绍他的5条公式之前,先让我们来根据下面的例子一步一步的探索。 假设我们要研究的对象是一个房间的温度。根据你的经验判断,这个房间的温度是恒定的,也就

维纳滤波与卡尔曼滤波

第二章 维纳滤波与卡尔曼滤波 § 引言 信号处理的实际问题,常常是要解决在噪声中提取信号的问题,因此,我们需要寻找一种所谓有最佳线性过滤特性的滤波器。这种滤波器当信号与噪声同时输入时,在输出端能将信号尽可能精确地重现出来,而噪声却受到最大抑制。 维纳(Wiener)滤波与卡尔曼(Kalman)滤波就是用来解决这样一类从噪声中提取信号问题的一种过滤(或滤波)方法。 实际上这种线性滤波问题,可以看成是一种估计问题或一种线性估计问题。 一个线性系统,如果它的单位样本响应为h (n ),当输入一个随机信号x (n ),且 )()()(n n s n x υ+= 其中s (n )表示信号,)(n υ表示噪声,则输出y (n )为 ∑-=m m n x m h n y )()()( 我们希望x (n )通过线性系统h (n )后得到的y (n )尽量接近于s (n ),因此称y (n )为s (n )的估计值,用 )(?n s 表示,即 )(?)(n s n 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 s n y 称为预测或外推;从过去的观察值,估计过去的信号值)1)((?)(>-=N N n s n y 称为平滑或内插。因此维纳过滤与卡尔曼过滤又常常被称为最佳线性过滤与预测或线性最优估计。这里所谓“最佳”与“最优”是以最小均方误差为准则的。本章仅讨论过滤与预测问题。 如果我们以s s ?与分别表示信号的真值与估计值,而用e (n )表示它们之间的误差,即 )(?)()(n s n s n e -= 显然,e (n )可能是正的,也可能是负的,并且它是一个随机变量。因此,用它的均方值来表达误差是合理的,所谓均方误差最小即它的平方的统计平均值最小:

卡尔曼滤波的基本原理及应用

卡尔曼滤波的基本原理及应用卡尔曼滤波在信号处理与系统控制领域应用广泛,目前,正越来越广泛地应用于计算机应用的各个领域。为了更好地理解卡尔曼滤波的原理与进行滤波算法的设计工作,主要从两方面对卡尔曼滤波进行阐述:基本卡尔曼滤波系统模型、滤波模型的建立以及非线性卡尔曼滤波的线性化。最后,对卡尔曼滤波的应用做了简单介绍。 卡尔曼滤波属于一种软件滤波方法,其基本思想是:以最小均方误差为最佳估计准则,采用信号与噪声的状态空间模型,利用前一时刻的估计值和当前时刻的观测值来更新对状态变量的估计,求出当前时刻的估计值,算法根据建立的系统方程和观测方程对需要处理的信号做出满足最小均方误差的估计。 最初的卡尔曼滤波算法被称为基本卡尔曼滤波算法,适用于解决随机线性离散系统的状态或参数估计问题。卡尔曼滤波器包括两个主要过程:预估与校正。预估过程主要是利用时间更新方程建立对当前状态的先验估计,及时向前推算当前状态变量和误差协方差估计的值,以便为下一个时间状态构造先验估计值;校正过程负责反馈,利用测量更新方程在预估过程的先验估计值及当前测量变量的基础上建立起对当前状态的改进的后验估计。这样的一个过程,我们称之为预估-校正过程,对应的这种估计算法称为预估-校正算法。以下给出离散卡尔曼滤波的时间更新方程和状态更新方程。 时间更新方程: 状态更新方程: 在上面式中,各量说明如下: A:作用在X k-1上的n×n 状态变换矩阵 B:作用在控制向量U k-1上的n×1 输入控制矩阵 H:m×n 观测模型矩阵,它把真实状态空间映射成观测空间 P k-:为n×n 先验估计误差协方差矩阵 P k:为n×n 后验估计误差协方差矩阵 Q:n×n 过程噪声协方差矩阵 R:m×m 过程噪声协方差矩阵 I:n×n 阶单位矩阵K k:n×m 阶矩阵,称为卡尔曼增益或混合因数 随着卡尔曼滤波理论的发展,一些实用卡尔曼滤波技术被提出来,如自适应滤波,次优滤波以及滤波发散抑制技术等逐渐得到广泛应用。其它的滤波理论也迅速发展,如线性离散系统的分解滤波(信息平方根滤波,序列平方根滤波,UD 分解滤波),鲁棒滤波(H∞波)。 非线性样条自适应滤波:这是一类新的非线性自适应滤波器,它由一个线性组合器后跟挠性无记忆功能的。涉及的自适应处理的非线性函数是基于可在学习

卡尔曼滤波简介和实例讲解

卡尔曼,美国数学家和电气工程师。1930年5月 19日生于匈牙利首都布达佩斯。1953年在美国麻省理工学院毕业获理学士学位,1954年获理学硕士学位,1957年在哥伦比亚大学获科学博士学位。1957~1958年在国际商业机器公司(IBM)研究大系统计算机控制的数学问题。1958~1964年在巴尔的摩高级研究院研究控制和数学问题。1964~1971年到斯坦福大学任教授。1971年任佛罗里达大学数学系统理论研究中心主任,并兼任苏黎世的瑞士联邦高等工业学校教授。1960年卡尔曼因提出著名的卡尔曼滤波器而闻名于世。卡尔曼滤波器在随机序列估计、空间技术、工程系统辨识和经济系统建模等方面有许多重要应用。1960年卡尔曼还提出能控性的概念。能控性是控制系统的研究和实现的基本概念,在最优控制理论、稳定性理论和网络理论中起着重要作用。卡尔曼还利用对偶原理导出能观测性概念,并在数学上证明了卡尔曼滤波理论与最优控制理论对偶。为此获电气与电子工程师学会(IEEE)的最高奖──荣誉奖章。卡尔曼著有《数学系统概论》(1968)等书。 什么是卡尔曼滤波 最佳线性滤波理论起源于40年代美国科学家Wiener和前苏联科学家Kолмогоров等人的研究工作,后人统称为维纳滤波理论。从理论上说,维纳滤波的最大缺点是必须用到无限过去的数据,不适用于实时处理。为了克服这一缺点,60年代Kalman把状态空间模型引入滤波理论,并导出了一套递推估计算法,后人称之为卡尔曼

滤波理论。卡尔曼滤波是以最小均方误差为估计的最佳准则,来寻求一套递推估计的算法,其基本思想是:采用信号与噪声的状态空间模型,利用前一时刻地估计值和现时刻的观测值来更新对状态变量的估计,求出现时刻的估计值。它适合于实时处理和计算机运算。 卡尔曼滤波的实质是由量测值重构系统的状态向量。它以“预测—实测—修正”的顺序递推,根据系统的量测值来消除随机干扰,再现系统的状态,或根据系统的量测值从被污染的系统中恢复系统的本来面目。 释文:卡尔曼滤波器是一种由卡尔曼(Kalman)提出的用于时变线性系统的递归滤波器。这个系统可用包含正交状态变量的微分方程模型来描述,这种滤波器是将过去的测量估计误差合并到新的测量误差中来估计将来的误差。 卡尔曼滤波的应用 斯坦利.施密特(Stanley Schmidt)首次实现了卡尔曼滤波器.卡尔曼在NASA埃姆斯研究中心访问时,发现他的方法对于解决阿波罗计划的轨道预测很有用,后来阿波罗飞船的导航电脑使用了这种滤波器. 关于这种滤波器的论文由Swerling (1958), Kalman (1960)与 Kalman and Bucy (1961)发表.

相关主题
相关文档 最新文档