Vous êtes sur la page 1sur 138

IMN 359 - Automne 2010

Outils mathématiques du traitement d’images


Contenu du cours donné par le Pr. Maxime Descoteaux

Ces notes de cours complémentent les démonstrations et les cours donnés au tableau en
classe. Ces notes sont adaptées du contenu de cours des Prs M’hamed Bentourkia et
François Dubeau.

I. Nombres complexes.
I.1. Définition

Problème posé aux algébristes du 16e siècle: Résoudre des équations du 2e et 3e degré:

Équations du 2e degré:

ax 2 bx c 0 Discriminant D: D b2 4ac

b D b b2 4ac
x1, 2
2a 2a
x1,2 racines réelles et distinctes si D>0
x1=x2 réelles si D=0
x1,2 racines complexes conjuguées si D<0

La racine carrée d'un nombre réel a: a2 a

Exemple: 22 2

Si le nombre est négatif: 22 i 2 22 2i


soit :

1 i2

Exemples: -2 × -2 = (-2)2 = 22 = 4
-2i × -2i = (-2i)2 = 22i2 = -4

Confusions:
- Dans certains ouvrages, j représente la valeur complexe au lieu de i, comme en électricité,
où la lettre i désigne l'intensité du courant.
- Les lettres i et j pourraient être utilisées comme les vecteurs unitaires d'un repère en 2D,
dans ce cas là, choisir u et v comme vecteurs unitaires (ou e1 et e2 etc...).

Cours IMN 359. Page 1/138


- Dans certains logiciels, la lettre i est réservée à la valeur unitaire complexe (Matlab, ...), la
distinguer de la variable utilisée dans les boucles.

Exemple 1:
Trouver les racines de x2 - 3x - 4 = 0
Ce polynôme est de la forme ax2 + bx +c = 0.
Le discriminant vaut: D = b2 - 4ac = 32 - 4 × 1 × (-4) = 25.
b D ( 3) 25
D > 0 ==> Les racines sont réelles: x1, 2
2a 2
==> x1 = 4 et x2 = -1

Exemple 2:
Trouver les racines de x2 - 3x + 3 = 0
Ce polynôme est de la forme ax2 + bx +c = 0.
Le discriminant vaut: D = b2 - 4ac = 32 - 4 × 1 × 3 = -3.

b D 3 3
D < 0 ==> Les racines sont imaginaires conjuguées: x1, 2 ==>
2a 2

3 3 3 3
x1 i ; x2 i
2 2 2 2

Équations du 3e degré:

ax 3 bx 2 cx d 0;
b 2 c d
x3 x x 0 ou x3 a1x 2 a2 x a3 0
a a a

3a2 a12 9a1a2 27a3 2a13


Q R
9 54

S 3
R Q3 R2 T 3
R Q3 R2

a1
x1 S T
3
S T a1 i 3
x2 (S T )
2 3 2
S T a1 i 3
x3 (S T )
2 3 2

Cours IMN 359. Page 2/138


Exemple 1:

4 x 3 3x 2 2x 1 0 ;
3 2 2 1
x3 x x 0 ou x 3 0.75 x 2 0.5 x 0.25a3 0
4 4 4
3a2 a12 3 0.5 0.75 2
Q 0.104
9 9

9a1a2 27 a3 2a13 9 0.75 0.5 27 0.25 2 0.753


R 0.078
54 54

S 3
R Q3 R2 3
0.078 0.1043 ( 0.078) 2 0.190

T 3
R Q3 R2 3
0.078 0.1043 ( 0.078) 2 -0.546

a1 0.75
x1 S T 0.19 0.546 0.606
3 3
S T a1 i 3 0.19 0.546 0.75 i 3
x2 (S T ) (0.19 0.546) 0.072 0.637i
2 3 2 2 3 2
S T a1 i 3 0.19 0.546 0.75 i 3
x3 (S T ) (0.19 0.546) 0.072 0.637i
2 3 2 2 3 2

Nombre complexe z = a + ib avec a et b réels ou z = (a,b)


a est la partie réelle de z: a = Re(z). b est la partie imaginaire de z: b = Im(z).

Figure 1. Représentation graphique d'un nombre complexe. La partie réelle est portée par l'axe des
abscisses, et la partie imaginaire est portée par l'axe des ordonnées.

Cours IMN 359. Page 3/138


I.2. Opérations sur les nombres complexes (représentation algébrique ou cartésienne)

Addition:
z1 = a1 + ib1; z2 = a2 + ib2:
z1 + z2 = (a1 + a2) + i(b1 + b2) = (a1 + a2, b1 + b2)
Exemple: z1 = 3 + 2i; z2 = 6 + 5i; z1 + z2 = 9 + 7i
z1 = -3 + 2i; z2 = 6 - 5i; z1 + z2 = 3 - 3i

Multiplication:
z1 = a1 + ib1; z2 = a2 + ib2:
z1 × z2 = a1 × (a2 + ib2) + ib1 × (a2 + ib2)
= a1a2 + ia1b2 + ib1a2 +i2b1b2
= a1a2 - b1b2 + i(a1b2 + a2b1) = (a1a2 - b1b2, a1b2 + a2b1)

Exemple 1: z1 = 2 + 3i; z2 = 4 + 5i;


z1× z2 = (2 × 4 - 3 × 5, 2 × 5 + 4 × 3) = (-7, 22) = -7 + 22i
z1 = 2 - 3i; z2 = 4 + 5i;
z1× z2 = (2 × 4 - (-3) × 5, 2 × 5 + 4 × (-3)) = (23, -2) = 23 - 2i

Conjugué:
z a ib est le conjugué de z a ib

Module:
Le module (ou la valeur absolue ou la longueur du vecteur z ) de z = a + ib s'écrit comme |z|:

z zz (a ib)(a ib) a 2 b2

Sous forme vectorielle de z = (a,b): z2 = a2 + b2 (théorème de Pythagore).

Cours IMN 359. Page 4/138


Figure 2. Module d'un nombre complexe

Division:
z a ib
1 1 a ib a ib
z a ib (a ib)(a ib) a2 b2
1 z
ainsi avec z ≠ 0
z zz
z1 = a1 + ib1; z2= a2 + ib2
z1 a1 ib1 (a1 ib1 )(a2 ib2 ) a1a2 b1b2 i (a2b1 a1b2 )
z
z2 a2 ib2 (a2 ib2 )(a2 ib2 ) a22 b22

Exemple:
Résoudre le système d'équation (par substitution, addition, déterminant etc...):
(3 + 2i)x1 + (1 + 3i)x2 = 3
2x1 + (2 + i) x2 = 5
Le déterminant est donné par
3 2i 1 3i
D (3 2i)(2 i) 2(1 3i) 6 2 i(3 4) 2 6i 2 i
2 2 i

3 1 3i
5 2 i 3(2 i ) 5(1 3i ) 6 3i 5 15i 1 12i (1 12i )(2 i ) 10 25i
x1
2 i 2 i 2 i 2 i (2 i )(2 i ) 5
3 2i 3
2 5 5(3 2i ) 2 3 15 10i 6 9 10i (9 10i )(2 i ) 28 11i
x2
2 i 2 i 2 i 2 i (2 i )(2 i ) 5

Cours IMN 359. Page 5/138


3 2i 1 3i x1 3
Matriciellement:
2 2 i x2 5
de la forme Ax = B d'où x = A\B en Matlab.

Interprétation géométrique

Figure 3. Représentation géométrique des vecteurs.

I.3. Forme polaire d'un nombre complexe (représentation trigonométrique)


z = a + ib et z a2 b2

Figure 4. Représentation polaire d'un nombre complexe. est l'angle formé par z et l'axe des
réels.

Si on appelle r = |z|, alors a = rcos( ) et b = rsin( )


z = r(cos( ) + isin( ))
L'angle est appelé l'argument du nombre complexe z: = arg(z).

Cours IMN 359. Page 6/138


a a
arg(z) acos( ) cos 1 ( )
r r
b b
arg( z ) a sin( ) sin 1 ( )
r r
b b
arg(z) atan( ) tan -1 ( )
a a

z r (cos( ) i sin( )) z r (cos( ) i sin( ))


z r (cos( ) i sin( )) arg(z ) arg(z )
Si z1 r1 (cos( 1 i sin( 1 )) et z 2 r2 (cos( 2 i sin( 2 ))
alors:
z1z2 r1r2 (cos( 1 2) i sin( 1 2 ))

et
z1 r1
(cos( 1 2) i sin( 1 2 ))
z2 r2

I.4. La notation d'Euler (représentation exponentielle)


Le développement en série de Taylor (MacLaurin à x - a = x) de f(x):
f '' (0) 2 f (3) 3 f (n) n
f ( x ) f ( 0) f ' ( 0 ) x x x ... x ...
2! 3! n!
x2 x4 x6
cos( x ) 1 ....
2! 4! 6!
x3 x5 x7
sin( x) x ....
3! 5! 7!
x 2 x3 x 4 x5 x6 x 7
ex 1 x ......
2! 3! 4! 5! 6! 7!

avec i2 = -1; i4 = 1; i6 = -1

i2 x2 i4 x4 i6 x6
cos( x ) 1 ....
2! 4! 6!

i 2 x3 i 4 x5 i6 x7 i3 x3 i 5 x5 i 7 x 7
i sin( x ) ix i i i .... ix ....
3! 5! 7! 3! 5! 7!
i 2 x 2 i3 x3 i 4 x 4 i5 x5 i6 x6 i7 x7
e ix 1 ix .... cos( x ) i sin( x )
2! 3! 4! 5! 6! 7!

z r (cos( ) i sin( )) re i : c'est la notation d'Euler.


Conjugué:
i
z r (cos( ) i sin( )) re

Cours IMN 359. Page 7/138


Expressions du Cosinus et du sinus:
z cos( ) i sin( ) ; z cos( ) i sin( )

ei e i
z z 2 cos( ) ei e i
cos( )
2

ei e i
et z z 2i sin( ) ei e i
sin( )
2i

Multiplication:

z1 r1e i 1 et z 2 r2 e i 2 z1 z 2 r1 r2 e i ( 1 2)

Division:
z1 r1 i ( 2)
z1 r1e i 1 et z 2 r2 e i 2 e 1
z2 r2

Les dérivées:
d (e i )
ie i sin( ) i cos( )
d

Les intégrales:

ei
ei d cte iei cte sin( ) i cos( ) cte
i

Cours IMN 359. Page 8/138


I.5. Racines nième d'un nombre complexe.

z rei
(facultatif)
zn (rei ) n r n ein
Formule de De Moivre:

zn (r (cos( ) i sin( ))) n r n (cos(n ) i sin( n ))

Si m = 1/n, avec n,m N+ w z1 / m ( rei ( 2k ) 1/ m


) r1 / m e i ( 2k ) / m
avec k=0,1,2,3,...m-1.

Exemple:
z 3 3i . Trouver les racines 6ième de z.

Réécrire z avec la notation d'Euler: z rei


2
r a2 b2 3 32 3.4641
b 3 2
arctan( ) arctan( ) 60 o
a 3 6

La solution sous la forme w z1 / m r1 / m e i ( 2k ) / m


avec m = 6 est:
2
i( 2k ) / 6
1/ 6 1/ 6 i ( 2k ) / 6 1/ 6 6
w z r e 3.4641 e
2
i( 2k ) / 6
w 1.23e 6

2 2 12k
Les 6 arguments de w selon k = 0, 1, 2, 3, 4 et 5 avec ( 2k ) / 6 sont:
6 36
2 14 26 38 50 62
1 ; 2 ; 3 ; 4 ; 5 ; 6
36 36 36 36 36 36
Cela correspond aux angles : 10o 70 o 130 o 190 o 250 o 310 o
Si l'on continue avec d'autres valeurs de k, soient k = 6, 7, 8, 9, 10, 11, ....
on retrouve cycliquement (période de 2 ) les mêmes valeurs de .
Sur une représentation graphique:

Cours IMN 359. Page 9/138


I.6. Cn et produit hermitien
L'espace vectoriel Cn sur C est défini par:

Cn z ( z1, z2 ,...., zn ) | i 1,...., n, zi C


avec l'opération d'addition:

z1 z2 ( z11,..., z1n ) ( z12 ,..., zn2 ) z11 z12 ,...., z1n zn2
et l'opération de multiplication:
Z ( z1 ,..., z n ) z1 ,..., z n

Le produit hermitien (ou hermitique ou scalaire) sur Cn est défini par:


n
z1, z 2 z1i z i2 C
i 1

Le produit hermitien possède les propriétés suivantes:


1. z, z 0 et z, z 0 si z 0
2. z 1, z 2 z 1, z 2 et z1, z 2 z 1, z 2

3. z, z 1 z2 z, z1 z, z 2

4. z 2 , z1 z 1, z 2

Orthogonalité: z 1 et z 2 , deux éléments de Cn, sont orthogonaux si:

z1, z 2 0

La norme (ou longueur) d'un élément de Cn est définie par:


1
z z, z 2 avec z 0 et z 0 si z 0; z z

z 1, z 2 z1 z 2 inégalité de Cauchy - Schwarz

z1 z2 z1 z2
2 2 2
z1 z2 z1 z2 si z 1 , z 2 0 Théorème de Pythagore

Cours IMN 359. Page 10/138


Le produit scalaire de deux vecteurs F et P s'écrit: F .P F . P cos( )

Si F F1e1 F2 e2 F3 e3 et P P1e1 P2 e2 P3e3 : F et P orthogonaux si


F1 P1 F2 P2 F3 P3 0.

Exercices:
Trouver les racines suivantes et les représenter graphiquement.
1- Trouver la racine 3ième de z = exp(-i /6)
2- Trouver la racine 4ième de z = 2.5- 2.5*sqrt(3)i

Cours IMN 359. Page 11/138


II. Série de Fourier.

Jean Baptiste Joseph Fourier, France, 1768-1830.


Fourier travaillait sur la diffusion de la chaleur dans les matériaux et a proposé de représenter une
fonction, continue ou discontinue, par une série de cosinus et de sinus.

II.1. Développement orthogonal

Soit la fonction f définie sur [0,T] et à valeurs complexes:


f (t ) C t 0, T

f(t) est de carré intégrable si:


T 2
f (t ) dt
0 . On dit alors que f(t) est dans l’ensemble L2(0, T) des fonctions carrés intégrables
définies sur l’intervalle [0, T].

Le produit hermitien
T n
f ,g f (t ) g (t )dt (Par analogie à z : z 1 , z 2 zi1 zi2 )
i 1
0

La norme de f (l'intervalle de l'intégration peut être de -t1 à t2):


1
T 2 1
1 T 2 2
f f, f 2
f (t ) f (t )dt f (t ) dt
0
0

(Rappel des z : z=a+ib module de z : |z|2=(a2+b2). Ce même résultat peut s’obtenir avec le
2
produit: z zz (a ib)(a ib) (a 2 b2 ) .
Rappel des vecteurs : la norme d’un vecteur v : ||v||=(v.v)1/2).

Deux fonctions f et g sont orthogonales ssi:


f ,g 0

Deux fonctions f et g sont orthonormées ssi:


f ,g 0 et f 1 et g 1

Cours IMN 359. Page 12/138


La valeur absolue et la norme: la valeur absolue d'un nombre est la valeur de ce nombre sans son
signe. Exemple: |-5| = |5| = 5.
1/ 2
La valeur absolue ou module d'un nombre complexe z = a + ib est z zz a2 b2 .
La norme d'un vecteur est la racine carrée de la somme des carrées de ses composantes dans un
repère orthonormé. Ceci concerne aussi les nombres complexes qui ont deux composantes. Ex.: z =

a + ib et z a 2 b2 ;

2
v 3e1 5e2 - 2e3 vxy 32 52 et v2 vxy
2
22 v 32 5 2 22

La norme est un scalaire souvent appelé module, longueur, distance,....


Par contre la norme d'une fonction complexe ne se résume pas à sa valeur absolue. Ex.:
f (t ) 6t 3i définie sur [0,1]. Sa norme est:
1 1/ 2
T 2 1 1
1 1 2 2
f f, f 2 f (t ) f (t )dt (6t 3i )(6t 3i )dt (36t 9)dt
0
0 0

3 1 1/ 2
36t
9t 21
3
0

et sa valeur absolue, tout comme un nombre complexe, est: f 36t 2 9

Exemple 1:
Calculer le produit hermitien de f(t) = 3t et g(t) = sin(2 t) sur [0,1].
T 1
Le produit hermitien s'écrit: f , g f (t ) g (t )dt , soit f , g 3t.sin(2 t )dt
0 0

Intégration par partie: udv [uv ] vdu

u = 3t; du = 3dt; dv = sin(2 t)dt, soit v = -cos(2 t)/2 .


1 1 1
1 3 3
3t.sin(2 t )dt 3t cos(2 t ) cos(2 t )dt
0
2 0 0
2 2

Exemple 2:
Calculer le produit hermitien de f(t) = t2 et g(t) = 9+8it sur [0,1].

Cours IMN 359. Page 13/138


T 1 1
f ,g f (t ) g (t )dt t 2 (9 8it )dt (9t 2 8it 3 )dt
0 0 0
4 1
9t 3 8it
3 2i
3 4
0

Exemple 3:
Calculer la norme de f(t) = 3t + i sur [0,1].
1
T 2
1
f f, f 2 f (t ) f (t )dt
0
1 1 1
1 2 1 2 1
2 3 2
(3t i )(3t i )dt (9t 1)dt 3t t 2
0
0 0

Exemple 4:
Les fonctions f(t) = t et g(t) = 3t - 2 sont-elles orthogonales sur [0,1]?
f et g sont orthogonales si f , g 0.

T 1 1
3 2
f ,g f (t ) g (t )dt t (3t 2)dt t t 0
0 0 0

Exemple 5:
1
Vérifier que l'ensemble { en (t ) e2 int/ T
}, avec n Z, est orthonormé dans L2(0,T).
T
Vérifier l'orthogonalité:
1 2 imt / T 1 2 int/ T
Soit deux éléments em (t ) e et en (t ) e , avec m != n. Ils sont orthogonaux si
T T
le produit hermitien est nul: em (t ), en (t ) 0 ==>
T T
1 1 1 2
em (t ), en (t ) e2 imt / T
. e 2 int/ T
dt e i ( m n )t / T
dt
0 T T T 0
T T
1 T cos(2 (m n)t / T ) i sin(2 (m n)t / T )
e2 i ( m n)t / T

T 2 i ( m n) 0
2 i ( m n) 0

cos(2 (m n)T / T ) i sin(2 (m n)T / T ) cos(0) i sin(0)


0 m, n (m n)
2 i ( m n) 2 i ( m n)

Vérifier l'orthonormalité:
Cours IMN 359. Page 14/138
1 1 1
T 2 T 2
1 2 int/ T 1 2 int/ T 1 0 1 T 2
en e . e dt e dt t 1
0
T T T0 T 0

Exemple 6:
Vérifier l'orthogonalité sur [0,T] de cos(2 nt/T) et sin(2 nt/T).
cos(2 mt / T ), cos(2 nt / T ) 0 ==>
T T
1 2 t 2 t
cos(2 mt / T ) cos(2 nt / T )dt cos( (m n)) cos( (m n)) dt
0 0
2 T T
T
1 T 2 t T 2 t
sin( (m n)) sin( (m n)) 0
2 2 ( m n) T 2 ( m n) T 0

T T
1 2 t 2 t
sin(2 mt / T ) sin(2 nt / T )dt cos( (m n)) cos( (m n)) dt
0 0
2 T T
T
1 T 2 t T 2 t
sin( (m n)) sin( (m n)) 0, m n
2 2 ( m n) T 2 ( m n) T 0

T T
1 4 nt
if m n cos(2 nt / T ) cos(2 nt / T )dt 1 cos( ) dt
0 0
2 T
T
1 T 4 nt T
t sin( )
2 4 n T 0 2

T T
1 4 nt
if m n sin(2 nt / T ) sin(2 nt / T )dt 1 cos( ) dt
0 0
2 T
T
1 T 4 nt T
t sin( )
2 4 n T 0 2

On démontre (faites-le comme exercice) de la même façon que pour m = n ou m ≠ n:


cos(2 mt / T ),sin(2 nt / T ) sin(2 mt / T ), cos(2 nt / T ) 0

Cours IMN 359. Page 15/138


II.2. Les fonctions périodiques
Par définition, une fonction f(t) est périodique de période T si f(t) = f(t+T), ou, d'une façon
générale: f(t) = f(t+nT) avec n Z.
T est la plus petite période de f(t): c'est la période fondamentale.

Exemple 1:
Trouver la période de f(t) = cos(t/3) + cos(t/4).
cos(t/3) + cos(t/4) = cos((t+T)/3) + cos((t+T)/4)
Sachant que la période de cos(t) est 2 , soit cos(t) = cos(t + 2 m), alors
avec un changement de variable x = t/3 et T1 = T/3, cos(x + T1) a une période de T1 = 2 m, soit T/3
=2 m T = 6 m.
Une autre méthode: le cosinus a une période de 2 et s'exprime comme cos(2 t/T1). En identifiant
les coefficients du temps t dans cos(t/3) et dans cos(2 t/T1), on obtient: 2 /T1 = 1/3 T1 = 6 .
Idem pour cos(t/4 + T/4) T = 8 n.
La période fondamentale est la plus petite période, soit le plus petit commun multiple de 6 et 8, i.e.
m = 4 et n = 3 T = 24 .

Commandes de Matlab pour produire le graphique ci-dessus:


t=-150:.01:150;y1=cos(t/3);y2=cos(t/4);ys=cos(t/3)+cos(t/4);
figure;plot(t,y1,'g',t,y2,'r',t,ys,'b','linewidth',2);
set(gcf,'Color',[0.8 0.8 0.8],'Position',[280 200 680 500]);

Cours IMN 359. Page 16/138


set(gca,'FontName','Helvetica','Fontweight','Normal','Fontsize',18,'Color',[0.8
0.8 0.8],'xgrid','on','ygrid','on');
xlabel(' Temps ');ylabel(' Amplitude ');
legend({'cos(t/3)','cos(t/4)','cos(t/3)+cos(t/4)'});
eval(['print -dtiff periode-cos3t-cos4t;']);

Exemple 2:
Trouver la période de f(t) = cos2(t).
cos2(t) = (1+cos(2t))/2
cos2(t) = (1+cos(2(t+T)))/2
= (1+cos(x+T1))/2 avec x = 2t et T1 = 2T.
Puisque la période de cos(x) est 2 T1 = 2 m, ou bien 2T = 2 m
T = m . La période fondamental de f(t) est donc .

Exemple 3:
Trouver la période de f(t) = sin(t) + sin(t/3) + sin(t/5). 2 T1 = 2 ; 2 T2 = 6 ;
2 T3 = 10 . Le PPCM de T1, T2 et T3 est 30 T = 30 .

Exercice:
Trouver la période de f(t) = sin( t) + sin( t/3) + sin( t/5).

Cours IMN 359. Page 17/138


II.3. Les Séries de Fourier
n x n x
Supposons que f ( x) A an cos( ) bn sin( ) (1)
n 1 L L
autrement dit la somme de sinus/cosinus converge vers f(x) sur [-L,L]. On peut alors que pour
n=1,2,3,... :
L L
1 n x 1 n x a0
an f ( x ) cos( )dx; bn f ( x ) sin( )dx; A (2)
L L
L L L
L 2

Noter que généralement on utilise la lettre T pour les périodes en temps et la lettre L (ou D ...) pour
les périodes en longueur (distance).

Notons aussi que si l’identité (1) a lieu, comme les sinus et cosinus sont des fonctions
périodiques, la fonction f (x) de gauche, même si elle n’est définie que sur [0,T] à priori peut
être considérée définie sur R avec la propriété dite de périodicité , ∀ ∈

En multipliant (1) par cos(n x/L) et en intégrant entre -L et L (ce qui revient à faire le produit
Hermitien entre f(x) et cos(n x/L), 〈 , cos mx/L 〉):
L L
m x m x
f ( x ) cos( ) dx A cos( ) dx
L
L L
L
(3)
L L
m x n x m x n x
an cos( ) cos( ) dx bn cos( ) sin( ) dx
n 1 L
L L L
L L

Prenons le premier terme:


L L
m x L m x AL m L m L
A cos( )dx A sin sin sin
L
L m L L m L L
AL
sin m sin m 0
m
Prenons le deuxième terme:
L L
m x n x an m x n x m x n x
an cos( ) cos( )dx cos( ) cos( ) dx
L
L L 2 L
L L L L
L
an ( m n) x ( m n) x
cos( ) cos( ) dx avec m ≠ n.
2 L
L L
L
an L ( m n) x L ( m n) x
sin( ) sin( ) 0
2 ( m n) L ( m n) L L

Cours IMN 359. Page 18/138


Si m = n:
L L L
m x n x n x 1 1 2n x
an cos( ) cos( )dx an cos 2 ( )dx an cos( ) dx
L
L L L
L L
2 2 L
L
x L 2n x L L 2n L L L 2n L
an sin( ) an sin( ) sin( ) an L
2 4n L L 2 4n L 2 4n L
Prenons le troisième terme:
L L
m x n x 1 (m n) x (m n) x
bn cos( ) sin( )dx bn sin( ) sin( ) dx
L
L L L
2 L L
L
bn L (m n) x L (m n) x
cos( ) cos( ) avec m ≠ n.
2 (m n) L (m n) L L

bn L cos(( m n ) ) L cos(( m n ) ) L cos(( m n ) ) L cos(( m n ) )


0
2 (m n) (m n) (m n) (m n)

Si m = n:
L L
m x n x 1 ( n n) x ( n n) x
bn cos( ) sin( )dx bn sin( ) sin( ) dx
L
L L L
2 L L
L
bn L 2n x bn L L
cos( ) cos(2n ) cos(2n ) 0
2 2n L L 2 2n 2n
Si m = n = 0:
L
m x n x
bn cos( ) sin( )dx 0
L
L L

Finalement, l’équation (3) se résume à :


L L
n x 1 n x
f ( x ) cos( )dx an L an f ( x) cos( ) dx pour n = 1,2,3,...
L
L L L
L

Refaisons la même procédure en prenant le produit Hermitien entre f(x) et sin(n x/L)
(〈 , sin m x/L 〉):
L L
m x m x
f ( x) sin( )dx A sin( )dx
L
L L
L
L L
m x n x m x n x
an sin( ) cos( )dx bn sin( ) sin( )dx
n 1 L
L L L
L L
bm L avec m n et m 0

Cours IMN 359. Page 19/138


L
1 n x
bn f ( x ) sin( ) dx pour n = 1,2,3,...
L L
L

Finalement, prenons le produit Hermitien entre f(x) et 1, 〈 , 1 〉:


L L L L
n x n x
f ( x )dx Adx an cos( )dx bn sin( )dx
L L n 1 L
L L
L

Le premier terme donne :


L
Adx 2AL
L

Le second terme donne :


L L
n x L n x
cos( )dx sin( ) 0
L
L n L -L

Le 3e terme donne :
L L
n x L n x L L
sin( )dx cos( ) cos( n ) - ( cos( n )) 0
L
L n L -L n n

Finalement :
L L
1
f ( x )dx 2 AL A f ( x)dt
L
2L L

L L
1 n x 1 a0
et posons n = 0 dans an f ( x) cos( ) dx , nous obtenons: a0 f ( x )dx A
L L
L L L
2

Conclusion:
La série de Fourier de f(x) s'exprime, avec L la demi-période:

a0 n x n x
f ( x) an cos( ) bn sin( )
2 n 1 L L

avec
L
1
a0 f ( x)dx
L L
L
1 n x
an f ( x) cos( )dx
L L
L
L
1 n x
bn f ( x) sin( )dx
L L
L

Des fois on écrit la série de Fourier de f(t) comme SF(f(t)), SFf(t) ou Sf(t)

Cours IMN 359. Page 20/138


Lorsqu'on utilise la période T, on préfère écrire T au lieu de T/2. De même que les bornes
de l'intégrale peuvent être indiquées par t1 et t2 avec t2 - t1 = T. Habituellement, mais pas
obligatoirement, t1 = -T/2 et t2 = T/2.
Par analogie entre la période spatiale 2L et la période temporelle T, les équations des
séries de Fourier s'écrivent:
a0 nx nx
f ( x) an cos( ) bn sin( )
2 n 1 L L

a0 2 nt 2 nt
f ( x) an cos( ) bn sin( )
2 n 1 T T

L t t2
1 1 2 2
a0 f ( x)dx a0 f (t )dt a0 f (t )dt
L L
T 2t T t1
1

L t2
1 nx 2 2 nt
an f ( x) cos( )dx an f (t ) cos( )dt
L L
L T t1
T
L t2
1 nx 2 2 nt
bn f ( x) sin( )dx bn f (t ) sin( )dt
L L
L T t1
T

2
En se servant de la forme , les équations se simplifient davantage en écriture:
T
t2
2
a0 f (t )dt
T t1
t2 t2
2 2 nt 2
an f (t ) cos( )dt an f (t ) cos( nt )dt
T t1
T T t1
t2 t2
2 2 nt 2
bn f (t ) sin( )dt bn f (t ) sin( nt )dt
T t1
T T t1

2 2 n
Noter que l'on peut écrire et alors n , ou bien en définissant 0 comme la
T T
vitesse angulaire (ou pulsation) fondamentale, alors n = n 0. Il est possible aussi que n soit
2 n
écrit en indice comme n =n 0 et n .
T

Cours IMN 359. Page 21/138


Exemple 1:
a) Trouver les coefficients de Fourier de la fonction f(x) de période 10:
0 -5 x 0
f (x)
3 0 x 5
b) Tracer f(x) pour x=-20 à 20 avec des pas de 0.1 et pour n=1; n=1 à 3; n=1 à 10 et pour n=1 à 100.

