Різниця між згорткою і перехресною кореляцією з точки зору аналізу сигналів


33

Я намагаюся зрозуміти різницю між згорткою та перехресною кореляцією. Я прочитав зрозумілу цю відповідь. Я також розумію малюнок нижче.

Але, що стосується обробки сигналів, (поле, про яке я мало знаю ..), враховуючи два сигнали (а може, сигнал і фільтр?), Коли ми будемо використовувати згортку і коли будемо віддавати перевагу перехресній кореляції, я означає, коли в аналізі реального життя будемо віддавати перевагу згортці, а коли - перехресній кореляції.

Здається, що ці два терміни мають багато користі, тож, що це за використання?

Коволюція

* Перехресна кореляція тут повинна читатися g*fзамістьf*g

Відповіді:


24

При обробці сигналу поширені дві проблеми:

  • Який вихід цього фільтра, коли його вхід дорівнює ? Відповідь дається x ( t ) h ( t ) , де h ( t ) - сигнал, який називається «імпульсною характеристикою» фільтра, а - операція згортання.x(t)x(t)h(t)h(t)

  • З огляду на шумний сигнал , чи є сигнал x ( t ) якось присутній у y ( t ) ? Іншими словами, чи є y ( t ) форми x ( t ) + n ( t ) , де n ( t ) - шум? Відповідь можна знайти за співвідношенням y ( t ) і x ( t ) . Якщо кореляція велика для даної затримки часуy(t)x(t)y(t)y(t)x(t)+n(t)n(t)y(t)x(t) , то ми можемо впевнено сказати, що відповідь - так.τ

Зверніть увагу, що коли сигнали є симетричними, згортка та перехресна кореляція стають однією і тією ж операцією; цей випадок також дуже поширений у деяких областях ДСП.


Зрозумів. Дякую за вашу чітку та яскраву відповідь!
MathBgu

3
що мені подобається в поясненні імпульсного відгуку - це ти справді отримуєш інтуїцію, чому згортання "зворотно". У дискретному відношенні поточний вихід є поточним входом x імпульсною характеристикою в момент часу 0 + залишковий вихід з попередніх входів імпульсних відповідей (вхід n-1 * імпульс 1 + вхід n-2 * імпульс 2 і так далі).
Жан-Фредерік ПЛАНТ

@ Jean-FredericPLANTE так, це хороший спосіб пояснити це.
MBaz

Ця відповідь із коментарем @ Jean-FredericPLANTE робить її більш розумною.
tpk

12

Два терміни згортання та перехресне співвідношення реалізуються дуже схожим чином у DSP.

Який з них ви використовуєте, залежить від програми.

Якщо ви виконуєте операцію фільтрації лінійної, інваріантної за часом, ви з'єднуєте сигнал із імпульсною відповіддю системи.

Якщо ви "вимірюєте схожість" між двома сигналами, то ви перехресно співвідносите їх.

Два терміни поєднуються, коли ви намагаєтеся створити відповідні фільтри .

Тут ви намагаєтеся вирішити, чи містить даний сигнал відомий "імпульс" (сигнал), p [ n ]s[n]p[n] . Один із способів зробити це - згортання даного сигналу, з обертанням часу відомого імпульсу, p : ви зараз використовуєте згортку для виконання перехресної кореляції даного сигналу з відомим імпульсом.sp


Бічна примітка

Термін "перехресна кореляція" (для деяких) неправильно використовується у сфері DSP.

Для статистиків співвідношення - це величина, яка вимірює, наскільки близькі дві змінні і повинні бути між ними і + 1 .1+1

Як видно з запису Вікіпедії про перехресну кореляцію , використовується версія DSP, і вони зазначають:

перехресна кореляція - це міра схожості двох рядів як функція відставання одного відносно іншого.

Проблема з визначенням DSP: полягає в тому, що ця міра «подібності» залежить від енергії кожного сигналу.

mx[n]y[n+m]

1
Це надзвичайно корисно для мене. Дякую!
MathBgu

3

При обробці сигналів згортка виконується для отримання виходу системи LTI. Кореляцію (автоматичну або перехресну кореляцію), як правило, обчислюють для подальшого використання для виконання деяких інших розрахунків

Ви повинні бути обережними, щоб не плутати коефіцієнт кореляції, коваріації та коефіцієнта кореляції. Кореляція не обов'язково повинна бути від -1 до 1. Коефіцієнт кореляції ( https://en.wikipedia.org/wiki/Pearson_product-moment_correlation_coefficient ) падає між -1 і 1, оскільки він масштабується двома випадковими варіаціями змінних . Що ми повинні пам’ятати, це те, що реальна операція, яка повинна бути виконана при статистичній обробці сигналу, щоб проаналізувати, наскільки пов'язані дві випадкові величини, - це «коваріація», а не кореляція. Але для більшості застосувань, коли сигнал приймається датчиком і перетворюється на напругу і оцифровується за допомогою АЦП, можна вважати, що сигнал є нульовим середнім, отже, кореляція дорівнює коваріації.


