3 ms·
Convolution is essentially polynomial multiplication. That's how I think about it. You remember (a + b)(c + d) = ac + ad + bc + bd? Or (2x^2 + 1)(4x^3 + x) ca
by adamnemecek 8y ago
Convolution is essentially polynomial multiplication. That's how I think about it.
You remember (a + b)(c + d) = ac + ad + bc + bd?
Or (2x^2 + 1)(4x^3 + x) can be calculated by doing conv([0,2,0,1], [4,0,1,0]) (the numbers represent the coefficients). The results are the coefficients of the resulting polynomial.
As the polynomials grow larger this gets harder and harder computationally. Convolution theorem lets you use Fourier to you convert this multiplication into a pairwise multiplication so that
fft(f * g) = fft(f) .* fft(g)
where * is convolution and .* is pairwise multiplication.
- deleted 8y ago[deleted]