xcorr

Взаимная корреляция

Синтаксис

r = xcorr(x,y)
r = xcorr(x)
r = xcorr(___,maxlag)
r = xcorr(___,scaleopt)
[r,lags] = xcorr(___)

Описание

пример

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

пример

r = xcorr(x) возвращает последовательность автокорреляции x. Если x является матрицей, то r является матрицей, столбцы которой содержат последовательности автокорреляции и взаимной корреляции для всех комбинаций столбцов x.

пример

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

пример

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

пример

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

Примеры

свернуть все

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

n = 0:15;
x = 0.84.^n;
y = circshift(x,5);
[c,lags] = xcorr(x,y);
stem(lags,c)

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

n = 0:15;
x = 0.84.^n;
[c,lags] = xcorr(x);
stem(lags,c)

Вычислите и постройте нормированную взаимную корреляцию векторов x и y с пиком единицы, и задайте максимальную задержку 10.

n = 0:15;
x = 0.84.^n;
y = circshift(x,5);
[c,lags] = xcorr(x,y,10,'normalized');
stem(lags,c)

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

свернуть все

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

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

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

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

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

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

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

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

  • 'biased' — Смещенная оценка взаимной корреляции:

    R^xy,смещенный(m)=1NR^xy(m).

  • 'unbiased' — Объективная оценка взаимной корреляции:

    R^xy,несмещенный(m)=1N|m|R^xy(m).

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

    R^xy,коэффициент(m)=1R^xx(0)R^yy(0)R^xy(m).

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

свернуть все

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

Если x является M × матрица N, то xcorr(x) возвращается (2M – 1) × N 2 матрицы с автокорреляциями и взаимными корреляциями столбцов x. Если вы задаете maxlag, то r имеет размер (2 × maxlag – 1) × N 2.

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

R=(Rx1x1Rx1x2Rx1x3Rx2x1Rx2x2Rx2x3Rx3x1Rx3x2Rx3x3).

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

Больше о

свернуть все

Взаимная корреляция и автокорреляция

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

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

Rxy(m)=E{xn+myn*}=E{xnynm*},

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

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

R^xy(m)={n=0Nm1xn+myn,m0,R^yx*(m),m<0.

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

c(m)=R^xy(mN),m=1, 2,,2N1.

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

Ссылки

[1] Маркируйте, Джон Р., Майкл М. Дэниел и Эндрю К. Зингер. Компьютерные исследования в сигналах и системах Используя MATLAB®. 2-й выпуск. Верхний Сэддл-Ривер, NJ: Prentice Hall, 2002.

[2] Stoica, Петр и Рэндольф Моисей. Спектральный анализ сигналов. Верхний Сэддл-Ривер, NJ: Prentice Hall, 2005.

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

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

| | |

Для просмотра документации необходимо авторизоваться на сайте