Kalman滤波及其应用(含仿真代码)
卡尔曼滤波python代码

卡尔曼滤波(Kalman Filter)简介与Python代码实现1. 引言卡尔曼滤波是一种用于估计系统状态的递归滤波算法,广泛应用于信号处理、机器人导航、控制系统等领域。
它通过对测量值和状态变量之间的关系进行建模,并结合过去的测量值和预测值来优化状态估计。
本文将介绍卡尔曼滤波的原理及其在Python中的实现。
首先,我们将详细解释卡尔曼滤波的数学模型,包括状态方程和观测方程。
然后,我们将给出一个简单的例子来演示如何使用Python编写卡尔曼滤波代码。
最后,我们会讨论一些常见的应用场景和改进方法。
2. 卡尔曼滤波原理2.1 系统模型卡尔曼滤波通过建立系统模型来描述状态变量和观测值之间的关系。
假设我们有一个线性动态系统,可以用以下状态方程表示:x(k) = F * x(k-1) + B * u(k-1) + w(k-1)其中,x(k)是在时间步k时刻的状态向量,F是状态转移矩阵,B是控制输入矩阵,u(k-1)是在时间步k-1时刻的控制向量,w(k-1)是过程噪声。
观测方程可以表示为:z(k) = H * x(k) + v(k)其中,z(k)是在时间步k时刻的观测向量,H是观测矩阵,v(k)是观测噪声。
2.2 状态估计卡尔曼滤波的目标是根据过去的测量值和预测值对系统状态进行估计。
它通过最小化预测误差的协方差来实现。
卡尔曼滤波包括两个主要步骤:预测和更新。
2.2.1 预测在预测步骤中,我们使用状态方程来预测下一个时间步的状态:x_hat(k|k-1) = F * x_hat(k-1|k-1) + B * u(k-1)P(k|k-1) = F * P(k-1|k-1) * F^T + Q其中,x_hat(k|k-1)是在时间步k时刻的状态预测值,P(k|k-1)是状态协方差矩阵(描述状态估计误差的不确定性),Q是过程噪声的协方差矩阵。
2.2.2 更新在更新步骤中,我们使用观测方程来校正预测值:K(k) = P(k|k-1) * H^T * (H * P(k|k-1) * H^T + R)^(-1)x_hat(k|k) = x_hat(k|k-1) + K(k) * (z(k) - H * x_hat(k|k-1))P(k|k) = (I - K(k) * H) * P(k|k-1)其中,K(k)是卡尔曼增益(用于校正预测值),R是观测噪声的协方差矩阵,I是单位矩阵。
kalman滤波 r语言代码

kalman滤波 r语言代码k a l m a n滤波是一种用于估计和预测系统状态的优秀算法。
它是由R u d o l f E.K a l m a n在1960年提出的,适用于线性系统和高斯噪声。
本文将详细介绍k a l m a n滤波的原理,并提供R语言代码示例,让我们一步一步深入了解。
首先,让我们了解k a l m a n滤波的原理。
ka l m a n 滤波是一种递归的滤波算法,它通过系统的动态模型和测量数据的统计特性,对系统的状态进行估计和预测。
k a l m a n滤波有两个基本步骤:预测(p r e d i c t)和更新(u p d a t e)。
在预测步骤中,k a l m a n滤波使用系统的状态转移矩阵来预测系统的下一个状态。
这个预测值被称为先验估计,用符号x_k^-表示,其中k表示时间步长。
x_k^-是由系统的状态转移矩阵A 和上一步的状态估计值x_{k-1}得到的。
预测的系统状态不包含测量数据。
在更新步骤中,k a l m a n滤波使用测量数据来纠正预测的系统状态。
这个纠正值被称为后验估计,用符号x_k表示。
后验估计是由预测的状态估计值和测量数据之间的协方差来计算的。
这个协方差包含了预测状态和测量数据之间的不确定性。
接下来,我们将通过一个实际的R语言代码示例来演示k a l m a n滤波的应用。
假设我们有一组测量数据m e a s u r e m e n t s,我们希望通过k a l m a n 滤波来估计系统的状态。
首先,我们需要定义系统的动态模型和测量矩阵。
在这个示例中,假设我们的系统是一个运动的目标,我们只能通过距离传感器来测量目标的位置。
我们的状态变量是目标的位置和速度,用一个2维的向量来表示。
我们的测量值是目标的位置,用一个1维的向量来表示。
在R语言中,我们可以定义系统的状态转移矩阵A和测量矩阵H如下:A <- m a t r i x(c(1, 1, 0, 1), n r o w = 2, n c o l =2)状态转移矩阵H <- m a t r i x(c(1, 0), n r o w = 1, n c o l = 2)测量矩阵接下来,我们需要定义系统的初始状态和初始协方差。
Kalman滤波原理及程序(指导手册)

