- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《统计信号处理》实验三
目的:掌握卡尔曼滤波滤波器的原理;
内容:用雷达跟踪目标,目标的运动可以看成是在径向和横向内的二维运动,其运动方程和观测方程分别为:
、和分别为径向距离、速度和观测值,而、和分别为横向距离、速度和观测值。和是状态噪声和是观测噪声均值都为0,呈高斯分布,互不相关。
T是雷达扫描一次的时间,此处设为.0秒。假设目标距离雷达约160Km左右,初速度设为300 m/s,并且在向雷达靠近初速度设为0 m/s这样它的径向速度波动大,而横向速度波动小,所以我们假设的方差为00m/s,的方差为m/s。鉴于雷达的观测误差,我们假设观测噪声和的方差和均为1.0Km。
,,和的初始值不是最佳的,学生完全可自己修改以上参数,并观察计算结果的变化。
任务:
试用滤波法对信号进行处理,并通过计算机模拟对其跟踪过程进行验证;
试求其Kalman滤波方程,并通过计算机模拟对其跟踪过程进行验证;
假设目标在运动过程中发生了机动(速度在某个时刻突然发生了改变),试观测此时的滤波和Kalman滤波结果,并对结果进行解释。
要求:
1)设计仿真计算的Matlab程序,给出软件清单;
2)完成实验报告,给出实验结果,并对实验数据进行分析。
解题思路:
一、任务1:滤波
状态方程和输出方程:
k时刻对k+1时刻的状态估计为:
根据恒增益滤波思想,二者按照一定比例叠加,得到恒增益滤波的滤波公式:
是一个4行2列的矩阵,需要自己推导。
本题中,,
距离新息:
速度新息:
按照新息修正的思想,对距离新息的加权系数取,对速度新息的加权系数取,直接对状态变量预测估值进行修正:
即求得。
二、任务2:Kalman滤波
我们要想完成计算,就必须知道A、C和Q、R,观测数据是必须提供的数据。A、C已经知道,现在寻找Q、R的确定值。
Q是状态噪声协方差矩阵:
R是观测噪声协方差矩阵:
下一步就是确定初始值和,作为递推的初始数据。是预测误差协方差矩阵:
其中:,
所以:
在推导上式时,和是随机过程中不同时刻的两个随机变量,我们认为这两个随机变量统计独立,而且是平稳随机过程,其不同时刻的方差相同。两个时刻的时差T为雷达扫描一圈的时间。
这样我们就有了初始值和,可以开始进行递推计算,首先计算k=3时的状态变量。
状态预测方程:
状态预测误差 协方差矩阵:
最佳增益方程:
滤波估值方程:
滤波估值误差 协方差方程:
然后计算k=4时的状态变量,如此递推,波形估计结束。
三、任务3滤波器
自己建立仿真的、序列,控制好它们的方差Q(K)和R(K),并用于程序中。在Q(K)和R(K)改变的情况下,观测恒增益滤波的结果和卡尔曼滤波的结果,比较并解释。
滤波
取alpha=0.8,beta=0.2,滤波结果如下:(红色曲线代表滤波后的波形)
改变alpha、beta的取值,使alpha=0.6,beta=0.1,滤波结果如下:
从图中可以看出,滤波之后波形变得更平滑了,在观测信号尖峰的位置比较明显。而且适当减小alpha、β后滤波效果更好了。
Kalman滤波
滤波和kalman滤波的波形分别如下:
减小alpha,β后,
从图像中可以看出,当目标状态突变时,滤波和kalman滤波都能较好的跟踪目标机动,即具有自适应性,而卡尔曼滤波的自适应性更好。
程序清单:
%alpha_beta滤波
alpha=0.8;
beta=0.2;
x0=[10000 300 0 0];
y0=[10000 0];
K=[alpha 0;
beta 0;
0 alpha;
0 beta;];
C=[1 0 0 0;
0 0 1 0;];
A=[1 1 0 0;
0 1 0 0;
0 0 1 1;
0 0 0 1;];
X=zeros(4,100);
Y=zeros(2,100);
X(:,1)=x0;
Y(:,1)=y0;
wt=random(norm,0,sqrt(500),1,100);
u1t=random(norm,0,sqrt(100),1,100);
u2t=random(norm,0,sqrt(0.12),1,100);
for i=1:99
v1t=300+u1t(1,i);
v2t=u2t(1,i);
Y(:,i+1)=[10000-v1t*i+wt(1,i) v2t*i+wt(1,i)]
x1(:,i+1)=A*X(:,i); %x(k+1|k)
temp1=C*x1(:,i+1);
temp2(1,1)=Y(1,i+1)-temp1(1,1);
文档评论(0)