exponenta event banner

trackHistoryLogic

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

Описание

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

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

Создание

Описание

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

пример

logic = trackHistoryLogic(Name,Value,...) задает свойства логического объекта истории дорожек с использованием одного или нескольких 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 и второй элемент в DeletionThreshold. Первый элемент является последним обновлением. A true значение указывает на попадание и false значение указывает на промах.

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

initИнициализация логики дорожки с первым попаданием
hitОбновить логику дорожки с последующим попаданием
missОбновить логику дорожки с промахом
checkConfirmationПроверить, должна ли быть подтверждена дорожка
checkDeletionПроверить, следует ли удалять дорожку
outputПолучить текущее состояние логики дорожки
resetСброс состояния логики дорожки
syncСинхронизироваться trackHistoryLogic объекты
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 к концу пятого обновления, потому что три попадания (Mc) учитываются в последних пяти обновлениях (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) учитываются в последних семи обновлениях (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

Ссылки

[1] Блэкман, С. и Р. Пополи. Проектирование и анализ современных систем слежения. Бостон, Массачусетс: Artech House, 1999.

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

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.

См. также

Представлен в R2021a