T.P.
de Traitement du Signal
Annee Universitaire 2024/2025
I.S.A_G.E.I.I_ S5_Mécatronique
Objectif du TP
Le but de ce TP est de vous familiariser avec le logiciel Matlab qui sera utilisée pour tous les TP
de traitement de signal. Matlab (Matrix Laboratory) est un environnement de calcul permettant des
calculs numériques et des représentations graphiques.
Quelques commandes Matlab utiles
Plot : Trace une représentation graphique.
Grid : affiche une grille.
Title : attribue un titre au graphique.
Xlabel : attribue un texte à l’axe des abscisses.
Ylabel : attribue un texte à l’axe des ordonnées.
tripuls(T,w,s) :elle génère une impulsion triangulaire de largeur w et de centre s.
rectpuls(t,w) : elle génère une signal rectangulaire de largeur w.
Conv(x,y) : elle fait la convolution de vecteur x avec le vecteur y.
Subplot : représente graphiquement dans une graphique donnée
Axis : indique les échelles des axes de coordonnées.
Clf : efface le graphique courant.
Hold on/off : permet/interdit la superposition des représentations graphiques.
N= length(x) : renvoie dans n la dimension du vecteur X.
[n,m]= size (A) : renvoie la dimension de la matrice A dans deux variables séparées m et n.
I. Analyse temporelle des signaux
1. Exemples de graphe sur Matlab
Programme 1 : Sinus, Ecrivez et testez le programme
t=0:pi/10:2*pi;
y=sin(t);
plot(t,y)
title('Mon premier graphique sous Matlab')
xlabel('t en secondes')
ylabel('V en volts')
Programme 2 : Suite de Fibonacci, Ecrivez et testez le programme
% exemple de fichier de commandes, calcul de la suite de Fibonacci
% u(n+2)=u(n+1)+u(n)
f=[1 1];
i=1;
while f(i) + f(i+1) < 1000
f(i+2)=f(i+1)+f(i);
i=i+1;
end
plot(f)
2. Les signaux numériques
Nous allons voir les fonctions qui permettent de générer les signaux numériques usuels à l’aide de
la fonction stem.
2.1. L’impulsion unité ( 𝜹(𝒕)
Ecrivez et testez le programme, Expliquez à quoi servent les différentes fonctions.
%impulsion unité
t=-10:10;
x=[zeros(1,10),1,zeros(1,10)];
stem(t,x);
axis([-10 10 -0.5 1.5]);
title('Impulsion unité');
xlabel('n');
ylabel('Amplitude');
Ecrivez et testez le programme des impulsions 3. 𝜹(𝒕); 𝜹(𝒕 + 𝟏); 2. 𝜹(𝒕 − 𝟐) en modifiant ce
programme.
2.2. L’impulsion rectangulaire
t=-1:0.001 :1 ;
x1=rectpuls(t,0.5) ;
n=-1:0.005 :1 ;
plot(t,x1);
axis([-1 1 0 1.2]);
title(‘Impulsion rectangulaire’);
xlabel('temps(s)');
ylabel('Amplitude');
2.3. L’échelon unité
Pour le cas de l’échelon unité, on se contentera d’un nombre fini d’échantillon. Ecrivez et testez
le programme :
% echelon unité
t=-10:10;
x=[zeros(1,10), ones(1,11)];
stem(t,x);
axis([-10 10 -0.5 1.5]);
title('Echelon unité’);
xlabel('n');
ylabel('Amplitude');
2.4. Sinus
La fonction suivante est sin(0,35.n). Ecrivez et testez le programme :
%sinus
t=-10:10;
x=sin(0.35*t);
stem(t,x);
axis([-10 10 -1.5 1.5]);
title('sinus');
xlabel('n');
ylabel('Amplitude');
2.5. Exponentielle décroissante
Ensuite avec une exponentielle décroissante e0,2.n.u[n] avec u l’échelon unité.
Ecrivez et testez le programme :
%exponentielle
t=-10:10;
u=[zeros(1,10),ones(1,11)];
x=exp(-0.2*t).*u;
stem(t,x);
axis([-10 10 -1.5 1.5]);
title('Exponentielle retarde');
xlabel('n');
ylabel('Amplitude');
3. Autres signaux de base
3.1. sinus cardinal
%Tracage de la fonction sinus cardinal
%Domaine des valeurs de la variable x
x=-4*pi:pi/100:4*pi; %valeurs de la fonction
y=(x==0)+sin(x)./(x+(x==0)); %Tracage de la fonction sinus cardinal
title('sinus cardinal y=sin(x)/x');
plot(x,y);
3.2. Signal et bruit
N=1000;
t=linspace(0,1,N);
f1=7;
A1=2;
sinus=A1*sin(2*pi*f1*t);
sigma=0.5;
bruit=randn(1,length(sinus));
signal=sinus+bruit;
subplot(2,1,1); plot(sinus,'b');hold on;
ylabel('Allure temporelle du signal et du bruit');
xlabel('temps(s)');
plot(bruit,'r');hold on;
subplot(2,1,2); plot(signal,'b');
ylabel('Allure temporelle du signal et du bruit');
xlabel('temps(s)');