Я пытаюсь понять разницу между сверткой и взаимной корреляцией. Я прочитал понял этот ответ. Я также понимаю картину ниже.
Но с точки зрения обработки сигналов (поле, о котором я мало знаю…), учитывая два сигнала (или, может быть, сигнал и фильтр?), Когда мы будем использовать свертку и когда мы предпочтем использовать взаимную корреляцию, я значит, когда в реальной жизни анализируем ли мы предпочтение свертки, а когда - взаимной корреляции.
Кажется, что эти два термина очень полезны, так что же это за польза?
* Кросс-корреляция здесь должна читаться g*f
вместоf*g
Два термина свертка и взаимная корреляция реализованы очень похожим образом в DSP.
Какой вы используете, зависит от приложения.
Если вы выполняете линейную, не зависящую от времени операцию фильтрации, вы сворачиваете сигнал с импульсной характеристикой системы.
Если вы «измеряете сходство» между двумя сигналами, вы взаимно коррелируете их.
Два термина объединяются, когда вы пытаетесь создать соответствующий фильтр .
Здесь вы пытаетесь решить, содержит ли данный сигнал известный «импульс» (сигнал), . Один из способов сделать это - свернуть данный сигнал с обращением во времени известного импульса, : теперь вы используете свертку для выполнения взаимной корреляции данного сигнала с известным импульсом.s[n] p[n] s p
Примечание стороны
Термин «взаимная корреляция» (для некоторых) неправильно используется в области DSP.
Для статистиков корреляция - это значение, которое измеряет, насколько близки две переменные и должны быть между и .−1 +1
Как вы можете видеть из записи в Википедии о взаимной корреляции , используется версия DSP, и они заявляют:
Проблема с определением DSP: состоит в том, что эта мера "подобия" зависит от энергии в каждом сигнале.
источник
При обработке сигнала выполняется свертка для получения выходных данных системы LTI. Корреляция (авто или кросс-корреляция) обычно рассчитывается для последующего использования для некоторых других вычислений.
Вы должны быть осторожны, чтобы не перепутать корреляцию, ковариацию и коэффициент корреляции. Корреляция не обязательно должна быть между -1 и 1. Коэффициент корреляции ( https://en.wikipedia.org/wiki/Pearson_product-moment_correlation_coefficient ) падает между -1 и 1, потому что он масштабируется двумя дисперсиями случайных величин , Мы должны помнить, что реальная операция, выполняемая в статистической обработке сигналов для анализа того, насколько связаны две случайные величины, это «ковариация», а не корреляция. Но для большинства применений, где сигнал захватывается датчиком и преобразуется в напряжение и оцифровывается с помощью АЦП, можно предположить, что сигнал имеет нулевое среднее значение, следовательно, корреляция равна ковариации.
источник
@MathBgu Я прочитал все приведенные выше ответы, все они очень информативны, и я хотел бы добавить одну вещь для вашего лучшего понимания, рассматривая формулу свертки следующим образом
и для взаимной корреляции
мы узнаем, что с точки зрения уравнения единственное отличие состоит в том, что в свертке перед выполнением произведения скользящей точки мы переворачиваем сигнал по оси y, т. е. меняем на , тогда как взаимная корреляция - это просто скольжение скалярное произведение двух сигналов.(t) (−t)
Мы используем свертку, чтобы получить вывод / результат системы, которая имеет два блока / сигнала, и они находятся непосредственно рядом друг с другом (последовательно) во временной области.
источник
Есть много тонкости между значениями свертки и корреляции. Оба относятся к более широкой идее о внутренних произведениях и проекциях в линейной алгебре, то есть проецируют один вектор на другой, чтобы определить, насколько он «силен» в направлении последнего.
Эта идея распространяется на область нейронных сетей, где мы проецируем выборку данных на каждую строку матрицы, чтобы определить, насколько хорошо она «вписывается» в эту строку. Каждая строка представляет определенный класс объектов. Например, каждая строка может классифицировать букву в алфавите для распознавания рукописного ввода. Обычно каждая строка называется нейроном, но ее также можно назвать согласованным фильтром.
По сути, мы измеряем, насколько похожи две вещи, или пытаемся найти какую-то особенность в чем-то, например, сигнал или изображение. Например, когда вы свертываете сигнал с помощью полосового фильтра, вы пытаетесь выяснить, какой контент у него в этой полосе. Когда вы коррелируете сигнал с синусоидой, например DFT, вы ищете силу частоты синусоиды в сигнале. Обратите внимание, что в последнем случае корреляция не уменьшается, но вы все еще «коррелируете» две вещи. Вы используете внутренний продукт для проецирования сигнала на синусоиду.
Так в чем же разница? Хорошо, учтите, что при свертке сигнал обратный по отношению к фильтру. С изменяющимся во времени сигналом это приводит к тому, что данные коррелируются в порядке их поступления в фильтр. На мгновение давайте определим корреляцию просто как точечный продукт, т.е. проецируем одно на другое. Итак, в начале мы коррелируем первую часть сигнала с первой частью фильтра. Когда сигнал продолжается через фильтр, корреляция становится более полной. Обратите внимание, что каждый элемент в сигнале умножается только на тот элемент фильтра, который он «касается» в данный момент времени.
Итак, с помощью свертки мы в некотором смысле коррелируем, но мы также пытаемся сохранить порядок во времени, когда происходят изменения, когда сигнал взаимодействует с системой. Однако, если фильтр симметричный, как это часто бывает, это не имеет значения. Свертка и корреляция дадут одинаковые результаты.
С помощью корреляции мы просто сравниваем два сигнала, а не пытаемся сохранить порядок событий. Чтобы сравнить их, мы хотим, чтобы они смотрели в одном направлении, то есть выстроились в линию. Мы накладываем один сигнал поверх другого, чтобы мы могли проверить их сходство в каждом временном окне, если они не совпадают по фазе или мы ищем меньший сигнал в большем.
В обработке изображений все немного по-другому. Нам нет дела до времени. Однако свертка все еще обладает некоторыми полезными математическими свойствами . Однако, если вы пытаетесь сопоставить части большего изображения с меньшим (то есть с согласованной фильтрацией), вам не захочется переворачивать их, потому что тогда функции не будут выстраиваться. Если, конечно, фильтр является симметричным. В обработке изображений корреляция и свертка иногда используются взаимозаменяемо, особенно с нейронными сетями . Очевидно, что время все еще актуально, если изображение является абстрактным представлением двумерных данных, где одним измерением является время - например, спектрограмма.
Итак, в итоге, и корреляция, и свертка - это скользящие внутренние продукты, используемые для проецирования одной вещи на другую, поскольку они изменяются в пространстве или времени. Свертка используется, когда важен порядок, и обычно используется для преобразования данных. Корреляция обычно используется, чтобы найти меньшую вещь внутри большей, то есть для соответствия. Если хотя бы одна из двух «вещей» симметрична, то не имеет значения, какую вы используете.
источник
Оставьте обработку сигналов в стороне, если вы просто попытаетесь понять, что происходит в Convolution и Correlation, обе эти операции очень похожи. Единственная разница заключается в Convolution, одна из переменных инвертируется (переворачивается) перед выполнением накопления продукта. Смотрите , что я не использую слово сигнала в любом месте выше. Я говорю только с точки зрения выполненных операций.
Теперь давайте перейдем к обработке сигналов.
Операция свертки используется для расчета выходных данных системы с линейным временным инвариантом (система LTI) с учетом входного сигнала ( x ) и импульсного отклика системы ( h ). Чтобы понять, почему только операция Convolution используется для получения выходных данных системы LTI, есть большой вывод. Пожалуйста, найдите вывод здесь.
http://www.rctn.org/bruno/npb163/lti-conv/lti-convolution.html
Операция корреляции используется для нахождения сходства между двумя сигналами x и y. Чем больше значение корреляции, тем больше сходство двух сигналов.
Понять разницу здесь,
Свертка -> между сигналом и системой (фильтр)
Корреляция -> между двумя сигналами
Таким образом, с точки зрения анализа сигналов, операция Convolution не используется. Только корреляция используется с точки зрения анализа сигнала. Принимая во внимание, что свертка используется с точки зрения системного анализа.
Лучший способ понять операции свертки и корреляции - это понять, что происходит, когда две свертки и корреляция выполняются между двумя непрерывными переменными, как показано на диаграммах в вопросе.
источник