Документация Engee

xcorr

Страница в процессе разработки.

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

Библиотека

EngeeDSP

Синтаксис

Вызов функции

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

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

  • r = xcorr(___,maxlag) — ограничивает диапазон задержек от -maxlag до maxlag.

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

Аргументы

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

# x — входной массив
вектор | матрица | многомерный массив

Details

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

Типы данных

Float32, Float64

Поддержка комплексных чисел

Да

# y — входной массив
вектор

Details

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

Типы данных

Float32, Float64

Поддержка комплексных чисел

Да

# maxlag — максимальное отставание
целочисленный скаляр

Details

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

Типы данных

Float32, Float64

# scaleopt — параметр нормализации
'none' (по умолчанию) | 'biased' | 'unbiased' | 'normalized' | 'coeff'

Details

Параметр нормализации, указанный одним из следующих способов:

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

  • 'biased' — смещенная оценка кросс-корреляции:

  • 'unbiased' — несмещенная оценка кросс-корреляции:

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

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

# r — взаимнокорреляционная или автокорреляционная функция
вектор | матрица

Details

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

Если x — матрица размером , то xcorr(x) возвращает матрицу размером с автокорреляциями и кросс-корреляциями столбцов x. Если указано maxlag, то r имеет размер .

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

Дополнительно

Кросс-корреляция и автокорреляция

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

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

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

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

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

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

Литература

  1. Stoica, Petre, and Randolph Moses. Spectral Analysis of Signals. Upper Saddle River, NJ: Prentice Hall, 2005.