TP TS 1en
TP TS 1en
TP TS 1en
Volume 1
Marie Chabert et Corinne Mailhes
Anne dEdition : 2010
1 TP Probabilits et Statistiques
1.1
1.1.1
1.1.2
1.1.3
12
1.1.4
Travail eectuer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
1.2
13
1.3
13
1.3.1
Thorme central-limite . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
1.3.2
Test de Kolmogorov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
1.3.3
Travail eectuer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
15
1.4.1
Triangle de Galton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
1.5
Test de Neyman-Pearson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
1.6
Annexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
1.6.1
17
1.6.2
17
1.6.3
18
1.4
2 TP Echantillonnage et Quantification
2.1
2.2
21
Rappels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
2.1.1
Echantillonnage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
2.1.2
22
2.1.3
Quantification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
2.1.4
29
Travail raliser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
2.3
2.2.1
Echantillonnage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
2.2.2
Quantification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
2.2.3
Restitution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
2.2.4
Signal de parole
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
2.2.5
Dmonstrations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
34
2.3.1
34
2.3.2
Echantillonnage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
2.3.3
Quantification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
3.2
3.3
3.4
3.5
Rappels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
3.1.1
37
3.1.2
38
39
3.2.1
39
3.2.2
40
Analyse spectrale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
3.3.1
Dirents estimateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
3.3.2
Intrt du zero-padding . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
3.3.3
42
3.3.4
42
Travail eectuer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
3.4.1
Autocorrlations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
3.4.2
Estimation spectrale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
44
3.4.3
47
47
3.5.1
47
3.5.2
Autocorrlations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48
3.5.3
Estimations spectrales . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48
4 Filtrage Numrique
4.1
4.2
37
51
51
4.1.1
Dfinition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51
4.1.2
52
4.1.3
53
53
Avant propos
4.2.1
4.3
Dfinition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
53
Travail eectuer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
54
4.3.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
54
4.3.2
Gabarit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
4.3.3
55
4.3.4
57
4.3.5
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
58
5 Initiation Matlab
59
5.1
Commandes daide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
59
5.2
Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
59
5.2.1
Construction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
59
5.2.2
Oprations lmentaires . . . . . . . . . . . . . . . . . . . . . . . . . . . .
61
5.2.3
62
5.2.4
Fonctions lmentaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
62
5.2.5
Fonctions matricielles . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
63
5.3
63
5.4
63
5.4.1
Boucles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
64
5.4.2
Test : instruction if
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
64
5.4.3
Relations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
65
5.4.4
Pause et break . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
66
Fichiers .m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
66
5.5.1
Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
66
5.5.2
Fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
66
5.5.3
67
5.5.4
Vectorisation et pr-allocation . . . . . . . . . . . . . . . . . . . . . . . . .
67
5.6
Graphiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
5.7
68
5.8
69
5.9
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
69
5.5
Avant propos
Avant-Propos
Un ensemble de logiciels de Travaux Pratiques pour le Traitement du Signal a t labor par les
chercheurs de lquipe Signal et Communication (SC) de lInstitut de Recherche en Informatique
de Toulouse (IRIT), galement membres du TSA (Laboratoire de Tlcommunications Spatiales
et Aronautiques). Les domaines de recherche abords par ce groupe de chercheurs sont varis :
analyse spectrale, classification et reconnaissance des formes, compression de donnes, traitement
statistique du signal, tlcommunications spatiales... Pour plus de renseignements, on peut se
reporter aux sites Web :
http : //www.irit.fr/ Equipe SC
http : //www.tesa.prd.f r
Le Traitement du Signal ne doit pas tre vu seulement de faon thorique, au niveau des cours
et des Travaux Dirigs ; le Traitement du Signal est une matire vivante, actuellement en plein
essor, avec des applications de plus en plus nombreuses, dans des domaines trs varis. Donnons
deux exemples dtudes eectues au SIC dans le cadre de doctorats.
Une premire tude concerne le systme daide latterrissage des avions (ILS : Instrument
Landing System). Ce systme, adopt internationalement par lAviation Civile, utilise pour sa
partie radioalignement de piste une bande de frquences VHF qui est, depuis quelques annes,
trs vulnrable des brouilleurs externes, comme les radios FM, les brouilleurs industriels etc...
Il est trs important davoir une connaissance sur ces brouilleurs, aussi le Service Technique de
la Navigation Arienne a-t-il suscit une tude qui a fait lobjet dune thse. Le problme a t
abord laide des mthodes de Traitement du Signal. Le signal quon dsire conserver est un
signal de faible puissance (le brouilleur) par rapport au signal ILS utilis latterrissage qui doit
tre estim, puis rejet le plus parfaitement possible afin de ne pas nuire lidentification du
brouilleur. Ce travail a mis en jeu des mthodes destimation et de rjection des deux sinusodes
qui constituent le signal ILS, puis des mthodes de segmentation et de classification permettant
de reconnaitre les brouilleurs.
Une deuxime application relve du domaine biomdical. Lusage de llectromyographie
(EMG) en tant quindicateur de ltat du systme neuromusculaire remonte la fin du XIXme
7
Avant propos
sicle. Cette technique est aujourdhui trs importante dans la dtection et le suivi datteintes
nerveuses ou musculaires. Il sagit dobserver lactivit lectrique mise lors dune contraction
naturelle du muscle. Pendant longtemps, ces signaux taient recueillis au moyen dune lectrode quon piquait dans la masse musculaire du patient. Outre laspect traumatisant de la
mthode, le diagnostic savrait parfois dicile. Do lide dutiliser des lectrodes de surface,
nullement erayantes pour le malade. Malheureusement, linspection visuelle du signal recueilli
nest pas susante pour transmettre la caractrisation dune pathologie neuromusculaire. Les
mthodes de Traitement du Signal, en particulier les mthodes danalyse spectrale, de modlisation paramtrique et de classification, ont conduit llaboration dun outil daide au diagnostic
pour des signaux EMG recueillis en surface.
Pour mettre en vidence cet aspect application pratique du Traitement du Signal, les chercheurs
du SIC ont dcid de crer un ensemble de Travaux Pratiques, venant complter lenseignement
du Traitement du Signal de lENSEEIHT.
En deuxime anne, sont prvus quatre TP illustrant les cours de Thorie du Signal (TS)
et de Traitement Numrique du Signal (TNS). Le premier TP TS sintresse aux probabilits lmentaires, le deuxime traite de lchantillonnage et de la quantification. Le
premier TP TNS sintresse au calcul des fonctions de corrlations et des densits spectrales
de puissance et le deuxime au filtrage numrique.
En troisime anne, les TP sont plus spcifiques : deux TP sur lestimation paramtrique et
non paramtrique (cours de Reprsentation et Analyse des Signaux et de Modlisation
Paramtrique) et un TP sur le filtrage adaptatif (cours de Traitement Adaptatif ).
Ces TP ont t organiss autour de logiciels MATLAB. Ces logiciels ont t conus pour tre
utiliss partir de menus droulants, vitant lutilisateur de se plonger dans la lourde tche
de la programmation.
Des indications de programmation Matlab, donnes en fin de chaque TP, associes une initiation Matlab donne en annexe, permettent de reprogrammer facilement certaines fonctionnalits
des logiciels. Ceci peut constituer une aide la ralisation des projets Matlab de deuxime et
troisime anne.
Chapitre 1
TP Probabilits et Statistiques
Lancer prob_stat sous Matlab.
1.1
1.1.1
Comment obtenir un estimateur de la loi de probabilit dune variable alatoire discrte partir
de lhistogramme de N ralisations de cette variable? En dduire un estimateur de la fonction
de rpartition.
A laide du logiciel, observer les performances de ces estimateurs en fonction du nombre de
ralisations N pour les variables alatoires :
uniforme sur {1, ..., P 1}
binomiale B(P 1 = n, P 2 = p)
de Poisson de paramtre = P 1.
Le bouton OK permet de gnrer N nouvelles ralisations de la variable alatoire. Noter les
moments estims en fonction de N (moyenne et variance) et comparer la thorie.
1.1.2
La probabilit pour que la variable (v.a.) X soit comprise entre x et x + dx peut tre approche,
pour dx petit, par p(x)dx, p(x) tant la densit de probabilit de la v.a. X. La probabilit quune
9
10
(m+1)q
p(x)dx
mq
Considrons une fonction reprsente graphiquement sur un boulier. Sur ce boulier sont places
des billes qui reprsentent plus ou moins finement la fonction : les tiges peuvent tre assez
rapproches et les billes assez petites pour donner une impression de continuit selon les deux
axes de coordonnes.
Si on place ce boulier dans le plan vertical et quensuite, on lui fait subir une rotation de 90
dans ce plan vertical, les billes vont glisser le long des fils et on aura le nombre de billes sur
chaque fil, image (grossire bien sr) de la densit de probabilit. Cest exactement lopration
que lon ralise lorsquon fait lhistogramme damplitude. Cest ce que nous nous proposons de
faire dans ce T P : utiliser lhistogramme pour estimer la densit de probabilit dune variable
alatoire.
Soit Z(t) la variable indicatrice dfinie par :
x
,x +
Z(t) = 1 si X(t) x
2
x
Z(t) = 0 si X(t)
/ x
,x +
2
x
2
x
2
x
x
= P [Z (t) = 1] = P X(t) x
,x +
2
2
On obtient finalement :
E {Z (t)}
= p (x) x si x susamment petit
Estimer la densit de probabilit revient construire un estimateur de moyenne de la variable
indicatrice. On dfinit des classes, cest--dire que laxe des y est divis en intervalles de mme
11
largeur x. On note Zi (t) la variable dfinie de la mme faon que Z(t) sur lintervalle n i.
Lestimateur habituel de la moyenne de cette v.a. Zi (t) est :
N
1 X
Nx
Zi (t) =
N
N
t=1
minimale et maximale prises par la variable alatoire sur les ralisations considres et le nombre
dintervalles (ou nombre de classes) permettent de dterminer la valeur de x.
Un estimateur est caractris par son biais et sa variance.
Soit b
un estimateur dun paramtre . Le biais de cet estimateur est dfini par :
n o
biais () = E b
En dautres termes, le biais reprsente lerreur systmatique que lon commet lorsquon estime .
La variance de b
permet de mesurer la vitesse de convergence de b
vers lorsque N augmente.
Un estimateur asymptotiquement sans biais
n o
=
lim E b
n o
=0
lim var b
est convergent. Etudions les proprits de lestimateur de la densit de probabilit que nous
avons dfini, pb(x). Pour cela, calculons la moyenne de la variable indicatrice Z(t) :
Z x+ x
2
p(u)du
E {Z(t)} =
x x
2
Pour x, largeur dune classe de lhistogramme susamment petite et p(x) rgulire, par un
dveloppement en srie de Taylor, on a :
x2
p(x) x
E {Z(t)} p(x) +
24
inverse de x.
12
1.1.3
Pour estimer la fonction de rpartition F, on considre une autre variable indicatrice Z(t) telle
que :
Z(t) = 1 si X(t) x
Z(t) = 0 si X(t) > x
Alors, on a :
E {Z(t)} = F (x)
Lestimateur de la fonction de rpartition est un estimateur de moyenne dans le cas dchantillons
indpendants. Sa variance est telle que :
n
o
1
var Fb(x) F (x) (1 F (x))
N
Cet estimateur est non biais et possde une variance qui est minimale pour :
F (x) 0 et F (x) 1
Remarquons que les estimateurs de la densit de probabilit et de la fonction de rpartition ont
tous les deux une variance en 1/N.
1.1.4
Travail eectuer
13
sont estimes sur un nombre de ralisations quil est galement possible de modifier. Le programme trace la moyenne (en vert), la moyenne plus ou moins lcart type (en magenta) ainsi
que la densit de probabilit thorique (en rouge). Observer les proprits de lestimateur en
fonction du nombre de classes Nc et du nombre de ralisations de la variable alatoires N .
Estimation de la fonction de rpartition
Dterminer la fonction de rpartition de la gaussienne. Observer le biais et la variance de
cet estimateur (utiliser la fonction superposition des tracs pour superposer plusieurs
ralisations.
Observer la fonction de rpartition dune variable alatoire uniformment rpartie sur [0, 1].
1.2
1.3
1.3.1
et de variance 2 . On pose
SK
1 X
=
Xk
K
k=1
alors
lim
K+
SK m
en loi
= N (0, 1)
cest--dire que lon sait construire une loi normale centre rduite partir de variables alatoires de nimporte quelle loi indpendantes et de mme loi. Ce thorme est trs puissant et
14
1.3.2
Test de Kolmogorov
Le test de Kolmogorov permet de dcider (avec une marge derreur donne) si une variable
alatoire X suit une loi de fonction de rpartition F (x). Le droulement du test est le suivant :
1) Estimation de la fonction de rpartition Fb(x) partir de K observations xk k = 1, ..., K
de la variable alatoire X.
donne dans la table de Kolmogorov est suprieure max . Si cest le cas, on dcide que X suit
la loi de fonction de rpartition F (x) avec un risque derreur %.
Rappelons la notion de risque lorsquon fait un test dhypothse H0 contre H1 : 2 risques sont
dfinis :
= P [rejeter H0 sachant H0 vraie]
= P [accepter H0 sachant H0 fausse]
1.3.3
Travail eectuer
somme de K variables alatoires uniformment rparties sur lintervalle [0, 1], X1 ... XK . Soit
SK la variable telle que :
SK =
K
1 X
Xj
K
j=1
15
Calcul par le logiciel de lcart maximum entre cette fonction de rpartition thorique et la
fonction de rpartition estime de YN .
Comparaison avec lcart maximal donn dans les tables.
1.4
1.4.1
Il sagit dun plan inclin hriss de clous rgulirement disposs sur n lignes horizontales, la
ki`eme ligne comportant k clous. Une bille, place au sommet du triangle, oblique, chaque ligne,
vers la droite ou la gauche avec une probabilit
numrotes de
n2
n
2 qui
1
2.
n=4
-n/2
n/2
Pn
j=1 Xj
n
2
16
vK
VK =
K
X
Xk2
k=1
suit une loi du Chi-Deux K degrs de libert. La moyenne et la variance de cette variable
alatoire sont :
E[VK ] = K
var[VK ] = 2K
Gnrer des signaux de lois Chi-Deux de degrs croissant (bouton OK). Comparer les moyennes
et les variances estimes aux valeurs thoriques. Que se passe-t-il lorsque le degr du Chi-Deux
devient trs grand. A partir de quel degr le test de Kolmogorov accepte lhypothse gaussienne?
Box-Muller
Dans le menu distribution, le choix Box-Muller permet de gnrer partir de deux variables
alatoires indpendantes de mmes lois uniformes sur ]0, 1] U et V la variable alatoire X de
la faon suivante :
X=
2 ln U cos (2V )
1.5
Test de Neyman-Pearson
1.6. Annexes
17
o s() est le seuil de dcision, fonction de la probabilit de fausse alarme . Ce test permet de
maximiser la puissance du test = 1 . Dans ce cas, on obtient :
n
X
Xi > ()
i=1
1.6
Annexes
1.6.1
1.6.2
18
b+a
2
1
ba
(b a)2
12
1
(x m)2
f (x) = exp
2 2
2
f (x) =
1.6.3
n
2
La table suivante donne lcart maximal thorique, kolmo , entre fonctions de rpartition empirique et thorique pour accepter lhypothse H0 avec un risque de 5 ou 1%, en fonction de
N c (nombre de points de calcul de la fonction de rpartition, cest--dire nombre de classes de
lhistogramme). Si lcart maximal mesur max est infrieur kolmo , on accepte lhypothse
H0 avec un risque .
Nc
= 5%
= 1%
0.5633
0.6685
10
0.4087
0.4864
15
0.3375
0.4042
20
0.2939
0.3524
25
0.2639
0.3165
30
0.2417
0.2898
40
0.2101
0.2521
50
0.1884
0.2260
60
0.1723
0.2067
70
0.1597
0.1917
80
0.1496
0.1795
90
0.1412
100
0.1340
Cette table nest valable que pour Nc infrieur 100. Pour Nc plus grand, on sait calculer
P (max |Fb F | > kolmo ) sous H0 (Vladimir N.Vapnik, The Nature of Statistical Learning
1.6. Annexes
19
k=+
X
k=1
On mesure tout dabord max = max |Fb F |, cart maximal entre la fonction de rpartition
k=+
X
k=1
Or cette probabilit est une fonction dcroissante de max . Donc si Pmax > , on peut en
dduire que max < kolmo . Il nest donc pas ncessaire de calculer kolmo pour prendre la
dcision. En eet, on accepte lhypothse H0 si :
k=+
X
k=1
20
Chapitre 2
TP Echantillonnage et Quantification
2.1
Rappels
2.1.1
Echantillonnage
Lchantillonnage consiste reprsenter un signal temps continu s (t) par ses valeurs s (nTe )
des instant multiples de Te , Te tant la priode dchantillonnage. La condition de
Shannon permet dchantillonner un signal sans perte dinformation aucune perte dinformation
si la frquence dchantillonnage fe =
1
Te
se (t) = s (t)
+
X
(t nTe )
Se (f ) = S (f )
+
+
1 X
1 X
n
n
=
f
S f
Te
Te
Te
Te
21
22
Spectre du signal
-Fmax
Frquence
Fmax
-Fe
-Fmax 0
Fmax Fe
2Fe
zone de repliement
Lchantillonnage la priode Te a donc introduit une priodicit du spectre du signal chantillonn, de priode Fe . Lorsquon observe des spectres de signaux chantillonns, on prfre
remplacer les frquences (F ) en Hertz par des frquences normalises par rapport la frquence
dchantillonnage (Fe ) :
fe = F/Fe
Remarquons quaprs chantillonnage, le spectre entier du signal est disponible entre 0 et 1
en frquence normalise. En pratique, par raison de symtrie, on ne sintresse qu la partie
centrale entre 0 et 0.5 en frquence normalise.
2.1.2
Plusieurs mthodes dinterpolation existent pour restituer le signal entre deux points dchantillonnage
successifs. Entre deux points dchantillonnage situs entre kTe et (k + 1) Te , comment reconstituer le signal sb (kTe + )?
Par bloqueur :
x
b(kTe + ) = x(kTe )
0 Te
2.1. Rappels
23
(k-1)Te
kTe
0 Te
(k-1)Te
kTe
(k-1)Te
kTe
0 Te
24
Par filtrage
Aprs chantillonnage, le spectre du signal est :
Se (f ) = Fe
nZ
S(f nFe ),
Fe =
1
Te
Si x (t) est spectre born (FM , +FM ), et si la condition de Shannon est vrifie, on peut
restituer le signal par filtrage de faon ne rcuprer que le spectre dordre 0 :
S(f ) =
1
[Se (f )]n=0
Fe
Donc
S(f ) = Se (f )Hr (f )
o Hr (f ) est le filtre de restitution :
1
si f (FM , FM )
Fe
Hr (f ) = 0 si |f | Fe FM
Hr (f ) =
Hr(f)
-Fe
-FM
FM
Fe
1
F (f )
Fe e
sin (Fe t)
Fe t
s (t) =
X
k
sin
se (kTe )
Te
Te
(t kTe )
(t kTe )
2.1. Rappels
2.1.3
25
Quantification
La quantification consiste allouer aux chantillons un nombre fini de valeurs damplitude. Deux
grandeurs caractrisent un quantificateur : le nombre de niveaux et la dynamique de codage.
On distingue des quantificateurs uniformes (lcart entre chaque valeur quantifie est constant)
et non uniformes (lcart entre chaque valeur quantifie est variable) comme lillustre la figure
suivante.
sortie quantifie
Arrondi
Dynamique
entre
Quantificateur
uniforme
pas de quantification
sortie quantifie
Quantificateur
non uniforme
(loi logarithmique)
entre
e(t)
s(t)
sq(t)
Bruit de Quantification
26
Quantification uniforme
Le pas de quantification est alors constant et vaut :
q=
1
1
q s (t) n +
q alors sQ (t) = nq
si n
2
2
1
q
nq s (t) (n + 1) q alors sQ (t) = n +
2
Leurs caractristiques sont donnes sur la figure suivante. Dans les deux cas, le domaine de
quantification est symtrique par rapport zro.
sortie quantifie
Quantificateur
Uniforme type A
2q
q
-3q/2 -q/2
entre
q/2
3q/2
-q
5q/2
-2q
3q/2
-2q
-q
sortie quantifie
q/2
entre
-q/2
Quantificateur
Uniforme type B
2q
-3q/2
-5q/2
sont grandes par rapport au pas de quantification, cest--dire que la quantification est faite avec
susamment de finesse, et lorsque le signal nest pas crt, le signal derreur peut tre suppos
distribution uniforme, de densit de probabilit :
1
q
pe (x) 0
pe (x)
q q
pour x [ , ]
2 2
ailleurs
q2
12
2.1. Rappels
27
Nq
2 .
peut tre reprsente et il y a crtage du signal. Il sen suit une dgradation par distorsion
harmonique, par exemple si le signal est sinusodal.
Pour dfinir et calculer le rapport signal bruit de quantification, considrons un signal
sinusodal non crt et occupant la pleine chelle du quantificateur.
On appelle puissance crte Pc dun codeur la puissance du signal sinusodal ayant lamplitude
maximale Am admissible sans crtage :
Nq
Am =
2
1
Pc =
2
Nq
2
Quantification non uniforme : codage non linaire suivant une loi segmente
Le rapport signal bruit de quantification varie fortement avec le niveau du signal dans le cas de
la quantification uniforme. La quantification non uniforme vise maintenir lerreur relative
de quantification constante, quelle que soit lamplitude du signal alors que la quantification
uniforme introduit une erreur absolue maximum de 12 q.
lamplitude de lentre. Or ceci est incompatible avec la ncessit davoir un nombre fini de
niveaux de quantifications. En pratique, la quantification non-uniforme utilise une quantification
uniforme avec compression-extension : on ralise tout dabord une compression de la dynamique
du signal dans laquelle le signal x est transform en un signal y, puis une quantification uniforme
du signal y et finalement une extension (opration inverse de la compression) du signal quantifi.
La compression du signal x est destine amplifier les faibles amplitudes et minimiser
leet des fortes amplitudes. En pratique, deux caractrisitiques de compression (correspondant
28
y = sign (x)
- la loi :
y = sign (x)
Ln (1 + |x|)
Ln (1 + )
pour 1 x 1
S/B en dB
Loi linaire
(12 bits)
Loi linaire
(8 bits)
Loi A
2.1. Rappels
29
- 1 bit de signe
- 3 bits indiquant le numro de segments
- n autres bits pour coder le niveau o on se trouve dans le segment.
La dynamique du signal tlphonique est denviron 65dB, ncessitant 12 lments binaires
dans le cas dun codage linaire. Avec la compression de la loi A, le nombre de bits descend
8, ce qui signifie que n = 4 bits susent pour un codage correct du niveau des segments.
Approximation de la loi A laide de 13 segments :
1
alors
y = 16x
si 0 |x|
64
1
1
1
|x|
alors
y = 8x +
64
32
8
1
1
1
|x|
alors
y = 4x +
32
16
4
1
3
1
|x|
alors
y = 2x +
16
8
8
1
1
1
|x|
alors
y =x+
8
4
2
1
1
5
1
|x|
alors
y = x+
4
2
2
8
1
1
1
|x|
alors
y =x+
8
4
2
1
3
1
|x| 1
alors
y = x+
2
4
4
y
1
111
110
101
100
011
0.5
010
001
000
1
64
2.1.4
0
1
1
16
32
1
8
1
4
1
2
Le test de Kolmogorov permet de dcider (avec une marge derreur donne) si une variable
alatoire X suit une loi de fonction de rpartition F (x). Dans ce TP, il est utilis pour ltude
de la distribution de lerreur de quantification.
Le droulement du test est le suivant :
1) Estimation de la fonction de rpartition Fb(x) partir de K observations xk k = 1, ..., K
30
3) Pour un risque de premire espce donn (1% ou 5% gnralement) vrifier que la valeur
donne dans la table de Kolmogorov est suprieure max . Si cest le cas, on dcide que X suit
la loi de fonction de rpartition F (x) avec un risque derreur %. Rappelons la notion de risque
lorsquon fait un test dhypothse H0 contre H1 : 2 risques sont dfinis :
= P [rejeter H0 sachant H0 vraie]
= P [accepter H0 sachant H0 fausse]
Pour expliquer qualitativement le rle jou par les risques et , imaginons la situation suivante
o on eectue la surveillance militaire dun terrain. Prenons lhypothse H0 : il y a des
ennemis et lhypothse H1 : il ny a pas dennemis. Le risque est le risque de croire
quil ny pas dennemis et donc, de ne pas tirer alors quil y a eectivement des ennemis sur
le terrain... Dangereux!... Le risque est le risque de tirer en croyant quil y a des ennemis
alors quil ny a personne. Le second risque est moins important que le premier qui peut avoir
des consquences dsastreuses... Thoriquement, le rsultat dun test nest valable que si lon
prcise les valeurs des 2 risques. Le test de Kolmogorov, trs simple mettre en oeuvre, ne
prend malheureusement en compte que le risque de premire espce .
La table suivante donne lcart maximal thorique, kolmo , entre fonctions de rpartition
empirique et thorique pour accepter lhypothse H0 avec un risque de 5 ou 1%, en fonction
de N c (nombre de points de calcul de la fonction de rpartition, cest--dire nombre de classes de
lhistogramme). Si lcart maximal mesur max est infrieur kolmo , on accepte lhypothse
H0 avec un risque . Cette table nest valable que pour Nc infrieur 100. Pour Nc plus
grand, on sait calculer P (max |Fb F | > kolmo ) sous H0 (Vladimir N.Vapnik, The Nature of
k=+
X
k=1
On mesure tout dabord max = max |Fb F |, cart maximal entre la fonction de rpartition
k=+
X
k=1
Or cette probabilit est une fonction dcroissante de max . Donc si Pmax > , on peut en
dduire que max < kolmo . Il nest donc pas ncessaire de caluler kolmo pour prendre la
dcision. En eet, on accepte lhypothse H0 si :
k=+
X
k=1
31
Le calcul de cette probabilit sera eectu sous Matlab, la somme infinie pouvant tre approche
par une somme de 1 K trs grand (par exemple K = 1000).
2.2
Nc
= 5%
= 1%
0.5633
0.6685
10
0.4087
0.4864
15
0.3375
0.4042
20
0.2939
0.3524
25
0.2639
0.3165
30
0.2417
0.2898
40
0.2101
0.2521
50
0.1884
0.2260
60
0.1723
0.2067
70
0.1597
0.1917
80
0.1496
0.1795
90
0.1412
100
0.1340
Travail raliser
2.2.1
Echantillonnage
32
2.2.2
Quantification
33
2.2.3
Restitution
Gnrer N=100 points dun signal sinusodal de frquence 2100 Hz, chantillonn 100 000
Hz. Comparer les mthodes de restitution par bloqueur, interpolateur linaire, extrapolateur et
filtrage tant sur le plan temporel que sur le plan spectral.
Mmes questions lorsque le signal sinusodal est chantillonn 10 000 Hz.
Mmes questions pour un signal carr de frquence fondamentale 2100 Hz, chantillonn
100 000 Hz.
2.2.4
Signal de parole
Charger le fichier signal allo, fichier de parole. Observer le signal en temporel, remarquer le
caractre non stationnaire du signal.
Eectuer la densit de probabilit du signal et retrouver la validit apparente de lhypothse
de loi double exponentielle souvent nonce pour des signaux de parole.
Comparer la quantification uniforme et non uniforme (logarithmique) de ce signal nombre
de niveaux fix 8. En particulier, comparer la puissance de lerreur de quantification.
34
2.2.5
Dmonstrations
Si le TP se droule en salle TSI (B301), des dmonstrations peuvent tre faite par les enseignants
en traitement du signal et en traitement dimage.
Quantification de la parole
Sur le poste quip de haut-parleurs, on observera les eets de la quantification et du souschantillonnage sur les signaux de parole.
2.3
2.3.1
Pour connatre le mode dappel de ces fonctions, penser laide en ligne de Matlab : help nom
de la fonction ou lookfor mot.
fft : transforme de Fourier discrte
ifft : transforme de Fourier inverse
interp1q:
interpolation linaire
quantification uniforme du signal.
quantiz:
lin2mu:
conversion la loi .
mu2lin:
2.3.2
Echantillonnage
Gnration dune sinusode : Pour gnrer le signal obtenu aprs lchantillonnage dune
sinusoide de frquence 20 KHz chantillonne un rythme de 1 chantillon toute les 10 microsecondes, on peut procder soit en utilisant les frquences physiques :
N = 1000;
Te = 10*10^(-6);
fsin = 20*10^3;
temps = (0:N-1)*Te;
signal = sin(2*pi*fsin*temps);
soit en raisonnant directement en frquences normalises :
35
N = 1000;
Fe = 1/(10*10^(-6));
fsin_norm = 20*10^3/Fe;
indice = 0:N-1;
signal = sin(2*pi*fsin_norm*indice);
Visualisation de la densit spectrale de puissance : Le calcul et le trac de la densit
spectrale de puissance seront dtaills au cours du TP Corrlations et Spectres.
Linstruction de base pour raliser la transforme de Fourier discrte dun signal x est fft(x).
Les commandes suivantes permettent de tracer la densit spectrale de x soit en frquence normalise :
nfft = 2^nextpow2(N); %calcul de la puissance de 2 immdiatement suprieure N.
plot(linspace(0, 1, nfft), abs(fft(x, nfft)).2./nfft).
soit en frquence physique :
plot(linspace(0, Fe, nfft), abs(fft(x, nfft)).2./nfft).
Restitution : la commande y = kron(x, ones(1,Nrestit)); permet de restituer par bloqueur dordre 0 le signal x chantillonn Te. Le signal y rsultant est une version surchantillonne de x de priode dchantillonnage Te/Nrestit.
La commande interp1q permet de raliser linterpolation linaire (taper help interp1q);
La commande interp permet de gnrer un filtre passe-bas dinterpolation.
2.3.3
Quantification
Quantification uniforme : La fonction quantiz permet de raliser directement la quantification sous Matlab.
Etude statitique de lerreur de quantification : La fonction var donne une estimation de
la variance. Pour lestimation de la densit de probabilit et le test de Kolmogorov se reporter
au TP 1.
Quantification non uniforme selon la loi : voir les fonctions lin2mu, mu2lin et auwrite.
36
Chapitre 3
3.1
3.1.1
Rappels
Proprits des fonctions de corrlation
Signaux dterministes
Energie finie
Cxy ( ) =
37
x(t)y (t )dt
38
Puissance finie
1
T + T
Cxy ( ) = lim
x(t)y (t )dt
x(t)y (t )dt
Signaux alatoires
Cxy ( ) = E[x(t)y (t )]
Lorsque y = x on parle de fonction dautocorrlation (Cxx ( ) = Cx ( )).
3.1.2
Nk1
X
n=0
x(n)x(n + k) 0 k N 1
(3.1)
Lorsque k tend vers N 1 peu de termes interviennent dans le calcul de la moyenne alors que
le terme de normalisation reste gal
1
N.
lestimation : la corrlation est pondre par une fentre triangulaire. Ce premier estimateur
bb (k) est donc biais.
C
Pour liminer ce biais, un second estimateur peut tre dfini de la faon suivante :
bnb (k) =
C
Nk1
X
1
x(n)x(n + k) 0 k N 1
N k n=0
(3.2)
39
Le choix entre ces deux estimateurs se porte normalement sur lestimateur non biais mais,
pour les valeurs k proches de N, la variance de cet estimateur augmente considrablement ce
qui ntait pas le cas du prcdent estimateur. Dautre part, il peut tre intressant de choisir
lestimateur biais ce qui est quivalent prendre la fonction de corrlation multiplie par une
fentre temporelle triangulaire.
Remarque : Le calcul de ces deux estimateursl requiert de lordre de
N2
2
multiplications et
additions. Pour rduire le cot calculatoire, on peut utiliser un algorithme base de transforme
de Fourier rapide (FFT). En eet, les deux estimateurs ci-dessus reprsentent un facteur
multiplicatif prs la mme opration de convolution discrte x(k) x(k). Pour calculer cette
3.2
3.2.1
Par dtection, on entend dtection de prsence. Il ne sagit pas de retrouver la forme du signal
priodique mais de dtecter sa prsence, de savoir si ce signal existe ou non.
Soit x(n) le signal priodique de priode inconnue noy dans un bruit centr b(n) :
y(n) = x(n) + b(n)
La fonction dautocorrlation du signal y(n) scrit :
Cyy (k) = Cxx (k) + Cxb (k) + Cbx (k) + Cbb (k)
Si le bruit b(n) est indpendant du signal x(n), les intercorrlations Cxb (k) et Cbx (k) sont nulles
pour tout k. Si de plus la densit spectrale du bruit est absolument continue, on a :
lim Cbb (k) = 0
k+
Do :
Cyy (k) Cxx (k) lorsque k +
40
3.2.2
Considrons un filtre ou dune faon plus gnrale un systme linaire invariant dans le temps,
de rponse temporelle h(t) et de rponse frquentielle H(f ) (fonction de transfert). La relation
temporelle qui relie la sortie y(t) lentre x(t) est la suivante :
y(t) = x(t) h(t) =
x(u)h(t u)du
3.3
3.3.1
Analyse spectrale
Dirents estimateurs
41
x(t )
FFT
1
2
S$ x ( f ) =
X( f )
N
X( f )
Signal temporel
Priodogramme
C x ()
FFT
S$ x ( f ) = FFT (C x ( ))
Corrlogramme
Autocorrlation
(paire)
Ces deux catgories de mthodes mettent en oeuvre la transforme de Fourier discrte dfinie
par :
X(f ) =
N1
X
x(n)ei2f n
n=0
3.3.2
k
Nf
k = 0, , Nf 1
Intrt du zero-padding
sin((f f0 )N )
ei((f f0 )(N1))
sin((f f0 ))
sin((f
+ f0 )N )
i((f +f0 )(N1)+)
+e
sin((f + f0 ))
A
2
1
N,
et le rsultat du
calcul est reprsent sur seulement N points. Ceci donne 1 point par pseudo-priode et cest
trop peu pour que, visuellement, on voit clairement apparatre le noyau de Dirichlet centr sur
la frquence dintrt. Afin damliorer la visualisation du rsultat de la TFD, il faut prendre
42
3.3.3
3.3.4
A2
cos(2fk)
2
Cx (k) = 2 (k)
(3.3)
(3.4)
1
A2
|X(f )|2 2 +
N (sinc2 (N (f f0 )) + sinc2 (N (f + f0 )))
N
4
(3.5)
sin(x)
x .
A2
2
4 N +
P uissance de la sinusoide =
P uissance du bruit = 2
A2
2
(3.6)
A2
N + b2
4
b2
3.4
43
Travail eectuer
3.4.1
Autocorrlations
44
(SN R = 7 dB). Pour cela, sachant que les sinusodes gnres sont damplitude A = 2
(i.e. de puissance unit), rgler le niveau de bruit ncessaire en utilisant la dfinition du SNR
donne par (3.6). Observer le signal et lestimation biaise de son autocorrlation (ne pas oublier dutiliser le bouton "ok" pour gnrer plusieurs ralisations du processus). Montrer que
lestimation de lautocorrlation permet de retrouver les caractristiques du signal : prsence
dun signal priodique, puissances du sinus et du bruit.
3.4.2
Estimation spectrale
Priodogramme
Gnrer une sinusode (N = 128, f = 0.134). Observer le priodogramme en utilisant une taille
de FFT = 128 (en chelle linaire et logarithmique).
Remarque : On rappelle que pour le priodogramme, le seul paramtre fixer est la taille de
la FFT.
Recommencer en faisant du zero-padding avec une taille de FFT de 4096. Expliquer les
dirences observes : lexpression thorique de la DSP est donne par (3.5) et des rappels sur
le zero-padding sont fournis au paragraphe 3.3.2). Retrouver les caractristiques du signal :
frquence et amplitude du sinus.
Charger le fichier quisuisje0.txt et cliquer sur le bouton "signal" pour observer le signal en
temporel. En faire lanalyse spectrale en utilisant le priodogramme : retrouver les caractristiques du signal. Ne pas oublier dobserver lestimateur spectral obtenu en chelle log ! Que
reprsente la DSP la frquence f = 0 ?
45
Priodogramme modifi
Pour une sinusode (N = 100, f = 0.25), analyser et comparer les eets des direntes fentres en
utilisant le priodogramme modifi. Classer-les en fonction de leur pouvoir rduire lamplitude
des lobes secondaires (utiliser la reprsentation en chelle logarithmique et le bouton hold ).
Remarque : Pour le priodogramme modifi, les paramtres choisir sont le type de fentre
dapodisation et la taille de la FFT.
Corrlogramme
Gnrer une sinusode (N = 100, f = 0.134). Observer le corrlogramme avec lestimateur de
la corrlation non biaise en utilisant une taille de FFT = 4096. Comparer avec le corrlogramme utilisant la corrlation biaise. Quen concluez-vous ? Comparer corrlogramme biais
et priodogramme (utiliser le bouton "hold").
Remarque : Pour le corrlogramme, les seuls paramtres choisir sont la nature de lestimation
de la corrlation (biaise ou non biaise) et la taille de la FFT.
Blackman-Tukey
Pour le mme signal, utiliser le corrlogramme de Blackman-Tukey.
Remarque : Pour la mthode de Blackman-Tukey, il est prconis de lutiliser sur la corrlation
biaise afin de garantir une DSP positive. Toutefois, il est intressant de voir ce quon obtient
en utilisant lestimation de la corrlation non biaise. Cest pourquoi les paramtres choisir
pour cette mthode sont la nature de lestimation de la corrlation (biaise ou non biaise),
le type de fentre dapodisation, la taille de la fentre dapodisation (attention, applique
sur la corrlation qui est de taille double par rapport au signal) et la taille de la
FFT.
Faire varier tous les paramtres afin den observer leur eet (en particulier sur la positivit de
la DSP estime et sur les lobes secondaires des fentres spectrales quivalentes) : choix du type
de corrlation, choix de la fentre, choix de la taille de la fentre.
46
Gnrer 1000 chantillons dune sinusode bruite (bruit blanc additif) de frquence 0.134
(SN R = 7 dB). Comparer lanalyse spectrale obtenue avec le priodogramme modifi et avec
Priodogramme de Bartlett
Gnrer un bruit blanc (N = 4000) de variance 2 = 5. Observer son priodogramme en utilisant
une taille de FFT = 8192. Comparer le rsultat obtenu lexpression thorique de la DSP dun
bruit blanc. En remarquant que la fentre "informations et mesures" fournit la valeur moyenne
de la DSP ainsi que sa variance, expliquer la dirence entre la thorie et lestimation obtenue
de cette DSP. Ne pas hsiter utiliser le bouton "ok" pour gnrer plusieurs ralisations du
processus alatoire.
Pour ce mme type de signal, utiliser le priodogramme de Bartlett en choisissant des tailles
de fentre direntes : 1000 et 100 par exemple. Quobserve-t-on ?
Remarque : Pour le priodogramme de Bartlett, les paramtres choisir sont la taille de la
fentre danalyse et la taille de la FFT.
Lutilisation de la mthode de Bartlett se rvle intressante sur le bruit blanc mais elle
saccompagne dun inconvnient. Afin de le mettre en vidence, recommencer la mme exprience
sur un signal constitu dun sinus bruit (N = 4000, f = 0.2) en conservant la mme variance de
bruit. Faire varier la taille de la fentre danalyse de 4000, 1000 puis 100. Pour ce type de
signal, le logiciel nache pas la valeur moyenne et la variance du spectre mais la variance peut
tre observe en se plaant en chelle logarithmique. En dduire les avantages et inconvnients
de la mthode de Bartlett.
Priodogramme de Welch
Pour amliorer la mthode de Bartlett, on peut utiliser le priodogramme de Welch qui permet
dutiliser une fentre danalyse et un recouvrement entre les tranches.
Remarque : Pour le priodogramme de Welch, les paramtres choisir sont la taille et le type
de fentre danalyse, le recouvrement (indiqu en % ici) des tranches et la taille de la FFT.
Gnrer un bruit blanc de N = 50000 chantillons (beaucoup dchantillons !), de variance
2
= 5. Choisir une fentre danalyse rectangulaire de taille 1000 et une taille de la FFT de
8192.
47
3.4.3
Aprs avoir tudi les estimateurs de corrlation et de DSP, analyser les signaux dengrenage cits
au dbut du TP. Donner une description (sommaire) de ces signaux. A votre avis, pourrait-on
distinguer ces deux signaux et donc signaler lusure des engrenages partir de lanalyse spectrale
?
3.5
3.5.1
randn :
recentre le spectre
ifft :
xcorr :
autocorrlation
specgram :
psd :
densit spectrale de puissance Pour connatre le mode dappel de ces fonctions, penser
48
3.5.2
Autocorrlations
3.5.3
Estimations spectrales
cet axe porte alors par dfaut les indices des lments du vecteur trac (ici 0,1,2,...
nfft-1).
Pour interprter correctement le trac de la Transforme de Fourier Discrte, il est ncessaire de graduer laxe des x, par exemple en frquences normalises par rapport la frquence
dchantillonnage :
axe_des_x = linspace(0, 1, nfft)
plot(axe_des_x, abs(fft_de_x))
Lachage du spectre peut tre galement recentr autour de zro laide de la commande
49
faire une FFT de chacune des tranches (avec du zero-padding et une fentre dapodisation) et
prendre le module au carr de la FFT,
Ces oprations peuvent tre ralises avec la fonction pwelch (voir le help sous Matlab).
Corrlogramme
Il sut dutiliser successivement xcorr et fft.
50
Chapitre 4
Filtrage Numrique
Ce TP est consacr ltude des filtres Rponse Impulsionnelle Finie (RIF) et des Filtres
Rponse Impulsionnelle Infinie (RII). Dans le cas des filtres RIF, tout chantillon du signal en
sortie est la somme pondre dchantillons du signal en entre. Les filtres RIF sont frquemment
dsigns par le terme de filtres non-rcursifs, car ils ne prsentent pas de boucle de raction de
la sortie vers lentre. Ils peuvent tre synthtiss directement par un dveloppement en srie de
Fourier du gabarit idal. Le rsultat obtenu peut tre ensuite optimis grce la mthode des
moindres carrs ou lalgorithme de Remez. La deuxime partie du TP est consacre ltude
des filtres RII ou filtres rcursifs. La synthse de ces filtres sappuie sur les fonctions modles du
filtrage analogique (Tchebychev, Butterworth,...) par lintermdiaire de la transforme bilinaire,
transformation conforme permettant de passer du plan numrique au plan analogique.
Le but du TP est de comparer pour un gabarit donn les rsultats des direntes synthses.
4.1
4.1.1
Dfinition
Ce sont des systmes rponse impulsionnelle finie, de fonction de transfert H(z), dont les
coecients h(k) sont tels que :
h (k) 6= 0 pour k [0, N 1]
h (k) = 0 sinon
On obtient lexpression de la fonction de transfert dans le plan des z :
H (z) =
N1
X
k=0
51
h (k) z k
52
Le caractre non rcursif apparat clairement sur lquation de rcurrence liant lentre et la
sortie du filtre :
y (n) =
N1
X
k=0
h (k) x (n k)
La mthode de synthse des filtres RIF permet dassurer une phase linaire, caractristique
recherche dans de nombreuses applications. Ceci implique une symtrie de la rponse impulsionnelle. En eet, on veut :
H (f ) = R (f ) ej(f )
avec R (f ) R et (f ) = 2f pg . La rponse impulsionnelle dun tel filtre scrit :
Z +
Z +
j(f ) j2f t
R (f ) e
e
df =
R (f ) ej2f (t pg ) df
h (t) =
Rp (f ) cos (2f t) df = h ( pg t)
Cette relation fait donc apparatre la symtrie de la rponse impulsionnelle par rapport au point
t = pg de laxe des temps.
4.1.2
2
e
e
H ej2f ej2f k dfe
h (k) =
12
3) Multiplication par une fentre temporelle W (k) de longueur N (ordre du filtre) avec W (k) = 0
pour |k| > N,
d
fe
N 1
1
=
=
e
2 df
2
4.1.3
53
Uen fois la synthse obtenue par la mthode classique de synthse RIF par fentre, on peut
optimiser le filtre obtenu.
La premire mthode doptimisation consiste minimiser au sens des moindres carrs la
distance entre le gabarit H (f ) dsir et le gabarit du filtre obtenu par la mthode prcdente.
Lobjectif de la seconde mthode doptimisation est dobtenir la meilleure approximation du
gabarit H (f ) prsentant des ondulations damplitude constante. Elle utilise une technique
itrative : lalgorithme de Remez.
4.2
4.2.1
Dfinition
Ces systmes sont caractriss par des rponses impulsionnelles de dure infinie : les coecients
h(k) sont non nuls sur lintervalle [0, +[ . Ceci est ralis par la prsence de ples dans la
fonction de transfert du filtre :
H (z) =
p1
X
bk z k
k=0
m1
X
ai z i
i=0
m1
X
i=1
ai y (n i) +
p1
X
k=0
bk x (n k)
La condition de stabilit impose que les ples de H(z) soient lintrieur du cercle unit. La
rponse impulsionnelle infinie permet dobtenir un filtrage plus slectif quun filtre RIF pour
une quantit de calcul infrieure. La linarit de la phase est, en thorie, impossible. Cependant
on peut lobtenir approximativement dans une bande limite.
Synthse
On calcule tout dabord le filtre analogique passe-bas qui lui correspond, puis on synthtise ce
filtre analogique. Enfin, on revient au filtre numrique par la transformation bilinaire. Les
mthodes classiques mettent en oeuvre des transformations partir des quations de filtres
analogiques connus (Butterworth, Tchebychev...). Le passage entre les dirents types de filtre (Passe-Bas, Passe-Haut, Passe-Bande et Coupe-Bande) peut se faire dans le plan des p
54
la transformation bilinaire, fait correspondre le plan des z au plan des p suivant la relation :
p=
2 1 z 1
Te 1 + z 1
La synthse dun filtre RII se fait donc selon les tapes suivantes :
1) Synthse du filtre analogique passe-bas de pulsation de coupure c :
|H ()|2 =
Butterworth dordre n :
Tchebychev dordre n :
1+
1
2n
1
|H ()|2 =
2
1 + Tn2 ()
fn
Fe
tan
f =
Fe
avec f frquence analogique, fn frquence numrique et Fe la frquence dchantillonnage.
4.3
Travail eectuer
4.3.1
Introduction
Le TP permet de synthtiser des filtres numriques RIF et RII. Les filtres RIF peuvent tre
calculs par un dveloppement en srie de Fourier avec direntes fentres (rectangulaire, triangulaire, de Hamming et de Kaiser) et par deux mthodes doptimisation (par les moindres
carrs et par Remez). Les mthodes proposes pour les filtres RII utilisent les quations donnant
des filtres analogiques connus (de Butterworth, de Chebychev I, de Chebyshev II et elliptique).
Lintrt sera port tout dabord sur les caractristiques des filtres RIF, puis sur celles des filtres
RII. Chacune de ces tudes sera suivie par des exemples de filtrage de signaux rels.
4.3.2
55
Gabarit
Le gabarit du filtre est dfini par lutilisateur parmi les quatre catgories suivantes : filtre passebas, filtre passe-haut, filtre coupe-bande et filtre passe-bande. On peut rgler Fe la frquence
dchantillonnage, f la largeur de la bande de transition, 1 lamplitude des ondulations en
bande passante et 2 lamplitude des oscillations en bande attnue. Ces amplitudes sont exprimes en chelle linaire. Il est galement possible dutiliser comme
paramtres
londulation en
H (f )
1+
1+ 1
1 1
et da = 20 log10
1
2 .
1 1
f
2
F1
F2
Fe
f
2
Choisir un gabarit en entrant ces dirents paramtres. Le but du TP va tre de comparer les
rsultats de la synthse des dirents filtres pour ce gabarit.
4.3.3
Remarque pralable : lutilisateur du logiciel peut choisir lordre du filtre synthtiser. Notons
que pour un ordre 2, la synthse par la fentre triangulaire ne donne rien (problme de dfinition
de fentre) et que la synthse par Remez "plante", lalgorithme itratif associ ncessitant un
ordre minimal de 3.
1
Fe
2
b
N = log10
3
10 1 2 f
56
synthse RIF par fentre. Observer les fonctions de transfert obtenues par les quatre types de
fentres disponibles : valeur de la pente, position et amplitude du premier lobe doscillation.
Cette comparaison sera faite uniquement dun point de vue qualitatif, en utilisant le bouton
"hold" (et ne pas hsiter aussi utiliser le bouton "Ylog"). Quels sont les avantages et les
inconvnients de chacune des fentres ? Observer le temps de propagation de groupe.
Influence de lordre : On appelle ordre optimal Nopt dun filtre numrique, lordre minimal tel
que le gabarit frquentiel soit respect. Synthtiser le filtre RIF laide de la fentre rectangulaire
b (N
b < Nopt !) et en augmentant
en faisant varier lordre du filtre depuis la valeur calcule N
progressivement jusqu dpasser Nopt . Mesurer linfluence de lordre sur les paramtres suivants
:
la raideur de la pente
Comparer lamplitude des ondulations en bande passante et en bande aaiblie. Quelle remarque
peut-on faire sur lamplitude des oscillations ?
57
Filtrage de signaux
Vrifier la nature du filtre en lui imposant en entre un bruit blanc (utiliser le bouton "DSP"
qui calcule les DSP de lentre et de la sortie du filtre).
Filtrer un signal sinusoidal. Quobserve-t-on sur la sortie ?
Filtrer une somme de 2 sinus, compose dun sinus dans la bande passante du filtre et dun
autre sinus dans la bande attnue. Quobserve-t-on sur la sortie ?
4.3.4
A la dirence des filtres RIF, on peut calculer de manire assez prcise lordre minimal ncessaire
pour un type de filtre analogique donn permettant de respecter le gabarit. Ces calculs sont
faits pour chaque type de filtre dans le logiciel par le bouton "Auto".
Rponse impulsionnelle
Quelle est la dirence par rapport la rponse impulsionnelle dun RIF ?
58
4.3.5
Conclusion
Donner les avantages et les inconvnients respectifs des filtres RIF et des filtres RII.
Chapitre 5
Initiation Matlab
Matlab, abrviation de MATrix LABoratory, est un langage trs performant pour le calcul
numrique. Les utilisations classiques sont : le calcul mathmatique, le dveloppement dalgorithmes,
la modlisation et la simulation, lanalyse de donnes et la visualisation, le dveloppement
dapplications telles que les interfaces utilisateur.
5.1
Commandes daide
lookfor filter. Matlab donnera en rponse la liste des fonctions intgres dont laide associe
comporte ce mot cl.
help commande donne une aide sur la commande en question. Contrairement lookfor,
help toolbox donne toutes les commandes de la toolbox par catgories. Exemple : help
signal; help stats; help optim; help nnet;
5.2
5.2.1
Matrices
Construction
Matlab travaille essentiellement sur des matrices, un vecteur ou un scalaire tant considr
comme une matrice avec une ligne et/ou une colonne. La saisie dune matrice peut seectuer
de direntes faons : soit en la rentrant comme une liste dlments, soit en la gnrant dynamiquement laide de fonctions, soit encore en la chargeant depuis un fichier. La construc59
60
sont spars par des espaces ou des virgules et les lignes sont spares par des point-virgules.
Matlab traite aussi les matrices complexes :
A
[1 2; 3 4] + i [5 6; 7 8]
[1 + 5 i
2 + 6 i; 3 + 7 i
4 + 8 i]
i ou j peuvent tre utiliss indiremment pour la notation imaginaire. Dans le cas o ils seraient
utiliss comme variables, on peut les recrer laide de :
ii = sqrt(1)
Les lments dune matrice sont rfrencs de la faon suivante :
A(2,3) est llment de la deuxime ligne et troisime colonne de la matrice A.
si lon dfinit un vecteur B, alors B(4) est le quatrime lment de ce vecteur, indiremment
quil soit ligne ou colonne.
les indices des vecteurs et matrices dbutent 1 et non 0. On peut aecter une valeur
A(2, 4) = 8
qui va aecter la valeur 8 llment de la deuxime ligne et quatrime colonne de A. Certaines
fonctions permettent de crer des matrices. Les fonctions matricielles les plus couramment
utilises sont :
zeros
matrice de zros
ones
matrice de uns
eye
matrice identit
linspace
logspace
diag
cration ou extraction de la diagonale dune matrice
Par exemple, zeros(m,n) cre une matrice mn remplie de zros, et zeros(n) cre une matrice
remplie de zros et de taille n n. Si x est un vecteur, diag(x) est la matrice diagonale avec
x sur la diagonale, les autres lments tant nuls. Si A est une matrice carre, diag(A) est un
vecteur compos de la diagonale de A. Les matrices peuvent tre construites par blocs. Soit A
une matrice 3 3 :
5.2. Matrices
61
va construire une matrice 5 5. Les gnrateurs de nombres alatoires (taper help stats
pour en avoir la liste) permettent de gnrer des matrices dont les lments suivent une loi
donne. La commande rand(n), par exemple, cre une matrice n n dont les lments sont
de raliser lconomie de boucles par rapport la plupart des langages de programmation. Par
exemple :
1:5 est le vecteur ligne [1 2 3 4 5].
Bien sr, les incrments peuvent ne pas tre entiers, la syntaxe est la suivante :
dbut :
pas :
Exemple :
0.2:0.2:1.2 est le vecteur [0.2 0.4 0.6 0.8 1.0 1.2],
et 5:-1:1 est [5 4 3 2 1].
Lexemple suivant cre un signal sinusodal :
temps = [0:0.1:2];
y = sin(2*pi*f0*temps);
La notation : permet aussi daccder aux sous-matrices dune matrice. Par exemple, A(1:4,3)
est le vecteur colonne compos des 4 premiers lments de la 3me colonne de la matrice A.
A(:,3) est la troisime colonne de la matrice A et A(1:4,:) est compose des quatre premires
lignes de la matrice A. Cette notation permet aussi de remplacer des morceaux de matrices :
A(:,[2 4 5]) = B(:,1:3) remplace les colonnes 2, 4 et 5 de A par les trois premires colonnes
de B. La fonction reshape(A,m,n) reconstruit la matrice A avec m lignes et n colonnes.
5.2.2
Oprations lmentaires
soustraction
.0
transpos uniquement
multiplication
division gauche
puissance
division droite
conjugu transpos
Ces commandes sappliquent aussi aux scalaires. Si les tailles des matrices sont incompatibles,
alors un message derreur apparat, sauf dans le cas dune opration entre un scalaire et une
matrice o loprateur va sappliquer au scalaire et aux lments de la matrice. Attention : La
division matricielle est particulire. Soit A une matrice et b un vecteur respectivement colonne
ou ligne, alors :
x=A\b est la solution de A x = b, et
62
Les divisions droite et gauche sont lies par b/A = (A\b). Pour rsoudre le systme, Matlab
calcule linverse de A quand A est inversible et sa pseudo-inverse lorsque A est singulire sans
pour autant vous en avertir.
5.2.3
Les oprations prcdentes sont les oprations matricielles classiques. Les oprations *, ^, \,
/ peuvent aussi sappliquer lment par lment sur une matrice ou un vecteur en les faisant
prcder dun point. Par exemple : [1 2 3 4].*[1 2 3 4] ou [1 2 3 4].^2 donnent [1 4 9
16]
5.2.4
Fonctions lmentaires
Les fonctions lmentaires disponibles sous Matlab, sappliquent aussi bien des matrices qu
des scalaires. Les plus courantes sont :
sin, cos, tan, asin, acos, atan
sinh, cosh, tanh, asinh, acosh, atanh
exp, log, log10
rem, abs, angle, real, imag, conj, sqrt, sign
round, floor, ceil, fix
Dautres fonctions renvoient un scalaire lorsquelles sappliquent sur des vecteurs. Dans le
cas o on les appliquent des matrices, elles agissent gnralement sur chacune des colonnes
indpendamment, le rsultat est alors un vecteur. Ce sont :
max, min,
sort,
sum, prod, median, mean, std
any, all
Par exemple, llment maximal dune matrice A est donn par max(max(A)), et non pas par
max(A) qui renvoie un vecteur (consulter laide).
5.2.5
63
Fonctions matricielles
polynome caractristique
det
dterminant
inv
inverse
expm
matrice exponentielle
sqrtm
size
5.3
Les fonctions suivantes permettent davoir une vue globale de lespace de travail :
who
liste les variables
whos
what
liste les fichiers dextension .m et .mat
Les variables peuvent tre supprimes laide de la commande clear nom_variable.
Attention la commande clear qui utilise seule eace toutes les variables de lespace de travail.
Lorsque lon quitte Matlab, toutes les variables sont perdues. On peut les sauver avec la
commande save nom_fichier nom_des_variables_a_sauver.
en *.mat. Lorsque lon relance Matlab, on peut les recharger avec load nom_fichier.
Certaines commandes DOS ou Unix classiques sont valables dans Matlab :
pwd
indique le chemin du rpertoire courant
cd
change de rpertoire
dir
what
path
obtention ou initialisation du chemin
Dautres commandes DOS ou Unix peuvent tre excutes si elles sont prcdes de !. Exemple : !del nom_fichier.
5.4
Dans Matlab, ce type de fonctions opre quasiment de la mme faon que pour les langages de
type Pascal ou C. Mais attention : Remplacer une boucle par un traitement matriciel, lorsque
cela est possible, conduit un gain de temps dexcution trs important.
64
5.4.1
Boucles
Lexcution rptitive dune suite dinstruction peut-tre ralise laide de for ou while.
La syntaxe de la boucle for est la suivante :
for condition
instructions
end
Par exemple, soit n donn :
x = [
];
for (i = 1 : n)
x = [x, i2]
end
La syntaxe de la boucle while est la suivante :
while expression
traitement
end
Le traitement va tre rpt tant que lexpression est vraie. Les groupes dinstructions qui vont
tre excutes ou non selon la condition, peuvent tre dlimites par les instruction case et
otherwise.
5.4.2
Test : instruction if
Cette instruction permet dexcuter une suite dinstructions conditionnelles. Sa syntaxe est la
suivante :
if condition
instructions
end
Le traitement va tre excut uniquement si la condition est vraie. Des branchements multiples
sont aussi possibles :
if condition1
instructions1
elseif condition2
instructions
else
instructions
end
5.4.3
65
Relations
infrieur
>=
suprieur ou gal
>
suprieur
==
<=
infrieurou gal
dirent
| ou,
non
Lorsque une relation est applique des scalaires, le rsultat est alors gal 1 ou 0 selon quelle
soit vraie ou fausse et lorsquelle est applique des matrices ou des vecteurs de mme taille, le
rsultat est une matrice dont les lments prendront les valeurs 1 ou 0.
Une relation entre matrices est interprte par while et if comme vraie si elle est vrifie par
tous les lments de la matrice. Par consquent, si lon veut excuter un traitement quand des
matrices A et B sont gales, on peut faire :
if A = = B
traitement
end
tandis que si on veut lexcuter lorsquelles ne sont pas gales, on peut faire :
if any(any(A = B))
traitement
end
ou tout simplement
if A = = B else
traitement
end
Il faut noter que :
if A = B
traitement
end
ne va pas donner le rsultat escompt, car le traitement va tre excut seulement si tous les
lments de A et B sont dirents.
Les fonctions any et all permettent de rduire les relations entre matrices des vecteurs ou
des scalaires. Consulter laide leur sujet.
Voir aussi la fonction find qui renvoie lindice des lments obssant une condition. Par
exemple, soit y un vecteur, alors find(y>2) va renvoyer le rang de tous les lments de y qui
sont strictement suprieurs 2.
66
5.4.4
Pause et break
Lors de lexcution dun programme, on peut, laide de linstruction pause, suspendre son
excution et la relancer si lutilisateur appuie sur une touche.
Linstruction break arrte lexcution dune boucle while ou for.
5.5
Fichiers .m
Matlab peut excuter un ensemble dinstructions contenues dans un programme. Ces programmes ont une extension .m. Il y a deux types de programmes .m : les scripts et les fonctions.
% permet dinsrer des commentaires.
Si le dernier caractre dun traitement est un point virgule, alors lachage sur la fentre de
commande Matlab est supprim.
5.5.1
Scripts
Un fichier script est compos dun ensemble dinstructions Matlab. Si le fichier a le nom prog.m,
alors la commande prog va lexcuter. Les variables dun programme script sont globales, et
son excution va changer leurs valeurs dans lespace de travail.
5.5.2
Fonctions
Les variables dune fonction sont locales, mais peuvent aussi tre dclares comme globales. Soit
la fonction :
function y
moyenne(x)
%calcul de la valeur moyenne.
sum(x)/length(x);
Cette fonction va calculer la moyenne des lments dun vecteur. Dans la ligne de commande,
on peut alors crire :
vect
[1 2 3 4 5 6];
moy
moyenne(vect)
5.6. Graphiques
5.5.3
67
5.5.4
Vectorisation et pr-allocation
Dans le but dacclrer lexcution de programmes, il est important de vectoriser les algorithmes
dans les fichiers .m. En eet, l o dautres langages utilisent des boucles, Matlab peut utiliser
des oprations vectorielles ou matricielles. Considrons lexemple suivant :
for t = 1 : N
y(t) = sin(2 pi f0 t)
end
Si on vectorise ce programme, il sut dcrire:
t = 1 : N;
y = sin(2 pi f0 t);
Dans le cas o il nest pas possible de vectoriser, il est possible de rendre les boucles for plus
rapides en pr-allouant des vecteurs ou des matrices dans lesquels les rsultats seront stocks.
Par exemple :
y = zeros(1, 100);
for (i = 1 : 100)
y(i) = det(Xi);
end
En eet, si on ne pr-alloue pas un vecteur, Matlab va ractualiser la taille du vecteur y chaque
boucle ditration, ce qui prend normment de temps.
5.6
Graphiques
Matlab permet de raliser des graphiques 2-D et 3-D. Pour avoir un aperu des capacits de
Matlab en matire de graphismes, utiliser la commande demo. Dans les travaux pratiques, nous
utiliserons essentiellement des tracs 2-D. Soit deux vecteurs x et y de mme taille. La commande
68
titre du graphe
xlabel
ylabel
gtext
text
5.7
Les commandes normrnd ou randn permettent de gnrer des valeurs suivant une loi gaussienne :
Exemple :
ou
bruit=sqrt(sigma2)*randn(1,N);
bruit=normrnd(0,sqrt(sigma2),1,N);
Remarque : Il est possible de gnrer un bruit non gaussien (voir help stats pour dautres
gnrateurs de nombres alatoires. Si on souhaite ajouter un bruit color il faudra dabord gnrer
un bruit blanc (avec randn si il est gaussien) et, ensuite, le filtrer en utilisant la fonction filter
Exemple : y = filter(B,A,z);
69
P [X = 1] = 1/4
P [X = 0] = 1/2
P [X = 1] = 1/4
5.8
Question 1 : Reprsenter dans le plan polaire (commande polar) les ples (commande roots)
du filtre suivant :
1
1
=
1
A(z)
1 1.45z + 0.81z 2
Question 2 : Gnrer le signal :
x(t) = 10 sin(0.4t + ) + b(t),
t = 0, ..., 127
o est une variable alatoire uniformment distribue sur [0, 2) et b(t) est un bruit blanc
gaussien de variance unit. Etudier la moyenne, la fonction dautocorrlation (fonction xcorr)
et le spectre de x(t) (commande fft). Comparer les rsultats obtenus aux rsultats thoriques.
Question 3 : En crant une fonction, gnrer un signal N.R.Z. soumis une modulation
damplitude (multiplication par cos(2f0 t)). Etudier le spectre du signal avant et aprs modulation. Comparer les rsultats obtenus aux rsultats thoriques.
5.9
Conclusion
Ceci ntait quun aperu des capacits de Matlab. Ce logiciel possde de nombreuses botes
outils lies au traitement du signal et aux probabilits lmentaires : signal (traitement du
signal), stats (statitiques), wavelets (ondelettes), nnet (rseaux de neurones), optim (optimisation), hosa (moments dordres suprieurs)... Pour avoir un aperu des possibilits de Matlab
et de ces direntes botes outils, taper demo.