当前位置:文档之家› 卡尔曼滤波器在运动目标中的跟踪研究

卡尔曼滤波器在运动目标中的跟踪研究

卡尔曼滤波器在运动目标中的跟踪研究
卡尔曼滤波器在运动目标中的跟踪研究

南京理工大学紫金学院

毕业设计说明书(论文) 作者:

戴学飞 学号: 系: 电子工程与光电技术系

专业: 电子信息工程

题目: 卡尔曼滤波器在运动目标

跟踪中的研究及仿真

指导者: (姓名)(专业技术职务) 评阅者: (姓名)(专业技术职务)

2015年5月

李娟

讲师 副教授 马玲

南京理工大学紫金学院毕业设计(论文)评语学生姓名:戴学飞班级、学号:11电信3班、

题目:卡尔曼滤波器在运动目标跟踪中的研究仿真

综合成绩:

毕业设计(论文)评语

毕业设计说明书(论文)中文摘要

毕业设计说明书(论文)外文摘要

目次

1绪论

1.1研究意义以及目的

卡尔曼滤波器是最优的递归算法。针对于许多实际问题的解决它是效率最高的,最好的,最有用的方法。卡尔曼滤波器已经在机器人导航与控制系统,传感器数据融合,军事雷达和弹道轨迹外推等领域被广泛应用。在最近的几年,它在计算机图像处理方面占据着非常重要的地位,如人脸识别,图像边缘检测与图像分割技术和操作系统等技术领域。

卡尔曼滤波器最初是专为飞行器导航而研制的,已成功地被应用在很多领域。卡尔曼滤波器主要用来预估那些只能被系统本身间接或不精确观测的系统状态。因此卡尔曼滤波器在很多工程系统和嵌入式系统中占据着重要的地位。

雷达测量系统中,目标跟踪往往是人们非常关注的方面,但测量运动目标的位置、速度和加速度在每时每刻都存在噪声信号。卡尔曼滤波是基于运动目标动态信息,设法消除噪声干扰,从而获取目标位置的最佳估计。这个估计过程主要有三个方面,第一个方面是对运动目标当前位置的估计,第二个方面是对运动目标未来位置的估计,第三个方面是对运动目标过去位置的估计。

如果需要对某一运动中的目标进行跟踪,首先需要做的是对运动目标进行跟踪观测,一般情况下得到的观测信息是不准确的,因为它包含着所需要的信息以及随机观测噪声和干扰信号。如何从这些观测信息和噪声的信号中提取所需要的数据和各种参数,因此根据预测的未来状态的观测数据和运动目标跟踪方法的关键是预测方法。卡尔曼滤波递推算法的原理是利用噪声和观测噪声以及输入和输出值进行的测量,它是具有统计特性的估计系统。主要思想是:利用前一时刻对当前时刻的预测,当前的观察值来更新对状态量的估计(得到当前时刻的最优预测值),从而求出下一时刻的预测值,实现递归的预测,达到及时准确跟踪的效果。

基本卡尔曼滤波器(KF)的约束条件下,即,系统必须是线性的,但大多数的系统都是非线性系统,因此大多数情况下,需要用到扩展卡尔曼滤波(EKF)来对非线性系统进行估计。随着卡尔曼滤波理论的升华,和一些实用的卡尔曼滤波技术不断被提出,如自适应滤波和次优滤波技术以及滤波散发抑制技术等等已广泛应用到各个领域。其他滤波理论也很快得到重视,如线性离散系统的滤波(序列平方根滤波,信息平方根滤波,UD分解滤波)[3]。

卡尔曼滤波作为一种数值估计优化方法,与应用领域的背景结合性很强。因此卡尔曼滤波用于解决很多实际问题时,重要的不仅仅是算法优化问题与实现,更重要的是利用获取的领域知识对被认识系统进行形式化描述,建立起合适的数学模型,再从这个模型出发,进行滤波器的设计与实现工作。

因为卡尔曼滤波具有实时递推,存储容量非常小和设计起来比较简单等优点,所以卡尔曼滤波器在工程领域应用十分广泛。比如在信号处理、卫星控制、石油勘探、故障诊断、GPS定位、检测与估计、控制、通信、航空航天、制导、目标跟踪、多传感器信息融合,机器人学和生物医学领域。

1.2国内外研究现状

马里兰大学的实时监控系统W4可以基于单摄像头对人体或者人体的各个部分进行实时地跟踪。所谓W4是指,在哪里,什么人,什么时候,干什么,换句话说是指该系统可以确定什么目标,什么时候,什么地方,干什么。W4是基于身体和头部,手等功能目标形状分析,基于背景分离功能的自适应前背景分离技术,和区域分裂合并到目标的交互功能。目前,在美国,日本,欧洲已进行了大量关于运动目标检测和跟踪的研究工作,W4是一种基于视觉监控系统可以对室外运动目标进行实时检测和跟踪,而IBM等大公司资助相关的研究领域,希望能将研究成果应用于商业领域。Pfinder 是一款基于运动目标的颜色和形状特征使用实时追踪系统对大视角范围的运动目标进行追踪与测量的系统。同时也出现在许多国际会议与讨论小组。Pfinder系统的实现有利于帮助对室内人员的行为进行监控与行为判定。同时在交通系统中,Tai等人研究了一个视频监控系统用来交通事件检测的,可以自动检测车辆和其运行轨迹的判定。VISATRAM系统可以对每个车道的车辆行为监控,保障交通畅通Haag和Nagel专门机动车辆跟踪的问题进行了深入研究与发现,Pai等人基于十字路口的行人检测与跟踪实现行人数量统计的功能。

目前,在国外一些基本的视频目标检测与追踪系统已经比较成熟了。例如,卡内基梅隆大学的视频安全和控制方案研究。根据计划,科研人员开发了一款端到端的测试系统,集成了具有许多先进视频安全监控技术,如基于静态背景和运动背景对运动目标进行实时测量与追踪,普通的目标识别(如人,汽车,卡车)分类,特殊的对象(如学校的公共汽车和有特殊标记的物体)的姿势估计和分类识别,以及和相机的独立控制,多摄像机协同跟踪人体步伐分析等。

在国内的研究中也出现了一定的规模,举行了相关会议,探讨了相关的研究成果

和未来的发展方向。20世纪60年代末,我国开始对视频目标检测与追踪技术进行研究,经过40多年的不懈努力与投入,我国在这一领域得到了相当大发展,许多先进的图像处理和模式识别方法应用于这一领域,同时一些实际系统的得到开发机会。中国的先进的影像识别和智能化程度,一般跟踪技术,多目标的实时测量,低对比度和复杂的视频图像信息处理与国外相比还存在较大的差距。在实际过程跟踪方面仍然存在着许多问题,如数据同步,模糊图像,跟踪稳定性差等,因为这些方面的实用信息从国外获得的很少,所以在这一领域进行了深入的研究,以提高我国的国防实力,加强公民行为起着重要的作用。目前,一些高校和科研机构都开展了这项工作。

相比之下,智能视频监控技术在国内的研究起步较晚,但随着数字图像处理技术,计算机视觉等多种红外、雷达、激光传感器技术的不断发展,运动目标检测与跟踪技术的研究提供了必要的理论基础和技术支持,创造环境的研究不可比拟的优越性。如视觉与听觉信息处理国家拥有着重点实验室,比如北京大学高智能机器感知系统实验室在三维视觉信息处理与智能机器人领域的研究取得了许多成果[4]。

1.3论文内容以及结构篇章

