Vous êtes sur la page 1sur 8

MINISTERE DE L’ENSEIGNEMENT SUPERIEUR

MINISTERE DE L’ENSEIGNEMENT SUPERIEUR


ET DE LA RECHERCHE SCIENTIFIQUE ET DE LA RECHERCHE SCIENTIFIQUE
ECOLE NATIONALE POLYTECHNIQUE
ECOLE NATIONALE POLYTECHNIQUE Département Electronique
Année Universitaire 2010/2011
Département d’Electronique
Travaux Pratiques
Traitement du signal

TP Matlab PROGRAMMATION MATLAB


(Pré requis) Rappels : Matrices, Graphes, scripts et fonctions

PARTIE I TRAITEMENTS NUMERIQUES


REPRESENTATIONS DE SIGNAUX
Tp 1 a) Représentation temporelle (Génération de Signaux )
b) Représentation fréquentielle : Transformée de Fourier (FT),

Tp 2 ECHANTILLONNAGE ET RECONSTRUCTION DE SIGNAUX.


Tp 3 TRANSFORMEE DE FOURIER DISCRETE (DTFT, DFT & FFT ).
FILTRAGE NUMERIQUE
Tp 4
• Filtres RIF, Filtres RII, Equation aux différences

Tp 5 ESTIMATION SPECTRALE
• Génération d’un signal à partir d’une densité spectrale

PARTIE II : PROJETS & APPLICATIONS DU TS


TELECOMMUNICATIONS
AUDIO/VIDEO NUMERIQUE
ACQUISITION DE DONNEES.
…. ETC

ABDELOUEL Lahcene
1999/2011 BELOUCHRANI Adel
MINISTERE DE L’ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE

ECOLE NATIONALE POLYTECHNIQUE COMPTE RENDU DU TP


• Le rapport écrit contiendra l'analyse des problèmes, le cheminement utilisé pour les résoudre,
Département d’Electronique le détail des calculs des solutions théoriques /mathématiques des problèmes posés, les figures
Traitement du signal commentées, vos remarques et explications associées à chaque exercice de façon à montrer si
Année Univ. les résultats obtenus correspondent oui ou non aux résultats attendus.
2010/2011
TRAVAUX PRATIQUES TP-T.D.S • La qualité du rapport (pertinence de vos remarques, commentaires et explications), ainsi
que celle du code (utilisation de fonctions/ scripts Matlab, gestion efficace des variables)
PRESENTATION seront au coeur de l’évaluation : mieux vaut faire peu mais bien
Chacune des manipulations du module Traitement de signal se compose de trois parties • Chaque étudiant/binôme sera responsable de la sauvegarde de ses fichiers (Rapport
distinctes: écrit+programmes) sur la plateforme d’enseignements d’électronique (Voir procédure d’accès).
1. Une partie théorique qui rend le TP indépendant de l'avancement du cours.
2. Une partie de préparation qui permet à l'étudiant de se pencher sur tous les points de son BIBLIOGRAPHIE
TP et de résoudre les exercices proposés http://biblio.intranet.enp.edu
3. Une partie dite "Manipulation" qui permet à l’étudiant de vérifier pratiquement sur machine Pour la préparation de son T.P, l'étudiant pourra se référer à la documentation suivante:
les différentes notions étudiées en cours [1] M. Kunt, Traitement numériques des signaux, DUNOD 1981.
DEROULEMENT DU TP ET RECOMMANDATIONS Cote : 621.391KUN
PREPARATION : [2] M. Bellanger Traitement numérique du signal théorie et pratiques ed. Masson, 1981, 379
♦ Le temps imparti pour la manipulation étant limité, il est important que les étudiants Pages. Cote : 621.391 BEL
s'astreignent à résoudre les problèmes posés dans les temps en se présentant avec une [3] M. Kunt, “Digital signal processing software laborator . ed P P Romandes , 1984, 89 pages,
préparation (Individuelle).
Cote : 681.32 KUN
♦ L’étudiant ne sera pas autorisé à manipuler s'il n'est pas muni de sa préparation
[4] Michel Marie, Applications de MATLAB 5 et SIMULINK 2, contrôle de procédés, logique
individuelle, contenant entre autres la solution des exercices proposés, et les programmes
MATLAB demandés. L’enseignant chargé des TPs, pourra procéder à des tests et floue, réseaux de neurones, traitement du signal : Cote : 681.3.06 MOK
vérifications; pour s’assurer que les solutions et les programmes de la préparation sont [5] R. Boite & M. Kunt, Traitement de la parole, P P Romandes, Lausanne, Suisse, 1987.
l’œuvre de l’étudiant. [6] M. Labarrère, J.P. Krieff et B. Gimonet, Le Filtrage et ses applications, , Cepadues 1982.
MODALITES DE DEROULEMENT [7] J. Liffermann, Les méthodes rapides de transformation du signal: Fourier, Walsh,
♦ Les TP nécessitant un logiciel mathématique de calcul numérique, et peuvent être réalisés Hadamard, Haar, Masson 1980.
sous Matlab, Octave où Scilab. Matlab est un logiciel commercial, Octave et Scilab sont des [8] P. Fondaneche et P. Gilbertas, Filtres numériques: Principes et réalisations, Masson
logiciels librement utilisables (open source). Octave est un clone de Matlab avec une syntaxe 1981..
très proche et des programmes fortement compatibles. Scilab a diverses particularités et une [9] P. Polletier, Traitement numérique du signal. Théorie et pratique. Masson 1971 .
syntaxe quelque peu différente. Les aspects textuels (commentaires, chaînes de caractères, [10] P. Pelletier, Techniques numériques appliquées aux calculs scientifiques, Masson 1971.
etc) et graphiques de Matlab et Scilab sont pratiquement incompatibles. [11] Georges Gastang, La transformée de Fourier, Revue: Mesure- Régulation -Automatisme
♦ Pour le déroulement proprement dit des manipulations, les étudiants doivent s’organiser en MARS 1979.
binômes ou à la limite en trinômes, selon les moyens informatiques disponibles
[12] P. M. BEAUFILS, M. RAMI, Le filtrage numérique, Edition Sybex Applications
SEANCE DE TP :
Techniques
♦ A chaque séance, il vous sera demandé :
1. D'écrire un ou plusieurs script(s) mettant en œuvre les appels aux fonctions [13] Patrick Duvant, Le traitement du Signal, Concepts et Applications, 2° Edition , Edition
(Matlab/Octave/Scilab) pour résoudre certains problèmes du traitement du signal. HERMES
2. De décrire les problèmes examinés, les opérations effectuées par le logiciel de calcul http://biblio.intranet.enp.edu
numérique, et les résultats obtenus. Note :
♦ Les étudiants doivent remettre le compte rendu du TP (Rapport écrit+programmes) à la fin de • Les documents de TP et d’autres documents très utiles sont disponibles sur la
la séance, ou dans le cas échant lors de la prochaine séance de TP. Aucun retard ne sera plateforme d’enseignements d’électronique, accessible sur le site web de l’ENP
toléré au delà d’une 1 semaine après la dernière séance. http://elearning.eln.enp.edu.dz
EVALUATION
• L’inscription au cours est automatique, prenez contact avec votre enseignant pour
1. Préparation et compréhension des exercices (évaluation continue : 25%)
2. Travail effectué lors des séances de TP (évaluation continue : 25%)
avoir le code d’accès
3. Rapports de synthèse (25%) Autres liens :
4. Test de TP final (25%) http://sites.google.com/site/T2Signal/
https://spideroak.com/browse/share/Abdelouel/T2Signal
email : tds.elec.enp@gmail.com

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.

1. Calculer la transformée de Fourier de chacun de signaux suivants : Manip 4 (*):

Soit le signal avec a > 0


Ecrire un script Matlab commenté pour réaliser les opérations suivantes :
1. Tracer le signal x(t) entre –5 et 5, avec un pas de temps Te = 0.01s, et pour a = 1.
2. Tracer la transformée de Fourier Xa(f) calculée de manière formelle (expression algébrique) entre
2. Calculer la transformée de Fourier X(f) des signaux suivants [-5Hz ..5Hz] avec un pas de fréquence Fe = 0.01Hz.
3. Tracer le module et la phase de la transformée de Fourier (fonctions abs et angle).
 Le signal avec a > 0 4. Tracer le spectre en amplitude de X(f), la TF de x(t) entre –5 et 5 Hz. Justifier les différences avec le
 Le signal sinusoïdal de fréquence f0. résultat du (2).
 La fonction exponentielle complexe : 5. Calculer la transformée de Fourier Inverse de X(f). Retrouve t'on exactement le signal de départ x(t)?
