labo 4 generation, traitement et analyse spectrale de

publicité
LABO 4
GENERATION, TRAITEMENT ET
ANALYSE SPECTRALE DE SIGNAUX
NUMERIQUES ALEATOIRES
4.1 Introduction
Contrairement au signal déterministe, un signal aléatoire (ou bruit) n’est pas défini
par une fonction f(t), mais bien par :
b


Sa densité de probabilité: p x ( x ) tel que P(x  [a,b])= p x ( x )dx
a
ou, ce qui revient au même, sa fonction de distribution qui en est l’intégrale:
x
F (x)=  px (  )d 
0
ET

sa fonction d’autocorrélation: xx (k )  E  x(n ). x* (n  k ) 


si ergotique

N
 1

lim 
x (n ). x * (n  k ) 

N  2 N  1
n  N


ou, ce qui revient au même, sa densité spectrale de puissance, qui en est la
transformée de Fourier à Temps Discret : S xx ( F ) 


k 
xx
( k ).e  jk
Dans la cadre de cette séance de travaux pratiques, nous allons générer et traiter des
signaux aléatoires tels que:




le bruit blanc possédant une densité spectrale de puissance constante et donc
une fonction d’autocorrélation impulsionnelle ;
le bruit uniforme distribué uniformément sur un intervalle défini ;
le bruit gaussien possédant une distribution gaussienne de moyenne et variance
définie ;
le signal autorégressif résultant du filtrage d’un bruit blanc au travers d’un
système autorégressif simple.
Nous effectuerons leur analyse spectrale d’une part en calculant la transformée de
Fourier de leur fonction d’autocorrélation et d’autre part en affichant leur densité
spectrale puissance à l’aide des estimateurs simple, modifié et moyenné.
LABORATOIRE DE TRAITEMENT DU SIGNAL 12
4.2 Commandes Matlab utilisées
Les fonctions rand et randn serviront à générer des signaux aléatoires.
Les fonctions mean, std, var et hist nous permettront de calculer et afficher leurs
caractéristiques.
La fonction xcorr sera utilisée pour calculer la fonction d’autocorrelation xx ( k ) .
Enfin, les fonctions permettant de réaliser l’estimation spectrale des signaux seront les
suivantes:
periodogram(x,window(N),NTFD,fe,'twosided' périodogramme simple ou modifié
pwelch(x,window(M),noverlap, NTFD,fe,'twosided') ) périodogramme moyenné
avec
 x représente le signal dont on souhaite estimer la puissance spectrale ;
 N est le nombre d’échantillons dans ce signal
 NTFD est le nombre de points sur lequel on calcule la puissance spectrale
 fe est la fréquence d’échantillonnage, utilisée à des fins de graduation d’échelle des
abscisses;
 M est la longueur des tranches utilisées pour calculer le périodogramme
 window est le type de fenêtre appliquée à chacune des tranches de signal
