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''] где ' и '' укажите на производные первого и второго порядка, соответственно.

Пример: [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]

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

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]);

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

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

Введенный в R2018b