📄 structure_pdaf_init_track.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 + -