Sunteți pe pagina 1din 26

1.

INTRODUCERE N MATLAB



1





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.2. Comenzi i funcii principale n MATLAB

MATLAB opereaz cu dou tipuri de ferestre:
1. fereastra de comenzi;
2. fereastra pentru reprezentri grafice.
La deschiderea programului MATLAB va aprea pe ecranul calculatorului
fereastra de comenzi, avnd n partea de sus bara de meniuri aferent. Simbolul
>> reprezint prompterul MATLAB i se afl la nceputul fiecrei linii de
comand din fereastra de comenzi. Ferestrele pentru reprezentri grafice vor
aprea atunci cnd se va cere prin comenzi specifice afiarea unor grafice.

Atenie: Comenzile introduse anterior pot fi readuse n linia de comand prin
folosirea sgeilor de la tastatur, i (cutarea se face ca ntr-o list).

1. INTRODUCERE N MATLAB



2
1.2.1. Funcii MATLAB de interes general

help furnizeaz informaii despre MATLAB i funciile acestuia.
Sintax:
help nume furnizeaz informaii despre nume (poate fi un nume de
funcie sau un nume de director).
Exemplu:
help fft furnizeaz informaii despre transformata Fourier discret.

who listeaz numele variabilelor din spaiul de lucru.

whos furnizeaz informaii suplimentare referitoare la variabilele din
spaiul de lucru (nume, dimensiune etc.).

format stabilete formatul extern de afiare al numerelor pe ecran.
Sintaxa:
format opiune parametrul opiune poate fi:
- short 5 cifre // formatul implicit
- long 15 cifre
- short e 5 cifre + exp (puteri ale lui 10)
- long e 15 cifre + exp (puteri ale lui 10)
etc.
Pentru mai multe informaii tastai help format.
Exemple:
format short
x=pi 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.

1. INTRODUCERE N MATLAB



3
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.



1.2.2. Variabile i constante speciale n MATLAB

ans variabil creat automat n care este returnat rezultatul unui calcul,
atunci cnd expresia nu a avut asignat un nume.
Exemplu (se va tasta direct n fereastra de comenzi):
3 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 /.

i sau j folosite reprezentarea numerelor complexe.


1. INTRODUCERE N MATLAB



4
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.

Exemplu: Fie matricea

=
6 5 4
3 2 1
A i vectorii ( ) 9 8 7 = B ,

=
2
1
C
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

1. INTRODUCERE N MATLAB



5
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 =
6
A(4) ans =
5
B(2) ans =
8
C(2) ans =
-2

Dac dorim s schimbm elementele unei matrice sau s mai adugm
alte elemente, fr a mai rescrie ntreaga matrice, procedm ca n exemplul
urmtor:
A(2,3)=0 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):

1. INTRODUCERE N MATLAB



6
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.

Dac v este un vector atunci:
v(i:k) selecteaz elementele de pe poziiile i, i + 1, i + 2, , k ale
vectorului v; dac i > k atunci vectorul rezultat este gol (nu are nici un
element).
v(i:j:k) selecteaz elementele de pe poziiile i, i + j, i + 2j, pn la
k, ale vectorului v (selecteaz cu pasul j); dac j > 0 i i > k sau j < 0 i i < k
atunci vectorul rezultat este gol.
v([i,j,k]) selecteaz elementele de pe poziiile i, j i k.
v(:) dac vectorul este linie atunci el devine coloan; dac vectorul este
coloan atunci el rmne nemodificat.

Dac M este o matrice atunci:
M(:,j) selecteaz coloana j a matricei M.
M(i,:) selecteaz linia i a matricei M.
M(:,i:j) selecteaz coloanele de la i la j ale matricei M.
M(i:j,:) selecteaz liniile de la i la j ale matricei M.
M(:,i:j:k) selecteaz coloanele i, i + j, i + 2j , pn la k ale matricei
M (selecteaz cu pasul j).
M(i:j:k,:) selecteaz liniile i, i + j, i + 2j , pn la k ale matricei M.
M(i:j,k:l) extrage submatricea format cu elementele aflate la
intersecia liniilor de la i la j i coloanelor de la k la l ale matricei M.
M(:,[i,j,k]) selecteaz coloanele i, j i k ale matricei M.
M([i,j,k],:) selecteaz liniile i, j i k ale matricei M.

