trackingABF

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

Описание

The 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 -элемент с реальным значением. Скалярный вход расширен до вектора M-element. Вектор состояния является конкатенированными состояниями от каждой размерности. Для примера, если 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 and Tracking Toolbox), предусмотренная в Sensor Fusion and Tracking Toolbox, для сглаживания оценок состояния на предыдущих шагах. Внутри фильтр сохраняет результаты предыдущих шагов, чтобы позволить сглаживание назад.

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

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

Зависимости

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

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

predictПредсказать состояние и ковариацию ошибки расчета состояния отслеживающего фильтра
correctПравильное состояние и ковариация ошибки оценки состояния с помощью отслеживающего фильтра
correctjpdaПравильное состояние и ковариация ошибки оценки состояния с помощью отслеживающего фильтра и JPDA
distanceРасстояния между током и предсказанными измерениями отслеживающего фильтра
likelihoodВероятность измерения с отслеживающего фильтра
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 p. (1986).

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

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

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

.

См. также

Объекты

Введенный в R2021a