Sie sind auf Seite 1von 192

1

Traitement des donnes. De lacquisition


des signaux et images jusqu leur
interprtation

Didier VRAY, Denis FRIBOULET MASTER et cole Doctorale MEGA


didier.vray@creatis.insa-lyon.fr
2
BIBLIOGRAPHIE
Ouvrages gnraux
Bernard MULGREW, "Digital Signal Processing, concepts and applications",
Palgrave MacMillan, 2003
Alan OPPENHEIM, A. SCHAFER, "Discrete-time Signal Processing",
PRENTICE HALL, 1999
Alan OPPENHEIM, A. WILLSKY, "Signals and Systems", PRENTICE HALL,
1997
J. Mc CLELLAN, "DSP First, A multimedia approach", PRENTICE HALL, 1999
Franois de COULON, "Thorie et traitement des signaux", DUNOD, 1984
Murat KUNT, "Traitement Numrique des signaux", 1981

Applications ou pour aller plus loin


J. MARS, J.-L. LACOUME, "Traitement du signal pour gologues et
gophysiciens", TECHNIP 2004, Tome 3 : Techniques avances et Tome 2 :
Techniques de base, Tome 1 : Prospection sismique
M. BELLANGER, "Traitement numrique du signal : Thorie et pratique", 8me
dition, DUNOD, 2006
S. MARPLE, "Digital spectral analysis", PRENTICE-HALL, 1987
3

Traitement du signal et applications

Introduction

Denis Friboulet Didier Vray


4
SIGNAL ?

Domaines dapplication :
communication, aronautique, astronautique, acoustique, contrle de processus
chimique, ingnierie biomdicale, traitement de la parole, conomie, mtorologie...
information reprsente sous forme de signal

Signal :
fonction de une ou plusieurs variables indpendantes : f(x,y,z)
reprsente / contient information sur un phnomne (physique)

Types de signaux
Signaux continus: f(t), t R Signaux discrets: f[n], n Z

t
n

Dimension du signal :
1D : f(t) f[n]
2D :f(u,v) f[i,j]
3D : f(u,v,w) f[i,j,k]
etc...
5
SIGNAL ?

Mesures
Capteur, statistiques....
Dveloppement des capteurs : microphone, cramiques pizolectriques, antennes,
capteurs CCD, de pression

Capteur
t

Acquisition numrique :

Capteur Echantillonnage
t

Stockage
Traitement numrique par ordinateur
Perte dinformation ?
Importance des techniques numriques
6
EXEMPLES DE SIGNAUX

Signal de parole
0.4
0.3
amplitude

0.2
0.1
e
0
-0.1
-0.2
-0.3
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35
Temps (s)

0.6

0.4
amplitude

0.2

-0.2

-0.4 b on j ou r
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
Temps (s)
7
EXEMPLES DE SIGNAUX

volution de la rente 5% sous le consulat et le 1er empire

Dbut de la
100% campagne de Russie Napolon
Victoire sur la Russie Friedland dbarque
Trait de Tilsit avec la Russie
90 Golfe Juan

80 LAutriche attaque la Bavire

70 Dfaites en Espagne Dbut de la retraite


et au Portugal de Russie
60 Paix de Lunville

Victoire sur la Prusse Ina


50 Victoire sur la Russie Eylau Waterloo
Victoire sur
lAutriche Ulm
40
LAngleterre Abdication de
recherche la paix
30 et lobtient
Dfaite de Vitoria. Napolon
L'Autriche se joint la Prusse et
Amiens la Russie contre la France.
20 Dfaite de Leipzig.

10 Coup dtat du 18 brumaire

0
1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815

Le Monde 28/01/1997
8
EXEMPLES DE SIGNAUX

volution hebdomadaire du Dow Jones du 5 janvier 1929 au 4 janvier 1930

400

350

300

250

200

150

100

50

5 jan. 1929 4 jan. 1930


9
EXEMPLES DE SIGNAUX

Signaux ultrasonores
Composante spculaire Composante diffuse

mission

Rception

= 2d/c , c 1540 m/s (tissus biologiques)

t t

Signal rel
10
EXEMPLES DE SIGNAUX

Images ultrasonores: chographie intravasculaire


11
EXEMPLES DE SIGNAUX

Images ultrasonores: chographie intravasculaire

Plaque artrielle
12
EXEMPLES DE SIGNAUX

Images cardiaques chographie ultrasonore et en IRM


13
EXEMPLES DE SIGNAUX

Tomographie X
14
EXEMPLES DE SIGNAUX

Tomographie par rayonnement X synchrotron


15
EXEMPLES DE SIGNAUX

Tomographie X
16
TRAITEMENT DU SIGNAL ?

Buts :
Modlisation : reprsentation dun phnomne (caractrisation, prdiction...)
Analyse : extraction dinformation (mesure, compression, dtection, reconnaissance...)
Filtrage, restauration : transformation du signal (minimisation du bruit, suppression de
parasite...)
Etc.

Notion de systme de traitement :

Systme de
t Traitement t

Notion de domaine de reprsentation :


Transforme de Fourier
Modles autorgressifs, transforme de Laplace, transforme de Wigner, transforme
en ondelettes, transforme cosinus....
17
EXEMPLES DE TRAITEMENT

Imagerie ultrasonore

N Signaux

Image ?
18
EXEMPLES DE TRAITEMENT

Signaux acquis

Dtection
d'enveloppe Enveloppe

Compression
logarithmique Image Compresse
19
EXEMPLES DE TRAITEMENT

Signal de parole : analyse ?


0.6

0.4
amplitude

0.2

-0.2

-0.4 b on j ou r
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
Temps (s)
20
EXEMPLES DE TRAITEMENT

Domaine de reprsentation : temps-frquence


21
EXEMPLES DE TRAITEMENT

Dtection de rupture
Cas idal Cas rel avec bruit gaussien ( = 0.4)
2 2

1 1

0 0

-1 -1

-2 -2
0 5 10 15 20 0 50 100 150 200 250

Oprateur diffrentiel : [ 1 -1 ] Oprateur diffrentiel : [ 1 -1 ]

2 2

1 1

0 0

-1 -1

-2 -2
0 5 10 15 20 0 50 100 150 200 250
22
EXEMPLES DE TRAITEMENT

Dtection de rupture
Cas rel avec bruit gaussien ( = 0.4)
2

-1

-2
0 50 100 150 200 250

Oprateur optimis :
Oprateur diffrentiel : [ 1 -1 ]
Canny[86] Deriche[87]

2 4

3
1
2
0
1
-1
0

-2 -1
0 50 100 150 200 250 0 50 100 150 200 250
23
EXEMPLES DE TRAITEMENT

Dtection de rupture
Cas rel avec bruit gaussien ( = 1.0) Cas rel avec bruit gaussien ( = 1.2)
4 4

2 2

0 0

-2 -2

-4 -4
0 50 100 150 200 250 0 50 100 150 200 250

Oprateur optimis :

6 4

4
2
2
0
0
-2
-2

-4 -4
0 50 100 150 200 250 0 50 100 150 200 250
24
EXEMPLES DE TRAITEMENT

Image : Dtection de contours


Bords verticaux

Norme du gradient Seuillage

||2

Bords horizontaux
25
EXEMPLES DE TRAITEMENT

Dtection de contour par ensemble de niveau bas sur les drives (gradient)

Ensemble de niveau:
Evolution base sur le
Principe dvolution
gradient dune image IRM
26
EXEMPLES DE TRAITEMENT

Dtection de contour par ensemble de niveau bas sur les statistiques

Sang

Muscle

Histogramme
Histogramme
27
EXEMPLES DE TRAITEMENT

Dtection de contour par ensemble de niveau bas sur les statistiques


28
EXEMPLES DE TRAITEMENT

Visualisation de linformation ?
29
EXEMPLES DE TRAITEMENT

Visualisation : Rendu de volume par lancer de rayon

1. Intersection avec lobjet : Trac incrmental 2. Estimation de la normale lobjet : oprateur


dun rayon dans le volume discret diffrentiel discret dans les 3 directions
Plan de
visualisation

3. Calcul de la lumire mise au point 4. Application des tapes 1, 2 et 3 l'ensemble


dintersection : modle de diffusion des rayons partant du plan de visualisation
Id = Ip (N . L)

N
30
EXEMPLES DE TRAITEMENT

Joe Kniss, Utah


31
EXEMPLES DE TRAITEMENT
32

Signaux de base

Opration lmentaires sur les signaux


33
TRANSFORMATIONS DE LA VARIABLE INDEPENDANTE

Oprations de base sur les signaux:


Retournement, dcalage, changement dchelle, etc.
transformation de la variable indpendante

Retournement

f(t) f(-t)

f[n] f[-n]
34
TRANSFORMATIONS DE LA VARIABLE INDEPENDANTE

Changement dchelle

f(t) f(2t)

f[n] f[2n]
35
TRANSFORMATIONS DE LA VARIABLE INDEPENDANTE

Dcalage temporel

t0 -t 0

f(t) f(t-t0) f(t+t0)


Retard Avance

n0 -n0

f[n] f[n-n0] f[n+n0]


Retard Avance
36
TRANSFORMATIONS DE LA VARIABLE INDEPENDANTE

Signaux pairs : invariance par retournement

f(-t) = f(t) f[-n] = f[n]

Signaux impairs : symtrie par retournement

f(-t) = - f(t) f[-n] = - f[n]


37
SIGNAUX DE BASE CONTINUS

=
Signal sinusodal : f (t ) A cos(2 f 0t + )
T 0 = 1 /f0

A Acos

A : amplitude : phase f0 : frquence T0 : priode

Variation de la frquence f0 :

f1 f2 f3
f1 < f2 < f3
38
SIGNAUX DE BASE CONTINUS

Exponentielle complexe e j 2f 0t = cos 2f 0t + j sin 2f 0t


