This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

trackHistoryLogic

Confirm and delete tracks based on recent track history

Description

The trackHistoryLogic object determines if a track should be confirmed or deleted based on the track history. A track should be confirmed if there are at least Mc hits in the recent Nc updates. A track should be deleted if there are at least Md misses in the recent Nd updates.

The confirmation and deletion decisions contribute to the track management by a trackerGNN.

Creation

Syntax

logic = trackHistoryLogic
logic = trackHistoryLogic(Name,Value,...)

Description

logic = trackHistoryLogic creates a trackHistoryLogic object with default confirmation and deletion thresholds.

example

logic = trackHistoryLogic(Name,Value,...) specifies the ConfirmationThreshold and DeletionThreshold properties of the track history logic object using one or more Name,Value pair arguments. Any unspecified properties take default values.

Properties

expand all

Confirmation threshold, specified as a positive integer scalar or 2-element vector of positive integers. If the logic score is above this threshold, the track is confirmed. ConfirmationThreshold has the form [Mc Nc], where Mc is the number of hits required for confirmation in the recent Nc updates. When specified as a scalar, then Mc and Nc have the same value.

Example: [3 5]

Data Types: single | double

Deletion threshold, specified as a positive integer scalar or 2-element vector of positive integers. If the logic score is above this threshold, the track is deleted. DeletionThreshold has the form [Md Nd], where Md is the number of misses required for deletion in the recent Nd updates. When specified as a scalar, then Md and Nd have the same value.

Example: [5 5]

Data Types: single | double

This property is read-only.

Track history, specified as a logical vector of length N, where N is the larger of ConfirmationThreshold(2) and DeletionThreshold(2). The first element is the most recent update. A true value indicates a hit and a false value indicates a miss.

Object Functions

initInitialize track logic with first hit
hitUpdate track logic with subsequent hit
missUpdate track logic with miss
checkConfirmationCheck if track should be confirmed
checkDeletionCheck if track should be deleted
outputGet current state of track logic
resetReset state of track logic
cloneCreate copy of track logic

Examples

collapse all

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

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

    ConfirmationThreshold: [3 5]
        DeletionThreshold: [6 7]
                  History: [0 0 0 0 0 0 0]

Initialize the logic, which records a hit as the first update to the logic.

init(historyLogic)
history = historyLogic.History;
disp(['History: [',num2str(history),'].']);
History: [1  0  0  0  0  0  0].

Update the logic four more times, where only the odd updates register a hit. The confirmation flag is true by the end of the fifth update, because three hits (Mc) are counted in the most recent five updates (Nc).

for i = 2:5
    isOdd = logical(mod(i,2));
    if isOdd
        hit(historyLogic)
    else
        miss(historyLogic)
    end
    
    history = historyLogic.History;
    confFlag = checkConfirmation(historyLogic);
    delFlag = checkDeletion(historyLogic,true,i);
    disp(['History: [',num2str(history),']. Confirmation Flag: ',num2str(confFlag), ...
        '. Deletion Flag: ',num2str(delFlag)']);
end
History: [0  1  0  0  0  0  0]. Confirmation Flag: 0. Deletion Flag: 0
History: [1  0  1  0  0  0  0]. Confirmation Flag: 0. Deletion Flag: 0
History: [0  1  0  1  0  0  0]. Confirmation Flag: 0. Deletion Flag: 0
History: [1  0  1  0  1  0  0]. Confirmation Flag: 1. Deletion Flag: 0

Update the logic with a miss six times. The deletion flag is true by the end of the fifth update, because six misses (Md) are counted in the most recent seven updates (Nd).

for i = 1:6
    miss(historyLogic);
    
    history = historyLogic.History;
    confFlag = checkConfirmation(historyLogic);
    delFlag = checkDeletion(historyLogic);
    disp(['History: [',num2str(history),']. Confirmation Flag: ',num2str(confFlag), ...
        '. Deletion Flag: ',num2str(delFlag)']);
end
History: [0  1  0  1  0  1  0]. Confirmation Flag: 0. Deletion Flag: 0
History: [0  0  1  0  1  0  1]. Confirmation Flag: 0. Deletion Flag: 0
History: [0  0  0  1  0  1  0]. Confirmation Flag: 0. Deletion Flag: 0
History: [0  0  0  0  1  0  1]. Confirmation Flag: 0. Deletion Flag: 0
History: [0  0  0  0  0  1  0]. Confirmation Flag: 0. Deletion Flag: 1
History: [0  0  0  0  0  0  1]. Confirmation Flag: 0. Deletion Flag: 1

References

[1] Blackman, S., and R. Popoli. Design and Analysis of Modern Tracking Systems. Boston, MA: Artech House, 1999.

Extended Capabilities

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

Introduced in R2018b