You are on page 1of 20

EVROPSKI UNIVERZITET KALLOS - TUZLA

PEDAGOKI FAKULTET
INFORMATIKA I TEHNIKA

SEMINARSKI RAD
Predmet: Telekomunikacije

Matlab

Tuzla, juni, 2017. god.


Uvod

MATLAB je okruenje za numerike proraune i programski jezik koji proizvodi


firma MathWorks.
MATLAB omoguava lahko manipulisanje matricama, iscrtavanje funkcija i fitovanje,
implementaciju algoritama, stvaranje korisnikog interfejsa kao i povezivanje sa programima
pisanim u drugim jezicima.
MATLAB je skraenica za "MATrix LABoratory". Izumio ga je kasnih 1970-ih Cleve Moler,
ef katedre za informatiku na Univerzitetu Novi Meksiko.
Procjena je da preko milion ljudi zaposlenih u industriji i na univerzitetima koristi MATLAB.
MATLAB je mogue nabaviti zajedno sa Simulinkom kao i brojnim dodatnim modulima
(toolboxes).

2
Sadraj

Uvod.........................................................................................................................................2
Sadraj......................................................................................................................................3
1. ta je Matlab.........................................................................................................................4
2. Primjer 1. Matlab-Polinomi..................................................................................................12
3. Primjer 2. Matlab-Grafika....................................................................................................15
Zakljuak..................................................................................................................................20

3
1. ta jr Matlab?
Matlab je vii programski jezik namjenjen obradi podataka u formi matrica i brojeva. Sam
naziv Matlab izveden je od Matrix Laboratory, ime se sugerie da su matrice osnovni
entiteti za numerike proraune. Zahvaljujui fleksibilnom okruenju, irokom spektru
ugraenih funkcija kojima se efikasno dolazi do numerikih rjeenja, mogunou razvoja
algoritama i programiranja, Matlab se nametnuo kao nezamenjiv alat za rjeavanje problema u
gotovo svim oblastima inenjerske prakse.
Programski paket Matlab omoguava interaktivan i programski rad. U interaktivnom radu
naredbe se zadaju u promptu komandnog prozora Matlaba i interpretiraju odmah po
zadavanju. Prethodno otkucane naredbe ostaju u istoriji i mogu se vratiti pritiskom na
kursorski taster (gore), editovati i ponovo pokrenuti. Programi se takoe pozivaju iz
komandnog prompta navoenjem imena i interpretiraju liniju po liniju.
Razmatranje struktura podataka u Matlabu izveemo u interaktivnom radu, uz pripadajua
objanjenja, a zatim kreirati programe, sve u cilju upoznavanja sa Matlab okruenjem i
realizacijom zadataka u vezi analize osnovnih osobina diskretnih i analognih signala i sistema.

Slika1.
Nakon pokretanja Matlaba na ekranu se otvara komandni prozor Matlaba na kome se uoava
komandna linija, u ijem se lijevom uglu nalazi prompt >>, a odmah pored i kursor koji
trepti. Komandni prozor Matlaba treba zamisliti kao radni prostor ekvivalentan praznom listu
hartije, na kome je mogue vriti razliite akcije posredstvom komandne linije. Komandna
linija slui da se izda naredba Matlabu. Nakon to se izda naredba, ona se nee izvriti dok
god se ne pritisne taster <enter>. Sve naredbe koje se izvre u komandnoj liniji, kao i
promijenjive nastale posredstvom tih naredbi se automatski smjetaju u memoriju i mogu se
naknadno koristiti dok god se ne napusti trenutna seansa u Matlabu. Ako se u nekoj naredbi

4
ne definie promijenjiva kojoj se dodeljujue vrijednost nekog izraza, Matlab tada dodjeljuje
vrijednost generikoj promijenjivoj ans.

Prirodno, prilikom izraunavanja sljedeeg izraza, nova vrijednost e biti prepisana


preko prethodne vrijednosti promijenjive ans. U jednoj komandnoj liniji moe da se nalazi
jedan ili vie izraza.

Slika 2.

