Vous êtes sur la page 1sur 10

Tp traitement du

signal


[Tapez le sous-titre du document]

Encadr par : Dr.Ing.ABOUTABIT

18/06/2013

Introduction
Le traitement du signal est la discipline qui dveloppe et tudie les techniques de traitement,
d'analyse et d'interprtation des signaux. Parmi les types d'oprations possibles sur ces signaux, on peut
dnoter le contrle, le filtrage, la compression de donnes, la transmission de donnes, le dbruitage,
la dconvolution, la prdiction, l'identification, la classification, etc.
Bien que cette discipline trouve son origine dans les sciences de l'ingnieur (particulirement
l'lectronique et l'automatique), elle fait aujourd'hui largement appel de nombreux domaines des
mathmatiques, comme la thorie du signal, les processus stochastiques, les espaces vectoriels et l'algbre
linaire et des mathmatiques appliques, notamment la thorie de l'information, l'optimisation ou encore
l'analyse numrique.
I. Operations sur les signaux
Objectif :
Matlab est un logiciel trs dvelopp puisque il contient plusieurs fonctions avec
lesquelles on va essayer de manipuler certains outils de base en matire de traitent se
signal, laccent sera mis particulirement sur la gnration des signaux, lanalyse de
Fourier, les oprations de convolution et le calcul des fonctions de corrlation

Analyse de Fourier dun signal carr
Code Matlab :

fs=1000; %la frequance du signal
n=5000; % le nombre de point dont on va chantillonner
t=(0:1/fs:5);%lintervalle de temps
y=square(2*pi*20*t);% square fonction dj prdfinie dans Matlab sert a
gnrer un signal carr
b=fft(y,n);% fft fonction dj prdfinie dans Matlab sert faire une
transforme de Fourier
f=(0:fs/n:500);% lintervalle de frquences
m=abs(b);% le module
a=angle(b) ;la phase
plot(f,m(1:2501),f,a(1:2501))% commande permettre tracer la phase et le
module
Corrlation et convolution sous Matlab et Le thorme de Plancherel :

Rappel du thorme Plancherel

() () () ()


()()

()()


Code Matlab :

clear
clc
t=-1:0.01:5;

x=heaviside(t)-heaviside(t-2); % dfintion du signal x(t) : x(t)=1 si
(0<t<4) et x(t)=0 sinon %
subplot(5,1,1); % pour illustrer toutes les figures sous mme fentre%
plot(t,x); % graphe de x %
title('x(t)'); %titre du graphe %

y=exp(-0.5*t).*heaviside(t); % dfintion du signal yt) : y(t)=exp(-0.5t) si
(0<t) et y(t)=0 sinon %
subplot(5,1,2);
plot(t,y,'-r');
title('y(t)'); % graphe de y %

w=conv(x,y);% w vaut le produit de convolution de x et y %
subplot(5,1,3);
plot(w); % graphe du produit de convolution%
title('produit de convolution');

u=xcorr(x,y);% u vaut le produit de corrlation de x et y %
subplot(5,1,4)
plot(u); %graphe produit de corrlation de x et y%
title('produit de corrlation');


% Thorme de Plancherel

N=512; %le nombre d'chantillon temporel
a=fft(x,N);% a vaut la transform de Fourier discrte du signal x %
b=fft(y,N);% b vaut la transform de Fourier discrte de y %
c=a.*b;
f=fft(w,N);% f vaut la transform de Fourier discrte du produit de
convolution %



subplot(5,1,5);
hold on % tracer sur la mme figure l'amplitude de TF du produit de
convolution ainsi que le produit des TF
plot(abs(c))
plot(abs(f))
title('fft');
hold off





Daprs la dernire figure fft on constate que le spectre damplitude de la TF du produit
de convolution est le mme que le spectre du produit des deux TF do le thorme
Plancherel est trs bien vrifier !



