xcov

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

Синтаксис

c = xcov(x,y)
c = xcov(x)
c = xcov(___,maxlag)
c = xcov(___,scaleopt)
[c,lags] = 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)

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

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

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

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

Создайте сигнал, составленный из двух сигналов, которые являются циркулярные переключенный друг от друга 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}')

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

свернуть все

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

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

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

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

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

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

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

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

  • 'biased' — Смещенная оценка перекрестной ковариации.

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

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

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

свернуть все

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

Если x является M × матрица N, то xcov(x) возвращается (2M – 1) × N 2 матрицы с автоковариациями и перекрестными ковариациями столбцов x. Если вы задаете максимальную задержку maxlag, то вывод c имеет размер (2 × maxlag – 1) × N 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, Софокл Дж. Оптимальная обработка сигналов: введение. 2-й выпуск. Нью-Йорк: McGraw-Hill, 1996.

[2] Ларсен, январь “Функции корреляции и спектры мощности”. Ноябрь 2009. http://www2.imm.dtu.dk/pubdb/views/edoc_download.php/4932/pdf/imm4932.pdf

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

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

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

| | |