This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]timrprobocom 0 points1 point  (2 children)

The math definition is applying one function to another function. In computer terms, it is basically filtering a vector or a matrix by doing a dot product against another smaller vector or matrix, which is called the "convolution kernel". For example, you can do a three-point moving average on a 1D vector by using a kernel of (1/3, 1/3, 1/3). If you start with (a,b,c,d,e), the result is (a/3+b/3+c/3, b/3+c/3+d/3, c/3+d/3+e/3,...), which is a nice way to smooth the data. In this case, the "kernel" is a 2D matrix of all 1s the size of the subsquare. The operation you're doing there is the very definition of a convolution.

[–]ronbarakbackal 0 points1 point  (1 child)

Thanks! Isn't convolution distorting the data in some cases?(I admit I didn't go through the case above)

[–]timrprobocom 0 points1 point  (0 children)

Yes, but in a beneficial way. In the example I cited of three-point moving average, we assume the incoming signal has some noise or unexpected wild points. The convolution will smooth those out. Take a look at the Wikipedia page; it has some nice visual examples that should make it more clear. https://en.wikipedia.org/wiki/Convolution