34
1 Traitement du signal et Applications cours 9 Master Technologies et Handicaps 1 ère année Philippe Foucher

Traitement du signal et Applications cours 9 - univ … · 2 Traitement du signal sous Scilab Scilab : Programmer en utilisant les fonctions. SIP Toolboxes: Boite à outils de traitement

  • Upload
    voduong

  • View
    236

  • Download
    3

Embed Size (px)

Citation preview

Page 1: Traitement du signal et Applications cours 9 - univ … · 2 Traitement du signal sous Scilab Scilab : Programmer en utilisant les fonctions. SIP Toolboxes: Boite à outils de traitement

1

Traitement du signal et Applicationscours 9

Master Technologies et Handicaps1ère année

Philippe Foucher

Page 2: Traitement du signal et Applications cours 9 - univ … · 2 Traitement du signal sous Scilab Scilab : Programmer en utilisant les fonctions. SIP Toolboxes: Boite à outils de traitement

2

Traitement du signal sous Scilab� Scilab : Programmer

en utilisant les fonctions.

� SIP Toolboxes: Boite à outils de traitement d’images qui regroupe des fonctions spécifiques

Page 3: Traitement du signal et Applications cours 9 - univ … · 2 Traitement du signal sous Scilab Scilab : Programmer en utilisant les fonctions. SIP Toolboxes: Boite à outils de traitement

3

Étude du code et des fonctions

Page 4: Traitement du signal et Applications cours 9 - univ … · 2 Traitement du signal sous Scilab Scilab : Programmer en utilisant les fonctions. SIP Toolboxes: Boite à outils de traitement

4

Fonctions pour récupérer des données.� Image:

Image = imread(‘E:\repertoire1\nom.jpg’)

nom.jpg Image

Imshow(Image); � affichage de l’imageIm2gray(Image); � change une image couleur en niveaux de gris

Imagegris

Page 5: Traitement du signal et Applications cours 9 - univ … · 2 Traitement du signal sous Scilab Scilab : Programmer en utilisant les fonctions. SIP Toolboxes: Boite à outils de traitement

5

� Différences entre:Image = imread(‘E:\repertoire1\nom.jpg’); Image = imread(‘E:\repertoire1\nom.jpg’)

Page 6: Traitement du signal et Applications cours 9 - univ … · 2 Traitement du signal sous Scilab Scilab : Programmer en utilisant les fonctions. SIP Toolboxes: Boite à outils de traitement

6

Quelques fonctions graphiques� xdel([0:5]) efface les fenêtres graphiques de 0:5.� xset (‘window’, n) crée la fenêtre graphique n.� plot2d (x,y) affiche un graphique avec les

données x en abscisse et y en ordonnée. x et y doivent être de même taille.� on peut directement utiliser plot2d(y) et un graphique affiche le vecteur y.

Page 7: Traitement du signal et Applications cours 9 - univ … · 2 Traitement du signal sous Scilab Scilab : Programmer en utilisant les fonctions. SIP Toolboxes: Boite à outils de traitement

7

Ajout de bruit� On peut ajouter du bruit aux images.

Image_bruit=imnoise(image_gris,'gaussian',0,0.02);

Salt & pepper:Ajout de bruit selon une certaine densité

gaussien:Densité gaussienne

Speckle:bruit multiplicatif

Page 8: Traitement du signal et Applications cours 9 - univ … · 2 Traitement du signal sous Scilab Scilab : Programmer en utilisant les fonctions. SIP Toolboxes: Boite à outils de traitement

8

2 sortes de bruit� Bruit additif (le plus souvent), noté n(x)

g(x) = f(x) + n(x) en général, gaussien: probabilité que la valeur s’écarte de la moyenne

� Bruit multiplicatif, noté m(x)g(x) = f(x)* m(x)Exemple: speckle

Page 9: Traitement du signal et Applications cours 9 - univ … · 2 Traitement du signal sous Scilab Scilab : Programmer en utilisant les fonctions. SIP Toolboxes: Boite à outils de traitement

9

Problème.� Image = signal en deux dimensions.� Dans le cours, plutôt des signaux 1D.� Extraction d’un signal 1D

Je prends une ligne du de l’image

Signal=Imagegris (38,:)

Page 10: Traitement du signal et Applications cours 9 - univ … · 2 Traitement du signal sous Scilab Scilab : Programmer en utilisant les fonctions. SIP Toolboxes: Boite à outils de traitement

10

� Signal 1D(sans bruit)

0 20 40 60 80 100 120 1400.0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1.0

Page 11: Traitement du signal et Applications cours 9 - univ … · 2 Traitement du signal sous Scilab Scilab : Programmer en utilisant les fonctions. SIP Toolboxes: Boite à outils de traitement

11

� Signal 1D(Avec bruit)

0 20 40 60 80 100 120 140-0.2

0.0

0.2