La période vaut 10, donc de -L à L vaut 10 2L = 10 ou L = 5.


L L L
1 n x 1 n x 1
an f ( x) cos( )dx; bn f ( x) sin( )dx; a0 f ( x)dx
L L
L L L
L L L

5 5 5
1 n x 1 n x 1
an f ( x) cos( )dx; bn f ( x) sin( )dx; a0 f ( x)dx
5 5
5 5 5
5 5 5

5 0 5
1 1 1
a0 f ( x)dx 0dx 3dx 3x 50 3
5 5
5 5 0
5

0 5 5
1 n x n x 3 5 n x
an 0 cos( )dx 3 cos( )dx sin( ) 0 avec n 0
5 5
5 0
5 5n 5 0
0 5 5
1 n x n x 3 5 n x 3
bn 0 sin( )dx 3 sin( )dx cos( ) (1 cos(n ))
5 5
5 0
5 5n 5 0 n

3 3(1 cos( n )) n x
f ( x) sin( )
2 n 1 n 5

Cours IMN 359. Page 22/138


Figure. Série de Fourier de f(x) tracée avec Matlab pour x = -20:0.1:20 et n = 1 à 100.

Exemple 2:
Trouver la série de Fourier de la fonction f(x) = x2 pour 0 < x < 2 , si la période est 2 .

Graphique de f(x) = x2 répétée à chaque 2 .


La période vaut 2 , donc de -L à L vaut 2 : 2L = 2 ou L = .
Au lieu de considérer l'intégrale de -L à L, on la considère de 0 à 2L selon l'énoncé de f(x).
2L 2 2 2
1 1 2 1 1 3 8
a0 f ( x)dx x dx x
L 0 0
3 0 3

2L 2 2
1 n x 1 n x 1
an x 2 cos( )dx x 2 cos( )dx x 2 cos( nx )dx
L 0
L 0 0

4
n2

Cours IMN 359. Page 23/138


2x x2 2
avec x 2 cos( ax )dx cos( ax ) ( ) sin( ax ) ou par integration par partie 2 fois : u1=x2 et
a2 a a3

du1=2xdx; ensuite u2=2x et du2=2dx.


2L 2 2
1 n x 1 n x 1
bn x 2 sin( )dx x 2 sin( )dx x 2 sin( nx )dx
L 0
L 0 0

4
n

2x x2 2
avec x 2 sin( ax )dx sin( ax ) ( ) cos( ax ) ou par integration par partie 2 fois : u1=x2 et
a2 a a 3

du1=2xdx; ensuite u2=2x et du2=2dx.


2
4 4 4
f ( x) 2
cos( nx ) sin( nx ) avec 0 < x < 2
3 n 1 n n

Figure. Série de Fourier de f(x) tracée avec Matlab pour x = -6 :0.01:6 -0.01 et n = 1 à 100.

Exercices:
Trouver la série de Fourier de
1- f(t) = 1 pour - < t < 0, f(t) = 0 pour 0 < t < et f(t+2 ) = f(t).
1 2 sin( 2n 1)t
Réponse: f (t )
2 n 1 2n 1
2- f(t) = t sur [- , ] et f(t+2 ) = f(t).

( 1) n 1 sin( nt )
Réponse: f (t ) 2
n 1 n

Cours IMN 359. Page 24/138


II.4. Les harmoniques.
a0 2 nt 2 nt
f (t ) an cos( ) bn sin( ) (1)
2 n 1 T T

peut s'écrire sous la forme:


2 2 n
f (t ) c0 cn cos( 0 nt n) avec 0 et n n 0
n 1 T T

a0
Identifiant c0
2
Prenant les 2 termes entre accolades de (1), remplacer 2 n/T par n 0, et multipliant et divisant par

an2 bn2 :

an cos( 0 nt ) bn sin( 0 nt )
an cos( 0 nt ) bn sin( 0 nt ) an2 bn2
an2 bn2 an2 bn2

an bn
En appelant cos( n) , sin( n ) et cn an2 bn2
an2 bn2 an2 bn2

on obtient:
an cos( 0 nt ) bn sin( 0 nt ) cn cos( n ) cos( 0 nt ) sin( n ) sin( 0 nt )
cn cos( 0 nt n )
Ainsi:

f (t ) c0 cn cos( 0 nt n)
n 1

La nième composante de f(t) de pulsation n =n 0 est appelée le nième harmonique de la fonction


périodique.
La 1er harmonique est appelé la composante fondamentale, et elle a la même période que la
fonction f(t).
0 = 2 f0 = 2 /T est la pulsation fondamentale ou fréquence angulaire fondamentale en
radian/seconde (rad/sec).
f0 est la fréquence fondamentale en cycle/sec ou Hertz (Hz) ou sec-1.
T est la période fondamentale en seconde.
cn et n sont les harmoniques des amplitudes et des phases.

Cours IMN 359. Page 25/138


II.5. La forme complexe de la SF.

a0
La forme complexe de la SF: f (t ) an cos( nt ) bn sin( nt )
2 n 1

ei nt
e i nt ei nt
e i nt
cos( nt ) et sin( nt )
2 2i

a0 ei nt
e i nt
ei nt
e i nt
f (t ) an bn
2 n 1 2 2i

a0 ei nt
e i nt
ei nt
e i nt
f (t ) an ibn
2 n 1 2 2

a0 1
f (t ) ( an ibn )ei nt
( an ibn )e i nt
2 2n 1

a0 1 1
f (t ) ( an ibn )ei nt
(an ibn )e i nt
2 2n 1 2n 1
T /2 T /2
2 2
Sachant que an f (t ) cos( nt )dt ; bn f (t ) sin( nt )dt
T T /2
T T /2

alors a-n = an et b-n = -bn. Ceci nous permet de changer n en -n dans le 3e terme de f(t) et en même
temps parcourir n de - à -1 (ce qui est sans effet) et f(t) devient:
1
a0 1 1
f (t ) ( a n ibn )e i nt
(a n ibn )e i nt
2 2n 1 2n

qui donne f (t ) cn e i nt
avec c0=a0/2; cn=(an - ibn)/2; c-n=(an + ibn)/2
n

T /2 T /2
an ibn 1
cn f (t ) cos( nt )dt i f (t ) sin( nt )dt
2 T T /2 T /2

T /2
1
cn f ( t ) cos( nt ) i sin( nt ) dt
T T /2

ei nt
e i nt
ei nt
ei nt
i nt
cos( nt ) i sin( nt ) i e
2 2i
T /2
1 i nt
cn f ( t )e dt
T T /2

T /2
1
c n f ( t )ei nt dt si f(t) réelle : c-n = cn*
T T /2

Cours IMN 359. Page 26/138


T /2
1 i nt
cn f (t )e dt pour n = 0, ±1, ±2, ±3….
T T /2

T
1 i nt
ou bien puisque f(t)e-i nt
est périodique de période T: cn f (t )e dt
T 0

cn=(an - ibn)/2 spectre d'amplitude en fonction de de la fonction périodique f(t):

an2 bn2
cn
2
spectre de phase en fonction de de la fonction périodique f(t):

1 bn
n tan
an

On trace habituellement le spectre de phase et le spectre d’amplitude en fonction de la fréquence


angulaire n .
Puisque les spectres d’amplitude et de phase sont évalués à des points discrets selon les valeurs
de n (non continus), ces spectres sont appelés spectres discrets.
La représentation de cn en fonction de n montre la périodicité de cn dans le domaine des
fréquences, tout comme f(t) (ou f(x)) est représentée en fonction de t (ou x) dans le domaine
temporel (ou spatial).

Exemple 1:
Trouver la série de Fourier de f(t) = A sin( t) pour 0 < t < 1 et T = 1.
T /2
i nt 1 i nt
Les formules sont: f (t ) cn e et cn f (t )e dt
n T T /2

Puisque = 2 /T = 2 , f (t ) cn e i 2 nt

Cours IMN 359. Page 27/138


T 1 1
1 i 2 nt i 2 nt A i 2 nt
cn f (t )e dt A sin( t )e dt (e i t
e i t
)e dt
T 0 0
2i 0
1 1
A i ( 2 n 1)t i ( 2 n 1)t A e i ( 2n 1)t e i ( 2 n 1)t
(e e )dt
2i 0 2i i (2n 1) i (2n 1)
0
i ( 2 n 1)t 1
A e i ( 2n 1)t e A e i ( 2n 1) 1 e i ( 2n 1) 1
2 (2n 1) (2n 1) 2 (2n 1) (2n 1)
0
i ( 2 n 1)
Sachant que e 1
A 2 2 2n 1 ( 2n 1) 2A
cn A 2
2 (2n 1) (2n 1) ( 4n 1) (4n 2 1)
2A 1
f (t ) 2
ei 2 nt

n 4n 1

Figure. Reproduction de f(t) = Asin( t) avec A = 1 dans [0 1] (en bleu), pour chacun des intervalles
indiqués. La fonction en rouge découle de la série de Fourier correspondante à f(t).

Exemple 2:
Trouver la série de Fourier complexe de la fonction f(t) de période T et définie par:
A si t d /2
A
f (t ) si t d /2 c.à.d f(t) = A×rectd/2(t) pour |t| ≤ T/2
2
0 si d/2 t T /2

T /2
1
Par définition f (t ) cn e i nt
avec = 2 /T, et cn f (t )e i nt
dt
n T T /2

Cours IMN 359. Page 28/138


d /2 d /2 d /2 d /2
1 A i nt i nt A i nt 1 i nt
cn e dt Ae dt e dt Ae dt
T d /2
2 d /2 d /2
2 T d /2
d /2 d /2
A e i nt A e i nt A e i nd / 2
e i nd / 2
cn
T i n T i n T i n
d /2 d /2
i nd / 2 i nd / 2
A e e Ad ei nd / 2
e i nd / 2 Ad sin( nd / 2)
cn
T i n T 2i nd / 2 T nd / 2
Ad
cn sin c( nd / 2) (sinc(x) 1 si x 0 et sinc(x) sin(x)/x si x 0)
T
Ad
f (t ) cn e i nt
sinc( nd / 2) * ei nt

n T n

Figure. rect (bleu), sa SF complexe (rouge). T=2d=20.

Ad
cn sin c( nd / 2) (an - ibn )/ 2 an = 2Re[cn] et bn = -2Im[cn].
T
cn est réel les bn = 0 le spectre de phase n = tan-1(-bn/an) = 0.
Tracer le spectre d'amplitude |cn| = f( ) pour n valeurs de = 2 /T.

Cours IMN 359. Page 29/138


Figure. Spectre d'amplitude |cn| pour A=1, T=1/2 et d=1/20.

Exemple 3: Trouver les spectres d'amplitude et de phase de la fonction f(t) de période T:


A si 0 t d
f (t ) d < T; = 2 /T
0 si d t T
T d d
1 i nt A i nt A e i nt A e i nd 1
cn f ( t )e dt e dt
T 0
T0 T i n 0
T i n i n
i nd i nd / 2 i nd / 2 i nd / 2
A 1 e Ae e e
cn
T i n i n T i n
Ade i nd / 2
ei nd / 2
e i nd / 2 Ade i nd / 2
sin( nd / 2)
cn
T 2i nd / 2 T nd / 2
Ad
cn sin c( nd / 2)e i nd / 2
de la forme cn ei n

T
2
Ad nd nd nd
avec cn sin c( nd / 2) et T
n
T 2 2 T

Cours IMN 359. Page 30/138


Figure. rect (bleu), sa SF complexe (rouge). A=1, T=2d=20. Donne même spectre d’amplitude que
précédemment.

II.6. Propriétés d'approximation en moindres carrés


