www.pudn.com > trackingdemos.zip > unresolved_demo2.m
% unresolved_demo2.m
%
% demo version for N dimensional assignment with possibly unresolved measurements for
% tracking multiple targets using multiple sensors
% See also: SD_unresolved_demo.m
% perform the Monte Carlo simulations for algorithm comparison
%
% 2-D soft assignment, sensor 1, 2, 1&2
disp('»');
disp('»');
disp('% 2 dimensional soft assignment, single best, sensor 1');
disp('»');
disp('»');
disp('% Start simulations ...');
track = test_2d_pda1(target, MCruns);
disp('»');
disp('»');
disp('% Simulations ended successfully.');
disp('»');
disp('»');
disp('% The track loss is based on the 99% Chi-square region of the NEES');
string1 = [' Percentage of Track 1 losses: ', num2str(track(1).loss/MCruns)];
string2 = [' Percentage of Track 2 losses: ', num2str(track(2).loss/MCruns)];
disp('»');
disp('»');
disp(string1);
disp(string2);
disp('% The root mean square error (RMSE) is averaged over those tracks which are lost at the end');
fig5 = plot_RMSE(track);
disp('pause');
pause(5);
close(fig5);
disp('»');
disp('»');
disp('% The filter consistency test is not a trivial issue.');
disp('% A chi-square test based on NEES is more accurate than counting the number of empty gates');
disp('% when one has access to the ground truth.');
disp('% However, by including those lost tracks, the NEES is far above the upper limit');
disp('% of the 95% chi-square region.');
disp('% By excluding the lost tracks, the NEES is often below the lower limit');
disp('% of the 95% chi-square region.');
disp('% Notice that the track segments when not lost are included in obtaining the NEES.');
disp('% The test is slow, but faster than MC runs, please wait ...');
fig6 = plot_chi2(track);
disp('pause');
pause(5);
disp('»');
disp('»');
close(fig6);
disp('»');
disp('»');
disp('% 2 dimensional soft assignment, single best, sensor 2');
disp('»');
disp('»');
disp('% Start simulations ...');
MCruns = 500;
track = test_2d_pda2(target, MCruns);
disp('»');
disp('»');
disp('% Simulations ended successfully.');
disp('»');
disp('»');
disp('% The track loss is based on the 99% Chi-square region of the NEES');
string1 = [' Percentage of Track 1 losses: ', num2str(track(1).loss/MCruns)];
string2 = [' Percentage of Track 2 losses: ', num2str(track(2).loss/MCruns)];
disp('»');
disp('»');
disp(string1);
disp(string2);
disp('% The root mean square error (RMSE) is averaged over those tracks which are lost at the end');
fig5 = plot_RMSE(track);
disp('pause');
pause(5);
close(fig5);
disp('»');
disp('»');
disp('% The filter consistency test based on NEES:');
fig6 = plot_chi2(track);
disp('pause');
pause(5);
disp('»');
disp('»');
close(fig6);
disp('»');
disp('»');
disp('% 2 dimensional soft assignment, single best, both sensor 1 and sensor 2');
disp('»');
disp('»');
disp('% Start simulations ...');
MCruns = 500;
track = test_2d_pda12(target, MCruns);
disp('»');
disp('»');
disp('% Simulations ended successfully.');
disp('»');
disp('»');
disp('% The track loss is based on the 99% Chi-square region of the NEES');
string1 = [' Percentage of Track 1 losses: ', num2str(track(1).loss/MCruns)];
string2 = [' Percentage of Track 2 losses: ', num2str(track(2).loss/MCruns)];
disp('»');
disp('»');
disp(string1);
disp(string2);
disp('% The root mean square error (RMSE) is averaged over those tracks which are lost at the end');
fig5 = plot_RMSE(track);
disp('pause');
pause(5);
close(fig5);
disp('»');
disp('»');
disp('% The filter consistency test based on NEES');
fig6 = plot_chi2(track);
disp('pause');
pause(5);
disp('»');
disp('»');
close(fig6);