Travaux Pratique

Vous aimerez peut-être aussi

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 32

TRAVAUX PRATIQUE 1 :

TRAITEMENT DE SIGNAL

Réaliser par :

Yassmine el-kouaze

Encadré par :

Prof. AHYOUD SAIDA


La Partie Pratique

Génération des signaux : Impulsion Unité et Echelon Unité

1. Exécuter les programmes suivants :

 Script 1 :

%Génération d'un vecteur de -10 0 20 de pas 1

n=-10:20;
u = [zeros(1,10) 1 zeros(1,20)]; %Utilisation de la
fonction zeros.
%Tracer le signal généré
stem (n,u);
xlabel('Temps indexé en n');
ylabel('Amplitude');
axis([-10 20 0 1.2]);

 Script 2 :

t = -1:0.00001:1 ;
x1 = rectpuls(t,0.05) ;
plot(t,x1) ; axis([-0.1 0.1 -0.2 1.2])
grid ;
xlabel('Temps(sec)');
ylabel('Amplitude');
2. Faire les changements nécessaires aux Scripts ci-dessus pour représenter les

impulsions suivantes :

 3 δ(t)

%Génération d'un vecteur de -10 0 20 de pas 1


n=-10:20;
u=[zeros(1,10) 3 zeros(1,20)]; %Utilisation de la
fonction zeros.
%Tracer le signal généré
stem (n,u);
xlabel('Temps indexé en n');
ylabel('Amplitude' );
axis ([-10 20 0 3.2]) ;

 2 δ(t + 2)

%Génération d'un vecteur de -10 0 20 de pas 1


n=-10:20;
u=[zeros(1,8) 2 zeros(1,22)]; %Utilisation de
la fonction zeros.
%Tracer le signal généré
stem(n,u);
xlabel('Temps indexé en n');
ylabel('Amplitude');
axis([-10 20 0 3]);

 δ(t-1)

%Génération d'un vecteur de -10 0 20 de pas 1


n=-10:20;
u=[zeros(1,11) 1 zeros(1,19)];
%Utilisation de la fonction zeros.
%Tracer le signal généré
stem(n,u);
xlabel('Temps indexé en n');
ylabel('Amplitude');
axis([-10 20 0 2]);

 s(n)= 2δ(n +2) − δ(n − 4) : −5 ≤ n ≤ 5

%Génération d'un vecteur de -5 0 5 de pas 1


n=-5:5;
u=[zeros(1,3) 2 zeros(1,7)]; %Utilisation de
la fonction zeros.
v=[zeros(1,9) 1 zeros(1,1)];
%Tracer le signal généré
stem(n,u-v);
xlabel('Temps indexé en n');
ylabel('Amplitude');
axis([-5 5 0 3]);

 le signal Échelon :
 Exemple 1 : s1[n]=u[n]

%Génération d'un vecteur de -20 0 20 de


pas 1
n=-20:20;
u=[zeros(1,20) ones(1,21)];
%Tracer le signal généré
stem(n,u);
grid;
xlabel('Temps indexé en n');
ylabel('Amplitude');
axis([-20 20 0 3]);

 Exemple 2 : s2[n]=u[n-2]

%Génération d'un vecteur de -20 0 20 de pas 1


n=-20:20;
u=[zeros(1,22) ones(1,19)];
%Tracer le signal généré
stem(n,u);
grid;
xlabel('Temps indexé en n');
ylabel('Amplitude');
axis([-20 20 0 3]);

 Exemple 3 : s3[n]=0.7(u[n+3]-u[n-3] ) ; -5<=n<=10

%Génération d'un vecteur de -5 0 10 de pas 1


n=-5:1:10;
u = [zeros(1,2) ones(1,14)];
v= [zeros(1,8) ones(1,8)];
%Tracer le signal généré
z=0.7*(u-v);
stem (n,z);
grid on;
xlabel('Temps indexé en n');
ylabel('Amplitude');
axis([-7 10 0 3]);

Exemple 4 : un signal triangulaire

t = -3:3 ;
x1 = tripuls(t,1,0) ;
plot(t,x1) ;
axis([-3 3 -0.2 1.2]);
grid ;
xlabel('Temps(sec)');
ylabel('Amplitude');
Exemple 5 : un signal carré

t = -2:0.01:2 ;
x1 = rectpuls(t,1) ;
plot(t,x1) ; axis([-2 2 -2 2])
grid ;
xlabel('Temps(sec)');
ylabel('Amplitude');

Exemple 6 : un signal dents de scie

t = 0:0.04:10; %time vector


A = 1; % amplitude
T = 2; % period of the signal
s= mod(t * A / T, A);
plot(t,s);
grid on;
title('S');
3. Génération d’une sinusoïde :

 Les deux signaux dans la même figure :

t=[0:0.0001:0.01];
x=2.5*sin(2*pi*1000*t);
y=1.75*sin(2*pi*2000*t);
subplot(3,1,1)
plot(t,x,'b')
xlabel('t')
ylabel('x,y')
grid;
hold on
subplot(3,1,2)
plot(t,y,'r')

 La somme des deux signaux :