Kalman 滤波原理及程序(手册)KF/EKF/UKF 原理+应用实例+MATLAB 程序本手册的研究内容主要有Kalman 滤波,扩展Kalman 滤波,无迹Kalman 滤波等,包括理论介绍和MATLAB 源程序两部分。
本手册所介绍的线性滤波器,主要是Kalman 滤波和α-β滤波,交互多模型Kalman 滤波,这些算法的应用领域主要有温度测量、自由落体,GPS 导航、石油地震勘探、视频图像中的目标检测和跟踪。
EKF 和UKF 主要在非线性领域有着重要的应用,目标跟踪是最主要的非线性领域应用之一,除了讲解目标跟踪外,还介绍了通用非线性系统的EKF 和UKF 滤波处理问题,相信读者可以通过学习本文通用的非线性系统,能快速掌握EKF 和UKF 滤波算法。
本文所涉及到的每一个应用实例,都包含原理介绍和程序代码(含详细的中文注释)。
一、四维目标跟踪Kalman 线性滤波例子在不考虑机动目标自身的动力因素,将匀速直线运动的船舶系统推广到四维,即状态[]T k yk y k xk x k X )()()()()( =包含水平方向的位置和速度和纵向的位置和速度。
则目标跟踪的系统方程可以用式(3.1)和(3.2)表示,)()()1(k u k X k X Γ+Φ=+(2-4-9))()()(k v k HX k Z +=(2-4-10)其中,⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=Φ10001000010001T T ,⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡=ΓT T TT 05.00005.022,TH ⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=00100001,Tyy x x X ⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡= ,⎥⎦⎤⎢⎣⎡=y x Z ,u ,v 为零均值的过程噪声和观测噪声。
T 为采样周期。
为了便于理解,将状态方程和观测方程具体化:)(05.00005.0)1()1()1()1(10001000010001)()()()(1222k w T TT T k y k y k x k x T Tk yk y k x k x ⨯⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡+⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡----⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡ )()()()()(01000001)()(12k v k y k y k x k x k y k x Z ⨯+⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡⎥⎦⎤⎢⎣⎡=⎥⎦⎤⎢⎣⎡= 假定船舶在二维水平面上运动,初始位置为(-100m,200m ),水平运动速度为2m/s ,垂直方向的运动速度为20 m/s ,GPS 接收机的扫描周期为T=1s ,观测噪声的均值为0,方差为100。
卡尔曼滤波原理及应用matlab仿真

卡尔曼滤波原理及应用matlab仿真卡尔曼滤波(Kalman Filter)是一种最优估计算法,由美国工程师卡尔曼发明并命名。
它是一种递归算法,适用于线性以及线性化的系统。
卡尔曼滤波可以通过已知的状态方程和观测方程来计算未知的状态量,同时考虑到测量误差和系统噪声。
卡尔曼滤波的核心思想是通过已知的状态方程和观测方程来递归地更新估计值和协方差矩阵。
估计值是对状态量的估计,协方差矩阵是表示估计值的不确定性的指标,它受到测量误差和系统噪声的影响。
通过不断迭代的过程,最终得到最优的状态估计值。
卡尔曼滤波主要应用于控制系统、导航、信号处理、图像处理等领域,它可以用于预测未来的状态量和优化估计结果,提高系统的稳定性和精度。
在自主导航系统中,卡尔曼滤波可以通过传感器捕捉环境信息,实现机器人的定位、控制和路径规划。
Matlab是一种强大的数学计算软件,它提供了丰富的工具箱和函数库,可以实现卡尔曼滤波算法的仿真。
Matlab中的Kalman滤波工具箱可以用于模拟线性系统的状态估计。
通过Matlab软件,可以输入系统的状态方程和观测方程,生成真实值和观测值序列,并使用卡尔曼滤波算法估计状态量,同时展示状态量的收敛过程和误差分析。
在实际应用中,卡尔曼滤波需要针对具体的问题进行调整和优化,例如选择不同的观测量和噪声模型,选择恰当的卡尔曼增益等。
因此,在使用卡尔曼滤波进行估计时需要注意以下几点:1.确定系统的状态方程和观测方程,建立合理的模型。
2.合理估计系统噪声和观测噪声,减小误差对估计结果的影响。
3.选择合适的卡尔曼增益,平衡观测值和实际值对估计的贡献。
4.对估计结果进行误差分析,评估卡尔曼滤波的优势和局限性。
总之,卡尔曼滤波是一种重要的最优估计算法,广泛应用于控制、导航、信号处理等领域。
通过Matlab软件,可以进行卡尔曼滤波算法的仿真,并优化估计结果。
在实际应用中,需要针对具体问题进行调整和优化,以提高估计精度和稳定性。
卡尔曼(kalman)滤波算法特点及其应用

Kalman滤波算法的特点:(1)由于Kalman滤波算法将被估计的信号看作在白噪声作用下一个随机线性系统的输出,并且其输入/输出关系是由状态方程和输出方程在时间域内给出的,因此这种滤波方法不仅适用于平稳随机过程的滤波,而且特别适用于非平稳或平稳马尔可夫序列或高斯-马尔可夫序列的滤波,所以其应用范围是十分广泛的。
(2)Kalman滤波算法是一种时间域滤波方法,采用状态空间描述系统。
系统的过程噪声和量测噪声并不是需要滤除的对象,它们的统计特征正是估计过程中需要利用的信息,而被估计量和观测量在不同时刻的一、二阶矩却是不必要知道的。
(3)由于Kalman滤波的基本方程是时间域内的递推形式,其计算过程是一个不断地“预测-修正”的过程,在求解时不要求存储大量数据,并且一旦观测到了新的数据,随即可以算的新的滤波值,因此这种滤波方法非常适合于实时处理、计算机实现。
(4)由于滤波器的增益矩阵与观测无关,因此它可预先离线算出,从而可以减少实时在线计算量。
在求滤波器增益矩阵时,要求一个矩阵的逆,它的阶数只取决于观测方程的维数,而该维数通常很小,这样,求逆运算是比较方便的。
另外,在求解滤波器增益的过程中,随时可以算出滤波器的精度指标P,其对角线上的元素就是滤波误差向量各分量的方差。
Kalman滤波的应用领域一般地,只要跟时间序列和高斯白噪声有关或者能建立类似的模型的系统,都可以利用Kalman滤波来处理噪声问题,都可以用其来预测、滤波。
Kalman滤波主要应用领域有以下几个方面。
(1)导航制导、目标定位和跟踪领域。
(2)通信与信号处理、数字图像处理、语音信号处理。
(3)天气预报、地震预报。
(4)地质勘探、矿物开采。
(5)故障诊断、检测。
(6)证券股票市场预测。
具体事例:(1)Kalman滤波在温度测量中的应用;(2)Kalman滤波在自由落体运动目标跟踪中的应用;(3)Kalman滤波在船舶GPS导航定位系统中的应用;(4)Kalman滤波在石油地震勘探中的应用;(5)Kalman滤波在视频图像目标跟踪中的应用;。
卡尔曼滤波的仿真实现

卡尔曼滤波的仿真实现以下是一个卡尔曼滤波的仿真实现过程。
1.定义系统模型:首先,需要定义系统的状态转移方程和观测方程。
系统状态转移方程描述了状态在时间上的演变关系,观测方程描述了测量值与系统状态之间的关系。
例如,考虑一个简单的一维恒定速度系统,状态转移方程可以定义为:x(k+1) = x(k) + v(k) * dt观测方程可以定义为:z(k)=x(k)+w(k)2.初始化滤波器参数:卡尔曼滤波器需要初始化一些参数,包括状态的初始估计值和协方差矩阵。
初始估计值可以根据先验知识提供一个初始猜测,协方差矩阵则定义了该估计的方差。
在这个例子中,可以假设初始位置和速度均为0,并且初始协方差矩阵为一个较大的值。
3.实现卡尔曼滤波算法:在每个时间步骤中,进行以下步骤:-预测步骤:根据状态转移方程预测下一个状态的估计值和协方差矩阵:x_hat(k+1,k) = A * x_hat(k,k) + B * u(k)P(k+1,k)=A*P(k,k)*A^T+Q-更新步骤:根据观测方程更新状态的估计值和协方差矩阵:K(k+1)=P(k+1,k)*H^T*(H*P(k+1,k)*H^T+R)^(-1)x_hat(k+1,k+1) = x_hat(k+1,k) + K(k+1) * (z(k+1) - H *x_hat(k+1,k))P(k+1,k+1)=(I-K(k+1)*H)*P(k+1,k)其中,A和B是状态转移方程的系数矩阵,u(k)是系统的外部输入,Q是过程噪声的协方差矩阵,H是观测方程的系数矩阵,R是观测噪声的协方差矩阵。
4.生成噪声:为了模拟真实的情况,在每个时间步骤中,生成过程噪声和观测噪声。
过程噪声可以使用正态分布随机数生成,观测噪声可以根据具体应用生成。
5.执行仿真:在每个时间步骤中,首先根据当前状态和输入生成观测值。
然后,根据观测值和卡尔曼滤波算法更新状态的估计值和协方差矩阵。
最后,记录每个时间步骤下的估计状态和真实状态,并计算估计状态与真实状态之间的误差。
MATLAB中的Kalman滤波器设计

MATLAB中的Kalman滤波器设计引言Kalman滤波器是一种常用于估计随时间演变的系统状态的算法。
它通过观测值和系统模型之间的协方差来融合测量和预测,从而提供对系统状态的最优估计。
在MATLAB中,实现Kalman滤波器设计相对简单,本文将介绍MATLAB中Kalman滤波器的基本原理和常见的应用案例。
一、 Kalman滤波器基本原理Kalman滤波器的基本原理可以概括为两个步骤:预测和更新。
预测步骤根据系统的动力学模型和先前的状态估计,使用预测方程计算下一个时间步的状态预测和协方差预测。
更新步骤则是在测量信息的基础上,使用更新方程将预测的状态和协方差修正为更准确的估计。
预测步骤:1. 根据系统的动力学模型,使用预测方程计算状态预测值x_prior和协方差预测值P_prior:x_prior = F * x_est + B * uP_prior = F * P_est * F' + Q其中,F是状态转移矩阵,x_est和P_est是先前时间步的状态估计和协方差估计,B是控制输入矩阵,u是控制输入向量,Q是系统过程噪声的协方差矩阵。
更新步骤:1. 根据观测模型,使用更新方程计算观测预测值z_prior和观测协方差S:z_prior = H * x_priorS = H * P_prior * H' + R其中,H是观测矩阵,R是观测噪声的协方差矩阵。
2. 计算卡尔曼增益K:K = P_prior * H' * inv(S)3. 根据观测值z和观测预测值z_prior,计算状态更新值x_update和协方差更新值P_update:x_update = x_prior + K * (z - z_prior)P_update = (eye(size(x_est, 1)) - K * H) * P_prior二、案例研究:目标跟踪Kalman滤波器在目标跟踪领域有广泛的应用。
卡尔曼滤波简介及其算法实现代码

卡尔曼滤波简介及其算法实现代码卡尔曼滤波算法实现代码(C,C++分别实现)卡尔曼滤波器简介近来发现有些问题很多人都很感兴趣。
所以在这里希望能尽自己能力跟大家讨论一些力所能及的算法。
现在先讨论一下卡尔曼滤波器,如果时间和能力允许,我还希望能够写写其他的算法,例如遗传算法,傅立叶变换,数字滤波,神经网络,图像处理等等。
因为这里不能写复杂的数学公式,所以也只能形象的描述。
希望如果哪位是这方面的专家,欢迎讨论更正。
卡尔曼滤波器– Kalman Filter1.什么是卡尔曼滤波器(What is the Kalman Filter?)在学习卡尔曼滤波器之前,首先看看为什么叫“卡尔曼”。
跟其他著名的理论(例如傅立叶变换,泰勒级数等等)一样,卡尔曼也是一个人的名字,而跟他们不同的是,他是个现代人!卡尔曼全名Rudolf Emil Kalman,匈牙利数学家,1930年出生于匈牙利首都布达佩斯。
1953,1954年于麻省理工学院分别获得电机工程学士及硕士学位。
1957年于哥伦比亚大学获得博士学位。
我们现在要学习的卡尔曼滤波器,正是源于他的博士论文和1960年发表的论文《A New Approach to Linear Filtering and Prediction Problems》(线性滤波与预测问题的新方法)。
如果对这编论文有兴趣,可以到这里的地址下载:/~welch/media/pdf/Kalman1960.pdf。
简单来说,卡尔曼滤波器是一个“optimal recursive data processing algorithm(最优化自回归数据处理算法)”。
对于解决很大部分的问题,他是最优,效率最高甚至是最有用的。
他的广泛应用已经超过30年,包括机器人导航,控制,传感器数据融合甚至在军事方面的雷达系统以及导弹追踪等等。
近年来更被应用于计算机图像处理,例如头脸识别,图像分割,图像边缘检测等等。
2.卡尔曼滤波器的介绍(Introduction to the Kalman Filter)为了可以更加容易的理解卡尔曼滤波器,这里会应用形象的描述方法来讲解,而不是像大多数参考书那样罗列一大堆的数学公式和数学符号。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
新息过程
考虑一步预测问题:给定观测值 y(1),..., y(n 1) ,求观测向量最小 def ˆ ˆ (n | y(1),..., y(n 1)) ,利用新息方法,很容易求解。 二乘估计 y1 (n) y
y (n) 的新息过程(innovation process)定义为:
ˆ 1 (n), n 1, 2,... (n) y(n) y
R(n)是新息过程的相关矩阵。
Riccati方程
为了最后完成Kalman自适应滤波,还需要推导 K (n, n 1) 的递推公式。
考查状态向量的预测误差
ˆ 1 (n 1) e (n 1, n) x (n 1) x ˆ 1 ( n) G ( n) ( n)} {F (n 1, n) x (n) v1 (n)} {F ( n 1, n) x [ F (n 1, n) G (n)C (n)]e(n, n 1) G (n)v2 (n) v1 ( n)
n 1
ˆ 1 ( n) F (n 1, n) E{ x (n) H (k )}R-1 (k ) (k ) F (n 1, n) x
k 1
n 1
定义:G(n) E{x(n 1) H (n)}R-1 (n) ,那么状态误差向量的一步预测为:
ˆ 1 (n 1) F (n 1, n) x ˆ 1 (n) G(n) (n) x
{ y(1),..., y(n)} { (1),..., (n)}
新息过程(cont.)
ˆ 1 ( n) , 在Kalman滤波中,并不直接估计观测数据向量的一步预测 y 而是先计算状态向量的一步预测 ˆ 1 (n) x(n | y(1),..., y(n 1)) x
然后
def
ˆ 1 (n) C (n) x ˆ 1 (n) y
(1)观测方程:
y(n) C (n) x(n) v2 (n)
M×M维观测矩阵
(已知)
M×1维观测向量
M×1维观测噪声
向量,v2 (n) ~ N (0, Q2 (n))
Kalman滤波问题:利用观测数据向量 y(1),..., y(n 1),对 n 1 求状态向量 x (i ) 各个分量的最小二乘估计。
根据正交性原理
ˆ 1 (n 1)] H (k )} E{e (n 1, n) H (k )} E{[ x(n 1) x 0 , k 1,..., n
ˆ 1 (n 1) 代人上式,并利用新息过程的正 将构造的状态向量的一步预测 x 交性有:
E{x(n 1) H (k )} W1 (k )E{ (k ) H (k )} W1 (k ) R(k )
状态向量一步预测误差向量的相关矩阵
K (n 1, n) E{e(n 1, n)e H (n 1, n)} F (n 1, n) P (n) F H (n 1, n) Q1 (n)
(请证明) (代入新息过程计算式)
上式成为Riccati差分方程,其中
P (n) K (n, n 1) F -1 (n 1, n)G(n)C (n) K (n, n 1)
G (n) ----Kalman增益矩阵
非自适应部分 自适应部分
Kalman增益的计算
Kalman增益的定义:G(n) E{x(n 1) H (n)}R-1 (n)
E{ x (n 1) H (n)} F (n 1, n)E{ x (n) H ( n)} F (n 1, n)E{ x (n)e H (n, n 1)}C H (n) F (n 1, n)E{e (n, n 1)e H (n, n 1)}C H (n) F (n 1, n) K (n, n 1)C H (n)
卫星角速度估计
状态方程可以写成:
x(n) Fx(n 1) u(n) w(n)
其中:
1 T 0 状态转移矩阵 F 0 1 T 0 0 0
系统噪声 系统输入向量
u(n) 0, 0, u(n)
T
w (n) 0, 0, w(n)
T
系统噪声 相关矩阵
ˆ 1 (n 1) x ˆ (n 1| y (1),..., y (n)) x W1 (k ) (k )
k 1 n
def
W1 (k ) 表示与一步预测相对应的权矩阵。现在的问题是如何确定 其中, 这个权矩阵?
状态向量的一步预测
正交性原理:线性滤波器工作在最优条件的充分必要条件是估计误差 eopt (n) 与输入 u(0),..., u(n) 正交。 正交性原理引理:当滤波器工作在最优条件时,由滤波器输出定义的期 望响应的估计 yopt (n) 与相应的估计误差 eopt (n)正交。
Kalman滤波及其应用
目
• Kalman滤波原理简介
1 Kalman滤波器的由来 2 新息过程 3 Kalman滤波算法
录
• Kalman滤波的应用
1 卫星角速度估计 2 无人机地面目标跟踪
3 基于Kalman滤波的时变信道估计
目
• Kalman滤波原理简介
1 Kalman滤波器的由来 2 新息过程 3 Kalman滤波算法
Kalman滤波器的由来
已知待估计信号二阶统计特性 待估计信号二阶统计特性未知 Wiener滤波器 ?
Kalman滤波理论是Wiener滤波理论的发展,最早用于随机过程的参 数估计,后来很快在各种最优滤波和最优控制问题中得到了极其广泛的应 用。 Kalman滤波器具有以下特点: 1. 其数学公式用状态空间描述; 2. 它的解是递推计算的,即与Wiener滤波器不同,Kalman滤波器是 一种自适应滤波器。
(利用 (n) C (n)e(n, n 1) v2 (n) ) (利用正交性原理引理)
ˆ 1 (n) e ( n, n 1)]e H (n, n 1)}C H (n) F (n 1, n)E{[ x
Kalman增益的计算表达式:
G(n) F (n 1, n) K (n, n 1)C H (n) R-1 (n)
Kalman. R. E.1960. “A New Approach to Linear Filtering and Problems” .
动态系统模型
考虑一离散时间的动态系统:
(1)过程方程:
x(n 1) F (n 1, n) x(n) v1 (n)
M×1维状态向量 M×M维状态转移 矩阵(已知) M×1维过程噪声 向量,v1 (n) ~ N (0, Q1 (n))
G (n) F (n 1, n) K (n, n 1)C H (n)[C (n) K (n, n 1)C H ( n) Q2 ( n)]1 ˆ 1 ( n) ( n) y ( n) C ( n) x ˆ 1 (n 1) F (n 1, n) x ˆ 1 (n) G (n) (n) x P (n) K (n, n 1) F -1 (n 1, n)G (n)C (n) K (n, n 1) K (n 1, n) F (n 1, n) P (n) F H (n 1, n) Q1 (n)
ˆ 1 (n) C ( n)[ x( n) x ˆ 1 ( n)] v2 ( n) (n) y(n) C (n) x
新息过程重新写为:
C (n)e (n, n 1) v2 (n) def ˆ 1 (n) 表示状态向量的一步预测误差。 其中 e(n, n 1) x(n) x
ˆ(t ) g (t ) [s(t ) n(t )] g ( )[s(t ) n(t )]d s
根据已知的输入信号和噪声的二阶统计特性(比如频谱)获取的 滤波器系数。属于非自适应滤波。
Wiener, Norbert (1949). “Extrapolation, Interpolation, and Smoothing of Stationary Time Series”.
(一步预测)
目
• Kalman滤波原理简介
1 Kalman滤波器的由来 2 新息过程 3 Kalman滤波算法
录
• Kalman滤波的应用
1 卫星角速度估计 2 无人机地面目标跟踪
3 基于Kalman滤波的时变信道估计
卫星角速度估计
卫星滚动姿态角度方程:
H (n) H (n 1) TH (n 1)
N时刻的滚动 姿态角度 更新时间间隔, T较小
卫星滚动姿态角速度方程:
H (n) H (n 1) TH (n 1)
卫星滚动姿态角加速度方程: 定义状态向量:
H (n) u(n) w(n)
系统喷气产生
的加速度
干ቤተ መጻሕፍቲ ባይዱ,零均值
白噪声
x1 (n) H (n) (n) x ( n) x ( n ) 2 H H (n) x3 (n)
故权矩阵可以表示为: W1 (k ) E{x(n 1) H (k )}R-1 (k )
状态向量的一步预测(cont.)
状态向量的一步预测的最小均方误差估计可表示为:
ˆ 1 (n 1) E{ x (n 1) H ( k )}R -1 ( k ) ( k ) x
k 1 n
性质1:新息 (n) 与过去观测数据 y(1),..., y(n 1)正交,即
E{ (n) y H (k )} 0,1 k n 1
性质2:新息过程由彼此正交的随机向量序列 { (n)} 组成,即
E{ (n) H (k )} 0,1 k n 1
性质3:表示观测数据的随机向量序列{ y(1),..., y(n)} 与表示新息过程的 随机向量序列 { (1),..., (n)} 一一对应,即