1 j 2f 0t
Re( e j 2f 0t
) = cos 2f 0t cos 2f 0t = (e + e j 2f 0t )
2
1 j 2f 0t
Im(e j 2f 0t ) = sin 2f 0t sin 2f 0t = (e e j 2f 0t )
2j
Interprtation
Im
Partie relle Partie imaginaire
t
sin 2f0t

cos 2f0t Re

f0: vitesse de rotation

Exponentielles harmoniques f k (t ) = e j 2kf 0t , k Z


f0 : frquence fondamentale
39
SIGNAUX DE BASE CONTINUS

chelon unit
1
0 si t < 0
u(t) =
1 si t > 0

+
du(t )
Impulsion unit (ou Dirac) : (t) on veut (t ) =
dt
avec
(t )dt = 1

u(t) 1 (t)
(t) = lim (t) 1/
0 Aire = 1

(t) C(t) (t-t0)

1
Reprsentation C

t0
40
SIGNAUX DE BASE CONTINUS

Dirac : interprtation

(t) (t)
Intervalle Intervalle
dintgration dintgration

t 0 0 t
t t

( )d = 0 si t < 0 ( )d = 1 si t > 0

1
u(t)

Laire du Dirac est "concentre" en un point


41
SIGNAUX DE BASE CONTINUS

+
Dirac : Proprit
(t )dt = 1

Dirac : Proprit x(t) (t) = x(0) (t) Dirac de poids x(0)

x(t) x(0) (t)


(t)

Dirac : Proprit x(t) (t-t0) = x(t0) (t-t0)

(t-t0) x(t0)(t-t0)
x(t) x(t)

t0 t0
42
SIGNAUX DE BASE CONTINUS

+
Dirac : Proprit
x (t ) (t )dt = x (0)

+
Dirac : Proprit
x (t ) (t t0 )dt =
x (t0 )

43
SIGNAUX DE BASE CONTINUS

nergie et puissance moyennes dun signal continu s(t)

t2

2
nergie moyenne calcule sur lintervalle [t1, t2] : Es (t1, t2 ) = s(t ) dt
t1

t2
Puissance moyenne calcule sur lintervalle [t1, t2] : 1

2
Ps (t1, t2 ) = s(t ) dt
Interprtation : nergie dissipe par unit de temps t2 t1
t1
44
SIGNAUX DE BASE DISCRETS

chelon unit 1
0 si n < 0
u[n] = .......
1 si n 0
0

1
1 si n = 0
Impulsion unit : on dfinit [n] =
0 si n 0

n
consquences u[n ] = [m ] et [n ] = u[n ] u[n 1]
m =

+ +
Proprits
[n ] = 1 x[n ] [n ] = x[0]
n = n =
x[n] [n] = x[0] [n] +

x[n] [n-n0] = x[n0] [n-n0] x[n ] [n n0 ] =


x[n0 ]
n =
45
SIGNAUX DE BASE DISCRETS

Sinusodes discrtes : cos 2f0n

A la diffrence du cas continu, la rapidit des oscillations naugmente pas continment


avec f0
frquence = 0 frquence = 1/16 frquence = 1/8
1 1 1

0.5 0 0

0 -1 -1
0 10 20 30 0 10 20 30 0 10 20 30
frquence = 1/4 frquence = 1/2 frquence = 3/4
1 1 1

0 0 0

-1 -1 -1
0 10 20 30 0 10 20 30 0 10 20 30
frquence = 7/8 frquence = 15/16 frquence = 1
1 1 1

0 0 0.5

-1 -1 0
0 10 20 30 0 10 20 30 0 10 20 30
46
SIGNAUX DE BASE DISCRETS

Exponentielles discrtes

e j 2f 0n = cos 2f 0n + j sin 2f 0n

Mmes proprits que sinusodes (diffrence de comportement par rapport au


cas continu et contraintes sur la priodicit)
47
SIGNAUX DE BASE DISCRETS

nergie et puissance dun signal discret s[n]

n2

2
nergie moyenne : s[n ]
n = n1

2 n
1

2
Puissance moyenne : s[ n ]
n2 n1 n = n
1
48

Les Systmes Linaires Invariants


49
Notion de Systme

Dfinition :
Un systme est un modle mathmatique dun processus physique qui relie un signal
dentre un signal de sortie
Un systme est un dispositif de traitement du signal
En entre : e(t) signal dentre
En sortie : s(t) signal de sortie

Exemples :
Amplificateur, systme audio, tlphone, systme vido
Un systme complexe peut tre vu comme linterconnexion de plusieurs systmes dont
les fonctions sont plus simples

Questions
Quelles sont les proprits intressantes des systmes ?

Comment caractriser un systme ?


=
Comment modliser la relation entre entre et sortie ?
50
Reprsentation des Systmes

Reprsentation sous forme de schma bloc

e(t) s(t) s(t) = S{e(t)}


Scontinu

e[n] s[n] s[n] = S{e[n]}


Sdiscret

Interconnections des systmes


Srie / Cascade Input Systme 1 Systme 2 Output

Systme 1
Parallle Input + Output

Systme 2

Systme 1 Systme 2

Srie / Parallle Input + Systme 4 Output

Systme 3

Feed-back
51
PROPRIETES DES SYSTEMES

ETUDE DE 2 PROPRIETES FONDAMENTALES (systme continu ou discret):


LINEARITE
INVARIANCE EN TEMPS

LINEARITE (Proprit de superposition)


Soit y1[n]=S{x1[n]} et y2(t)=S{x2[n]} ALORS a y1[n]+ b y2[n] = S{a x1[n]+b x2[n]}

Consquence : une entre nulle produit une sortie nulle

INVARIANCE EN TEMPS
Soit y[n]=S{x[n]} ALORS y[n-n0]=S{x[n-n0]}
La sortie du systme ne dpend pas de l'origine des temps
La sortie du systme ne dpend pas de linstant o est applique lentre

On notera SLIT un systme Linaire et Invariant en Temps


52
EXEMPLES - linarit et invariance en temps des systmes suivants :
y[n] = 2x[n], y(t) = x(t-2) -2x(t-19) LIT
y[n] = x[-n], y(t) = sin(6t) x(t) L
y[n] = 2x[n]+3, y(t) = a exp(x(t)) IT

UTILISATION DES PROPRIETES :


Soit un systme LINEAIRE et INVARIANT EN TEMPS
qui a en sortie y(t) lorsque lentre est x(t) :
x(t) y(t)

t t
0 1 2 0 1 2

Quelle est la rponse du systme lorsque lentre est x1(t)


x1(t)

3 4 t
0 1 2
53
RAPPEL DE QUELQUES PROPRIETES DE LIMPULSION UNITE

x[n] [n] = x[0] [n] x(t ) (t ) = x(0) (t )

x[n] [n =
n0 ] x[n0 ] [n n0 ] x(t ) (t =
t0 ) x(t0 ) (t t0 )

+
+

[ n] = 1 (t )dt = 1

+ +

x[n] [n] = x[0]

x (t ) (t )dt = x (0)

+ +
x[n] [n n

0
] = x[ n0 ]
x (t ) (t t 0 ) dt = x ( t0 )

n

[k ] = u[n]
t

k = ( )d = u(t )

54
REPRESENTATION DES SIGNAUX EN SOMME DIMPULSIONS

Exemple de la reprsentation
x[n ]
-4 -1 2 3
dun signal discret en terme
-3 -2 0 1 4
dimpulsions retardes

x[2] [n + 2]

Gnralisation : -4 -3 -2 -1 0 1 2 3 4 n
Tout signal discret peut tre dcrit comme une somme
dimpulsions de Dirac retardes et pondres par x[1] [n + 1]
-1
lamplitude de ce signal :
-4 -3 -2 0 1 2 3 4 n

+
x[ n ] = x[k ] [n k ]
k =
-4 -3 -2 -1 0 1 2 3 4
x[0] [n ]
n

x[1] [n 1]

-4 -3 -2 -1 0 1 2 3 4 n

Dcomposition quivalente pour les signaux continus :


2
x[2] [n 2]
+

x (t ) = x ( ) (t )d
-4 -3 -2 -1 0 1 3 4 n


55
NOTION DE REPONSE IMPULSIONNELLE

La rponse impulsionnelle h[n] dun systme est la rponse du systme lorsque le


signal dentre est limpulsion de Dirac [n] :

[n] h[n]
S

Dans le cas des systmes linaires et invariant en temps (SLIT), la rponse