La somme des deux signaux périodiques est un signal aussi périodique, et sa fréquence est égale à :
t=[0:0.0001:0.01];
x=2.5*sin(2*pi*1000*t);
y=1.75*sin(2*pi*2000*t);
subplot(3,1,1)
plot(t,x,'b')
xlabel('t')
ylabel('x,y')
grid;
hold on
subplot(3,1,2)
plot(t,y,'r')
z=x+y;
subplot(3,1,3)
plot(t,z)

4. Corrélation et Convolution sous Matlab :

1. La convolution des deux signaux :


2. La corrélation des deux signaux :
3. déclarer des deux signaux sur l'intervalle temporel [-1, 5] :

 S1(t)= 1 si t1 < t < t2

t=-1:0.01:5;
s1=ones(size(t));
plot(t,s1);
xlabel('temps');
ylabel('amplitude');
title('S1(t)')

 S2(t)= exp(-a*t)*u(t) avec a>0

t=-1:0.01:5;
a=1;
s2 = exp(-a*t);
plot(t,s2);
xlabel('temps');
title('S2(t)');
4. La corrélation et la convolution sous MatLab :

 La convolution

t=-1:0.01:5;
s1=ones(size(t));
subplot(3,1,1)
plot(t,s1);
xlabel('temps');
ylabel('amplitude');
title('S1(t)')

a=1;
s2 = exp(-a*t);
subplot(3,1,2)
plot(t,s2);
xlabel('temps');
title('S2(t)');
grid;

c=conv(s1,s2);
subplot(3,1,3)
n=-3:0.01:9;
plot(n,c,'r');
xlabel('Temps');
ylabel('Amplitude');
title('convolution');
 La corrélation

t=-1:0.01:5;
s1=ones(size(t));
subplot(3,1,1)
plot(t,s1);
xlabel('temps');
ylabel('amplitude');
title('S1(t)')
a=1;
s2 = exp(-a*t);
subplot(3,1,2)
plot(t,s2);
xlabel('temps');
title('S2(t)');
grid;
c=xcorr(s1,s2);
subplot(3,1,3)
n=-3:0.01:9;
plot(n,c,'r');
xlabel('Temps');
ylabel('Amplitude');
title('convolution');
5. Effet la somme non-infinie sur les séries de Fourier

 Rédiger un script qui va réaliser les opérations :

L=20;
time=linspace(0,L,100*L);
signal=zeros(100*L,1)';
a=[ 0 0 0 0 0 0 ];
b=[ 0 0 0 0 0 0 ];

 une boucle permettant de générer une série de Fourier tronquées aux 6 premiers
coefficients :

L=20;
time=linspace(0,L,100*L);
signal=zeros(100*L,1)';
a=[ 0 0 0 0 0 0 ];
b=[ 0 0 0 0 0 0 ];
for n=1:6
signal=signal+a(n)*cos(n*time)+b(n)*sin(n*time);
end
plot(time,signal)

 Choisir les vecteurs a et b au hasard et afficher le signal en fonction de time :

L=20;
time=linspace(0,L,100*L);
signal=zeros(100*L,1)';
a=[ 1 0 0 0 0 0 ];
b=[ 0 1 0 0 0 0 ];
for n=1:6
signal=signal+a(n)*cos(n*time)+b(n)*sin(n*time);
end
plot(time,signal)
 Essayer les vecteurs an = 0 et bn = (-
time. Conclure :
L=20;
time=linspace(0,L,100*L);
signal=zeros(100*L,1)';
a=[ 0 0 0 0 0 0 ];
b=[ 1 0 0 0 0 0 ];
for n=1:6
signal=signal+(-1)^(n+1)*2/(pi*n)*sin(n*time);
end
plot(time,signal)

Pour conclure, on peut dire que la sérier de Fourier périodique comme un signal sinusoïdal

 Ajouter maintenant 2 termes dans a et b (toujours an = 0 et bn = (-


ficher le signal en fonction de time. A-t-il changé ? Pourquoi ?

L=20;
time=linspace(0,L,100*L);
signal=zeros(100*L,1)';
a=[ 0 0 0 0 0 0 0 0 ];
b=[ 1 0 0 0 0 0 1 0 ];
for n=1:6
signal=signal+(-1)^(n+1)*2/(pi*n)*sin(n*time);
end
plot(time,signal)

Non, car la série de Fourier ne dépend pas du nombre des termes de a et b

 Réaliser une boucle pour ajouter un nombre arbitraire de coefficients dans la série
et faire un test avec an = 0 et bn = (- fficients
l'approximation d'un signal triangulaire vous semble bonne ?
clear all
L=20;
time=linspace(0,L,100*L);
signal=zeros(100*L,1)';
a=[ 0 0 0 0 0 0];
b=[ 1 0 0 0 0 0];
for n=1:20
signal=signal+(-1)^(n+1)*2/(pi*n).*sin(n*time);
end
plot(time,signal)

La bonne approximation est lorsque n devient plus grande (tends vers l’infinie).

 la décomposition de Fourier d'une fonction créneau :

clear all
L=20;
time=linspace(0,L,100*L);
signal=zeros(100*L,1)';
a=[ 0 0 0 0 0 0];
b=[ 0 0 0 0 0 0];
for n=0:10
signal=signal+(-
1)^(n)*2/((2*n+1)*pi)*cos((2*n+1)*time);
end
plot(time,signal)

Vous aimerez peut-être aussi