卡尔曼滤波器学习之一最小二乘法

来源:互联网 发布:淘宝买家信誉怎么查询 编辑:程序博客网 时间:2024/05/29 18:25

近期对卡尔曼滤波器很感兴趣,想趁着假期的时候好好学习一下。选择的教材是《Fundamentals of Kalman Filtering A Practical Approach, Third Edition》。本系列按照数据的章节顺序安排内容,本文的内容是书籍的第二章,最小二乘法。

最小二乘法

综述

我们的目标是尽可能的逼近真实信号,通过处理采集来的被噪声污染的信号。主要分为两步:
1. 使用一个多项式模型用于模拟真实信号。可用如下公式来描述模型:

anxn+an1xn1+...+a1x1+a0x0

2. 根据最小二乘法的准则,估计模型中的参数

零阶滤波器

假设有一组测量数据描述一个固定值,如何通过最小二乘法获得该固定值的最优估计。从多项式模型而言,即根据现实情况确定的模型是a0x0 = a0,需要根据最小二乘法估计参数a0的值。
假设有n个测量数据xk,假设最优估计为a0,则

R=k=1n(a0xk)2

R为估计值与测量值差值平方的求和,如果使R取到最小值,则认为估计值a0为最优估计。当R的一阶导数等于零,二阶导数大于零时R取到最小值。
R=k=1n(a0xk)2=(a0x1)2+(a0x2)2+...+(a0xn)2

R求一阶导:
Ra0=0=2(a0x1)+2(a0x2)+...+2(a0xn)

R的一阶导数为零,则
a0=nk=1xkn

求二阶导:
2Ra02=2+2+...+2=2n

n取正时,R的二阶导总为正数。此时,R取到最小值。
上述例子告诉我们对固定值做最小二乘法的最优估计是将测试值取平均。

一阶滤波器

一阶滤波器主要用于解决的问题是寻找一条直线最好的匹配测量数据。同上,此问题的模型是x̂ =a1x1+a0x0,需要根据最小二乘法来估计a1a0的值。

x̂ =a0+a1t=a0+a1(k1)Ts

R=k=1n(x̂ kxk)2=k=1n(a0+a1(k1)Tsxk)2

Ra0=0=2(a0x1)+...+2(a0+a1(n1)Tsxn)

Ra1=0=2(a0+a1Tsx2)Ts+...+2(n1)Ts(a0+a1(n1)Tsxn)

已知对上述式子求二阶导,均大于零,可认为当R的一阶导取零时,R取到最小值。
na0+a1k=1n(k1)Ts=k=1nxk

a0k=1n(k1)Ts+a1k=1n[(k1)Ts]2=k=1n(k1)Tsxk

上述两个方程求解两个未知数,可以计算出结果a0a1

更高阶的滤波器可以通过相似的方法求解参数。

例子

例如,有如下一组测量数据,对其进行估计:

k(k1)Tsxk101.2210.2322.9432.1

以图的方式展现出来:
这里写图片描述
最小二乘法结合多项式模型得到的参数估计:

OrderEquationsZerotha0=nk=1yknFirst
[a0a1]=nk=1nxkk=1nxkk=1nxk21k=1nykk=1nxkyk
Second
a0a1a2=nk=1nxkk=1nx2kk=1nxkk=1nx2kk=1nx3kk=1nxk2k=1nx3kk=1nx4k1k=1nykk=1nxkykk=1nx2kyk
Third
a0a1a2a3=nk=1nxkk=1nx2kk=1nx3kk=1nxkk=1nx2kk=1nx3kk=1nx4kk=1nxk2k=1nx3kk=1nx4kk=1nx5kk=1nxk3k=1nx4kk=1nx5kk=1nx6k1k=1nykk=1nxkykk=1nx2kykk=1nx3kyk

对于上述数据使用不同阶数的多项式模型对其进行建模,结果如下:

当多项式的阶数逐渐增加,R将减少并趋向于零。但是如果本身测量的值被噪声污染,则当R值减少并不一定是向真实值靠近,有可能出现更加原理真实值得情况。

0 0
原创粉丝点击