4.3 Génération et analyse de signaux aléatoires
4.3.1 Signal aléatoire gaussien (bruit gaussien)
Q1) soit un signal aléatoire gaussien de moyenne nulle et de variance égale à 4.
a. Créer N=2000 points de ce signal (fe=1)
b. Vérifier que sa moyenne, son écart-type et sa variance sont corrects au moyen
des fonctions mean, std et var.
c. Afficher le signal en fonction du temps et vérifier que la plupart des valeurs se
trouvent bien dans la bonne tranche de valeurs.
d. Afficher son histogramme et comparer à la densité de probabilité attendue
e. Calculer et afficher sous Matlab les 201 points centraux de sa fonction
d’autocorrélation non biaisée (c.à.d. ne calculer la fonction d’autocorrélation
que pour k allant de -100 à 100 tout en conservant la totalité des échantillons
du signal aléatoire). Le signal aléatoire est-il proche ou non d’un bruit blanc?
Justifier.
f. Calculer et afficher sous Matlab sa fonction d’autocorrélation non biaisée
calculée sur la totalité des points (c.à.d. de k allant de –(N-1) à (N-1)). Que
constatez-vous?
g. Calculer et afficher sous Matlab sa fonction d’autocorrélation biaisée calculée
sur la totalité des points. Que constatez-vous?
LABORATOIRE DE TRAITEMENT DU SIGNAL 13
h. Prédéterminer l’allure de sa densité spectrale de puissance et visualiser là
ensuite sous Matlab à l’aide du périodogramme simple. Utiliser pour cela
NTFD=2^13. Cela correspond-il ?
i. Montrer graphiquement (sous Matlab) que le périodogramme simple est
équivalent à:
N 1
1
2
Sˆ XX ( F ) 
X N (F )
N
avec X N ( F )   x ( n )e  jn 2 F
n 0
en calculant la transformée de Fourier de x(n) et en reportant
1
2
X N ( F ) dans
N
un graphe gradué en dB. Utiliser pour cela le même NTFD que précédemment.
j. Calculer et visualiser sa densité spectrale de puissance sous Matlab, à l’aide du
périodogramme modifié. Utiliser pour cela une fenêtre de Hamming et
NTFD=2^13.
k. Calculer et visualiser sa densité spectrale de puissance sous Matlab, à l’aide du
périodogramme moyenné en utilisant un nombre de tranches L=N/M=10
(noverlap=0), une fenêtre de Hamming et NTFD=2^13. Que constater vous?
4.3.2 Signal aléatoire uniforme (bruit uniforme)
Q2) soit un signal aléatoire uniforme de moyenne nulle et de variance égale à 4.
a. Créer N=2000 points de ce signal (fe=1)
b. Afficher le signal en fonction du temps et vérifier que la plupart des valeurs se
trouvent bien dans la bonne tranche de valeurs.
c. Afficher son histogramme et comparer à la densité de probabilité attendue
d. Calculer et afficher sous Matlab sa fonction d’autocorrélation biaisée calculée
sur la totalité des points. Le signal aléatoire est-il proche ou non d’un bruit
blanc?
e. Prédéterminer l’allure de sa densité spectrale de puissance et visualiser là
ensuite sous Matlab à l’aide du périodogramme moyenné. Utiliser pour cela un
nombre de tranches L=N/M=10 (noverlap=0), une fenêtre de hamming et
NTFD=2^13.
4.3.3 Signal autorégressif (bruit coloré)
Q3) Nous allons créer un signal autorégressif en filtrant un bruit blanc gaussien de
moyenne nulle et de variance=  2 au travers d’un filtre tout-pôles d’ordre 4 de
fonction de transfert opérationnelle:
H ( z) 
1
4
1   ai z
(Filtre d’ordre 4)
i
i 1
Pour cela :
LABORATOIRE DE TRAITEMENT DU SIGNAL 14
a) Choisir arbitrairement la position des pôles et des zéros de manière à ce que le
filtre résultant soit stable (et réalisable physiquement).
b) Créer le numérateur et le dénominateur de la fonction de transfert
opérationnel sous Matlab à l’aide de la fonction poly.
c) S’assurer que le système correspondant est stable en visualisant la position
des pôles et des zéros ainsi que la réponse impulsionnelle.
d) Prédéterminer la réponse en fréquence du système autorégressif et visualiser
la sous Matlab. Cela correspond-il ?
e) Créer 8000 points de bruit coloré en filtrant un bruit blanc de variance  2 ( 
étant choisi arbitrairement) au travers du filtre généré (fe=1).
f) Prédéterminer la densité spectrale de puissance du bruit coloré en fonction de
la réponse en fréquence du système autorégressif. Visualiser la ensuite sous
Matlab. Cela correspond-il ?
Q4)
Déterminer (sur papier) le type de fenêtre (rectangulaire, Hamming ou
Blackman) ainsi que le nombre de tranches (qui ne se recouvrent pas) à utiliser
pour pouvoir estimer au mieux la densité spectrale de puissance d’un signal
f  t    ai sin  2 fi t  auquel on a ajouter un bruit blanc gaussien de variance 5:
i
 f1  860 Hz, a1  1
f  t    ai sin  2 fi t  avec 
i
 f 2  1015 Hz, a2  5
fe = 8 kHz, N = 1024
Vérifier alors sous Matlab que l’affichage de la la densité spectrale de puissance
se fait correctement.
LABORATOIRE DE TRAITEMENT DU SIGNAL 15
Téléchargement