6. Illustrer la propriété de décalage fréquentiel de la TF en représentant le module de la TF de

avec fo=5 Hz.


1
La décomposition en Série de Fourrier (DSF) consiste à exprimer un signal périodique
3
comme une combinaison linéaire de signaux. Remarque : Ce TP traite en principe des signaux continus. Or l'utilisation de Matlab suppose l'échantillonnage du
2
La Transformée de Fourier (TF) peut être vue comme une généralisation des séries de Fourier aux signaux signal. Il faudra donc être vigilant par rapport aux différences de traitement entre le temps continu et le temps discret.
4
non périodiques. La TF constitue le lien entre la représentation temporelle d'un signal et sa représentation Pour l’instant on ne se préoccupera pas des différences fondamentales entre la Transformée de Fourier et la
fréquentielle. Transformée de Fourier Discrète.
Traitement du signal Page 3 TP1 : Représentation de Signaux Traitement du signal Page 4 TP1 : Représentation de Signaux
ABDELOUEL / BELOUCHRANI 1999@ 2011 ABDELOUEL / BELOUCHRANI 1999@ 2011
Manip 5
Le modèle de bruit le plus couramment rencontré dans les mesures est le bruit blanc Gaussien. Il est réalisé ECOLE NATIONALE POLYTECHNIQUE
par la fonction Matlab randn()
1. Ecrire un script Matlab pour générer et représenter graphiquement 1000 points d'un signal aléatoire DEPARTEMENT ELECTRONIQUE
uniforme de moyenne nulle et de variance égale à 1 (fonction rand). Faites de même pour un signal TRAVAUX PRATIQUES
aléatoire gaussien de moyenne nulle et de variance égale à 1. Tracer et commenter l’histogramme de
chaque signal (fonction hist) 2010/2011 TRAITEMENT DU SIGNAL TDS-TP 2
2. Réécrire le script suivant pour le transformer t = (0:0.001:1)'; % Te
en une fonction bsinus() avec paramètres afin y = 3*sin(2*pi*80*t) % F1 S
SIIG
GNNA
AUUXXDDIIS
SCCR
REET
TSS
de générer une sinusoïde de fréquence f0 yn = y + 0.5*randn(size(t)); %Var
bruitée avec un bruit blanc gaussien de plot(t(1:50),yn(1:50)) % Ne
ECHANTILLONNAGE ET RECONSTRUCTION DE SIGNAUX
variance Var. L’opération d’échantillonnage consiste à remplacer un signal analogique continu dans le temps x(t), par un autre signal
3. Ecrire un programme principal (script) faisant appel à la fonction pour expérimenter différentes à temps discret. e(t)=x[nTe], qui n’est défini que pour des valeurs discrètes du temps,
multiples entiers d’une durée Te dite période d’échantillonnage.
réalisations de signaux sinusoïdaux bruités.
Notes Matlab : PREPARATION
1. fft(X,N) est la transformée de Fourier discrète sur N points du vecteur X, complété avec des zéros si X a
Soit le signal analogique : x (t) = sin( 2 π f 0 t +φ) . On se propose d’échantillonner x(t) à la fréquence
moins de N points et tronqué si X a plus de N points.
2. La commande Xf=fft(X,N) codant les fréquences négatives entre N/2+1 et N valeurs du signal Xf, la d’échantillonnage fe pour obtenir le signal à temps discret suivant
commande fftshift(Xf) permet de centrer le spectre sur les fréquences nulles (entre –1/(2 Te) et 1/(2 Te). f0
x ( n ) = x ( t ) t = n / f e = sin( 2 π n +φ) (1)
3. Pour approximer la Transformée de Fourier continue X(f) d’un signal x(t), représenté suivant un pas fe
Te, on utilise la commande : Xf= fftshift(Te * fft(x)) ;
4. La transformée de Fourier Inverse s’obtient par la commande xt=abs(ifft(Xf)/Te). Notez qu’il est 1. Déterminer la fréquence d’échantillonnage fe qui vérifie le théorème de Shannon.
nécessaire de considérer le module de la TF inverse , car la TF et la TF inverse sont des opérateurs à 2. A quoi sert le théorème de Shannon.
valeurs complexes. 3. Expliquer le phénomène de recouvrement « Aliasing »
Exemples de code Matlab :
Définition des fonctions Echelon et Rectangle MANIPULATION
Fonction Echelon Fonction Rectangle
clear all % Définition de la fonction Rectangle Manip 1 :
% définition du vecteur temps Rectangle = @(u,tau) (abs(u)<= tau/2) ;
n = 100 ; t = linspace(-5,5,n) % Equivalent a : On considère le signal sinusoïdal x(t) = sin (2*Pi*5t) généré par le code suivant : t=[0 :0.01 :10] ;
% Définition de la fonction Echelon % fonction [signal] = Rectangle(u,tau) 1. Quelle est la fréquence maximale du signal analogique x=sin(2* pi*5*t) ;
Echelon = @(u) (u>0); % dans un fichier séparé 2. Quelle est la fréquence d’échantillonnage ?
Fonction fmagplot : Visualisation de la TF d’un signal analogique 3. Le théorème d’échantillonnage est-il respecté ? Quelle conclusion en tirez-vous
function fmagplot( xa, dt ) L = length(xa); 4. Même question (3) si on augmente la fréquence du signal analogique à 30 Hz, à 80 Hz ?
%FMAGPLOT Plot Fourier Transform (Mag) of "ANALOG" signal Nfft = round( 2 .^ nextpow2(5*L) );
% copyright 1994, by C.S. Burrus, J.H. McClellan, A.V. Oppenheim, Xa = fft(xa, Nfft); Manip 2 :
% "Computer-Based Exercises for Signal Processing /MATLAB" range = 0:(Nfft/4); ff = range/Nfft/dt; On souhaite générer et afficher un signal sinusoïdal d’équation s(t) =A.sin( wt) A.sin(2*Pi*f* t)
% Usage: fmagplot( xa, dt ) plot( ff/1000, abs( Xa(1+range) ) )
1. Générer un "vecteur de temps" vt, contenant les instants des échantillons de ce signal avec une
% xa : "ANALOG" signal title('FOURIER TRANSFORM (MAG)')
% dt : sampling interval for the simulation of xa(t) xlabel('FREQUENCY (kHz)'), grid
période d’échantillonnage (Te), vt=(0:N-1)*Te;
Exemple de script Matlab 2. Générer le signal à l’aide de la commande suivante : s=A*sin(2*pi*f*vt); Avec les paramètres
clear all %% Calcul d'une TF par Matlab suivants :
% representation temporelle du signal Te = 0.01 ; TFx = fftshift(Te*fft(signal)); Fréquence d’échantillonnage : fe=100Hz, Fréquence du signal : f=10Hz, Amplitude A=1.
t = (-5:0.01:5); a = 1 ; f2 = (-1/(2*Te):(1/round(length(signal)*Te)):1/(2*Te)); 3. Ecrire un programme permettant de générer (et d’afficher) une période de signal.
signal = exp(-a*abs(t)); subplot(3,1,3) ; plot(f2,abs(TFx)) • Afficher le signal s(t) avec la commande plot(s), préciser comment est gradué l’axe des
subplot(3,1,1) ;plot(t,signal) xlim([-5 5]) abscisses
f = (-5:0.01:5) ; xlabel('Frequence'); ylabel('Amplitude') 4. Afficher le signal généré avec un axe des abscisses gradué avec le temps correspondant au signal.
TFCalculee = 2*a./(a^2+(2*pi*f).^2);
subplot(3,1,2) Manip 3 (*):
plot(f, TFCalculee) 1. A partir d’un signal sinusoïdal analogique d'amplitude 1 et de fréquence f=1 000 Hz, créer trois
%% Calcul d'une TF par Matlab
signaux sinusoïdaux numériques échantillonnés respectivement
.
a) à 20 000 Hz , b) à 5 000 Hz c) à 1 500 Hz
2. Représenter les différents signaux sur le même graphe.
3. Interpréter !, le théorème d’échantillonnage est-il respecté ?

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 1 ECOLE NATIONALE POLYTECHNIQUE


