|  | 
 
| 
卡尔曼滤波仿真程序用于匀速运动的目标跟踪
x
EDA365欢迎您登录!您需要 登录 才可以下载或查看,没有帐号?注册  / D- H2 h( j! r, c4 y+ D- |8 N, F+ S! M# r6 w1 k' X
 % kalman filtering
 6 c6 k- C; t" t( k' a; w& ^/ J7 ?- u9 M+ U( l6 E" B3 ], }
 load initial_track  s; % y:initial data,s:data with noise! E# [  w: G4 _6 k* y9 _% x7 U
 T=0.1;
 3 w2 T( o2 K/ `! l- g! ~! K8 D* U0 B) {. @. \2 m
 % yp denotes the sample value of position, ~7 Z% W% T1 x9 c: T! m
 % yv denotes the sample value of velocity
 8 H/ z4 {* b& b+ P, K% Y=[yp(n);yv(n)];
 % u6 S7 ~( u+ \  B, a! K! F% error deviation caused by the random acceleration3 l3 j6 o4 X  I. w+ M: z3 l2 ]
 % known data
 " r$ |: q  d- RY=zeros(2,200);
 : N  j3 A' z! w3 ^4 e, O8 D( nY0=[0;1];, S  I# z) c- ]& x2 y
 Y(:,1)=Y0;
 5 D& Q! c# J3 E) y+ H/ zA=[1 T
 % |! w" T$ l5 T8 E  y    0 1];         6 O" E8 y& ~: O& a
 B=[1/2*(T)^2 T]';9 k/ _, j, s* f5 f7 N& a
 H=[1 0];" w5 H+ W7 {- n5 r' }) i+ h
 
 8 e: e  @: [6 `$ Z, S) eC0=[0 0
 + y' ]" h3 H4 G% W6 i# P    0 1];
 . q# m4 }# _9 |, iC=[C0 zeros(2,2*199)];
 ! P/ C# l' @5 }+ i6 HQ=(0.25)^2;
 ) j; q2 T# H4 m0 {R=(0.25)^2;
 4 a/ A' y: P/ u/ f+ g+ K' Y- N7 d
 8 @; b9 r% D! B* t0 e  _6 d
 9 {! e; G5 L/ l% kalman algorithm ieration
 2 {1 _! P& {# W3 jfor n=1:200
 ' u2 @7 ?% W' J7 g    i=(n-1)*2+1;
 - K7 V8 ^' `! m7 o! [: G4 X    K=C(:,i:i+1)*H'*inv(H*C(:,i:i+1)*H'+R);
 9 x0 r! s" m) }- L- U    Y(:,n)=Y(:,n)+K*(s(:,n)-H*Y(:,n));( g; n5 n1 V# t4 p4 @
 Y(:,n+1)=A*Y(:,n);# s) V1 c# o" @$ U$ I3 f& }
 C(:,i:i+1)=(eye(2,2)-K*H)*C(:,i:i+1);0 k* s" N( D8 u: J3 _% Z. v) m
 C(:,i+2:i+3)=A*C(:,i:i+1)*A'+B*Q*B';
 $ c. X" D9 \- q3 n. U4 Cend
 % h1 n/ N! }1 p4 U% A/ v" e6 m8 ?) \7 d
 % the diagram of position after filtering1 l- Q6 e" m5 {7 h) Z# H, d
 t=0:0.1:20;( y5 _3 l+ ]6 c* D
 figure(2);
 2 |  Q( Y; x; c8 O2 Qyp=Y(1,:);
 ; |9 T. ?3 \/ Dplot(t,yp,'r.-');
 5 S1 b: M3 Y8 p7 }4 maxis([0 20 0 20]);
 ) i& A% g; i8 l3 ~4 l* Cxlabel('time');/ |- G$ K2 t9 A" Q  E2 ?8 t
 ylabel('yp position');; H& C' r% I+ d5 q9 a$ O5 v# f
 title('the track after kalman filtering');
 # G$ a& P8 Q2 h% L- u1 |6 Uhold on;* ?. d! T; L8 |- ?6 T. ~( b- [
 
 % X4 U% D# _" }3 W5 b. ~% the diagram of velocity after filtering
 & t6 B0 Q' U, J* u9 _5 d# v* p/ dfigure(3);
 . h4 Y) E( o$ h; B: [yv=Y(2,:);8 ~- G% `' @6 T( A0 f, j1 A. c& w
 plot(t,yv,'k.-');
 ( H- M6 }& ]6 V7 O) V" Zxlabel('time');
 / m' \& d$ o# {" Q# @$ b; M2 Hylabel('yv velocity');+ R. M8 T' P9 ~* s: N* k- P
 title('the velocity caused by random acceleration');; ^3 {# H2 u2 ]. F, h
 * c& [" i! m8 e- S# p7 d
 9 K' u; b5 m' g6 v
 
 / R, m+ [3 W/ G: q, S
 - K* Y* }+ Z( S& ~3 o3 X/ o) z" [
 
 | 
 |