1. INTRODUCERE N MATLAB



7
M([i,j,k],[l,m,n]) extrage submatricea format cu elementele
aflate la intersecia liniilor i, j i k i coloanelor l, m i n ale matricei M.
M(:,:) selecteaz ntreaga matrice M.
M(i:j) selecteaz elementele de i la j ale matricei M i le pune sub forma
unui vector linie (elementele ntr-o matrice se numr pe coloane).
M(:) selecteaz toate elementele matricei M i le pune sub forma unui
vector coloan (pune coloanele matricei M una sub alta, sub forma unui
vector coloan).

Verificai sintaxele de mai sus folosind matricea A i vectorii B i C din
exemplele anterioare sau construind alte matrice i vectori.


1.2.4. Vectori i matrice uzuale

Generarea vectorilor cu pas liniar
Sintaxe:
- v=iniial:pas:final se genereaz un vector linie v cu elementele
ncepnd de la iniial la final, cu pasul egal cu pas (pasul poate fi i
negativ dar atunci valoarea iniial trebuie s fie mai mare dect valoarea
final).
- v=iniial:final se genereaz un vector linie v cu elementele
ncepnd de la iniial la final, cu pasul egal cu 1.
- v=linspace(minim,maxim,numr_de_elemente) se genereaz
un vector linie v cu elementele ncepnd de la minim la maxim, cu pas
constant i avnd un numr de elemente egal cu numr_de_elemente.

Verificai urmtoarele exemple:
v=3:7:40
u=5:10
d=17:-3:4
l=linspace(17,58,4)
q=linspace(pi,-pi,6)

Generarea vectorilor cu pas logaritmic
Sintaxe:
- v=logspace(minim,maxim) se genereaz un vector linie v avnd 50
de elemente distribuite logaritmic ntre
minim
10 i
maxim
10 .
- v=logspace(minim,maxim,numr_de_elemente) se genereaz
un vector linie v avnd numr_de_elemente elemente distribuite
logaritmic ntre
minim
10 i
maxim
10 .

1. INTRODUCERE N MATLAB



8
Atenie: Dac maxim=pi atunci elementele vor fi distribuite logaritmic ntre
minim
10 i .

Verificai urmtoarele exemple:
g=logspace(1,2)
r=logspace(1,pi)
h=logspace(1,2,5)
k=logspace(0,pi,5)

Matricea goal
Sintaxa:
- x=[] genereaz o matrice goal (fr nici un element)

Exemplu:
x=[] x =
[]

ones - Matricea unitate
Sintaxe:
- ones(n) returneaz o matrice de dimensiune n x n cu toate elementele
egale cu 1.
- ones(m,n) returneaz o matrice de dimensiune m x n cu toate
elementele egale cu 1.
- ones(size(M)) returneaz o matrice de dimensiunea matricei M cu
toate elementele egale cu 1.

Verificai urmtoarele exemple:
ones(3)
ones(1,5)
ones(5,1)
ones(3,2)
ones(size(D)) // unde D este matricea definit anterior (vezi pag. 6)

zeros - Matricea zero
Sintaxe:
- zeros(n) returneaz o matrice de dimensiune n x n cu toate elementele
egale cu 0.
- zeros(m,n) returneaz o matrice de dimensiune m x n cu toate
elementele egale cu 0.
- zeros(size(M)) returneaz o matrice de dimensiunea matricei M cu
toate elementele egale cu 0.


1. INTRODUCERE N MATLAB



