Document

publicité
Estimation spectrale
Méthodes non-paramétriques
On va considérer le problème de l’estimation de
la densité spectrale de puissance (ou spectre) d’un
processus aléatoire stationnaire du second ordre.
Il existe deux grandes approches pour l’estimation
spectrale. la première contient des méthodes dites
classiques ou non-paramétriques qui sont basées sur
le périodogramme. La seconde classe contient des
méthodes dites non-classiques ou paramétriques qui
utilisent un modèle pour le processus.
INRS-EMT J. Benesty
Plan
• Rappels
• Motivation
• Le périodogramme
• Le périodogramme modifié
• La méthode de Bartlett
• La méthode de Welch
• La méthode de Blackman-Tukey
• La méthode de Capon
INRS-EMT J. Benesty
1
Rappels
On considère un processus discret x(n) (n =
0, ±1, ±2, ..., ±N ) aléatoire stationnaire du second
ordre de moyenne nulle et dont la fonction
d’autocorrélation est:
rx(k) = E {x(n + k)x∗(n)} .
(1)
La transformée de Fourier de rx(k) est le spectre de
x(n):
Sx(ω) =
∞
rx(k) exp(−jωk),
(2)
k=−∞
où ω est la fréquence angulaire. En fait, la dsp
représente la répartition de la puissance du signal x(n)
sur l’axe des fréquences. On a les propriétés suivantes:
• Sx(ω) est réelle.
• Sx(ω) ≥ 0.
2
• E{|x(n)| } = rx(0) =
INRS-EMT J. Benesty
1
2π
π
−π
Sx(ω)dω.
2
Motivation
Comme le spectre d’un signal est la transformée de
Fourier de sa fonction d’autocorrélation, estimer le
spectre est équivalent à estimer l’autocorrélation. Pour
un processus ergodique, on a:



N

1
x(n + k)x∗(n) = rx(k). (3)
lim
N →∞  2N + 1

n=−N
Ainsi, si x(n) est connu pour tout n, estimer le spectre
est une tâche simple en théorie, puisqu’il suffit de
calculer rx(k) en utilisant (3) et calculer ensuite sa
transformée de Fourier. Cependant, en pratique, il y a
deux difficultés très importantes:
• le nombre de données est toujours très limité et
• le bruit.
Ainsi, l’estimation du spectre consiste à estimer Sx(ω)
à partir d’un nombre fini de données bruitées.
INRS-EMT J. Benesty
3
Le périodogramme
La méthode du périodogramme fût introduite par
Schuster en 1898.
Pour un processus ergodique,
la séquence
d’autocorrélation peut, en théorie, être déterminée avec
une moyenne temporelle:

N

1
x(n + k)x∗(n) . (4)
rx(k) = lim
N →∞  2N + 1



n=−N
Cependant, si x(n) est mesurée sur un intervalle
fini seulement (n = 0, 1, ..., N ), alors la fonction
d’autocorrélation doit être estimée avec une somme
finie:
N −1
1 x(n + k)x∗(n).
r̂x(k) =
N n=0
(5)
Afin de s’assurer 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 réécrite comme suit:
1
r̂x(k) =
N
N
−1−k
x(n + k)x∗(n), k = 0, 1, ..., N − 1, (6)
n=0
pour k < 0, on utilisera la propriété r̂x(−k) = r̂x∗ (k),
et r̂x(k) sera égal à zéro pour |k| ≥ N . Si on prend
maintenant la transformée de Fourier de r̂x(k), on
obtient une estimée du spectre – le périodogramme:
N
−1
Ŝper(ω) =
r̂x(k) exp(−jωk).
(7)
k=−N +1
Il est plus pratique d’exprimer le périodogramme en
fonction du processus x(n). Soit
xN (n) =
x(n), 0 ≤ n ≤ N − 1
.
0,
sinon
(8)
Donc xN (n) est le produit de x(n) avec une fenêtre
regtangulaire wR(n),
xN (n) = wR(n)x(n).
INRS-EMT J. Benesty
(9)
5
On a:
r̂x(k) =
=
∞
1 xN (n + k)x∗N (n)
N n=−∞
1
xN (k) ∗ x∗N (−k).
N
En prenant la transformée
périodogramme devient:
de
(10)
Fourier,
1
1
∗
Ŝper(ω) = XN (ω)XN (ω) = |XN (ω)|2,
N
N
le
(11)
où
XN (ω) =
∞
xN (n) exp(−jωn) =
n=−∞
N
−1
x(n) exp(−jωn).
n=0
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 périodogramme
En augmentant le nombre de données, le
périodogramme devrait se rapprocher de la valeur du
spectre Sx(ω). On s’intéressera donc à si oui ou non:
lim E
N →∞
2 Ŝper(ω) − Sx(ω)
= 0.
(12)
Pour que le périodogramme converge en moyenne
quadratique, il faut qu’il soit asymptotiquement nonbiaisé:
lim E Ŝper(ω) = Sx(ω)
N →∞
(13)
et que sa variance converge vers zéro quand N tend
vers l’infini,
lim var Ŝper(ω) = 0.
N →∞
(14)
En d’autres termes, Ŝ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
N
−1−k
1
N
N
−1−k
E {x(n + k)x∗(n)}
n=0
rx(k)
n=0
N −k
rx(k)
N
(15)
et, pour k ≥ N , E {r̂x(k)} = 0. En utilisant la
propriété r̂x(−k) = r̂x∗ (k), on obtient:
E {r̂x(k)} = wB(k)rx(k),
(16)
où
wB(k) =
N −|k|
N ,
0,
|k| ≤ N
|k| > N
(17)
est une fenêtre (triangulaire) de Bartlett. Ainsi, r̂x(k)
est un estimateur biaisé de la fonction de corrélation.
INRS-EMT J. Benesty
8
Maintenant, pour le périodogramme:


