Vous êtes sur la page 1sur 8

MINISTERE DE LENSEIGNEMENT SUPERIEUR

ET DE LA RECHERCHE SCIENTIFIQUE

MINISTERE DE LENSEIGNEMENT SUPERIEUR


ET DE LA RECHERCHE SCIENTIFIQUE

ECOLE NATIONALE POLYTECHNIQUE

ECOLE NATIONALE POLYTECHNIQUE

Dpartement Electronique
Anne Universitaire 2010/2011

Dpartement dElectronique

Travaux Pratiques
Traitement du signal
TP Matlab

PROGRAMMATION MATLAB
Rappels : Matrices, Graphes, scripts et fonctions

(Pr requis)

PARTIE I TRAITEMENTS NUMERIQUES


Tp 1

REPRESENTATIONS DE SIGNAUX
a) Reprsentation temporelle (Gnration de Signaux )
b) Reprsentation frquentielle : Transforme de Fourier (FT),

Tp 2 ECHANTILLONNAGE ET RECONSTRUCTION DE SIGNAUX.


Tp 3 TRANSFORMEE DE FOURIER DISCRETE (DTFT, DFT & FFT ).
Tp 4

FILTRAGE NUMERIQUE

Filtres RIF, Filtres RII, Equation aux diffrences

Tp 5 ESTIMATION SPECTRALE
Gnration dun signal partir dune densit spectrale

PARTIE II : PROJETS & APPLICATIONS DU TS


TELECOMMUNICATIONS
AUDIO/VIDEO NUMERIQUE
ACQUISITION DE DONNEES.
. ETC

1999/2011

ABDELOUEL Lahcene
BELOUCHRANI Adel

MINISTERE DE LENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE

ECOLE NATIONALE POLYTECHNIQUE


Dpartement dElectronique

COMPTE RENDU DU TP

Traitement du signal
Anne Univ.

2010/2011

TRAVAUX PRATIQUES

TP-T.D.S

PRESENTATION
Chacune des manipulations du module Traitement de signal se compose de trois parties
distinctes:
1. Une partie thorique qui rend le TP indpendant de l'avancement du cours.
2. Une partie de prparation qui permet l'tudiant de se pencher sur tous les points de son
TP et de rsoudre les exercices proposs
3. Une partie dite "Manipulation" qui permet ltudiant de vrifier pratiquement sur machine
les diffrentes notions tudies en cours
DEROULEMENT DU TP ET RECOMMANDATIONS
PREPARATION :
Le temps imparti pour la manipulation tant limit, il est important que les tudiants
s'astreignent rsoudre les problmes poss dans les temps en se prsentant avec une
prparation (Individuelle).
Ltudiant ne sera pas autoris manipuler s'il n'est pas muni de sa prparation
individuelle, contenant entre autres la solution des exercices proposs, et les programmes
MATLAB demands. Lenseignant charg des TPs, pourra procder des tests et
vrifications; pour sassurer que les solutions et les programmes de la prparation sont
luvre de ltudiant.
MODALITES DE DEROULEMENT
Les TP ncessitant un logiciel mathmatique de calcul numrique, et peuvent tre raliss
sous Matlab, Octave o Scilab. Matlab est un logiciel commercial, Octave et Scilab sont des
logiciels librement utilisables (open source). Octave est un clone de Matlab avec une syntaxe
trs proche et des programmes fortement compatibles. Scilab a diverses particularits et une
syntaxe quelque peu diffrente. Les aspects textuels (commentaires, chanes de caractres,
etc) et graphiques de Matlab et Scilab sont pratiquement incompatibles.
Pour le droulement proprement dit des manipulations, les tudiants doivent sorganiser en
binmes ou la limite en trinmes, selon les moyens informatiques disponibles
SEANCE DE TP :
A chaque sance, il vous sera demand :
1. D'crire un ou plusieurs script(s) mettant en uvre les appels aux fonctions
(Matlab/Octave/Scilab) pour rsoudre certains problmes du traitement du signal.
2. De dcrire les problmes examins, les oprations effectues par le logiciel de calcul
numrique, et les rsultats obtenus.
Les tudiants doivent remettre le compte rendu du TP (Rapport crit+programmes) la fin de
la sance, ou dans le cas chant lors de la prochaine sance de TP. Aucun retard ne sera
tolr au del dune 1 semaine aprs la dernire sance.
EVALUATION
1. Prparation et comprhension des exercices (valuation continue : 25%)
2. Travail effectu lors des sances de TP (valuation continue : 25%)
3. Rapports de synthse (25%)
4. Test de TP final (25%)

Le rapport crit contiendra l'analyse des problmes, le cheminement utilis pour les rsoudre,
le dtail des calculs des solutions thoriques /mathmatiques des problmes poss, les figures
commentes, vos remarques et explications associes chaque exercice de faon montrer si
les rsultats obtenus correspondent oui ou non aux rsultats attendus.
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)
seront au coeur de lvaluation : mieux vaut faire peu mais bien
Chaque tudiant/binme sera responsable de la sauvegarde de ses fichiers (Rapport
crit+programmes) sur la plateforme denseignements dlectronique (Voir procdure daccs).

BIBLIOGRAPHIE
http://biblio.intranet.enp.edu
Pour la prparation de son T.P, l'tudiant pourra se rfrer la documentation suivante:
[1]
M. Kunt, Traitement numriques des signaux, DUNOD 1981.
Cote : 621.391KUN
[2]
M. Bellanger Traitement numrique du signal thorie et pratiques ed. Masson, 1981, 379
Pages. Cote : 621.391 BEL
[3]
M. Kunt, Digital signal processing software laborator . ed P P Romandes , 1984, 89 pages,
Cote : 681.32 KUN
[4]
Michel Marie, Applications de MATLAB 5 et SIMULINK 2, contrle de procds, logique
floue, rseaux de neurones, traitement du signal : Cote : 681.3.06 MOK
[5]
R. Boite & M. Kunt, Traitement de la parole, P P Romandes, Lausanne, Suisse, 1987.
[6]
M. Labarrre, J.P. Krieff et B. Gimonet, Le Filtrage et ses applications, , Cepadues 1982.
[7]
J. Liffermann, Les mthodes rapides de transformation du signal: Fourier, Walsh,
Hadamard, Haar, Masson 1980.
[8]
P. Fondaneche et P. Gilbertas, Filtres numriques: Principes et ralisations, Masson
1981..
[9]
P. Polletier, Traitement numrique du signal. Thorie et pratique. Masson 1971 .
[10]
P. Pelletier, Techniques numriques appliques aux calculs scientifiques, Masson 1971.
[11]
Georges Gastang, La transforme de Fourier, Revue: Mesure- Rgulation -Automatisme
MARS 1979.
[12]
P. M. BEAUFILS, M. RAMI, Le filtrage numrique, Edition Sybex Applications
Techniques
[13]
Patrick Duvant, Le traitement du Signal, Concepts et Applications, 2 Edition , Edition
HERMES

http://biblio.intranet.enp.edu
Note :
Les documents de TP et dautres documents trs utiles sont disponibles sur la
plateforme denseignements dlectronique, accessible sur le site web de lENP
http://elearning.eln.enp.edu.dz
Linscription au cours est automatique, prenez contact avec votre enseignant pour
avoir le code daccs
Autres liens :
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
ABDELOUEL / BELOUCHRANI 1999@ 2011

i
tds.elec.enp@gmail.com

ii
ABDELOUEL / BELOUCHRANI 1999@ 2011

tds.elec.enp@gmail.com

ECOLE NATIONALE POLYTECHNIQUE

MANIPULATIONS 3

DEPARTEMENT ELECTRONIQUE

Manip 1 (*):

TRAVAUX PRATIQUES

TRAITEMENT DU SIGNAL

2010/2011

TDS-TP 1

REPRESENTATIONS DE SIGNAUX
Un signal est une entit qui sert vhiculer une information.
Cest une quantit physique mesurable qui volue en fonction dune ou plusieurs variables

Un systme est une entit physique qui ralise une opration sur un signal

1. Complter le code Matlab suivant pour reprsenter sur le mme graphe (o dans une mme fentre
graphique) les variations de trois signaux de base (sinusodaux) ainsi que leur combinaison.
% dfinition des paramtres
f0 = 0.51; A0 = 1; f1 = 0.11; A1 = 2; f2 = 0.21; A2 = 2;
Code
% dclaration de signaux de base
Matlab
x0 = A0*sin(2*pi*f0*t); x1 = A1*sin(2*pi*f1*t); x2 = A2*sin(2*pi*f2*t);
x3=x0+x1+x2 ; % combinaison
% affichage des signaux
plot(t, x0, 'y'); plot(t, x1, 'g'); plot(t, x2, 'c'); plot(t, x3, 'k.');

Manip 2 :

TRAITEMENT DU SIGNAL
Le traitement du signal (analogique ou numrique) consiste
1. A tudier le signal, lanalyser, en extraire les informations pertinentes (radar, sonar, etc).
2. A modifier le signal (enlever les parasites dun son, claircir une image .etc. )
3. A synthtiser/reproduire des signaux nouveaux voix artificielles

APPROCHES DE CARACTERISATION D'UN SIGNAL:

1. Ecrire une fonction MATLAB qui nous permet de gnrer une sinusode de longueur finie. La fonction
doit accepter 5 paramtres (Amplitude, frquence, phase initiale, le dbut et la fin de lintervalle). La
valeur de retour est un vecteur colonne les chantillons de la sinusode
2. Ecrire le code MATLAB pour gnrer et reprsenter graphiquement les signaux suivants

x1(t) = 4*cos(5t/4)
Manip 3 (*):

t 2s

x2(t) = 3*cos(4t) + sin(t)

t 20s

PREPARATION

On considre les quatre signaux suivants :


avec
 x1(t) = cos (2f1t+p1)
 f1 = 40 Hz; p1 = /4,
 x2(t) = cos (2f2t)
 f2 = 105 Hz;
 x3(t) = cos (2f3t+p3)
 f3 = 125 Hz; p3 = /3.
 x4(t) = x1(t) + 3*x2(t) + 2*x3(t)
1. Gnrer un vecteur temps t de 100 points entre t0 = 0s et t1 = 0.1s.
2. Tracer les xi(t); (i = 1; 4). Utiliser la commande subplot afin de tracer les quatre courbes les unes en
dessous des autres.
3. Calculer la transforme de Fourier4 (fonction fft ) de chaque signal et reprsenter le spectre dnergie
entre 0 Hz et 1000Hz . Utiliser la commande subplot afin de tracer les quatre courbes cot de chaque
signal temporel de la question (2).
4. A laide de la commande fftshift, reprsenter le spectre dnergie entre -500 Hz et 500 Hz. Utiliser la
commande subplot afin de tracer les quatre courbes cot de chaque signal temporel et frquentiel des
questions 2 et 3.
NB. Toutes les figures devront tre traces avec les axes et les lgendes des axes appropris.

1. Calculer la transforme de Fourier de chacun de signaux suivants :

Manip 4 (*):

2. Calculer la transforme de Fourier X(f) des signaux suivants

Soit le signal
avec a > 0
Ecrire un script Matlab comment pour raliser les oprations 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 transforme de Fourier Xa(f) calcule de manire formelle (expression algbrique) entre
[-5Hz ..5Hz] avec un pas de frquence Fe = 0.01Hz.
3. Tracer le module et la phase de la transforme de Fourier (fonctions abs et angle).
4. Tracer le spectre en amplitude de X(f), la TF de x(t) entre 5 et 5 Hz. Justifier les diffrences avec le
rsultat du (2).
5. Calculer la transforme de Fourier Inverse de X(f). Retrouve t'on exactement le signal de dpart x(t)?
6. Illustrer la proprit de dcalage frquentiel de la TF en reprsentant le module de la TF de

Description
Temporelle
valeur
instantane
d'un signal.
x(t)

Description
Frquentielle
signaux
priodiques
Dcomposition en
Srie de Fourier
(DSF)1

x(t) et X(f) sont deux descriptions quivalentes


(temporelle ou frquentielle) du mme signal.




avec a > 0
Le signal
Le signal sinusodal de frquence f0.

La fonction exponentielle complexe :

Description
Statistique

Signaux non
Signaux
priodiques
alatoires
Transforme de
Proprits
Fourier (TF) 2
statistiques
(Moy,Var, Puissance)
X(f)
On peut dfinir trois spectres de x (t).
1. Le spectre en amplitude si lon trace |X (f)|.
2. Le spectre en phase si lon trace Arg (X (f)).
3. Le spectre dnergie si lon trace |X (f) |2.

avec fo=5 Hz.


1

La dcomposition en Srie de Fourrier (DSF) consiste exprimer un signal priodique


comme une combinaison linaire de signaux.
2
La Transforme de Fourier (TF) peut tre vue comme une gnralisation des sries de Fourier aux signaux
non priodiques. La TF constitue le lien entre la reprsentation temporelle d'un signal et sa reprsentation
frquentielle.
Traitement du signal
Page 3
TP1 : Reprsentation de Signaux
ABDELOUEL / BELOUCHRANI 1999@ 2011

Remarque : Ce TP traite en principe des signaux continus. Or l'utilisation de Matlab suppose l'chantillonnage du
signal. Il faudra donc tre vigilant par rapport aux diffrences de traitement entre le temps continu et le temps discret.
Pour linstant on ne se proccupera pas des diffrences fondamentales entre la Transforme de Fourier et la
Transforme de Fourier Discrte.
Traitement du signal
Page 4
TP1 : Reprsentation de Signaux
4

ABDELOUEL / BELOUCHRANI 1999@ 2011

Manip 5
Le modle de bruit le plus couramment rencontr dans les mesures est le bruit blanc Gaussien. Il est ralis
par la fonction Matlab randn()
1. Ecrire un script Matlab pour gnrer et reprsenter graphiquement 1000 points d'un signal alatoire
uniforme de moyenne nulle et de variance gale 1 (fonction rand). Faites de mme pour un signal
alatoire gaussien de moyenne nulle et de variance gale 1. Tracer et commenter lhistogramme de
chaque signal (fonction hist)
t = (0:0.001:1)'; % Te
2. Rcrire le script suivant pour le transformer
en une fonction bsinus() avec paramtres afin
y = 3*sin(2*pi*80*t) % F1
de gnrer une sinusode de frquence f0
yn = y + 0.5*randn(size(t)); %Var
bruite avec un bruit blanc gaussien de
plot(t(1:50),yn(1:50))
% Ne
variance Var.
3. Ecrire un programme principal (script) faisant appel la fonction pour exprimenter diffrentes
ralisations de signaux sinusodaux bruits.

ECOLE NATIONALE POLYTECHNIQUE

DEPARTEMENT ELECTRONIQUE
TRAVAUX PRATIQUES
2010/2011

TRAITEMENT DU SIGNAL

TDS-TP 2

S
SIIG
GN
NA
AU
UX
XD
DIIS
SC
CR
RE
ET
TS
S
ECHANTILLONNAGE ET RECONSTRUCTION DE SIGNAUX
Lopration dchantillonnage consiste remplacer un signal analogique continu dans le temps x(t), par un autre signal
temps discret. e(t)=x[nTe], qui nest dfini que pour des valeurs discrtes du temps,
multiples entiers dune dure Te dite priode dchantillonnage.

Notes Matlab :

PREPARATION

1. fft(X,N) est la transforme de Fourier discrte sur N points du vecteur X, complt avec des zros si X a
moins de N points et tronqu si X a plus de N points.
2. La commande Xf=fft(X,N) codant les frquences ngatives entre N/2+1 et N valeurs du signal Xf, la
commande fftshift(Xf) permet de centrer le spectre sur les frquences nulles (entre 1/(2 Te) et 1/(2 Te).
3. Pour approximer la Transforme de Fourier continue X(f) dun signal x(t), reprsent suivant un pas
Te, on utilise la commande : Xf= fftshift(Te * fft(x)) ;
4. La transforme de Fourier Inverse sobtient par la commande xt=abs(ifft(Xf)/Te). Notez quil est
ncessaire de considrer le module de la TF inverse , car la TF et la TF inverse sont des oprateurs
valeurs complexes.

Soit le signal analogique : x (t) = sin( 2 f 0 t +) . On se propose dchantillonner x(t) la frquence


dchantillonnage fe pour obtenir le signal temps discret suivant

x ( n ) = x ( t ) t = n / f e = sin( 2

f0
n +)
fe

(1)

1. Dterminer la frquence dchantillonnage fe qui vrifie le thorme de Shannon.


2. A quoi sert le thorme de Shannon.
3. Expliquer le phnomne de recouvrement Aliasing

Exemples de code Matlab :

MANIPULATION

Dfinition des fonctions Echelon et Rectangle


Fonction Echelon
Fonction Rectangle
clear all
% Dfinition de la fonction Rectangle
% dfinition du vecteur temps
Rectangle = @(u,tau) (abs(u)<= tau/2) ;
n = 100 ; t = linspace(-5,5,n)
% Equivalent a :
% Dfinition de la fonction Echelon
% fonction [signal] = Rectangle(u,tau)
Echelon = @(u) (u>0);
% dans un fichier spar
Fonction fmagplot : Visualisation de la TF dun signal analogique
L = length(xa);
function fmagplot( xa, dt )
Nfft = round( 2 .^ nextpow2(5*L) );
%FMAGPLOT Plot Fourier Transform (Mag) of "ANALOG" signal
Xa = fft(xa, Nfft);
% copyright 1994, by C.S. Burrus, J.H. McClellan, A.V. Oppenheim,
range = 0:(Nfft/4); ff = range/Nfft/dt;
% "Computer-Based Exercises for Signal Processing /MATLAB"
plot( ff/1000, abs( Xa(1+range) ) )
% Usage: fmagplot( xa, dt )
title('FOURIER TRANSFORM (MAG)')
%
xa : "ANALOG" signal
xlabel('FREQUENCY (kHz)'), grid
%
dt : sampling interval for the simulation of xa(t)
Exemple de script Matlab
clear all
%% Calcul d'une TF par Matlab
% representation temporelle du signal
Te = 0.01 ; TFx = fftshift(Te*fft(signal));
t = (-5:0.01:5); a = 1 ;
f2 = (-1/(2*Te):(1/round(length(signal)*Te)):1/(2*Te));
signal = exp(-a*abs(t));
subplot(3,1,3) ; plot(f2,abs(TFx))
subplot(3,1,1) ;plot(t,signal)
xlim([-5 5])
f = (-5:0.01:5) ;
xlabel('Frequence'); ylabel('Amplitude')
TFCalculee = 2*a./(a^2+(2*pi*f).^2);
subplot(3,1,2)
plot(f, TFCalculee)
%% Calcul d'une TF par Matlab
.

Traitement du signal
ABDELOUEL / BELOUCHRANI 1999@ 2011

Page 5

TP1 : Reprsentation de Signaux

Manip 1 :
On considre le signal sinusodal x(t) = sin (2*Pi*5t) gnr par le code suivant :
t=[0 :0.01 :10] ;
1. Quelle est la frquence maximale du signal analogique
x=sin(2* pi*5*t) ;
2. Quelle est la frquence dchantillonnage ?
3. Le thorme dchantillonnage est-il respect ? Quelle conclusion en tirez-vous
4. Mme question (3) si on augmente la frquence du signal analogique 30 Hz, 80 Hz ?

Manip 2 :
On souhaite gnrer et afficher un signal sinusodal dquation s(t) =A.sin( wt) A.sin(2*Pi*f* t)
1. Gnrer un "vecteur de temps" vt, contenant les instants des chantillons de ce signal avec une
priode dchantillonnage (Te), vt=(0:N-1)*Te;
2. Gnrer le signal laide de la commande suivante : s=A*sin(2*pi*f*vt); Avec les paramtres
suivants :
Frquence dchantillonnage : fe=100Hz, Frquence du signal : f=10Hz, Amplitude A=1.
3. Ecrire un programme permettant de gnrer (et dafficher) une priode de signal.
Afficher le signal s(t) avec la commande plot(s), prciser comment est gradu laxe des
abscisses
4. Afficher le signal gnr avec un axe des abscisses gradu avec le temps correspondant au signal.

Manip 3 (*):
1. A partir dun signal sinusodal analogique d'amplitude 1 et de frquence f=1 000 Hz, crer trois
signaux sinusodaux numriques chantillonns respectivement
a) 20 000 Hz , b) 5 000 Hz
c) 1 500 Hz
2. Reprsenter les diffrents signaux sur le mme graphe.
3. Interprter !, le thorme dchantillonnage est-il respect ?

Traitement du signal
ABDELOUEL / BELOUCHRANI 1999@ 2011

Page 6

TP2 : Echantillonnage

Manip 4 :
1. Gnrer sur un intervalle de 10 ms quatre sinusodes avec fe=8000Hz et une phase initiale
2.
3.
4.

5.
6.

arbitraire. Fait varier la frquence f0 de 100 Hz 475 Hz par pas de 125 Hz.
Tracer les 4 signaux obtenus dans lordre sur la mme fentre en utilisant la fonction MATLAB
subplot.
Vrifier est ce que les frquences obtenus sur les courbes traces correspondants aux valeurs de f0 .
Expliquer ce rsultat.
Refaire les tapes prcdentes (1,2,3) en variant cette fois-ci la frquence f0 de 7525 Hz 7900
Hz par pas de 125 Hz. Noter que la frquence apparente de la sinusode sur les courbes traces
dcrot. Expliquer ce phnomne.
Refaire les tapes prcdentes (1,2,3) en variant la frquence f0 de 32100 32475 Hz par pas de
125 Hz.
Prdire lavance si la frquence apparent de la sinusode sur les courbes traces dcrot ou crot.
Expliquer.

Manip 5 :
1. Gnrer 0.8 secondes dun signal s(t) sinusodal d'amplitude
1 de frquence f=100 Hz chantillonn fe=1000 Hz.
2. Combien y a t'il d'chantillons (Ne) ?
Quelle est la longueur du vecteur s ?
3. Reprsenter le module de la TFD avec la commande :
plot(abs(fft(s))).
4. Gnrer le vecteur des frquences freq = n. fs/Ne,
avec n variant de 0 Ne-1.
5. Reprsenter le module de la TFD en fonction du vecteur
frquences freq : commande plot(freq,abs(fft(s))).
6. Vrifier qu'il y a bien une raie la frquence du signal.

% Notes
A=1; F=100; Tobs=0.8 ;
Fe=1000; Te=1/Fe ;
Ne=Tobs*Fe %Ne*Te=Tobs
N=0 :Ne-1 ;
t=N*Te;
Freq=N*fe/Ne;
S=
plot(freq,abs(fft(s))).

DEPARTEMENT ELECTRONIQUE
TRAVAUX PRATIQUES

TRAITEMENT DU SIGNAL

2010/2011

TDS-TP 3

T
TR
RA
AN
NS
SF
FO
OR
RM
ME
EE
ES
SD
DE
EF
FO
OU
UR
RIIE
ER
R
DE SIGNAUX NUMERIQUES (DTFT, DFT, FFT)
Une alternative la reprsentation temporelle du signal consiste reprsenter son contenu frquentiel (dcomposition spectrale.
Celui-ci est obtenu en calculant sa transforme de Fourier (FT : Fourier Transform)
Pour les signaux discrets, la transformation de Fourier discrte est une des pierres angulaires du traitement du signal

RAPPELS : DTFT & DFT


La transforme de Fourier temps discret (DTFT : Discrete Time Fourier Transform) dune signal discret {x[k]} est une fonction
frquence continue S(f), et il est dusage de la reprsenter sur les intervalles de frquence normalise [1/ 2,1/ 2] ou [0,1], du fait de
sa priodicit. Le calcul sur ordinateur de la DTFT partir de la valeur des chantillons de x[k] impose une charge de calcul infinie
puisque la frquence f varie continment sur lintervalle [0,1]. Cest la raison pour laquelle la notion de transforme de Fourier
discrte (DFT : Discrete Fourier Transform) a t introduite. Son calcul est limit un nombre fini (N) de points de la suite
temporelle {x[k]} et un nombre fini (L) de valeurs de la frquence f : L, le nombre de points de calcul de la DTFT influe sur la
prcision du trac du spectre, tandis que N est li la rsolution. Lintrt pratique de la DFT est trs largement d la dcouverte
dune mthode de calcul rapide connue sous le nom de transforme de Fourier rapide (FFT : Fast Fourier Transform), et prendre L =
N ne restreint en rien la gnralit de la notion introduite.
La fait de limiter N le nombre dchantillons dun signal peut tre vu comme la multiplication terme terme de la totalit du signal
par la fentre rectangulaire W(k). Cette multiplication est quivalente, dun point de vue spectral, convoluer la DTFT de x[k ] avec
la DTFT de w(k). Cette opration de convolution a pour effet dintroduire des ondulations dans le spectre.

PREPARATION
Calculer la transforme de Fourier dun cosinus et dun sinus
2. Montrer que la transformation de Fourier temps discret (DTFT) W(f) de la fentre rectangulaire
w(n) est donne par lexpression suivante : Dirichlet(, N)
1.

Manip 6 :

ECOLE NATIONALE POLYTECHNIQUE

A partir d'un signal de rfrence sinusodal, de frquence fr= 950 hz et pour une frquence
d'chantillonnage fe de 1 khz::
1. Tracer le graphe du signal et calculer sa priode
2. calculer la frquence apparente du signal ( partir du graphe fa=1/T)
3. Raliser les mmes oprations avec une frquence d'chantillonnage fe de 2 khz puis de 20 khz
4. Expliquer la diffrence entre la frquence relle du signal et le calcul de la la priode ou
frquence raliss

W ( f )=
3.

sin( fN ) j f ( N 1 )
e
sin( f )

1
w (n ) =
0

pour n = 0 ,1,K N
ailleurs

Calculer analytiquement lexpression de la TF du signal h(n) o h[n]= an.u(n) avec a <1

4. On reoit 256 chantillons dun signal dont on calcule le module carr de sa FFT (voir la figure
ci dessous). Sachant que la frquence dchantillonnage tait de 32KHz, dterminer les
frquences des deux pics du module carr de la FFT. (Le 1er pic correspond au point 88.)

Manip 7 (*):
1. Gnrer un signal en dent de scie de dure 1.5 secondes et de frquence de 180 Hz chantillonn
une frquence de 10 kHz
2. Gnrer un signal carr de dure 1.5 secondes et de frquence de 180 Hz chantillonn une
frquence de 10 kHz
3. Tracer seulement 0.2 secondes des signaux gnrs (utiliser les fonctions sawtooth et square)

fs = 10000; t = 0:1/fs:1.5;
x1 = 0.2*sawtooth(2*pi*180*t);
x2=0.2*square (2*pi*180*t);

Traitement du signal
ABDELOUEL / BELOUCHRANI 1999@ 2011

plot(t,x1,t,x2), axis([0 0.2 -1 1]);


disp('Taper sur la touche "Entre" pour continuer');
pause;

Page 7

TP2 : Echantillonnage

Traitement du signal
ABDELOUEL / BELOUCHRANI 1999@ 2011

Page 8

TP3-Transformes de Fourier

MANIPULATION

ECOLE NATIONALE POLYTECHNIQUE

Manip 1
On veut calculer la transforme de Fourier discrte d'une paire d'exponentielles complexes.
1. Gnrer 128 chantillons d'une somme de deux exponentielles complexes de frquences f1=1680
Hz et f2=1780 Hz chantillonnes fe= 8 kHz, et de mme amplitude. Afficher la partie relle du
rsultat.
2. Calculer la FFT du signal sur 32 chantillons, et afficher le module. Les sinusodes sont-elles
rsolues ?
3. Refaire le calcul sur 32 chantillons en prenant une FFT sur N= 256 points frquentiels puis sur
N=1024. Les sinusodes sont-elles rsolues? Interprter les rsultats obtenus en calculant f2-f1 et
fe/32 ?
4. Refaire le calcul sur 128 chantillons. Les sinusodes sont-elles rsolues? Calculer fe/128 et
Interprter ?
5. Refaire le calcul sur 128 chantillons en prenant une FFT sur N=256 points frquentiels. Est-ce que
les sinusodes sont rsolues? Qu'est-ce qui change par rapport N = 128 par dfaut ?
6. Donner la valeur de la prcision et la rsolution pour les diffrents cas prcdents.

DEPARTEMENT ELECTRONIQUE
TRAVAUX PRATIQUES
2010/2011

TRAITEMENT DU SIGNAL
F
Fiillttrra
ag
ge
eN
Nu
um
m
rriiq
qu
ue
e

Un filtre numrique ralise un calcul sur une squence de nombres introduite son entre et fournit, sa sortie,
une squence numrique modifie de sorte rpondre des contraintes donnes (rponse en amplitudes, en phase ).
La plupart des modles de filtres analogiques peuvent tre reproduits sous forme numrique

PREPARATION
1) La forme gnrale dun filtre numrique est donne par une fonction de transfert G(z) P ples pi et Q
zros :

G( z ) =

Manip 2
On veut gnrer une sinusode pure, de frquence donne, partir de la transforme de Fourier inverse Cela
est possible en mettant deux termes non-nuls dans la transforme de Fourier discrte, le premier k et le
second (son complexe conjugu) N-k, on obtient une sinusode discrte de frquence normalise f= (k/N)
N=64, K=3
1. Etudiez bien le code MATLAB suivant,
X=[zeros(1,k)
N/2
zeros(1,N-(2*k-1)-2)
notam-ment la ligne qui gnre les
N/2
zeros(1,k-1)] ;
coefficients X(k)
X=real(ifft(X)); plot(x)
2. Vrifier que pour N=64 et k=3: le signal x(k) est un cosinus pur qui fait exactement k=3 cycles en
N=64 chantillons
3. En dfinissant dabord les coefficients de Fourier X(k) appropris, gnrez par transforme inverse
(ifft) les signaux x[n] suivants :
Un signal cosinus de dure 1 seconde, de frquence 500 Hz et damplitude 1, pour un systme
chantillonn 8000 chantillons/seconde (vous devez donc convertir la dure en nombre
dchantillons, et la frquence (500 Hz) en une valeur k qui dtermine la position des raies nonnulles dans le spectre).
Un signal sinus de dure seconde, de frquence 800 Hz et damplitude 1, pour un systme
chantillonn 8000 chantillons/seconde.

ABDELOUEL / BELOUCHRANI 1999@ 2011

Page 9

TP3-Transformes de Fourier

H ( p) =

0.5
p + 0.5

MANIPULATION
Manip 1 :

1.
2.
3.
4.
5.

Le signal de sortie y(n) dun filtre moyenne mobile dordre M est


donn par lquation (3). Un tel filtre laisse passer les signaux de basses
frquences et supprime les signaux de hautes frquences..
Ecrire une fonction Matlab qui effectue un filtrage du type moyenne mobile sur M chantillons
Gnrer N echantillons dun signal x(n) (Sinusoide+ bruit).
Filtrer le signal x(n) par un filtre moyenne mobile pour M = 3 et N=200.
Tracer le signal de sortie. Comment le signal de sortie peut-il tre dcrit en ignorant les effets de
transition sur le dbut et la fin du signal?
Dcrire les effets qui se produisent si vous changez la longueur du filtre entre M=1 et M=15 dans ltape
3

Manip2 :
1. Se familiariser avec loutil fdatool de MATLAB en utilisant le help.

Traitement du signal
Traitement du signal

B( z ) b(0) + b(1) z 1 + L + b(Q) z Q


=
1 + a(1) z 1 + L + a( P) z P
A( z )

a. Si P=0, (le filtre na que des zros), quel est le type du filtre ?
Que reprsentent les coefficients b(k) ?
b. Comment qualifier le filtre :
 Si les ples sont lintrieur du cercle unit dans le plan des z ?
 Si les les ples et les zros sont lintrieur du cercle unit, ?
2) Soit le filtre analogique dfini par la fonction de transfert H(p) suivante :
a) En utilisant la transformation bilinaire, donner la fonction de transfert du
filtre numrique correspondant.
b) Est que le filtre numrique obtenu est stable ? justifier votre rponse.
c) Donner lquation aux diffrences du filtre numrique obtenu.
d) Que reprsente lquation aux diffrences dun filtre ?

Manip 3
La DFT correspond lchantillonnage de la DTFT aux points de frquence fe/N, o N est le nombre de
points de la FFT. Calculer et tracer le module de la DTFT de la fentre rectangulaire w(n) en fonction de la
frquence normalise f variant dans lintervalle -1/2 f <1/2 Le nombre dchantillons de la DTFT doit
tre de 5 10 fois le nombre dchantillons du signal w(n). Concluez !
1. Soit le signal x=exp(2*pi/8*2*(0:7)).
Vrifier que X(2),=8 et que toutes les autres valeurs X(n) de la TFD sont nulles
2. Soit le signal .y=sin(2*pi/8*2*(0:7)).
Montrer que toutes les valeurs Y(n) de la TFD seront nulles, sauf Y(2) et Y(6)
3. Calculer et tracer la DTFT du du signal h(n) h[n]= an.u(n) avec a=0.977 et pour diffrentes valeurs de
N (N=32,64,128,256). Comparer les rsultats obtenus (modules et arguments) directement avec
lapplication de la DTFT avec la TF exacte calcule partir de lexpression analytique.
.

TDS-TP 4

ABDELOUEL / BELOUCHRANI 1999@ 2011

Page 10

TP4 Filtrage Numrique

(3)

2. Concevoir un filtre passe bas RII de type elliptique avec le gabarit suivant :
Ondulations dans la bande passante: Apass = 1
Frquence dchantillonnage : Fs = 48000 Hz.
dB.
Frquence de la bande passante : Fpass = 9600
Attnuation dans la coupe bande : Astop = 80
Hz.
dB.
Frquence de la coupe bande : Fstop = 12000 Hz
3. Etudier la stabilit du filtre obtenu en utilisant les options de fdatool.
4. Quel est lordre du filtre obtenu ?
5. Visualiser les coefficients de lquation aux diffrences du filtre obtenu.
6. Enregistrer les coefficients obtenus dans un fichier de format .mat en utilisant loption export de
fdatool.
7. Gnrer un signal contenant deux sinusodes : lune appartenant la bande passante, lautre
appartenant la coupe bande du filtre ralis.
8. Etudier la fonction filter de MATLAB
9. Filtrer le signal gnr laide du filtre ralis.
10. Tracer le spectre du signal filtr et interprter le rsultat obtenu.

DEPARTEMENT ELECTRONIQUE
TRAVAUX PRATIQUES
2010/2011

TRAITEMENT DU SIGNAL

TDS-TP 5

Analyse Spectrale
Les mthodes utilises pour l'analyse de signaux dterministes ne peuvent pas s'appliquer directement aux signaux
alatoires. La reprsentation frquentielle des signaux alatoires fait appel une description statistique.
L'analyse spectrale des signaux alatoires est donc un problme d'estimation.

Prparation
Associer chaque signal le spectre correspondant.

Manip 3bis :

Manip 3 :

ECOLE NATIONALE POLYTECHNIQUE

Refaire la Manip 2 en ralisant un filtre passe haut avec le gabarit


suivant :
a. Frquence dchantillonnage : Fs = 48000 Hz.
b. Frquence de la bande passante : Fpass = 8000 Hz.
c. Frquence de la coupe bande : Fstop = 7000 Hz
d. Ondulations dans la bande passante: Apass = 1 dB.
e. Attnuation dans la coupe bande : Astop = 80 dB.

Montrer par un exemple quon peut


raliser un filtre passe bande par la
mise en cascade de deux filtres : lun
passe bas, lautre un passe haut.

Manip 4:
Testez les scripts Matlab suivants et commentez les rsultats
fsamp= 8000;
fn =[0 0.6 0.6 1];
H = [1 1 0 0]; M=30;
fcuts = [1000 1500 2500 3000];
%fcuts = [1450 1500 2500 2550];
fe=8000; f=fn*fe/2
b1=fir2(30,fn,H);
mags = [0 1 0]; gabarit=[0 1 1 0];
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);
plot(f,m,f1,abs(h))
n = n + rem(n,2);
hh=fir1(n,Wn,ftype,kaiser(n+1,beta),'noscale');
legend('Ideal','FIR fir2')
title('Comparison of H(f)')
[H,f] = freqz(hh,1,1024,fsamp);
semilogy(fcuts,gabarit,f,abs(H)), grid on

Manip 5: (Filtrage par FFT)


On veut utiliser la FFT pour raliser un filtre FIR dfini par sa rponse impulsionnelle h(m).
1. Implmenter sous Matlab la procdure suivante :
Connaissant H(f), la FFT de h(m), et pour un signal d'entre x(n),
calculer X(f), la FFT de x(n), multiplier les deux FFT terme terme : Y(f)= H(f ) X(f )
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 )
2. Tester la procdure en utilisant le filtre dfini par h= ones(1,M)/M sur un sinusode avec un bruit
additif gaussien

MANIPULATION
Manip 1 :
SPTOOL est un outil qui simplifie les calculs que lon peut faire avec MATLAB. Linterface de SPTOOL
permet de crer ou dimporter des signaux et des filtres et dobserver (avec loutil FVTOOL5) le rsultat du
filtrage numrique en temporel et en frquentiel (outil FDATool). Toutes les oprations effectues sous ces
outils sont obtenues par des calculs que lon peut excuter pas par pas dans la ligne de commande Matlab.
Lutilisateur peut revenir aux calculs en utilisant les fonctions :
Pour FDATOOL : les mmes plus les
Pour SPTOOL et FVTOOL : plot, stem,
fonctions de synthse de FIR/IIR : filt1, filt2,
linspace, logspace, fft, spectrum, filter,
butter, buttord, ellip, ellipord, yulewalk
freqz, zplane, roots, poly,
Lancer linterface avec la commande sptool
1. Dans la fentre SPTool, slectionnez un signal, puis dans la colonne Spectra, cliquez sur 'Create'.
2. Dans la fentre Spectrum Viewer qui vient d'apparatre choisissez une mthode d'analyse spectrale,
puis 'Apply'. Cela vous donne le spectre du signal.
3. Il est intressant de faire cet essai sur le sinus avec les mthodes fft, et welsh. On peut aussi crer un
signal gal la somme de 3 sinus de frquences diffrentes.
5

Traitement du signal
ABDELOUEL / BELOUCHRANI 1999@ 2011

Page 11

TP4 Filtrage Numrique

FVTOOL :Filter Visualisation Tool

Traitement du signal
ABDELOUEL / BELOUCHRANI 1999@ 2011

Page 12

TP5 : Analyse Spectrale

Manip 2:
1.
1.
2.
3.

Tapez h=firls(30,[0 .1 .2 .5]*2,[1 1 0 0]);


Lancez fvtool(h);
Lancez loutil SPTOOL
Observez le signal train laide de la
commande view , puis son spectre aprs
filtrage : trainse
4. Observez la rponse frquentielle du filtre
LSlp

5. Exportez les objets train , trainse et le


filtre LSlp dans le workspace de
MATLAB. Tapez whos puis commenter.
6. Tapez >>B=LSlp.tf.num ; A=LSlp.tf.den ;
freqz(B,A)
7. Ralisez limport dun filtre numrique sous
SPTOOL en crant des supports B et A
quelconques dans le workspace

ECOLE NATIONALE POLYTECHNIQUE

DEPARTEMENT ELECTRONIQUE
TRAVAUX PRATIQUES
2010/2011

TRAITEMENT DU SIGNAL

TDS-TP 5b

Analyse Spectrale
Gnration dun signal partir dune densit spectrale

Manip 3 :
1) Charger le signal SinusGBF.xls sous lenvironnement MATLAB laide de la commande
xlsread.
2) Importer le signal charg loutil sptool.
3) Visualiser le signal charg laide des options de sptool.
4) Lancer la fentre de lanalyse spectrale de loutil sptool pour le signal charg.
5) Calculer et visualiser le spectre du signal SinusGBF en choisissant les diffrentes mthodes
danalyse que fournit loutil sptool.
6) Faire varier les paramtres danalyse et interprter les rsultats obtenus.
7) Refaire les oprations 1-6 pour les signaux : Sonde1.xls, Sonde2.xls et Sonde3.xls

Manip 4 :
On dispose de L chantillons dun signal x[1 . . .L], subdivis en M segments de taille N.
Soit x(n) un bruit blanc de variance unitaire
1. Estimer et dessiner la densit spectrale de ce signal laide de priodogrammes avec M = 1, M = 64,
M = 256 et les 2 choix de fentre rectangulaire ou hanning.
2. Calculez dans chaque cas la moyenne et la variance du priodogramme. Comparez aux rsultats
thoriques attendus. Commentez le rle de M et du fentrage dans le cas du bruit

Manip 5 : Analyse dun bruit blanc + 2 sinus


On dispose de L chantillons dun signal x[1 . . .L], subdivis en M segments de taille N.
Soit x(n) = sin(2*Pi*f1*n) + 0.3 sin(*Pi*f2*n) + b(n)
avec b(n) bruit blanc de variance var et f1=0.2, f2=f1+df
1. On dispose de L = 1024 points, bruit faible Var= 0.2 : examinez les priodogrammes pour divers
choix de df, de N et de la fentre. Dterminez les paramtres, selon df, permettant un pouvoir de
rsolution optimal entre les deux raies pures.
2. 2. Bruit fort : var = 0.05 : Quelle est la taille minimale L ncessaire (et de quelle facon les utiliser)
pour assurer une sparation et extraction du bruit nette pour les 2 raies pures ? Essayez destimer les
frquences et amplitudes des sinus, et la puissance var du bruit.

Traitement du signal
ABDELOUEL / BELOUCHRANI 1999@ 2011

Page 13

TP5 : Analyse Spectrale

Prparation
Considrer le systme suivant :
y(n) = x(n) y(n + k 1)
o k est un paramtre entier ainsi que .
1. Ce systme est-il AR, ARMA ou MA? Justifier votre rponse.
2. Etudier la causalit et la stabilit de ce systme en fonction des valeurs de k et .
3. Trouver la fonction de transfert H(z) pour k=0. En dduire la rponse frquentielle
4. Est ce que le systme considr est minimum de phase ? Justifier votre rponse.
5. Ce systme est excit par un bruit blanc de moyenne nulle et de variance 2 =1. En
dduire la moyenne et la variance ainsi que la densit spectrale du signale de sortie.
Manip 1
1. Charger le spectre H1.xls sous lenvironnement MATLAB laide de la commande
xlsread.
2. Former partir de H1 un spectre symtrique par rapport lorigine des frquences.
3. Calculer la fonction dauto-corrlation partir du spectre obtenu.
4. Vrifier que la fonction dauto-corrlation obtenue est valeurs relles.
5. Obtenir les paramtres dun modle AR dordre 12 partir de la fonction dautocorrlation
obtenue prcdemment en utilisant la fonction MATLAB levinson.m
6. Filtrer un signal blanc gaussien par le filtre AR obtenue ltape prcdente en utilisant
la fonction MATLAB filter.m
7. Analyse le signal obtenu laide de loutil sptool
8. Comparer le spectre obtenu avec le spectre H1

Manip 2
1. Refaire la Manip 1 pour les spectres :
2. H2.doc
3. H3.doc

Traitement du signal
ABDELOUEL / BELOUCHRANI 1999@ 2011

Page 14

TP5 : Analyse Spectrale

Vous aimerez peut-être aussi