Vous êtes sur la page 1sur 31

UNIVERSITE HASSAN II DE CASABLANCA

FACULTE DES SCIENCES ET TECHNIQUES DE MOHAMMADIA

DEPARTEMENT GENIE ELECTRIQUE

COMPTE RENDU
Traitement du Signal Analogique

Réaliser par : Encadré par :


Amina GARNAOUT A. SAHEL
Fatima zahra ETTALHI

Année Universitaire 2023/2024


TP 1 : Représentations Temporelle et Fréquentielle des
Signaux

Introduction :
Le traitement du signal, en tant que discipline essentielle de l'ingénierie, repose sur l'art de
comprendre, analyser et manipuler des signaux pour extraire des informations précieuses. Que ce
soit dans le domaine des communications, du traitement d'image, de la médecine ou d'autres
secteurs, le traitement du signal offre des outils puissants pour interpréter les données qui nous
entourent. Ce domaine s'appuie sur des techniques sophistiquées permettant de décomposer, filtrer
et interpréter des signaux, qu'ils soient analogiques ou numériques.
Au cœur du traitement du signal se trouve la capacité à transformer des informations complexes en
des formes plus compréhensibles, facilitant ainsi la prise de décision, la détection de modèles et la
résolution de problèmes divers. Grâce à des algorithmes avancés et à des méthodes mathématiques,
le traitement du signal a évolué pour devenir un pilier fondamental de nombreuses technologies
modernes.

Introduction sur MATLAB :


MATLAB, acronyme de "Matrix Laboratory", se dresse comme une forteresse virtuelle où
l'ingénierie, les mathématiques et la programmation convergent pour résoudre des problèmes
complexes et modeler le monde qui nous entoure. Développé par MathWorks, MATLAB est bien
plus qu'un simple logiciel, c'est une plateforme complète qui offre une panoplie d'outils puissants
pour l'analyse numérique, la modélisation et la simulation.
En tant que langage de programmation technique, MATLAB offre une interface intuitive qui
permet aux ingénieurs, scientifiques et chercheurs d'exprimer leurs idées de manière algorithmique,
tout en profitant d'une richesse de fonctions pré-construites. Que ce soit pour résoudre des systèmes
d'équations complexes, visualiser des données en trois dimensions, ou simuler des phénomènes
dynamiques, MATLAB se présente comme un compagnon inestimable dans le domaine de la
modélisation numérique.
But de TP :
Le but fondamental de ce Travaux Pratiques est d'immerger les participants dans l'univers
captivant des signaux, en mettant l'accent sur la dualité temporelle et fréquentielle qui caractérise
ces entités mathématiques. En se basant sur l'utilisation du logiciel MATLAB, l'objectif principal
est tracer les différents signaux grâce au logiciel Matlab, déterminer leurs spectres, calculer leurs
transformé de fourrier et la transformé de fourrier inverse.

1.1 Exemple d’un signal sinusoïdal :


Tracez dans une figure le signal sinusoïdal de fréquence f0=50Hz et d’amplitude 2 sur 10
périodes. Le signal sinusoïdal est défini par :
Script :
f0=1;
t0=1/f0;
T=10*t0;
Te=0.01;
t=0:Te:T;
x=sin(2*pi*f0*t);
plot(t,x);

la courbe :

Tracé du spectre :
Dans le domaine fréquentiel, la fréquence doit être représentée sous forme de vecteur : c'est-à-
dire le domaine fréquentiel doit également être discrétisé. En effet, MATLAB ne peut pas
calculer le contenu. La fréquence d'un signal ne se situe qu'à un nombre limité de points de
fréquence.
Pouvoir passer du domaine temporel au domaine fréquentiel, Les deux vecteurs sont identiques
en temps et en fréquence. Le vecteur fréquence est déclaré ainsi :

f=linspace (-Fe/2, Fe/2, length (t));

Après avoir défini le domaine temporel et le domaine fréquentiel, nous pouvons calculer la
transformée de Fourier, utilisez la fonction MATLAB fft. Cette fonction permet de calculer la
transformée de Fourier discrète signaux « discrets » : c'est pourquoi nous avons discrétisé le
domaine auparavant le temps et la fréquence.
On peut alors calculer la transformée de Fourier du signal sinusoïdal :

