aaaaaaaaaa.docx
TRANSCRIPT
Compte rendu des Travaux Pratiques :
Traitement du signal
Réalisé par : Encadré par :
ZYATE Abdellah M.BOUMAAZ
CHMIMO Yassine
Université Cadi Ayyad
Ecole Supérieur de Technologie
Année universitaire :2014/2
015
INTRODUCTION :
MATLAB (« matrix laboratory ») est un langage de programmation de quatrième génération émulé par un environnement de développement du même nom ; il est utilisé à des fins de calcul numérique.
MATLAB permet de manipuler des matrices, d'afficher des courbes et des données, de mettre en œuvre des algorithmes, de créer des interfaces utilisateurs, et peut s’interfacer avec d’autres langages comme le C, C++, Java, et Fortran. Matlab peut s’utiliser seul ou bien avec des toolbox (« boîte à outils »).
Objectifs du TP :
Le but de ce TP est de vous familiariser avec le logiciel Matlab qui sera utilisé pour tous les TP de traitement de signal. Dans ce TP on trouvera en première partie un bref descriptif du logiciel et en deuxième partie le TP proprement dit qui se compose de plusieurs exercices.
Page 2
>> Indique que Matlab attend une commande
Entrée au clavier
Le résultat
s’affiche
Entrée au clavier
Le résultat est
calculé et affiché
Commande pour tracer la séquence « b »
Le graphique va apparaître dans une autre fenêtre
« grid on » indique que les unités apparaissent
dans le tracé sous la forme d’une grille
1. Description de matlab :
- Le menu Windows permet d’utiliser les différentes fenêtres de Matlab . - Le menu Help fournit une aide interactive sous la forme d’un fichier Windowsen hypertexte.
Page 3
Dans cet exemple « a » est un vecteur ligne ; en frappant « b=a+2 » on crée un second vecteur ligne « b » en ajoutant 2 à chacun des éléments de « a »
On demande un tracé en frappant la commande » plot » ; le résultat s’affiche dans une nouvelle fenêtre : en abscisse on obtient le numéro d’indice et en ordonnée la valeur de la composante correspondante de « b ».
Création de programme dans un fichier :
Matlab permet d’utiliser des fichiers de commandes. Un fichier de commandes est fichier rassemblant des commandes Matlab.
Ce fichier est exécuté lorsqu’on tape le nom du fichier sous l’interpréteur. Le nom du fichier doit obligatoirement avoir une terminaison ”.m”. Voici un fichier de commandes fibo.m permettant de calculer la suite de Fibonacci.
% 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)
On peut aussi écrire des fonctions sous Matlab. Une fonction sera un fichier Matlab qui commence par function (et non pas par fonction) et qui aura des arguments. Par exemple voici la fonction mean qui calcule la moyenne d’un vecteur :
>> a=1:99;>> y=mean(a);
function y = mean(x)%MEAN Average or mean value.% For vectors, MEAN(X) is the mean value of the elements in X.% For matrices, MEAN(X) is a row vector containing the mean value% of each column.%% See also MEDIAN, STD, MIN, MAX.% Copyright (c) 1984-94 by The MathWorks, Inc.
[m,n] = size(x); if m == 1 m = n;endy = sum(x) / m;
Page 4
Exemples :
a. x ∈ [0,1], f1(x) = cos(tan(πx)):
Programme sous matlab Figure sous matlab
t1=0:0.01:1;
f1=cos(tan(pi*t1));
plot(t1,f1);grid
title('cos(tan(pi*x),')
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1cos(tan(pi*x),
b. x ∈ [-10,10], f2(x) = sin(x)/ x
Programme sous matlab Figure sous matlab
t2=-10:0.01:10;
f2=sin(t2)./t2;
plot(t2,f2);grid
title('f2(x) = sin(x)/ x ,')
-10 -8 -6 -4 -2 0 2 4 6 8 10-0.4
-0.2
0
0.2
0.4
0.6
0.8
1f2(x) = sin(x)/ x ,
Page 5
C. x ∈ [−100,100], f3(x) = x5 + 2x2 + x + 1 :
Approximer par un polynômes du 1er, 2eme et 3eme degrés, la fonction f(x) = sin(x) sur l’intervalle [0,π/2] : x1=0:pi/20:pi/2; n=lenght(x1); y1=sin(x1); figure(6); polt(x1,y1);grid; ordre=3; p=zeros(ordre+1,1); A=zeros(n,ordre+1); for i=1:n for j=1:ordre+1 A(i,j)=x1(i)^(ordre+1-j) end end p=A\y1' c=zeros(1,n); for k=1:ordre+1 c=c+p(k)*x1.^(ordre+1-k); end hold on plot(x1,c,'r');
Page 6
Programme sous matlab Figure sous matlab
t3=-100:10:100;
f3=t.^5+2*t.^2+t+1;
plot(t3,f3);grid
title('f3=x.^5+2*x.^2+x+1')
-100 -80 -60 -40 -20 0 20 40 60 80 1000
1000
2000
3000
4000
5000
6000
7000
8000
9000
10000f3=x.5+2*x.2+x+1
Programme sous matlab Figure sous matlab
figure(1)
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');
-10 -5 0 5 10-0.5
0
0.5
1
1.5Impulsion unité
n
Ampl
itude
Les signaux numériques
Page 7
1) L’impulsion unité :
2)L’échelon unité :
Programme sous matlab Figure sous matlab
figure(2)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');
-10 -8 -6 -4 -2 0 2 4 6 8 10-0.5
0
0.5
1
1.5Echelon unit¶e
n
Am
plitu
de
Page 8
Programme sous matlab Figure sous matlab
figure(1)
t=-10:10;
x=[zeros(1,10),1,zeros(1,1
0)] ;
stem(t,x);
axis([-10 10 -0.5 1.5]);
title('Impulsion unité');
xlabel('n');
ylabel('Amplitude');
-10 -5 0 5 10-0.5
0
0.5
1
1.5Impulsion unité
n
Ampl
itude
Sinus et exponentielle décroissante :
Programme sous matlab Figure sous matlab
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');
-10 -8 -6 -4 -2 0 2 4 6 8 10-1.5
-1
-0.5
0
0.5
1
1.5sinus
n
Am
plitu
de
exponentielle
décroissante
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 retardée);
xlabel('n');
ylabel('Amplitude');
-10 -8 -6 -4 -2 0 2 4 6 8 10-1.5
-1
-0.5
0
0.5
1
1.5Exponentielle retardée
n
Ampli
tude
- Opérations sur les signaux :
1) décalage et retournement temporelle :
Page 9
Page 10
Page 11
Décalage :
t=-10:10;delta=[zeros(1,10),ones(1,11)];subplot(3,1,1); stem(t,delta);axis([-10 10 -1.5 1.5]);title('\delta[n]');xlabel('n');ylabel('Amplitude');subplot(3,1,2);
deltam2=[zeros(1,2),delta(1:length(delta)-2)];
stem(t,deltam2);
axis([-10 10 -1.5 1.5]);title('\delta[n-2]');xlabel('n');ylabel('Amplitude');subplot(3,1,3);deltap2=[delta(3:length(delta)),zeros(1,2)];stem(t,deltap2);axis([-10 10 -1.5 1.5]);title('\delta[n+2]');xlabel('n');ylabel('Amplitude');
retournement temporelle t=-10:10;u=[zeros(1,10),ones(1,11)];x=exp(-0.2*t).*u;subplot(2,1,1);stem(t,x);axis([-10 10 -1.5 1.5]);title('x[n]');xlabel('n');ylabel('Amplitude');subplot(2,1,2);x1=x(length(x):-1:1);stem(t,x1);axis([-10 10 -1.5 1.5]);title('x[-n]');xlabel('n');ylabel('Amplitude');
-10 -8 -6 -4 -2 0 2 4 6 8 10
-1
0
1
x[n]
n
Ampl
itude
-10 -8 -6 -4 -2 0 2 4 6 8 10
-1
0
1
x[-n]
n
Ampl
itude
-10
-8-6
-4-2
02
46
810
-1 0 1
[n]
nAmplitude
-10
-8-6
-4-2
02
46
810
-1 0 1
[n-2
]
n
Amplitude
-10
-8-6
-4-2
02
46
810
-1 0 1
[n+
2]
n
Amplitude
2) Addition, soustraction, multiplication et division sur les signaux :
un programme qui permet de faire les opérations suivantes et qui va les tracer :
f=5sin (2Πf°t) f°=1Hz
g=6cos (2Πf°t) f1=5Hz
h=f+g ; x=f-g ; y=f*g
CONCLUSION
Page 12
Programme
sous matlab
Figure sous matlab
g=y+x;subplot(3,1,2)
plot(t,g)figure(13)
title('somme')xlabel('t en secondes')ylabel('V en
volts')
f=y-x;subplot(3,1,3)
plot(t,f)figure(13)
title('sous')xlabel('t en secondes')ylabel('V en
volts')
h=y*x;
subplot(3,1,4)plot(t,h)
figure(14)title('produit')
xlabel('t en secondes')ylabel('V en
volts')
00.
51
1.5
22.
53
3.5
-10010
cos
t en
sec
onde
s
V en volts
00.
51
1.5
22.
53
3.5
-20020
som
me
t en
sec
onde
s
V en volts
00.
51
1.5
22.
53
3.5
-20020
sous
t en
sec
onde
s
V en volts
Matlab est l’outil de référence pour la simulation numérique, notamment en ce qui concerne traitement du signal Il offre des possibilités avancées que ce soit en matière d’identification ou de commande.
Il permet, de manière plus générale, de résoudre une grande diversité deproblèmes de simulation, dans des domaines aussi varies que le traitement du signal, les statistiques ou la vision.
Page 13