Najjednostavniji nain da se upotrijebi Matlab jeste kao veoma moan kalkulator.


Aritmetike, trigonometrijske ili eksponencijalne operacije se izvode posredstvom poziva
ugraenih Matlab funkcija. Osim osnovnih, Matlab je opremljen velikom kolekcijom funkcija
koje omoguavaju veoma sloene operacije. Pored toga, Matlab doputa korisniku da definie
sopstvene funkcije.

Kada je potrebno unjeti vie naredbi u komandni prozor, ili je potrebno ponovo pozivati i
mjenjati izraze, rad u komandnoj liniji poinje da predstavlja ozbiljno ogranienje.
Potencijalni problemi mogu da se rjee uvoenjem skript datoteka, tj. datoteka koje sadre
jednu ili vie naredbi koje bi se izvrile na isti nain kao kad bi se jedna po jedna unosile u
komandnu liniju u komandnom prozoru Matlaba. Skript datoteka je tekstualna datoteka sa
ekstenzijom .m, koja moe da se kreira u bilo kom programu za obradu teksta, odnosno u
editoru teksta i dibageru koji je dio paketa Matlaba. Kreirana skript datoteka se izvrava
kucanjem njenog imena u komandnoj liniji bez sufiksa .m ili direktno iz Matlabovog
editora.

5
Duine identifikatora promijenjivih u Matlabu treba da budu najvie 31 alfanumeriki
karakter, pri emu se karakteri poslije tridesetog ignoriu. Identifikator promenjive obavezno
mora poeti slovom, dok ostali karakteri mogu biti kombinacije slova, brojeva i znaka
podvueno (_). Identifikator promijenjive ne smije da sadri blanko karakter. Matlab razlikuje
velika/mala slova u imenu identifikatora promijenjive. Prilikom odreivanja identifikatora
uobiajene su dvije programerske konvencije. U prvoj se koristi donja crta, dok se kod druge
koriste velika slova, kao na primjer: ime_promijenjive odnosno ImePromijenjive.

Postoje i specijalne promenjive iji su nazivi rezervisani i to su: ans, pi, eps, flops, inf, nan, i,
j,nargin,nargout,realmin,realmax.
Za vrijeme jedne sesije rad sa Matlabom, tj. dokle god se ne napusti program, u memoriji se
uvaju najnovije vrijednosti svih definisanih promijenjivih nastalih u komandnoj liniji ili u
skript datoteci. Kao to je prethodno napomenuto, vrijednost dodeljena nekoj promenjivoj
moe ponovo da se koristi jednostavnim kucanjem identifikatora te promijenjive ili
ukljuivanjem te promijenjive u neki izraz. Promijenjive se briu iz memorije naredbom clear.
Da bi se vidjelo koje su promijenjive definisane od poslednjeg izvrenja naredbe clear,
dovoljno je otkucati whos. Skromnija varijanta naredbe whos je who. Ako se eli da se iz
memorije izbriu samo pojedine promijenjive to se ini naredbom clear i navoenjem liste
identifikatora promijenjivih razdvojenih blanko karakterom.

Prilikom unosa matrice, elementi po vrstama se moraju razdvojiti ili blanko simbolom ili
znakom (,), dok se vrste razdvajaju znakom (;). Vano je napomenuti, da ako se na mjestu
nekog elementa eksplicitno napie matematiki izraz, onda izmeu alfanumerikih karaktera i
simbola matematikih operatora ne smiju da se stavljaju blanko karakteri. Matlab prua vie
razliitih naina da se dodjele brojane vrijednosti vektoru. Jedan od naina da se specificira
opseg vrijednosti i prirataj izmeu dva susjedna broja odreenom naredbom. U Matlabu je
mogue manipulisati matricama i vektorima, kao i vriti operacije nad matricama i vektorima.