9
Verificai urmtoarele exemple:
zeros(3)
zeros(1,5)
zeros(5,1)
zeros(3,2)
zeros(size(D)) // unde D este matricea definit anterior (vezi pag. 6)

eye - Matricea identitate
Sintaxe:
- eye(n) returneaz o matrice identitate de dimensiune n x n.
- eye(m,n) returneaz o matrice de dimensiune m x n avnd elementele
primei diagonale egale cu 1 iar restul elementelor egale cu 0.
- eye(size(M)) returneaz o matrice de dimensiune egal cu
dimensiunea matricei M, avnd elementele primei diagonale egale cu 1 iar
restul elementelor egale cu 0.

Verificai urmtoarele exemple:
eye(3)
eye(2,3)
eye(3,2)
eye(size(D)) // unde D este matricea definit anterior (vezi pag. 6)

rand - Matricea cu numere aleatoare cu distribuie uniform
Sintaxe:
- rand(n) returneaz o matrice de dimensiune n x n avnd drept elemente
numere aleatoare cu distribuie uniform ntre 0 i 1.
- rand(m,n) returneaz o matrice de dimensiune m x n avnd drept
elemente numere aleatoare cu distribuie uniform ntre 0 i 1.
- rand(size(M)) returneaz o matrice de dimensiunea matricei M avnd
drept elemente numere aleatoare cu distribuie uniform ntre 0 i 1.

Verificai urmtoarele exemple:
rand(3)
rand(1,5)
rand(5,1)
rand(3,2)
rand(size(D)) // unde D este matricea definit anterior (vezi pag. 6)

randn - Matricea cu numere aleatoare cu distribuie normal (gaussian)
Sintaxe:
- randn(n) returneaz o matrice de dimensiune n x n avnd drept elemente
numere aleatoare cu distribuie normal (gaussian) de medie nul i variana
unitar.

1. INTRODUCERE N MATLAB



10
- randn(m,n) returneaz o matrice de dimensiune m x n avnd drept
elemente numere aleatoare cu distribuie normal de medie nul i variana
unitar.
- randn(size(M)) returneaz o matrice de dimensiunea matricei M
avnd drept elemente numere aleatoare cu distribuie normal (gaussian) de
medie nul i variana unitar.

Verificai urmtoarele exemple:
randn(3)
randn(1,5)
randn(5,1)
randn(3,2)
randn(size(D)) // unde D este matricea definit anterior (vezi pag. 6)

diag - Matricea diagonal
Sintaxe:
Dac v este un vector (linie sau coloan) atunci
- diag(v) returneaz o matrice ptrat diagonal, cu elementele vectorului
v pe diagonala principal.
- diag(v,k) returneaz o matrice ptrat cu elementele vectorului v pe
diagonala k deasupra celei principale, dac k > 0, sau sub cea principal dac
k < 0; restul elementelor sunt 0.
Dac M este o matrice atunci
- diag(M) returneaz un vector coloan ce conine elementele de pe
diagonala principal a matricei M.
- diag(M,k) returneaz un vector coloan ce conine elementele din
matricea M de pe diagonala k deasupra celei principale, dac k > 0, sau sub
cea principal, dac k < 0.

Se va defini un vector linie a i o matrice A:
a=randn(1,5)
A=randn(5)
Verificai urmtoarele exemple:
diag(a)
diag(a,1)
diag(a,-1)
diag(a,2)
diag(a,-2)
diag(A)
diag(A,2)
diag(A,-2)
diag(diag(A))

1. INTRODUCERE N MATLAB



11
tril - Matricea inferior triunghiular
Sintaxe:
- tril(M) extrage matricea inferior triunghiular din matricea M (anuleaz
toate elementele matricei M de deasupra diagonalei principale).
- tril(M,k) nlocuiete cu 0 toate elementele de deasupra diagonalei k
din matricea M (raportarea se face la diagonala principal vezi sintaxa de la
diag).

Pentru matricea A definit anterior verificai urmtoarele exemple:
tril(A)
tril(A,1)
tril(A,-1)

triu - Matricea superior triunghiular
Sintaxe:
- triu(M) extrage matricea superior triunghiular din matricea M (anuleaz
toate elementele matricei M de sub diagonala principal)
- triu(M,k) nlocuiete cu 0 toate elementele de sub diagonala k din
matricea M (raportarea se face la diagonala principal vezi sintaxa de la
diag).

Pentru matricea A definit anterior verificai urmtoarele exemple:
triu(A)
triu(A,1)
triu(A,-1)



1.2.5. Dimensiunea unei matrice. Determinantul i inversa unei matrice

length,size Determinarea dimensiunii variabilelor
Sintaxe:
Dac v este un vector i M este o matrice m x n atunci
- length(v) returneaz numrul de elemente (lungimea) vectorului v.
- length(M) returneaz maximul dintre numrul de linii i numrul de
coloane al matricei M (maximul dintre m i n).
- [l,c]=size(M) returneaz numrul de linii (l) i numrul de coloane
(c) pentru matricea M.
- [l,c]=size(v) n acest caz una dintre dimensiuni va fi egal cu 1; dac
v este un vector linie atunci l = 1, iar dac este coloan atunci c = 1.


1. INTRODUCERE N MATLAB



12
Se va defini un vector linie a, un vector coloan b i o matrice C:
a=randn(1,5)
b=randn(5,1)
C=randn(3,4)
Verificai urmtoarele exemple:
length(a)
length(b)
length(C)
size(a)
size(b)
size(C)

det Determinantul unei matrice
Sintax:
Dac M este o matrice ptratic (numrul de linii = numrul de coloane) atunci
- det(M) calculeaz determinantul matricei M.

Se vor defini dou matrice:
M=randn(4)
N=randn(4,3)
Verificai urmtoarele exemple:
det(M)
det(N)

inv Inversa unei matrice
Sintax:
Dac M este o matrice ptratic cu determinantul diferit de zero atunci
- inv(M) calculeaz inversa matricei M.

Verificai folosind matricele M i N definite la punctul precedent.

E1. Exerciiu.
Fie vectorii linie [0, 0.1, 0.2, , 2] = a i coloan
1
1


=



b .
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?


1. INTRODUCERE N MATLAB



13

1.2.6. Instruciuni de control logic. Operatori relaionali i operatori logici

if,else,elseif Execuia condiionat
Sintaxe:
- if expresie
instruciuni
end
// dac expresie este adevrat se execut instruciuni;
dac expresie este fals se trece dup end.
- if expresie
instruciuni_1
else
instruciuni_2
end
// dac expresie este adevrat se execut instruciuni_1;
dac expresie este fals se execut instruciuni_2.

- if expresie_1
instruciuni_1
elseif expresie_2
instruciuni_2
end
// dac expresie_1 este adevrat se execut instruciuni_1;
dac expresie_1 este fals i expresie_2 este adevrat se execut
instruciuni_2.

for Repetarea unui numr de instruciuni de un anumit numr de ori
Sintax:
- for index=iniial:pas:final
instruciuni
end
// pentru index parcurgnd intervalul de la iniial la final cu pasul
pas se execut instruciuni.

while Repetarea unui numr de instruciuni atta timp ct o condiie
specificat este adevrat
Sintax:
- while expresie
instruciuni
end

1. INTRODUCERE N MATLAB



14
// ct timp expresie este adevrat se execut instruciuni.

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.2.7. Crearea programelor MATLAB (crearea fiierelor de comenzi *.m)

