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