Kontrola toka izvravanja naredbi u okviru programa napisanog u Matlabu se vri pomou
sljedee etiri neredbe: while, if, for i switch. Sintaksa ovih naredbi odreuje da se svaka od
ovih naredbi zavrava naredbom end. Dakle, sve naredbe ili izrazi koji se nalaze izmeu jedne
od naredbi kontrole toka programa i naredbe end e se izvravati ako je zadovoljen
odgovarajui logiki uslov. U okviru jedne naredbe kontrole toka je mogue ugnijezditi i
druge naredbe za kontrolu toka.

6
Kada se koriste naredbe za kontrolu toka programa, dobra programerska praksa je da se
naredbe koje se nalaze pod kontrolom tih naredbi uvuku nekoliko karaktera. Nazubljivanje
programa znatno poveava itljivost programa ime se olakava traenje greaka i odravanje
programa. Kada se koristi Matlabov editor / dibager, nazubljivanje se vri automatski.

Jedan od naina da se grupie sekvenca naredbi je u obliku skript datoteke sa


ekstenzijom .m. Drugi oblik m-datoteke je funkcija. Funkcije su skript datoteke koje
kreiraju sopstveni radni prostor i lokalne promijenjive pod okriljem Matlaba. Sve promenjive
koje se kreiraju u okviru funkcije su lokalne za tu funkciju i ne korespondiraju sa
promenjivima istih imena u drugim skript ili funkcijskim datotekama. Sve ugraene naredbe u
Matlabu su funkcije ovog tipa. Upotrebom funkcija uproava se sloenost i poveava
itljivost izvornog koda, izbjegava se dupliranje koda, poveava se portabilnost, itd.

Svaka funkcija ima najmanje dvije linije koda, pri emu prva linija obavezno mora da ima
zahtjevani format. Opti oblik funkcije je:

function PovratnaVrednost=ImeFunkcije(Argumenti)
%komentari
Izrazi

Svakoj funkciji mora da se dodjeli ime koje bi trebalo da bude smisleno i dovoljno
indikativno da ukazuje na to ta ta funkcija radi. ta vie, ime .m datoteke mora da bude
isto kao i ime funkcije. Prva linija u funkciji predstavlja prototip funkcije, ime se specificira
broj promijenjivih i njihov tip (skalar, vektor, matrica) koje se prenose iz glavnog programa u
funkciju i obrnuto. Komentare, koji se nalaze neposredno ispod deklaracije funkcije, Matlab
tretira kao help informacije vezane za tu funkciju, i ispisuju se kada se u komandnoj liniji
Matlaba unese: help ImeFunkcije.

Na kraju funkcije se ne nalazi terminator karakter ili izraz kao to je end kod naredbi kontrole
toka.

Kada se u komandnoj liniji napie ime funkcije Matlab pokuava da prepozna funkciju po
imenu. Preciznije, Matlab najprije provjerava da li je ime funkcije promenjiva. Ako to nije,
provjerava se da li ta funkcija ne pripada skupu internih funkcija Matlaba. Ako to ne uspije,

7
Matlab trai na disku datoteku sa istim imenom. Ako se funkcija pronae, Matlab je
kompajlira i smjeta u memoriju tako da moe da se koristi i svaki sljedei put.

Slika 3.

Kada se pozove funkcija, bilo iz komandne linije, skript datoteke ili druge funkcije, vri se
prijenos argumenata u funkciju prema specificiranoj listi argumenata u prototipu funkcije.
Promijenjive u definiciji funkcije ne moraju obavezno da imaju iste identifikatore kao u
pozivu funkcije. Naprotiv, ista imena promenjivih mogu da imaju potpuno razliito znaenje
u skript datoteci iz koje se poziva funkcija i same funkcije. Argumenti funkcije, koji se nalaze
izmeu zagrada u definiciji funkcije, predstavljaju lokalne promijenjive i formiraju se pri
pozivu funkcije. Prvom argumentu se dodjeljuje vrijednost prvog parametra u pozivu
funkcije, i tako dalje do kraja liste rgumenata. Dakle, pri pozivu funkcije mora da se vodi
rauna da poziv odgovara definiciji funkcije. Argumenti funkcije se odvajaju zarezom.

Matlab sadri veoma fleksibilne funkcije za dvodimenzionalnu i trodimezionalnu grafiku.


