exponenta event banner

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), для - 10≤m≤10. Нормализуйте последовательность так, чтобы она была единицей с нулевым запаздыванием.

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 = (cs1s1cs1s2cs2s1cs2s1cs22). 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. По умолчанию диапазон запаздывания равен 2N - 1, где N - больше длины входных данных. x и y.

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

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

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

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

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

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

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

свернуть все

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

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

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

c = (cx1x1cx1x2c1x3cx2x1c2x2x2c2x3c3x1c3x3x2c3x3).

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

Подробнее

свернуть все

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

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

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

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

β xy (m) = E {(xn + m мкх) (yn − мку) ∗)},

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

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

cxy (m) ={∑n=0N−m−1 (xn+m−1N∑i=0N−1xi) (yn∗−1N∑i=0N−1yi∗), m≥0,cyx∗ (m), m < 0.

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

c (m) = cxy (m N), m = 1,..., 2N − 1.

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

Ссылки

[1] Orfanidis, Sophocles J. Оптимальная обработка сигналов: введение. 2-е издание. Нью-Йорк: Макгроу-Хилл, 1996.

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

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

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.

См. также

| | |