Leçon
La théorie — La transformée de Fourier rapide
La transformée de Fourier rapide (FFT) désigne tout algorithme qui calcule la transformée de Fourier discrète X[k] = Σ x[n] Wkn, W = e−2πi/N, de manière exacte aux arrondis près, en environ N log N opérations au lieu de N². La forme de Cooley-Tukey décompose N = N1N2 : N2 transformées entrelacées de longueur N1, dont chaque sortie k1 de la transformée n2 est multipliée par son propre facteur de rotation Wn2k1, suivies de N1 transformées de longueur N2 à travers elles. Appliquée de façon répétée à N = 2m, elle devient la FFT en base 2 : m étapes de N/2 papillons.
Ce que signifie chaque symbole
N- le nombre d'échantillons, ainsi que de fréquences calculées
W- la racine de l'unité e−2πi/N ; ses puissances sont les facteurs de rotation
m- log2N, le nombre d'étapes d'une FFT en base 2
Problème entièrement résolu
-
L'autre exemple de Gauss : Junon, 36 valeurs 4 étapes
L'article 41 du manuscrit de Gauss interpole l'équation du centre de Junon à partir de 36 valeurs, une tous les 10°, décomposées en 6 × 6. Selon le décompte de Cooley et Tukey, combien d'opérations la somme directe exige-t-elle, combien la décomposition de Gauss en économise-t-elle, et une décomposition plus fine ferait-elle mieux ? Cliquez d'abord sur Gauss, 3 périodes de 4 : la page effectue le même décompte pour douze valeurs.
Ouvrez ce problème dans l'outil
-
La somme directe, une opération par échantillon et par fréquence :
-
La décomposition de Gauss, six périodes de six : le décompte en deux étapes de Cooley et Tukey équivaut à N fois la somme des facteurs.
-
La décomposition poussée jusqu'au bout, 36 = 2 × 2 × 3 × 3 :
-
La règle de Cooley et Tukey : un facteur r = st avec s, t > 1 présente toujours s + t < r, sauf si s = t = 2 :
Réponse
1 296 opérations pour la somme directe, 432 avec la décomposition 6 × 6 de Gauss, 360 en décomposant jusqu'au bout. La décomposition de Gauss accomplit déjà trois fois moins de travail, et la décomposition la plus fine économise encore un sixième du reste. Les douze valeurs de la page suivent la même logique : 144 en somme directe et 84 avec la décomposition, ou 12 × (2 + 2 + 3) = 84 à nouveau jusqu'au bout, car diviser un facteur de 4 en 2 × 2 coûte autant.
-
Parcours
La transformée de Fourier en pratique
Références (3)
- Gauss's manuscript on trigonometric interpolation, printed after his death. Article 28 is the page's Gauss mode: twelve declinations of the northern limit of Pallas's zodiac at every 30° of right ascension, split into three periods of four and into four periods of three. Article 27 says the split extends to three or more factors and that practice will teach whoever tries it ("praxis tentantem docebit"); article 41 works Juno's equation of the centre from 36 values with the eccentricity 0.254236. The editor's note calls the text a reworking of a draft apparently begun in October 1805: C. F. Gauss, Theoria interpolationis methodo nova tractata (Nachlass). Werke, Band III, Königliche Gesellschaft der Wissenschaften, Göttingen, 1866; second printing 1876, where the treatise begins on p. 265 and arts. 25–28 are on pp. 303–310.
- The paper that showed Gauss's split is the Cooley–Tukey FFT: the change of index n = N₂n₁ + n₂, k = k₁ + N₁k₂ written as Gauss's procedure, his examples (N = 12 as 4 × 3 and 3 × 4, N = 36 as 6 × 6), the dating to October–November 1805 from the Juno eccentricity and other clues, and what the manuscript does not contain: "Gauss did not, however, go on to quantify the computational requirements of his method": M. T. Heideman, D. H. Johnson and C. S. Burrus, Gauss and the history of the fast Fourier transform. IEEE ASSP Magazine 1(4), 14–21 (October 1984). doi:10.1109/MASSP.1984.1162257
- The paper that made the FFT standard: the split N = r₁r₂ with T = N(r₁ + r₂) operations, its repetition to T = N(r₁ + … + r_m), the radix-2 form with bit-reversed order, and the count of N² operations for the direct sum against fewer than 2N log₂N, where an operation is a complex multiplication followed by a complex addition: J. W. Cooley and J. W. Tukey, An algorithm for the machine calculation of complex Fourier series. Mathematics of Computation 19(90), 297–301 (1965). doi:10.1090/S0025-5718-1965-0178586-1