Académique Documents
Professionnel Documents
Culture Documents
Formation MATLAB 2007 - 2008
Formation MATLAB 2007 - 2008
Email : HBMVIPH@hotmail.com
2007-2008
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
1) Introduction.
2) La structure de logiciel MATLAB 6.5.
3) Types de formats connus par MATLAB.
4) Quelques commandes & constantes souvent utilisées.
5) Quelques fonctions I/O standard.
6) Instructions de contrôles :
- IF . . . ELSE . . . END.
- SWITCH . . . CASE . . . END.
- FOR . . . END.
- WHILE . . . END.
- L’instruction « BREAK ».
7) Manipulation des vecteurs.
8) Manipulation des matrices.
9) Manipulation des polynômes & nombres complexes.
10) Manipulation des chaînes de caractères & fonctions de conversions.
11) Programmation des fonctions & procédures sous MATLAB.
12) Le graphisme.
13) Les boites de dialogues & fonctions de chargement & sauvegarde
MATLAB (LOAD & SAVE).
14) Les Interfaces graphiques.
15) Manipulation des fichiers sous MATLAB.
16) Manipulation du port parallèle.
17) Manipulation de la carte son & filtrage numérique sous MATLAB.
18) SIMULINK.
2
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
1) Introduction :
MATLAB dont le nom provient de MATRIX LABORATORY est un langage
de calcul scientifique basé sur le type de variables matricielle. Outre ses grandes
capacités de calcul numérique appliqué à différents domaines scientifiques tels le
traitement de signal, l’automatique, etc., MATLAB intègre des fonctionnalités
graphiques de grande qualité en 2D ou 3D.
L’utilisation de MATLAB peut se faire de façon interactive en exécutant des
commandes directement après le prompt (>>) ou par des scripts (*.m). Ces derniers
peuvent être des simples programmes ou des fonctions avec des paramètres d’appel et
de retour. Les fonctions sont très utiles dans la mesure où chaque utilisateur peut
étendre les possibilités de MATLAB à son domaine d’application.
Le WORKSPACE ou
fenêtre des commandes.
(>>) : Prompt
Les figures de
L’Editeur de Script dessin
Type de fichiers :
Type de fichiers : (*.fig)
(*.m)
3
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
- Format complexe :
>> z = 4 + 5j
z =
4.0000 + 5.0000i
- Format logique :
>> a = logical(1)
a =
1
>> b = logical(0)
b =
0
>> whos a b
Name Size Bytes Class
- la commande WHOS : permet d’avoir la liste des variables connues dans le l’espace
de travail « WORKSPACE » avec leur nom, taille, nombre d’octets et classe.
>> x = 4.5;
>> z = 4 + 2.3i;
>> whos
Name Size Bytes Class
4
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
>> x = 4.5;
>> z = 4 + 2.3i;
>> a = logical(1);
>> d = 'MATLAB';
>> whos
Name Size Bytes Class
>> clear x a
>> whos
Name Size Bytes Class
>> pi
ans =
3.1416
>> realmax
ans =
1.7977e+308
>> realmin
ans =
2.2251e-308
>> inf
ans =
Inf
>> eps
ans =
2.2204e-016
5
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
a =
12.3250
String =
ATOUI Hamza
S = sprintf ( format , A , . . . )
Exemple :
Commande Résultat
sprintf('%0.5g',(1+sqrt(5))/2) 1.618
sprintf('%0.5g',1/eps) 4.5036e+15
sprintf('%15.5f',1/eps) 4503599627370496.00000
sprintf('%d',round(pi)) 3
sprintf('%s','hello') hello
sprintf('The array is %dx%d.',2,3) The array is 2x3
sprintf('\n') Nouveau ligne
Exemple :
>> S = '3.1416';
>> A = sscanf(S,'%f')
A =
3.1416
6
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
Exercices :
Exercice 1 :
Ecrire un programme qui calcul le périmètre d’un rectangle, carré et un
cercle.
Exercice 2 :
Ecrire un programme qui calcul la résistance équivalente des 3
résistances placées en parallèles puis en séries.
Exercice 3 :
Ecrire un programme qui calcul la valeur de la TVA (taxe sur valeur
ajoutée) et prix net (taxe incluse) à partir du prix hors taxe et du taux
de la TVA.
Exercice 4 :
Ecrire un programme qui lorsqu’on fait entrer un montant en dinars,
affiche le nombre de billets et de pièces qu’il faut pour réaliser ce
montant en supposant que les billets et pièces disponibles sont :
Pièces : 1, 5, 10, 50 DA.
Billets : 100, 200 DA.
On donne les commandes : « fix » et « rem/mod ».
7
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
6) Instructions de contrôles :
Comme les langages de programmation classiques, MATLAB dispose des
commandes du type FOR, WHILE, IF . . .
- IF . . . ELSE . . . END.
Syntaxe
Bloc Bloc1
d’instruction else elseif conditions
end Blok2
end elseif conditions
>> a = 4;
>> b = 5; else
>> c = 2;
>> delta = b^2 - 4*a*c;
>> if delta > 0 end
disp('2 solutions réelles');
elseif delta == 0
disp('solution double');
else
disp('2 solutions complexes');
end
2 solutions complexes
8
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
Exemple :
>> a = 4;
>> b = 5;
>> c = 2;
>> delta = b^2 - 4*a*c;
>> switch sign(delta)
case 1
disp('2 solutions réelles');
case 0
disp('solution double');
otherwise
disp('2 solutions complexes');
end
2 solutions complexes
Bloc d’instructions
end
Exemple :
Calcul de somme de N premier élément de l’ensemble naturelle :
>> N = 10;
>> S = 0;
>> for k=1:N
S = S+k;
end
>> S
S =
55
Bloc d’instructions
end
9
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
Exemple:
Calcul de produit de N premier élément de l’ensemble naturelle :
>> P = 1;
>> N = 4;
>> k = 1;
>> while k<=N
P = P * k;
k = k + 1;
end
>> P
P =
24
ans =
Exercices :
Exercice 1 :
Soit la fonction exprimée mathématiquement comme suit :
⎧x2 + y 2 si x > 0 et y > 0
⎪
F ( x, y ) = ⎨1 si x < 0 et y < 0
⎪x ailleurs
∀x, y ∈ ℜ ⎩
Donnez le programme qui calcul cette fonction.
10
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
Exercice 2 :
Ecrire un programme qui calcul le salaire net d’un ouvrier horaire. On
supposera que les heures supplémentaires (au-delà de 70h/mois) sont
payées à 125% du taux horaire de base, et qu’une retenue de 4.75%
s’applique à l’ensemble du salaire brut.
Exercice 3 :
Donnez le programme qui calcul la somme suivante :
S1 = 0 + 6 + 12 + 18 + . . . + 54.
S2 = 3 +5 +7 + . . . + (15 termes).
Exercice 4 :
Ecrire un programme qui permet d’afficher les diviseurs d’un nombre
entier.
Exercice 5 :
Donnez un programme qui affiche les 20 premiers nombres pairs, avec
leur somme à la fin du traitement.
Exercice 6 :
On appelle nombre premier, un nombre entier > 0 qui n’admet pas de
diviseurs que 1 et lui-même.
1- Donnez un programme qui détermine si un nombre est premier ou
non.
2- On utilise la tache précédente pour programmer un programme
qui affiche les N premiers nombres premiers.
11
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
Exemple :
X1 X2 X3 X4 X5
1 2 3 4 5
Tab =
La soustraction :
>> d = x-y
d =
-6 10 3
12
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
>> p = x.*y
p =
7 -25 40
La division :
>> Div = x./y
Div =
0.1429 -1.0000 1.6000
Entai division :
>> E = x.\y
E =
7.0000 -1.0000 0.6250
13
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
Exercices :
>> s = [1 4 5];
>> p = prod(s)
p =
20
>> s = [1 4 5];
>> cumprod(s)
ans =
1 4 20
14
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
>> d = [1 4 5 6 82 5];
>> diff(d)
ans =
3 1 1 76 -77
Génération aléatoire :
Vecteur de destruction uniforme aléatoire se génère par la fonction « rand ».
Syntaxe :
Rand (nombre des lignes , nombre des colonnes).
Exemple :
>> B = rand(1,5)
B =
0.9501 0.2311 0.6068 0.4860 0.8913
15
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
>> R = [4 5 7 8 1 22 5]
R =
4 5 7 8 1 22 5
% consultation de l’élément d’indice 3 :
>> R(3)
ans =
7
% consultation des éléments d’indices [1 3 4 6] :
>> R([1 3 4 6])
ans =
4 7 8 22
% consultation des éléments 1Î6 :
>> R(1:6)
ans =
4 5 7 8 1 22
Modification :
% modification de l’élément d’indice 3 :
>> R(3) = 100
R =
4 5 100 8 1 22 5
% modification des éléments d’indice [1 3 4 6] :
>> R([1 3 4 6]) = [786 785 782 178]
R =
786 5 785 782 1 178 5
% modification des éléments de 2Î4 par la même valeur:
>> R(2:4) = 0
R =
786 0 0 0 1 178 5
La suppression :
>> R = [4 5 7 8 1 22 5]
R =
4 5 7 8 1 22 5
% suppression de l’élément d’indice 6 :
>> R(6) = []
R =
4 5 7 8 1 5
% suppression des éléments [1 3 5] :
>> R([1 3 5]) = []
R =
5 8 5
16
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
>> x = [1 5 8];
>> y = [7 -5 5];
>> x > y
ans =
0 1 1
L’infériorité :
>> x < y
ans =
1 0 0
L’égalité :
>> x == y
ans =
0 0 0
L’inégalité :
>> x ~= y
ans =
1 1 1
Exercices :
Exercice 1 :
1- Générez un vecteur de 10 éléments par la boucle FOR.
2- Calculez leur somme par un algorithme et par la commande
« sum ».
3- Calculez la somme des éléments d’indice paire et les éléments
d’indice impair.
4- Générez un vecteur uniforme bruité (bruit additif).
5- Appliquez la fonction suivante sur le vecteur de la question 1.
N
A= ∑ (x
i =1
i − mx )2
Avec mx:la valeur moyenne de vecteur x.
17
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
Exercice 2 :
1- Calculez la fonction suivante :
f ( x) = y = cos(x) Avec
x ∈ [0, π ].
2- Donnez un algorithme qui calcul le nombre des éléments qui sont
supérieur ou égal zéro.
3- Ajoutez un bruit additif à la fonction f(x) et faite la même
question 2 sur le signal bruité.
4- Qu’est que vous avez remarqué ?
Exercice 3 :
1- générez la fonction suivante :
f ( x) = y = sin(x) Avec
x ∈ [0,2π ].
2- Calculez la valeur moyenne.
3- Calculez la valeur efficace par la formule suivante :
1 N
Veff ( x) = ∑
N i =1
(xi )2
∂f
4- Calculez la dérivé première de f(x). ∂x
Exercice 4 :
1- on demande de donner le programme qui fait le calcul de la
moyenne d’un étudiant « de chaque module et moyenne
générale » et l’affiche de la façon suivante :
Module note TD note EMD Coefficient Total moyenne
Math 5
Science 2
Physique 4
Info 5
Sport 2
Total xxxxxx
Moyenne générale : yyyyyyy
Mention : Ajourné ou admit (Passable, bien, très bien, …)
18
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
>> Matrice = [1 2 5; 4 7 8; 5 2 8]
1MatriceX2= X4 X6
1 2 5
2 4 7 8
5 2 8
Les fonctions « sum », « prod », « mean », et « diff » sont appliqués sur les colonnes
de la matrice :
>> sum(Matrice)
ans =
10 11 21
>> prod(Matrice)
ans =
20 28 320
>> mean(Matrice)
ans =
3.3333 3.6667 7.0000
>> diff(Matrice)
ans =
3 5 3
1 -5 0
>> Matrice = [1 2 5; 4 7 8; 5 2 8] ;
>> det(Matrice)
ans =
-79
19
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
>> eig(Matrice)
ans =
14.0307
-1.5844
3.5537
La matrice transposée :
>> Matrice = [1 2 5; 4 7 8; 5 2 8];
>> Matrice.'
ans =
1 4 5
2 7 2
5 8 8
Retournement du gauche vers la droite :
>> Matrice = [1 2 5; 4 7 8; 5 2 8]
Matrice =
1 2 5
4 7 8
5 2 8
>> fliplr(Matrice)
ans =
5 2 1
8 7 4
8 2 5
>> Matrice = [1 2 5; 4 7 8; 5 2 8]
Matrice =
1 2 5
4 7 8
5 2 8
>> flipud(Matrice)
ans =
5 2 8
4 7 8
1 2 5
20
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
Rotation à 90° :
>> Matrice = [1 2 5;4 7 8;5 2 8]
Matrice =
1 2 5
4 7 8
5 2 8
>> rot90(Matrice)
ans =
5 8 8
2 7 2
1 4 5
>> eye(3)
ans =
1 0 0
0 1 0
0 0 1
La matrice nulle : est une matrice de (n) lignes et de (m) colonnes contient des zéros.
>> zeros(3,4)
ans =
0 0 0 0
0 0 0 0
0 0 0 0
La matrice unité : est une matrice de (n) lignes et de (m) colonnes contient des uns.
>> ones(4,3)
ans =
1 1 1
1 1 1
1 1 1
1 1 1
21
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
La matrice aléatoire :
>> rand(4,4)
ans =
0.7621 0.4447 0.7382 0.9169
0.4565 0.6154 0.1763 0.4103
0.0185 0.7919 0.4057 0.8936
0.8214 0.9218 0.9355 0.0579
>> randn(4,5)
ans =
1.1909 0.1746 2.1832 0.0593 -1.3362
1.1892 -0.1867 -0.1364 -0.0956 0.7143
-0.0376 0.7258 0.1139 -0.8323 1.6236
0.3273 -0.5883 1.0668 0.2944 -0.6918
Le carré magique :
>> magic(3)
ans =
8 1 6
3 5 7
4 9 2
>> mat(1,3)
ans =
3.6000
>> mat(1:2,2:3)
ans =
1.0000 3.6000
1.2000 57.0000
22
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
>> diag(mat)
ans =
7.0000
1.2000
10.0000
Exercices :
Exercice 1 :
1- Trouvez la solution de système d’équation suivant :
⎧ x − y + 3z = 1 ⎫
⎪ ⎪
⎨ 2 x + y + 2 z = 0 ⎬
⎪− y − z = −1 ⎪
⎩ ⎭
Par la solution matricielle et la solution classique.
23
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
Exercice 2 :
Ecrire un programme qui permet de calculer la somme des éléments
placés au dessus de la diagonale et le produit des éléments placés au
dessous de la diagonale et de modifier la diagonale de la matrice
carrée par « 0 ».
Exercice 3 :
Ecrire un programme qui permet de réaliser les étapes suivantes :
1- Remplit 4 vecteurs T1, T2, T3, T4 de taille N = 5.
2- Remplit la matrice M1 par les vecteurs Ti en ligne.
3- Remplit la matrice M2 par les vecteurs Ti en colonne.
Exercice 4 :
1- Générez une matrice aléatoire de destruction normalisée.
2- Forcez les éléments qui sont >=0 à « 1 » et les éléments qui sont
<0 à « -1 ».
3- Transformez la matrice résultat à un vecteur puis rempliez un
autre vecteur de la façon suivante :
x y z
x x x y y y z z z
24
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
MATLAB représente les polynômes sous forme de vecteurs lignes dont les
composantes sont ordonnées par ordre des puissances décroissantes. Un polynôme de
degré « n » est présenté par un vecteur de taille « n+1 ».
Exemple :
f ( x ) = 2 x 5 + 3 x 3 − 4 x1 + 8
>> f = [2 0 3 0 -4 8]
f =
2 0 3 0 -4 8
>> roots(f)
ans =
-0.2065 + 1.6170i
-0.2065 - 1.6170i
-1.2788
0.8460 + 0.6793i
0.8460 - 0.6793i
25
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
>> f = [2 1 -2]
f =
2 1 -2
>> polyder(f)
ans =
4 1
% f’(x) = 4x+1
26
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
>> conj(z)
ans =
4.0000 - 7.0000i
>> z = 4 + 7i
z =
4.0000 + 7.0000i
>> compass(z)
27
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
28
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
Exercices :
Exercice 1 :
Tracez le polynôme f(x) = 2x2 + x – 2. Dans l’intervalle [-10, +10], on
donne la fonction plot(x, y) pour tracer une courbe selon l’axe des « x »
et des « y ».
Exercice 2 :
On donne le polynôme fractionnel suivant :
x +1
f ( x) =
x2 + 4x +1
1- Tracez f(x) sur son domaine de définition.
2- Calculez la dérivée première de f(x).
3- Tracez la dérivée à partir de résultat de la question 1.
Exercice 3 :
Etude d’un circuit électrique RLC :
Le circuit RLC suivant est attaqué par un signal sinusoïdal e(t) = ejwt.
Ve Vs
29
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
>> strcmp(string1,string2)
ans =
0
Si string1 est égal à string2, strcmp retourne la
valeur « 1 » sinon « 0 »
>> upper(str)
ans =
SIMULINK
30
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
>> lower(str)
ans =
guide "graphics user interface"
MATLAB 6.5
MATWORK
SIMULINK
31
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
1 1 1 1 1 1 0 0 0 0
ans =
1 9 16
>> x = strmatch('max',strvcat('max','minimax','maximum'))
x =
1
3
% La recherche exacte ou dés que il trouve le 1er élément on arrête
>> x = strmatch('max',strvcat('max','minimax','maximum'),'exact')
x =
1
32
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
reste =
is a good example.
A =
>> deblank(A)
ans =
'MATLAB' 'SIMULINK'
'Toolboxes' 'The MathWorks'
33
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
b- Fonctions de conversion :
b.1- Numéro vers string :
>> x = 12.58;
>> str = num2str(x)
str =
12.58
>> isstr(str)
ans =
1
34
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
>> d = 12;
>> hex = dec2hex(d,2) % hexa de 12 sur 2 digits
hex =
0C
>> isstr(hex)
ans =
1
% on remarque que hex est un string
>> d = 10 ;
>> dec2bin(d,8) % conversion sur 8 bits
ans =
00001010
>> v = [0 1 0 1];
>> binvec2dec(v)
ans =
10
35
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
Fonction
Exemple de compréhension :
Dans cet exemple on doit programmer une fonction qui simule une diode montée en
série avec une source.
Rappel :
La diode doit être passante si la tension Va > Vk sinon bloquée.
36
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
switch nargin
case 0
error('manque de paramètres d''entrées');
case 1
switch nargout
case 0
maxi = max(Vecteur)
mini = min(Vecteur)
case 1
maxi = max(Vecteur);
case 2
maxi = max(Vecteur);
mini = min(Vecteur);
otherwise
error('Beaucoup de paramètres de sorties');
end
otherwise
error('Beaucoup de paramètres d''entrées');
end
37
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
Exercices :
Exercice 1 :
A) Programmez les fonctions suivantes :
1- Fonction qui calcul la somme des nombres d’indice pair dans un
vecteur.
2- Fonction qui fait l’évaluation d’un polynôme fractionnel dans un
point ou plusieurs points.
3- Fonction qui calcul la somme ou la valeur moyenne selon le choix
de l’utilisateur.
4- Fonction qui fait le sur échantillonnage d’une vecteur
« UpSampler ».
B) Créez un ToolBox du nom « My_functions » et installez le dans la
liste des chemins MATLAB.
Exercice 2 :
Programmez un fonction qui calcul les racines d’un polynôme de 2ème
ordre ( f(x) = Ax2 + Bx + C = 0 ).
Exercice 3 :
Ecrire une fonction qui calcul le nombre de passage par zéro d’un signal
(vecteur). On donne : le passage par zéro sera détecté par la
vérification de signe de produit de deux éléments d’indice « n » et
« n+1 ».
Exercice 4 :
Programmez une fonction qui réalise le filtre numérique suivant :
M
y (n) = ∑ b(k ) × x(n − k )
k =1
M : le nombre des coefficients du filtre.
x : le signal à filtrer.
y : le signal résultat.
b : vecteur qui contient les coefficients du filtre numérique.
38
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
12) Le graphisme :
Le graphisme
2D 3D
39
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
Exemples:
>> x = 0:0.1:2*pi;
>> y = sin(x);
>> plot(x,y)
40
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
41
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
42
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
On peut tracer plusieurs courbes dans le même axe par les deux astuces suivantes :
Astuce 1 :
>> x = 0:0.1:2*pi;
>> y = sin(x);
>> g = cos(x);
>> plot(x, y, x, g)
Astuce 2 :
>> plot(x, y)
>> hold on, plot(x, g, 'r')
43
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
>> x = 0:0.1:2*pi;
>> y = sin(x);
>> stem(x, y,'*r')
>> stem(x, y,'fill','>b') % 'fill' : marker est plein
44
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
>> Y = round(rand(5,3)*10);
>> subplot(2,2,1), bar(Y,'group'),
>> title 'group'
>> subplot(2,2,2), bar(Y,'stack'),
>> title 'stack'
>> subplot(2,2,3), barh(Y,'stack'),
>> title 'stack horizontal'
>> subplot(2,2,4), bar(Y,1.5),
>> title 'Width = 1.5'
45
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
46
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
>> x = -pi:pi/20:pi;
>> plot(x,cos(x),'-ro',x,sin(x),'-.b')
>> legend('cos','sin');
47
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
48
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
>> A = rand(64,64,3);
>> imshow(A)
>> imwrite(A,'bruit.jpg','jpg');
49
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
13) Les boites de dialogues & fonctions de chargement & sauvegarde MATLAB :
Dans cette partie du cours, on va étudier les boites de dialogues sauvent utilisées dans
la programmation avancée.
50
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
51
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
answer =
'20'
'hsv'
52
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
53
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
Exercices :
Exercice1 :
1- On demande de faire la saisie d’un texte par une boite de
dialogue.
2- Calculez le nombre des mots qui compose ce texte.
3- Calculez la fréquence d’apparition de chaque lettre après le
UpperCasse du texte.
4- Sauvegarde les résultats obtenus précédemment dans le fichier
« texte.mat ».
5- On doit calculer le sinus et le cosinus d’un vecteur uniforme,
donc on doit le générer par la valeur initiale, finale et le pas. On
demande de saisir les éléments de génération d’un vecteur
uniforme par une boite de dialogue, puis calculez le sin et le cos
de ce vecteur.
6- Sauvegardez ces signaux (vecteur uniforme, sin, cos) dans le
fichier « signal.mat ».
7- Effacez l’espace de travail « workspace », puis chargez le
fichier « texte.mat ».
8- On demande après le chargement d’afficher les informations qui
donne par la commande « whos » dans une boite de dialogue.
9- Charger le fichier « signal.mat », et tracez le signal sin et cos
dans le même axe.
54
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
Objet graphique
Propriétés
Modification Consultation
55
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
Begin
End
56
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
- la fonction « FIGURE » :
Syntaxe :
figure.
figure (‘ propriétés ’, ‘ valeurs ’ ).
fig = figure (‘ propriétés ’, ‘ valeurs ’ ).
Exemple :
fig = figure('Menu' ,'none',...
'Numbertitle' ,'off',...
'Name' ,'Démonstration...',...
'Resize' ,'on',...
'WindowStyle' ,'Normal',...
'DoubleBuffer','on',...
'Units' ,'Normalized');
- la fonction « UIMENU » :
Syntaxe :
uimenu (‘ propriétés ’, ‘ valeurs ’ ).
File = uimenu (‘ propriétés ’, ‘ valeurs ’ ).
Exemple :
% le menu principale (FILE)
FileMenu = uimenu(fig,'Label','File');
% le sous menu (Open)
OpenMenu = uimenu(FileMenu,'Label' ,'Open',...
'Accelerator' ,'o',...
'Checked' ,'off',...
'Separator' ,'off',...
'Visible' ,'on',...
'Call' ,'');
- la fonction « AXES » :
Syntaxe :
axes (‘ propriétés ’, ‘ valeurs ’ ).
Axe1 = axes (‘ propriétés ’, ‘ valeurs ’ ).
Exemple :
axe1 = axes('Units' ,'Normalized',...
'Position' ,[0.1 0.55 0.4 0.4]);
57
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
- la fonction « UICONTROL » :
uicontrol (‘ propriétés ’, ‘ valeurs ’ ).
Control1 = uicontrol (‘ propriétés ’, ‘ valeurs ’ ).
Exemple :
%=================================================================
% Les controles MATLAB
% Frame ============> Cadre
% Slider============> Bar de défilement
% Edit==============> Editeur de texte
% ListBox===========> liste de choix
% Text==============> Zone de texte statique
% Checkbox==========> case à coché
% Radio=============> case d'option
% Popupmenu=========> Menu sur la figure
% PushButton========> Bouton poussoir
% ToggleButton======> Interrupteur (on, off)
%=================================================================
% Le controle PushButton
BoutonPoussoir = uicontrol('Style' ,'Push',...
'Units' ,'Normalized',...
'Position' ,[0.6 0.12 0.15 0.06],...
'String' ,'MATLAB',...
'ToolTipString','Hamza Atoui',...
'Call' ,'');
Exemple de démonstration :
Démonstration.m :
fig = figure('Menu' ,'none',...
'Numbertitle' ,'off',...
'Name' ,'Démonstration...',...
'Resize' ,'on',...
'WindowStyle' ,'Normal',...
'DoubleBuffer','on',...
'Units' ,'Normalized');
%=======================================================
% Création de menus
% le menu principale (FILE)
FileMenu = uimenu(fig,'Label','File');
% les sous_menus FILE.Open , FILE.Save ,FILE.Quit
% le sous_menu (Open)
OpenMenu = uimenu(FileMenu,'Label' ,'Open',...
'Accelerator' ,'o',...
'Checked' ,'off',...
'Separator' ,'off',...
'Visible' ,'on',...
'Call' ,'');
% le sous_menu (Sive)
SaveMenu = uimenu(FileMenu,'Label' ,'Save',...
'Accelerator' ,'s',...
'Checked' ,'on',...
'Separator' ,'on',...
'Visible' ,'on',...
'Call' ,'');
58
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
Démonstration.m (suite) :
%===============================================================
% Création des axes
axe1 = axes('Units' ,'Normalized',...
'Position' ,[0.1 0.55 0.4 0.4]);
axe2 = axes('Units' ,'Normalized',...
'Position' ,[0.55 0.55 0.4 0.4]);
%=========================================================================%
% Les controles MATLAB
% Frame ============> Cadre
% Slider============> Bar de défilement
% Edit==============> Editeur de texte
% ListBox===========> liste de choix
% Text==============> Zone de texte statique
% Checkbox==========> case à coché
% Radio=============> case d'option
% Popupmenu=========> Menu sur la figure
% PushButton========> Bouton poussoir
% ToggleButton======> Interrupteur (on,off)
%=========================================================================%
% La fonction principale de création d'un controle est:
% uicontrol('propriétés','valeurs')
% Le controle Frame
cadre = uicontrol('Style' ,'Frame',...
'BackGroundColor' ,[0.9 0.9 0.9],...%[R G B]
'Units' ,'Normalized',...
'Position' ,[0.1 0.1 0.85 0.3]);
% Le controle Slider
Bar1 = uicontrol('Style' ,'Slider',...
'Units' ,'Normalized',...
'Position' ,[0.1 0.43 0.4 0.05],...
'Max' ,100,...
'Min' ,1,...
'Value' ,25,...
'Call' ,'');
Bar2 = uicontrol('Style' ,'Slider',...
'Units' ,'Normalized',...
'Position' ,[0.55 0.43 0.4 0.05],...
'Max' ,100,...
'Min' ,1,...
'Value' ,75,...
'Call' ,'');
% Le controle Edit
Memo = uicontrol('Style' ,'Edit',...
'Units' ,'Normalized',...
'Position' ,[0.125 0.29 0.4 0.1],...
'Max' ,4,...
'String' ,strvcat('HBM Corporation','2006-2007'),...
'HorizontalAlignment','Center',... % or left, or right
'BackGroundColor' ,[1 1 1],...
'ForeGroundColor' ,[0 0 1],...
'Call' ,'');
59
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
Démonstration.m (suite) :
Editeur = uicontrol('Style' ,'Edit',...
'Units' ,'Normalized',...
'Position' ,[0.125 0.225 0.4 0.05],...
'String' ,'ATOUI HAMZA',...
'HorizontalAlignment','left',...
'BackGroundColor' ,[1 1 1],...
'ForeGroundColor' ,[0 0 0],...
'Call' ,'');
% Le controle Listbox
Liste = uicontrol('Style' ,'listBox',...
'Units' ,'Normalized',...
'Position' ,[0.125 0.115 0.4 0.1],...
'String' ,'Yes|No|Oky|Simulink',...
'Value' ,2,...
'Call' ,'');
% Le controle Text
TexteStatique = uicontrol('Style' ,'Text',...
'Units' ,'Normalized',...
'Position' ,[0.6 0.325 0.325 0.05],...
'BackGroundColor',[.8 .8 .8],...
'ForeGroundColor',[1 0 0],...
'FontSize' ,14,...
'FontName' ,'Courier New',...
'String' ,'MATLAB MATHWORK');
% Le controle CheckBox
CaseCoche = uicontrol( 'Style' ,'CheckBox',...
'Units' ,'Normalized',...
'Position' ,[0.6 0.25 0.15 0.05],...
'BackGroundColor' ,[0.9 0.9 0.9],...
'String' ,'Couleur',...
'Value' ,1,...
'Call' ,'');
% Le controle Radio
CaseOption = uicontrol( 'Style' ,'radio',...
'Units' ,'Normalized',...
'Position' ,[0.75 0.25 0.15 0.05],...
'BackGroundColor' ,[0.9 0.9 0.9],...
'String' ,'Type',...
'Value' ,0,...
'Call' ,'');
% Le controle PopupMenu
MenuPopup = uicontrol('Style' ,'Popupmenu',...
'Units' ,'Normalized',...
'Position' ,[0.6 0.2 0.325 0.05],...
'String' , 'Joune|Magenta|Cyan|Rouge|Vert|Bleu',...
'BackGroundColor',[1 1 1],...
'Value' ,4,...
'Call' ,'');
60
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
Démonstration.m (suite) :
% Le controle PushButton
BoutonPoussoir = uicontrol('Style' ,'Push',...
'Units' ,'Normalized',...
'Position' ,[0.6 0.12 0.15 0.06],...
'String' ,'MATLAB',...
'ToolTipString','Hamza Atoui',...
'Call' ,'');
% Le controle ToggleButton
interrupteur = uicontrol('Style' ,'Toggle',...
'Units' ,'Normalized',...
'Position' ,[0.775 0.12 0.15 0.06],...
'String' ,'SIMULASION',...
'Value' ,0,...
'Call' ,'');
61
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
Exercices :
Exercice 1 :
- Programmez une interface qui contient 2 champs de saisie, un
champ pour afficher le résultat de l’opération entre le champ1
et le champ2, un menu de choix pour choisir une des opérations
suivantes :(addition, soustraction), et un bouton pour faire
l’opération.
- Programmez la fonction d’appelle de bouton.
Exercice 2 :
- Programmez une interface qui contient un éditeur mémo pour la
saisie d’un texte, un champ de saisie et un bouton.
- Programmez la fonction de bouton qui fait le comptage du mot
indiqué par le champ de saisie et affiche le résultat dans une
boite de dialogue.
Exercice 3 :
- on doit réaliser un traceur des fonctions trigonométriques
suivantes (sin, cos, tan), on demande de programmer ce traceur
par votre conception .
Exercice 4 :
- Programmez le simulateur logique de TP TEC 464 des fonctions
(and , or, xor) d’une séquence des bits indiquée par l’utilisateur
(l’affichage sera par des cadres colorés).
Exercice 5 :
- Programmez une application sous MATLAB qui réalise les
opérations suivantes sur un vecteur ligne saisie par l’utilisation :
- La somme.
- La valeur moyenne.
- Le produit de tous les éléments.
- La différance élément par élément.
- Le tracer du vecteur par rapport au nombre des éléments.
62
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
Exercice 6 :
- on doit manipuler les fichiers de sauvegarde MATLAB « .mat »,
on demande de programmer un éditeur de texte qui contient le
menu suivant :
- l’ouverture d’un texte dans un fichier « .mat ».
- La sauvegarde d’une modification.
- Nouveau texte.
- Quitter.
Exercice 7 :
- Programmation d’un jeu de lumière par l’astuce des boucles
infinies.
- Contrôle d’un four par l’astuce des boucles temporisées.
Ecriture
Fermeture Lecture « FWRITE »
« FCLOSE » « FREAD »
Ouverture Accès
« FOPEN » « FSEEK »
Manipulation
Lecture d’une ligne
des fichiers
dans un fichier de type Lecture et écriture
texte formatée
« FGETL, FGETS» « FSCANF,
FPRINTF »
Remettre le
Message et numéro
fichier à la
d’erreur de la dernière Position en
position initial Indique la fin
opération I/O cours
« FREWIND » de fichier
« FERROR » « FTELL »
« FEOF »
63
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
Dans cette partie du cours, on utilise l’aide du MATLAB par « STARTÆHelp » pour
la syntaxe des différentes fonctions de manipulation des fichiers sous MATLAB.
Exercices :
Exercice 1 :
- Ecrire un programme qui permet de créer un fichier.
- Charger ce dernier par un tableau de N éléments « vecteur ».
- Après l’écriture de vecteur, on doit écrire un autre programme
qui fait l’ouverture de fichier créer dans la question 1 et lire le
tableau de N éléments dans un vecteur.
Exercice 2 :
- Ecrire un programme qui permet de copier le contenu d’un
fichier dans un autre.
- Faire le même travail de la question 1 avec un interface
graphique, on utilisant les fonctions « UIGETFILE,
UIPUTFILE » plus une boite de dialogue de type « WAITBAR »
pour indique l’état en cours de l’opération de transfert.
Exercice 3 :
- Ecrire un programme ou une interface qui permet de fusionner
deux fichiers de type texte dans un autre fichier.
- Après la fusion on demande d’afficher le contenu de fichier
fusionner.
Exercice 4 :
- Dans cet exercice on demande de programmer une interface qui
fait la gestion des fichiers texte comme des fichiers de base de
données (ajout d’un caractère, navigation,…).
- Les opérations demandées sont :
a- Ajouter un caractère.
b- Caractère précèdent.
c- Caractère suivant.
d- Aller vers le dernier caractère.
e- Aller vers le premier caractère.
f- Modifier un caractère.
g- Supprimer un caractère avec un message de confirmation.
64
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
21
20
19
18
17
16
15
14
9
1
- Description du brochage du connecteur DB25 F :
65
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
Port DATA : est un port de données de taille 8 bits configuré en sortie dans la
version standard.
P9 P8 P7 P6 P5 P4 P3 P2
D7 D6 D5 D4 D3 D2 D1 D0
Port STATUS : est un port de 5 bits configuré en entrée.
Les adresses des ports parallèles implantés dans les PC compatible PC IBM :
66
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
Création de l’objet
port parallèle
« DIGITALIO »
Après l’utilisation du
port parallèle on libère
par la fonction
« DETELE »
67
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
Exemple d’utilisation :
% Création de l'objet port parallèle
dio = digitalio('parallel',1); % "parallel" indique le hardware port //; "1" indique
% LPT1
display(dio);
% Déclaration des lignes
% port data en sortie dans la version "SPP" "standard'
dataport = addline(dio,0:7,0,'out');
display(dataport);
% "dio" c'est l'objet
% "0:7" vecteur des bits de registre de données
% "0" indique l'offset de registre de données par rapport à l'adresse de
% base du port LPT1
% "out" ou "in" indique le sens de transfert de données ou le registre
% port status en entrée
statusport = addline(dio,0:4,1,'in');
display(statusport);
% port control en sortie
controlport = addline(dio,0:3,2,'out');
display(controlport);
% on fait un programme de clignotement des LEDS relier au registre de
% donnée "dataport" répéter 20 fois
for k=1:20
disp(['Itération numéro : ' num2str(k)]);
putvalue(dataport,255); % on envoi 255 vers le port pour allume toutes les LEDS
pause(0.5); % délai de 500 ms
putvalue(dataport,0) % on envoi 0 vers le port pour éteinte toutes les LEDS
pause(0.5);
end
Exercices :
Exercice 1 :
- Ecrire un programme qui réalise le jeu de lumière suivant :
- Clignotement de toutes les LEDS.
- Défilement de droite à gauche.
- Défilement de gauche à droite.
- Clignotement 4/4 des LEDS
Exercice 2 :
- Ecrire un programme de transfert de données entre 2 PC à
travers le port parallèle. On suit les étapes suivantes :
- Ecrire une fonction qui envoi un octet avec accusé de réception.
- Ecrire une fonction qui reçu un octet avec accusé d’émission.
- Programmez deux interfaces, une pour l’émission et une autre
pour la réception.
68
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
Fs
Capteur
Bloquer d’ordre
Pré ampli Echantillonneur
zéro
N bits
ADC
N bits Filtre de
DAC reconstruction ou Amplificateur
d’interpolation
Fs Signal analogique
Charge
69
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
Accès
70
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
Exemple :
Programme de test des fonctions des fichiers « WAVE » :
% Fréquence d'échantillonnage
Fs = 11025;
% Enregistrement pendant 2 seconds
y = wavrecord(Fs*2,Fs,'double');
% Après l'enregistrement on doit lancer le lecteur wave
wavplay(y,Fs);
% sauvegarde de vecteur son "y" dans un fichier "wav"
wavwrite(y,Fs,'WAVFILE');
%******************************************************
%******************************************************
% Lecture d'un fichier "wav"
[g,Fg] = wavread('sinfoni.wav');
wavplay(g,Fg);
- Les filtres numériques ne sont pas sensibles aux non idéalités d'un
amplificateur opérationnel. Ainsi, un filtre IIR du 10ème ordre est tout à fait
envisageable (attention quand même au bruit de calcul !).
Inconvénients :
- Les filtres numériques nécessitent un filtrage analogique anti-repliement à
l'échantillonnage et à la restitution.
71
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
Filtres IIR Infinite Impulse Response. Ces filtres récursifs ont une contre-réaction.
Quelques fonctions souvent utilisées pour l’opération du filtrage des signaux
numérique :
FIR filter design.
cremez - Complex and nonlinear phase equiripple FIR filter design.
fir1 - Window based FIR filter design - low, high, band, stop, multi.
fir2 - FIR arbitrary shape filter design using the frequency sampling method.
fircls - Constrained Least Squares filter design - arbitrary response.
fircls1 - Constrained Least Squares FIR filter design - low and highpass.
firgauss - FIR Gaussian digital filter design.
firls - Optimal least-squares FIR filter design.
firrcos - Raised cosine FIR filter design.
intfilt - Interpolation FIR filter design.
kaiserord - Kaiser window design based filter order estimation.
remez - Optimal Chebyshev-norm FIR filter design.
remezord - Remez design based filter order estimation.
sgolay - Savitzky-Golay FIR smoothing filter design.
IIR digital filter design.
butter - Butterworth filter design.
cheby1 - Chebyshev Type I filter design (passband ripple).
cheby2 - Chebyshev Type II filter design (stopband ripple).
ellip - Elliptic filter design.
maxflat - Generalized Butterworth lowpass filter design.
yulewalk - Yule-Walker filter design.
Filter analysis.
abs - Magnitude.
angle - Phase angle.
filternorm - Compute the 2-norm or inf-norm of a digital filter.
freqs - Laplace transform frequency response.
freqspace - Frequency spacing for frequency response.
freqz - Z-transform frequency response.
fvtool - Filter Visualization Tool.
grpdelay - Group delay.
impz - Discrete impulse response.
phasez - Digital filter phase response.
phasedelay - Phase delay of a digital filter.
unwrap - Unwrap phase.
zerophase - Zero-phase response of a real filter.
zplane - Discrete pole-zero plot.
Filter implementation.
conv - Convolution.
conv2 - 2-D convolution.
convmtx - Convolution matrix.
deconv - Deconvolution.
fftfilt - Overlap-add filter implementation.
filter - Filter implementation.
filter2 - Two-dimensional digital filtering.
filtfilt - Zero-phase version of filter.
filtic - Determine filter initial conditions.
latcfilt - Lattice filter implementation.
medfilt1 - 1-Dimensional median filtering.
sgolayfilt - Savitzky-Golay filter implementation.
sosfilt - Second-order sections (biquad) filter implementation.
upfirdn - Up sample, FIR filter, down sample.
72
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
Exemple :
clear all,close all,clc
% Fréquence d'échantillonnage
Fs = 8000; % en Hertz
% on fait un enregistrement pendront une seconde
n = 1;
y = wavrecord(n*Fs,Fs,'double');
% on filtre le signal "y" par un filtre passe bande de type IIR,
% Création des coefficients du filtre par la fonction butter
ordre = 4;
bande = [500 4000]/Fs;
[num,den] = butter(ordre,bande);
figure, freqz(num,den,256); % repense fréquentielle de filtre pour 256 points
% l'opération de filtrage
g = filter(num,den,y);
% lecteur de signal son "y"
wavplay(y,Fs);
pause; % atteindre une touche de clavier
% lecteur de signal son "g"
wavplay(g,Fs);
% tracer des signaux "y" et "g" dont le nombre des échantillons à tracer est 100
figure,
subplot(211),plot(y(1:100));
subplot(212),plot(g(1:100));
Exercices :
Exercice 1 :
- Ecrire un programme de traitement du son dont les opérations à
réaliser sont :
1- L’enregistrement.
2- La sauvegarde et la lecture des fichiers son « wav ».
3- Le filtrage.
4- La segmentation.
5- Le lecteur « wavplay » pour les signaux (segmentés …).
6- L’affichage de différents signaux.
73
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
18) SIMULINK :
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.
Pour ouvrir un ancien fichier : faire File, Open ou cliquer sur l'icône
Pour insérer un bloc dans un fichier, il faut cliquer sur le bloc désiré puis le faire
glisser jusqu'à l'endroit approprié dans le fichier de travail, en maintenant le bouton
gauche de la souris enfoncé. Relâchez le bouton de la souris lorsque le bloc est placé à
l'endroit voulu. On peut rechercher un bloc de la liste en tapant une partie de son nom
dans la case blanche apparaissant en haut de la librairie, puis en appuyant sur
RETOUR.
74
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
Une fois les blocs insérés dans le fichier, il faut les relier. Pour relier des blocs entre
eux, cliquez sur le « triangle » apparaissant sur le premier bloc, maintenez le bouton
gauche de la souris enfoncé et faites glisser le curseur jusqu'au « triangle » du second
bloc. Si le lien est réalisé adéquatement, une flèche pleine devrait apparaître. Si le trait
symbolisant le lien n'est pas un trait plein ou s'il comporte un double flèche en son
centre, c'est que le lien n'a pas été réalisé correctement. Il faut donc supprimer le trait
et recommencer.
75
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
Figure 4 - Les deux onglets permettant d'ajuster les paramètres du « Time Scope »
Notez qu'il est possible d'avoir plusieurs entrées dans le bloc « Time Scope ». Pour ce
faire, il s’agit de :
1. double-cliquer sur ce bloc,
2. cliquer sur le bouton Properties, dans le haut de la fenêtre ayant apparu,
3. sous l'onglet General, changer le nombre d'axes spécifiés (voir figure 4b).
Enfin, lorsque les paramètres sont entrés, la simulation peut être amorcée de la façon
suivante:
1. cliquer sur l'icône
2. ou aller dans l'item Simulation du menu et faire Start.
76
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
Le nom ScopeData doit être remplacé par le nom de variable que l'on a choisi lorsque
l'on a ajusté les paramètres de l'oscilloscope ou du bloc « To Workspace ». Les
données de la première colonne de cette variable correspondent au temps où ont été
prélevés les échantillons, tandis que les valeurs de la deuxième colonne sont les
résultats eux-mêmes.
77
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
78
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
Fonctions logiques
all Détermine si tous les éléments de la matrice considérée sont
non nuls
any Détermine si l’un des éléments de la matrice considérée est
non nul
exist Détermine si la variable, la fonction ou le fichier considéré
existe
find Détermine les indices et la valeur des éléments non nuls d’un
tableau ou d’une matrice
is* Détermine un état
isa Détecte un objet d’une classe donnée
logical Convertit une valeur numérique en valeur logique
Fonctions binaires
bitand ET logique bit à bit
bitcmd Complément bit à bit
bitor OU logique bit à bit
bitmax Plus grand entier non signé représentable sur la machine
bitset Mise à 1 d’un bit à un emplacement donné
bitshift Décalage (à droite ou à gauche)
bitget Valeur d’un bit à une position donnée
bitxor OU EXCLUSIF bit à bit
Saisie interactive
input Interrompt l’exécution en attente d’une saisie de l’utilisateur
keyboard Interrompt l’exécution et donne le contrôle au clavier
menu Génère un menu de choix à destination de l’utilisateur
pause Interrompt temporairement l’exécution
79
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
Programmation
break Interrompt l’exécution de la structure de contrôle courante
case Sélection multiple
else Aiguillage
elseif Aiguillage multiple
end Sert à délimiter la fin d’une instruction for, if, switch ou
while
error Provoque l’affichage du message d’erreur passé en argument
et l’interruption du programme
for Boucle inconditionnelle
if Branchement conditionnel
otherwise Introduit le traitement par défaut d’un switch
return Retour à la fonction appelante
switch Sélection multiple
warning Provoque l’affichage du message d’alerte passé en argument
while Boucle conditionnelle
Date et heure
calendar Retourne une matrice représentant le calendrier du mois
spécifié
clock Retourne la date et l’heure courante sous forme d’un vecteur
[année mois jour heur minutes secondes]
cputime Calcule le temps écoulé entre deux dates
date Retourne la date courante
datenum Convertit une date sous forme de chaîne en un nombre
datestr Convertit une date sous forme de nombre en une chaîne
datevec Sépare les composantes d’une date, donnée sous forme d’une
chaîne ou d’un nombre, en un vecteur [y m d h m s]
eomday Détermine le jour de la fin d’un mois
etime Calcule le temps (en secondes) écoulé entre deux dates
données sous forme de vecteur [y m d h m s]
now Retourne la date et l’heure courante sous forme d’un nombre
tic Déclenche la fonction de chronométrage
toc Arrête la fonction de chronométrage
weekday Retourne le jour de la semaine, sous forme d’un nombre ou
d’une chaîne, d’une date donnée
80
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
Corrélation
corrcoef Coefficients de corrélation
cov Matrice de covariance
Filtrage et convolution
conv Convolution et produit de polynômes
conv2 Convolution bidimensionnelle
deconv Déconvolution et division de polynômes
filter Filtrage numérique avec filtres de type FIR et IIR
filter2 Filtrage numérique bidimensionnel
Transformation de Fourier
fft Transformée de Fourier rapide monodimensionnelle
fft2 Transformée de Fourier rapide bidimensionnelle
fftshift Permet le centrage du spectre d’une FFT
ifft Transformée de Fourier inverse monodimensionnelle
ifft2 Transformée de Fourier inverse bidimensionnelle
Différances finies
del2 Laplacien discret
diff Dérivation discrète
gradient Gradient numérique
81
Formation sur le logiciel MATLAB 6.5 par : ATOUI Hamza
Bibliographie :
- Traduction de l’édition originale anglaise Matlab Primer de K. Sigmon CRC
PRESS LLC 1998.
- MATLAB 5.2 & 5.3 et SIMULINK 2 & 3 pour étudiants ingénieurs « M.
Mokhtari » Springer 2000.
- Cours ELE2700 « ANALYSE DES SIGNAUX » INTRODUCTION À
MATLAB ET SIMULINK 2006.
- Cours de filtrage numérique par : « Denis Prêtre, dernière révision :
23/09/2004 ». l’école ARC INGENIERIE.
82