Presentation Du Logiciel Matlab

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

PRESENTATION DU LOGICIEL MATLAB

A la base, MATLAB est un logiciel de calcul scientifique. Il est disponible sur stations de
travail, PC et Macintosh. Ici, vous l’utiliserez sur PC sous Windows.
En plus du noyau de base permettant de faire du calcul scientifique, MATLAB possède un
grand nombre de boîtes à outils spécialisées dans différents domaines comme :
- l’automatique (commande, identification, ...)
- le traitement du signal
- les réseaux de neurones
- la logique floue
- les statistiques
- le calcul symbolique
- le traitement d’images
- ...
Dans le cadre des Travaux Pratiques de traitement du signal, nous travaillerons principalement
avec le noyau MATLAB et la boite à outils « Signal Processing ».
Pour lancer MATLAB, cliquez 2 fois sur l’icône correspondante sous Windows. La fenêtre
principale de MATLAB apparaît. Si vous tapez help, le programme liste l’ensemble des
ressources installées pour la configuration courante et notamment, il donne la liste des modules
de MATLAB ainsi que ceux des boîtes à outils dont on dispose. On obtient par exemple :
HELP topics:
toolbox\local - Local function library.
matlab\datafun - Data analysis and Fourier transform functions.
matlab\elfun - Elementary math functions.
matlab\elmat - Elementary matrices and matrix manipulation.
matlab\funfun - Function functions - nonlinear numerical methods.
matlab\general - General purpose commands.
matlab\color - Color control and lighting model functions.
matlab\graphics - General purpose graphics functions.
matlab\iofun - Low-level file I/O functions.
matlab\lang - Language constructs and debugging.
matlab\matfun - Matrix functions - numerical linear algebra.
matlab\ops - Operators and special characters.
matlab\plotxy - Two dimensional graphics.
matlab\plotxyz - Three dimensional graphics.
matlab\polyfun - Polynomial and interpolation functions.
matlab\sounds - Sound processing functions.
matlab\sparfun - Sparse matrix functions.
matlab\specfun - Specialized math functions.
matlab\specmat - Specialized matrices.
matlab\strfun - Character string functions.
matlab\dde - DDE Toolbox.
matlab\demos - The MATLAB Expo and other demonstrations.
simulink\simulink - SIMULINK model analysis and construction functions.
simulink\simdemos - SIMULINK demonstrations and samples.
simulink\blocks - SIMULINK block library.
simulink\sb2sl - SystemBuild 3.0 model import into SIMULINK.
toolbox\signal - Signal Processing Toolbox.
toolbox\wintools - GUI tools for MATLAB for MS Windows.
For more help on directory/topic, type "help topic".

On voit donc qu’on peut obtenir de l’aide sur une sous-rubrique en tapant : help
nom_de_rubrique. Par exemple, si l’on tape help signal, on obtient la liste de toutes les
fonctions disponibles dans la boite à outils « Signal Processing » :
Signal Processing Toolbox.
Version 3.0b 10-Jan-94
Waveform generation.
diric - Dirichlet (periodic sinc) function.
sawtooth - Sawtooth function.
sinc - Sinc or sin(pi*x)/(pi*x) function
square - Square wave function.
Filter analysis and implementation.
abs - Magnitude.
angle - Phase angle.
conv - Convolution.
fftfilt - Overlap-add filter implementation.
filter - Filter implementation.
filtfilt - Zero-phase version of filter.
filtic - Determine filter initial conditions.
freqs - Laplace transform frequency response.
freqspace - Frequency spacing for frequency response.
freqz - Z-transform frequency response.
grpdelay - Group delay.
impz - Impulse response (discrete).
unwrap - Unwrap phase.
zplane - Discrete pole-zero plot.
Linear system transformations.
convmtx - Convolution matrix.
poly2rc - Polynomial to reflection coefficients transformation.
rc2poly - Reflection coefficients to polynomial transformation.
residuez - Z-transform partial fraction expansion.
sos2ss - Second-order sections to state-space conversion.
sos2tf - Second-order sections to transfer function conversion.
sos2zp - Second-order sections to zero-pole conversion.
ss2sos - State-space to second-order sections conversion.
ss2tf - State-space to transfer function conversion.
ss2zp - State-space to zero-pole conversion.
tf2ss - Transfer function to state-space conversion.
tf2zp - Transfer function to zero-pole conversion.
zp2sos - Zero-pole to second-order sections conversion.
zp2ss - Zero-pole to state-space conversion.
zp2tf - Zero-pole to transfer function conversion.
IIR digital filter design.
besself - Bessel analog filter design.
butter - Butterworth filter design.
cheby1 - Chebyshev type I filter design.
cheby2 - Chebyshev type II filter design.
ellip - Elliptic filter design.
yulewalk - Yule-Walker filter design.
IIR filter order selection.
buttord - Butterworth filter order selection.
cheb1ord - Chebyshev type I filter order selection.
cheb2ord - Chebyshev type II filter order selection.
ellipord - Elliptic filter order selection.
FIR filter design.
fir1 - Window based FIR filter design - low, high, band, stop.
fir2 - Window based FIR filter design - arbitrary response.
firls - FIR filter design - arbitrary response with transition bands.
intfilt - Interpolation FIR filter design.
remez - Parks-McClellan optimal FIR filter design.
remezord - Parks-McClellan filter order selection.
Transforms.
czt - Chirp-z transform.
dct - Discrete cosine transform.
dftmtx - Discrete Fourier transform matrix.
fft - Fast Fourier transform.
fftshift - Swap vector halves.
hilbert - Hilbert transform.
idct - Inverse discrete cosine transform.
ifft - Inverse fast Fourier transform.

Comment travailler avec MATLAB ?


3 possibilités s’offrent à nous :
1) On tape directement des commandes MATLAB dans la fenêtre principale.
2) On édite un fichier appelé M-File auquel on donnera l’extension « .m » dans le répertoire de
travail. Ce fichier correspondra à une suite de commandes MATLAB mais pourra également
contenir des éléments de syntaxe correspondant à un langage de programmation ressemblant
beaucoup au langage C. Ceci vous permettra de faire des tests, des opérations répétitives grâce
aux boucles ... . Vous pourrez également appeler d’autres fonctions définies dans d’autres
fichiers d’extension .m.
3) On utilise l’interface graphique SIMULINK pour définir sous forme de schéma-bloc
la suite des traitements que l’on veut mettre en œuvre puis on agit au niveau de chaque bloc
fonctionnel pour ajuster les paramètres.
La troisième possibilité étant assez intuitive, nous ne la détaillerons pas ici. Par contre,
l’utilisation des 2 autres possibilités nécessitent de donner davantage de renseignements sur
MATLAB.
MATLAB : Concepts généraux
Dans Matlab, aucune déclaration préalable n’est nécessaire à l’utilisation d’une variable.
Matlab travaille principalement sur des vecteurs (au sens large, un scalaire est un vecteur de
dimension 1, une matrice est un vecteur multidimensionnel).
Ainsi x = [0,1,2] crée un vecteur ligne x de dimension 3 contenant 0, 1, 2.
Tout ordre Matlab tapé produit un « écho » du résultat. Si l’on ne veut pas de cet écho, il suffit
de rajouter un ; à la fin de la commande.
a = [1,0,0;0,1,0; 0,0,1] crée une matrice 3x3 identité.
a = 0:5 crée le vecteur [0,1,2,3,4,5].
a = 0:0.2:1 crée le vecteur [0,0.2,0.4,0.6,0.8,1].
On dispose des opérateurs suivants :
Char Name HELP topic
+ Plus arith
- Minus arith
* Matrix multiplication arith
.* Array multiplication arith
^ Matrix power arith
.^ Array power arith
\ Backslash or left division slash
/ Slash or right division slash
./ Array division slash
kron Kronecker tensor product kron
: Colon colon
( ) Parentheses paren
[ ] Brackets paren
. Decimal point punct
.. Parent directory punct
... Continuation punct
, Comma punct
; Semicolon punct
% Comment punct
! Exclamation point punct
' Transpose and quote punct
= Assignment punct
== Equality relop
< > Relational operators relop
& Logical AND relop
| Logical OR relop
~ Logical NOT relop
xor Logical EXCLUSIVE OR xor
Logical characteristics.
exist - Check if variables or functions are defined.
any - True if any element of vector is true.
all - True if all elements of vector are true.
find - Find indices of non-zero elements.
isnan - True for Not-A-Number.
isinf - True for infinite elements.
finite - True for finite elements.
isempty - True for empty matrix.
isreal - True for real matrix.
issparse - True for sparse matrix.
isstr - True for text string.
isglobal - True for global variables.
On peut par exemple faire l’addition de deux vecteurs a et b en faisant a+b. La seule contrainte
à respecter est la compatibilité des dimensions des 2 vecteurs. y = sum(a) donne la somme des
coordonnées du vecteur a. Si a est une matrice, sum(a) est un vecteur dont chaque coordonnée
est la somme des colonnes de a. Ceci est également vrai pour le produit y = prod(a).
x = a\b est la solution du système linéaire ax = b.
n = length(a) donne la longueur du vecteur a.
a = ones(n,m) crée une matrice nxm contenant des 1 partout.
a = zeros(n,m) crée une matrice nxm contenant des 0 partout.
a = diag(v) crée une matrice length(v) x length(v) ayant le vecteur v sur sa diagonale (et zéro
ailleurs).
Le langage de programmation pour l’édition de fichiers d’extension « .m »

La boucle FOR :
Syntaxe : FOR variable = expr, statement, ..., statement END
The columns of the expression are stored one at a time in the variable and then the following
statements, up to the END, are executed. The expression is often of the form X:Y, in which
case its columns are simply scalars. Some examples (assume N has already been assigned a
value).
FOR I = 1:N,
FOR J = 1:N,
A(I,J) = 1/(I+J-1);
END
END
FOR S = 1.0: -0.1: 0.0, END steps S with increments of -0.1
Les structures de tests, le IF :
Syntaxe : IF variable, statements, END
The statements are executed if the real part of the variable has all non-zero elements. The
variable is usually the result of expr rop expr where rop is ==, <, >, <=, >=, or ~=.
For example:
IF I == J
A(I,J) = 2;
ELSEIF ABS(I-J) == 1
A(I,J) = -1;
ELSE
A(I,J) = 0;
END
Autres éléments du langage en bref :
script - About MATLAB scripts and M-files.
function - Add new function.
eval - Execute string with MATLAB expression.
feval - Execute function specified by string.
global - Define global variable.
nargchk - Validate number of input arguments.
lasterr - Last error message.

Control flow.
if - Conditionally execute statements.
else - Used with IF.
elseif - Used with IF.
end - Terminate the scope of FOR, WHILE and IF statements.
for - Repeat statements a specific number of times.
while - Repeat statements an indefinite number of times.
break - Terminate execution of loop.
return - Return to invoking function.
error - Display message and abort function.
Interactive input.
input - Prompt for user input.
keyboard - Invoke keyboard as if it were a Script-file.
menu - Generate menu of choices for user input.
pause - Wait for user response.
uimenu - Create user interface menu.
uicontrol - Create user interface control.
Ecriture de fonctions :
Une fonction doit être stockée dans un fichier d’extension « .m » dans votre répertoire de
travail. Le nom de la fonction doit être le même que le nom du fichier qui la contient. Par
exemple, la fonction toto doit être stockée dans le fichier toto.m. La première ligne du fichier
toto.m doit toujour être : function y = toto(x,z,t)
où x,z et t sont les arguments passés à la fonction toto, y est le résultat renvoyé. On met dans
le fichier toto.m toutes les commandes Matlab que l’on veut. On peut également appeler
d’autres fonctions. Pour utiliser la fonction toto par la suite dans Matlab, il suffit de taper y =
toto(x,z,t) en n’oubliant pas d’initialiser x, z et t. Si la fonction toto a plusieurs paramètres de
sortie, la première ligne du fichier doit être « function[y,q,w] = toto(s,f) ».
Attention : ne pas donner à une fonction un nom déjà utilisé dans Matlab. Pour savoir si un
nom existe déjà dans Matlab, il suffit de faire : help nom. Si nom n’existe pas, la réponse de
Matlab est « nom not found ». Le même raisonnement doit être appliqué aux noms de
variables.
Affichage de courbes :
Matlab permet de tracer des courbes. Si x et y sont 2 vecteurs de même taille, plot (x,y) affiche
la courbe « continue » de l’ensemble des points de coordonnées (x,y) reliés par des segments
de droites.
plot(x,y,’o’) affiche l’ensemble des points (x,y) par le symbole ‘o’.plot(x,y,u,v,z,t) affiche les
courbes (x,y),(u,v) et (z,t).
On peut aussi faire varier le mode d’affichage : plot(x,y,’o’,u,v,z,t,’x’).
La commande hold on permet de conserver l’affichage. Dans ce cas on obtient une
superposition des différentes commandes plot. hold off annule cet effet.
subplot(221) découpe la zone d’affichage en 4 quadrants et les courbes apparaissent
successivement dans les 4 quadrants. plot(111) permet un retour à l’affichage standard.

Présentation de quelques fonctions utiles de MATLAB


Fonctions de génération de signaux élémentaires
square : Square wave generation.
square(T) generates a square wave with period 2*Pi for the elements of time vector T.
square(T) is like sin(T), only it creates a square wave with peaks of +1 to -1 instead of a sine
wave.
square(T,DUTY) generates a square wave with specified duty cycle. The duty cycle,
DUTY, is the percent of the period in which the signal is positive.
For example, generate a 30 Hz square wave:
t = 0:0.001:2.5;
y = square(2*pi*30*t), plot(t,y)
zeros : All zeros.
zeros(N) is an N-by-N matrix of zeros.
zeros(M,N) or zeros([M,N]) is an M-by-N matrix of zeros.
zeros(size(A)) is the same size as A and all zeros.
ones : All ones.
ones(N) is an N-by-N matrix of ones.
ones(M,N) or ones([M,N]) is an M-by-N matrix of ones.
ones(SIZE(A)) is the same size as A and all ones.
sin : Sine.
sin(X) is the sine of the elements of X.
Fonctions liées au calcul de la transformée de Fourier
fft : Discrete Fourier transform.
fft(X) is the discrete Fourier transform of vector X. If the length of X is a power of
two, a fast radix-2 fast-Fourier transform algorithm is used. If the length of X is not a power
of two, a slower non-power-of-two algorithm is employed.
fft(X,N) is the N-point FFT, padded with zeros if X has less than N points and
truncated if it has more.
If X is a matrix, the FFT operation is applied to each column. See also ifft, fft2, ifft2, fftshift.
abs : Absolute value and string to numeric conversion.
abs(X) is the absolute value of the elements of X. When X is complex, abs(X) is the
complex modulus (magnitude) of the elements of X.
See also angle, unwrap.
abs(S), where S is a MATLAB string variable, returns the numeric values of the ASCII
characters in the string. It does not change the internal representation, only the way it prints.
See also setstr.
real : Complex real part.
real(X) is the real part of X.
See also imag, conj, angle, abs.
imag : Complex imaginary part.
imag(X) is the imaginary part of X. See I or J to enter complex numbers.
See also real, conj, angle, abs.
angle : Phase angle.
angle(H) returns the phase angles, in radians, of a matrix with complex elements.
See also abs, unwrap.
fftshift : Move zeroth lag to center of spectrum.
Shift fft. For vectors fftshift(X) returns a vector with the left and right halves
swapped. For matrices, fftshift(X) swaps the first and third quadrants and the second and fourth
quadrants. fftshift is useful for FFT processing, moving the zeroth lag to the center of the
spectrum.
Fonctions de visualisation
plot : Plot vectors or matrices.
plot(X,Y) plots vector X versus vector Y. If X or Y is a matrix, then the vector is plotted versus
the rows or columns of the matrix, whichever line up.
plot(Y) plots the columns of Y versus their index. If Y is complex, plot(Y) is equivalent to
plot(real(Y),imag(Y)). In all other uses of plot, the imaginary part is ignored.
Various line types, plot symbols and colors may be obtained with plot(X,Y,S) where S is a 1,
2 or 3 character string made from the following characters:
y yellow . point
m magenta o circle
c cyan x x-mark
r red + plus
g green - solid
b blue * star
w white : dotted
k black -. dashed -- dashed
For example, plot(X,Y,'c+') plots a cyan plus at each data point.
plot(X1,Y1,S1,X2,Y2,S2,X3,Y3,S3,...) combines the plots defined by the (X,Y,S)
triples, where the X's and Y's are vectors or matrices and the S's are strings.
For example, plot(X,Y,'y-',X,Y,'go') plots the data twice, with a solid yellow line interpolating
green circles at the data points.
The plot command, if no color is specified, makes automatic use of the colors specified by the
axes ColorOrder property. The default ColorOrder is listed in the table above for color systems
where the default is yellow for one line, and for multiple lines, to cycle through the first six
colors in the table. For monochrome systems, plot cycles over the axes LineStyleOrder
property.
plot returns a column vector of handles to LINE objects, one handle per line.
The X,Y pairs, or X,Y,S triples, can be followed by parameter/value pairs to specify additional
properties of the lines.
See also semilogx, semilogy, loglog, grid, clf, clc, title, xlabel, ylabel, axis, axes, hold, and
subplot.
s the columns of X independently.

Vous aimerez peut-être aussi