La série de Fourier trigonométrique définie sur -T/2 < t < T/2,
a0
f (t ) an cos( nt ) bn sin( nt ) peut être approximée par les k premiers termes:
2 n 1
a0 k
s (t ) an cos( nt ) bn sin( nt )
2 n 1
L'erreur alors introduite est ek(t) = f(t) - s(t)
L'erreur quadratique moyenne (ou erreur moyenne quadratique) est donnée par:
T /2 T /2
1 1
Ek ek (t ) 2 dt f (t ) s(t ) 2 dt
T T /2
T T /2

T /2
1 a02 1 k 2
Ek f (t ) 2 dt an bn2
T T /2
4 2n 1

Théorème de Parseval: si an et bn sont les coefficients de la SF de f(t) de période T, alors:


T /2
2 a02 k
f (t ) 2 dt an2 bn2
T T /2
2 n 1

Exemple:
Trouver la série de Fourier de f(t) = t sur [- , ] et f(t+2 ) = f(t). Calculer l'erreur quadratique
( 1) n 1
moyenne, Ek, pour les 5 premiers harmoniques non nuls. Résultat SF: f (t ) 2 sin(nt )
n 1 n

Cours IMN 359. Page 31/138


Réponse:
L
1 n t 1 n t 1
an f (t ) cos( )dt t cos( )dt t cos( nt )dt
L L
L

u=t du=dt; dv=cos(nt)dt v=sin(nt)/n


1 1 1 1 1
an t cos( nt )dt {[t sin( nt ) / n] sin( nt )dt } {[0 0] [ cos( nt )] }
n n2
1 1 1 1
{0 [cos( nt )] } {0 [cos( n ) cos( n )]} 0
n2 n2
L
1 n t 1 n t 1
bn f (t ) sin( )dt t sin( )dt t sin(nt )dt
L L
L

u = t; du = dt; dv = sin(nt)dt; v = (-1/n)cos(nt).

1 1
bn t ( 1 / n) cos(nt ) (1 / n) cos(nt )dt ( 1 / n) cos(n ) ( 1 / n)( ) cos( n ) 0

1
bn cos(n ) cos(n )
n n
2
bn cos(n )
n
n x 1
f (t ) bn sin( ) 2 cos( n ) sin( nt )
n 1 L n 1n

( 1) n 1
avec cos(n )=(-1)n et (-1)*cos(n )=(-1)n+1 : f (t ) 2 sin(nt )
n 1 n
Pour le calcul de l'erreur quadratique moyenne Ek:
T /2
1 a02 1 k 2
Ek f (t ) 2 dt an bn2
T T /2
4 2n 1

2
1 1 k 2 1 t3 1 k 2 cos( n )
Ek t 2 dt bn
2 2n 1 2 3 2n 1 n

3 2 2
1 ( )3 1 k 2 cos(n ) 2 k
cos(n )
Ek 2
2 3 3 2n 1 n 3 n 1 n

Nous avons proposé de tracer f(t) et sa série de Fourier pour certaines harmoniques et d'observer les
variations de Ek et de l'ajustement de f(t) par sa SF:

Cours IMN 359. Page 32/138


Figure. Étude de Ek et SF pour f(t)=t sur [- , ]. ts=0.01. EQM=erreur quadratique moyenne.

Cours IMN 359. Page 33/138


II.7. Symétries et séries de Fourier.
II.7.1. Différentes symétries
Une fonction est paire si f (t ) f ( t ) avec t R.
a a
Si une fonction est paire: f (t ) dt 2 f (t )dt
a 0

Le graphe de f(t) est symétrique par rapport à l'axe des y.

Figure. Fonction cosinus: paire. (Ex.: x2; gaussienne, ....).


Une fonction est impaire si f (t ) f ( t ) pour tout t R.
a
Si une fonction est impaire: f (t )dt 0 et f(0) 0
a

Le graphique de f(t) est alors symétrique par rapport à l'origine.

Figure. Fonction sinus: impaire. (Ex.: x3, tangente, ....).

Cours IMN 359. Page 34/138


Composantes paire et impaire:
Une fonction peut s'écrire comme la somme de deux composantes paire et impaire.
1 1
f(t) f(t)/2 f(t)/2 f(-t)/2 - f(-t)/2 f(t) f(-t) f(t) f(-t)
2 2
1 1
f pair (t ) f impair (t )
2 2

Exemple 1:
Trouver les composantes paire et impaire de

e t
t 0
f(t)
f (t )
0 t 0 1 exp(-t)
De f(t) on déduit f(-t): t
0 t 0
f ( t) t
e t 0

1 t
e t 0
1 2
f paire (t ) f (t ) f ( t)
2 1 t
e t 0
2
1 t
e t 0
1 2
f impaire (t ) f (t ) f ( t)
2 1 t
e t 0
2

Symétrie de demi-période:
Une fonction périodique de période T est dite symétrique de semi-période si f(t) = -f(t + T/2).

Symétrie d'un quart de période:


Si une fonction périodique f(t) a une symétrie de demi-période, et si elle est de plus paire ou
impaire, alors f(t) est symétrique d'un quart de période paire ou impaire.

Cours IMN 359. Page 35/138


Figure. Exemple de fonctions paire et impaire et toutes deux symétriques de demi-période, elles
sont alors symétriques d'un quart de période paire ou impaire.

II.7.2. Séries de Fourier de fonctions symétriques


L'utilisation de la symétrie des fonctions simplifie le calcul des séries de Fourier.
Fonction paire:
Rappel des formules:
a0
f (t ) an cos(n t ) bn sin(n t )
2 n 1

avec
T /2 T /2 T /2
2 2 2
a0 f (t )dt ; an f (t ) cos( n t )dt ; bn f (t ) sin( n t )dt .
T T /2
T T /2
T T /2

Si f(t), de période T, est paire, sa transformée de Fourier se réduit à:


T /2
a0 4
f (t ) an cos(n t ) et an f ( t ) cos( n t )dt
2 n 1 T 0

Figure. La fonction f(t) en noir est paire. Lorsqu'elle multiplie un cosinus (en bleu, figure de
gauche), comme dans le cas des an, l’intégrale du produit f(t)cos(n t) ne s'annule pas. Tandis que

Cours IMN 359. Page 36/138


lorsqu'elle multiplie un sinus (en bleu, figure de droite), comme dans le cas des bn, l’intégrale du
produit f(t)sin(n t)=0 bn = 0.

Fonction impaire:
Si f(t), de période T, est impaire, sa transformée de Fourier se réduit à:
T /2
4
f (t ) bn sin( nt ) et bn f (t ) sin(n t )dt
n 1 T 0

Figure. La fonction f(t) en noir est impaire. Lorsqu'elle multiplie un cosinus (en bleu, figure de
gauche), comme dans le cas des an, l’intégrale du produit f(t)cos(n t) s'annule an = 0. Tandis que
lorsqu'elle multiplie un sinus (en bleu, figure de droite), comme dans le cas des bn, l’intégrale du
produit f(t)sin(n t) ne s'annule pas.

Fonction symétrique de demi-période:


La série de Fourier de f(t) périodique et symétrique de demi-période contient seulement les
harmoniques impaires:
T /2
4
an f (t ) cos[(2n 1) t ]dt n=1,2,3,....
T 0

4 T /2
bn f (t)sin[(2n 1) t]dt n=1,2,3,....
T 0

Fonction paire et symétrique de quart-période:


La série de Fourier de f(t) périodique paire et symétrique de quart-période contient seulement les
harmoniques impaires en cosinus:

f (t ) a2n 1 cos[( 2 n 1) t ]
n 1

T /4
8
a2n 1 f (t ) cos[(2n 1) t ]dt
T 0

Cours IMN 359. Page 37/138


Fonction impaire et symétrique de quart-période:
La série de Fourier de f(t) périodique impaire et symétrique de quart-période contient seulement les
harmoniques impaires en sinus:

f (t ) b2 n 1 sin[( 2n 1) t ]
n 1

T /4
8
b2n 1 f (t ) sin[(2n 1) t ]dt
T 0

II.8. Conditions de Dirichlet:


1- Si f(x) est définie sur [-L,L], sauf à un nombre déterminé de points,
2- f(x) est périodique de période 2L,
3- f(x) et df(x)/dx sont continues par morceaux sur [-L,L],
alors la série de Fourier de f(x) converge:
a) vers f(x) au point x si f(x) est continue en ce point,
f ( x 0) f ( x 0)
b) vers si f(x) est discontinue au point x.
2

Exemple 1:
0 -5 x 0
f (x)
1 0 x 5 avec la période L 10

Figure. f(x).

Quelles sont les valeurs de f(x) à -5, -3, 0, 2 et 5?


f ( 5 0) f ( 5 0) 1 0 1
f ( 5)
2 2 2
f ( 3) 0

Cours IMN 359. Page 38/138


f (0 0) f (0 0) 0 1 1
f (0)
2 2 2
f (2) 1
f (5 0) f (5 0) 1 0 1
f (5)
2 2 2

II.9. Phénomène de Gibbs


Lors des discontinuités d'une fonction, les sommes partielles de la série de Fourier de f(t) sont
affectées par des oscillations autour des points de discontinuités. Ces oscillations sont appelées le
phénomène de Gibbs.

Exemple 1.
1 - t 0
f (t ) Période T 2
1 0 t
La série de Fourier de f(t) est:
4 1
f (t ) sin[( 2n 1)t ]
n 1 2n 1

Figure. Phénomène de Gibbs (overshoot, ou ringing).

Cours IMN 359. Page 39/138


III. Transformée de Fourier.

Soit la série de Fourier complexe


T /2
i nt 1 i nt
g (t ) cn e et cn g (t )e dt
n T T /2

Nous appelons la fonction g au lieu de f pour ne pas confondre avec la fréquence f.


avec n = n = 2 n/T = n - n-1 = 2 n/T - 2 n-1)/T = 2 /T
= 2 /T 1/T = /2

Remplaçons cn dans g(t):


T /2
1 i nt
g (t ) g (t )e dt ei nt

n T T /2

Remplaçant 1/T par /2


T /2
i nt
g (t ) g (t )e dt ei nt

n 2 T /2

T /2
1 i nt
g (t ) g (t )e dt ei nt
2 n T /2

En se servant de la somme de Riemann qui s'énonce comme suit:


soit un intervalle [a,b] partitionné en plusieurs points tel que
a < x1 < x2 < x3 < .... < xn-1 < b, et les intervalles entre ces points sont:
x1, x2, x3, x4, .... et xn. Soit y, un point d'un sous-intervalle xk, alors la somme d'une
n
fonction g des points y correspondants dans chaque sous-intervalle xk est donnée par: g ( y ) xk
k 1

et cette fonction devient une intégrale lorsque les sous-intervalles x tendent vers 0.

Figure. Somme de Riemann.


Cours IMN 359. Page 40/138
T /2
1 i nt
Dans la fonction g (t ) g (t )e dt ei nt et = 2 /T
2 n T /2

lorsque T , 0, ce qui justifie l'utilisation de l'intégrale de Riemann:

1 i t
g (t ) g (t )e dt ei t d
2

Puisque n = n avec = n - n-1, l'indice n est omis et l'intégration se fait sur .

Définissons:

i t
G ( ) TF ( g (t )) g (t )e dt TF = transformée de Fourier

1
et g (t ) TF 1 (G ( )) G ( )e i t d TF-1 = Transformée de Fourier inverse.
2

La variable dans le domaine de Fourier, correspondant à la variable spatiale x (cm) ou à la variable


temporelle t (sec), est la fréquence f. f a l'unité de cm-1 ou s-1 (Hertz, Hz).
En posant = 2 /T = 2 f, soit f = 1/T et les transformées de Fourier deviennent:

i 2 ft
G ( f ) TF ( g (t )) g (t )e dt

g (t ) TF 1 (G ( f )) G ( f )ei 2 ft df

2
Pour que TF existe, il faut que g(t) soit de carré intégrable: g (t ) dt . D'autres définitions:

T
2
g(t) définie sur [0, T] et à valeurs complexes. Elle est de carré intégrable si g (t ) dt . Aussi,
0

la condition pour que G(f) existe est que g(t) soit absolument intégrable: g (t ) dt ).

Exemple 1:
Calculer la TF de g(t) = exp(- t) pour t > 0; et g(t) = 0 pour t < 0; >0.

i 2 ft
Par définition: G ( f ) g (t )e dt

Cours IMN 359. Page 41/138


0
i 2 ft t i 2 ft ( i 2 f )t
G( f ) 0e dt e e dt e dt
0 0

1 ( i 2 f )t 1 i2 f
G( f ) e 2
( i2 f ) 0
i2 f 4 2f2

2 2
4 f2 1
Le module est : G ( f ) 2 2
( 4 f 2 )2 ( 2
4 2
f 2 )2 2
4 2
f2

2 f
L'argument est: arg(G ) arctg

G(f) peut s'écrire sous la forme G(f) = |G(f)|*exp(i*arg(G)):


1 2 f
G( f ) exp i * arctg
2 2
4 f2

=0.05 ; ts=1; t=0:ts:100; N=length(t);


Pour retrouver avec plus de précision les féquences sur le graphique des transformées de
Fourier, on doit augmenter le nombre N de points dans la transformée de Fourier en
allongeant avec des zeros la fonction de départ.

Figure. g(t) = exp(-0.05t) avec t = 0:1:100. Figure. Re(G(f)).

Cours IMN 359. Page 42/138


Figure. Im(G(f)). Figure. Abs(G(f)). ( z a ib; z a 2 b2 )

Figure. Spectre d'amplitude. Figure. Spectre de phase.

1 2 f
Calcul de la transformée inverse de G ( f ) exp i * arctg
2 2 2
4 f

La formule s'écrit : g (t ) TF 1 (G ( f )) G ( f )ei 2 ft df

2 f
i *arctg
1
g (t ) e ei 2 ft df
2 2 2
4 f
2 f
i *( 2 ft arctg )
1
g (t ) e df ............... approche compliqué
2 2 2
4 f

1 1
Si l'on garde G ( f ) g (t ) e i 2 ft df
i2 f i2 f

1 1
on multiplie et on divise par e t: g (t ) t
e t e i 2 ft df
e i2 f

1 1
g (t ) t
e( i 2 f )t
df
e i2 f

soit u = + i2 f du = i2 df df = du/i2 .
t
e 1 ut
g (t ) e du .............. On doit recourir aux tables d’intégration.
i2 u

Cours IMN 359. Page 43/138


Exemple 2:
Calculer la TF de g(t) = 1 si |t| < d et g(t) = 0 si |t| > d, et d > 0.

i 2 ft
Par définition: G ( f ) g (t )e dt

d i 2 ft d
i 2 ft e 1 i 2 fd
G( f ) e dt e ei 2 fd

d
i2 f i2 f
d

1 ei 2 fd
e i2 fd
sin( 2 fd )
G( f ) ei 2 fd
e i 2 fd
d 2d
i2 f i 2 fd 2 fd

Figure. g(t) avec T=20, d=3, ts=0.5. G(f) et spectre d'amplitude.

Figure. Spectre de phase.

Cours IMN 359. Page 44/138


Exemple 3:
Calculer la TF de g(t) = cos( 0t) pour |t| < d/2, d > 0 et g(t)=0 ailleurs.

i 2 ft
Par définition: G ( f ) g (t )e dt

d /2
1
G( f ) cos( 0 t )e
i 2 ft
dt (e i 0t e i 0t )e i 2 ft
dt
2 d /2
d /2 d /2
1 i( 2 f )t i( 2 f )t 1 e i ( 0 2 f )t e i ( 0 2 f )t
G( f ) (e 0 e 0 )dt
2 d /2
2 i( 0 2 f ) i( 0 2 f )
d /2
i( 2 f )d / 2 i( 2 f )d / 2 i( 2 f )d / 2 i( 2 f )d / 2
1 e 0 e 0 e 0 e 0
G( f )
2 i( 0 2 f) i( 0 2 f)

d ei ( 0 2 f )d / 2
e i( 0 2 f )d / 2
ei ( 0 2 f )d / 2
e i( 0 2 f )d / 2
G( f )
2 2i ( 0 2 f )d / 2 2i ( 0 2 f )d / 2
d
G( f ) sin c ( 0 2 f )d / 2 sin c ( 0 2 f )d / 2
2

Figure. g(t)=cos(2 f0t). f0=0.5 et T=2. Figure. G(f).


ts=0.5; t=-10:ts:10; d=10.

Cours IMN 359. Page 45/138


Exemple 4 :
Calculer la TF de g(t) = sin( 0t) pour |t| < d/2, d > 0 g(t)=0 ailleurs.

i 2 ft
Par définition: G ( f ) g (t )e dt

d /2
1
G( f ) sin( 0 t )e
i 2 ft
dt ( ei 0t
e i 0t
)e i 2 ft
dt
2i d /2

d /2 d /2
1 i( 2 f )t i( 2 f )t 1 ei ( 0 2 f ) t e i ( 0 2 f )t
G( f ) (e 0
e 0
)dt
2i d /2
2i i ( 0 2 f ) i( 0 2 f ) d /2
i( 2 f )d / 2 i( 2 f )d / 2 i( 2 f )d / 2 i( 2 f )d / 2
1 e 0
e 0 e 0
e 0
G( f )
2i i( 0 2 f) i( 0 2 f)
i( 2 f )d / 2 i( 2 f )d / 2 i( 2 f )d / 2
d e 0
e 0 e 0
ei ( 0 2 f ) d / 2
G( f )
2i 2i ( 0 2 f )d / 2 2i ( 0 2 f )d / 2
d ei ( 0 2 f ) d / 2 e i ( 0 2 f ) d / 2 ei ( 0 2 f )d / 2
e i ( 0 2 f )d / 2
G( f )
2i 2i ( 0 2 f )d / 2 2i ( 0 2 f )d / 2
d
G( f ) sinc ( 0 2 f )d / 2 sinc ( 0 2 f )d / 2
2i
id
G( f ) sinc ( 0 2 f )d / 2 sinc ( 0 2 f )d / 2
2

Figure. g(t)=sin(2 f0t). f0=0.5 et T=2. Figure. G(f).


ts=0.5; t=-10:ts:10; d=10.

Cours IMN 359. Page 46/138


Autre exemple: La TF de g(t) = exp(-t2).

Figure. g1(t)=exp(-t2); sum(g1)=17.72, Figure. FT[g1(t)].

Figure. g2(t)=exp(-(10t)2). sum(g2)=1.77. Figure. FT[g2(t)]. g dense G large:

Cours IMN 359. Page 47/138


Propriétés des transformées de Fourier

Quelques démonstrations. Le reste des propriétés peut être démontré de façons


analogues.

Autres notations dans les transformées de Fourier:


En posant =2 f :

i 2 ft i t
TF [ g ( t )] G ( f ) g ( t )e dt G( ) g ( t )e dt

=2 f, d =2 df df=d /2 :

1
g ( t ) TF 1 (G ( f )) G ( f )ei 2 ft df g(t) G ( )e i t d / 2 G ( )e i t d
2

Linéarité:
a1g1(t) + a2g2(t) a1G1(f) + a2G2(f)

i 2 ft
TF a1 g1 ( t ) a2 g 2 ( t ) a1 g1 (t ) a2 g 2 ( t ) e dt

i 2 ft i 2 ft
a1 g1 ( t )e dt a2 g 2 ( t )e dt a1G1 ( f ) a2G2 ( f )

Symétrie:

g (t ) G ( f )ei 2 ft df . Changer t -t g( t) G ( f )e i 2 ft
df

i 2 ft
En interchangeant t et f: g ( f ) G (t )e dt TF (G ( t ))

Échelle du temps:

avec a R*.
| |

i 2 ft
TF [ g ( at )] g ( at )e dt x = at dx = adt dt = dx/a

1 i 2 fx / a 1
Si a > 0: FT [ g ( at )] g ( x )e dx G( f / a)
a a

C'est l'argument de l'exponentiel qui donne l'argument de G.

Cours IMN 359. Page 48/138


1 i 2 fx / a 1 i 2 fx / a 1
Si a < 0: FT [ g (at )] g ( x )e dx g ( x )e dx G ( f / a)
a a a

1
FT [ g ( at )] G ( f / a)
a

Parité:
G( ) est la transformée de Fourier de g(t)

Si g(t) est réelle et paire G( ) est réelle et paire


Si g(t) est réelle et impaire G( ) est imaginaire et impaire

Si G( ) est réelle et positive elle fait un angle 0 avec l'axe des réels la phase vaut
zéro ( ( ) = 0).
Si G( ) est réelle et négative elle fait un angle de ± avec l'axe des réels la phase
vaut ± ( ( ) = ± ).

Cours IMN 359. Page 49/138


