xcorr

Функция расчета взаимной и автокорреляции

Синтаксис:

z = xcorr(x,y);

Аргументы:

Имя Тип данных Описание
x, y array Массив-строка (вектор) действительных чисел

Описание:

xcorr – расcчитывает значение взаимной корреляционной функции между векторами x и y. Если размерность векторов отличается, то вектор меньшей размерности будет дополнен нулями до размерности второго вектора. Если в качестве аргументов задать один и тот же массив, то функция будет возвращать значение автокорреляционной функции заданного массива.

Результат:

Имя Тип данных Описание
z array

Функция возвращает массив значений взаимной корреляционной функции аргументов x и y. Размерность выходного массива равна count×2-1, где count - наибольшая размерность входных аргументов.

Пример:

count = 16;              // задаем число элементов
x = vector(count);       // объявляем массив х
n = 0..(count-1);        
for (i=1, cols(n))
  x[i] = 0.7^n[i];       // заполняем массив х
y = circshift(x,5);      // массив y создаем смещением массива х
z1 = xcorr(x,y);	 // считаем взаимную корреляцию
z2 = xcorr(x,x);	 // считаем автокорреляцию вектора х

lags = vector(count*2-1);     // создаем и заполняем массив смещений для построения графиков корреляционных функций
for (i=-1*(count-1), count-1) 
  lags[i+count] = i;

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

Графики зависимости z1 и z2 от смещения (lags) представляют собой графики взаимной корреляционной функции массивов x и y, а также автокорреляционной функции массива x соответственно. Наибольший всплеск корреляции возникает при значении смещения, при котором входные массивы точно совпадают: для z1 это значение lags равное -5, а для z2 - 0.

Рисунок 1. Взаимная корреляционная функция массивов X и Y

Рисунок 2. Автокорреляционная функция массива X

Дополнительные материалы

Нет.