Vous êtes sur la page 1sur 28

Estimation spectrale

Methodes non-parametriques
On va considerer le probl`eme de lestimation de
la densite spectrale de puissance (ou spectre) dun
processus aleatoire stationnaire du second ordre.
Il existe deux grandes approches pour lestimation
spectrale. la premi`ere contient des methodes dites
classiques ou non-parametriques qui sont basees sur
le periodogramme. La seconde classe contient des
methodes dites non-classiques ou parametriques qui
utilisent un mod`ele pour le processus.
INRS-EMT J. Benesty
Plan
Rappels
Motivation
Le periodogramme
Le periodogramme modie
La methode de Bartlett
La methode de Welch
La methode de Blackman-Tukey
La methode de Capon
INRS-EMT J. Benesty 1
Rappels
On consid`ere un processus discret x(n) (n =
0, 1, 2, ..., N) aleatoire stationnaire du second
ordre de moyenne nulle et dont la fonction
dautocorrelation est:
r
x
(k) = E {x(n +k)x

(n)} . (1)
La transformee de Fourier de r
x
(k) est le spectre de
x(n):
S
x
() =

k=
r
x
(k) exp(jk), (2)
o` u est la frequence angulaire. En fait, la dsp
represente la repartition de la puissance du signal x(n)
sur laxe des frequences. On a les proprietes suivantes:
S
x
() est reelle.
S
x
() 0.
E{|x(n)|
2
} = r
x
(0) =
1
2
_

S
x
()d.
INRS-EMT J. Benesty 2
Motivation
Comme le spectre dun signal est la transformee de
Fourier de sa fonction dautocorrelation, estimer le
spectre est equivalent `a estimer lautocorrelation. Pour
un processus ergodique, on a:
lim
N
_
_
_
1
2N + 1
N

n=N
x(n +k)x

(n)
_
_
_
= r
x
(k). (3)
Ainsi, si x(n) est connu pour tout n, estimer le spectre
est une tache simple en theorie, puisquil sut de
calculer r
x
(k) en utilisant (3) et calculer ensuite sa
transformee de Fourier. Cependant, en pratique, il y a
deux dicultes tr`es importantes:
le nombre de donnees est toujours tr`es limite et
le bruit.
Ainsi, lestimation du spectre consiste `a estimer S
x
()
`a partir dun nombre ni de donnees bruitees.
INRS-EMT J. Benesty 3
Le periodogramme
La methode du periodogramme f ut introduite par
Schuster en 1898.
Pour un processus ergodique, la sequence
dautocorrelation peut, en theorie, etre determinee avec
une moyenne temporelle:
r
x
(k) = lim
N
_
_
_
1
2N + 1
N

n=N
x(n +k)x

(n)
_
_
_
. (4)
Cependant, si x(n) est mesuree sur un intervalle
ni seulement (n = 0, 1, ..., N), alors la fonction
dautocorrelation doit etre estimee avec une somme
nie:
r
x
(k) =
1
N
N1

n=0
x(n +k)x

(n). (5)
An de sassurer que les valeurs de x(n) qui sont en
dehors de cet intervalle [0, N 1] sont exclus de la
INRS-EMT J. Benesty 4
somme, (5) sera reecrite comme suit:
r
x
(k) =
1
N
N1k

n=0
x(n +k)x

(n), k = 0, 1, ..., N 1, (6)


pour k < 0, on utilisera la propriete r
x
(k) = r

x
(k),
et r
x
(k) sera egal `a zero pour |k| N. Si on prend
maintenant la transformee de Fourier de r
x
(k), on
obtient une estimee du spectre le periodogramme:

S
per
() =
N1

k=N+1
r
x
(k) exp(jk). (7)
Il est plus pratique dexprimer le periodogramme en
fonction du processus x(n). Soit
x
N
(n) =
_
x(n), 0 n N 1
0, sinon
. (8)
Donc x
N
(n) est le produit de x(n) avec une fenetre
regtangulaire w
R
(n),
x
N
(n) = w
R
(n)x(n). (9)
INRS-EMT J. Benesty 5
On a:
r
x
(k) =
1
N

n=
x
N
(n +k)x

N
(n)
=
1
N
x
N
(k) x

N
(k). (10)
En prenant la transformee de Fourier, le
periodogramme devient:

S
per
() =
1
N
X
N
()X

N
() =
1
N
|X
N
()|
2
, (11)
o` u
X
N
() =

n=
x
N
(n) exp(jn) =
N1

n=0
x(n) exp(jn).
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, le
periodogramme devrait se rapprocher de la valeur du
spectre S
x
(). On sinteressera donc `a si oui ou non:
lim
N
E
_
_

S
per
() S
x
()
_
2
_
= 0. (12)
Pour que le periodogramme converge en moyenne
quadratique, il faut quil soit asymptotiquement non-
biaise:
lim
N
E
_

S
per
()
_
= S
x
() (13)
et que sa variance converge vers zero quand N tend
vers linni,
lim
N
var
_

S
per
()
_
= 0. (14)
En dautres termes,

S
per
() doit estimer le spectre
avec consistance.
INRS-EMT J. Benesty 7
a. Biais
On a, pour k = 0, 1, ..., N 1:
E { r
x
(k)} =
1
N
N1k

n=0
E {x(n +k)x

(n)}
=
1
N
N1k

n=0
r
x
(k)
=
N k
N
r
x
(k) (15)
et, pour k N, E { r
x
(k)} = 0. En utilisant la
propriete r
x
(k) = r

x
(k), on obtient:
E { r
x
(k)} = w
B
(k)r
x
(k), (16)
o` u
w
B
(k) =
_
N|k|
N
, |k| N
0, |k| > N
(17)
est une fenetre (triangulaire) de Bartlett. Ainsi, r
x
(k)
est un estimateur biaise de la fonction de correlation.
INRS-EMT J. Benesty 8
Maintenant, pour le periodogramme:
E
_

S
per
()
_
= E
_
_
_
N1

k=N+1
r
x
(k) exp(jk)
_
_
_
=
N1

k=N+1
E { r
x
(k)} exp(jk)
=

k=
r
x
(k)w
B
(k) exp(jk)
=
1
2
S
x
() W
B
(), (18)
o` u W
B
() est la transformee de Fourier de la fenetre
de Bartlett:
W
B
() =
1
N
_
sin(N/2)
sin(/2)
_
2
. (19)
Ainsi, le periodogramme est un estimateur biaise.
Cependant, puisque W
B
() converge vers une
impulsion de Dirac quand N tend vers linni, le
periodogramme est asymptotiquement non-biaise:
lim
N
E
_

S
per
()
_
= S
x
(). (20)
INRS-EMT J. Benesty 9
b. Variance
Malheureusement, il est dicile devaluer la variance
du periodogramme pour un signal x(n) quelconque car
elle depend des moments dordre quatre du processus.
Cependant, dans le cas o` u x(n) est un signal blanc
Gaussien et de variance
2
x
, on peut montrer que:
var
_

S
per
()
_
=
4
x
. (21)
Ainsi la variance ne tend pas vers zero quand N
tend vers linni et le periodogramme nest pas un
estimateur consistant du spectre. En fait, puisque
S
x
() =
2
x
, on a:
var
_

S
per
()
_
= S
2
x
(). (22)
c. Resolution
Pour un nombre dobservations donnees N, il y a une
limite pour separer deux sinusoides tr`es proches. La
resolution du periodogramme est donnee par la formule
suivante:
res
_

S
per
()
_
= = 0.89
2
N
. (23)
INRS-EMT J. Benesty 10
Le periodogramme modie
On a vu que le periodogramme estime le spectre de la
fa con suivante:

S
per
() =
1
N

n=
x(n)w
R
(n) exp(jn)

2
. (24)
Dans le periodogramme modie, la fenetre w
R
(n) est
remplacee par une fenetre generale w(n), pour obtenir:

S
per.m
() =
1
NU

n=
x(n)w(n) exp(jn)

2
, (25)
o` u N est la longueur de la fenetre et
U =
1
N
N1

n=0
|w(n)|
2
(26)
est une constante introduite pour que

S
per.m
()
soit asymptotiquement non-biaise. La variance du
periodogramme modie est approximativement la
meme que celle du periodogramme.
INRS-EMT J. Benesty 11
En fait, la fenetre introduit un compromis entre la
resolution spectrale (largeur du lobe principal) et la
fuite 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);
end
U = 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 le
periodogramme. Elle produit un estimateur consistant
du spectre.
Soient x
i
(n), i = 1, 2, ..., K, K realisations decorrelees
dun processus aleatoire x(n) sur un intervalle 0 n <
L. Si

S
(i)
per
() =
1
L

L1

n=0
x
i
(n) exp(jn)

2
, i = 1, 2, ..., K, (27)
est le periodogramme de x
i
(n), le moyennage de ces
periodogrammes est:

S
x
() =
1
K
K

i=1

S
(i)
per
(). (28)
Levaluation de la moyenne densemble de

S
x
()
donne:
E
_

S
x
()
_
= E
_

S
(i)
per
()
_
=
1
2
S
x
() W
B
(), (29)
INRS-EMT J. Benesty 13
o` u W
B
() est transformee de Fourier de la fenetre de
Bartlett, w
B
(k), qui va de L `a L. Ainsi, comme
le periodogramme,

S
x
() est asymptotiquement non-
biaise. De plus, avec lhypoth`ese de donnees
decorrelees, il sensuit que
var
_

S
x
()
_
=
1
K
var
_

S
(i)
per
()
_

1
K
S
2
x
() (30)
qui tend vers zero quand K tend vers linni. Ainsi,

S
x
() est un estimateur consistant du spectre quand
K et L tendent vers linni.
Le probl`eme avec cette approche est que des
realisations decorrelees dun processus ne sont en
general pas disponibles. Typiquement, une seule
realisation de longueur N est `a notre disposition.
Ainsi, Bartlett proposa que x(n) soit partitionne en
K sequences, de longueur L, qui ne se recouvrent pas,
o` u N = KL. On a:
x
i
(n) = x(n +iL), (31)
n = 0, 1, ..., L 1, i = 0, 1, ..., K 1.
INRS-EMT J. Benesty 14
Finalement, lestimateur de Bartlett est:

S
B
() =
1
N
K1

i=0

L1

n=0
x(n +iL) exp(jn)

2
. (32)
Puisque les periodogrammes dans

S
B
() sont calcules
en utilisant des sequences de longueur L, la resolution
est:
res
_

S
B
()
_
= 0.89
2
L
= 0.89K
2
N
, (33)
qui est K fois plus grande (ou pire) que celle du
periodogramme.
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 modications `a la
methode de Bartlett. La premi`ere est de permettre
aux sequences x
i
(n) de se recouvrir et la seconde est
de rajouter une fenetre `a chacune de ces sequences,
produisant ainsi un ensemble de periodogrammes
modies qui sont moyennes.
En supposant que les sequences successives sont
decalees de D ( L) echantillons et que chacune
dentre elles est de longueur L, la i-th sequence est
donnee par:
x
i
(n) = x(n +iD), n = 0, 1, ..., L 1. (34)
Ainsi, la quantite de recouvrement (overlap) entre
x
i
(n) et x
i+1
(n) est L D points, et si K sequences
couvrent 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 methode
de Bartlett. Dun autre c ote, si les sequences se
INRS-EMT J. Benesty 16
recouvrent de 50% (D = L/2), alors on peut former
K = 2
N
L
1 (36)
sections de longueur L. On peut maintenir
la meme resolution (longueur de section) que la
methode de Bartlett tout en doublant le nombre de
periodogrammes modies qui sont moyennes (K
2N/L), reduisant ainsi la variance. Cependant, avec
50% de recouvrement, on peut aussi former
K =
N
L
1 (37)
sections de longueur 2L. On peut donc ameliorer
la resolution et maintenir la meme variance que la
methode de Bartlett.
Par consequent, en permettant les sequences de se
recouvrir, il est possible daugmenter le nombre et/ou
la longueur des sequences qui sont moyennees, pour
arriver `a un compromis entre la reduction de la variance
et une meilleure resolution.
INRS-EMT J. Benesty 17
La methode de Welch peut secrire directement en
fonction de x(n):

S
W
() =
1
KLU
K1

i=0

L1

n=0
w(n)x(n +iD) exp(jn)

2
,
(38)
ou en fonction du periodogramme modie:

S
W
() =
1
K
K1

i=0

S
(i)
per.m
(). (39)
On peut montrer que:
E
_

S
W
()
_
= E
_

S
per.m
()
_
=
1
2LU
S
x
() |W()|
2
,
(40)
o` u W() est la transformee de Fourier de la
fenetre w(n). Ainsi, la methode de Welch est
asymptotiquement non-biaisee. La resolution depend
de la fenetre. On peut aussi montrer, que pour un
recouvrement de 50% et une fenetre de bartlett, la
variance est approximativement:
var
_

S
W
()
_

9
8K
S
2
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)
end
N = 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 ni de donnees N, la variance de
r
x
(k) pour les valeurs de k proches de N sera grande.
Par exemple, lestimee de r
x
(k) pour k = N 1 est:
r
x
(N 1) =
1
N
x(N 1)x(0). (42)
Il ny a pas vraiment de moyennage pour |k| N,
meme si N est tr`es grand; donc ces estimees seront
toujours peu ables. Par consequent, la seule mani`ere
de reduire la variance du periodogramme est de reduire
leurs contributions.
Dans la methode de Blackman-Tukey (ou periodogram
smoothing), la variance du periodogramme est reduite
en ajoutant une fenetre `a r
x
(k) an de reduire la
contribution destimees peu ables du periodogramme.
La methode de Blackman-Tukey secrit donc:

S
BT
() =
M

