资源简介
用VD算法和CA算法还有CV算法实现kalman滤波器预测动目标轨迹,来实现动目标跟踪,采用的是matlab编程,仿真数据实现。

代码片段和文件信息
clear all;
close all;
clc
T=10;
alpha=0.8; % 加权衰减因子
window=round(1/(1-alpha)); % 检测机动的有效窗口长度
dt=100; % dt=dt_x=dt_y=100
Ta=20; % 退出机动的检测门限
Th=100; % 机动检测门限
N=1200/T; % 采样次数
M=50; % 模拟次数
% 真实轨迹数据
t=T:T:400;
xo0=2000+0*t;
yo0=10000-15*t;
t=400+T:T:600;
xo1=2000+0.075*((t-400).^2)/2;
yo1=10000-15*400-(15*(t-400)-0.075*((t-400).^2)/2);
t=600+T:T:610;
xo2=xo1(length(xo1))+15*(t-600);
yo2=yo1(length(xo1))+0*t;
t=610+T:T:660;
xo3=xo2(length(xo2))+(15*(t-610)-0.3*((t-610).^2)/2);
yo3=yo2(length(xo2))-0.3*((t-610).^2)/2;
t=660+T:T:1200;
xo4=xo3(length(xo3))+0*t;
yo4=yo3(length(xo3))-15.*(t-660);
x=[xo0xo1xo2xo3xo4];
y=[yo0yo1yo2yo3yo4];
e_x1=zeros(1N);
e_x2=zeros(1N);
e_y1=zeros(1N);
e_y2=zeros(1N);
px=zeros(1N);
qy=zeros(1N);
u=zeros(1N);
u_a=zeros(1N);
U = [10000500;50010000];
R=chol(U);
for j=1:M
Q = randn(2N);
Noise = R*Q;
for i=1:N;
zx(i)=x(i)+Noise(1i); % 观测数据
zy(i)=y(i)+Noise(2i);
z(:i)=[zx(i);zy(i)];
end
%
X_estimate(2:)=[zx(2)(zx(2)-zx(1))/Tzy(2)(zy(2)-zy(1))/T];
X_est=X_estimate(2:);
P_estimate=[dt^2dt^2/T00;dt^2/T(dt^2)*2/(T^2)00;00dt^2dt^2/T;00dt^2/T(dt^2)*2/(T^2)];
x1(1)=zx(1); y1(1)=zy(1); x1(2)=X_estimate(21); y1(2)=X_estimate(23);
u(1)=0; u(2)=0;
u1=u(2);
pp=1;% 0表示非机动,1表示机动
qq=1;
rr=1;
k=3;
while k<=N
if k<=20
z1=z(:k);
[X_preX_estP_estimateu1]=kalmanstatic(X_estP_estimatez1ku1alpha);
X_estimate(k:)=X_est;
X_predict(k:)=X_pre;
P(k:)=[P_estimate(11)P_estimate(12)P_estimate(22)P_estimate(33)P_estimate(34)P_estimate(44)];
x1(k)=X_estimate(k1);
y1(k)=X_estimate(k3);
u(k)=u1;
k=k+1;
else
if pp==0 % 进入非机动模型
if rr==window+1 % 由机动进入非机动模型,为防止回朔,至少递推window+1次
u1=0;
else
end
while rr>0
z1=z(:k);
[X_preX_estP_estimateu1]=kalmanstatic(X_estP_estimatez1ku1alpha);
X_estimate(k:)=X_est;
X_predict(k:)=X_pre;
P(k:)=[P_estimate(11)P_estimate(12)P_estimate(22)P_estimate(33)P_estimate(34)P_estimate(44)];
x1(k)=X_estimate(k1);
y1(k)=X_estimate(k3);
u(k)=u1;
rr=rr-1;
end
rr=1;
if u(k)>=Th
pp=1;qq=1; % “pp=1,qq=1”表示由非机动进入机动模型
else
end
k=k+1;
else % 机动模型
if qq==1 %由非机动进入机动模型,需要进行修正
k=ceil(k-window-1);
Xm_est=[X_estimate(k-1:)00];
Xm_pre=[X_predict(k:)00];
Pm_estimate=zeros(66);
P=P(k-1:);
m=0;
else %在机动模型中进行递推
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5952 2018-05-07 20:02 vd1\vd1\CA.m
文件 6001 2018-05-07 20:03 vd1\vd1\CV.m
文件 2465 2018-05-07 17:25 vd1\vd1\kalmandynamic.m
文件 852 2018-05-07 17:07 vd1\vd1\kalmanstatic.m
文件 7153 2018-05-21 21:18 vd1\vd1\main.m
文件 38 2018-05-07 20:06 vd1\vd1\说明.txt
目录 0 2018-05-21 21:08 vd1\vd1
目录 0 2018-05-21 21:08 vd1
----------- --------- ---------- ----- ----
22461 8
- 上一篇:计算方法上机实验试题
- 下一篇:模式识别第四版matlab代码
相关资源
- kalman工具箱 用matlab编写 包附全部函数
- MATLAB在卡尔曼滤波器中应用的理论与
- Kalman Filtering - Theory and Practice Using M
- matlab实现的人体跟踪kalman滤波
- 集合卡尔曼滤波算法-数据同化的经典
- Kalman_Filter粗对准和经对准和实际试验
- Kalman滤波器理论与应用——基于MATL
- Kalman Filtering - Theory and Practice Using M
- camshift+kalman视频跟踪matlab代码
- 扩展Kalman滤波在INS/GPS组合导航系统
- 卡尔曼滤波理论与实践MATLAB版第四版
- 卡尔曼滤波及原理黄小平随书程序
- Kalman滤波在视频图像目标跟踪中的应
- Kalman filtering-theory and practice using MAT
- kalman滤波器
- 卡尔曼滤波器matlab程序
- 交互多模型Kalman滤波在目标跟踪中的
- kalmanfilter_fuben.slx
- kalman匀速直线目标跟踪matlab程序
- Kalman 滤波器理论与应用——基于Mat
- 多维容积卡尔曼滤波CKF的函数
- 卡尔曼滤波算法的电池SOC估计仿真模
- 血糖浓度预测Kalman
-
基于Simuli
nk的Kalman滤波器仿真 matl - 无迹kalman滤波
- 带高斯白噪声的Kalman滤波Matlab代码带
- kalman运动目标跟踪
- 3.19 基于Kalman滤波的目标跟踪.rar
- kalman滤波、平滑和预测 MATLAB程序
- Kalman滤波S-Function程序
评论
共有 条评论