Pentru secvene lungi de comenzi se recomand crearea i lansarea n
execuie a unui program MATLAB. Acesta este un fiier text avnd extensia
.m i coninnd succesiunea dorit de comenzi MATLAB. Dup creare, fiierul
devine o nou comand extern MATLAB, care poate fi lansat n execuie prin
simpla introducere de la tastatur a numelui fiierului (fr extensia .m).
Pentru crearea unui astfel de fiier se parcurg urmtorii pai:
- n bara de meniuri a ferestrei de comenzi se selecteaz File, iar n interiorul
acesteia New, urmat de M-file. Se va deschide astfel o nou fereastr (sesiune
de editare cu editorul NOTEPAD) cu bar de meniuri proprie i cu numele
Untitled. n acest fiier se scrie programul MATLAB dorit.
- pentru a salva fiierul astfel creat sub un alt nume se selecteaz din bara de
meniuri a noii ferestre comanda File, urmat de Save As; va aprea o nou
fereastr de dialog n care vom preciza numele fiierului (File name:) nsoit
de extensia .m i locul unde dorim s l salvm (Save in:).

Atenie:
- pentru a rula un program MATLAB trebuie ca directorul n care a fost salvat
s fie directorul de lucru (vezi comanda cd, pagina 3).
- pentru a fi luate n considerare eventualele modificri fcut ntr-un
program MATLAB, nainte de o nou rulare, fiierul trebuie salvat (File,
urmat de Save).
- denumirea fiierului nu trebuie s nceap cu cifre sau sa fie un cuvnt cheie
(instruciune) Matlab. Denumiri de genul ex_1.m sau progr_2.m sunt
suficiente.

1. INTRODUCERE N MATLAB



15
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


1. INTRODUCERE N MATLAB



16
S se defineasc urmtoarele elemente:

=
6 5 4
3 2 1
A ,

+
=
i i
i i
B
3
0 2 1
, ( ) 0 3 1 i a + = ,
2
1/ 3
2
b

=




Verificai i explicai urmtoarele exemple:
A+B , A+3 , B-2 , B-i , a+a , A*B , A.*B , A*B. , a.*a ,
a*a , A*a , A*a, A*a., A*b , B , B. , A , A. , A^2 ,
A.^2 , 1-b , b*b , b*b , b.*b , b^3 , b.^3 , 2/A , 2./A ,
2/b , 2./b .

Operaii asupra numerelor complexe
- abs calculeaz valoarea absolut (modulul).
- angle calculeaz faza.
- conj calculeaz complex conjugatul.
- real extrage partea real.
- imag extrage partea imaginar.
Verificai comenzile utiliznd drept argumente elementele A, B, a i b definite
anterior.


1.2.10. Funii matematice uzuale

Funciile radical, exponenial i logaritm
- sqrt extragere radical de ordinul 2 (rdcina ptrat).
- exp calculeaz exponeiala (puteri ale numrului e).
- log calculeaz logaritmul natural (logaritm n baza e).
- log2 calculeaz logaritmul n baz 2.
- log10 calculeaz logaritmul zecimal (logaritm n baza 10).
- pow2 calculeaz puteri ale lui 2.

Funciile trigonometrice directe
- sin calculeaz sinusul
- cos calculeaz cosinusul
- tan calculeaz tangeta
- cot calculeaz cotangenta
- sec calculeaz secanta
- csc calculeaz cosecanta

Funciile trigonometrice inverse
- asin calculeaz arcsinus

1. INTRODUCERE N MATLAB



17
- acos calculeaz arccosinus
- atan calculeaz arctangenta
- atan2 calculeaz arctangenta dac argumentul este complex
- acot calculeaz arccotangenta
- asec calculeaz arcsecanta
- acsc calculeaz arccosecanta

Funciile hiperbolice directe
- sinh calculeaz sinusul hiperbolic
- cosh calculeaz cosinusul hiperbolic
- tanh calculeaz tangeta hiperbolic
- coth calculeaz cotangenta hiperbolic
- sech calculeaz secanta hiperbolic
- csch calculeaz cosecanta hiperbolic

Funciile hiperbolice inverse
- asinh calculeaz arcsinus hiperbolic
- acosh calculeaz arccosinus hiperbolic
- atanh calculeaz arctangenta hiperbolic
- acoth calculeaz arcotangenta hiperbolic
- asech calculeaz arcsecanta hiperbolic
- acsch calculeaz arccosecanta hiperbolic

