exponenta event banner

trackingABF

Альфа-бета-фильтр для отслеживания объектов

Описание

trackingABF объект представляет собой альфа-бета-фильтр, предназначенный для отслеживания объекта, который следует модели линейного движения и имеет модель линейного измерения. Линейное движение определяется постоянной скоростью или постоянным ускорением. Используйте фильтр, чтобы предсказать будущее местоположение объекта, уменьшить шум для обнаруженного местоположения или помочь связать несколько объектов с их дорожками.

Создание

Описание

abf = trackingABF возвращает альфа-бета-фильтр для дискретной временной системы 2-D постоянной скоростью. Модель движения называется '2D Constant Velocity' с состоянием, определенным как [x; vx; y; vy].

пример

abf = trackingABF(Name,Value) задает свойства фильтра с использованием одного или нескольких Name,Value аргументы пары. Все неопределенные свойства принимают значения по умолчанию.

Свойства

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

Модель движения цели, заданная как символьный вектор или строка. Определение 1D, 2D, или 3D определяет размер движения цели. Определение Constant Velocity предполагает, что целевое движение является постоянной скоростью на каждом этапе моделирования. Определение Constant Acceleration предполагает, что движение цели является постоянным ускорением на каждом этапе моделирования.

Типы данных: char | string

Состояние фильтра, указанное как вектор M-элемента с действительным значением. Скалярный вход расширяется до вектора М-элемента. Вектор состояния - это конкатенированные состояния из каждого измерения. Например, если MotionModel имеет значение '3D Constant Acceleration', вектор состояния имеет вид:[x; x'; x''; y; y'; y''; z; z'; z''] где ' и '' указывают производные первого и второго порядка соответственно.

Пример: [200;0.2;150;0.1;0;0.25]

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

Ковариация ошибок состояния, заданная как матрица M-by-M, где M - размер состояния фильтра. Скалярный вход расширяется до матрицы M-by-M. Ковариационная матрица представляет неопределенность в состоянии фильтра.

Пример: eye(6)

Ковариация шума процесса, заданная как скаляр или матрица D-by-D, где D - размерность движения. Например, если MotionModel является '2D Constant Velocity', то D = 2. Скалярный вход расширяется до матрицы D-by-D.

Пример: [20 0.1; 0.1 1]

Ковариация шума измерения, заданная как скаляр или матрица D-by-D, где D - размерность движения. Например, если MotionModel является '2D Constant Velocity', то D = 2. Скалярный вход расширяется до матрицы M-by-M.

Пример: [20 0.1; 0.1 1]

Коэффициенты фильтра альфа-бета, заданные как скалярный вектор или вектор строки. Скалярный вход расширяется до вектора строки. При указании постоянной скорости в MotionModel свойство, коэффициенты [alpha beta]. Если указать постоянное ускорение в MotionModel свойство, коэффициенты [alpha beta gamma].

Пример: [20 0.1]

Включить сглаживание состояния, указанное как false или true. Установка для этого свойства значения true требуется лицензия Sensor Fusion and Tracking Toolbox™. Если указано как true, вы можете:

  • Используйте smooth функция, предоставляемая в панели инструментов Sensor Fusion и Tracking Toolbox, для сглаживания оценок состояния на предыдущих шагах. Внутри фильтра сохраняются результаты предыдущих шагов для обеспечения возможности обратного сглаживания.

  • Укажите максимальное количество шагов сглаживания с помощью MaxNumSmoothingSteps свойства фильтра отслеживания.

Максимальное количество шагов обратного сглаживания, указанное как положительное целое число.

Зависимости

Чтобы включить это свойство, установите значение EnableSmoothing свойство для true.

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

predictКовариация состояния и ошибки оценки состояния фильтра слежения
correctКорректная ковариация ошибок оценки состояния и состояния с помощью фильтра слежения
correctjpdaПравильная ковариация ошибок оценки состояния и состояния с использованием фильтра отслеживания и JPDA
distanceРасстояния между текущими и прогнозируемыми измерениями фильтра слежения
likelihoodВероятность измерения от фильтра слежения
smoothОценки плавного состояния фильтра слежения в обратном направлении
cloneСоздать повторяющийся фильтр отслеживания

Примеры

свернуть все

В этом примере показано, как создать и запустить trackingABF фильтр. Позвоните в predict и correct функции для отслеживания объекта и коррекции оценки состояния на основе измерений.

Создайте фильтр. Укажите начальное состояние.

state = [1;2;3;4];
abf = trackingABF('State',state);

Звонить predict получить предсказанное состояние и ковариацию фильтра. Используйте 0,5-секундный временной шаг.

[xPred,pPred] = predict(abf, 0.5);

Звонить correct с заданным измерением.

meas = [1;1];
[xCorr,pCorr] = correct(abf, meas);

Продолжайте прогнозировать состояние фильтра. При необходимости укажите требуемый временной шаг в секундах.

[xPred,pPred] = predict(abf);         % Predict over 1 second
[xPred,pPred] = predict(abf,2);       % Predict over 2 seconds

Измените коэффициенты фильтра и повторите корректировку с помощью нового измерения.

abf.Coefficients = [0.4 0.2];
[xCorr,pCorr] = correct(abf,[8;14]);

Ссылки

[1] Блэкман, Сэмюэл С. «Сопровождение нескольких целей с применением радаров». Dedham, MA, Artech House, Inc., 1986, 463 с. (1986).

[2] Бар-Шалом, Яаков, X. Ронг Ли и Тиагалингам Кирубараджан. Оценка с приложениями для слежения и навигации: алгоритмы теории и программное обеспечение. John Wiley & Sons, 2004.

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

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

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