black man 2
Transcription
black man 2
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