Épicycles de Fourier

Visualisation interactive de transformées de Fourier : découvrez comment des cercles en rotation peuvent dessiner n'importe quelle forme !

Comment ça marche ?
  1. Choisissez une image ci-dessous pour voir sa transformation en épicycles de Fourier
  2. Ou dessinez votre propre forme dans le canvas interactif en bas de page
  3. Les cercles en rotation vont dessiner votre forme en temps réel !
  4. Faites varier le nombre d'épicycles et suivez, dans le processus mathématique, chaque étape du calcul avec les vraies valeurs de la décomposition

Exemples prédéfinis

Cliquez sur une image pour voir sa transformation

Énergie conservée : –

chaîne de \(x(t)\), lue horizontalement chaîne de \(y(t)\), tournée d'un quart de tour et lue verticalement

Dessinez votre propre forme !

Utilisez votre souris ou votre doigt pour dessiner dans le canvas ci-dessous. Sa décomposition s'affiche ensuite dans le processus mathématique.

Énergie conservée : –

Le processus mathématique, pas à pas

Chaque étape est calculée en direct dans votre navigateur : les nombres et les courbes ci-dessous sont ceux qui pilotent l'animation.

Signal analysé
Points \(N\)
–
Fréquences par coordonnée
–
Épicycles conservés \(K\)
–
Énergie conservée
–
Erreur quadratique moyenne
–
1Du dessin au signal

On parcourt le contour et on relève \(N\) points successifs \(P_n = (x_n, y_n)\), pour \(n = 0, \dots, N-1\). À chaque point on associe un instant \[ t_n = \frac{2\pi n}{N} \in [0, 2\pi[ \] La forme devient ainsi deux signaux périodiques : l'abscisse \(x(t)\) et l'ordonnée \(y(t)\). Chacun sera décomposé séparément.

Coordonnées en pixels, mesurées depuis le centre du dessin, axe \(y\) vers le haut. Le signal étant périodique, la fin du tracé est implicitement reliée à son début.

Le point \(P(t)\) parcourt le contour ; ses deux coordonnées, tracées en fonction de \(t\), forment les signaux \(x(t)\) et \(y(t)\).

2La transformée de Fourier discrète

Pour chaque fréquence \(k\), on calcule le coefficient complexe

\[ c_k = \frac{1}{N} \sum_{n=0}^{N-1} x_n \, e^{-i k t_n} = \frac{1}{N} \sum_{n=0}^{N-1} x_n \, e^{-2i\pi k n / N} \]

Il compare le signal à une rotation qui fait \(k\) tours pendant que le point parcourt le contour : son module \(|c_k|\) mesure l'amplitude de cette rotation dans le signal, son argument \(\arg c_k\) sa phase.

Le signal étant réel, \(c_{N-k} = \overline{c_k}\) : les fréquences \(k\) et \(N-k\) (c'est-à-dire \(-k\)) se regroupent en un seul cosinus. On obtient la série de Fourier du signal :

\[ x(t_n) = a_0 + \sum_{k=1}^{N/2} A_k \cos(k\,t_n + \varphi_k) \] \[ a_0 = c_0, \quad A_k = 2\,|c_k|, \quad \varphi_k = \arg c_k \]

L'égalité est exacte aux \(N\) points : la décomposition ne perd aucune information. Le terme constant \(a_0\) est la position moyenne du contour.

\(A_k\) de \(x(t)\), vers le haut \(A_k\) de \(y(t)\), vers le bas termes écartés

3La décomposition en sinusoïdes
Coordonnée décomposée (étapes 3 et 4)

Triés par amplitude décroissante, les termes de la série forment la décomposition du signal : il est exactement la somme de la constante \(a_0\) et de ces cosinus.

En haut, le signal ; en dessous, ses plus grandes composantes \(A_k \cos(k t + \varphi_k)\), toutes à la même échelle verticale.

Rang \(k\) \(c_k\) \(A_k\) \(\varphi_k\) (rad) Énergie
4Des sinusoïdes aux épicycles

Un terme \(A_k \cos(k t + \varphi_k)\) est la projection d'un point qui tourne sur un cercle de rayon \(A_k\), à raison de \(k\) tours par période, en partant de l'angle \(\varphi_k\) :

\[ A_k \cos(k t + \varphi_k) = \operatorname{Re}\left( A_k \, e^{i (k t + \varphi_k)} \right) \]

Pour additionner les termes, on accroche chaque cercle au bout du précédent : c'est la chaîne d'épicycles. Le bout de la chaîne se trouve exactement à la valeur de la somme.

Dans l'animation, la chaîne de \(x(t)\) est lue horizontalement ; celle de \(y(t)\) est tournée d'un quart de tour pour être lue verticalement. Le point qui combine ces deux lectures trace le dessin.

5Reconstruction progressive

En ne gardant que les \(K\) termes les plus grands de chaque coordonnée, on obtient la meilleure approximation à \(K\) termes au sens des moindres carrés. L'identité de Parseval répartit la variance du signal entre les termes :

\[ \frac{1}{N} \sum_{n=0}^{N-1} \left( x_n - a_0 \right)^2 = \sum_{k=1}^{N-1} |c_k|^2 \]

La part des \(|c_k|^2\) conservés est l'énergie conservée ; ceux qu'on écarte donnent exactement l'erreur quadratique moyenne aux points échantillonnés.

En trait plein, le contour reconstruit avec les \(K\) plus grands termes de chaque coordonnée ; en gris, les points d'origine. Cliquez sur une vignette pour choisir \(K\).