本论文在对卡尔曼递推滤波算法进行数学推导的基础上研究卡尔曼滤波原理在雷达跟踪中的应用。针对一平面内运动目标,运用卡尔曼滤波方法进行目标轨迹跟踪,采用蒙特卡洛方法通过Matlab7.0软件进行滤波跟踪仿真,具体包括卡尔曼滤波增益和误差方差阵计算,最后对误差进行分析。为简便研究分析,将运动目标的观测的噪声假设为高斯白色噪声,并且讨论一般的非平稳的情况。

本论文的内容安排如下:

第一章绪论是对本课题研究的目的以及意义进行分析。只有在了解课题研究背景和研究现状的前提下,才能更好地开展设计工作。

第二章对Matlab软件作简要介绍,这是对卡尔曼滤波模型进行模拟的最佳软件。

第四章介绍了蒙特卡洛仿真试验的数学思想,并针对函数积分问题求解中的应用做了详细的分析,最后总的介绍了蒙特卡洛基本原理。

第三章和第五章是本论文的重点。第三章详细介绍了卡尔曼滤波器的基本原理,分析了各个公式的意义以及作用,并对卡尔曼滤波器主要方程式进行总结,各种卡尔曼参数进行说明。第五章在第三章对卡尔曼滤波器原理详细剖析的基础之上,针对一个平面内小汽车运动目标的雷达跟踪问题,使用卡尔曼递推滤波方法求解。以及利用软件Matlab进行运动目标仿真验证,并且分析运动目标速度和位置的方差。并且对

运动目标跟踪非线性问题的初步探讨。

2Matlab软件简介

2.1软件简介

Matlab的简称是矩阵实验室(MatrixLaboratory),是由美国MathWorks公司开发的高级技术计算机语言和交互式环境的商业,其主要有两大部分组成的,Matlab 和Simulink。

Matlab和Mathematica、Maple三者并称数学三大软件。Matlab主要突出的方面体现在对数学类科技应用问题上的数值计算。Matlab有很多功能,比如可以进行矩阵运算实现算法、创建用户界面、绘制函数和数据、连接其他的程序等[1]。

2.2Matlab基本功能

Matlab是一个完美地将数据结构和编程特性以及图形用户界面结合到一起的数学软件,由美国MathWorks公司开发研制的。它为自己的用户提供了矩阵运算功能和灵活的数组运算功能等,这些都是用户经常使用的一些功能。它与此同时还可以与Fortran语言和C语言进行混合编程,大大提高了编程效率,因此进一步扩大了它的功能。其中特别重要的有以下几点:1)复杂的矩阵或数组数据的单元操作,能直接处理矩阵或数组。2)编程语言结构十分紧凑,内涵非常丰富,编程效率相当高,用户使用很方便。3)绘制图型功能十分强大,复杂的二维图形和三维图形用户只需要编写很短的程序代码就可以绘制出来了。4)为用户提供了丰富的调用函数,用户可直接使用,不需要用户自己编程,提高了编程效率,比如用户需要求解微分方程或微分方程组的解那么就可以使用系统提供的Dsolve函数、如果需要求解线性方程组的解那么使用提供的Solve函数就行了[1]。

2.3Matlab优点

Matlab中通过使用为用户提供的可视化动态仿真环境———Simulink,可以实现对动态系统的非常直观建模以及对动态系统的仿真与分析,并且Matlab也支持连续时间、离散时间以及连续和离散时间相互交替的线性系统和非线性系统进行仿真测试功能,因此可以使一个非常复杂系统的输入和仿真都变得十分简单明[3]。

Matlab能够适用于许多学科、部门的各种要求,Matlab的基本数据单位是矩阵。和C语言,FORTRAN语言等编程语言相比,Matlab的指令表达式跟数学和工程中的运算形式是几乎完全相似的,所以利用Matlab来求解相同问题的解要比用C语言,

FORTRAN语言等语言更加简单容易,并且Maple等软件的优点也被Matlab吸收了,因此Matlab成为一款不仅仅功能强大而且十分实用的数学软件。在新的版本中C语言、FORTRAN语言、C++语言、JAVA语言也可以被兼容进去使用了。用户可以自己编写相应的程序存到Matlab的程序调用库中,方便用户自己可以下一次编写程序时直接调用这些以前编写好的程序。同时,Matlab库中已经导入了很多程序编写爱好者已经编写好的各种各样的程序代码,这些都是一些非常经典的程序代码,用户可以自己直接下载并且使用。

2.4Matlab的应用

用户可以根据直角坐标和极坐标选择的需要,柱面和球面坐标系统绘制平面曲线和空间曲线和曲面的外观图和网络图,也可以绘制矢量图,直方图,直方图等。此外,Matlab将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大的功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(C、FORTRAN)的编辑模式,代表了当今国际科学计算软件的先进水平[8]。

在电路和信号与系统以及数字信号处理等自动控制原理都是可以基于Matlab来实现的。在这突出介绍下Matlab的绘图功能。Matlab绘制图形实例如下所示:基于Matlab软件绘制数列图形指令:

symsn

n=1000:10000;xn=(1+1./n).^n;

plot(n,xn,':');gridon

绘图结果如图2.1所示:

图2.1函数极限

图像直观地表明了n当有限增大时,数列的变化趋势,用户经过绘图能够理解极限概念和含义。

3卡尔曼滤波器原理

3.1状态转移

卡尔曼滤波的本质是一种递推估计过程,只要知道上次状态估计和观察状态可以很容易地得到当前状态值,它和其他的估计技术与众不同,卡尔曼滤波器不需要观测和估计的历史记录,卡尔曼滤波器是一个纯粹的时域滤波器,它和其他的频域滤波器最大的区别在于,比如低通、高通、带通、带阻等频域滤波器,这些是需要在频域中设计,然后在转变到时域中使用。但卡尔曼滤波器可以直接在时间域内设计和使用,它适合于实时处理数据。

一个运动的目标,它当前状态可以写成矩阵形式就是一个二维的列向量,即??

????=t t t v p x 它由位置t p 和速度t v 构成。 如果已知上一时刻状态1-t x 那么当前时刻t x 的状态的位置及目标运动速度可以用以下的表示方法

2211t u t v p p t t t t ??+??+=-- (3.1) t u v v t t t ??+=-1 (3.2)

t x 的状态的位置及目标运动速度的输出变量都只是其输入变量的线性组合,这体现了卡尔曼滤波器是最佳的线性滤波器,因为它只能描述状态与状态之间的线性关系。

因为线性关系,把它写成矩阵的形式:

t t t t t u t t v p t v p ??????????+???????????

??=??????--2101211(3.3) 进一步提取出两个状态变换矩阵

???????=101t F t 和???

???????=t t B t 22(3.4) 其中t F 为状态转移矩阵,作用在于如何从上一时刻的状态来推测当前时刻的状

态。t B 为控制矩阵,它表示控制量t u 如何作用当前状态。

因此可以得出卡尔曼公式中第一个公式:t t t t t u B x F x +=--1))。

3.2状态预测

t t t t t u B x F x +=--1))(3.5)

-t x )为对t x 的估计量,因为物体的真实状态无法知道,只能根据所观测的数据尽可能的估计t x 的真实值,接着需要根据观察来更新预测值,以便得到最佳值。

但是所有的推测过程都会包含噪声影响,噪声越大,不确定性也就越大,如何表示这次推测带来多少不确定性需要引入协方差矩阵。

3.3协方差矩阵

