基于Matlab交互多模(IMM)卡尔曼滤波器机动目标跟踪

基于Matlab交互多模(IMM)卡尔曼滤波器机动目标跟踪_第1张图片

T=2;
alpha=0.8;            %  加权衰减因子
window=1/(1-alpha);   %  检测机动的有效窗口长度
dt=100;               %  dt=dt_x=dt_y=100
Th=25;              %  机动检测门限
Ta=9.49;              %  退出机动的检测门限
N=800/T;              % 采样次数
M=50;                 % 模拟次数

% 真实轨迹数据
t=2:2:400;
    xo0=2000+0*t;
    yo0=10000-15*t;
t=402:2:600;
    xo1=2000+0.075*((t-400).^2)/2;
    yo1=10000-15*400-(15*(t-400)-0.075*((t-400).^2)/2);
t=602:2:610   ;
    xo2=xo1(100)+15*(t-600);
    yo2=yo1(100)+0*t;   
t=612:2:660;
    xo3=xo2(5)+(15*(t-610)-0.3*((t-610).^2)/2);
    yo3=yo2(5)-0.3*((t-610).^2)/2;
t=662:2:800;
    xo4=xo3(25)+0*t;
    yo4=yo3(25)-15*(t-660);
x=[xo0,xo1,xo2,xo3,xo4];
y=[yo0,yo1,yo2,yo3,yo4];

e_x1=zeros(1,N);
e_x2=zeros(1,N);
e_y1=zeros(1,N);
e_y2=zeros(1,N);
px=zeros(1,N);
qy=zeros(1,N);
u=zeros(1,N);
u_a=zeros(1,N);

for j=1:M
  no1=100*randn(1,N);       %  随机白噪
  no2=100*randn(1,N);
  for i=1:N;
    zx(i)=x(i)+no1(i);      %  观测数据
    zy(i)=y(i)+no2(i);
    z(:,i)=[zx(i);zy(i)];
  end  

完整代码链接:https://pan.baidu.com/s/1-VTibNz1xxAwQ0EvzbEjSg

提取码:bgkh

你可能感兴趣的:(matlab)