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)

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

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

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

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

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

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

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

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

свернуть все

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

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

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

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

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

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

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

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

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

    R^xy,biased(m)=1NR^xy(m).

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

    R^xy,unbiased(m)=1N|m|R^xy(m).

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

    R^xy,coeff(m)=1R^xx(0)R^yy(0)R^xy(m).

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

свернуть все

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

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

Например, если 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.

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

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

| | |