Ovim funkcijama je mogue generisati krive ili povri, vriti manipulacije sa dijagramima i
mjenjati karakteristike i notaciju na dijagramima.

Svaki dijagram se kreira u prozoru slike, tj. u prozoru koji otvori Matlab za vrijeme
izvravanja funkcije koja kreira dijagram. Ako se u programu koristi vie funkcija koje
generiu dijagrame, Matlab e pri izvravanju svake funkcije da kreira prozor slike koji e da
prebrie prethodni.

8
Slika 4.

Osim osnovnih funkcija, Matlab raspolae dodatnim paketima alata za rjeavanje posebnih
klasa problema. Control Systems Toolbox obezbijeuje funkcije koje su od posebne koristi za
analizu i sintezu sistema automatskog upravljanja. Naredbom help control iz komandne linije
Matlaba, ispisuju se naredbe iz ovog paketa, ime se stie uvid u napredne mogunosti.

Analiza i sinteza linearnih sistema automatskog upravljanja zasniva se na rjeavanju i


razumijevanju rjeenja obinih linearnih diferencijalnih jednaina. Primjenom Laplasove
transformacije na sistem opisan diferencijalnom jednainom pri svim poetnim uslovima
jednakim nuli, dobija se prenosna funkcija sistema.

Promjena izraza sistema u toku vremena, izazvana dejstvom ulaza i / ili poetnih uslova
je vremenski odziv sistema, ili krae odziv sistema.

Odziv sistema je jedna od dinamikih karakteristika sistema. On je rezultat rada sistema i


opisuje taj rad. Odnosno, odziv sistema je rezultat prirode sistema, dejstva ulaza i poetnih
uslova (poetnog stanja). On je spoljna reakcija na ova dejstva.
Matematiki posmatrano, odziv sistema je rjeenje jednaine ponaanja tog sistema za zadatu
promjenu ulaza i zadate poetene uslove.

9
Za upoznavanje, utvrivanje i analizu odziva linearnih sistema dovoljno je prouiti njihove
odzive na odreene, tipine promjene ulaza. Tri najee koriene ulazne veliine za
dinamiku analizu sistema su:

1. Hevisajdova( step),
2. Dirakova(impulse),
3. Sinusoidna funkcija (sin).

U tekstu koji je do sada izloen, pokazano je kako je uz pomo Matlaba mogue vriti analizu
i sintezu sistema automatskog upravljanja. Kako se u praksi javlja potreba za rjeavanjem
sloenih problema, gdje se sistem ne sastoji samo od objekta i upravljakog sistema, ve od
vie meusobno spregnutih podsistema, razvijene su funkcije kojima se dobijaju ekvivalentne
prenosne funkcije redne, paralelne i povratne sprege. Uz pomo tih, kao i ostalih funkcija
iz Control Systems Toolbox-a je mogue vriti simulaciju sistema bilo iz komandne linije ili
iz skript datoteke. S druge strane, SIMULINK Toolbox, (u daljem tekstu: Simulink)
obezbijeuje grafiko okruenje, u kome se opisno skicira blok dijagram sistema i vri
njegova simulacija.

Simulink se pokree iz komandne linije naredbom Simulink ili pomou ikone u komandnom
prozoru Matlaba. Vano je da se shvati da promijenjive koje su definisane u komandnom
prozoru Matlaba vae i u prozoru Simulinka.Nakon pokretanja Simulinka, pojavljuje se
prozor Simulink Library Browser, gdje su pobrojane dostupne biblioteke. Glavne biblioteke
su:

1. Simulink,
2.ControlSystemsToolbox,
3.NeuralNetworkBlockset,
4. Simulink Extras.

10
Dvostrukim klikom na neku od navedenih biblioteka, grana se njihovo stablo i dolazi do
dostupnih komponenti. Da bi se napravio model u Simulinku, najprije treba otvoriti Simulink
prozor za modelovanje tako to se klikne ikona nove stranice (bijeli pravougaonik). Sada
treba u novootvoreni Simulink prozor za modelovanje ubaciti eljene komponente sistema.

Slika4.

11
2. Primjer 1. Matlab-Polinomi

MATLAB - Polinomi

MATLAB predstavlja polinome sa rednim vektorima kojii sadre koeficijenate po nalogu


silaznih ovlasti. Na primjer, jednadba P (x) = x 4 + 7x 3 - 5x + 9 mogu se prikazati kao:

p = [1 0 7 -5 9];

Ocjenjivanje polinoma
Polyval se funkcija koristi za procjenu polinoma pri navedenoj vrijednosti. Na primjer,
ocijeniti na prethodni polinom p , pri x = 4, Tip -

p = [1 7 0 -5 9];
polyval(p,4)

MATLAB izvrava gore navedene izjave i vraa sljedee rezultate -

ans = 693
MATLAB takoer prua polyvalm funkciju za vrednovanje matrice polinoma. Na primjer,
neka nam stvoriti kvadratnu matricu X i procijeniti polinom p, na X -

p = [1 7 0 -5 9];
X = [1 2 -3 4; 2 -5 6 3; 3 1 0 2; 5 -7 3 8];
polyvalm(p, X)

MATLAB izvrava gore navedene izjave i vraa sljedee rezultate -

ans =
2307 -1769 -939 4499
2314 -2376 -249 4695
2256 -1892 -549 4310
4570 -4532 -1062 9269

Pronalaenje korijeni polinoma


Korijeni funkcija izraunava korijene polinoma. Na primjer, za izraun korijene naeg
polinoma p, vrsti -

p = [1 7 0 -5 9];

12
r = roots(p)

MATLAB izvrava gore navedene izjave i vraa sljedee rezultate -

r=
-6.8661 + 0.0000i
-1.4247 + 0.0000i
0.6454 + 0.7095i
0.6454 - 0.7095i
Funkcija poli inverzna je funkcija korijena i vraa Polinimski koeficijent. Na primjer -

p2 = poly(r)

MATLAB izvrava gore navedene izjave i vraa sljedee rezultate -

p2 =

Columns 1 through 3:

1.00000 + 0.00000i 7.00000 + 0.00000i 0.00000 + 0.00000i

Columns 4 and 5:

-5.00000 - 0.00000i 9.00000 + 0.00000i


Polinom krivulja dolikuje
Polyfit funkcija pronalazi koeficijenata polinoma koji se uklapa skup podataka u najmanjih
kvadrata smislu. Ako su x i y dva vektora koji sadre X i Y podatke za ugradbu na polinoma
n-stupnjeva, a zatim smo dobili polinom usklaivanjem podataka pisanjem -

p = polyfit(x,y,n)

Primjer
Stvorite datoteku skripte i upiite sljedei kod -

x = [1 2 3 4 5 6]; y = [5.5 43.1 128 290.7 498.4 978.67]; %data


p = polyfit(x,y,4) %get the polynomial
% Compute the values of the polyfit estimate over a finer range,
% and plot the estimate over the real data values for comparison:

13
x2 = 1:.1:6;
y2 = polyval(p,x2);
plot(x,y,'o',x2,y2)
grid on

Kada pokrenete datoteku, MATLAB prikazuje sljedee rezultate -

p=
4.1056 -47.9607 222.2598 -362.7453 191.1250
I zemljite na sljedeem grafikonu -

14
3.Primjer2. Matlab-Grafika

MATLAB - Grafika

Ovo poglavlje e nastaviti istraivati crtanje i grafike mogunosti MATLAB. Mi emo


razmotriti -

Crtanje bar grafikone

Crtanje konture

Trodimenzionalna parcele

Crtanje bar charts


Bar naredba takoer crta dvodimenzionalni bar grafikona. Uzmimo na primjer da pokae
ideju.

Primjer
Neka nam imaginarnu uionicu s 10 uenika. Znamo posto maraka dobivenih tih studenata
su 75, 58, 90, 87, 50, 85, 92, 75, 60 i 95. Mi emo povui bar grafikon za ove podatke.

Stvorite datoteku skripte i upiite sljedei kod -

