distance

Расстояния между током и предсказанными измерениями отслеживающего фильтра

Описание

dist = distance(filter,zmeas) вычисляет нормированные расстояния между одним или несколькими текущими измерениями объекта, zmeasи соответствующие предсказанные измерения, вычисленные входы filter. Используйте эту функцию для назначения измерений трекам.

Этот расчет расстояния учитывает ковариацию предсказанного состояния и шум измерения.

dist = distance(filter,zmeas,measparams) задает дополнительные параметры, которые используются MeasurementFcn фильтра.

Если фильтр является trackingKF или trackingABF объект, тогда вы не можете использовать этот синтаксис.

Входные параметры

свернуть все

Фильтр для отслеживания объектов, заданный как один из следующих объектов:

  • trackingKF - Линейный фильтр Калмана

  • trackingEKF - Расширенный фильтр Калмана

  • trackingUKF - Сигма-точечный фильтр Калмана

  • trackingABF - Альфа-бета фильтр

Измерения отслеживаемых объектов, заданные как матрица. Каждая строка матрицы содержит вектор измерения.

Параметры для функции измерения, заданные как массив ячеек. Параметры передаются в функцию измерения, которая задана в MeasurementFcn свойство filter. Если filter является trackingKF или trackingABF объект, тогда вы не можете задать measparams.

Предположим, вы установите MeasurementFcn свойство filter на @cameasи затем установите следующие значения:

measurementParams = {frame,sensorpos,sensorpos}

distance функция внутренне вызывает следующее:

cameas(state,frame,sensorpos,sensorvel)

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

свернуть все

Расстояния между измерениями, возвращенные как вектор-строка. Каждый элемент соответствует расстоянию между предсказанным измерением в вход filter и измерение, содержащееся в строке zmeas.

Алгоритмы

distance функция вычисляет нормированное расстояние между объектом фильтра и набором измерений. Этот расчет расстояния является вариантом расстояния Махаланобиса и учитывает невязку (различие между измерением объекта и значением, предсказанным фильтром), остаточную ковариацию и шум измерения.

Рассмотрим расширенный фильтр Калмана с x состояний и z измерения. Уравнения, используемые для вычисления невязки, z res и остаточной ковариации, S, являются

z res = z - h (x),

S = R + ПВДT,

где:

  • h - функция измерения, заданная в MeasurementFcn свойство фильтра.

  • R - измерение шумовая ковариация, заданная в MeasurementNoise свойство фильтра.

  • H является якобианом функции измерения, заданной в MeasurementJacobianFcn свойство фильтра.

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

Уравнение для расстояния Махаланобиса, d2является

d2 = z resTS–1z,

Функция расстояния вычисляет нормированное расстояние, d n, как

d n = d2 + журнал (|<reservedrangesplaceholder0>|),

где журнал (|<reservedrangesplaceholder1>|) - логарифм определяющего остаточных ковариационных S.

Термин log (|<reservedrangesplaceholder3>|) учитывает треки, которые являются coasted, что означает, что они предсказаны, но не имели обновления в течение длительного времени. Дорожки в этом состоянии могут S очень большими, что приводит к меньшему расстоянию Махаланобиса относительно обновленных дорожек. Это различие в значениях расстояния может привести к тому, что покрытые дорожки неправильно берут обнаружения из обновленных дорожек. Термин log (|<reservedrangesplaceholder0>|) компенсирует этот эффект, штрафуя такие треки, предсказания которых очень неопределенны.

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

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

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