Pentru informaii despre modul de utilizare al acestor funcii folosii comanda
help nsoit de numele funciei dorite (vezi sintaxa de la pagina 2).

1.2.11. Funii destinate analizei de date

sum,prod Suma i produsul
Sintaxe:
Dac v este un vector i M este o matrice atunci
- sum(v) calculeaz suma elementelor vectorului v.
- prod(v) calculeaz produsul elementelor vectorului v.
- sum(M) returneaz un vector linie avnd ca elemente suma elementelor
fiecrei coloane din matricei M.
- prod(M) returneaz un vector linie avnd ca elemente produsul
elementelor fiecrei coloane din matricei M.

Se vor defini urmtoarele elemente:

=
6 5 4
3 2 1
A , ( ) 8 3 1 = a

1. INTRODUCERE N MATLAB



18

S se verifice urmtoarele exemple:
sum(a)
sum(A)
sum(sum(A))
prod(a)
prod(A)
prod(prod(A))

max,min Maximul i minimul
Sintaxe:
Dac v este un vector i M este o matrice atunci
- max(v) returneaz elementul maxim al vectorului v.
- min(v) returneaz elementul minim al vectorului v.
- [m,p]=max(v) returneaz elementul maxim al vectorului (m) precum i
indicele elementului maxim (p); dac exist maxime multiple se returneaz
indicele primului dintre ele.
- [m,p]=min(v) returneaz elementul minim al vectorului (m) precum i
indicele elementului minim (p); dac exist minime multiple se returneaz
indicele primului dintre ele.
- max(M) returneaz un vector linie avnd ca elemente maximul
elementelor din fiecare coloan a matricei M.
- min(M) returneaz un vector linie avnd ca elemente minimul elementelor
din fiecare coloan a matricei M.
- [m,p]=max(M) returneaz un vector linie m avnd ca elemente maximul
elementelor din fiecare coloan a matricei M precum i un vector linie p ce
conine poziia maximului respectiv n cadrul fiecrei coloane.
- [m,p]=min(M) returneaz un vector linie m avnd ca elemente minimul
elementelor din fiecare coloan a matricei M precum i un vector linie p ce
conine poziia minimului respectiv n cadrul fiecrei coloane.

Verificai sintaxele anterioare folosind matricea A i vectorul a definite mai sus.

mean Media aritmetic
Sintaxe:
Dac v este un vector i M este o matrice atunci
- mean(v) calculeaz media aritmetic a elementelor vectorului v.
- mean(M) returneaz un vector linie avnd ca elemente media aritmetic a
elementelor fiecrei coloane din matricei M.

Verificai sintaxele anterioare folosind matricea A i vectorul a definite mai sus.


1. INTRODUCERE N MATLAB



19
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.

1. INTRODUCERE N MATLAB



20
Pentru reprezentarea mai multor grafice n aceeai fereastr grafic, utiliznd o
singur comand, folosim
- plot(x1,y1,x2,y2,...,xn,yn) - se vor reprezenta pe acelai grafic
y1 n funcie de x1, y2 n funcie de x2, ,yn n funcie de xn (pot fi vectori
sau matrice); rmn valabile considerentele fcute n sintaxele anterioare,
referitor la cazurile cnd avem vectori sau matrice; dac xi i yi (i =1, 2,,n)
nu au aceeai dimensiune atunci reprezentarea nu este posibil.

Atenie:
Se pot folosi diverse linii, markere i culori de reprezentare a graficelor. Vezi
help plot.

Funcia stem realizeaz o reprezentare n form discret a datelor.
Pentru variantele de MATLAB 5 sau MATLAB 6 se pot folosi oricare din
sintaxele prezentate la plot, exceptnd ultima sintax. Pentru variantele de
MATLAB 4 argumentele de intrare ale funciei stem nu pot fi dect vectori, iar
reprezentarea grafic nu se poate face dect cu o singur culoare (se pot folosi
ns mai multe tipuri de linii i markere).
Vezi help stem.

