Vous êtes sur la page 1sur 27

FSB 2020-2021

Fascicules de Travaux
Pratiques
______________________________________________________________________________

Thème : Traitement du Signal

Niveaux : LF-EEA2
_______________________________________________________

TP1: Initiation à Matlab


Préparé par : Salem GAHGOUH

TP2 : Analyse spectrale des signaux continus


Mis à jour par : Salem GAHGOUH

TP3 : Convolution et corrélation des signaux Continus


Préparé par : Salem GAHGOUH

TP4 : Les systèmes linéaires invariants à temps continus


Préparé par : Salem GAHGOUH

-1-
FSB 2020-2021

FACULTE DES SCIENCES DE Bizerte


Département de Physique

TP1 : INTRODUCTION À MATLAB

ESPACE DE TRAVAIL DANS MATLAB


Matlab est un outil très efficace largement utilisé pour le calcul numérique et la visualisation
graphique. C'est un logiciel interactif qui peut effectuer des calculs numériques complexes et qui
est particulièrement utile dans le domaine de l'ingénierie. Il convient aux systèmes à grande
échelle et convient aux ordinateurs personnels équipés de coprocesseurs mathématiques, qui
disposent d'une puissance de calcul puissante.
Notez que MATLAB est un logiciel auto-documenté ; des informations sur une commande
donnée peuvent être obtenues à l'écran en tapant help suivi du nom de la commande.
Dans Matlab, les variables et les scalaires sont traités comme des matrices de "n" colonnes par
"m" lignes. Par exemple, un scalaire est une matrice 1 x 1. Lors de l'exécution, Matlab affiche
plusieurs fenêtres à l'écran. Les trois principaux types de fenêtres sont:
• "Command window", où toutes les commandes sont entrées

-2-
FSB 2020-2021

•"Figure Windows", dans lesquelles des graphiques et des figures sont dessinés

•"Edit Windows", où l'utilisateur peut créer ou modifier des programmes Matlab ("M-files")

-3-
FSB 2020-2021

•Fenêtre de Commande
Une fois Matlab disparu, une fenêtre appelée "Command Window" apparaîtra à l'écran.
L'utilisateur peut entrer plusieurs commandes ou équations mathématiques après le symbole ">>"
qui apparaît sur le côté gauche de la fenêtre. Pour effectuer une action, appuyez toujours sur la
touche Entrée de votre clavier. Aussi, l'opération doit se terminer par un point-virgule ";", sinon,
toutes les étapes du calcul sont affichées à l'écran.
•"Edit Window"
Au lieu de taper des commandes directement dans la fenêtre de commande seule, un
fichier appelé "m-file" peut être créé qui contient toutes les fonctions et commandes nécessaires
et peut être exécuté rapidement en tapant le nom du fichier dans la fenêtre de commande. Ces
fichiers sont appelés "fichiers de script" et se terminent par une extension ".m". La fenêtre
d'édition est utilisée pour créer ou modifier des fichiers m. Pour créer un nouveau fichier, allez
dans le menu de sélection : "Fichier/Nouveau/M-fichier"
Pour ouvrir un fichier déjà créé, allez à: "File/Open" et choisissez le nom du fichier en question.

 Matrices et vecteurs

Le logiciel MATLAB est conçu autour d'opérations sur des matrices et des vecteurs (un vecteur
de longueur N est une matrice de dimension 1 par N, c'est-à-dire avec une ligne et N colonnes).
Une matrice est générée en écrivant ses éléments entre crochets, chaque ligne étant séparée par
des points-virgules. Par exemple, pour générer la matrice :

 1 2 3
 
A=  4 5 6 
7 8 9
 
On compose :

A= [1 2 3 ; 4 5 6 ; 7 8 9] ;

-4-
FSB 2020-2021

Pour générer un vecteur ligne : u=[1 2 3] , on compose u= [1 2 3], et pour génèrer le

4
vecteur colonne v=  5  , on compose v = [4 ;5 ;6]
 
 6 

On obtiendra la transposée et le déterminant de la matrice A respectivement par les commandes


B=A’ et C=det(A).

L’opérateur «:»

C’est un outil puissant de MATLAB:


>> x=1 :10 % création d’un vecteur ligne formé de 10 entiers
x =
1 2 3 4 5 6 7 8 9 10
>> x=10:-1:1 % à rebours
x =
10 9 8 7 6 5 4 3 2 1
>> x=0:0.1:0.5 % un incrément de 0.1 plutôt que 1
x =
0 0.1000 0.2000 0.3000 0.4000 0.5000

On peut utiliser l’opérateur «:» pour extraire plusieurs composantes d’un vecteur ou d’une
matrice:
>> d=x(2:4) % on va chercher les composantes 2, 3 et 4 du vecteur
x
d =
0.1000 0.2000 0.3000
>> B=A(2:3,2:3) % soutirons une matrice 2x2 de la matrice A
définie plus haut
B =
5 6
8 9

-5-
FSB 2020-2021

>> e=A(2,:) % ou si on veut extraire la deuxième ligne de A


e =
4 5 6

Il existe un certain nombre de matrices prédéfinies dans MATLAB. Les plus courantes sont:
eye(n) la matrice identité n × n
>> eye(3)
ans =

1 0 0
0 1 0
0 0 1

ones(m,n) la matrice m × n dont tous les éléments valent 1


>> ones(2,3)
ans =

1 1 1
1 1 1

zeros(m,n) la matrice m × n dont tous les éléments valent 0


>> zeros(2,4)
ans =

0 0 0 0
0 0 0 0

rand(m,n) une matrice m × n dont les éléments sont aléatoirement générés


>> rand(4,2)
ans =

-6-
FSB 2020-2021

0.9501 0.8913
0.2311 0.7621
0.6068 0.4565
0.4860 0.0185

Pour former un vecteur contenant des 1 et des 0 en composant


>> P=[ones(1,5) zeros(1,3)]

P =

1 1 1 1 1 0 0 0

Si m=n, il suffit de spécifier une seule valeur de dimension : ones(n) est une matrice carrée n × n
dont les éléments sont tous des 1.

Remarque : Les résultats de tous les calculs sont affichés à l'écran, l'ajout d'un point-virgule à la
fin de la commande annule l'affichage automatique des résultats. Pour afficher une valeur à
l'écran, il suffit de saisir son nom.
Affichage graphique

Forme : plot(X,Y), où X et Y sont des vecteurs de même longueur. Cette commande dessine sur
l'écran Y en fonction de X. Par défaut, les points seront connectés entre eux ; cependant, vous
pouvez choisir de n'afficher que les points : plot(X,Y,'o') (d'autres caractères fonctionneront
également, par exemple (´x´, ´.´, ´*´ et ´ +´). Si X est omis, les éléments de Y seront dessinés
selon leur rang dans le vecteur.
Plusieurs courbes peuvent être affichées sur le même graphique comme suit :
plot(X1,Y1,X2,Y2,X3,Y3).
Pour afficher le titre et identifier les axes, utilisez les commandes suivantes :
« title(‘Ceci est le titre affiché’) », « xlabel(’identification
de l’’axe x’) » et « ylabel(’axe y’)». La commande "grid" dessine des lignes

-7-
FSB 2020-2021

de référence sur le graphique. La commande "axe" permet de définir les bornes de l'abscisse et de
l'ordonnée du graphe.
Exemple :
>> x=0:0.1:2*pi; % L’ordonnée
>> plot(x,sin(x),’b-o’,x,cos(x),’m--+’); % Le graphe de sinus et
de cosinus
>> axis([0 2*pi -1.1 1.1]); % Définition des axes
>> title(’Le titre du graphique’);
>> xlabel(’L’axe des x’);
>> ylabel(’L’axe des y’);
>> legend(’sinus’,’cosinus’);

Ces commandes donnent comme résultat:

On peut aussi tracer ce graphique en utilisant les commandes:


>> clf reset % on efface et réinitialise l’environ graphique
>> plot(x,sin(x),’b-o’); % un premier graphique
>> hold on
>> plot(x,cos(x),’m--+’); % on superpose un deuxième graphique

La commande hold empêche le premier graphique d'être écrasé par le second.


Pour insérer plusieurs graphiques dans une même fenêtre, il est nécessaire d'utiliser la fonction
"subplot".
Exemple :

-8-
FSB 2020-2021

Si on compose :
clear
clc
x =0:0.1:10;
y1 =sin(x);
y2=cos(x);
y3=sqrt(x);%racine de x
subplot(311)% subdivise l’écran en 3 lignes et une colonne, dans
la première
plot(x,y1);grid % on trace y1
subplot(312);% dans la deuxième colonne on
plot(x,y2);grid % trace y2
subplot(313) % dans la troisième colonne on
plot(x,y3);grid % trace y3
On obtiendra comme résultat :

Obtenir de l'aide dans Matlab


Il existe plusieurs façons d'obtenir de l'aide dans Matlab. • La première option consiste à taper
"help" dans la fenêtre de commande, suivi du nom de la fonction que vous recherchez.
Exemple:

-9-
FSB 2020-2021

Tapez:
>>help cos

Ceci décrit la fonction "cos" pour vous. Si vous ne connaissez pas les noms exacts des fonctions
utilisées par Matlab, vous devrez chercher de l'aide ailleurs.
•• La deuxième option consiste à entrer "helpwin" dans la fenêtre de commande. Cela vous
montrera toutes les bibliothèques Matlab, y compris ce que fait chaque bibliothèque.
Exemple:

Tapez:
>>helpwin
Ensuite, choisissez la section "signal processing toolbox"

-10-
FSB 2020-2021

Ceci vous affichera toutes les fonctions dans cette catégorie qui sont disponibles:

-11-
FSB 2020-2021

-12-
FSB 2020-2021

Une fois que vous avez trouvé le nom de la fonction qui vous intéresse, vous pouvez cliquer
dessus pour plus d'informations. Par exemple, cliquez sur "abs":

Cela vous expliquera comment utiliser la fonction "abs" et vous donnera des fonctions similaires
ou de la même catégorie.
Vous trouverez ci-dessous une courte liste d'instructions de laboratoire utiles accompagnées de
brèves descriptions. Pour savoir comment utiliser ces fonctions, consultez l'aide de MATLAB,
par exemple, tapez "help (nom de la commande)".
Commandes générales

Clear Efface les variables en mémoire


who Affiche le nom des variables
whos Affiche le type le nom des variables et leurs dimensions

Convolution et corrélation

-13-
FSB 2020-2021

Conv Réalise la convolution de deux signaux


xcorr Réalise l’inter corrélation de deux signaux, ou l'auto corrélation d'un seul signal

-14-
FSB 2020-2021

FACULTE DES SCIENCES DE Bizerte


Département de Physique

TP de Traitement Analogique du signal


Convolution et corrélations des signaux continus

Introduction
Le but de cette session est d'étudier les résultats de corrélation et de convolution de certains

signaux analogiques. Le TP est structuré comme suit :

1. Le produit de convolutions (Rappels et simulations de quelques programmes).

2. L’inter et l’autocorrélation des signaux analogiques (Rappels et Réalisation de quelques

programmes.

Convolutions

1. Rappel : Le produit de convolution de deux signaux à énergie finie

a. Définition
On appelle produit de convolution de deux signaux à énergie finie x(t) et y(t),
l’expression
+∞
𝑥(𝑡) ∗ 𝑦(𝑡) = ∫ 𝑥(𝜏)𝑦(𝑡 − 𝜏)𝑑𝜏
−∞

b. Propriétés
●Commutativité
𝑥(𝑡) ∗ 𝑦(𝑡) = 𝑦(𝑡) ∗ 𝑥(𝑡)
●Associativité
𝑥(𝑡) ∗ 𝑦(𝑡) ∗ 𝑧(𝑡) = 𝑥(𝑡) ∗ (𝑦(𝑡) ∗ 𝑧(𝑡)) = (𝑥(𝑡) ∗ 𝑦(𝑡)) ∗ 𝑧(𝑡)

●Distributivité par rapport à l’addition

-15-
FSB 2020-2021

𝑥(𝑡) ∗ (𝑦(𝑡) + 𝑧(𝑡)) = 𝑥(𝑡) ∗ 𝑦(𝑡) + 𝑥(𝑡) ∗ 𝑧(𝑡)


●Element neutre du produit de convoltion : impulsion de Dirac

𝑥(𝑡) ∗ 𝛿(𝑡) = 𝛿(𝑡) ∗ 𝑥(𝑡) = 𝑥(𝑡)

2. Travail demandé
Partie I
En utilisant les commandes zeros et ones, visualiser sous matlab les signaux suivants :
(sur un axe de temps allant de -50s à 50s)
● Un signal fenetre x(t) centré d’amplitude 1 et de largeur 20s
●Un signal fenetre y(t) centré d’amplitude 3 et de largeur 20s
● Un signal fenetre z(t) centré d’amplitude 4 et de largeur 20s
● Un signal fenetre s(t) centré d’amplitude 1 et de largeur 40s
● Le signal echelon unitaire u(t)
● L’implusion de Dirac d(t)
● Le signal p(t) donné par :𝑝(𝑡) = ∑𝑛=3
𝑛=−3 𝛿(𝑡 − 𝑛𝑇) avec T=40s

Partie II
Visualiser maintenant en executant la commande conv:

● Le produit de convolution de x(t) avec lui-même ( Afficher sur la meme figure

avec x(t))

● Le produit de convolution de y(t) et z(t) ( Afficher sur la meme figure avec y(t)

et z(t))

● Le produit de convolution de x(t) et s(t) (Afficher sur la meme figure avec x(t) et

s(t))

● Le produit de convolution de x(t) avec d(t). Que remarquez vous ?

● visualiser la figure suivante :

-16-
FSB 2020-2021

signal fenetre de largeur 20s


1

0.5

0
-50 -40 -30 -20 -10 0 10 20 30 40 50

20

10

0
-100 -80 -60 -40 -20 0 20 40 60 80 100

20

10

0
-250 -200 -150 -100 -50 0 50 100 150 200 250

La correlation

1. Rappel : L’auto et l’inter corrélation entre deux signaux discrets

La corrélation fait une comparaison entre un signal x(t) et ses copies retardées.
+∞
𝑅𝑥𝑥 (𝜏) = ∫ 𝑥(𝑡)𝑥 ∗ (𝑡 + 𝜏)𝑑𝑡
−∞

Si x(t) est reelle alors Rxx est paire

2. Travail demandé

• Calculer et visualiser sous matlab Rxx en utilisant la commande xcorr

• Que peut-on dire de Rxx(0)

• Représenter l’inter corrélation de z et y

-17-
FSB 2020-2021

FACULTE DES SCIENCES DE TUNIS


Département de Physique

TP de Traitement Analogique du signal


Les systèmes linéaires invariants à temps continus: Réponses impulsionnelles,
indicielles et fréquentielles.

Introduction

-18-
FSB 2020-2021

-19-
FSB 2020-2021

DIAGRAMME DE BODE DE SYSTÈMES SIMPLES


Les diagrammes de Bode pour les systèmes simples peuvent être approximés en utilisant
uniquement des segments de ligne. Cette méthode est largement utilisée dans l'analyse des
systèmes. Nous donnons des graphiques asymptotiques de quelques filtres de base et leurs noms
dans ce tableau.
1
𝐺(𝑝) = 𝐾 (Gain statique) 𝐺(𝑝) = (intégrateur)
𝑝

1
𝐺(𝑝) = 𝑝 (Derivateur) 𝐺(𝑝) = 1+𝑇𝑝 (passe bas 1er order)

𝐺 (𝑝) = 1 + 𝑇𝑝 (passe haut 1er ordre) 1


𝐺(𝑝) =
1 − 𝑇𝑝

-20-
FSB 2020-2021

1
𝐺(𝑝) = 1 − 𝑇𝑝 𝐺(𝑝) = 2𝑧𝑝 (2eme ordre)
1+ 𝑤𝑛 +𝑝²/𝑤𝑛

DIAGRAMME DE BODE DE DEUX SYSTÈMES EN SÉRIE


Lorsque deux systèmes G1(p) et G2(p) sont en série, leurs fonctions de transfert se multiplient:
G(p) = G1 (p).G2 (p)
À la lumière des résultats de la section précédente, le rapport d'amplitude de G(p) est:

Par conséquent, sur le diagramme de Bode, le rapport d'amplitude et la phase de G (p) est la
somme des rapports d'amplitude et des phases de G1(p) et G2(p)

-21-
FSB 2020-2021

Outils nécessaires
Dans cette partie, on donne quelques commandes qui peuvent être utiles pour votre Tp
1
1. Pour la création de la fonction de transfert 𝐻(𝑝) = 𝑝²+2𝑝+1, taper :

num=1 ; coef numérateur


den=[1 2 1] coef dénominateur
sys1=tf(num,den) affiche la fonction de transfert
2. [i t]=impulse(sys1) donne la réponse impulsionnelle i du système avec le temps de
simulation t
3. [s t]=step(sys1) pour la réponse à un échelon avec le temps de simulation t ( appelé
réponse indicielle)
4. bode(sys1) pour donner le diagramme de bode
5. [Z,P,K]=zpkdata(sys1,’v’) pour le calcul des zéros, pôles et gain
6. Pour trouver la réponse d’une entrée quelconque, il faut commencer par définir la variable
temporelle :
t=0 :0.01 :10
e=sin(t) pour définir l’entrée
r=lsim(sys1,e,t)

Travail demandé

• On part d'un système simple du premier ordre H(p)=1/(p+1)


• Afficher la fonction de transfert de ce système sur matlab
• Calculer la réponse impulsionnelle i(t)
• Affichez la réponse impulsionnelle calculée par matlab et votre réponse
impulsionnelle sur la même courbe. Qu'avez-vous remarqué ?
• Calculer la réponse indicielle s(t)
• Afficher sur la même courbe la réponse indicielle calculée par matlab et votre réponse
indicielle. Que remarquez-vous ?
• Donner la réponse de ce système pour une entrée sinusoïdale e(t)=sin(t) avec
t=0 :0.01 :10 ;
• Afficher le diagramme de bode. Quel est le type de ce filtre ?

-22-
FSB 2020-2021

1
1. On considère maintenant le système 𝐻(𝑝) = 𝑝(1+𝑝)²

• Afficher sur matlab la fonction de transfert de ce système


• Calculer la réponse impulsionnelle i(t)
• Afficher sur la même courbe la réponse impulsionnelle calculée par matlab et votre
réponse impulsionnelle. Que remarquez-vous ?
• Monter que la réponse indicielle s(t) est 𝑠(𝑡) = (𝑡 − 2)(1 + exp(−𝑡))
Remarque : vous pouvez utiliser la commande [r,p,k]=residue(n,d) pour la
décomposition en élément simple de S(p)
• Afficher sur la même courbe la réponse indicielle calculée par matlab et votre réponse
indicielle. Que remarquez-vous ?
• Donner la réponse de ce système pour une entrée sinusoïdale e(t)=sin(t) avec
t=0 :0.01 :10 ;
• Afficher le diagramme de bode. Donner le type de ce filtre ?
• Calculer les pôles et les zéros. Est-ce que ce système est stable ?
2. Refaire les mêmes questions pour le système de fonction de transfert
1 + 5𝑝
𝐻(𝑝) =
(2𝑝 + 1)(1 + 10𝑝)

-23-
FSB 2020-2021

FACULTE DES SCIENCES DE Bizerte


Département de Physique

TP de Traitement Analogique du signal


Analyse spectrale des signaux continus

Rappels

1. Classification des signaux

Les signaux, qu'ils soient complexes ou réels, peuvent être classés selon les différents types
suivants :
1.1.Classification déterministes –aléatoires

Un signal déterministe est un signal dont la variation peut être contrôlée par un modèle
mathématique ou une séquence de données. En revanche, les signaux aléatoires
n'obéissent pas à cette propriété, mais sont caractérisés par leurs propriétés statistiques.
1.2.Classification énergétique
+∞
a. Signaux à énergie E finie :𝐸𝑥 = ∫−∞ |𝑥(𝑡)|²𝑑𝑡 et 𝑃𝑥 = 0
Ce premier type de signaux comprend les signaux apériodiques
b. Signaux à énergie infinie ou à puissance moyenne finie
𝑇
1 +2
𝑃𝑥 = lim 𝑇 ∫ 𝑇 |𝑥(𝑡)|²𝑑𝑡 et 𝐸𝑥 = ∞
𝑇→∞ −2

Cette catégorie comprend les signaux périodiques et les signaux aléatoires permanents.

2. Spectres des signaux continus périodiques (à puissance finie)


Un signal apériodique x(t) possède une transformée de Fourier X(f) telle que
+∞
𝑋(𝑓) = 𝑇. 𝐹(𝑥(𝑡)) = ∫ 𝑥(𝑡). exp(−𝑗2𝜋𝑓𝑡) 𝑑𝑡
−∞

3. Spectres des signaux continus périodiques (à puissance finie)

-24-
FSB 2020-2021

Un signal périodique x(t) de période T0 obéissant aux conditions de Dirichlet peut être
décomposable en série de Fourier selon une forme exponentielle ou une forme trigonométrique
donnée par
𝑎0
𝑥(𝑡) = + ∑[𝑎𝑛 cos⁡(2𝑛𝜋𝑓0 𝑡) + 𝑏𝑛 sin⁡(2𝑛𝜋𝑓0 𝑡)]
2
𝑛≥1
𝑎0
Où est la valeur moyenne du signal,
2
2 2
𝑎𝑛 = 𝑇 ∫𝑇 𝑥(𝑡)cos⁡(2𝑛𝜋𝑓0 𝑡)𝑑𝑡 et 𝑏𝑛 = 𝑇 ∫𝑇 𝑥(𝑡)sin(2𝑛𝜋𝑓0 𝑡)𝑑𝑡
0 0 0 0

Toutefois 𝐶𝑛 = 0.5√(𝑎𝑛2 + 𝑏𝑛2 )


En définitif, le spectre d’un signal périodique est discontinu et peut être exprimé par

𝑋(𝑓) = ∑ 𝐶𝑛 𝛿(𝑓 − 𝑛𝑓0 )

Travail demandé
A. Spectre d’un signal apériodique : signal fenêtre

On se propose d’étudier le spectre d’un signal continu du type fenêtre centré, d’amplitude 1 et de
largeur .

x(t)

-/2 /2
I) Méthode Spectrale
- A l’aide du logiciel Matlab, appeler le fichier Signal ;
- Choisir par le clavier le menu 4 : signal fenêtre
- Entrer les paramètres du signal à savoir :
 Largeur de la fenêtre : =0.2s
 Pas de calcul Ti=0.01s
 Nombre de points N=100.
1) Calculer la transformée de Fourrier du signal x(t)

-25-
FSB 2020-2021

2) Observer le spectre correspondant, en déduire la densité spectrale DS.


3) Que peut dire de l’énergie du signal fenêtre ? Donner sa valeur ?

II) Méthode Statistique


Reprendre ce qui précède en choisissant la méthode statistique
1) Calculer l’expression de la fonction d’auto- corrélation de x(t)
2) Observer l’allure de la fonction d’auto- corrélation, est ce qu’elle correspond à
l’expression trouvé ?
3) En déduire la valeur de l’énergie du signal. Comparer avec I.3

B. Spectre d’un signal périodique : signal rectangulaire

On considère un signal rectangulaire de largeur =4ms et de période T=20ms

x(t)

- A l’aide du logiciel Matlab, appeler le fichier Signal ;


- Choisir par le clavier le menu 3 : signal rectangulaire périodique
- Ne choisir à priori aucune fenêtre de troncature
- Entrer les paramètres du signal à savoir :
 fréquence : f=50Hz
 rapport cyclique = /T=50%
 Nombre de points N=100.

-26-
FSB 2020-2021

1) Déterminer puis visualiser le spectre des raies du signal


2) En déduire la densité spectrale de puissance.
3) Que peut-on dire de l’énergie et la puissance du signal ?
4) Calculer la valeur de la puissance moyenne. Comparer avec la valeur observée.
5) Calculer le taux de distorsion harmonique de ce signal.

- Refaire le même travail avec une fenêtre de troncature du type :


 Rectangulaire de largeur M=5 périodes
 Barlett
 Hamming
6) Déduire l’effet de troncature sur le domaine spectral
7) Choisir la fenêtre optimale en justifiant la réponse.

-27-

Vous aimerez peut-être aussi