随机数字信号处理
期末作业报告
姓
学
名
号
xx
xxxxxxxx
指导教师
xx
日
期
202x 年 x 月 x 日
北京工业大学随机数字信号处理期末作业报告
目录
一、实验题目....................................................................................................... 1
二、实验原理....................................................................................................... 1
三、实验内容....................................................................................................... 4
四、实验过程....................................................................................................... 5
五、实验结果....................................................................................................... 7
六、总结与展望................................................................................................... 9
七、附录............................................................................................................... 9
II
北京工业大学随机数字信号处理期末作业报告
一、实验题目
基于卡尔曼滤波的自由落体运动目标跟踪
二、实验原理
卡尔曼滤波是一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状
态进行最优估计的算法。由于在观测的过程中,常常伴有噪声和干扰,最优估计后会达
到一个滤波的效果,所以,也可将其看作一个滤波过程。
卡尔曼滤波可以在任何含有不确定性信息的动态系统中,对系统的下一步走向做出
有根据的预测。即使伴随着各种干扰,卡尔曼滤波总是能指出真实发生的情况。
卡尔曼滤波的一个典型实例是从一组有限的、对物体位置的、包含噪声的观察序列
中预测出物体的坐标位置和速度。下面就以一个汽车在路面行驶为例,来说明卡尔曼滤
波的基本原理。
2.1 状态转移
假设有一辆汽车在路面行驶,如图 2.1 所示。用位置和速度来表示他当前的状态,
写成矩阵的形式就是= ,其中代表当前时刻的位置,代表当前时刻汽车的速
度。卡尔曼滤波假设两个变量都是随机的,并且服从高斯分布。每个变量都有一个均值,
表示随机分布的中心,以及方差,表示不确定性。
图 2.1 一辆汽车在路面行驶示意图
若在实际情况下,司机常常会有踩油门和刹车的动作,在运动状态里相当于给汽车
一个加速度。此时,写出运动时的位移和速度公式,如公式(2-1)和(2-2)所示。
=−1+−1×∆+×∆22
=−1+×∆
(2-1)
(2-2)
通过观察这两个公式,输出变量是输入变量的线性组合,这就是称卡尔曼滤波是最
佳的线性滤波器的原因,因为它描述两个状态间的线性关系。因为是线性关系,所以可
以进一步将两个运动公式写成矩阵的形式,如公式(2-3)所示。
1
北京工业大学随机数字信号处理期末作业报告
= 1 ∆
0
1 −1−1 + ∆22∆
若将其中的两个状态变化矩阵提取出来,则= 1 ∆
0
1 为状态转移矩阵,它表示如
何从上一时刻状态推测当前时刻状态,= ∆22∆ 为控制矩阵,它控制着加速度对整个
运动的作用。这样处理后,就可以将公式简化为
(2-3)
(2-4)
_= −1+
公式(2-4)表示状态预测公式。
得到状态预测公式后,就可以推测当前时刻的状态,不过所有的推测都是包含噪声
的,噪声越大,不确定性就越大,那么如何表示这次推测带来了多少不确定性,这时候
就用协方差矩阵来表示。
2.2 协方差矩阵
(a)
(b)
图 2.2 位置和速度的关系图
在图 2.2 (a)中,位置和速度是不相关的,这意味着由其中一个变量的状态无法推测
出另一个变量可能的值。而图 2.2(b)中,位置和速度是相关的,观测特定位置的可能性
取决于当前的速度。这种情况是有可能发生的,例如,我们基于上一时刻的位置来估计
当前时刻的位置。如果速度过高,我们可能已经移动很远了。如果缓慢移动,则距离不
会很远。因此,跟踪这种关系是非常重要的,因为它可以包含更多的信息,其中一个测
2
北京工业大学随机数字信号处理期末作业报告
量值可以告知其它变量可能的值。这就是卡尔曼滤波的目的,尽可能地在包含不确定性
的测量数据中提取更多信息。
预测模型并不是百分百准确的,还包含噪声,因此还需要在公式后面加协方差矩阵
这种相关性用协方差矩阵来表示,矩阵中的每个元素表示第个和第个状态变量
之间的相关度。协方差的一般表示形式为, = 11 12
12 22 ,在这里用表示。
接下来,为了实现不确定性在每个时刻传递,需要让协方差矩阵乘以状态转移矩
阵,根据协方差矩阵乘法的性质,可以得到公式
−=−1
Q,来表示预测模型本身带来的噪声。−=−1+
以观测到汽车的位置,观测到的值记为。
假设路边有个激光测距仪,负责测量汽车在行驶过程中的位置变化,每一时刻都可
它表示不确定性在各个时刻之间的传递关系。
2.3 观察矩阵
(2-5)
(2-6)
图 2.3 激光测距仪时刻测量汽车位置示意图
那么从汽车本身的状态到观测状态之间有一个变化关系,记为,表示为=
1 0 。两者之间的关系可以用公式(2-7)表示,其中表示观测矩阵带来的噪声。另
外,在观测过程中,ye 存在噪声带来的不确定性,此时用来表示观测噪声的协方差矩
阵。
2.4 状态更新
预测状态值和观察值都已经准备好,接下来就是卡尔曼滤波算法的核心部分,用卡
尔曼系数进行状态更新,公式如(2-8)所示。
=+
= _+(− _)
3
(2-7)
(2-8)
北京工业大学随机数字信号处理期末作业报告
者所占的权重,是相信预测模型多一点还是观测模型多一点。如果相信预测模型多一点,
那么残差的权重就会小一点;如果相信观察模型多一点,那么残差的权重就会大一些。
通过拆分这个公式,来更好的理解它的意义。其中,− _表示实际观测值与预
期观测值之间的残差,这个残差乘上系数就可以修正的值。叫卡尔曼系数,实际
上是个矩阵,它的表达式为=−(−+)−1
作用有两个方面:一是权衡预测状态协方差和观察量的协方差矩阵的大小,来决定两
二是把残差的作用从观察域转换到状态域。因为,观察值是一个一维向量,状态是
状态值,就需要用卡尔曼系数来做这个转换。
= −−
这个值是留给下一个迭代值用的,在这一步里,状态的不确定性是减小的,而在下一轮
一个二维向量,他们所用的单位及特征都有可能是不同的,为了用状态值的残差去更新
2.5 噪声协方差矩阵的更新
最后一步就是更新最佳估计值的噪声分布,
(2-9)
(2-10)
迭代中,由于传递噪声的引入,不确定性就会增大,卡尔曼滤波就是在这种不确定性中
寻求一种平衡的。
2.6 小结
以上公式中,(2-4)和(2-6)表示通过上一时刻的状态来预测当前时刻的状态,而
(2-8)、(2-9)和(2-10)指用当前的观测值来更新 _和−,经过更新后的值就是最佳
的观测值。
三、实验内容
实验一:给定参数表示自由落体运动,通过卡尔曼滤波算法对其进行目标跟踪,测
量跟踪效果误差,用折线图表示出来,以供分析。
实验二:选用 60 幅图像,每幅图像均展示了小球在下降过程中的一个状态,按时间
顺序排列,不断地更换图片即可以看到小球从下降到反弹直至动能为 0 的这样一个状态。
连续的对 60 幅图像进行卡尔曼滤波,进行目标跟踪预测。
4
北京工业大学随机数字信号处理期末作业报告
四、实验过程
4.1 实验平台
本次实验均在 MATLAB 数学软件内实现,其由一系列工具组成,是一个高级的矩
阵语言,包含大量计算算法,具有方便的数据可视化功能,目前对许多专门的领域都开
发了功能强大的模块集和工具箱。此次实验可以利用 MATLAB 编程,可以看到矩阵数
据的变化,绘制出折线图,以及目标跟踪的效果动画。
4.2 模拟自由落体运动时卡尔曼滤波进行目标跟踪
自由落体运动的定义是物体初速度为 0,只受重力的作用,做匀加速直线运动。那
么,为了模拟自由落体运动,将过程噪声方差设置为 0,即忽略空气阻力。加速度设置
为 1,仿真 1000 步长。设定各个参数如下:
状态转移矩阵:= 1 ∆
1 ,∆=1;
0
控制矩阵:= 0.51 ;
观测矩阵:= 1 0 ;
状态转移协方差矩阵:= 0 00 0 ;
观测噪声方差:=1;
状态协方差矩阵:= 10 0
1 。
0
将各个数据作为系统输入通过卡尔曼滤波,经过卡尔曼滤波的不断迭代更新,达到
去除噪声实现目标跟踪的效果。通过计算测量误差和卡尔曼滤波的估计误差,比较两个
误差的变化,得出卡尔曼滤波的作用。
4.2 利用卡尔曼滤波对运动小球做目标跟踪
通过上一个实验已经得到卡尔曼滤波可以用于自由落体运动的目标跟踪,但在现实
生活中,运动是复杂多变的,这时卡尔曼滤波的目标跟踪效果更值得研究。为了体现小
球做连续运动的效果,选取小球做下降、上弹运动的连续 60 张图像作为系统输入,如
图 4.1 所示。
5
北京工业大学随机数字信号处理期末作业报告
图4.1 小球运动图像(60张)
设定各个参数如下:
0
状态转移矩阵:= 1 00 1 ∆
0
∆
1 00 1,∆=1;
0 00 0
观测矩阵:= 1 00 1 0 00 0 ;
0
状态转移协方差矩阵:= 0.01
0
0.01
0
0
0
0
0.01
0
0
0
观测噪声方差:= 0.2845 0.0045
0.0045 0.0455 ;
0
状态协方差矩阵:= 100
0
0
0
100
0
0
0
100
0
0
100 。
0
0
0
0
0
0
0.01 ;
初始化好卡尔曼滤波后,陆续读取这 60 张小球运动的图像,通过卡尔曼滤波算法
不断地对小球下一步运动进行预测和更新,达到目标跟踪的目的。
6