trackingABF

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

Описание

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

Создание

Описание

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

пример

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

Свойства

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

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

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

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

Если вы хотите фильтр с переменными с плавающей точкой с одинарной точностью, задаете State как векторная переменная с одинарной точностью. Например,

filter = trackingABF('State',single([1;2;3;4]))

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

Типы данных: single | 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] Блэкмен, Сэмюэль С. "Несколько - целевое отслеживание с радарными приложениями". Дедхэм, MA, Artech House, Inc., 1986, 463 p. (1986).

[2] Панель шалом, Яаков, С. Жун Ли и Тиэгэлингэм Кирубараджэн. Оценка с приложениями к отслеживанию и навигации: алгоритмы теории и программное обеспечение. John Wiley & Sons, 2004.

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

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

Смотрите также

Объекты

Введенный в R2020a