Script :
Fe=100 ;
Te=1/Fe ;
t=0 :Te :1 ;
f=linspace(-Fe/2, Fe/2, length(t));
x=sin(2*pi*10*t) ;
X=fftshift(fft(x)*Te) ;
plot(f,abs(X));grid;
xlabel('f');
ylabel('Spectre X(f)');

L'instruction fftshift transforme la sortie de fft pour remplacer les fréquences négatives avant
fréquence positive. Il faut aussi multiplier par Te pour considérer l'échantillonnage est effectué
dans les domaines temporel et fréquentiel.

la courbe :

2.2. MANIPULATION:
Exercise 1 :
On considère les quatres signaux suivants :
- x1(t) = cos (2πf1t+1)
- x2(t) = cos (2πf2t)
- x3(t) = cos (2πf3t+3)
- x4(t) = x1(t) + 3x2(t) + 2x3(t)
Avec :
- f1 = 40 Hz; 1 = π/4,
- f2 = 105 Hz;
- f3 = 125 Hz; 3 = π/3.

1. Générer un vecteur temps t de 100 points de 0 à 0.1s :

t=0: Te: T;

2. Tracer les signaux xi(t); (i = 1; 4). Utiliser la commande subplot afin


de tracer les quatre graphes les uns en dessous des autres.
Script :

T=0.1;
Te=T/100;
t=0:Te:T;
f1=40;
f2=105;
f3=125;
x1=cos(2*pi*f1*t+pi/4);subplot(4,2,1);plot(t,x1);grid;xlabel('t');ylabel('x1(t)');
x2=cos(2*pi*f2*t);subplot(4,2,3);plot(t,x2);grid;xlabel('t');ylabel('x2(t)');
x3=cos(2*pi*f3*t+pi/3);subplot(4,2,5);plot(t,x3);grid;xlabel('t');ylabel('x3(t)');
x4=x1+3*x2+2*x3;subplot(4,2,7);plot(t,x4);grid;xlabel('t');ylabel('x3(t)');

La courbe :
On observe que le signal x4 exhibe des caractéristiques quasi-périodiques du fait de sa
composition résultant de la somme des signaux x1, x2 et x3
3. Calculer la transformée de Fourier (fonction fft ) de chaque signal et représenter le spectre
d’amplitude entre 0 Hz et 1000Hz . Utiliser la commande subplot afin de tracer chacun des
spectres à côté du signal temporel correspondant.

Script :

La courbe :
4- A l’aide de la commande fftshift, représenter le spectre entre -500 Hz et 500 Hz :
Script :

La courbe :
Exercice 2 :
Soit le signal 𝑧(𝑡) = 𝑒 −𝑎|𝑡| avec a > 0 Ecrire un code Matlab commenté pour réaliser les
opérations suivantes :
1. Tracer le signal z(t) entre –5 et 5s, avec un pas de temps Te = 0.01s, et a = 1 :
Script :

La courbe :

2. Tracer la transformée de Fourier Z1(f) calculée de manière formelle (expression


algébrique) entre [-5Hz ..5Hz] avec un pas de fréquence Fe = 0.01Hz.
Script :
La courbe :

3. Tracer le spectre en amplitude de Z(f), la TF de z(t) entre –5 et 5 Hz. Comparer


le résultat avec celui de la question (2).
Script :

La courbe :

4. Calculer la transformée de Fourier Inverse z2(t) de Z(f). Retrouve-t-on


exactement le signal de départ z(t)?
Script :
La courbe :

On peut bien remarquer que cette courbe est identique à celle du signal de départ
z(t) .
5. Tracer le spectre d’amplitude de 𝑧(𝑡). 𝑒 𝑗2𝜋𝑓0𝑡 qui illustre la propriété de
décalage fréquentiel de Z(f), avec f0=5 Hz :
Script :
La courbe :

Le résultat obtenu :
Exercices 3 : Spectres de signaux périodiques
1. Générer un signal carré de durée 1.5 secondes et de fréquence de 180 Hz avec un
pas temporel de 1/10.000 :
Script :

La courbe :

On remarque que le spectre du signal carré s’annule toute les n*f, avec n est un
nombre pair et que à partir de n=9 les harmoniques son négligeables.

3. Tracer l’évolution temporelle sur 0.2 secondes seulement des deux signaux
générés (utiliser les fonctions square et sawtooth qui se déclarent de la même
manière que les fonctions sin) :

Script :
La courbe :

En comparant les spectres des deux signaux x et y, on remarque que X a une


amplitude élevée par rapport à le signal Y, ainsi que la bande passante du signal Y
est large que le signal X.

Exercice 4 : Spectre des portes Rectangulaire et Triangulaire


1. Générer une impulsion rectangulaire de largeur 5 secondes sur un intervalle [-
5,5] et tracer son spectre :
Script :
La courbe :

2. Générer une impulsion triangulaire de largeur 5 secondes sur un intervalle [-5,5]


et tracer son spectre :
Script :
La courbe :

3 resumer :
La bande fréquentielle occupé par un signal triangulaire de fréquence f0 est plus
étroite que la bande fréquentielle d’un signal carré de même fréquence f0.
L'impulsion rectangulaire a un spectre en forme de sinc, qui décroît lentement à
mesure que la fréquence augmente et est nul en dehors d'une bande limitée. Les
impulsions rectangulaires ont donc une large bande de fréquences, ce qui les rend
plus adaptées pour la transmission de signaux à large bande.
TP N0 2 : Systèmes Linéaires Continus Filtrage
Analogique.

But du TP :
L’objectif de ce travail pratique est de mettre en application les connaissances
acquises sur la Transformée de Fourier et le filtrage. Nous verrons, grâce à
Matlab, les différences existantes entre le filtrage idéal (Partie1) utilisé en
théorie et le filtrage réel (Partie 2 ) appliqué dans divers domaines tels que la
télécommunication, l’électronique, l’automatique…

Partie I : Convolution, transformée de Fourier et filtrage passe bas idéal.

1/ Avec t=[-20,20], afin de générer un vecteur temps de 4000points il suffit


d’effectuer l’opération : Te=40/4000 donc Te = 0.01s
Il faut représenter dans Matlab, chaque fonction dans le domaine temporel sur
un nombre fini de valeurs de t, t = [-20, 20] avec un pas Te.
% Représentation temporelle de la fonction porte avec T=5
T=5;
Te=40/4000;
Fe=1/Te;
t=-20:Te:20;
% Création de la fonction porte
x=(((-T/2)<=t)&(t<=(T/2)));
% Représentation temporelle de la fonction porte avec T= 5
figure(1)
plot(t, x,'r' )
grid
axis([-5 5 -0.05 1.05]) ;
title('Représentation temporelle de la fonction Porte avecT = 5');
xlabel('Temps t') ;
ylabel('Amplitude du signal')

2/ Définir et tracer le signal pour une ouverture T=5s.

3/ Calculer le spectre X(f) du signal x(t) dans l’intervalle de fréquence f=[-2, 2] Hz en


utilisant les fonctions fftshift et fft. Dans le but de pouvoir passer du domaine
temporel au domaine fréquentiel il faudra que la longueur des deux vecteurs
temporel et fréquentiel soit la même. On pourra utiliser : f=linspace(-Fe/2,Fe/2,
length(t));

%2%transformée de Fourier
f=linspace(-Fe/2, Fe/2,length(t));
X=fftshift(fft(x)*Te) ;
subplot(1,2,1);
plot(t,x);
axis([-5 5 0 1.2]) ;
xlabel('t');
ylabel('x');
title('x '); grid;
subplot(1,2,2);
plot(f,abs(X));
axis([-1 1 0 5.2]) ;
xlabel('f');
ylabel('X'); title('X ');grid
Remarque :
Dans un premier temps nous avons le signal rectangulaire dans le domaine
temporel, grâce aux fonctions fft et fftshift (qui réalisent la transformée de
fourrieren bilatéral), nous avons pu obtenir son équivalent dans le domaine
fréquentiel, ( le spectre), il s’agit de la fonction sinus cardinal en valeur absolue.

