A list,

Target tracking is a technique to estimate and predict the real state and future state of the target by using the information about the target obtained by various types of sensors. Target tracking technology has been widely used in many fields, such as military and civilian. With the progress of electronic technology and computer technology, a variety of new technologies and theories have been applied to the field of target tracking, target tracking technology has gradually developed into an interdisciplinary, cross-industry, multi-layer technology. The main content of target tracking technology research is to accurately estimate and predict the true information of the target from the imprecise information obtained from the sensor. Therefore, various filters are needed to filter the collected data. As a filtering algorithm with excellent performance, Kalman filter is widely used in the field of target tracking, but the filter is based on a certain model of target tracking. Therefore, the research object of target tracking mainly includes tracking model and filtering algorithm. In these two aspects, many scholars at home and abroad have conducted in-depth research and achieved fruitful results. As a new data fusion algorithm, interactive multi-model (IMM) algorithm has been paid much attention in recent years due to its excellent tracking effect and wide tracking band

Ii. Source code

% * * * * * * * * * * use the Singer model algorithm for maneuvering target tracking * * * * * * * * * * * * * function [xx5, yy5, ex5 exv5] = Singer (T, r, N) CLC clear close all % %*************** Simulation condition ******************** T=2; % Radar scanning period r=10000; % Measurement error variance N=50; %Monte Carlo simulation times %alpha=1/60; % The reciprocal of maneuvering time constant, i.e., maneuvering frequency F=[1 T (1/2)*T^2 0 0 0;
   0 1 T  0 0 0;
   0 0 1  0 0 0;
   0 0 0  1 T (1/2)*T^2; 
   0 0 0  0 1 T;
   0 0 0  0 0 1]; % state transition matrix H=[1 0 0 0 0 0;
   0 0 0 1 0 0]; % measurement matrix sigmax=r; %X direction measurement noise variance sigmay=r; %Y direction measurement noise variance R=[sigmax0;
   0sigmay]; % measured noise covariance %sigmaax=0.01; %X direction target acceleration variance %sigmaay=0.01; %Y direction target acceleration variance QQ11 =T^5/20;
qq12=T^4/8;
qq13=T^3/6;
qq22=T^3/3;
qq23=T^2/2;
qq33=T;
qq44=T^5/20;
qq45=T^4/8;
qq46=T^3/6;
qq55=T^3/3;
qq56=T^2/2;
qq66=T;
Q=[qq11 qq12 qq13 0    0    0;
   qq12 qq22 qq23 0    0    0;
   qq13 qq23 qq33 0    0    0;
   0    0    0    qq44 qq45 qq46;
   0    0    0    qq45 qq55 qq56;
   0    0    0qq46 qq56 qq66]; % Process noise covariancefor j=1:N
    [x,y,zx,zy,NN]=target_movement;
    load target_movement_out
    z=[zx'; zy'];
    X=[z(1.3) (z(1.3)-z(1.2))/T (z(1.3)2 -*z(1.2)+z(1.1))/T^2 z(2.3) (z(2.3)-z(2.2))/T (z(2.3)2 -*z(2.2)+z(2.1))/T^2]'; % state vector initialization % filter covariance initialization P11=R(1,1); P12 = R/T (1, 1); P13 (1, 1) = R/T ^ 2; P22 (1, 1) = 2 * R/T ^ 2; P23 = 3 * R/T ^ 3 (1, 1); P33 (1, 1) = 6 * R/T ^ 4; P44 = R (2, 2); P45 = R/T (2, 2); P46 = R (2, 2)/T ^ 2; P55 (2, 2) = 2 * R/T ^ 2; P56 = 3 * R/T ^ 3 (2, 2); Have = 6 * R (2, 2)/T ^ 4; P=[P11 P12 P13 0 0 0; P12 P22 P23 0 0 0; P13 P23 P33 0 0 0; 0 0 0 P44 P45 P46; 0 0 0 P45 P55 P56; 0 0 0 P46 P56 P66]; MX(:,3)=X; EX(j,3)=(X(1)-x(3)).^2; EXv(j,3)=(x(2)-vvx(3)).^2; %x direction velocity initial variance EY(j,3)=(x (4)-y(3)).^2; EYv(j,3)=(X(5)-vvy(3)).^2; For I =4:NN x1=F*X; z1=H*x1; P1=F*P*F'+Q;
        S=H*P1*H'+R;
        v=z(:,i)-z1;
        W=P1*H'*inv(S);
        X=x1+W*v;
        P=P1-W*S*W';
        Mv=v'*inv(S)*v;
        MX(:,i)=X;
        MEX(:,i,j)=MX(:,i);
        EX(j,i)=(X(1)-x(i)).^2; EXv(j, I)=(x (2)-vvx(i)).^2; %x direction velocity initial variance EY(j, I)=(x (4)-y(i)).^2; EYv(j, I)=(X(5)-vvy(i)).^2; End end function [x,y,zx,zy,NN]=target_movement % To generate the target motion of real value and measured value % % * * * * * * * * * * * * * * * the simulation conditions * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * T =2; % Radar scanning period r=10000; % Measurement error variance x0=2000; % target starts at y0= in the x-direction10000; % Target starts in y-direction xv0=0; % the initial velocity of the target in the X-axis yv0=- 15; % The initial velocity of the target in the Y-axis NN=500; X =zeros(NN,1); Y =zeros(NN,1); %Y position initialize x(1)=x0; Initial position of X axis y(1)=y0; Initial position of Y axis vx(1)=xv0; %X axis initial velocity vy(1)=yv0; %Y axis initial velocityfor i=1:NN- 1
    if i<200
        ax=0;
        ay=0;
        vx(i+1)=vx(i)+ax*T;
        vy(i+1)=vy(i)+ay*T;
    elseif (i>=200)&(i<=300)
        ax=15/200;
        ay=15/200;
        vx(i+1)=vx(i)+ax*T;
        vy(i+1)=vy(i)+ay*T;
    elseif (i>300)&(i<=500)
        ax=0;
        ay=0;
        vx(i+1)=vx(i)+ax*T;
        vy(i+1)=vy(i)+ay*T;     
    end
    x(i+1)=x(i)+vx(i)*T+0.5*ax*T^2+0.5*0*T^2*randn; %X dynamic equation y(I +1)=y(i)+vy(i)*T+0.5*ay*T^2+0.5*0*T^2*randn; % % Y the dynamic equation of the end * * * * * * * * * * * * * * * quantity measuring noise * * * * * * * * * * * * * * * * * * * * nx =100*randn(NN,1);
ny=100*randn(NN,1); % * * * * * * * * * * * * * * * measurement value * * * * * * * * * * * * * * * * * * * * * * * * * * zx = x + nx. zy=y+ny; vvx=vx; vvy=vy; save target_movement_out vvx vvy %i=1:NN;
%k=4:1:NN;
%l=4:1:NN;
%figure(1)
%plot(x,y,'-dm');
%title('Target trajectory')
%xlabel('x')
%ylabel('y')
%legend('Target trajectory')
Copy the code

Third, the operation result

Fourth, note

Version: 2014 a