Presentation Du Logiciel Matlab
Presentation Du Logiciel Matlab
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.
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.