difference between convolution and correlation

889 views (last 30 days)
Jared Choi
Jared Choi on 22 Jan 2016
Answered: SUBHASH KUMAWAT on 10 Aug 2018
http://www.mathworks.com/help/images/what-is-image-filtering-in-the-spatial-domain.html The link above contains definitions for both convolution and correlation. Yet I don't see why we treat convolution differently from correlation, and vice versa. It seems to me that convolution and correlation are identical - the only difference being that convolution rotates the filter matrix by 180 degrees. How are convolution and correlation used - also what is the difference between correlation and cross-correlation?
  • Convolution vs Correlation
  • Correlation vs Cross-Correlation

Answers (3)

SUBHASH KUMAWAT on 10 Aug 2018
The Basic difference between Correlation and convolution is :-
Correlation is measurement of the similarity between two signals/sequences.
Convolution is measurement of effect of one signal on the other signal.
The mathematical calculation of Correlation is same as convolution in time domain, except that the signal is not reversed, before the multiplication process. If the filter is symmetric then the output of both the expression would be same.

Jeevan Joishi
Jeevan Joishi on 27 Jan 2016
Theoretically, convolution are linear operations on the signal or signal modifiers, whereas correlation is a measure of similarity between two signals. As you rightly mentioned, the basic difference between convolution and correlation is that the convolution process rotates the matrix by 180 degrees. Most of the time the choice of using the convolution and correlation is up to the preference of the users, and it is identical when the kernel is symmetrical.
Also, correlation or auto-correlation is the measure of similarity of signal with itself which has a different time lag between them. Cross-correlation is a way of finding similarity between two different signals.

Kenny on 27 Feb 2018
Edited: Kenny on 27 Feb 2018
I'm thinking that 'convolution' is a mathematical process or manipulation done on numbers, or a sequence of numbers etc, while correlation is about determining similarity or likeness between maybe a set of values (when compared with a given reference set of values). The results of a convolution process is maybe ONE tool (or mathematical manipulation process) for seeing if there is any degree of relation or similarity (aka correlation) between data sets. So, if you 'convolve' one particular set of values from a 'reference' time sequence with some other similar sequence, the plotted result could give you a visual indication of similarity between the data sets. And if a person isn't around to look at the results, then a computer program could search through the result to see if there are relatively large enough 'peaks' in the results of the convolution ---- so can get a computer to do the assessing of the results. And, then there are cases involving lots of measurements on 1 quantity to get an average value (to present to somebody). And lots of measurements on a different (other) quantity. In that case, there are matrix correlation methods involving these other statistical values like covariance, mean etc, which involve a correlation method, but not using any convolution method.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!