47
Praktikum softverski alati 13e032psa 13e032psa MATLAB Školska 2016/2017 godina

Praktikum softverski alati 13e032psa MATLABtelekomunikacije.etf.bg.ac.rs/predmeti/ot2psa/psa_ML_01.pdf · Array Arithmetic OperatorsArithmetic Operators • Pod “operacijama saoperacijama

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Praktikum softverski alati 13e032psa MATLABtelekomunikacije.etf.bg.ac.rs/predmeti/ot2psa/psa_ML_01.pdf · Array Arithmetic OperatorsArithmetic Operators • Pod “operacijama saoperacijama

Praktikum softverski alati13e032psa13e032psaMATLAB

Školska 2016/2017godina

Page 2: Praktikum softverski alati 13e032psa MATLABtelekomunikacije.etf.bg.ac.rs/predmeti/ot2psa/psa_ML_01.pdf · Array Arithmetic OperatorsArithmetic Operators • Pod “operacijama saoperacijama

MATLABMATLAB

• MAT od matricaMAT od matrica• TOOLBOX – biblioteke

funkcijafunkcija– signal

t l– control– još mnogo drugih

t lb j ihtoolbox-ova namenjenihrazličitim oblastima “naše struke” (i drugihnaše struke (i drugih struka)

Page 3: Praktikum softverski alati 13e032psa MATLABtelekomunikacije.etf.bg.ac.rs/predmeti/ot2psa/psa_ML_01.pdf · Array Arithmetic OperatorsArithmetic Operators • Pod “operacijama saoperacijama

MATLABMATLAB

• Zašto je popularan?Zašto je popularan?– Ne zahteva veliko “programersko” znanje i

iskustvoiskustvo– Orijentisan je ka primeni u oblastima koje su

od interesa za tehničke struke, veliki broj većod interesa za tehničke struke, veliki broj već razvijenih funkcija i biblioteka

• Matrica je osnovni tip podatka• Kompleksnim brojevi su “automatski” podržani

– Jednostavno dodavanje novih funkcija– Dobra vizuelizacija

Page 4: Praktikum softverski alati 13e032psa MATLABtelekomunikacije.etf.bg.ac.rs/predmeti/ot2psa/psa_ML_01.pdf · Array Arithmetic OperatorsArithmetic Operators • Pod “operacijama saoperacijama

MATLAB “klonovi”MATLAB klonovi

• MATLAB je relativno skup programskiMATLAB je relativno skup programski paket

• Postoje alternative u domenu free ili open• Postoje alternative u domenu free ili open source alata:

S il b (htt // il b /)– Scilab (http://www.scilab.org/)– Octave (https://www.gnu.org/software/octave/)

– Pyton (https://www.python.org/)• SciPy (http://www.scipy.org/)

Page 5: Praktikum softverski alati 13e032psa MATLABtelekomunikacije.etf.bg.ac.rs/predmeti/ot2psa/psa_ML_01.pdf · Array Arithmetic OperatorsArithmetic Operators • Pod “operacijama saoperacijama

MATLABMATLAB

Page 6: Praktikum softverski alati 13e032psa MATLABtelekomunikacije.etf.bg.ac.rs/predmeti/ot2psa/psa_ML_01.pdf · Array Arithmetic OperatorsArithmetic Operators • Pod “operacijama saoperacijama

MATLABMATLAB

Page 7: Praktikum softverski alati 13e032psa MATLABtelekomunikacije.etf.bg.ac.rs/predmeti/ot2psa/psa_ML_01.pdf · Array Arithmetic OperatorsArithmetic Operators • Pod “operacijama saoperacijama

MATLABMATLAB

Page 8: Praktikum softverski alati 13e032psa MATLABtelekomunikacije.etf.bg.ac.rs/predmeti/ot2psa/psa_ML_01.pdf · Array Arithmetic OperatorsArithmetic Operators • Pod “operacijama saoperacijama

MATLABMATLAB

Page 9: Praktikum softverski alati 13e032psa MATLABtelekomunikacije.etf.bg.ac.rs/predmeti/ot2psa/psa_ML_01.pdf · Array Arithmetic OperatorsArithmetic Operators • Pod “operacijama saoperacijama

MATLABMATLAB

Page 10: Praktikum softverski alati 13e032psa MATLABtelekomunikacije.etf.bg.ac.rs/predmeti/ot2psa/psa_ML_01.pdf · Array Arithmetic OperatorsArithmetic Operators • Pod “operacijama saoperacijama

Unošenje matricaUnošenje matrica

• Eksplicitna lista elemenataEksplicitna lista elemenata• Generisanje matrice korišćenjem

ugrađenih komandi i funkcijaugrađenih komandi i funkcija• Učitavanje iz datoteka

Page 11: Praktikum softverski alati 13e032psa MATLABtelekomunikacije.etf.bg.ac.rs/predmeti/ot2psa/psa_ML_01.pdf · Array Arithmetic OperatorsArithmetic Operators • Pod “operacijama saoperacijama

Unošenje matricaUnošenje matrica

Page 12: Praktikum softverski alati 13e032psa MATLABtelekomunikacije.etf.bg.ac.rs/predmeti/ot2psa/psa_ML_01.pdf · Array Arithmetic OperatorsArithmetic Operators • Pod “operacijama saoperacijama

Matrice...Matrice...

Page 13: Praktikum softverski alati 13e032psa MATLABtelekomunikacije.etf.bg.ac.rs/predmeti/ot2psa/psa_ML_01.pdf · Array Arithmetic OperatorsArithmetic Operators • Pod “operacijama saoperacijama

Matrice...Matrice...

Page 14: Praktikum softverski alati 13e032psa MATLABtelekomunikacije.etf.bg.ac.rs/predmeti/ot2psa/psa_ML_01.pdf · Array Arithmetic OperatorsArithmetic Operators • Pod “operacijama saoperacijama

MatriceMatrice

Page 15: Praktikum softverski alati 13e032psa MATLABtelekomunikacije.etf.bg.ac.rs/predmeti/ot2psa/psa_ML_01.pdf · Array Arithmetic OperatorsArithmetic Operators • Pod “operacijama saoperacijama

Transponovanje matricaTransponovanje matrica• ‘ je “complex conjugate transpose” je complex conjugate transpose• A=B’ daje isti rezultat kao A=ctransponse(B)• ’ je transponovanje. je transponovanje• A=B.’ daje isti rezultat kao A=transponse(B)• Za realne matrice (nizove) dobija se isti rezultat• Za realne matrice (nizove) dobija se isti rezultat

u oba slučaja

Page 16: Praktikum softverski alati 13e032psa MATLABtelekomunikacije.etf.bg.ac.rs/predmeti/ot2psa/psa_ML_01.pdf · Array Arithmetic OperatorsArithmetic Operators • Pod “operacijama saoperacijama

Transponovanje matricaTransponovanje matrica

Page 17: Praktikum softverski alati 13e032psa MATLABtelekomunikacije.etf.bg.ac.rs/predmeti/ot2psa/psa_ML_01.pdf · Array Arithmetic OperatorsArithmetic Operators • Pod “operacijama saoperacijama

VektoriVektori

Page 18: Praktikum softverski alati 13e032psa MATLABtelekomunikacije.etf.bg.ac.rs/predmeti/ot2psa/psa_ML_01.pdf · Array Arithmetic OperatorsArithmetic Operators • Pod “operacijama saoperacijama

VektoriVektori

Page 19: Praktikum softverski alati 13e032psa MATLABtelekomunikacije.etf.bg.ac.rs/predmeti/ot2psa/psa_ML_01.pdf · Array Arithmetic OperatorsArithmetic Operators • Pod “operacijama saoperacijama

VektoriVektori

Page 20: Praktikum softverski alati 13e032psa MATLABtelekomunikacije.etf.bg.ac.rs/predmeti/ot2psa/psa_ML_01.pdf · Array Arithmetic OperatorsArithmetic Operators • Pod “operacijama saoperacijama

Matrica sastavljena od vektoraMatrica sastavljena od vektora

Page 21: Praktikum softverski alati 13e032psa MATLABtelekomunikacije.etf.bg.ac.rs/predmeti/ot2psa/psa_ML_01.pdf · Array Arithmetic OperatorsArithmetic Operators • Pod “operacijama saoperacijama

IndeksiranjeIndeksiranje• Individualni elementi matrica mogu seIndividualni elementi matrica mogu se

referencirati korišćenjem njihovih indeksa, uokvirenih malim zagradama.

• Indeksiranje počinje od 1, odnosno indeks je pozitivan ceo broj.

• Ako se kao indeks koristi izraz njegova vrednost se zaokružuje na najbliži pozitivan ceo broj.

• Indeks može biti i vektor. Ako su x i v vektori onda je x(v) [x(v(1)), x(v(2)), ..., x(v(n))]

Page 22: Praktikum softverski alati 13e032psa MATLABtelekomunikacije.etf.bg.ac.rs/predmeti/ot2psa/psa_ML_01.pdf · Array Arithmetic OperatorsArithmetic Operators • Pod “operacijama saoperacijama

IndeksiranjeIndeksiranje

Page 23: Praktikum softverski alati 13e032psa MATLABtelekomunikacije.etf.bg.ac.rs/predmeti/ot2psa/psa_ML_01.pdf · Array Arithmetic OperatorsArithmetic Operators • Pod “operacijama saoperacijama

IndeksiranjeIndeksiranje

Page 24: Praktikum softverski alati 13e032psa MATLABtelekomunikacije.etf.bg.ac.rs/predmeti/ot2psa/psa_ML_01.pdf · Array Arithmetic OperatorsArithmetic Operators • Pod “operacijama saoperacijama

IndeksiranjeIndeksiranje

Page 25: Praktikum softverski alati 13e032psa MATLABtelekomunikacije.etf.bg.ac.rs/predmeti/ot2psa/psa_ML_01.pdf · Array Arithmetic OperatorsArithmetic Operators • Pod “operacijama saoperacijama

Brojevi i aritmetički izraziBrojevi i aritmetički izrazi

• Matlab podržava sve uobičajene načine zaMatlab podržava sve uobičajene načine zapredstavljanje decimalnih brojeva

Page 26: Praktikum softverski alati 13e032psa MATLABtelekomunikacije.etf.bg.ac.rs/predmeti/ot2psa/psa_ML_01.pdf · Array Arithmetic OperatorsArithmetic Operators • Pod “operacijama saoperacijama

Brojevi i aritmetički izraziBrojevi i aritmetički izrazi

• Matlab uvek “pokušava” da da rezultatMatlab uvek pokušava da da rezultat.• Na korisniku je da vodi računa o tome da li

je rezultat validanje rezultat validan.

Page 27: Praktikum softverski alati 13e032psa MATLABtelekomunikacije.etf.bg.ac.rs/predmeti/ot2psa/psa_ML_01.pdf · Array Arithmetic OperatorsArithmetic Operators • Pod “operacijama saoperacijama

Brojevi i aritmetički izraziBrojevi i aritmetički izrazi

Page 28: Praktikum softverski alati 13e032psa MATLABtelekomunikacije.etf.bg.ac.rs/predmeti/ot2psa/psa_ML_01.pdf · Array Arithmetic OperatorsArithmetic Operators • Pod “operacijama saoperacijama

Kompleksni brojevi i matriceKompleksni brojevi i matrice

Page 29: Praktikum softverski alati 13e032psa MATLABtelekomunikacije.etf.bg.ac.rs/predmeti/ot2psa/psa_ML_01.pdf · Array Arithmetic OperatorsArithmetic Operators • Pod “operacijama saoperacijama

Kompleksni brojevi i matriceKompleksni brojevi i matrice

Page 30: Praktikum softverski alati 13e032psa MATLABtelekomunikacije.etf.bg.ac.rs/predmeti/ot2psa/psa_ML_01.pdf · Array Arithmetic OperatorsArithmetic Operators • Pod “operacijama saoperacijama

Aritmetički izraziAritmetički izrazi• Izrazi se prave pomoću standardnih aritmetičkihIzrazi se prave pomoću standardnih aritmetičkih

operatora koji podležu standardnim pravilima prvenstva.– + sabiranje– - oduzimanje– * množenje– / deljenje s desna

\ deljenje s leva– \ deljenje s leva– ^ stepenovanje

• Dva deljenja postoje zbog toga što su sve• Dva deljenja postoje zbog toga što su sve operacije prilagođene za matrični račun.

Page 31: Praktikum softverski alati 13e032psa MATLABtelekomunikacije.etf.bg.ac.rs/predmeti/ot2psa/psa_ML_01.pdf · Array Arithmetic OperatorsArithmetic Operators • Pod “operacijama saoperacijama

Sabiranje i oduzimanjeSabiranje i oduzimanje

• Matrice se mogu sabirati i oduzimati samoMatrice se mogu sabirati i oduzimati samo ako su istih dimenzija.

Page 32: Praktikum softverski alati 13e032psa MATLABtelekomunikacije.etf.bg.ac.rs/predmeti/ot2psa/psa_ML_01.pdf · Array Arithmetic OperatorsArithmetic Operators • Pod “operacijama saoperacijama

MnoženjeMnoženje• Dozovljeno je množenjeDozovljeno je množenje

matrica*matrica s tim što unutrašnje dimenzije j jmoraju biti iste. Ovo podrazumeva i

ij l l č jspecijalne slučajeve matrica, vektore.D lj j i• Dozvoljeno je i množenje matrica*skalarmatrica skalar.

Page 33: Praktikum softverski alati 13e032psa MATLABtelekomunikacije.etf.bg.ac.rs/predmeti/ot2psa/psa_ML_01.pdf · Array Arithmetic OperatorsArithmetic Operators • Pod “operacijama saoperacijama

DeljenjeDeljenje

• Postoje levo i desno deljenje Definišu sePostoje levo i desno deljenje. Definišu se na sledeći način:

X=A\B odnosno– X=A\B odnosno, X=A-1*B (rešenje jednačine A*X=B)

– X=A/B odnosnoX=A/B odnosno,X=A*B-1 (rešenje jednačine X*B=A)

Page 34: Praktikum softverski alati 13e032psa MATLABtelekomunikacije.etf.bg.ac.rs/predmeti/ot2psa/psa_ML_01.pdf · Array Arithmetic OperatorsArithmetic Operators • Pod “operacijama saoperacijama

Array Arithmetic OperatorsArray Arithmetic Operators

• Pod “operacijama saPod operacijama sa nizovima” se zapravo podrazumevajupodrazumevajuoperacije koje želimo da sprovedemo nada sprovedemo na pojedinim elementimamatrica tj operacijematrica, tj. operacije tipa “element po element”element .

Page 35: Praktikum softverski alati 13e032psa MATLABtelekomunikacije.etf.bg.ac.rs/predmeti/ot2psa/psa_ML_01.pdf · Array Arithmetic OperatorsArithmetic Operators • Pod “operacijama saoperacijama

Array Arithmetic OperatorsArray Arithmetic Operators

Page 36: Praktikum softverski alati 13e032psa MATLABtelekomunikacije.etf.bg.ac.rs/predmeti/ot2psa/psa_ML_01.pdf · Array Arithmetic OperatorsArithmetic Operators • Pod “operacijama saoperacijama

Korišenje MATLAB-aKorišenje MATLAB a

• U MATLAB radnom okruženju mogu seU MATLAB radnom okruženju, mogu se direktno kucati naredbe, deklarisati promenljive pozivati funkcijepromenljive, pozivati funkcije...

• Rezultati ostaju “upamćeni” u workspace-u čak i ako rezultat komadne nije prikazanu, čak i ako rezultat komadne nije prikazan u komandnom prozoruO k či j k i t i ktič• Ovakav način je koristan i praktično upotrebljiv samo za veoma jednostavne

čproračune

Page 37: Praktikum softverski alati 13e032psa MATLABtelekomunikacije.etf.bg.ac.rs/predmeti/ot2psa/psa_ML_01.pdf · Array Arithmetic OperatorsArithmetic Operators • Pod “operacijama saoperacijama

Korišenje MATLAB-aKorišenje MATLAB a

Page 38: Praktikum softverski alati 13e032psa MATLABtelekomunikacije.etf.bg.ac.rs/predmeti/ot2psa/psa_ML_01.pdf · Array Arithmetic OperatorsArithmetic Operators • Pod “operacijama saoperacijama

MATLAB “program”MATLAB program

• Niz komandi definicija promenljvihNiz komandi, definicija promenljvih, “poziva” korisničkih ili MATLAB funkcija, može da se upiše redom u isti fajlmože da se upiše redom u isti fajl (tekstualni fajl) koji se zove script (ekstenzija m)(ekstenzija .m)

• Script se može “pozvati” iz MATLAB-a i onda se izvršava red po redonda se izvršava red-po-red

Page 39: Praktikum softverski alati 13e032psa MATLABtelekomunikacije.etf.bg.ac.rs/predmeti/ot2psa/psa_ML_01.pdf · Array Arithmetic OperatorsArithmetic Operators • Pod “operacijama saoperacijama

Kako se formira scriptKako se formira script“klikom” na “new script”“new script” otvara se MATLAB editor

Page 40: Praktikum softverski alati 13e032psa MATLABtelekomunikacije.etf.bg.ac.rs/predmeti/ot2psa/psa_ML_01.pdf · Array Arithmetic OperatorsArithmetic Operators • Pod “operacijama saoperacijama

Kako se formira scriptKako se formira scriptt – vektor kolona, vrednosti od -2e-3 do 2e-3 s korakom

1

od 2e 3 do 2e 3 s korakom 0.001e-3 – izbor koraka određuje “gustinu” tačaka

0.2

0.4

0.6

0.8

-0.6

-0.4

-0.2

0

-2 -1.5 -1 -0.5 0 0.5 1 1.5 2

x 10-3

-1

-0.8

Grafik se formira tako što se sin je “ugrađena” MATLAB funkcija koja “vraća” promenljivu istih dimenzija kao međusobno spoje tačke

(t(i),x(i)) i (t(i+1),x(i+1)), i=1, 2,...N-1, gde je N dužina niza

vraća promenljivu istih dimenzija kao što je ulazna promenljiva, u ovom slučaju vektor 2*pi*t*f1(konstanta*konstanta*vektor*skalar)

Page 41: Praktikum softverski alati 13e032psa MATLABtelekomunikacije.etf.bg.ac.rs/predmeti/ot2psa/psa_ML_01.pdf · Array Arithmetic OperatorsArithmetic Operators • Pod “operacijama saoperacijama

Kako se formira scriptKako se formira script0.4

0.6

0.8

1

-0.4

-0.2

0

0.2

-2 -1.5 -1 -0.5 0 0.5 1 1.5 2

x 10-3

-1

-0.8

-0.6

0.4

0.6

0.8

1x1

x2

-0.6

-0.4

-0.2

0

0.2x(

t)

-2 -1.5 -1 -0.5 0 0.5 1 1.5 2

x 10-3

-1

-0.8

t [s]

Page 42: Praktikum softverski alati 13e032psa MATLABtelekomunikacije.etf.bg.ac.rs/predmeti/ot2psa/psa_ML_01.pdf · Array Arithmetic OperatorsArithmetic Operators • Pod “operacijama saoperacijama

Kako se izvršava scriptKako se izvršava script

Page 43: Praktikum softverski alati 13e032psa MATLABtelekomunikacije.etf.bg.ac.rs/predmeti/ot2psa/psa_ML_01.pdf · Array Arithmetic OperatorsArithmetic Operators • Pod “operacijama saoperacijama

Primer crtanja spektra periodičnog signala

1

1 1

0, 0,

t tf t E t t t

0 1

1

022

02

0.

sin1 2 , 0, 1, 2,

2

T

jn t

nT

t t T

nEF f t dt e n

T T n

2 2

Deljenje s nulom !!!

Ne rešavamo zadatak u ML, ik j š jsamo prikazujemo rešenje

na adekvatan način

Page 44: Praktikum softverski alati 13e032psa MATLABtelekomunikacije.etf.bg.ac.rs/predmeti/ot2psa/psa_ML_01.pdf · Array Arithmetic OperatorsArithmetic Operators • Pod “operacijama saoperacijama

Primer crtanja spektra

0 45

0.5

periodičnog signala

0.25

0.3

0.35

0.4

0.45

0

0.05

0.1

0.15

0.2

-10 -8 -6 -4 -2 0 2 4 6 8 100

0.35

0.4

0.45

0.5

0 1

0.15

0.2

0.25

0.3

|Fn|

-10 -8 -6 -4 -2 0 2 4 6 8 100

0.05

0.1

n

Page 45: Praktikum softverski alati 13e032psa MATLABtelekomunikacije.etf.bg.ac.rs/predmeti/ot2psa/psa_ML_01.pdf · Array Arithmetic OperatorsArithmetic Operators • Pod “operacijama saoperacijama

Primer crtanja spektra periodičnog signala

Fnn-FnColumns 1 through 12

0 0 0 0 0 0 0 0 0 0 0 0

Izbegava se for petalja, operacije sa nizovima “ l t l t ” “

Columns 13 through 21

0 0 0 0 0 0 0 0 0

“element-po-element ” “array operations” - ./ i .*

Page 46: Praktikum softverski alati 13e032psa MATLABtelekomunikacije.etf.bg.ac.rs/predmeti/ot2psa/psa_ML_01.pdf · Array Arithmetic OperatorsArithmetic Operators • Pod “operacijama saoperacijama

Primer crtanja spektra periodičnog signala

0.35

0.4

0.45

0.5

tar

spektaranvelopa

0.15

0.2

0.25

0.3

ampl

ituds

ki s

pekt

-10 -8 -6 -4 -2 0 2 4 6 8 100

0.05

0.1

/0

Page 47: Praktikum softverski alati 13e032psa MATLABtelekomunikacije.etf.bg.ac.rs/predmeti/ot2psa/psa_ML_01.pdf · Array Arithmetic OperatorsArithmetic Operators • Pod “operacijama saoperacijama

Primer crtanja spektra periodičnog signala

title(['\tau/T=' num2str(faktor)])

0.16

0.18

0.2/T=0.2

spektaranvelopa

t t e([ \tau/ u st ( a to )])

0.1

0.12

0.14

0.16

spek

tar

0 02

0.04

0.06

0.08

s

-10 -8 -6 -4 -2 0 2 4 6 8 100

0.02

/0