Cours IMN 359. Page 50/138
La fonction de Dirac
La fonction de Dirac peut être définie comme la dérivée de la fonction de Heaviside qui
est définie comme:
0 si t 0
H (t ) u (t ) 1 si t 0
2
1 si t 0

et (x) est définie comme:


si x 0 1 si i j
( x) de Kronecker ij
0 si x 0 0 si i j

Figure. Fonction de Dirac .

Les propriétés de (x):

( x) dx 1

f ( x) ( x)dx f (0)

f ( x) ( x a)dx f (a )

1
(ax) ( x)
a

Cours IMN 359. Page 51/138


Le peigne de Dirac ou train d'impulsions:

T (t ) (t nT )
n

Figure. Peigne de Dirac ou train d'impulsions.

Cours IMN 359. Page 52/138


Transformées de Fourier généralisées
Certaines fonctions ne sont pas de carrés intégrables:

2
g (t ) dt

c'est le cas des fonctions périodiques comme le sinus et le cosinus, la fonction de


Heaviside, une constante etc....
0 si t 0
Fonction de Heaviside: H (t ) u (t ) 1 si t 0
2
1 si t 0

Par définition, une fonction généralisée à progrès lent g(t) est une fonction associée à une
fonction symbolique (t) qui décroît rapidement:

g (t ), (t ) g (t ) (t )dt

Pour calculer les transformées de Fourier de fonctions généralisées, on utilise la formule


de Parseval.

La formule de Parseval

f ( x)G ( x)dx F ( x) g ( x)dx

Celle-ci peut être démontrée de la façon suivante, en utilisant les transformées de Fourier:

ixy
F ( y) f ( x )e dx

ixy
G( x) g ( y )e dy

ixy
f ( x)G ( x)dx f ( x) g ( y )e dy dx

ixy
f ( x)G ( x)dx g ( y) f ( x )e dx dy

f ( x)G ( x)dx g ( y )F ( y )dy

Cours IMN 359. Page 53/138


et en changeant la variable y en x:

f ( x)G ( x)dx g ( x)F ( x)dx

Cette équation peut se rapporter aux transformées de Fourier comme suit, en intégrant
sur :

f ( )TF [ g ( t )]d TF [ f ( t )] g ( )d

ou bien, en intégrant sur t:

TF 1[ F ( )]G ( t )dt F ( t )TF 1[G ( )]dt

Dans les deux cas, nous avons conservé la même variable ou t pour f et F et pour g et
G.

Exemple 1:
Trouver la TF d'une constante, soit g(t) = 1.
g(t) = 1 est à progrès lent.
En utilisant la formule de Parseval avec la fonction rapidement décroissante (t):

Soit la formule de Parseval: G ( x ) ( x ) dx g ( x ) ( x )dx

qui devient:

G ( ) ( )d g (t ) (t )dt

i t
G ( ) ( )d (t )dt (t )e dt
0

i t
(t )e dt TF (t ) 0
0

et par la propriété de la symétrie:


TF (t ) 0 2 ( ) 0 2 (0)

Par la propriété de (x): f ( x) ( x)dx f (0)

Cours IMN 359. Page 54/138


2 (0) 2 ( ) ( )d

Finalement, en reprenant l'équation de départ G ( ) ( )d g (t ) (t )dt et en

remplaçant le second membre par le résultat précédent qui est 2 ( ) ( )d

G ( ) ( )d 2 ( ) ( )d

et en identifiant le contenu des intégrales des deux membres de l'équation:


TF[g(t)] = G( ) = 2 ( )
Noter que dans cet exemple nous avons conservé pour simplifier les écritures au lieu de
travailler avec 2 f.

Exemple 2:
Calculer la TF de (t).
(t) est une fonction généralisée à progrès lent.

Par définition: G ( ) ( )d g (t ) (t )dt

soit G ( ) ( )d (t ) (t )dt ( 0)

i t
aussi (0) TF (t ) 0 ( t )e dt (t )dt ( )d par changement de
0

variable t .

ainsi G ( ) ( )d 1 ( )d

et par identification:
FT (t ) G( ) 1

i t i t
On aurait pu faire le calcul directement : FT[ (t)] = ( t )e dt e 1
t 0

En conclusion, la TF d'une constante est une fonction , et la TF d'une fonction est une
constante.

Cours IMN 359. Page 55/138


Exemple 3:
Calculer la TF de g(t)=exp(i ot)

g(t) peut être réécrite sous la forme g(t)=f(t)exp(i ot). Par la propriété du décalage de la
fréquence: TF[f(t)exp(i 0t)] = F( - 0). Et comme f(t) = 1, et de l’exemple 1 ci-dessus: TF[1]
=2 ( ) TF[exp(i ot)] = 2 ( o). C’est un décalage de fréquence de la fonction .

Exemple 4:
Calculer la TF de cos( ot) et sin( ot).

cos( ot) = (exp(i ot) + exp(-i ot))/2

TF[cos( ot)] = TF[(exp(i ot) + exp(-i ot))/2]

= ( o) + ( o)

Pour le sinus : TF[sin( ot)] = -i ( o) +i ( o)

Cours IMN 359. Page 56/138


Quelques fonctions courantes et leur transformée de Fourier

Cours IMN 359. Page 57/138


Transformée de Fourier à deux dimensions
Si l'on remplace 2 f par , la paire de Fourier s'écrit:

i t
G( ) FT ( g ( t )) g (t )e dt

g (t ) FT 1 (G ( )) G ( )e i t df

Par analogie, on détermine les paires en 2 dimensions (2D):

i ( ux vy )
G (u , v ) TF ( g ( x , y )) g ( x, y )e dxdy

1
g ( x, y ) TF 1 (G (u , v )) G (u , v )e i ( ux vy )
dudv
(2 )2

Exercices :
1. Calculer la TF de (t-t0).
2. Calculer la TF de (t+t0).
3. Montrer que TF[ (t+t0) + 2 (t) + (t-t0)] = 4cos2( t0/2).

Cours IMN 359. Page 58/138


IV. Transformée de Fourier discrète.

La transformée de Fourier discrète (TFD) est l'équivalent de la transformée de Fourier


d'une fonction g(t), mais avec g(t) échantillonnée à des intervalles réguliers pour un
nombre N déterminé de valeurs. g(t) peut être une distribution ou un vecteur de valeurs
expérimentales.

Puisque la fonction g(t) est échantillonnée à N valeurs, elle peut s'écrire g(n) ou gn, avec 0
≤ n ≤ N-1.

La transformée de Fourier discrète inverse est G(k) ou Gk, avec 0 ≤ k ≤ N-1.

(Certains auteurs utilisent les paires de variables (n,k), (u,v), (x,k) etc... qui ne réfèrent pas
à la fréquence, il est suggéré de garder les variables t ou x versus f tout en leur supposant
des valeurs discrètes à intervalles réguliers.)

Transformée de Fourier discrète (TFD):


N 1
G (k ) g ( n ) exp( i 2 kn / N )
n 0

Transformée de Fourier discrète inverse (TFDI):


N 1
1
g ( n) G (k ) exp(i 2 kn / N )
N k 0

Analogie entre la série de Fourier exponentielle et à la transformée de Fourier:


Série de Fourier exponentielle:
T /2
i nt 1 i nt
f (t ) cn e cn f (t )e dt
n T T /2

Transformée de Fourier:

g (t ) TF 1 (G ( f )) G ( f )ei 2 ft df G ( f ) TF ( g (t )) g (t )e i 2 ft
dt

Cours IMN 359. Page 59/138


Différentes forme de représentation de G(k):
G(k ) r (k ) cos( (k )) i sin( (k )) r (k ) exp(i (k ))
G (k ) G ( k ) exp(i ( k ))

G (k ) A( k ) iB ( k )

Spectre d'amplitude:

G(k ) A(k ) 2 B( k ) 2

Spectre de phase:
B(k )
(k ) arctg
A(k )

Parité:
G (k ) A( k ) iB ( k )

Si g(n) paire TFD[g(n)] = A(k) c'est à dire partie réelle.


Si g(n) impaire TFD[g(n)] = iB(k) c'est à dire partie imaginaire.
Si g(n) paire TFD[g(n)] = G(k) est réelle et paire.
Si g(n) impaire TFD[g(n)] = G(k) est imaginaire et impaire.

Exemple 1:
n pour 0 n 3
Calculer G(k) = TFD[g(n)] avec g (n)
0 ailleurs
N 1 N 1
1
G (k ) g ( n ) exp( i 2 kn / N ) et g (n) G ( k ) exp( i 2 kn / N )
n 0 N k 0

g(n) = [0 1 2 3].
G(0) = 0exp(-i2 .0.0/4) + 1exp(-i2 .0.1/4) + 2exp(-i2 .0.2/4) + 3exp(-i2 .0.3/4)
G(1) = 0exp(-i2 .1.0/4) + 1exp(-i2 .1.1/4) + 2exp(-i2 .1.2/4) + 3exp(-i2 .1.3/4)
G(2) = 0exp(-i2 .2.0/4) + 1exp(-i2 .2.1/4) + 2exp(-i2 .2.2/4) + 3exp(-i2 .2.3/4)
G(3) = 0exp(-i2 .3.0/4) + 1exp(-i2 .3.1/4) + 2exp(-i2 .3.2/4) + 3exp(-i2 .3.3/4)

Cours IMN 359. Page 60/138


G(0) = 0 + 1 + 2 + 3 = 6
G(1) = 0 - i - 2 + 3i = -2 + 2i
G(2) = 0 - 1 + 2 - 3 = -2
G(3) = 0 + i - 2 - 3i = -2 - 2i

b
Alternativement: utiliser la forme de l'exponentielle e ab ea pour le calcul de

i 2 kn / N i2 k / N n
e e E (k ) n pour chacune des valeurs de k:
k = 0: E(0) = exp(-i2 .0/4) = cos(0) - isin(0) = 1
k = 1: E(1) = exp(-i2 .1/4) = cos( /2) - isin( /2) = -i
k = 2: E(2) = exp(-i2 .2/4) = cos( ) - isin( ) = -1
k = 3: E(3) = exp(-i2 .3/4) = cos(3 /2) - isin(3 /2) = i

N 1 N 1
n
Calculer G ( k ) g ( n ) exp( i 2 kn / N ) g (n) E (k )
n 0 n 0

k = 0: G(0) = 0[E(0)]0 + 1[E(0)]1 + 2[E(0)]2 + 3[E(0)]3


G(0) = 0[1]0 + 1[1]1 + 2[1]2 + 3[1]3 = 0 + 1 + 2 + 3 = 6
k = 1: G(1) = 0[E(1)]0 + 1[E(1)]1 + 2[E(1)]2 + 3[E(1)]3
G(1) = 0[-i]0 + 1[-i]1 + 2[-i]2 + 3[-i]3 = 0 - i - 2 + 3i = -2 + 2i
k = 2: G(2) = 0[E(2)]0 + 1[E(2)]1 + 2[E(2)]2 + 3[E(2)]3
G(2) = 0[-1]0 + 1[-1]1 + 2[-1]2 + 3[-1]3 = 0 - 1 + 2 - 3 = -2
k = 3: G(3) = 0[E(3)]0 + 1[E(3)]1 + 2[E(3)]2 + 3[E(3)]3
G(3) = 0[i]0 + 1[i]1 + 2[i]2 + 3[i]3 = 0 + i - 2 - 3i = -2 - 2i

Réécrire G(k) avec k = 0 à 3 sous forme matricielle:

E ( 0) 0 E(1) 0 E(2) 0 E(3) 0


E (0)1 E(1)1 E(2)1 E(3)1
[G (0) G(1) G(2) G(3)] 0 1 2 3
E ( 0) 2 E(1) 2 E(2) 2 E(3) 2
E ( 0) 3 E(1) 3 E(2) 3 E(3) 3

10 (-i)0 (-1)0 i0
11 (-i)1 (-1)1 i 1
[G (0) G(1) G(2) G(3)] 0 1 2 3
12 (-i)2 (-1)2 i2
13 (-i)3 (-1)3 i3

Cours IMN 359. Page 61/138


ou bien

G (0) 10 11 12 13 0
0 1 2 3
G(1) (-i) (-i) (-i) (-i) 1
G(2) (-1) 0
(-1) 1
(-1) 2
(-1)3 2
G(3) 3
i0 i1 i2 i3

Calcul de la transformée de Fourier discrète inverse


N 1 N 1
1
G (k ) g ( n ) exp( i 2 kn / N ) et g (n) G ( k ) exp( i 2 kn / N )
n 0 N k 0

Les exponentielles ont les mêmes valeurs, sauf le signe les valeurs imaginaires de E(k)
ont un signe inversé.
Aussi, pour la TFDI, ce sont E(n) au lieu de E(k):

E(0) = 1 E(1) = i E(2) = -1 E(3) = -i

(1) 0 (i)0 (-1)0 (-i)0


(1)1 (i)1 (-1)1 (-i)1
[ g (0) g(1) g(2) g(3)] 6 2 2i - 2 2 2i /4
(1) 2 (i)2 (-1)2 (-i)2
(1)3 (i)3 (-1)3 (-i)3

1 1 1 1
1 i -1 -i
[ g (0) g(1) g(2) g(3)] 6 2 2i - 2 2 2i / 4 ou bien:
1 -1 1 -1
1 -i -1 i

g (0) 1 1 1 1 6
g(1) 1 i -1 -i 2 2i
/4
g(2) 1 -1 1 -1 -2
g(3) 1 -i -1 i 2 2i

g(0) = (6 - 2 + 2i - 2 - 2 - 2i )/4 = 0
g(1) = (6 - 2i - 2 + 2 + 2i - 2)/4 = 1
g(2) = (6 + 2 - 2i -2 + 2 + 2i)/4 = 2
g(3) = (6 + 2i + 2 + 2 - 2i + 2)/4 = 3

Cours IMN 359. Page 62/138


N 1 N 1
1
G (k ) g ( n ) exp( i 2 kn / N ) et g (n) G ( k ) exp( i 2 kn / N )
n 0 N k 0

Exemple 2:
1. g1(n) = [1 1 1 1]
2. g2(n) = [1 0 0 0]
3. g3(n) = [1 -1 1 -1]
4. g4(n) = [1 i 1 i]

a) Représenter graphiquement les fonctions gi(n).


Réponses: G1(k) = [4 0 0 0]; G2(k) = [1 1 1 1];
G3(k) = [0 0 4 0]; G4(k) = [2+2i 0 2-2i 0];
b) Calculer les TFD Gi(k) = TFD[gi(n)] des fonctions.
c) Calculer les TFDI gi(n) = TFDI[Gi(k)] des fonctions.

Cours IMN 359. Page 63/138


Transformée de Fourier rapide (Fast Fourier Transform: FFT)
[Algorithme de James W. Cooley et John W Tukey, 1965]
N 1 N 1
1
G (k ) g ( n ) exp( i 2 kn / N ) et g (n) G ( k ) exp( i 2 kn / N )
n 0 N k 0

i 2 kn / N i 2 / N kn
Écrire e e E kn
Pour N = 2, nous avons
G(0) = g(0)Ek=0,n=0 + g(1)Ek=0,n=1
G(1) = g(0)Ek=1,n=0 + g(1)Ek=1,n=1

G (0) E 0.0 E 0.1 g(0)


G (1) E 1.0 E 1.1 g(1)

Donc pour N = 2:
i 2 / 2 0.0 i 2 / 2 0.1
E 0.0 E 0.1 e e 1 0.0 1 0.1 1 1
E1.0 E1.1 i 2 / 2 1.0 i 2 / 2 1.1 1 1.0 1 1.1 1 1
e e

G (0) 1 1 g(0)
E0 = 1 et E1 = -1.
G (1) 1 - 1 g(1)

Donc, pour N = 2, G(0) = g(0) + g(1), et G(1) = g(0) - g(1).

Pour N = 4. Dans la matrice E, n varie horizontalement, et k varie verticalement:

G ( 0) Ek 0, n 0
Ek 0, n 1
Ek 0, n 2
Ek 0, n 3
g(0)
k 1, n 0 k 1, n 1 k 1, n 2 k 1, n 3
G (1) E E E E g(1)
G ( 2) Ek 2, n 0
Ek 2, n 1
Ek 2, n 2
Ek 2, n 3 g(2)
G (3) g(3)
Ek 3, n 0
Ek 3, n 1
Ek 3, n 2
Ek 3, n 3

et en multipliant k et n des éléments de E.

G ( 0) E0 E0 E0 E0 g(0)
0 1 2 3
G (1) E E E E g(1)
G ( 2) E 0
E 2
E 4
E6 g(2)
G (3) g(3)
E0 E3 E6 E9

Cours IMN 359. Page 64/138


Calculons les éléments de la matrice E toujours pour N = 4:
E = exp(-i2 /4) = cos( /2) - isin( /2) = -i

E0 E0 E0 E0 ( i) 0 ( i) 0 ( i) 0 ( i) 0 1 1 1 1
0 1 2 3 0 1 2 3
E E E E ( i) ( i) ( i) ( i) 1 - i -1 i
E 0
E 2
E 4
E 6
( i) 0
( i) 2
( i) 4
( i) 6 1 -1 1 -1
1 i -1 -i
E0 E3 E6 E9 ( i) 0 ( i) 3 ( i) 6 ( i) 9

en remplaçant 1 par E0 et -i par E1 (ceci provient de la périodicité de exp(-i2 /4)kn = exp(-


i /2)kn):

1 1 1 1 E0 E0 E0 E0
1 - i -1 i E 0 E1 - E 0 - E1
1 -1 1 -1 E0 - E0 E0 - E0
1 i -1 -i
E 0 - E1 - E 0 E1

En factorisant la matrice E et en réajustant l'ordre des G(k):

G(0) 1 E0 0 0 1 0 E0 0 g(0)
0 0
G(2) 1 -E 0 0 0 1 0 E g(1)
G(1) 0 0 1 E1 1 0 - E0 0 g(2)
G(3) g(3)
0 0 1 - E1 0 1 0 - E0

En dissociant les calculs selon des niveaux (ou étages):


Niveau 1:

g1 (0) 1 0 E0 0 g(0)
0
g1 (1) 0 1 0 E g(1)
g1 (2) 1 0 - E0 0 g(2)
g1 (3) g(3)
0 1 0 - E0

Niveau 2:

g 2 (0) 1 E0 0 0 g1 (0)
0
g 2 (1) 1 -E 0 0 g1 (1)
g 2 (2) 0 0 1 E1 g1 (2)
g 2 (3) 0 0 1 - E1 g1 (3)

Cours IMN 359. Page 65/138


On opère un inversement de bit:
G(0) g 2 (0)
G(1) g 2 (2)
G(2) g 2 (1)
G(3) g 2 (3)

La séquence de calcul de l'algorithme se fait par paires d'équations et par niveau:


Niveau 1:
g1(0) = g(0) + E0g(2)
g1(2) = g(0) - E0g(2)

g1(1) = g(1) + E0g(3)


g1(3) = g(1) - E0g(3)

Niveau 2:
g2(0) = g1(0) + E0g1(1)
g2(1) = g1(0) - E0g1(1)

g2(2) = g1(2) + E1g1(3)


g2(3) = g1(2) - E1g1(3)

En réécrivant l'inversement de bit en binaire plutôt qu'en décimal:


G(00) g 2 (00)
G(01) g 2 (10)
G(10) g 2 (01)
G(11) g 2 (11)

On note que les indices entre parenthèses dans G et g2 sont miroirs: "bit reversal".

La différence de calcul en nombre de multiplications entre TFD et FFT, avec N une


puissance de 2: N = 2 = log2(N):
N TFD FFT
4 16 4
64 4096 192
1024 1048675 5120
32768 1073741824 245760

Cours IMN 359. Page 66/138


La transformée de Fourier discrète en 2D:
La transformée de Fourier discrète en 2D est équivalente à la TFD à 1D appliquée sur les
colonnes, puis la TFD est appliquée une seconde fois sur les lignes de la matrice
résultante.

Cours IMN 359. Page 67/138


V. La convolution

Exemple 1.
Un système de mesure introduit inéluctablement une déformation de l'objet mesuré.
Cette déformation est appelée réponse du système.
Un système de mesure numérique est encore plus drastique où une portion de l'objet à
mesurer doit être représentée par un point de mesure statistiquement défini (pixel, voxel,
intervalle de temps etc...).
L'exemple ci-dessous représente des portions de l'objet par des pixels. Plus la taille
des pixels est grosse, plus l'image perd les détails. L'objet est convolué par la fonction de
réponse du système de mesure (point spread function en anglais).

20 20

40 40

60 60

80 80

100 100

120 120

140 140

160 160

180 180

200 200
50 100 150 200 250 50 100 150 200 250

