trackHistoryLogic

Подтвердите и удалите дорожки на основе недавней истории дорожки

Описание

Объект trackHistoryLogic определяет, должна ли дорожка быть подтверждена или удалена на основе истории дорожки. Дорожка должна быть подтверждена, если существуют, по крайней мере, хиты Mc в недавних обновлениях Nc. Дорожка должна быть удалена, если существует, по крайней мере, Md промахи в недавних обновлениях Nd.

Решения подтверждения и удаления способствуют управлению дорожкой trackerGNN.

Создание

Синтаксис

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

Описание

logic = trackHistoryLogic создает объект trackHistoryLogic с порогами подтверждения и удаления по умолчанию.

пример

logic = trackHistoryLogic(Name,Value,...) задает свойства ConfirmationThreshold и DeletionThreshold объекта логики истории дорожки с помощью одного или нескольких аргументов пары Name,Value. Любые незаданные свойства берут значения по умолчанию.

Свойства

развернуть все

Порог подтверждения, заданный как положительный целочисленный скаляр или вектор с 2 элементами положительных целых чисел. Если логический счет выше этого порога, дорожка подтверждена. ConfirmationThreshold имеет форму [Mc Nc], где Mc является количеством хитов, требуемых для подтверждения в недавних обновлениях Nc. Когда задано как скаляр, затем Mc и Nc имеют то же значение.

Пример: [3 5]

Типы данных: single | double

Порог удаления, заданный как положительный целочисленный скаляр или вектор с 2 элементами положительных целых чисел. Если логический счет выше этого порога, дорожка удалена. DeletionThreshold имеет форму [Md Nd], где Md является количеством промахов, требуемых для удаления в недавних обновлениях Nd. Когда задано как скаляр, затем Md и Nd имеют то же значение.

Пример: [5 5]

Типы данных: single | double

Это свойство доступно только для чтения.

Отследите историю, заданную как логический вектор длины N, где N является большим из ConfirmationThreshold(2) и DeletionThreshold(2). Первый элемент является новым обновлением. Значение true указывает на хит, и значение false указывает на мисс.

Функции объекта

initИнициализируйте логику дорожки с первым хитом
hitОбновите логику дорожки с последующим хитом
missОбновите логику дорожки с мисс
checkConfirmationПроверяйте, должна ли дорожка быть подтверждена
checkDeletionПроверяйте, должна ли дорожка быть удалена
outputПолучите текущее состояние логики дорожки
resetСбросьте состояние логики дорожки
cloneСоздайте копию логики дорожки

Примеры

свернуть все

Создайте основанную на истории логику. Задайте пороговые значения подтверждения Mc и Nc как вектор [3 5]. Задайте пороговые значения удаления Md и Nd как вектор [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]

Инициализируйте логику, которая записывает хит как первое обновление логики.

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

Обновите логику еще четыре раза, где только нечетные обновления указывают хит. Флагом подтверждения является true к концу пятого обновления, потому что три хита (МГц) считаются в новых пяти обновлениях (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

Обновите логику с мисс шесть раз. Флагом удаления является true к концу пятого обновления, потому что шесть промахов (Md) считаются в новых семи обновлениях (Без обозначения даты).

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

Ссылки

[1] Блэкмен, S. и R. Пополи. Проект и анализ современных систем слежения. Бостон, MA: дом Artech, 1999.

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Введенный в R2018b