• Aucun résultat trouvé

n xz = N xz

N/A
N/A
Protected

Academic year: 2022

Partager "n xz = N xz"

Copied!
66
0
0

Texte intégral

(1)

Travaux pratiques avancés

(2)
(3)

6.1. Introduction

L'informationportée par lesignalparole peut être considéréde bien des façons. On

distingue généralement plusieurs niveaux de description non exclusifs : acoustique,

phonétique etphonologique.

Au niveau acoustique, on s'intéresse essentiellement au signal que l'on tentera de

caractériserparson intensité,safréquence,son timbreetses propriétésstatistiques.

Auplanphonétique,onconsidèrelagénérationdessons,lesphonèmesquicomposent

un mot et les classes auxquels ils se rattachent. Enn, la phonologie s'attache à

décrirele rythme,la prosodie, lamélodied'une phrase.

Letexte qui suit traiteradu signal acoustique seulement. Il n'a d'autrebut que de

servir d'introductionàune deuxièmepartie oùl'on abordera lecodage et décodage

LPCdelaparole.Uneprésentationplus complètepeutêtrerlueavec protdans[1].

6.2. Analyse de la parole

Avantdevouloirtraiteroucoderlesignaldelaparole,ilestimportantdecommencer

par comprendre ce qu'est la parole, quel est son contenu spectral, quelles sont les

parties qui la composent. De plus, il est primordial de réaliser que l'analyse des

signaux est basée sur lastationnarité de ceux-ci alors que,par essence, un message

nepeutpasêtrestationnaire.Onseradoncconstammentconfrontéaudilemmeposé

par l'analyse d'un signaltransitoire considéré commestationnaire.

Pour la suite, vous utiliserezlesdeux outils suivants:

le programme CoolEdit 2000 pour l'enregistrement, l'analyse auditiveet visuelle

des sons etde leurs spectres;

le programmeMatlab pour l'analyse etletraitement numériques des signaux.

6.2.1. Classication des phonèmes

Lorsqu'on recherche les composants élémentaires du langage articulé, on en trouve

environ une trentaine pour la langue française. Ces éléments désignés sous le nom

de phonèmes sont répartisen 7 classes; ils susent pourreprésenter l'ensembledes

sons. Il s'agit des :

(4)

voyelles voisées :lit,été, marais,Ursule,peur, petit,jeu,patte,pâte, sol,saule,

bijou;

voyelles nasales : brin, brun,chant, bonjour;

semi-voyelles : paille, lui,Louis;

consonnes fricatives: saucisson,zèbre, chat, janvier, fameux, vert;

consones nasales : Nantes, menthe, agneau;

consonnes liquides : salon,bureau;

consonnes plosives : pari,barbare, bateau, badaud,écart, langue.

Ces classes de phonèmes font intervenir à des degrés divers les lèvres, la cavité

nasale, la langue, le palais, la glotte et les cordes vocales. Des diérences subtiles

entre phonèmes déterminent le sens du mot et modient sensiblement la forme de

l'ondesonoreetsonspectre.Cesdiérences nesontpasfacilesàdétecteretàmettre

en oeuvre.

Danscertaines applications,en téléphonie par exemple, on peut secontenter d'une

approche plus grossièreetde répartirlesphonèmes dans deuxclasses seulement,les

sonsvoisésetnonvoisés.Lespremierssontmodélisésparunsignalpériodique,alors

que les seconds sont représentés par un bruit. Une tâche dicile du codage de la

paroleconsiste àdéterminer si un son est voisé ounon.

6.2.2. Période des sons voisés

Considérantquelessonsvoisésontun contenupériodiquebienmarqué,leproblème

àrésoudreconsisteà trouverlapériodede lacomposantefondamentale etàdécider

si le son analysé est voisé ou non. Cette période (communément appelée le pitch),

est un paramètre très important pour la synthèse de la parole car l'oreille est très

sensibleà ses variations.

On a observé que la fréquence de la fondamentale se situe entre 40 Hz et 250 Hz

pour les voix masculines alors qu'elle est comprise entre 150 Hz et 700 Hz pour les

voix féminines. De manière générale, on admettra donc qu'un son est voisé si sa

période oule pitchest comprisentre 2msec et 20msec.

6.3. Acquisition et analyse avec CoolEdit

On utilisera le logiciel CoolEdit pour acquérir des sons, sélectionner et écouter

des phonèmes ou des parties de phrases et visualiser des ondes sonores à l'aide

de graphes, de spectres oude spectrogrammes.

6.3.1. Paramètres pour l'enregistrement

Considérant que l'on s'intéresse ici à des sons de la bande téléphonique, on les

enregistrera en monophonie à la fréquence de 8 kHz avec un convertisseur 16 bits

après un ltrageantirepliementdes fréquences supérieures à 4kHz.

(5)

Pour que les chiers soient directement utilisables par Matlab, on les sauvegardera

dansun chier*.txtde type ASCII etonprendra gardeàsupprimerles4premières

lignesqui contiennent des informationssur l'enregistrement.

6.3.2. Visualisation des signaux et de leur spectre

Dansla gure6.1, onprésente lesignal correspondantau mot bonjour. On y voit

legraphedu signalcomplet,son spectrogrammeetdeux zones duson bonjour. La

première correspond auson non voisé j, alors quela deuxièmeillustre lephonème

voisé ou. Pour chacune de ces deux zones, on a tracé les signaux temporels et les

spectres correspondants.

Pour le son j, onrelèvera lecaractère aléatoiredu signal,sa faible puissance et le

fort taux de passages par zéro. Pour le son ou, on notera d'abord son caractère

périodique qui conduit aux raies spectrales du domaine fréquentiel. La périodicité

basse fréquence des signaux voisés conduit à un faible taux de passages par zéro.

Deplus, lapuissancedes sons voisés est sensiblementplusgrande quecelledes sons

non voisés.

6.4. Analyse du signal acoustique avec Matlab

LelogicielMatlab servira pour traiter lessignaux par tranches successives, extraire

leurs caractéristiqueset mettreen évidenceles résultatsobtenus.

Après avoirenregistré une phraseouun son avec CoolEdit,celui-ci doit êtresauve-

gardé dans un chier *.txtde type ASCII an de pouvoirêtre lupar Matlab. Il ne

doit contenir aucune autre informationque lesvaleurs échantillonnéesdu signal.

6.4.1. Lecture du chier de données

Lechier *.txtcomportera une colonne de N valeurs échantillonnées. Il sera lu par

Matlabsous laforme d'un vecteur dontl'amplitude sera normalisée à 1:

[filename,path] = uigetfile('*.txt','Choix de la phrase');

phrase = load(filename);

phrase = phrase/max(abs(phrase));

On désignera une tranche à l'aide de la variable st. La tranche désirée peut être

sélectionnéeenprenant unepartiedes composantes du vecteurphraseavec lacom-

mande

st = phrase(Ndebut :Nfin);

Si une analyse spectrale doit être faite, on choisira de préférence une tranche de

longueur égale àune puissance de 2. Par exemple,128 ou 256.

(6)

son " j " son " ou "

graphe de

" bonjour "

spectro-

gramme de

" bonjour "

spectre du son " ou "

spectre du son " j "

Fig.6.1.: Graphes correspondant au mot bonjour; mise en évidence des sons j

et ou

(7)

6.4.2. Initialisation

La visualisation du signal temporel et de son spectre débute par l'initialisation de

quelques variables et la suppression de la valeur moyenne qui n'a aucun intérêt en

traitement des signaux :

fe = 8e3; Te = 1/fe;

Npoints = length(st);

duree = Npoints*Te;

temps = 0 :Te :duree-Te;

df = 1/duree;

Ndemi = fix(Npoints/2);

frequence = df*(0 :Ndemi-1); % 0 <= frequence < fe/2