impulsionnelle h[n] permet de caractriser totalement le systme.
La Transforme de Fourier ou la transforme en z de la rponse impulsionnelle
permettent de dduire :
La rponse en frquence ou gain complexe H(f)
Le gain en fonction de frquence |H(f)| ou la phase arg(H(f)
La fonction de transfert H(z)
56
EQUATION DE CONVOLUTION

Considrons un systme S linaire et invariant en temps (LTI) de rponse


impulsionnelle h[n]. Nous pouvons donc crire :

entre S sortie
[n] h[n]
[n-k] h[n-k]
x[k] [n-k] x[k] h[n-k]
+ +

x[k ] [n k ] x[k ] h[n k ]


k =
k =

x[n] S y[n]

Do lquation de convolution discrte qui lie signal dentre, signal de sortie et


rponse impulsionnelle dun systme LIT :

+
=y[n] x[k ] h[n k ]
k =
57
EQUATION DE CONVOLUTION

Un changement de variable permet de convertir lquation de convolution sous une


autre forme:

+ +
y[n] x[k ]=
k =
h[n k ] h[k ] x[n k ]
k =

Notation de la convolution

y[n] = x[n] h[n] = h[n] x[n]

Lquation de convolution permet de calculer la sortie du systme pour nimporte


quelle entre x[n]
58
CALCUL PRATIQUE DE LA CONVOLUTION
x[k]
1
x[n] 0 4 k

01 2 34 5 n<0
h[n-k]
64 x[n] S y[n] ?
32
h[n] n 0 k
n-6
h[n] 16
8
4 h[n-k]
12 0<n<4

01 2 34 5 6 7 0 n k
n-6

h[n-k]
4<n<6

y[n] = x[n] * h[n] 0 n k


n-6

h[n-k]
6<n<10

0 n k
n-6

0 1 2 3 4 5 6 7 8 9 10
h[n-k]
n>10

0 n k
n-6
59
CALCUL PRATIQUE DE LA CONVOLUTION

Cas usuel :
soit x de dure N, h de dure M, avec NM (signaux dure finie)
x et h ont des amplitudes nulles pour les temps (indices) ngatifs (signaux causaux)
alors lquation de convolution se simplifie :

N 1 M 1
=
y[n] x[k ] h=
k 0=k 0
[n k ] h[k ] x[n k ] =
pour n 0 N +M 2

On note que la dure de y[n] est N+M-1 : la convolution allonge les signaux

y[0] = x[0] h[0]


y[1] x[0] h[1] + x[1] h[0]
y[2] = x[0] h[2] + x[1] h[1] + x[2] h[0]
.....
y[i ] = x[i M + 1] h[ M 1] + .... + x[i M + j ] h[ M j ] + ... + x[i ] h[0]
.....
y[ N + M 2]= x[ N 1] h[ M 1]
60
ILLUSTRATION DE LA CONVOLUTION DE SIGNAUX CONTINUS

x()

S y(t) ?
x(t)
h(t)
h()

y (t ) = x (t ) * h (t )

+
h(t0-)

x( )h(t )d

t0>0

+ t0

h( ) x (t )d +
x()h(t0-)
=
y (t0 ) x( )h(t

0 )d

t0
y (t ) =
x (t ) * h (t )

t0 t
61
PROPRIETES DE LA CONVOLUTION

Commutativit

x[n] h[n] = h[n] x[n]


Mise en cascade

x[n] {h1[n] h2 [n]} ={x[n] h1[n]} h2 [n]


Distributivit

x[n] {h1[n] + h2 [n]} = {x[n] h1[n]} + {x[n] h2 [n]}


lment neutre, dfinition de la rponse impulsionnelle dun systme LIT

[n] h[n] =
h[n]
Attention, ces proprits ne sont valables que pour les systmes LIT
62
PROPRIETES DE LA CONVOLUTION

Fonction propre dun systme LIT

Soit un systme LIT de rponse impulsionnelle h(t)


Considrons le signal dentre x(t) exponentielle complexe (phaseur pur) :
2 jf 0t
x f0 (t ) = e
Calculons la sortie correspondante ce systme:
+
y (t ) = x (t ) h (t ) =

h ( )e 2 jf0 ( t ) d
+


2 jf 0t 2 jf 0 2 jf 0t
e= h ( ) e d e H ( f0 )

H(f0) est une constante complexe dont la valeur ne dpend que de f0 et de la rponse
impulsionnelle du systme

Rsultat extrmement important : La rponse dun systme LIT un signal


dentre de type exponentielle complexe (fonction sinusodale de frquence fixe), est
le mme signal (pas de changement de frquence) mais pondr par un coefficient qui
dpend uniquement de la rponse impulsionnelle du systme.
On dit que lexponentielle complexe est une fonction propre des systmes SLIT
63
EXEMPLES DE SYSTEMES LIT

RETARD PUR

x[n] y[n]=x(n-n0)
retard n0

y[n] = x[n n0 ] = x[n] [n n0 ]

On dduit que la rponse impulsionnelle de ce systme est

h[n]

h[n]=[n-n0] 1

n
0 n0
64
EXEMPLES DE SYSTEMES LIT

MOYENNEUR TEMPOREL

x[n] Moyenneur sur y[n]


M chantillons

y[n ] = x[n ] + x[n 1] + x[n 2] + .... + x[n M + 1]


k=
M 1 k=
M 1 k=
M 1


k 0=
x[n=
k 0
k] x[n ] [n=
k ] x[n ]*
=k 0
[n k ]

On dduit que la rponse impulsionnelle de ce systme est

1
k= M 1 h[n]
=
h[n ] [n k ]
k =0
0 M-1
65
PROPRIETES DES SYSTEMES

LINEARITE

INVARIANCE EN TEMPS

CAUSALITE
Dfinition gnrale : La sortie dun systme causal ne dpend que des valeurs prsentes ou
passes de lentre

STABILITE
Dfinition gnrale: Un systme est stable si toute entre damplitude borne correspond
une sortie borne
66
DESCRIPTION DES SYSTEMES EQUATIONS AUX DIFFERENCES

Lexpression la plus gnrale reliant entre x[n] et sortie y[n] dun systme LIT
est de la forme :
+ +

b x[=
k =
n k ] a y[n k ]
k
k =
k

Si on considre un systme causal dordre N, lexpression peut scrire :

M N

=
k
k 0= k 1
=
y[n] b x[n k ] a y[n k ] k

Exemple dun systme du 1er ordre : y[n]=x[n] +Ky[n-1]

Exemple dun systme du 2me ordre : y[n]=x[n] +a1y[n-1]+ a2y[n-2]


67

Transforme de Fourier des signaux continus


68
TRANSFORME DE FOURIER DES SIGNAUX CONTINUS

Principe : reprsenter un signal continu comme la combinaison linaire de signaux


de base (pour faciliter l'analyse des signaux et des systmes)

Choix des signaux de base


Ils doivent pouvoir reprsenter une large classe de signaux
La rponse d'un systme linaire invariant un signal de base doit tre simple

Signaux de base :
j 2ft
Ensemble des exponentielles complexes de la forme: e
Elle constituent les fonctions propres des systmes linaires invariants
+ +
j 2 f ( t )
y (t ) = x (t ) h (t ) = h ( ) x (t )d = h ( )e d =
x(t) h(t) y(t)
+
e j 2 ft h( )e j 2 f d = He j 2 ft On a donc: y(t) = H x(t)

Consquence - interprtation :
un systme linaire invariant ne change pas la frquence d'une sinusode

x(t) h(t) y(t)


69
SERIES DE FOURIER

Rappel sur les sries de Fourier :


x(t) : signal rel, priodique, de priode T0 = 1/f0
(vrifiant les conditions de Dirichlet)

x(t) peut s'crire sous la forme : x (t ) = a0 + Ak cos(2kf0t + k )
k =1

Exemple
x(t) frquence fondamentale f0,
a0 = 1, A1=1/2, A2=1, A3=2/3 et Ak=0 pour k > 3
k = 0 k

Interprtation:
quivalence des reprsentations dans le domaine temporel et dans le domaine de Fourier
4

3
1 1
2/3
2

1 = Ak 1/2

0
0 f0 2f0 3f0 f
-1
0 20 40 60 80 100 120
70
SERIES DE FOURIER
2

1 1

0
-60 -40 -20 0 20 40 60
0.5
1
+ 2 cos(2 f0t ) 0

-0.5
-60 -40 -20 0 20 40 60
1

+ cos(4 f 0t ) 0

-1
-60 -40 -20 0 20 40 60
1
2
+ cos(6 f 0t ) 0

3 -1
-60 -40 -20 0 20 40 60

4
1 1
2/3
= 2
Ak 1/2

f
x(t) 0

0 f0 2f0 3f0
-2
-60 -40 -20 0 20 40 60
71
SERIES DE FOURIER

Ecriture des sries de Fourier sous forme d'exponentielles complexes harmoniques:


x(t) : signal rel, priodique, de priode T0 = 1/f0
(vrifiant les conditions de Dirichlet)
+
x(t) peut s'crire sous la forme : x (t ) = ak e j 2kf 0t o les ak sont les coefficients

complexes de la srie
k =

Equivalence des formulations


+ + +

a/ x(t) rel: x (t ) = x (t ) x (t ) = ak e j 2kf 0t
x
(t ) = ake j 2kf 0t = a k e j 2kf 0t
k = k = k =

donc a k = ak et ak = a k (1)

+ +
j 2kf 0t
b/ Rcriture de x(t) x (t ) = ak e = a0 + [ak e j 2kf 0t + ak e j 2kf 0t ] (2)
k = k =1

+
j 2kf 0t
c/ (1) dans (2): x (t ) = a0 + 2 ( ak e )
k =1

ak = Ak e j k Ak cos(2kf0t + k )
1
d/ en posant on retrouve: x (t ) = a0 +
2
k =1
72
SERIES DE FOURIER

Calcul des coefficients de la srie :


+
ak e j 2kf 0t j 2kf 0t
1
T0 T0
x (t ) = ak = x ( t )e dt
k =

Exemple ak
x(t)
a-2 a-1 a0 a1 a2
2 1 1 2
(1 j) 1+ j 1 1 j (1 + j)
4 2 2 4

1 j4 5 0.15 j
e 1 5 0.15 j
e 1 j4
e e
2 2 2 2

Re(ak) Im(ak)
Parties relles et imaginaire

0 0

Module et Phase ||ak|| (ak)

0 0
73
SERIES DE FOURIER

Influence de
la priode :
2T0 T0 T T1 T1 T0 T0 2T0
0
2 2

1
ak
T0 = 4T1
0

-1
-10 -8 -6 -4 -2 0 2 4 6 8 10

2
ak
T0 = 8T1 1

-1
-20 -15 -10 -5 0 5 10 15 20

2
ak
T0 = 16T1 1

-1
-40 -30 -20 -10 0 10 20 30 40
74
TRANSFORME DE FOURIER DES SIGNAUX CONTINUS

Dfinitions
+ +
j 2ft j 2ft
X( f ) = x ( t ) e dt x (t ) = X ( f ) e df

Transforme de Fourier Transforme de Fourier inverse

Reprsentation frquentielle dun signal x(t) par X(f), ou spectre du signal

Notations conventions
TF
x(t) X(f) X(f) = TF[x(t)] et x(t) = TF-1[X(f)]

Conditions de convergence = Conditions de Dirichlet:


+
1. x(t) est absolument intgrable

x (t ) dt <

2. x(t) a un nombre fini de maxima et de minima dans tout intervalle fini

3. x(t) a un nombre fini de discontinuits dans tout intervalle fini. De plus, chacune de
ces discontinuits doit tre finie.
75
TRANSFORME DE FOURIER DES SIGNAUX CONTINUS

Exemple : e-at u(t) 1

1
Transforme de Fourier: X ( f ) =
a + j 2f

1/a
Re(X(f)) Im(X(f))

1/a
||X(f)||
/2 (X(f))

/2
f
76
TRANSFORME DE FOURIER DES SIGNAUX CONTINUS

Contenu frquentiel
Cas 1
1.2 6
1 x(t) 5 ||X(f)||
0.8
4
0.6 TF 3
0.4
2
0.2
0 1

-0.2 0
-100 -50 0 50 100 -20 -10 0 10 20

Cas 2
1.2 12
1 x(t) 10
||X(f)||
||X(f)||
0.8
8
0.6 TF
6
0.4
4
0.2
0 2

-0.2 0
-100 -50 0 50 100 -50 0 50
77
TRANSFORME DE FOURIER : PROPRIETES

Linarit
TF TF TF
Si x(t) X(f) et y(t) Y(f) on a : ax(t)+by(t) aX(f)+bY(f)

Symtries :
Si x(t) est un signal rel, on a X(-f) = X*(f), do les proprit suivantes

Re[X(-f)] = Re[X(f)] Paire ||X(-f)|| = ||X(f)|| Paire


Exemple: e-at u(t)
Im[X(-f)] = - Im[X(f)] Impaire [X(-f)] = -[X(f)] Impaire

Si de plus x(t) est un signal pair, alors X(f) est purement relle Exemple: e-a|t|

Dcalage temporel :
TF -j2ft 0 Exemples: (t) et (t-t0)
x(t-t0) X(f) e
Consquence : un dcalage temporel n'affecte pas le module de la T.F.

TF 1 f
Changement dchelle : x(at) X
a a
78
TRANSFORME DE FOURIER : PROPRIETES

Signaux priodiques :
+
Si x(t) priodique, de frquence f0, on a : x (t ) = ak e j 2kf 0t (Srie de Fourier)
k =

+
La TF de x(t) est alors donne par : X( f ) = ak ( f kf0 )
k =
X(f)
x(t)
a-1 a0 a1

TF a-2 a2

T0 t -2f -f 0 f 2f
0 0 0
0

+
Exemples: e j 2f 0t cos( 2f 0t ) sin( 2f 0t ) T (t )
Peigne de Dirac:=
0 (t kT0 )
k =
79
TRANSFORME DE FOURIER : PROPRIETES

Dualit : Exemples: TF de
TF TF 2a
Si x(t) X(f) alors X(t) x(-f) x(t) = 2 x(t) = 1
a + 4 2t 2

dx (t ) TF
Drivation : j 2fX ( f )
dt

t
TF 1 1
Intgration : x( )d j 2 f
X ( f ) + X (0) ( f )
2
Exemple: u(t)

Conservation de l'nergie (signaux nergie finie) : galit de Parseval


+ +
=
2 2
=
E [ x (t )] x (t ) dt E=
[ X ( f ))] X ( f ) df

80
TRANSFORME DE FOURIER ET CONVOLUTION

Proprit fondamentale

TF TF TF
Si x(t) X(f) et h(t) H(f) on a : x(t) h(t) X(f) H(f)

Exemple: retrouver x(t-t0)

Consquence pour un systme linaire invariant :

x(t) h(t) y(t) X(f) H(f) Y(f)

Description temporelle : Description frquentielle :


y(t) = x(t) h(t) Y(f) = X(f) H(f)

H(f) : Rponse du systme en frquence

Exemple: dfinition de la rponse impulsionnelle


81
TRANSFORME DE FOURIER ET CONVOLUTION

Association de systmes

H1(f) H2(f) H2(f) H1(f) H1(f) H2(f)

Exemple: filtrage

1.2 12
1 x(t) ||X(f)||
||X(f)||
10
0.8
8
0.6
6
0.4
0.2 4

0 2

-0.2 0
-100 -50 0 50 100 -50 0 50

Proprit duale (modulation)

TF TF TF
Si x(t) X(f) et h(t) H(f) on a : x(t) h(t) X(f) H(f)
82
PRINCIPALES PROPRITS DE LA TRANSFORME DE FOURIER
83
PRINCIPALES TRANSFORMES DE FOURIER
84

ECHANTILLONNAGE DES SIGNAUX


85
Notations - Dfinitions

Lamplitude et la variable temporel peuvent tre continues ou discrtes


On dfinit les diffrents types de signaux
Signal analogique x(t)
Signal chantillonn xe(t)
Signal quantifi
Signal numrique x[k]

x(t)

xe(t) x[k]
86
Notations - Dfinitions

Echantillonnage des signaux : une ncessit

Traitement
Echantillonnage Reconstruction
numrique

Questions :
De linformation est-elle perdue lors de lchantillonnage des signaux ?
Peut-on restituer totalement le signal analogique partir de ses
chantillons ?
87
Opration dchantillonnage

x(t)

xe(t) t

t
> <
T

Fe=1/T est la frquence dchantillonnage

On suppose un chantillonnage rgulier


88
Oprateur dchantillonnage

Modle dune fonction dchantillonnage priodique la priode T

X
x(t) xe(t)

T(t)
+
= (t ) T (t )
xe (t ) x= x[kT ] (t kT )
k =

Par TF de lgalit prcdente,


on dduit les proprits spectrales du signal chantillonn

1 1 + k
=
Xe( f )
T
f ) * 1 ( f )
X(=
T k =
X ( f
T
)
T

Conclusion :
lchantillonnage de x(t) a pour consquence la priodisation de son spectre
+

Rappel : T(t) est le peigne de Dirac T (t )


= (t kT )
k =
1
TF du peigne de Dirac TF { T (t )} = 1( f )
T T
89
Echantillonnage et priodisation du spectre

Modle dune fonction dchantillonnage priodique la priode Te


X(f)

0 Fmax f

Xe(f)

-1/Te 0 Fmax Fe=1/Te f

Avec une frquence dchantillonnage plus faible : recouvrement spectral

Xe(f)

-2Fe -Fe 0 Fmax Fe 2Fe f

Do le thorme dchantillonnage de Shannon :


Pour pouvoir reconstruire un signal analogique de bande frquentielle limite Fmax partir
de ses chantillons il faut que la frquence d'chantillonnage Fe soit suprieure 2 fois la
frquence maximale :
Fe > 2Fmax
90
Restitution dun signal correctement chantillonn

Raisonnons dans le domaine frquentiel :


comment obtenir le spectre du signal original partir du spectre du signal chantillonn ?
En filtrant le signal chantillonn avec un filtre passe-bas idal HL(f)

X R ( f ) = X e ( f ).H L ( f )

X(f)

0 Fmax f
Xe(f)

-Fe 0 Fmax Fe f
HL(f)

-fc 0 fc f
XR(f)

0 Fmax f
91
Thorme dchantillonnage de Shannon

On comprend que la restitution du signal analogique nest pas possible dans le cas
suivant. Aucun filtre ne peut permettre de revenir au motif spectral original.

Xe(f)

-2Fe -Fe 0 Fmax Fe 2Fe f


92
Echantillonnage rel

X(f)

0 f

Xe(f) Avec repliement


(aliasing)

-Fe 0 Fmax Fe f

Xe(f)xHG(f) HG(f)
Filtre analogique
antirepliement
0 Fe/2 f
Avant chantillonnage, on annule
le spectre pour les frquences Sans
suprieures Fe/2 Xeg(f)
repliement

-Fe 0 Fe/2 Fe f
93
Echantillonnage rel

Tout signal physique est par dfinition dure finie Td


On peut le modliser par
x(t)=x(t) . rect(t/Td)

Sa transforme de Fourier montre que ce type de signal ne peut tre


simultanment bande limite

Le spectre de ce type de signal ne prsente pas de frquence maximale.


Il y aura donc toujours plus ou moins de repliement de spectre.

Solution : utilisation, avant chantillonnage d'un filtre analogique


antirepliement (HG(f), hG(t)) dont la fonction est de rendre le spectre
nulle pour les frquences suprieures Fe/2
94
Choix pratique de la frquence dchantillonnage

Il est indispensable davoir une bonne ide de la gamme de frquence


que contient le signal

Surchantillonner le signal de 10 100 fois Fmax pour visualiser le signal


Choisir ensuite une frquence d'chantillonnage adapte:
visualisation Fe=5..20 Fmax
optimisation du nombre dchantillons Fe>=2 Fmax
traitement numrique Fe=3..10 Fmax

Dans tous les cas, Fmax doit tre significatif.


Choisir explicitement un seuil damplitude sur le spectre (exemple -40dB
de lamplitude maximale)

Garder toujours lesprit que lchantillonnage en dessous de la


frquence limite de Shannon provoque du recouvrement quaucun
traitement ne pourra effacer.
Cas particulier des signaux bande troite
95
Quantification

Il est ncessaire de quantifier les valeurs de lamplitude du signal lors


de la phase de cration du signal numrique (suite de nombres )

Chaque valeur d'amplitude est choisie parmi un ensemble fini de valeurs


possibles

Le mode de quantification uniforme est le plus rpandu. On subdivise la


plage totale de conversion en n intervalles d'gale amplitude.
96

Transforme de Fourier des signaux discrets


97
RAPPELS PRELIMINAIRES
+ +

TF
a : T (t )
On = (t nTe ) e fe ( f ) fe
f= ( f nf e )
e
n = n =

Te (t ) : Peigne de Dirac de priode Te f e ( f ) : Peigne de Dirac de priode fe = 1/Te

TF
... ...
... ...

-Te 0 Te 2Te t -2fe - fe 0 fe 2fe f

Echantillonnage d'un signal continu s(t) la priode Te = 1/fe se(t)

se (t ) = s(t )Te (t )

Donc Se ( f ) f eS ( f ) f e ( f )
= Priodisation de la
TF fe
98
RAPPELS PRELIMINAIRES

Echantillonnage d'un signal continu s(t) TF priodique


S(f )

s(t)

t 0 f

TF

Se(f )

se(t)
... ...

t
0T 0 fe f
99
RAPPELS PRELIMINAIRES

Proprit duale : chantillonnage de la TF S(f) la frquence fe Sef(f)

Sef ( f ) = S ( f ) f e ( f ) avec fe ( f ) : Peigne de Dirac de priode fe

TF
(t ) Te s(t ) Te ( f )
sef= S ( f ) f e ( f ) Priodisation du signal Te = 1/fe

S(f )

s(t)

t 0 f
TF
s e f (t)
Sechf(f)

Te t 0 fe f
100
TRANSFORME DE FOURIER DE SIGNAUX DISCRETS

Dfinition de la transforme de Fourier dun signal discret


S (f )

s[n]
TF

... ...

0 1 2 i n f
0 1
Transforme de Fourier dun signal temps discrets (TFTD)
+
S( f ) = s[n ]e j 2 fn Transforme de Fourier
n =

s[n ] = S ( f )e j 2 fn df Transforme de Fourier inverse


1

Proprits fondamentales
La transforme de Fourier d'un signal discret est continue et priodique, de priode 1
Le signal discret est dcompos en une intgrale finie d'exponentielles discrtes
101
PRINCIPALES PROPRITS DE LA TRANSFORME DE FOURIER DUN
SIGNAL TEMPS DISCRETS

Proprits trs proches de celles de la transforme de Fourier continue


Diffrences lies la priodicit de la transforme de Fourier temps discrets
102
PRINCIPALES TRANSFORMES DE FOURIER DE SIGNAUX
TEMPS DISCRETS
103

Transforme de Fourier discrte : DFT et FFT


104
TRANSFORMEE DE FOURIER DISCRETE

Echantillonnage d'une priode de la TF sur N points priodisation du signal


s[n] N points
N points
S(k/N) 1 priode

TF


n 0 f
0 N-1 1
Transforme de Fourier discrte (DFT)
on ne garde qu'une priode (N points) du signal et de la TF
Laxe des frquences de la TF est normalis de 0 N-1
sP[n] S[k]

0 N-1 n 01 N-1 k

La DFT peut donc toujours tre vue comme lchantillonnage sur N points de la TF
priodique et continue d'un signal discret dfini sur N points.
S [k ] = S ( f ) f = k / N pour k = 0, N-1
105
TRANSFORMEE DE FOURIER DISCRETE

Transforme de Fourier discrte (DFT)


N 1 2
j kn
S [k ] = s[n]e N DFT
n =0
N 1 2
1 j
kn
s[n ] =
N k =0
S [k ]e N DFT inverse

Proprits fondamentales
La DFT (et son inverse) sont discrtes et priodique, de priode N
La DFT (et son inverse) correspondent une somme finie d'exponentielles discrtes:
la DFT (et son inverse) peuvent donc se calculer numriquement en machine
Implantation efficace de la DFT si N est une puissance de 2 : algorithme de FFT

Ne pas oublier
s[n] S[k]

DFT

0 N-1 n 01 N-1 k
106
PROPRITS DE LA TRANSFORME DE FOURIER DISCRETE

Proprits particulires lies la priodicit implicite du signal et de la transforme

Exemple: dcalage temporel dun signal s[n] dfini sur N points

Dcalage
s[n] de n0 s[n-n0]
0 n 0 n0 n

Dcalage du signal s[n] associ la DFT S[k] Dcalage circulaire sur N points

sP[n] S[k]

DFT

0 N-1 n 01 N-1 k

Dcalage sP[n-n0]
de n0 Notation: dcalage
circulaire de n0 sur
N points

n
x[( n n0 ) N ]
0 N-1
107
PROPRITS DE LA TRANSFORME DE FOURIER DISCRETE
108
TRANSFORMEE DE FOURIER DISCRETE

Exemple : DFT sous Matlab


my_signal = [1 0.9 0.7 0.4 0];
my_DFT = fft(my_signal);
Module de la DFT
stem( abs(my_DFT) ); 3

2.5
stem( angle(my_DFT) );
2

1.5
s[n] 1
1
0.5
0.8
0
0.6
DFT -1 0 1 2 3 4 5

0.4 Phase de la DFT


3
0.2
2
0
1
-5 0 5 10
0

-1

-2

-3
-1 0 1 2 3 4 5
109
DFT : ZERO-PADDING (AJOUT DE ZEROS)

s[n] : signal discret de N points


S (f )

TFTD
s[n]

... ...

0 n 0 1 f
DFT directe: application de la DFT un tableau de N points
chantillonnage de S(f) sur N points
s[n] N points
S(k/N) 1 priode
DFT

0 N-1 n 0 1 f

Echantillonnage de S(f) sur M > N points


s[n] M points
S(k / M)
DFT

0 N-1 n f
0 1

Intrt pratique : en rajoutant les zros au signal discret on peut donc choisir deffectuer une
DFT sur un nombre M de points quelconque et donc choisir lchantillonnage de la TF continue
du signal discret s[n]
110
TRANSFORMEE DE FOURIER DISCRETE

Zero-padding et DFT sous Matlab


my_first_signal = [1 0.9 0.7 0.4 0];
wanted_length = N; % N = 5, 10 or 50
nb_zeros_to_add = wanted_length - length(my_first_signal);
my_signal = [ my_first_signal zeros(1, nb_zeros_to_add) ];
module_DFT = abs( fft(my_signal) );
s[n] s[n] s[n]
1 1 1

0.8 0.8 0.8

0.6 0.6 0.6

0.4 0.4 0.4

0.2 0.2 0.2

0 0 0

-5 0 5 10 -5 0 5 10 0 10 20 30 40 50

N=5 N=10 N=50


S[k] DFT DFT
3 3 3

2.5 2.5 2.5

2 2 2

1.5 1.5 1.5

1 1 1

0.5 0.5 0.5

0 0 0

-1 0 1 2 3 4 5 0 2 4 6 8 10 0 10 20 30 40 50
111
TRANSFORMEE DE FOURIER DISCRETE
S[k]
3
Zero-padding et DFT sous Matlab
2.5
2
1.5
1
my_signal = [1 0.9 0.7 0.4 0];
0.5
module_DFT = abs( fft(my_signal) ); 0
module_DFT = abs( fft(my_signal, 10) ); -1 0 1 2 3 4 5

module_DFT = abs( fft(my_signal, 50) ); DFT sur 10 points


3
2.5
2
s[n]
1 1.5
1
0.8
0.5
0.6
0
0.4 0 2 4 6 8 10
0.2
DFT sur 50 points
0 3

-5 0 5 10 2.5
2
1.5
1
0.5
0
0 10 20 30 40 50
112

R
s(t) S(f )
E t f
S
0
U
M
E
se(t) . . . ... Se(f )
0 Te t fe f
0
D
E

. . .
S
s[n] ... S(f )
T
R 0 1 i n 0 1 f
A
N N points
N points
S s[n]

1 priode
F S(k/N)
O
R 0 N-1 n 0 1 f
M
E
E s[n]
S
DFT
S[k]

0 N-1 n 01 N-1 k
113
Exemple pratique dapplication

On dsire tudier le spectre dun signal continu en l'chantillonnant et en utilisant un


circuit spcialis permettant d'effectuer une FFT. On sait que:
La frquence maximum contenue dans ce signal est infrieure 2,5 kHz.
On dsire tudier son spectre avec une rsolution maximum de 5 Hz.

Quelles conditions dacquisition faut-il utiliser ?


Frquence d'chantillonnage minimum fe min ?
On choisit finalement dchantillonner 10 fois la frquence d'chantillonnage minimum.

Quelle sera la dure D de l'acquisition ?

Quel est le nombre N de points dchantillonnage du signal ?


Quel est le nombre de points de la TFD si on veut optimiser les performances de la FFT?
114
115
116
117
118

Filtrage linaire des signaux


119
Filtrage - Exemples

Filtrage du son ralis par un bouchon doreille

Le filtrage ralis par le bouchon doreille dpend de son positionnement


120
Filtrage- Exemples

Filtre analogique : rponse du filtre dentre dun rcepteur VHF 144MHz

Antenne de rception (bande des 2 mtres )

Rcepteur dondes radio


VHF 144MHz

Zoom sur le filtre dentre 144MHz

Rponse en frquence du filtre passe-bande dentre,


centr sur 144MHz
121
Filtrage- Exemples

Filtre de rjection (coupe bande) autour de 144MHz

Objectif : amliorer la rception des signaux de provenant de satellites


mtorologiques (137-138MHz) qui sont perturbs par les radios
amateurs VHF 144MHz.

Filtre analogique LC

Rponse en frquence du filtre coupe-bande centr sur 144MHz


122
Filtrage- Exemples

Filtre 3 voies pour enceintes audio HIFI

Objectif : filtrer le signal sonore pour ladapter chacun


des 3 haut-parleurs : aigu (HF, filtre passe-
haut), mdium (MF, filtre passe-bande) et grave
(LF, filtre passe-bas)

Enceintes HIFI 3 voies

Filtre 3 voies 24 dB/octave


123
Dfinitions

Lopration de filtrage permet de modifier les amplitudes des


composantes frquentielles dun signal

Un filtre linaire est dfini comme un systme linaire et invariant en temps


Le filtre est dfini par sa rponse impulsionnelle h(t) ou son gain complexe H(f)
La rponse frquentielle H(f) est la transforme de Fourier de rponse impulsionnelle h(t)
Le signal filtr est le rsultat de la convolution entre le signal et la rponse impulsionnelle h(t)

Exemple du module de la rponse Exemple du module de la rponse


frquentielle dun filtre passe-bas. frquentielle dun filtre passe-bande.
Frquence de coupure 10kHz. Frquence de coupure 8 et 11kHz.
124
Filtre passe-bas idal

Domaine temporel ou domaine frquentiel ?


Lutilisation des filtres se fait plutt dans le domaine temporel (convolution)
La synthse se fait plutt dans le domaine frquentiel (gain en frquence, gabarit du filtre)

Filtre passe-bas idal :

H ( f ) = rect (
f =
) h (t ) =
TF 1
{H ( f )} 2 fc sin c(2 fct )
2 fc

2fc
1

1/2fc

-fc fc f t

Gain en frquence Rponse impulsionnelle


125
Filtres numriques

Synthse dun filtre numrique Rponse Impulsionnelle Finie (RIF)


Exemple de la synthse dun filtre passe bas par la mthode des fentres

Filtre passe-bas idal de


Rponse impulsionnelle
frquence de coupure fc

TFTD inverse

-fc fc

H ( f ) = rect (
f sin(2 nf c )
) h[n] =
2 fc n
Mais le filtre numrique est de longueur infinie..

Il faut tronquer la rponse impulsionnelle en ne conservant que M chantillons


Cela revient la multiplier par une fentre rectangulaire
Cela revient donc convoluer la rponse frquentielle du filtre idal par un sinus cardinal
Synthse des filtres RIF ralisables en pratique : 126
mthode des fentres

La troncature de la rponse impulsionnelle introduit des ondulations sur


le gain en frquence. Le filtre passe bas nest plus idal

Rponse frquentielle dun filtre de longueur 101, 21, et 7 chantillons


pour un filtre de frquence de coupure fc=0.23
127

M=101

M=21

M=7
128
Filtrage numrique. Classification des filtres

Classification des filtres :


Filtres Rponse Impulsionnelle Finie (RIF)
M
=
Forme gnrale RIF : y n [ ] bk x [ n k ]
k =0

Filtres Rponse Impulsionnelle Infinie (RII)


N M
Forme gnrale RII : y[n] = ak y[n k ] + bk x[n k ]
k =1 k =0
Classification des ralisations:
Ralisation transversale ou non rcursive
Ralisation rcursive
Ralisation par TF discrte

La transforme en z est un outil mathmatique trs utile pour la synthse des


filtres numriques
129
Filtres numriques ralisables en pratique

Etudes des filtres Rponse Impulsionnelle Finie (RIF)

Rponse impulsionnelle entirement dfinie par une un nombre fini dchantillons

Principales proprits des filtres RIF :


- ces filtres sont toujours stables
- leur rponse frquentielle peut prsenter une phase linaire
- la dure du rgime transitoire est limite la dure de la rponse impulsionnelle
- pas de propagation des erreurs de calcul (programmation non rcursive)
- faiblesse : pour amliorer les performances du filtre on peut tre amen
augmenter le nombre dchantillons

3 principales mthodes de synthse de filtres RIF :


Mthode des fentres (FIR1 en Matlab)
Mthode de l'chantillonnage en frquence (FIR2 en Matlab)
Mthode de synthse de filtre optimal (REMEZ en Matlab)
130
Filtrage numrique

Utilisation des filtres RIF dans le domaine temporel : convolution numrique

Soit le filtrage du signal numrique x[n] par le filtre de rponse impulsionnelle h[n]

Soit x[n] : x[0]=10, x[1]=7, x[2]=5, x[3]=12, x[4]=3, et x vaut 0 ailleurs

Et h[n] : h[-1]=1/3, h[0]=1/3, h[1]=1/3, et h vaut 0 ailleurs (filtre non causal)

Soit y le signal rsultant du filtrage de x par h. y est obtenu par la convolution de x par h


Calcul de y[n] y [=
n] x [k ] h [n k ]
k =
131
Filtrage numrique
4
Rsultat du filtrage de x par h pour notre cas : y [ n=] x [ k ] h [ n k ] pour n de -1 5
k =0

y : 1/3(10 17 22 24 20 15 3)
X

Analyse frquentielle :
132
Etude du filtre moyenneur

Moyenneur : filtre numrique simple, moyenne glissante sur M points

M 1
1
Relation entre-sortie
(filtre causal)
=y [ n] x [n k ]
M k =0

Cas du moyenneur temporel sur 3 points :


Rponse impulsionnelle correspondante : h[n]= 1/3 pour n de 0 2, h[n]=0 ailleurs
M 1
1
=h [ n] [n k ]
M k =0

1
Rponse frquentielle, TF de la rponse impulsionnelle : H ( f=
) (1 + 2 cos 2 f )
3
H(f)
133
Etude du filtre moyenneur, moyenne glissante, running average filter

Filtrage du signal constitu de la somme dune rampe continue et dun


signal sinusoidal la frquence 1/8

Comparaison du signal filtr avec un moyenneur sur 3 points et un moyenneur sur 7


points
134
Etude du filtre moyenneur, moyenne glissante, running average filter

Exemple du filtrage dune image.


Le filtre sera appliqu successivement sur chaque ligne de limage

Exemple de la ligne n 40. Cest un signal


135
Etude du filtre moyenneur, moyenne glissante, running average filter

Exemple du filtrage de la ligne n 40 par un filtre moyenneur causal sur 11 points

Exemple du filtrage de la ligne n 40 par un filtre moyenneur non causal sur 11 points

Noter le dcalage spatial et lamplitude du rsultat


136
Etude du filtre moyenneur, moyenne glissante, running average filter

Rsultat sur limage complte du filtrage par un filtre moyenneur non causal sur 11 points
Le filtre a t appliqu dabord sur les lignes puis sur les colonnes
Lamplitude du rsultat a t recalcule pour occuper toute lchelle des niveaux de gris
137
Etude du filtre moyenneur, moyenne glissante, running average filter

Comment liminer une composante sinusodale de frquence 1/11 superpose limage


On applique un filtre moyenneur de 11 points sur les lignes

Image avant et aprs filtrage.


Noter la suppression de la composante sinus mais aussi llargissement des motifs

Dtail dune ligne


138
Filtres numriques ralisables en pratique

Etudes des filtres Rponse Impulsionnelle Infinie (RII)


N M
Forme gnrale : y[n] = ak y[n k ] + bk x[n k ]
k =1 k =0
Le problme est de trouver les coefficients du filtre ak et bk pour que le filtre soit causal et stable
et respecte au plus prs le gabarit frquentiel.

Spcificits des filtres RII


- peuvent tre obtenus par transposition d'un filtre continu
- peuvent tre obtenus avec un petit nombre de coefficients
- mise en uvre rcursive
- peuvent tre instables
- la rponse frquentielle peut prsenter une phase non linaire
- une bonne prcision de calcul est ncessaire pour viter la propagation des erreurs

Principales mthodes de synthse de filtre IIR:


Transposition du filtre analogique en filtre numrique
Mthode de l'invariance impulsionnelle
Equivalence la drivation
Equivalence l'intgration : transformation bilinaire
139
Filtres numriques ralisables en pratique. Filtres RII

Exemple du filtre RII dfini par son quation entre-sortie : [ n] 0.8 y [ n 1] + 5 x[n]
y=

Calcul de la rponse impulsionnelle :


calcul de la sortie lorsque lentre est un dirac [n]
on suppose que lentre est nulle avant linstant de dpart
on suppose que la sortie est nulle avant linstant de dpart

Rsultat du calcul :

h [ n] =
5 (0.8) n u[n]
Avec u[n], lchelon unit

La transforme en Z est trs utile


pour ce calcul dans le cas gnral
140
Filtres numriques ralisables en pratique. Filtres RII

Exemple du filtre RII dfini par son quation entre-sortie : [ n] 0.8 y [ n 1] + 5 x[n]
y=

Calcul de la rponse du filtre pour le signal dentre x[n]


x[n] = 2[n] - 3 [n-1] +2 [n-3]

y[0] = 0.8y[-1]+5x[0] = 0.8(0) + 5(2) = 10


y[1] = 0.8y[0]+5x[1] = 0.8(10) + 5(-3) = -7
y[2] = 0.8y[1]+5x[2] = 0.8(-7) + 5(0) = -5,6
y[3] = 0.8y[2]+5x[3] = 0.8(5,6) + 5(2) = 5,52
y[4] = 0.8y[3]+5x[4] = 0.8(5,52) + 5(0) = 4,416
.
Ensuite la sortie est proportionnelle (0,8)n

Noter la possible propagation des erreurs de calcul


Noter le petit nombre de coefficients pour dfinir le filtre (2)
141
Filtres numriques ralisables. Exemple du filtre passe-bas du 1er ordre

Filtre numrique quivalent au


filtre RC analogique passe bas :

[ n=
] ay [ n 1]
Relation entre-sortie de ce filtre linaire
caractris par lquation aux diffrences suivante : y x[n] avec a <1

On dduit la rponse impulsionnelle


par calcul de la rponse [n] ou avec h [ n ] = a nu [ n ] avec u [ n ] l ' chelon unit
la transforme en Z

Calcul de la rponse frquentielle


TFTD ou proprits de la TZ

1
H( f )=
1 ae j 2 f
142

Les fentres de pondration


143
Fentres de pondration

Pour traiter ou analyser un signal, on est amen limiter sa dure.


La transforme de Fourier du signal 'tronqu' n'est alors qu'une approximation de la
transforme de Fourier du signal de dpart.
Il est important de faire un choix raisonn de la fentre de pondration w(t) qui est
utilise pour limiter la dure du signal.

Modlisation
Dans le domaine temporel : x w (t ) = x(t ) w(t )
Devient dans le domaine frquentiel : X w( f ) = X ( f ) *W ( f )

La fentre quon utilise intuitivement est la fentre rectangulaire qui permet simplement
de garder les chantillons du signal sur une dure fixe sans modifier leur amplitude.
Le spectre du signal tronqu est donc convolu (en frquence) par la TF du rectangle
cest dire un sinus cardinal
144
Fentres de pondration

Analyse dun signal sinus de frquence 100Hz, chantillonn 1000Hz


et limit L=64 chantillons
sin( Lf )
f ) ( f f0 ) *
X (=
x[n] exp( j 2 f 0 n) rect (n / L) sin( f )

largissement du pic thorique cause


de la convolution par le sinus cardinal

En chelle log ::
145
Fentres de pondration

Paramtres frquentiels caractristiques des fentres de pondration:


- Largeur du lobe principal rsolution frquentiel
- Amplitude du 1er lobe secondaire rsolution dynamique
- Pente de dcroissance des lobes secondaires rsolution dynamique
146
Fentres de pondration

Diverses fentres ont t inventes dans le but de limiter les oscillations dans les
lobes secondaires et rduire la largeur du lobe principal
Fentres de Hamming gnralises:

t 2t
wH (t ) = rect ( ) + (1 ) cos( )
T T
T (1 )
WH ( f ) = Tsinc(Tf ) + [sinc(Tf + 1) + sinc(Tf 1)]
2

Avec =1 fentre rectangulaire


=0,54 fentre de Hamming
=0,5 fentre de hanning

Fentres triangulaire ou Bartlett


Fentre parabolique
Fentre cosinusodale
Fentre de Blackmann
Fentre de Kaiser
147
Comparaison des fentres de pondration

Comparaison des diffrentes


fentres de pondration
dans le domaine temporel
et le domaine frquentiel
148
Comparaison des fentres de pondration

Analyse dun signal constitu de la somme de 2 sinus chantillonns 4000Hz sur 200 points

Rectangle

Hamming
149

Analyse temps frquence des signaux

Philippe Delachartre Didier Vray INSA-Lyon


Introduction
Espace de reprsentation
Evolution temporelle
Regarder sous un autre angle
Choix de l'espace de reprsentation dcision
la dtection
l'estimation
la classification
la reconnaissance

150
Exemple introductif

Signal 1 : somme de deux sinus f1=0,1 et f2=0,2


Signal 2 : sinus avec rupture de frquence f1=0,1 et
f2=0,2

SIGNAL 1

SIGNAL 2

151
TEMPS FREQUENCE
Le plan temps-frquence
Domaine temporel ------------ domaine frquentiel

Dans le spectre : information dlocalise en temps

Signal dure limite et signal bande limite

Ingalit d'Heisenberg-Gabor :
1
t . f
4
Pour une gaussienne BT 1/2
152
Grandeurs locales : amplitude et
frquence instantanes
Notion de spectre instantan ou de frquence localise
dans le temps

Exemple de la porte en musique


Le temps est indiqu horizontalement

La frquence est indique verticalement

Toutefois, laxe des temps et des frquences ont une


rsolution fixe

153
Reprsentation temps-frquence
Vers une reprsentation temps-frquence (RTF)

Tx ( t , f )
Reprsentation schmatique de ce qui est souhaitable
f f

exp(j2f0t)
(t-t0) f0

t t
t0

f f
Exp(j2t/2)

exp(-t)

154
t t
Transforme de Fourier Court Terme (TFCT)

TFCT du signal x(t) dfinie par :


+
TFCTx(t,f;h)= x()h*(t)e j2fd

Interprtation :
+
x t()=x()h*(t) TFCTx(t,f;h)=X t(f)= x t()e j2fd

TF locale au voisinage de t.

Autre dfinition :
+
X t(f)=X(f)H*(f)e j2ft
= X()H*(f)e j2(f)td

+
TFCTx(t,f;h)=e j2tf
X ( ) H*( f )e d
j2t

TFCT obtenue en filtrant x(t) par un filtre passe-


bande de rponse frquentielle H*(-f) centr sur f 155
Transforme de Fourier Court Terme (TFCT)

Rsolution en temps et en frquence


x1(t)=(tt0)
+
TFCTx 1 (t,f;h)= (t0)h*(t)e j2fd=e j2t0f h*(t0 t)

f
h(t)

t0 t

156
Transforme de Fourier Court Terme (TFCT)

x2(t)=e j2f0t
+
TFCTx 2 (t,f;h)= (f0)H*(f)e j2(f)td=e j2(f0 f)t H*(f0 f)

f0 H(f)

Compromis entre rsolution en temps et en frquence


exprim par lingalit d'Heisenberg-Gabor.

157
Transforme en ondelettes
Reprsentation temps-chelle continue :
+
Tx(t,a)= x(s)h*ta(s)ds avec h*ta(s)= 1 h(st )
a a

Reprsentation Temps-Frquence pour a = f / f0


Pavage dyadique

Interprtation : filtres Q-constant (Q = f0 / B)


f

t 158
Reprsentations temps-frquence bilinaires

Distribution dnergie
+ +
Energie de x(t) : Ex = x(t) dt= X(f) df
2 2


2 2
x ( t ) et X ( f ) : densits dnergie respectivement
temporelle et spectrale.

Rechercher une grandeur mixte Tx ( t , f) qui sera


une densit conjointe telle que :
++
Ex = Tx(t,f)dtdf

Le spectre instantan Tx ( t , f ) est cens
dployer lnergie du signal

Deux contraintes naturelles :


+ +
Tx(t,f)dt= X(f) =Px(f) et Tx(t,f)df = x(t) =px(t)
2 2
159

Spectrogramme
Le Sonagraphe

Le principe peut tre modlis


2
ainsi :
+
Sx(t,f;h)= X()H*(f)e j2t d

Spectrogramme ou sonagramme donc aussi :


+ 2
Sx(t,f;h)= x()h*(t)e j2fd

non ngatif et valeur relle

Choix de la fentre danalyse

Le spectrogramme est le module carr de la TFCT

160
Effet de la longueur de la fentre

161
Distribution de Wigner-Ville (DWV)
Dfinition +
* j2 f
Wx , y ( t , f ) = x ( t + ) y ( t )e d

2 2
Proprits

Structure des interfrences


Soit : x ( t ) = x 1 ( t ) + x 2 ( t ) avec x1 ( t ) = x 0 ( t t 1 )e j2 f1t
et x 2 ( t ) = x 0 ( t t 2 )e j2 f 2 t

Les termes dinterfrences sont localises autour


t1 + t 2 f1 + f 2
du temps t 12 = f
et de la frquence 12 =
2 2
162
Distribution de Wigner-Ville (DWV)
La frquence des oscillations est f1 f 2 dans la
direction du temps et la frquence des oscillations
est t 1 t 2 dans la direction de la frquence
direction des
f oscillations
Wx2(t,f)
Ix1,x2(t,f)

1/(f1-f2) (t2,f2)

Wx1(t,f)

1/(t1-t2)
(t1,f1)

t 163
Distribution de Wigner-Ville (DWV)

164
Distribution de Wigner-Ville (DWV)

165
166

Programming in Matlab

Denis Friboulet Didier Vray INSA-Lyon


167
Overview of the MATLAB Environment

The Matlab system consists of these main parts :


MATLAB is an interactive system whose basic data element is an array that does not
require dimensioning

It allows you to solve many technical computing problems, especially those with matrix
and vector formulations

The name MATLAB stands for matrix laboratory

MATLAB features a family of add-on application-specific solutions called toolboxes.


Toolboxes are comprehensive collections of MATLAB functions (M-files) that extend the
MATLAB environment to solve particular classes of problems
For example : signal processing, image processing, DSP, Optimization, control systems,
neural networks, fuzzy logic, wavelets, simulation, and many other areas.
168
Overview of the MATLAB Environment

Overview of Matlab environment :


Desktop Tools and Development Environment
Many of these tools are graphical user interfaces. It includes:
the MATLAB desktop
command Window,
an editor and debugger,
a code analyzer,
browsers for viewing help,
the workspace,
and files, and other tools.

Mathematical Function Library


A vast collection of computational algorithms ranging from elementary functions, like sum,
sine, cosine, and complex arithmetic, to more sophisticated functions like matrix inverse,
matrix eigenvalues, Bessel functions, and fast Fourier transforms

The Language
The MATLAB language is a high-level matrix/array language with control flow statements,
functions, data structures, input/output, and object-oriented programming features.
169
Overview of the MATLAB Environment

Overview of Matlab environment :


Graphics
MATLAB has extensive facilities for displaying vectors and matrices as graphs, as well as
annotating and printing these graphs. It includes high-level functions for two-dimensional
and three-dimensional data visualization, image processing, animation, and presentation
graphics

External interface
The external interfaces library allows you to write C and Fortran programs that interact
with MATLAB. It includes facilities for calling routines from MATLAB (dynamic linking), for
calling MATLAB as a computational engine, and for reading and writing MAT-files
170
Matlab Documentation

To view the online documentation, select Help menu then Product Help in Matlab.

The Help command provides information about any Matlab function


Example >> help filter

A useful command for getting started is >> intro

There are many demonstration programs that illustrate the capabilities of Matlab.
These can be started with the command >> demo

You can also download from the Matlab website the pdf version of the
documentation: getstartwithMatlab.pdf which is the main source of this lesson

On the Matlab website you will find several forum of discussion and the possibility
of exchanging .m files with Matlab users.
171
Starting a Matlab session

The desktop
When you start MATLAB, the desktop appears, containing tools (graphical user interfaces)
for managing files, variables, and applications associated with MATLAB
172
Matrix and arrays

About matrix
In the MATLAB environment, a matrix is a rectangular array of numbers. Special
meaning is attached to 1-by-1 matrices, which are scalars, and to matrices with
only one row or column, which are vectors.

think of everything as a matrix

Where other programming languages work with numbers one at a time, MATLAB
allows you to work with entire matrices quickly and easily

Albrecht Durer magical square matrix :


173
Matrix and arrays
Entering matrix
To enter Drers matrix, simply type in the Command Window
A = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1]

Separate the elements of a row with blanks or commas.


Use a semicolon ; to indicate the end of each row.
Surround the entire list of elements with square brackets [ ]

MATLAB displays the matrix you just entered:


A=
16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1

Once you have entered the matrix, it is automatically remembered in the MATLAB
workspace. You can refer to it simply as A.
>> A
Note that semicolon ; at the end of a Matlab command does not display its result
>> A; %does not display the matrix
Text placed after % in a command line is not interpreted
174
Matrix and arrays

special properties of a magic square : summing its elements.


If you take the sum along any row or column, or along either of the two main diagonals,
you will always get the same number. Let us verify that using MATLAB.

>> sum(A)
MATLAB replies with
ans =
34 34 34 34
It is the sum along each column : Matlab has a preference for working with the
columns of a matrix
Note that when an output variable is not specified, MATLAB uses the variable ans,
short for answer

One way to get the row sums is to transpose the matrix


>> sum(A')'
MATLAB replies with
ans =
34
34
34
34
175
Matrix and arrays

The apostrophe operator (e.g., A') performs a complex conjugate transposition

It flips a matrix about its main diagonal, and also changes the sign of the imaginary
component of any complex elements of the matrix

The dot-apostrophe operator (e.g., A.'), transposes without affecting the sign of
complex elements.

>> sum(diag(A))
MATLAB replies with
ans = 34

For the antidiagonal :


>> sum(diag(fliplr(A)))
MATLAB replies with
ans = 34

fliplr stands for flip a matrix from left to right


176
Matrix and arrays

Subscripts :
The element in row i and column j of A is denoted by A(i,j)
>> A(1,4) + A(2,4) + A(3,4) + A(4,4)
MATLAB replies with
ans = 34

To use the value of an element outside of the matrix, it is an error:


>> t = A(4,5)
Index exceeds matrix dimensions

Conversely, if you store a value in an element outside of the matrix, the size increases
to accommodate the newcomer:
>> X = A;
X(4,5) = 17
MATLAB replies with
X=
16 3 2 13 0
5 10 11 8 0
9 6 7 12 0
4 15 14 1 17
177
Matrix and arrays

It is also possible to refer to the elements of a matrix with a single subscript, A(k)
In which case the array is regarded as one long column vector formed from the
columns of the original matrix.

A(8) is another way of referring to the value stored in A(4,2). Matlab replies with 15

The Colon Operator


1:10 is a row vector containing the integers from 1 to 10:
1 2 3 4 5 6 7 8 9 10

To obtain non unit spacing, specify an increment. For example, 100:-7:50 is


100 93 86 79 72 65 58 51

0:pi/4:pi is 0 0.7854 1.5708 2.3562 3.1416


178
Matrix and arrays

The Colon Operator


Subscript expressions involving colons refer to portions of a matrix:
>> sum(A(1:4,4)) computes the sum of the fourth column

Tricks :
The colon by itself refers to all the elements in a row or column of a matrix
sum(A(:,4 )) computes the sum of the fourth column

end refers to the last row or column, so


sum(A(:,end )) computes also the sum of the fourth column

B = magic(4) produces (magic is a Matlab built-in function):


B = 16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
To produce the same matrix as Drer painting, column 2 and 3 have to be exchanged :
>> A = B(:,[1 3 2 4])
179
Expressions

Variables
Matlab does not require any type declarations or dimension statements.

When Matlab encounters a new variable name, it automatically creates the variable and
allocates the appropriate amount of storage.
If the variable already exists, Matlab changes its contents and, if necessary, allocates
new storage.

MATLAB is case sensitive

Tricks :
Choose long variable name
180
Expressions

Numbers
Some examples of numbers are :
3 -99 0.0001
9.6397238 1.60210e-20 6.02252e23
1i -3.14159j 3e5i

All numbers are stored internally using the long format specified by the IEEE floating-
point standard. Floating-point numbers have a finite precision of roughly 16 significant
decimal digits and a finite range of roughly 10-308 to 10+308

Tricks :
The section Avoiding Common Problems with Floating-Point Arithmetic gives a few of
the examples showing how IEEE floating-point arithmetic affects computations in Matlab
181
Expressions

Operators
Expressions use familiar arithmetic operators and precedence rules.
+ Addition
- Subtraction
* Multiplication
/ Division
\ Left division (described in Linear Algebra in the MATLAB documentation)
^ Power
' Complex conjugate transpose
( ) Specify evaluation order

Several special functions provide values of useful constants :


pi 3.14159265...
i Imaginary unit,
j Same as i
eps Floating-point relative precision,
realmin Smallest floating-point number,
realmax Largest floating-point number,
Inf Infinity
NaN Not-a-number
182
Working with matrix

MATLAB software provides four functions that generate basic matrices.


zeros All zeros
ones All ones
rand Uniformly distributed random elements
randn Normally distributed random elements

Examples :
>> Z = zeros(2,4)
Z=0000
0000
>> F = 5*ones(3,3)
F=555
555
555
>> N = fix(10*rand(1,10))
N=9264874084
>> R = randn(4,4)
R = 0.6353 0.0860 -0.3210 -1.2316
-0.6014 -2.0046 1.2366 1.0556
0.5512 -0.4931 -0.6313 -0.1132
-1.0998 0.4620 -2.3252 0.3792
183
Expressions

The load function


The load function reads binary files containing matrices generated by earlier Matlab
sessions, or reads text files containing numeric data.

The text file should be organized as a rectangular table of numbers, separated by


blanks, with one row per line, and an equal number of elements in each row.

The save function


The workspace does not persist after you end the MATLAB session. To save the
workspace to a file that can be read during a later MATLAB session, use the save
function which craetes a binary file called a MAT-file, which has a .mat extension.

>> save FILENAME X saves only X


>> save FILENAME X Y Z saves X, Y, and Z.
The wildcard '*' can be used to save only those variables that match a pattern
184
Expressions

M-files
You can create your own matrices using M-files, which are text files containing
Matlab code. Use the Matlab Editor or another text editor to create a file containing
the same statements you would type at the Matlab command line. Save the file
under name that ends in .m.

To execute the successive commands of the M-file, you have just to type the name
of the file after the Matlab prompt.
185
Arrays

Operators
The list of operators includes
+ Addition
- Subtraction
.* Element-by-element multiplication
./ Element-by-element division
.\ Element-by-element left division
.^ Element-by-element power
.' Unconjugated array transpose

Array operations are useful for building tables. Suppose n is the column vector
>> n = (0:9)';
>> pows = [n n.^2 2.^n] builds a table of squares and powers of 2:
pows = 0 0 1
1 1 2
2 4 4
3 9 8
4 16 16
5 25 32
6 36 64
7 49 128
8 64 256
9 81 512
186
Graphics

Creating a new Matlab figure


The command >> figure creates a new Matlab figure
The command >> figure (N) creates a new Matlab figure numbered N

Creating a Plot
The plot function has different forms, depending on the input arguments. If y is a
vector, plot(y) produces a piecewise linear graph of the elements of y versus the
index of the elements of y. If you specify two vectors as arguments, plot(x,y)
produces a graph of y versus x.
Example
x = 0:pi/100:2*pi;
y = sin(x);
plot(x,y)
xlabel('x = 0:2\pi') % The characters \pi create the symbol
ylabel('Sine of x')
title('Plot of the Sine Function','FontSize',12)
187
Graphics

Plotting Multiple Data Sets in One Graph


Multiple x-y pair arguments create multiple graphs with a single call to plot (colours
automatically cycle)

Example
x = 0:pi/100:2*pi;
y = sin(x);
y2 = sin(x-.25);
y3 = sin(x-.5);
plot(x,y,x,y2,x,y3)
legend('sin(x)','sin(x-.25)','sin(x-.5)')

The command >> figure creates a new Matlab figure


The command >> figure (N) creates a new Matlab figure numbered N
188
Graphics

Creating a Plot
The plot function has different forms, depending on the input arguments. If y is a
vector, plot(y) produces a piecewise linear graph of the elements of y versus the
index of the elements of y. If you specify two vectors as arguments, plot(x,y)
produces a graph of y versus x.
Example
x = 0:pi/100:2*pi;
y = sin(x);
plot(x,y)
xlabel('x = 0:2\pi') % The characters pi create the symbol
ylabel('Sine of x')
title('Plot of the Sine Function','FontSize',12)
189
Graphics

Specifying Line Styles and Colors


It is possible to specify color, line styles, and markers (such as plus signs or circles)
when you plot your data using the plot command:
190
Graphics

Placing Markers at Every Tenth Data Point


Example
x1 = 0:pi/100:2*pi;
x2 = 0:pi/10:2*pi;
plot(x1,sin(x1),'r:',x2,sin(x2),'r+')

Graphing Imaginary and Complex Data


When the arguments to plot are complex, the imaginary part is ignored except when you
pass plot a single complex argument.

plot(Z) where Z is a complex vector or matrix, is equivalent to plot(real(Z),imag(Z))

Example
t = 0:pi/10:2*pi;
plot(exp(i*t),'-o')
axis equal
191
Graphics

Displaying Multiple Plots in One Figure


The subplot command enables you to display multiple plots in the same window or
print them on the same piece of paper.
Typing subplot(m,n,p) partitions the figure window into an m-by-n matrix of small subplots
and selects the pth subplot for the current plot. The plots are numbered along the first
row of the figure window, then the second row, and so on.

Example
t = 0:pi/10:2*pi;
[X,Y,Z] = cylinder(4*cos(t));
subplot(2,2,1); mesh(X)
subplot(2,2,2); mesh(Y)
subplot(2,2,3); mesh(Z)
subplot(2,2,4); mesh(X,Y,Z)
Programming 192
Avoid For loops
For loops are inefficient in Matlab because overhead of interpreting the code
The process to convert For loop could be refferd to as vectorizing : convert in a matrix-
vector operation
It is often necessary to form a matrix by repeating one or more values throughout.
Example
x=[1 3 4 6 8 9 2 ] % x is a length-7 row vector
X=ones(10,1)*x % X is a 10x7 matrix

Conditional Control if, else, switch

Loop Control for, while, continue, break

Creating functions

Exercise
Explain the following lines of Matlab code
A=randn(6,3)
B=A>0;
A=A.*(A>0)
Write a new function which replace the negative element of the matrix A by -2
Test the following commands : A=randn(6,3)
xy=find(A>0.5)
find function returns the list of indices where a condition is true

Das könnte Ihnen auch gefallen