−1
 N

E Ŝper(ω)
= E
r̂x(k) exp(−jωk)


k=−N +1
=
N
−1
E {r̂x(k)} exp(−jωk)
k=−N +1
=
∞
rx(k)wB(k) exp(−jωk)
k=−∞
=
1
Sx(ω) ∗ WB(ω),
2π
(18)
où WB(ω) est la transformée de Fourier de la fenêtre
de Bartlett:
2
1 sin(N ω/2)
.
(19)
WB(ω) =
N sin(ω/2)
Ainsi, le périodogramme est un estimateur biaisé.
Cependant, puisque WB(ω) converge vers une
impulsion de Dirac quand N tend vers l’infini, le
périodogramme est asymptotiquement non-biaisé:
(20)
lim E Ŝper(ω) = Sx(ω).
N →∞
INRS-EMT J. Benesty
9
b. Variance
Malheureusement, il est difficile d’évaluer la variance
du périodogramme pour un signal x(n) quelconque car
elle dépend des moments d’ordre quatre du processus.
Cependant, dans le cas où x(n) est un signal blanc
Gaussien et de variance σx2 , on peut montrer que:
var Ŝper(ω) = σx4 .
(21)
Ainsi la variance ne tend pas vers zéro quand N
tend vers l’infini et le périodogramme n’est pas un
estimateur consistant du spectre. En fait, puisque
Sx(ω) = σx2 , on a:
(22)
var Ŝper(ω) = Sx2(ω).
c. Résolution
Pour un nombre d’observations données N , il y a une
limite pour séparer deux sinusoides très proches. La
résolution du périodogramme est donnée par la formule
suivante:
2π
(23)
rés Ŝper(ω) = ∆ω = 0.89 .
N
INRS-EMT J. Benesty
10
Le périodogramme modifié
On a vu que le périodogramme estime le spectre de la
façon suivante:
2
∞
1 x(n)wR(n) exp(−jωn) . (24)
Ŝper(ω) = N n=−∞
Dans le périodogramme modifié, la fenêtre wR(n) est
remplacée par une fenêtre générale w(n), pour obtenir:
2
∞
1 x(n)w(n) exp(−jωn) , (25)
Ŝper.m(ω) =
N U n=−∞
où N est la longueur de la fenêtre et
N −1
1 U=
|w(n)|2
N n=0
(26)
est une constante introduite pour que Ŝper.m(ω)
soit asymptotiquement non-biaisé. La variance du
périodogramme modifié est approximativement la
même que celle du périodogramme.
INRS-EMT J. Benesty
11
En fait, la fenêtre introduit un compromis entre la
résolution 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 méthode de Bartlett
La méthode de Bartlett consiste à moyenner le
périodogramme. Elle produit un estimateur consistant
du spectre.
Soient xi(n), i = 1, 2, ..., K, K réalisations décorrélées
d’un processus aléatoire x(n) sur un intervalle 0 ≤ n <
L. Si
2
L−1
1
(i)
(ω) = xi(n) exp(−jωn) , i = 1, 2, ..., K, (27)
Ŝper
L
n=0
est le périodogramme de xi(n), le moyennage de ces
périodogrammes est:
K
1 (i)
Ŝper(ω).
Ŝx(ω) =
K i=1
(28)
L’évaluation de la moyenne d’ensemble de Ŝx(ω)
donne:
(i)
= E Ŝper
(ω)
E Ŝx(ω)
=
INRS-EMT J. Benesty
1
Sx(ω) ∗ WB(ω),
2π
(29)
13
où WB(ω) est transformée de Fourier de la fenêtre de
Bartlett, wB(k), qui va de −L à L. Ainsi, comme
le périodogramme, Ŝx(ω) est asymptotiquement nonbiaisé.
De plus, avec l’hypothèse de données
décorrélées, il s’ensuit que
=
var Ŝx(ω)
≈
1
(i)
var Ŝper(ω)
K
1 2
S (ω)
K x
(30)
qui tend vers zéro quand K tend vers l’infini. Ainsi,
Ŝx(ω) est un estimateur consistant du spectre quand
K et L tendent vers l’infini.
Le problème avec cette approche est que des
réalisations décorrélées d’un processus ne sont en
général pas disponibles. Typiquement, une seule
réalisation de longueur N est à notre disposition.
Ainsi, Bartlett proposa que x(n) soit partitionné en
K séquences, de longueur L, qui ne se recouvrent pas,
où 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:
ŜB(ω) =
1
N
K−1
L−1
i=0
n=0
2
x(n + iL) exp(−jωn) . (32)
Puisque les périodogrammes dans ŜB(ω) sont calculés
en utilisant des séquences de longueur L, la résolution
est:
2π
2π
rés ŜB(ω) = 0.89 = 0.89K ,
L
N
(33)
qui est K fois plus grande (ou pire) que celle du
périodogramme.
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 méthode de Welch
En 1967, Welch proposa deux modifications à la
méthode de Bartlett. La première est de permettre
aux séquences xi(n) de se recouvrir et la seconde est
de rajouter une fenêtre à chacune de ces séquences,
produisant ainsi un ensemble de périodogrammes
modifiés qui sont moyennés.
En supposant que les séquences successives sont
décalées de D (≤ L) échantillons et que chacune
d’entre elles est de longueur L, la i-th séquence est
donnée par:
xi(n) = x(n + iD), n = 0, 1, ..., L − 1.
(34)
Ainsi, la quantité de recouvrement (overlap) entre
xi(n) et xi+1(n) est L − D points, et si K séquences
couvrent les N données 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 méthode
de Bartlett. D’un autre côté, si les séquences se
INRS-EMT J. Benesty
16
recouvrent de 50% (D = L/2), alors on peut former
N
K =2 −1
L
(36)
sections de longueur L.
On peut maintenir
la même résolution (longueur de section) que la
méthode de Bartlett tout en doublant le nombre de
périodogrammes modifiés qui sont moyennés (K ≈
2N/L), réduisant ainsi la variance. Cependant, avec
50% de recouvrement, on peut aussi former
K=
N
−1
L
(37)
sections de longueur 2L. On peut donc améliorer
la résolution et maintenir la même variance que la
méthode de Bartlett.
Par conséquent, en permettant les séquences de se
recouvrir, il est possible d’augmenter le nombre et/ou
la longueur des séquences qui sont moyennées, pour
arriver à un compromis entre la réduction de la variance
et une meilleure résolution.
INRS-EMT J. Benesty
17
La méthode de Welch peut s’écrire directement en
fonction de x(n):
1
ŜW (ω) =
KLU
2
w(n)x(n + iD) exp(−jωn) ,
n=0
(38)
K−1
L−1
i=0
ou en fonction du périodogramme modifié:
K−1
1 (i)
Ŝper.m(ω).
ŜW (ω) =
K i=0
(39)
On peut montrer que:
E ŜW (ω) = E Ŝper.m(ω) =
1
Sx(ω) ∗ |W (ω)|2,
2πLU
(40)
où W (ω) est la transformée de Fourier de la
fenêtre w(n).
Ainsi, la méthode de Welch est
asymptotiquement non-biaisée. La résolution dépend
de la fenêtre. On peut aussi montrer, que pour un
recouvrement de 50% et une fenêtre de bartlett, la
variance est approximativement:
9 2
S (ω).
var ŜW (ω) ≈
8K x
INRS-EMT J. Benesty
(41)
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 méthode de Blackman-Tukey
Pour un nombre fini de données N , la variance de
r̂x(k) pour les valeurs de k proches de N sera grande.
Par exemple, l’estimée de rx(k) pour k = N − 1 est:
r̂x(N − 1) =
1
x(N − 1)x(0).
N
(42)
Il n’y a pas vraiment de moyennage pour |k| ≈ N ,
même si N est très grand; donc ces estimées seront
toujours peu fiables. Par conséquent, la seule manière
de réduire la variance du périodogramme est de réduire
leurs contributions.
Dans la méthode de Blackman-Tukey (ou periodogram
smoothing ), la variance du périodogramme est réduite
en ajoutant une fenêtre à r̂x(k) afin de réduire la
contribution d’estimées peu fiables du périodogramme.
La méthode de Blackman-Tukey s’écrit donc:
ŜBT(ω) =
M
r̂x(k)w(n) exp(−jωk),
(43)
k=−M
où w(n) est une fenêtre appliquée à l’estimation de
la fonction de corrélation. Par exemple, si w(n) est
INRS-EMT J. Benesty
20
une fenêtre rectangulaire qui va de −M à M avec
M < N − 1, alors les estimées de rx(n) qui ont
une variance importante sont mises à zéro, et par
conséquent l’estimation du spectre aura une plus petite
variance. Par contre, la résolution sera moins bonne
puisqu’ un plus petit nombre d’estimées sera utilisé.
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 méthode de Capon
Soit x(n) un processus aléatoire stationnaire du second
ordre de moyenne nulle et dont le spectre est Sx(ω).
Soit gi(n) un filtre passe-bande idéal, avec une largeur
de bande ∆ et une fréquence centrale ωi,
|Gi(w)| =
1, |ω − ωi| < ∆/2
.
0,
sinon
(44)
Si le signal x(n) passe à travers le filtre gi(n), alors le
spectre du processus de sortie, yi(n), est:
Syi (ω) = Sx(ω)|Gi(w)|2
(45)
et la puissance du signal yi(n) est:
2
E |yi(n)|
=
INRS-EMT J. Benesty
1
2π
=
1
2π
=
1
2π
π
−π
π
−π
Syi (ω)dω
Sx(ω)|Gi(w)|2dω
ωi +∆/2
ωi −∆/2
Sx(ω)dω.
(46)
22
Si ∆ est suffisamment petit pour que Sx(ω) soit
approximé à une constante à travers le filtre bandepasse, alors la puissance de yi(n) peut être approximée
à:
2
E |yi(n)|
∆
= Sx(ω) .
2π
(47)
Ainsi, il est possible d’estimer la densité spectrale de
puissance du signal x(n) à la fréquence ω = ωi à partir
de l’estimation de la puissance du signal yi(n).
Il reste maintenant à déterminer le filtre gi(n) et ∆.
Soit gi(n) un filtre RIF passe-bande complexe et d’ordre
p. Pour garantir la même puissance à l’entrée et à la
sortie de ce filtre pour la fréquence ωi, Gi(w) doit être
contraint d’avoir un gain égal à un pour ω = ωi,
Gi(wi) =
p
gi(n) exp(−jωin) = 1
(48)
n=0
H
= gH
i ei = ei gi ,
où
gi =
ei =
INRS-EMT J. Benesty
T
gi(0) gi(1) · · ·
gi(p)
1 exp(jωi) · · ·
exp(jωip)
,
T
.
23
D’autre part:
2
E |yi(n)|
=E
2
|gH
i x(n)|
= gH
i Rx gi ,
(49)
où
Rx = E x(n)x (n)
H
(50)
est la matrice d’autocorrélation du signal x(n).
Le critère pour
le filtre passe-bande est de
concevoir
minimiser E |yi(n)|2 avec la contrainte gH
i ei = 1.
Pour cela, on utilise la méthode de Lagrange:
H
R
g
+
λ(1
−
g
J = gH
x
i
i
i ei ).
(51)
En minimisant J par rapport à gi et en égalant à zéro,
on obtient:
2Rxgi − λei = 0(p+1)×1,
(52)
λ −1
gi = Rx ei.
2
(53)
soit
INRS-EMT J. Benesty
24
H
En remplaçant gi = λ2 R−1
x ei dans la contrainte gi ei =
1, on obtient:
λ
1
= H −1 .
2 ei Rx ei
(54)
R−1
x ei
gi = H −1
ei Rx ei
(55)
D’où la solution:
et la puissance minimale est donc déduite:
2
E |yi(n)|
=
1
−1 .
H
ei Rx ei
(56)
Pour une fréquence quelconque, on a:
R−1
x e
g = H −1 ,
e Rx e
(57)
où
e =
INRS-EMT J. Benesty
1 exp(jω) · · ·
exp(jωp)
T
.
25
Maintenant, il reste à déterminer ∆. Si le signal x(n)
est un bruit blanc de variance σx2 , on a:
σx−2e
1
R−1
x e
e
g = H −1 = −2 H =
e Rx e σ x e e p + 1
(58)
et
2
E |yi(n)|
σx2
=
.
p+1
De plus Sx(ω) = σx2 . Comme:
2
E |yi(n)|
σx2 2π
Sx(ω) =
=
,
∆/2π
p+1∆
(59)
(60)
on en déduit que:
2π
∆=
.
p+1
(61)
Dans le cas général, on aura donc:
ŜMV (ω) =
p+1
−1 ,
eH R̂x e
(62)
où R̂x est une estimation de Rx. C’est la méthode 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
Téléchargement