k=M
r
x
(k)w(n) exp(jk), (43)
o` u w(n) est une fenetre appliquee `a lestimation de
la fonction de correlation. Par exemple, si w(n) est
INRS-EMT J. Benesty 20
une fenetre rectangulaire qui va de M `a M avec
M < N 1, alors les estimees de r
x
(n) qui ont
une variance importante sont mises `a zero, et par
consequent lestimation du spectre aura une plus petite
variance. Par contre, la resolution sera moins bonne
puisqu un plus petit nombre destimees 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);
end
r = r.*w;
Px = abs(fft(r,1024));
INRS-EMT J. Benesty 21
La methode de Capon
Soit x(n) un processus aleatoire stationnaire du second
ordre de moyenne nulle et dont le spectre est S
x
().
Soit g
i
(n) un ltre passe-bande ideal, avec une largeur
de bande et une frequence centrale
i
,
|G
i
(w)| =
_
1, |
i
| < /2
0, sinon
. (44)
Si le signal x(n) passe `a travers le ltre g
i
(n), alors le
spectre du processus de sortie, y
i
(n), est:
S
y
i
() = S
x
()|G
i
(w)|
2
(45)
et la puissance du signal y
i
(n) est:
E
_
|y
i
(n)|
2
_
=
1
2
_

S
y
i
()d
=
1
2
_

S
x
()|G
i
(w)|
2
d
=
1
2
_

i
+/2

i
/2
S
x
()d. (46)
INRS-EMT J. Benesty 22
Si est susamment petit pour que S
x
() soit
approxime `a une constante `a travers le ltre bande-
passe, alors la puissance de y
i
(n) peut etre approximee
`a:
E
_
|y
i
(n)|
2
_
= S
x
()

2
. (47)
Ainsi, il est possible destimer la densite spectrale de
puissance du signal x(n) `a la frequence =
i
`a partir
de lestimation de la puissance du signal y
i
(n).
Il reste maintenant `a determiner le ltre g
i
(n) et .
Soit g
i
(n) un ltre RIF passe-bande complexe et dordre
p. Pour garantir la meme puissance `a lentree et `a la
sortie de ce ltre pour la frequence
i
, G
i
(w) doit etre
contraint davoir un gain egal `a un pour =
i
,
G
i
(w
i
) =
p

n=0
g
i
(n) exp(j
i
n) = 1 (48)
= g
H
i
e
i
= e
H
i
g
i
,
o` u
g
i
=
_
g
i
(0) g
i
(1) g
i
(p)

T
,
e
i
=
_
1 exp(j
i
) exp(j
i
p)

T
.
INRS-EMT J. Benesty 23
Dautre part:
E
_
|y
i
(n)|
2
_
= E
_
|g
H
i
x(n)|
2
_
= g
H
i
R
x
g
i
, (49)
o` u
R
x
= E
_
x(n)x
H
(n)
_
(50)
est la matrice dautocorrelation du signal x(n).
Le crit`ere pour concevoir le ltre passe-bande est de
minimiser E
_
|y
i
(n)|
2
_
avec la contrainte g
H
i
e
i
= 1.
Pour cela, on utilise la methode de Lagrange:
J = g
H
i
R
x
g
i
+(1 g
H
i
e
i
). (51)
En minimisant J par rapport `a g
i
et en egalant `a zero,
on obtient:
2R
x
g
i
e
i
= 0
(p+1)1
, (52)
soit
g
i
=

2
R
1
x
e
i
. (53)
INRS-EMT J. Benesty 24
En rempla cant g
i
=

2
R
1
x
e
i
dans la contrainte g
H
i
e
i
=
1, on obtient:

2
=
1
e
H
i
R
1
x
e
i
. (54)
Do` u la solution:
g
i
=
R
1
x
e
i
e
H
i
R
1
x
e
i
(55)
et la puissance minimale est donc deduite:
E
_
|y
i
(n)|
2
_
=
1
e
H
i
R
1
x
e
i
. (56)
Pour une frequence quelconque, on a:
g =
R
1
x
e
e
H
R
1
x
e
, (57)
o` u
e =
_
1 exp(j) exp(jp)

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
e
H
R
1
x
e
=

2
x
e

2
x
e
H
e
=
1
p + 1
e (58)
et
E
_
|y
i
(n)|
2
_
=

2
x
p + 1
. (59)
De plus S
x
() =
2
x
. Comme:
S
x
() =
E
_
|y
i
(n)|
2
_
/2
=

2
x
p + 1
2

, (60)
on en deduit que:
=
2
p + 1
. (61)
Dans le cas general, on aura donc:

S
MV
() =
p + 1
e
H
R
1
x
e
, (62)
o` u

R
x
est une estimation de R
x
. Cest la methode de
Capon (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