Main Content

checkDeletion

Check if track should be deleted

Description

example

tf = checkDeletion(historyLogic) returns a flag that is true when at least Md out of Nd recent updates of the track history logic object historyLogic are false.

example

tf = checkDeletion(historyLogic,tentativeTrack,age) returns a flag that is true when the track is tentative and there are not enough detections to allow it to confirm. Use the logical flag tentativeTrack to indicate if the track is tentative and provide age as a numeric scalar.

example

tf = checkDeletion(scoreLogic) returns a flag that is true when the track should be deleted based on the track score.

Examples

collapse all

Create a history-based logic. Specify confirmation threshold values Mc and Nc as the vector [2 3]. Specify deletion threshold values Md and Nd as the vector [4 5].

historyLogic = trackHistoryLogic('ConfirmationThreshold',[2 3], ...
    'DeletionThreshold',[4 5])
historyLogic = 
  trackHistoryLogic with properties:

    ConfirmationThreshold: [2 3]
        DeletionThreshold: [4 5]
                  History: [0 0 0 0 0]

Initialize the logic, which records a hit as the first update to the logic. The confirmation flag is false because the number of hits is less than two (Mc).

init(historyLogic)
history = output(historyLogic);
checkConfirmation(historyLogic)
ans = logical
   0

delFlag = checkDeletion(historyLogic);
disp(['History: [',num2str(history),']. Deletion Flag: ',num2str(delFlag)]);
History: [1  0  0  0  0]. Deletion Flag: 1

Update the logic with a hit. The confirmation flag is true because two hits (Mc) are counted in the most recent three updates (Nc).

hit(historyLogic)
history = output(historyLogic);
checkConfirmation(historyLogic)
ans = logical
   1

delFlag = checkDeletion(historyLogic);
disp(['History: [',num2str(history),']. Deletion Flag: ',num2str(delFlag)]);
History: [1  1  0  0  0]. Deletion Flag: 0
miss(historyLogic)
history = output(historyLogic);
checkConfirmation(historyLogic)
ans = logical
   1

delFlag = checkDeletion(historyLogic);
disp(['History: [',num2str(history),']. Deletion Flag: ',num2str(delFlag)]);
History: [0  1  1  0  0]. Deletion Flag: 0
miss(historyLogic)
history = output(historyLogic);
delFlag = checkDeletion(historyLogic);
checkConfirmation(historyLogic)
ans = logical
   0

disp(['History: [',num2str(history),']. Deletion Flag: ',num2str(delFlag)]);
History: [0  0  1  1  0]. Deletion Flag: 0

Create a history-based logic. Specify confirmation threshold values Mc and Nc as the vector [2 3]. Specify deletion threshold values Md and Nd as the vector [4 5].

historyLogic = trackHistoryLogic('ConfirmationThreshold',[2 3], ...
    'DeletionThreshold',5)
historyLogic = 
  trackHistoryLogic with properties:

    ConfirmationThreshold: [2 3]
        DeletionThreshold: [5 5]
                  History: [0 0 0 0 0]

Initialize the logic, which records a hit as the first update to the logic. Then, record two misses.

init(historyLogic)
miss(historyLogic)
miss(historyLogic)
history = output(historyLogic)
history = 1x5 logical array

   0   0   1   0   0

The confirmation flag is false because the number of hits in the most recent 3 updates (Nc) is less than 2 (Mc).

confirmationFlag = checkConfirmation(historyLogic)
confirmationFlag = logical
   0

Check the deletion flag as if the track were not tentative. The deletion flag is false because the number of misses in the most recent 5 updates (Nm) is less than 4 (Mc).

deletionFlag = checkDeletion(historyLogic)
deletionFlag = logical
   0

Recheck the deletion flag, treating the track as tentative with an age of 3. The tentative deletion flag is true because there are not enough detections to allow the track to confirm.

tentativeDeletionFlag = checkDeletion(historyLogic,true,3)
tentativeDeletionFlag = logical
   1

Create a score-based logic, specifying the deletion threshold. The logic uses the default confirmation threshold.

scoreLogic = trackScoreLogic('DeletionThreshold',-1);

Specify the probability of detection (pd), the probability of false alarm (pfa), the volume of a sensor detection bin (volume), and the new target rate in a unit volume (beta).

pd = 0.8;
pfa = 1e-3;
volume = 1.3;
beta = 0.1;

Initialize the logic using these parameters. The first update to the logic is a hit.

init(scoreLogic,volume,beta,pd,pfa);
disp(['Score and MaxScore: ', num2str(output(scoreLogic))]);
Score and MaxScore: 4.6444      4.6444

Update the logic with a miss. The current score decreases.

miss(scoreLogic,pd,pfa)
disp(['Score and MaxScore: ', num2str(output(scoreLogic))])
Score and MaxScore: 3.036      4.6444

The deletion flag is true because the current score is smaller than the maximum score by more than 1. In other words, scoreLogic.Score - scoreLogic.MaxScore is more negative than the deletion threshold, -1.

deletionFlag = checkDeletion(scoreLogic)
deletionFlag = logical
   1

Input Arguments

collapse all

Track history logic, specified as a trackHistoryLogic object.

Track is tentative, specified as false or true. Use tentativeTrack to indicate if the track is tentative.

Number of updates since track initialization, specified as a numeric scalar.

Track score logic, specified as a trackScoreLogic object.

Output Arguments

collapse all

Track can be deleted, returned as true or false.

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

Introduced in R2018b