10
Adriana Kanashiro Da Costa Zangré Ibrahim Rapport de TP - Séance 2 Initiation au traitement de signal et applications (Responsable : M F. Sur) 1. Un peu de musique On dispose de fichiers son (format .wav) : ’diapason.wav’, ’guitar_la.wav’, ’guitar_si.wav et ’banjo.wav’, dont on veut observer le spectre d’échantillonnage dans la transformation en séries de fourier. Tout d’abord on observe leurs fréquences d’échantillonnage. 1.a. Fréquences d’échantillonnage >>[w1,Fs,nbits]=wavread(’diapason.wav’ ); >>N=length(w1); Ces commandes nous permet d’observer : – Fs : le nombre d’échantillons par seconde dans le signal (fréquence d’échantillonnage) – length(w1) : le nombre d’échantillons du signal On remarque que la fréquence de ’banjo’ est la plus petite. 1

TP5-Traitement de Signal

Embed Size (px)

Citation preview

Page 1: TP5-Traitement de Signal

Adriana Kanashiro Da Costa

Zangré Ibrahim

Rapport de TP - Séance 2

Initiation au traitement de signal et applications

(Responsable : M F. Sur)

1. Un peu de musique

On dispose de fichiers son (format .wav) : ’diapason.wav’, ’guitar_la.wav’, ’guitar_si.wav et ’banjo.wav’,dont on veut observer le spectre d’échantillonnage dans la transformation en séries de fourier.

Tout d’abord on observe leurs fréquences d’échantillonnage.

1.a. Fréquences d’échantillonnage

>>[w1,Fs,nbits]=wavread(’diapason.wav’ );

>>N=length(w1);

Ces commandes nous permet d’observer :

– Fs : le nombre d’échantillons par seconde dans le signal (fréquence d’échantillonnage)

– length(w1) : le nombre d’échantillons du signal

On remarque que la fréquence de ’banjo’ est la plus petite.

1

Page 2: TP5-Traitement de Signal

Sons Fréquences(kHz)diapason 44,1guitar_si 44,1guitar_la 44,1banjo 22,0

Table 1 – Fréquences des signaux

1.b. Amplitudes et spectres

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

>>plot(w1);

>>fw1=fft(w1);

>>plot(abs(fftshift(fw1)));

La fonction Matlab fft, permet d’obtenir la transformée de Fourier Rapide du signal et les coef-ficients cn(f). On trace les amplitudes des composantes en fonction de leur indice n.

0 0.5 1 1.5 2 2.5 3 3.5 4

x 104

0

1000

2000

3000

4000

5000

6000

n=0 à 2N+1

Am

plitu

des

Figure 1 – Représentation de |fft(fw1)|

On observe deux pics qui correspondent à c−N et à cN car |c

−N | = |cN |. Mais dans cette repré-sentation, la valeur des indices est numérotée de 0 à 2N + 1.

On utilise donc la fonction Matlab fftshift qui, quant à elle, permet de placer le coefficient defréquence nulle (n = 0) au centre du spectre ; cela permet de mieux visualiser la distribution duspectre. (Voir graphe ci-dessous).

2

Page 3: TP5-Traitement de Signal

1.7 1.8 1.9 2 2.1 2.2 2.3

x 104

0

50

100

150

200

250

Figure 2 – Représentation de |fftshift(fw1)|

Puisque les plages des valeurs sont très large, on facilite la visualisation du graphe par passageà l’échelle logarithmique.

0.5 1 1.5 2 2.5 3 3.5

x 104

−2

0

2

4

6

8

Figure 3 – Représentation de |log(fftshift(fw1))|

La formule utilisée par la fonction Matlab fft pour le calcul des composantes de la série deFourier est la suivante :

X(k) =

N∑

n=1

xne−j2π(k−1)(n−1)

N , k = 1, ..., N (1)

Avec xn donné par la Transformée de Fourier inverse (IFFT) :

xn =1

N

N∑

k=1

X(k)ej2π(k−1)(n−1)

N , n = 1, ..., N (2)

