Initiation Matlab

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 86

INITIATION

A MATLAB

Lionel PREVOST
Sommaire :
1 - Initiation Matlab

2 - Vecteurs et Matrices

3 - La Programmation Matlab

4 - Les Graphiques

5 Simulink

6 - Les Toolboxes
1 - INITIATION

A MATLAB

Lionel Prevost
Laboratoire des Instruments & Systmes
Universit Pierre & Marie Curie

INTRODUCTION 1
Introduction (1)
MATrix LABoratory

Logiciel qui permet, de manire


interactive :
de faire des calculs matriciels ;
d analyser les donnes ;
de visualiser les rsultats en 2D et 3D ...

Langage de programmation

Toolboxes : ensemble de fonctions


(fichiers .M) dveloppes pour des
domaines d applications spcifiques

SIMULINK : extension graphique


interactive de MATLAB
INTRODUCTION 2
Introduction (2)

INTRODUCTION 3
Fonctionnement
Mode interactif :
Les instructions sont excutes au
fur et mesure qu elles sont
entres par l utilisateur.

Mode programme :
MATLAB excute, ligne par ligne,
les instructions d un fichier .M

Type de variables :
unique : la matrice

INTRODUCTION 4
L espace de travail :
le Workspace (1)
La fentre de commande

INTRODUCTION 5
L espace de travail (2)
Dclarer des variables :
>> x =12.5 ; y = [1 -5 0 2] ;
dfinies et dimensionnes automatiquement
au fur et mesure de leur dclaration
stockes dans l espace de travail

S informer sur les variables :


>> who
Your variables are:
x y
>> whos
Name Size Bytes Class
x 1x1 8 double array
y 1x4 32 double array
Grand total is 5 elements using 40
bytes

INTRODUCTION 6
L espace de travail (3)
Supprimer une (ou toutes les) variable(s) :
>> clear x
>> clear all

Entrer une valeur au clavier :


>> x = input(Valeur de x =)
Valeur de x =12
x =
12

Afficher un texte l cran :


>> disp( Ceci est un test )
Ceci est un test

>> disp([ x vaut , num2str(x)])


x vaut12

INTRODUCTION 7
L espace de travail (4)

Grer les accs fichiers


>> pathtool

Editer les commandes :

INTRODUCTION 8
L aide sous MATLAB
>> helpdesk

>> help nom de commande fournit de


l aide sur l utilisation de la commande (et
les rubriques connexes).
>> lookfor mot-cl fournit la liste des
fonctions contenant le mot-cl.

INTRODUCTION 9
2 - VECTEURS
ET
MATRICES
Scalaires et oprations scalaires
Vecteurs et oprations vectorielles
Matrices et oprations matricielles
Polynmes

VECTEURS ET 1
MATRICES
Les scalaires (1)
Le scalaire : une matrice 1x1
>> s =2.5 ;
>> size(s)
ans =
1 1
ou
>> [i,j] = size(s)
i =
1
j =
1
Les format d affichage
format short 0.0333
format long 0.033333333333
format short e 3.3333E-002
format long e 3.333333333334E-002
format rat 1/30
VECTEURS ET 2
MATRICES
Les scalaires (2)
Les oprations arithmtiques
>> 3 +7 - 2 * 9
ans =
-8

divisions droite (/) et gauche (\)


lvation une puissance (^)

Quelques fonctions
fonctions trigo : cos acos cosh
exponentielle : exp
log nprien : log
log dcimal : log10
racine : sqrt
valeur absolue : abs
arrondis : round ceil floor
fix VECTEURS ET 3
MATRICES
Crer un vecteur (1)
Vecteur ligne
>> v1= [1 2 -5] ;
ou
>> v1(1) =1; v1(2) =2;v1(3)=-5;
ou
>> v1(1) = [1, 2 ,-5] ;

Vecteur colonne
>> v2=[-7;3];

Transposition :
>> v3=v2
v3 =
-73

VECTEURS ET 4
MATRICES
Crer un vecteur (2)
Le vecteur : une matrice 1xn
>> size(v1)
ans =
1 3

longueur d un vecteur
>> long_v1 = length(v1)
long_v1 =
3

Concatnation
>> v4 =[v1 v3]
v4 =
1 2 -5 -7 3
Vecteur vide
>> v =[ ] ;
VECTEURS ET 5
MATRICES
Crer un vecteur (3)
Gnration automatique
composantes espaces d un pas constant

syntaxe : v =debut : pas : fin

>> v5=1:0.5:3
v5=
1.000 1.500 2.000
2.500 3.000

v =linspace(1, 3, 5)

espacement logarithmique de 10debut 10fin

syntaxe : v =logspace(debut, fin, N)

VECTEURS ET 6
MATRICES
Oprations vectorielles (1)
Extraction
>> v4(3)
ans =
-5

Extraction selon un critre


>> i =find(v4 <0)
i =
3 4
>> v4(i)
ans =
-5 -7
Sous MATLAB, le premier indice
! d un tableau est 1
Tri ascendant
>> sort(v4)
ans =
-7 -5 1 2 3
VECTEURS ET 7
MATRICES
Oprations vectorielles (2)
oprations lmentaires
somme de vecteurs de mme dimensions
>> s = [2 1 -1] + [1 -3 5]
s =
3 -2 4
ajout d un scalaire
>> s + 2
ans =
5 0 6
produit de vecteurs de mme dimensions
>> p = [2 1 -1] * [1 -3 5]
p =
- 6
produit lment par lment
>> [2 1-1] .* [1 -3 5]
ans =
2 -3 -5

VECTEURS ET 8
MATRICES
Oprations vectorielles (3)
>> v = [1 2 -5 -7 3]
somme des lments d un vecteur
>> sum(v)
ans =
-6

produit des lments d un vecteur


>> prod(v)
ans =
210

moyenne : mean(v)
mdiane : median(v)
cart-type : std(v)
minimum : min(v)
maximum : max(v)

VECTEURS ET 9
MATRICES
Crer une matrice
Saisie d une matrice
lignes spares par un point virgule
>> M1=[1 0 3;2 5 1]
M1 =
1 0 3
2 5 1
lignes spares par un retour chariot
>> M1=[1 0 3
2 5 1]
M1 =
1 0 3
2 5 1

Dimensions
>> size(M1)
ans =
2 3

VECTEURS ET 10
MATRICES
Les matrices spciales (1)
Matrices identit, nulle et unit
>> IDENTITE =eye( 2,3)
IDENTITE =
1 0 0
0 1 0
ones (m,n) : matrice m x n dont tous les
lments valent 1
zeros(m,n) : matrice m x n dont tous
les lments valent 0

Si m=n, spcifier une seule dimension


>> UNITE =ones( 2)
UNITE =
1 1
1 1
VECTEURS ET 11
MATRICES
Les matrices spciales (2)
Matrices alatoires
Distribution normale (m = 0 , = 1) :
>> y = randn(10000,1) ;

Distribution uniforme (m = 1/2 , = 1/12) :


>> y = rand(10000,1) ;

800

600

400

200

0
-4 -3 -2 -1 0 1 2 3 4

250

200

150

100

50

0
0 0 .2 0 .4 0 .6 0 .8 1

VECTEURS ET 12
MATRICES
Oprations matricielles (1)
Extraction
d un lment
>> M1(2,1) >>
M1(4)
ans = ans =
2 2

d une ligne
>> M1(2, : )
ans =
2 5 1

d une colonne
>> M1( : ,2)
ans =
0
5
VECTEURS ET 13
MATRICES
Oprations matricielles (2)
Comparaison
>> M3 = [1 0 3 ; 2 5 1 ; 0 7
12] ;
>> M4 =ones(3) ;
>> M3 >M4
ans =
0 0 1
1 1 0
0 1 1
Extension des instruction min, max ...
>> max(M3) %maximum par colonnes
ans =
2 7 12
>> max(max(M3))
ans =
12
VECTEURS ET 14
MATRICES
Oprations matricielles (3)
Produit classique
Rappel : le produit de A(mxn) par B(pxq)
n est possible que si n = p et le rsultat est
de dimension mxq

Produit de Hadamard
ou produit lment par lment de deux
matrices de mmes dimensions

>> A = [1 2 ; 3 4]
>> A *A >> A .*A
ans = ans =
7 10 1 4
15 22 9 16

VECTEURS ET 15
MATRICES
Oprations matricielles (4)
Fonctions diverses
dterminant :
>> det(M)
norme
>> norm(M)
rang
>> rank(M)
inverse (et pseudo-inverse)
>> inv(M) >> pinv(M)
conditionnement
>> cond(M)
exponentielle
expm: vecteurs et valeurs propres
expm1: approximation de Pad
expm2: srie de Taylor

VECTEURS ET 16
MATRICES
Vecteurs et valeurs propres
>> M = [2 1 ; 1 2] ;
Polynme caractristique : |I - M| = 0
>> poly(M)
ans =
1 -4 3

Vecteurs et valeurs propres


>> [vec val] = eig(M)
vec =
0.7071 0.7071
- 0.7071 0.7071
val =
1 0
0 3

VECTEURS ET 17
MATRICES
Les polynmes
Vecteur ligne ensemble de donnes

Vecteur ligne polynme de degr n


p(x) = anxn + an-1xn-1 + ... + a1x + a0
>> p =[an an-1 ... a1 a0] ;
>> length(p)
ans =
n

>> p1 =[1 0 2] ; %p1(x) = x2 +


2
>> p2 =[2 4 0] ; %p2(x) = 2x2
+4x
coefficients entrs suivant les
! puissances dcroissantes de x
VECTEURS ET 18
MATRICES
Oprations polynomiales (1)
Multiplication de 2 polynmes
>> p3 =conv(p1, p2)
p3 =
2 4 4 8 0

p3(x) = 2x4 + 4x3 + 4x2 + 8x

Extension n polynmes
p4(x) = x(x + 2)(2x - 3)
>> p4 =conv([1 0],conv([1 2],[2
-3]))
p4 =
2 1 -6 0

Division de polynmes
>> p1 = deconv(p3, p2)
p1 =
1 0 2
VECTEURS ET 19
MATRICES
Oprations polynomiales (2)
Division de polynmes : cas gnral
p(x) = x3 + x - 1
d(x) = x2 + 3x - 4
>> [q,r] = deconv(p,d)
q =
1 -3
r =
0 0 14 -13

>> [res, poles, direct]


=residue(p,d)
res =
13.8000
0.2000 p( x ) 138. 0.2
= x 3 + +
poles = q( x ) x + 4 x 1
-4
1
direct =
1 -3
VECTEURS ET 20
MATRICES
Oprations polynomiales (3)

Racines d un polynme
>> poles_p4 = roots(p4)
poles_p4 =
0
-2.0000
1.5000

Inversement
>> p4 =poly(poles_p4)
p4 =
2 1 -6 0

VECTEURS ET 21
MATRICES
3 - LA PROGRAMMATION
MATLAB

Les oprateurs logiques


Les chanes de caractres
Les commandes structures
Les scripts et les fonctions
La programmation

LA PROGRAMMATION 1
MATLAB
Oprateurs logiques
== galit
~ = diffrence
<( <=) infrieur (ou gal)
>( >=) suprieur (ou gal)
& ET logique (AND)
~ NON logique (NOT)
| OU logique (OR)
xor OU exclusif (XOR)

Exemple :
>> a = [1 0 0 1] ;
>> b = [1 1 0 1] ;
>> a |b
ans =
1 1 0 1

LA PROGRAMMATION 2
MATLAB
Chanes de caractres (1)
Gnralits
chane = vecteur ligne
nombre de composantes = longueur de
la chane

Affectation
>> ch = bonjour monsieur
>> size(ch)
ans =
1 16
Conversions
num2str : nombre chane
mat2str : matrice chane
str2num : chane nombre

LA PROGRAMMATION 3
MATLAB
Chanes de caractres (2)
Ecriture de chanes formates
syntaxe :
text=sprintf( format1
format2... , data1, data2 ...)
exemple :
>> pi2 = pi^2
pi2 =
9.8696
>> text = sprintf( le carr de
pi vaut %3.2f , pi2)
text =
le carr de pi vaut 9.87

LA PROGRAMMATION 4
MATLAB
L instruction FOR (1)
parcours d'un intervalle
syntaxe :
for variable =debut : fin
instructions
..........
instructions
end
exemple : crer le vecteur [1 2 4 8 .... 2^10]
>> x=[ ];
x =
[ ]
>> for n=0:10 ; x =[x 2^n] ;
end
ou directement
>> for n=0:10; x(n +1)
=2^n;end LA PROGRAMMATION 5
MATLAB
L instruction FOR (2)
On peut utiliser un incrment (pas) autre
que 1 (valeur par dfaut).
syntaxe :
for variable =debut:pas:fin

Les bornes ne sont pas ncessairement


des entiers.

Le pas peut tre ngatif.

Il est possible d imbriquer les boucles

! Penser l indentation !!

LA PROGRAMMATION 6
MATLAB
La boucle WHILE
tant que . . . faire
syntaxe :
while expression
instructions
..........
instructions
end
exemple: calculer le plus petit entier n tel que
2^n soit suprieur un rel a donn.
>> max =1998; n=1;
>> while (2^n <max);n=n+1;end;
>> n
n =
11
LA PROGRAMMATION 7
MATLAB
Les ruptures de boucle
Il est possible de provoquer une sortie
prmature d'une boucle de contrle.

break termine l excution d une boucle.


for variable1 = debut1 :
fin1
instructions
..........
for variable2 = debut2 :
fin2
instructions
..........
break
instructions
end
instructions
end

return provoque un retour au programme


appelant (ou au clavier).
LA PROGRAMMATION 8
MATLAB
L instruction IF (1)
La squence d instructions intrieure
est excute si expression est vrai
(=1 logique).
syntaxe
if expression
instructions
. . . . . . . . .
instructions
end
expression peut tre simple ou
compose.
Exemple
if (a<0 & b<0)
disp( a et b ngatifs )
end
LA PROGRAMMATION 9
MATLAB
L instruction IF (2)
Permet de choisir entre deux options.
syntaxe
if expression
instructions 1
else
instructions 2
end
si expression n est pas vrifier alors
les instructions 2 sont excutes

LA PROGRAMMATION 10
MATLAB
L instruction IF (3)
Permet une slection multiple.
syntaxe
if expression1
instructions 1
elseif expression2
instructions 2
elseif expression3
instructions 3
. . . . . . . . . . .
else expressionN
instructions N
end

LA PROGRAMMATION 11
MATLAB
L instruction SWITCH
Permet une slection multiple.
syntaxe
switch variable
case variable =expression1
instructions 1
case variable =expression2
instructions 2
. . . . . . . . . .
Otherwise
instructions (erreur)
end

LA PROGRAMMATION 12
MATLAB
Script
Fichier (message.m par exemple)
contenant une suite d instructions
matlab.
Excut squentiellement dans
l espace de travail, il accde aux
variables (locales) qui s y trouvent.

%message.m affiche un message


if (temps)
disp(il fait beau )
end

>> temps = 1 ;
>> message
il fait beau

LA PROGRAMMATION 13
MATLAB
Fonctions (1)
Fichier (temps.m par exemple)
contenant une suite d instructions
matlab.

Reoit un (ou plusieurs) paramtre(s)


d entre.

Peut renvoyer un (ou plusieurs)


paramtre(s) en sortie ou n en
renvoyer aucun.

Commence par le mot rserv


function.

LA PROGRAMMATION 14
MATLAB
Fonctions (2)

function y = temps(x)
%retourne le temps en fonction de
if (x)
y = il fait beau
end

>> clear all


>> help temps
retourne le temps en fonction
de x
>> y = temps(1) ;
>> y
y =
il fait beau

LA PROGRAMMATION 15
MATLAB
Fonctions (3)
Evaluation d une fonction dfinie
dans un fichier (f1.m)
function y = f1(x)
y = 2*x.^2 - 5*x +1
>> x = -10:0.1:10;
>> y =feval( f1 , x) ;
>> plot(x,y)
300

250

200

150

100

50

-5 0
-1 0 -5 0 5 10

LA PROGRAMMATION 16
MATLAB
Programmation (1)
Forme gnrale d une
application MATLAB

SCRIPT

Fonction 1 Fonction 2 Fonction 3

Fonctions prives
Fonction 21
et/ou
sous fonctions
Fonction 22

LA PROGRAMMATION 17
MATLAB
Programmation (2)
Quelques recommandations
Choisir des noms significatifs pour les
variables et les fonctions

Documenter les fonctions (help)

Vrifier le nombre d arguments d entre


(nargin) et de sortie (nargout) des
fonctions

Eviter (autant que possible !) les boucles


for et while

LA PROGRAMMATION 18
MATLAB
Programmation (3)
Mesure de complexit algorithmique
nombre d oprations depuis le dbut de la
session MATLAB ou une remise zro
>> flop
remise zro du compteur
>> flop(0)
temps d excution (en secondes) :
>> A = rand(200);
>> tic ; inv(A *A) ; toc
elapsed_time =
12.4100

Le profiler ( >> help profile )


>> profile report
temps d excution total (en
secondes)
>> profile report N
N lignes demandant le plus de
temps d excution (en % du temps
total) LA PROGRAMMATION 19
MATLAB
Programmation (4)
Boucles et programmation matricielle
>> A = rand(200) ;
>> x = 0 ;
>> tic
>> for i = 1 : 200
for j = 1 : 200
x = x + A(i,j) ;
end
end
>> toc
elapsed_time =
4.5000
>> tic ; sum(sum(A) ; toc
elapsed_time =
0.0600

LA PROGRAMMATION 20
MATLAB
Programmation (5)
Le dbogage permet de corriger :
les erreurs de programmation (nombre
d arguments d entre et de sortie,
syntaxe des commandes ...)
les erreurs logiques (bugs)

Utiliser :
le point virgule ;
le mode keyboard : keyboard
pause
le dbugger
>> help debug
Debugging command ...

LA PROGRAMMATION 21
MATLAB
4 - LES GRAPHIQUES

Les graphes en 2D
Les graphes en 3D
L exportation de graphes

LES GRAPHIQUES 1
Tracer de courbes 2D (1)
La commande plot(x,y,s) trace la
courbe y en fonction de x avec les
attributs (facultatifs) s.

>> x =[-10:0.1:10];
>> y1 =x.^2;
>> plot(x, y1, r)

100

90

80

70

60

50

40

30

20

10

0
-1 0 -5 0 5 10

LES GRAPHIQUES 2
Tracer de courbes 2D (2)
plot(y) permet de tracer directement
le vecteur y en fonction de ses indices.

plot(x,y1,s1,x,y2,s2,...) trace
y1, y2 ... en fonction de x sur le mme
graphe avec les attributs s1, s2 ...
>> y2 =0.5*x.^2 - x + 1 ;
>> plot(x, y1, r, x , 2, b)

100

90

80

70

60

50

40

30

20

10

0
-1 0 -5 0 5 10

LES GRAPHIQUES 3
Lgender une courbe (1)
Insrer un titre
>> title(Trac de x^2 et
0.5x^2-x+1)

Lgender l axe des abscisses


>> xlabel(x : axe des
abscisses)

Lgender l axe des ordonnes


>> ylabel(y : axe des
ordonnes)

Insrer du texte
>> gtext(x^2)
>> gtext(0.5x^2 - x + 1)

Ajouter un quadrillage
>> grid

LES GRAPHIQUES 4
Lgender une courbe (2)
2 2
Tra c d e x e t 0 .5 x -x+1
100

90

80

70
2
x
y : a xe d e s o rd o nn e s

60

50

40

30

20
2
0 .5 x - x + 1
10

0
-1 0 -5 0 5 10
x : a xe d e s a b s is s e s

LES GRAPHIQUES 5
Manipuler un graphique
La commande zoom (2D seulement)
permet de zoomer sur une partie de
courbe avec le bouton gauche de la
souris (le bouton droit annule le zoom)

La commande axis permet de changer


les bornes de visualisation
syntaxe:
axis([xmin xmax ymin ymax])

Dans les deux cas :


focalisation sur une partie intressante
de la courbe
Lecture prcise du point d intersection
entre deux courbes

LES GRAPHIQUES 6
Tracer plusieurs courbes
Sur un mme graphique
>> plot(x, y1, r)
>> hold on
>> plot(x, y2, b)

Sur plusieurs graphiques diffrents


>> subplot(211), plot(x,
y1, r)
>> subplot(212), plot(x,
y2, r)
(Nb crans vertical, Nb crans horizontal, N cran)

100

50

0
-1 0 -5 0 5 10

80

60

40

20

0
-1 0 -5 0 5 10

LES GRAPHIQUES 7
Tracer le graphe d une
fonction
La commande fplot( f ,x)
permet d afficher les variations de la
fonction f1 (enregistre dans le
fichier f1.m) sur l intervalle x.

>> x =0:0.1:4*pi;
>> fplot (sin, x)

0 .8

0 .6

0 .4

0 .2

-0 .2

-0 .4

-0 .6

-0 .8

-1
0 2 4 6 8 10 12

LES GRAPHIQUES 8
Autres formats (1)
Coordonnes semilog et log-log
exemple : trac du diagramme de Bode
d un filtre.
Soit le circuit RLC de fonction de transfert :
1
H(jw) =
1 - LC2 + jRC
>> R =100 ; C =1e-3 ; L =0.1 ;
>> w =0 : 5000 ;
>> H =1./(1 - L*C*w.^2 +
R*C*w*i);
>> mod = abs(H) ;
>> phase = 180*angle(H)/pi ;
>> subplot(211),loglog(w,mod)
>> ubplot(212),semilogx(w,phase)

LES GRAPHIQUES 9
Autres formats (2)
0
m o d u le
10

-2
10

-4
10
0 1 2 3 4
10 10 10 10 10
p ha s e
0

-5 0

-1 0 0

-1 5 0

-2 0 0
0 1 2 3 4
10 10 10 10 10

De mme :
semilogy %ordonnes en logarithmique
bode(n,d)
n et d sont deux polynmes en (Cf chap
5) reprsentant le numrateur et le
dnominateur de la fonction de transfert.

LES GRAPHIQUES 10
Tracer une courbe 3D
Syntaxe : plot3(x, y, z, s)

>> t =0:0.1:25;
>> x = exp(-0.05*t).*cos(t) ;
>> y = exp(-0.05*t).*sin(t) ;
>> z = t ;
>> plot3(x, y,z)

25

20

15

10

0
1
0 .5 1
0 0 .5
0
-0 .5
-0 .5
-1 -1

LES GRAPHIQUES 11
Grer un graphique
Gestion des fentres
ouvrir une nouvelle fentre : figure

fermer une fentre : close

fermer toutes les fentres : close all

Exportation
crer un fichier postcript (qu il est
possible d importer dans un traitement de
texte). Son nom est alors fig.ps :
print -deps fig
sous Windows, activer
edit copy figure
puis coller (sous Word, Powerpoint ...)

LES GRAPHIQUES 12
5 - SIMULINK
L environnement et les blockset
Construire un schma de simulation
La simulation

SIMULINK 1
Simulink
>> simulink

SIMULINK 2
Le blockset Sources

SIMULINK 3
Le blockset Sinks

SIMULINK 4
Le blockset Linear

N(s) ais i
H(s) = =
D(s) bis i

N(s) (s - zi)
H(s) = =
D(s) (s - pi)

SIMULINK 5
Le blockset Discrete

N(z) aiz i
H(z) = =
D(s) biz i
N(z) (z - zi)
H(z) = =
D(z) (z - pi)

SIMULINK 6
Le blockset Non-linear

SIMULINK 7
Schma de simulation
Construire le schma

Sauvegarder :

SIMULINK 8
Fichier .M de paramtres

Sauvegarder
Excuter (pour dfinir les variables
dans l espace de travail)
SIMULINK 9
Le masquage
Slectionner avec le bouton gauche

SIMULINK 10
Asservissement de vitesse
Echelon de commande
Boucle ferme en vitesse
Correction proportionnelle

SIMULINK 11
Excution
simulation ! parameters
simulation linaire ! linsim
temps de simulation! StopTime
fixer
MinStepSize=MaxStepSize
simulation ! start

M o te u r C C : C o rr e c tio n P : K = 1 :1 0
1 .4

1 .2
K=10

K=2
K=1
0 .8

0 .6

0 .4

0 .2

0
0 5 10 15 20 25 30 35

SIMULINK 12
6 - LES TOOLBOXES

Signal
Control

LES TOOLBOXES 1
La Toolbox Signal (1)
Analyse spectrale : transforme de
Fourier
%gnration des signaux
N = 256 ;
t = 0:Te:(N-1)*Te ;
x1 = cos(2*pi*10*(0:N-1)*Te) ;
x2 = cos(2*pi*20*(0:N-1)*Te) ;
y= x1 + x2 +
1.5*randn(1,length(t));
%calcul des fft
fy = fft(y)/N ;
%affichage
f = (0:N-1)/Te/N ;
subplot(211) ;
plot(t,y) ;
title('y=cos(10t) + cos(60t)') ;
subplot(212) ;
plot(f,abs(fy)) ;
title( module de la TF de y') ;
LES TOOLBOXES 2
La Toolbox Signal (2)
y=c o s (1 0 t) + c o s (6 0 t) + b ruit
10

-5

-1 0
0 0 .5 1 1 .5 2 2 .5 3 3 .5 4

m o d ule d e la TF d e y
0 .8

0 .6

0 .4

0 .2

0
0 10 20 30 40 50 60 70

Transforme de Fourier inverse


>> ifft(y)*N ;

LES TOOLBOXES 3
La Toolbox Signal (3)
Les estimateur spectraux : fonctions
corrlation et covariance
>>xcorr (x,option)
estimateur d autocorrlation biais
(option=biased) ou non biais
(option=unbiased)

>>xcorr (x,y,option)
estimateur d intercorrlation

>>xcov (x,option)
estimateur d autocovariance

>> xcov (x,y,option)


estimateur d intercovariance

LES TOOLBOXES 4
La Toolbox Signal (4)
La troncature des signaux par la fentre
naturelle (rectangle) entrane des
ondulations dans l espace frquentiel
(phnomne de Gibbs)

Utilisation de fentres de pondration


qui rduisent ce phnomne
>>hamming (N)
>>hanning (N)
>>bartlett (N)
>>blackman (N)
o N reprsente le nombre de points de la
fentre

LES TOOLBOXES 5
La Toolbox Signal (5)

Synthse de filtres numriques


>> [b,a]=butter (n,fc,option)
filtre passe-bas de Butterworth d odre n,
de frquence de coupure normalise fc
(passe-bande si fc = [f1 f2])
option = high : passe-haut
option = stop : coupe-bande
>> [b,a]=cheby1 (n,
Rp,fc,option)
>> [b,a]=chevy2
(n,Rp,fc,option)
filtres de Chebychev de type I et II
>> [b,a]=ellip
(n,Rp,Rs,fc,option)
filtres elliptique
Rp : taux dondulation bande passante
Rs : taux d ondulation bande filtre
LES TOOLBOXES 6
La Toolbox Control (1)
Cration de modles
modle d tat
>> ss(A,B,C,D)

U + X X + Y
B C
+
+

A : matrice d tat
B : matrice de commande
C : matrice d observation
D : matrice de liaison directe

modle zros/ples
>> zpk(Z,P,K)
Z : zros de transmission
P : ples
K : gain
LES TOOLBOXES 7
La Toolbox Control (2)
Rponses temporelles
>> sys = zpk([],[-1],5)
Zero/pole/gain:
5
---------
(s +1)
>> step(sys) rponse indicielle
>> impulse(sys) rponse
impulsionnelle
>> lsim(sys,u) rponse l entre u
5 6

5
4

4
3
3
2
2

1
1

0 0
0 50 100 150 0 50 100 150

LES TOOLBOXES 8
La Toolbox Control (3)

Lieux de transfert
>> bode(sys) lieu de Bode:Hdb(),()
B o d e D ia g ra m s

15
10
P ha s e (d e g ); Ma g nitud e (d B )

0
-5
-1 0
0

-5 0

-1 0 0
-1 0 1
10 10 10
F re q ue nc y (ra d /s e c )

>> nyquist(sys) lieu de Nyquist :


Re(H),Im(H)
>> nychols(sys) lieu de Black : Hdb(),()
>> rlocus(sys) lieu dEvans
LES TOOLBOXES 9

Vous aimerez peut-être aussi