x = [1:10];
y = [75, 58, 90, 87, 50, 85, 92, 75, 60, 95];
bar(x,y), xlabel('Student'),ylabel('Score'),
title('First Sem:')
print -deps graph.eps

Kada pokrenete datoteku, MATLAB prikazuje sljedeu bar grafikon -

15
Crtanje konture
Obris linija funkcija dviju varijabli je krivulja uzdu kojih je funkcija ima konstantnu
vrijednost. Slojnica se koriste za stvaranje kontura karte ulaskom bodove jednake nadmorske
visine iznad odreene razine, kao to su srednje razine mora.

MATLAB prua kontura funkciju za crtanje kontura karte.

Primjer
Neka nam stvaraju konture kartu koja pokazuje linije konture za odreenu funkciju g = f (x,
y). Ova funkcija ima dvije varijable. Dakle, mi emo morati generirati dvije nezavisne
varijable, tj dva skupa podataka X i Y. To se radi pozivom meshgrid naredbu.

Meshgrid naredba koristi se za stvaranje matrice elemenata koji daju spektar preko X i Y
zajedno sa specifikacijom poveanje u svakom pojedinom sluaju.

Da nam zemljite na funkcija g = f (x, y), gdje x -5 5, -3 y 3 Uzmimo prirast od 0,1


za obje vrijednosti. Varijable su postavljeni kao -

[x,y] = meshgrid(5:0.1:5, 3:0.1:3);

Na kraju, moramo dodijeliti funkciju. Neka naa funkcija biti: x 2 + y 2

Stvorite datoteku skripte i upiite sljedei kod -

[x,y] = meshgrid(-5:0.1:5,-3:0.1:3); %independent variables

16
g = x.^2 + y.^2; % our function
contour(x,y,g) % call the contour function
print -deps graph.eps

Kada pokrenete datoteku, MATLAB prikazuje sljedeu konture kartu -

Neka nam modificirati kd malo dotjera se po karti

[x,y] = meshgrid(-5:0.1:5,-3:0.1:3); %independent variables


g = x.^2 + y.^2; % our function
[C, h] = contour(x,y,g); % call the contour function
set(h,'ShowText','on','TextStep',get(h,'LevelStep')*2)
print -deps graph.eps

Kada pokrenete datoteku, MATLAB prikazuje sljedeu konture kartu -

17
Trodimenzionalna Zemljita
Trodimenzionalni prikaz ploha osnovi povrine definiran funkcija u dvije varijable, g = f (x,
y).

Kao i prije, definirati g, prvo stvoriti skup (x, y) bodova u odnosu na domenu funkcije
pomou meshgrid naredbu. Dalje, mi cemo dodijeliti samu funkciju. Na kraju, mi
koristimo surf naredbu za stvaranje povrine parcele.

Sljedei primjer pokazuje koncept -

Primjer
Neka nam stvoriti 3D kartu povrinu za funkciju g = xe - (x 2 + y 2 )

Stvorite datoteku skripte i upiite sljedei kod -

[x,y] = meshgrid(-2:.2:2);
g = x .* exp(-x.^2 - y.^2);
surf(x, y, g)
print -deps graph.eps

Kada pokrenete datoteku, MATLAB prikazuje sljedeu 3-D kartu -

18
Takoer moete koristiti mree naredbu generirati trodimenzionalne
povrine. Meutim, surf naredba prikazuje obje spojne linije i lica povrine u boji, dok
je mrea naredba stvara Wireframe povrinu s obojenim linijama koje povezuju definiranje
bodova.

19
Zakljuak

MATLAB je programski jezik razvijen od strane MathWorks. Ovaj seminarski rad vam daje
uvoenje MATLAB programskom jeziku. On je osmiljen kako bi dao studentima tenost u
MATLAB programskom jeziku.

Ovaj rad je pripremljena za poetnike da im pomogne shvatiti osnovne do naprednih


funkcionalnosti MATLAB. Nakon zavretka ovog radalake e vam biti otii na
sljedeu,veu razinu.

20

You might also like