3

Page 4: TP5-Traitement de Signal

On remarque que cette formule est différente de celle du cours (différence non due aux indices caril suffit de faire la reindexation de 0 à N − 1) : les définitions de xn et de X(k) sont juste inversées.

Commentaires sur les figures 1, 2 et 3 :

Le spectre est symétrique ; en effet, dans le cas de signaux réels, on a : c̄n = c−n, soit donc que

(|cn|)n est une fonction paire.

1.c. Vérification de l’égalité de Parseval

L’égalité de Parseval pour les signaux discrets est donnée par :

N

N∑

n=1

|X(n)|2 =

N∑

n=1

|xn|2 (3)

Remarquez que cette formule est adaptée à la formule de la fonction Matlab fft pour la transforméede Fourier.

>>sum(w1.^ 2)*N

>>ans=

1.3122e+008

>>sum(fw1.^ 2)

>>ans=

1.3122e+008

L’égalité de Parseval est vérifiée.

1.d. Fréquence du plus grand pic d’amplitude

Pour obtenir la fréquence correspondant à ce pic, il suffit de déterminer son indice dans le spectre ;sa fréquence est ensuite obtenue par la relation suivante :

Fréquencepic = (indice− 1)FsN

(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 fréquence du plus grand pic de l’amplitude est de 434,7256 Hz, est plus proche de la fréquencede la note musicale L⊣.

4

Page 5: TP5-Traitement de Signal

2. Quelques images

2.1 Manipulations élémentaires

Ici on dispose des images : ’lena.tif’ et ’emn.tif’ ;Pour afficher une image sur Matlab, on utilise les commandes suivante :

>>Ima=double(imread(’lena.tif’));

>>colormap(gray);

>>imagesc(Ima)

On visualise le spectre après transformée de Fourier (à l’aide de la fonction Matlab fft2 : 2 désigneici la dimension).Commandes Matlab :

>>fIma=fft2(Ima);

>>figure

>>colormap(gray);

>>imagesc(log(abs(fftshift(fIma))))

Remarquer qu’on visualise directement en échelle, le spectre reindexé de sorte à placer la composantede fréquence nulle au centre.(voir graphe ci-dessous).

50 100 150 200 250

50

100

150

200

250

Figure 4 – Représentation de |log(fftshift(fw1))|

Cette représente l’image après la transformation de Fourier. 0n remarque que le niveau de grisqui représente le logarithme du module des coefficients de Fourier est symétriquement distribué, etavec le ’Data cursor’ de Matlab, on vérifie qu’il decroît à partir du centre.

5

Page 6: TP5-Traitement de Signal

Vérification de l’égalité de Parseval :

La transformée de Fourier en dimension deux est donnée par (formule renvoyée la fonction Matlab) :

xn,m =

N∑

k=1

N∑

l=1

Xk,lej

2π(k−1)(m−1)N ej

2π(l−1)(n−1)N (5)

avec 1 ≤ m ≤ N et 1 ≤ n ≤ N .Et l’égalité de Parseval est :

N2

N∑

k=1

N∑

l=1

|Xk,l|2 =

N∑

n=1

N∑

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

L’égalité de Parseval est bien vérifiée. (Remarquer que pour le calcul des carrés des modules descoefficients de la matrice, on a utilisé le conjugué).

2.2 Fréquences et images

Il s’agit de mettre en évidence le rôle des hautes et des basses fréquences.On travaille toujours avec l’image ’lena.tif’. -Tout d’abord, on compose la la transformée de Fourier’fIma’ avec un filtre passe-bas représenté par une matrice. On obtient une image qui ne contientque de basses fréquences.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 fréquences

>>figure

>>colormap(gray);

>>imagesc(ifft2(ifftsfhift(fImab)))

Remarquer qu’on visualise directement en échelle, le spectre reindexé de sorte à placer la composantede fréquence nulle au centre.(voir graphe ci-dessous).

On obtient une image assez floue ; les contours n’y sont pas bien marquées comme dans l’imageoriginale. On déduit donc que les contours de l’image sont définis grâce aux hautes fréquences.On vérifie cette affirmation, en composant de nouveau la transformée de Fourier de l’image par unfiltre passe haut.

6

Page 7: TP5-Traitement de Signal

50 100 150 200 250

50

100

150

200

250

Figure 5 – Représentation basses fréquences

>>V=ones(256,256)-U;

>>fImac=fftshift(fIma).*V % produit terme à terme pour annuler les basses fréquences

>>figure

>>colormap(gray);

>>imagesc(ifft2(ifftsfhift(fImac)))

50 100 150 200 250

50

100

150

200

250

Figure 6 – Représentation hautes fréquences

On ne voit pratiquement sur cette figure que les contours de l’image ; ce qui est évident car uncontour n’est défini que par une variation brusque du niveau de gris dans l’image, donc à une hautefréquence.

7

Page 8: TP5-Traitement de Signal

2.3 Propriétés des TFD des images

Ici il s’agit d’observer certaines propriétés des images après la transformée 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 figures suivantes :

50 100 150 200 250 300 350 400 450 500

50

100

150

200

250

300

350

400

450

500

Figure 7 –

220 230 240 250 260 270 280 290

220

230

240

250

260

270

280

290

Figure 8 –

220 230 240 250 260 270 280 290

220

230

240

250

260

270

280

290

Figure 9 –

Les figures 7,8 et 9 représentent respctivement l’image initiale, sa transformée Fourier FIma, etFIma et en échelle logarithmique.

Commentaires :

L’image initiale qui était une ligne horizontale devient une ligne verticale après transformée enéchelle logarithmique.En effet, la transformée de Fourier discrète en dimension deux peut être vue comme la composéede N TFD 1d sur les lignes puis de N TFD 1d sur les colonnes.Puisque, les lignes de l’image ’ligne1.tif’ sont constantes, la transformée de Fourier de chacune estune constante (coefficient de fréquence nulle et les autres coefficients sont nuls), et avec la com-mande shift, ces constantes se placent au milieu des lignes, formant une seule colonne non nulle del’image : la colonne centrale.En opérant une seconde fois sur les colonnes, il n’y que la colonne centrale qui est non nulle, doncon obtient une ligne verticale ; l’affichage en échelle logarthmique permet de voir le détail (figure 9),sinon on ne voit qu’un seul point (figure 8), qui est le point central (ici de coordonées (257, 257)),plus élevé que les autres.

On opère de même avec deux autres images : ’image1.tif’ et ’image2.tif’ ; les images resultantessont :

8

Page 9: TP5-Traitement de Signal

140 160 180 200 220 240 260 280

80

100

120

140

160

180

200

220

Figure 10 – Image1

180 200 220 240 260 280 300 320

180

200

220

240

260

280

300

320

340

Figure 11 – TFD de image1

140 160 180 200 220 240 260 280 300 320

160

180

200

220

240

260

280

300

320

340

Figure 12 – Image2

220 230 240 250 260 270 280 290

220

230

240

250

260

270

280

290

Figure 13 – TFD de image2

Ici on est dans le même cas que ’ligne1.tif’, sauf que les images contiennent des lignes obliquespériodiques. Par le même raisonnement que précédemment, l’image resultante après la TFD-2D,est constituée d’alignements périodiques de points, tournés d’un angle de π

2par rapport à l’image

initiale. (En échelle logarithmique, ces points alignés deviennent des lignes obliques avec une rota-tion d’angle π

2).

Maintenant , on va voir ce qui se passe avec de “vraies images”.

50 100 150 200 250

50

100

150

200

250

1

42

3

Figure 14 – Image initiale

50 100 150 200 250

50

100

150

200

250

Figure 15 – TFD (échel log)

9

Page 10: TP5-Traitement de Signal

La ligne verticale très prononcée dans la figure 15 correspond dans l’image initiale au trait 1.Les deux taches verticales moins marquées dans la figure 15 correspondent aux parties 2 et 3 del’image initiale. Et enfin, la horizontale moins forte correspond

10