800 Originale
Modifiée
20
700
40
600
60

80 500

100 400

120
300
140
200
160

180 100

200
0
50 100 150 200 250 0 50 100 150 200 250 300

Cours IMN 359. Page 68/138


Image2 - Image1

20

40

60

80

100

120

140

160

180

200
50 100 150 200 250

Exemple 2. Faire la moyenne entre 3 nombres successifs du vecteur a = [0 4 1 3 6 5 2 0]


en faisant la moyenne de chaque valeur avec ses deux voisines. (Par exemple dans un
but de réduire les écarts entre les valeurs expérimentales a):
(0+0+4)/3 = 1.33; (0+4+1)/3=1.67; (4+1+3)/3=2.67.....
On trouve: b= [1.33 1.67 2.67 3.33 4.67 4.33 2.33 0.67].

Exemple 3. La moyenne entre les 3 nombres successifs du vecteur précédent peut se


faire avec l'opération de convolution:
N 1
L'opération de convolution: b = a h=h a. b(k ) a(n)h(k n) et 0≤k≤N+M-1 avec N
n 0

et M sont les longueurs de a et de h respectivement.

Exemple d'aplication de cette formule:


a=[1 2 3], h=[1 3]. Calculer b=a h. Nous pouvons utiliser les indices n=0:N-1. n est l'indice
du vecteur a. Dans cet exemple, les indices de a sont 0, 1 et 2, et les indices de h sont 0
et 1. Les valeurs de a et de h ailleurs qu'à ces indices valent 0. Comme le vecteur a
possède 3 valeurs et h possède 2 valeurs, le produit de la convolution b aura 3+2-1=4
valeurs ce qui implique que b a pour indices k variant de 0 à 3:
n=0 n=1 n=2
k=0: b(0)= a(0).h(0-0) + a(1).h(0-1) + a(2).h(0-2) = 1.1 + 2.0 + 3.0 = 1
k=1: b(1)= a(0).h(1-0) + a(1).h(1-1) + a(2).h(1-2) = 1.3 + 2.1 + 3.0 = 5
k=2: b(2)= a(0).h(2-0) + a(1).h(2-1) + a(2).h(2-2) = 1.0 + 2.3 + 3.1 = 9
k=3: b(3)= a(0).h(3-0) + a(1).h(3-1) + a(2).h(3-2) = 1.0 + 2.0 + 3.3 = 9

Cours IMN 359. Page 69/138


L'opération peut-être faite en intervertissant les arguments de a et de h comme suit:
N 1
b( k ) a(k n)h(n) et 0≤k≤N+M-1.
n 0

n=0 n=1 n=2


k=0: b(0)= a(0-0).h(0) + a(0-1).h(1) + a(0-2).h(2) = 1.1 + 0.3 + 0.0 = 1
k=1: b(1)= a(1-0).h(0) + a(1-1).h(1) + a(1-2).h(2) = 2.1 + 1.3 + 0.0 = 5
k=2: b(2)= a(2-0).h(0) + a(2-1).h(1) + a(2-2).h(2) = 3.1 + 2.3 + 3.0 = 9
k=3: b(3)= a(3-0).h(0) + a(3-1).h(1) + a(3-2).h(2) = 0.1 + 3.3 + 2.0 = 9
Dans ce cas, il n'est pas nécessaire d'évaluer pour n=2 car h(2)=0, et le calcul se réduit à
2 colonnes correspondant aux valeurs de h.

Avec n=3 valeurs pour h, il faut m+n-1=10 opérations de multiplications-additions pour


couvrir les m=8 valeurs de a.
6
a
b
a = [0 4 1 3 6 5 2 0]; h=[1 1 1]; h = h / sum(h); 5
b = conv(a,h); figure;plot(1:length(a),a,'bo-
',(1:length(b))-1,b,'rs-','linewidth',2); 4
set(gca,'xcolor',[0 0 0],'ycolor',[0 0
0],'FontSize',16);
set(gcf,'Color',[1 1 1],'Position',[280 3
200 680 500],'InvertHardCopy','off');
legend('a','b'); print -dmeta convol_ab 2

0
0 1 2 3 4 5 6 7 8 9

Cours IMN 359. Page 70/138


Exemple 4.
Faire le produit de deux polynômes a et b:
a = x4 + 2x3 + 3x2 + x
b = 2x2 + x + 3
c= a * b = (x4 + 2x3 + 3x2 + x)( 2x2 + x + 3)
= 2x6 + 5x5 + 11x4 + 11x3 + 10x2 + 3x.

Faire la convolution de a et b:
a = [1 2 3 1]
b = [2 1 3]
c=a b = [2 5 11 11 10 3]
La convolution est une multiplication polynomiale.

Connaissant c et b, on peut retrouver a par une division polynomiale: a = c/b.

La déconvolution est une division polynomiale. [La division ne donne pas toujours un
quotient sans reste, si bien que le quotient pourrait être très approximatif.]

Exemple 5. L'opération de la convolution vue comme un produit matriciel. Cette approche


est utilisée lors des convolutions non-stationnaires.
a = [1 2 3 1]
b = [2 1 3]
c=a b = [2 5 11 11 10 3]

qui peut s'écrire sous la forme:

Cours IMN 359. Page 71/138


Exemple 6:

Figure. La courbe x(t) a été mesurée à t= sur un intervalle .

Supposons que les signaux x(t) sont des signaux instantanés delta mesurés pendant .
Ceci équivaut à un signal de Dirac pondéré par la surface du rectangle x( ) :
x( ) ( ).
Pour une position quelconque k, ceci devient: xk(t)=x( k) (t- k).

Ce signal xk(t) est transformé par un système de fonction de réponse h pour devenir:
yk(t)=x( k) h(t- k).

En considérant tous les points de x(t), on trouve:


n
y (t ) x( k ) h (t k)
k 0

et lorsque tend vers 0: y (t ) x( )h(t )d

Cours IMN 359. Page 72/138


Définition de la convolution
La convolution de deux fonctions f et g définies sur R est donnée par:

f (t ) g (t ) f ( ) g (t )d g ( ) f (t )d

Ici t est une variable quelconque et ne représente pas uniquement le temps.

La convolution existe et est définie si:


1- f(t) et g(t) sont deux fonctions de carré intégrable:
1/ 2 1/ 2
2 2
f (t ) dt et g (t ) dt

ou bien:
1/ 2 1/ 2
2 2
f (t ) g (t ) f( ) d g (t ) d

2- f(t) est intégrable et g(t) est bornée.

Exemple 1:
Calcul graphique de la convolution.

Cours IMN 359. Page 73/138


Cours IMN 359. Page 74/138
t2
y (t ) x(t ) h( ) d
t1

0
y (t ) x (0 )0 d 0

0.5
y (t ) 1 * 2d 1
0

0.5 1
y(t ) 2 * 2d 1 * 2d 3
0 0.5

1 1.5
y (t ) 2 * 2d 1 * 0d 2
0.5 1

1,5 2
y (t ) 2 * 0d 1 * 0d 0
1 1,5

Par calcul numérique:

x = [0 1 2 0];
h = [1 1];
y = conv(x,h)
y = [0 1 3 2 0];

Cours IMN 359. Page 75/138


Exemple 2.
Calcul analytique de la convolution.
0 si t 0
f (t ) -t
f (t ) e t u (t ) u(t) = fonction de Heaviside.
e si t 0

t si 0 t T
g (t ) g (t ) t u (t ) u (t T )
0 ailleurs

f (t ) g (t ) f ( ) g (t )d e u ( )(t ) u ( ) u (t )d

t 0 f(t) g(t) 0
t t t
t
0 t T f(t) g(t) e (t )d t e d e d te t e t (t 1) 1 e t
t 1
0 0 0
t
(t T ) t
t T f(t) g(t) e (t )d e (T 1) e
t T

Soit h = f g. h(t<0) = 0; h(0≤t≤T) = exp(-t) + t - 1;


h(t≥T) = exp(-(t-T))(T-1) + exp(-t).

T=2;ts=0.1;t1=-T:ts:0;h1=0*t1; t2=0: ts:T;h2= exp(-t2) + t2 - 1; t3=T: ts:2*T;h3= exp(-(t3-


T))*(T-1) + exp(-t3); t=[t1 t2 t3]; h=[h1 h2 h3]; figure;plot(t,h,'bo-','linewidth',2);
set(gca,'xcolor',[0 0 0],'ycolor',[0 0 0],'FontSize',16);
set(gcf,'Color',[1 1 1],'Position',[280 200 680
500],'InvertHardCopy','off');
xlabel('t');ylabel('Amplitude'); print -dmeta convol_exp1
1.4

1.2

1
Amplitude

0.8

0.6

0.4

0.2

0
-2 -1 0 1 2 3 4
t

Figure. Graphique de h = f g calculée analytiquement.

Cours IMN 359. Page 76/138


Prenons le même exemple et retrouvons les résultats par la convolution de f(t) et g(t)
numériquement:
T=2; ts=0.1; t1=-T:ts:0; f1=0*t1; g1=0*t1;
t2=0:ts:T; f2=exp(-t2); g2=t2;
t3=T:ts:2*T; f3=exp(-t3);g3=0*t3;
t=[t1 t2 t3];f=[f1 f2 f3]; g=[g1 g2 g3];
figure;plot(t,f,'bo-',t,g,'rs-','linewidth',2); set(gca,'xcolor',[0 0 0],'ycolor',[0
0 0],'FontSize',16);
set(gcf,'Color',[1 1 1],'Position',[280 200 680
500],'InvertHardCopy','off');
xlabel('t');ylabel('Amplitude');legend('f(t)','g(t)'); print -dmeta convol_exp2;

h=conv(f,g); imax=find(h==max(h)); t1=(-imax+1)*ts+2:ts:2; t2=2+ts:0.1:(length(h)-imax-


1)*ts+2+ts; t=[t1 t2];figure;plot(t,h,'bo-','linewidth',2); set(gca,'xcolor',[0 0
0],'ycolor',[0 0 0],'FontSize',16);
set(gcf,'Color',[1 1 1],'Position',[280 200 680
500],'InvertHardCopy','off');
xlabel('t');ylabel('Amplitude');legend('f(t)*g(t)');axis([-4.2 8.1 0 13]); print -dmeta
convol_exp3;
2
f(t) 12 f(t)*g(t)
g(t)

1.5 10

8
Amplitude

Amplitude

1
6

4
0.5
2

0 0
-2 -1 0 1 2 3 4 -4 -2 0 2 4 6 8
t t

Figure. Graphiques de f(t) et g(t). Figure. Graphique de h = f g.


% t de la dernière figure est utilisé ici, et en normalisant h par rapport à ha:
T=2;ts=0.1;t1=min(t):ts:0;h1=0*t1; t2=ts:ts:T;h2= exp(-t2) + t2 - 1; t3=T+ts: ts:max(t);h3=
exp(-(t3-T))*(T-1) + exp(-t3); ta=[t1 t2 t3]; ha=[h1 h2 h3]; figure;plot(ta,ha,'bo-
',ta,h*tot1(ha)/tot1(h),'r*-','linewidth',2); set(gca,'xcolor',[0 0 0],'ycolor',[0 0
0],'FontSize',16);set(gcf,'Color',[1 1 1],'Position',[280 200 680
500],'InvertHardCopy','off');xlabel('t');ylabel('Amplitude'); legend('f(t)*g(t) analytique',
'f(t)*g(t) numérique');axis([-4.2 8.1 0 1.5]); print -dmeta convol_exp4;

Cours IMN 359. Page 77/138


1.5
f(t)*g(t) analytique
f(t)*g(t) numérique

Amplitude

0.5

0
-4 -2 0 2 4 6 8
t

Figure. h(t) analytique et numérique.

Exemple 3:
Calcul analytique de la convolution.

1/ 2
y (t ) x (t )0 d 0

Cours IMN 359. Page 78/138


t 1
y (t ) (1 t ) *1d
1/ 2
2
4t 12t 9
8

t
y (t ) (1 t ) *1d
1/ 2
1/ 2
4t 2 3
(1 t ) *1d
t
4

1/ 2
y (t ) (1 t ) *1d
t 1
2
4t 12t 9
8

1/ 2
y (t ) (1 t ) * 0d 0
t 1

0.7 y(t)

0.6

0.5
Amplitude

0.4

0.3

0.2

0.1

0
-3 -2 -1 0 1 2 3
t

% Tracer y(t) analytique comme définie ci-dessus:


ts=0.1; t1=-3:ts:-3/2; y1=0*t1; t2=-3/2+ts:ts:-1/2; y2=(9+12*t2+4*t2.^2)/8; t3=-
1/2+ts:ts:1/2; y3=(3-4*t3.^2)/4; t4=1/2+ts:ts:3/2; y4=(9-12*t4+4*t4.^2)/8; t5=3/2+ts:ts:3;
y5=0*t5; t=[t1 t2 t3 t4 t5]; y=[y1 y2 y3 y4 y5]; figure;plot(t,y,'bo-','linewidth',2);
set(gca,'xcolor',[0 0 0],'ycolor',[0 0 0],'FontSize',16);set(gcf,'Color',[1 1 1],'Position',[280 200
680 500],'InvertHardCopy','off');xlabel('t');ylabel('Amplitude'); legend('y(t)');axis([-4.2 8.1 0
1.5]); print -dmeta convol_triang1;

Cours IMN 359. Page 79/138


Les propriétés de la convolution:
La commutativité: g1(t) ¤ g2(t) = g2(t) ¤ g1(t).

g1 (t ) g 2 (t ) g1 ( ) g 2 (t )d

En faisant le changement de la variable de t- = x:

g1 (t x) g 2 ( x)dx g 2 ( x) g1 (t x)dx g 2 (t ) g1 (t )

L'associativité: [g1(t) ¤ g2(t)] ¤ g3(t) = g1(t) ¤ [g2(t) ¤ g3(t)].

f (t ) g1 (t ) g 2 (t ) g1 ( y ) g 2 (t y )dy

f (t ) g 3 (t ) f ( x) g 3 (t x)dx g1 ( y ) g 2 ( x y )dy g 3 (t x)dx

En substituant z=x-y:

f (t ) g 3 (t ) g1 ( y ) g 2 ( z ) g 3 (t y z )dz dy

Soit: h(t ) g 2 ( z ) g 3 (t z )dz

qui donne avec t = t-y:

h(t y) g 2 ( z ) g 3 (t y z )dz

f (t ) g 3 (t ) g1 (t ) g 2 (t ) g 3 (t ) g1 ( y )h(t y )dy g1 (t ) h(t )

g1 (t ) g 2 (t ) g 3 (t )
La distributivité: g1(t) ¤ [g2(t) + g3(t)] = g1(t) ¤ g2(t) + g1(t) ¤ g3(t).

La convolution et les transformées de Fourier:


= 2 f.
TF[g1(t) ¤ g2(t)] = G1( )G2( ) et TFI[G1( )G2( )] = g1(t) ¤ g2(t).

iwt iwt
TF[g1(t) ¤ g2(t)] g1(x)g2(t - x)dx e dt g1( x) g2(t - x)e dt dx
- - - -

Cours IMN 359. Page 80/138


à l'aide de la propriété du décalage dans le temps (Time shifting):

iwt iwx
g2(t - x)e dt G 2( w)e
-

qui est substituée dans l'équation précédente:

iwx iwx
TF[g1(t) ¤ g2(t)] g1( x)G 2( w)e dx g1( x)e dx G 2( w)
- -

iwt
g1(t )e dt G 2( w) G1( w)G 2( w)
-

La convolution et les transformées de Fourier inverses:


TFI[G1(w) ¤ G2(w)] = 2 g1(t)g2(t)
et TF[g1(t)g2(t)] = [G1(w) ¤ G2(w)]/2 .

Le théorème de Parseval:
Soit TF[g(t)] = G( ) et g*(t) est le conjugué de g(t) ==>
* *
i t i t i( )t
TF g * (t ) g * (t )e dt g (t )e dt g (t )e dt G *( )

De la propriété de la convolution dans l'espace des fréquences qui s'écrit:

1
TF[g1(t)g2(t)] [G1( ) ¤ G2( )]/2 G1( y )G 2( y )dy
2

qui s'écrit à son tour:

1
[g1(t)g2(t)]e - i t dt G1( y )G 2( y ) dy
2

en faisant = 0,

1
g1(t)g2(t)dt G1( y )G 2( y )dy
2

puis en changeant y en dans le membre de droite:

1
g1(t)g2(t) dt G1( )G 2( )d
2

En prenant le conjugué g2*(t) de g2(t), nous obtenons selon ce qui a été démontré ci-haut
TF[g2*(t)] = G2*(- ):

Cours IMN 359. Page 81/138


1
g1(t)g2 * (t) dt G1( )G 2 * [ ( )]d
2

qui devient:

1
g1(t)g2 * (t) dt G1( )G 2 * ( ) d
2

Qui est l'identité de Parseval.

Si on considère g(t)=g1(t) et g*(t)=g2*(t), l'équation précédente devient:

1
g(t)g * (t)dt G ( )G * ( )d
2

qui peut s'écrire:

2 1 2
g(t) dt G( ) d
2
Qui est l'identité de Plancherel.

Dans le monde discrèt, la normalisation par ( 2 ) est remplacé par la taille du signal de
période N; c’est-à-dire
N 1 N 1
2 1
g[n] | G[k ] |2
n 0 N k 0

Cours IMN 359. Page 82/138


1- La corrélation
Définition: La corrélation croisée entre g1(t) et g2(t) permet de mesurer le degré de
similitude entre les deux fonctions. Si la corrélation croisée vaut 0, les fonctions sont dites
non-corrélées.
La corrélation croisée est donnée par:

r12( s ) g1 g 2 g1(t ) g 2(t s )dt et r 21( s ) g 2 g1 g 2(t ) g1(t s)dt

L'autocorrélation de la fonction g1(t) est donnée par:

r11( s) g1(t ) g1(t s)dt

L'autocorrélation peut être normalisée comme suit:

g1(t ) g1(t s )dt


(s) et dans ce cas (0) = 1.
g1(t ) 2 dt

Les définitions ne changent pas en changeant t en t-s dans les corrélations croisées et les
autocorrélations.

r12( s ) g1(t ) g 2(t s )dt g1(t s) g 2(t )dt

r 21( s) g 2(t ) g1(t s )dt g 2(t s) g1(t )dt

r11( s ) g1(t ) g1(t s )dt g1(t s ) g1(t )dt

Propriétés des corrélations:


r12(s) = r21(-s)
r11(s) = r11(-s)

Fonctions discrètes:
De façon similaire à la convolution, on utilise un filtre de corrélation h, de préférence avec
un nombre impaire d'éléments, soit 2N+1. La corrélation s'écrit:
N
( h g )( n) h (i ) g ( n i )
i N

Cours IMN 359. Page 83/138


Exemple 1.
g1=[5 4 2 3 7 4 6 5 3 6].
On désire faire la moyenne de 3 éléments consécutifs de g1 et obtenir un nouveau vecteur
g2.
Le noyau serait alors h=[1/3 1/3 1/3], et l'opération de corrélation est similaire à celle de
la convolution, mais sans inversion du noyau. Aussi on doit centrer le noyau sur chaque
élément de g1:

g2(1)=h(1)*g1(0)+ h(2)*g1(1)+ h(3)*g1(2) = [0*1/3 + 5*1/3 + 4*1/3]


..
..
g2(4)= h(1)*g1(3)+ h(2)*g1(4)+ h(3)*g1(5) = [2*1/3 + 3*1/3 + 7*1/3]
..
..

Puisque la moyenne sur le 1er élément de g1 se fait seulement sur 2 éléments, on doit
soit ajouter un 0 à gauche du 1er élément et à droite du dernier élément de g1 (zero
padding); ou bien répéter une fois le 1er élément de g1 à gauche et le dernier élément de
g1 à droite. Ces arrangements dépendent de l'application sous étude.

Exemple 2.
Calcul des dérivées dans un vecteur: h=[-1/2 0 1/2] qui permet de calculer [g1(i+1) - g1(i-
1)]/2.

Exemple 3.
Retrouver un signal dans un vecteur (ou dans une image). Soit un modèle h du signal
recherché. On le fait parcourir sur le vecteur g1 pour localiser la partie de g1 qui
ressemble (qui est corrélée) à h. Pour quantifier la ressemblance, on calcule la somme
des carrés des différences entre h et la partie correspondante de g1:
N 2 N
h(i ) g1(n i ) h(i ) 2 g1(n i ) 2 2h(i ) g1(n i )
i N i N
N N N
h(i ) 2 g1(n i ) 2 2 h(i ) g1(n i )
i N i N i N

Cours IMN 359. Page 84/138


