exponenta event banner

toccgh

Вычислять вероятности дорожек с помощью алгоритма CGH

Описание

пример

[pdt,pft,eft] = toccgh(pd,pfa) вычисляет вероятности дорожек с помощью алгоритма истории общих вентилей. Алгоритм использует логику подтверждения дорожки 2 из 3, где для подтверждения дорожки должно наблюдаться 2 попадания в 3 обновлениях.

пример

[pdt,pft,eft] = toccgh(pd,pfa,Name,Value) указывает дополнительные параметры с помощью аргументов «имя-значение». Опции включают логику подтверждения, размер литника в ячейках и последовательность роста литника.

пример

toccgh(___) без выходных аргументов строит график рабочей характеристики трекера (TOC), которая является вероятностью целевой дорожки, pdt, как функция вероятности ложной дорожки, pft.

Примеры

свернуть все

Кривая рабочих характеристик трекера (ТОС) представляет собой график вероятности целевой дорожки как функции вероятности ложной дорожки. Постройте график кривых TOC для трех различных значений отношения сигнал/шум (SNR), предполагая логику подтверждения 2/3, и используйте одномерный фильтр Калмана с постоянной скоростью для генерации последовательности роста затвора трекера.

Вычислите вероятность обнаружения и вероятность ложного аварийного сигнала для значений SNR 3, 6 и 9 дБ. Предположим, что когерентный приемник с нефлютуирующей целью. Создайте 20 значений вероятности ложного аварийного сигнала, логарифмически равномерно расположенных между 10-10 и 10-3, и вычислите соответствующие вероятности обнаружения.

SNRdB = [3 6 9];

[pd,pfa] = rocsnr(SNRdB,'SignalType','NonfluctuatingCoherent', ...
    'NumPoints',20,'MaxPfa',1e-3);

Вычислите и постройте график кривых TOC и соответствующих кривых рабочих характеристик приемника (ROC).

toccgh(pd,pfa)

Figure Operating Characteristics contains 2 axes. Axes 1 with title Receiver Operating Characteristic (ROC) Curve contains 63 objects of type line, text. These objects represent ROC 1, ROC 2, ROC 3. Axes 2 with title Tracker Operating Characteristic (TOC) Curve contains 63 objects of type line, text.

Вычисляют вероятность целевой дорожки, вероятность ложной дорожки и ожидаемое количество ложных дорожек, соответствующих вероятности обнаружения 0,9, вероятность ложной тревоги 10-6 и логику подтверждения дорожки 3-из 5.

pd = 0.9;
pfa = 1e-6;
logic = [3 5];

Используйте измененную версию одномерного фильтра Калмана с постоянной скоростью по умолчанию для создания последовательности роста затвора трекера. Укажите время обновления 0,3 секунды и максимальное целевое ускорение 20 метров в квадратную секунду.

KFpars = {'UpdateTime',0.3,'MaxAcceleration',20};

Вычислите вероятности и ожидаемое количество ложных дорожек.

[pdf,pft,eft] = toccgh(pd,pfa,'ConfirmationThreshold',logic,KFpars{:})
pdf = 0.9963
pft = 2.1555e-19
eft = 1

Используйте общий алгоритм предыстории затвора для вычисления вероятности целевой дорожки и вероятности дорожки для вероятности обнаружения 0,5 и вероятности ложной тревоги 10-3. Используйте пользовательскую последовательность роста литника и порог подтверждения 3/4.

pd = 0.5;
pfa = 1e-3;

cp = [3 4];
gs = [21 39 95 125];

Вычислите вероятности.

[pdf,pft] = toccgh(pd,pfa,'ConfirmationThreshold',cp, ...
    'GateGrowthSequence',gs)
pdf = 0.5132
pft = 9.9973e-07

Изучите, как кривые рабочих характеристик приемника (ROC) и трекера (TOC) изменяются с вероятностью ложного аварийного сигнала.

Вычисляют значения вероятности обнаружения и отношения сигнал/шум (SNR), соответствующие вероятностям ложной тревоги 10-4 и 10-6. Предположим, что когерентный приемник с нефлютуирующей целью. Постройте график результирующих кривых ROC. Используйте маркеры большего размера для обозначения большего значения SNR.

