В чем разница между сверткой и взаимной корреляцией?


47

Я обнаружил на нескольких сайтах, что свертка и взаимная корреляция похожи (включая тег wiki для свертки), но я нигде не нашел, как они отличаются.

Какая разница между двумя? Можете ли вы сказать, что автокорреляция - это тоже свертка?


2
Может быть интересно отметить, что для четных, реальных функций взаимная корреляция и свертка дают одинаковый результат.

2
Один использует 5-точечную звезду ★, а другой использует 6-точечную звезду ✶.
— эндолит

Ответы:


41

Единственная разница между взаимной корреляцией и сверткой заключается в обращении времени на одном из входов. Дискретная свертка и взаимная корреляция определяются следующим образом (для реальных сигналов; я пренебрег необходимыми конъюгатами, когда сигналы являются сложными):

x[n]∗h[n]=∑k=0∞h[k]x[n−k]

corr(x[n],h[n])=∑k=0∞h[k]x[n+k]

Это подразумевает, что вы можете использовать быстрые алгоритмы свертки, такие как перекрытие-сохранение, для эффективной реализации взаимной корреляции; просто время повернуть вспять один из входных сигналов первым. Автокорреляция идентична вышеописанной, за исключением , поэтому вы можете рассматривать ее так же, как и свертку.h[n]=x[n]

Изменить: так как кто-то еще только что задал повторяющийся вопрос, я был вдохновлен, чтобы добавить еще одну информацию: если вы реализуете корреляцию в частотной области, используя быстрый алгоритм свертки, такой как сохранение с перекрытием, вы можете избежать хлопот времени сначала обратим один из сигналов, вместо этого сопрягая один из сигналов в частотной области. Можно показать, что сопряжение в частотной области эквивалентно обращению во временной области.


12
Этот ответ подходит для реальных сигналов, но Джейсон поднял комплексные сигналы, и в этом случае важно отметить, что это не совсем тот случай, когда «единственная разница заключается в… обращении во времени…». Действительно, комплексные конъюгаты необходимы для одного из двух сигналов в формуле корреляции (какой из них является конъюгированным - вопрос условности - некоторые говорят, что можно, а другие говорят, что мах - но оба называют фрукт овощем). С другой стороны, ни один сигнал не сопряжен в формуле свертки.
— Дилип Сарватэ

1
а что значит что они такие похожие? Используя некоторые глубокие интуитивные слова!
— Диего

Я не понимаю, как это меняет ситуацию, а не смещает ее в противоположную сторону к тому, что полезно?
— Джонатан.

@Jonathan .: обращение происходит потому, что временной индекс внутри суммирования сводится на нет в случае корреляции и свертки. Если вы поработаете над математикой для примера сигнала, вы увидите эффект. k
— Джейсон Р

@JasonR, конечно, это просто приводит к сдвигу в противоположном направлении? Я попытался решить это, и все, что происходит, это то, что вход x смещается от входа h, и все заканчивается как ноль. jsfiddle.net/ua5d1uo2
— Джонатан.

12

Для непрерывной свертки и непрерывной взаимной корреляции Легко показать, что взаимная корреляция оператор является сопряженным оператором оператора свертки .

[Hf](x)≡f(x)∗h(x)≡∫dx′h(x−x′)f(x′)
[Gf](x)≡f(x)⋆h(x)≡∫dx′h∗(x′−x)f(x′)
GH

Кроме того, операция свертки является коммутативной то время как взаимная корреляция не имеет такого свойства.

f(x)∗h(x)=h(x)∗f(x),


5

Будучи студентом, я был вовлечен в ту же проблему, что и вы. Позвольте мне объяснить вам в самых простых словах без математики.

Свертка: используется для свертывания двух функций. Может показаться излишним, но я приведу пример: вы хотите свернуть (в нематематическом термине «объединить») элементарную ячейку (которая может содержать все, что вы хотите: белок, изображение и т. Д.) И структуру решетки. Результатом будет то, что эта элементарная ячейка организована в каждой точке решетки, создавая организованную повторяющуюся структуру элементарной ячейки.

Кросс-корреляция: используется для идентификации ячейки внутри структуры. Например, у вас есть изображение маленького кусочка города и изображение целого города. С помощью взаимной корреляции вы можете определить, где находится эта маленькая картинка внутри всей картины города. Проще говоря, он «сканирует», пока не найдет совпадение. Теперь способ сделать это - найти коэффициент взаимной корреляции, который получается из суммы различных умножений значения, полученного на каждом изображении.

Это очень просто. Если вы хотите понять математику по-дружески, посмотрите это видео. Этот профессор из CALTECH объясняет это лучшим образом, который я когда-либо видел.

https://www.youtube.com/watch?v=MQm6ZP1F6ms

Удачи.


2

Вот визуализация двух в случае, если это помогает с интуицией:

http://www.youtube.com/watch?v=Ma0YONjMZLI


3
Это очень неудачно выбранная иллюстрация различия между этими двумя операциями, потому что создается впечатление, что результат взаимной корреляции является просто обратным по времени результатом свертки.
— Дилип Сарвэйт
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.