Cela revient à calculer la somme du carré du noyau, la somme du carré de la partie de g1
correspondante et 2 fois la corrélation. Plus ce nombre calculé est faible, plus h est corrélé
avec cette partie de g1.
g1=[5 4 2 3 7 4 6 5 3 6]; h=[3 7 4];
N
2 2 2
h(i ) 2 = 3 +7 +4 = 74
i N

N
g1( n i ) 2 = [..............................]
i N

N
2 h(i ) g1( n i ) = [......................................]
i N

Quelle est la partie de g1 la plus corrélée à h?

Cours IMN 359. Page 85/138


Le théorème d'échantillonnage.
Une fonction analytique et continue peut être représentée par des échantillons en vue d'un
traitement numérique: les échantillons devraient représenter la fonction analytique de
départ, c'est à dire, à partir des échantillons, on est en mesure de reproduire la fonction.

Nous avons d’abord besoin des résultats de convolution impliquant la fonction Dirac.

La convolution avec la fonction de Dirac


g(t) ¤ (t) = g(t)

g (t ) (t ) (t ) g (t ) ( s) g (t s )ds g (t )

g(t) ¤ (t-T) = g(t-T)

g (t ) (t T ) (t T ) g (t ) ( s T ) g (t s )ds g (t T )

G ( w) ( w w0) G ( w w0 )

Nous avons donc déjà vu les propriétés de la fonction :

f ( x) ( x a)dx f (a )

et le peigne de Dirac ou train d'impulsions:

T (t ) (t nt s ) avec T la période et ts le temps d'échantillonnage.


n

Figure. Peigne de Dirac ou train d'impulsions.

Cours IMN 359. Page 86/138


L'échantillonnage d'une fonction x(t) est une procédure mathématique où cette
fonction est multipliée par un train d'impulsions.

x (t ) T (t ) x (t ) (t nt s )
n

x s (t ) x ( nt s ) (t nt s )
n

où xs(t) est la fonction échantillonnée.

Exemple 1.
D'abord, on ne peut tracer une fonction numériquement (par ordinateur) si elle n'est pas
échantillonnée. L'échantillonnage sert donc à cette fin, c'est à dire pour le traitement
numérique de fonctions ou d'images.
Nous traçons ici une fonction sinus échantillonnée finement pour être représentée comme
fonction analytique, ensuite nous l'échantillonnons avec un train d'impulsions.
t=-2*pi:0.01:2*pi; f0=0.5; y=2*sin(2*pi*f0*t);ts=20;ii=1:ts:length(t);t0=t(ii);[t,d]=delta(t,t0);
figure;plot(t,y,'b-',t,d,'r-','linewidth',2); set(gca,'xcolor',[0 0 0],'ycolor',[0 0
0],'FontSize',16);set(gcf,'Color',[1 1 1],'Position',[280 200 680
500],'InvertHardCopy','off');xlabel('t');ylabel('Amplitude'); legend('y(t)','\delta(t-nt_s)');axis([-
2*pi 2*pi -2.2 2.2]); print -dmeta convol_echant1;
ys=y.*d;t2=t;t2(find(ys==0))=[];ys(find(ys==0))=[];figure;plot(t2,ys,'bo-','linewidth',2);
set(gca,'xcolor',[0 0 0],'ycolor',[0 0 0],'FontSize',16);set(gcf,'Color',[1 1 1],'Position',[280 200
680 500],'InvertHardCopy','off');xlabel('t');ylabel('Amplitude'); legend('y_s(t)');axis([-2*pi 2*pi
-2.2 2.2]); print -dmeta convol_echant2;

x(t) 2 xs(t)
1.5 (t-nts) 1.5
1 1
0.5 0.5
Amplitude

Amplitude

0 0

-0.5 -0.5

-1 -1

-1.5
-1.5
-2
-6 -4 -2 0 2 4 6 -6 -4 -2 0 2 4 6
t t
Figure. Échantillonnage de la fonction y=2sin(2 f0t).

Cours IMN 359. Page 87/138


Les effets de l'échantillonnage sont mieux étudiés dans l'espace de Fourier.

Nous avons vu que la transformée de Fourier de s'exprime:


TF [ (t t 0 )] exp( i t 0 )

La transformée de Fourier d'un train d'impulsions espacées d'une période ts est un train
d'impulsions espacées d'une période s ts:

TF (t nt s ) s ( n s)
n n

Utilisons aussi la propriété de la convolution de deux fonctions:

1
TF g 1 (t)g 2 (t) G1 (w) ¤ G2 (w)
2

et assimilons g1 à la fonction x et g2 à au train d'impulsions (t nt s ) :


n

1
TF x(t) (t nt s ) X( )¤ s ( n s)
n 2 n

1
TF xs (t) X s( ) X( ) ¤ s ( n s)
2 n

1
X s( ) X( )¤ ( n s)
ts n avec 1/ts = s

1
X s( ) X( )¤ ( n s)
ts n

1
X s( ) X( n s)
ts n

► La bande fb des fréquences délimitant le signal dépend du temps d'échantillonnage: fb =


1/ts.
► Le signal devrait donc être contenu entre -fb/2 et fb/2.
► Le spectre Xs(f) est une succession de copies du spectre original X(f). Xs(f) est une
fonction périodique de période fb.
► La transformée de Fourier X(f) de la fonction x(t) se répète sans recouvrement tant que
f0 ≤ fb/2. Habituellement on exprime la bande de -B à B, ou de -fmax à fmax, et dans ce cas, il
n'y a pas recouvrement des fonctions périodiques X(f) si f0 ≤ 2B ou f0 ≤ 2fmax.
► Soit x(t) un signal de spectre X(f) à bande limitée contenu entre -fb/2 et fb/2. La fonction
x(t) peut être reconstruite à partir de ses échantillons à intervalles réguliers ssi la
fréquence d'échantillonnage fb est supérieure au double de la fréquence maximale du

Cours IMN 359. Page 88/138


signal. La fréquence d'échantillonnage critique est appelée la fréquence de Nyquist: fnyquist
= fb/2.
► Si la fréquence d'échantillonnage n'est pas assez élevée, les composantes du signal
ayant des fréquences plus grandes peuvent apparaître à d'autres endroits, corrompant
ainsi le signal: repliement (folding) ou recouvrement (aliasing).
► Une fonction périodique doit être échantillonnée au moins 2 fois par période pour éviter
le recouvrement (l'aliasing).

Exemple 2.
Le repliement (folding):
Lorsqu'une fréquence d'une fonction périodique se trouve à l'extérieur de la bande des
fréquences, cette fréquence se replie à l'intérieur de la bande des fréquences.

s1 = cos(2*pi*8*t1)+cos(2*pi*3*t1); ts=0.001sec; fs=1000


2
0
-2
0 0.2 0.4 0.6 0.8 1
ts=0.01sec; fs=100
2
0
-2
0 0.2 0.4 0.6 0.8 1
ts=0.05sec; fs=20
2
0
-2
0 0.2 0.4 0.6 0.8 1
ts=0.1sec; fs=10
2
0
-2
0 0.2 0.4 0.6 0.8 1

Figure. Un signal s fait de cos(2 f1t)+cos(2 f2t) avec f1=8 Hz (T1=0.125 sec) et f2=3 Hz
(T2=0.333 sec) pour une période globale T=1 sec et échantillonné aux 4 ts comme
indiqués sur les figures. Avec ts 0.1 sec, le graphique du bas montre que l'on ne peut avoir
le minimum de 2 échantillons par période pour la fréquence f1, et donc les fréquences de
8 Hz seront mal positionnées sur le graphique des fréquences ci-dessous. En fait, f1 = -8
et 8 Hz se replient autour de la bande limite -fs/2 =-5 et fs/2=5 et se retrouvent à -2 et à 2
Hz, respectivement. L'autre fréquence f2=3Hz est correctement échantillonnée et elle est
donc correctement reproduite sur le graphique du bas de la figure des fréquences ci-
dessous. Résultat, par cet échantillonnage incorrect, les fréquences de 8 Hz et 3 Hz se
recouvrent et ne permettent donc pas une étude correcte du signal.

Cours IMN 359. Page 89/138


s1=cos(2*pi*8*t1)+cos(2*pi*3*t1); ts=0.001sec; fs=1000
500

0
-500 -100 0 100 500
s2=cos(2*pi*8*t2)+cos(2*pi*3*t2); ts=0.01sec; fs=100
100
50
0
-50 -25 -8 -3 0 3 8 25 50
s3=cos(2*pi*8*t3)+cos(2*pi*3*t3); ts=0.05sec; fs=20
20
10
0
-10 -8 -6 -4 -2 0 2 4 6 8 10
s4=cos(2*pi*8*t4)+cos(2*pi*3*t4); ts=0.1sec; fs=10
10
5
0
-5 -4 -3 -2 -1 0 1 2 3 4 5

Figure. Graphiques des 4 signaux précédents et localisation des deux fréquences d'intérêt
f1=8 Hz et f2=3 Hz. Sur le graphique du bas, la bande se limite à 5 Hz, et ne peut contenir
la fréquence f1=8 Hz, qui se replie et se retrouve à -2 et 2 Hz.

Cours IMN 359. Page 90/138


Exemple 3.
Le recouvrement (empilement, aliasing):
Une gaussienne et sa transformée de Fourier.

y(t)
2
TF(y(t))

1.5
Amplitude

0.5

-4 -2 0 2 4
t ou f
Figure. t=-1:0.1:1; a=[0.5 4]; y=a(1)*exp(-a(2)^2*t.^2). Bande = -5 à 5 Hz.

La gaussienne et sa transformée de Fourier répétée sur 6 bandes de fréquences avec un


échantillonnage adéquat.

y(t)
2
TF(y(t))

1.5
Amplitude

0.5

-20 -10 0 10 20
t ou f
Figure. t=-1:0.1:1; a=[0.5 4]; y=a(1)*exp(-a(2)^2*t.^2). Les signaux sont reproduits sur 6
Bandes de 6*-5 à 6*5 Hz. Les signaux sont contenus chacun dans sa bande et ils sont
donc séparés les uns des autres avec un échantillonnage de ts=0.1 sec.

La gaussienne et sa transformée de Fourier répétée sur 6 bandes de fréquences avec un


échantillonnage inadéquat, où les signaux se recouvrent.

Cours IMN 359. Page 91/138


0.7 y(t)
TF(y(t))
0.6

0.5
Amplitude

0.4

0.3

0.2

0.1

-5 0 5
t ou f
Figure. t=-1:0.3:1; a=[0.5 4]; y=a(1)*exp(-a(2)^2*t.^2). Les signaux sont reproduits sur 6
Bandes de 6*-1.66 à 6*1.66. Les signaux sont contenus chacun dans sa bande, mais
l'échantillonnage de ts=0.3 sec ne permet pas de les séparer correctement et on note le
recouvrement des signaux.

Cours IMN 359. Page 92/138


Le théorème de l'échantillonnage dans le domaine temporel:

1
Puisque le Xs( ) est une fonction périodique: X s ( ) X( n 0)
ts n

elle peut être développée en séries de Fourier:


T /2 T /2
1 i nt 1 i 2 nt / T
f (t ) cn e i nt
cn e i 2 nt / T
et cn f (t )e dt f (t )e dt avec
n n T T /2
T T /2

=2 /T.

dans le cas de Xs( ), la variable est et la période est 0:

0 /2
1 i2 n /
Xs( ) cn e i 2 n / 0 et cn X s ( )e 0 d
n 0 /2
0

Puisque Xs( ) est constitué des fonctions X( ) comprises entre - M et M et que 0 2 M,

où M=2 B.
M
1 i2 n /
cn X ( )e 0 d
0
M

1
En faisant la transformée de Fourier inverse avec x(t ) X ( )e i t d
2

et en considérant que x(t) est à bande limitée, c'est-à-dire: X( )=0 pour | |> M, la
transformée de Fourier inverse devient:
M
1
x (t ) X ( )e i t d
2
M

Remplaçant dans l'expression de x(t), t par -nts=-n2 / 0:

M
n2 1 in 2 /
x( ) X ( )e 0 d
0 2
M

En comparant cette dernière expression avec celle de cn:


2 n2
cn x( ) t s x ( nt s )
0 0

À la limite ts=1/fs= / M=1/2f0=1/2fnyquist=1/2B, cn devient:

cn t s x ( nt s ) f ( nt s )
M

qui est substituée dans l'expression de Xs( ):

Cours IMN 359. Page 93/138


Xs( ) cn e i 2 n / 0 f ( nt s )e int s
n n M

Puisque Xs(w) = X(w) - M <w< M, Xs(w) peut substituer X(w) dans l'expression de x(t):
M M
1 1
x(t ) X ( )e i t d f ( nt s )eint s ei t d
2 2 n M
M M

En interchangeant l'ordre de la sommation et de l'intégration:


M
1
x(t ) f ( nt s ) ei (t nt s )
d f ( nt s ) sin c[ M (t nt s ]
n 2 M n
M

en changeant n en -n car autant les n positifs que négatifs sont inclus dans la sommation:

x (t ) x ( nt s ) sin c[ M (t nt s )] avec M = /ts.


n

Conclusion: avec au moins 2 échantillons par période, une fonction peut être reproduite
avec précision.

Cours IMN 359. Page 94/138


Le théorème de l'échantillonnage dans le domaine fréquentiel:
Le théorème de l'échantillonnage dans le domaine des fréquences établit que si une
fonction x(t) est à bande limitée et échantillonnée à des intervalles réguliers ts, soit
FT[x(t)](f)=0 pour |f|>fs/2 avec fs=1/ts, alors sa transformée de Fourier X(f) peut être
déterminée à partir d'échantillons X(n /ts):

n
X( ) X sin c t s n
n ts

Exemple 1.
t1=-30; t2=30; ts=0.01; t=t1:ts:t2; f0=0.04; g=4*cos(2 f0t);%échantillonée à W.

L'échantillonnage W affecte la position de la fréquence f0 sur le graphique de la TF


(graphique en mauve), et aussi le nombre d'échantillons par période (points en bleus sur
courbes en rouges).

Figure. W=0.15. Figure. W=0.24.

Figure. W=0.5.

Cours IMN 359. Page 95/138


Exercices:

Exercice 1.
Soit la matrice a:
a = [10 9 8 9
2 8 4 7
6 5 6 2
5 0 8 4]
1- Trouver un noyau de convolution h=[h1 h2] qui permet de faire la moyenne de deux
éléments consécutifs.
2- Calculer la matrice ac, obtenue de la convolution de a par h sur les colonnes.
3- Calculer la matrice acl, obtenue de la convolution de ac par h sur les lignes.
4- Trouver un noyau de convolution h4=[h11 h12 ; h21 h22] qui permet de faire la
moyenne sur 4 éléments voisins dans a, i.e. 2 sur une ligne et 2 sur une colonne.
5- Appliquer h4 à la matrice a.

Exercice 2.
1- échantillonner et reconstruire la fonction f avec t1=-30; t2=30; ts=0.01; t=t1:ts:t2;
f0=0.04; f=4*sin(2*pi*f0*t).
2- Changer des paramètres comme l'échantillonnage et la fréquence et observer les
effets.

Cours IMN 359. Page 96/138


Exercice 3.
a) À partir de l’image 3D du cerveau de chat remise dans le TP3.

b) Fabriquer une image faite d'un bruit aléatoire ayant la même dimension que d1, puis
l'ajouter à d1, ensuite afficher le résultat:

c) Prendre le n-ieme profil de d1 et de d1n et calculer leur transformée de Fourier (FFT),


puis les afficher:

d) Le bruit est localisé à haute fréquence dans la transformée de Fourier d'un signal bruité.
Quelle serait la fréquence de coupure fc dans la fft du profil qui permettrait de retrouver le
profil de départ?

d1) Par mise à zéro des valeurs de la TF au-delà de fc.

d2) Par filtrage "doux" en utilisant le filtre de butterworth.

Cours IMN 359. Page 97/138


Autres bases orthogonales
- Transformée en cosinus discrète (TCD, en anglais discrete cosine
transform: DCT)
- TCD locale
- Transformée à fenêtre coulissante (Gabor et autres)
- Analyse en composante principal

Transformée de Fourier en cosinus


La transformée de Fourier en cosinus d'une fonction g(t) est la transformée de Fourier de
la partie paire de g(t). Si gpair(t) = gp(t):
gp(t) = g(t) si t > 0; et gp(t) = g(-t) si t < 0.

i 2 ft
Par définition TF [ g ( t )] g ( t )e dt

i 2 ft
TF [ g (t )] g ( t )e dt g p (t ) cos( 2 ft ) i sin( 2 ft ) dt

Gcos ( f ) Gc ( f ) 2 g (t ) cos(2 ft )dt


0

Ex. Trouver la transformée de Fourier en cosinus de g(t)=exp(-a|t|) avec a>0 pour |t|<∞.
Réponse : G(f)=2a/(a2 + 4 2f2)

Transformée de Fourier en sinus


La transformée de Fourier en sinus d'une fonction g(t) est la transformée de Fourier de la
partie impaire de g(t). Si gimpair(t) = gi(t):
gi(t) = g(t) si t > 0; et gi(t) = -g(-t) si t <0.

i 2 ft
Par définition TF [ g ( t )] g ( t )e dt

i 2 ft
TF [ g (t )] g ( t )e dt g i (t ) cos( 2 ft ) i sin( 2 ft ) dt

Gsin ( f ) Gs ( f ) 2i g (t ) sin(2 ft )dt


0

Cours IMN 359. Page 98/138


La transformée de Fourier en cosinus discrèts (DCT dans la Toolbox image
processing de Matlab)
- Extrêmement important pour les signaux réels (sons, images, vidéos)

- Possibilité d’exploiter la propriété de symétrie ( TF d’une fonction réelle et


symétrique est réelle et symétrique)

- Toute l’information du signal est concentrée dans les basses fréquences.


C’est la propriété de ‘’strong energy compaction’’. C’est pourquoi la DCT
est à la base de JPEG, MPEG. Très bon pour la compression.

- Moyen de faire mieux en faisant de la DCT locale. C’est-à-dire faire N


approximations locales en faisant N DCT indépendante dans des fenêtres
locales. (locDCT)

Voir diapositives, notes, TP 4 et démonstrations faites en classe.

Les limites de la Transformée de Fourier

Défauts majeurs de la TF
1- Une information sur un moment du signal est répandue parmi toutes fréquences de
sa transformée (pensez à la TF[Dirac] = 1).

2- Pas d’information sur le temps ou espace. La TF donne le contenu fréquentiel d’un


signal sans donner la localisation. Il est possible de savoir quand ou où une
certaine a eu lieu dans le signal original. Ce manque d’information sur le temps
(espace) rend une TF terriblement sensible aux erreurs.

Exemples :
- Si nous enregistrons un signal d’une heure et que les 5 dernières minutes
sont corrompues, alors cette erreur corrompt TOUTE la TF.

- Les erreurs de phases sont désastreuses. Elles risquent d’engendrer un


signal totalement différent du signal original

Cours IMN 359. Page 99/138


Transformée de Karhunen-Loeve (TKL)
La TKL ou APC (PCA en anglais et dans la Image Processing Toolbox de Matlab) est
une représentation extrêmement utilisé en analyse de données et d’images. Elle est
aussi appelée Transformée de Hotelling, Transformée en composantes principales,
Transformée en vecteurs propres.
Cette section est pour votre culture personnelle et pour vos connaissances en tant
qu’expert en imagerie. Vous ne serez pas questionné sur cette partie dans l’examen
final.

La transformation des coordonnées: rotation


La rotation d'un repère d'un angle est équivalente à une transformation des coordonnées
cos( ) sin( )
par une matrice . Ainsi le point P de coordonnées (x,y) dans le repère
- sin( ) cos( )
(x,y) a pour coordonnées (X,Y) dans le nouveau repère (X,Y) obtenu par rotation de (x,y)
par un angle (Figure ci-dessous).

Ceci peut être démontré comme suit et selon la figure ci-dessous:


X r cos( )
Y r sin( )
et
x r cos( ) r cos( ) cos( ) sin( ) sin( ) r cos( ) cos( ) r sin( ) sin( ) X cos( ) Y sin( )
y r sin( ) r sin( ) cos( ) cos( ) sin( ) r sin( ) cos( ) r cos( ) sin( ) Y cos( ) X sin( )

qui s'écrit comme suit:


x cos( ) - sin( ) X x X cos( ) Y sin( )
y sin( ) cos( ) Y y X sin( ) Y cos( )

Pour chercher l'expression de (X,Y) en fonction de (x,y), prendre le système d'équations


précédent et le résoudre pour (X,Y):
x X cos( ) Y sin( )
y X sin( ) Y cos( )
x Y sin( )
De la 1ère équation: X à substituer dans la 2ème équation:
cos( )

