当前位置:文档之家› (完整word版)卡尔曼滤波实验报告

(完整word版)卡尔曼滤波实验报告

(完整word版)卡尔曼滤波实验报告
(完整word版)卡尔曼滤波实验报告

实验:卡尔曼滤波实现

实验报告姓名:学号:日期:(以下内容用五号字书写,本页空白不够可续页)

题目 ##

姓名:学号:日期:(以下内容用五号字书写,本页空白不够可续页)

卡尔曼滤波计算举例

卡尔曼滤波计算举例 ?计算举例 ?卡尔曼滤波器特性

假设有一个标量系统,信号与观测模型为 [1][][]x k ax k n k +=+[][][] z k x k w k =+其中a 为常数,n [k ]和w [k ]是不相关的零均值白噪声,方差分别为和。 系统的起始变量x [0]为随机变量,其均值为零,方差为。2n σ2 σ[0]x P (1)求估计x [k ]的卡尔曼滤波算法;(2)当时的卡尔曼滤波增益和滤波误差方差。 22 0.9,1,10,[0]10 n x a P =σ=σ==1. 计算举例

根据卡尔曼算法,预测方程为: ??[/1][1/1]x k k ax k k -=--预测误差方差为: 2 2 [/1][1/1]x x n P k k a P k k -=--+σ 卡尔曼增益为: () 1 22 22 22 [][/1][/1][1/1][1/1]x x x n x n K k P k k P k k a P k k a P k k -=--+σ --+σ=--+σ+σ ???[/][/1][]([][/1])??[1/1][]([][1/1])?(1[])[1/1][][]x k k x k k K k z k x k k ax k k K k z k ax k k a K k x k k K k z k =-+--=--+---=---+滤波方程:

()() 2 2222222 222 22 [/](1[])[/1] [1/1]1[1/1][1/1][1/1][1/1]x x x n x n x n x n x n P k k K k P k k a P k k a P k k a P k k a P k k a P k k =--??--+σ=---+σ ?--+σ+σ??σ--+σ = --+σ+σ 滤波误差方差 起始:?[0/0]0x =[0/0][0] x x P P =

卡尔曼滤波算法总结

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

北航卡尔曼滤波课程-捷联惯导静基座初始对准实验

卡尔曼滤波实验报告 捷联惯导静基座初始对准实验 一、实验目的 ①掌握捷联惯导的构成和基本工作原理; ②掌握捷联惯导静基座对准的基本工作原理; ③了解捷联惯导静基座对准时的每个系统状态的可观测性; ④了解双位置对准时系统状态的可观测性的变化。 二、实验原理 选取状态变量为:[]T E N E N U x y x y z X V V δδεεε=ψψψ??,其

中导航坐标系选为东北天坐标系,E V δ为东向速度误差,N V δ为北向速度误差,E ψ为东向姿态误差角,N ψ为北向姿态误差角,U ψ为天向姿态误差角,x ?为东向加速度偏置,y ?为北向加速度偏置,x ε为东向陀螺漂移,y ε为北向陀螺漂移,z ε为天向陀螺漂移。则系统的状态模型为: X AX W =+ (1) 其中, 1112212211 12 1321222331323302sin 000002sin 000000000sin cos 0000sin 000000cos 0000000000000000000000000000000000000000000000000000 0L g C C L g C C L L C C C L C C C L C C C A Ω-? ? ??-Ω????Ω-Ω? ?-Ω????Ω=? ?????? ?????????? ? [00000]E N E N U T V V W W W W W W δδψψψ=,E D V W W δψ 为零均值高斯 白噪声,分别为加速度计误差和陀螺漂移的噪声成分,Ω为地球自转角速度,ij C 为姿态矩 阵n b C 中的元素,L 为当地纬度。 量测量选取两个水平速度误差:[ ]T E N Z V V δδ=,则量测方程为: 10000000000100000000E E N N V X V δηδη???? ??=+???????????? (2) 即Z HX η=+ 其中,H 为量测矩阵,[]T E N ηηη=为量测方程的随机噪声状态矢量,为零均值高 斯白噪声。 要利用基本卡尔曼滤波方程进行状态估计,需要将状态方程和量测方程进行离散化。 系统转移矩阵为: 2323/1111102!3!! n n k k k k k k n T T T I TA A A A n ∞ -----=Φ=++++=∑ (3)

