发 帖  
4月15日截止!每天1小时 龙哥手把手教你学最热门LabVIEW机器视觉众筹,→戳此立抢←
[资料] matlab卡尔曼滤波仿真程序(跟踪匀速运动的目标)
2012-3-19 14:47:03  22993 matlab
分享
本帖最后由 ningkui 于 2012-3-19 14:47 编辑

卡尔曼滤波仿真程序用于匀速运动的目标跟踪

% kalman filtering

load initial_track  s; % y:initial data,s:data with noise
T=0.1;

% yp denotes the sample value of position
% yv denotes the sample value of velocity
% Y=[yp(n);yv(n)];
% error deviation caused by the random acceleration
% known data
Y=zeros(2,200);
Y0=[0;1];
Y(:,1)=Y0;
A=[1 T
    0 1];         
B=[1/2*(T)^2 T]';
H=[1 0];

C0=[0 0
    0 1];
C=[C0 zeros(2,2*199)];
Q=(0.25)^2;
R=(0.25)^2;


% kalman algorithm ieration
for n=1:200
    i=(n-1)*2+1;
    K=C(:,i:i+1)*H'*inv(H*C(:,i:i+1)*H'+R);
    Y(:,n)=Y(:,n)+K*(s(:,n)-H*Y(:,n));
    Y(:,n+1)=A*Y(:,n);
    C(:,i:i+1)=(eye(2,2)-K*H)*C(:,i:i+1);
    C(:,i+2:i+3)=A*C(:,i:i+1)*A'+B*Q*B';
end

% the diagram of position after filtering
t=0:0.1:20;
figure(2);
yp=Y(1,:);
plot(t,yp,'r.-');
axis([0 20 0 20]);
xlabel('time');
ylabel('yp position');
title('the track after kalman filtering');
hold on;

% the diagram of velocity after filtering
figure(3);
yv=Y(2,:);
plot(t,yv,'k.-');
xlabel('time');
ylabel('yv velocity');
title('the velocity caused by random acceleration');
游客,如果您要查看本帖隐藏内容请回复
8
分享淘帖 显示全部楼层
最近下载过的用户(38)
· 2012-3-22 12:03:36
挺好
· 2012-3-22 12:38:38
dddddddddddd
· 2012-3-22 13:40:10
DDDDDDDDDDD顶!!!
· 2012-3-23 16:57:47
有没有对运动对象本身的仿真啊
· 2012-3-23 21:40:34
好东西,感谢分享
· 2012-3-29 07:49:26
haikeyizheyangwan
· 2012-4-14 21:28:51
绝对正点的东东,感谢楼主!
· 2012-7-12 20:50:12
ddddddd
· 2012-11-2 16:36:07
不错,可以结合理论理解
· 2012-11-12 08:30:03
· 2012-11-26 10:24:00
· 2012-11-26 14:13:19
不错!!
· 2012-11-28 14:06:20
学习一下,多谢楼主
· 2013-4-17 12:25:10
犀利 ,收下了。哈哈啊哈
· 2014-1-4 14:39:45
很好的说哦。。。。
· 2014-1-15 14:02:45
111111111111111111111111111111111
· 2014-1-16 15:47:58
ddddddddddddddddddddddddddd
· 2014-1-18 21:26:58
好好1111111111111111111111111111
· 2014-1-18 23:00:16
感谢楼主分享感谢楼主分享感谢楼主分享感谢楼主分享

评论

高级模式
您需要登录后才可以回帖 登录 | 注册

发资料
课程
    关闭

    站长推荐 上一条 /8 下一条

    快速回复 返回顶部 返回列表