-1 0 1 2 3 4 5
0
0.5
1
x(t)
-1 0 1 2 3 4 5
0
0.5
1
y(t)
0 200 400 600 800 1000 1200 1400
0
100
200
produit de convolution
0 200 400 600 800 1000 1200 1400
0
100
200
produit de corrlation
0 100 200 300 400 500 600
0
2
4
x 10
4
fft
II. Echantillonnage idal
Objectif :
Gnration des deux signaux S1 et S2 :
Le code Matlab :
tmax=0.005;
fe=100/tmax; %frquence dchantillonnage
t=0:tmax/100:tmax; % lintervalle de temps
s2=cos(2*pi*(fe-350)*t);
s1=cos(2*pi*350*t);
plot(t,s1,t,s2)

Les allures

On remarque daprs la courbe que les deux allures concide do ils ont la mme
frquence et la mme amplitude !

Sous chantillonnage :
Le code Matlab
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
x 10
-3
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
clear
clc
tmax=0.005;
Fc=350*2;
F=800;
T=1/F
fe=100/tmax;
t=0:tmax/100:tmax;
n2max=floor(tmax*Fc);
n1max=floor(tmax/T);
a=[0:n1max]*T %la nouvelle base de temps
s2_sub=cos(2*pi*(fe-350)*a);
s1_sub=cos(2*pi*350*a);

subplot(2,1,1)
plot(s1_sub,'r')
subplot(2,1,2)
plot(s2_sub)












Figure
Visualisation des chantillons
1 1.5 2 2.5 3 3.5 4 4.5 5
-1
-0.5
0
0.5
1
1 1.5 2 2.5 3 3.5 4 4.5 5
-1
-0.5
0
0.5
1

Les deux signaux numriques sont dfinis par un nombre d'chantillons 5 levs une
frquence d'chantillonnage 800

Traons le spectre de S1 et S1_sub
Le code matlab
clear
clc
tmax=0.005;
Fc=350*2;
F=800;
T=1/F
n2max=floor(tmax*Fc);
n1max=floor(tmax/T);

fe=100/tmax;
t=0:tmax/100:tmax;
a=0:1/F:n1max;
s2=cos(2*pi*(fe-350)*t);
s1=cos(2*pi*350*t);

1 1.5 2 2.5 3 3.5 4 4.5 5
-1
-0.5
0
0.5
1
1 1.5 2 2.5 3 3.5 4 4.5 5
-1
-0.5
0
0.5
1
s2_sub=cos(2*pi*(fe-350)*a);
s1_sub=cos(2*pi*350*a);

subplot(2,1,1);
plot(abs(fft(s1)))
title('spectre de S1');
subplot(2,1,2);
plot(abs(fft(s1_sub)))
title('spectre de s1 sub')














Traons le spectre pour s2 et s2_sub
Le code matmalab
clear
clc
tmax=0.005;
Fc=350*2;
F=800;
T=1/F
n2max=floor(tmax*Fc);
n1max=floor(tmax/T);

fe=100/tmax;
t=0:tmax/100:tmax;
0 20 40 60 80 100 120
0
20
40
60
spectre de S1
0 500 1000 1500 2000 2500 3000 3500
0
500
1000
1500
spectre de s1 sub
a=0:1/F:n1max;
s2=cos(2*pi*(fe-350)*t);
s1=cos(2*pi*350*t);

s2_sub=cos(2*pi*(fe-350)*a);
s1_sub=cos(2*pi*350*a);

subplot(2,1,1);
plot(abs(fft(s2)))
title('spectre de S2');
subplot(2,1,2);
plot(abs(fft(s2_sub)))
title('spectre de s2 sub')













Effectuons el sous-chantillonnage la frquence limite obtenu par
application de thorme de Shannon
Le code Matlab :
clear
clc
tmax=0.005;
Fc=350*2;
F=800;
T=1/F
n2max=floor(tmax*Fc);
0 20 40 60 80 100 120
0
20
40
60
spectre de S2
0 500 1000 1500 2000 2500 3000 3500
0
500
1000
1500
spectre de s2 sub
n1max=floor(tmax/T);

fe=100/tmax;
t=0:tmax/100:tmax;
s1=cos(2*pi*350*t);

b=0:1/Fc:n2max
s1_sub=cos(2*pi*350*b)

plot(abs(fft(s1_sub)))
title('spectre de s1 sub ')










0 500 1000 1500 2000 2500
0
200
400
600
800
1000
1200
1400
spectre de s1 sub