pfa = [1e-4 1e-6];
[pd,SNRdB] = rocpfa(pfa,'SignalType','NonfluctuatingCoherent');

scatter(SNRdB,pd,max(SNRdB,1),'filled')

title('Receiver Operating Characteristic (ROC)')
xlabel('SNR (dB)')
ylabel('P_d')
grid on
title(legend('10^{-6}','10^{-4}'),'P_{fa}')

Figure contains an axes. The axes with title Receiver Operating Characteristic (ROC) contains 2 objects of type scatter. These objects represent 10^{-6}, 10^{-4}.

Вычислите кривые оглавления, используя полученные вероятности обнаружения и вероятности ложного аварийного сигнала. По мере увеличения SNR возрастает вероятность ложной дорожки при наличии обнаружения цели. Когда SNR уменьшается, вероятность обнаружения цели уменьшается, тем самым увеличивая вероятность ложной дорожки.

[pct,pcf] = toccgh(pd.',pfa);

scatter(pcf,pct,max(SNRdB,1),'filled')

set(gca,'XScale','log')
title('Tracker Operating Characteristic (TOC)')
xlabel('P_{FT}')
ylabel('P_{DT}')
grid on
title(legend('10^{-6}','10^{-4}'),'P_{fa}')

Figure contains an axes. The axes with title Tracker Operating Characteristic (TOC) contains 2 objects of type scatter. These objects represent 10^{-6}, 10^{-4}.

Входные аргументы

свернуть все

Вероятность обнаружения, заданная как вектор или матрица значений в диапазоне [0, 1].

  • Если pd является вектором, то он должен иметь то же количество элементов, что и pfa

  • Если pd является матрицей, то ее число строк должно равняться количеству элементов pfa. В этом случае количество столбцов pd равняется длине входного значения отношения сигнал-шум (SNR) к rocsnr или вывод по rocpfa.

Примечание

Если вы используете rocpfa получить pd, необходимо транспонировать выходные данные, прежде чем использовать их в качестве входных данных для toccgh. Если вы используете rocsnr получить pd, вы не должны транспонировать выходные данные.

Пример: [pd,pfa] = rocsnr(6) возвращает вероятности одноимпульсного обнаружения и вероятности ложной тревоги для когерентного приемника с нефлютуирующей целью и отношением сигнал/шум 6 дБ.

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

Вероятность ложного аварийного сигнала на ячейку (ячейку), заданную как вектор значений в диапазоне [0, 1].

Совет

Использовать pfa значения 10-3 или меньше для удовлетворения предположений алгоритма общей истории затвора.

Пример: [pd,pfa] = rocsnr(6) возвращает вероятности одноимпульсного обнаружения и вероятности ложной тревоги для когерентного приемника с нефлютуирующей целью и отношением сигнал/шум 6 дБ.

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

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: 'UpdateTime',0.25,'MaximumAcceleration',8 указывает, что 1-D фильтр Калмана дорожки постоянной скорости, используемый для вычисления роста затвора дорожки, имеет время обновления 0,25 секунды и максимальное ускорение интересующих целей 8 метров в квадратную секунду.

Порог подтверждения, заданный как двухэлементный вектор строки положительных целых чисел или скаляр. Двухэлементный вектор [M N] соответствует логике подтверждения M-out-of-N или M/N, тест, который определяет, что событие должно происходить по меньшей мере М раз в N последовательных обновлений.

  • Дорожка подтверждается при наличии по меньшей мере М обнаружений в N обновлениях.

  • Дорожка удаляется, если в обновлениях N обнаружено меньше М.

Если этот аргумент указан как скаляр, toccgh рассматривает его как двухэлементный вектор с идентичными элементами. N не может быть больше 50.

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

Число ячеек, указанное как положительный целочисленный скаляр. Этот аргумент используется для вычисления ожидаемого числа ложных дорожек.

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

Число целевых объектов, указанное как положительный целочисленный скаляр. Этот аргумент используется для вычисления ожидаемого числа ложных дорожек.

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

Время обновления для стандартного одномерного фильтра Калмана с постоянной скоростью, заданного как положительный скаляр в секундах. Этот аргумент влияет на рост литника дорожки.

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

Максимальное ускорение интересующих целей, указанное как неотрицательный скаляр в метрах в квадратную секунду. Этот вход используется для настройки шума процесса в одномерном фильтре Калмана постоянной скорости по умолчанию. Этот аргумент влияет на рост литника дорожки.

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

Разрешение диапазона и скорости диапазона, определяемое как двухэлементный вектор строки с положительными значениями. Первый элемент 'Resolution' - разрешение диапазона в метрах. Второй элемент 'Resolution' - разрешение скорости в метрах в секунду. Этот аргумент используется для преобразования прогнозируемого размера затвора трекера в ячейки.

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

Последовательность роста затвора трекера, заданная как вектор положительных целых чисел. Значения в векторе представляют размеры затворов в ячейках, соответствующих N возможным промахам в N обновлениях, где N задается с помощью 'ConfirmationThreshold'. Если 'ConfirmationThreshold' - двухэлементный вектор, затем N - второй элемент вектора.

Если этот аргумент не указан, toccgh генерирует последовательность роста затвора трекера, используя одномерный фильтр Калмана с постоянной скоростью, реализованный как trackingKF объект со следующими параметрами:

  • Время обновления - 0,5 секунды

  • Максимальное целевое ускорение - 10 метров в квадратную секунду

  • Разрешение диапазона - 1 метр

  • Разрешение скорости диапазона - 1 метр в секунду

  • StateTransitionModel[1 dt; 0 1], где dt время обновления

  • StateCovariance[0 0; 0 0], что означает, что начальное состояние известно идеально

  • MeasurementNoise0

  • ProcessNoise[dt^4/4 dt^3/2; dt^3/2 dt^2]*q, где dt время обновления, параметр настройки q является amax^2*dt, и amax - максимальное ускорение. Параметр настройки приведен в уравнении 1.5.2-5 из [2].

Чтобы вычислить размеры затвора, алгоритм:

  1. Использует predict функция для вычисления ковариационной матрицы предсказанной ошибки состояния.

  2. Вычисляет площадь эллипса ошибки, умноженную на δ произведения квадратных корней собственных значений ковариационной матрицы.

  3. Делит область эллипса ошибки на область ячейки, чтобы выразить размер литника в ячейках. Область ячейки является результатом разрешения диапазона и разрешения скорости диапазона.

Если этот аргумент указан, то 'UpdateTime', 'MaxAcceleration', и 'Resolution' аргументы игнорируются.

Пример: [21 39 95 125 155 259 301] определяет последовательность роста решетки трекера, которая происходит в некоторых радиолокационных приложениях.

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

Выходные аргументы

свернуть все

Вероятность истинной целевой дорожки при наличии ложных тревог, возвращаемых в виде матрицы. pdt имеет тот же размер, что и pd.

Вероятность ложной тревоги при наличии целей, возвращаемых в виде матрицы. pft имеет тот же размер, что и pd.

Ожидаемое количество ложных дорожек, возвращаемых в виде матрицы того же размера, что и pd. toccgh вычисляет ожидаемое количество дорожек с помощью

Eft = Pft, ntNc + PftNt,

где Pft, nt - вероятность ложной дорожки при отсутствии целей, - количество ячеек разрешения, указанное в'NumCells', Pft - вероятность ложной дорожки при наличии целей, а Nt - количество целей, указанное в 'NumTargets'.

Подробнее

свернуть все

Алгоритм истории общих вентилей

Алгоритм истории общих ворот (CGH) был разработан Bar-Shalom и сотрудниками и опубликован в [1]. Дополнительные сведения об алгоритме CGH см. в разделе Рабочие характеристики приемника и трекера.

Алгоритм действует в следующих предположениях:

  • Трек - один из следующих:

    1. Обнаружения только из целевых объектов

    2. Обнаружения только по ложным сигналам тревоги

    3. Обнаружения от целей и ложных аварийных сигналов

  • Вероятность более одного ложного аварийного сигнала в вентиле низкая, что справедливо, когда вероятность ложного аварийного сигнала Pfa низкая (Pfa 10-3).

  • Расположение цели в затворе подчиняется равномерному пространственному распределению.

Алгоритм последовательно генерирует вектор gate history λ = [startl, startlt, λ], где:

  • startl - количество шагов времени с момента последнего обнаружения цели или ложного аварийного сигнала.

  • startl - количество временных шагов с момента последнего обнаружения цели.

  • λ - количество обнаружений.

Вектор состояния развивается как цепь Маркова с помощью следующих шагов:

  1. Алгоритм изначально создает дорожку. Только два события могут инициализировать дорожку:

    • Обнаружение цели

    • Ложная тревога

  2. Существует только четыре типа событий, продолжающих трек:

    • A1 - Нет обнаружения

      События типа 1 происходят с вероятностью

      P {A1} = (1 g (startl) g (startlt) Pd) (1 − Pfa) g (startl)

      где Pd - вероятность обнаружения, указанная с помощью pd, Pfa - вероятность ложной тревоги, указанная с помощью pfa, g (startl) - размер затвора на этапе (1), и g (startlt) - размер затвора на этапе (1).

      Примечание

      Чтобы снизить Pd до более низкого эффективного значения, toccgh весит его с соотношением

      g (startl) g (startlt) = Фактический   размер затвора Размер затвора с учетом    времени , прошедшего  с момента последнего обнаружения цели,

      которая предполагает равномерное пространственное распределение местоположения цели в затворе. Размеры литника определяются с помощью 'GateGrowthSequence'.

      События Типа 1 обновляют вектор истории ворот как [ωl, ωlt, λ] ➔ [ωl + 1, ωlt + 1, λ].

    • A2 - Обнаружение цели

      События типа 2 происходят с вероятностью

      P {A2} = g (startl) g (startlt) Pd (1 Pfa) g (startl)

      и обновляют вектор предыстории затвора как [λ l, λ lt, λ] ➔ [1, 1, λ + 1].

    • A3 - Ложная тревога

      События типа 3 происходят с вероятностью

      P {A3} = (1 (1 Pfa) g (

      и обновляют вектор предыстории затвора как [λ l, λ lt, λ] ➔ [1, λ lt + 1, λ + 1].

    • A4 - Обнаружение цели и ложная сигнализация

      События типа 4 происходят с вероятностью

      P {A4} = (1 (1 Pfa) g (

      и заставить дорожку разделиться на ложную дорожку и истинную дорожку:

      • As,2a - Продолжить работу с A3, обновив [λ l, λ lt, λ] ➔ [1, λ lt + 1, λ + 1].

      • As,2b - Продолжить работу с A2, обновив [startl, startlt, λ] ➔ [1, 1, λ + 1].

    На каждом шаге алгоритм умножает каждую вероятность дорожки на вероятность события, которое продолжает дорожку.

  3. Затем процедура суммирует дорожки, которые имеют общий вектор gate history, добавляя их вероятности:

    • Дорожки, продолженные A4, суммируются с дорожками, продолжающими A3 (только одна ложная тревога).

    • Дорожки, продолженные A4, суммируются с дорожками, продолжающими A2 (только обнаружение цели).

    Этот шаг управляет количеством состояний дорожки в цепочке Маркова.

В конце алгоритм вычисляет и присваивает окончательные вероятности:

  • Дорожка цели представляет собой последовательность обнаружений, которая удовлетворяет логике подтверждения M/N и содержит, по меньшей мере, одно обнаружение от цели. Для вычисления вероятности целевой дорожки:

    1. Определите последовательности, удовлетворяющие логике подтверждения в предположении As,2b что A4 дает A2.

    2. Отдельно храните эти вероятности.

  • Чтобы вычислить вероятность ложной дорожки:

    1. Вычислите вероятность целевой дорожки в предположении As,2a что A4 дает A3.

    2. Вычтите эту вероятность из вероятности всех последовательностей обнаружения, которые удовлетворяют логике подтверждения.

Ссылки

[1] Bar‐Shalom, Яаков, Леон Дж. Кампо и Питер Б. Лух. «От рабочей характеристики приемника к рабочей характеристике системы: оценка системы формирования пути». IEEE ® Операции с автоматическим управлением 35, № 2 (февраль 1990 года): 172-79. https://doi.org/10.1109/9.45173.

[2] Бар-Шалом, Яаков, Питер К. Виллетт и Синь Тянь. Отслеживание и слияние данных: Справочник по алгоритмам. Storrs, CT: YBS Publishing, 2011.

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

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

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