« Comment peut-on vérifier que le spectre est correct ? »


Pour vérifier si le spectre est correcte on doit revenir du domaine fréquentiel au
temporel avec la transformé de fourrier inverse « ifft » , et vérifier s’il s’agit du
signal de départ.

4/ Définir le domaine fréquentiel et tracer la fonction de transfert


H(f) du filtre passe-bas idéaldont la fréquence de coupure fc=2/T.

T=5;
Te= 40/4000;
t=-20:Te:20;
fc=2/T;
x=(((-T/2)<=t)&(t<=(T/2)));
figure(1)
grid
axis([-5 5 -0.05 1.05]) ;
f=linspace(-Fe/2,Fe/2,length(t));
X=fftshift(fft(x)*Te);
axis([-1 1 -0 6])
grid
H=((-fc<=f)&(f<=fc));
plot(f,H);
axis([-4 4 -0 1.5])
axis([-4 4 -0 1.5]);

5/ Soit Y(f) le spectre du signal de sortie du filtre fréquentiel H(f),


Exprimer Y(f) en fonctionde X(f) et de H(f). Tracer Y(f)

T=5;
Te= 40/4000;
t=-20:Te:20;
fc=2/T;
Fe=1/Te;
x=(((-T/2)<=t)&(t<=(T/2)));
figure(1)

f=linspace(-Fe/2,Fe/2,length(t));
X=fftshift(fft(x)*Te);
subplot(3,1,1)
plot(f,abs(X));
title('TF[Rect(t)]') ;
xlabel('fréquence f') ;
ylabel('Amplitude du signal') ;
axis([-1 1 -0 6])
grid

H=((-fc<=f)&(f<=fc));
subplot(3,1,2)
plot(f,H);
axis([-1 1 -0 2])
title('H(f)') ;
xlabel('fréquence f') ;
ylabel('Amplitude') ;
Y=H.*X;

subplot(3,1,3) plot(f,abs(Y));
axis([-1 1 -0 6])
title('Y(f)') ; xlabel('fréquence f') ;
ylabel('Amplitude') ;

6/ Calculer l’expression de y(t). Tracer y(t). En utilisant la Transformée de Fourier


Inverse(commande ifft de Matlab). Le signal de sortie est-il équivalent au signal
d’entrée ?
Programme en Matlab :

Fe=1/Te;
x=(((-T/2)<=t)&(t<=(T/2)));
figure(1)
subplot(3,2,1)
plot(t, x,'r' )
grid
axis([-5 5 -0.05 1.05]) ;
title('Rect(t)') ;
xlabel('Temps t') ; ylabel('Amplitude') ;
f=linspace(-Fe/2,Fe/2,length(t));
X=fftshift(fft(x)*Te);
subplot(3,2,2)
plot(f,abs(X));
title('TF[Rect(t)]') ;
xlabel('fréquence f') ;
ylabel('Amplitude du signal') ;
axis([-1 1 -0 6]);grid
H=((-fc<=f)&(f<=fc));
subplot(3,2,4)
plot(f,H);
axis([-1 1 -0 2])
title('H(f)') ;
xlabel('fréquence f') ;
ylabel('Amplitude') ;
Y=H.*X;
subplot(3,2,6)
plot(f,abs(Y));
axis([-1 1 -0 6])
title('Y(f)') ;
xlabel('fréquence f') ;
ylabel('Amplitude') ;
y=ifft(Y*Fe);
subplot(3,2,5)
plot(t,abs(y));
axis([-5 5 -0 1.5])
title('TFinv[Y(f)]') ;
xlabel('temps t') ;
ylabel('Amplitude') ;
On remarque qu’après filtrage dans le domaine fréquentiel, une partie de
l’information (du signal) est perdue, c’est la raison pour laquelle on a pas
retrouvé le signal de départ.
7/ On cherche à observer l’effet de la valeur de la fréquence de coupure fc sur le
signal desortie du filtre. Pour cela on tracera y(t) pour des valeurs croissantes de
la fréquence de coupure : 2/T, 1Hz,5Hz, 15Hz, 50Hz.
Programme en Matlab :

T=5;
Te=40/40
00;
Fe=1/Te;
t=-20:Te:20;

