"Et
l'analyse de Fourier sert à tout: à analyser les
sons et à les graver
sur un CD, mais aussi à analyser les images et à
les transmettre par
Internet, ou à analyser les variations du niveau de la mer
et à prédire les marées...
[...] Et ce qui est sûr, c'est que -avec tout le respect
dû à
l'écrivain surdoué dont j'ai
dévoré les œuvres quand
j'étais enfant-
l'influence de Joseph Fourier est maintenant bien plus importante
que
celle de Hugo lui-même; son "grand poème
mathématique" (comme disait
Lord Kelvin), est utilisé chaque jour par des milliards d'humains qui ne s'en rendent
même pas compte." C. Villani, Théorème
Vivant (Grasset,
2012)
|
Comment
faisons-nous pour qu'il en soit ainsi, que nous soyons tout
à
la fois acteurs de cet emploi inconscient et responsables de la place
qui en résulte pour Fourier, celle d'inconnu le
plus célèbre?
C'est ce que nous allons essauer d'expliquer ici. Une grande partie de
l'explication tient dans le rôle que joue la
transformation
de Fourier en imagerie numérique... c'est
déjà
dire combien notre Joseph est en
avance sur son temps: presque deux siècles!
Une icône
de l'imagerie, le mannequin Lena... et sa transformée de
Fourier.
|
attention tout de même
à ne pas abuser...
(cartoon trouvé sur ce site) |
Lorsqu'on approche
l'aire que
représente l'intégrale d'une fonction
réeelle par la somme des aires
des trapèzes (voir cette page) correspondant
à une subdivision régulière de pas h (la hauteur des
trapèzes), la valeur approchée est
h { [g(a) + g(b)]/2 + g(x1)
+ g(x2) + ... + g(xn-1) }
car les valeurs
intermédiaires g(x1)
apparaissent deux fois,
étant bases de deux trapèzes.
Le cas périodique est encore plus agréable, puisque f(a) = f(b), on a alors (avec a = x0) h { g(x0)
+ g(x1)
+ g(x2) + ... + g(xn-1) }
Appliquons cette approximation aux coefficients de Fourier sur une
grande période T,
qu'on découpe en N
morceaux: h=T/NAvec tk = kh, fk = f(tk) et ω = exp (-2iπ / N) la racine Nième fondamentale de l'unité |
un trapèze a pour
aire
h [ g(xi) + g(xi+1)] / 2 |
|||||
Contrairement à ce que leur nom pourrait laisser croire, les nombres complexes simplifient la tâche et les formules! D'abord, selon nk modulo N, ωnk ne prend que N valeurs ωr(nk) qu'il est facile de précalculer et stocker, ce qui évitera de très nombreuses répétitions du calcul de puissances. On n'aura donc à faire, dans chaque ligne, N multiplications seulement, soit N² en tout. Ce qui
malheureusement, reste beaucoup, pour ne pas dire beaucoup trop!
Si l'on traite une image, N
est le nombre de pixels, par exemple, 106 pour
une image 1000x1000. N²
vaut alors 1012
. Cela fait beaucoup de multiplications (et tout ça, pour
rendre
méconnaissable notre amie Lena, vous indignerez vous...
patience!); c'était carrément trop pour un calcul
en
temps raisonnable dans les années 1960-d'ailleurs,
à cette époque, le traitement de
l'image nexistait pas! Il y avait cependant une demande
réelle dans d'autres domaines; voici un exemple:
Par contre, la merveilleuse formule d'inversion entre f et sa transformée de Fourier F demeure vraie: il suffit d'intervertir f et F,et de changer ω en son conjugué. (Daccord, faire gaffe au N baladeur...bon, trois fois rien: pour un informaticien, c'est le même calcul!) |
||||||
James W. Cooley (1926-2016) |
John W. Tukey (1915-2000) |
|
Pour bien comprendre le gain réalisé, il ne faut savoir qu'une chose du logarithme: il représente, en gros, le nombre de chiffres avec lequel on écrit un nombre: un nombre entre 100 et 999 a un logarithme décimal qui vaut 2,***...;entre 1000 et 9999, il vaut 3,***..., etc... Celui de base 2 représente de façon similaire le nombre de chiffres en base 2, qui reste proportionnel au précédent. En pratique, on peut donc considérer le nombre d'opérations à réaliser comme inférieur à C.N, où C est une constante (N dépassera rarement 30 chiffres, par exemple), au lieu de N²; autrement dit, on a gagné un ordre de grandeur. Le gain est donc énorme! On peut le visualiser concrètement sur un échiquier ayant N cases de côté: l'algorithme naïf fait autant de produits que le nombre de cases de l'échiquier, tandis que l'algorithme de Cooley et Tukey ne requiert que quelques rangées. Ci contre, N = 8 est très petit (par rapport aux usages envisagés), mais déjà le gain est remarquable. On l'a donc baptisé Transformation de Fourier Rapide (TFR), ou, selon la dénomination internationalement en vigueur, Fast Fourier Transform (FFT) |
FFT, explication... rapide? Regardons d'abord le cas N = 4.
Ici, ω = i, ω = -1, et les formules deviennent (en omettant le facteur 1/ N)
Dans le deuxième tableau, on a réordonné pour ne pas calculer plusieurs fois, ni les mêmes sommes, ni les mêmes produits. On est passé, de manière évidente, de 4 produits à 2, et, en regardant mieux encore, à un seul: i affecte deux fois la même quantité! On calculera donc le "paquet" ( f1 - f3 ), puis une seule fois le produit i(f1 - f3 ), à ajouter à l'un des termes, retrancher à l'autre. Observons mieux encore: on a séparé les fk selon les indices pairs et impairs, fait deux fois le même calcul , sur deux paquets de données distincts (f0, f2) et (f1, f3), et réassemblé.
Et dans le cas général? Principe: quand c'est bon... on
recommence! ("Play it again, Sam!" vous dirait Woody
Allen...)
Pour N=8, on peut encore séparer en indices pairs et impairs, faire un calcul séparé, et réassembler; et de façon similaire ramener le cas N=2m à deux calculs sur des données de taille (le nombre d'indices) m, puis un réassemblage. Le succès tient à ce que ωm = -1 ; ωm + r = -ω r (
r entre
0 et m-1)
Il
suffit de prendre pour N une
puissance de 2 -les informaticiens aiment ça, c'est connu!-
et
le procédé peut être
itéré jusqu'au
cas le plus trivial, que nous venons de regarder en détails.
C'est la réitération qui fait l'efficacité du calcul: faire ceci une seule fois ne serait qu'une piètre économie. Lorsqu'on découpe le calcul sur 2q valeurs en deux calculs sur 2q-1 valeurs et un réassemblage, le coût en opérations (+ et x) s'établit à: c(q) = 2 c(q-1) + c(réassemblage)
c(q) = 2 c(q-1) + 3. 2q-1 car on doit faire un
produit et deux
sommes (i.I1,
±I0, ±iI1 dans
le cas exhibé) sur 2q-1 données
(q-1 valait
2 dans le cas exhibé)
. Cette équation de récurrence se résout aussi facilement que l'équation différentielle y' = 2y+3 exp (2x), soit dit pour ceux qui sont plus familiarisés avec ce deuxième exercice! Comme 2q est solution de la récurrence "sans second membre" c(q) = 2 c(q-1) , on pose c(q) = 2q d(q), et l'on obtient une solution particulière de type A 2qq ; A 2mm = A
N log2N
Toujours plus fort, toujours plus hard: si c'est pré-câblé, c'est encore plus rapide... et c'est pourquoi les concepteurs de circuits ont fabriqué des circuits dédiés, qui effectuent directement la reconstruction à partir du cas de deux; à la première étape, ce sont deux entrées distantes de N/2 qui doivent d'abord être combinées. |
"Lors
d'une réunion du Comité de Conseil Scientifique
du
Président Kennedy, en 1963, Dick Garwin (de l'I.B.M. Watson
Research Center,N.Y.) remarqua que John Tukey, assis à
côté de lui, gribouillait*, comme à son
habitude,
sur son bloc note; il jetait sur la page des formule de
transformées de Fourier, un sujet auquel
s'intéressait
Dick. En réponse à une question de ce dernier, il
lui dit
qu'il travaillait
à l'amélioration de l'algorithme de calcul de la
transformation de Fourier discrète [...] En fait, Dick était bien au fait du grand besoin d'un tel algorithme dans un vaste champ d'applications, et nourrissait de grands espoirs à ce sujet. Il fut révélé plus tard que Dick en avait pris conscience en travaillant sur un traité d'interdiction des essais nucléaires. Comme il n'était pas question que la Russie accepte, à cette époque, une inspection de ses sites, Dick étudiait la faisabilité d'une détection d'explosion nucléaire au moyen d'analyses spectrales des données provenant de sismographes. Il comprit que l'obstacle principal était le volume de calcul des transformées de Fourier qu'il faudrait effectuer." J.Cooley, J.Tukey , On the Origin and Publication
of the FFT Paper
(1993)
*John Tukey, who sat next to him,
was, in usual way, doodling
with a notepad...
|
Et si vour regardiez les Manhattan
Transfer en action?
Ou encore, la version du jeune
Kurt Elling avec, à 3' du début:"I feel so lost without my
doodlin'
Doodlin really helps me in my
mind! "
|
"
La «méthode du doublement»
était apparue dans
de nombreuses publications antérieures. Herman Goldstine
trouva
la plus ancienne référence connue dans un obscur
article
de C.F. Gauss, qui n'avait jamais été traduit du
latin. Il inspira à M.T. Heideman, D.H. Johnson, et
C.S.Burrus un article
fouillé sur l'histoire de la FFT" J.Cooley, J.Tukey , On the Origin and Publication
of the FFT Paper
(1993)
|
Gauss et les astéroïdes... (source: site de Jeff Miller) |
Il s'agissait d'un
calcul
d'interpolation relatif
à l'astéroïde Pallas. Gauss veut
modéliser sa trajectoire par une formule donnant la déclinaison
en fonction de l'ascension
droite (angles de repérage usuels en
astronomie) de la petite planète; disposant de 12
données, Gauss les avait
regroupées en 3 séries de
4; et déterminé
pour chacune les valeurs des coefficients
d'une expression de la forme p + q cos x + r sin x + s cos 2x + t sin 2x
Chaque
série donnait,
comme on peut s'y attendre, des valeurs différentes de sa
voisine, l'orbite n'ayant aucune raison de suivre une formule aussi
férocement tronquée...Puis il
considérait p,
q,
r et
s eux mêmes
comme des expressions de la forme
u + v cos 4x
+ w sin 4x
pour
tirer un développement approché
jusqu'à l'arc 6x
. Ainsi , il avait effectué à partir de 12 = 3x4, trois calculs, chacun sur le tiers des données, réassemblés ensuite: le principe d"économie appliqué au calcul manuel est le même que celui de la FFT, et Gauss envisage un produit de deux nombres quelconques. La seule différence est qu'il ne réitère pas; il n'y a qu'une seule étape! |
|
L'article n'a été publié qu'après sa mort, mais il est logique de penser qu'il est contemporain de ses travaux sur Pallas, au vu de l'exemple choisi, de son journal et de sa correspondance. Il a dû par conséquent être écrit vers 1805! |
le calcul de Gauss (Œuvres, t.3, pp308-310) |
Une fois bien
établie, il devint
clair que la FFT avait une longue et intéressante histoire,
qui
remontait jusqu'à Gauss. Mais avant l'avènement des
ordinateurs,
c'était une solution à la recherche d'un
problème! Les mathématiques,
sans doute plus encore que toute autre entreprise humaine, sont
parsemées d'idées nées en
dehors de leur époque. (Considérez, par
exemple, le travail de Fourier sur la programmation linéaire
-un sujet
dont l'utilité dépend de l'existence
d'ordinateurs, ou la découverte
par Wilbraham du phénomène de Gibbs)
T. KÖRNER,
Fourier
Analysis (1988)
|
"De nos jours, qu'il y ait eu un
temps avant la technologie numérique est au delà
de l'imaginable (au moins pour beaucoup de mes étudiants).
Presque chacun sait que, d'une certaine manière, toutes les
données qui circulent sur Internet, à travers nos
modems et nos téléphones cellulaires, ne sont que
des suites de 0 et de 1 qui donnent au monde, comme par magie, la
grande vitesse qui le caractérise aujourd'hui. Beaucoup de
cette magie vient d'une famille d'algorithmes à qui l'on a
donné le nom de "Fast Fourier Transform", FFT pour les
intimes, dont la version publiée par
Cooley et
Tukey est la plus célèbre. Et vraiment,
la FFT est probablement l'algorithme
dont l'ubiquité est la
plus évidente dans l'analyse et le traitement
des
données discrètes.". D.
ROCKMORE, The
FFT: An Algorithm the Whole
Family Can Use (2000)
|
Si l'algorithme est dans le Top 10, c'est, vous vous en doutez bien,
que les applications sont nombreuses; vous les trouverez donc dans des
pages qui leur sont spécialement dédiées. Contentons nous ici d'une
séquence délicieusement vintage, celle où Hewlett-Packard, qui
fabriquait déjà des analyseurs de Fourier électroniques, commercialisa
une nouvelle machine, la HP5451A (1972), pouvant intégrer une unité
supplémentaire dédiée à la FFT. Laquelle permet de "réduire à 15ms le calcul des fréquences d''un jeu de 1024 données, contre 1,5s au seul 5451A", temps lui-même présenté comme une nette amélioration par rapport aux modèles antérieurs.
Et si vous êtes tenté, la notice de la machine est toujours disponible en ligne! |
|||
Le schéma ci-dessous met bien évidence l'un ou l'autre des modules additionnels | |||
Des images ci-dessus, celle de gauche est tirée d'un article de présentation New Capabilities in Digital Low Frequency Spectrum Analysis
et la montre en compagnie des chefs de projets responsables de
limplémentation de la FFT. Celle de droite est... une image de
promotion commerciale! (mais... comment croyez-vous qu'on présentait
une voiture de luxe à la même époque?)
En tout cas, Fourier y est clairement montré à son avantage, et ne
manquez pas de l'agrandir, car ce que vous pourriez prendre pour des
franges de la robe est une phrase tout à fait sympathique.
|
|||