0.4

0.6

0.8

1.0

1.2

Page 12: Traitement du signal et Applications cours 9 - univ … · 2 Traitement du signal sous Scilab Scilab : Programmer en utilisant les fonctions. SIP Toolboxes: Boite à outils de traitement

12

Enlever le bruit� On peut enlever le bruit en utilisant la

Transformée de Fourier.� Permet d’enlever les hautes fréquences� Problème: on lisse souvent le signal.

Page 13: Traitement du signal et Applications cours 9 - univ … · 2 Traitement du signal sous Scilab Scilab : Programmer en utilisant les fonctions. SIP Toolboxes: Boite à outils de traitement

13

0 20 40 60 80 100 120 140-0.2

0.0

0.2

0.4

0.6

0.8

1.0

1.2� Signal lisséaprès filtrage

par TF

Page 14: Traitement du signal et Applications cours 9 - univ … · 2 Traitement du signal sous Scilab Scilab : Programmer en utilisant les fonctions. SIP Toolboxes: Boite à outils de traitement

14

� fourier_Signal=fft(Signal);� FFT: Fast Fourier Transform: algorithme

rapide de Transformée de Fourier

Page 15: Traitement du signal et Applications cours 9 - univ … · 2 Traitement du signal sous Scilab Scilab : Programmer en utilisant les fonctions. SIP Toolboxes: Boite à outils de traitement

15

� FFT d’un signal 1D (non bruité)

0 20 40 60 80 100 120 140-10

0

10

20

30

40

50

60

Page 16: Traitement du signal et Applications cours 9 - univ … · 2 Traitement du signal sous Scilab Scilab : Programmer en utilisant les fonctions. SIP Toolboxes: Boite à outils de traitement

16

� FFT d’un signal 1D (bruité)

0 20 40 60 80 100 120 140-10

0

10

20

30

40

50

60

Page 17: Traitement du signal et Applications cours 9 - univ … · 2 Traitement du signal sous Scilab Scilab : Programmer en utilisant les fonctions. SIP Toolboxes: Boite à outils de traitement

17

� FFT d’un signal 1D (bruité)

0 20 40 60 80 100 120 140-10

0

10

20

30

40

50

60

Fréquences facteur de bruit. Donc on enlève

Page 18: Traitement du signal et Applications cours 9 - univ … · 2 Traitement du signal sous Scilab Scilab : Programmer en utilisant les fonctions. SIP Toolboxes: Boite à outils de traitement

18

� FFT d’un signal 1D (les hautes fréquence sont enlevées)

0 20 40 60 80 100 120 140-10

0

10

20

30

40

50

60

Page 19: Traitement du signal et Applications cours 9 - univ … · 2 Traitement du signal sous Scilab Scilab : Programmer en utilisant les fonctions. SIP Toolboxes: Boite à outils de traitement

19

� Ce type de filtre s’appelle passe-bas, il laisse passer les basses fréquences.

� En fait les filtres sont basées sur des techniques appelées produits de convolution.

Page 20: Traitement du signal et Applications cours 9 - univ … · 2 Traitement du signal sous Scilab Scilab : Programmer en utilisant les fonctions. SIP Toolboxes: Boite à outils de traitement

20

De façon mathématique

�∞

=

+=0

]2

sin2

cos[)(n

nn Tnt

bTnt

atfππ

� Signal périodique (période T) = somme pondérée de signaux sinusoïdaux

1/T : fréquence fondamentale (on utilise souvent �=2�/T)n/T: harmoniquean et bn coefficients pondérateurs de Fourier

Page 21: Traitement du signal et Applications cours 9 - univ … · 2 Traitement du signal sous Scilab Scilab : Programmer en utilisant les fonctions. SIP Toolboxes: Boite à outils de traitement

21

Exemples (1)

Somme pondérée de deux signaux de fréquence f et 3f (H3) � signal résultant (b): addition point par point des deux courbes de (a).

Page 22: Traitement du signal et Applications cours 9 - univ … · 2 Traitement du signal sous Scilab Scilab : Programmer en utilisant les fonctions. SIP Toolboxes: Boite à outils de traitement

22

Exemples (2)

� Meilleure approximation d’un Signal carré f(t): décomposition de la façons suivante

)23sin(231

...)5sin(51

)4cos(0)3sin(31

)2cos(0)sin()( tttttttf ϖϖϖϖϖϖ ++++++=

Page 23: Traitement du signal et Applications cours 9 - univ … · 2 Traitement du signal sous Scilab Scilab : Programmer en utilisant les fonctions. SIP Toolboxes: Boite à outils de traitement

23

Analyse spectrale (1)

� Représentation des amplitudes des différentes harmoniques (n=1,3,5,7…23) d’un signal �analyse spectrale.

Page 24: Traitement du signal et Applications cours 9 - univ … · 2 Traitement du signal sous Scilab Scilab : Programmer en utilisant les fonctions. SIP Toolboxes: Boite à outils de traitement

24

Remarque (1)� les séries de Fourier sont une décomposition en

cosinus et sinus, on utilise souvent la notation complexe:

� Avec Fn=(an+ibn)/2 et F-n=(an-ibn)/2� eix = cos x + i sin x

�∞

−∞=

=n

n TFtf )