st = st - mean(st); % suppression de la valeur moyenne

6.4.3. Valeur ecace

Vous remarquerez par la suite que les sons voisés sont généralement plus intenses

que les sons non voisés. Pour évaluer l'amplitude des signaux, on calcule la valeur

ecace de latranche considérée.Celle-ciest égale àladéviation standarddu signal

Seff = std(st); % valeur efficace du signal

6.4.4. Taux de passages par zéro

Le taux de passages par zéro peut également aider à la décision voisé / non voisé.

Il est déni comme le rapport entre le nombre de passages par zéro et le nombre

d'échantillons considérés

n xz = N xz

N ech

Lenombre passages par zéro peut se calculercomme suit :

function [Nxz] = zcross(xt)

xz = xt - mean(xt);

xz = (1+sign(xz))/2; % transformation en un signal binaire 0 / 1

xz = diff(xz); % derivee du signal binaire = +/- 1

Nxz = sum(abs(xz)); % nombre de passages par 0

6.4.5. Spectre

L'analyse spectrale est faite à l'aide de la FFT. Idéalement, le nombre de points

de la tranche analysée devrait être une puissance de 2. An d'éviter les eets de

bords de la tranche qui peuvent conduire à un étalement spectral, il est nécessaire

d'eectuer préalablement un fenêtrage de la tranche. Ces opérations sont réalisées

àl'aide des commandes suivantes :

(8)

stHm = st.*Hamming(Npoints);

spectre = fft(stHm);

spectre = spectre(1 :Ndemi) % limitation à fe/2

module = abs(spectre); phase = angle(spectre);