先从一维情况说起,如下图3.1所示假设有一个一维的数据,由于噪声,每次测量的值都不相同,但是都是围绕在一个中心值的范围。表示它的最简单方式就记下它的中心值和方差。这实际上是假设了它是一个高斯的分布。

图3.1一维噪声数据分布

二维的情况如下图3.2所示,分别对两个坐标轴进行投影,在两个轴上都是高斯分布。

图3.2二维噪声数据分布

如果两个维度是相互独立的就可以分别记下中心值和两个轴的方差。但是两个维度具有相关性的时候,比如在一个维度上噪声增大,另一个维度上噪声也增大,如果一个维度增大另一个维度减小,这个时候对两个坐标轴上投影和之前的是一样的都是高斯分布,所以要表示两个维度的相关性除了要记录两个维度的方差之外还要协方差来表示两个维度之间的相关程度。

写成矩阵的形式:

??

????=22211211),cov(σσσσx x (3.6) 对角线上的两个值是两个维度的方差,反对角线上的两个值是相等的,是它们的协方差。在卡尔曼滤波器中所有关于不确定性的表述都要用到协方差矩阵。

3.4噪声协方差矩阵的传递

每一个时刻的不确定性都是由协方差矩阵P 来表示的,如何让这种不确定性在每一刻之间传递呢。

T t t F FP P 1--=(3.7)

式(3.7)表示从上一时刻的协方差推测当前时刻的协方差。具体推导根据协方差矩阵的性质T B x x A Bx Ax ),cov(),cov(=。

这个时候还要考虑一个问题,这个预测模型也不是百分之百准确的,它本身也是包含噪声的,所以要在后面加上一个协方差矩阵Q 来表示预测模型本身带来的噪声。 所以公式写成:

Q F FP P T t t +=--1(3.8)

式(3.8)就是卡尔曼滤波器的第二个公式,它表示不确定性在各个时刻之间的传递关系。

3.5观测矩阵

每一个时刻都能观测到物体的位置,观测到的值,记为t z ,那么从物体本身的状态t x 到观测状态t z 之间有一个变化关系,记为H ,当然这种变换关系也只能是线性关系,因为卡尔曼滤波器是线性滤波器,所以理所当然的要把H 写成矩阵的形式。也就是所谓的观测矩阵[]01=H ,t x 和t z 的维度是不一定相同的,如果t x 是一个二维的列向量,t z 是一个标量,所以用公式表示观测矩阵v Hx z t t +=,其中v 为观测的噪声,这个观测的协方差矩阵用R 来表示,如果观察的值是一个一维的值,那么这个R 的形式也不是一个矩阵,也只是一个值,仅仅表示t z 的方差,假设除了用雷达还有别的测量方法可以观测到物体的某项特征,那么t z 就可能是一个多维的列向量,它会包括每一种测量方式的测量值,而每一种测量值都是真实值的一种不完全表现,可以从几种不完全表现中推断出真实的状态,而卡尔曼滤波器这种数据融合功能正是在这种测量矩阵中体现出来的。

3.6状态更新

已经有了观测量t z 和它的协方差矩阵R ,这个时候需要整合进去对状态t x 的估计。最佳估计值得公式是:

)(---+=t t t t t x H z K x x )))(3.9)

对式(3.9)分析,加上的这项)(--t t x H z )表示实际的观测值与预期的观测值之间

的残差,这残差乘上一个系数t K 就可以修正t x 的值了,这个t K 十分的关键,它叫做卡尔曼系数,它也是一个矩阵。

1)(---+=R H HP H P K T t T t t (3.10)

这个式(3.10)的推导十分复杂,这里就定性的来分析一下。这个卡尔曼系数t K 的作用主要有两个方面,一是权衡预测状态协方差P 和观察量的协方差矩阵R 的大小来决定是相信预测模型多一点还是相信观察模型多一点,如果相信预测模型多一点这个残差权重就会小一点,如果相信观测模型多一点那么这个残差权重就会大一点。二是把残差的表现形式从观察域转换到状态域。刚才说到观察值t z 只是一个一维的向量,状态t x 是一个二维的列向量,它们用的单位甚至是特征都有可能是不同的,那怎么用观察值的残差去更新状态值其实就要涉及到这个卡尔曼系数,实际上这个卡尔曼系数就是在做这样一个转换,观察到物体的位置,但是t K 里面已经包含了协方差矩阵的信息,所以它利用位置和速度这两个维度的相关性,从位置的残差里推算出了速度的残差,从而可以对状态t x 的两个维度同时进行修正。

3.7噪声协方差矩阵的更新

--=t t t P H K I P )((3.11)

更新最佳估计值得噪声分布,这个值是留给下一轮迭代时候用的,在这一步里状态的不确定性是减小的,而在下一轮里由于传递噪声的引入不确定性又会增大,卡尔曼滤波器就是在这种不确定性的变化中寻求的一种平衡。但是要注意的是这个公式仅仅在最优卡尔曼增益时它才成立。如果算术精度总是很低而导致数值稳定性出现问题,或者特意使用非最优卡尔曼增益,那么就不能使用这个公式[13]。

3.8卡尔曼滤波的五个公式

预测:

t t t t t u B x F x +=--1))(3.12)

Q F FP P T t t +=--1(3.13)

式(3.12)和式(3.13)是通过前一个时刻的状态来预测当前时刻的状态,这并不是最佳的估计值,它们还欠缺点东西,这个欠缺的东西就是从观测里面带来的信息,因为还没考虑当前时刻的观测值。

更新:

1)(---+=R H HP H P K T t T t t (3.14)

)(---+=t t t t t x H z K x x )))(3.15)

--=t t t P H K I P )((3.16)

式(3.14)式(3.15)和式(3.16)三个公式就用当前的观测值来更新t x 和t p ,经过更新后的值就是最佳估计值了。

3.9卡尔曼变量和参数

表3.1卡尔曼变量和参数

4蒙特卡洛仿真试验的数学思想

4.1蒙特卡洛方法的产生与发展

(MonteCarlo )方法,又称随机抽样或者称统计试验方法,属于计算的一个分支,它是基于上世纪四十年代中期为了适应当时原子能事业的发展而发展起来的数学方法[7]。传统的经验方法之所以很难得到满意的答案是因为不能逼近真实的物理过程,而方法之所以解决问题与实际非常符合是因为能够真实地模拟实际物理过程,可以得到很圆满的结果。20世纪40年代以来,随着电子计算机技术的飞速发展,人们开始可以使用计算机技术来模拟这类实验。计算机可以取代很多实际上非常庞大而复杂的数字仿真技术,因为计算机具有较高的运算速率与存储容量大的特点,并且对实验结果的处理十分迅速,于是蒙特卡洛方法被重新提起,并且蒙特卡洛的应用领域越来越广泛。尤其是相比于可视化编程的各种方法不断出现,更加显示了蒙特卡罗方法的独特之处,视觉计算机数学模拟实验,用数学的方法处理。

4.1.1蒙特卡洛方法求函数的积分

假如要计算下面函数的积分:

?=1

0)(dx x f I (4.1) 其中函数2)5.0(5.0)(x x f --=,如果直接对函数积分,结果为417.0=I 。 采用蒙特卡洛方法来求积分,先设两个随机变量X 和Y 都在)10(,区间上服从均匀分布。这两个随机变量相互独立的,将),(Y X 的样本点),(y x 投放到y x -平面上,如下图4.1所示,那么),(Y X 落在区域G 的概率为区域G 的面积与正方形的面积之比(正方形面积为1),即:

?=∈1

0)(}),{(dx x f G Y X P (4.2) 可见对函数的积分问题就转化成了一个概率的计算问题,其优点体现在,概率可以用相对频数来近似,相对频数是可通过统计试验的方法求得。具体方法是将M 个随机点),(Y X 均匀地投放到y x -平面上的正方形区域内,假如有N 个点落在G 区域内,那么相对频数为M N /,公式如下所示:

M

N I =)(4.3)

式(4.3)是对积分I的一个估计,估计的精度主要跟试验次数M相关,M也称为蒙特卡洛仿真次数。下面给出了用蒙特卡洛方法计算积分I的MATLAB程序。

symsx;

y1=int(0.5-(0.5-x).^2,0,1);

zhenshizhi=eval(y1)

N=0;

x1=unifrnd(0,1,1,M);

y1=unifrnd(0,1,1,M);

fori=1:M

ify1(i)<=(0.5-(0.5-x1(i)).^2)

N=N+1;

end

end

fangzhenzhi=N/M

仿真结果如图4.1所示:

图4.1积分图

从以上的例子可以看出应用蒙特卡洛仿真的一般步骤:

1)建立合适的概率模型;