int2exp()(

π

Page 25: Traitement du signal et Applications cours 9 - univ … · 2 Traitement du signal sous Scilab Scilab : Programmer en utilisant les fonctions. SIP Toolboxes: Boite à outils de traitement

25

Remarque (2)

� A partir de l’équation précédente, les coefficients de Fourier se calculent de la façon suivante:

dtT

tfT

FT

Tn )

int2exp()(

1 2/

2/

π−= �−

Le nombre de descripteurs de Fourier calculés ainsi est en théorie infini

Page 26: Traitement du signal et Applications cours 9 - univ … · 2 Traitement du signal sous Scilab Scilab : Programmer en utilisant les fonctions. SIP Toolboxes: Boite à outils de traitement

26

Interprétation

� Plus n est grand, plus les fonctions sinusoïdales varient rapidement.� une fonction lisse (c.a.d qui ne varient pas beaucoup) aura des coefficients an et bn qui prendront rapidement (hautes fréquences) des valeurs faibles� une fonction très perturbée et très changeante (ou bruitée) auront des composantes importantes dans les hautes fréquences.

Page 27: Traitement du signal et Applications cours 9 - univ … · 2 Traitement du signal sous Scilab Scilab : Programmer en utilisant les fonctions. SIP Toolboxes: Boite à outils de traitement

27

Transformée de Fourier (1)

� Souvent fonctions non périodiques et non bornées, la transformée de Fourier permet de généraliser le concept de séries de Fourier à ce type de fonction:

dttitfF �∞

∞−−= )2exp()()( υπυ

On peut noter le changement de variable � = n/T, ce qui explique la disparition du facteur 1/T avant la somme.

Page 28: Traitement du signal et Applications cours 9 - univ … · 2 Traitement du signal sous Scilab Scilab : Programmer en utilisant les fonctions. SIP Toolboxes: Boite à outils de traitement

28

Interprétation

� De façon peu rigoureuse, on pourrait considérer un signal analogique non périodique comme un signal dont la période tendrait vers l’infini, la fréquence tendrait alors vers 0 (dν)

� et on obtient un spectre de Fourier continu appelé spectre de bande (et non un spectre de raies):

Page 29: Traitement du signal et Applications cours 9 - univ … · 2 Traitement du signal sous Scilab Scilab : Programmer en utilisant les fonctions. SIP Toolboxes: Boite à outils de traitement

29

Exemple de spectre de bande

Page 30: Traitement du signal et Applications cours 9 - univ … · 2 Traitement du signal sous Scilab Scilab : Programmer en utilisant les fonctions. SIP Toolboxes: Boite à outils de traitement

30

� En pratique, signal non borné: très rare !on définit une fenêtre d’application [-T/2,T/2]

� Échantillonnage à une fréquence f telle que T=K/f

Vers la transformée de Fourier discrète

�−

−=

−=1)2/(

2/

)2

exp(1 K

KkKn K

inkf

KF

π

Page 31: Traitement du signal et Applications cours 9 - univ … · 2 Traitement du signal sous Scilab Scilab : Programmer en utilisant les fonctions. SIP Toolboxes: Boite à outils de traitement

31

Remarque � Le signal numérique est décomposé en K

segments. Le nombre total de coefficients de Fourier sera K.

� En traitement de signal, on utilise la FFT (Fast Fourier Transform) qui, sous certaines conditions, permet d’accélérer le calcul

Page 32: Traitement du signal et Applications cours 9 - univ … · 2 Traitement du signal sous Scilab Scilab : Programmer en utilisant les fonctions. SIP Toolboxes: Boite à outils de traitement

32

TF inverse� A partir d’un signal fréquentiel, on retrouve

le signal initial (temporel ou spatial) par la transformée de Fourier inverse.

� On parle souvent d’espace dual (temps/fréquence)

Page 33: Traitement du signal et Applications cours 9 - univ … · 2 Traitement du signal sous Scilab Scilab : Programmer en utilisant les fonctions. SIP Toolboxes: Boite à outils de traitement

33

0 20 40 60 80 100 120 140-10

0

10

20

30

40

50

60

0 20 40 60 80 100 120 140-0.2

0.0

0.2

0.4

0.6

0.8

1.0

1.2

ifft

Page 34: Traitement du signal et Applications cours 9 - univ … · 2 Traitement du signal sous Scilab Scilab : Programmer en utilisant les fonctions. SIP Toolboxes: Boite à outils de traitement

34

� Des questions ?