Convolución discreta

Convolución de dos secuencias: (f * g)[n] = Σ f[k]·g[n−k]. Desliza una secuencia reflejada sobre la otra y suma los productos que se solapan.

¿Qué es la convolución discreta?

Es la versión con secuencias de la convolución: (fg)[n]=k=f[k]g[nk].(f * g)[n] = \sum_{k=-\infty}^{\infty} f[k]\, g[n-k]. Igual que en la continua, g[nk]g[n-k] es gg reflejada y desplazada nn posiciones. Para cada nn, multiplicas los términos que se solapan y los sumas. Es exactamente lo que hace un filtro FIR con su ventana.

Convolucionar = multiplicar polinomios

Hay una forma preciosa de verlo. Asocia a cada secuencia su polinomio generador: F(x)=if[i]xiF(x) = \sum_i f[i]\,x^i y G(x)=jg[j]xjG(x) = \sum_j g[j]\,x^j. Entonces F(x)G(x)=n(fg)[n]xn.F(x)\,G(x) = \sum_n (f * g)[n]\, x^n. Es decir: los coeficientes del producto son la convolución. Por eso [1,2,3][1,1]=[1,3,5,3][1,2,3] * [1,1] = [1,3,5,3] es lo mismo que (3x2+2x+1)(x+1)=3x3+5x2+3x+1(3x^2+2x+1)(x+1) = 3x^3+5x^2+3x+1. Esta calculadora te enseña las dos vías.

¿Dónde aparece?

En procesado de señal (filtros digitales), en la multiplicación de números grandes (¡que es una convolución de dígitos!), en probabilidad discreta (la distribución de la suma de dos dados es la convolución de sus distribuciones) y en las capas convolucionales de las redes neuronales.