matlab
Transcript of 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
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
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
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
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
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
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
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
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
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
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
2π
N. (23)
INRS-EMT J. Benesty 10
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
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
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
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
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
2π
L= 0.89K
2π
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
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
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
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
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
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
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
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
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
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
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
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
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