xcov

Перекрестная ковариация

Описание

пример

c = xcov(x,y) возвращает перекрестную ковариацию двух последовательностей в дискретном времени. Перекрестная ковариация измеряет сходство между вектором x и сдвинутые (отстающие) копии вектора y как функцию задержки. Если x и y имеют разную длину, функция добавляет нули к концу более короткого вектора, так что она имеет ту же длину, что и другой.

пример

c = xcov(x) возвращает автоковариационную последовательность x. Если x является матрицей, тогда c - матрица, столбцы которой содержат автоковариационную и перекрестно-ковариационную последовательности для всех комбинаций столбцов x.

пример

c = xcov(___,maxlag) устанавливает область значений задержек от -maxlag на maxlag для любого из предыдущих синтаксисов.

пример

c = xcov(___,scaleopt) также задает опцию нормализации для перекрестной ковариации или автоковариации. Любая опция кроме 'none' (по умолчанию) требует входов x и y иметь ту же длину.

пример

[c,lags] = xcov(___) также возвращает лаги, при которых вычисляются ковариации.

Примеры

свернуть все

Создайте вектор случайных чисел x и вектор y что равно x сдвинут на 3 элемента вправо. Вычислите и постройте график предполагаемой перекрестной ковариации x и y. Самый большой всплеск происходит при значении задержки, когда элементы x и y точно соответствовать (-3).

rng default
x = rand(20,1);
y = circshift(x,3);
[c,lags] = xcov(x,y);
stem(lags,c)

Figure contains an axes. The axes contains an object of type stem.

Создайте случайный вектор 20 на 1, затем вычислите и постройте график предполагаемой автоковариации. Самый большой всплеск происходит при нулевой задержке, где вектор в точности равен себе.

rng default
x = rand(20,1);
[c,lags] = xcov(x);
stem(lags,c)

Figure contains an axes. The axes contains an object of type stem.

Вычислите и постройте график предполагаемой автоковариации белого Гауссова шума, c(m), для -10m10. Нормализуйте последовательность так, чтобы она была единицей с нулевой задержкой.

rng default
x = randn(1000,1);
maxlag = 10;
[c,lags] = xcov(x,maxlag,'normalized');
stem(lags,c)

Figure contains an axes. The axes contains an object of type stem.

Создайте сигнал, состоящий из двух сигналов, которые круто смещены друг от друга на 50 выборки.

rng default
shft = 50;
s1 = rand(150,1);
s2 = circshift(s1,[shft 0]);
x = [s1 s2];

Вычислите и постройте смещенные оценки автоковариационных и взаимных перекрестных ковариационных последовательностей. Выходная матрица c организован как четыре векторов-столбцов, такие что c=(cs1s1cs1s2cs2s1cs2s2). cs1s2 имеет максимумы на -50 и + 100 иcs2s1 имеет максимумы в + 50 и -100 в результате кругового сдвига.

[c,lags] = xcov(x,'biased');
plot(lags,c)
legend('c_{s_1s_1}','c_{s_1s_2}','c_{s_2s_1}','c_{s_2s_2}')

Figure contains an axes. The axes contains 4 objects of type line. These objects represent c_{s_1s_1}, c_{s_1s_2}, c_{s_2s_1}, c_{s_2s_2}.

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

свернуть все

Входной массив, заданный как векторный, матричный или многомерный массив. Если x является многомерным массивом, затем xcov выполняет операции по столбцам во всех размерностях и возвращает каждую автоковариацию и перекрестную ковариацию в качестве столбцов матрицы.

Типы данных: single | double
Поддержка комплексного числа: Да

Входной массив, заданный как вектор.

Типы данных: single | double
Поддержка комплексного числа: Да

Максимальная задержка, заданная как целочисленный скаляр. Если вы задаете maxlag, возвращенная перекрестная ковариационная последовательность находится в областях значений от -maxlag на maxlag. По умолчанию область значений задержки равна 2  N - 1, где N является большим из длин входов x и y.

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

Опция нормализации, заданная как один из следующих.

  • 'none' - Необработанная, немасштабированная перекрестная ковариация. 'none' является единственной допустимой опцией при входах x и y имеют разную длину.

  • 'biased' - Предвзятая оценка перекрестной ковариации.

  • 'unbiased' - Объективная оценка перекрестной ковариации.

  • 'normalized' или 'coeff' - Нормализует последовательность так, чтобы автоковариации при нулевой задержке равнялись 1.

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

свернуть все

Перекрестная ковариация или автоковариация, возвращенная в виде вектора или матрицы.

Если x является M × N матрицей, затем xcov(x) возвращает a (2  M - 1 ) × N2 матрица с автоковариациями и перекрестными ковариациями столбцов x. Если вы задаете максимальную задержку maxlag, затем выход c имеет размер (2 × maxlag + 1)  × <reservedrangesplaceholder0>2.

Для примера, если S имеет три столбца, S=(x1x2x3), затем результат C = xcov(S) организовано как

c=(cx1x1cx1x2cx1x3cx2x1cx2x2cx2x3cx3x1cx3x2cx3x3).

Индексы задержки, возвращенные как вектор.

Подробнее о

свернуть все

Перекрестная ковариация и автоковариация

xcov вычисляет среднее значение его входов, вычитает среднее значение, а затем вызывает xcorr.

Результат xcov может быть интерпретирована как оценка ковариации между двумя случайными последовательностями или как детерминированная ковариация между двумя детерминированными сигналами.

Истинная перекрестная ковариационная последовательность двух совместно стационарных случайных процессов, xn и yn, является перекрестной корреляцией средних удаленных последовательностей,

ϕxy(m)=E{(xn+mμx)(ynμy))},

где μx и μy являются средними значениями двух стационарных случайных процессов, звездочка обозначает комплексное сопряжение, и E является оператором ожидаемого значения. xcov может только оценить последовательность, потому что на практике доступен только конечный сегмент одной реализации случайного процесса бесконечной длины.

По умолчанию xcov вычисляет необработанные ковариации без нормализации:

cxy(m)={n=0Nm1(xn+m1Ni=0N1xi)(yn1Ni=0N1yi),m0,cyx(m),m<0.

Вектор выхода c имеет элементы, заданные как

c(m)=cxy(mN),m=1,,2N1.

Ковариационная функция требует нормализации, чтобы правильно оценить функцию. Нормализацией корреляции можно управлять при помощи входного параметра scaleopt.

Ссылки

[1] Orfanidis, Sophocles J. Optimum Signal Processing: An Introduction. 2-е издание. Нью-Йорк: McGraw-Hill, 1996.

[2] Ларсен, Ян. «Корреляционные функции и спектры степени». Ноябрь 2009 года. https://www2.imm.dtu.dk/pubdb/edoc/imm4932.pdf

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

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

.

См. также

| | |