Documente Academic
Documente Profesional
Documente Cultură
INTRODUCERE N MATLAB
LUCRAREA 1
INTRODUCERE N MATLAB
1.1. Introducere
MATLAB este un pachet de programe dedicat calcului numeric i
reprezentrilor grafice. Elementul de baz cu care opereaz este matricea, de aici
provenind i numele su: MATrix LABoratory. Resursele sale de calcul i
reprezentare grafic sunt bogate, permind operaii matematice fundamentale,
analiza datelor, programare, reprezentri grafice 2D i 3D, realizarea de interfee
grafice etc. Din punct de vedere al construciei sale, MATLAB este alctuit
dintr-un nucleu de baz n jurul cruia sunt grupate TOOLBOX-urile. Acestea
reprezint nite aplicaii specifice, fiind de fapt colecii extinse de funcii
MATLAB care dezvolt mediul de programare de la o versiune la alta, pentru a
rezolva probleme din diverse domenii. n prelucrarea numeric a semnalelor cel
mai des utilizat este toolbox-ul SIGNAL PROCESSING.
1. INTRODUCERE N MATLAB
x =
3.1416
format long
x
x =
3.14159265358979
S se verifice i celelalte tipuri de format folosind aceeai valoare x.
clear terge din memorie una sau mai multe variabile.
Sintaxe:
clear v terge din memorie variabila v.
clear v1 v2 terge din memorie variabilele v1 i v2 (sintaxa e
valabil pentru oricte variabile).
clear terge din memorie toate variabilele definite pn n acel moment.
lookfor listeaz toate numele de fiiere care au n prima linie a help-ului
cuvintele menionate ca argument, precum i prima linie din help.
2
1. INTRODUCERE N MATLAB
Sintax:
lookfor cuvnt listeaz toate numele de fiiere care conin n prima
linie a help-ului cuvnt, precum i prima linie din help.
Exemplu:
lookfor ifft listeaz toate numele de fiiere care conin n prima linie
a help-ului ifft, precum i prima linie din help.
dir afieaz numele tuturor fiierelor din directorul curent sau din orice alt
director precizat ca argument.
Sintaxe:
dir afieaz numele tuturor fiierelor din directorul curent.
dir nume afieaz numele tuturor fiierelor din directorul nume.
cd returneaz numele directorului curent sau schimb directorul de lucru.
Sintaxe:
cd returneaz numele directorului curent.
cd c:\matlab\nume_director schimb directorul de lucru n
nume_director (presupunnd c MATLAB este instalat pe c:\).
Atenie: Un anumit program MATLAB aflat ntr-un anumit director nu poate fi
rulat dect dac directorul respectiv este directorul de lucru.
ans =
// nu s-a alocat nici un nume
3
x=2
x =
// s-a alocat numele x
2
pi valoarea .
Inf reprezentarea lui +.
NaN reprezentarea lui 0/0 sau /.
1. INTRODUCERE N MATLAB
Atenie:
- dac dup o linie de comand urmeaz semnul ; atunci rezultatul nu va
mai fi afiat (excepie fac comenzile grafice);
- dac n faa unei linii de comand se pune semnul % atunci se face
abstracie de linia respectiv (este interpret ca o linie de comentariu);
- dac se dorete continuarea unei instruciuni pe linia urmtoare se folosesc
urmate de enter;
Verificai urmtoarele exemple (se va tasta direct n fereastra de comenzi):
p=pi;
// nu se va afia valoarea p (dar exist n memorie)
q=pi/2
// va afia valoarea q
%r=pi/4
// nu se ia n considerare aceast linie
v=r/2
// va rezulta o eroare deoarece nu l cunoate pe r
s=1+2+3+... enter
4+5+6
// instruciunea se continu i pe linia urmtoare
1.2.3. Matricea element de baz n MATLAB
MATLAB lucreaz numai cu un singur tip de obiecte i anume matrice
numerice, avnd elemente reale sau complexe. Astfel scalarii sunt privii ca
matrice de dimensiune 1 x 1, iar vectorii ca matrice de dimensiune 1 x n (dac
este vector linie) sau n x 1 (dac este vector coloan).
Reguli privind modul de definire a matricelor:
- elementele matricei sunt cuprinse ntre paranteze drepte [ ]
- elementele unei linii se separ prin pauz (blanc) sau virgul
- liniile matricei se separ prin ; sau enter.
1
1 2 3
i vectorii B = (7 8 9 ) , C =
Exemplu: Fie matricea A =
4 5 6
2
A=[1,2,3;4,5,6]
A =
1
2
3
4
5
6
A=[1 2 3;4 5 6]
A =
1
2
3
4
5
6
A=[1 2 3 enter
4 5 6]
A =
1
2
3
4
5
6
B=[7 8 9]
B =
7
8
9
4
1. INTRODUCERE N MATLAB
C=[-1;-2]
C =
-1
-2
Pentru o matrice M:
- M(i,j) reprezint elementul din matricea M corespunztor liniei i i
coloanei j
- M(i) reprezint elementul i din matrice, numrarea elementelor fcndu-se
pe coloane.
Pentru un vector v:
- v(i) reprezint elementul de pe poziia i din vector.
Exemplu: Pentru A, B, C definite anterior verificai:
A(2,3)
ans =
A(4)
ans =
5
B(2)
ans =
8
C(2)
ans =
-2
A =
1
2
3
4
5
0
A(3,3)=-3
A =
1
2
3
4
5
0
0
0
-3
C(3)=6
C =
-1
-2
6
Se pot construi matrice de dimensiuni mai mari pornind de la matrice de
dimensiuni mai reduse. Pentru exemplificare vom folosi matricea A i vectorii B
i C n ultima lor form (A 3 x 3, B 1 x 3, C 3 x 1):
5
1. INTRODUCERE N MATLAB
D=[A;B]
D =
1
2
3
4
5
0
0
0
-3
7
8
9
// s-a construit matricea D de dimensiune 4 x 3, prin adugarea vectorului B la
matricea A (ca ultim linie).
Atenie: A i B au acelai numr de coloane (3) pentru a fi posibil construcia.
E=[A,C]
E =
1
2
3
-1
4
5
0
-2
0
0
-3
6
// s-a construit matricea E de dimensiune 3 x 4, prin adugarea vectorului C la
matricea A (ca ultim coloan).
Atenie: A i C au acelai numr de linii (3) pentru a fi posibil construcia.
1. INTRODUCERE N MATLAB
1. INTRODUCERE N MATLAB
x =
[]
1. INTRODUCERE N MATLAB
1. INTRODUCERE N MATLAB
1. INTRODUCERE N MATLAB
1. INTRODUCERE N MATLAB
Exerciiu.
1
Fie vectorii linie a = [0, 0.1, 0.2,",2] i coloan b = # .
1
a) Ce lungime trebuie s aib b astfel ca s aib sens nmulirea (n sens
matricial) a*b? Iniializai n MATLAB cei doi vectori i realizai nmulirea.
Ce operaie se efectueaz?
b) Realizai nmulirea b*a.
c) Realizai nmulirea element cu element a celor doi vectori. Ce rezultat se
obine?
12
1. INTRODUCERE N MATLAB
1. INTRODUCERE N MATLAB
Operatori relaionali
<
- mai mic
<=
- mai mic sau egal
>
- mai mare
>=
- mai mare sau egal
==
- identic
~=
- diferit
Operatori logici
&
- operatorul I logic
|
- operatorul SAU logic
~
- operatorul NU logic
1. INTRODUCERE N MATLAB
E2. Exerciiu:
Se creeaz un fiier nou care trebuie salvat n directorul d:/student/pns/nrgrupa
Folosind sintaxele i indicaiile din seciunile 1.2.6. i 1.2.7. realizai un program
MATLAB care s genereze un vector cu elemente aleatoare cu distribuie
normal (gaussian) i s afieze elementele negative ale acestui vector.
1.2.8. Crearea funciilor MATLAB (crearea fiierelor funcie)
Dac prima linie a unui fiier MATLAB (*.m) conine la nceput cuvntul
function atunci fiierul respectiv e declarat ca fiier funcie. Aceste fiiere
pot fi adugate ca funcii noi n structura MATLAB. Forma general a primei
linii a unui fiier funcie este:
function [parametrii_ieire]=nume(parametrii_intrare)
cu urmtoarele semnificaii:
- function cuvnt cheie care declar fiierul ca fiier funcie.
- nume numele funciei; reprezint numele sub care se salveaz fiierul .m
(extensia .m nu face parte din nume); acest nume nu poate fi identic cu cel al
unui fiier .m deja existent.
- parametrii_ieire reprezint parametrii de ieire ai funciei; trebuie
separai prin virgul i cuprini ntre paranteze drepte.
- parametrii_intrare reprezint parametrii de intrare ai funciei;
trebuie separai prin virgul i cuprini ntre paranteze rotunde.
1.2.9. Operaii aritmetice. Operaii asupra numerelor complexe
Operatori aritmetici
+
- adunare
- scdere
*
- nmulire
.*
- nmulire ntre dou matrice (sau vectori) element cu element
/
- mprire
./
- mprire ntre dou matrice (sau vectori) element cu element
^
- ridicare la putere
.^
- ridicare la putere a unei matrice (sau vector) element cu element
- transpunere i conjugare
.
- transpunere
15
1. INTRODUCERE N MATLAB
1. INTRODUCERE N MATLAB
1. INTRODUCERE N MATLAB
1. INTRODUCERE N MATLAB
E3. Exerciiu:
Realizai un program MATLAB care generaz un vector cu elemente complexe.
Realizai (un alt fiier) o funcie MATLAB care avnd drept parametru de
intrare vectorul cu valori complexe returneaz ca parametri de ieire:
- media aritmetic a prilor reale ale elementelor vectorului;
- un vector ce conine elementele vectorului iniial ridicate la ptrat;
- o matrice obinut din nmulirea vectorului iniial cu transpusul su.
Atenie:
Pentru a nu se afia rezultate intermediare din funcie sau elementele unor
variabile se va folosi ; la sfritul liniei respective de program.
1.2.12. Reprezentri grafice
plot,stem Reprezentri grafice n coordonate liniare
Sintaxe:
Dac v este un vector i M este o matrice atunci
- plot(v) dac v este un vector cu elemente reale se vor reprezenta grafic
elementele sale n funcie de indici (primul indice este 1, ultimul indice este
egal cu lungimea vectorului); dac v este un vector cu elemente complexe
atunci reprezentarea sa se va face n funcie de partea real (pe abscis) i de
partea imaginar (pe ordonat) a elementelor sale.
- plot(M) se vor reprezenta pe acelai grafic coloanele matricei M (fiecare
din coloanele matricei este privit ca un vector i reprezentat ca n sintaxa
precedent);
Dac x i y sunt doi vectori de aceeai lungime i N este o matrice de aceeai
dimensiune cu matricea M atunci
- plot(x,y) se vor reprezenta grafic elementele vectorului y n funcie de
elementele vectorului x; dac lungimea vectorului x nu este egal cu
lungimea vectorului y reprezentarea nu este posibil.
- plot(x,M) dac lungimea vectorului x este egal cu numrul de linii al
matricei M atunci se vor reprezenta pe acelai grafic coloanele matricei M n
funcie de elementele vectorului x; dac lungimea vectorului x este egal cu
numrul de coloane al matricei M atunci se vor reprezenta pe acelai grafic
liniile matricei M n funcie de elementele vectorului x; dac lungimea
vectorului x nu este egal cu una din dimensiunile matricei M atunci
reprezentarea nu este posibil.
- plot(M,N) se vor reprezenta pe acelai grafic coloanele matricei N n
funcie de coloanele matricei M (coloana k din matricea N va fi reprezentat
funcie de coloana k din matricea M, unde k = 1, 2, , numrul de coloane);
dac cele dou matrice nu au aceeai dimensiune atunci reprezentarea nu
este posibil.
19
1. INTRODUCERE N MATLAB
1. INTRODUCERE N MATLAB
Sintaxa:
- subplot(m,n,p) mparte fereastra grafic ntr-o matrice m x n (mn
miniferestre), iar p reprezint numrul fiecrei miniferestre n matricea
grafic respectiv (numrarea se face pe linii); sintaxa respectiv este urmat
de comanda propriu-zis de afiare a graficului, care poate fi oricare din cele
prezentate pn acum (stem, plot, loglog, semilogx, semilogy).
axis Schimbarea limitelor axelor
Dac se dorete vizualizarea numai a unei anumite poriuni dintr-un
grafic, corespunztoare unor anumite intervale pe abscis i ordonat, se va
folosi comanda axis.
Sintaxa:
- axis([x0 x1 y0 y1]) pe abscisa se va vizualiza ntre valorile x0 i
x1 iar pe ordonat ntre y0 i y1; aceast sintax se plaseaz dup comanda
de reprezentare grafic.
title,xlabel,ylabel,gtext,grid Precizarea titlului graficului
i a etichetelor axelor. Trasarea unei reele pe grafic. Plasarea unui text pe
grafic.
Sintaxe:
- title(text) plaseaz deasupra graficului, ca titlu, textul text.
- xlabel(text) textul text devine eticheta de pe abscis.
- ylabel(text) textul text devine eticheta de pe ordonat.
- grid traseaz pe grafic o reea de linii, nlesnind astfel citirea graficului.
- gtext(text) plaseaz pe grafic textul text (folosind mouse-ul).
Toate aceste sintaxe urmeaz dup comanda de reprezentare grafic.
hold Suprapunerea succesiv a graficelor
Dac dorim s reinem graficul curent i s adugm n aceeai fereastr
grafic urmtoarele reprezentri grafice se poate folosi funcia hold.
Sintaxa:
- hold on reine graficul curent i adaug n aceeai fereastr grafic
urmtoarele reprezentri grafice.
- hold off dac se dorete n continuare reprezentarea n ferestre grafice
separate (dezactiveaz comanda hold on).
Atenie:
Dac se dorete n cadrul unui program reprezentarea mai multor grafice n
ferestre separate, fiecare comand grafic va trebui s fie precedat de un
nume de forma figure(n), unde n este numrul figurii respective. n caz
21
1. INTRODUCERE N MATLAB
22
1. INTRODUCERE N MATLAB
E4. Exerciiu:
Realizai un program MATLAB n care s generai i s reprezentai grafic
folosind funcia stem urmtorii vectori:
a) z = [0,0,0,0,0,1,0,0,...,0] , vectorul z avnd lungimea 21. Reprezentarea
grafic se va face n dou miniferestre (funcia subplot) vectorul z n
funcie de n = 0:20 respectiv de m= 5:15.
b) t = 10 n , reprezentat grafic n funcie de n = 0:20.
c) x1 = sin n , 15 n 25 i x2 = cos
n , 0 n 50
17
23
cele dou secvene vor fi reprezentate n:
- figura 1 n acelai sistem de coordonate (pe acelai grafic);
- figura 2 folosind dou miniferestre grafice plasate una sub alta.
Reprezentai cele dou figuri folosind comanda plot iar apoi ncercai
reprezentarea lor folosind comanda stem.
Cu funcia plot se pot reprezenta grafic semnale sau funcii continue deoarece
se unesc cu linie continu valorile care se reprezint. Astfel se pot reprezenta
semnale continue alegnd variabila timp cu pasul mai mic dect variaia
semnalului reprezentat. De exemplu dac perioada semnalului e 0.01 secunde se
poate alege variabila temporal cu pasul de 0.001s: t = 0:0.001:5 (secunde).
Exemplu:
S se reprezinte grafic cu funcia plot un semnal sinusoidal de frecven 50 Hz,
de durat 0.2 secunde i amplitudine 2. Se va alege rezoluia temporal 1ms.
F = 50;
t = 0:0.001:0.2;
s = 2*sin(2*pi*F*t);
plot(t,s,'.-'),xlabel('Timp [s]'),grid
E5. Exerciiu:
a) Modificai pasul de variaie a variabilei t la 0.01 i apoi la 0.0002. Comentai
diferenele.
b) Msurai pe grafic perioada semnalului sinusoidal n cele 3 situaii.
c) Generai un semnal cosinusoidal de frecven 20 Hz pe care s-l reprezentai
cu culoare roie pe acelai grafic peste semnalul sinusoidal.
23
1. INTRODUCERE N MATLAB
F
s (n) = A0 sin(2 F0 n Ts ) = A0 sin 2 0 n
Fs
F
f 0 = 0 , respectiv pulsaia normat
Notnd frecvena normat
Fs
F
0 = 2 f 0 = 2 0 rezult:
Fs
s (n) = A0 sin(2 f 0 n) = A0 sin (0 n )
Exemplu:
S se reprezinte grafic cu funcia stem un semnal discret obinut prin
eantionarea unui semnal sinusoidal de frecven 300 Hz, de durat 10
milisecunde i amplitudine 1. Frecvena de eantionare Fs = 4kHz. Cte
eantioane are semnalul discret?
F0 = 300; Fs = 4000;
W0 = 2*pi*F0/Fs;
N = 10*4;
// Numar de esantioane N=10ms*4kHz
n = 0:N-1;
s = 2*sin(w0*n);
stem(n,s),grid
E6. Exerciiu:
Realizai un program care s genereze un semnal binar aleator (valori de 0 i 1),
perioada de bit: 0.5 ms eantionat cu frecvena de eantionare Fs = 12 kHz.
a) Reprezentai cu funcia plot semnalul continuu n timp absolut (n
milisecunde).
b) Reprezentai cu funcia stem semnalul discret n funcie de n.
24
1. INTRODUCERE N MATLAB
Tema de cas.
1. INTRODUCERE N MATLAB
26