几种卡尔曼滤波算法理论

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

卡尔曼滤波算法(C--C++两种实现代码)

卡尔曼滤波算法实现代码 C++实现代码如下: ============================kalman.h================= =============== // kalman.h: interface for the kalman class. // ////////////////////////////////////////////////////////////////////// #if !defined(AFX_KALMAN_H__ED3D740F_01D2_4616_8B74_8BF57636F2C0__IN CLUDED_) #define AFX_KALMAN_H__ED3D740F_01D2_4616_8B74_8BF57636F2C0__INCLU DED_ #if _MSC_VER > 1000 #pragma once #endif// _MSC_VER > 1000 #include #include "cv.h" class kalman { public: void init_kalman(int x,int xv,int y,int yv); CvKalman* cvkalman; CvMat* state; CvMat* process_noise; CvMat* measurement; const CvMat* prediction; CvPoint2D32f get_predict(float x, float y);

kalman(int x=0,int xv=0,int y=0,int yv=0); //virtual ~kalman(); }; #endif// !defined(AFX_KALMAN_H__ED3D740F_01D2_4616_8B74_8BF57636F2C 0__INCLUDED_) ============================kalman.cpp=============== ================= #include "kalman.h" #include /* tester de printer toutes les valeurs des vecteurs*/ /* tester de changer les matrices du noises */ /* replace state by cvkalman->state_post ??? */ CvRandState rng; const double T = 0.1; kalman::kalman(int x,int xv,int y,int yv) { cvkalman = cvCreateKalman( 4, 4, 0 ); state = cvCreateMat( 4, 1, CV_32FC1 ); process_noise = cvCreateMat( 4, 1, CV_32FC1 ); measurement = cvCreateMat( 4, 1, CV_32FC1 ); int code = -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)更新协方差阵

自适应滤波实验报告

LMS 自适应滤波实验报告 姓名: 学号: 日期:2015.12.2 实验内容: 利用自适应滤波法研究从宽带信号中提取单频信号的方法。 设()()()()t f B t f A t s t x 212cos 2cos π?π+++=,()t s 是宽带信号,A ,B ,1f ,2f , ?任选 (1)要求提取两个单频信号; (2)设f f f ?+=12,要求提取单频信号()t f 22cos π,研究f ?的大小对提取单频信号的影响。 1. 自适应滤波器原理 自适应滤波器理论是现代信号处理技术的重要组成部分,它对复杂信号的处理具有独特的功能。自适应滤波器在信号处理中属于随机信号处理的范畴。在一些信号和噪声特性无法预知或他们是随时间变化的情况下,自适应滤波器通过自适应滤波算法调整滤波器系数,使得滤波器的特性随信号和噪声的变化,以达到最优滤波的效果,解决了固定全系数的维纳滤器和卡尔曼滤波器的不足。 (1) 自适应横向滤波器 所谓自适应滤波,就是利用前一时刻已获得的滤波器参数等结果,自动调节现时刻的滤波器参数,以适应信号和噪声未知或随时间变化的统计特性,从而实现最优滤波。自适应滤波器由两个部分组成:滤波器结构和调节滤波器系数的自适应算法。自适应滤波器的特点是自动调节自身的冲激响应,达到最优滤波,此算法适用于平稳和非平稳随机信号,并且不要求知道信号和噪声的统计特性。 一个单输入的横向自适应滤波器的原理框图如图所示:

实际上这种单输入系统就是一个FIR 网络结构,其输出()n y 用滤波器单位脉冲响应表示成下式: ()()()∑-=-=1 N m m n x m w n y 这里()n w 称为滤波器单位脉冲响应,令:()()n i n x x i w w m i i i ,1,1,1+-=-=+=用j 表示,上式可以写成 ∑==N i ij i j x w y 1 这里i w 也称为滤波器加权系数。用上面公式表示其输出,适用于自适应线性组合器,也适用于FIR 滤波器。将上式表示成矩阵形式: X W W X j T T j j y == 式中 [][ ] T Nj j j j T N x x x w w w X W ,...,,, ,...,,2121== 误差信号表示为 X W j T j j j j d y d e -=-= (2) 最小均方(LMS )算法 Widrow 等人提出的最小均方算法,是用梯度的估计值代替梯度的精确值,这种算法简单易行,因此获得了广泛的应用。 LMS 算法的梯度估计值用一条样本曲线进行计算,公式如下:

卡尔曼滤波中文

处理线性滤波以及预测问题的一种新途径R.E.Kalman1引言通讯与控制中的理论与实际问题中有很重要的一类具有统计性质。 这样的问题有:(1)、随机信号的预测;(2)、从随机噪声中分离随机信 号;(3)、在有噪声的情况下探测已知形式的信号(脉冲、正弦波)。 在Wiener开拓性的工作中,他证明[1]从问题(1)和问题(2)可导 出所谓Wiener-Hopf积分方程;他同样给出了解决具有实际重要意义的特 殊情况——定态统计和有理数频谱——之积分方程的方法(频谱因式分解)。 在Wiener的基础性工作之后出现了许多延伸和推广。Zadeh与 Ragazzini给出了有限存储器情况的解[2]。Bode和Shannon[3]同时独 立的给出上述情况的解,并且给出了简化的求解方法。Booton讨论了非定 态统计Wiener-Hopf方程[4]。这些结果现在都写入了标准教科书中[5,6]。 最近Darlington[7]沿着这些主线给出了一种稍微有些不同的方法。对抽 样信号的延伸,参见Franklin[8]和Lees[9]的工作。基于Wiener-Hopf方 程(同样应用于非定态问题,尽管前述方法一般并非如此)特征函数的 方法由Davis[10]开创并被许多其他人应用,例如Shinbrot[11],Blum[12], Pugachev[13],Solodovnikov[14]. 在所有这些工作中,目标都是获取一个线性动力系统的明确说明 (Wiener滤波器),由此可以完成预测、分离或者探测随机信号。 现有求解Wiener问题的方法受制于若干限制,这样就使得它们的实际 用处收到削弱: 1.最佳的滤波器由其脉冲响应具体指定。由这些数据合成滤波器并非易 事。 2.数值确定最佳的脉冲响应往往十分复杂并且不很适合机器计算。这种 情况随着问题复杂度的增加而迅速变得更为糟糕。 11引言2 3.重要的推广(如增长存储器滤波器、非定态预测)需要新的推导过 程,经常给非专业人士带来相当大的困难。 4.这些推导过程的数学部分并不透明。基本假设及其后果趋于模糊。 本文回避上述困难,提出看待这些问题的整个集合的新方式。以下是 本文的亮点: 5.最佳估计和正交投影。Wiener问题是以条件分布与期望的观点处理 的。这样,Wiener理论的基本事实可以迅速获取;结果的范围以及基 本假设可以清楚的显现出来。可以看到所有的统计计算以及结果都基 于一阶和二阶平均;不需要其他的统计数据。这样一来困难(4)便被 排除。这种方法在概率论中为人们所熟知(见Doob[15]第148至155 页以及Lo`eve[16]第455至464页),但在工程上还没有大量的应用。 6.随机过程模型。继前人之后,尤其是Bode与Shannon[3],任意随机 信号可以被表示(直到二阶平均统计性质)为线性动力系统受独立或 不相关随机信号(“白噪声”)激励后的输出。这是工程上应用Wiener 理论的标准手法[2,3,4,5,6,7]。这里用到的方法与传统方法相比只 在线性动力系统的描述方法上不同。我们将强调状态以及状态过渡; 换言之,线性系统将以一阶差分(或微分)方程组来刻画。为了利用 (5)中提到的简化,这种观点是自然的,也是必要的。 7.求解Wiener问题。使用状态——过渡方法,单独一次推导即覆盖多

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

卡尔曼滤波简介及其算法实现代码 卡尔曼滤波算法实现代码(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/1512186843.html,/~welch/media/pdf/Kalman1960.pdf。 简单来说,卡尔曼滤波器是一个“optimal recursive data processing algorithm(最优化自回归数据处理算法)”。对于解决很大部分的问题,他是最优,效率最高甚至是最有用的。他的广泛应用已经超过30年,包括机器人导航,控制,传感器数据融合甚至在军事方面的雷达系统以及导弹追踪等等。近年来更被应用于计算机图像处理,例如头脸识别,图像分割,图像边缘检测等等。 2.卡尔曼滤波器的介绍 (Introduction to the Kalman Filter) 为了可以更加容易的理解卡尔曼滤波器,这里会应用形象的描述方法来讲解,而不是像大多数参考书那样罗列一大堆的数学公式和数学符号。但是,他的5条公式是其核心内容。结合现代的计算机,其实卡尔曼的程序相当的简单,只要你理解了他的那5条公式。 在介绍他的5条公式之前,先让我们来根据下面的例子一步一步的探索。 假设我们要研究的对象是一个房间的温度。根据你的经验判断,这个房间的温度是恒定的,也就

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

卡尔曼,美国数学家和电气工程师。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)发表.

自适应滤波实验报告

LMS 自适应滤波实验报告 : 学号: 日期:2015.12.2 实验容: 利用自适应滤波法研究从宽带信号中提取单频信号的方法。 设()()()()t f B t f A t s t x 212cos 2cos π?π+++=,()t s 是宽带信号,A ,B ,1f ,2f , ?任选 (1)要求提取两个单频信号; (2)设f f f ?+=12,要求提取单频信号()t f 22cos π,研究f ?的大小对提取单频信号的影响。 1. 自适应滤波器原理 自适应滤波器理论是现代信号处理技术的重要组成部分,它对复杂信号的处理具有独特的功能。自适应滤波器在信号处理中属于随机信号处理的畴。在一些信号和噪声特性无法预知或他们是随时间变化的情况下,自适应滤波器通过自适应滤波算法调整滤波器系数,使得滤波器的特性随信号和噪声的变化,以达到最优滤波的效果,解决了固定全系数的维纳滤器和卡尔曼滤波器的不足。 (1) 自适应横向滤波器 所谓自适应滤波,就是利用前一时刻已获得的滤波器参数等结果,自动调节现时刻的滤波器参数,以适应信号和噪声未知或随时间变化的统计特性,从而实现最优滤波。自适应滤波器由两个部分组成:滤波器结构和调节滤波器系数的自适应算法。自适应滤波器的特点是自动调节自身的冲激响应,达到最优滤波,此算法适用于平稳和非平稳随机信号,并且不要求知道信号和噪声的统计特性。

一个单输入的横向自适应滤波器的原理框图如图所示: 实际上这种单输入系统就是一个FIR 网络结构,其输出()n y 用滤波器单位脉冲响应表示成下式: ()()()∑-=-=1 N m m n x m w n y 这里()n w 称为滤波器单位脉冲响应,令: ()()n i n x x i w w m i i i ,1,1,1+-=-=+=用j 表示,上式可以写成 ∑==N i ij i j x w y 1 这里i w 也称为滤波器加权系数。用上面公式表示其输出,适用于自适应线性组合器,也适用于FIR 滤波器。将上式表示成矩阵形式: X W W X j T T j j y == 式中 [][ ] T Nj j j j T N x x x w w w X W ,...,,, ,...,,2121== 误差信号表示为 X W j T j j j j d y d e -=-= (2) 最小均方(LMS )算法 Widrow 等人提出的最小均方算法,是用梯度的估计值代替梯度的精确值,这种算法简单易行,因此获得了广泛的应用。

Kalman滤波算法

Kalman 滤波算法 姓名:刘金强 专业:控制理论与控制工程 学号:2007255 ◆实验目的: (1)、掌握klman 滤波实现的原理和方法 (2)、掌握状态向量预测公式的实现过程 (3)、了解Riccati 差分方程实现的过程和新息的基本性质和过程的计算 ◆实验要求: 问题: F=[a1,a2,a3],其中a1=[1.0 0 0]的转置,a2=[0.3 1.0 0]的转置,a3=[0.1 0.2 0.4]的转置,x(0)=[3,-1,2]的转置;C=[b1,b2,b3],其中b1=[0.3 0.5]的转置,b2=[1,0.4]的转置,b3=[0.8 -0.7]的转置;V1(n)=[0 0 n1(n)sin(0.1n)]的转置,V2(n)=[n2(n) n3(n)];n1(n)为均值为零,方差为1的均匀分布白噪声;n2(n),n3(n)为均值为0,方差为0.1的均匀分布白噪声,n1(n),n2(n),n3(n)相互独立,试用卡尔曼滤波器算法估计x^(n). ◆实验原理: 初始条件: 1?(1)x =E{x(1)} K(1,0)=E{[x(1)- (1)x ][x(1)- (1)H x ]},其中(1)x =E{x(1)} 输入观测向量过程: 观测向量序列={y(1),…………y(n)} 已知参数: 状态转移矩阵F(n+1,n) 观测矩阵C(n) 过程噪声向量的相关矩阵1()Q n 观测噪声向量的相关矩阵2()Q n 计算:n=1,2,3,………………. G(n)=F(n+1,n)K(n,n+1) ()H C n 12[()(,1)()()]H C n K n n C n Q n --+ Kalman 滤波器是一种线性的离散时间有限维系统。Kalman 滤波器的估计性能是:它使滤波后的状态估计误差的相关矩阵P(n)的迹最小化。这意味着,kalman 滤波器是状态向量x(n)的线性最小方差估计。 ◆实验结果: ◆程序代码: (1)主程序

北航卡尔曼滤波实验报告-GPS静动态滤波实验

卡尔曼滤波实验报告

2014 年 4 月 GPS 静/动态滤波实验 一、实验要求 1、分别建立GPS 静态及动态卡尔曼滤波模型,编写程序对静态和动态GPS 数据进行Kalman 滤波。 2、对比滤波前后导航轨迹图。 3、画出滤波过程中估计均方差(P 阵对角线元素开根号)的变化趋势。 4、思考:① 简述动态模型与静态模型的区别与联系;② R 阵、Q 阵,P0阵的选取对滤波精度及收敛速度有何影响,取值时应注意什么;③ 本滤波问题是否可以用最小二乘方法解决,如果可以,请阐述最小二乘方法与Kalman 滤波方法的优劣对比。 二、实验原理 2.1 GPS 静态滤波 选取系统的状态变量为[ ]T L h λ=X ,其中L 为纬度(deg),λ为经度(deg),h 为高度 (m)。设()w t 为零均值高斯白噪声,则系统的状态方程为: 310()w t ?=+X (1) 所以离散化的状态模型为: ,111k k k k k W ---=+X X Φ (2) 式中,,1k k -Φ为33?单位阵,k W 为系统噪声序列。 测量数据包括:纬度静态量测值、经度静态量测值和高度构成31?矩阵Z ,量测方程

可以表示为: k k k Z HX V =+ (3) 式中,H 为33?单位阵,k V 为量测噪声序列。 系统的状态模型是十分准确的,所以系统模型噪声方差阵可以取得十分小,取Q 阵零矩阵。 系统测量噪声方差阵R 由测量确定,由于位置量测精度为5m ,采用克拉索夫斯基地球椭球模型,长半径e R 为6378245m ,短半径p R 为6356863m 。所以R 阵为: 2 2 25180()0 05180 ( )0cos()00 5p e R R L ππ ??? ?? ? ??= ??? ? ? ?? ? R (4) 2.2 GPS 动态滤波 动态滤波基于当前统计模型,在地球坐标系下解算。选取系统的状态变量为 T x x x y y y z z z X x v a y v a z v a εεε??=??,其中,,,x x x x v a ε依次为地球坐标系下x 轴上的位置、速度、加速度和位置误差分量,,y z 轴同理。系统的状态模型可以表示为: ()()()()t t t t =++X AX U W (5) 式中,位置误差视为有色噪声,为一阶马尔科夫过程,可表示为: x x x x y y y y z z z z w w w εετεετεετ?=-+????=-+????=-+?? 1 11 (6) 其中,i τ(,,i x y z =)为对应马尔科夫过程的相关时间常数,(,,)i w i x y z =为零均值高斯白噪声。

北航卡尔曼滤波实验报告_GPS静动态滤波实验

卡尔曼滤波实验报告 2014 年 4 月 GPS静/动态滤波实验 一、实验要求 1、分别建立GPS静态及动态卡尔曼滤波模型,编写程序对静态和动态GPS数据进行Kalman滤波。 2、对比滤波前后导航轨迹图。

3、画出滤波过程中估计均方差(P 阵对角线元素开根号)的变化趋势。 4、思考:① 简述动态模型与静态模型的区别与联系;② R 阵、Q 阵,P0阵的选取对滤波精度及收敛速度有何影响,取值时应注意什么;③ 本滤波问题是否可以用最小二乘方法解决,如果可以,请阐述最小二乘方法与Kalman 滤波方法的优劣对比。 二、实验原理 2.1 GPS 静态滤波 (deg) 度(m) (1) 所以离散化的状态模型为: (2) 可以表示为: (3) 矩阵。 5m ,采用克拉索夫斯基地球 6378245m 6356863m (4) 2.2 GPS 动态滤波 动态滤波基于当前 统计模型,在地球坐标系下解算。选取系统的状态变量为 (5)

式中,位置误差视为有色噪声,为一阶马尔科夫过程,可表示为: ε τεετεετ-=- =-1 1 (6) 白噪声。 (7) (8) 系统噪声为: (9) 量测量为纬度动态量测值、经度动态量测值、高度和三向速度量测值。由于滤波在地球 坐标系下进行,为了简便首先将纬度、经度和高度转化为三轴位置坐标值,转化方式如下: (10) 量测方程为: (11)

综上,离散化的Kalman滤波方程为: (12) 离散化的系统噪声协方差阵为: 2 [ π ?] ? k x = +<0 “当前”加速度 (13) 离散化量测噪声协方差阵为:diag = R 三、实验结果 3.1 GPS静态滤波

卡尔曼滤波与组合导航课程报告

卡尔曼滤波与组合导航》课程实验报告 实验 捷联惯导 /GPS 组合导航系统静态导航实验 实验序号 3 姓名 陈星宇 系院专业 17 班级 ZY11172 学号 ZY1117212 日期 2012-5-15 指导教师 宫晓琳 成绩 、实验目的 ① 掌握捷联惯导 /GPS 组合导航系统的构成和基本工作原理; ②掌握采用卡尔曼滤波方法进行捷联惯导 /GPS 组合的基本原理; ③掌握捷联惯导 /GPS 组合导航系统静态性能; ④了解捷联惯导 /GPS 组合导航静态时的系统状态可观测性; 、实验原理 ( 1)系统方程 X FX GW 系统噪声矢量由陀螺仪和加速度计的随机误差组成,表达式为: 2)量测方程 和 H 分别为捷联解算与 GPS 的东向速度、北向速度、天向速度、纬度、经度和高度之 差;量测矩阵 H H V H P T ,H P 03 6 diag R M H, (R N H )cos L, 036 , H V 033 diag 1, 1, 1 039 ,v v V E v V N v V U v L v v H 为量测噪声。 量测噪声 v E v N T v U L h x y z x y z 其中, E 、 N 、 U 为数学平台失准角; v E 、 v N 、 v U 分别为载体的东向、北向和天向速度误差; L 、 、 h 分别为纬度误差、经度误差和高度误差; x 、 y 、 z 、 x 、 y 、 z 分别为陀螺随 机常值漂移和加速度计随机常值零偏。(下 标 系统的噪声转移矩阵 G 为: E 、N 、 U 分别代表东、北、天) C b n 3 3 0 9 3 3 3 C n C b 9 3 15 6 系统的状态转移矩阵 w w w w F 组成内容为: w z F 06N 9 F S F M ,其中 F N 中非零元素为可由惯导误差模型获得。 F S C b n 3 3 0 3 3 3 3 C b n 3 3 96 量测变量 z V E V N V U L H , , V E 、 V N 、 V U 、 L 、 X U

北航卡尔曼滤波实验报告-GPS静动态滤波实验

卡尔曼滤波实验报告 2014 年4 月 GPS静/动态滤波实验 一、实验要求 1、分别建立GPS静态及动态卡尔曼滤波模型,编写程序对静态和动态GPS数据进行Kalman滤波。 2、对比滤波前后导航轨迹图。

3、画出滤波过程中估计均方差(P 阵对角线元素开根号)的变化趋势。 4、思考:① 简述动态模型与静态模型的区别与联系;② R 阵、Q 阵,P0阵的选取对滤波精度及收敛速度有何影响,取值时应注意什么;③ 本滤波问题是否可以用最小二乘方法解决,如果可以,请阐述最小二乘方法与Kalman 滤波方法的优劣对比。 二、实验原理 GPS 静态滤波 选取系统的状态变量为[ ]T L h λ=X ,其中L 为纬度(deg),λ为经度(deg),h 为高度(m)。设()w t 为零均值高斯白噪声,则系统的状态方程为: 31 0()w t ?=+&X (1) 所以离散化的状态模型为: ,111k k k k k W ---=+X X Φ (2) 式中,,1k k -Φ为33?单位阵,k W 为系统噪声序列。 测量数据包括:纬度静态量测值、经度静态量测值和高度构成31?矩阵Z ,量测方程 可以表示为: k k k Z HX V =+ (3) 式中,H 为33?单位阵,k V 为量测噪声序列。 系统的状态模型是十分准确的,所以系统模型噪声方差阵可以取得十分小,取Q 阵零矩阵。 系统测量噪声方差阵R 由测量确定,由于位置量测精度为5m ,采用克拉索夫斯基地球椭球模型,长半径e R 为6378245m ,短半径p R 为6356863m 。所以R 阵为: 22 25180()0 05180 ( )0cos()00 5p e R R L ππ ??? ?? ? ??= ??? ? ? ?? ? R (4) GPS 动态滤波 动态滤波基于当前统计模型,在地球坐标系下解算。选取系统的状态变量为 T x x x y y y z z z X x v a y v a z v a εεε??=??,其中,,,x x x x v a ε依次为地球坐标系下x 轴上的位置、速度、加速度和位置误差分量,,y z 轴同理。系统的状态模型可以表示为: ()()()()t t t t =++X AX U W & (5) 式中,位置误差视为有色噪声,为一阶马尔科夫过程,可表示为:

卡尔曼(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滤波在视频图像目标跟踪中的应用;

完整word版Kalman滤波MATLAB综合实验报告

《数学实验》综合实验报告实验名称综合实验(Kalman滤波) 2016年 5月

一、【实验目的】 明白滤波计算流程 能够调用相关函数进行数据处理 使用循环函数和二维曲线画图 有效的构建仿真模型,产生模拟数据 二、【实验原理分析】 卡尔曼滤波器是一个“optimal recursive data processing algorithm(最优化自回归数据处理算法)”。对于解决很大部分的问题,它是最优,效率最高甚至是最有用的。它的广泛应用已经超过30年,包括机器人导航,控制,传感器数据融合甚至在军事方面的雷达系统以及导弹追踪等等。近来更被应用于计算机图像处理,例如头脸识别,图像分割,图像边缘检测等等。 设系统可用一个线性随机微分方程来描述: X(k)=A X(k-1)+B U(k)+W(k) 再加上系统的测量值:Z(k)=H X(k)+V(k) 上两式子中,X(k)是k时刻的系统状态,U(k)是k时刻对系统的控制量。A和B是系统参数,对于多模型系统,他们为矩阵。Z(k)是k时刻的测量值,H是测量系统的参数,对于多测量系统,H为矩阵。W(k)和V(k)分别表示过程和测量的噪声。他们被假设成高斯白噪声,他们的协方差分别是Q,R(这里假设他们不随系统状态变化而变化)。 对于满足上面的条件(线性随机微分系统,过程和测量都是高斯白噪声),卡尔曼滤波器是最优的信息处理器。首先要利用系统的过程模型,来预测下一状态的系统。假设现在的系统状态是k,根据系统的模型,可以基于系统的上一状态而预测出现在状态: X(k|k-1)=A X(k-1|k-1)+B U(k) (1) 式(1)中,X(k|k-1)是利用上一状态预测的结果,X(k-1|k-1)是上一状态最优的结果,U(k)为现在状态的控制量,如果没有控制量,它可以为0。到现在为止,我们的系统结果已经更新了,可是,对应于X(k|k-1)的协方差还没更新。我们用P表示协方差: P(k|k-1)=A P(k-1|k-1) A'+Q (2) 式(2)中,P(k|k-1)是X(k|k-1)对应的协方差,P(k-1|k-1)是X(k-1|k-1)对应的协方差,A'表示A的转置矩阵,Q是系统过程的协方差。式子1,2就是卡尔曼滤波器5个公式当中的前两个,也就是对系统的预测。 现在我们有了现在状态的预测结果,然后我们再收集现在状态的测量值。结合预测值和测量值,我们 2 可以得到现在状态(k)的最优化估算值X(k|k): X(k|k)= X(k|k-1)+Kg(k) (Z(k)-H X(k|k-1)) (3) 其中Kg为卡尔曼增益(Kalman Gain): Kg(k)= P(k|k-1) H' / (H P(k|k-1) H' + R) (4) 到现在为止,我们已经得到了k状态下最优的估算值X(k|k)。但是为了要令卡尔曼滤波器不断的运行下去直到系统过程结束,我们还要更新k状态下X(k|k)的协方差:

相关主题
文本预览
相关文档 最新文档