Sunteți pe pagina 1din 26

1.

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

1. INTRODUCERE N MATLAB

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

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.


3

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 ( ) Exemplu: Fie matricea A = B = 7 8 9 , i vectorii = C 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) B(2) C(2)

6 ans = 5 ans = 8 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):
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.

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

1. INTRODUCERE N MATLAB

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 10 minim i 10 maxim . - v=logspace(minim,maxim,numr_de_elemente) se genereaz un vector linie v avnd numr_de_elemente elemente distribuite logaritmic ntre 10 minim i 10 maxim .
7

1. INTRODUCERE N MATLAB

Atenie: Dac maxim=pi atunci elementele vor fi distribuite logaritmic ntre 10 minim 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.
8

1. INTRODUCERE N MATLAB

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

1. INTRODUCERE N MATLAB

- 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))
10

1. INTRODUCERE N MATLAB

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

1. INTRODUCERE N MATLAB

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.

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

1. INTRODUCERE N MATLAB

// 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.
14

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

S se defineasc urmtoarele elemente: 1 2 3 1 i 2 + i 0 1/ 3 A= B = , , ( ) , b = a = 1 + i 3 0 22 i 3 i 4 5 6

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


16

1. INTRODUCERE N MATLAB

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. 1 2 3 Se vor defini urmtoarele elemente: A = , a = (1 3 8) 4 5 6
17

1. INTRODUCERE N MATLAB

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.


18

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

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
20

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

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.

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

Un semnal discret provine din eantionarea unui semnal continuu cu o perioad de eantionare Ts. Valorile stocate n vectorul care reprezint semnalul discret corespund valorilor amplitudinii semnalului continuu la momente ntregi de perioada de eantionare n Ts , n ] . s (n) = sc (nTs ) De exemplu pentru un semnal sinusoidal de frecven F0 sc (t ) = A0 sin(2 F0 t ) Semnalul eantionat va fi: 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.

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 sMA (t ) = U 0 (1 + m sin (t ) ) cos 0t Perioada semnalului sinusoidal modulator: 5 ms. Frecven purttoare: 3 kHz. U0 = 0.5. Indice de modulaie 30%. 7. Semnal sinusoidal modulat MA-PS sMA (t ) = U 0 sin (t ) cos 0t Perioada semnalului sinusoidal modulator: 4 ms. Frecven purttoare 2.5 kHz. U0 = 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.
25

1. INTRODUCERE N MATLAB

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

26

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