fusexcov

Сплав ковариации с помощью перекрестной ковариации

Описание

пример

[fusedState,fusedCov] = fusexcov(trackState,trackCov) плавит состояния дорожки в trackState и их соответствующие ковариационные матрицы trackCov. Функция оценивает сплавленное состояние и ковариацию в Байесовой среде, в которой взаимная корреляция между дорожками неизвестна.

пример

[fusedState,fusedCov] = fusexcov(trackState,trackCov,crossCovFactor) задает фактор перекрестной ковариации для эффективного коэффициента корреляции при вычислении перекрестной ковариации.

Примеры

свернуть все

Задайте вектор состояния дорожек.

x(:,1) = [1;2;0];
x(:,2) = [2;2;0];
x(:,3) = [2;3;0];

Задайте ковариационные матрицы дорожек.

p(:,:,1) = [10 5 0; 5 10 0;0 0 1];
p(:,:,2) = [10 -5 0; -5 10 0;0 0 1];
p(:,:,3) = [12 9 0; 9 12 0;0 0 1];

Оцените сплавленный вектор состояния и его ковариацию.

[fusedState,fusedCov] = fusexcov(x,p);

Используйте trackPlotter построить результаты.

tPlotter = theaterPlot('XLim',[-10 10],'YLim',[-10 10],'ZLim',[-10 10]);
tPlotter1 = trackPlotter(tPlotter, ...
    'DisplayName','Input Tracks','MarkerEdgeColor',[0.000 0.447 0.741]);
tPlotter2 = trackPlotter(tPlotter, ...
    'DisplayName','Fused Track','MarkerEdgeColor',[0.850 0.325 0.098]);
plotTrack(tPlotter1,x',p)
plotTrack(tPlotter2, fusedState', fusedCov)
title('Cross-Covariance Fusion')

Задайте вектор состояния дорожек.

x(:,1) = [1;2;0];
x(:,2) = [2;2;0];
x(:,3) = [2;3;0];

Задайте ковариационные матрицы дорожек.

p(:,:,1) = [10 5 0; 5 10 0;0 0 1];
p(:,:,2) = [10 -5 0; -5 10 0;0 0 1];
p(:,:,3) = [12 9 0; 9 12 0;0 0 1];

Оцените сплавленный вектор состояния и его ковариацию. Задайте фактор перекрестной ковариации 0.5.

[fusedState,fusedCov] = fusexcov(x,p,0.5);

Используйте trackPlotter построить результаты.

tPlotter = theaterPlot('XLim',[-10 10],'YLim',[-10 10],'ZLim',[-10 10]);
tPlotter1 = trackPlotter(tPlotter, ...
    'DisplayName','Input Tracks','MarkerEdgeColor',[0.000 0.447 0.741]);
tPlotter2 = trackPlotter(tPlotter, ...
    'DisplayName','Fused Track','MarkerEdgeColor',[0.850 0.325 0.098]);
plotTrack(tPlotter1,x',p)
plotTrack(tPlotter2, fusedState', fusedCov)
title('Cross-Covariance Fusion')

Входные параметры

свернуть все

Отследите состояния в виде N-by-M матрица, где N является размерностью состояния, и M является количеством дорожек.

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

Отследите ковариационные матрицы в виде N-by-N-by-M массив, где N является размерностью состояния, и M является количеством дорожек.

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

Фактор перекрестной ковариации в виде скаляра.

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

Выходные аргументы

свернуть все

Сплавленное состояние, возвращенное как N-by-1 вектор, где N является размерностью состояния.

Сплавленная ковариационная матрица, возвращенная как N-by-N матрица, где N является размерностью состояния.

Ссылки

[1] Панель шалом, Яаков и Сяо-Жун Ли. Отслеживание мультицелевого Мультидатчика: принципы и методы. Издание 19. Сторрз, CT: YBs, 1995.

[2] Вэн, Чжиюань и Петэр М. Djurić. "Байесовский подход к оценке ковариации и сплаву данных". В 2 012 Продолжениях 20-й европейской Конференции по Обработке сигналов, стр 2352-2356. IEEE, 2012.

[3] Matzka, Штефан и Ричард Алтендорфер. "Сравнение алгоритмов сплава от дорожки к дорожке для автомобильного сплава датчика". В Fusion Мультидатчика и Интегрировании для Интеллектуальных Систем, стр 69-81. Спрингер, Берлин, Гейдельберг, 2009.

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

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

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

|

Введенный в R2018b