Escolar Documentos
Profissional Documentos
Cultura Documentos
Thierry Audibert
thierry.audibert@maths2b.fr
20 decembre 2013
Transformee de Fourier
2.1 Transformee de Fourier : point de vue e lementaire . . . . . . .
2.2 Produit de convolution (fonctions integrables) . . . . . . . . .
2.3 Transformee de Fourier et convolution : formulaire . . . . . .
2.4 Les corriges et demonstrations des sous-sections (2.1) et (2.2)
.
.
.
.
3
3
4
7
8
Etude
du signal
3.1 Premi`ere approche du spectre . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Echantillonnage,
theor`eme de Shannon et Nyquist . . . . . . . . . . . . . . . . .
3.3 Corriges des exercices des sections (3.1) et (3.2) . . . . . . . . . . . . . . . . .
12
12
16
22
.
.
.
.
.
30
30
31
35
37
38
Lanalyse du son
5.1 Enregistrement aux formats .wav et .text avec goldwave . . . . . . . . . . . . . .
42
42
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Le cours sur les series de Fourier nous apprend que lon peut representer une fonction ou un signal
T periodique (et continu par morceaux) comme somme dune serie trigonometrique
2int
cn e T
dans laquelle les fonctions trigonometriques ont des periodes qui divisent T.
La plupart des signaux nadmettent pourtant pas une representation aussi simple. Ainsi, les sons
les plus courants, quils soient produits par un instrument, par la voix, par le fonctionnement dun
moteur, ne sont pas des signaux periodiques. Nous verrons pourtant que lon peut, en faisant varier
la duree dobservation, faire apparatre la plupart des sons comme une superposition de signaux
sinusodaux. Les memes outils mathematiques et numeriques nous permettront detudier des signaux qui necessitent une observation sur de grandes durees comme les variations des hauteurs de
maree. On concoit avec ces deux exemples que la definition du signal va devenir assez generale :
pour nous ce sera une fonction du temps, suffisamment reguli`ere pour se preter a` nos calculs.
On propose ici une approche quasi-experimentale qui va nous permettre de debroussailler le
probl`eme. Cest pourquoi il nest pas indispensable de connatre tous les resultats de la section
2 sur la transformation de Fourier avant daborder la section 3 et le cur de lanalyse du signal.
Chaque section est suivie dun resume (sous forme de formulaire ou de bilan provisoire) ce qui
devrait faciliter une lecture avec aller-retours.
Plan de lecture possible
1. Commencer par la definition de la transformee de Fourier page 3 et lexercice 1.
2. On pourra decouvrir ensuite la notion de spectre dun signal avec lexercice 9 page 13,
3. et poursuivre par letude de la problematique de dechantillonnage avec le theor`eme de
Nyquist et Shannon (forme simplifiee) en section 3.2.
4. La transformation de Fourier discr`ete et lalgorithme de transformation rapide sont presentees
en section 4.
5. Des applications concr`etes sont proposees dans la section ??. Cest a` mon avis l`a que les
choses seclairent.
Transformee de Fourier
2.1
eix f (x) dx
(2.1)
F(f )() = f () =
R
La definition varie dans la litterature dun facteur multiplicatif autour de la pulsation et on peut
aussi poser
Z
1. On suppose que f est une fonction en escalier sur [a, b]. Montrer que
Z b
lim
eit f (t) dt
+ a
[b,+[
lim
eit f (t) dt = 0.
corrige en 2.4.2
Exercice 3 derivation
1. Donner une CS pour que la transformee de Fourier de f soit derivable. Donner alors une
expression de sa derivee.
2. Donner une CS pour que la transformee de Fourier de f 0 soit definie. La calculer dans ce
cas.
corrige en 2.4.3
Exercice 4 transformee de Fourier dune Gaussienne
2
Soit f definie par f (t) = eat , avec a > 0.
1. Montrer que sa transformee de Fourier est de classe C .
2. Montrer que f verifie une e quation differentielle lineaire et la calculer.
corrige en 2.4.4
2.2
1
Definition 2 produit de convolution
Soient f et g deux fonctions continue par morceaux sur R. Lorsque la fonction t f (x t)g(t)
est integrable, on pose
Z
f g(x) =
f (x t)g(t) dt
(2.2)
R
2
et dt = .
R
s0
Z
f (x0 t)s (t) dt
(c) Etudier
la convergence uniforme.
corrige en 2.4.6
f (t)eit dt.
f () =
R
Z
f g =
g f.
) =
eis (s) ds.
R
Montrer que
f() g() =
ZZ
R2
2.3
Si f est une fonction integrable sur R, sa transformee de Fourier est definie sur R, continue et
bornee sur R sa limite est nulle en : lim+ f() = 0 et on a les formules suivantes :
lorsque la transformee est definie par
df()
d
Si f et f 0 sont integrables,
fb0 ()
Si ga (t) = e
at2
gba ()
f[
g
eix x f (x) dx
i f()
r
,
2
r
4a
=
e
g
()
a
a 1/4a
f g.
df()
d
Si f et f 0 sont integrables,
fb0 ()
2 i
e2 i x x f (x) dx
2, i f()
Si ga (t) = eat ,
gba ()
f[
g
2
r
e a
=
g 2 ()
a
a /a
f g.
2.4
Z
Z
it
dt
|f (t)| dt
|f ()| = f (t)e
R
()
it
(t) dt =
eit dt
(b a)
si = 0
i it b
e
si 6= 0
a
(b a)
si = 0
= 2
ba
sin ba ei 2 si 6= 0
2
sin ba w
2
Cette fonction a pour module 2
dont on sait quelle nest pas integrable sur R
w
(mais elle admet une integrale impropre).
Corrige n 2.4.2 corrige 2 (lemme de Riemann Lebesgue)
1. Les fonctions en escalier : si est une fonction en escalier attachee a` la subdivision (tj )j du
segment [a, b], on a
Z b
n1 Z t
X k+1
int
int
=
(t)e
dt
e
dt
k
a
n1
X Z tk+1
k=0
tk
k=0
tk
int
e k+1 eintk
dt 2 sup |k ||b a|.
|k |
in
n
Z b
Z b
Z b
int
int
int
(t)e dt .
f (t)e dt (f (t) (t))e dt +
a
Z
Z
f (t)eint dt =
Z
f (t)eint dt +
f (t)eint dt
[a,b]
I\[a,b]
Z
f (t)eint dt + .
[a,b]
g() = if (t)eit
verifie les memes hypoth`eses. On supposera donc pour aller plus loin dans les calculs que
de plus, t tf (t) est integrable sur R. Alors
g := t
g() = i t f (t)eit est integrable sur R;
g()f (t)eit est continue ;
il existe une majoration uniforme g() |t f (t)| par une fonction integrable sur R.
Z
eix x f (x) dx
R
2. On suppose maintenant que f est integrable et derivable sur R et que f 0 est integrable elle
aussi. On peut donc definir la transformee de Fourier de f 0 qui est
Z
0
0
Dans cette formule les deux integrales sont definies. En consequence la partie toute integree
a elle meme un sens lorsque f et f 0 sont toutes deux integrables. Pour se convaincre que
cette limite est nulle on int`egre les memes fonctions sur lintervalle [0, +[ par exemple.
Cela montre que
Z +
Z
+
eix f 0 (x) dx = eix f (x) 0 + i
eix f (x) dx
0
et l`a on voit clairement que si la partie toute integree a une limite, lim+ f = 0.
3. Le formulaire est en page 7
Corrige n 2.4.4 de lexercice 4 (transformee dune gaussienne)
R
R
2
1. f() = R eit eat dt = R h(, t) dt.
La fonction h admet des derivees partielles par rapport a` a` tous les ordres qui sont
k
2
h(, t) = (i t)k eit eat = hk (, t).
k
Pour tout k 0, on a
t hk (, t) integrable sur R;
t hk (, t) continue sur [A, A];
2
il existe k , integrable sur R telle que pour (, t) [A, A]R, |hk (, t)| = |t|k eat
2
Ak eat = k (t).
R
Ainsi, f est de classe C sur tout [A, A] et donc sur R et f0 () = R h1 (, t) dt.
2. En derivant, nous avons
Z
Z
2
f0 () =
h1 (, t) dt = i
teat eit dt
R
"R 2
#
Z at2
eat i t
e
= i
e
+i
(i)eit dt
2a
R 2a
f () =
e 4a
(2.3)
a
10
11
3 Etude
du signal
1
Pour letude du signal on preferera la definition
F(f )() = f() =
e2ix f (x) dx
3.1
On propose ici une premi`ere exploration de la notion de spectre dun signal. On aborde la question avec le calcul et lobservation graphique des transformees de Fourier de fonctions a` support
compact et sommes de sinusodes. La notion de spectre est alors simple et intuitive.
12
Exercice 9
(b) Calculer puis representer graphiquement dans une feuille Maple ou Scilab les transformees de Fourier de fa, pour = 0.7 et a = 10, 20, 50, par exemple. Quobservet-on ? Justifier les observations.
(c) La fonction fd
egrable sur R? La fonction
a, est elle int
2ix
fd
a, () e
admet elle une integrale impropre sur R? Le cas e cheant, calculez la transformee de
Fourier inverse de fd
a, .
2.
(a) On definit
g := (a, t) (2 cos (2 1 t) + 5 cos (2 2 t) + cos (2 3 t)) H (a t) H (a + t)
o`u H designe la fonction e chelon (H(a t)H(a + 1) est e gale a` 1 sur [a, a] nulle
en dehors). Representer graphiquement la transformee de Fourier de t g(a, t) sous
MAPLE ou Scilab. Quobserve-t-on ? Que se passerait il avec lautre definition usuelle
de la transformee de Fourier ?
(b) On pose N (t) = fN, (t).
Soit > 0. Montrer que la suite des transformees de Fourier
c
N
N
, est uni-
Evaluez
c
N (). Que dire du comportement asymptotique de (N ())N ?
Meme question pour la transformee dune combinaison lineaire
X
Ai cos (2 i t) .
i
corrige en 3.3.1
Exercice 10 Le spectre permet il de reconstituer le signal ?
On consid`ere une fonction g continue par morceaux definie sur lintervalle [0, T ], T > 0.
1. Montrer que les coefficients de Fourier cn (
g ) n Z, de son prolongement T periodique
sexpriment simplement en fonction de la transformee de Fourier de g.
2. fichier : AnTransFourierAnSignal.mws
13
2. Montrer que lon peut exprimer g sous la forme dune serie de fonctions dont les termes
n
dependent des seules ( !) valeurs de son spectre, e chantillonnees en les points , n Z.
T
Preciser le type de convergence de cette serie.
3. Exemple calculatoire et graphique : choisir un signal triangulaire sur [0, T ] arbitraire, calculer formellement sa transformee de Fourier, e crire un bref programme donnant les sommes
partielles de la serie de la question precedente et comparer au signal dorigine.
corrige en 3.3.2
14
Bilan provisoire
1
La transformee de Fourier dun signal sinusodal de duree finie 2a et de frequence est un sinus
cardinal dont les maxima (en valeur absolue) sont atteints en et verifient :
fd
,a ()
a+
a.
40
30
20
10
15
10
w
5
10
15
1 X n
g(t) =
g
e T
T n=
T
(3.1)
g(t+) + g(t)
1 X n
=
g
e T
2
T n=
T
15
(3.2)
3.2 Echantillonnage,
theor`eme de Shannon et Nyquist
Vocabulaire
Nous dirons quun signal est analogique lorsquil est modelise par une grandeur susceptible de
prendre des valeurs appartenant a` un intervalle de R (on parle densemble continu). Cest le cas
lorsque le signal est produit par des composants e lectroniques, des instruments de mesure...
Nous dirons quun signal est numerique lorsque lensemble des valeurs quil est susceptible de
prendre est discret (chaque e lement de lensemble est isole des autres 3 ) . Cest le cas dun signal
obtenu par e chantillonnage ou produit par un algorithme...
En pratique, lorsquon veut traiter un signal, par exemple determiner son spectre, on est le plus
souvent amene a` le discretiser, a` lechantillonner. Cest a` dire que lon mesure des valeurs en
des instants le plus souvent reguli`erement espaces t0 + kT. On parle alors dechantillonnage de
1
frequence fe = . Ce que nous proposons ici, cest detudier les probl`emes que pose lechantillonT
nage et de presenter quelques solutions.
Exercice 11 repliement de spectre
1. On consid`ere ici deux signaux sinusodaux f (t) = cos(1 t) et g(t) = cos(2 t) avec
|1 | =
6 |1 |. On mesure ces signaux a` des instants k T, k N.
1
les valeurs f (k T ) et g (k T ) seront elles confonPour quelles valeurs de T ou de fe =
T
dues pour tout k Z?
i
Verifier que si fe > |f1 | + |f2 |, avec fi =
, ce phenom`ene ne se produit pas.
2
Construire une figure comme celle-ci o`u deux signaux de frequences f1 et f2 sont indiscernables par un e chantillonnage de frequence fe .
16
k=0 ak e
1
k
de frequence fe = > 2 sup |fk | (avec fk =
) permet de reconstituer le signal g comme
T
2
somme dune serie de fonctions.
sin x
.
x
1. Soient R,, T > 0 et f la fonction 2periodique qui concide avec x eix sur
[, [.
(a) Donner une representation graphique de Im(f ) sur [5, 5] pour = 1/2, =
9/10...
(b) Calculer la serie de Fourier de f et e tudier avec soin sa convergence. On precisera en
particulier la somme en les points x = 0, .
1
En deduire une expression de
puis de de cotan x comme somme dune serie.
sin x
2. Soient (a0 , a1 , ..., aN ) une suite de complexes et (0 , 1 , ..., N ) une suite de reels.
(a) Montrer que la fonction g definie par
g(t) =
N
X
ak eik t
k=0
1
=
.
|k |
2|fk |
On commencera par e tablir le resultat pour un terme eik t ...
d`es que T est inferieur a` la frequence de Nyquist : T
corrige en 3.3.4
17
Bilan provisoire
P
ik t ,
Frequence de Nyquist : on appelle frequence de Nyquist dun signal g(t) = N
k=0 ak e
1
k
la frequence f0 =
= 2 sup |fk | (avec fk =
). Cest la frequence dechantillonnage au
T0
2
dessus de laquelle il est theoriquement possible de reconstituer un signal comme somme dune
serie (exercice 12), en dessous de laquelle ce nest en general pas possible (exercice 11).
Nous generaliserons cette definition en section ??.
Theor`eme de Shannon, version e lementaire
Theor`eme 2
P
ik t . Pour toute fr
equence superieure a` la frequence
Soit g un signal de la forme g(t) = N
k=0 ak e
1
de Nyquist, fe = > 2 sup |fk |, g verifie la formule dinterpolation de Shannon :
T
X t
g(t) =
s
n g(nT )
(3.3)
T
nZ
1 X n
g(t) =
g
e T
T n=
T
X t
g(t) =
s
n g(nT )
T
nZ
Celle de gauche reconstitue le signal a` partir dun e chantillonnage des frequences, celle de droite,
a` partir dun e chantillonnage des temps.
Que faire en pratique ?
Bien e videmment dans des conditions experimentales ou numeriques, il nest ni possible dechantillonner
sur une infinite de termes, ni de sommer sur une infinite de termes dans la somme.
En pratique, on filtre le signal pour e liminer les frequences depassant un certain seuil. Connaissant
ce seuil (par exemple 22000Hz) on dispose dune frequence de Nyquist (44000 Hz, dans lexemple
precedent).
On choisit alors une frequence dechantillonnage superieure a` la frequence de Nyquist et on
prel`eve un nombre dechantillons aux instants 0,T,2T,...,nT, suffisant pour couvrir lintervalle. On
calcule alors la somme partielle construite sur ces e chantillons. La feuille de travail Maple qui suit
illustre cela.
18
La formule de Shannon
>
(2.1)
On se propose de reconstituer un signal partir d'un chantillonnage. On construit une
fonction g pour tester la convergence de la formule de Shannon.
>
(2.2)
fny
est la frquence de Nyquist de la fonction g.
ech(g,f,n) permet d'chantillonner 2n+1 valeurs de la fonction g aux instants 0, T, 2T, ..., 2nT,
la frquence f=1/T.
sha(e,f,t) calcule la somme partielle de la srie de Shannon construite sur l'chantillon e
(comportant un nombre impair de termes), de frquence f en t;
>
(2.3)
On teste avec la frquence de Nyquist et en faisant varier la taille de l'chantillon
>
19
>
>
20
>
>
21
3.3
(a) Le calcul donne (penser a` e crire la fonction cos comme somme dexponentielles) :
pour 6= :
"
#a
Z a
e2i()x
e2i(+)x
2 i x
cos (2 x) e
dx =
4i( )
4i( + )
a
a
Il apparait que
les oscillations sont tr`es amorties en dehors dun voisinage de = 0.7 qui est la
frequence du signal ;
22
plus la plage dobservation du signal est large (2a), plus lamplitude maximale atteinte en est grande avec comme on peut lobserver graphiquement ou le deduire
du calcul precedent,
f() a
a+
(c)
2.
(a) Le calcul est sans myst`ere, simple superposition qui donne avec a = 100 et
g : x 7 1 + 2 cos (1.0 x) 3 cos (3.0 x) + 4 cos (6 x) ,
On retrouve ici les frequences et des amplitudes maximales aux points = i qui
sont proportionnelles aux coefficients des signaux de periode i .
sin x
. Nous avons donc en dehors de ,
(b) Notons s la fonction x
x
sin (2( )a) sin (2( + )a)
fd
+
= a (s(2( )a) + s(2( + )a))
,a () =
2( )
2( + )
23
1
, nous avons
|x|
d
f,a ()
1
1
+
4| | 4| + |
et si ]
/ , + [] , + [, ie : | | et | + | cela donne
1
d
.
f,a ()
2
Nous avons dej`a note que pour un signal sinusodal
f()
a+
il vient donc
fd
,N ()
N +
N.
Cela explique lobservation faite avec le signal composite : les valeurs en les points i
sont e quivalentes a` Ai a o`u Ai est lamplitude de la composante Ai cos(i t)
Corrige n 3.3.2 de lexercice 10
1. Les coefficients de Fourier de g sont donnes par la formule :
Z
Z
1
1
1
1 T 2in/T
2in/T
e
g(t) dt =
e
g(t) dt = g
.
cn (
g) =
T 0
T R
T
T
2. Comme g est continue par morceaux , sa serie de Fourier converge en moyenne quadratique
vers g sur R. On e crit donc
2int
2int
1 X n
g(t) =
cn (
g )e T =
e T
g
T n=
T
n=
Lorsque g est continue par morceaux , la serie converge en moyenne quadratique vers g
sur [0, T ];
lorsque g est de classe C 1 par morceaux, elle converge simplement vers la regularisee de
g(0+) + g(T )
g (en 0 et T la limite est donc
;
2
1
lorsque g est continue et de classe C par morceaux, elle converge normalement vers g.
3. Exploration numerique et graphique :
(a) On consid`ere par exemple un signal triangulaire sur lintervalle de temps [0, T ]. Connaissant son spectre (ou transformee de Fourier) le signal est reconstitue avec la formule
g(t) =
1 X n 2int
g
e T
T n=
T
T2
1 1 + 2 ei wT e2 iT w
1
g
(0) =
, g() =
=
(1 cos T )eiT
2
2
4
4
w
2 2
24
restart;
with(plots);
g :=(T, x)-> Heaviside(x)*Heaviside((1/2)*T-x)*x
+ Heaviside(T-x)*Heaviside(x-(1/2)*T)*(T-x);
G := plot(g(2, x), x = -2 .. 4, color = red, thickness = 3);
Fg := (T, w)-> Int(exp(-(2*I)*Pi*w*t)*t, t = 0 .. (1/2)*T)
+ Int(exp(-(2*I)*Pi*w*t)*(T-t), t = (1/2)*T .. T);
c0 := simplify(value(Fg(T, 0));
simplify(value(Fg(T, w)));
1/4 T 2
1 + 2 ei wT e2 iT w
2 w2
Tg :=(N, T, t) -> simplify(
((1/4)*T2
+sum(value(Fg(T, k/T))*exp((2*I)*Pi*k*t/T), k = 1.. N)
+sum(value(Fg(T, -k/T))*exp(-(2*I)*Pi*k*t/T), k = 1.. N))/T);
Tg(5, T, t);
1
t
t
t
2
T 1800 cos 2
200 cos 6
72 cos 10
+ 225 2
900
T
T
T
1/4
25
26
nk Z, 1 k T = 2 k T + 2nk
k Z, ou
nk Z, 1 k T = 2 k T + 2nk
nk Z, k T
k Z, ou
nk Z, k T
nk
2 nk
=
1 2
f1 f2
2 nk
nk
=
1 + 2
f1 + f2
1
n1
=
et on verifie sans peine que de telles valeurs
fe
f1 f2
de T ou de la frequence dechantillonnage conduiront a` des valeurs identiques de f (kT ) =
g(kT ) (on aura alors des solutions avec nk = kn1 ).
Pour e tre certain que ce phenom`ene ne se produira pas on choisira
En faisant k = 1, il vient T =
T <
1
1
1
2
=
;
fe
f1 + f2
2. Dans ce cas , dire que pour tout k Z, f (kT ) = g(kT ) cest dire que
nk Z, (1 2 )k T + (1 2 ) = 2nk
k Z, ou
nk Z, (1 + 2 )k T + (1 + 2 ) = 2nk
En faisant k = 0 on voit quil est necessaire que 1 2 = 2n0 ou 1 + 2 = 2n0
Chacune de ces conditions est suffisante et conduit a` une condition sur T qui sexprime
n1 n0
.
T =
f1 f2
27
F IGURE 1 Im(f0.9 )
(b) si Z, cest clair : tous les coefficients cn (f ) sont nuls sauf c et la fonction est sa
propre somme de Fourier d`es que n ||.
Sinon
"
#
Z 2
1
1
ei(n)
ix inx
cn (f ) =
e e
dx =
= s(( n)).
2 0
2 i( n)
n=
X
sin()
f (x+) + f (x)
= cos() =
, si x = (2k + 1).
2
( n)
n=
X
1
y
+2
.
y
y 2 n2 2
n1
28
eix = eik t =
s((t/T n))eink T .
nZ
Ou encore
g(t) =
s((t/T n))g(nT ).
nZ
1
=
.
|k |
2|fk |
Enfin, lorsque g est comme dans lenonce combinaison lineaire de fonctions de ce type, il
29
Se pose maintenant la question du calcul effectif de la transformee de Fourier dun signal temporel
(ou fonction) f a` partir dun e chantillonnage. Nous allons voir comment une approximation par
la methode des rectangles fait apparatre naturellement la transformee de Fourier discr`ete. Cette
relation entre integrale de Fourier et transformee de Fourier serait de peu dinteret si nous ne
disposions pas dalgorithmes de calculs rapides pour cette derni`ere. Nous donnons un apercu de
ces methodes en indiquant leur utilisation sous Maple et Scilab.
4.1
Se pose maintenant la question du calcul effectif de la transformee de Fourier dun signal temporel
represente par une fonction f. Quelques observations prealables simposent.
Le signal f est observe sur une periode restreinte, [T0 , T1 ].
On ne dispose en pratique que dun e chantillonnage de la fonction f entre des instants T0 et T1 .
Cest a` dire que lon connat seulement des valeurs f (tk ) pour t0 = T0 , ..., tN = T1 .
On veut calculer
Z T1
Z
f (t) e2 i t dt
f (t) e2 i t dt.
f() =
T0
On obtient une valeur approchee de cette derni`ere integrale avec une somme de Riemann :
Z
T1
f (t)e
2 i t
N
1
X
dt
T0
k=0
T1 T0
, il
N
(4.1)
k=0
Il va de soi que lon ne peut pas calculer toutes les valeurs f(). Il va falloir choisir. On en
calculera N. On va vite voir lesquelles, pourquoi et comment apr`es avoir defini la notion de
transformation de Fourier discr`ete.
Definition 3 Soit (k )0kN 1 une suite de N nombres. On appelle transformee de Fourier
discr`ete de cette suite, la suite finie de N nombres e galement, definie par
T F D()(n) =
N
1
X
2i
k e
kn
N , n = 0, 1, ..., N 1.
(4.2)
k=0
Exercice 13
1. Expliciter la matrice N de la transformation de Fourier discr`ete a` laide de N
1
et montrer que linverse de N est N .
N
30
2i
=e N .
4.2
Le calcul de la TFD pourrait saverer laborieux pour de grandes valeurs de N : le produit matricevecteur brutalement programme demande O(N 2 ) operations. En 1965, redecouvrant une methode
dej`a mise en uvre par Gauss, Cooley et Tuckey, ont remarque que lon pouvait reduire ce calcul
a` O(N ln(N )) operations... Depuis, de nombreuses variantes de cet algorithme, connues sous le
nom de transformees de Fourier rapides (TFR ou FFT), ont vu le jour, les plus recentes visant a`
sadapter a` larchitecture des processeurs pour reduire encore les temps de calculs 4 et limiter les
erreurs lors des calculs en flottants.
Sans algorithme rapide, le calcul des N sommes
Y [n] =
N
1
X
nk
X[k]N
k=0
demande O(N 2 ) operations comme nous lavons dej`a remarque ; il y a bien sur plusieurs facons
de lenvisager et nous ninsisterons pas sur cette question autrement que par lexercice 14 qui suit :
Exercice 14 TFD sans algorithme rapide
1. Dans lexemple qui suit, o`u le meme algorithme est propose en Maple et en Scilab, denombrer
les additions et les multiplications (on prendra garde au decalage des indices, ici Y =
[Y [1], ..., Y [N ]] est indexe de 1 a` N et non pas de 0 a` N-1 et non pas [Y [0], ..., Y [N 1]]
comme dans nos formules).
2. Justifier que lon calcule bien la transformee de Fourier discr`ete du vecteur X.
3. Y aurait il inconvenient a` construire la matrice N pour ensuite effectuer le calcul Y =
N X? Comparer les operations.
4. a` distinguer du nombre doperations
31
Avec Maple
N
X
w
#
:=
:=
:=
au
8;
Array(1 .. N, i-->x[i-1]);
z;
lieu de exp(-(2*I)*Pi/N) pour v
erification rapide
wn := 1;
Y := Array(1 .. N);
for n to N do
Y[n] := 0;
wnk := 1;
for k to N do
Y[n] := Y[n]+wnk*X[k];
wnk := wnk*wn
end do;
wn := wn*w
end do;
Y(7);
x0 + z 6 x1 + z 12 x2 + z 18 x3 + z 24 x4 + z 30 x5 + z 36 x6 + z 42 x7
Avec N :=5 et w :=exp(-(2*I)*Pi/N) en place de w :=z, nous obtenons pour Y(4),
3
6
9
12
x0 + e2/5 i x1 + e2/5 i x2 + e2/5 i x3 + e2/5 i
x4
Comme toujours, la verification est immediate avec un logiciel de calcul formel ; on voit ce que lon
a programme : cest lavenir !
32
N
1
X
nk
X[k]N
k=0
Y [n1 + n2 N2 ] =
NX
1 1
NX
2 1
k1 =0
k2 n1 k1 n1 n2 k1
X[k1 + k2 N1 ]wN
wN
N1
2
(4.3)
k2 =0
Ainsi, pour chaque valeur de n (ou chaque couple (n1 , n2 ), nous avons a` calculer N1 TFD de taille
N1 :
NX
2 1
k2 n1
X[k1 + k2 N1 ]wN
2
k2 =0
k1 n1
a` multiplier ce resultat par wN
et a` calculer la TFD de taille N2 du vecteur obtenu. Cela conduit
a` une procedure recursive qui secrit plus facilement lorsque N1 est invariablement e gal a` 2, ce qui
suppose que N est de la forme N = 2p .
2. Ecrire
un algorithme recursif du calcul de Y lorsque Y est une puissance de 2. Preciser la
condition darret ou linitialisation.
33
Bilan
Soit N un entier naturel non nul. La transformee de Fourier discr`ete (TFD ou DFT) dordre N
definie par
!
N
1
X
nk
(Xk )k CN (Yn )n =
Xk N
CN ,
k=0
1
1
1
1
1
N
N 2
N 3
1
N 2
N 4
N 6
N =
1
N 3
N 6
N 9
..
..
..
..
.
.
.
.
1 N (N 1) N 2(N 1) N 3(N 1)
...
...
...
...
..
...
N (N 1)
2(N
1)
,
3(N
1)
..
N (N 1)
1
N .
dinverse 1
N =
N
Attention cette representation matricielle, utile pour les demonstrations, nintervient pas dans les
calculs effectifs (comme dans la plupart des cas).
n
Lorsquon dispose dun e chantillonnage de taille N de f sur [T0 , T1 ], pour toute valeur =
,
T
T1
f (t) e
T0
2 i t
T 2 i T0
e
T F D()( T ) + O
dt =
N
1
N
(4.4)
Linteret de cette formule cest quon dispose pour le calcul dalgorithmes de complexite O(N ln N )
lorsque N est une puissance de 2. On se ram`ene a` ce cas en completant (par interpolation le plus
souvent) les donnees dont on dispose pour se ramener a` 2N points. On dispose par ailleurs dalgorithmes rapides plus sophistiques qui permettent de traiter les releves en N points sans que N ne
soit une puissance de 2 (voir larticle [2], disponible sur la toile, qui decrit ce type dalgorithme et
en detaille un qui est par ailleurs implemente sous Scilab - voir laide de Scilab version 5.4.0).
34
4.3
Donner une expression des coefficients de Fourier de h en fonction de ceux de h0 . Comparer avec les coefficients de Fourier de g.
3. Peut on en dire autant pour des polynomes 5
X
bk sin(kt/T )?
k
35
Gj
= cj
n1
X
k=0
j
pk cos (2k + 1)
2N
(4.5)
c = 1
j
2
cj = 1
sij = 0,
sinon.
Le choix de sera fixe par la suite. Lexercice qui suit a pour but de determiner la bijection
reciproque et son expression :
T CDI(G)k0 = pk0
N
1
X
j=0
j
cj Gj cos (2k0 + 1)
2N
(4.6)
j
cj Gj cos (2k0 + 1)
.
2N
N
1
X
c2j cos
j=0
2 =
N
1
X
j=0
j
(k + k0 + 1)
N
j
c2j cos (2k0 + 1)
.
N
(b) Calculer chacune delles avec soin (en distinguant suivant que k = k0 ou pas, que
k + k0 est pair ou impair.
(c) En deduire que la T CD et sa matrice DN sont inversibles, donner une expression de
chacune delles. Que dire des colonnes de DN ?
3. Choisir pour que les coefficients et de la formule (4.6), soient e gaux.
4. Calculer
2
2 (cos(1/16 )) + 2 (cos(3/16 )) + 2
5
cos( )
16
36
2
2
7
+ 2 cos( ) ,
16
4.4
On introduit ici la TCD et son inverse en dimension 2 et on essaiera de montrer comment elle
intervient pour la compression du signal audio ou video.
On definit de facon analogue la transformee en cosinus discr`ete pour un signal p(x, y) dependant
de deux param`etres discrets. Penser pour fixer les idees que la matrice carree
P = [p(x 1, y 1)]1xN,1yN ,
formee des coefficients des (p(x, y))0x<N,1y<N represente une image de N 2 points (ou pixels),
x et y representant les abscisse et ordonnee de ces points, p(x, y) un decrivant une intensite de
couleur par exemple...
T CD2 (i, j)
T CDI2 (x, y)
N
1 N
1
X
X
i
j
1
p(x, y) cos (2x + 1)
ci cj
cos (2y + 1)
(4.7)
2N
2N
2N
x=0 y=0
N 1 N 1
i
j
1 X X
avec toujours,
c = 1
j
2
cj = 1
sij = 0,
sinon.
Exercice 19 On note toujours DN la matrice de la TCD en dimension 1, qui est donc une application de Cn dans lui-meme.
1. Soit P la matrice carree de taille N definie par
P = [p(x 1, y 1)]1xN,1yN .
Exprimer T CD2 (P ) en fonction de P, de DN et de sa transposee.
2. En deduire que T CD2 est inversible et verifier que son inverse est bien donnee par la formule (4.8).
3. Calculer, lorsque, P est une matrice 1024 512, le nombre dadditions, de multiplications
necessaires pour calculer sa T CD.
4. On partage la matrice en blocs 8 8. Combien faut il dadditions, de multiplications pour
calculer le T CD de chaque bloc ? Quel est le cout total ?
37
4.5
T F D()(n) =
N
1
X
k e
2i
kn N 1
X
kn
N =
k N
,
k=0
k=0
(n1)(k1)
...
N 2
N 3
...
N 2
N 4
N 6
...
N 3
N 6
N 9
...
..
.
..
.
..
.
..
.
..
1 N (N 1) N 2(N 1) N 3(N 1) . . .
, soit
N (N 1)
2(N
1)
3(N
1)
..
N (N 1)
Cest la matrice de Vandermonde attachee aux racines N i`emes de lunite. Elle est donc
inversible. Pour determiner son inverse, un calcul explicite pour N = 2, 3, 4 permet de
conjecturer. Calculons N N pour verifier
N
N
X
X
(n1)(j1) (j1)(k1)
N
N
N N n,k =
N n j N j k =
j=1
j=1
(
N
0
nk
=1
si N
sinon (somme des termes d0 une s.g.).
La racine N e tant primitive (ses puissances engendrent le groupe des racines de lunite),
seuls les termes diagonaux sont non nuls. On a donc
1
N =
2. Rappelons que tk = t0 + (T1 T0 )
0, 1, ..., N 1 :
T F D()(n) =
N
1
X
1
N .
N
k
k
tk t0
soit
=
. Il vient donc, pour n =
N
N
T1 T0
kn
f (tk )N
k=0
N
1
X
k=0
38
f (tk )e
2i
kn
N
T1
f (t) e2 i t dt =
T0
lim
N +
T F D()(n) =
N 1
k T
T 2 i T0 X
e
f (tk ) e2 i N
N
!
,
k=0
n
,
T
kn
f (tk )N
=
k=0
N
1
X
k=0
f (tk )e
2i
N
kn
N
1
X
f (tk )e2 i k
T
N
k=0
en dautres termes et en se souvenant que la methode des rectangles converge en O
Z
T1
2 i t
f (t) e
T0
T 2 i T0
dt =
e
T F D()( T ) + O
N
1
N
1
N
:
Le programme
w := exp(-(2*I)*Pi/N);
wn := 1;
Y := Array(1 .. N);
for n to N do
Y[n] := 0;
wnk := 1;
for k to N do
Y[n] := Y[n]+wnk*X[k];
wnk := wnk*wn
end do;
wn := wn*w
end do
2. Ce que lon calcule : la preuve formelle est dans le cours dinformatique [1].
3. Cout de la construction de la matrice N :
39
0 n1 N 2 1
0 k1 1.
kn
k1 n1 k1 n2 k2 n1
+ k2 n2
=
+
+
N
N
2
N2
k2 n1
k1 n1
k1 n2
nk
1
wN
wN
= wN
wN
2
1
Y [n1 + n2 N2 ] =
NX
1 1
k1 =0
NX
2 1
1
X
k1 =0
k2 n1 k1 n1 n2 k1
X[k1 + k2 N1 ]wN
wN
N1
2
(4.9)
k2 =0
NX
2 1
NX
2 1
k2 n1 k1 n1
X[k1 + 2 k2 ]wN
wN
(1)n2 k1
2
(4.10)
k2 =0
k 2 n1
X[2 k2 ]wN
+ (1)n2
2
k2 =0
NX
2 1
k2 n1 n1
X[2 k2 + 1]wN
wN
2
k2 =0
(4.11)
On calcule donc pour (n1 , n2 ) fixe, (avec 0 n1 N2 1, et 0 n2 1), deux TFD de
N
taille N2 = , celles des composantes paires et impaires de X.
2
2. Voir lalgorithme pages suivantes. Le programme Scilab est detaille dans [1]
3. On notera Cp le nombre de multiplications lors dun appel avec N = 2p du programme
recursif en MAPLE qui est presente dans le tableau.
(
C0 =
0
N
On a, puisque N2 =
= 2p1 ,
2
Cp+1 = 2 Cp + 3 2p
Ce qui donne Cp = 3 p 2p1 que lon exprime encore en fonction de N :
40
3
ln N N
2 ln 2
Il serait judicieux dintroduire un compteur pour verifier tout ce qui prec`ede (`a placer dans la
boucle for et a` declarer en variable globale sans oublier de linitialiser avant chaque appel).
41
Lanalyse du son
On se propose daborder letude des sons du point de vue de lanalyse du signal. Pour cela nous
allons enregistrer quelques sons et montrer comment fonctionnent les outils que nous avons mis
en place.
Quelques remarques preliminaires et desordonnees
Un son est detecte par lintermediaire dune membrane (situee dans un micro ou dans votre
oreille) qui enregistre des variations de pression de lair ou du fluide dans lequel elle est immergee. Sur le plan physique enregistrer un son consiste donc a` fournir des releves de pression
sous une forme analogique t P (t) ou numerique (P (k T ))k .
Seules les variations rapides de pression semblent detectees par nos instruments (un plongeur
nentend pas de bruit lie directement a` la variation de pression accompagnant sa descente, un
micro place dans un caisson hyperbare ne nous permettra pas non plus de reperer la pression
ambiante contrairement a` un manom`etre) ;
un son est produit et a fortiori enregistre pendant un intervalle de temps fini [0 , 1 ]; on lui
associera donc au mieux des restrictions ou troncatures de signaux virtuels periodiques (cas du
diapason) ;
en dehors de cas tr`es particuliers, mais dont la reconnaissance va se reveler fondamentale, un
signal sonore nest en general pas periodique.
On distingue pourtant des sons graves et aigus ce qui conduit aussi a` penser aussi le son en
termes de frequences.
Nous nous proposons detudier un enregistrement sonore. Cela nous conduira a` numeriser (ou
e chantillonner) notre enregistrement ; cela signifie que lintervalle detude [0 , 1 ] est discretise
et que la pression est relevee avec une frequence proportionnelle au nombre de termes de la subdivision, ce qui induit une perte dinformation. Ce phenom`ene a dej`a e te e tudie dans labstrait
(frequence de Nyquist, theor`eme de Shannon page18).
Les outils
On pourra proceder a` un enregistrement sonore avec le logiciel livre avec la carte son de lordinateur, utiliser un logiciel comme goldwave, telecharger un fichier son quelconque... Pour lanalyse
du son nous allons proposer de visualiser et analyser avec goldwave, Maple et Scilab.
5.1
Commencons par enregistrer un son quelconque sous goldwave. On peut enregistrer le son sous le
format .wav dans un fichier .wav ou .txt. La premi`ere ligne du fichier .txt est
[48000Hz, Channels: 2, Samples: 343680, Flags: 0]
ce qui signifie que la frequence dechantillonnage est de 48000Hz, que le son a deux canaux
(stereo) et que lon a preleve 343680 e chantillons, ce qui couvre environ 7 secondes. On presente
ici, la premi`ere figure, un releve des variations de pression enregistrees sur une duree denviron
4.5 secondes (le texte, remarquable, est pouet, pouet, pouet, pouet, I stop it). On reconnaitra la
prononciation du I : a-i. Comme on la dej`a observe, a` part la repetition de pouet pouet, ce nest
pas vraiment periodique...
42
On reprend donc le meme fichier et on observe le deuxi`eme pouet pendant 0.4 s puis pendant
0.045s et l`a, on commence a` y voir plus clair.
43
44
References
[1] T HIERRY AUDIBERT, A MAR O USSALAH
Informatique, Programmation et Calcul Scientifique
Ellipses, 2013
[2] M ATTEO F RIGO AND S TEVEN G. J OHNSON
The Design and Implementation of FFTW3 rapide
Proc. IEEE, vol. 93, no. 2, pp. 216-231 (2005).
disponible en pdf sur le site de la revue IEEE :
http ://ieeexplore.ieee.org/search/
http ://www.fftw.org/
[3] C. G ASQUET, P. W ITOMSKI .
Analyse de Fourier et Applications
Masson, 1990
[4] H. R EINHARD .
Elements de mathematiques du signal
tome 1 - Signaux deterministes
Dunod, 1995
[5] W. RUDIN .
Analyse reelle et complexe
Masson, 1980
[6] B ERNARD S IMON .
La maree 1. La Maree oceanique coti`ere
Institut oceanographique Collection : SYNTHESES (2007)
[7] L. S CHWARTZ .
Methodes mathematiques pour les sciences Physiques
Hermann, 1993
[8] L. S CHWARTZ .
Analyse III - Calcul Integral
Hermann, 1993
[9] L. S CHWARTZ .
Analyse IV - Applications de la Theorie de la Mesure
Hermann, 1993
[10] W IKIPEDIA .
Transformee de Fourier rapide
http ://fr.wikipedia.org/wiki/Transformee de Fourier rapide
consultee novembre 2012
45
Index
algorithme
Cooley et Tuckey, 34
convolution, 4, 6
derivation
transformee de Fourier, 3
Fourier
transformee de, 3
transformee discr`ete, 30
frequence
de Nyquist, 18
Fubini
la formule de, 5
Lebesgue
lemme de Riemann-Lebesgue, 3
lemme
de Riemann-Lebesgue, 3
Nyquist
frequence de, 18
produit
de convolution, 4
Riemann
lemme de Riemann-Lebesgue, 3
Shannon
formule de, 17, 18
theor`eme, 18
TFD, 30
theor`eme
de Fubini, 5
de Shannon, 17, 18
transformee
de Fourier, 3
de Fourier Discr`ete, 30
46