loglog,semilogx,semilogy Reprezentri grafice n coordonate
logaritmice
Pentru acest tip de reprezentri se folosesc funciile loglog, semilogx
i semilogy. Sintaxele rmn aceleai ca la funcia plot, singura deosebire
fiind modul de scalare al axelor. Astfel funcia loglog scaleaz ambele axe
(abscisa i ordonata) folosind logaritmul n baz 10, deci pe axe vom avea puteri
ale lui 10. Funcia semilogx realizeaz acelai tip de scalare ns numai pe
abscis iar funcia semilogy procedeaz n acelai mod ns numai pe
ordonat.

subplot Divizarea ferestrei grafice
Dac dorim ca fereastra grafic s conin mai multe reprezentri grafice
se poate folosi funcia subplot care mparte fereastra grafic n mai multe
miniferestre, n fiecare dintre acestea putnd fi plasat cte un grafic. Fereastra
grafic este astfel privit sub forma unei matrice cu m linii i n coloane, deci n
total mn miniferestre. Numrarea acestor miniferestre se face pe linii. De
exemplu, dac vrem s mprim fereastra grafic n 33 = 9 miniferestre vom
avea urmtoarea ordine:
1 2 3
4 5 6
7 8 9

1. INTRODUCERE N MATLAB



21
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

1. INTRODUCERE N MATLAB



22
contrar, la sfritul execuiei programului va aprea numai ultima reprezentare
grafic (se va folosi o singur fereastr grafic ce va fi tears de fiecare
dat la ntlnirea unei noi comenzi grafice).

Exemple: Se vor tasta direct n fereastra de comenzi, explicnd rezultatele:
x=0:0.2:2*pi;
size(x)
s=sin(x);
size(s)
plot(s),grid,title(sinus),xlabel(n)
stem(s),grid,title(sinus),xlabel(n)
n=linspace(min(x),max(x),length(x));
size(n)
plot(n,s,r*),grid,title(sinus),xlabel(n)
hold on
stem(n,s),grid,xlabel(n),ylabel(amplitudine)
hold off
figure(1)
plot(n,s),grid,axis([0 pi min(s) max(s)])
figure(2)
plot(n,s,n,s-pi/2),grid
// se nchid ambele ferestre grafice i se continu tastarea n fereastra de comenzi
c=cos(x);
subplot(2,1,1),stem(n,s),title(sinus),grid
subplot(2,1,2),stem(n,c),title(cosinus),grid
M=[c;s];
plot(n,M),grid
N=[n;n];
plot(N,M),grid
plot(N,M),grid
z=1:1000;
p=z.^2;
plot(z,p),grid
loglog(z,p),grid
semilogx(z,p),grid
semilogy(z,p),grid
gtext(Ultimul grafic!!!)
// cu ajutorul mouse-ului plasai pe grafic textul respectiv, n poziia dorit.






1. INTRODUCERE N MATLAB



23
E4. Exerciiu:
Realizai un program MATLAB n care s generai i s reprezentai grafic
folosind funcia stem urmtorii vectori:
a) [0, 0, 0, 0, 0,1, 0, 0,..., 0] z = , 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) 10 = t n , reprezentat grafic n funcie de n = 0:20.
c)
1
sin
17
x n


=


, 25 15 n i
2
cos
23
x n

=


, 50 0 n
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.






1. INTRODUCERE N MATLAB



24
Un semnal discret provine din eantionarea unui semnal continuu cu o perioad
de eantionare T
s
. Valorile stocate n vectorul care reprezint semnalul discret
corespund valorilor amplitudinii semnalului continuu la momente ntregi de
perioada de eantionare ,
s
n T n .
( ) ( )
c s
s n s nT =
De exemplu pentru un semnal sinusoidal de frecven F
0
0 0
( ) sin(2 )
c
s t A F t =
Semnalul eantionat va fi:
0
0 0 0
( ) sin(2 ) sin 2
s
s
F
s n A F n T A n
F


