Rayleigh Lord | Javier González Monge Profile picture
PhD Student ETSIAE 🚀. Physics, Math and Engineering. Animaciones sobre temas científicos, @cienciascenio. Live free or die.

Jan 30, 2022, 19 tweets

La Transformada Discreta de Fourier es una herramienta muy potente.

Hoy vamos a ver cómo descomponer cualquier imagen en una combinación de círculos girando a velocidades distintas.

⬇️Al final del hilo tenéis el código para que podáis reconstruir cualquier dibujo que queráis!⬇️

1. Hace dos siglos, en el estudio del problema del calor, Fourier inventó una herramienta sobre la que se sostienen gran cantidad de las aplicaciones tecnológicas actuales.

En esencia, su idea es descomponer una función complicada en una superposición de funciones más sencillas.

2. Cuando se superponen todos estos pequeños círculos, se observa cómo se va reconstruyendo la función original (en nuestro caso un corazón)❤️

Daos cuenta que cada círculo gira a una velocidad a una velocidad angular distinta!↪️

3. Para simplificar la visualización, veamos lo que ocurre únicamente con dos círculos donde uno gira el doble de velocidad que el otro.

Al combinar los movimientos de ambos, obtenemos una forma más compleja (cardioide).

Ahora veamos las matemáticas tras esto🧑‍🏫!

4. Para entender esta idea, tenemos que hablar de vectores. Por tanto, pensemos en la imagen intuitiva que muchos tenemos en la cabeza cuando pensamos en ellos como flechas➡️.

En dos dimensiones, podemos descomponer cualquier vector como combinación lineal de otros dos vectores.

5. Esta idea, que en 2 y 3 dimensiones es bastante intuitiva, se generaliza bastante bien a espacios de mayor dimensión (aunque no podamos visualizarlos).

Simplemente, añadimos más vectores a la base y expresamos un vector cualquiera como combinación de ellos.

6. Sin embargo, este concepto de vector como flecha no es muy general❌.

Resulta que vector puede ser cualquier elemento de un conjunto que cumpla los axiomas de espacio vectorial.

Así, las matrices y funciones como polinomios también pueden ser vectores 🤯.

7. Sabiendo que las funciones pueden ser vectores, entonces podemos descomponer una función f(t) como combinación lineal de otras funciones (análogo al caso de las flechas).

Esta fue la idea de Fourier! Él utilizó funciones trigonométricas en esta descomposición.

8. Como e^(it) = cos(t) + i sin(t), estas exponenciales representan un círculo en el plano complejo. Y los coeficientes que las acompañan miden la relevancia de los términos.

Así, cuando escribimos la suma, visualmente estamos realizando la combinación de círculos🔵girando!

9. En general, no dispondremos de una función para descomponer sino de un conjunto de puntos. Pero no importa, la idea es la misma!

En este caso, se aplica una pequeña variación conocida como Transformada Discreta de Fourier, donde ahora los Xk son como los coeficientes ck.

10. Los Xk se determinan fácilmente mediante la relación con los puntos conocidos xn.

Una vez conocemos los Xk, podemos reconstruir el conjunto inicial de puntos xn (que pueden representar un Mario Bros) mediante una suma.

Cada Xk nos va a dar un círculo girando.🙌

11. Ahora imaginad que queremos reconstruir el símbolo de Spiderman. Una manera es aplicar el algoritmo y utilizar todos los Xk obtenidos.

Sin embargo, una cosa fantástica de esta técnica es que puede que nos hagan falta solo unos pocos Xk para reconstruir bien la imagen!

12. Esta imagen tiene alrededor de 2000 puntos. Si la podemos reconstruir con menos de 2000 Xk, conseguiremos una reducción muy significativa de los datos que necesitamos almacenar (este tipo de técnicas se usa continuamente).

Con solo 10 Xk, la cosa no funciona muy bien😅.

13. Subiendo hasta 40 Xk (o lo que es lo mismo, 40 círculos), la reconstrucción mejora bastante aunque todavía se aleja bastante del dibujo inicial.

Pero hay que tener en cuenta que ahora solo conocemos 40 números para reconstruir los 2000 iniciales!

14. Reteniendo 100 Xk, ya tenemos un resultado suficientemente bueno.

Y esto solo es un 5% de la información original!

Situándo esto en un ejemplo real, como podréis imaginar, para comunicarse con satélites🛰️ este tipo de compresión de información es vital.

15. Además, esta técnica sirve para analizar multitud de problema físicos como la propagación del calor, la vibración de una estructura, ondas...

Realmente, cuando al analizar un problema no podemos aplicar esta descomposición es cuando realmente estamos en apuros!⚠️

16. Sin duda, debemos mucho a grandes científicos como Fourier, que tuvieron la gran intuición de desarrollar este tipo de técnicas (que, por cierto, supusieron gran controversia en la época por parecer poco riguroso).

17. Aquí os dejo el código Python en mi GitHub con el algoritmo de la Transformada Discreta de Fourier para que podáis construir cualquier imagen simplemente dando los valores x, y de cada uno de sus puntos.

github.com/Enterprixe/Ray…

18. Espero que hayáis disfrutado tanto del hilo como yo haciéndolo.

Es un gusto hablar de herramientas tan potentes que realmente cambiaron nuestro mundo.

Share this Scrolly Tale with your friends.

A Scrolly Tale is a new way to read Twitter threads with a more visually immersive experience.
Discover more beautiful Scrolly Tales like this.

Keep scrolling