Buscar en este blog....

miércoles, 8 de diciembre de 2010

¿Convolución? ¡Pero si es muy fácil! (Parte 1/3)

Bueno, les comento que para el título del post, saqué la idea de un libro muy viejo que tenía mi abuelo, el cual se titulaba: "¿La Radio? ¡Pero si es muy fácil!", y como me pareció muy simpático para un libro, me quedó grabado muchos años.. ahora lo adapté para usarlo en mi blog :)
Pasando al tema que me toca. La convolución es un tema al que cuesta agarrarle la mano en un principio, tanto en el concepto como el cálculo de la misma. Mientras aprendía este tema, se me ocurrió una forma muy simple de calcular convoluciones a mano, y por eso me decidí a realizar el post. Advierto que no soy un experto en el tema, pero comprendo muy bien el concepto, y voy a tratar de explicarlo de la forma más sencilla posible; además del método de resolución que mencioné y un programa en algún lenguaje que la resuelva, como para terminar esto bien bonito. En la imagen que no se ve, pueden hacer click para agrandarla.
¿Qué es la convolución?
Para comenzar, la convolución se trata de una operación matemática que combina dos señales para producir una tecer señal. En el campo de las señales digitales es muy importante, ya que permite obtener la señal de salida de un sistema a partir de la señal de entrada y la respuesta al impulso. Es decir, podemos predecir la salida, conociendo la entrada y la respuesta al impulso.

convolucion.JPG

Conceptos previos.

Bien, primero que nada, es necesario tener algunas cosas claras antes de explicar la convolución. Comencemos por describir qué es el impulso unitario o función delta (es lo mismo). No es nada más que una simple función matemática que vale 1 en n = 0 y vale 0 en cualquier otro punto. Es decir:

convolucion2.JPG

Podemos desplazar y escalar esta función delta, ¿cierto? Por ejemplo, si tenemos una señal s[n] que vale -3 en n = 5 y vale cero en cualquier otro punto, entonces expresarla como una función delta desplazada 5 muestras hacia la derecha, y escalada por un factor de -3. Es decir que s[n] = -3*delta[n-5]. Es decir, lo que tenemos es un impulso (es decir, es una señal que es el impulso unitario pero desplazado y escalado).

Una vez que comprendemos el efecto de desplazar y escalar la función delta, podemos descomponer cualquier señal en una sumatoria de impulsos (funciones delta desplazadas y escaladas). A la descoposición de una señal en una otras señales se le llama análisis de la señal. La idea de esto, es que si tomamos cada impulso y los sumamos, volveremos a obtener la señal original. A la composición de una señal a partir de la sumatoria de otras señales (en nuestro caso impulsos) se le llama síntesis.
Veamos un ejemplo simple de descomposición de una señal en una sumatoria de impulsos
Ahora, imaginemos que tenemos un sistema lineal cualquiera. Si en la entrada de dicho sistema ponemos una señal cuañquiera, el sistema, como es de esperarse, nos devovlerá una señal salida, la cual dependerá exclusivamente de qué haga el sistema internamente. O sea que distintos sistemas nos pueden dar distintas respuestas ante la misma entrada. En el caso particular de que la entrada sea el impulso unitario la salida del sistema se llamará respuesta al impulso o respuesta impulsiva y se denota como h[n].
convolucion4.JPG

Lo interesante de esto, es que si la entrada al sistema es un impulso unitario desplazado y escalado, entonces la salida será la respuesta al impulso, pero igualmente desplazada y escalada que que la entrada. Si además, recordamos que cualquier señal puede expesarse como una sumatoria de impulsos, podemos conocer la respuesta del sistema a cada uno de esos impulsos. Y si además, sumamos todas estas respuestas a cada impulso, entonces obtendremos la respuesta del sistema a la señal original.

Ahora si, ¿qué es la convolución?

¿Cuál es el beneficio de todo esto? Que podemos predecir la salida de cualquier sistema linear con solo conocer su respuesta al impulso unitario, es decir, el h[n].y no hay necesidad de introducir realmente una señal de entrada al sistema; sino que descomponemos esa señal en impulsos, evaluamos la respuesta del sistema para cada impulso (escalamos y desplazamos h[n] según cada impulso) y luego sumamos esas respuestas. ¡Todo este proceso, no es más que la convolución de h[n] y la señal de entrada! La convolucion se representa con una estrella. Es decir:

convolucion5.JPG

Matemáticamente, se escribe como:

convolucion6.JPG

donde M es la cantidad de muestras que tiene la respuesta al impulso h[n] y van desde 0 hasta M-1. La señal x[n] tiene N muestras (0 a N-1). La convolución de ambas señales, y[n], tendrá N+M-1 muestras (de 0 a N+M-2).

Bueno, espero que haya sido claro, sino pregunten o sugieran, y nunca está demás complementar con otras lecturas. Personalmente, recomiendo leer el capítulo 6 de un libro disponible en formato digital llamado "The Scientist and Engineer's Guide to Digital Signal Processing" escrito por Steven W. Smith, Ph.D. Enlace al libro. Está en inglés, ¡pero es excelente!

La proxima entrega describo el método de cálculo manual de la convolución. ¡Nos vemos!
Parte 2

13 comentarios:

  1. Muchas gracias. Este post tan breve pero didáctico me ha sido de mucha ayuda.

    ResponderEliminar
  2. Excelente tu blog, que bonitas son las matematicas!!!

    ResponderEliminar
  3. la info esta buena.. ahora entiendo algo ma sobre este tema

    ResponderEliminar
  4. la forma matemática cuan lo haces pásate el link , Xvre tu explicación.

    ResponderEliminar
  5. El impulso unitario delta dirac no es una función si no mas bien es una distribucion ese es el nombre correcto

    ResponderEliminar
  6. Hola sabrias cual es la demostracion de la convolucion de d(t-ti)*d(t-t2)=d(t-t1-t2), d=delta de dirac
    muchas gracias

    ResponderEliminar
  7. te falto dejar un link para la segunda parte

    ResponderEliminar
  8. La duda que hasta ahora tengo, es por qué no se usa la correlación para definir sistemas.
    Ya que la respuesta al impulso es igual al obtenido en la convolución, por lo tanto también se obtiene la naturaleza del sistema con la correlación.
    ¿Cómo los matemáticos demostraron que con la operación de correlación no se obtiene la salida del sistema y con la convolución si?

    ResponderEliminar
  9. Muy buena tu explicación, gracias, aprovecho para solicitar de manera amable que hagas una explicación de como se aplica a redes neuronales convolucionales, o a imágenes :)

    ResponderEliminar
  10. hola! tu post es de bastante ayuda, pero no me queda del todo claro como lo podría aplicar a un problema especifico, crees que podrías ayudarme por favor?
    el problema es el siguiente:
    Supongamos una serie de periodicidad trimestral (s=4), con un tamaño N a la cual se le desea obtener un filtro estacional luego de remover la media ¿Cuáles son las ponderaciones para cualquier trimestre M, donde M=1,2,3,4, sobre el restante de observaciones incluidas dentro del filtro? Defina la expresión para el primer elemento y el tercer elemento de la convolución que permite calcular estas ponderaciones.

    ResponderEliminar
    Respuestas
    1. ¿Crees que su deber es responder tus problemas de la universidad?

      Eliminar
  11. DEMOSTRAR QUE LA CONVOLUCION DE UNA FUNCION DISCRETA X[t] CON LA FUNCION IMPULSO UNIDAD ES X[t]

    ResponderEliminar

Comments are subject to moderation, only in order to avoid insults and disguising things.

Los comentarios están sujetos a moderación, solo con el fin de evitar insultos y cosas por el estilo.