= =



Notnd frecvena normat
0
0
F
f
Fs
= , respectiv pulsaia normat
0
0 0
2 2
s
F
f
F
= = rezult:
( )
0 0 0 0
( ) sin(2 ) sin s n A f n A 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 F
s
= 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 F
s
= 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.

1. INTRODUCERE N MATLAB



25
Tema de cas.

Se va genera un semnal discret obinut prin eantionarea cu frecvena de
eantionare de 8 kHz, 16 kHz sau 44 kHz a unui semnal continuu n timp pe o
durat de analiz de 64ms, 20ms respectiv 12 ms de tipul:

1. Semnal dreptunghiular periodic cu
Perioad: 2 ms.
Factor de umplere: 25%.
Nivel maxim: +0.5.
Nivel minim: -1.
2. Semnal triunghiular periodic
Perioad: 5 ms.
Nivel maxim: +1.
Nivel minim: -2.
Panta+ 1 V/ms Observaie: Panta [V/ms] rezult din calcule
3. Semnal dreptunghiular multinivel, aleator
Durata fiecrui nivel: 0,25 ms.
Nivelurile
a) {-1, 1}
b) {-3,-1,1,3}
c) {-5,-3,-1,1,3,5}
d) {-7,-5,-3,-1,1,3,5,7}
4. Semnal sinusoidal redresat mono alternan
Perioada semnalului sinusoidal iniial (neredresat) 3 ms.
Amplitudine: 0.8.
5. Semnal sinusoidal redresat dubl alternan
Perioada semnalului sinusoidal neredresat: 4 ms.
Amplitudine: 1.5.
6. Semnal sinusoidal modulat n amplitudine ( ) ( )
0 0
( ) 1 sin cos
MA
s t U m t t = +
Perioada semnalului sinusoidal modulator: 5 ms.
Frecven purttoare: 3 kHz.
U
0
= 0.5.
Indice de modulaie 30%.
7. Semnal sinusoidal modulat MA-PS ( )
0 0
( ) sin cos
MA
s t U t t =
Perioada semnalului sinusoidal modulator: 4 ms.
Frecven purttoare 2.5 kHz.
U
0
= 0.8.
8. Semnal sinusoidal cu frecven variabil liniar (vezi funcia Matlab chirp)
Frecvena la sfritul duratei de analiz 500Hz Obs. Rezoluia
variabilei temporale va fi perioada de eantionare.


1. INTRODUCERE N MATLAB



26
Realizai un program Matlab n care:
a) Reprezentai semnalul continuu n timp absolut (n milisecunde).
b) Reprezentai semnalul discret n funcie de n.
c) Calculai componenta continu i reprezentai semnalul fr component
continu.
d) Calculai rata de treceri prin 0.
e) Calculai energia.
f) Calculai puterea medie.
g) Reprezentai derivata (aproximat cu diferene finite de ordinul 1).

Tema trebuie realizat individual. n situaii de genul stm doi n camer i
avem acelai calculator, m-a ajutat altcineva, etc. pentru teme similare se
anuleaz punctajul alocat temei.
Tema trebuie predat la urmtoarea lucrare de laborator. Dup acest termen
tema respectiv nu se mai puncteaz.
Tema va fi tiprit i va include programele Matlab, explicaii/comentarii,
graficele obinute.
Pentru a redacta tema se va crea un document Word n care se copiaz
listingurile programelor i figurile.
Pentru a copia graficele se folosete Copy Figure din meniul Edit al
ferestrelor Matlab Figure. Se d apoi Paste n Word i apare graficul. Se
pot seta opiunile pentru copierea figurilor n meniul Copy Options

S-ar putea să vă placă și