⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 structure_pdaf_init_track.m

📁 PDAF用于目标跟踪的程序
💻 M
字号:
function TrackList = Structure_PDAF_Init_Track(Par)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Structure_PDAF_Init_Track - initializes the Kalman filter
% matrix with respect to dimensions and other track related data
% Input:
%  Par           - parameters for to intialization
% Output:
%   TrackList    - kalman structure list and more
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% default
% all the parameters must be defined in Par structure

% tracker structure
[F,H,Q,R,ObservInd,initx,initP] = Kalman_Filter_Init(Par.dT,Par.ModelDim,Par.ProbDim,Par.StateVar,Par.ObserVar);
TrackObj.F          = F;
TrackObj.H          = H;
TrackObj.Q          = Q;
TrackObj.R          = R;
TrackObj.ObservInd  = ObservInd;

% initial location and variance
TrackObj.x          = initx;
TrackObj.P          = initP;

% intialization state
TrackObj.State      = Par.State_FisrtInit;  
% life time counter
TrackObj.LifeTime   = 0;  
% log likelihood
TrackObj.LogLike    = Par.GateLevel;  % is not zero but it is not so bad start
% history
TrackObj.Hist       = zeros(size(F,1),Par.HistLen);

% distribute the trackers evently over the measurement space
dy1                 = diff(Par.Y1Bounds);
dy2                 = diff(Par.Y2Bounds);
TrackNumY1          = max([1 floor(sqrt(dy1/dy2*Par.TrackNum))]);
TrackNumY2          = ceil(Par.TrackNum/TrackNumY1);
% generates grid of centers
[yy1,yy2]           = meshgrid(((Par.Y1Bounds(1)+dy1/TrackNumY1/2):dy1/TrackNumY1:Par.Y1Bounds(2)),...
                               ((Par.Y2Bounds(1)+dy2/TrackNumY2/2):dy2/TrackNumY2:Par.Y2Bounds(2)));
CenterData          = [yy1(:) yy2(:)]';

% init the list
TrackList = [];
for i=1:Par.TrackNum,
    
    TrackList{i}.TrackObj = TrackObj;
    TrackList{i}.TrackObj.x(ObservInd) = CenterData(:,i);

end;


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -