Vous êtes sur la page 1sur 4

Master : traitement numérique du signal janvier /2024 Chalabi Z

TP1

I- Rappel sur les notions de MATLAB (polycopié)


II- Matlab et le traitement du signal
1- Représentation des signaux et systèmes
1-1 Représentation temporelle
Un signal numérique échantillonné à la fréquence f e se présente naturellement dans Matlab,
comme un vecteur de N éléments (signal de durée N/f e). Le vecteur des temps qui lui est
associé est :
>> t = (0 :N-1)/ fe ;

1-2 Autocorrélation
L’estimation de l’autocorrélation d’un signal ou de l’intercorrélation de deux signaux de
longueur N peut être effectuée avec la fonction xcorr :
>> Cxy = xcorr(x,y,option) ;
C’est un vecteur de longueur 2N-1 tel que
TP 2

I- Analyse du théorème d’échantillonnage et reconstruction

1-On échantillonne une sinusoïde de fréquence 200hz, à la fréquence Fe =500hz. Quel signal
obtient-on lors d’une reconstruction parfaite ?
2- On échantillonne une sinusoïde de fréquence 200hz, à la fréquence Fe=250hz. Quel signal
obtient-on lors d’une reconstruction parfaite ?
3- Ecrire un programme qui :
- affiche une sinusoïde de fréquence 200hz
- affiche 10 de ses éléments prélevés à la fréquence Fe
- affiche le signal reconstruit : utiliser la fonction interp(x,N) ;
- vérifie les résultats des questions 1 et 2.

I- Question 3 de I.
Taper :
Te = 10 ; fs =200Hz ; % nombre de points et fréquence du signal
Fe = input (‘fréquence d’échantillonnage en Hz (fs =200hz) =’) ;
K = 40 ; % facteur de sur échantillonnage pour affichage
Tc= k*Te ; fg = K*Fe ; tg= (0 :Tc-1)/fg;
Te = (1:K:Tc-1)/fg ; xte = cos(2*pi*te*fs); % un point sur K
Xt = cos(2*pi*tg*fs) ;¨% signal à temps quasi continu
Xti = inter(xte,K) ; % interpolation
Plot (tg,xt, te,xte,’o’,tg,xti,’ :’) ; %affichage des signaux.

TP 3

II- Système linéaire discret


1- Ecrire un programme qui montre que l’opération de filtrage est une opération de
convolution. On considère le signal d’entrée x(n) = [1 -2 3 -4 3 2 1]. Le système est
caractérisé par sa réponse impulsionnelle finie h(n) = [3 2 1 -2 1 0 -4 0 3].
Pour cela, si y(n) est la réponse du système à l’excitation x(n), on suggère de calculer et
représenter le signal y(n) par convolution de x(n)*h(n) et de le comparer au résultat obtenu,
par filtrage, de x(n) à travers h(n). Utiliser les instructions y = con(h,x) et y1 = filter(h,1,x).
Master : traitement numérique du signal janvier /2024 Chalabi Z

Afficher les deux signaux y (n) et y1(n). Pour plus d’information consulter le « help ».
2- En déduire la fonction de correlation entre x(n) et h(n) de façon directe par « xcorr ».
Afficher le résultat. Quelle remarque faite vous ?

TP 4
Analyse spectrale TFD

I- Convolution rapide ou circulaire : reprendre l’exercice de la du TD.

II- Observation d’une sinusoïde complexe (l’objectif est la précision et la résolution spectrale)
Considérons la suite x(n) obtenue par échantillonnage de la sinusoïde complexe exp(j2π F0t) à
la cadence Fe = 1/T. En posant f0= F0/Fe <1, on a x(n) = exp(j2πf0n).
1- Déterminer l’expression de la TFtd de la suite x(n) = exp(j2πf0n) où f0 = 7/32 et n =
[0,…,31]
2- En déduire la valeur de la TFtd aux points de fréquences f= k/32, pour k= [0,…,31].
3- En utilisant le fft, afficher le module de la TFD de x(n).
4- Soit à présent f0= 0.2. Afficher le module de la TFD de x(n). Comment expliquer vous les
résultats obtenus. On sait en fait que la TF de exp(j2πF0t) est δ(f-F0). On pourrait donc
s’attendre à retrouver un résultat analogue pour la TFD au point de fréquence f0.

Remarque : Il est conseillé de faire une étude théorique pour commencer


n’importe quels travaux pratiques pour justifier et comparer vos résultats.

- TP

Exercice 1
Engendrer un signal numérique : fonction triangulaire, défini par :

Solution :

La fenêtre triangulaire peut être obtenue par convolution de deux fenêtres rectangulaires, en
utilisant l’instruction conv par matlab.

Rappèl :
- un signal numérique échantillonné à la fréquence Fe est un vecteur (dans Matlab) de n
éléments (de durée N/Fe ou NTe), le vecteur temps associé est :
>> t = (0 : N-1)/Fe ;
- La TfD d’un signal de N points est calculée par FFT :
>> X = fft(x) ; % c’est un signal périodique (période = Fe) de N points échantillonné à la
fréquence N/Fe, le vecteur des fréquences qui lui est associé est :
>> f = (0 : N-1)/N*Fe
- X peut être représenté sur l’intervalle [-Fe/2, +Fe/2] grâce à la fréquence fftshift (qui ne
fait qu’un décalage de vecteur sans calcul de fft) :
>> Y = fftshift(X) ;
Le vecteur de fréquence associé est alors :
>> f = (0 : N-1)/N*Fe - Fe/2

Exercice 2
Master : traitement numérique du signal janvier /2024 Chalabi Z

Ecrire l’instruction qui engendre une séquence de valeurs correspondant à un échantillonnage


à la fréquence Fe = 1000hz, d’une sinusoïde réelle de fréquence 80hz et d’amplitude 3,
pendant une durée de 30ms:

Tapez : whos.
Matlab affiche:
Name Size Total Complexe
S 1 by 31 31 No
Grand total is (31*8) = 248 bytes.
Matlab indique que la matrice s possède 1 ligne et 31 colonnes, soit au total 31 valeurs réelles.

>> plot (s,’x’)


Affiche le signal s, mais l’axe des abscisses représente, dans ce cas, les indices de s.

Si l’on veut que l’axe des abscisses porte l’échelle des temps en seconde, il faut taper :
>> plot((0 : 30)/1000, s,’x’)
Qui affiche les 31 valeurs allant de l’instant 0 à l’instant 30ms par pas de 1 ms.

Si on tape
>> plot ((0 : 30)/1000, s, ’x’, (0:30)/1000, s)
On obtient la superposition des deux.
Figure :

Exercice 3
Tracer le signal numérique résultant de l’échantillonnage avec Te =1 de la fonction à temps
continu cos(2πft) dont la fréquence varie avec le temps selon la loi f = 0.01t. On effectuera le
tracé sur une centaine de points. Le signal continu n’est pas ici périodique mais on constatera
que la représentation du signal échantillonné parait cependant l’être.

Solution :

Exercice 4

En reprenant la fenêtre triangulaire de l’exercice, vérifier les propriétés de symétrie


hermitienne en traçant :
1- le module et la phase de sa TFtd en utilisant la fonction fft(s,1024), qui calcule 1024
points de TFtd uniformément répartie sur (0,1).
2- Les parties réelle et imaginaire de sa TFtd obtenues de la même façon.

Solution :
%Spectre de la fonction triangulaire de l’exo 1.
Master : traitement numérique du signal janvier /2024 Chalabi Z

TP 7
Transformée de Fourier discrète

I- Transformée d Fourier d’une fenêtre rectangulaire discrète


1- Générer une fenêtre rectangulaire de longueur P = 5 échantillons ; (P = ones (1,5);)
2- Calculer la TFD de la fenêtre sur N points fréquentielles. (Pf=fft(P,1000))
3- Afficher le module de la transformée de Fourier (TFD). (plot(abs(Pf)).
4- Le résultat contient la TFD du signal qui, comme on l’a vu, est l’échantillonnage des
valeurs de la TF à temps discret (TFTD) aux points fk =k/N pour 0≤ k ≤N+1. A quelle
fréquence fk correspondent les valeurs d’indices 1, 500 et 1000 ?
5- A quoi est due la symétrie que l’on observe ?
6- Quelle est la largueur df du lobe principal ? (utiliser ginput).
7- Afficher le module de la TF en décibels, entre 0 et 15dB. Utiliser la fonction ‘ log10’.
Pour afficher un graphique en décibels avec les échelles xmin,xmax,ymin,ymax utiliser
‘axis([xmin, xmax, ymin, ymax])’.
Vérifier que l’on a bien environ 13dB entre le max du lobe principal et le max du lobe
secondaire. Vérifier que pour une fenêtre de largeur p= 50 échantillons, on a toujours 13dB.

II- TFD d’une sinusoïde

Calculer la transformée discrète d’une exponentielle complexe.


1- Générer 100 échantillons d’une exponentielle de fréquence f0 = 1600 Hz
échantillonnée à Fe = 8khz. Afficher la partie réelle du résultat (fonction real).
2- Calculer X la TFD des P= 50 premiers échantillons du signal sur N= 50 points (utiliser
fft(x(1 :P),N)), et vérifier le module (utiliser plot(abs(X),’*’) pour voir chaque point
séparément).
3- Choisir maintenant une fréquence de 1680 Hz et refaire le calcul.
4- Pour f0 = 1680 Hz, afficher la TFD calculée sur N= 1000 points fréquentiels.
5- Pourquoi lorsque f0 = 1600 Hz toutes les valeurs de la TFD sont elles nulles sauf une ?
Qu’observe- t- on lorsque f0 = 1680 Hz et N= 50 ? Le résultat ressemble t-il à un sinus
cardinal en temps discret ? Et lorsque N= 1000.

~ Bonne chance ~

Vous aimerez peut-être aussi