2)进行多次重复试验;

3)对重复试验结果进行统计分析(估计相对频数、均值等)、分析精度。

Kalman滤波在运动跟踪中建模

目录 一、kalman滤波简介 (1) 二、kalman滤波基本原理 (1) 三、Kalman滤波在运动跟踪中的应用的建模 (3) 四、仿真结果 (6) 1、kalman的滤波效果 (6) 2、简单轨迹的kalman的预测效果 (7) 3、椭圆运动轨迹的预测 (9) 4、往返运动归轨迹的预测 (10) 五、参数的选取 (11) 附录: (13) Matlab程序: (13) C语言程序: (13)

Kalman滤波在运动跟踪中的应用 一、kalman滤波简介 最佳线性滤波理论起源于40年代美国科学家Wiener和前苏联科学家Kолмогоров等人的研究工作,后人统称为维纳滤波理论。从理论上说,维纳滤波的最大缺点是必须用到无限过去的数据,不适用于实时处理。为了克服这一缺点,60年代Kalman把状态空间模型引入滤波理论,并导出了一套递推估计算法,后人称之为卡尔曼滤波理论。卡尔曼滤波是以最小均方误差为估计的最佳准则,来寻求一套递推估计的算法,其基本思想是:采用信号与噪声的状态空间模型,利用前一时刻地估计值和现时刻的观测值来更新对状态变量的估计,求出现时刻的估计值。它适合于实时处理和计算机运算。 Kalman滤波是卡尔曼(R.E.kalman)于1960年提出的从与被提取信号的有关的观测量中通过算法估计出所需信号的一种滤波算法。他把状态空间的概念引入到随机估计理论中,把信号过程视为白噪声作用下的—个线性系统的输出,用状方程来描述这种输入—输出关系,估计过程中利用系统状态方程、观测方程和白噪声激励(系统噪声和观测噪声)的统计特性形成滤波算法,由于所用的信息都是时域内的量,所以不但可以对平稳的一维随机过程进估计,也可以对非平稳的、多维随机过程进行估汁。 Kalman滤波是一套由计算机实现的实时递推算法.它所处理的对象是随机信号,利用系统噪声和观测噪声的统计特性,以系统的观测量作为滤波器的输入,以所要估计值(系统的状态或参数)作为滤波器的输出,滤波器的输入与输出之间是由时间更新和观测更新算法联系在一起的,根据系统方程和观测方程估计出所有需要处理的信号。所以,Kalman滤波与常规滤波的涵义与方法不同,它实质上是一种最优估计法。 卡尔曼滤波器是一个“optimal recursive data processing algorithm(最优化自回归数据处理算法),对于解决很大部分的问题,他是最优,效率最高甚至是最有用的 二、kalman滤波基本原理 Kalman滤波器是目标状态估计算法解决状态最优估计的一种常用方法具有计算量小、存储量低、实时性高的优点。实际应用中,可以将物理系统的运行过程看作是一个状态转换过程,卡尔曼滤波将状态空间理论引入到对物理系统的数学建模过程中来。其基本思想是给系统信号和噪声的状态空间建立方程和观测方程,只用信号的前一个估计值和最近一个观察值就可以在线性无偏最小方差估计准则下对信号的当前值做出最优估计。 设一系统所建立的模型为:

卡尔曼滤波器及其简matlab仿真

卡尔曼滤波器及其简matlab仿真

卡尔曼滤波器及其简matlab仿真 一、卡尔曼滤波的起源 谈到信号的分析与处理,就离不开滤波两个字。通常,信号的频谱处于有限的频率范围内,而噪声的频谱则散布在很广的频率范围内,为了消除噪声,可以进行频域滤波。但在许多应用场合,需要直接进行时域滤波,从带噪声的信号中提取有用信号。虽然这样的过程其实也算是对信号的滤波,但其所依据的理论,即针对随机信号的估计理论,是自成体系的。人们对于随机信号干扰下的有用信号不能“确知”,只能“估计”。为了“估计”,要事先确定某种准则以评定估计的好坏程度。 1960年卡尔曼发表了用递归方法解决离散数据线性滤波问题的论文A New Approach to Linear Filtering and Prediction Problems (线性滤波与预测问题的新方法),在这篇文章里一种克服了维纳滤波缺点的新方法被提出来,这就是我们今天称之为卡尔曼滤波的方法。卡尔曼滤波应用广泛且功能强大,它可以估计信号的过去和当前状态甚至能估计将来的状态即使并不知道模型的确切性质。 其基本思想是以最小均方误差为最佳估计准则,采用信号与噪声的状态空间模型利用前一时刻的估计值和当前时刻的观测值来更新对状态变量的估计,求出当前时刻的估计值。算法根据建立的系统方程和观测方程对需要处理的信号做出满足最小均方误差的估计。 对于解决很大部分的问题,它是最优,效率最高甚至是最有用的。它的广泛应用已经超过30年,包括机器人导航,控制,传感器数据融合甚至在军事方面的雷达系统以及导弹追踪等等。近年来更被应用于计算机图像处理,例如头脸识别,图像分割,图像边缘检测等等。 卡尔曼滤波不要求保存过去的测量数据,当新的数据到来时,根据新的数据和前一时刻的储值的估计,借助于系统本身的状态转移方程,按照一套递推公式,即可算出新的估值。卡尔曼递推算法大大减少了滤波装置的存储量和计算量,并且突破了平稳随机过程的限制,使卡尔曼滤波器适用于对时变信号的实时处理。

基于FPGA的卡尔曼滤波器的设计