plot(frequence,20*log10(abs(spectre));

Une illustrationde sons voisés et non voisés est donnée dans les gures 7.6 et 7.7.

On notera les raies spectrales bien visibles dans le spectre du signal voisé et, en

particulier,lacorrespondance entrelafréquencede lafondamentaleetlapériode du

signalvoisé.

0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08

−4

−3

−2

−1 0 1

2 x 10 4 Signal s(t) = "ou"

0 500 1000 1500 2000 2500 3000 3500 4000

40 60 80 100 120 140

Spectre de s

hm (t) = "ou"

Fig. 6.2.: Signal voisé etson spectre

6.5. Recherche du pitch

6.5.1. Filtrage du signal

Commeonl'aditplushaut,onadmetgénéralementquelapériodedupitchdelavoix

humaineestcompriseentre 2et20msec.Ledomainespectralquinouspréoccupeici

est donc inférieur à 500 Hz. Il est ainsi préférable, puisqu'ons'intéresse à un signal

dont le spectre est limité, de commencer par éliminer les fréquences supérieures à

500 Hz. Ceci peut être fait à l'aide d'un ltre numérique passe-bas; celui-ci est

généralementdu type Butterworth etd'ordre 8 :

fc = 500; fn = fe/2; ordre = 8;

[nbtw dbtw] = butter(ordre, fc/fn);

stf = filter(nbtw, dbtw, st);

(9)

0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08

−2

−1.5

−1

−0.5 0 0.5 1

1.5 x 10 4 Signal s(t) = "jj"

0 500 1000 1500 2000 2500 3000 3500 4000

60 70 80 90 100 110 120

Spectre de s hm (t) = "jj"

Fig. 6.3.: Signal non voisé etson spectre

6.5.2. Autocorrélation

Onavu quelatranche considérée est périodiquesileson est voisé etaléatoiredans

lecas contraire.Andefaciliterlarecherchede lapériode,ontravaillede préférence

avec lafonction d'autocorrélation car celle-ciest généralementmoins bruitéeque le

signallui-même(gure 6.4).

Le résultat de l'autocorrélation est un vecteur de longueur

2N

avec un maximum

enson milieu.Silesignalest périodique,d'autres pics distantsde lavaleurdu pitch

seront présents. Pour trouver ce dernier, il sut donc de mesurer la distance entre

pics successifs.

Lescommandes sontalors lessuivantes :

% autocorrélation d'une tranche st filtrée

rss = real(xcorr(stf))/Npoints;

[rssmax k0] = max(rss); % k0 = position du max central

rss = rss(k0 :length(rss)); % partie droite de rss

% le 1er pic latéral doit se trouver entre Tpmin et Tpmax

fpmax = 500; % fréquences min et max du pitch

fpmin = 50;

Tpmax = 1/fpmin; % périodes min et max du pitch

Tpmin = 1/fpmax;

kpmin = round(Tpmin/Te); % compteurs liés à Tpmin et Tpmax

kpmax = round(Tpmax/Te);

(10)

% recherche du premier pic

rss = rss(kpmin :kpmax); % domaine limité par Tpmin et Tpmax

[ymax k1] = max(rss); % k1 = position du 1er max latéral

% entier correspondant à la période du pitch

kp = kpmin + k1;

Tp = kp * Te;

0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08

−3

−2

−1 0 1

2 x 10 4 Signal s(t) = "ou" filtré à f

c = 0.5 [kHz]

−0.04 −0.03 −0.02 −0.01 0 0.01 0.02 0.03 0.04

−1.5

−1

−0.5 0 0.5 1 1.5

2 x 10 5 Auto−corrélation de s f (t) = "ou"

Fig.6.4.: Autocorrélation d'un son voisé

6.6. Travail pratique

Pour aborder l'analyse de la parole, je vous propose de travailler sur la phrase Le

colibria chanté (chier colibri.txt)ouune phrase de votre choix.

6.6.1. Avec CoolEdit :

1. Chargez lechier colibri.txt en mode mono / 16 bits / 8 kHz.

2. Écoutezlaphrase;observezlegraphetemporeletlespectre(Analyze/Frequency

Analysis) de diverses partiesde laphrase;notez que letemps peut être gra-

dué en secondes ouen échantillons avec le bouton droit de la souris placé sur

l'axetemporel.

(11)

0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08

−1

−0.5 0 0.5

1 x 10 4 Signal s(t) = "jj" filtré à f

c = 0.5 [kHz]

−0.04 −1 −0.03 −0.02 −0.01 0 0.01 0.02 0.03 0.04

−0.5 0 0.5 1

1.5 x 10 4 Auto−corrélation de s

f (t) = "jj"

Fig. 6.5.: Autocorrélation d'un son non voisé

3. Sur le spectrogramme (View/Spectral View), observez l'eet de la durée

d'analyse

N

sur les résolutions temporelle et fréquentielle en prenant 128, 256 et512 échantillons (Options/ Settings/ Spectral).

4. Qu'enest-il de la relationliant les résolutions temporelle et spectrale? quelle

duréed'analyse choisissez-vous?

5. Mentionnez tous les phonèmes que l'on trouve dans cette phrase; à quelles

famillesappartiennent-ils?

6. Relevez les numéros d'échantillons correspondant au début et à la n des

phonèmes.

7. Dansl'enregistrement,choisissezlibrement aumoins deux tranches voisées et

non voisées.

8. Observez leurs spectres et spectrogramme puis analysez plus en détail leurs

caractéristiquestemporelleset spectrales.

6.6.2. Avec Matlab

Procédez à l'analyse détaillée de plusieurs tranches voisées / non voisées et tentez

de lesséparer automatiquement.Pour cela :

1. Extrayez de la phraseles zones que vous souhaitez analyser.

2. Mesurezleur valeur ecace et tauxde passages par zéro (< 100%!).

3. Recherchez la période du signal avec la fonctionde corrélation.

(12)

4. Voyez-vousunmoyendeséparerautomatiquementlessonsvoisés/nonvoisés?

(13)

[1] R. Boiteet al.,Traitement de la parole, PPUR, 2000

(14)
(15)

parole

7.1. Introduction

Lecodage linéaireprédictifLPC (Linear PredictiveCoding) de laparoleest utilisé,

enparticulier,entéléphonieoùilpermetdetransmettrelescommunicationsavec un

débitd'environ12kbits/secaulieude 64kbits/sec sionsecontentaitde numériser

laparole.

Cette forte diminution du débit est basée sur une modélisation très simpliée du

conduitvocaldont ontransmet les paramètres toutesles 10ou 20ms.

7.2. Prédiction linéaire

7.2.1. Mesure de l'erreur de prédiction

Le codage LPC consiste à estimer la valeur de l'échantillon à venir sur la base de

quelques valeurs mesurées précédemment

s[n − k]

(gure7.1).

s[n]

n n-1 n-p

y[n] ??

Fig.7.1.: Les échantillons

s[n − p]

à

s[n − 1]

sont utilisés pour estimer la valeur à

venir

Lavaleurestimée

y[n]

est calculéeàpartirdes échantillons précédents pondérés par des coecients

a k

qui sont généralement aunombre de 8 à 12:

y[n] = − (a 1 s[n − 1] + a 2 s[n − 2] + · · · + a p s[n − p]) = −

p

X

k=1

a k s[n − k]

(7.1)

(16)

Lavaleur des coecients de prédiction

a k

s'obtient par minimisationde lavariance

σ 2 e

de l'écart

e[n]

. Celui-ci est déni comme la diérence entre la valeur réelle

s[n]

etla valeur estimée

y[n]

:

e[n] = s[n] − y[n] = s[n] +

p

X

k=1

a k s[n − k]

(7.2)

Lapuissanceouvariancedel'écartdel'ensembledes

N

échantillons

e[n]

àdisposition dépend du choix des coecients de prédiction

a k

etelle vaut :

σ e 2 (a k ) = 1 N

N − 1

X

n=0

e 2 [n] = 1 N

N − 1

X

n=0

s[n] +

p

X

k=1

a k s[n − k]

! 2

(7.3)

a 1

a 2 σ e (a 1 ,a 2 )

Fig. 7.2.: Variancede l'erreurde prédiction

7.2.2. Calcul des coecients de prédiction linéaire

Laprocédurepourobtenirlavaleuroptimumdescoecients

a k

consisteàrendremi-

nimumlapuissancedel'erreurcommiselorsdelaprédiction.Unschémafonctionnel

traduisant cette démarche est présentée dans lagure 7.3.

Mathématiquement,lavarianceest une fonction des paramètres de prédiction

a k

:

σ e 2 = σ e 2 (a 1 , a 2 , . . . , a p ) = σ e 2 (a k )

(7.4)

Sa valeur minimum s'obtient donc lorsque l'ensemble des dérivées partielles de

σ 2 e

par rapport auxparamètres

a k

sont nulles :

σ e,min 2 ⇒ δσ 2 e (a k ) δa k

= 0, k = 1, . . . , p

(7.5)

(17)

Σ

s[n]

Minimisation a k de

Σ e 2 [n]

- Σ a k z -k y[n]

σ e 2 σ e 2

1 N

σ e 2

Fig. 7.3.: Schéma fonctionnelde laprédiction linéaire

Lecalculde ces

p

dérivées partiellesconduisent à

p

équationspourles

p

paramètres

inconnus

a k

(voir annexe 7.9) :

a 1 r ss [0] + a 2 r ss [ − 1] + · · · + a p r ss [1 − p] = − r ss [1]

a 1 r ss [1] + a 2 r ss [0] + · · · + a p r ss [2 − p] = − r ss [2]

.

.

.

=

...

a 1 r ss [p − 1] + a 2 r ss [p − 2] + · · · + a p r ss [0] = − r ss [p]

avec :

r ss [m] =

N − 1

X

n=0

s[n]s[n − m], m = 1, . . . , p

(7.6)

Les coecients des paramètres

a k

sont les

p

premières valeurs de la fonction d'au-

tocorrélation

r ss [m]

du signal

s[n]

comportant

N

échantillons.

Cet ensembled'équations linéairespeut s'écriresous forme matricielle:

R ss a = − r ss

(7.7)

R ss

est lamatrice

p × p

d'autocorrélation,

r ss

le vecteur

p × 1

d'autocorrélation et

a

le vecteur

p × 1

des paramètres de prédiction. On notera que, la fonction d'autocorrélation étant paire, la matrice

R ss

est symétrique. On voit donc que les coecientsde prédictionlinéairepeuvent s'obtenirpar inversionde lamatrice

R ss

:

a = − R ss 1 r ss

(7.8)

L'estimation de la valeur à venir sera d'autant meilleure que le nombre de points

N

utilisés pour calculerlafonction d'autocorrélation

r ss [m]

sera élevé.L'évaluation des paramètres

a k

se fait donc après analyse d'une tranche

t k

susamment longue

(

N ∼ 200

) alors que le calcul de la valeur à venir

y[n]

n'utilise que les

p

dernières

valeurs de

x[n]

.

Ilestimportantdereleverquesilespoints

s[n]

nesontpascorrélésentreeux,aucune

prévisionn'estpossible(casdubruitblanc).Pourplusd'informations,onconsultera

avantageusement la référence[1].

(18)

7.2.3. Interprétation de la prédiction linéaire

Dans ce qui précède, le signal

e[n]

a été considéré comme une erreur de prédiction

dont on a minimisé la variance pour calculer les coecients de prédiction linéaire

a k

.Sa dénition était lasuivante:

e[n] = s[n] − y[n] = s[n] +

p

X

k=1

a k s[n − k]

(7.9)

Appliquant latransformationen

z

àcette équation, onen tire larelationsuivante :

E(z) = S(z) 1 + a 1 z 1 + a 2 z 2 + · · · + a p z p

= S(z)A(z)

(7.10)

Ellemontrequel'onpeutreconstruirelerésidu

e[n]

del'estimationàpartirdusignal

s[n]

à l'aided'un ltre non récursif représenté par la fonctionde transfert

A(z)

.

Unedeuxième représentation, plus fructueuse,

S(z) = E(z) 1

1 + a 1 z 1 + a 2 z 2 + · · · + a p z p = E(z) 1

A(z)

(7.11)

met en évidence le fait que le résidu

e[n]

peut être considéré comme un signal

d'excitation servant à créer le signal

s[n]

avec l'aide d'un ltre récursif tous pôles

H(z) = 1/A(z)

. Dans le cas du codage LPC de la parole,le signal d'excitation

e[n]

est choisi périodique pour les sons voisés etaléatoirepour lessons non voisés.

7.3. Modèle du conduit vocal

La production de sons met en oeuvre un certain nombre de muscles modiant la

forme du conduit vocal dans lequel circule un ux d'air. On y trouve les cordes

vocalesqui vibrent pour lessons voisés etrestentaurepos pour lessons nonvoisés.

Viennent en suite lepharynx etla cavité buccaleen parallèleavec la cavité nasale.

Laformede ces parties est constammentmodiée pour créer le messagesonore.

Lemodèle généralement adopté pour créer articiellementdes sons est grossier par

rapport à la complexité du système phonatoire mais il est tout à fait satisfaisant

pour lesbesoins de latéléphonie. Ce modèle comprend (gure7.4) :

un générateur périodique d'impulsionsunité;

un générateur de nombres aléatoires àvaleurmoyenne nulle etvariance unité;

un commutateurservant à choisir lessons voisés ou non;

un gain proportionnelà lavaleurecace du signal

s[n]

;

un ltre tous pôles

H(z) = 1/A(z)

.

Commelessonsévoluentconstamment,legénérateuretleltredoiventêtremodiés

enpermanence.L'extractiondecesparamètresdugénérateuretdultreconstituent

lecodagedelaparole.Al'émission,ondécomposelesonentranchespourenextraire

les paramètres qui seuls seront transmis. A la réception, chaque tranche du signal

sonoreest reconstruiteà partir des paramètres du générateur etdu ltre.

(19)

e[n] y[n] ≈ s[n]

gain V

NV Bruit

blanc Suite d’impul- sions

1 A(z)

Fig. 7.4.: Modèle du conduitvocal

L'analyse de la parole se fait par tranches de 20 à 30 msec. Dans le cas où la

fréquence d'échantillonnageest de 8 kHz, chaque tranche comporte donc 160 à 240

échantillons. C'est àpartir de ces échantillons quel'on décide si leson est voisé ou

non etque l'on calcule legain et lesparamètres du ltre.

Pourassurerunecertainecontinuitédusignalsonore,lestranchessuccessivespeuvent

être décalées d'une valeur inférieure à leur durée (gure 7.5). Généralement,ce dé-

calageest de 10 msec (80 échantillons).

t 2 t 1

t 0 0

N-1

tranche t 1 de longueur N

tranche t 2 de longueur N

Fig. 7.5.: Découpage en tranches

t k

du signal

s[n]

Dans le cas où l'on doit eectuer une analyse spectrale à l'aide de la FFT, il est

préférablede travailleravec destranchesdontlenombre depointsest unepuissance

de 2,généralement128 ou 256. Ladurée des tranches est alors de 16ou32 msec et

ledécalage de 8msec (64 échantillons).

Considérantquelessonsvoisésontun contenupériodiquebienmarqué,leproblème

àrésoudreconsisteà trouverlapériode de lacomposantefondamentale etàdécider

si le son analysé est voisé ou non. Cette période (communément appelée le pitch),

est un paramètre importantpour la synthèse de laparole car l'oreille est sensible à

ses variations.

On a observé que la fréquence de la fondamentale se situe entre 40 Hz et 250 Hz

pour les voix masculines alors qu'elle est comprise entre 150 Hz et 700 Hz pour les

voix féminines. De manière générale, on admettra donc qu'un son est voisé si sa

période oule pitchest comprisentre 2msec et 20msec.

(20)

7.4. Analyse du signal

Après avoir enregistré une phrase ou un son, celui-ci doit être sauvegardé dans un

chier *.txt de type ASCII an de pouvoir être lu par MatLab. Il ne doit contenir

aucune autre informationque lesvaleurs échantillonnéesdu signal.

Lechier *.txtcomportera une colonne de N valeurs échantillonnées. Il sera lu par

MatLab sous laformed'un vecteur dont l'amplitudesera normalisée à 1 :

[filename,path] = uigetfile('*.txt','Choix de la phrase');

phrase = load(filename);

phrase = phrase/max(abs(phrase));

Parla suite,ondésignera une tranche àl'aide de la variablest. Latranche désirée

peut être sélectionnée en prenant une partie des composantes du vecteur phrase

avec la commande

st = phrase(Ndebut :Nfin);

st = st - mean(st); % suppression de la valeur moyenne

Si une analyse spectrale doit être faite, on choisira de préférence une tranche de

longueur égale àune puissance de 2. Par exemple,128 ou 256.

7.4.1. Initialisation

La visualisation du signal temporel et de son spectre débute par l'initialisation de

quelques variables, la suppression de la valeur moyenne et le calcul de la valeur

ecace :

fe = 8e3; Te = 1/fe;

Npoints = length(st);

temps = Te*(0 :Npoints-1);

duree = Npoints*Te;

df = 1/duree;

Ndemi = fix(Npoints/2);

frequence = df*(0 :Ndemi-1); % 0 <= frequence < fe/2

7.4.2. Spectre

L'analysespectralese faitàl'aidede la FFT.Idéalement, lenombrede pointsde la

tranche analyséedevraitêtre unepuissance de 2.Sicela n'estpas possible,ilfaudra

être critique par rapport auxrésultats obtenus.

An d'éviter les eets de bords de la tranche qui peuvent conduire à un étalement

spectral, il est nécessaire d'eectuer préalablement un fenêtrage de la tranche. Ces

opérationssont réaliséesà l'aide des commandes suivantes :

(21)

stHm = st.*Hamming(Npoints);

spectre = fft(stHm);

spectre = spectre(1 :Ndemi) % limitation à fe/2

module = abs(spectre); phase = angle(spectre);

plot(frequence,20*log10(abs(spectre));

Uneillustrationde sons voisé etnon voisé est donnée dans les gures7.6 et7.7.

0 0.01 0.02 0.03 0.04 0.05 0.06 0.07

−4

−3

−2

−1 0 1

2 x 10 4 Signal s(t) "ou"

0 500 1000 1500 2000 2500 3000 3500 4000

40 60 80 100 120 140

Spectre de s hm (t) "ou"

Fig. 7.6.: Signal voisé etson spectre

7.5. Analyse LPC

Celle-cifournit lescoecientsde prédictionlinéaire etlavariance(lapuissance) de

l'erreurde prédiction :

NbCoeff = 12;

[coeff Perreur] = lpc(st, NbCoeff);

7.5.1. Valeur ecace et gain

Pour évaluer l'amplitude des signaux synthétisés, oncalcule la valeur ecace de la

tranche considérée

Seff = std(st); % valeur efficace du signal

(22)

0 0.01 0.02 0.03 0.04 0.05 0.06 0.07

−1

−0.5 0 0.5

1 x 10 4 Signal s(t) "j"

0 500 1000 1500 2000 2500 3000 3500 4000

50 60 70 80 90 100 110

Spectre de s hm (t) "j"

Fig. 7.7.: Signal non voisé etson spectre

Cette valeur ecace peut représenter le gain de lafonction de transfertdu conduit

vocal:

gain = Seff;

7.5.2. Fonction de transfert

H (z)

du conduit vocal

Lescoecients LPC représentent un polynôme en

z 1

qui n'est autre que ledéno-

minateur de la fonctionde transfert du conduitvocal :

H(z) = gain

1 + a 1 z 1 + a 2 z 2 + · · · + a p z p

(7.12)

Commeleconduitvocal est par essence stable,les pôles doivent setrouverà l'inté-

rieur du cercle de rayonunité.

La donnée de la fonction de transfert sous la forme d'un produit de fonctions bi-

quadratiques et le tracé des zéros et des pôles dans le plan complexe (gure 7.8)

s'obtiennent avec les commandessuivantes :

Hz = tf(gain, coeff);

zpk(Hz);

zplane(roots(gain), roots(coeff));

(23)

7.5.3. Réponse fréquentielle du conduit vocal

Laréponse fréquentielle du conduit vocals'obtient avec :

[Hf ff] = freqz(gain, coeff, Ndemi,fe);

Au tracé de cette réponse fréquentielle, on peut superposer le spectre du signal

(gure7.9) :

plot(ff,20*log10(abs(Hf)),frequence,20*log10(abs(spectre)));

−1 −0.5 0 0.5 1

−1

−0.8

−0.6

−0.4

−0.2 0 0.2 0.4 0.6 0.8 1

Partie réelle

Partie imaginaire

Position des pôles

Fig. 7.8.: Pôles de la fonction de transfert représentant le conduitvocal

7.6. Recherche du pitch

7.6.1. Filtrage du signal

Comme on l'a dit plus haut, la période du pitch est comprise entre 2 et 20 msec.

Ledomaine spectral qui nous préoccupe ici est donc inférieur à 500 Hz. Il est ainsi

préférable, avant de poursuivre l'analyse, de commencerpar éliminerlesfréquences

supérieures à 500 Hz à l'aide d'un ltre passe-bas de Butterworth, généralement

d'ordre8.

fc = 500; fn = fe/2; ordre = 8;

[nbtw dbtw] = butter(ordre, fc/fn);

stf = filter(nbtw, dbtw, st);

(24)

0 500 1000 1500 2000 2500 3000 3500 4000 70

80 90 100 110 120 130

Réponse fréqentielle du conduit vocal

[dB]

0 500 1000 1500 2000 2500 3000 3500 4000

40 60 80 100 120 140

Spectre de s(t) et conduit vocal

fréquence [Hz]

[dB]

Fig.7.9.: Réponse fréquentielle du conduitvocal etspectre du signal

7.6.2. Recherche du signal d'excitation

e[n]

Nousavons vu dans la section7.2.3 que le résidu

e[n]

de laprédiction linéaire peut

être considéré comme lesignal d'excitation servant à créer lesignal

s[n]

en passant

àtravers le ltre récursif :

H(z) ≡ S(z)

E(z) = 1

A(z)

(7.13)

Puisque,dansnotre cas,lesignal

s[n]

est connu,onpeut parltrageinverse obtenir

lerésidu

e[n]

:

E(z) = A(z)S(z)

(7.14)

ce qui revient à convoluer les coecients

a k ≡ a[n]

avec le signal

s[n]

:

e[n] = a[n] ⊗ s[n]

(7.15)

DansMatLab, cela s'écrit simplement

en = conv(coeff, stf);

7.6.3. Autocorrélation de

e[n]

On a vu que le signal d'excitation est périodique si le son est voisé et aléatoire

dans le cas contraire. Comme le signal est passablement bruité, la recherche de la

période est grandement facilitéesi onl'eectue sur la fonction d'autocorrélation de

e[n]

plutôtque sur le signal lui-même(gure7.10).

(25)

Le résultat de l'autocorrélation est un vecteur de longueur

2N

avec un maximum

enson milieu.Silesignalest périodique,d'autres pics distantsde lavaleurdu pitch

seront présents. Pour trouver ce dernier, ilsut donc de mesurer cette distance.

Lescommandes sontles suivantes :

% autocorrélation des résidus

ree = real(xcorr(en))/Npoints;

[reemax k0] = max(ree); % maximum central

ree = ree(k0 :length(ree)); % partie droite de ree

% le 1er pic latéral doit se trouver entre Tpmin et Tpmax

fpmax = 500; fpmin = 50; % fréquences min/max du pitch

Tpmax = 1/fpmin; Tpmin = 1/fpmax; % périodes min et max du pitch

kpmin = round(Tpmin/Te); kpmax = round(Tpmax/Te);

% recherche du premier pic

ree = ree(kpmin :kpmax); % domaine temporel limité par Tpmin et Tpmax

[reemax1 k1] = max(ree); % k1 = position du 1er max latéral

% entier correspondant à la période du pitch Tp = Kp * Te

Kp = kpmin + k1;

0 0.02 0.04 0.06 0.08 0.1 0.12

−2000

−1500

−1000

−500 0 500 1000

Signal d’excitation e(t)

−0.06 −0.04 −0.02 0 0.02 0.04 0.06

−100 0 100 200 300

Auto−corrélation de e(t)

Fig.7.10.: Résidus de la prédicion linéaireet autocorrélation(son voisé)

(26)

7.6.4. Critères de décision

Lesélémentspouvantcontribueràla décisionvoisé/nonvoisé sont lavaleur ecace

de la tranche, son taux de passages par zéro et l'amplitude du premier maximum

latéralde lafonction d'autocorrélation des résidus.

Pour les sons voisés, ona en eet observé qu'en moyenne

1. l'amplitudedu signal est élevée;

2. letauxde passages par zéros est faible;

3. le premier pic latéral de la fonction d'autocorrélation des résidus est bien

marqué.

Taux de passages par zéro Le taux de passages par zéro est déni comme le

rapportentre lenombre de passages par zéro etle nombre d'échantillons considérés

n zx = N zx

N ech

Lenombre passages par zéro peut se calculercomme suit :

function [Nzx] = zcross(xt)

xz = xt - mean(xt);

xz = (1+sign(xz))/2; % transformation en un signal binaire 0 / 1

xz = diff(xz); % derivee du signal binaire = +/- 1

Nzx = sum(abs(xz)); % nombre de passages par 0

Fonction de corrélation Pour les sons voisés, l'amplitude du premier pic latéral

est souvent supérieureau tiers de celle du piccentral. Il est moinsmarqué pour les

sons non voisés.

Choixdesseuils Surlabased'analysesstatistiques,onxelesseuilsapproximatifs

suivants

SeuilXeff = 0.05; SeuilZcross = 0.3; SeuilCorrel = 0.3;

Période du pitch Tenant comptedes élémentsci-dessus, le calculdu pitchsefait

commesuit

voise = (Seff > SeuilXeff) & (Nzx < SeuilZcross) & (reemax1 > SeuilCorrel*reemax);

if ~voise

Kp = 0; % le son n'est pas voisé

end;

(27)

7.7. Synthèse d'un son

La synthèse d'un son consiste à utiliser lesparamètres obtenus ci-dessus pour syn-

thétiserune tranche après l'autre.Il faudra donc créer lesignal d'excitation (pério-

dique ou bruité selon que le signal est voisé ounon), le ltrer à travers la fonction

de transfert

H(z)

et adapter son amplitude. Les commandessont lessuivantes :

% génération des impulsions de période Kp = Tp / Te

if Kp

= 0

for k=1 :Npoints

if mod(k,Kp) == 0

xt(k) = -1;

else

xt(k) = 0;

end; % if

end; % for

xt(1) = -1; % 1ère impulsion non-nulle

end; % if Kp ...

% génération d'un bruit de longueur Npoints

if Kp == 0

xt=2*(rand(Npoints,1)-0.5);

end; % if

% synthèse du son

yt = filter(1, coeff, xt);

% adaptation de l'amplitude

Seff = std(st); % valeur efficace du signal original

Yeff = std(yt); %valeur efficace du signal synthétisé

gain = Seff/Yeff;

yt = yt*gain;

On noteraqu'avec MatLab il est égalementpossible d'écouter directement des sons

grâceà la fonctionsound ousoundsc. Par exemple :

soundsc (yt, fe);

7.7.1. Signaux réel et synthétique

La gure 7.11 montre les résultats de la synthèse d'un phonème voisé. Ces dié-

rences visuelles nous paraissent dicilement acceptables. Il ne faut cependant pas

oublierquelaparoleest unmessagetrès redondantetqueseulel'écoutedelaphrase

synthétiséepermetde jugerde laqualité du codage LPC.

(28)

7.7.2. Mise en valeur des résultats

Andefaciliterl'analysecritiquedes résultatsobtenus, ilestpratique de réunirsur

une oudeux gures lesgraphes signicatifsde lasynthèse d'une phrase.Les gures

7.12 et 7.13 illustrent les résultats du codage et décodage de la phrase Comment

allez-vous?.

0 0.02 0.04 0.06 0.08 0.1 0.12

−4

−3

−2

−1 0 1

2 x 10 4 Signal original

0 0.02 0.04 0.06 0.08 0.1 0.12

−4

−3

−2

−1 0 1

2 x 10 4 Signal synthétique

0 500 1000 1500 2000 2500 3000 3500 4000

40 60 80 100 120 140

Spectre original

0 500 1000 1500 2000 2500 3000 3500 4000

40 60 80 100 120 140

Spectre du signal synthétique

Fig. 7.11.: Signauxréel et synthétique avec leurs spectres respectifs

(29)

0 1000 2000 3000 4000 5000 6000 7000

−1 0 1

Original

comment.txt L tr = 256 ∆t = 32 [ms]

0 1000 2000 3000 4000 5000 6000 7000

−1 0 1

Synth.

0 1000 2000 3000 4000 5000 6000 7000

−1 0 1

Excit.

0 5 10 15 20 25

0 0.5 1

Gain

Fig. 7.12.:Signaux, excitationet gain

0 5 10 15 20 25

0 1 2 x 10 −3

V eff

comment.txt L

tr = 256 ∆t = 32 [ms]

0 5 10 15 20 25

0 0.5 1

Zcross

0 5 10 15 20 25

0 0.5 1

R xx1 /R xx0

0 5 10 15 20 25

0 100 200 300

Pitch [Hz]

Fig. 7.13.: Évolution des paramètres

(30)

7.8. Travail pratique

Le codage de la parole consiste en l'extraction des paramètres étudiés ci-dessus, à

savoir les coecients de prédiction linéaire,la période du pitch et le gain du ltre.

Cesparamètressontensuitetransmisvers lerécepteurquien eectuera ledécodage

en reconstituant lesignalsonore. And'y parvenir, ilfaut reprendreune partie des

éléments présentés plus haut et les placer dans un programme séquentiel dont la

structure vous est donnée ci-dessous.

7.8.1. Codage et décodage d'une phrase

Créezun chier Matlab vous permettantde coder puis décoder laphrase du chier

colibri.txt en vous inspirantde lastructure suivante :

Codage

% préparation de l'espace Matlab

% lecture de la phrase à coder et normalisation entre +/- 1

% initialisation de la longueur et du nombre de tranches

% initialisation des constantes et vecteurs nécessaires aux calculs

% répéter jusqu'à la dernière tranche

% choix de la trancher à coder

% analyse lpc de la tranche et calcul du gain

% recherche du signal d'excitation

%% suppression des fréquences supérieures à fmax du pitch

%% filtrage inverse pour obtenir l'excitation e(t)

% recherche de la période d'excitation Kp

%% autocorrélation de e(t) => ree

%% limitation de ree entre Tpmin et Tpmax

%% décision : voisé ou non

% concaténation dans une matrice des coefficients, gains et périodes

% fin de la boucle répéter

Décodage

% lecture de la matrice contenant tous les paramètres

% extraction du vecteur contenant les gains

% extraction du vecteur contenant les périodes Kp

% répéter jusqu'à la dernière tranche

% si Kp > 0 : génération des impulsions de période Kp

% si Kp = 0 : génération du bruit entre +1 et -1

% synthèse du son y(t)

% ajustage de l'amplitude à Veff

% concaténation des tranches

(31)

% fin de la boucle répéter

% limitation de l'amplitude à +/- 1

% traçage des signaux intéressants

Pour comparer lesignaloriginalavec lesignalsynthétisé, ilpeut être intéressant de

les transférer simultanément vers CoolEdit dans un chier *.txt de type ASCII.

On peut, par exemple, envoyer le signal original vers le canal gauche et le signal

synthétisé vers ladroite :

% fichier CoolEdit : gauche = original, droite = synthèse

signaux = 32e3*[original synthese];

save fichier.txt signaux -ascii -tabs

LorsduchargementduchieravecCoolEdit,onpréciseraquel'onsouhaitetravailler

en mode stéréophonique.

7.8.2. Analyse des résultats

Débitd'informations Ayantterminélecodageetappréciélaqualitédes résultats

obtenus, il est intéressant de calculer le taux de compression ainsi obtenu. Pour ce

faire,considérant que lesinformationstransmises sont codées 8 bits,

1. faiteslalistedes informationstransmises après codage LPC;

2. àquel rythme sont-elles transmises?

3. calculezlenombre de bits nécessaires pour chacune d'entre elles;

4. calculezledébit d'informations etle tauxde compression obtenu par rapport

àun codage8 bits de laparole non codée.

Modications du codage

1. Qu'est-cequichangesil'excitationestpurementaléatoire(

K p = 0

pourtoutes

lestranches)?

2. Plutôtquederechercher ettransmettrelepitchde chaque tranche, onpeut, à

chaqueinstantd'échantillonnage,transmettrelesignedu résidu

e(n)

etl'utili-

ser comme signal d'excitation. Que pensez-vous du résultat de cette synthèse

très simple?

7.8.3. Analyse et amélioration de la synthèse

Vous ne serez sûrementpas satisfait des résultatsobtenusaupremieressai. Essayez

d'apporter des modications à votre algorithme. Parexemple :

Avez-vous pensé au fait que les conditions nales d'une tranche doivent être les

conditions initialesde la suivante?

Le compteur de pitch doit-ilêtre propre àchaque tranche ouglobal?

(32)

Faut-il augmenter le nombre de paramètres?

Essayez de varier les seuils de détection du pitch.

Andemieuxsaisirlespossibilitésd'amélioration,sélectionnezunetranche quivous

paraîtintéressante.Puissurcelle-ci,tentezdecomprendreoùsesituentlesdicultés

etobservez les eets de vos modications.

Malgré tous vos essais, il est peu probable que vous atteigniez la qualité de la té-

léphonie mobile. En eet, bien que celle-ci soit basée sur le codage LPC, on a dû,

pour des raisons de qualité du son, amélioré l'analyse et la restitution du signal

d'excitation.Vous trouverez plus d'informationsdans la référence[2].

7.9. Minimisation de l'écart quadratique

Nous avons vu que la puissance ou variance de l'écart de l'ensemble des

N

échan-

tillons

e[n]

à disposition avec

0 ≤ n ≤ N

-1 dépend du choix des coecients de

prédiction

a k

et qu'elle vaut :

σ e 2 (a k ) = 1 N

N − 1

X

n=0

e 2 [n] = 1 N

N − 1

X

n=0

s[n] +

p

X

k=1

a k s[n − k]

! 2

(7.16)

a 1

a 2 σ e (a 1 ,a 2 )

Fig. 7.14.:Variance de l'erreur de prédiction

Mathématiquement,lavarianceest donc une fonction des paramètresde prédiction

a k

:

(33)

σ e 2 = σ e 2 (a 1 , a 2 , . . . , a p ) = σ e 2 (a k )

(7.17)

et les valeurs des paramètres correspondant à sa valeur minimum s'obtiennent en

annulant l'ensembledes dérivées partiellesde

σ e 2

par rapportaux paramètres

a k

:

δσ e 2 (a k ) δa k

= 0, k = 1, . . . , p

(7.18)

Ladérivation de l'équation(7.16) s'eectue commesuit :

1 2

δσ e 2 (a k ) δa k

= 1 2

δ δa k

 1 N

N − 1

X

n=0

s[n] +

p

X

m=1

a m s[n − m]

! 2 

= 1 2

1 N

N − 1

X

n=0

 δ δa k

s[n] +

p

X

m=1

a m s[n − m]

! 2 

= 1

N

N − 1

X

n=0

s[n] +

p

X

m=1

a m s[n − m]

! δ δa k

s[n] +

p

X

m=1

a m s[n − m]

!!

= 1

N

N − 1

X

n=0

s[n] +

p

X

m=1

a m s[n − m]

!

(0 + s[n − k])

!

= 1

N

N − 1

X

n=0

s[n] s[n − k] +

p

X

m=1

a m s[n − m] s[n − k]

!!

= 1

N

N − 1

X

n=0

s[n] s[n − k] +

p

X

m=1

a m

2 N

N − 1

X

n=0

s[n − m] s[n − k]

= r ss [k] +

p

X

m=1

a m r ss [k − m]

L'annulation de ce résultatdonne

p

X

m=1

a m r ss [k − m] = − r ss [k], 1 ≤ k ≤ p

quireprésente

p

équations pour les

p

paramètresinconnus

a m

:

a 1 r ss [0] + a 2 r ss [ − 1] + · · · + a p r ss [1 − p] = − r ss [1]

a 1 r ss [1] + a 2 r ss [0] + · · · + a p r ss [2 − p] = − r ss [2]

.

.

.

=

...

a 1 r ss [p − 1] + a 2 r ss [p − 2] + · · · + a p r ss [0] = − r ss [p]

avec :

r ss [k] =

N − 1

X

n=0

s[n]s[n − k], k = 1, . . . , p

(7.19)

(34)

On voit ainsi queles coecientsdes inconnues

a k

sontles

p

premières valeursde la

fonctiond'autocorrélation

r ss [k]

du signal

s[n]

comportant

N

échantillons.

Cet ensembled'équations linéairespeut s'écriresous forme matricielle:

R ss a = − r ss

(7.20)

R ss

est lamatrice

p × p

d'autocorrélation,

r ss

le vecteur

p × 1

d'autocorrélation et

a

le vecteur

p × 1

des paramètres de prédiction. On notera que, la fonction d'autocorrélation étant paire, lamatrice

R ss

est symétrique.

Onvoitdoncquelescoecientsdeprédictionlinéairepeuvents'obtenirparinversion

de lamatrice

R ss

:

a = − R 1

ss r ss

(7.21)

(35)

[1] R. Boiteet al.,Traitement de la parole, PPUR, 2000

[2] B. Porat, A Coursein Digital Signal Processing, John Wiley, 1997

[3] J.R. Deller, J.G. Proakis,J.L Hansen, Discrete-Time Processing of Speech Si-

gnals,Macmillan,1993

[4] V.K.Ingle, J.G.Proakis, Digital Signal Processing Using MatLab, PWS, 1997

[5] C.S. Burrus etall, Computer-Based Exercises for Signal Processing Using Mat-

Lab, Prentice Hall,1994

(36)
(37)

adaptatif

Le ltrage adaptatif est basé sur la recherche de paramètres optimaux par mini-

misation d'un critère de performance. Fréquemment, cette minimisation se fait en

recherchantlesmoindrescarrés.Étantdonnélecadredanslequel cetteprésentation

est faite,il est nécessaire d'introduire quelques élémentspréalables.

On commencera donc par rappeler quelques dénitions d'estimateurs statistiques

puis onmontrerace quesont larégression linéaireetle ltragede Wiener avant de

parlerdu ltrageadaptatif proprement dit.

8.1. Notions de probabilités

8.1.1. Dénitions de quelques estimateurs statistiques

Considérant une variable aléatoire réelle

z

, on la caractérise généralement à l'aide des grandeurs suivantes :

1. Savaleur moyenne:

µ z = lim

N →∞

1 N

N − 1

X

n=0

z(n)

(8.1)

On notera que la valeur moyenne

µ z

représente la composante continue du

signalautour de laquelle prennent place lesuctuations.

2. Sapuissance moyenne :

P z = µ z 2 = lim

N →∞

1 N

N − 1

X

n=0

z 2 (n)

(8.2)

3. Sa variance qui mesure la puissance des uctuations autour de la valeur

moyenne

σ 2 z = lim

N →∞

1 N

N − 1

X

n=0

(z(n) − µ z ) 2

= lim

N →∞

1 N

N − 1

X

n=0

z 2 (n) − 2µ z z(n) + µ 2 z

= µ z 2 − 2µ z µ z + µ 2 z = µ z 2 − 2µ 2 z + µ 2 z

(38)

quivaut nalement

σ z 2 = µ z 2 − µ 2 z

(8.3)

4. Son écart-type (ou déviation standard) déni comme la racine carrée de la

variance:

σ z = p

µ z 2 − µ 2 z

(8.4)

Sa valeur est égale à la valeur ecace des variations du signal autour de la

valeur moyenne.

Il est intéressant de noter que la puissance moyenne (

µ z 2

) de la variable

z

peut

également s'écrire sous laforme

µ z 2 = µ 2 z + σ z 2

(8.5)

Onvoitainsiquelapuissancede lavariable

µ z 2

est égaleàlapuissancede savaleur

moyenne

µ 2 z

plus lapuissance de ses uctuations

σ z 2

.

8.1.2. Remarques

1. Il est intéressant de relever que si l'on considère une notation vectorielle du

type :

z = [z(0), . . . , z(N − 1)], z T =

z(0)

.

.

.

z(N − 1)

lapuissance s'écrit simplementsous laformed'un produit scalaire :

P z = 1 N

N − 1

X

n=0

z 2 (n) = 1

N z z T

(8.6)

2. De même, l'indépendance (ou la non correspondance) de deux signaux ou

vecteurs peut se mesurer avec leproduit scalaire :

r = x y T =

N − 1

X

n=0

x(n) y(n)

(8.7)

Dansle cas où lessignaux sont orthogonaux (c'està dire indépendants),

x y T

seranulalorsque silessignaux sontfortement dépendants (ou ressemblants),

lavaleur du produit

x y T

sera proche de son maximum.

8.1.3. Fonction de répartition et densité de probabilités

Dans le cas d'une variable aléatoire continue

x

, on dénit la probabilité d'avoir la valeur mesurée

x 0

inférieure àune valeur

x

donnée

P (x) ≡

prob

(x 0 < x)

(8.8)

(39)

Cettefonction porte le nom de fonction de répartitionla variable

x

.

Laprobabilitéd'avoirlavaleurmesurée

x 0

compriseentre deux valeurs

x

et

x + ∆x

vaut donc

P (x < x 0 < x + ∆x) = P (x 0 < x + ∆x) − P (x 0 < x)

(8.9)

Cetterelation permet de dénir ladensité de probabilité

p(x) ≡ lim

∆x → 0

P (x < x 0 < x + ∆x)

∆x = dP (x)

dx

(8.10)

etd'en tirer la fonctionde répartition

P (x) = Z x

−∞

p(x) dx

(8.11)

avec comme propriété évidente

P ( −∞ < x 0 < + ∞ ) = P ( ∞ ) = 1

(8.12)

C'estla densitéde probabilité quiest généralementutilisée commemodèlede pour

décrirelarépartion des valeursd'unevariablealéatoire.Àpartirde celle-ci,onpeut

calculerlavaleur moyenne, la varianceet lapuissance d'unevariable

x

à l'aide de

µ x =

Z + ∞

−∞

x p(x) dx

(8.13)

σ x 2 =

Z + ∞

−∞

(x − µ x ) 2 p(x) dx

(8.14)

µ x 2 =

Z + ∞

−∞

x 2 p(x) dx

(8.15)

8.1.4. Modèles statistiques

Lesmodèles lesplus fréquemmentutilisés sont

1. Larépartition uniforme entre deux valeurs extrêmes

x min

et

x max p(x) =

constante

= 1

x max − x min

= 1

∆x

(8.16)

On montre quedans ce cas, la variancevaut

σ x 2 = (x max − x min ) 2

12 = ∆x 2

12

(8.17)

2. Larépartition gaussienne entre

−∞

et

+ ∞ p(x) = 1

√ 2π σ x

exp − (x − µ x ) 2 2 σ 2 x

!

(8.18)

Il est intéressant de relever que que la probabilité de trouver à l'intérieur des

domaines

± σ x

et

± 3σ x

par rapportàlavaleurmoyennevalentrespectivement

P ( | x − µ x | < σ x ) = 68%

(8.19)

P ( | x − µ x | < 3σ x ) = 99.7%

(8.20)

(40)

Suivantlesapplications,onpeutimaginerd'autresdistributionscommeparexemple

larépartition exponentielledécrite par

p(x) = 1

√ 2 σ x

exp

− √

2 | x − µ x | σ x

(8.21)

−4 −2 0 2 4

0 0.2 0.4 0.6 0.8

p(x)

−4 −2 0 2 4

0 0.5 1

P(x)

−4 −2 0 2 4

0 0.2 0.4 0.6 0.8

−4 −2 0 2 4

0 0.5 1

−4 −2 0 2 4

0 0.2 0.4 0.6 0.8

x

−4 −2 0 2 4

0 0.5 1

x

Fig. 8.1.: Illustrationdes distributionsuniforme, gaussienne etexponentielle

8.2. Régression linéaire

La régression linéaire consiste en la recherche de la droite passant au mieux parmi

un ensemble de points mesurés (gure 8.2). Le critère conduisant à cet optimum

est la minimisationdes distances quadratiques entre les points mesurés et la droite

optimum.

On notera que la régression linéaire s'applique aux systèmes statiques alors que

l'approche de Wiener (que l'on verra dans la section suivante) sert à optimiser des

systèmes évoluant au coursdu temps.

(41)

a

b J(a,b)

x(n) y(n)

y m = ax + b e(n)

Fig.8.2.: Régression linéaire

8.2.1. Mesure, modèle et écart

Commeonsouhaitefairepasserunedroiteparmiun ensemblede points,onsedonne

un modèle dontl'équation est :

y m = ax + b

(8.22)

L'écartde

y(n)

par rapport aumodèle s'écrit donc :

e(n) = y(n) − y m (n)

e(n) = y(n) − (a x(n) + b)

(8.23)

Sil'on décrit lamesure

y(n)

par rapport au modèle

y m (n)

, ona évidemment :

y(n) = y m (n) + e(n)

(8.24)

On associegénéralement deux grandeurs à l'écart

e(n)

:

1. savaleur moyenne

µ e

qui doit tendrevers 0si lemodèle n'est pas biaisé;

2. sa puissance

σ 2 e

qui doit diminuer lorsque

a

et

b

se rapprochent des vraies valeurs liant

y

à

x

.

On notera que pour le calcul d'une régression linéaire,on fait l'hypothèse qu'iln'y

apas de bruit sur la valeur de la variable indépendante

x(n)

.

(42)

8.2.2. Minimisation de l'écart quadratique

L'obtention de la droite passant au mieux parmi les points mesurés nécessite la

recherche du minimum d'une fonction dépendant des paramètres recherchés

a

et

b

.

Pourcela,ondénituncritèred'optimisationquimesurelapuissanceoulavariance

de l'écart :

J (a, b) = 1 N

N − 1

X

n=0

e 2 (n) = 1 N

N − 1

X

n=0

(y(n) − (ax(n) + b)) 2

(8.25)

Lorsque l'écartquadratique est minimum, ona :

∂J (a, b)

∂a = 0 ∂J (a, b)

∂b = 0

(8.26)

avec

∂J(a, b)

∂a = 1

N

N − 1

X

n=0

2 (y(n) − (ax(n) + b)) (0 − x(n) − 0)

= 2

N

N − 1

X

n=0

− x(n) y(n) + a x 2 (n) + b x(n)

= 2

N −

N − 1

X

n=0

x(n) y(n) + a

N − 1

X

n=0

x 2 (n) + b

N − 1

X

n=0

x(n)

!

∂J (a, b)

∂b = 1

N

N − 1

X

n=0

2 (y(n) − (ax(n) + b)) (0 − 0 − 1)

= 2

N

N − 1

X

n=0

( − y(n) + ax(n) + b)

= 2

N −

N − 1

X

n=0

y(n) + a

N − 1

X

n=0

x(n) +

N − 1

X

n=0

b

!

On en tire 2 équations dont les inconnues sont

a

et

b

:

a 1

N

N − 1

X

n=0

x 2 (n) + b 1 N

N − 1

X

n=0

x(n) = 1 N

N − 1

X

n=0

x(n) y(n)

(8.27)

a 1 N

N − 1

X

n=0

x(n) + 1 N

N − 1

X

n=0

b = 1 N

N − 1

X

n=0

y(n)

(8.28)

(43)

8.2.3. Équations de la régression linéaire

Sesouvenantde ladénition d'unevaleurmoyenne,onvoitqueleséquations (8.28)

et(8.27) s'écrivent plus simplement sous la forme:

a µ x + b = µ y

(8.29)

a µ x 2 + b µ x = µ xy

(8.30)

Sous formematricielle,cela donne:

µ x 1 µ x 2 µ x

a b

= µ y

µ xy

dont la solutionest

a b

=

µ x 1 µ x 2 µ x

− 1 µ y µ xy

(8.31)

L'inversion de la matriceet le calculexplcite de

a

et

b

donnent alors

a = µ x µ y − µ xy

µ 2 x − µ x 2

(8.32)

b = µ x µ xy − µ y µ x 2

µ 2 x − µ x 2

(8.33)

Dans le cas particulier où la droite passe par l'origine, les valeurs moyennes

µ x

et

µ y

sont nulles etona :

a = µ xy

µ x 2

=

P x(n) y(n)

P x 2 (n) = x T y

x T x , b = 0

(8.34)

8.3. Filtrage de Wiener

Dansde nombreuses applications, lessignaux temporels sontentachées d'une inter-

férence ou d'un bruit non désirés. Il faut alors trouver une solution permettant de

supprimeroutout aumoins réduireces composantes perturbatrices. Dansle cas où

lespectredu signaldésiréetcelui dusignalperturbateursesuperposent,iln'estpas

possiblede recouriraultrageclassique. Leltre de Wiener apporteune solution à

ce problème lorsque le processus est stationnaire.

8.3.1. Dénition du problème

On considère icile schéma de la gure 8.3dans lequel on trouve:

1. lesignal d'excitation

x(n)

connu oumesuré;

2. lesignal de sortie du processus

y p (n)

inatteignable;

(44)

Σ

Σ

x(n)

e(n)

y(n)

ε(n)

y w (n) w k

Processus inconnu

y p (n)

Minimisation de σ ε 2

Fig. 8.3.: Filtragede Wiener

3. lesignal de sortie mesuré

y(n)

entâché d'une perturbation inconnue

e(n)

;

4. lesignal modélisé

y w (n)

à l'aide des paramètres

w k

;

5. lesignal d'écart

(n)

entre lemodèle

y w (n)

et lamesure

y(n)

.

Onadmetquelesignalmesuré

y(n)

,causéparl'excitation

x(n)

,peutêtremodéliséà

l'aided'unmodèleMA(MovingAverage=moyenneglissante)d'ordre

p

représentant un processus stationnaireinconnu:

y p (n) =

p − 1

X

k=0

w k x(n − k)

Le but poursuivi est de trouver les coecients

w k

du modèle MA à partir de la

mesuredes signaux d'entrée

x(n)

et de sortie

y(n)

.

La recherche d'une solution consiste à rendre

y w (n)

aussi proche que possible du

signal

y p (n)

en minimisant l'erreur quadratique moyenne (Mean Square Error = MSE) par ajustage des coecients

w k

.Il est important de bien comprendre que

si la solution exacte est trouvée, le signal d'écart

ε(n)

n'est pas

nul, mais égal à la peturbation

e(n)

de la mesure.

An d'allégerl'écriture de ce qui suit, on se contentera de traiter le cas particulier

oùleprocessusest décritpar 3paramètres(l'extensionàunedimensionplus grande

sefait sans diculté)

W =

 w 0

w 1

w 2

(8.35)

Références

Documents relatifs

[r]

Loin de mettre en œuvre de simples objectifs au niveau national, le décret législatif prévoit la mise en place d’un « maillage » territorial destiné à promouvoir une

outre, le Groupe de travail spécial de l’Accord de Paris est invité à « formuler d’autres directives sur les caractéristiques des contributions déterminées au niveau national

Or, depuis 2000 (décision n° 2000-437 DC du 19 décembre 2000), le Conseil s’affranchit de cette auto-limitation, au demeurant critiquée par la doctrine et dont la base était

 Consigne : Ecris les mots qui correspondent aux dessins...

Les normes sont-elles respectées pour un opérateur soumis à un niveau d’intensité acoustique de 105 décibels pendant 1 heures. (répondre par « oui » ou par « non » en

[r]

[r]