TRANSFORMÉE DE FOURIER DISCRÈTE ET APPLICATIONS À LA

TRANSFORMÉE DE FOURIER DISCRÈTE ET APPLICATIONS À LA COMPRESSION
AUDIO/VIDÉO
PHILIPPE ELBAZ-VINCENT
(version 1.1)
TABLE DES MATIÈRES
1. Motivations 1
2. Produit de polynômes et transformée de Fourier 2
3. Transformées de Fourier continue et discrète 6
4. Compression Audio/Vidéo 8
1. MOTIVATIONS
Les polynômes étant des objets fondamentaux en calcul (et en mathématiques), on souhaite
avoir des opérations efficaces sur ces derniers et en particulier pour le produit de deux polynômes.
On remarque que le produit naïf de deux polynômes de degré nnécessite O(n2) opérations dans
l’anneau de base. Déjà au 19-ième siècle, Gauss avait travaillé sur l’optimisation de ce produit. Il
avait remarqué qu’en tant que fonction, le polynôme produit R=PQ, de degré 2n, pouvait être re-
construit par interpolation en faisant 2nproduits dans l’anneau de base. Malheureusement, l’éva-
luation d’un polynôme de degré nen npoints via la méthode de Hörner demande O(n2) opéra-
tions. A priori le coût de l’évaluation des polynômes refait apparaître le n2. Gauss avait néanmoins
observé qu’en évaluant les polynômes en des points «bien choisis», on obtenait une évaluation
beaucoup performante. Cette méthode a été redécouverte plusieurs fois par la suite et avec les tra-
vaux de Fourier, le lien avec «la transformation de Fourier» est apparue.
Karl Friedrich Gauss (1777 - 1855) Joseph Fourier (1768 - 1830)
1
2 frenchPHILIPPE ELBAZ-VINCENT
Ce n’est qu’au 20-ième siècle que des algorithmes très rapides ont été mis au point, dont notam-
ment celui de James Cooley et John Tuckey qui permet d’obtenir une multiplication en O(nlog(n)).
On va étudier cette théorie et cet algorithme dans les prochaines sections, ainsi que les applica-
tions en audio et vidéo. La transformée de Fourier rapide est sans aucun doute l’un des algorithmes
les plus utilisés au Monde.
James W. Cooley (1925 - ) John W. Tuckey (1915 - 2000 )
2. PRODUIT DE POLYNÔMES ET TRANSFORMÉE DE FOURIER
Rappelons que tous les anneaux considérés sont supposés commutatifs.
Définition 2.1. Soit R un anneau, n un entier non nul et ωR.
(1) On dit que ωest une racine nième de l’unité si ωn=1.
(2) On dit que ωest une racine nième primitive de l’unité si ωest une racine nième de l’unité,
n1Rest inversible dans R et pour tout diviseur premier p de n, l’élément ω
n
p1n’est pas un
diviseur de zéro.
Remarquons tout d’abord qu’une racine de l’unité (primitive ou pas) est toujours inversible par
construction et de plus son inverse est encore une racine de l’unité (primitive ou pas). Illustrons la
définition avec quelques exemples
Exemple(s) 2.2.(1) Considérons R=F16 =F2[T]/(1+T+T4) alors la classe de Test une racine
15ième primitive de l’unité.
(2) Si R=C, alors ω=e2iπ
8est une racine 8ième primitive de l’unité.
(3) Dans R=Z/8Z, il n’y a pas de racine carré primitive de l’unité car 2 n’est pas inversible
dans R(idem pour 4). Pour des raisons de cardinalité du groupe des inversibles de R, il n’y
a pas de racine nième primitive de l’unité dans Rpour n>1.
(4) Dans R=Z/15Z, la classe de 4 n’est pas une racine carré primitive de l’unité, car la classe
de 3 est un diviseur de zéro.
Dans le cas d’un corps fini, nous avons un critère simple pour l’existence de racine nième
primitive de l’unité
frenchTRANSFORMÉE DE FOURIER DISCRÈTE ET APPLICATIONS À LA COMPRESSION AUDIO/VIDÉO 3
Proposition 2.3. «Critère d’existence de racine nième primitive de l’unité dans Fq»
Soit q un nombre primaire1et n Ntel que pgcd(q,n)=1. Alors Fqcontient une racine nième
primitive de l’unité si et seulement si n divise q 1.
Si P=Pn1
i=0aiTiest un polynôme de R[T] de degré <n, on identifiera les coefficients de Pavec
le n-uplet (a0,...,an1) de Rnet réciproquement.
Proposition et définition 2.4. «Transformée de Fourier Discrète»
Soit R un anneau, n un entier non nul et ωR une racine nième primitive de l’unité. L’application
R-linéaire
DFTω,n:RnRn
P7→¡P(1),P(ω),... ,P(ωn1)¢,
qui évalue P en les puissances de ωest appelée Transformée de Fourier Discrète (notée DFT2).
On définit le produit de convolution de deux polynômes P =Pn1
i=0aiTiet Q =Pn1
i=0biTi, non
par
C=PnQ=
n1
X
i=0
ciTi,
avec ck=Pi+j=kmod naibj. Dans Rn, le produit nest appelé produit de convolution cyclique. Si il
n’y a pas d’ambiguité on notera juste .
Notons qu’en terme de polynômes nous avons
DFTω,n(P)=
n1
X
i=0
P(ωi)Ti.
On remarque aussi que le coefficient ckdu produit de convolution cyclique est donné par
ck=X
0ÉiÉk
aibki.
On peut facilement déterminer l’inverse de la DFT
Proposition 2.5. Sous les hypothèses de 2.4, l’application DFTω,nest un isomorphisme de Rmodules
libres et de plus ¡DFTω,n¢1=n1DFTω1,n.
Démonstration. Laissé en exercice. On pourra par exemple écrire la matrice de DFTω,ndans les
bases usuelles et voir qu’il s’agit d’une matrice de Vandermonde dont les coefficients sont des
puissances de ω. On en déduit alors l’isomorphisme (car son déterminant est non nul) et son in-
verse.
L’intérêt de la DFT est de transformer un produit de convolution (i.e., le produit classique des
polynômes) en un produit «coefficient par coefficient». Si v=(v1,...,vn) et w=(w1,...,wn) sont
des éléments de Rn, on note ·le produit définit par
v·w=(v1w1,...,vnwn).
Ce produit «coefficient par coefficient» est commutatif et compatible avec l’addition. Cela fait de
Rnune Ralgèbre. On a alors
1Puissance d’un nombre premier
2Discrete Fourier Transform
4 frenchPHILIPPE ELBAZ-VINCENT
Proposition 2.6. Le morphisme DFTω,ninduit un isomorphisme de Ralgèbres entre R[T]/(Tn1)
et Rntel que
DFTω,n(PQ)=DFTω,n(P)·DFTω,n(Q).
Démonstration. Laissé en exercice (on pourra pour simplifier faire la démonstration dans le cas
Rest un corps).
Exercice(s) 2.7.Soit R=Z/29Z.
(1) Trouver une racine 4-ième primitive de l’unité dans Z/29Zque l’on notera ω. Calculer ω1.
(2) Déterminer les matrices de DFTωet DFTω1et vérifier que leur produit est égale à 4II
est la matrice identité correspondante.
Refaire l’exercice avec R=Z/17Zet ωune racine 8-ième primitive de l’unité que l’on précisera.
On a ainsi transformé un produit de polynômes (assez coûteux en général) en un produit «coeffi-
cient par coefficient» qui est beaucoup plus performant. Le point crucial est que la transformation
a ici un coût bien moindre que O(n2) comme dans le cas de l’interpolation classique décrite dans
l’introduction. On va voir que dans le cas où nest une puissance de 2, on a un algorithme récursif,
dû à Cooley et Tuckey (1965), de la transformée de Fourier rapide, qui permet de faire cette multi-
plication. L’idée de cet algorithme est la suivante :
Si nest pair, on a une factorisation immédiate de Tn1 donnée par (Tn
21)(Tn
2+1). Si ωest un
racine n-ième primitive de l’unité dans R, on remarque (à vérifier en exercice) que ω
n
2=1. Ainsi,
pour tout i<n
2,ω2iest une racine de Tn
21 et ω2i+1un racine de Tn
2+1. Par division euclidienne,
si Pest un polynôme de degré <n, il existe des polynômes Q0,Q1,r0et r1de R[T], tous de degrés
<n
2, tels que
P=(Tn
21)Q0+r0,
=(Tn
2+1)Q1+r1,
Nous en déduisons que P(ω2i)=r0(ω2i) et P(ω2i+1)=r1(ω2i+1). En posant r
1(T)=r1(ωT), nous
pouvons écrire P(ω2i+1)=r
1(ω2i). En conclusion, il suffit d’évaluer les polynômes r0et r
1aux
puissances pairs de ω. Mais on peut faire cela par récurrence (sur la puissance), puisque nest une
puissance de 2 et que ω2est une racine n
2-ième primitive de l’unité (faire la vérification). C’est le
principe de l’algorithme.
Algorithme 2.8. «Transformée de Fourier Rapide (FFT3
Entrées : n=2k, k N, P =Pn1
i=0aiTi,ωune racine nme primitive de l’unité dans R et ω2,...,ωn1.
Sortie : DFTω,n(P)=(P(1),...,P(ωn1)Rn.
(1) Si n =1retourner a0
(2) r0=P0Éj<n
2(aj+aj+n
2)Tj, r
1=P0Éj<n
2(ajaj+n
2)ωjTj
(3) Appeler l’algorithme récursivement pour calculer r0et r
1aux puissances de ω2
(4) retourner ¡r0(1),r
1(1),r0(ω2),r
1(ω2),···,r0(ωn2),r
1(ωn2)¢
Cela nous donne
Théorème 2.9. Soit n un puissance de 2 et ωune racine nième primitive de l’unité dans R. Alors
l’algorithme de la «Transformée de Fourier Rapide» est correct et calcule DFTω,nen O(nlog(n)) opé-
rations de R.
3Fast Fourier Transform
frenchTRANSFORMÉE DE FOURIER DISCRÈTE ET APPLICATIONS À LA COMPRESSION AUDIO/VIDÉO 5
Démonstration. On laisse la preuve en exercice (le calcul du nombre d’opérations est néanmoins
un peu délicat). Il suffit de vérifier que r0(ω2i) et r
1(ω2i) sont bien données par les expressions que
l’on déduit, après récursion, de l’étape (2) de l’algorithme 2.8.
On peut alors en tirer l’algorithme de calcul pour le produit de convolution
Algorithme 2.10. «Produit de convolution rapide»
Entrées : n=2k, k N, P,QR[T],deg(P)<n, deg(Q)<n, ωune racine nième primitive de l’uni
dans R et ω2,...,ωn1.
Sortie : PQ
(1) Calculer ω2,...,ωn1,
(2) u=DFTω,n(P), v =DFTω,n(Q),
(3) w=u·v,
(4) retourner n1DFTω1,n(w).
Définition 2.11. «Anneau à FFT»
On dira que R est un anneau à FFT (ou tout simplement est à FFT) si pour tout k N, R admet une
racine 2kième primitive de l’unité.
Par exemple Cou plus simplement Qsont à FFT
Théorème 2.12. Si R est un anneau à FFT et n N, on peut multiplier deux polynômes de degrés au
plus n en O(nlog(n)) opérations de R.
On voit que c’est mieux que les O(n2) opérations de la convolution usuelle.
Remarque 2.13.En fait l’algorithme de FFT décrit (celui de Cooley et Tuckey) s’appelle aussi «FFT
rapide diadique (ou 2-adique)» car nest une puissance de 2. On pourrait faire en fait un algorithme
FFT «p-adique» (ppremier), qui serait de complexité «raisonnablement» similaire. On verra en
exercice la version 3-adique.
Exercice(s) 2.14.(1) Soit R=Z/17Z. On représentera ses éléments comme un entier compris
entre 0 et 16. On considère les polynômes P=5T3+3T24T+3 et Q=2T35T2+7T2.
(a) Montrer que ω=2 (i.e., plus exactement la classe de 2 dans Z/17Z) est une racine
8-ième primitive de l’unité, dont on déterminera son inverse.
(b) Calculer le produit PQ en utilisant la FFT. On décrira pas à pas l’algorithme de la FFT
sur cet exemple.
(c) Vérifier le calcul via la produit de convolution et via le produit des matrices associées
à DFTω.
(2) Soit R=Z/17Z.
(a) Trouver une racine 4-ième primitive de l’unité dans Z/17Zque l’on notera ω. Calculer
ω1.
(b) Déterminer les matrices de DFTωet DFTω1et vérifier que leur produit est égale à 4I
Iest la matrice identité correspondante.
(c) On représentera les éléments de Rcomme un entier compris entre -8 et +8. On consi-
dère les polynômes P=5T3+3T24T+3 et Q=2T35T2+7T2. Calculer le produit
PQ modulo T41 en utilisant la FFT et avec la racine 4-ième primitive de l’unité ω
trouvée ci-dessus. On décrira pas à pas l’algorithme de la FFT sur cet exemple. On
vérifiera le produit obtenu en effectuant le produit de convolution usuel.
1 / 9 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !