Vous êtes sur la page 1sur 49

Université Sidi Mohamed Ben Abdallâh

Faculté poly-disciplinaire de Taza


Filière Science de la Matière Physique
Option Electronique

TRAVAUX PRATIQUES

TRAITEMENT NUMERIQUE DU
SIGNAL

REDIGE PAR : Pr MUSTAPHA ABARKAN

LICENCE ELECTRONIQUE (Edition 2018)


Traitement numérique du signal Licence Electronique

AVANT PROPOS.

L'objectif de ce document des travaux pratiques est de mettre en œuvre

quelques propriétés et astuces du traitement numérique du signal vues dans le

cours. Ces travaux sont réalisés par le logiciel MATLAB de la compagnie Mathworks.

L'idée est de vous exposer les bases de cet outil de travail et de vous habiliter à

résoudre des problèmes de traitement du signal.

Le présent document se divise en deux grandes parties. La première est

composée de trois travaux pratiques. Après quelques éléments de base de MATLAB,

vous verrez comment utiliser les principales opérations usuelles sur les scalaires, les

vecteurs et les matrices avec MATLAB ainsi que certaines opérations mathématiques.

Ensuite, vous passez à un autre espace de ce logiciel à savoir la programmation afin

d’illustrer quelques exemples concrets du traitement du signal.

La seconde partie est dédiée aux applications par Simulink qui est

un environnement de programmation graphique, permettant de concevoir et de

développer des applications, en particulier orientées traitement du signal. Après des

explications sur son fonctionnement de base, vous réalisez plusieurs schémas de

simulation utiles pour le traitement de signal à savoir les filtres, la modulation et la

démodulation et les opérations mathématiques (FFT, TFD…).

TP de traitement du signal 2 Réalisé par : Mustapha ABARKAN


Traitement numérique du signal Licence Electronique

SOMMAIRE

AVANT PROPOS………………………………………………………………….………..…………02

TP1. INTRODUCTION A MATLAB (2 séances) ………………………………..……..………04

TP2. GENERATION DE SIGNAUX SOUS MATLAB (1 séance) ……………..……………13

TP3. TRANSFORMEE DE FOURIER (1 séance) ……………………………………………18

TP4. INTRODUCTION AU SIMULINK (1 séance) …………………………………..………22

TP5. ANALYSE DE SIGNAUX NUMERIQUES PAR SIMULINK (1 séance)…………….30

TP6. MODULATION ET DEMODULATION D’UN SIGNAL PAR (1 séance)……….……34

TP7. MATLAB-SIMULINK-SPTOOL (2 séances) ………………………………..……………38

COMMENT REDIGER UN COMPTE RENDU ………………………………..……………….42

ANNEXES : RESUME DES COMMANDES MATLAB………….……………..……………44

TP de traitement du signal 3 Réalisé par : Mustapha ABARKAN


Traitement numérique du signal Licence Electronique

TP INTRODUCTION A MATLAB 01
(2 séances)

1. INTRODUCTION :
Résumé. Matlab est un logiciel de calcul numérique, utilisé dans de nombreux
domaines d’application. Il est base sur le calcul matriciel. Matlab est d’ailleurs un
raccourci pour “Matrix Laboratory”. Le but de ce TP est d’aider les débutants en
Matlab, en introduisant les commandes les plus courantes.

2. L’ACCES :
Pour lancer l’exécution de Matlab, tapez dans une fenêtre xterm: matlab6.5. L’interface
graphique de Matlab apparaît alors. A droite, la partie où on entre les commandes. Le
caractère signifie que Matlab attend une instruction. A gauche, en haut, les variables
d’environnement, en bas, les dernières commandes tapées. Regardez le contenu des menus
déroulants.
Exercice 1.

Exécutez l’introduction de Matlab, chargez l’aide. Bref, faites un petit tour du propriétaire
selon le tableau ci-dessous...

intro lance une introduction à Matlab


help produit une liste de toutes les commandes par thèmes
demo démonstration donnant une représentation des fonctionnalités de
bases
info information sur la boite a outils disponibles
3. L’AIDE DANS MATLAB :
Mieux vaut apprendre à se repérer tout seul que de demander en permanence à son voisin
comment faire. Ne serait-ce qu’au cas où il faudrait utiliser dans l’examen une fonction
dont on ne se souvient que vaguement quelle est sa syntaxe...

helpwin ouvre une fenêtre contenant la liste des


commandes
Matlab ainsi que leurs documentations
help donne la liste de toutes les commandes par thèmes
help nom décrit la fonction nom.m
lookf or nom recherche une instruction a partir du mot clé nom
Exercice 2.
Trouvez la fonction qui donne les valeurs propres d’une matrice. Tapez help de cette fonction.

4. COMMANDES GENERALES :
4.1. Gestion des fichiers :
Vous pouvez utiliser la petite fenêtre en haut à droite, ou à défaut :

pwd affiche le nom du répertoire courant pour Matlab


cd rep change le répertoire courant pour Matlab qui devient rep
dirfournit le catalogue d’un répertoire
delete efface des fichiers ou des objects graphiques
4.2. Calculs élémentaires :
Dans la partie commandes de l’interface,
» 5+8

TP de traitement du signal 4 Réalisé par : Mustapha ABARKAN


Traitement numérique du signal Licence Electronique

Résultat: »13
Pour conserver le résultat, il faut l’assigner dans un objet:
» a = 5+8
»a
Pour ne pas faire afficher le résultat, mettez; aàla fin de la commande:
» a=5+8;

4.3. Constantes prédéfinies :

pi 3. 1415...
eps 2.2204e-016
Inf nombre infini
NaN n’est pas un nombre; exprime parfois une indétermination

4.4. Historique :
Matlab conserve l’historique des commandes. Il est donc possible de récupérer des
instructions déjà saisies (et ensuite de les modifier dans le but de les réutiliser):

, , , , permet de se déplacer dans les lignes de


commandes tapées dans la fenêtre de commandes

4.5. Variables d’environnement :


Matlab garde en mémoire les variables qui ont été créées. On les voit en haut, à gauche,
lorsque Matlab dispose d’une interface graphique. Sinon, on peut les afficher et les effacer
par la ligne de commande:
who donne la liste des variables présentes dans l’espace de travail
whos donne la liste des variables présentes dans l’espace de travail
ainsi que leurs propriétés
what donne la liste des fichiers .m et .mat présents dans le
répertoire courant

clear var1… var n efface les variables van1,. . . van de l’espace de travail
clear efface toutes les variables crées dans l’espace de travail

Exercice 3.
(1) Tapez la commande a =1 :7;. Tapez les commandes a, who et whos.
(2) Utilisez  pour modifier a: a=1 :2;.
(3) Tapez la commande b=a+2;. Réexécutez les commandes who et whos en utilisant .
Tapez clear et b.

5. LES TYPES De DONNEES :


Matlab traite un seul type d’objet: les matrices ! Les scalaires sont des matrices 1x
1, les vecteurs lignes des matrices 1 x n, les vecteurs colonnes des matrices n x 1.
5.1. Construction explicite :
On peut former des vecteurs et des matrices en entrant leurs coefficients.

• scalaires
» s=30
• vecteurs numériques
» x = [1 ;2; 3] (les ; séparent les éléments d’un vecteur colonne)
» x = [1 ,2,3] (les , ou les blancs séparent les éléments d’un vecteur ligne)
» x’
» y = [x,x,x]
» z = [x x x]
• matrices

TP de traitement du signal 5 Réalisé par : Mustapha ABARKAN


Traitement numérique du signal Licence Electronique

» M=[11 12 13 14;21 22 23 24; 31 32 33 34; 41 42 43 44]


(où les ; séparent les lignes d’une matrice)
Construction à partir de plusieurs vecteurs de même longueur:
» y=[11;22;33];
» mat1=[x’ y]

• vecteurs de chaîne de caractères


La chaîne de caractères est un vecteur ligne. Pour le créer, on entre les caractères en
commençant et en terminant par ’ (quote).
» ch= ’matlab’

• les nombres complexes


Dans Matlab, un nombre complexe est de la forme: z = a + ib.
» c=2+i

• les polynômes
Matlab représente un polynôme sous forme d’un vecteur ligne contenant les coefficients
classes dans l’ordre des puissances décroissances. Par exemple le polynôme P d’expression P(x)
=x2 − 6x + 9 est représenté par
» P=[1 -6 9]

Exercice 4.
Entrez les différents vecteurs et matrices et donnez la longueur et la taille de
chacun (Utilisez help pour trouver les fonctions qui donnent longueur et taille).
5.2. Création rapide :
Certaines commandes permettent de créer plus rapidement des vecteurs précis:
» I1=1:10 (Un vecteur contenant les entiers de 1 a 10)
» I2=1:1:10
» I3=10:-1:1
» I4=1:0.3:pi
» I1(2)=l3(3)
» I4(3:5)=[1,2,3]
» I4(3:5)=[]
» I5=linspace(1,5,5)
» help linspace
» who
» whos
» cle ar I1 I2 I3 I5
» who
» clc (efface le contenu de la fenêtre de commande)
» clear

NB: Une ligne de commande commençant par le caractère % n’est pas exécutée par Matlab.
Cela permet d’insérer des lignes de commentaires. Et il faut commenter ses programmes, ...
surtout ceux de l’examen!

Exercice 5.

Construire:
(1) une suite partant de -8 et allant à -5 par pas de 0.25.
(2) une suite décroissante d’entiers de 15 à 3.
(3) (3) une suite de longueur 100 de - à .

5.3. Opérations vectorielles :


Les tableaux suivants résument certaines commandes couramment utilisées.
VECTEURS

TP de traitement du signal 6 Réalisé par : Mustapha ABARKAN


Traitement numérique du signal Licence Electronique

n:m nombres de n à m par pas de 1


n :p :m nombres de n à m par pas de p
linspace(n,m,p) p nombres de n à m
lenght(x) longueur de x
x (i) i-ème coordonnée de x
x(i1:i2) coordonnées i1 à i2 de x
x(i1 :i2)=[] supprimer les coordonnées i1 à i2 de x
[x ,y] concaténer les vecteurs x et y
x*y' produit scalaire des vecteurs lignes x et y
x' *y produit scalaire des vecteurs colonnes x et y

MATRICES
size(A) nombre de lignes et de colonnes de A
A(i,j) coefficient d’ordre i,j de A
A(i1:i2,:) lignes i1 à i2 de A
A(i1:i2,:) =[] supprimer les lignes i1 à i2 de A
A(:,j1:j2) colonnes j1 à j2 de A
A (:,j 1 :j2) = [] supprimer les colonnes j1 à j2 de A
A (:) concaténer les vecteurs colonnes de A
diag(A) coefficients diagonaux de A

MATRICES PARTICULIERES
zeros(m,n) matrice nulle de taille m,n
ones(m,n) matrice de taille m,n dont tous les coefficients valent 1
eye(n) matrice identité de taille n
diag(x) matrice diagonale dont la diagonale est le vecteur x
magic(n) carré magique de taille n
rand(m,n) matrice de taille m,n à coefficients i.i.d. de loi uniforme sur [0,1]
randn(m,n) matrice de taille m,n a coefficients i.i.d. de loi normale N(0,1)

Exercice 6.
[Extraction de composantes.]
Entrez la matrice
» A=[1 23; 2 3 1; 3 1 2]
Quels sont les résultats des commandes suivantes?
» A([2 3],[1 3])
» A([2 3],1:2)
» A([2 3],:)
» A([2 3],end)
» A(:)
Exercice 7.
Créez des matrices particulières.
Exemple de création d’une matrice par blocs:
» C=[A, zeros(3,2); zeros(2,3), eye(2)]
Répliquez le vecteur colonne [1; 3; 6] pour en faire une matrice 3 x 19, de deux manières: en
utilisant ones et en effectuant une multiplication matricielle, puis en trouvant la commande
ad hoc de réplication.

Exercice 8.
Ecrire la matrice carrée M d’ordre 12 contenant les entiers de 1 à 144 ranges par ligne.
Extraire de cette matrice les matrices suivantes:
- la sous-matrice formée par les coefficients aij pour i = 1,... ,6 et j = 7,... 12;
- celles des coefficients aij pour (i,j) {1,2,5,6,9,10}2;
- celle des coefficients aij pour i + j pair.

TP de traitement du signal 7 Réalisé par : Mustapha ABARKAN


Traitement numérique du signal Licence Electronique

6. LES OPERATIONS MATRICIELLES ET LES FONCTIONS :


6.1. Les opérations matricielles :

A’ transposée de A
rank(A) rang deA
inv(A) inverse de A
expm(A) exponentielle de A
det (A) déterminant de A
trace(A) trace de A
poly(A) polynôme caractéristique de A
eig(A) valeurs propres de A
[U, D] =eig (A) vecteurs propres et valeurs propres de A
+ - addition, soustraction
* multiplication, puissance (matricielles)
.* . multiplication, puissance terme à terme
A\b solution de Ax = b
b/A solution de xA = b
./ division terme à terme

Exercice 9.
Essayez des fonctions sur la matrice A. Par exemple, quels sont ses valeurs et vecteurs
propres? Puis, construisez une matrice C de même taille que A. Essayez A+C, A*C, A.*C. Ensuite,
définissez la matrice B comme étant la matrice A à laquelle on a ajouté le vecteur colonne [1;
2; 3]. Déterminez son noyau. Y a-t-il une fonction prédéfinie dans Matlab qui détermine le
noyau d’une matrice? Le cas échéant, y a-t-il des différences entre les méthodes employées pour
le calcul du noyau?

Exercice 10.
Résolution d’un système sous-dimensionné:

(1) Ecrivez le système sous la forme matricielle Ax = b (où vous définissez A et b) et


calculez le rang de la matrice A.
(2) Définissez la matrice B comme étant la matrice A à laquelle on a ajouté le vecteur
colonne b.
(3) Calculez le rang de la matrice B. Conclusion?
(4) Définissez le vecteur c = [1; 1; 1] et déterminez l’image du vecteur c par la matrice A.
(5) Résolvez l’équation Ax = b.
NB: A\b est équivalent à inv (A)*b si A est inversible.
6.2. Les fonctions :
FONCTIONS ELEMENTAIRES

sqrt exp log


sin cos tan
asin acos atan
round floor ceil
abs angle conj

Certaines fonctions de Matlab s’appliquent à l’ensemble d’un vecteur. Lorsqu’on les


applique à des matrices, elles opèrent colonne par colonne.

Exercice 11.
Construire un vecteur quelconque et essayer les fonctions ci-dessus.
Le tableau suivant décrit le résultat de quelques unes de ces fonctions lorsqu’elles sont
appliquées à un vecteur x:

TP de traitement du signal 8 Réalisé par : Mustapha ABARKAN


Traitement numérique du signal Licence Electronique

FONCTIONS VECTORIELLES
max(x) maximum
min(x) minimum
sort(x) tri par ordre croissant
[y, I] = sort(x) retourne en plus les indices des éléments de x
find(x) retourne les indices non nuls de x
[y, I] = find(x) retourne des lignes (dans le vecteur I) et des colonnes
(dans le vecteur J) des éléments non nuls du x
sum(x) somme des éléments de x
cumsum(x) vecteur contenant la somme cumulée des éléments de x
prod(x) produit des éléments de x
cumprod(x) vecteur contenant le produit cumulé des éléments de x
diff (x) vecteur des differences entre deux éléments consécutifs de
x
mean(x) moyenne des éléments de x
median(x) médiane
std(x) écart type

Exemple 1.
Regardez l’effet des instructions suivantes.
» x=rand(1,5)
» mean(x)
» std(x)
» median(x)
» sort(x)
» A=rand(3)
» sort(A)
» [B, I]=sort(A)
» sort(A’)
» max(A)
» max(A’)
» max(max(A))
» sum(A)
» cumsum(A)
» prod(A)
» diff(A)
» D=A([1,2],1:3)
» sum(D,1)
» sum(D,2)

Exercice 12.
Soit X une matrice 2 x n contenant les coordonnées de n points du plan. Comment
faire pour obtenir une matrice où les points sont ordonnés par ordre croissant des abscisses?

Exercice 13.
Calculer 10!.

Exercice 14.
(1) Soit le vecteur de dimension 8 de composantes: 3.2, 4.8, 3.3, 3.2, 3.1, 4.2, 3.2, 3.3.
Entrez le vecteur y = (yi)i=1,...,8 correspondant.
(2) Construisez à l’aide des fonctions précédentes la suite des moyennes mobiles,

Extrayez y8. Donnez une fonction qui calcule directement y8 à partir de y.

TP de traitement du signal 9 Réalisé par : Mustapha ABARKAN


Traitement numérique du signal Licence Electronique

Exercice 15.
Tirez 20 nombres aléatoirement dans l’intervalle [0,1]. Quelle est la valeur minimale du
vecteur et la position du coefficient qui la réalise? Vérifiez.

7. OPERATIONS RELATIONNELS ET LOGIQUES :


Ils permettent de relier logiquement deux matrices.
Opérateurs r e l a ti o n n e l s <, <=, >=, == (égalité), '~ = (différent)
Operateurs logiques & (et), │(ou), ~ ou not (non)

NB: Attention de ne pas confondre = qui sert à affecter une valeur à une variable et == qui
sert à tester l’égalité.

Les opérateurs relationnels peuvent être utilisés avec des scalaires ou des matrices. Le
résultat d’évaluation d’une expression relationnelle est 1 (vrai) ou 0 (faux). Appliqués à une
matrice, ils rendent une matrice de même dimension, formée de 1 et de 0.
Exemple 2.
u=4
u==4
u<=12
Reprenez la matrice A= [1 2 3; 2 3 1; 3 1 2] en tapant A = [.
Ar=(A<=2)
[B,I]= find(A==1) (Retourne les coordonnées égales à 1, ainsi que leur position.)

Exercice 16.

Reprenons le vecteur y. Pour rappel, tapez y.


(1) Faites répondre Matlab à la question suivante: existe-t-il une coordonnée du
vecteur y inférieure à 3.3?
Exercice 17.
(1) Tirez 100 nombres aléatoirement (et uniformément) dans l’intervalle [0,1] et
groupez les dans un vecteur x = (xi)i=1,...,100.
(2) Prenez yi = 2 * xi pour tout i = 1... ,100.
(3) Prenez la partie entière de ces nombres (à l’aide de la fonction floor): zi = [yi].
Ceci définit un vecteur z. (Au passage, notez qu’il existe plusieurs fonctions parties
entières, avec des comportements différents, ceil par exemple...)
(4) Donnez la fréquence de 1 sur l’échantillon z. Pouvait-on s’attendre à ce résultat?
Réinitialisez l’espace de travail en tapant clear (effacement des variables d’environnement)
puis clc.

8. PROGRAMMATION SOUS MATLAB :


L'instruction for.
La syntaxe en est la suivante :
for variable = vecteur
instructions
end
Les colonnes du `vecteur' sont affectées l'une après l'autre à la variable `variable' et pour
chacune de ces valeurs, les `instructions' sont exécutées. Remarquez qu'il faut privilégier les
opérations vectorielles à l'utilisation de boucles.

Exemple 7.
Ces quelques lignes calculent n! pour n = 1 a 100. fact = zeros(1,100);
n=100;
fact(1)=1;
for k=2:n
fact(k)=fact(k-1)*k;

TP de traitement du signal 10 Réalisé par : Mustapha ABARKAN


Traitement numérique du signal Licence Electronique

end
Mais on peut aussi taper simplement : n=100; fact=cumprod(1:n); L'exécution du premier
programme prend significativement plus de temps que l'exécution du deuxième
programme. Pour le voir, et comparer l'efficacité des algorithmes, on peut utiliser tic (à
placer en début de programme) et toc (à placer en fin de programme) qui permettent de
compter le temps cpu écoulé.

Exercice 18.
Exécutez les deux programmes ci-dessus en utilisant les commandes tic, toc afin de
comparer leur temps d'exécution respectif.

L'instructions conditionnelles.
La manière la plus brute de procéder est d'utiliser un bloc if ... then ... else ... end. La
syntaxe en est la suivante :
if conditions
instructions
end
Les `instructions' ne sont exécutées que si les `conditions' sont vérifiées, plus précisément
si `conditions' a une valeur différente de 0. Une variante plus élaborée est :
if conditions
instructions (exécutées si les `conditions' sont vérifiées)
else
instructions (exécutées si les `conditions' ne sont pas vérifiées)
end

Ou encore (avec des emboîtements) :


if conditions1
instructions (exécutées si les `conditions1' sont vérifiées)
elseif conditions2
instructions (exécutées si les `conditions1' ne sont pas vérifiées
mais si les `conditions2' le sont)
else
instructions (exécutées si ni les `conditions1' ni les `conditions2' ne
sont vérifiées)
end

Exemple 8.
Le programme suivant simule le lancer d'une pièce.
p=0.5;
u=rand;
if u<p
disp('pile')
else
disp('face')
end

NB : Rappelons qu'une proposition logique (par exemple, (x>0 & x<10)) a pour valeur 1 si
elle est vraie et 0 sinon. Dans les calculs, on peut donc éviter d'utiliser l'instruction if en
introduisant des indicatrices d'ensembles.

L'instruction while.
Ce format de boucle permet de s'arrêter conditionnellement (et non plus à rang fixe,
comme dans une boucle for). La syntaxe en est la suivante :
while conditions
instructions
end
Les `instructions' sont exécutées tant que les `conditions' sont vérifiées.

TP de traitement du signal 11 Réalisé par : Mustapha ABARKAN


Traitement numérique du signal Licence Electronique

Exemple 9.
Soit f une fonction continue. La fonction suivante recherche par dichotomie une valeur
approchée à e près d'une solution de l'équation f(x) = 0 dans l'intervalle [a; b], lorsque f(a)
et f(b) sont de signes différents (ce qui forme une condition suffisante d'existence de ce
point d'annulation x).
function s=dicho(f,a,b,e)
% s=DICHO(f,a,b,e)
% f : chaine de caractères contenant le nom d'une fonction (définie à l'aide d'un fichier .m
de type function)
% a,b : bornes de l'intervalle de recherche( a<b )
% e : précision avec laquelle on veut la valeur approchée de la solution de f(x)=0
d=b-a;
ya=feval(f,a);
yb=feval(f,b);
if ya==0
s=a;
elseif yb==0
s=b;
elseif ya*yb<0
while (d>e)
x=(b+a)/2;
y=feval(f,x);
if y==0
s=y;
return
elseif y*ya<0
b=x;
yb=y;
else
a=x;
ya=y;
end
d=b-a;
end
s=x;
else error('la fonction ne change pas de signe')
end

TP de traitement du signal 12 Réalisé par : Mustapha ABARKAN


Traitement numérique du signal Licence Electronique

TP GENERATION DE SIGNAUX SOUS MATLAB 02


(1 séance)

1. INTRODUCTION :
Matlab permet de créer des signaux continus et discrets et d'en contrôler les
moindres détails. Ce tp donne l'essentiel à savoir ainsi que quelques clefs pour aller
plus loin.

2. SIGNAUX A TEMPS CONTINU :

2.1. Généralités sur la représentation des signaux :


Effectuer la séquence d'instruction suivante crée d'abord une figure puis place les
commentaires sur les deux axes et enfin une ligne de titre :
>> t=0:pi/100:pi;
>>x=sin(t);
>>plot(t,x);
>>xlabel('t = 0:2\pi');
>>ylabel('sinus de t');
>>title('sinusoïde','Fontsize',12);
La figure suivante, représentant un signal continu (analogique), apparaît dans une
nouvelle fenêtre :
sinusoïde
1

0.8

0.6

0.4

0.2
sinus de x

-0.2

-0.4

-0.6

-0.8

-1
0 1 2 3 4 5 6 7
x = 0:2

2.2. Style et couleurs des lignes :


Il est possible de choisir le style et la couleur des lignes avec la commande plot :
plot(x,y,'color_style_marker'). 'color_style_marker' est une chaîne de caractère comportant
jusqu'à quatre caractères :
• Couleur : 'c', 'm', 'y', 'r', 'g', 'b', 'w'
• Style de ligne : '-', '--', ':', '-.', 'none'
• Type de ligne : '+', 'o', '*', 'x', 's' (square), 'd' (diamond), etc…
La variable 'color_style_marker' peut par exemple prendre la valeur 'y-o' pour que le tracé
soit jaune et constitué de ronds reliés par un trait continu.
2.3. Superposer des courbes :
La fonction plot admet un nombre indéfini d'arguments et permet de superposer dans une
même figure plusieurs courbes.
Essayer par exemple : plot(t,x,t,x*2)
2.4. Variables complexes :
Si Z est un vecteur de nombre complexes la fonction plot(Z) est équivalente à
plot(real(Z),imag(Z)).

TP de traitement du signal 13 Réalisé par : Mustapha ABARKAN


Traitement numérique du signal Licence Electronique

2.5. Ajouter des courbes à une figure existante :


La commande hold on permet de conserver la figure courante : le tracé suivant ne se fait
pas dans une nouvelle fenêtre mais se superpose au tracé précédent (en adaptant
éventuellement les échelles).
2.6. Plusieurs courbes dans une même fenêtre:
La commande subplot permet de partitionner la fenêtre de la figure et de tracer plusieurs
courbes. Effectuer la séquence suivante :
» t=0:pi/100:pi*2;
» subplot(2,2,1);plot(t,sin(t);
» subplot(2,2,1);plot(t,sin(t));
» subplot(2,2,2);plot(t,cos(t));
» subplot(2,1,2);plot(t,cos(t).*cos(t));
La figure créée est reproduite ci-après :

1 1

0.5 0.5

0 0

-0.5 -0.5

-1 -1
0 2 4 6 8 0 2 4 6 8

0.8

0.6

0.4

0.2

0
0 1 2 3 4 5 6 7

Le premier subplot partitionne en deux lignes et deux colonnes et place le pointeur sur la
première case. Le second subplot partitionne de la même manière et place le pointeur sur
la deuxième case. Le troisième subplot partitionne en deux lignes et une seule colonne et
place le pointeur sur la deuxième case (la deuxième ligne).
2.7. Placer des titres et des commentaires :
Les commandes xlabel, ylabel, title, text permettent de commenter les axes t, x(t), de
placer un titre au graphique ou de placer un commentaire n'importe où sur le graphique.
2.8. Un peu plus sur les graphiques :
Il existe plusieurs possibilités pour représenter un ensemble de points (t(i),x(i)). Les plus
utilisées sont énumérées ci-dessous.
plot (t ,x, ’s’) trace d’une courbe ou d’un nuage de points
bar (t ,x, ’s’) trace sous forme d’un histogramme
stem(t ,x, ’s’) diagramme en bâtons
stairs (t ,x,) trace en escalier des valeurs discrètes
fplot représente des fonctions
hist trace des histogrammes

’s’ est un paramètre facultatif constitué d’une chaîne de caractères qui spécifie le type de tracé
(couleur, différents tracés en pointillés, symboles pour le tracé de points). Par défaut, le
tracé est continu. Tapez help plot pour avoir la liste des valeurs possibles pour ’s’.

TP de traitement du signal 14 Réalisé par : Mustapha ABARKAN


Traitement numérique du signal Licence Electronique

hold on les prochains traces se superposeront aux traces déjà effectués

hold off efface le contenu de la fenêtre graphique active


figure(n) affiche ou rend active la fenêtre graphique numéro n
close ferme la fenêtre graphique active
close a l l ferme toutes les fenêtres graphiques
subplot (n,m,p) partage la fenêtre graphique active en m × n espaces graphiques
et sélectionne le p-ième.

Exercice 1.
Soit f et g les fonctions définies sur l’intervalle [0,10] par:

Tracez ces deux fonctions (à l’aide de fplot) d’abord dans une même fenêtre graphique mais
sur des graphes différents, puis dans une même fenêtre graphique et sur le même graphe.

3. SIGNAUX NUMERIQUES :
Les fonctions réalisant les fonctions mathématiques couramment utilisées en traitement
du signal sont données par help elfun et help datafun.

3.1. Les constantes inhérentes à tout signal numérique :


Un signal numérique est défini par un nombre d'échantillons N relevés à une fréquence
d'échantillonnage Fe. Les signaux sont toujours captés de manière temporelle, mais on
s'intéresse souvent à leur allure fréquentielle.
Afin de rester cohérents avec les mesures, il est important de respecter les grandeurs
physiques impliquées dans le signal. Il faut donc définir les axes temporels et fréquentiels
relatifs au signal. La figure ci-dessous présente un signal numérique et les notations qui
s'y rapportent

Ainsi, les axes seront définis comme suit:


- L'axe temporel est un vecteur de N points espacés de 1/Fe Sous Matlab, la syntaxe est :
axe_temps = (1:N)/Fe;
- L'axe fréquentiel est un vecteur de N points compris entre 0 et Fe. La syntaxe est :
axe_freq = (0:N-1)*Fe/N;

3.2. Construction de signaux numériques :


Exercice 2.
Pour générer 128 échantillons d'une sinusoïde de fréquence F, on peut procéder de
la façon suivante:
1. Donner une valeur à la fréquence de la sinusoïde : F = 1300;
2. Choisir une fréquence d'échantillonnage : Fe = 8000;
3. Créer le vecteur des temps: t= (0:127)/Fe;
4. Enfin calculer les échantillons : x = cos(2*pi*t*F);

TP de traitement du signal 15 Réalisé par : Mustapha ABARKAN


Traitement numérique du signal Licence Electronique

5. Regarder le résultat : plot(x) ou plot(t,x).


Exercice 3.
- Additionner deux sinusoïdes
Si l'on veut un signal qui contient deux sinusoïdes, on peut générer les deux sinusoïdes
comme précédemment, puis les additionner:
1. Première sinusoïde : x1 = cos(2*pi*t*F1);
2. Deuxième sinusoïde : x2 = cos(2*pi*t*F2);
3. Somme:x=x1+x2;
Rappel : Attention, lorsqu'on additionne deux vecteurs comme ci_dessus, il faut
faire attention qu'ils aient la même dimension, et en particulier qu'ils soient tous
les deux lignes, ou colonnes.
Exercice 4.

Exemple particulier : Ajout d’un bruit


Le modèle de bruit le plus couramment rencontré dans les mesures est le bruit blanc
Gaussien. Il est réalisé par la commande randn, donnée dans l'aide du répertoire `elmat'',
help elmat.
- Génération d'un bruit.
» fe = 8000; % Fréquence d'échantillonnage
N = 8192; % Nombre de points de la séquence
% Axe des temps t = (1:N)/fe;
» sigma = 0.25; % variance du bruit
» moy = 0; % moyenne
» bruit = moy + sigma*randn(1,N);
» plot(bruit)

Changez les valeurs de fe et de N, commentez les résultats.


Changez les paramètres sigma et moy, commentez les résultats.
Exercice 5.

Génération d'un sinus auquel on ajoute du bruit.


% Génération d'un sinus et ajout d'un bruit blanc Gaussien
fe = 8000;
N = 8192;
t = (1:N)/fe;
f0 = 1200;
% Génération du sinus
sinus=sin(2*pi*f0*t);
% Génération du bruit
sigma = 0.25;
moy = 0;
bruit = moy + sigma*randn(1,N);
signal = sinus + bruit;
% Visualisation du sinus et du bruit
% Allure temporelle des signaux
figure(1) ; clf %crée ou sélectionne la figure 1 et l’efface
subplot(2,1,1) % sépare la figure en 2 graphiques et place dans le
premier cadre
plot(t,sinus, 'b'); hold on; plot(t,bruit,'r')

TP de traitement du signal 16 Réalisé par : Mustapha ABARKAN


Traitement numérique du signal Licence Electronique

title('Allure temporelle du sinus et du bruit');


xlabel('temps (sec) '); legend('sinus', 'bruit')
subplot(2,1,2) % place le tracé dans le deuxième graphique
plot (t, signal)
title('Allure temporelle du signal'); xlabel('temps (sec)')
Exercice 6.

- Multiplier 2 signaux
Si on veut multiplier un signal x par une fenêtre h, il suffit de taper:
Y =x.*h
en vérifiant que x et h ont bien la même longueur. ATTENTION! n'oubliez pas le point `.'
avant le `*' car le signe `*' effectue la multiplication matricielle, alors que `.*' effectue la
multiplication terme à terme.
Ici aussi, il faut faire attention que les deux vecteurs aient la même taille et soient tous les
deux lignes, ou tous les deux colonnes (exemple voir le paragraphe suivant).

Il est aussi fréquent d'avoir multiplié 2 signaux entre eux. C'est le cas par exemple
lorsqu'on veut réaliser un signal de modulation. L'exemple ci-dessous réalise la
modulation d'un sinus 50 Hz par un sinus 2000 Hz (la fréquence d'échantillonnage
reste la même).
% Génération d'un sinus de fréquence 50Hz modulé à 2000Hz
fe = 8000; % Fréquence d'échantillonnage
N = 8192; % Nombre de points de la séquence
% Axe des temps t = (1:N)/fe;
% Génération du sinus f0 = 50;
sinus = sin(2*pi*f0*t);
% Génération de la porteuse
fp = 2000;
% elle doit être de la même longueur que le signal % a priori, on ne connait
pas N.
t_porteuse = (1:length(sinus) ) /fe;
porteuse = cos (2*pi*fp*t_porteuse);
% on multiplie terme à terme les 2 signaux
signal = sinus. * porteuse; % les 2 vecteurs sont de même longueur

TP de traitement du signal 17 Réalisé par : Mustapha ABARKAN


Traitement numérique du signal Licence Electronique

TP TRANSFORMEE DE FOURIER 03
(1 séance)

1. Introduction :
A fin d'obtenir le spectre des signaux, on leur applique une transformée de Fourier,
qui fournit une approximation du spectre du signal. L'algorithme de FFT calcule la
Transformée de Fourier Discrète des signaux de manière rapide si les séquences de
signaux sont de longueurs une puissance de 2. Aussi on prendra soin de travailler sur des
signaux de longueurs des puissances de 2, c'est-à-dire 64, 128, 256,...,8192, ...

Les signaux sont générés et on désire observer les formes d'ondes et spectres de ces
signaux. Cela est possible via la commande plot qui permet de tracer un graphe du type
x=f(t). La syntaxe est alors plot(t,f(t)). C'est au niveau de la commande plot que se décide
la graduation des axes. Les principales commandes relatives aux graphiques sont données
dans help graph2d. Notamment
• clf, efface la figure en cours
• figure crée une nouvelle figure. On peut rappeler la première figure par figure(1).
• subplot(N,M,n) permet de diviser une figure en NxM graphiques. Chaque graphique
est désigné par un numéro entre 1 et N.M (de gauche à droite et de haut en bas).
Voir exemple ci-dessous.
• hold on permet de superposer plusieurs courbes sur le même graphique. hold
off annule cette commande et n'autorise qu'un /P))
seul plot par graphique.
• abs(x) retourne la valeur absolue pour un réel,
ou le module pour un complexe.
• angle(x) retourne l'argument du complexe x entre it et it.
• y= fft(x,N) retourne la TFD de longueur N (i.e. sur N points fréquentiels) du signal x
(avec`zero_padding'' si la longueur de x est inférieure à N, i.e. une complétion de x par
autant de zéros qu'il faut pour effectuer une TFD classique de taille N). Remarque :
c'est l'algorithme de FFT qui est utilisé si N est une puissance de 2 ; d'où le nom de
la fonction matlab.
• y= max(x) retourne la valeur maximale du signal x. (y est un scalaire).
• y= max(x,40) retourne un vecteur contenant les échantillons de x lorsqu'ils sont
>40 ou 40.
• R= roots(a) retourne les racines du polynôme dont les coefficients sont dans le
vecteur a.

• D'autres commandes telles que xlabel, legend, title, ... permettent de commenter
les graphique

Matlab est un logiciel qui permet de faire des calculs mathématiques `semi_formels'.
Matlab connaît un grand nombre d'opérations ou de fonctions mathématiques : fonctions
usuelles, calcul matriciel, fonctions plus spécifiques du signal (FFT, etc).
Par exemple : Si a est un vecteur qui contient les échantillons d'un signal, A=
fft(a,128) rend un vecteur A qui contient la transformée de Fourier discrète (TFD) des 128
premiers échantillons du signal
Exercices d'applications

TP de traitement du signal 18 Réalisé par : Mustapha ABARKAN


Traitement numérique du signal Licence Electronique

Nous allons appliquer la transformée de Fourrier au signal vu dans le tp 2. Pour reprendre


l'exemple précédent, on veut tracer l'allure de la fonction et son spectre en dB. La
conversion en dB d'un spectre sefait par :
% Génération d'un sinus et ajout d'un bruit blanc Gaussien
fe = 1000;
N = 2000;
t = (1:N)/fe;
f0 = 10;
% Génération du sinus
sinus=sin(2*pi*f0*t);
% Génération du bruit
sigma = 0.25;
moy = 0;
bruit = moy + sigma*randn(1,N);
signal = sinus + bruit;
% Visualisation du sinus et du bruit
% Allure temporelle des signaux
figure(1) ;clf %crée ou sélectionne la figure 1 et l’efface
subplot(2,1,1) % sépare la figure en 2 graphiques et place dans le
premier cadre
plot(t,sinus, 'b'); hold on; plot(t,bruit,'r')
title('Allure temporelle du sinus et du bruit');
xlabel('temps (sec) '); legend('sinus', 'bruit')
subplot(2,1,2) % place le tracé dans le deuxième graphique
plot (t, signal)
title('Allure temporelle du signal'); xlabel('temps (sec)')

% Allure fréquentielle des signaux


tfsinus=fft(sinus) ;
tfsignal=fft(signal) ;
% Conversion en dB du module
Tfsinus_dB=20*log10(abs(tfsinus)) ;
Tfsignal_dB=20*log10(abs(tfsignal)) ;
% Axes des fréquences
f = (0:N-1)*fe/N;
% On créé un 2ème fenêtre
figure(2); clf
plot (f,tfsinus_dB, 'b',f,tfsignal _dB, 'r')
title('Spectre des signaux') % Donne un titre au graphique
legend('sinus pur','sinus bruité') % Annote les courbes
xlabel('Fréquence(Hz)'); ylabel('dB') % Annote les axes
% On rassemble les graphiques dans la figure(3) avec une géométrie différente
figure(3); clf
subplot (2,2,1)
plot(t,sinus, 'k',t,bruit, 'k--')
title('Allure temporelle du sinus et du bruit');
xlabel('temps (sec) '); legend('sinus', 'bruit')

subplot (2,2,2)
plot (t, signal, 'k')
title('Allure temporelle du signal'); xlabel('temps (sec)')

TP de traitement du signal 19 Réalisé par : Mustapha ABARKAN


Traitement numérique du signal Licence Electronique

subplot (2,1,2)
plot (f,tfsinus_dB, 'k',f,tfsignal _dB, 'k--')
title('Spectre des signaux'); legend('sinus pur', 'sinus bruité');
xlabel('Fréquence (Hz)'); ylabel('dB')

Exercice 1.
Transformée de Fourier de la porte rectangulaire
1. Générer une porte rectangulaire de longueur P = 5 échantillons; (P=ones(1,5);)
2. Calculer la transformée de Fourier discrète (TFD) de la porte sur N = 1000 points
fréquentiels. (Pf=fft(P,1000))
3. Afficher le module de la transformée de Fourier. (plot(abs(Pf))

Questions:
• Le résultat contient la TFD du signal qui, comme on l'a vu, est l'échantillonnage des
valeurs de la transformée de Fourier à temps discret (TFTD) aux points fréquentiels
vk = k/N pour 0≤k≤N-1. A quelles fréquences réduites v correspondent les valeurs
d'indices 1, 500 et 1000?
• A quoi est due la symétrie que l'on observe?
• Quelle est la largeur Δv du lobe principal? (utiliser ginput)

1. Afficher le module de la transformée de Fourier en décibels, entre 0 et 15 dB. Utiliser la


fonction `log10'. Pour afficher un graphique avec les échelles xmin,xmax,ymin,ymax utiliser
`axis([xmin, xmax, ymin, ymax])'.
Vérifier qu’on a bien environ 13 dB entre le max du lobe principal et le max du lobe
secondaire. Vérifier que pour une porte de largeur P = 50 échantillons, on a toujours
environ 13 dB.

Exercice 2 :

Transformée de Fourier de la fenêtre triangulaire


1. Générer une fenêtre triangulaire de longueur P = 9 échantillons et de valeur max 1, et la
représenter (un triangle est la convolution de 2 rectangles voir la fonction conv).
2. Calculer la transformée de Fourier discrète (TFD) de la fenêtre sur N= 1000 points
fréquentiels.
3. Afficher le module de la transformée de Fourier en linéaire puis en dB.
Quelle est la largeur du lobe principal?
Quel est le rapport en dB entre le max du lobe principal et le max du lobe secondaire ?
Répondre graphiquement, puis numériquement en utilisant max.

Exercice 3 :
Transformée de Fourier de la fenêtre de Hanning
La fenêtre de Hanning est définie par:
w= .5*(1-cos(2*pi*t/P-1) ; t=0 :P-1
1. Générer une fenêtre de Hanning de longueur P = 50 échantillons et de valeur max 1,
et afficher son allure temporelle.
2. Calculer la transformée de Fourier discrète (TFD) de la fenêtre sur N= 1000 points
fréquentiels.
3. Afficher le module de la transformée de Fourier en linéaire puis en dB.
Quelle est la largeur du lobe principal?

TP de traitement du signal 20 Réalisé par : Mustapha ABARKAN


Traitement numérique du signal Licence Electronique

Quel est le rapport en dB entre le max du lobe principal et le max du lobe


secondaire?

TP de traitement du signal 21 Réalisé par : Mustapha ABARKAN


Traitement numérique du signal Licence Electronique

TP INTRODUCTION AU SIMULINK 04
(1 séance)

1. INTRODUCTION :
Simulink est un outil de MATLAB qui permet de remplacer les équations
mathématiques entre certaines variables par des blocs organisés en un schéma. Pour
ouvrir Simulink, cliquez sur l'icône présent dans la fenêtre principale de MATLAB. Une
boîte de dialogue contenant la liste des librairies (semblable à celle de la figure 1)
apparaît à l’écran. La partie gauche de la boîte de dialogue montre les librairies, tandis
que la portion droite présente les blocs disponibles dans la librairie sélectionnée. Une
courte description du bloc sélectionné est affichée dans le haut de la fenêtre. Ce sont
ces blocs qui servent à la création des diagrammes, ou schémas-blocs.

2. Description de SIMULINK :
Pour lancer Simulink, on peut soit utiliser les
menus disponibles, soit taper sur la ligne de
commande « simulink ». Pour créer un nouveau
modèle Simulink choisir New dans le menu File,
puis Model. Une feuille de travail apparaît, sur
laquelle on va pouvoir définir graphiquement notre
système. Les différents outils disponibles seront
trouvés dans les menus correspondants sources,
visualisation, automatique continue, automatique
discrète, fonctions mathématiques, fonctions et
tables, automatique non-linéaire, signaux et
systèmes. De par sa nature graphique Simulink
peut être aisément découvert intuitivement. Cet
outil utilise la technique de drag and drop
(sélectionner et faire glisser). Il est facile de
positionner les éléments nécessaires dans la
fenêtre du modèle. Ensuite, on relie ces éléments
entre eux pour constituer le modèle. Chaque
élément possède une description et
éventuellement des paramètres qui peuvent être
modifiés. Pour y accéder double-cliquer sur un
élément.

2.1 Librairies :
Les divers éléments de la librairie sont alors
disponibles :
Librairie simulink :
Continuous : Blocs linéaires définis par leurs
fonctions de transfert
Discrete: idem mais en échantillonné
Functions & Tables : Blocs de fonctions mathématiques
Math: Blocs d'opérateurs mathématiques et logiques
Nonlinear : commutateurs et autres non linéarités
Signals & Systems : Divers signaux et blocs
Sinks: Outils d'analyse des signaux
Sources : Générateurs de signaux
Librairie Communications Blockset :
Channel Coding : Blocs de séquence de codage et décodage
Channels: Divers canaux de transmission bruités,…

TP de traitement du signal 22 Réalisé par : Mustapha ABARKAN


Traitement numérique du signal Licence Electronique

Comm Sinks : Outils d'analyse des signaux pour les


communications
Comm Sources : Générateurs de signaux pour les
communications
Modulation : Modulations et démodulations
numériques et analogiques
Source Coding : Numérisation, compression,…
Synchronisation: Divers PLL
Utility Functions : Autres fonctions pour les
communications
Librairie Simulink Extras :
Additional Discrete: Blocs définis par leur fonction de
transfert en échantillonné
Additional Linear : Blocs linéaires définis par leurs
fonctions de transfert
Additional Sinks: Autres outils d'analyse des signaux
Flip Flops : Blocs de bascules logiques Linéarisation :
Transformations : Transformations cartésiens-
polaires, degré-radians,…

Par exemple si on veut visualiser le signal d’un


générateur sinusoïdal, on utilise la source
correspondante (menu Sources) et un oscilloscope
(menu Sinks). On connecte ensuite ces deux
éléments en attrapant la sortie du générateur et amenant la souris enfoncée sur l’entrée de
l’oscilloscope. La simulation est jouée en cliquant sur Run, dans le menu Simulation. On
peut définir l’ensemble de la simulation à l’aide d’un script. En effet, Simulink partage les
variables de l’espace de travail Matlab (variables globales). On peut ainsi définir le modèle
Simulink à l’aide de variables dont les valeurs sont définies dans un script. On peut jouer la
simulation depuis la ligne de commande (donc lancer cette simulation depuis un script).
Ainsi sur l’exemple précédent, on obtient le modèle exempleMinimum.mdl et le script ci-
après.

3. Travail à réaliser :
3.1. Exemples de base :
Créer le modèle suivant:

Le bloc « Sine Wave» est un bloc qui génère un signal. Les blocs qui n’ont pas d’entrées font
partie des blocs «sources ». Le bloc «Scope », qui n’a pas de signal de sortie, fait partie des
blocs « sinks ».
Tester différentes combinaisons de blocs « sources » et de blocs « sinks ».

Il est souvent utile de fixer certains paramètres du «solveur» d’équation


de Simulink. Pour cela, on accède au menu déroulant «Simulink », puis
«Configuration parameters ». Là, il peut-être utile de préciser «Max
step size », en le fixant pas exemple à 0,02. Cela aura pour effet de
contraindre Simulink à plus de précision dans ses simulations (au prix
d’un peu plus de calculs).

TP de traitement du signal 23 Réalisé par : Mustapha ABARKAN


Traitement numérique du signal Licence Electronique

Le schéma suivant trace la fonction polynomiale :

On ajoute les deux blocs suivants : que fait-on ?

Modifier le schéma précédent pour détecter les valeurs négatives de: . Que
fait le schéma suivant :

Réaliser un schéma qui trace la fonction :


Réaliser les deux schémas suivants :

Expliquer le rôle des blocs «Integrator» et «Unit Delay ». Modifier les paramètres «Initial
conditions » et « Sample time ». Observer !
Pour un signal analogique (continu) x(t) où t ≥ 0 est le temps, on notera xe (n) le signal
échantillonné (discret), n étant l’indice du signal échantillonné. On a alors

TP de traitement du signal 24 Réalisé par : Mustapha ABARKAN


Traitement numérique du signal Licence Electronique

xe(n) = x(t0 + nΔt) où Δt est le pas d’échantillonnage (le «Sample time ») et t0 le temps
initial, usuellement t 0 =0.

3.2 Utilisat ion du bloc 1/s :

Réaliser le modèle suivant (Figure 1), mettre «Initial condition » à 1, et lancer la simulation

Explication. On notera (et c’est un usage courant) U=(u(t)) le signal Y=(y(t)) le signal de
sortie du bloc 1/S . U et Y représentent donc deux signaux. Pour tous les blocs
contenant la lettre S, qu’on appelle généralement « fonction de transfert », le schéma

se traduit par la relation formelle : Y=[num(s)/den(s)]U,


de sorte que par exemple, pour le bloc 1/S, on écrit Y = (1/S) U.
Reste à définir la signification de cette notation.

Définition
Soit X=(x(t)) un signal. La multiplication par S de X revient à dériver le signal x(t), c'est-à-dire
que
sX=(dx(t)/dt)
ainsi, Y = (1/S) U, revient à sY=U donc
(dy(t)/dt)=u(t)

(y(0) étant la condition initiale précisée dans le bloc)


Revenons-en à la figure 1. Ainsi on a Y = (1/S) U. Mais du fait de la boucle, on a aussi veut
tracer, on a (sY = U = -Y) qui se traduit par l’équation (dy(t)/dt)=-y(t) et la condition initiale
fixée indique que y(0) = 1. Ceci est une équation différentielle dont on peut vérifier que
la solution est la fonction y(t) = exp(−t)..
Réaliser le modèle suivant et comparer avec le précédent.

Pouvez vous écrire l’équation simulée par le modèle suivant

TP de traitement du signal 25 Réalisé par : Mustapha ABARKAN


Traitement numérique du signal Licence Electronique

(On mettra la condition initiale à zéro pour «Integrator 1 », et on la fera varier entre 0 et 3
pour «Integrator 2 »). Cette équation est «l’équation du pendule» et elle modélise l’ angle
d’un pendule, initialement en bas (condition initiale de l’intégrateur 1 à zéro) et avec une
vitesse initiale fixée par la valeur de l’intégrateur 2.

3.3. Utilisation du bloc 1/z :

Le bloc «Unit Delay» est comparable au bloc «Integrator» mais on l’utilise pour des
signaux échantillonnés. Il peut aussi servir à échantillonner un signal analogique (Figure
2).

De façon similaire au paragraphe précédent, en notant U = (uε (n)) et Y = (ye(n)) les signaux
d’entrée et de sortie échantillonnés, le bloc «Unit Delay » signifie que Y =1/z. U or cette fois,
la multiplication par z doit être comprise comme un décalage dans le temps, plus
précisément, si X = (xe (n)), alors :
z X = ( x e ( n +1 ) )
Ainsi Y = 1/zU s’écrit aussi zY = U donc y e ( n +1) = u e (n) ou de façon équivalente
(n étant une variable muette) ye(n) = ue(n − 1) : on voit que 1/z est bien un retard, et que le
signal en sortie ue correspond au signal en entrée retardé d’une unité, soit pour les
signaux analogiques :
y(t)=u(t− Δt) .
Dans le schéma bouclé de la figure 2, on a donc aussi U =0,9 Y soit finalement zY =
0,9Y qui se traduit par y e ( n + 1 ) = 0 , 9 y e ( n ) qui co rrespond à une su ite
géo métri que de raison 0,9: y e (n) = 0 , 9 n y e ( 0 ) . L ’ é q u a t i o n précédente est une
équation aux différences, et elle est l’analogue d’une équation différentielle pour un signal discret.
On peut d’ ailleurs constater la similitude entre les deux solutions, analogique et
échantillonnée, du système

TP de traitement du signal 26 Réalisé par : Mustapha ABARKAN


Traitement numérique du signal Licence Electronique

dans lequel on aura bien veillé à prendre la même condition initiale dans les deux blocs, et si on
prend un pas d’échantillonnage Δt = 0,1 dans le bloc «Unit Delay » alors il faut prendre un
gain K = exp(−Δt) dans le bloc «Gain» de sorte que

y e ( n + 1) = y ( ( n +1 ) Δt)= exp(-(n+1) Δt)=exp(-Δt)exp(-nΔt)


= exp(-Δt)y(n Δt )=exp(-Δt)ye(n)

3.4. D’au tres bloc s utiles :


Pour le moment, nous avons utilisé Simulink comme un outil indépendant de Matlab. En réalité,
Simulink s’intègre parfaitement dans Matlab. Un schéma Simulink est en réalité codé en Matlab.
On peut bien sûr importer/exporter les signaux depuis/vers l’espace de travail

Matlab ? C’est utile en particulier pour faire du traitement du signal «hors ligne », alors que
Simulink effectue du traitement du signal «en temps réel ». Par exemple, une FFT peut être
faite dans Matlab pour analyser un signal fabriqué dans Simulink. L’import/export vers des
fichiers est aussi disponible mais moins utile pour nous.

Le plus simple est de configurer les blocs de sortie (ceux d’entrée aussi) de façon à ce que les
variables générées soient des variables structurées incluant le temps dans Matlab (« Save
format» : Structure with time). Cela permet aussi récupérer les temps d’échantillonnage.
• Échantillonnage/quantification :
Les blocs utiles
Pour simuler l’échantillonnage et la quantification, on utilise deux blocs fournis par
Simulink.

On peut aussi utiliser le bloc «Pulse Generator» qui permet de générer un peigne de
Dirac, que l’on peut multiplier par un signal quelconque pour simuler

TP de traitement du signal 27 Réalisé par : Mustapha ABARKAN


Traitement numérique du signal Licence Electronique

l’échantillonnage. Réaliser trois schémas Simulink illustrant les trois blocs précédents. Le
signal source sera une sinusoïde, dont on précisera la fréquence en Hz.

• bloc « Zero-Order Hold » :


Simuler deux cas : échantilonnage correct et sous- échantillonnage. Quelle est la fréquence
de Shannon?
bloc « Quantizer »
Simuler une quantification sur 8 bits, sur 4 bits, sur 2 bits (calculer les «quantum»
pour chaque cas).
bloc « Pulse Generator »
Réaliser un échantillonneur par multiplication du peigne de Dirac et d’une sinusoïde.
Simuler différentes fréquences d’échantillonnage.

• T h é o r è m e d e S h an n on :
On se propose d’illustrer le théorème de Shannon. Pour cela, réaliser le schéma Simulink
permettant de générer une sinusoïde avec une fréquence de 1 Hz et d’envoyer le résultat
dans une variable structurée Matlab, en veillant bien à y inclure les temps de
mesure (« Structure with time »).

Tracer y en fonction du temps:


» plot(y.time,y.signals.values,’rx’)
(« r» pour rouge, existent aussi «b », «g », «k », «y »... et «x» pour des croix, existent aussi
« o », « - », « -- », ...).
Modifier les intervalles d’échantillonnage et tracer le résultat dans le même dessin («
hold on »).
Reconstruire le signal d’origine à l’aide du théorème de Shannon. Pour cela, on
programmera la petite fonction Matlab:
functionx=shannon(t, xe, Te);
xe=xe (:) ;
ne=length (xe) ;
n=0:ne-1;
[N, T] =meshgrid (n, t/Te) ;
x=sinc ((T-N) ) *xe;
qui s’utilise par exemple en faisant:
>> t=0:0.1:10;
>> x=shannon(t,y.signals.values,0.02)
>> plot (t,x,’r‘)
Pour un signal échantillonné à y . time (2) =0 .02.
Réaliser une illustration du théorème de Shannon. On doit voir :
• Un cas correct : fréquence d’échantillonnage suffisante et reconstruction fidèle.
• Un cas sous-échantillonné avec une reconstruction défaillante.
Dans les deux cas, tracer le spectre de Fourier (le module de la FFT) du signal
échantillonné, en fonction de la fréquence. Interprétez.

TP de traitement du signal 28 Réalisé par : Mustapha ABARKAN


Traitement numérique du signal Licence Electronique

Exercices
On souhaite simuler un système du premier ordre bouclé avec un retour unitaire et excité
par un échelon.
1. Lancer Matlab
2. Choisir le bon répertoire de travail.
3. Dans matlab taper simulink, une fenêtre Simulink Library Browser apparaît
4. Ouvrir un nouveau modèle.
5. Sélectionner le bloc Step de la famille Sources. Le faire glisser dans la fenêtre ouverte.
6. Répéter l’opération avec un bloc Sum de la famille Math, puis un bloc Transfer Fcn de
la famille Continus et enfin un bloc Scope de la famille Sinks.
7. Relier les blocs par flèches en utilisant le glisser-déplacer de la souris.
8. Pour préciser les paramètres des blocs double-cliquez sur ceux-ci et utiliser les
menus.
9. Pour définir les paramètres de la simulation (durée, méthode d’intégration, etc…),
choisissez Simulation/Simulation Parameters depuis la barre d’outils.
10. Pour lancer la simulation, choisissez Simulation/start depuis la barre d’outils.

TP de traitement du signal 29 Réalisé par : Mustapha ABARKAN


Traitement numérique du signal Licence Electronique

TP ANALYSE DE SIGNAUX NUMERIQUES PAR 05


SIMULINK (1 séance)

1. CONFIGURATIONS :
Les signaux que nous allons analyser sont de 2 types:
- l'information à transmettre de fréquence F mod de l'ordre de 100 Hz (Tmod = 10 ms)
- le signal d’échantillonnage de l'ordre de 1000 Hz (6283 rd/s).
Quatre paramètres sont à configurer
• Période d'échantillonnage de calcul interne par Matlab
Matlab échantillonne ces signaux pour pouvoir faire ses calculs. Il faut que la fréquence
d'échantillonnage soit bien supérieure à celle imposée par Shannon, (soit deux fois la
fréquence de la porteuse à 1000 Hz = 2000 Hz).
On choisit donc une fréquence d'échantillonnage de calcul cent fois plus grande, soit 100
kHz (T = 10 µs). La valeur à rentrer est donc : période d'échantillonnage = 10µs

• Temps de calcul interne par Matlab


La durée de calcul ne doit pas être trop élevée pour éviter des attentes trop longues.
Limitons nous à la visualisation de 20 période de l'information (soit 20 x Tmod = 200 ms).
En conséquence la durée de calcul doit-être égale à 200 ms.
Les valeurs à rentrer sont donc: Start time =0 et Stop time = 0,2s

• Particularité du bloc de visualisation "Scope"


Le bloc "Scope" contient un paramètre "limit rows to last", qui contient le nombre
d'échantillons à garder ; il doit contenir, au moins la valeur :

• Autre particularité du bloc de visualisation "Power Spectral Density"


Le bloc "Power Spectral Density" contient un paramètre "Sample Time", qui permet de
régler la fenêtre d'observation en fréquence. La largeur de cette fenêtre est :

2. VISUALISATION DES SIGNAUX :


Les blocs qui génèrent les signaux sont dans
Simulink/Source. Les blocs pour observer sont
dans Simulink/Sinks. Imposer la période
d'échantillonnage à 10 µs en activant la fonction
Properties/General dans Scope. Il faut aussi
s'assurer que le nombre de points à enregistrer est
supérieur ou égal à la durée de calcul (10 ms)
diviser par la période d'échantillonnage (10ts) soit 10000 dans Properties/Data History /
limit rows to last

3. ANALYSE FREQUENTIELLE DE SIGNAUX ANALOGIQUES :

TP de traitement du signal 30 Réalisé par : Mustapha ABARKAN


Traitement numérique du signal Licence Electronique

Le bloc d'analyse spectrale est dans Extra-


Simulink/Additionnal Sinks:

Pour une fenêtre de visualisation


FOBS, il faut choisir une période
d'échantillonnage TE = 1/(2 *FOBS) NB
: les fréquences affichées sont en rd/s
!!!

4. PREPARATION :
Paramétrage de Simulink
Soit un signal sinusoïdal de 1000 Hz.
• Comment choisir la période d'échantillonnage TE du bloc SCOPE afin de bien
représenter ce signal?
• Comment choisir la période d'échantillonnage T E du bloc POWER SPECTRAL
DENSITY afin de bien représenter le spectre de ce signal?
Spectre d'un signal échantillonné
Soit un signal sinusoïdal à 100 Hz. Dessiner son spectre.
On échantillonne ce signal à 1000 Hz. Dessiner le spectre du signal échantillonné entre 0
et 1000Hz. Soit un signal sinusoïdal à 800 Hz. Dessiner son spectre.
On échantillonne ce signal à 1000 Hz. Dessiner le spectre du signal échantillonné entre 0
et 1000Hz.
Pas de quantification
Pour une plage de tension de 2V. La quantification est supposé codée sur 8 bits soit 28
valeurs possibles. Quel est le pas de quantification?

4.1 Echantillonnage :
Montage de base
Ecrire le fichier echant1.mdl qui:
- génère une sinusoïde d'amplitude 1, de fréquence F=100 Hz (bloc Signal Generator)
- échantillonne (Bloc Zero-Order Hold Tech) ce signal avec une fréquence
d'échantillonnage Fech = 1000 Hz.
Ne pas confondre cette fréquence d'échantillonnage avec la fréquence de calcul qui est la
fréquence d'échantillonnage pour les calculs de Matlab !

• Comparer le signal original et le signal échantillonné en observant simultanément les


deux courbes multiplexés par un oscilloscope. Relever ces deux courbes

Positionner un bloc "Averaging Power Spectral Density".


Régler la fenêtre d’observation de 0 Hz à +2000Hz. En déduire la valeur de Sample_time.

TP de traitement du signal 31 Réalisé par : Mustapha ABARKAN


Traitement numérique du signal Licence Electronique

• Relever le spectre du signal échantillonné.

4.2 Filtre de reconstruction :


Pour transformer le signal en escalier en signal continu, on doit placer en sortie un filtre de
reconstruction (ou restitution).
Installer en sortie de l'échantillonneur le bloc "Transfer Fcn" avec une fréquence de coupure
égale à la moitié de la fréquence d'échantillonnage soit 500 Hz.
Le filtre sera un filtre du 3ème ordre de type Butherworth

Les paramètres à entrer sont donc

• Faire passer à 3 le nombre d'entrées du multiplexeur afin de relever simultanément le


signal original, le signal échantillonné et le signal reconstruit. Vérifier le bon
fonctionnement du filtre.

4.3 Repliement de spectre :


Changer la fréquence de la sinusoïde en la montant à 800 Hz
• Relever les 3 nouvelles courbes temporelles. Quel est l'effet du repliement de spectre?

• Relever le spectre du signal échantillonné. Quel est l'effet du repliement de spectre ?


Justifier les fréquences des 2 raies.

4.4 Influence du bruit de quantification :


Régler, de nouveau, la fréquence de la sinusoïde à 100 Hz.
Installer à la suite de l'échantillonneur un bloc "Quantizer" afin de quantifier le signal. La
plage de quantification est supposée de 2V (elle permet d'y inscrire entièrement le signal
sinusoïdal de départ et d'amplitude 1V.
La quantification est supposé codée sur 8 bits soit 28 valeurs possibles. Le pas de
quantification est donc 2/28 (soit 2/2^8) : c'est la valeur du paramètre "Quantization
Interval".
Visualiser avec un scope le signal obtenu. Passer à une quantification sur 2 bits. Relever
le signal original, le signal quantifié et le signal bruit de quantification (c'est la différence
entre les 2)

4.5 Codages NRZ :


Emission
Ecrire un fichier nrz.mdl afin de générer un signal aléatoire (bloc Bernoulli random binary
generator), à la fréquence TB = 10 ms, et dont la probabilité d'avoir un "0" est la même
que celle d'avoir un "1".
Paramètres :

Paramètres Valeur Commentaires


Probability of a zero [0.5] probabilité de 0,5 (50%) d’avoir un zéro
seed [1] Pour générer un vecteur de dimension 1

TP de traitement du signal 32 Réalisé par : Mustapha ABARKAN


Traitement numérique du signal Licence Electronique

Sample Time ? Pour avoir un débit de 100 bits/s

Le paramètre Sample Time correspond à la durée d'un bit.


• Quel est sa valeur pour que le débit soit de 100 bits/s?
• Relever le signal NRZ.
• Relever son spectre (Augmenter si nécessaire le temps de calcul). Faire apparaître la
fréquence rythme FR. Attention le spectre est gradué en rd/s et non en Hz!
Quelle est son encombrement spectral (largeur du 1 er lobe)?

4.6 Simulation du canal de transmission :


Récupérer le programme nrz.mdl et le sauvegarder sous le nom recept.mdl. Simuler les
défauts du canal de transmission par un filtre passe-bas (bloc Transfert Fcn) du deuxième
ordre de fonction de transfert :

Paramètres Valeur Commentaires


Numerator 1

Denominator 2n 2zn 1 Les 3 coefficients de p (descendant à partir de p2)

Calculer les coefficients pour que ce filtre ait un coefficient d'amortissement z = 0,5 et une
fréquence propre ωn = 1/n telle que n soit 10 fois plus petite que TB, durée d’un bit.

• Relever simultanément le signal NRZ émis et le signal reçu en sortie du canal.

4.7 Ajout de bruit :


Modifier le programme recept.mdl. Ajouter un bruit gaussien (bloc Uniform noise
generator) au signal NRZ (en aval du canal).

Paramètres Valeur Commentaires


Noise lower bound -0,3 niveau de bruit inférieur
Noise upper bound 0.3 niveau de bruit supérieur
Seed [1] Pour générer un vecteur de dimension 1
Sample time 10^-5

• Relever simultanément le signal NRZ émis et le signal reçu bruité, en sortie du canal.

TP de traitement du signal 33 Réalisé par : Mustapha ABARKAN


Traitement numérique du signal Science de la matière physique (S5)

TP MODULATION ET DEMODULATION D’UN SIGNAL 06


PAR SIMULINK (1 séance)

1. MODULATION D'AMPLITUDE (AM) :

1.1 Etude temporelle:


Le signal modulant est une tension sinusoïdale : Um(t)= Um cos(2*pi*fm*t).
Le signal porteur aussi est une tension sinusoïdale : Up (t)= Up cos(2*pi*fp*t).
Le résultat de cette modulation donne le signal modulé ayant pour équation :
Us (t) = (Um cos(2*pi*fm*t) + U0)Up cos(2*pi*fp*t).
= Up U0 (1 + Um/U0 cos(2*pi*fm*t))cos(2*pi*fp*t).
Us (t) = A (1 + m cos(2*pi*fm*t)) cos(2*pi*fp*t). (*)

Valeurs des paramètres :


Les amplitudes : Um = 0.5V , U0 = 1V , Up = 1V , A = Up, U0 = 1V
Les fréquences : fm = 1 HZ , fp = 10 fm = 10 Hz .
Le nombre m, appelé le taux de modulation, on choisit dans ce cas m = U m/U0 = 0,5.
Pour commencer, nous allons créer un nouveau schéma comportant deux blocs de tensions
sinusoïdales et quelques opérateurs mathématiques qui nous permettent d'associer ces deux
blocs.
L'équation (*) nécessite 3 blocs mathématiques :
Un bloc gain qui présente le taux de modulation.
Un bloc sum qui présente un sommateur de tension et qui permet d'ajouter la composante
continue.
Un bloc product qui présente un multiplieur de tension.
Placer tous les blocs nécessaires dans la fenêtre de travail, et les paramétrer avec les valeurs
indiquées auparavant. Ensuite, connecter la sortie qui présente la tension Us(t) avec le scope.
Introduire les paramètres suivants :
Dans notre exemple on va modifier "sample time" avec une valeur qui égale: 0.25 car
fmax=1Hz. Iil faut que la durée de calcul interne par simulink ne soit pas trop élevée pour
éviter des attentes trop longues. Pour cela, on va limiter une visualisation de 50 périodes de
l'information. C'est-à-dire que la durée devient égale à 50s. Dans le menu simulation de votre
fenêtre de travail on choisit « paramètre », les valeurs à rentrer sont: Start time=0s et Stop
time=50s.
Conclusion ?

1.2 Etude fréquentielle du signal modulé :

On peut décomposer le signal modulé en une


somme de termes sinusoïdaux. Ensuite, on
peut facilement montrer que le spectre de ce
signal est composé de trois raies :
- La "porteuse" de fréquence fp et d'amplitude
A/2.
- Deux "bandes latérales " de fréquences : fp-
fm, fp+fm et de même amplitude mA/4.

TP de traitement du signal 34 Encadrer par le docteur : Mustapha ABARKAN


Traitement numérique du signal Science de la matière physique (S5)

Pour réaliser cette étude fréquentielle avec simulink il suffit d'ajouter le bloc "power spectral
density " au schéma obtenu auparavant. Afin de placer le spectre au milieu de la fenêtre régler
le paramètre "sample time".
A partir de votre schéma, créer un sous-système sous le nom du modulateur AM.

2. Démodulation d'amplitude :

La démodulation d'amplitude est l'opération consistant à reconstituer le signal modulant à


partir de l'onde modulée en amplitude.

Etude théorique de la démodulation AM par détection synchrone :


Ce type de démodulation s'opère en 3 étapes :
-1 ère étape : On multiplie le signal modulé par un signal de même fréquence que la porteuse
utilisée à la modulation.
-2 ème étape : filtrage pas-bas.
- 3 ème étape : élimination de la composante continue.

Considérons à nouveau que le signal modulé en


amplitude s'écrit de la forme:
Us (t) = (1 + m cos(2*pi*fm*t))cos(2*pi*fp*t).
A la sortie du multiplieur la tension est :
U's (t) = (1 + m cos(2*pi*fm*t)) cos(2*pi*fp*t)
cos(2*pi*fp*t).
L'étude fréquentielle montre que le spectre de ce
signal est composé de quatre raies de fréquences :
fm, 2fp, 2fp-fm , 2fp+fm. On peut donc récupérer le
signal informatif au moyen d'un filtre passe-bas
dont les fréquences de coupure est comprise entre fm et 2fp-fm.

A la sortie d'un tel filtre le signal est : (1 + m cos(2*pi*fm*t))/2. L'élimination ultérieure de la


composante continue conduit à : U''s (t) = m cos(2*pi*fm*t).
Enfin il nous reste qu’amplifier le signal U ''s(t) par un gain de 1/m pour reconstituer le signal
informatif.
Afin de réaliser la démodulation avec simulink il nous suffit de chercher les blocs nécessaires
et les assembler dans la fenêtre du travail .

• 1ère étape :
On commence à ajouter les deux blocs « product » et le signal « generator » au sous-système de
la modulation AM obtenu précédemment. Ensuite lancer la simulation.

• 2éme étape :
Le filtrage passe-bas qu’on veut réaliser permet d’éliminer les fréquences supérieures à fm.
Pour ce faire, on va aller dans le répertoire DSP blockset/Filtering/Filter Designs et on va
choisir Analog Filter Design. Ensuite, on choisit les paramètres de ce filtre avec une fréquence
de coupure comprise entre fm et 2fp-fm c'est-à-dire entre 1 et 19 HZ. Dans ce cas on va choisir
par exemple 5HZ c'est-à-dire 5*2*pi en rad/s.

• 3éme étape:

TP de traitement du signal 35 Encadrer par le docteur : Mustapha ABARKAN


Traitement numérique du signal Science de la matière physique (S5)

Après filtrage, la sortie du filtre est de la forme : (1 + m cos(2*pi*fm*t))/2. On peut éliminer la


composante 1/2 en ajoutant l'opérateur mathématique « sum ». On modifie le paramètre " list
of signs" avec +- ensuite l'opérateur « sum » va fonctionner comme un différentiel de tension
au lieu de la sommation c'est-à-dire il ajoute (1 + m cos(2*pi*fm*t))/2 après il élimine 1/2.

Après l'élimination de cette composante on amplifie la tension de sortie par un gain de 4.


Enfin il reste que lancer la simulation mais il faut afficher sur le même scope l'entrée est la
sortie. Il faut donc créer un fil qui contiendra à la fois l'information d'entrée (le signal
modulant) et la sortie de système (signal démodulé). L'outil qui permet de passer de n fils
distincts à un fil porteur de n informations est le multiplexeur « Mux ». Il est situé dans la
bibliothèque « signal & systems » et par défaut le « Mux » est de type 2*1 donc on n'a pas
besoin de modifier leur paramètre.
Après les bonnes connexions lancer la simulation. Commenter le résultat.

3. La modulation de fréquence (FM) :

Le signal porteur initial est, comme dans le cas de AM, Up(t)= Ap .cos(2πfpt+Фp) ) mais ici c'est
Фp et non Ap qui va être modifiée par le signal informatif Um (t) = Am
.cos(2.π.fm.t).
Les résultats de la modulation par la méthode de Bessel dans le cas de la modulation à large
bande (démontré dans la partie théorique), nous donne : s(t) = ∑ApJk(m)
cos[2π (fp +kfm)t]

Le signal modulé comporte, théoriquement, une infinité de composantes spectrales de


fréquence fp, fp±fm , fp±2fm………leur amplitude dépend de l’indice de modulation par
intermédiaire de Jk(m). En adoptant les mêmes valeurs des paramètres que la modulation
d’amplitude :
Les amplitudes : Um = 0.5v , U0 = 1v , Up = 1v , A = Up.U0 = 1v
Les fréquences : fm = 1 HZ , fp = 10 fs = 10hz .
Le nombre ‘m’ appelé le taux de modulation, on choisit dans ce cas m = Δf/fm .
Avant de lancer la simulation il faut s'assurer que le signal de sortie est bien échantillonné.

Etude fréquentielle du signal modulé


Pour réaliser cette étude fréquentielle avec simulink il nous suffit d'ajouter le bloc "power
spectral density " à notre fenêtre de travail après on lance la simulation. Etudier plusieurs
valeurs du facteur m : m=1, m=2 et m=5

TP de traitement du signal 36 Encadrer par le docteur : Mustapha ABARKAN


Traitement numérique du signal Science de la matière physique (S5)

5. La démodulation de fréquence :

La démodulation de fréquence est l'opération consistant à reconstituer le signal modulant à


partir de l'onde modulée en fréquence. Pour cela on va utiliser la démodulation à boucle de
verrouillage de phase Afin de réaliser le montage par simulink, il faut d’abord créer le sous-
système « modulation FM ». Ensuite constituer la boucle à verrouillage de phase à l’aide d’un
Product, un filtre basse-bas et un VCO que vous trouvez dans le bloc (communication
blockset). Relier les différents éléments, et lancre la simulation. Visualiser le signal de départ
(d’origine) et celui obtenu par la démodulation FM.
N.B : La fréquence de coupure du filtre analogique passe-bas fc doit être également inférieure à
2fs avec (fs : fréquence du signal modulé en fréquence)

TP de traitement du signal 37 Encadrer par le docteur : Mustapha ABARKAN


Traitement numérique du signal Science de la matière physique (S5)

TP MATLAB- SIMULINK- SPTOOL 07


(2 séances)

1. SIGNAUX DETERMINISTES :
Sur l’exemple ci-dessous, on trouve des blocs qui représentent chacun une fonction. Le
bloc « sine wave » par exemple est un générateur sinusoïdal que l’on va pouvoir visualiser a l’aide
du bloc « scope » qui simule un oscilloscope.

Q1) A l’aide des blocs de simulink, visualiser les signaux déterministes :


1. Echelon, rampe.
2. Signaux sinusoïdaux : sin, cos de période T = 10 s, 5 s.
3. Signaux aléatoires tels que les bruits par exemple.
Pour réaliser ces signaux, utiliser les blocs qui se trouvent dans simulink / sources (pour les
différents signaux) et le scope qui se trouve dans simulik / sinks.

Q2) Réaliser à l’aide de simulink le signal x(t)= 2*sin(2*pi*f1*t)+sin(2*pi*f2*t), avec f1 =0.1 Hz et


f2 = 1 Hz, et visualiser le signal ainsi généré.
Pour réaliser ce signal, utiliser le bloc Fcn qui se trouve dans simulink / Functions & Tables.

Le bloc « clock » sera le temps qui est l’entrée du système. Les deux blocs clock et Fcn forment le
générateur du signal x(t).

2. SIGNAUX DISCRETS :
Pour obtenir un signal discret, il faut faire un échantillonnage du signal correspondant. A l’aide
d’un bloc « bloqueur d’ordre zéro » ( Simulink / Discrete ) on peut effectuer l’échantillonnage du
signal.

Q3) Effectuer l’échantillonnage d’un signal sinusoïdal (T = 10 s) et le visualiser.


Remarque : Matlab est un logiciel de calcul numérique (et non formel ! ), en conséquence il traite
les signaux de manière numérique (table de valeurs), les signaux sont "échantillonnés"
de manière automatique (bloqueur d’ordre 1) (on peut augmenter le nombre d’échantillon :
menu « Simulation » / « Simulation parameters… »).

Q4) Vérifier cette remarque à l’aide de MatLab en utilisant « length(x) » et en mettant dans
simulink le bloc « To WorkSpace » (paramètres : « Save Format : Array »).

3. ANALYSE SPECTRALE :
Le spectre du signal x(t) est constitué de raies spectrales aux fréquences : n*f0. f0 est appelée
fréquence fondamentale et les fréquences n*f0 sont appelées harmoniques.

X(f) représente le spectre du signal x(t).


Transformée de Fourier discrète (fréquence d'échantillonnage fe = 1/Te):

TP de traitement du signal 38 Encadrer par le docteur : Mustapha ABARKAN


Traitement numérique du signal Science de la matière physique (S5)

Q4) Analyse de fourrier d’un signal carré.


1. Créer un signal carré de 0 à 5 s, de fréquence 20 Hz à la période d’échantillonnage de 1000 Hz.
2. Effectuer la fft sur 5000 points. (Pour aide tapez ‘help fft’).
3. Créer une variable pour le demi-axe des fréquences.
4. Tracer le module de la fft en fonction de la fréquence.
Tracer la phase du signal.
Q5) A partir du signal de la question Q2) et en utilisant Simulink, effectuer l’analyse spectrale de
ce signal (transformée de fourrier) afin de mettre en évidence les fréquences du signal. Utiliser le
bloc « Power Spectral Density ».

Q6) Retrouver les résultats de l’analyse spectral en utilisant des fonctions Matlab (fft). Aidez vous
du menu help de MatLab.

4. FILTRAGE DE SIGNAUX :
Q7) Filtre RII
h(n) comme la réponse impulsionnelle du filtre numérique

L’équation récursive de la sortie est :


Y(n)=0.1x(n)+1.3y(n-1)-0.4y(n-2)
a) Réaliser sous simulink ce filtre et analyser la sortie. (X est une impulsion de Dirac).
On fera attention de paramétrer correctement les blocs (annuler l’échantillonnage réalisé par les
blocs retard). Vérifier la valeur des points obtenus sous MatLab.
Exemple pour le filtre : y(n)=0.2x(n)+0.9y(n-1)

b) Ecrire un programme sous MatLab qui réalise ce filtrage (on utilisera le signal x(n) défini par
simulink). Vérifier les valeurs obtenues.
c) Calculer la FFT du filtre (l’inclure dans le programme).
d) Appliquer ce filtre au spectre (a calculer) du signal de la question Q2).

Exemple pour le filtre: y(n)=0.2x(n)+0.9y(n-1)

y(1)=0.2*x(1); Création du filtre


y(2)=0.2*x(2)+0.9*y(1); Calcul de la sortie Y à partir de X et h.
for i=3:N, X est un signal de dirac.
y(i)=0.2*x(i)+0.9*y(i-1); (le premier élément de la matrice X est X(1))
end
y‘

TP de traitement du signal 39 Encadrer par le docteur : Mustapha ABARKAN


Traitement numérique du signal Science de la matière physique (S5)

yf=fft(y,1000); Spectre du filtre


n_yf=abs(yf);
f=1000*(0:499)/1000;
figure; plot(f :n_yf(1:500)
zf=fft(z,1000); Spectre du signal
n_zf=abs(zf);
f1=1000*(0:499)/1000;
figure; plot(f1,n_zf(1:500))
r=n_zf.*n_yf '; Filtrage
figure; plot(f,r(1:500))

5. DECOUVERTE DE SPTOOL :

5.1 Manipulations :
- Sous la fenêtre de commande Matlab, tapez sptool pour lancer sptool.
- De la fenêtre de dialogue de Sptool vous allez pouvoir importer et/ou exporter des données
depuis/vers des fichiers ou la fenêtre de commande de matlab.
- Avec Sptool, vous allez pouvoir interactivement créer des filtres numériques, visualiser leurs
différentes réponses et visualisez des signaux et des spectres.
On se base sur la synthèse d'un filtre (RII) passe-bas avec une bande atténuée à 40 dB à partir de
5Hz et une fréquence d'échantillonnage à 40 Hz.

5.2 Prise en main de SPTOOL :


Synthèse de filtres
• Dans la fenêtre SPTool, Cliquez sur 'new design'. Une fenêtre Filter Designer s'ouvre.
• Saisissez le type de filtre Butterworth, puis le gabarit (Décocher la case minimum Order)
(Fs,Rs,Sampling Frequency) et cliquez sur 'apply'.
• Puis cliquez sur 'File / Close'. Votre filtre synthétisé apparaît avec le nom filt1, donnez lui
un nom par 'Edit / Name'.
• Créer de la même manière les deux filtres de Chebyshev (avec les mêmes caractéristiques).

5.3 Visualisation des caractéristiques du filtre :


• Dans la fenêtre SPTool, choisissez un filtre, puis cliquez sur 'View'. Une fenêtre Filter
Viewer s'ouvre.
• Dans la fenêtre Filter Viewer, sélectionnez les réponses que vous voulez observer
• (zéros/pôles, module, phase, retard de groupe, impulsionnelle, indicielle ...) et les échelles
à utiliser. Zoomez, explorez.
• Basculez dans la fenêtre SPTool et sélectionnez les trois filtres créés (maintenir
• enfoncé la touche ctrl).
• Comparer les trois filtres.

5.4 Visualisation des signaux :


• Dans la fenêtre de commande de matlab : Créer un vecteur t de 0 à 4pi sur 1024 points.
Créer un vecteur y=2*sin(2*pi*f1*t)+sin(2*pi*f2*t) avec f1 = 1 Hz et f2 = 10 Hz.
• Charger avec la fonction wavread le fichier 'son.wav' qui se trouve sur le bureau (spécifier
le chemin dans la barre de menu de MatLab) (ATTENTION : après ne plus taper
d’instruction dans la fenêtre Commande Window).
• Dans la fenêtre SPTool, importez ces différents signaux avec 'File / Import'. (‘ans’
correspond à la dernière réponse donné par MatLab, donc au signal ‘son.wav’ sous forme
matricielle)
• Choisissez en un ou plusieurs, cliquez sur 'View' et explorez la nouvelle fenêtre Signal
Browser.

5.5 Filtrage :
• Dans la fenêtre SPTool, sélectionnez le signal ‘y‘ ainsi que le filtre de Butterworth, puis

TP de traitement du signal 40 Encadrer par le docteur : Mustapha ABARKAN


Traitement numérique du signal Science de la matière physique (S5)

cliquez sur 'Apply'.


• Renommer le signal ainsi filtré.
• Avec le Signal Browser, observez le signal avant et après filtrage.
• Modifier les caractéristiques du filtre (fréquence de coupure,…), et observer.
• Faire des essais avec les autres filtres.

5.6 Analyse spectrale d'un signal :


• Dans la fenêtre SPTool, sélectionnez un signal, puis dans la colonne Spectra, cliquez sur
'Create'.
• Dans la fenêtre Spectrum Viewer qui vient d'apparaître choississez une méthode d'analyse
spectrale, puis 'Apply'. Cela vous donne le spectre du signal.

5.7 Export :
Vous pouvez renvoyer sous la fenêtre de commande de matlab ce que vous avez créé sous la
fenêtre SPTool avec 'File / Export'. Cette commande crée dans la fenêtre de commande une
variable du nom de l'objet exporté.
Cette variable est une structure. Tapez son nom suivi de 'enter', vous verrez la liste des champs
de la structure apparaître.
Par exemple pour un filtre appelé B. En tapant B.tf.num, vous accédez au numérateur de la
fonction de transfert en Z, B.tf.den et c'est le dénominateur ...

TP de traitement du signal 41 Encadrer par le docteur : Mustapha ABARKAN


Traitement numérique du signal Science de la matière physique (S5)

Filière: Sciences de la Matière Physique.


Licence : Electronique.
Module : Traitement du signal.

Semestre S6 Groupe: SMP-S6

Travaux pratiques - Traitement du signal

COMPTES RENDU

Préparé et réalisé par : Guidé et encadré par :

Le(s) étudiant(s) :
LE Professeur
1. .. Mr: Mustapha ABARKAN
2. ..

TP de traitement du signal 42 Encadrer par le docteur : Mustapha ABARKAN


Traitement numérique du signal Science de la matière physique (S5)

Traitement du signal
Travaux pratiques N° 1
Introduction à MATLAB

Le but du TP :
……………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………
Manipulation 1 [Exercice 1]: Lancement d'exécution de MATLAB
……………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
…………
Préparations et configurations:
………………………………………………………………………………………………………………………………………………………………
…………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………
…………
………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
…………
Résultats d'exécution :

………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………

Interprétations et amélioration [Autres méthodes]:

………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………

Manipulation 2 [Exercice 2]: …………………………………………………….

Préparations et configurations:

………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………

Résultats d'exécution :

………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………

Interprétations et améliorations [Autres méthodes]:

………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………

Conclusions TP 1

……………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………

TP de traitement du signal 43 Encadrer par le docteur : Mustapha ABARKAN


Traitement numérique du signal Science de la matière physique (S5)

TP ANNEXES 07
RESUME DES COMMANDES MATLAB

On a regroupé par sujet d'intérêt les différentes commandes et fonctions de MATLAB. Il en


existe d'autres qu’on pourra trouver dans les différentes boîtes à outils (toolbox) qui viennent
compléter le logiciel de base.
Gestions des commandes et des fonctions Commandes système
help aide cd change le directory courant
what listing du nom des M_files présents pwd affihe le directory courant
type impression d'un M_file dir, ls liste les fichiers
lookfor recherche d'une entrée dans le help delete suppression de fichiers
which localise les fonctions et fichiers getenv renvoie la variable d'environnement
demo lance la démonstration appelle et exécute une commande
!
défini les chemins d'accès aux système
path
fichiers et fonctions appelle et exécute une commande
unix
paramètres d'édition d'une ligne de système, renvoie le résultat
cedit
commande sauvegarde le texte d'une session
diary
affiche le numéro de version de MATLAB
version
MATLAB
affiche les fichiers README de la Fenêtre de commande MATLAB
whatsnew
toolbox clc efface la fenêtre de commande
information sur MATLAB et The home curseur en haut de l'écran
info
MathWorks format définit le format d'affichage
renvoie une réponse aléatoire non affiche les instructions exécutées par un
why echo
'neutre' script
more contrôle de l'affichage paginé
Opérateurs sur les Opérateurs sur les
Matrices Tableaux Opérateurs Relationnels Opérateurs Logiques
+ addition + addition < inférieur à & et
- soustraction - soustraction > supérieur à | ou
* multiplication .* multiplication <= inférieur ou égal à ~ non
^ puissance .^ puissance >= supérieur ou égal à xor ou exclusif
/ division à droite ./ division à droite == égal à
\ division à gauche .\ division à gauche ~= différent de
transpose
'
conjugué
Durées et Date
.' transpose
date date courante
produit de
kron clock horloge
Kronecker
etime durée d'exécution
tic, toc affiche le début et la fin d'exécution
cputime temps CPU écoulé

Traitement du son Caractère spéciaux


saxis modification de l'échelle d'amplitude = assignation
sound convertit un vecteur en son [] définition de matrices ou vecteurs;

TP de traitement du signal 44 Encadrer par le docteur : Mustapha ABARKAN


Traitement numérique du signal Science de la matière physique (S5)

auread lit un fichier audio au format SUN ensère les arguments de sortie des fonctions
auwrite écritit un fichier audio au format SUN () gère la priorité des opérations arithmétique
lin2mu conversion loi linéaire vers loi m ensère les arguments d'entrée des fonctions
mu2lin conversion loi µ vers loi linéaire . point décimal
.. directory parent
Variables prédéfinies ... indique une ligne suite
réponse à une expression sans , séparateur d'arguments ou d'instructions
ans
assignation
fin de lignes (matrices) ou suppression de
eps précision de la virgule flottante ;
l'affichage
realmax plus grand nombre flottant % commentaires
realmin plus petit nombre flottant positif manipulation de sous matrices ou génèration
:
pi p de vecteurs
i, j [ (-1)] ! appel au système
inf
NaN Not a Number Matrices prédéfinies
nombre d'opérations flottantes par zeros matice de 0
flops
seconde ones matrice de 1
nombre d'arguments d'entrée d'une eye matrice identité
nargin
fonction diag matrice diagonale
nombre d'arguments de sortie d'une toeplitz matrice de Toeplitz
nargout
fonction
magic carré magique
computer type du calculateur
compan matrice compagnon
linspace vecteurs linéairement espacés
Manipulation de Matrices
logspace vecteurs logarithmiquement espacés
diag création ou extraction de la diagonale
meshgrid grille pour les graphiques 3D
rot90 rotation de 90°
nombres aléatoires à répartition
fliplr retournement gauche-droit rand
uniforme
flipud retournement haut-bas
nombres aléatoires à répartition
reshape redimensionnement randn
normale
tril partie triangulaire inférieure hilb Hilbert
triu partie triangulaire supérieure invhilb inverse de Hilbert (exact)
.' transposition vander Vandermonde
: conversion matrice vecteur pascal Pascal
hadamard Hadamard
hankel Hankel
matrice test pour le calcul des
rosser
valeurs propres
matrice test pour le calcul des
wilkinson
valeurs propres
gallery deux matrices test spéciales

Fonctions logiques Instruction de contrôle


teste l'existence d'une variable ou if test conditionnel
exist
d'une fonction else complète if
any vrai si un élément est vrai elseif complète if
all vrai si tous les éléments sont vrais end terminaison de if, for et while
find cherche l'indice des éléments non nuls for instruction de répétition avec compteur
isnan vrai si l'élément n'est pas un nombre while instruction de répétition avec test

TP de traitement du signal 45 Encadrer par le docteur : Mustapha ABARKAN


Traitement numérique du signal Science de la matière physique (S5)

isinf vrai pour tout élément infini break interrompt une boucle for ou while
finite vrai pour tout élément fini return retour
vrai si la représentation est au format affiche un message et interrompt
isieee error
IEEE l'exécution
isempty vrai pour une matrice vide
issparse vrai pour une matrice creuse Instructions spécifiques
isstr vrai pour une chaîne de caractères input indicateur d'attente d'entrée
strcmp comparaison de deux chaînes considère le clavier comme un fichier
keyboard
script

Textes et chaînes génère un menu de choix pour


menu
l'utilisateur
string à propos des chaînes dans MATLAB
pause attente
convertit une chaîne en valeur
abs function définition de fonction
numérique
blanks une chaîne d'espaces eval exécute un chaîne de caractère

évalue une chaîne contenant du code exécute une fonction définie dans une
eval feval
MATLAB chaîne

num2str convertit un nombre en chaîne global définit les variables comme globales

int2str convertit un nombre entier en chaîne nargchk valide le nombre d'arguments d'entrée

str2num convertit une chaîne en nombre


isstr vrai si l'élément est une chaîne Mise au point (debug)
strcmp comparaison de chaînes dbstop met un point d'arrêt
upper conversion en majuscule dbclear supprime un point d'arrêt
lower conversion en minuscule dbcont reprend l'exécution
convertit une chaîne héxadécimale en dbdown change le contexte local
hex2num
flottant dbstack affiche qui appelle qui
convertit une chaîne héxadécimale en dbstatus liste des points d'arrêt
hex2dec
entier
dbstep exécute une ou plusieurs lignes
convertit un entier en une chaîne
dec2hex affiche un M_files avec lignes
héxadécimale dbtype
numérotées
dbup inverse de dbdown
dbquit sortie du mode debug

Fonctions mathématiques élémentaires Fonctions trigonométriques


abs valeur absolue ou module sin, asin, sinh,
angle argument d'un complexe asinh
sqrt racine carrée cos, acos, cosh,
acosh
real partie réelle
tan, atan, tanh,
imag partie imaginaire atanh
conj complexe conjugué cot, acot, coth,
gcd PGCD acoth
lcm PPCM sec, asec, sech, 1./cos(z), acos(1./z),
round arrondi à l'entier le plus proche asech 1./cosh(z), acosh(1./z)

fix troncature csc, acsc, csch, 1./sin(z), asin(1./z), 1./sinh(z),


acsch asinh(1./z)
floor arrondi vers -
ceil arrondi vers +

TP de traitement du signal 46 Encadrer par le docteur : Mustapha ABARKAN


Traitement numérique du signal Science de la matière physique (S5)

sign signe de Fonctions prédéfinies


rem reste de la division bessel fonction de Bessel
exp exponentiel beta fonction beta
log log népérien gamma fonction gamma
log10 log décimal rat approximation par un rationnel
rats format de sortie pour rat
Décompositions et factorisations de Matrices erf fonction erreur erf
inv inversion erfinv inverse de erf
lu décomposition LU ellipke intégrale elliptique complète
rref réduction de lignes ellipj fonction elliptique de Jacobi
chol factorisation de Cholesky fonction intégrale exponentielle pour
expint
qr décomposition QR n=1
nnls moindres carrés non-négatif logarithme base 2 ou décomposition
log2
mantisse, exposant
moindres carrés avec covariance
lscov pow2 calcule 2 puissance y
connue
null noyau
orth orthogonalisation Fonctions de Matrices
eig valeurs et vecteurs propres expm exponentiation (fonction interne)
hess forme de Hessenberg expm1 M_file correspondant à expm
schur décomposition de Schur expm2 exponentiation par série de taylor
forme complexe diagonale vers forme exponentiation via les valeurs et
cdf2rdf expm3
réelle diagonale par blocs vecteurs propres
forme réelle diagonale par blocs vers logm logarithme
rsf2csf
forme complexe diagonale sqrtm racine carrée
mise à l'échelle pour le calcul des évaluation (ex: funm(A,'sin') donne
balance funm
valeurs propres sin(A))
qz valeurs propres généralisées poly polynôme caractéristique
polyeig polynôme aux valeurs propres det déterminant
svd décomposition en valeurs singulières trace trace
pinv pseudo-inverse
Conditionnement Polynômes
cond suivant norme L2 ( [( max)/( min)]) construit un polynôme à partir des
poly
rcond 1 bon , 0. mauvais racines
condest suivant norme L1 roots calcul des racines
norm normes L1, L2, Lp et L¥ roots1 calcul des racines
normest estimateur de la norme L2 polyval évaluation en un point
rank rang polyvalm évaluation en une matrice de points
conv multiplication
Analyse de données par colonne deconv division
max valeur max décomposition en éléments simples et
residue
residus
min valeur min
polyfit polynôme d'approximation
mean valeur moyenne
polyder différentiation
median valeur médiane
std écart type
Traitement de signal
sort tri en ordre croissant
corrcoef coefficients decorrélation
sum somme des éléments
cov matrice de covariance
prod produit des éléments
filter fitrage monodimensionnel
cumsum vecteur des sommes partielles

TP de traitement du signal 47 Encadrer par le docteur : Mustapha ABARKAN


Traitement numérique du signal Science de la matière physique (S5)

cumulées filter2 filtrage bidimensionnel


cumprod vecteur des produits partiels cumulés cplxpair tri en paires complexes
hist histogramme unwrap suppression des sauts de phase
puissance de 2 immédiatement
nextpow2
Equations non linéaires et Optimisation supérieure
minimisation d'une fonction d'une FFT monodimensionnel (fréquences
fmin fft
variable de 0 à 1)
minimisation d'une fonction de plusieurs fft2 FFT bidimensionnel
fmins
variables ifft FFT inverse
résolution d'un système d'équations non- ifft2 FFT inverse
fsolve
linéaires
fftshift FFT (fréquences de -1/2 à 1/2)
fzero zéro d'une fonction d'une variable
Intégration numérique
Graphiques 2D
quad intégrale de Simpson
plot graphe linéaire
quad8 intégrale de Newton-Cotes
loglog graphe en échelle log-log
trapz méthode des trapèzes
semilogx graphe en échelle semi-log (abscisse)
semilogy graphe en échelle semi-log (ordonnée) Annotation de graphiques
fill graphe de polynômes 2D remplis title titre du graphique
polar graphe en coordonnées polaires xlabel légende abscisse
bar histogramme bâtons ylabel légende ordonnée
stairs fonction en marches d'escalier zlabel légende cote
errorbar graphe avec barres d'erreur grid dessin d'une grille
hist histogramme text texte
rose histogramme en pseudo camembert gtext placement de texte avec la souris
représentation (module,argument) ginput entrée graphique par la souris
compass
polaire
représentation (module,argument)
feather
linéaire
fplot graphe d'une fonction

Contrôle des fenêtres graphiques Sauvegarde et copie graphique


figure ouvre une fenêtre graphique print imprime ou sauve dans un fichier
retourne le numéro de la figure printopt configuration de l'imprimante
gcf
courante orient orientation paysage ou portait
clf efface la figure courante
close ferme la figure courante Apparence des graphiques
hold gère la surimpression view spécifie l'angle de vue
ishold état de la surimpression viewmtx matrice de transformation
subplot sous fenêtres graphique hidden gère les lignes cachées
axes axes en position arbitraire shading mode de remplissage
gca retourne le numéro des axes courants specular reflectance d'une surface
contrôle l'apparence et l'échelle des diffuse reflectance d'une surface
axis
axes
surfnorm calcule la surface normale
contrôle l'échelle des axes et de la
caxis colormap table de correspondances couleurs
pseudocouleur
surbrillance ou sous brillance pour
whitebg dessine sur fond blanc brighten
colormap
cinvert video inverse
spinmap change colormap de manière cyclique

TP de traitement du signal 48 Encadrer par le docteur : Mustapha ABARKAN


Traitement numérique du signal Science de la matière physique (S5)

Graphiques tridimensionnels rgbplot dessine la colormap


mesh surface maillée hsv2rgb conversion hsv vers rgb
combinaison mesh + dessin des équi- rgb2hsv conversion rgb vers hsv
meshc
niveaux
meshz surface maillée avec plan de référence Opérations sur les objets graphiques
surf surface 3D à facettes création d'un interface de contrôle
uicontrol
combinaison surf + dessin des équi- utilisateur
surfc
niveaux création d'un interface menu
uimenu
surfl surface 3D à facettes avec éclairage utilisateur
plot3 dessin de lignes et points en 3D set définit les propriétés d'un objet
fill3 graphe de polynômes 3D remplis get lit les propriétés d'un objet
contour dessin 2D des équi-niveaux reset réinitialise les propriétés d'un objet
contour3 dessin 3D des équi-niveaux delete supprime un objet
contourc utilisé par contour force les évènements graphiques en
drawnow
attente
clabel étiquettes des équi-niveaux
pcolor dessine en pseudocouleur
Animations
affichage du gradient sous forme de
quiver initialise l'espace mémoire pour
flèches moviein
l'animation
image affiche une image
getframe enregistre une image pour l'animation
waterfall représentation chute d'eau
movie joue l'animation
slice visualisation en volume

Objets 3D
sphere génération de sphères
cylinder génération de cylindres
peaks démonstration

TP de traitement du signal 49 Encadrer par le docteur : Mustapha ABARKAN

Vous aimerez peut-être aussi