# Difference between convolution and correlation

What is the difference between these two operations in signal processing except that convolution= folding + correlation? Can we say Convolution is a measure of similarity between two signals?

Question

What is the difference between these two operations in signal processing except that convolution= folding + correlation? Can we say Convolution is a measure of similarity between two signals?

- Correlation is a metric for similarity between two different signals. When normalized, so that each of the two signals to be correlated have unitary power and null mean value, the correlation operation shifts to the computation of the correllation coefficient, of the two signals you are comparing. The correlation coefficient, for a given time lag t between the two signals, is always between -1 and +1, clearly giving a measure of the similarity of the shapes of the two signals at that time lag.

Convolution, instead, is the common operation a Linear and Time Invariant system can perform on a given input signal.

It is clear that, in specific cases, correlation anc convolution are very similar: the matched filter case makes correlation and convolution identical. - convolution is a technique to find the output of a system of impulse response h(n) for an input x(n) so basically it is used to calculate the output of a system, while correlation is a process to find the degree of similarity between two signals.
- Correlation is the degree of similarity between two different signals not convolution.

Convolution is the product of two signals in frequency domain.

Mathematically you can say convolution = folding + Corr. - be car full, convolution is not a similarity measure. correlation shows how much two signals are similar linearly. if you convoluted the signal x[n] by x[n]( 0 < n
- Simply, correlation is a measure of similarity between two signals, and convolution is a measure of effect of one signal on the other.
- If I can add to this, if the filter is symmetric, then convolution and correlation achieve the same result... which makes sense, because if the filter is symmetric, then folding would give you the same filter, and then correlating the signal will give you the same result.... but, I agree with the earlier observations:

Correlation is measuring how similar two signals are to each other, and convolution is directly related to the impulse response, or the output of a system would be, given that you provide a unit impulse into the system. Once you know the impulse response, convolution can essentially determine what the output of your system is, due to any arbitrary input that you provide to it. - We can formulate the difference between the two operations in the following way: let h(t) be the impulse response of a given linear system. If x(t) is the input, y(t)=x(t)*h(t) is the output. Similarly, we can consider h(-t) as the impulse response of an anti-causal filter. The output is then y(t)=x(t)*h(-t) that is the correlation between h(t) and x(t).
- Correlation = measure of similarity between two signals

Convolution -> linear operation on the signal / signal modifier - The difference between convolution and correlation is that convolution is a filtering operation and correlation is a measure of relatedness of two signals

You can use correlation to compare the similarity of two sets of data. Correlation computes a measure of similarity of two input signals as they are shifted by one another. The correlation result reaches a maximum at the time when the two signals match best

convolution is used to compute the output of a certain linear system when a certain input signal is applied to it. this is done by applying convolution between the input signal and the impulse response of the system - I have no idea, why "convolution= folding + correlation"! Convolution is per definitionem Folding!
- I like Dinesh's short but spot on response:

"Correlation = measure of similarity between two signals

Convolution -> linear operation on the signal / signal modifier"

In words:

convolution used to determine the output of some linear system. This is done by performing convolution between an input response of the linear system and the input signal being applied to that linear system

correlation will show the similarities of two signals, as correlation is performed on the two signals, it will maximize at the time where their similarities are greatest. - Hello,

Do not forget to take into account the energy of the signals: to obtain a useful measure of similarity between two signals, normalize (divide) the correlation by the square root of the product of the autocorrelation (max) of each signal.

Example:

Assume you want to know the correlation between cos(pi.t/2) and (1-t^2) on the range [-1;1] for t. You obtain the correlation function (32/pi^3).cos(pi.T/2) where T is the shift parameter. It follows the max (T=0) is 1.03 !!! Verifying the correlation between cos(pi.t/2) and itself, you will obtain 1. Does it mean (1-t^2) is more correlated to cos(pi.t/2) than cos(pi.t/2) itself ? Obviously, no!

If you normalize the correlation operation, the normalized correlation function between cos(pi.t/2) and (1-t^2) is as follows: ((32/pi^3)/(16/15x1)^1/2).cos(pi.T/2). The max is then 0.9992 (less than 1, ok).

Rk: 16/15 is the max of the autocorrelation of (1-t^2) and 1 is the max of the autocorrelation of cos(pi.t/2), all on the range [-1;1]. - Graphically, convolution of two signals is obtained by fliping (about y-axis) then shifting one of the signals over the other while multiplying and adding common elements (for continuous: it is integration of overlapping area).

Correlation is obtained by shifting one of the signals over the complex conjugate of the other while multiplying and adding common elements (for continuous: it is integration of overlapping area). - Note convolution is the mathematical model of linear systems. It means the response y of any linear system to any input x can be calculated provided you know the impulse response h (characterizing the linear system). See the message below of Manuel Ortigueira. If the input x is the impulse signal, you observe the impulse response at the output (y=h) => observation and definition of h.

Correlation is a mathematical tool and does not model linear system even convolution can be written as a correlation.

Practically, the impulse response can be observed thanks to an impulse signal at the input. Unfortunately, it is not accurate enough (lacking of energy to excite the system) and we use the correlation (!) between a noisy input signal and the output to obtain the impulse response. - Correlation: is what checking the similarities of signal...

--Auto-correlation where similarities of signal with itself in variation of time.

(e.g) detection of periodicity of noise in annual sunspot.

--Other hand cross-correlation is finding similarities between two different signals..

Convolution:

which can be used to find the response a system/act as a filter..

Just choosing of "impulse response" you can find the response of the system.

--If you want to play musical keyboard with different instruments like drums, take impulse response of drums(h(t)) and keyboard note which you are playing is x(t), so when you convolute the both you will get the keyboard*drums (effect of drums will change according to the keyboard note which you played). - No, you can not say the convolution is a measure of similarity between 2 signals. it is a operation that is used to get the response of a filter. if we have a filter and a signal and want to get the response of filter we use the convolution operator. the equation that relates convolution and correlation operators together is just a mathematics equation and it has not any physician concept.
- Convolution is used to find out the overall time response of two Cascaded Sub Systems as used in Control System Block Diagram.

f(t) = f1(t) star f 2(t) = f2(t) star f1(t) in time domain

F(s)= F1(s)F2(s) in Frequency domain

As stated by Prof.Samuel James,

Correlation: is what checking the similarities of signal...

--Auto-correlation where similarities of signal with itself in variation of time.

(e.g) detection of periodicity of noise in annual sunspot.

--Other hand cross-correlation is finding similarities between two different signals..

Instead of two signals,if you have more than two signals, you have to go for Co-Variance Matrix instead of Co-Relation.

P.S. - you will like this

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

check the matlab link also

.

The convolution is meeting of two signals, the OLDEST part of one signal with the OLDEST part of the other signal, while in the correlation one signal "catches" the other one from behind, by sliding.

So you can consider correlation a measure of coincidence of two signals, while convolution a result of a composition of two signals.

A line wave equation is A=A0 cos (j omega t - k r).

Why minus? Why not +? Time and distance are ascending, why they are not both +?

Because from the generator first is coming out the OLDEST part of the signal, so the signs of ascendant signal (in time) and ascendant signal (in distance) are different.

Hope it helps. - simply put together convolution gives average overlapping area between two signals,which is nothing but low pass filtering. when we convolve 2 signals, one is considered to be impulse response of LTI system and other as input signal. Hence is equivalent to passing a signal through lowpass filter. whereas, correlation is simply comparison of the signal with itself(autocorrelation) or with other siganl (cross correlation) with respect to time.
- @Archana Pawar, NOT lowpass filtering. Just filtering. If it is lowpass or not depends on the samples (coefficients of the 'filter').

Already a member? Log in

## Popular Answers

Raymond Phan· Ryerson UniversityCorrelation is measuring how similar two signals are to each other, and convolution is directly related to the impulse response, or the output of a system would be, given that you provide a unit impulse into the system. Once you know the impulse response, convolution can essentially determine what the output of your system is, due to any arbitrary input that you provide to it.