fusexcov

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

Синтаксис

[fusedState,fusedCov] = fusexcov(trackState,trackCov)
[fusedState,fusedCov] = fusexcov(trackState,trackCov,crossCovFactor)

Описание

пример

[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 является размерностью состояния.

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

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

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

|

Введенный в R2018b