x Y sin( ) x sin( ) Y sin 2 ( ) Y cos 2 ( ) x sin( ) Y


y sin( ) Y cos( )
cos( ) cos( ) cos( )

Cours IMN 359. Page 100/138


Y x sin( ) y cos( )

x Y sin( ) x ( x sin( ) y cos( )) sin( ) x(1 sin 2 ( )) y cos( ) sin( )


X
cos( ) cos( ) cos( )
x cos 2 ( ) y cos( ) sin( )
x cos( ) y sin( )
cos( )
X x cos( ) y sin( )
Y x sin( ) y cos( )

Figure. Rotation du repère xy vers le repère XY par un angle de rotation .

Compression de données
TKL permet de décorréler un signal et de compacter les informations contenues dans un
signal.
Dans une image, il y a une grande corrélation entre les pixels voisins. C'est à dire, en
connaissant l'intensité d'un pixel, on peut savoir l'intensité de son voisin.

Exemple 1.
Le poids est corrélé à la taille (ici les taille 0 cm et poids 0 kg sont mis pour forcer le
passage de la régression linéaire par 0 pour faciliter le calcul de la rotation).
Taille (cm) Poids (kg)
a=[0 0
162.5 76.5
187.5 84.6
150 67.5
175 76.5
140 58.5

Cours IMN 359. Page 101/138


200 91.35
170 72
125 49.5
100 36];

Mettre a(:,1) = taille; a(:,2) = poids. Ajuster les données par une droite et l'afficher:
p=polyfit(a(:,1),a(:,2),1); y=polyval(p,a(:,1));figure;plot(a(:,1),a(:,2),'bo',a(:,1),y,'r-
','linewidth',2);set(gca,'xcolor',[0 0 0],'FontSize',16);set(gcf,'Color',[1 1 1],'Position',[280 100
800 600],'InvertHardCopy','off'); xlabel('Taille (cm)');ylabel('Poids (kg)');print -dtiff tkl-poids-
taille1

Figure. TKL-poids=f(taille).

Trouver l'angle que fait la droite avec l'axe des x. La pente étant la tangente de l'angle
cherché:
= atand(p(1)) = 24.918o; % p(2) étant le coefficient de x0 selon y = p(1)x1 + p(2)x0 ou bien y = ax+b.

En appliquant la rotation avec un angle 24.918o à la matrice a:


ar = (R * a')'; % l'apostrophe indique la transposée.
cos( ) sin( )
et R = = [cosd( ) sind( );-sind( ) cosd( )];
- sin( ) cos( )

ar =[ 0 0
179.604191721671 0.91340900220375
205.689669545723 -2.27372869342308
164.475897252689 -1.9822267586915
190.940566996188 -4.35314543455311
151.614877838611 -5.93117340693813
219.869984216088 -1.41864048194086
184.510057289148 -6.32761875867642
134.219308314726 -7.773498280482
105.858678973994 -9.48367470344645];

Cours IMN 359. Page 102/138


figure;plot(ar(:,1),ar(:,2),'bo','linewidth',2);set(gca,'xcolor',[0 0
0],'FontSize',16);set(gcf,'Color',[1 1 1],'Position',[280 100 800 600],'InvertHardCopy','off');
xlabel('Taille (cm)');ylabel('Poids (kg)');print -dtiff tkl-poids-taille2

Figure. Affichage de ar.

En mettant tous les poids à la moyenne de -4 kg ce qui permet de compresser


les données puisqu'on ne garde que les valeurs de la taille et une seule valeur
pour le poids.
Pour retrouver les valeurs réelles des tailes et des poids, faire la transformée
inverse:

ar =[ 0 -4
179.604191721671 -4
205.689669545723 -4
164.475897252689 -4
190.940566996188 -4
151.614877838611 -4
219.869984216088 -4
184.510057289148 -4
134.219308314726 -4
105.858678973994 -4];

cos( ) - sin( )
Rr = = [cosd( ) -sind( );sind( ) cosd( )]
sin( ) cos( )

arr=(Rr*ar')'; % Alternativement on utilise l'inverse de R au lieu de Rr: arri=(inv(R)*ar')';

arr =[ 1.6852974197622 -3.62764008784539


164.570138878413 72.0439801339063
188.227320144696 83.0344272514411
150.850137009311 65.6700612254119
174.851211227587 76.8202711338061
139.186349610043 60.2514005168974

Cours IMN 359. Page 103/138


201.087589633816 89.0089391827868
169.019317527953 74.1109407795489
123.410133271107 52.922223408423
97.6895942928666 40.9731995457315];

Afficher a et arr pour comparaison:


figure;plot(a(:,1),a(:,2),'bo',
arr(:,1),arr(:,2),'ro','linewidth',2);legend({'a','arr'});set(gca,'xcolor',[0 0
0],'FontSize',16);set(gcf,'Color',[1 1 1],'Position',[280 100 800 600],'InvertHardCopy','off');
xlabel('Taille (cm)');ylabel('Poids (kg)');print -dtiff tkl-poids-taille3

Figure. Matrice de départ a et matrice compressée puis reconstruite arr.

Exemple 2.
Prendre l'image de la figure suivante:

Cours IMN 359. Page 104/138


Sélectionner les indices pairs des pixels sur les colonnes et les afficher en fonction des
indices impairs à partir de l'image précédente, tracer une ligne de régression y=x.

Faire une rotation de 45o:

Cours IMN 359. Page 105/138


Procédure de calculs de la transformation:
1- Centrer les valeurs des pixels pairs = f(impairs) formant la matrice X, c'est-à-dire
mettre leur moyenne 0 en retranchant la moyenne de leur intensité: n = size(X,1);X0
= X - ones(n,1) * mean(X);
2- Calculer la covariance: c = X0'*X0/(n-1);
3- Calculer les vecteurs propres et les valeurs propres de la matrice de covariance.
Les vecteurs propres forment une base orthogonale: [v,d]=eig(c);
4- Prendre la diagonale des valeurs propres et les normaliser de façon à obtenir leur
total égal à 1: dd=diag(d); dd=dd/sum(dd);
5- Choisir les valeurs les plus importantes des valeurs propres normalisées. Ces
valeurs choisies indiquent le nombre de composantes à retenir ainsi que leur
position.
6- On peut vérifier l'orthonormalité des vecteurs propres en observant que la
diagonale de la matrice suivante vaut 1: w=v*v';
7- Sélectionner les np vecteurs propres correspondants aux valeurs propres les plus
importantes: vs=v(:,end-np+1:end);
8- Calculer les composantes: Y=(vs'*X0')';
9- Finalement, reconstruire l'image:
yr=reshape(Y,128,256);figuredb;colormap(map);imagesc(yr);

Cours IMN 359. Page 106/138


Figures. Différence entre Yr l'image compressée en éliminant la corrélation entre 2 pixels
voisins, et l'image Xr ou les pixels voisins ont été directement éliminés.

Exemple 3.
Dans cet exemple, il ne s'agit pas de compresser des images, mais de mettre en évidence
des structures qui ne sont pas apparentes sur les images de départ. L'algorithme
décompose la séquence dynamique en plusieurs composantes ayant des comportements
dans le temps différents, c'est-à-dire en composantes orthogonales. Ici la série d'images a
été décomposée en 2 composantes: sang et tissue.
Les images sont obtenues avec l'imagerie par la tomographie d'émission par positrons
(TEP). Le but est de mesurer le métabolisme du glucose dans le coeur d'un rat. Le
glucose marqué par un émetteur de radioactivité (radiotraceur) est injecté dans le rat. La
mesure de la concentration du radiotraceur dans le coeur du rat se fait en fonction du
temps: 12 x 5 sec; 8 x 30 sec et 3 x 300 sec.

L'image de tous les cadres montre l'ensemble des images où l'on constate
l'accumulation du radiotraceur dans le coeur à mesure que le temps passe.
La décomposition permet de ressortir des structures, qui, autrement, n'étaient pas
apparente.
Observer comment la décomposition a permis de faire apparaître les poumons
(Composante image # 1) comme dans l'image anatomique à travers le thorax.

Cours IMN 359. Page 107/138


Les ondelettes.

Soit un phénomène physique représenté par la fonction f(x) suivante :

f(x)

x
Figure. Signal réel.

Ce phénomène ne peut être mesuré ni représenté qu’à certains points spécifiques. Ces
points pourraient être des valeurs ponctuelles ou des moyennes de valeurs sur un
intervalle de temps, d’espace, d’énergie etc…. comme représenté à la figure suivante :

f(x)

Cours IMN 359. Page 108/138

x
Figure. Signal mesuré à certains échantillonnages réguliers ou irréguliers.

f(x)

x
Figure. Au lieu de représenter un signal par des points échantillonnés, on peut le
représenter par des barres horizontales, ou fonction en escalier. Ces barres devraient être
de même longueur.

Le pas de chaque fonction en escalier (ou fonction à pas, step function) est défini sur un
intervalle spécifique. La fonction à pas unitaire s’exprime par :

1 si 0 r 1
0 ,1 (r )
0 ailleurs

1 r

La fonction échantillonnée peut être représentée par des déplacements (shift) et des
dilatations (dilation) des pas de la fonction à pas. Exemple rétrécissement du pas de 1 à
w:

1 si 0 r w
0, w (r )
0 ailleurs 1

Cours IMN 359. Page 109/138

w 1
Déplacement de 0 vers u :

c si u r w
c u ,w (r ) c
0 ailleurs

u w

Forme générale pour un point quelconque j:

sj si r j r rj 1
(s j , rj ) s j. r j ,rj (r )
1
0 ailleurs

En considérant tous les pas approximant une fonction f par fap:

n 1 n 1
f ap s0 . [ r0 ,r1 [ s1. [ r1 ,r2 [ ... sn 1. [ rn 1 ,rn [ sj [ r j ,r j 1 [ ( s j , rj )
j 0 j 0

Exemple 1.
j 0 1
rj 0 ½
sj 9 1

n 1
f ap sj r j ,r j 1
9 0 ,1 / 2 1 1 / 2 ,1
j 0

Cours IMN 359. Page 110/138


Exemple 2.
j 0 1 2 3
rj 0 ¼ ½ ¾
sj 5 1 2 8

n 1
f ap sj r j ,r j 1
5 0 ,1 / 4 1 1 / 4 ,1 / 2 2 1 / 2,3 / 4 8 3 / 4 ,1
j 0

Exemple 3.
j 0 1 2 3 4 5 6 7
rj 0 1/8 2/8 3/8 4/8 5/8 6/8 7/8
sj 3 1 0 4 8 6 9 9

f ap 3 0,1 / 8 1 1 / 8, 2 / 8 0 2 / 8, 3 / 8 4 3 / 8, 4 / 8 8 4 / 8, 5 / 8 6 5 / 8, 6 / 8 9 6 / 8, 7 / 8 9 7 / 8,1

Exercice 1.
Écrire la somme et dessiner le graphique de:
rj 0 1/8 2/8 3/8 4/8 5/8 6/8 7/8
sj 8 6 7 3 1 1 2 4

rj 0 1/4 2/4 3/4


sj 3 1 9 7

Cours IMN 359. Page 111/138


Exercice 2.
Montrer que 0 ,w (r ) 0,1 (r / w) w 0
r u
Montrer que u ,w (r ) 0 ,1 ( ) u, w 0
w u

Cours IMN 359. Page 112/138


L’ondelette de Haar :

11 Octobre 1885, Budapest - 16 mars 1933, Szeged, Hongrie.


En étudiant la divergence des fonctions continues, il a proposé une base orthonormale :
l’ondelette de Haar (1909).

0,1 0,1 / 2 1 / 2,1

1 si 0 r 1/2
0 ,1 - 1 si 1/2 r 1
0 ailleurs

Figure. 0 ,1 0,1 / 2 1 / 2,1

0 ,1 0 ,1 / 2 1 / 2 ,1

0 ,1 0 ,1 / 2 1 / 2 ,1

En sommant, puis en soustrayant ces deux équations, on obtient :

0 ,1 0 ,1 /2 0 ,1 / 2

0 ,1 0 ,1 /2 1 / 2 ,1

Figure. 0,1 / 2 0,1 0,1 /2

Cours IMN 359. Page 113/138


Figure. 1 / 2 ,1 0 ,1 0 ,1 /2

Dans une expression générale :

f ap s0 0 ,1 / 2 s1 1 / 2 ,1

s0 0 ,1 0 ,1 / 2 s1 0 ,1 0 ,1 /2
s0 s1 s0 s1
0 ,1 0 ,1
2 2

s0 s1
exprime la moyenne dans les amplitudes du signal.
2

s0 s1
exprime la variation dans les amplitudes du signal.
2

Exemple 1.

j 0 1
rj 0 1/2
sj 9 1

9 1 9 1
f ap 9 0 ,1 / 2 1 1 / 2 ,1 0 ,1 0 ,1 5 0 ,1 4 0 ,1
2 2

Figure. Exemple d’une transformation en ondelette de base. Ces deux échantillons ont
une moyenne de 5 et un saut de -8, soit de 9 à 1.

Déplacement et dilatation de l’onedelette de Haar :


L’ondelette peut débuter à une position u autre que 0, et peut s’étendre sur un intervalle w
au lieu de 1 :

Cours IMN 359. Page 114/138


1 si u r v
u ,w (r ) avec v=u+w/2
- 1 si v r w

Simplifications des écritures :


u ,w u ,v v ,w
Par définition :
u ,w u ,v v ,w

En additionnant et en soustrayant on obtient le système suivant :

u ,v u ,w u ,w /2
v ,w u ,w u ,w /2

Cette dernière forme est appliquée à un vecteur.

Exemple 2.
j 0 1 2 3
rj 0 1/4 2/4 3/4
sj 5 1 2 8

f ap 5 0 ,1 / 4 1 1/ 4, 2 / 4 2 2 / 4,3 / 4 8 3 / 4, 4 / 4

5 1 5 1 2 8 2 8
0, 2 / 4 0, 2 / 4 2 / 4, 4 / 4 2 / 4, 4 / 4
2 2 2 2
5 1 5 1 2 8 2 8
0 ,1 / 2 0 ,1 / 2 1 / 2 ,1 1 / 2 ,1
2 2 2 2
3 0,1 / 2 2 0 ,1 / 2 5 1 / 2 ,1 3 1 / 2,1

1ère paire 2ème paire

Exemple 3.
j 0 1 2 3 4 5 6 7
rj 0 1/8 2/8 3/8 4/8 5/8 6/8 7/8
sj 3 1 0 4 8 6 9 9

f ap 3 0 ,1 / 8 1 1 / 8, 2 / 8 0 2 / 8, 3 / 8 4 3 / 8, 4 / 8 8 4 / 8, 5 / 8 6 5 / 8, 6 / 8 9 6 / 8, 7 / 8 9 7 / 8,8 / 8

3 1 3 1
0, 2 / 8 0, 2 / 8
2 2
0 4 0 4
2 / 8, 4 / 8 2 / 8, 4 / 8
2 2
8 6 8 6
4 / 8, 6 / 8 4 / 8, 6 / 8
2 2
9 9 9 9
6 / 8,8 / 8 6 / 8,8 / 8
2 2
2 0 , 2 / 8 1 0 , 2 / 8 2 2 / 8, 4 / 8 2 2 / 8, 4 / 8 7 4 / 8, 6 / 8 1 4 / 8, 6 / 8 9 6 / 8,8 / 8 0 6 / 8 ,8 / 8

Cours IMN 359. Page 115/138


Puisque j et rj n’apparaissent pas dans l’expression de la fonction approximée, alors les
données de la transformée de Haar peuvent être écrites sous forme de sj seulement.

L’exemple ci-dessus peut alors s’écrire :

j 0 1 2 3 4 5 6 7
rj 0 1/8 2/8 3/8 4/8 5/8 6/8 7/8
sj 3 1 0 4 8 6 9 9

S (3,1,0,4,8,6,9,9)

Exercices :
1- Calculer la transformée par l’ondelette de Haar des vecteurs S1 (2,8) , S 2 (2,4,8,6) et
S 3 (8,6,7,3,1,1,2,4)
2- Montrer que pour une fonction de 4 échantillons (s0,s1,s2,s3), la moyenne des
moyennes des deux paires consécutives est la moyenne des quatre échantillons.

La transformée de Haar rapide et ordonnée


Le calcul de la trasnformée se fait par étape, et le résultat est classé dans l’ordre selon les
étapes.

Exemple : S (3,1,0,4,8,6,9,9)
Étape 1.
On fait les paires des sommations :
3 1 0 4 8 6 9 9
a1 , , , 2,2,7,9
2 2 2 2
Puis on fait les paires des différences :
3 1 0 4 8 6 9 9
d1 , , , 1, 2,1,0
2 2 2 2

Étape 2 :
On garde d1 et on fait la transformation de a1 :
On fait les paires des sommations :
2 2 7 9
a2 , 2,8
2 2
Puis on fait les paires des différences :
2 2 7 9
d2 , 0, 1
2 2

Étape 3 :
On garde d2 et on fait la transformation de a2 :
On fait la paire de sommation :
2 8
a3 5
2
Puis on fait la paire de différence :
2 8
d3 3
2

Cours IMN 359. Page 116/138


Résultat de la transformation : f ap (a3; d 3; d 2; d1) (5; 3;0, 1;1, 2,1,0)
Qui s’écrit aussi sous la forme :

f ap 1 0, 2 / 8 2 2 / 8, 4 / 8 1 4 / 8, 6 / 8 0 6 / 8,8 / 8 Étape 1
0 0, 4 / 8 1 4 / 8,8 / 8 Étape 2
3 0 ,8 / 8 5 0 ,8 / 8 Étape 3

Qui est une représentation de fap :


f ap 3 0,1/ 8 1 1/ 8, 2 / 8 0 2 / 8,3 / 8 4 3 / 8, 4 / 8 8 4 / 8, 5 / 8 6 5 / 8, 6 / 8 9 6 / 8, 7 / 8 9 7 / 8, 8 / 8

La transformée de Haar rapide et sur place (In-place fast Haar wavelet transform)
La transformée de Haar rapide et ordonnée nécessite la connaissance de toutes les
données avant de procéder la transformation, car tous les éléments sont utilisés dans le
calcul 2 par 2.
Mais il est possible de faire le calcul avec les éléments déjà disponibles, soient les
additions et les soustractions des paires successives : il faut alors identifier les éléments
provenant des additions (a) et des soustractions (d).

Exemple 1:
S ( s0 , s1 , s2 , s3 , s4 ,....s2 k , s2 k 1 ,....)
Étape 1 :
s0 s1 s0 s1 s2 s3 s2 s3
f ap1 , , , ,.......
2 2 2 2
a 11 , d11 , a 12 , d12 ,.....
Étape 2 :
a11 a12 1 a11 a12 2
f ap2 , d1 , , d1 ,.......
2 2
a 12 , d11 , d12 , d12 ,.....

Par définition :
- Les étapes de la décomposition ou de la transformation sont appelés niveaux de
décomposition ou de transformation.
- Les éléments a de la décomposition forment les coefficients des approximations.
- Les éléments d de la décomposition forment les coefficeints des détails.
- Des coefficients des approximations et des détails on peut retrouver le signal de
départ : c’est l’opération de la reconstruction du signal ou la transformée inverse.
- Les éléments de la décomposition sont appelés C, pour coefficients.

Cours IMN 359. Page 117/138


Exemple 2:
Faire la décomposition avec la méthode rapide et sur place :

S (3,1,0,4,8,6,9,9)
3 1 3 1 0 4 0 4 8 6 8 6 9 9 9 9
C1 , , , , , , , 2,1, 2, 2, 7,1, 9,0
2 2 2 2 2 2 2 2
2 2 2 2 7 9 7 9
C2 ,1, , 2, ,1, ,0 2,1,0, 2, 8,1, 1,0
2 2 2 2
2 8 2 8
C3 ,1,0, 2, ,1, 1,0 5,1,0, 2 3,1, 1,0
2 2

Peu importe la procédure, on doit reconnaître les sommes ( et les différences ( pour
pouvoir reconstruire le signal.
Exercice 1.
Calculer la transformée ordonnée de S=(8,6,7,3,1,1,2,4).

Exercice 2.
Calculer la transformée sur place de S=(8,6,7,3,1,1,2,4).

La transformée inverse de l’ondelette de Haar, ou reconstruction du signal


Que ce soit avec la transformation de l’ondelette de Haar ordonnée ou sur place,
l’essentiel est de pouvoir classer les coefficients des approximations et des détails selon la
position des paires et selon les niveaux de décomposition pour un éventuel filtrage et pour
la reconstruction.

Exemple.
Reconstruction d’une transformation ordonnée.
S=(3,1,0,4,8,6,9,9)
C3=(5;-3;0,-1;1,-2,1,0) = (a3;d3;d2;d1)

À partir des coefficients d’approximation et de détail, il est possible de retrouver le signal


de départ en reconstituant le signal étape par étape et en se basant sur les sommes et les
différences.
Exemple déduit du niveau 3 :
x y
a3
2 x y 2a3 2x 2(a3 d3) x a3 d3
x y x-y 2d 3 2y 2(a3 - d3) y a3 - d3
d3
2
On retrouve C2 :
C3 = (a3+d3,a3-d3;d2;d1) = (5-3;5+3;0,-1;1,-2,1,0) = (2,8;0,-1;1,-2,1,0) = (a2;d2;d1)

On remonte à C1, toujours en calculant les éléments x et y à partir des coefficients


d’approximation et de détail du niveau concerné tout en respectant l’ordre des paires
d’éléments :
C1 = (a2+d2,a2-d2;d1) = (2+0,2-0,8-1,8+1;1,-2,1,0) = (2,2,7,9;1,-2,1,0) = (a1;d1)

Finalement on reconstruit C1 pour arriver au vecteur de départ S:


C1 = (a1+d1,a1-d1;d1) = (2+1,2-1,2-2,2+2,7+1,7-1,9+0,9-0) = (3,1,0,4,8,6,9,9)

Cours IMN 359. Page 118/138


Décomposition et reconstruction, ou transformation et transformation inverse, à
l’aide de filtres

Il est possible de développer ses propres programmes de calculs de décomposition et de


reconstruction en ondelettes, comme il est possible d’utiliser des outils déjà existants.

Filtres de décomposition
Nous avons jusqu’à présent utilisé des calculs algébriques dans la décomposition et la
reconstruction des signaux. Nous pouvons cependant procéder les mêmes calculs avec
des filtres, des opérations matricielles et des opérations de convolution. Les calculs par
convolution sont les plus utilisés.

Exemple :
Trouves les coefficients d’approximation et de détail du vecteur S = (s1,s2).
Méthode usuelle :
s1 s2 s1 s2
a1 et d1
2 2
Méhode par filtres :
Le filtre de la sommation est LD = [1 1]/2. LD est le filtre basse fréquence de
décomposition (LD = Low Decomposition).
Le filtre de la différence est HD = [1 -1]/2. HD est le filtre haute fréquence de
décomposition (HD = High Decomposition).
La régularité du signal s’observe à basse fréquence.
Les fluctuations du signal (bruit) s’observe à haute fréquence.
1 s1 s2
a1 S .LD T ( s1 s 2 ). / 2
1 2
1 s1 s2
d1 S .HD T ( s1 s 2 ). /2
1 2
T T
LD et HD sont les transposées de LD et HD.
On peut comme précédemment décomposer un signal en ses coefficients d’approximation
et de détail avec les sommations et les différences, on peut le faire aussi matriciellement
avec les filtres LD et HD, en produisant une matrice filtre H:
1 1
H /2
1 -1
Ainsi les coefficients C1 sont obtenus:
1 1 s1 s2 s1 s2
C 1 S .H ( s1 s 2 ). /2
1 -1 2 2

Exemple:
a- Décomposer par la méthode algébrique (sommation et différence) au niveau 1 le
vecteur S 0 3 1 5 . Noter que nous avons omis d’insérer les virgules entre les
éléments de S. À partir de maintenant, nous allons toujours faire toutes les sommations
d'abord, suivies de toutes les différences pour obtenir en première moitié du vecteur les
coefficients d'approximation, et en deuxième moitié les coefficients de détail.
C 0 3 1 5 0 - 3 1 - 5 / 2 (3 6 3 4) / 2

b- Décomposer par la méthode des filtres avec calcul matriciel et au niveau 1 le vecteur
S 0 3 1 5 .

Cours IMN 359. Page 119/138


Puisque nous avons 4 éléments dans le vecteur à décomposer, il nous faut une matrice
filtre H de 4 x 4 qui agit sur les éléments de S par paire pour les sommations et pour les
différences.

1 0 1 0
1 0 -1 0
C (0 3 1 5). /2 0 3 1 5 0 - 3 1- 5 / 2 3 6 -3 -4 /2
0 1 0 1
0 1 0 -1

c- Décomposer par la méthode de la convolution au niveau 1 le vecteur S 0 3 1 5 .


Les filtres de convolution sont LD = [1 1]/2 et HD = [1 -1]/2. Faisant d’abord la convolution
de S avec LD suivie de la convolution de S avec HD, on obtient : C = ([0 0+3 3+1 1+5
5] [-0 0-3 3-1 1-5])/2. Les valeurs dans le premier crochet correspondent aux
coefficients d’approximation, et celles du second crochet correspondent aux coefficients
de détail. Une seconde opération est nécessaire dans cette procédure: c’est la décimation.
Il s,agit de ne retenir que les éléments de rand pair et d’ignorer les autres:
C = ([0+3 1+5] [0-3 1-5])/2 = ([3 6] [-3 -4])/2 = (3 6 -3 -4])/2.

Remarque: Même si la procédure par la convolution nécessite 2 opérations, convolution-


décimation, elle est la plus rapide et la plus utilisée. La méthode algébrique nécessite des
boucles et un tri des éléments. La méthode matriciel nécessite la création et le maintien en
mémoire de la matrice des filtres.

Exercice 1.
a- Écrire le filtre H pour décomposer un vecteur de 8 éléments.
b- Décomposer aux niveaux 1, 2 et 3 le vecteur S = (3,1,0,4,8,6,9,9).

Filtres de reconstruction
Nous avons démontré ci-haut la reconstruction par l'approche algébrique:
x y
a
2 x y 2a 2x 2(a d) x a d
x y x - y 2d 2y 2(a - d) y a -d
d
2

il apparaît donc que:


1 1
(a d). a d a-d x y
1 -1
soit
1 1
H
1 -1
et les filtres de reconstruction basse fréquence LR et de haure fréquence HR sont donnés
par: LR = [1 1]; HR = [1 -1];

Exercice 2:
a- Établir les filtres de reconstruction aux niveaux 3, 2 et 1.

Cours IMN 359. Page 120/138


b- Retrouver, à partir du vecteur décomposé de S de l'exercice 1 ci-dessus, les
coefficients C2, C1 puis le signal S.

La transformée de Haar en 2D
La transformée de Haar en 2D s'obtient en transformant selon les lignes, puis le résultat
est trasnformé selon les colonnes.

Exemple:
s00 s 01
S
s10 s11

Algébriquement:
s00 s01 s00 s01
Cl1 2 2 calculs selon les lignes.
s10 s11 s10 s11
2 2

s00 s01 s10 s11 s00 s01 s10 s11


2 2 2 2
C1 /2
s00 s01 s10 s11 s00 s01 s10 s11
Calculs selon les colonnes.
2 2 2 2
( s00 s01 ) ( s10 s11 ) ( s00 s01 ) ( s10 s11 )
/4
( s00 s01 ) ( s10 s11 ) ( s00 s01 ) ( s10 s11 )

Figure. Diagramme représentant la décomposition d'une matrice S selon les lignes, puis selon les
colonnes, en appliquant les filtres de décomposition de basse fréquence LD et de haute fréquence
HD, pour obtenir les coefficients des approximations CA, les coefficients des détails horizontaux
CDh, verticaux CDv, et diagonaux CDd, et ce pour un niveau 1 de décomposition.

La décomposition de S ci-dessus s'exprime:

Cours IMN 359. Page 121/138


( s00 s01 ) ( s10 s11 ) ( s00 s01 ) ( s10 s11 )
C1 /4
( s00 s01 ) ( s10 s11 ) ( s00 s01 ) ( s10 s11 )
s00 s01 s10 s11 s00 s01 s10 s11
/4
s00 s01 s10 s11 s00 s01 s10 s11
s00 s01 s10 s11 s00 s10 s01 s11
/4
s00 s01 s10 s11 s00 s11 s01 s10
CA CDv
CDh CDd

CA CDh
Habituellement, les coefficients s’écrivent selon : , et donc selon les calculs
CDv CDd
précédents on doit permuter CDh et CDv.

Exemple:
Voici un exemple de décomposition au niveau 1 de l’image suivante :

Figure. Image décomposée au niveau 1 par l'ondelette de Haar montrant les coefficients des
approximations, des détails horizontaux, verticaux et diagonaux.

Cours IMN 359. Page 122/138


Exemple 2 :
Voici maintenant un exemple de la décomposition au niveau 3 de l’image de woman.

Figure. Image de woman décomposée aux niveaux 1, 2 et 3 avec dwt2. L’image peut
aussi être directement décomposée avec wavedec1:

Exercice 1.
a b
Décomposer S selon les lignes-colonnes puis selon les colonnes-lignes et
c d
comparer les résultats. Reconstruire S à partir des coefficients.

Exercice 2.
a b c d
e f g h
Décomposer S au niveau 1 selon les lignes-colonnes puis selon les
i j k l
m n o p
colonnes-lignes et comparer les résultats.

Cours IMN 359. Page 123/138


Théorie des ondelettes.

Les ondelettes de Haar

Nous avons vu la définition de la fonction suivante:

1 si 0 x 1
0,1 ( x)
0 ailleurs

0 1 x

Pour une fonction f(x) contenant plusieurs blocs, on l'exprime comme suit:
f ( x) 2 ( x) 3 ( x 1) 3 ( x 2) ( x 3)

f(x) 3 3

0 1 2 3 4 x
-1

D'une forme générale, f(x) s'exprime comme suit:


f ( x) ak ( x k ) ak R
k Z

Les ondelettes permettent de traiter des signaux de haute résolution ou haute fréquence.
Les blocs devraient alors être raccourcis.

(2x) raccourcit le bloc de moitié par rapport à (x):


(x)=1 si 0 ≤ x < 1
(2x)=1 si 0 ≤ 2x < 1 ou 0 ≤ x < 1/2

Cours IMN 359. Page 124/138


et la forme générale devient:
f ( x) a k (2 x k ) ak R
k Z

(4x) raccourcit le bloc de 4 fois par rapport à (x):


(x)=1 si 0 ≤ x < 1
(4x)=1 si 0 ≤ 4x < 1 ou 0 ≤ x < 1/4
et la forme générale devient:
f ( x) a k (4 x k ) ak R
k Z

En généralisant, on obtient la forme suivante:


f ( x) ak (2 j x k ) ak R et j N
k Z

ici le paramètre j réfère à la dilatation et le paramètre k réfère à la translation.

Nous avons vu au début du chapitre précédent la définition de :


0,1 0,1 / 2 1 / 2,1

Celle-ci peut prendre la forme:


( x) (2 x) (2( x 1 / 2)) (2 x) (2 x 1)

qui peut s'exprimer sous la forme générale:


( x) al (2 x l )
l Z

L'ondelette et la fonction d'échelle sont orthonormales:

( x) ( x k )dx 0 qui peut être démontrée comme suit:

1/2 1
( x) ( x k )dx 0 ( x) ( x)dx 0 avec k 0 1dx - 1dx 1 / 2 1 / 2 0
0 1/2

Il arrive dans certains ouvrages d'exprimer autant que sous une forme paramétrique
normalisée:
j
k ( x) 2 j (2 j x k )
j = 0, 1, 2, ....; k = 0, 1, ..., 2j - 1
j j j
k ( x) 2 (2 x k )

Ces expressions sont identiques à celles précédemment annoncées, sauf le coefficient 2j/2
qui est un facteur de normalisation de façon à obtenir:
1 2
j j j
k, k k ( x) dx 1
0
1 2
j j j
k, k k ( x) dx 1
0

Cours IMN 359. Page 125/138


Par le fait de la normalisation, les filtres de décomposition de Haar s'écrivent:
LD = [1 1]/21/2
HD = [1 -1]/21/2

En 2D, on obtient le filtre de décomposition suivant:


1 1
/ 21 / 2
1 -1

Ce filtre est développé pour une matrice de 4 x 4 utilisé dans une multiplication matricielle:

1 0 1 0
1 0 -1 0
/ 21 / 2
0 1 0 1
0 1 0 -1

Le filtre de reconstruction est déduit par transposition du filtre de décomposition.

NOTE: ces filtres génèrent une matrice des coefficients comme suit:
ca cv
ch cd

Cours IMN 359. Page 126/138


Les ondelettes continues.
Soit une fonction continue et intégrable.
Pour être une ondelette, la fonction doit vérifier les 2 conditions d'admissibilité suivantes:

(t )dt 0 et (t ) 1

1
T 2 1
1 T 2 2
(Rappel: norme de f: f f, f 2 f (t ) f (t )dt f (t ) dt )
0
0

À partir de la fonction , on construit une famille de fonctions a,b(t) telles que:


1 t b
a , b (t ) avec a R+ et b R
a a

Les coefficients d'une fonction f(t) décomposée par l'ondelette a,b(t) sont donnés par:

C f ( a, b) f (t ) a , b (t )dt f, a,b
R

où f , a ,b est le produit scalaire.

Exemple:
Ajuster l'ondelette sur la gauche de la fonction et calculer le coefficient:

Cours IMN 359. Page 127/138


Avancer l'ondelette d'une position à la fois sur la fonction et calculer le coefficient:

Quand toutes les positions de la fonction sont parcourues, dilater l'ondelette et parcourir
les positions de la fonction de nouveau:

Exemple d'ondelettes:

Ondelette de Daubechies d'ordre 1 ou de Haar

Ondelettes de Daubechies d'ordre 2 à 10:

Cours IMN 359. Page 128/138


Ondelettes biorthogonales:

Cours IMN 359. Page 129/138


Ondelettes coiflet

Ondelette mexican hat

Cours IMN 359. Page 130/138


Ondelette morlet

Ondelettes symlets

Ondelette meyer

Cours IMN 359. Page 131/138


Cours IMN 359. Page 132/138
Exercices et applications des ondelettes.

Exemple 1: (cwtb2)
ydata=f(xd) Gaussian and Wavelet psi
120 3

100
2

80
1
60
0
40

-1
20

0 -2
0 50 100 150 200 250 300 0 0.2 0.4 0.6 0.8 1

Contours of thresholded coefs Reduced and thresholded coefs


250
140 140
250
120 120
200 101 111

100 100 200


29 89 200 89
80 80 150
150

60 60
100
40 100 40
50
20 20

50 0
50 100 150 200 250 300 50 100 150 200 250 300

ydata and decomposed functions with amps from ydata Fit with lsqcurvefit
120 120

100 100

80 80

60 60

40 40

20 20

0 0
0 50 100 150 200 250 300 0 50 100 150 200 250 300

Cours IMN 359. Page 133/138


Exemple 2:
y=[2 2 6 3 2];

Avec Matlab:
echelle=2;c=cwt(y, echelle,'db1');c, % db1 ondelette 1D de Daubechies <==> Haar.

Par la convolution:
for i=1:length(y);y1=[0 y 0];cy(i)=sum(y1(i:i+1).*[1 -1]/2^(1/2));end;cy
c = cy = -1.4142 0 -2.8284 2.1213 0.7071

y=[2 2 6 3 2];
echelle=4;
c=cwt(y, echelle,'db1');c, % db1 ondelette 1D de Daubechies <==> Haar.
for i=1:7;y1=[0 0 0 y 0 0 0];cy(i)=sum(y1(i:i+3).*[1 1 -1 -1]/2^(2/2));end;cy
c= -2 -3 -2.5 1.5 3.5
cy = -1 -2 -3 -2.5 1.5 3.5 2.5
Dans cy, les multiplications doivent être appliquées symétriquement sur les valeurs de f,
puis retenir la partie centrale de même longueur que f.

y=[2 2 6 3 2];
c=cwt(y, 2^3,'db1');c,
y1=[0 0 0 0 0 0 0 0 y 0 0 0 0 0 0 0 0];for i=1:length(y1)-7;cy(i)=sum(y1(i:i+7).*[1 1 1 1 -1 -1
-1 -1]/2^(3/2));end;[c'-cy(5:9)']

Programme non-généralisé et non-validé:


n=4;y = [ 2 2 6 3 2];
c=cwt(y, 2^n,'db1');y1=[zeros(1,2^n) y zeros(1,2^n)];
for i=1:length(y1)-2^n+1;cy(i)=sum(y1(i:i+2^n-1).*[ones(1,2^n/2) -
ones(1,2^n/2)]/2^(n/2));end;
cy(1:2^n/2)=[];cy(end-2^n/2:end)=[];[c'-cy']

Cours IMN 359. Page 134/138


Exemple 3:
load woman; figure;imagesc(X);colormap(map);title('X');colorbar;
n=1;[LD,HD,LR,HR] = wfilters('haar');
dd=wavedec1(X,n,LD,HD);figure;imagesc(dd);colormap(map);title('Niveau 1');
ca0=dd(1:128,1:128);figure;imagesc(ca0);colormap(map);title('ca0'); colorbar;
ch0=dd(1:128,129:256);figure;imagesc(ch0);colormap(map);title('ch0'); colorbar;
cv0= dd(129:256,1:128);figure;imagesc(cv0);colormap(map);title('cv0'); colorbar;
cd0= dd(129:256,129:256);figure;imagesc(cd0);colormap(map);title('cd0'); colorbar;

dr=waverec1(dd,n,LR,HR);figure;imagesc(dr);colormap(map);colorbar;title('dr');
figure;imagesc(X-dr);colormap(map);colorbar;title('X-dr');

a=cd0; x=min(min(a)):0.01:max(max(a));nd=hist(a(:),x);
figure;bar(x,nd,'r');axis([min(min(a)) max(max(a)) -inf
inf]);title('cd');nd0=nd;in=find(nd==0);nd(in)=[];x0=x;x(in)=[];[parm,yfit]=lsqcurvefit_gauss1(
400,20,0,x,nd);

ch0(find(abs(ch0)>10))=0;
cv0(find(abs(cv0)>20))=0;
cd0(find(abs(cd0)>0))=0;

ddm=[ca0 ch0;cv0 cd0];

dr=waverec1(ddm,n,LR,HR);figure;imagesc(dr);colormap(map);colorbar;title('dr');
figure;imagesc(X);colormap(map);colorbar;title('X'); figure;imagesc(X-
dr);colormap(map);colorbar;title('X-dr');

figure;plot(1:256,X(88,:),'b-',1:256,dr(88,:),'r-');legend('Profile 88 de X','Profile 88 de dr');

Cours IMN 359. Page 135/138


X Niveau 1

200

50 50
150

100 100 100

50
150 150

0
200 200

-50

250 250
50 100 150 200 250 50 100 150 200 250

ca ch
220

200 30
20 20
180
20
40 160 40

140 10
60 60
120
0
80 100 80

80 -10

100 100
60
-20
40
120 120
-30
20 40 60 80 100 120 20 40 60 80 100 120

cv cd

80
30

20 60 20
20
40
40 40
10
20

60 60
0 0

80 -20 80
-10

-40
100 100 -20
-60

120 120 -30


-80
20 40 60 80 100 120 20 40 60 80 100 120

Histogramme de cd et ajustement avec gaussienne


1200

1000

800

600

400

200

0
-40 -30 -20 -10 0 10 20 30 40

Cours IMN 359. Page 136/138


Niveau 2

50

100

150

200

250
50 100 150 200 250

Cours IMN 359. Page 137/138


Exercice 1. Écrire la somme des fonctions sur rj = 0 1/8 2/8 3/8 4/8 5/8 6/8 7/8 et
déssiner le graphique de s = (8 6 7 3 1 1 2 4).

Exercice 2. Décomposer au niveau 3 le signal s = (2 5 7 4 0 1 8 2), puis reconstruire le


résultat pour retrouver s.

Exercice 3. Décomposer au niveau 2 l'image s, puis reconstruire le résultat pour retrouver


s:
8 6 7 5 Résultat Matlab: 4.5 0 2 2
-0.5 1 -2 2
2 4 3 1 0 1 1 0
s
0 2 9 7 -1 1 0 0
4 6 5 3

Exercice 4.
a) Lire l'image woman et la décomposer par l'ondelette de Haar au niveau 1.
b) Pour la reconnaissance qualitative du visage, peut-on perdre de l'information en
compressant l'image de 256 x 256 à 128 x 128?
c) En mettant les détails diagonaux à zéro, reconstruire l'image X pour obtenir dr. Tracer le
profil 88 à travers X et dr sur la même figure. Quel est l'effet de mettre les détails à 0?
d) Calculer l'histogramme des coefficients d'approximation, et des 3 détails. Quelle est la
forme de chacun des 4 histogrammes?
e) Sur les histogrammes des coefficients de détails, choisir un seuil pour mettre à zéro
certaines valeurs, puis reconstruire l'image dr et la comparer à l'image X.

Cours IMN 359. Page 138/138

Vous aimerez peut-être aussi