Vous êtes sur la page 1sur 10

Adriana Kanashiro Da Costa Zangr Ibrahim

Rapport de TP - Sance 2 Initiation au traitement de signal et applications (Responsable : M F. Sur)

1. Un peu de musique
On dispose de chiers son (format .wav) : diapason.wav, guitar_la.wav, guitar_si.wav et banjo.wav, dont on veut observer le spectre dchantillonnage dans la transformation en sries de fourier. Tout dabord on observe leurs frquences dchantillonnage.

1.a. Frquences dchantillonnage


>>[w1,Fs,nbits]=wavread(diapason.wav ); >>N=length(w1); Ces commandes nous permet dobserver : Fs : le nombre dchantillons par seconde dans le signal (frquence dchantillonnage) length(w1) : le nombre dchantillons du signal On remarque que la frquence de banjo est la plus petite.

Sons diapason guitar_si guitar_la banjo

Frquences(kHz) 44,1 44,1 44,1 22,0

Table 1 Frquences des signaux

1.b. Amplitudes et spectres


Ensuite, on peut observer les amplitudes des chantillons et leurs spectres (module des coecients de Fourier) :

>>plot(w1); >>fw1=fft(w1); >>plot(abs(fftshift(fw1)));

La fonction Matlab t, permet dobtenir la transforme de Fourier Rapide du signal et les coefcients cn (f ). On trace les amplitudes des composantes en fonction de leur indice n.

6000

5000

4000 Amplitudes

3000

2000

1000

0.5

1.5

2 2.5 n=0 2N+1

3.5 x 10

4
4

Figure 1 Reprsentation de |f f t(f w1)|

On observe deux pics qui correspondent cN et cN car |cN | = |cN |. Mais dans cette reprsentation, la valeur des indices est numrote de 0 2N + 1. On utilise donc la fonction Matlab tshift qui, quant elle, permet de placer le coecient de frquence nulle (n = 0) au centre du spectre ; cela permet de mieux visualiser la distribution du spectre. (Voir graphe ci-dessous).

250

200

150

100

50

0 1.7 1.8 1.9 2 2.1 2.2 2.3 x 10


4

Figure 2 Reprsentation de |f f tshif t(f w1)|

Puisque les plages des valeurs sont trs large, on facilite la visualisation du graphe par passage lchelle logarithmique.

2 0.5 1 1.5 2 2.5 3 3.5 x 10


4

Figure 3 Reprsentation de |log (f f tshif t(f w1))|

La formule utilise par la fonction Matlab t pour le calcul des composantes de la srie de Fourier est la suivante :
N

X (k ) =
n=1

xn e

j 2 (k1)(n1) N

, k = 1, ..., N

(1)

Avec xn donn par la Transforme de Fourier inverse (IFFT) : xn = 1 N


N

X (k )e
k=1

j 2 (k1)(n1) N

, n = 1, ..., N

(2)

On remarque que cette formule est dirente de celle du cours (dirence non due aux indices car il sut de faire la reindexation de 0 N 1) : les dnitions de xn et de X (k ) sont juste inverses.

Commentaires sur les gures 1, 2 et 3 : Le spectre est symtrique ; en eet, dans le cas de signaux rels, on a : c n = cn , soit donc que (|cn |)n est une fonction paire.

1.c. Vrication de lgalit de Parseval


Lgalit de Parseval pour les signaux discrets est donne par :
N N

N
n=1

|X (n)|2 =
n=1

|xn |2

(3)

Remarquez que cette formule est adapte la formule de la fonction Matlab t pour la transforme de Fourier.

>>sum(w1.^ 2)*N >>ans= 1.3122e+008 >>sum(fw1.^ 2) >>ans= 1.3122e+008

Lgalit de Parseval est vrie.

1.d. Frquence du plus grand pic damplitude


Pour obtenir la frquence correspondant ce pic, il sut de dterminer son indice dans le spectre ; sa frquence est ensuite obtenue par la relation suivante :
s Frquencepic = (indice 1) F N

(4)

Ceci est obtenu par les commandes Matlab suivantes :

>>[X,indice]=max(abs(fw1)); >>Frequence_Pic=(indice-1)*Fs/N >>Frequence_Pic= 434.7256 La frquence du plus grand pic de lamplitude est de 434,7256 Hz, est plus proche de la frquence de la note musicale L. 4

2. Quelques images 2.1 Manipulations lmentaires


Ici on dispose des images : lena.tif et emn.tif ; Pour acher une image sur Matlab, on utilise les commandes suivante : >>Ima=double(imread(lena.tif)); >>colormap(gray); >>imagesc(Ima) On visualise le spectre aprs transforme de Fourier ( laide de la fonction Matlab t2 : 2 dsigne ici la dimension). Commandes Matlab : >>fIma=fft2(Ima); >>figure >>colormap(gray); >>imagesc(log(abs(fftshift(fIma))))

Remarquer quon visualise directement en chelle, le spectre reindex de sorte placer la composante de frquence nulle au centre.(voir graphe ci-dessous).

50

100

150

200

250 50 100 150 200 250

Figure 4 Reprsentation de |log (f f tshif t(f w1))|

Cette reprsente limage aprs la transformation de Fourier. 0n remarque que le niveau de gris qui reprsente le logarithme du module des coecients de Fourier est symtriquement distribu, et avec le Data cursor de Matlab, on vrie quil decrot partir du centre.

Vrication de lgalit de Parseval : La transforme de Fourier en dimension deux est donne par (formule renvoye la fonction Matlab) :
N N

