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)

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

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. https://www2.imm.dtu.dk/pubdb/edoc/imm4932.pdf

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

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

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

| | |