В ряде случаев поиск сдвига, доставляющего минимум сумме абсолютных величин разностей, является наилучшей тактикой. Вопрос, насколько это оправдано сравнительно с автокорреляцией, зависит от требований по времени и от того, что есть "искажение". Если оно включает в себя изменение масштаба и сдвиг нуля (т.е.
), при неизвестных a, b, то нужна именно кросскорреляция, избавляющая от влияния этих неизвестных величин, если только сдвиг по времени (и шум), то она несколько излишне обща.
(массивы в данной формуле предполагаются центрированными, иначе надо перед умножением и возведением в квадрат вычесть среднее)
Повторяющийся по числу возможных сдвигов расчёт требует вычислительного ресурса. Если сдвигов много - применение преобразования Фурье может быть оправдано (оно основано на том, что Фурье от свёртки есть произведение преобразований Фурье от свёртываемых), то есть надо вычислить два Фурье на входе, перемножить почленно и вычислить обратное Фурье от произведения. По-видимому, Фурье оправдано при сдвигах, диапазон изменения которых существенно превышает сотню, сдвиги до сотни - лучше считать "в лоб" (впрочем, это сильно зависит). Некоторые методы ускорения расчёта АКФ и ККФ можно найти в книге Рабинера и Шафера "Цифровая обработка речевых сигналов", приложение к гл. 4.
Надо отметить, что возведение в квадрат в ходе вычисления АКФ(ККФ) сильно уязвимо к "выбросам" ("грубым ошибкам"), модуль более устойчив.