On veut calculer la transformée de Fourier discrète d'une paire d'exponentielles complexes. DEPARTEMENT ELECTRONIQUE
1. Générer 128 échantillons d'une somme de deux exponentielles complexes de fréquences f1=1680 TRAVAUX PRATIQUES
Hz et f2=1780 Hz échantillonnées à fe= 8 kHz, et de même amplitude. Afficher la partie réelle du
résultat. 2010/2011 TRAITEMENT DU SIGNAL TDS-TP 4
2. Calculer la FFT du signal sur 32 échantillons, et afficher le module. Les sinusoïdes sont-elles
résolues ?
3. Refaire le calcul sur 32 échantillons en prenant une FFT sur N= 256 points fréquentiels puis sur
F
Fiillttrra
agge
eNNu
ummé
érriiq
quue
e
N=1024. Les sinusoïdes sont-elles résolues? Interpréter les résultats obtenus en calculant f2-f1 et Un filtre numérique réalise un calcul sur une séquence de nombres introduite à son entrée et fournit, à sa sortie,
une séquence numérique modifiée de sorte à répondre à des contraintes données (réponse en amplitudes, en phase …).
fe/32 ? La plupart des modèles de filtres analogiques peuvent être reproduits sous forme numérique
4. Refaire le calcul sur 128 échantillons. Les sinusoïdes sont-elles résolues? Calculer fe/128 et
Interpréter ? PREPARATION
5. Refaire le calcul sur 128 échantillons en prenant une FFT sur N=256 points fréquentiels. Est-ce que 1) La forme générale d’un filtre numérique est donnée par une fonction de transfert G(z) à P pôles pi et Q
les sinusoïdes sont résolues? Qu'est-ce qui change par rapport à N = 128 par défaut ? zéros :
6. Donner la valeur de la précision et la résolution pour les différents cas précédents.
B( z ) b(0) + b(1) z −1 + L + b(Q) z −Q
G( z ) = =
Manip 2 A( z ) 1 + a(1) z −1 + L + a( P) z − P
On veut générer une sinusoïde pure, de fréquence donnée, à partir de la transformée de Fourier inverse Cela a. Si P=0, (le filtre n’a que des zéros), quel est le type du filtre ?
est possible en mettant deux termes non-nuls dans la transformée de Fourier discrète, le premier à k et le Que représentent les coefficients b(k) ?
second (son complexe conjugué) à N-k, on obtient une sinusoïde discrète de fréquence normalisée f= (k/N) b. Comment qualifier le filtre :
1. Etudiez bien le code MATLAB suivant, N=64, K=3  Si les pôles sont à l’intérieur du cercle unité dans le plan des z ?
notam-ment la ligne qui génère les X=[zeros(1,k) N/2 zeros(1,N-(2*k-1)-2)  Si les les pôles et les zéros sont à l’intérieur du cercle unité, ?
N/2 zeros(1,k-1)] ;
coefficients X(k) X=real(ifft(X)); plot(x) 2) Soit le filtre analogique défini par la fonction de transfert H(p) suivante :
2. Vérifier que pour N=64 et k=3: le signal x(k) est un cosinus pur qui fait exactement k=3 cycles en
a) En utilisant la transformation bilinéaire, donner la fonction de transfert du 0.5
filtre numérique correspondant. H ( p) =
N=64 échantillons p + 0.5
b) Est que le filtre numérique obtenu est stable ? justifier votre réponse.
3. En définissant d’abord les coefficients de Fourier X(k) appropriés, générez par transformée inverse
c) Donner l’équation aux différences du filtre numérique obtenu.
(ifft) les signaux x[n] suivants :
d) Que représente l’équation aux différences d’un filtre ?
• Un signal cosinus de durée 1 seconde, de fréquence 500 Hz et d’amplitude 1, pour un système
échantillonné à 8000 échantillons/seconde (vous devez donc convertir la durée en nombre MANIPULATION
d’échantillons, et la fréquence (500 Hz) en une valeur k qui détermine la position des raies non-
nulles dans le spectre). Manip 1 :
• Un signal sinus de durée ½ seconde, de fréquence 800 Hz et d’amplitude 1, pour un système
échantillonné à 8000 échantillons/seconde. • Le signal de sortie y(n) d’un filtre à moyenne mobile d’ordre M est
donné par l’équation (3). Un tel filtre laisse passer les signaux de basses
Manip 3 fréquences et supprime les signaux de hautes fréquences.. (3)
La DFT correspond à l’échantillonnage de la DTFT aux points de fréquence fe/N, où N est le nombre de 1. Ecrire une fonction Matlab qui effectue un filtrage du type moyenne mobile sur M échantillons
points de la FFT. Calculer et tracer le module de la DTFT de la fenêtre rectangulaire w(n) en fonction de la 2. Générer N echantillons d’un signal x(n) (Sinusoide+ bruit).
fréquence normalisée f variant dans l’intervalle -1/2 ≤ f <1/2 Le nombre d’échantillons de la DTFT doit 3. Filtrer le signal x(n) par un filtre à moyenne mobile pour M = 3 et N=200.
être de 5 à 10 fois le nombre d’échantillons du signal w(n). Concluez ! 4. Tracer le signal de sortie. Comment le signal de sortie peut-il être décrit en ignorant les effets de
1. Soit le signal x=exp(2*pi/8*2*(0:7)). transition sur le début et la fin du signal?
Vérifier que X(2),=8 et que toutes les autres valeurs X(n) de la TFD sont nulles 5. Décrire les effets qui se produisent si vous changez la longueur du filtre entre M=1 et M=15 dans l’étape
2. Soit le signal .y=sin(2*pi/8*2*(0:7)). 3
Montrer que toutes les valeurs Y(n) de la TFD seront nulles, sauf Y(2) et Y(6) Manip2 :
3. Calculer et tracer la DTFT du du signal h(n) h[n]= an.u(n) avec a=0.977 et pour différentes valeurs de
N (N=32,64,128,256). Comparer les résultats obtenus (modules et arguments) directement avec 1. Se familiariser avec l’outil fdatool de MATLAB en utilisant le help.
l’application de la DTFT avec la TF exacte calculée à partir de l’expression analytique.
.

