Académique Documents
Professionnel Documents
Culture Documents
SMP6-IEA, 2023
1. Objectif du TP
Le but de ce TP est de vous familiariser avec le logiciel MATLAB qui sera utilisé pour tous les TP de
traitement numérique du signal. Développé par la société The MathWorks, MATLAB (Matrix Laboratory)
est un environnement de calcul en ligne de commande permettant des calculs numériques et des
représentations graphiques très performant. Dans ce TP vous trouverez un bref descriptif du logiciel ainsi
que quelques-unes de ses fonctionnalités essentielles.
2. Prise en main
2.1. Interface
La version actuelle de MATLAB est R2021b. La figure 1 présente une capture de l’interface de MATLAB
R2013a (version 8.1). Toutes les fenêtres mentionnées dans la figure existent aussi dans les versions
antérieures (version 7 et 6).
Barre d’outils : c’est une barre qui contient plusieurs fonctionnalités comme créer un nouveau script,
ouvrir un fichier, importer des données, …
1
Zone de commandes : c’est la zone destinée à déclarer les variables et exécuter les différentes fonctions
de MATLAB.
Dossier courent : cette fenêtre contient le contenu du dossier courent où MATLAB est exécutées.
Liste de variables : c’est la liste de tous les variables en cours d’exécution ainsi que quelques informations
comme leurs tailles ou leurs contenus.
Historique : contient tous les commandes déjà exécutées groupé par date. Vous pouvez aussi accéder à
toutes les commandes déjà tapé en utilisant les flèches directionnelles.
2.2. Calcul élémentaire
Les opérations les plus courantes sont : +, *, -, /, ^. Le symbole ^ est dédié au calcul de la puissance. Le
résultat est mis automatiquement dans une variable appelée ans (answer). Celle-ci peut être utilisée pour le
calcul suivant. Voici quelques exemples :
>> (2*3)+(4/5)-6
ans =
0.8000
>>7^8
ans =
5764801
>> 9^(1/3+1.5)
ans =
56.1623
>> ans-1.23456789
ans =
54.9277
3. Variables et fonctions prédéfinies
3.1. Variables
Les exemples présentés précédemment non pas vraiment une grand utilité car la valeur de ans change à
chaque exécution d’une commande. Il est possible de stocker le résultat d’une commande dans une variable
afin de l’utiliser par la suite. Exemple :
>> a=3
a =
3
>> b=5
b =
5
>> c=a*b
c =
15
MATLAB contient aussi des variables préexistantes qui ne nécessitent pas une initialisation. À titre
d’exemple la constante π et le nombre complexe i :
>> i
ans =
0.0000 + 1.0000i
>> j
ans = 0.0000 + 1.0000i
>> pi
ans =
3.1416
2
3.2.Fonctions prédéfinies
Comme pour les variables, il existe dans MATLAB des fonctions prédéfinies pour nous faciliter la vie. On
retiendra que pour appliquer une fonction à une valeur, il faut mettre cette dernière entre parenthèses.
>> sin(pi/2)
ans =
1
>> abs(-20)
ans =
20
Voici quelques exemples de fonctions existantes sous MATLAB :
– fonctions trigonométriques et leurs inverses : sin, cos, tan, asin, acos, atan.
– fonctions hyperboliques (on rajoute «h») : sinh, cosh, tanh, asinh, acosh, atanh.
– racine, logarithmes et exponentielles : sqrt, log, log10, exp.
4. Tableaux et Matrices
MATLAB est destinée principalement à la manipulation des matrices. Pour lui toutes les variables sont des
matrices même s’elles ne contiennent qu’une valeur unique.
4.1. Définir un tableau ou une matrice
On utilise les crochets [ et ] pour définir le début et la fin d’une matrice. Ainsi pour créer une variable M
11 12 13
qui contient la matrice 21 22 23 on écrit :
31 32 33
>>M=[11 12 13; 21 22 23; 31 32 33]
M =
11 12 13
21 22 23
31 32 33
Nous séparons les lignes d’une matrice par ; et les valeurs des colonnes par un espace. Nous pouvons aussi
créer des vecteurs, à partir de la même syntaxe :
>> U=[1 2 3]
U =
1 2 3
>> V=[4;5;6]
V =
4
5
6
4.2. Accéder à un élément
Pour accéder à un élément de la matrice il suffit d’écrire le nom de la matrice suivi entre parenthèse par
l’indice de l’élément souhaité:
>>M(1,3)
ans =
13
La même logique est suivie pour modifier la valeur d’un élément de la matrice :
3
>>M(1,3)=0
M =
11 12 0
21 22 23
31 32 33
ans =
22 24 0
42 44 46
62 64 66
Opérations au sens matriciel : Puisque l’on peut manipuler des matrices, il parait intéressant de disposer
d’une multiplication Matricielle. Celle-ci se note simplement * et ne doit pas être confondu avec la
multiplication terme à terme. Bien sur les exigences mathématiques doivent être respectées. La même chose
reste valable pour les autres opérations (+, -, / ).
>> A=[1 2 3]
A =
1 2 3
>> B=[4; 5; 6]
B =
4
5
6
>> A*B
ans =
32
Pour calculer le transposer d’une matrice nous utilisant le nom de la matrice suivi par le caractère ‘.
>> M'
ans =
11 21 31
12 22 32
0 23 33
4
4.5.Génération rapide de matrices
On peut créer des matrices d’une taille donnée ne contenant que des 0 ou des 1 en utilisant respectivement
les deux fonctions zeros et ones. Il faut spécifier seulement le nombre de lignes et le nombre de colonnes.
ATTENTION : pour engendrer des vecteurs lignes (resp. colonnes), il faut spécifier explicitement «1»
pour le nombre de lignes (resp. colonnes). On peut aussi générer des matrices identité en utilisant la fonction
eye.
>> ones(2,3)
ans =
1 1 1
1 1 1
>> zeros(1,4)
ans =
0 0 0 0
>> eye(2)
ans =
1 0
0 1
On peut aussi générer dans un vecteur une liste de valeurs équidistantes entre deux valeurs extrême. La
syntaxe générale est :
plot([x1,x2,…,xn],[y1,y2,..,yn])
Les vecteurs peuvent être indifféremment ligne ou colonne, pourvu qu’ils soient tous les deux de même
type et de même taille. Par exemple si on veut tracer le sin(x) sur un intervalle de [0,2π] on commence par
créer une série de valeurs équidistantes sur cet intervalle :
>>x= 0 :2*pi/100 :2*pi
Puis, comme la fonction sin peut s’appliquer terme à terme à un tableau on peut écrire:
>> plot(x,sin(x))
5
Figure 2 le tracer de sin(x) avec la fonction plot dans l’intervalle [0,2π]
5.2. Subplot
Cette fonction sert à présenter plusieurs graphes sur la même figure. ATTENTION, cette fonction ne
permet pas de tracer plusieurs courbes dans le même graphe (on va voir cette fonction après). Les graphes
sont numérotés dans le sens de lecture d’un texte. La syntaxe globale de subplot est la suivante :
subplot(Nbre de graphe sur hauteur, Nbre de graphe sur largeur, Numéro du graphe)
>>subplot(2,2,1)
>>plot(x,sin(x))
>>subplot(2,2,2)
>>plot(x,cos(x))
>>subplot(2,2,3)
>>plot(x,tan(x))
>>subplot(2,2,4)
>>plot(x,sqrt(x))
>> x=1:100;
>> semilogx(x,log(x))
7
function [s1, s2, …, sn]= Ma_fonction (x1,x2,..,xn)
%le contenu de la fonction
…………
End