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) является графиком вероятности целевой дорожки как функции от вероятности ложной дорожки. Постройте кривые TOC для трех различных значений отношения сигнал/шум (ОСШ), принимая логику подтверждения 2/3, и используйте одномерный фильтр Калмана с постоянной скоростью, чтобы сгенерировать последовательность роста затвора трекера.

Вычислите вероятность обнаружения и вероятность ложного предупреждения для значений ОСШ 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) с вероятностью ложного предупреждения.

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

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}.

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

[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 равен длине отношения сигнал/шум (ОСШ) входа к rocsnr или вывод rocpfa.

Примечание

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

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

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

Вероятность ложного предупреждения на камеру (bin), заданная как вектор значений в области значений [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, тесту, который предусматривает, что событие должно происходить не менее M раз во N последовательных обновлениях.

  • Дорожка подтверждается, если в обновлениях N хотя бы M обнаружений.

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

Если этот аргумент задан как скаляр, 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,

где P ft, nt - вероятность ложного трека при отсутствии целей, N c - количество камер разрешения, заданное в 'NumCells'P ft - вероятность ложного трека в присутствии целей, а N t - количество целей, заданное в 'NumTargets'.

Подробнее о

свернуть все

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

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

Алгоритм протекает при этих предположениях:

  • Трек является одним из следующих:

    1. Обнаружения только от целей

    2. Обнаружение только ложных предупреждений

    3. Обнаружения от целей и от ложных предупреждений

  • Вероятность более чем одного ложного предупреждения в воротах низка, что верно, когда вероятность ложного предупреждения P fa низка (P fa ≤ 10–3).

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

Алгоритм последовательно производит вектор истории ворот ω = [ωl, ωlt, λ], где:

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

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

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

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

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

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

    • Ложное предупреждение

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

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

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

      P{A1}=(1g(ωl)g(ωlt)Pd)(1Pfa)g(ωl)

      где P d - вероятность обнаружения, заданная с помощью pdP fa - вероятность ложного предупреждения, заданная с помощью pfa, g (ωl) - размер затвора на шаге ωl, а g (ωlt) - размер затвора на шаге ωlt.

      Примечание

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

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

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

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

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

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

      P{A2}=g(ωl)g(ωlt)Pd(1Pfa)g(ωl)

      и обновите вектор истории ворот как [ωl, ωlt, λ] ➔ [1, 1, λ + 1].

    • A 3 - Ложный сигнал тревоги

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

      P{A3}=(1(1Pfa)g(ωl))(1g(ωl)g(ωlt)Pd)

      и обновите вектор истории ворот как [ωl, ωlt, λ] ➔ [1, ωlt + 1, λ + 1].

    • A 4 - Обнаружение цели и ложное предупреждение

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

      P{A4}=(1(1Pfa)g(ωl))(g(ωl)g(ωlt)Pd)

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

      • A s, 2a - Продолжите с A 3, обновляя [ωl, ωlt, λ] ➔ [1, ωlt + 1, λ + 1].

      • A s, 2b - Продолжите с A 2, обновляя [ωl, ωlt, λ] ➔ [1, 1, λ + 1].

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

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

    • Дорожки, продолженные с A 4, комкуются треками, которые продолжают с A 3 (только один ложный сигнал тревоги).

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

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

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

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

    1. Определите последовательности, которые удовлетворяют логике подтверждения при предположении A s, 2b, что A 4 приводит к A 2.

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

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

    1. Вычислите вероятность целевой дорожки при предположении A s, 2a, которая A 4, приводит A 3.

    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++ с помощью Coder™ MATLAB ®

.
Введенный в R2021a