matlab

28
Estimation spectrale ethodes non-param´ etriques On va consid´ erer le probl` eme de l’estimation de la densit´ e spectrale de puissance (ou spectre) d’un processus al´ eatoire stationnaire du second ordre. Il existe deux grandes approches pour l’estimation spectrale. la premi` ere contient des m´ ethodes dites classiques ou non-param´ etriques qui sont bas´ ees sur le p´ eriodogramme. La seconde classe contient des ethodes dites non-classiques ou param´ etriques qui utilisent un mod` ele pour le processus. INRS-EMT J. Benesty

Transcript of matlab

Page 1: matlab

Estimation spectraleMethodes non-parametriques

On va considerer le probleme de l’estimation dela densite spectrale de puissance (ou spectre) d’unprocessus aleatoire stationnaire du second ordre.

Il existe deux grandes approches pour l’estimationspectrale. la premiere contient des methodes ditesclassiques ou non-parametriques qui sont basees surle periodogramme. La seconde classe contient desmethodes dites non-classiques ou parametriques quiutilisent un modele pour le processus.

INRS-EMT J. Benesty

Page 2: matlab

Plan

• Rappels

• Motivation

• Le periodogramme

• Le periodogramme modifie

• La methode de Bartlett

• La methode de Welch

• La methode de Blackman-Tukey

• La methode de Capon

INRS-EMT J. Benesty 1

Page 3: matlab

Rappels

On considere un processus discret x(n) (n =0,±1,±2, ...,±N) aleatoire stationnaire du secondordre de moyenne nulle et dont la fonctiond’autocorrelation est:

rx(k) = E {x(n + k)x∗(n)} . (1)

La transformee de Fourier de rx(k) est le spectre dex(n):

Sx(ω) =∞∑

k=−∞rx(k) exp(−jωk), (2)

ou ω est la frequence angulaire. En fait, la dsprepresente la repartition de la puissance du signal x(n)sur l’axe des frequences. On a les proprietes suivantes:

• Sx(ω) est reelle.

• Sx(ω) ≥ 0.

• E{|x(n)|2} = rx(0) = 12π

∫ π

−πSx(ω)dω.

INRS-EMT J. Benesty 2

Page 4: matlab

Motivation

Comme le spectre d’un signal est la transformee deFourier de sa fonction d’autocorrelation, estimer lespectre est equivalent a estimer l’autocorrelation. Pourun processus ergodique, on a:

limN→∞

12N + 1

N∑n=−N

x(n + k)x∗(n)

= rx(k). (3)

Ainsi, si x(n) est connu pour tout n, estimer le spectreest une tache simple en theorie, puisqu’il suffit decalculer rx(k) en utilisant (3) et calculer ensuite satransformee de Fourier. Cependant, en pratique, il y adeux difficultes tres importantes:

• le nombre de donnees est toujours tres limite et

• le bruit.

Ainsi, l’estimation du spectre consiste a estimer Sx(ω)a partir d’un nombre fini de donnees bruitees.

INRS-EMT J. Benesty 3

Page 5: matlab

Le periodogramme

La methode du periodogramme fut introduite parSchuster en 1898.

Pour un processus ergodique, la sequenced’autocorrelation peut, en theorie, etre determinee avecune moyenne temporelle:

rx(k) = limN→∞

12N + 1

N∑n=−N

x(n + k)x∗(n)

. (4)

Cependant, si x(n) est mesuree sur un intervallefini seulement (n = 0, 1, ..., N), alors la fonctiond’autocorrelation doit etre estimee avec une sommefinie:

rx(k) =1N

N−1∑n=0

x(n + k)x∗(n). (5)

Afin de s’assurer que les valeurs de x(n) qui sont endehors de cet intervalle [0, N − 1] sont exclus de la

INRS-EMT J. Benesty 4

Page 6: matlab

somme, (5) sera reecrite comme suit:

rx(k) =1N

N−1−k∑n=0

x(n + k)x∗(n), k = 0, 1, ..., N − 1, (6)

pour k < 0, on utilisera la propriete rx(−k) = r∗x(k),et rx(k) sera egal a zero pour |k| ≥ N . Si on prendmaintenant la transformee de Fourier de rx(k), onobtient une estimee du spectre – le periodogramme:

Sper(ω) =N−1∑

k=−N+1

rx(k) exp(−jωk). (7)

Il est plus pratique d’exprimer le periodogramme enfonction du processus x(n). Soit

xN(n) ={

x(n), 0 ≤ n ≤ N − 10, sinon

. (8)

Donc xN(n) est le produit de x(n) avec une fenetreregtangulaire wR(n),

xN(n) = wR(n)x(n). (9)

INRS-EMT J. Benesty 5

Page 7: matlab

On a:

rx(k) =1N

∞∑n=−∞

xN(n + k)x∗N(n)

=1N

xN(k) ∗ x∗N(−k). (10)

En prenant la transformee de Fourier, leperiodogramme devient:

Sper(ω) =1N

XN(ω)X∗N(ω) =

1N|XN(ω)|2, (11)

ou

XN(ω) =∞∑

n=−∞xN(n) exp(−jωn) =

N−1∑n=0

x(n) exp(−jωn).

Code en MATLAB

function Px = periodogram(x);N = length(x);Px = abs(fft(x(1:N),1024)).^2/N;

INRS-EMT J. Benesty 6

Page 8: matlab

Performance du periodogramme

En augmentant le nombre de donnees, leperiodogramme devrait se rapprocher de la valeur duspectre Sx(ω). On s’interessera donc a si oui ou non:

limN→∞

E

{[Sper(ω) − Sx(ω)

]2}

= 0. (12)

Pour que le periodogramme converge en moyennequadratique, il faut qu’il soit asymptotiquement non-biaise:

limN→∞

E{

Sper(ω)}

= Sx(ω) (13)

et que sa variance converge vers zero quand N tendvers l’infini,

limN→∞

var{

Sper(ω)}

= 0. (14)

En d’autres termes, Sper(ω) doit estimer le spectreavec consistance.

INRS-EMT J. Benesty 7

Page 9: matlab

a. Biais

On a, pour k = 0, 1, ..., N − 1:

E {rx(k)} =1N

N−1−k∑n=0

E {x(n + k)x∗(n)}

=1N

N−1−k∑n=0

rx(k)

=N − k

Nrx(k) (15)

et, pour k ≥ N , E {rx(k)} = 0. En utilisant lapropriete rx(−k) = r∗x(k), on obtient:

E {rx(k)} = wB(k)rx(k), (16)

ou

wB(k) ={

N−|k|N , |k| ≤ N

0, |k| > N(17)

est une fenetre (triangulaire) de Bartlett. Ainsi, rx(k)est un estimateur biaise de la fonction de correlation.

INRS-EMT J. Benesty 8

Page 10: matlab

Maintenant, pour le periodogramme:

E{

Sper(ω)}

= E

N−1∑k=−N+1

rx(k) exp(−jωk)

=N−1∑

k=−N+1

E {rx(k)} exp(−jωk)

=∞∑

k=−∞rx(k)wB(k) exp(−jωk)

=12π

Sx(ω) ∗ WB(ω), (18)

ou WB(ω) est la transformee de Fourier de la fenetrede Bartlett:

WB(ω) =1N

[sin(Nω/2)sin(ω/2)

]2

. (19)

Ainsi, le periodogramme est un estimateur biaise.Cependant, puisque WB(ω) converge vers uneimpulsion de Dirac quand N tend vers l’infini, leperiodogramme est asymptotiquement non-biaise:

limN→∞

E{

Sper(ω)}

= Sx(ω). (20)

INRS-EMT J. Benesty 9

Page 11: matlab

b. Variance

Malheureusement, il est difficile d’evaluer la variancedu periodogramme pour un signal x(n) quelconque carelle depend des moments d’ordre quatre du processus.Cependant, dans le cas ou x(n) est un signal blancGaussien et de variance σ2

x, on peut montrer que:

var{

Sper(ω)}

= σ4x. (21)

Ainsi la variance ne tend pas vers zero quand Ntend vers l’infini et le periodogramme n’est pas unestimateur consistant du spectre. En fait, puisqueSx(ω) = σ2

x, on a:

var{

Sper(ω)}

= S2x(ω). (22)

c. Resolution

Pour un nombre d’observations donnees N , il y a unelimite pour separer deux sinusoides tres proches. Laresolution du periodogramme est donnee par la formulesuivante:

res[Sper(ω)

]= ∆ω = 0.89

N. (23)

INRS-EMT J. Benesty 10

Page 12: matlab

Le periodogramme modifie

On a vu que le periodogramme estime le spectre de lafacon suivante:

Sper(ω) =1N

∣∣∣∣∣∞∑

n=−∞x(n)wR(n) exp(−jωn)

∣∣∣∣∣2

. (24)

Dans le periodogramme modifie, la fenetre wR(n) estremplacee par une fenetre generale w(n), pour obtenir:

Sper.m(ω) =1

NU

∣∣∣∣∣∞∑

n=−∞x(n)w(n) exp(−jωn)

∣∣∣∣∣2

, (25)

ou N est la longueur de la fenetre et

U =1N

N−1∑n=0

|w(n)|2 (26)

est une constante introduite pour que Sper.m(ω)soit asymptotiquement non-biaise. La variance duperiodogramme modifie est approximativement lameme que celle du periodogramme.

INRS-EMT J. Benesty 11

Page 13: matlab

En fait, la fenetre introduit un compromis entre laresolution spectrale (largeur du lobe principal) et lafuite de spectre (amplitude du lobe adjacent).

Code en MATLAB

function Px = mperiodogram(x,win);N = length(x);w = ones(N,1);if (win == 2) w = hamming(N);

elseif (win == 3) w = hanning(N);elseif (win == 4) w = bartlett(N);elseif (win == 5) w = blackman(N);

endU = norm(w)^2/N;xw = x(1:N).*w;Px = abs(fft(xw,1024)).^2/(N*U);

INRS-EMT J. Benesty 12

Page 14: matlab

La methode de Bartlett

La methode de Bartlett consiste a moyenner leperiodogramme. Elle produit un estimateur consistantdu spectre.

Soient xi(n), i = 1, 2, ...,K, K realisations decorreleesd’un processus aleatoire x(n) sur un intervalle 0 ≤ n <L. Si

S(i)per(ω) =

1L

∣∣∣∣∣L−1∑n=0

xi(n) exp(−jωn)

∣∣∣∣∣2

, i = 1, 2, ...,K, (27)

est le periodogramme de xi(n), le moyennage de cesperiodogrammes est:

Sx(ω) =1K

K∑i=1

S(i)per(ω). (28)

L’evaluation de la moyenne d’ensemble de Sx(ω)donne:

E{

Sx(ω)}

= E{

S(i)per(ω)

}

=12π

Sx(ω) ∗ WB(ω), (29)

INRS-EMT J. Benesty 13

Page 15: matlab

ou WB(ω) est transformee de Fourier de la fenetre deBartlett, wB(k), qui va de −L a L. Ainsi, commele periodogramme, Sx(ω) est asymptotiquement non-biaise. De plus, avec l’hypothese de donneesdecorrelees, il s’ensuit que

var{

Sx(ω)}

=1K

var{

S(i)per(ω)

}

≈ 1K

S2x(ω) (30)

qui tend vers zero quand K tend vers l’infini. Ainsi,Sx(ω) est un estimateur consistant du spectre quandK et L tendent vers l’infini.

Le probleme avec cette approche est que desrealisations decorrelees d’un processus ne sont engeneral pas disponibles. Typiquement, une seulerealisation de longueur N est a notre disposition.Ainsi, Bartlett proposa que x(n) soit partitionne enK sequences, de longueur L, qui ne se recouvrent pas,ou N = KL. On a:

xi(n) = x(n + iL), (31)

n = 0, 1, ..., L − 1, i = 0, 1, ...,K − 1.

INRS-EMT J. Benesty 14

Page 16: matlab

Finalement, l’estimateur de Bartlett est:

SB(ω) =1N

K−1∑i=0

∣∣∣∣∣L−1∑n=0

x(n + iL) exp(−jωn)

∣∣∣∣∣2

. (32)

Puisque les periodogrammes dans SB(ω) sont calculesen utilisant des sequences de longueur L, la resolutionest:

res[SB(ω)

]= 0.89

L= 0.89K

N, (33)

qui est K fois plus grande (ou pire) que celle duperiodogramme.

Code en MATLAB

function Px = bart(x,K);N = length(x);L = floor(N/K);Px = 0;n1 = 1;for i=1:K

Px = Px + periodogram(x(n1:n1+L-1))/K;n1 = n1 + L;

end

INRS-EMT J. Benesty 15

Page 17: matlab

La methode de Welch

En 1967, Welch proposa deux modifications a lamethode de Bartlett. La premiere est de permettreaux sequences xi(n) de se recouvrir et la seconde estde rajouter une fenetre a chacune de ces sequences,produisant ainsi un ensemble de periodogrammesmodifies qui sont moyennes.

En supposant que les sequences successives sontdecalees de D (≤ L) echantillons et que chacuned’entre elles est de longueur L, la i-th sequence estdonnee par:

xi(n) = x(n + iD), n = 0, 1, ..., L − 1. (34)

Ainsi, la quantite de recouvrement (overlap) entrexi(n) et xi+1(n) est L − D points, et si K sequencescouvrent les N donnees du signal, alors

N = L + D(K − 1). (35)

Par exemple, sans recouvrement (D = L) on a K =N/L sections de longueur L comme dans la methodede Bartlett. D’un autre cote, si les sequences se

INRS-EMT J. Benesty 16

Page 18: matlab

recouvrent de 50% (D = L/2), alors on peut former

K = 2N

L− 1 (36)

sections de longueur L. On peut maintenirla meme resolution (longueur de section) que lamethode de Bartlett tout en doublant le nombre deperiodogrammes modifies qui sont moyennes (K ≈2N/L), reduisant ainsi la variance. Cependant, avec50% de recouvrement, on peut aussi former

K =N

L− 1 (37)

sections de longueur 2L. On peut donc ameliorerla resolution et maintenir la meme variance que lamethode de Bartlett.

Par consequent, en permettant les sequences de serecouvrir, il est possible d’augmenter le nombre et/oula longueur des sequences qui sont moyennees, pourarriver a un compromis entre la reduction de la varianceet une meilleure resolution.

INRS-EMT J. Benesty 17

Page 19: matlab

La methode de Welch peut s’ecrire directement enfonction de x(n):

SW(ω) =1

KLU

K−1∑i=0

∣∣∣∣∣L−1∑n=0

w(n)x(n + iD) exp(−jωn)

∣∣∣∣∣2

,

(38)

ou en fonction du periodogramme modifie:

SW(ω) =1K

K−1∑i=0

S(i)per.m(ω). (39)

On peut montrer que:

E{

SW(ω)}

= E{

Sper.m(ω)}

=1

2πLUSx(ω) ∗ |W (ω)|2,

(40)

ou W (ω) est la transformee de Fourier de lafenetre w(n). Ainsi, la methode de Welch estasymptotiquement non-biaisee. La resolution dependde la fenetre. On peut aussi montrer, que pour unrecouvrement de 50% et une fenetre de bartlett, lavariance est approximativement:

var{

SW(ω)}≈ 9

8KS2

x(ω). (41)

INRS-EMT J. Benesty 18

Page 20: matlab

Code en MATLAB

function Px = welch(x,L,over,win);

if (over >= 1) | (over < 0)error(‘Overlap is invalid’)

endN = length(x);n1 = 1;n0 = (1-over)*L;K = 1+floor((N-L)/n0);Px = 0;for i=1:K

Px = Px + mperiodogram(x(n1:n1+L-1),win)/K;n1 = n1 + n0;

end

INRS-EMT J. Benesty 19

Page 21: matlab

La methode de Blackman-Tukey

Pour un nombre fini de donnees N , la variance derx(k) pour les valeurs de k proches de N sera grande.Par exemple, l’estimee de rx(k) pour k = N − 1 est:

rx(N − 1) =1N

x(N − 1)x(0). (42)

Il n’y a pas vraiment de moyennage pour |k| ≈ N ,meme si N est tres grand; donc ces estimees seronttoujours peu fiables. Par consequent, la seule manierede reduire la variance du periodogramme est de reduireleurs contributions.

Dans la methode de Blackman-Tukey (ou periodogramsmoothing), la variance du periodogramme est reduiteen ajoutant une fenetre a rx(k) afin de reduire lacontribution d’estimees peu fiables du periodogramme.La methode de Blackman-Tukey s’ecrit donc:

SBT(ω) =M∑

k=−M

rx(k)w(n) exp(−jωk), (43)

ou w(n) est une fenetre appliquee a l’estimation dela fonction de correlation. Par exemple, si w(n) est

INRS-EMT J. Benesty 20

Page 22: matlab

une fenetre rectangulaire qui va de −M a M avecM < N − 1, alors les estimees de rx(n) qui ontune variance importante sont mises a zero, et parconsequent l’estimation du spectre aura une plus petitevariance. Par contre, la resolution sera moins bonnepuisqu’ un plus petit nombre d’estimees sera utilise.

Code en MATLAB

function Px = persmooth(x,win,M);N = length(x);R = covar(x,M);r = [fliplr(R(1,2:M),R(1,1),R(1,2:M)];M = 2*M-1;w = ones(M,1);if (win == 2) w = hamming(M);

elseif (win == 3) w = hanning(M);elseif (win == 4) w = bartlett(M);elseif (win == 5) w = blackman(M);

endr = r’.*w;Px = abs(fft(r,1024));

INRS-EMT J. Benesty 21

Page 23: matlab

La methode de Capon

Soit x(n) un processus aleatoire stationnaire du secondordre de moyenne nulle et dont le spectre est Sx(ω).Soit gi(n) un filtre passe-bande ideal, avec une largeurde bande ∆ et une frequence centrale ωi,

|Gi(w)| ={

1, |ω − ωi| < ∆/20, sinon

. (44)

Si le signal x(n) passe a travers le filtre gi(n), alors lespectre du processus de sortie, yi(n), est:

Syi(ω) = Sx(ω)|Gi(w)|2 (45)

et la puissance du signal yi(n) est:

E{|yi(n)|2} =

12π

∫ π

−π

Syi(ω)dω

=12π

∫ π

−π

Sx(ω)|Gi(w)|2dω

=12π

∫ ωi+∆/2

ωi−∆/2

Sx(ω)dω. (46)

INRS-EMT J. Benesty 22

Page 24: matlab

Si ∆ est suffisamment petit pour que Sx(ω) soitapproxime a une constante a travers le filtre bande-passe, alors la puissance de yi(n) peut etre approximeea:

E{|yi(n)|2} = Sx(ω)

∆2π

. (47)

Ainsi, il est possible d’estimer la densite spectrale depuissance du signal x(n) a la frequence ω = ωi a partirde l’estimation de la puissance du signal yi(n).

Il reste maintenant a determiner le filtre gi(n) et ∆.

Soit gi(n) un filtre RIF passe-bande complexe et d’ordrep. Pour garantir la meme puissance a l’entree et a lasortie de ce filtre pour la frequence ωi, Gi(w) doit etrecontraint d’avoir un gain egal a un pour ω = ωi,

Gi(wi) =p∑

n=0

gi(n) exp(−jωin) = 1 (48)

= gHi ei = eH

i gi,

ou

gi =[

gi(0) gi(1) · · · gi(p)]T

,

ei =[

1 exp(jωi) · · · exp(jωip)]T

.

INRS-EMT J. Benesty 23

Page 25: matlab

D’autre part:

E{|yi(n)|2} = E

{|gHi x(n)|2} = gH

i Rxgi, (49)

ou

Rx = E{x(n)xH(n)

}(50)

est la matrice d’autocorrelation du signal x(n).

Le critere pour concevoir le filtre passe-bande est deminimiser E

{|yi(n)|2} avec la contrainte gHi ei = 1.

Pour cela, on utilise la methode de Lagrange:

J = gHi Rxgi + λ(1 − gH

i ei). (51)

En minimisant J par rapport a gi et en egalant a zero,on obtient:

2Rxgi − λei = 0(p+1)×1, (52)

soit

gi =λ

2R−1

x ei. (53)

INRS-EMT J. Benesty 24

Page 26: matlab

En remplacant gi = λ2R

−1x ei dans la contrainte gH

i ei =1, on obtient:

λ

2=

1eH

i R−1x ei

. (54)

D’ou la solution:

gi =R−1

x ei

eHi R−1

x ei

(55)

et la puissance minimale est donc deduite:

E{|yi(n)|2} =

1eH

i R−1x ei

. (56)

Pour une frequence quelconque, on a:

g =R−1

x e

eHR−1x e

, (57)

ou

e =[

1 exp(jω) · · · exp(jωp)]T

.

INRS-EMT J. Benesty 25

Page 27: matlab

Maintenant, il reste a determiner ∆. Si le signal x(n)est un bruit blanc de variance σ2

x, on a:

g =R−1

x e

eHR−1x e

=σ−2

x e

σ−2x eHe

=1

p + 1e (58)

et

E{|yi(n)|2} =

σ2x

p + 1. (59)

De plus Sx(ω) = σ2x. Comme:

Sx(ω) =E

{|yi(n)|2}∆/2π

=σ2

x

p + 12π

∆, (60)

on en deduit que:

∆ =2π

p + 1. (61)

Dans le cas general, on aura donc:

SMV(ω) =p + 1

eHR−1

x e, (62)

ou Rx est une estimation de Rx. C’est la methode deCapon (ou minimum variance spectrum estimate).

INRS-EMT J. Benesty 26

Page 28: matlab

Code en MATLAB

function Px = minvar(x,p);R = covar(x,p);[v,d] = eig(R);U = diag(inv(abs(d)+eps));V = abs(fft(v,1024)).^2;Px = 10*log10(p)-10*log10(V*U);

INRS-EMT J. Benesty 27