基于FPGA的卡尔曼滤波器的设计 时间:2010-04-12 12:52:33 来源:电子科技作者:米月琴,黄军荣西安电子科技大学摘要:针对电路设计中经常碰到数据的噪声干扰现象,提出了一种Kalman滤波的FPGA实现方法。该方法采用了TI公司的高精度模数转换器ADSl25l以及Altera公司的EPlCl2,首先用卡尔曼滤波算法 设计了一个滤波器,然后将该滤波器分解成简单的加、减、乘、除运算。通过基于FPGA平台的硬件与 软件的合理设计,成功地实现了数据噪声的滤除设计,并通过实践仿真计算,验证了所实现滤波的有效性。 关键词:卡尔曼;FPGA;最小方差估计 卡尔曼滤波是一个“Optimal Recursive Data Processing Algorithm(最优化自回归数据处 理算法)”,对于解决很大部分的问题,是最优化的,效率最高甚至是最有用的。传统的卡尔曼滤波是 在DSP上实现的。但是DSP成本相对较高,而且指令是串行执行的,不能满足有些要求较高的场合。而FPGA由于其硬件结构决定了它的并行处理方式,无论在速度还是实时性都更胜一筹。文中以基于FPGA 器件和A/D转换器的数据采集系统为硬件平台,进行了卡尔曼滤波算法设计,详述了基于FPGA的卡尔 曼滤波器的设计实现。 1 卡尔曼滤波算法 工程中,为了了解工程对象(滤波中称为系统)的各个物理量(滤波中称为状态)的确切数值,或为了 达到对工程对象进行控制的目的,必须利用测量手段对系统的各个状态进行测量。但是,量测值可能仅 是系统的部分状态或是部分状态的线性组合,且量测值中有随机误差(常称为量测噪声)。最优估计就是 针对上述问题的一种解决方法。它能将仅与部分状态有关的测量进行处理,得出从统计意义上讲误差最 小的更多状态的估值。误差最小的标准常称为估计准则,根据不同的估计准则和估计计算方法,有各种 不同的最优估计,卡尔曼滤波是一种递推线性最小方差估计的最优估计。 系统的状态方程可设定为 式(3)为系统噪声。设设备的量测噪声为Vk,系统得量测方程为

(整理)Kalman滤波在运动跟踪中的建模.

目录一、kalman滤波简介 1 二、kalman滤波基本原理 (1) 三、Kalman滤波在运动跟踪中的应用的建模 (3) 四、仿真结果 (6) 1、kalman的滤波效果 (6) 2、简单轨迹的kalman的预测效果 (7) 3、椭圆运动轨迹的预测 (9) 4、往返运动归轨迹的预测 (10) 五、参数的选取 (11) 附录: (13) Matlab程序: (13) C语言程序: (13)

Kalman滤波在运动跟踪中的应用 一、kalman滤波简介 最佳线性滤波理论起源于40年代美国科学家Wiener和前苏联科学家Kолмогоров等人的研究工作,后人统称为维纳滤波理论。从理论上说,维纳滤波的最大缺点是必须用到无限过去的数据,不适用于实时处理。为了克服这一缺点,60年代Kalman把状态空间模型引入滤波理论,并导出了一套递推估计算法,后人称之为卡尔曼滤波理论。卡尔曼滤波是以最小均方误差为估计的最佳准则,来寻求一套递推估计的算法,其基本思想是:采用信号与噪声的状态空间模型,利用前一时刻地估计值和现时刻的观测值来更新对状态变量的估计,求出现时刻的估计值。它适合于实时处理和计算机运算。 Kalman滤波是卡尔曼(R.E.kalman)于1960年提出的从与被提取信号的有关的观测量中通过算法估计出所需信号的一种滤波算法。他把状态空间的概念引入到随机估计理论中,把信号过程视为白噪声作用下的—个线性系统的输出,用状方程来描述这种输入—输出关系,估计过程中利用系统状态方程、观测方程和白噪声激励(系统噪声和观测噪声)的统计特性形成滤波算法,由于所用的信息都是时域内的量,所以不但可以对平稳的一维随机过程进估计,也可以对非平稳的、多维随机过程进行估汁。 Kalman滤波是一套由计算机实现的实时递推算法.它所处理的对象是随机信号,利用系统噪声和观测噪声的统计特性,以系统的观测量作为滤波器的输入,以所要估计值(系统的状态或参数)作为滤波器的输出,滤波器的输入与输出之间是由时间更新和观测更新算法联系在一起的,根据系统方程和观测方程估计出所有需要处理的信号。所以,Kalman滤波与常规滤波的涵义与方法不同,它实质上是一种最优估计法。 卡尔曼滤波器是一个“optimal recursive data processing algorithm(最优化自回归数据处理算法),对于解决很大部分的问题,他是最优,效率最高甚至是最有用的 二、kalman滤波基本原理 Kalman滤波器是目标状态估计算法解决状态最优估计的一种常用方法具有计算量小、存储量低、实时性高的优点。实际应用中,可以将物理系统的运行过程看作是一个状态转换过程,卡尔曼滤波将状态空间理论引入到对物理系统的数学建模过程中来。其基本思想是给系统信号和噪声的状态空间建立方程和观测方程,只用信号的前一个估计值和最近一个观察值就可以在线性无偏最小方差估计准则下对信号的当前值做出最优估计。 设一系统所建立的模型为:

卡尔曼滤波器及其简matlab仿真.

卡尔曼滤波器及其简matlab仿真 一、卡尔曼滤波的起源 谈到信号的分析与处理,就离不开滤波两个字。通常,信号的频谱处于有限的频率范围内,而噪声的频谱则散布在很广的频率范围内,为了消除噪声,可以进行频域滤波。但在许多应用场合,需要直接进行时域滤波,从带噪声的信号中提取有用信号。虽然这样的过程其实也算是对信号的滤波,但其所依据的理论,即针对随机信号的估计理论,是自成体系的。人们对于随机信号干扰下的有用信号不能“确知”,只能“估计”。为了“估计”,要事先确定某种准则以评定估计的好坏程度。 1960年卡尔曼发表了用递归方法解决离散数据线性滤波问题的论文A New Approach to Linear Filtering and Prediction Problems(线性滤波与预测问题的新方法),在这篇文章里一种克服了维纳滤波缺点的新方法被提出来,这就是我们今天称之为卡尔曼滤波的方法。卡尔曼滤波应用广泛且功能强大,它可以估计信号的过去和当前状态甚至能估计将来的状态即使并不知道模型的确切性质。 其基本思想是以最小均方误差为最佳估计准则,采用信号与噪声的状态空间模型利用前一时刻的估计值和当前时刻的观测值来更新对状态变量的估计,求出当前时刻的估计值。算法根据建立的系统方程和观测方程对需要处理的信号做出满足最小均方误差的估计。 对于解决很大部分的问题,它是最优,效率最高甚至是最有用的。它的广泛应用已经超过30年,包括机器人导航,控制,传感器数据融合甚至在军事方面的雷达系统以及导弹追踪等等。近年来更被应用于计算机图像处理,例如头脸识别,图像分割,图像边缘检测等等。 卡尔曼滤波不要求保存过去的测量数据,当新的数据到来时,根据新的数据和前一时刻的储值的估计,借助于系统本身的状态转移方程,按照一套递推公式,即可算出新的估值。卡尔曼递推算法大大减少了滤波装置的存储量和计算量,并且突破了平稳随机过程的限制,使卡尔曼滤波器适用于对时变信号的实时处理。 二、卡尔曼滤波的原理

维纳最速下降法滤波器卡尔曼滤波器设计及Matlab仿真

信息融合大作业 ——维纳最速下降法滤波器,卡尔曼滤波器设计及Matlab仿真 1.滤波问题浅谈 估计器或滤波器这一术语通常用来称呼一个系统,设计这样的系统是为了从含有噪声的数据中提取人们感兴趣的,接近规定质量的信息。由于这样一个宽目标,估计理论应用于诸如通信、雷达、声纳、导航、地震学、生物医学工程、 金融工程等众多不同的领域。例如,考虑一个数字通信系统,其基本形式由发

