trackingABF

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

Описание

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

Создание

Синтаксис

abf = trackingABF
abf = trackingABF(Name,Value)

Описание

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Расстояния между измерениями и предсказанными измерениями
residualНевязка измерения и остаточный шум
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