Convolutions — методы подобия

# DSP.convFunction

conv(u,v)

Свертка двух массивов. Используется либо свертка на основе БПФ, либо перекрытие с сохранением в зависимости от размера входных данных. u и v могут быть N-мерными массивами с произвольными смещениями индексов, но их оси должны быть UnitRange.

conv(u,v,A)

Двухмерная свертка матрицы A с двухмерным разделяющимся ядром, создаваемым на основе векторов u и v. Используется алгоритм двухмерного БПФ.

# DSP.deconvFunction

deconv(b,a) -> c

Создает вектор c такой, что b = conv(a,c) + r. Равносильно полиномиальному делению.

# DSP.xcorrFunction

xcorr(u,v; padmode = :none)

Вычисляет взаимную корреляцию двух векторов, определяя подобие u и v при разных смещениях v. При запаздывании u относительно v результат сдвигается вправо.

Размер выходных данных зависит от именованного аргумента padmode: при padmode = :none результат будет иметь длину length(u) + length(v) - 1, как и в случае с conv. При padmode = :longest более короткий из двух аргументов дополняется так, чтобы они были равной длины. Результат будет иметь длину 2*max(length(u), length(v))-1, причем условие нулевого запаздывания будет находиться в центре.