- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验报告-卡尔曼滤波课案
数字信号处理实验报告
姓名:任伟平 专业: 通信与信息系统 学号: 2015111806 日期:2015.11
实验内容
任务一:
一连续平稳的随机信号,自相关函数,信号为加性噪声所干扰,噪声是白噪声,测量值的离散值为已知,,-3.2,-0.8,-14,-16,-17,-18,-3.3,-2.4,-18,-0.3,-0.4,-0.8,-19,-2.0,-1.2,-11,-14,-0.9,-0.8,10,0.2,0.5,-0.5,2.4,-0.5,0.5,-13,0.5,10,-12,0.5,-0.6,-15,-0.7,15,0.5,-0.7,-2.0,-19,-17,-11,-14,自编卡尔曼滤波递推程序,估计信号的波形。
任务二:
设计一维纳滤波器。
产生三组观测数据:首先根据产生信号,将其加噪(信噪比分别为20dB,10dB,6dB),得到观测数据,,。
估计,,,的AR模型参数。假设信号长度为,AR模型阶数为,分析实验结果,并讨论改变,对实验结果的影响。
实验任务一
卡尔曼滤波原理
1.1 卡尔曼滤波简介
早在20世纪40年代,开始有人用状态变量模型来研究随机过程,到60年代初,由于空间技术的发展,为了解决对非平稳、多输入输出随机序列的估计问题,卡尔曼提出了递推最优估计理论。它用状态空间法描述系统,由状态方程和量测方程所组成,即知道前一个状态的估计值和最近一个观测数据,采用递推的算法估计当前的状态值。由于卡尔曼滤波采用递推法,适合于计算机处理,并且可以用来处理多维和非平稳随机信号,现已广泛应用于很多领域,并取得了很好的结果。卡尔曼滤波一经出现,就受到人们的很大重视,并 在实践中不断丰富和完善,其中一个成功的应用是设计运载体的高精度组合导航系统。卡尔曼滤波具有以下的特点:
算法是递推的,且状态空间法采用在时域内设计滤波器的方法,因而适用于多维随机过程的估计;离散型卡尔曼算法适用于计算机处理。
用递推法计算,不需要知道全部过去的值,用状态方程描述状态变量的动态变化规律,因此信号可以是平稳的,也可以是非平稳的,即卡尔曼滤波适用于非平稳过程。
卡尔曼滤波采取的误差准则仍为估计误差的均方值最小。
1.2 卡尔曼滤波的状态方程和测量方程
假设某系统时刻的状态变量为,状态方程和量测方程(输出方程)表示为
其中,是状态变量;表示输入信号是白噪声;是观测噪声;是观测数据。
为了推导简单,假设状态变量的增益矩阵不随时间发生变化,,都是均值为零的正态白噪声,方差分别是和,并且初始状态与,都不相关,表示相关系数。即:
其中
1.3 卡尔曼滤波的递推算法
卡尔曼滤波采用递推算法来实现,其基本思想是先不考虑输入信号和观测噪声的影响,得到状态变量和输出信号(即观测数据)的估计值,再用输出信号的估计误差加权后校正状态变量的估计值,使状态变量估计误差的均方值最小。因此,卡尔曼滤波器的关键是计算出加权矩阵的最佳值。
当不考虑观测噪声和输入信号时,状态方程和量测方程为
显然,由于不考虑观测噪声的影响,输出信号的估计值与实际值是有误差的,用表示
为了提高状态估计的质量,用输出信号的估计误差来校正状态变量
其中,为增益矩阵,即加权矩阵。经过校正后的状态变量的估计误差及其均方值分别用和表示,把未经校正的状态变量的估计误差的均方值用表示
卡尔曼滤波要求状态变量的估计误差的均方值为最小,因此卡尔曼滤波的关键即为通过选择合适的,使得取得最小值。首先推导状态变量的估计值和状态变量的的估计误差,然后计算的均方值,通过化简,得到一组卡尔曼滤波的递推公式:
假设初始条件,,,,,,已知,其中,,那么递推流程如下:
,,
卡尔曼滤波递推程序编程思想
题目分析
由于信号为加性噪声所干扰,可知,所以
又因为噪声为白噪声,所以
因为,所以
由此可知,,即,可得到:,因为抽样间隔,所以:。
(4)因此,所以
因此
编程分析
由上面的分析可知初始条件,,,,已知,在仿真中假设,则,,由以上参数可得卡尔曼实际递推公式
将得到的公式代入前面分析的递推公式,即可进行迭代得到结果。
MATLAB源代码
根据以上分析,编写matlab程序如下:
%%
%---------------卡尔曼滤波-----------------
%-----说明
%X(k+1)=Ak*X(k)+W(k);
%Y(k)=Ck*X(k)+V(k)
%%
clear;clc;
%基本参数值
Ak=exp(-0.02);Ck=1;
Qk=1-exp(-0.04);Rk=1;
%初始值设置
X0=0;P0=1;
%观测值y(k)
Y=[-3.2 -0.8 -14 -16 -17 -18 -3.3 -2.4 -18 -0.3 -0.4 -0.8 -19 -2.0 -1.2 ...
-11
原创力文档


文档评论(0)