Я буду дивитись у цьому посиланні. Дякую!
MathBgu

3

@MathBgu Я прочитав усі наведені вище відповіді, всі вони дуже інформативні, одне я хочу додати для вашого кращого розуміння, розглядаючи формулу згортки наступним чином

f(x)g(x)=f(τ)g(xτ)dτ

і для перехресного співвідношення

(fg)(t)=deff(τ)g(t+τ)dτ,

we come to know that equation-wise the only difference is that, in convolution, before doing sliding dot product we flip the signal across y-axis i.e we change (t) to (t), while the cross correlation is just the sliding dot product of two signals.

We use the convolution to get output/result of a system which have two blocks/signals and they are directly next to each other (in series) in the time domain.


Thank you for mentioning thos additionsl clearifying point!
MathBgu

Does the* in f* imply complex conjugate? Instead of "across the y-axis", consider "reverse the time axis", because flip feels like something vertical is happening, esp. when mentioning the y-axis.
Petrus Theron

2

There is a lot of subtlety between the meanings of convolution and correlation. Both belong to the broader idea of inner products and projections in linear algebra, i.e. projecting one vector onto another to determine how "strong" it is in the direction of the latter.

This idea extends into the field of neural networks, where we project a data sample onto each row of a matrix, to determine how well it "fits" that row. Each row represents a certain class of objects. For example, each row could classify a letter in the alphabet for handwriting recognition. It's common to refer to each row as a neuron, but it could also be called a matched filter.

In essence, we're measuring how similar two things are, or trying to find a specific feature in something, e.g. a signal or image. For example, when you convolve a signal with a bandpass filter, you're trying to find out what content it has in that band. When you correlate a signal with a sinusoid, e.g. the DFT, you're looking for the strength of the sinusoid's frequency in the signal. Note that in the latter case, the correlation doesn't slide, but you're still "correlating" two things. You're using an inner product to project the signal onto the sinusoid.

So then, what's the difference? Well, consider that with convolution the signal is backwards with respect to the filter. With a time-varying signal, this has the effect that the data is correlated in the order it enters the filter. For a moment, let's define correlation simply as a dot product, i.e. projecting one thing onto another. So, at the start, we're correlating the first part of the signal with the first part of the filter. As the signal continues through the filter, the correlation becomes more complete. Note that each element in the signal is only multiplied with the element of the filter it's "touching" at that point in time.

So then, with convolution, we're correlating in a sense, but we're also trying to preserve the order in time that changes occur as the signal interacts with the system. If the filter is symmetrical, however, as it often is, it doesn't actually matter. Convolution and correlation will yield the same results.

With correlation, we're just comparing two signals, and not trying to preserve an order of events. To compare them, we want them facing in the same direction, i.e. to line up. We slide one signal over the other so we can test their similarity in each time window, in case they're out of phase with each other or we're looking for a smaller signal in a larger one.

In image processing, things are a little different. We don't care about time. Convolution still has some useful mathematical properties, though. However, if you're trying to match parts of a larger image to a smaller one (i.e. matched filtering), you won't want to flip it because then the features won't line up. Unless, of course, the filter is symmetrical. In image processing, correlation and convolution are sometimes used interchangeably, particularly with neural nets. Obviously, time is still relevant if the image is an abstract representation of 2-dimensional data, where one dimension is time - e.g. spectrogram.

So in summary, both correlation and convolution are sliding inner products, used to project one thing onto another as they vary over space or time. Convolution is used when order is important, and is typically used to transform the data. Correlation is typically used to find a smaller thing inside of a larger thing, i.e. to match. If at least of one of the two "things" is symmetrical, then it doesn't matter which you use.


0

Keep Signal Processing aside, if you just try to understand what is happening in Convolution and Correlation, both are very similar operations. The only difference is in Convolution, one of the variable is inverted(flipped) before performing the accumulation of the product. See that i am not using the word signal anywhere above. I am only talking in terms of the operations performed.

Now, let us come to Signal Processing.

Convolution operation is used to calculate the output of a Linear Time Invariant System (LTI system) given an input singal(x) and impulse response of the system (h). To understand why only Convolution operation is used to get the output of an LTI system, there is big derivation. Please find the derivation here.

http://www.rctn.org/bruno/npb163/lti-conv/lti-convolution.html

Correlation operation is used to find the similarity between the two signals x and y. More the value of correlation, more is the similarity between the two signals.

Understand the difference here,

  • Convolution --> between signal and a system(filter)

  • Correlation --> between two signals

So, from signal analysis point of view, Convolution operation is not used. Only correlation is used from signal analysis point of view. Whereas convolution is used from System analysis point of view.

Best way to understand the operations of convolution and correlation is to understand what happens when two convolution and correlation is done between two continuous variables like shown in the diagrams in the question.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.