射机、信道和接收机连接组成。发射机的作用是把数字源(例如计算机)产生的0、1符号序列组成的消息信号变换成为适合于信道上传送的波形。而由于符号间干扰和噪声的存在,信道输出端收到的信号是含有噪声的或失真的发送信号。接收机的作用是,操作接收信号并把原消息信号的一个可靠估值传递给系统输出端的某个用户。随着通信系统复杂度的提高,对原消息信号的还原成为通信系统中最为重要的环节,而噪声是接收端需要排除的最主要的干扰,人们也设计出了针对各种不同条件应用的滤波器,其中最速下降算法是一种古老的最优化技术,而卡尔曼滤波器随着应用条件的精简成为了普适性的高效滤波器。2.维纳最速下降算法滤波器 2.1 最速下降算法的基本思想 考虑一个代价函数,它是某个未知向量的连续可微分函数。函数 将的元素映射为实数。这里,我们要寻找一个最优解。使它满足如下条件 (2.1) 这也是无约束最优化的数学表示。 特别适合于自适应滤波的一类无约束最优化算法基于局部迭代下降的算法: 从某一初始猜想出发,产生一系列权向量,使得代价函数在算法的每一次迭代都是下降的,即 其中是权向量的过去值,而是其更新值。 我们希望算法最终收敛到最优值。迭代下降的一种简单形式是最速下降法,该方法是沿最速下降方向连续调整权向量。为方便起见,我们将梯度向量表示为

基于卡尔曼滤波器的雷达目标跟踪

随机数字信号处理期末大作业(报告) 基于卡尔曼滤波器的雷达目标跟踪 Radar target tracking based on Kalman filter 学院(系):创新实验学院 专业:信息与通信工程 学生姓名:李润顺 学号:21424011 任课教师:殷福亮 完成日期:2015年7月14日 大连理工大学 Dalian University of Technology

摘要 雷达目标跟踪环节的性能直接决定雷达系统的安全效能。由于卡尔曼滤波器在状态估计与预测方面具有强大的性能,因此在目标跟踪领域有广泛应用,同时也是是现阶段雷达中最常用的跟踪算法。本文先介绍了雷达目标跟踪的应用背景以及研究现状,然后在介绍卡尔曼滤波算法和分析卡尔曼滤波器性能的基础上,将其应用于雷达目标跟踪,雷达在搜索到目标并记录目标的位置数据,对测量到的目标位置数据(称为点迹)进行处理,自动形成航迹,并对目标在下一时刻的位置进行预测。最后对在一个假设的情境给出基于卡尔曼滤波的雷达目标跟踪算法对单个目标航迹进行预测的MATLAB仿真,对实验的效果进行评估,分析预测误差。 关键词:卡尔曼滤波器;雷达目标跟踪;航迹预测;预测误差;MATLAB仿真 - 1 -

1 引言 1.1 研究背景及意义 雷达目标跟踪是整个雷达系统中一个非常关键的环节。跟踪的任务是通过相关和滤波处理建立目标的运动轨迹。雷达系统根据在建立目标轨迹过程中对目标运动状态所作的估计和预测,评估船舶航行的安全态势和机动试操船的安全效果。因此,雷达跟踪环节工作性能的优劣直接影响到雷达系统的安全效能[1]。 鉴于目标跟踪在增进雷达效能中的重要作用,各国在军用和民用等领域中一直非常重视发展这一雷达技术。机动目标跟踪理论有了很大的发展,尤其是在跟踪算法的研究上,理论更是日趋成熟。在跟踪算法中,主要有线性自回归滤波、两点外推滤波、维纳 α-滤波和卡尔曼滤波,其中卡尔曼滤波算法在目标跟踪滤波、加权最小二乘滤波、β 理论中占据了主导地位。 雷达跟踪需要处理的信息种类多种多样。除了目标的位置信息外,一般还要对目标运动速度进行估计,个别领域中的雷达还要对目标运动姿态进行跟踪。雷达跟踪的收敛速度、滤波精度和跟踪稳定度等是评估雷达跟踪性能的重要参数。因此提高雷达跟踪的精度、收敛速度和稳定度也就一直是改善雷达跟踪性能的重点。随着科技的发展,各类目标的运动性能和材质特征有了大幅度的改善和改变,这就要求雷达跟踪能力要适应目标特性的这种变化。在不断提高雷达跟踪性能的前提下,降低雷达跟踪系统的成本也是现代雷达必须考虑的问题。特别是在民用领域中由于雷达造价不能过高,对目标跟踪进行快收敛性、高精度和高稳定性的改良在硬件上是受到一些制约的,因此雷达跟踪算法的研究就越来越引起学者们的关注。通过跟踪算法的改进来提高雷达的跟踪性能还有相当大的挖掘潜力。考虑到雷达设备的造价,民用雷达的跟踪系统首要的方法就是对于雷达的跟踪算法进行开发。

直流电机运行状态的卡尔曼滤波估计器设计.doc

二 〇 一 五 年 六 月 题 目:直流电机运行状态的卡尔曼滤波估计器设计 学生姓名:张傲 学 院:电力学院 系 别:电力系 专 业:风能与动力工程 班 级:风能11-1 指导教师:董朝轶 教授

摘要 卡尔曼滤波是一个迭代自回归算法,对于连续运动状态用中的大部分问题它都能够给出最优的预测。它已经广泛应用了近半个世纪,例如数据的融合,机械的导航乃至军用雷达的导航等等。卡尔曼滤波一般用于动态数据的处理,是从混沌的信号中提取有用信号消除误差的参数估计法。卡尔曼滤波是依据上一个估计数值和当下的检测数据运用递推估计算出当前的估计值。通过状态方程运用递推的方法进行估计,可以建立物体运动的模型。本文采用的工程设计对运行状态下的直流电机进行参数的计算和校验。而且直流电机的调节性能非常好只需要加上电阻调压就可以了,而且启动曲线非常好,启动的转矩大适合高精度的控制。而交流电机调速需要变频,控制相对复杂一些,而对于设计无论是哪种电机都不影响结果,所以本实验采用直流电机。简单来说卡尔曼滤波就是对被观测量进行一个物理的建模,目的是用‘道理’来约束观测结果,减少噪声的影响。因此卡尔曼滤波是根据一个事物的当前状态预测它的下一个状态的过程。 此设计主要是通过对直流电机的数学模型利用MATLAB来设计卡尔曼滤波估计,进行仿真编程建模,进而对系统进行评估,并且分析估计误差。 关键词:卡尔曼滤波器;直流电机;MATLAB

Abstract Kalman filter is an iterative autoregression algorithm for continuous motion of most of the problems with it are able to give the best prediction. And it has been widely used for nearly half a century, such as the integration of data, as well as military machinery of navigation radar navigation, and so on. Kalman filter is generally used to process dynamic data, extract useful signal parameter estimation method to eliminate errors from the chaotic signal. Kalman filter is based on an estimate on the value and the current detection data is calculated using recursive estimation current estimates. By using recursive state equation method to estimate the movement of objects can be modeled. The paper describes the engineering design of the DC motor running state parameter calculation and verification. The DC motor performance and adjust very well simply by adding resistance regulator on it, and start curve is very good, start torque for precision control. The required frequency AC motor speed control is relatively complicated, and for the design of either the motor does not affect the outcome.In order to facilitate learning, so wo use the DC motor. Simply the Kalman filter is to be observables conduct a physical modeling; the purpose is to use 'sense' to restrict the observations to reduce the influence of noise. Therefore, the Kalman filter is based on the current state of things predict its next state of the process. This design is mainly through the DC motor mathematical model using MATLAB to design the Kalman filter estimation, simulation modeling program, and then to evaluate the system and analyze the estimation error. Keywords:Kalman filter; DC;MATLAB

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

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