xn,m =
k=1 l=1

Xk,l ej

2 (k1)(m1) N

ej

2 (l1)(n1) N

(5)

avec 1 m N et 1 n N . Et lgalit de Parseval est :


N N N N

N2
k=1 l=1

|Xk,l |2 =
n=1 m=1

|xn,m |2

(6)

Sur Matlab, on obtient : >>N^2*sum(Ima.^2) >>ans= 1.5011e+014 >>sum(sum(conj(fIma).*fIma)) >>ans= 1.5011e+014 Lgalit de Parseval est bien vrie. (Remarquer que pour le calcul des carrs des modules des coecients de la matrice, on a utilis le conjugu).

2.2 Frquences et images


Il sagit de mettre en vidence le rle des hautes et des basses frquences. On travaille toujours avec limage lena.tif. -Tout dabord, on compose la la transforme de Fourier fIma avec un ltre passe-bas reprsent par une matrice. On obtient une image qui ne contient que de basses frquences. Visualisation sur Matlab par : >>U=zeros(256,256); >>U(101:157,101:157)=1; >>fImab=fftshift(fIma).*U % produit terme terme pour annuler les hautes frquences >>figure >>colormap(gray); >>imagesc(ifft2(ifftsfhift(fImab))) Remarquer quon visualise directement en chelle, le spectre reindex de sorte placer la composante de frquence nulle au centre.(voir graphe ci-dessous).

On obtient une image assez oue ; les contours ny sont pas bien marques comme dans limage originale. On dduit donc que les contours de limage sont dnis grce aux hautes frquences. On vrie cette armation, en composant de nouveau la transforme de Fourier de limage par un ltre passe haut. 6

50

100

150

200

250 50 100 150 200 250

Figure 5 Reprsentation basses frquences

>>V=ones(256,256)-U; >>fImac=fftshift(fIma).*V % produit terme terme pour annuler les basses frquences >>figure >>colormap(gray); >>imagesc(ifft2(ifftsfhift(fImac)))

50

100

150

200

250 50 100 150 200 250

Figure 6 Reprsentation hautes frquences

On ne voit pratiquement sur cette gure que les contours de limage ; ce qui est vident car un contour nest dni que par une variation brusque du niveau de gris dans limage, donc une haute frquence.

2.3 Proprits des TFD des images


Ici il sagit dobserver certaines proprits des images aprs la transforme de Fourier : >>Ima=double(imread(ligne1.tif)); >>FIma=fft2(Ima); >>figure >>colormap(gray); >>imagesc(abs(fftsfhift(FIma))) >>figure >>colormap(gray) >>imagesc(log(abs(fftsfhift(FIma))))

On obtient les gures suivantes :


220 50 230 100 150 200 250 300 270 350 400 450 500 50 100 150 200 250 300 350 400 450 500 220 230 240 250 260 270 280 290 220 230 240 250 260 270 280 290 280 280 290 290 270 240 240 250 250 260 260 230 220

Figure 7

Figure 8

Figure 9

Les gures 7,8 et 9 reprsentent respctivement limage initiale, sa transforme Fourier FIma, et FIma et en chelle logarithmique.

Commentaires : Limage initiale qui tait une ligne horizontale devient une ligne verticale aprs transforme en chelle logarithmique. En eet, la transforme de Fourier discrte en dimension deux peut tre vue comme la compose de N TFD 1d sur les lignes puis de N TFD 1d sur les colonnes. Puisque, les lignes de limage ligne1.tif sont constantes, la transforme de Fourier de chacune est une constante (coecient de frquence nulle et les autres coecients sont nuls), et avec la commande shift, ces constantes se placent au milieu des lignes, formant une seule colonne non nulle de limage : la colonne centrale. En oprant une seconde fois sur les colonnes, il ny que la colonne centrale qui est non nulle, donc on obtient une ligne verticale ; lachage en chelle logarthmique permet de voir le dtail (gure 9), sinon on ne voit quun seul point (gure 8), qui est le point central (ici de coordones (257, 257)), plus lev que les autres. On opre de mme avec deux autres images : image1.tif et image2.tif ; les images resultantes sont :

180 80 200 100 220 120 240 140 260 160 280 180 300 200 320 220 140 160 180 200 220 240 260 280 340 180 200 220 240 260 280 300 320

Figure 10 Image1

Figure 11 TFD de image1

160 180

220 230

200 220 240 260 280 270 300 320 340 140 160 180 200 220 240 260 280 300 320 280 290 240 250 260

220

230

240

250

260

270

280

290

Figure 12 Image2

Figure 13 TFD de image2

Ici on est dans le mme cas que ligne1.tif, sauf que les images contiennent des lignes obliques priodiques. Par le mme raisonnement que prcdemment, limage resultante aprs la TFD-2D, est constitue dalignements priodiques de points, tourns dun angle de 2 par rapport limage initiale. (En chelle logarithmique, ces points aligns deviennent des lignes obliques avec une rotation dangle 2 ). Maintenant , on va voir ce qui se passe avec de vraies images.

4 50 1 100

50

100

150 3 200

150

200

250 50 100 150 200 250

250 50 100 150 200 250

Figure 14 Image initiale

Figure 15 TFD (chel log)

La ligne verticale trs prononce dans la gure 15 correspond dans limage initiale au trait 1. Les deux taches verticales moins marques dans la gure 15 correspondent aux parties 2 et 3 de limage initiale. Et enn, la horizontale moins forte correspond

10

Vous aimerez peut-être aussi