Un dessin, vu comme une somme de rotations
Quand vous tracez une courbe fermée à la souris, je n'enregistre pas une image : j'enregistre une suite de points. En lisant chaque point comme un nombre complexe — l'abscisse pour la partie réelle, l'ordonnée pour la partie imaginaire — le dessin devient un signal périodique. Et tout signal périodique se décompose en une somme de rotations pures, chacune tournant à une fréquence bien précise. C'est l'idée de la transformée de Fourier, appliquée ici à un tracé plutôt qu'à un son.
La DFT, implémentée à la main
La transformée de Fourier discrète (DFT) prend mes N points et en
ressort N termes. Chaque terme porte trois informations : une
fréquence (combien de tours il fait pendant que la courbe se
dessine une fois), une amplitude (le rayon de sa rotation) et une
phase (l'angle de départ). Je ne fais appel à aucune bibliothèque :
c'est une double boucle qui projette le signal sur chaque fréquence, exactement la
formule mathématique posée telle quelle dans le code.
Des épicycles montés bout à bout
Chaque terme devient un cercle qui tourne — un épicycle. Je les monte les uns au bout des autres : le centre de chaque cercle est accroché à l'extrémité du précédent. Tous tournent en même temps, chacun à sa fréquence, et l'extrémité du dernier cercle retrace exactement la courbe de départ, en laissant derrière elle la trace ambre. Rien n'est « rejoué » depuis le dessin d'origine : la forme réapparaît uniquement parce que la somme des rotations la reconstitue point par point.
Trier par amplitude décroissante
J'affiche les épicycles du plus grand au plus petit. Les premiers cercles, larges, posent la silhouette générale ; les suivants, de plus en plus fins, ajoutent le détail. C'est la même hiérarchie qu'en compression : les grandes amplitudes portent l'essentiel de l'information, les petites peaufinent. On pourrait tronquer les termes négligeables et obtenir une version simplifiée mais reconnaissable de la courbe — précisément ce que fait un algorithme de compression.
Décomposer pour mieux maîtriser
Cette démo illustre un réflexe d'ingénieur que j'applique à tous mes projets : décomposer un phénomène complexe en briques simples et bien comprises. Un signal devient une somme de fréquences ; un système devient une somme de composants isolés, testables, remplaçables. Pour un client, c'est ce qui fait la différence entre un logiciel opaque qu'on subit et une architecture claire qu'on maîtrise, qu'on fait évoluer sereinement et dont on reste pleinement propriétaire.