www.gusucode.com > EKF程序,用于计算目标跟踪的问题.运行情况很好,很适合非线性滤波问题 > code9/EKF1/track1.m
function [B,F,G,X,Xt]=track1 Xt(:,1)=[220,1,1550,-0.5];Xo(:,1)=[-800,1.2,-3000,0.5];T=3;F=[1 T 0 0;0 1 0 0;0 0 1 T;0 0 0 1]; G=[T^2/2 0;0 T;T^2/2 0;0 T]; V=0.005*randn(2,1000);W=0.008*randn(1,1000); X(:,1)=Xt(:,1);B(1)=atan(X(3,1)/X(1,1)); for it=2:1000 Xt(:,it)=F*Xt(:,it-1)+G*V(:,it); X(:,it)=F*X(:,it-1); B(it)=atan(X(3,it)/X(1,it))+W(it);%用真实值得到测量值,在滤波时结果才会与真实值重合。 end