Traitement du signal Page 10 TP4 Filtrage Numérique


Traitement du signal Page 9 TP3-Transformées de Fourier ABDELOUEL / BELOUCHRANI 1999@ 2011
ABDELOUEL / BELOUCHRANI 1999@ 2011
2. Concevoir un filtre passe bas RII de type elliptique avec le gabarit suivant :
• Fréquence d’échantillonnage : Fs = 48000 Hz. • Ondulations dans la bande passante: Apass = 1 ECOLE NATIONALE POLYTECHNIQUE
• Fréquence de la bande passante : Fpass = 9600 dB.
Hz. • Atténuation dans la coupe bande : Astop = 80 DEPARTEMENT ELECTRONIQUE
• Fréquence de la coupe bande : Fstop = 12000 Hz dB. TRAVAUX PRATIQUES
3. Etudier la stabilité du filtre obtenu en utilisant les options de fdatool.
4. Quel est l’ordre du filtre obtenu ? 2010/2011 TRAITEMENT DU SIGNAL TDS-TP 5
5. Visualiser les coefficients de l’équation aux différences du filtre obtenu.
6. Enregistrer les coefficients obtenus dans un fichier de format .mat en utilisant l’option export de Analyse Spectrale
fdatool. Les méthodes utilisées pour l'analyse de signaux déterministes ne peuvent pas s'appliquer directement aux signaux
7. Générer un signal contenant deux sinusoïdes : l’une appartenant à la bande passante, l’autre aléatoires. La représentation fréquentielle des signaux aléatoires fait appel une description statistique.
L'analyse spectrale des signaux aléatoires est donc un problème d'estimation.
appartenant à la coupe bande du filtre réalisé.
8. Etudier la fonction filter de MATLAB Préparation
9. Filtrer le signal généré à l’aide du filtre réalisé. Associer à chaque signal le spectre correspondant.
10. Tracer le spectre du signal filtré et interpréter le résultat obtenu.

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

Vous aimerez peut-être aussi