Académique Documents
Professionnel Documents
Culture Documents
TPManips PDF
TPManips PDF
Tp 5 ESTIMATION SPECTRALE
• Génération d’un signal à partir d’une densité spectrale
ABDELOUEL Lahcene
1999/2011 BELOUCHRANI Adel
MINISTERE DE L’ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE
Traitement du signal
Traitement du signal i ii
ABDELOUEL / BELOUCHRANI 1999@ 2011 tds.elec.enp@gmail.com ABDELOUEL / BELOUCHRANI 1999@ 2011 tds.elec.enp@gmail.com
ECOLE NATIONALE POLYTECHNIQUE MANIPULATIONS 3
DEPARTEMENT ELECTRONIQUE Manip 1 (*):
TRAVAUX PRATIQUES 1. Compléter le code Matlab suivant pour représenter sur le même graphe (où dans une même fenêtre
graphique) les variations de trois signaux de base (sinusoïdaux) ainsi que leur combinaison.
TRAITEMENT DU SIGNAL
2010/2011 TDS-TP 1 % définition des paramètres
Code f0 = 0.51; A0 = 1; f1 = 0.11; A1 = 2; f2 = 0.21; A2 = 2;
REPRESENTATIONS DE SIGNAUX Matlab % déclaration de signaux de base
Un signal est une entité qui sert à véhiculer une information. x0 = A0*sin(2*pi*f0*t); x1 = A1*sin(2*pi*f1*t); x2 = A2*sin(2*pi*f2*t);
C’est une quantité physique mesurable qui évolue en fonction d’une ou plusieurs variables x3=x0+x1+x2 ; % combinaison
Un système est une entité physique qui réalise une opération sur un signal
% affichage des signaux
plot(t, x0, 'y'); plot(t, x1, 'g'); plot(t, x2, 'c'); plot(t, x3, 'k.');
Manip 2 :
TRAITEMENT DU SIGNAL 1. Ecrire une fonction MATLAB qui nous permet de générer une sinusoïde de longueur finie. La fonction
doit accepter 5 paramètres (Amplitude, fréquence, phase initiale, le début et la fin de l’intervalle). La
Le traitement du signal (analogique ou numérique) consiste valeur de retour est un vecteur colonne les échantillons de la sinusoïde
1. A étudier le signal, l’analyser, en extraire les informations pertinentes (radar, sonar, …etc). 2. Ecrire le code MATLAB pour générer et représenter graphiquement les signaux suivants
2. A modifier le signal (enlever les parasites d’un son, éclaircir une image ….etc. )
3. A synthétiser/reproduire des signaux nouveaux « voix artificielles »
x1(t) = 4*cos(5πt/4) t ≤ 2s x2(t) = 3*cos(4t) + sin(πt) t ≤ 20s
Manip 3 (*):
APPROCHES DE CARACTERISATION D'UN SIGNAL: On considère les quatre signaux suivants :
x1(t) = cos (2πf1t+p1) avec
Description Description Description
x2(t) = cos (2πf2t) f1 = 40 Hz; p1 = π/4,
Temporelle Fréquentielle Statistique
x3(t) = cos (2πf3t+p3) f2 = 105 Hz;
valeur signaux Signaux non Signaux x4(t) = x1(t) + 3*x2(t) + 2*x3(t) f3 = 125 Hz; p3 = π/3.
instantanée périodiques périodiques aléatoires 1. Générer un vecteur temps t de 100 points entre t0 = 0s et t1 = 0.1s.
d'un signal. Décomposition en Transformée de Propriétés 2. Tracer les xi(t); (i = 1; 4). Utiliser la commande subplot afin de tracer les quatre courbes les unes en
Série de Fourier Fourier (TF) 2 statistiques dessous des autres.
x(t) (DSF)1 X(f) (Moy,Var, Puissance) 3. Calculer la transformée de Fourier4 (fonction fft ) de chaque signal et représenter le spectre d’énergie
On peut définir trois spectres de x (t). entre 0 Hz et 1000Hz . Utiliser la commande subplot afin de tracer les quatre courbes à coté de chaque
x(t) et X(f) sont deux descriptions équivalentes 1. Le spectre en amplitude si l’on trace |X (f)|. signal temporel de la question (2).
(temporelle ou fréquentielle) du même signal. 2. Le spectre en phase si l’on trace Arg (X (f)). 4. A l’aide de la commande fftshift, représenter le spectre d’énergie entre -500 Hz et 500 Hz. Utiliser la
3. Le spectre d’énergie si l’on trace |X (f) |2. commande subplot afin de tracer les quatre courbes à coté de chaque signal temporel et fréquentiel des
questions 2 et 3.
PREPARATION NB. Toutes les figures devront être tracées avec les axes et les légendes des axes appropriés.
Traitement du signal Page 5 TP1 : Représentation de Signaux Traitement du signal Page 6 TP2 : Echantillonnage
ABDELOUEL / BELOUCHRANI 1999@ 2011 ABDELOUEL / BELOUCHRANI 1999@ 2011
Manip 4 :
1. Générer sur un intervalle de 10 ms quatre sinusoïdes avec fe=8000Hz et une phase initiale φ ECOLE NATIONALE POLYTECHNIQUE
arbitraire. Fait varier la fréquence f0 de 100 Hz à 475 Hz par pas de 125 Hz.
DEPARTEMENT ELECTRONIQUE
2. Tracer les 4 signaux obtenus dans l’ordre sur la même fenêtre en utilisant la fonction MATLAB
subplot. TRAVAUX PRATIQUES
3. Vérifier est ce que les fréquences obtenus sur les courbes tracées correspondants aux valeurs de f0 . 2010/2011 TRAITEMENT DU SIGNAL TDS-TP 3
Expliquer ce résultat.
4. Refaire les étapes précédentes (1,2,3) en variant cette fois-ci la fréquence f0 de 7525 Hz à 7900 T
TRRA
ANNS
SFFO
ORRM
MEEE
ESSD
DEEF
FOOU
URRIIE
ERR
Hz par pas de 125 Hz. Noter que la fréquence apparente de la sinusoïde sur les courbes tracées DE SIGNAUX NUMERIQUES (DTFT, DFT, FFT)
décroît. Expliquer ce phénomène.
Une alternative à la représentation temporelle du signal consiste à représenter son contenu fréquentiel (décomposition spectrale.
5. Refaire les étapes précédentes (1,2,3) en variant la fréquence f0 de 32100 à 32475 Hz par pas de Celui-ci est obtenu en calculant sa transformée de Fourier (FT : Fourier Transform)
Pour les signaux discrets, la transformation de Fourier discrète est une des pierres angulaires du traitement du signal
125 Hz.
6. Prédire à l’avance si la fréquence apparent de la sinusoïde sur les courbes tracées décroît ou croît. RAPPELS : DTFT & DFT
Expliquer.
La transformée de Fourier à temps discret (DTFT : Discrete Time Fourier Transform) d’une signal discret {x[k]} est une fonction à
Manip 5 : fréquence continue S(f), et il est d’usage de la représenter sur les intervalles de fréquence normalisée [−1/ 2,1/ 2] ou [0,1], du fait de
sa périodicité. Le calcul sur ordinateur de la DTFT à partir de la valeur des échantillons de x[k] impose une charge de calcul infinie
1. Générer 0.8 secondes d’un signal s(t) sinusoïdal d'amplitude % Notes puisque la fréquence f varie continûment sur l’intervalle [0,1]. C’est la raison pour laquelle la notion de transformée de Fourier
1 de fréquence f=100 Hz échantillonné à fe=1000 Hz. A=1; F=100; Tobs=0.8 ; discrète (DFT : Discrete Fourier Transform) a été introduite. Son calcul est limité à un nombre fini (N) de points de la suite
2. Combien y a t'il d'échantillons (Ne) ? Fe=1000; Te=1/Fe ; temporelle {x[k]} et à un nombre fini (L) de valeurs de la fréquence f : L, le nombre de points de calcul de la DTFT influe sur la
précision du tracé du spectre, tandis que N est lié à la résolution. L’intérêt pratique de la DFT est très largement dû à la découverte
Quelle est la longueur du vecteur s ? Ne=Tobs*Fe %Ne*Te=Tobs d’une méthode de calcul rapide connue sous le nom de transformée de Fourier rapide (FFT : Fast Fourier Transform), et prendre L =
3. Représenter le module de la TFD avec la commande : N=0 :Ne-1 ; N ne restreint en rien la généralité de la notion introduite.
plot(abs(fft(s))). t=N*Te; La fait de limiter à N le nombre d’échantillons d’un signal peut être vu comme la multiplication terme à terme de la totalité du signal
4. Générer le vecteur des fréquences freq = n. fs/Ne, par la fenêtre rectangulaire W(k). Cette multiplication est équivalente, d’un point de vue spectral, à convoluer la DTFT de x[k ] avec
Freq=N*fe/Ne; la DTFT de w(k). Cette opération de convolution a pour effet d’introduire des ondulations dans le spectre.
avec n variant de 0 à Ne-1. S=
5. Représenter le module de la TFD en fonction du vecteur plot(freq,abs(fft(s))). PREPARATION
fréquences freq : commande plot(freq,abs(fft(s))).
6. Vérifier qu'il y a bien une raie à la fréquence du signal. 1. Calculer la transformée de Fourier d’un cosinus et d’un sinus
2. Montrer que la transformation de Fourier à temps discret (DTFT) W(f) de la fenêtre rectangulaire
w(n) est donnée par l’expression suivante : Dirichlet(ω, N)
Manip 6 : sin( π fN ) − j π f ( N − 1 ) 1 pour n = 0 ,1,K N
• A partir d'un signal de référence sinusoïdal, de fréquence fr= 950 hz et pour une fréquence W ( f )= e w (n ) =
d'échantillonnage fe de 1 khz:: sin( π f ) 0 ailleurs
1. Tracer le graphe du signal et calculer sa période 3. Calculer analytiquement l’expression de la TF du signal h(n) où h[n]= an.u(n) avec a <1
2. calculer la fréquence apparente du signal (à partir du graphe fa=1/T)
3. Réaliser les mêmes opérations avec une fréquence d'échantillonnage fe de 2 khz puis de 20 khz 4. On reçoit 256 échantillons d’un signal dont on calcule le module carré de sa FFT (voir la figure
4. Expliquer la différence entre la fréquence réelle du signal et le calcul de la la période ou ci dessous). Sachant que la fréquence d’échantillonnage était de 32KHz, déterminer les
fréquence réalisés fréquences des deux pics du module carré de la FFT. (Le 1er pic correspond au point 88.)
Manip 7 (*):
1. Générer un signal en dent de scie de durée 1.5 secondes et de fréquence de 180 Hz échantillonné à
une fréquence de 10 kHz
2. Générer un signal carré de durée 1.5 secondes et de fréquence de 180 Hz échantillonné à une
fréquence de 10 kHz
3. Tracer seulement 0.2 secondes des signaux générés (utiliser les fonctions sawtooth et square)
fs = 10000; t = 0:1/fs:1.5; plot(t,x1,t,x2), axis([0 0.2 -1 1]);
x1 = 0.2*sawtooth(2*pi*180*t); disp('Taper sur la touche "Entrée" pour continuer');
x2=0.2*square (2*pi*180*t); pause;
Traitement du signal Page 7 TP2 : Echantillonnage Traitement du signal Page 8 TP3-Transformées de Fourier
ABDELOUEL / BELOUCHRANI 1999@ 2011 ABDELOUEL / BELOUCHRANI 1999@ 2011
MANIPULATION ]
Manip 3bis :
Manip 3 : • Montrer par un exemple qu’on peut
• Refaire la Manip 2 en réalisant un filtre passe haut avec le gabarit réaliser un filtre passe bande par la
suivant : mise en cascade de deux filtres : l’un
a. Fréquence d’échantillonnage : Fs = 48000 Hz. passe bas, l’autre un passe haut.
b. Fréquence de la bande passante : Fpass = 8000 Hz.
c. Fréquence de la coupe bande : Fstop = 7000 Hz
d. Ondulations dans la bande passante: Apass = 1 dB.
e. Atténuation dans la coupe bande : Astop = 80 dB.
Manip 4:
Testez les scripts Matlab suivants et commentez les résultats
fsamp= 8000; fn =[0 0.6 0.6 1];
fcuts = [1000 1500 2500 3000]; H = [1 1 0 0]; M=30;
%fcuts = [1450 1500 2500 2550]; fe=8000; f=fn*fe/2
mags = [0 1 0]; gabarit=[0 1 1 0]; b1=fir2(30,fn,H);
devs = [0.01 0.05 0.01]; b2=fir2(30,fn,H,Kaiser);
[n,Wn,beta,ftype] = [h1,f1]=freqz(b1,1,128,fe);
kaiserord(fcuts,mags,devs,fsamp); [h2,f2]=freqz(b2,1,128,fe);
n = n + rem(n,2); plot(f,m,f1,abs(h))
hh=fir1(n,Wn,ftype,kaiser(n+1,beta),'noscale'); legend('Ideal','FIR fir2') MANIPULATION
[H,f] = freqz(hh,1,1024,fsamp); title('Comparison of H(f)')
Manip 1 :
semilogy(fcuts,gabarit,f,abs(H)), grid on
SPTOOL est un outil qui simplifie les calculs que l’on peut faire avec MATLAB. L’interface de SPTOOL
permet de créer ou d’importer des signaux et des filtres et d’observer (avec l’outil FVTOOL5) le résultat du
Manip 5: (Filtrage par FFT) filtrage numérique en temporel et en fréquentiel (outil FDATool). Toutes les opérations effectuées sous ces
On veut utiliser la FFT pour réaliser un filtre FIR défini par sa réponse impulsionnelle h(m). outils sont obtenues par des calculs que l’on peut exécuter pas par pas dans la ligne de commande Matlab.
1. Implémenter sous Matlab la procédure suivante : L’utilisateur peut revenir aux calculs en utilisant les fonctions :
Connaissant H(f), la FFT de h(m), et pour un signal d'entrée x(n), • Pour SPTOOL et FVTOOL : plot, stem, • Pour FDATOOL : les mêmes plus les
calculer X(f), la FFT de x(n), multiplier les deux FFT terme à terme : Y(f)= H(f ) X(f ) linspace, logspace, fft, spectrum, filter, fonctions de synthèse de FIR/IIR : filt1, filt2,
restituer la FFT inverse y(n) : y(n) =IFFT H(f ) X(f ) Avec H(f ) =FFT h(m ) et X(f ) =FFT x(n ) freqz, zplane, roots, poly,… butter, buttord, ellip, ellipord, yulewalk …
Lancer l’interface avec la commande sptool
2. Tester la procédure en utilisant le filtre défini par h= ones(1,M)/M sur un sinusoïde avec un bruit 1. Dans la fenêtre SPTool, sélectionnez un signal, puis dans la colonne Spectra, cliquez sur 'Create'.
additif gaussien 2. Dans la fenêtre Spectrum Viewer qui vient d'apparaître choisissez une méthode d'analyse spectrale,
puis 'Apply'. Cela vous donne le spectre du signal.
3. Il est intéressant de faire cet essai sur le sinus avec les méthodes fft, et welsh. On peut aussi créer un
signal égal à la somme de 3 sinus de fréquences différentes.
5
FVTOOL :Filter Visualisation Tool
Traitement du signal Page 11 TP4 Filtrage Numérique Traitement du signal Page 12 TP5 : Analyse Spectrale
ABDELOUEL / BELOUCHRANI 1999@ 2011 ABDELOUEL / BELOUCHRANI 1999@ 2011
Manip 2:
1. Tapez h=firls(30,[0 .1 .2 .5]*2,[1 1 0 0]); 5. Exportez les objets « train », « trainse » et le
ECOLE NATIONALE POLYTECHNIQUE
1. Lancez fvtool(h); filtre « LSlp » dans le « workspace » de DEPARTEMENT ELECTRONIQUE
2. Lancez l’outil SPTOOL MATLAB. Tapez whos puis commenter.
3. Observez le signal « train » à l’aide de la 6. Tapez >>B=LSlp.tf.num ; A=LSlp.tf.den ; TRAVAUX PRATIQUES
commande « view », puis son spectre après freqz(B,A) 2010/2011 TRAITEMENT DU SIGNAL TDS-TP 5b
filtrage : «trainse » 7. Réalisez l’import d’un filtre numérique sous
4. Observez la réponse fréquentielle du filtre SPTOOL en créant des supports B et A
«LSlp» quelconques dans le « workspace »
Analyse Spectrale
Génération d’un signal à partir d’une densité spectrale
Manip 3 :
1) Charger le signal SinusGBF.xls sous l’environnement MATLAB à l’aide de la commande Préparation
xlsread. Considérer le système suivant :
2) Importer le signal chargé à l’outil sptool. y(n) = x(n) −α y(n + k −1)
3) Visualiser le signal chargé à l’aide des options de sptool. où k est un paramètre entier ainsi que α .
4) Lancer la fenêtre de l’analyse spectrale de l’outil sptool pour le signal chargé. 1. Ce système est-il AR, ARMA ou MA? Justifier votre réponse.
5) Calculer et visualiser le spectre du signal SinusGBF en choisissant les différentes méthodes 2. Etudier la causalité et la stabilité de ce système en fonction des valeurs de k et α .
d’analyse que fournit l’outil sptool. 3. Trouver la fonction de transfert H(z) pour k=0. En déduire la réponse fréquentielle
6) Faire varier les paramètres d’analyse et interpréter les résultats obtenus. 4. Est ce que le système considéré est à minimum de phase ? Justifier votre réponse.
7) Refaire les opérations 1-6 pour les signaux : Sonde1.xls, Sonde2.xls et Sonde3.xls 5. Ce système est excité par un bruit blanc de moyenne nulle et de variance σ 2 =1. En
déduire la moyenne et la variance ainsi que la densité spectrale du signale de sortie.
Manip 4 :
On dispose de L échantillons d’un signal x[1 . . .L], subdivisé en M segments de taille N. Manip 1
Soit x(n) un bruit blanc de variance unitaire 1. Charger le spectre H1.xls sous l’environnement MATLAB à l’aide de la commande
1. Estimer et dessiner la densité spectrale de ce signal à l’aide de périodogrammes avec M = 1, M = 64, xlsread.
M = 256 et les 2 choix de fenêtre rectangulaire ou hanning. 2. Former à partir de H1 un spectre symétrique par rapport à l’origine des fréquences.
2. Calculez dans chaque cas la moyenne et la variance du périodogramme. Comparez aux résultats 3. Calculer la fonction d’auto-corrélation à partir du spectre obtenu.
théoriques attendus. Commentez le rôle de M et du fenêtrage dans le cas du bruit
4. Vérifier que la fonction d’auto-corrélation obtenue est à valeurs réelles.
Manip 5 : Analyse d’un bruit blanc + 2 sinus 5. Obtenir les paramètres d’un modèle AR d’ordre 12 à partir de la fonction d’autocorrélation
On dispose de L échantillons d’un signal x[1 . . .L], subdivisé en M segments de taille N. obtenue précédemment en utilisant la fonction MATLAB levinson.m
Soit x(n) = sin(2*Pi*f1*n) + 0.3 sin(*Pi*f2*n) + b(n) 6. Filtrer un signal blanc gaussien par le filtre AR obtenue à l’étape précédente en utilisant
avec b(n) bruit blanc de variance var² et f1=0.2, f2=f1+df la fonction MATLAB filter.m
1. On dispose de L = 1024 points, bruit faible Var²= 0.2 : examinez les périodogrammes pour divers 7. Analyse le signal obtenu à l’aide de l’outil sptool
choix de df, de N et de la fenêtre. Déterminez les paramètres, selon df, permettant un pouvoir de 8. Comparer le spectre obtenu avec le spectre H1
résolution optimal entre les deux raies pures.
2. 2. Bruit fort : var² = 0.05 : Quelle est la taille minimale L nécessaire (et de quelle fa¸con les utiliser)
pour assurer une séparation et extraction du bruit nette pour les 2 raies pures ? Essayez d’estimer les Manip 2
fréquences et amplitudes des sinus, et la puissance var² du bruit. 1. Refaire la Manip 1 pour les spectres :
2. H2.doc
3. H3.doc
Traitement du signal Page 13 TP5 : Analyse Spectrale Traitement du signal Page 14 TP5 : Analyse Spectrale
ABDELOUEL / BELOUCHRANI 1999@ 2011 ABDELOUEL / BELOUCHRANI 1999@ 2011