x=(((-T/2)<=t)&(t<=(T/2)));
%transformée de Fourier
f=linspace(-Fe/2, Fe/2,length(t));
%Xf=fftshift(fft(x)*Te) ;
fc=[2/T,1,5,15,50]; %La fréquence de coupure prendrarespectivement les valeurs 2/T,
1Hz,5Hz, 15Hz, 50Hz
figure(6)
for k=1:5 %Boucle nous permettant de calculer et tracer y(t)
en fonction de fc
Hf=((-fc(k)<=f)&(f<=fc(k))); Yf=Xf.*Hf ;
Xf=fftshift(fft(x)*Te) ;
yt=abs(ifft(Yf)/Te); subplot(5,1,k) ; plot(t,yt); grid
axis([-10 10 -0.05 1.5])
if (k==1)
title('Représentation du signal d''entrée x(t) après un filtrage passe-bas idéalh(t) : y(t) =h(t) *
x(t)')
end
xlabel('Temps t')
ylabel('Amplitude') %|=> définition des axes
switch k %|
case 1, legend('fc = 2/T Hz') %|
case 2, legend('fc = 1 Hz') %|
case 3, legend('fc = 5 Hz') %|=> Affichage de la légende en fonction de k
case 4, legend('fc = 15 Hz') %| en fonction de fc)
case 5, legend('fc = 50 Hz')
end
end
On remarque que, plus la fréquence de coupure fc est grande, plus nous nous
retrouvons plus proche du signal de départ, ce qui est logique, car plus la
fréquencede coupure est grande plus nous gardons une grande partie de
l’information (du signal), autrement dit, plus la porte est grande, moins on rejette
de l’information et plus nous nous rapprochant du signal d’origine.
Conclusion :

On a bien trouvé que les spectres obtenus par Matlab correspondent à ceux
obtenus théoriquement. De plus on a constaté que le résultat d’un filtrage de
signal est le produit d’une convolution temporelle et une multiplication
fréquentielle. L’analyse spectrale est une méthode très importante dans la
compréhension et l'étude des signaux, puisqu’ elle offre plusieurs
techniques pour décrire ces signaux dans le domaine fréquentiel.
TP3: Convolution ET Corrélation

Objectif de TP :
Dans ce TP, on se propose d'aborder les notions de corrélation et de convolution
afin de bien les appréhender et les différencier, et illustrer le théorème de
Plancherel. Le but aussi est de connaitre l’utilité de la fonction d’intercorrélation
dans la détection d’un signal utile noyé dans du bruit.

Convolution et Corrélation:
Soit le signal x( t )= rect ( t )
1- Le produit de convolution z(t )= x( t )*x( t )
Script :

la courbe :
1-2 Calculer l’intercorrélation Cxx du signal x(t) :
Script :

la courbe :
Interprétation
On remarque que la convolution de deux signaux rectangulaires identiques et
intercorrélation sont les mêmes.
3- En utilisant le programme du produit de convolution ci-dessus, écrire un
programme Matlab qui calcule et trace l’inter-corrélation (commande xcorr) de
deux signaux rectangulaires, un de largeur 20s et d’amplitude 2 v et l’autre de
largeur 40s et d’amplitude 3v. Vérifier théoriquement le résultat obtenu :
Script :
la courbe :

4- Changer le programme pour qu’il permet de donner l’autocorrélation d’un signal


rectangulaire de largeur 40s (commence à -31 et se termine à 10) et d’amplitude
2v :
Script :
la courbe :

Les résultats théoriques et pratiques sont presque identiques, il est normal de


trouver des différences entre les deux, cela dû au fait que : théoriquement on
travaille sur des portes rectangulaires idéales ce qui n’est pas le cas en pratique.

5- A l’aide des fonctions xcorr et conv de Matlab, tracer sur le même graphique le
produit de convolution z(t) = x(t) x(t) et la fonction d’intercorrélation Cxx.
Retrouve t'on bien les résultats théoriques?
Script :
La courbe:

Théorème de Plancherel:

Rappeler la transformée de Fourier de la fonction T rect ( t ) :

Vous aimerez peut-être aussi