卡尔曼滤波在目标跟踪中的应用

卡尔曼滤波在目标跟踪中的应用 摘要:机动卡尔曼算法(VD 算法)在扩展卡尔曼滤波诸算法中原理较为简单,目标跟踪效果也较好。 一. 模型建立 (1) 非机动模型(匀速直线运动) 系统模型 )()()1(k GW k X k X +Φ=+ 其中 ?????? ????? ???=)()()()()(k V k y k V k x k X y x ; ? ? ??????????=Φ10001000010001 T T ; ????? ? ? ???? ???=10200102T T G ? ?? ???=)()()(k W k W k W y x ; 0)]([=k W E ; kj T Q j W k W E δ=)]()([ 测量模型为: )()()(k V k HX k Z +=; 其中 ?? ? ???=01000001H )(k V 为零均值,协方差阵为R 白噪声,与)(k W 不相关。 (2) 机动模型 系统模型 );(*)()1(k W G k X k X m m m m m +Φ=+ 其中

?? ? ? ??? ? ?? ??????????=)()()()()()()(k a k a k V k y k V k x k X m y m y m y m m x m m ;??? ???????????? ?????=Φ100 00 00100000100020100000100200 122 T T T T T T m ;??? ???????????????????=10012040020422T T T T G m 0)]([=k W E m , kj m m m Q j W k W E T δ=)]()([ 观测模型与机动模型的相同,只是H 矩阵为m H 。 ?? ? ???=000100000001m H 二.Kalman 滤波算法 作为一般的Kalman 滤波算法其算法可以描述如下: )1/1(?)1/(?--Φ=-k k X k k X T T G k GQ k k P k k P )1()1/)1()1/(-+Φ--Φ=- 1])1/([)1/()(-+--=R H k k HP H k k P k K T T )]1/()()[()1/(?)/(?--+-=k k HX k Z k K k k X k k X )1/()()1/()/(---=k k HP k K k k P k k P 起始估计值为 ()()()()()()()221/?2/2221/x x x y y y z z z T z z z T ????-??????=????????-???? X 起始估计的估计误差为 (2)(1)(2)(1)2(2/2)(2) (1)(2)(1)2x x x x y y y y v v v T u T v v v T u T -?? ??-?? ?+?? =??-?? -???+???? X 起始估计的估计误差协方差矩阵为

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

卡尔曼滤波的基本原理及应用卡尔曼滤波在信号处理与系统控制领域应用广泛,目前,正越来越广泛地应用于计算机应用的各个领域。为了更好地理解卡尔曼滤波的原理与进行滤波算法的设计工作,主要从两方面对卡尔曼滤波进行阐述:基本卡尔曼滤波系统模型、滤波模型的建立以及非线性卡尔曼滤波的线性化。最后,对卡尔曼滤波的应用做了简单介绍。 卡尔曼滤波属于一种软件滤波方法,其基本思想是:以最小均方误差为最佳估计准则,采用信号与噪声的状态空间模型,利用前一时刻的估计值和当前时刻的观测值来更新对状态变量的估计,求出当前时刻的估计值,算法根据建立的系统方程和观测方程对需要处理的信号做出满足最小均方误差的估计。 最初的卡尔曼滤波算法被称为基本卡尔曼滤波算法,适用于解决随机线性离散系统的状态或参数估计问题。卡尔曼滤波器包括两个主要过程:预估与校正。预估过程主要是利用时间更新方程建立对当前状态的先验估计,及时向前推算当前状态变量和误差协方差估计的值,以便为下一个时间状态构造先验估计值;校正过程负责反馈,利用测量更新方程在预估过程的先验估计值及当前测量变量的基础上建立起对当前状态的改进的后验估计。这样的一个过程,我们称之为预估-校正过程,对应的这种估计算法称为预估-校正算法。以下给出离散卡尔曼滤波的时间更新方程和状态更新方程。 时间更新方程: 状态更新方程: 在上面式中,各量说明如下: 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∞波)。 非线性样条自适应滤波:这是一类新的非线性自适应滤波器,它由一个线性组合器后跟挠性无记忆功能的。涉及的自适应处理的非线性函数是基于可在学习

卡尔曼滤波器

卡尔曼滤波器 来这里几个月,发现有些问题很多人都很感兴趣。所以在这里希望能尽自己能力跟大家讨论一些力所能及的算法。现在先讨论一下卡尔曼滤波器,如果时间和能力允许,我还希望能够写写其他的算法,例如遗传算法,傅立叶变换,数字滤波,神经网络,图像处理等等。 因为这里不能写复杂的数学公式,所以也只能形象的描述。希望如果哪位是这方面的专家,欢迎讨论更正。 卡尔曼滤波器– 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/ca4192921.html,/~welch/media/pdf/Kalman1960.pdf。 简单来说,卡尔曼滤波器是一个“optimal recursive data processing algorithm(最优化自回归数据处理算法)”。对于解决很大部分的问题,他是最优,效率最高甚至是最有用的。他的广泛应用已经超过30年,包括机器人导航,控制,传感器数据融合甚至在军事方面的雷达系统以及导弹追踪等等。近年来更被应用于计算机图像处理,例如头脸识别,图像分割,图像边缘检测等等。 2.卡尔曼滤波器的介绍 (Introduction to the Kalman Filter) 为了可以更加容易的理解卡尔曼滤波器,这里会应用形象的描述方法来讲解,而不是像大多数参考书那样罗列一大堆的数学公式和数学符号。但是,他的5条公式是其核心内容。结合现代的计算机,其实卡尔曼的程序相当的简单,只要你理解了他的那5条公式。 在介绍他的5条公式之前,先让我们来根据下面的例子一步一步的探索。

基于卡尔曼滤波的目标跟踪研究_毕业设计

毕业设计 设计题目:基于卡尔曼滤波的目标跟踪研究 姓名 院系信息与电气工程学院 专业电气工程及其自动化 年级 学号 指导教师 2012年4月24 日

独创声明 本人郑重声明:所呈交的毕业论文(设计),是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议。尽我所知,除文中已经注明引用的内容外,本论文(设计)不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。 此声明的法律后果由本人承担。 作者签名: 二〇一年月日 毕业论文(设计)使用授权声明 本人完全了解鲁东大学关于收集、保存、使用毕业论文(设计)的规定。 本人愿意按照学校要求提交论文(设计)的印刷本和电子版,同意学校保存论文(设计)的印刷本和电子版,或采用影印、数字化或其它复制手段保存论文(设计);同意学校在不以营利为目的的前提下,建立目录检索与阅览服务系统,公布论文(设计)的部分或全部内容,允许他人依法合理使用。 (保密论文在解密后遵守此规定) 论文作者(签名): 二〇一年月日

目录 引言 1.绪论 1.1研究背景 1.1.1卡尔曼滤波提出背景 1.1.2 应用范围 1.2本文研究的主要内容 2 2.初步认识卡尔曼滤波 2 2.1关于卡尔曼 2.2滤波及滤波器问题浅谈 2 2.3 卡尔曼滤波起源及发展 3.估计原理和卡尔曼滤波 2 4.卡尔曼滤波的实现 4.1卡尔曼滤波的基本假设 5 4.2卡尔曼滤波的特点 5 4.3卡尔曼滤波基本公式 6 4.4卡尔曼滤波参数的估计和调整 5.卡尔曼滤波的相关知识 5.1 8 5.2 8 5.3 9 6.卡尔曼滤波器的设计 7.目标跟踪模型的建立 8.结合数学模型进行matlb编程 9.目标跟踪仿真 10.结论11 11.参考文献11 12.致谢12 13 15 16

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

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

matlab对卡尔曼滤波的仿真实现

MATLAB 对卡尔曼滤波器的仿真实现 刘丹,朱毅,刘冰 武汉理工大学信息工程学院,武汉(430070) E-mail :liudan_ina@https://www.doczj.com/doc/ca4192921.html, 摘 要:本文以卡尔曼滤波器原理为理论基础,用MATLAB 进行卡尔曼滤波器仿真、对比卡尔曼滤波器的预测效果,对影响滤波其效果的各方面原因进行讨论和比较,按照理论模型进行仿真编程,清晰地表述了编程过程。 关键词:数字信号处理;卡尔曼滤波器;MATLAB ;仿真过程 中图分类号: TN912.3 1. 引言 随着信息时代和数字世界的到来,数字信号处理已成为当今一门极其重要的学科和技术领域。数字信号处理已在通信、语音、图像、自动控制、雷达、军事、航空航天、医疗和家用电器等众多领域得到了广泛的应用。在数字信号处理中,数字滤波占有极其重要的地位,目前对数字滤波器的设计有多种方法,其中著名的MATLAB 软件包在多个研究领域都有着广泛的应用,它的频谱分析[1]和滤波器的分析设计功能很强,从而使数字信号处理变得十分简单、直观。本文分析了数字滤波器的设计方法,举出了基于MATLAB 软件的信号处理工具在数字滤波器设计中的应用。 2. 卡尔曼滤波基本原理 卡尔曼滤波过程实际上是获取维纳解的递推运算过程[2]。从维纳解导出的卡尔曼滤波器实际上是卡尔曼滤波过程结束后达到稳态的情况,这时Kalman Filtering 的结果与Wiener Solution 是相同的[3]。具体推导如下: )()1|1(?)|(?n Gy n n x f n n x +??= )|(?)()(n n x n x n e ?= 已知由此求c a cG a f F G n e E n ,)1(( ..min )]([)(2?=??→?==ε 由 f G f G ,0??????????=??εε ⑴ )]1|1(?)()[()1|1(?)|(????+??=n n x ac n y n G n n x a n n x 可以是时变的,非平稳的随机信号 ⑵ Q n a n P +?=)1()(2 ε均为正数。 ⑶ ) () ()(2n P C R n CP n G += ⑷ )()](1[)()(n P n CG n G C P n ??== ε )(n G 是个随时间变化的量,每次输入输出,)(n G 就调整一次,并逐渐逼近Kalman Filter 的增益G ,而)1()(?

线性离散卡尔曼滤波器

线性离散卡尔曼滤波公式 两种数学推导方法的比较 1. 引言 卡尔曼滤波属于一种软件滤波方法,其基本思想是:以最小均方误差为最佳估计准则,采用信号与噪声的状态空间模型,利用前一时刻的估计值和当前时刻的观测值来更新对状态变量的估计,求出当前时刻的估计值,算法根据建立的系统方程和观测方程对需要处理的信号做出满足最小均方误差的估计。从研究的历史来看,卡尔曼是首先研究的离散形式的卡尔曼滤波问题,所以最初的卡尔曼滤波算法被称为基本卡尔曼滤波算法,适用于解决随机线性离散系统的状态或参数估计问题。下面分别对比了离散线性卡尔曼滤波器的相关公式推导的两种方法。 2. 离散线性卡尔曼滤波器的直观数学推导 下面从直观角度来推导线性离散系统的卡尔曼滤波器,这是书中的推导方法。首先假设线性离散系统模型如下 ,11,11 k k k k k k k k k k k x w z H x v x ----=Φ+Γ=+ 其中,1k w -为过程噪声,k v 为观测噪声,k z 为第k 次的测量值,/?k k x 是k x 的最优线性估计,/1?k k x -是k x 的一步预报估计。过程噪声1k w -和观测噪声k v 的统计特性为: 1[]0,(,)[]0,(,)(,)0 k ww k kj k vv k kj wv E w R k j Q E v R k j R R k j δδ-===== 初始状态0x 的统计特性为: 0000?[],()E x x Var x P == 并假定0x 与k w 和k v 均无关,则有: 00(0,)(,)0(0,)(,)0 T xw k T xv k R k E x w R k E x v ==== 据以上假设及条件,可得如下直观形式 /1,11/1/1/1//1/1??????k k k k k k k k k k k k k k k k k k x x z H x x x K z --------=Φ==+

卡尔曼滤波器介绍外文翻译

毕业设计(论文)外文资料翻译 系 : 电气工程学院 专 业: 电子信息科学与技术 姓 名: 周景龙 学 号: 0601030115 外文出处: Department of Computer Science University of North Carolina at Chapel Hill Chapel Hill,NC27599-3175 附 件:1.外文资料翻译译文;2.外文原文。 (用外文写)

卡尔曼滤波器介绍 摘要 在1960年,卡尔曼出版了他最著名的论文,描述了一个对离散数据线性滤波问题的递归解决方法。从那以后,由于数字计算的进步,卡尔曼滤波器已经成为广泛研究和应用的主题,特别在自动化或协助导航领域。 卡尔曼滤波器是一系列方程式,提供了有效的计算(递归)方法去估计过程的状态,是一种以平方误差的均值达到最小的方式。滤波器在很多方面都很强大:它支持过去,现在,甚至将来状态的估计,而且当系统的确切性质未知时也可以做。 这篇论文的目的是对离散卡尔曼滤波器提供一个实际介绍。这次介绍包括对基本离散卡尔曼滤波器推导的描述和一些讨论,扩展卡尔曼滤波器的描述和一些讨论和一个相对简单的(切实的)实际例子。 离散卡尔曼滤波器 在1960年,卡尔曼出版了他最著名的论文,描述了一个对离散数据线性滤波问题的递归解决方法[Kalman60]。从那以后,由于数字计算的进步,卡尔曼滤波器已经成为广泛研究和应用的主题,特别在自动化或协助导航领域。第一章讲述了对卡尔曼滤波器非常“友好的”介绍[Maybeck79],而一个完整的介绍可以在[Sorenson70]找到,也包含了一些有趣的历史叙事。更加广泛的参考包括Gelb74;Grewal93;Maybeck79;Lewis86;Brown92;Jacobs93]. 被估计的过程 卡尔曼滤波器卡用于估计离散时间控制过程的状态变量 n x ∈?。这个离散 时间过程由以下离散随机差分方程描述: 111k k k k x Ax bu w ---=++ (1.1) 测量值m z ∈?,k k k z Hx v =+ (1.2) 随机变量k w 和k v 分别表示过程和测量噪声。他们之间假设是独立的,正态分布的高斯白噪: ()~(0)p w N Q , (1.3) ()~(0)p v N R , (1.4) 在实际系统中,过程噪声协方差矩阵Q 和观测噪声协方差矩阵R 可能会随每次迭代计算而变化。但在这儿我们假设它们是常数。 当控制函数1k u - 或过程噪声1k w -为零时,差分方程1.1中的n n ? 阶增益矩阵A 将过去k-1 时刻状态和现在的k 时刻状态联系起来。实际中A 可能随时间变化,但

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