Traitement de signal TP 3 : Densité spectrale de puissance de

Transcription

Traitement de signal TP 3 : Densité spectrale de puissance de
Université du Maine
Master Ingénierie Mécanique et Acoustique
Traitement de signal
TP 3 : Densité spectrale de puissance
de signaux aléatoires stationnaires ergodiques
1. Evaluation d’estimateurs spectraux
Objectif : Il s’agit de comparer plusieurs estimateurs de la densité spectrale
de puissance d’un signal aléatoire stationnaire et ergodique. Le signal dont on
cherche la représentation fréquentielle est issu du filtrage linéaire d’un bruit
blanc gaussien. Les coefficients du filtre étant connus, la densité spectrale
théorique l’est aussi. Les performances des divers estimateurs sont alors évaluées en déterminant expérimentalement leurs biais et leurs variances.
Référence : Traitement numérique des signaux (M. Kunt), Presses polytechniques romandes, 1984.
Mots-clés : Estimateurs de DSP, périodogrammes simple, moyenné, modifié
(Welch), corrélogramme, biais, variance
Fonctions Matlab : sig aleat2.m, freqz.m, mean.m, var.m, psd.m, xcor.m
Indications :
• La fonction sig aleat2.m fournie, permet de générer les signaux aléatoires
à étudier, obtenus par filtrage passe-bas, au moyen d’un filtre de Chebyshev, d’un bruit blanc gaussien de variance paramétrable. La fonction
retourne également les coefficients du filtre.
• La densité spectrale de puissance théorique d’un tel signal issu du filtrage
d’un bruit blanc par un système linéaire de fonction de transfert H[m]
est:
SX [m] = Te σ 2 |H[m]|2
où σ 2 est la variance du bruit blanc et Te la période d’échantillonnage.
1
• Le périodogramme simple, estimateur de la densité spectrale de puissance (DSP) d’une séquence discrète {x[n]} échantillonnée sur N points
avec une période d’échantillonnage Te s’écrit :
|X(f )|2
ŜX (f ) =
N Te
où X(f ) est la transformation de Fourier de la séquence {xn} :
X(f ) = Te
NX
−1
x[n] e−2jπf n Te
n=0
En pratique, le périodogramme simple s’obtient à partir d’un algorithme
rapide (FFT) de Transformée de Fourier Discrète (TFD) retournant la
séquence {X[m]} à partir de la suite temporelle {x[n]}. Il s’écrit alors :
|X[m]|2
ŜX [m] = Te
N
Les divers périodogrammes peuvent être obtenus à l’aide de la fonction
psd.m. L’utilisation suivante permet de déterminer la DSP ŜX [m] en
utilisant le périodogramme simple :
[Ŝ, f ] = psd(x, N, fe, ones(1, N ), 0);
ŜX = Te Ŝ;
Le premier argument contient le signal à étudier, le deuxième indique
le nombre de points pour l’algorithme FFT, le troisième, la fréquence
d’échantillonnage, le quatrième stipule la fenêtre de pondération utilisée
avec son nombre de points, le cinquième, le nombre de points de recouvrement entre les tronçons lorsqu’ils sont plusieurs.
La fréquence d’échantillonnage n’est pas utilisée dans le calcul du périodogramme mais permet de retourner l’axe des fréquences dans la variable
f : l’intervalle [0, fe/2] (N/2+1 échantillons). C’est pourquoi l’obtention
du périodogramme théorique nécessite la multiplication par la période
d’échantillonnage Te .
2
B
• Le périodogramme moyenné ŜX
[m] (ou de Bartlett) est un second estimateur de densité spectrale de puissance. Il consiste à découper le signal
d’étude en plusieurs tronçons adjacents et à moyenner les différents périodogrammes simples calculés sur chaque tronçon. L’estimateur peut
être calculé à l’aide de la fonction Matlab psd.m utilisée ainsi :
[Ŝ B , f ] = psd(x, M, fe, ones(1, M), 0);
B
ŜX
= Te Ŝ B ;
Chaque tronçon comporte M points. Le nombre de moyennes effectué est
ici N/M. L’axe des fréquences [0, fe/2] comporte M/2 + 1 échantillons.
W
• Le périodogramme de Welch ŜX
[m] est une variante de l’estimateur
précédent. D’une part les fenêtres de pondération ne sont pas rectangulaires, d’autre part les tronçons se chevauchent. Le périodogramme modifié est normalisé par la puissance de la fenêtre de pondération utilisée.
Il est obtenu par la commande suivante :
[Ŝ W , f ] = psd(x, M, fe, hanning(M), M/2);
W
= Te Ŝ W ;
ŜX
Ici, la fenêtre utilisée est celle de Hanning pour un recouvrement (préconisé par Welch) de 50 % du tronçon, soit M/2 échantillons.
C
• Le corrélogramme ŜX
[m] est également un estimateur de densité spectrale de puissance. Il consiste à calculer la transformée de Fourier
de l’estimateur biaisé R̂X [n] de la fonction d’autocorrélation du signal
{x[n]} de N points pondéré par une fenêtre de Bartlett wB [n].
C
ŜX
[m]
= Te
M
−1
X
R̂X [n] wB [n] e−2jπf n Te
n=1−M
Le support temporel initial de l’estimateur d’autocorrélation [(1 − N )Te
(N −1)Te] est ramené à [(1−M)Te, (M−1)Te] avec M ≪ N . L’estimateur
biaisé de la fonction d’autocorrélation est obtenue par la fonction xcorr.m
avec l’option ’biased’ en argument d’entrée.
3
• Il est également possible de faire de l’analyse spectrale à partir d’une
interface graphique appelée par l’instruction sptool. Dans ce cas, il faut
exporter le signal se trouvant dans l’espace de travail (menu file) puis
déterminer sa densité spectrale de puissance (menu spectra, fonction create) en choisissant l’estimateur (méthode FFT pour le périodogramme
simple, méthode Welch pour les périodogrammes moyenné, modifié) sans
oublier de paramétrer l’analyse.
• Le biais bŜ et la variance σŜ2 d’un estimateur Ŝ s’écrivent :
bŜ = E[Ŝ − S]
σŜ2 = E[(Ŝ − E[Ŝ])2]
Questions :
• Générez un signal aléatoire à l’aide de la fonction sig aleat2.m. Déterminez la densité spectrale de puissance théorique SX [m] à l’aide de la
fonction f reqz.m et visualisez-là (utilisez une échelle logarithmique en
ordonnée avec l’instruction semilogy.m et limitez la visualisation sur
l’axe vertical à l’intervalle [10−4/fe, 10/fe] par exemple avec axis.m).
Vérifiez que les caractéristiques fréquentielles sont en accord avec vos
paramètres: fréquence de coupure, fréquence d’échantillonnage, variance
du bruit blanc d’entrée. Par la suite, il peut être pratique de travailler
avec une fréquence d’échantillonnage fe = 1 Hz (Te = 1 s).
• Superposez sur le graphe précédent la densité spectrale de puissance du
signal aléatoire ŜX [m] obtenue par un périodogramme simple à partir de
votre propre programme ou des fonctions Matlab dédiées. Calculez sur
l’intervalle [0, fe/2] le biais de l’estimateur ainsi que sa variance à partir
de votre réalisation ŜX [m] et de la densité spectrale théorique SX [m].
Faı̂tes varier le nombre de points du signal. Que remarquez-vous sur le
biais et la variance de l’estimateur ?
4
• Calculez les périodogrammes moyenné et modifié et visualisez les densités spectrales de puissance obtenues sur le même graphe que la DSP
théorique. Etudiez l’influence du nombre de tronçons, du type de fenêtre
et du recouvrement (absence ou 50 %) sur le biais et la variance des estimateurs.
• Déterminez le corrélogramme et visualisez-le en comparant toujours avec
la DSP théorique. Jouez sur la taille de la fenêtre de Bartlett (M = N/8,
N/16 ...) et calculez le biais et la variance de l’estimateur.
2. Extraction d’information
Objectif : Il s’agit d’être capable de remonter à certaines caractéristiques
du signal à partir de sa densité spectrale de puissance, notamment la variance d’un bruit et l’amplitude d’une composante harmonique. Ensuite, il
s’agit de comparer visuellement les densités spectrales de puissance obtenues
à partir d’estimateurs différents et d’étudier l’influence du type de fenêtre de
pondération utilisée lorsque l’analyse est confrontée au problème de distribution des fréquences (leakage).
Référence : Traitement numérique des signaux (M. Kunt), Presses polytechniques romandes, 1984.
Mots-clés : Amplitude d’une harmonique, variance d’un bruit, distribution
des fréquences (leakage)
Fonctions Matlab : sig aleat3.m
Indications :
• La fonction sig aleat3.m permet de générer un signal aléatoire stationnaire ergodique constitué de deux signaux harmoniques pures et d’un
bruit blanc gaussien. Les amplitudes des sinusoı̈des, la variance du
bruit blanc sont paramétrables par l’utilisateur. En ce qui concerne les
fréquences, il est possible de choisir entre deux configurations : soit les
fréquences correspondent à des points d’échantillonnage de la TFD, soit
non, dans le but d’observer le phénomène de distribution des fréquences
5
(leakage) en fonction de la fenêtre de pondération utilisée. L’utilisation
suivante, avec uniquement trois arguments en entrée, permet d’affecter
aux amplitudes des signaux harmoniques et à la variance du bruit blanc
des valeurs par défaut. Dans ce cas le signal possède une composante
harmonique forte et une faible.
[y, t] = sig aleat3(choix, N, f e);
• Afin de retrouver l’amplitude d’un signal harmonique à partir de la
valeur d’une raie obtenue sur la densité spectrale de puissance, il est important de détailler les différentes étapes conduisant à l’obtention d’un
périodogramme. Tout d’abord, il faut se référer à la théorie donnant
l’amplitude d’une raie fréquentielle lorsque le signal temporel est harmonique. Ensuite il faut tenir compte de deux effets sur l’amplitude du
spectre produits par la discrétisation du signal temporel et sa troncature
par une fenêtre de pondération. Enfin, il faut regarder la définition du
périodogramme représenté.
• Afin de retrouver la variance d’un bruit blanc à partir de sa représentation
spectrale, il est nécessaire de se rappeler que le périodogramme simple
est la transformée de Fourier de la fonction d’autocorrélation du signal
(résultat provenant du théorème de Wiener-Khintchine). En considérant
que la fonction d’autocorrélation R[n] d’un bruit blanc discrétisé de variance σ 2 est Te σ 2 δ[n] et en comparant sa transformée de Fourier avec
le périodogramme, la variance se déduit aisément.
Questions :
• Générez un signal aléatoire avec une fréquence initiale fe = 1 Hz en utilisant la fonction aleat 3.m de manière à obtenir des fréquences en k/N .
Choisissez un nombre de points N correspondant à une puissance de 2
dans l’intervalle [128, 16384]. Visualisez la densité spectrale de puissance
du signal en utilisant un périodogramme simple et un périodogramme
modifié dont vous expliciterez les paramètres. Proposez une formule permettant de retrouver l’amplitude du signal harmonique temporel à partir
6
de la valeur de la raie visible sur la DSP. Votre formule est-elle valable
quelle que soit la fenêtre de pondération utilisée ? Est-elle également
valable si vous générez des signaux avec une fréquence d’échantillonnage
non unitaire? Sinon adaptez votre formule.
• Il s’agit maintenant de retrouver la variance du bruit blanc à partir des
densités spectrales de puissance. Comment procédez-vous ?
• Vous allez maintenant comparer les estimateurs de DSP suivants : périodogrammes simple, moyenné et modifié à partir de deux signaux aléatoires générés par la fonction sig aleat3.m, l’un pour des signaux harmoniques de fréquences k/N , l’autre pour des fréquences quelconques.
Les signaux harmoniques générés devront contenir une composante forte
et une faible. Vous pouvez utiliser les amplitudes par défaut. Etudiez
l’influence de différentes fenêtres de pondération. Déduisez l’estimateur
de DSP le plus adapté qui permet de mieux représenter les caractéristiques fréquentielles des signaux.
7