# Difference between correlation/convolution and matrix multiplication

Can anyone please clarify the difference between correlation/convolution and matrix multiplication? As I thought either convolution or correlation is similar to matrix multiplication. I read this question difference between convolution and multiplication, that is about simple multiplication.I am asking about matrix multiplication. Thanks in advance.

Well I will try to explain.

Let us first discission in time domain:

1) Let us say you have two signals, x and y. By Convolution in time domain, you mean that you flip(invert) one of the signals(lets say ,y) and then slide it over the other(x). By corerlation, you just don't flip them, rest is the same.

2) Now when we talk about correlation, we first discuss 1-D case, where you have just one signal(x) and then for multiple signals(x,y...)

One Variable:

The variance for x will tell you how spread or varied that signal is, i.e. a small will correspond to signal which is changing very much.

As as engineers, we like that just at looking at value we can make prediction about the nature of the signal. For that reason, variance is not a good estimate, as you cannot compare signals easily by just looking at their variance. For that reason we introduce Standard Deviation, which is infact the underroot of variance, but by looking at it you can easily compare the nature of two signals.

Multi Variable:

As variance is in one signal case, in mutli variable, where you have X,Y ...etc signals, we replace it by Covariance. A covariance will tell you how much X and Y vary with each other. But again like variance, we cannot compare just based on co-variance, so we introduce correlation(Standard deviation in one signal case). Now by looking at correlation, you can compare the signals. And then a correlation coefficient,which is just the normalization of correlation, and it ranges from 1 to -1. If the correlation coefficient between 2 signals(x and y) in this case, near to 1, means these both signals are same or same behavior, whenever one signal goes up, the other also and vice versa. 0 means that they have no relationship at all and -1 means inverse relationship.

Computing: Now to compute the convolution/correlation, we use matrix multiplication as a tool, just like you use variable multiplication for calculating variance or mean in 1 signal case. In multi dimension case(x,y,...) you use matrix usually instead of variables to make your computations easy(especially on computers).

Now in frequency domain:

For calculating, convolution, in time domain, you had to flip and then slide(slide means that each and every element of variable needs to be slided) which is computationally very expensive. Instead, in frequency domain, the same result as that of convolution is achieved just by multiplication and yes when you signal is in freq. domain, you simply multiply the signal(X)-which is matrix with Signal(Y), which is also a matrix.

So, now you will be able to understand that, Yes convolution is same as matrix multiplication(where matrix X and Y matrix of signal) but ONLY IN FREQUENCY DOMAIN.

I hope it helps.

P.S: Simple mulitplication is done in theory, when you are writing equation, but when you have a real signal , then you sample it and it gives a matrix, which you further multiply in matlab.

To give a dettailed answer, let assume we have tow signals in time domain e(t) and s(t) and a system modeled with a transfer function h(t). The correlation function is the calculation of similarity between e(t) and s(t), so if the two signals are identiques the correlation function is maximale, the correlation is subdivised into autcorrelation if we corralte the same signal, while Cross-correlation is a measure of similarity of two waveforms as a function of a time-lag applied to one of them. In the other hand, convolution is a function used to find the output ofa system, we assume we want to calculate the output of a system represtend by h(t), the output is represented as follow : s(t)=h(t)*e(t) .

The matrix product, we use it when we have a multivariables system . Hope my answer is clear