95
Radna verzija Interna upotreba ©Copyright 2010 - Gogić Asmir UNIVERZITET U TUZLI FAKULTET ELEKTROTEHNIKE LABORATORIJSKE VJEŽBE Signali i sistemi Gogić Asmir Tuzla, Februar 2010. godine

SS_Lab_final_v1.02

Embed Size (px)

Citation preview

Page 1: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

UNIVERZITET U TUZLI

FAKULTET ELEKTROTEHNIKE

LABORATORIJSKE VJEŽBESignali i sistemi

Gogić Asmir

Tuzla, Februar 2010. godine

Page 2: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

2 SIGNALI I SISTEMI

Page 3: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

Laboratorijska vježba 1

Osnove MATLAB-aMATLAB (MATrix LABoratory) predstavlja interaktivni programski jezik četvrte generacija za inži-njerske i naučne proračune, a integrira računanje, vizualizaciju i programiranje u okruženje jednostavnoza korištenje. Sastavni dio MATLAB-a predstavlja veliki broj dodatnih programskih paketa (toolbox-ova) koji obuhvataju razna tehnička područja: analiza sistema u vremenskom i frekventnom domenu,statistička analiza, simbolički račun, digitalna obrada slika, analiza upravljanja, identifikacija sistema,2D i 3D prikaz podataka i dr. MATALB omogućuje dva načina tehničko-matematičkog modelovanja:

• Grafički - Simulink koji predstavlja vizuelni alat pomoću kojeg je moguće analizirati i simuliratikontinualne i diskretne sisteme. Prednost ovakvog pristupa je da korisnik ne mora poznavatsintaksu MATLAB programskog jezika.

• Tekstualni - MATLAB editor/debbuger koji predstavlja tekstualni editor za pisanje MATLABprograma kojeg spremamo u file sa ekstenzijom ”.m”. To je ASCII tekst file koji sadrži sekvencuMATLAB komandi a razlikujemo dva tipa m-fileova:

a) script files - duge automatizirane sekvence MATLAB komandi koje se ponavaljaju.b) function files - djelovi programa koji se ponavljaju, nove komande i sl.

U nedostatku MATLAB editora m-fileove možemo kreirati u bilo kojem tekst editoru.

Pisanje MATLAB programa moguće je izvoditi kako smo već rekli u tekstualnom editoru ili direktnou komandnom prozoru. Pisanje programa u komandnom prozoru pogodno je samo ako pišemo male ijednostavne programe bez ponavljanja u suprotnom koristimo MATLAB editor/debbuger.

Putanja MATLAB izvršnog filea na Windows operativnim sistemima je po defaultu:

C:/MATLAB701/bin/matlab.bat

ili preko Start menija

Start ⇒ Programs ⇒ Matlab ⇒ matlab

Nakon pokretanja MATLAB-a pojavit će se MATLAB radno okruženje slika 1.1. MATLAB radnookruženje sastoji se od:

• Menija - u kome se nalaze komande za učitavanje fileova, radnog okruženja, štampanje, debagi-ranje, podešavanje putanje i dr.

• Komandni prozor - koji omogućuju potpunu kontrolu MATLAB okruženja kao i pisanje kratkihprograma, pregleda opisa bilo koje MATLAB komande itd.

• Workspace - predstavlja listu svih deklarisanih i inicijaliziranih varijabli.

• Command history - predstavlja listu svih prethodno izvršenih komandi u komandnom prozoru.

Page 4: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

4 SIGNALI I SISTEMI

Slika 1.1: MATLAB radno okruženje

PutanjaMATLAB putanja (path) predstavlja listu direktorija koje MATLAB ”vidi” tj koje pretražuje zasistemske biblioteke. Path cache predstavlja predefinisanu listu /toolbox fileova kreiranu prilikompokretanja MATLAB-a u cilju bržeg izvršavanja skripti i funkcija. Neke od korisnih MATLAB komandiza rad sa pathom su

• path - prikazuje sve direktorije koje matlab uključuje u putanju.

• pathtool - GUI alat za dodavanje/brisanje direktorija na MATLAB putanju.

• addpath arg - dodaje direktorij arg u MATLAB putanju.

• rmpath arg - briše direktorij arg sa MATLAB putanje.

• which arg - provjerava da li se file arg nalazi na MATLAB putanji.

VarijableMATLAB sve varijable tretira kao matrice. Osnovni (default) tip podatka u MATLAB-u je double. Naslici 1.2 prikazano je stablo svih tipova podataka u MATLAB-u. S druge strane, MATLAB podržavarealne, kompleksne i simboličke varijable. Varijable prema vidljivosti se djele na globalne i lokalne.Globalne varijable definišemo pomoću ključne riječi global. Prema izvoru nastanka varijable dijelimona interne i eksterne. Deklaracija i inicijalizacija varijabli u MATLAB-u se vrši istovremeno.

Primjer: definišimo varijablu a koja ima vrijednost 10, varijablu b koja ima vrijednost 2.1415 i varijabluc koja ima vrijednost 2 + j3

Page 5: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

SIGNALI I SISTEMI 5

N-DIMENSION ARRAY

HETEROGENEOUSCONTAINER

NAME-BASEDstruct

INDEX-BASEDcell

FLOATING POINT

FUNCTIONHANDLE

function_handle

TEXTchar

NUMERIC

FLOATING POINT

SINGLEPRECISION

single

DOUBLEPRECISION

double(default)

INTEGER

SIGNEDint8int16int32

UNSIGNEDuint8uint16uint32

BOOLEANlogical

Slika 1.2

>> a=10

a =

10

>> b=2.1415

b =

2.1415

>> c=2+j*3

c =

2.0000 + 3.0000i

Varijabla a je skalar ali je MATLAB tretira kao matricu dimenzija 1×1. Listu svih varijabli u radnomokruženju možemo dobiti sa komandom who dok listu svih varijabli sa tipom podatka, dimenzijama iatributima možemo dobiti sa whos.

>> who

Your variables are:

a b c

>> whosName Size Bytes Class Attributes

a 1x1 8 doubleb 1x1 8 doublec 1x1 16 double complex

Deklaracija i inicijalizacija matrice ili vektora izvodi se sa uglastim zagradama [ ]. Redovi u matri-cama se odvajaju sa operatorom ”;”.

Page 6: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

6 SIGNALI I SISTEMI

>> A=[1 2 3 4]

A =

1 2 3 4

>> B=[1 2 3; 4 5 6; 7 8 9]

B =

1 2 34 5 67 8 9

Matricu nula sa n kolona i m redova kreiramo sa komandom zeros(m,n)

zeros(3,2)

ans =

0 00 00 0

Matricu jedinica sa n kolona i m redova kreiramo sa komandom ones(m,n)

ones(4,3)

ans =

1 1 11 1 11 1 11 1 1

Jediničnu matricu kreiramo sa komandom eye(n)

>> eye(3)

ans =

1 0 00 1 00 0 1

Indeksiranje matricaIndeksi N-dimenzionalnog niza u MATLAB-u počinju od vrijednosti 1. Indeksiranje matrice vršimosa malim zagradama ( ).

>> A=[4 3 1 5 6]

A =

4 3 1 5 6

>> A(2)

ans =

Page 7: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

SIGNALI I SISTEMI 7

3

>> A(0)??? Subscript indices must either be real positive integers or logicals.

U zadnjoj liniji vidimo da je nastupila greška jer smo pokušali pristupiti elementu matrice čiji je indeks0. Od matrice A možemo napraviti novu matricu koja će sadržavati sve vrijednosti matrice A za datiopseg indeksa upotrebom operatora ”:”.

A =

4 3 1 5 6

>> B=A(2:4)

B =

3 1 5

Matrice možemo indeksirati i sa jednim indeksom pri čemu se elementi matrice indeksiraju po kolo-nama.

A =

1 23 4

>> A(1:3)

ans =

1 3 2

Kao i kod jednodimenzionalnih matrica i od dvodimenzionalnih matrica možemo formirati nove matricesa operatorom ”:”.

>> A=[1 2 3; 4 5 6; 7 8 9]

A =

1 2 34 5 67 8 9

>> B=A(2:3,1:2)

B =

4 57 8

>> B=A(2:3,1)

B =

47

>> B=A(2,:)

Page 8: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

8 SIGNALI I SISTEMI

B =

4 5 6

Sa operatorom ”:” možemo generisati vektor sa određenim inkrementom.

>> t=0:0.2:1

t =

0 0.2000 0.4000 0.6000 0.8000 1.0000

>> a=−5:2:7

a =

−5 −3 −1 1 3 5 7

Ako ne želimo da se rezulta poziva neke komande ispiše u komandnom prozoru na kraj linije stavljamo”;”. Operator ”;” nije obavezan kao što je to slučaj u C jeziku.

>> A=[1 0 2]

A =

1 0 2

>> A=[1 0 2];>>

Operacija nad matricamaOd dvije matrica A i B moguće je napraviti novu matricu koja će sadržavati sve elemente matrice A iB na sljedeći načini

>> A=[1 2]

A =

1 2

>> B=[3 4]

B =

3 4

>> C=[A B]

C =

1 2 3 4

>> D=[A; B]

D =

1 23 4

Page 9: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

SIGNALI I SISTEMI 9

Transponovanje matrice izvodi se sa operatorom ”’”

A =

1 2 3

>> A'

ans =

123

>> A=[1 2; 5 6]

A =

1 25 6

>> A'

ans =

1 52 6

Rotiranje matrice za 90 stepeni u suprotnom smijeru kazaljke na satu izvodimo sa komandom rot90.

>> A=[1 2 3 4]

A =

1 2 3 4

>> B=rot90(A)

B =

4321

>> B=rot90(rot90(A))

B =

4 3 2 1

>> A=[1 2; 3 4]

A =

1 23 4

>> B=rot90(A)

B =

2 41 3

Page 10: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

10 SIGNALI I SISTEMI

>> B=rot90(rot90(A))

B =

4 32 1

Obrtanje matrice za 180 stepeni izvodimo sa komandom fliplr.

A =

1 2 34 5 6

>> fliplr(A)

ans =

3 2 16 5 4

Determinantu matrice možemo dobiti sa komandom det a inverznu matricu sa inv.

A =

1 23 4

>> det(A)

ans =

−2

>> inv(A)

ans =

−2.0000 1.00001.5000 −0.5000

Svojstvene vrijednosti matrice A možemo dobit sa komandom eig

A =

1 24 5

>> eig(A)

ans =

−0.46416.4641

Operacija sa matricamaSabiranje, oduzimanje i množenje matrica u MATLAB-u izvodimo sa operatorima ”+”, ”-” i ”*”respektivno.

Page 11: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

SIGNALI I SISTEMI 11

>> A=[1 0; 2 3]

A =

1 02 3

>> B=[1 2; 0 3]

B =

1 20 3

>> C=A+B

C =

2 22 6

>> D=A−B

D =

0 −22 0

>> E=A*B

E =

1 22 13

U MATLAB-u matrice je moguće sabirati, oduzimati, množiti i djeliti sa konstantom.

A =

1 02 3

>> B=2+A

B =

3 24 5

>> B=2−A

B =

1 20 −1

>> B=2*A

B =

2 04 6

>> B=A/2

B =

Page 12: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

12 SIGNALI I SISTEMI

0.5000 01.0000 1.5000

Pored standardnog načina množenja matrica u MATLAB-u postoji još jedan operator ”.” koji saoperatorim množenja i djeljenja omogućava množenje i djeljenje matrica po principu svaki elementprve matrice sa korespondirajućim elementom druge matrice.

>> A=[1 2; 3 4];>> B=[2 3; 4 5];>> C=A.*B

C =

2 612 20

>> C=B.*A

C =

2 612 20

>> C=A./B

C =

0.5000 0.66670.7500 0.8000

Relacioni operatoriMATLAB podržava sljedeće relacione operatore sa varijablama

Operator Značenje== Jednako∼ = Različito< Manje> Veće<= Manje ili jednako>= Veće ili jednako

Tablica 1.1

Relacioni operatori se mogu primjenjivati na nivou jednog elementa matrice ili na nivou cijele matrice.

>> A=[1 5; 2 6];>> B=[2 4; 2 5];>> A==B

ans =

0 01 0

>> A(1)==B(1)

Page 13: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

SIGNALI I SISTEMI 13

ans =

0

>> A>B

ans =

0 10 1

>> A>=B

ans =

0 11 1

>> A~=B

ans =

1 10 1

>> A==2

ans =

0 01 0

>> A(1)==2

ans =

0

Logički operatoriMATLAB podržava set logičkih operatora na nivou izraza a dati su u tablici 1.2.

Operator Značenje&& I|| ILI

Tablica 1.2

Logičke operatori na nivou bita su dati u tablici 1.3.

Operator Značenje∼ Logička negacija& Logičko i| Logičko ili

xor Logičko xor

Tablica 1.3

Page 14: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

14 SIGNALI I SISTEMI

>> a=1;b=0;c=3;>> a&&b

ans =

0

>> a&&c

ans =

1

>> a||b

ans =

1

>> a=5;b=6;c=0;>> ~a

ans =

0

>> a&b

ans =

1

>> a&c

ans =

0

>> xor(a,b)

ans =

0

>> xor(a,c)

ans =

1

Kompleksni brojeviKompleksan broj deklarišemo i inicijaliziramo na sljedeći način

>> a=1−1*j

a =

1.0000 − 1.0000i

>> b=2+1*i

b =

Page 15: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

SIGNALI I SISTEMI 15

2.0000 + 1.0000i

Realni i imaginarni dio kompleksnog broja možemo dobiti preko funkcija real i imag a modul iargument preko funkcija abs i angle.

>> real(a)

ans =

1

>> imag(a)

ans =

−1

>> angle(a)

ans =

−0.7854

>> abs(a)

ans =

1.4142

KonstanteU MATLAB-u imamo nekoliko predefinisanih konstanti a date su u tablici 1.4.

Konstanta Vrijednostπ 3.14159269i Imaginarna jedinicaj Imaginarna jedinica

realmax Maksimalni pozitivni broj 1.7977e+ 308realmin Minimalni pozitivni broj 2.2251e− 308

inf Beskonačno (Infinity)NaN Not a number

Tablica 1.4

Provjera varijabli za vrijednost NaN i Inf se izvodi preko komandi isnan, isfinite i isinf.

FormatU MATLAB-u postoji više načina za prikaz rezultata matematičkih operacija. Rezultati se uobičajnoprikazuju sa jednostrukom preciznošću (4 značajne cifre iza zareza), način prikaza određuje naredbaformat sa argumentom koji može biti kao u tablici 1.5.

Page 16: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

16 SIGNALI I SISTEMI

Format Prikazshort 4 decimalna mjestashort e eksponencijalni prikaz sa 4 decimalna mjestalong 14 decimalnih mjestalong e eksponencijalni prikaz sa 14 decimalnih mjestarat aproksimacija brojeva razlomkom

compact ispis bez praznih redova

Tablica 1.5

Karakteri i stringoviStringovi predstavljaju vektore karaktera. Elemente stringova indeksiramo kao i elemente matrice.Relacioni operatori za stringove se mogu koristiti samo ako stringovi imaju isti broj elemenata što uvećini slučajeva nije tako. Za poređenje stringova koristi se komanda strcmp a za spajanje stringovastrcat.

>> a=['1' '2' '3']

a =

123>> a='Signali i sistemi';>> b=a;>> a==b

ans =

1 1 1 1 1 1 1 1 1 1 1 1 1 1 11 1

>> strcmp(a,b)

ans =

1

>> b=[a '2']

b =

Signali i sistemi2

>> a==b??? Error using ==> eqMatrix dimensions must agree.

>> strcmp(a,b)

ans =

0

Ćelije i struktureStruktura je tip podatka koji sadrži unaprijed definisan broj i tip podataka. Elemente struktureindeksiramo preko operatora malih zagrada ”()” zajedno sa operatorom ”.”.

Page 17: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

SIGNALI I SISTEMI 17

>> student=struct('Ime', 'Tarik', 'ocjena', 10)

student =

Ime: 'Tarik'ocjena: 10

>> student(2)=struct('Ime', 'Hamza', 'ocjena', 9);>> student(3)=struct('Ime', 'Ado', 'ocjena', 7);>> student

student =

1x3 struct array with fields:Imeocjena

>> student(1)

ans =

Ime: 'Tarik'ocjena: 10

>> student(1).Ime

ans =

Tarik

Podatak tipa ćelija cell predstavlja višedimenzionalnu matricu kod koje elementi mogu biti matricerazličitih dimenzija. Elementima ćelije pristupamo pomoću operatora vitičastih zagrada ””.

>> a=cell(2,2);>> a1=[1 2 3 4];a2=[3 4];a3=[1 3 4];a4=[1 4];>> a

a =

[1x4 double] [1x3 double][1x2 double] [1x2 double]

>> a1(:)

ans =

1234

>> a3(:)

ans =

134

Grafički prikaz podatakaGrafička interpretacija 2D funkcija omogućena je preko dvije komande plot i stem. Komanda plotse koristi isključivo za prikaz kontinualnih veličina dok stem za prikaz diskretnih veličina.

Page 18: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

18 SIGNALI I SISTEMI

% uklanjanje svih varijabli iz radnog okruzenjaclear all% zatvaranje svih formi (plotova)close all% ciscenje komandnog prozoraclc

t=0:0.01:6;x1=sin(pi*t);x2=exp(−t);x3=0.1*t.*log(t+1);

% kreiramo formu u kojoj cemo prikazati nase funkcijefigure(1)plot(t,x1)% zadrzimo dati plot na formihold on% prikazemo drugu funkciju crvenom bojomplot(t,x2,'r')% prikazemo trecu funkciju crnom bojomplot(t,x3,'k')hold off

% oznake za apscisu i ordinatuxlabel('t')ylabel('x(t)')% naziv plotatitle('Funckije sin(\pi t), e^−t, 0.1t ln(t+1)')

% definisanje opsega unutar kojeg cemo posmatrati plotaxis([0 5 −2 2])

clear allclose allclc

n=1:10;N=10;% generisanje 10 slucajnih brojeva prema uniformnoj raspodjelix1=rand(1,N);% generisanje 10 slucajnih brojeva prema normalnoj raspodjelix2=randn(1,N);

% kreiramo formu u kojoj cemo prikazati nase funkcijefigure(1)% figura ce imati dva plota prvi jesubplot(2,1,1)stem(n,x1)% oznake za apscisu i ordinatu prvog dijagramaxlabel('n')ylabel('x(n)')% naziv dijagramatitle('Slucajni brojevi, uniformna raspodjela')

% drugi plot jesubplot(2,1,2)stem(n,x2,'r','marker','.')% oznake za apscisu i ordinatu drugog dijagramaxlabel('n')ylabel('x(n)')% naziv dijagramatitle('Slucajni brojevi, normalna raspodjela')

Page 19: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

SIGNALI I SISTEMI 19

Kontrola toka programaKontrola toka programa izvodi se pomoću if, elseif, else i end komandi.

clear allclose allclc

x=10*rand;

if(x<3)display('x je manje od tri')

elseif(x<=5)display('x je manje od pet a vece od tri')

elsesprintf('x je %f i vece je od pet',x)

end

Kontrolu programa moguće je izvesti preko switch, case, otherwise i end komandi.

osoba = 'Student';switch lower(osoba)

case 'student','ucenik'disp('Osoba je student')

case 'radnik'disp('Osoba je radnik')

case 'profesor'disp('Osoba je profesor')

otherwisedisp('Osoba je nepoznata')

end

PetljeMatlab podržava dva tipa petlji for i while. for petlja se izvršava dok je brojačka varijabla manja odpredefinisane vrijednosti a while petlja se izvršava sve dok je ispunjen logički uslov. Petlje se realizujusa komandama for, while, break i end.

clear allclose allclc

for i=1:10if (mod(i,2)==0)

sprintf('Broj %.3f je paran',i)else

sprintf('Broj %.3f je neparan',i)end

end

x=randn=0.01;while(1)

if(n>=x)sprintf('Pronasao sam veci broj od x=%.3f i to je broj n=%.3f',x,n)break

endn=n+0.01;

end

Page 20: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

20 SIGNALI I SISTEMI

FunkcijeFunkcije predstavljaju komande ili dio koda koji se ponavlja. Funkcije se definišu na sljedeći način

function [outarg1,outarg2,...,outargn]=imefunkcije(inarg1,inarg2,...,inargn)

tijelo funkcije

Funkcija se sprema u zaseban file koji ima isto ime kao i funkcija.

Napisati MATLAB funkciju koja provjerava da li su dva niza ista.

function [val1,val2,index1] = test(in1,in2)size1 = size(in1,1)*size(in1,2);size2 = size(in2,1)*size(in2,2);if (size1 > size2)

max = size1;else

max = size2;endfor i=1:1:max

if(in1(i) ~= in2(i) )val1 = in1(i);val2 = in2(i);index1 = i;break;

endend

end

>> a = [1 2 3];>> b = [1 3 3];>> test(a,b)

ans =

2

Varijable deklarisane i inicijalizirane u samoj funkciji nisu vidljive izvan funkcije.

Simbolički računMATLAB omogućuje kreiranje posebnih simboličkih varijabli i objekata. Simboličke varijable sadrža-vaju simboličke izraze nad kojima je moguće vršiti operacije diferenciranja.

clear allclose allclc

% deklaracija simbolickih varijablisyms x t;

y = x^3 + x*cos(x) − exp(x);pretty(y)x = 1;% izracunavanje vrijednosti funkcije yy_val = eval(y);

z = diff(y,1);pretty(z)

x = 1;z_val = eval(z);

Page 21: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

SIGNALI I SISTEMI 21

n=1;for x = 0:0.01:5

y_val1(n) = eval(y);z_val1(n) = eval(z);t(n) = x;n = n + 1;

end

plot(0:0.01:5,y_val1)hold onplot(0:0.01:5,z_val1,'−−r')

PolinomiKorijene polinoma n-tog reda u MATLAB-u moguće je dobiti upotrebom roots komande.

clear allclose allclc

% korijeni polinoma x^2+2*x+1=0 supx1=[1 2 1];% korijeni jednacine suroots(px1)

% vrijednost polinoma za x=0polyval(px1,0)% vrijednost polinoma za x=10polyval(px1,0)

px2=[1 3 3 1];roots(px2)

px3=[1 3 5 3 1];roots(px3)

% korijeni jednacinex=[1 2 3]% polinom jepoly(x)

Dodatne napomene

1. Znak % u MATLAB-u predstavlja komentar karakter.

2. Ime varijable u MATLAB-u ne može biti duže od 63 karaktera.

3. Za prelamanje linije koda koristimo tri tačke (...).

4. Rezultat izvršavanja MATLAB koda neće biti prikazan ako se na kraj linije stavi ”;”.

5. Opis bilo koje komande u MATLAB može se dobiti upotrebom help komande u MATLABkomandnom prozoru u formi help komanda_od_interesa

6. Radno okruženje zajedno sa svim varijablama moguće je spremiti u mojfile.mat file sa savekomandom a učitati ponovo sa load mojfile.mat.

Page 22: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

22 SIGNALI I SISTEMI

Page 23: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

Laboratorijska vježba 2

Zadatak 2.1Koristeći MATLAB funkciju stepfun nacrtati sljedeće kontinualne signale

a) x(t) = u(t)

b) x(t) = u(t− 2)

c) x(t) = u(t+ 3)

d) x(t) = 2u(2− t)

e) x(t) = −2u(−3− t)

Rješenje

clear allclose allclc

% vremenski vektor unutar koga prikazujemo signal x(t)% sa granulacijom 0.01st=−5:0.01:5;% generisanje step signala preko ugradjene funkcije stepfun()x=stepfun(t,0);

figure(1)plot(t,x)axis([−5 5 −0.5 1.5])title('x(t)=u(t)')xlabel('t')ylabel('x(t)')grid on

% x(t)=u(t−2)x=stepfun(t,2);figure(2)plot(t,x,'r')axis([−5 5 −0.5 1.5])title('x(t)=u(t−2)')xlabel('t')ylabel('x(t)')grid on

Page 24: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

24 SIGNALI I SISTEMI

−4 −2 0 2 4−0.5

0

0.5

1

1.5

t

x(t

)

(a) Signal x(t) = u(t)

−4 −2 0 2 4−0.5

0

0.5

1

1.5

t

x(t

)

(b) Signal x(t) = u(t− 2)

−4 −2 0 2 4−0.5

0

0.5

1

1.5

t

x(t

)

(c) Signal x(t) = u(t+ 3)

Slika 2.1

% x(t)=u(t+3)x=stepfun(t,−3);figure(3)plot(t,x,'k')axis([−5 5 −0.5 1.5])title('x(t)=u(t+3)')xlabel('t')ylabel('x(t)')grid on

Zadatak 2.2Koristeći MATLAB funkciju stepfun nacrtati sljedeće kontinualne signale

a) x(t) = δ(t)

b) x(t) = δ(t− 2)

c) x(t) = δ(t+ 1)

d) x(t) = 2δ(2− t)

e) x(t) = −3δ(−3− t)

Rješenje

clear allclose allclc

t=−5:0.01:5;% generisanje delta impulsa preko ugradjene funkcije stepfun()x=100*(stepfun(t,0)−stepfun(t,0.01));

figure(1)plot(t,x)axis([−5 5 −0.5 101])title('x(t)=\delta(t)')xlabel('t')ylabel('x(t)')grid on

Page 25: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

SIGNALI I SISTEMI 25

−4 −2 0 2 4

0

20

40

60

80

100

t

x(t

)

(a) Signal x(t) = δ(t)

−4 −2 0 2 4

0

20

40

60

80

100

t

x(t

)

(b) Signal x(t) = δ(t− 2)

−4 −2 0 2 4

0

20

40

60

80

100

t

x(t

)

(c) Signal x(t) = δ(t+ 1)

Slika 2.2

% x(t)=d(t−2)x=100*(stepfun(t,2)−stepfun(t,2.01));figure(2)plot(t,x,'r')axis([−5 5 −0.5 101])title('x(t)=\delta(t−2)')xlabel('t')ylabel('x(t)')grid on

% x(t)=d(t+1)x=100*(stepfun(t,−1)−stepfun(t,−0.99));figure(3)plot(t,x,'k')axis([−5 5 −0.5 101])title('x(t)=\delta(t+1)')xlabel('t')ylabel('x(t)')grid on

Zadatak 2.3Koristeći ugrađene MATLAB funkcije nacrtati sljedeće kontinualne signale

a) x(t) = sin(2πt)

b) x(t) = cos(10πt) + sin(2πt)

c) x(t) = e(σ+jω)t

d) x(t) = 2 cos2(10πt)

e) x(t) = e−0.2t cos(2πt)

Rješenje

clear allclose allclc

t=−5:0.01:5;x=sin(2*pi*t);

figure(1)plot(t,x)

Page 26: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

26 SIGNALI I SISTEMI

axis([−5 5 −1.5 1.5])title('x(t)=sin(2 \pi t)')xlabel('t')ylabel('x(t)')grid on

−4 −2 0 2 4

−1

0

1

t

x(t

)

(a) Signal x(t) = sin(2πt)

−4 −2 0 2 4

−2

−1

0

1

2

t

x(t

)

(b) Signal x(t) = cos(10πt)+sin(2πt)

−4 −2 0 2 4

−2

−1

0

1

2

t

x(t

)

(c) Signal x(t) = eσ+jωt

Slika 2.3

x=cos(10*pi*t)+sin(2*pi*t);figure(2)plot(t,x,'r')axis([−5 5 −2.5 2.5])title('x(t)=cos(10 \pi t)+sin(2 \pi t)')xlabel('t')ylabel('x(t)')grid on

x1=exp((0.2+j*pi)*t);x2=exp((−0.2+j*pi)*t);x3=exp((0+j*pi)*t);figure(3)plot(t,real(x1))hold onplot(t,imag(x1),'r')hold onplot(t,real(x2),'−−m')hold onplot(t,real(x3),'−−k')axis([−5 5 −2.5 2.5])title('x(t)=e^(\sigma+j\omega) t')xlabel('t')ylabel('x(t)')grid on

Zadatak 2.4Koristeći MATLAB funkciju stepfun nacrtati sljedeće diskretne signale

a) x[n] = u[n]

b) x[n] = 1.2u[n+ 2]

c) x[n] = 0.8u[n− 1]

d) x[n] = −1.5u[1− n]

e) x[n] = 2u[2− n]

Page 27: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

SIGNALI I SISTEMI 27

Rješenje

clear allclose allclc

n=−5:1:5;x=stepfun(n,0);

figure(1)stem(n,x,'marker','.')axis([−5 5 −0.5 1.5])title('x[n]=u[n])')xlabel('n')ylabel('x[n]')grid on

−4 −2 0 2 4

−1

0

1

n

x(n

)

(a) Signal x(n) = u(n)

−4 −2 0 2 4

−1

0

1

n

x(n

)

(b) Signal x(n) = 1.2u(n+ 2)

−4 −2 0 2 4

−1

0

1

n

x(n

)

(c) Signal x(n) = 0.8u(n− 1)

Slika 2.4

x=1.2*stepfun(n,−2);figure(2)stem(n,x,'r','marker','.')axis([−5 5 −0.5 1.5])title('x[n]=1.2u[n+2])')xlabel('n')ylabel('x[n]')grid on

x=0.8*stepfun(n,1);figure(3)stem(n,x,'k','marker','.')axis([−5 5 −0.5 1.5])title('x[n]=0.8u[n−1])')xlabel('n')ylabel('x[n]')grid on

Zadatak 2.5Koristeći MATLAB nacrtati sljedeće diskretne signale

a) x(n) = δ(n)

b) x(n) = 0.7δ(n− 2)

c) x(n) = 1.3δ(n+ 4)

Page 28: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

28 SIGNALI I SISTEMI

d) x(n) = 2δ(2− n)

e) x(n) = −3δ(−3− n)

f) x(n) = sin(πn

2

)g) x(n) = 0.8 cos(8πn− 0.5) + 1.2 sin(2πn)

h) x(n) = e(σ+jω)n

i) x(n) = 2 cos2(10πn)

j) x(n) = 0.2n cos(2πn)

Rješenje

clear allclose allclc

n=−5:1:5;x=stepfun(n,0)−stepfun(n,1);

figure(1)stem(n,x,'marker','.')axis([−5 5 −0.5 1.5])title('x[n]=\delta[n])')xlabel('n')ylabel('x[n]')grid on

−4 −2 0 2 4

−1

0

1

n

x(n

)

(a) Signal x(n) = δ(n)

−4 −2 0 2 4

−1

0

1

n

x(n

)

(b) Signal x(n) = 0.7δ(n− 2)

−4 −2 0 2 4

−1

0

1

n

x(n

)

(c) Signal x(n) = 1.3δ(n+ 4)

Slika 2.5

x=0.7*(stepfun(n,2)−stepfun(n,3));figure(2)stem(n,x,'r','marker','.')axis([−5 5 −0.5 1.5])title('x[n]=0.7\delta[n−2])')xlabel('n')ylabel('x[n]')grid on

x=1.3*(stepfun(n,4)−stepfun(n,3));figure(3)stem(n,x,'k','marker','.')axis([−5 5 −0.5 1.5])

Page 29: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

SIGNALI I SISTEMI 29

title('x[n]=1.3u[n+4])')xlabel('n')ylabel('x[n]')grid on

clear allclose allclc

n=−5:1:5;x=sin(pi*n/2);

figure(1)stem(n,x,'marker','.')axis([−5 5 −0.5 1.5])title('x[n]=sin(\pi n/2))')xlabel('n')ylabel('x[n]')grid on

−4 −2 0 2 4

−1

0

1

n

x(n

)

(a) Signal x(n) = sin(πn

2

) −4 −2 0 2 4

−1

0

1

n

x(n

)

(b) Signal x(n) = 0.8 cos(8πn−0.5)+1.2 sin(2πn)

−4 −2 0 2 4

−2

−1

0

1

2

n

x(n

)(c) Signal x(n) = e(σ+jω)n

Slika 2.6

x=0.8*cos(0.8*pi*n−0.5)+sin(2*pi*n);figure(2)stem(n,x,'r','marker','.')axis([−5 5 −0.5 1.5])title('x[n]=0.8cos(8 \pi n −0.5)+sin(2 \pi n)')xlabel('n')ylabel('x[n]')grid on

x1=exp((0.2+j*pi)*n);x2=exp((−0.2+j*pi)*n);x3=exp((0+j*pi)*n);figure(3)stem(n,real(x1),'b','marker','.')hold onstem(n,imag(x1),'r','marker','.')hold onstem(n,real(x2),'m','marker','.')hold onstem(n,real(x3),'k','marker','.')axis([−5 5 −2.5 2.5])title('x[n]=e^(\sigma+j\omega) n')xlabel('n')ylabel('x[n]')grid on

Page 30: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

30 SIGNALI I SISTEMI

Zadatak 2.6Koristeći MATLAB predefinisane funkcije nacrtati sljedeće kontinualne signale

a) Pravougaoni impuls širine tw = 2s i centriran u nuli.

b) Trougaoni impuls širine tw = 3s i centriran u nuli.

c) Gaussov impuls centralne frekvencije 1Hz i centriran u nuli.

d) Povorku pravougaonih impulsa perioda T=2.

e) Povorku trougaonih impulsa perioda T=2.

f) Chrip signal sa promjenom frekvencije od 0 do 100Hz u vremenskom intervalu (0,1).

Rješenje

clear allclose allclc

t=−5:0.01:5;tw=2;

% koristimo ugradjenu funkciju rectpuls()x=rectpuls(t,tw);

figure(1)plot(t,x)axis([−5 5 −0.5 1.5])title('x(t)=rect(t/t_w)')xlabel('t')ylabel('x(t)')grid on

% ili preko step signalax=stepfun(t,−1)−stepfun(t,1);

figure(2)plot(t,x)axis([−5 5 −0.5 1.5])title('x(t)=u(t+1)−u(t−1)')xlabel('t')ylabel('x(t)')grid on

Page 31: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

SIGNALI I SISTEMI 31

−4 −2 0 2 4−0.5

0

0.5

1

1.5

t

x(t

)

(a) Signal x(t) = Π(t

tw

) −4 −2 0 2 4−0.5

0

0.5

1

1.5

t

x(t

)

(b) Signal x(t) = Λ(t

tw

) −4 −2 0 2 4

−1

0

1

t

x(t

)

(c) Signal gauspuls

Slika 2.7

tw=3;x=tripuls(t,tw);

figure(3)plot(t,x)axis([−5 5 −0.5 1.5])title('x(t)=\Lambda(t/t_w)')xlabel('t')ylabel('x(t)')grid on

% ili preko step signala

x=(2*t/3+1).*(stepfun(t,−1.5)−stepfun(t,0))+(1−2*t/3).*(stepfun(t,0)−stepfun(t,1.5));figure(4)plot(t,x)axis([−5 5 −0.5 1.5])title('x(t)=(2t/3+1)(u(t+1)−u(t))+(1−2t/3)(u(t)−u(t−1))')xlabel('t')ylabel('x(t)')grid on

% Gaussov impuls − sinusni impulsi modulisani Gaussovom funkcijomfc=1; % centralna frekvencijabw=1/3; % frekventni opsegx=gauspuls(t,fc,bw);figure(5)plot(t,x)axis([−5 5 −1.5 1.5])title('x(t)=u(t+1)−u(t−1)')xlabel('t')ylabel('x(t)')grid on

x=square(pi*t);

figure(6)plot(t,x)axis([−5 5 −1.5 1.5])title('Povorka pravougaonih impulsa')xlabel('t')ylabel('x(t)')grid on

Page 32: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

32 SIGNALI I SISTEMI

x=sawtooth(pi*t);figure(7)plot(t,x)axis([−5 5 −1.5 1.5])title('Povorka trougaonih impulsa')xlabel('t')ylabel('x(t)')grid on

x=chirp(t,0,1,100);figure(8)plot(t,x)axis([−5 5 −1.5 1.5])title('Chrip signal')xlabel('t')ylabel('x(t)')grid on

−4 −2 0 2 4

−1

0

1

t

x(t

)

(a) Povorka pravougaonih impulsa

−4 −2 0 2 4

−1

0

1

t

x(t

)

(b) Povorka trougaonih impulsa

−4 −2 0 2 4

−1

0

1

tx

(t)

(c) Chrip signal

Slika 2.8

Page 33: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

Laboratorijska vježba 3

Zadatak 3.1Za sisteme opisane jednačinama

a) y(t) = 5x(t)

b) y(t) = 4tx2(t)

c) y(t) = x2(t) + 4x(t− 1)

d) y(t) = 4x2(t)

e) y(t) = 10x(t)2in(2πt)

f) y(t) = dx(t)dt

realizovati testove za provjeru linearnosti, vremenske invarijantnosti i stabilnosti koristeći MATLAB/Si-mulink (MATLAB blockset). Dodatno realizovati date testove koristeći MATLAB toolbox.

RješenjeKao što smo prije rekli Simulink predstavlja vizuelni alat pomoću kojeg je moguće analizirati i simuliratikontinualne i diskretne sisteme. Simulink startamo sa komandom simulink u komandnom prozoruMATLAB-a ili klikom na ikonu u toolbaru meniju MATLAB radnog okruženja kao na slici 3.1.

Slika 3.1

Page 34: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

34 SIGNALI I SISTEMI

Nakon pokretanja Simulinka, otvorit će se Simulink Library Browser (slika 3.2) unutar koga senalaze blokovi koji su asocirani sa odgovarajućim matematičkim modelima kontinualnih ili diskretnihsistema. Novi Simulink model kreiramo sa File ⇒ New ⇒ Model ili klikom na ikonu u toolbar traci(crvenom bojom slika 3.2). Modeli kontinualnih i diskretnih sistema označeni su jedinstvenim imenomi nalaze se u izvornoj listi na desnoj strani Simulink Library Browsera (plavom bojom slika 3.2).Svaki blok u izvornoj listi sadrži pod set blokova sa istim atributom kao npr izvori (sources) u podlistisadrži blokove : Radnom number, Signal generator, Sine Wave, Step itd. Blok iz podliste prebacujemou dokument tako što ga selektujemo sa lijevim klikom i držimo dok ga prenosimo na željeno mjesto uSimulink model. Blokove je moguće pretraživati prema njihovom imenu (narandžastom bojom slika3.2) stime što je uvijek potrebno prvo pozicionirati se na početak izvorne liste tj kliknuti na Simulinkprije pretrage.

Slika 3.2

a) Sistem y(t) = 5x(t) predstavlja idealno pojačalo sa pojačanjem 5. Prvo ćemo dizajnirati testza provjeru linearnosti sistema. Za sistem y(t) = f(x(t)) smo rekli da je linearan ako sistemzadovoljava osobine aditivnosti i homogenosti. Drugačije rečeno, sistem je linearan ako je odzivsistema na linearnu kombinaciju dva proizvoljna signala jednak linearnoj kombinaciji odziva ta dvasignala. Matematički zapisan uslov linearnosti je

Tαx1(t) + βx2(t) = αTx1(t)+ βTx2(t)

Uzet ćemo da su konstante α = 2 i β = 3 a modelovat ćemo ih sa blokom Gain kao i sam sistem. Zatestne signale uzet ćemo da je x1(t) = u(t) a modelujemo ga sa blokom Step i x2(t) = tu(t) = r(t)kojeg modelujemo sa blokom Ramp. Za prikaz izlaza sistema koristit ćemo blok Scope. Realizovanitest za linearnost prikazan je na slici 3.3.

Page 35: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

SIGNALI I SISTEMI 35

Slika 3.3: MATLAB/Simulink model za test linearnosti sistema a)

Parametre pojedinih blokova moguće je mjenjati u postavkama koje se pojave nakon dvostrukogklika na željenih blok. Npr želimo da promjenimo pojačanje blok Gain sa 1 na 3. To ćemo uradititako što u polje Gain unesemo vrijednost 3 i potvrdimo sa Ok. Blokovi na slici 3.3 imaju inicijalnepostavke osim blokova Gain tj njihovog pojačanja. Blokovi To Workspace i Clock su opcioni a služeisključivo za eksportovanje rezultata simulacije u radno okruženje. Za ispravano eksportovanjerazultata simulacije potrebno je u postavkama blokova To Workspace i Clock promjeniti Saveformat u Array. Nakon realizacije sistema spremiti model pod imenom SSLab01a1.mdl. Zadnjiparametar koji trebamo odrediti je vrijeme trajanja simulacije. Vrijednost trajanja simulacije ćemouzeti da je 10 sekundi a unosimo ga u polje prikazano na slici 3.4 (crvenom bojom) ili kroz meniSimulation ⇒ Configuration Parameters ⇒ Stop time 10. Pokretanje simulacije izvodimokroz meni sa Simulation ⇒ Start (kombinacija tipki ctrl+t) ili kroz toolbar (plavom bojomslika 3.4).

Slika 3.4

0 2 4 6 8 100

50

100

150

t

y(t

)

(a) Linearna kombinacija odziva

0 2 4 6 8 100

50

100

150

t

y(t

)

(b) Odziv na linearnu kombinaciju

Slika 3.5

Page 36: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

36 SIGNALI I SISTEMI

Nakon simulacije odzive sistema možemo vidjeti sa dvostrukim klikom na blok Scope. Korisnakomanda je autoscale koja vrši pravilno skaliranje grafika (plotova) a dostupna je iz toolbartrake Scope prozora. Broj simultanih signala koje želimo prikazati u bloku Scope određujemo saparametrom Number of axes u postavkama bloka Scope kao Parameters ⇒ Number of axes iza naš slučaj je to 2. Odzive sistema takođe možemo prikazati pozivom komande plot pošto smoeksportovali rezultate simulacije. U komandnom prozoru MATLAB-a pozvati sljedeće komande.

>> plot(t,y1);>> hold on>> plot(t,y2,'−−r');

Da li je dati sistem linearan? Pogledati odzive u oba slučaja slika 3.5.Sljedeća osobina sistema koju je potrebno provjeriti je vremenska invarijatnost. Kod testa vremen-ske invarijantnosti moramo provjeriti da li je odziv sistema na zakašnjeli ulaz jednak zakašnjelomodzivu. Vrijednost kašnjenja u oba slučaja mora biti ista kao i oblik ulaznog signala. Vrijednostkašnjenja je proizvoljna ali mi ćemo uzeti da je jedna sekunda. Jedan od načina realizacije kašnje-nja u Simulinku je pomoću bloka Transport Delay. Dvostrukim klikom na dati blok dobit ćemonjegove postavke a među kojima je i Time delay parametar koji određuje iznos kašnjenja i u našemslučaju je 1. Test za vremensku invarijantnost prikazan je na slici 3.6.

Slika 3.6: MATLAB/Simulink model za test vremenske invarijantnosti sistema a)

0 2 4 6 8 100

2

4

6

8

t

y(t

)

(a) Odziv sistema na zakašnjeli ulaz

0 2 4 6 8 100

2

4

6

8

t

y(t

)

(b) Zakašnjeli odziv sistema

Slika 3.7

Nakon realizacije modela spremiti ga pod imenom SSLab01a2.mdl. Vrijeme simulacije uzeti da jedeset sekundi.

Page 37: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

SIGNALI I SISTEMI 37

Da li je dati sistem vremenski varijantan? Pogledati odzive u oba slučaja slika 3.7.Finalno trebamo dizajnirati test za provjeru stabilnosti sistema. Kod BIBO stabilnosti sistematrebamo provjeriti da li ograničen ulaz uzrokuje ograničen izlaz. Voditi računa da izlaz mora bitiograničen i kada t→∞. Test za stabilnost sistema prikazan je na slici 3.8.

Slika 3.8: MATLAB/Simulink model za test stabilnosti sistema a)

0 2 4 6 8 100

2

4

6

8

t

y(t

)

Slika 3.9: Odziv sistema na ograničen ulaz

Ako promjenimo vrijeme simulacije na 100 sekundi šta možemo uočiti? Da li je dati sistem stabilan?Ako bi zamjenili tip ulaznog signala sa Ramp šta možemo primjetiti?

b) Modeli testova za provjeru linearnosti, vremenske invarijantnosti i stabilnosti sistema y(t) = 4tx2(t)su iste kao i za prethodni sistem. Jedina razlika je u samoj realizaciji sistema koja zahtjeva upotrebuDot Product bloka sa inicijalnim postavkama.

Page 38: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

38 SIGNALI I SISTEMI

Slika 3.10: MATLAB/Simulink model za test linearnosti sistema b)

Slika 3.11: MATLAB/Simulink model za test vremenske invarijantnosti sistema b)

Slika 3.12: MATLAB/Simulink model za test stabilnosti sistema b)

Page 39: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

SIGNALI I SISTEMI 39

0 2 4 6 8 100

0.2

0.4

0.6

0.8

1 ·104

t

y(t

)

(a) Linearna kombinacija odziva

0 2 4 6 8 100

1

2

3

4 ·104

t

y(t

)

(b) Odziv na linearnu kombinaciju

Slika 3.13

0 2 4 6 8 100

10

20

30

t

y(t

)

(a) Odziv sistema na zakašnjeli ulaz

0 2 4 6 8 100

10

20

30

t

y(t

)

(b) Zakašnjeli odziv sistema

Slika 3.14

0 2 4 6 8 100

10

20

30

t

y(t

)

Slika 3.15: Odziv sistema na ograničen ulaz

Page 40: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

40 SIGNALI I SISTEMI

Page 41: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

Laboratorijska vježba 4

UvodU ovoj laboratorijskoj vježbi upoznat ćemo se sa veoma važnim postupkom u obradi signala a to jeakvizicija podataka i predstavlja adekvatan (digitalni) način prikupljanja podataka. Generisat ćemorazličite talasne oblike signala na različitim frekvencijama i posmatrati ih na osciloskopu te vršitiakviziciju na računaru.

Zadatak 4.1Potrebno je korištenjem signal generatora MA 3733 generisati sljedeće signale

a) Sinusni signal

• amplitude 1.5V, frekvencije 200Hz• amplitude 1.2V, frekvencije 50Hz

b) Povorku pravougaonih impulsa

• amplitude 1V, frekvencije 70Hz• amplitude 2V, frekvencije 30Hz

c) Povorku trougaonih impulsa

• amplitude 2.2V, frekvencije 80Hz• amplitude 2.5V, frekvencije 8Hz

Svaki od signala potrebno je prikazati na osciloskopu 3502C te izvršiti akvizijciju signala u MATLABradno okruženje preko mikrofonskog ili line in ulaza na audio kartici. Napisati funkciju za mjerenjefrekvencije importovanog signala. Spajanje opreme izvršiti prema shemi prikazanoj na slici 4.1.

Page 42: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

42 SIGNALI I SISTEMI

RAČUNAR

OSCILOSKOP

SIGNAL GENERATOR

LINE IN

Slika 4.1

Oprema3502C predstavlja dvokanalni osciloskop a namjenjen je za analizu signala čija frekvencija ne prelazi20MHz. Osciloskop predstavlja mjerni instrument namjenjen za posmatranje talasnih oblika signala uvremenskom domenu. Opšte karakteristike osciloskopa 3502C su:

1. Vertikalni otklon

• Faktor otklona 5mV do 20V/Div na 12 opsega u 1-2-5 koraka sa finim tuniranjem• Propusni opseg: DC - 20MHz (-3dB)• Vrijeme porasta ≤ 17.5 ns• Preskok ≤ 8%• Ulazna impedansa šentovana za 20pF ± 3pF.• Modovi rada CH-A, CH-B, DUAL i ADD• Frekvencija odsjecanja ≈ 200kHz• Odvajanje kanala 60dB na 1kHz

2. Vremenska baza

• Okidanje automatsko ili vanjskim izvorom• Sweep Time 0.2µs - 0.5s/Div• Skaliranje 5x na svim opsezima

3. Okidanje

• Izvor INT, CH-B, LINE ili EXT• Pozitivna ili negativna ivica• Osjetljivost za interno okidanje ≥ 2Div• Osjetljivost za eksterno okidanje ≥ 1Vp-p

4. Horizontalni otklon

• Faktor otklona 5mV - 20V/Div na 12 opsega u 1-2-5 koraka sa finim tuniranjem.

Page 43: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

SIGNALI I SISTEMI 43

• Frekventni odziv DC - 1MHz (-3dB)• Ulazna impedansa šentovana za 20pF ± 3pF• Maksimalni ulazni napon do 300V DC + AC ili 600Vp-p

5. Ostale karakteristike

• Kalibracija 0.5Vp-p ± 5% na 1 kHz sa povorkom pravougaonih impulsa• AC napajanje: 100V/120V/220V/240V, 50/60Hz, 19W• Težina ≈ 7kg.• Dimenzije 147(H) X 356(W) X 435(D) [mm]

Slika 4.2

1. Terminal za vertikalni ulaz kanal A

2. Preklopnik za blokiranje AC - GND - DC komponenti kanal A

3. Set prekidača za odabir prikaza jednog ili oba kanala

4. Regulator za podešavanje osjetljivosti V/Div kanal A

5. Dodatni atenuator za podešavanje osjetljivosti kanal A

6. Regulator za podešavanje vertikalne ose kanal A

7. Regulator za podešavanje horizontalne ose kanal A

8. Dodatno pojačanje – sweep time x5

9. Horizontalni regulator za sweep time

10. Dodatni regulator za sweep time

11. Eksterno okidanje

Page 44: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

44 SIGNALI I SISTEMI

12. Kalibracija

13. Podešavanje nivoa okidanja

14. Auto sweep

15. Podešavanje polariteta strmine

16. Sprezanje

17. GND

18. Selektor signala za sinhronizaciju

19. Prekidač za napajanje osciloskopa

20. Regulator za fokus

21. Regulator za intenzitet

22. Trace(trag) regulator

23. Regulator za podešavanje vertikalne ose kanal B

24. Prekidač za invertovanje polariteta kanal B

25. Regulator za podešavanje osjetljivosti V/Div kanal B

26. Dodatni atenuator za podešavanje osjetljivosti kanal B

27. Terminal za vertikalni ulaz kanal B

28. Preklopnik za blokiranje AC – GND – DC komponenti kanal B

29. Prekidač za prelaz iz moda ”osciloskop” u mod testiranje komponenti

Slika 4.3: Sonda OP20

SONDA OP20 (za osciloskop)

a) Ulazni kapacitet osciloskopa

• 15pF• 40pF

b) Atenuacija

• 1:1• 1:10

c) Ulazni kapacitet sonde

• 72.5pF ±10%• 17.5pF ±1%

d) Unutrašnji otpor

• 237Ω ± 10• 9MΩ ± 1

e) Propusni opseg

• 15MHz (±3dB)

Page 45: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

SIGNALI I SISTEMI 45

• 60MHz (±3dB)

f) Maksimalni ulazni napon

• 500V• 300V

g) Dužina sonde: 110mm

h) Dužina kabla sonde: 140cm

Signal generator MA3733 omogućuje generisanje signala sa tri različita talasna oblika: sinusni, trouga-oni i pravougaoni. Za svaki od signala nivo amplitude je moguće mjenjati u opsegu od 0 do 10V te jeomogućena dodatna atenuacija AC komponente za -20dB. MA3733 omogućuje dodavanje DC kompo-nente u AC signal u opsegu od -10V do 10V. Frekventni opseg signal generatora je od DC do 10kHzsa korakom 10x. Fino tuniranje frekvencije moguće je preko glavnog regulatora sa korakom 1/100maksimuma podešenog opsega.

Opis MATLAB funkcija neophodnih za izvođenje vježbe

analoginput() Kreira objekta tipa analog input asociranog sa istoimenim adapterom.Funkcija uzima jedan argumenat koji predstavlja driver za sound adap-ter. Adapter za našu vježbu je ’winsound’.

addchannel() Funkcija prima dva argumenta: OBJ i HWCH. Prvi argumenat je adap-ter kreiran sa funkcijom analoginput() a drugi broj kanala koji želimokoristit za odabrani adapter. U ovoj vježbi koristimo jedan kanal.

set() Funkcija prima tri argumenta: H - handle (poseban tip pokazivača),osobinu kao string i njenu vrijednost. Funkcija služi za podešavanjeparametara adaptera specificiranog sa handlom H. Za ovu vježbu bitnaje osobina adaptera ’SampleRate’ koja predstavlja frekvenciju uzorko-vanja i osobina ’SamplesPerTrigger’ koja predstavlja broj generisanihuzoraka po pozivu getdata. Frekvencija uzorkovanja i broj uzoraka popozivu getdata funkcije je 8000.

start() Funkcija prima jedan argumenat koji predstavlja handle adaptera i služiza pokretanja adaptera.

getdata() Funkcija uzima dva parametra, objekat i njegovu vrijednost a vraćaspecificirani broj podataka definisan sa vrijednošću iz objekta.

U nastavku dat je MATLAB kod za akviziciju podatka sa audio adaptera.

duration = 1;% duzina trajanja bloka podatakaFs = 8000;% frekvencija uzorkovanja signalaA=7;t=0:1/Fs:(1−1/Fs);w=0:1:(Fs−1);% inicijalizacija i konfiguracija audio adapteraAI = analoginput('winsound');% inicijalizacija jednog kanalaaddchannel(AI, 1);% setovanje frekvencije uzorkovanjaset (AI, 'SampleRate', Fs);% setovanje velicine bloka podataka

Page 46: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

46 SIGNALI I SISTEMI

set(AI, 'SamplesPerTrigger', Fs);% pocetak akvizicijefor i=1:1:5

start(AI);data = getdata(AI);if i==1

val=data;else

val=[val data];endsubplot(2,1,1)% skaliranje amplitude tako da odgovara stvarnoj vrijednostidata=data*A;% odredjivanje frekvencije signalaN=0;a=0;if(data(1)>0)

a=2;else

a=1;endn=2;while(n<size(data,1))

if(data(n)>0)if(a==1)

a=2;N=N+1;n=n+5;

endelseif(data(n)<0)

if(a==2)a=1;N=N+1;n=n+5;

endendn=n+1;

endplot(t',data)xlabel('t(s)')ylabel('x(t)')title(sprintf('f = %.1f Hz',(N−1)/2));% prikaz spektra signalamag = spektar(data,Fs);subplot(2,1,2)plot(w(1:500),mag);xlabel('f(Hz)')ylabel('|X(f)|_dBm')pause(0.05);stop(AI);end

disp('−−> Brisanje objekta Analog Input')delete(AI);

Spektar signala moguće je odrediti pozivom funkcije spektar.

function mag = spektar(data,fs)xfft = abs(fft(data));% konverzija u dBmmag = 20*log10(xfft);% odsjecanje nepotrebnih podatakamag=mag(1:500);

Page 47: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

SIGNALI I SISTEMI 47

0 5 · 10−31 · 10−21.5 · 10−22 · 10−22.5 · 10−23 · 10−2−2

−1

0

1

2

t(s)

x(t

)

(a) Talasni oblik signala x(t)

0 100 200 300 400 500

0

20

40

60

80

f(Hz)

|X(f

)|

(b) Amplitudni spektar signala x(t)

Slika 4.4: Sinusni signal f = 200Hz

0 2 · 10−2 4 · 10−2 6 · 10−2 8 · 10−2 0.1

−1

−0.5

0

0.5

1

t(s)

x(t

)

(a) Talasni oblik signala x(t)

0 100 200 300 400 500

0

20

40

60

80

f(Hz)

|X(f

)|

(b) Amplitudni spektar signala x(t)

Slika 4.5: Sinusni signal f = 50Hz

0 2 · 10−3 4 · 10−3 6 · 10−3 8 · 10−3 1 · 10−2

−1

−0.5

0

0.5

1

t(s)

x(t

)

(a) Talasni oblik signala x(t)

0 100 200 300 400 500

0

20

40

60

f(Hz)

|X(f

)|

(b) Amplitudni spektar signala x(t)

Slika 4.6: Povorka trougaonih impulsa f = 70Hz

Page 48: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

48 SIGNALI I SISTEMI

0 2 · 10−3 4 · 10−3 6 · 10−3 8 · 10−3 1 · 10−2

−2

−1

0

1

2

t(s)

x(t

)

(a) Talasni oblik signala x(t)

0 100 200 300 400 500

0

20

40

60

80

f(Hz)

|X(f

)|

(b) Amplitudni spektar signala x(t)

Slika 4.7: Povorka trougaonih impulsa f = 730Hz

0 2 · 10−3 4 · 10−3 6 · 10−3 8 · 10−3 1 · 10−2

−2

−1

0

1

2

3

t(s)

x(t

)

(a) Talasni oblik signala x(t)

0 100 200 300 400 500

20

40

60

80

f(Hz)

|X(f

)|

(b) Amplitudni spektar signala x(t)

Slika 4.8: Povorka pravougaonih impulsa f = 80Hz

0 2 · 10−2 4 · 10−2 6 · 10−2 8 · 10−2 0.1

−0.4

−0.2

0

0.2

0.4

0.6

t(s)

x(t

)

(a) Talasni oblik signala x(t)

0 100 200 300 400 500

0

20

40

60

f(Hz)

|X(f

)|

(b) Amplitudni spektar signala x(t)

Slika 4.9: Povorka pravougaonih impulsa f = 80Hz

Page 49: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

Laboratorijska vježba 5

Zadatak 5.1Nacrtati sljedeće signale

1. x(t) = tu(t)− tu(t− 2)

2. x(t) = e0.5tu(t− 1)− e0.5tu(t− 3)

3. x(t) = (t+ 1)[u(t+ 1)− u(t)] + (1− t)[u(t)− u(t− 1)]

a zatim za svaki od signala izvršiti sljedeće transformacije nezavisno promjenljive

a) x(t− 2)

b) x(t+ 3)

c) x(−t)

d) x(t/2)

e) x(1− t/2)

Dati odgovoren na sljedeća pitanja

a) Da li neka od navedenih operacija transformacije nezavisno promjenljive ima praktičnu primjenu?Navesti par primjera u stvarnom svijetu.

b) Koje od navedenih operacija nije moguće izvesti u realnom svijetu?

c) Pokušati predložiti električno kolo koje realizuje date transformacije.

Rješenje

clear allclose allclc

t = −5:0.05:5;x = t.*(stepfun(t,0)−stepfun(t,2));subplot(3,2,1)plot(t,x,'b','LineWidth',2)axis([−5 5 0 2])xlabel('t')ylabel('x(t)')

Page 50: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

50 SIGNALI I SISTEMI

grid on

x = (t−2).*(stepfun(t,2)−stepfun(t,4));subplot(3,2,2)plot(t,x,'r','LineWidth',2)axis([−5 5 0 2])xlabel('t')ylabel('x(t−2)')grid on

x = (t+3).*(stepfun(t,−3)−stepfun(t,−1));subplot(3,2,3)plot(t,x,'m','LineWidth',2)axis([−5 5 0 2])xlabel('t')ylabel('x(t+3)')grid on

x = (−t).*(stepfun(t,−2)−stepfun(t,0));subplot(3,2,4)plot(t,x,'k','LineWidth',2)axis([−5 5 0 2])xlabel('t')ylabel('x(−t)')grid on

x = (t/2).*(stepfun(t,0)−stepfun(t,4));subplot(3,2,5)plot(t,x,'g','LineWidth',2)axis([−5 5 0 2])xlabel('t')ylabel('x(t/2)')grid on

x = (1−t/2).*(stepfun(t,−2)−stepfun(t,2));subplot(3,2,6)plot(t,x,'c','LineWidth',2)axis([−5 5 0 2])xlabel('t')ylabel('x(1−t/2)')grid on

−4 −2 0 2 4

0

1

2

t

x(t

)

(a)

−4 −2 0 2 4

0

1

2

t

x(t−

2)

(b)

−4 −2 0 2 4

0

1

2

t

x(t

+3)

(c)

Slika 5.1

Page 51: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

SIGNALI I SISTEMI 51

−4 −2 0 2 4

0

1

2

t

x(−t)

(a)

−4 −2 0 2 4

0

1

2

t

x(t/2)

(b)

−4 −2 0 2 4

0

1

2

t

x(1−t/

2)

(c)

Slika 5.2

Zadatak 5.2Koristeći ugrađenu MATLAB funkciju conv odrediti konvoluciju signala x(t) = (t+1)(u(t+1)−u(t))+(1− t)(u(t)−u(t−1)) i h(t) = u(t)−u(t−2). Nacrtati signale x(t), h(t) i y(t). Voditi računa o dužinivektora y(t). Dati odgovoren na sljedeća pitanja

a) Zašto vektor y(t) ima veći broj elemenata nego x(t) i h(t)?

b) Kovolucija se može primjeniti za određivanje odziva koje grupe sistema?

c) Za određivanje odziva sistema pomoću konvolucije neophodno je poznavati jedan podatak. Koji jeto podatak?

Rješenje

clear allclose allclc

t=−4:0.01:4;x=(1+t).*(stepfun(t,−1)−stepfun(t,0))+(1−t).*(stepfun(t,0)−stepfun(t,1));h=stepfun(t,0)−stepfun(t,2);y=conv(x,h);

subplot(3,1,1)plot(t,x)xlabel('t')ylabel('x(t)')axis([−4 4 0 max(x)*1.2])

subplot(3,1,2)plot(t,h,'r')xlabel('t')ylabel('h(t)')axis([−4 4 0 max(h)*1.2])

y=y(501:(size(y,2)−300))*0.01;subplot(3,1,3)plot(t,y,'k')axis([−6 6 0 max(y)*1.3])xlabel('t')ylabel('y(t)')

Page 52: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

52 SIGNALI I SISTEMI

−3 −2 −1 0 1 2 3−0.5

0

0.5

1

1.5

t

x(t

)

(a)

−3 −2 −1 0 1 2 3−0.5

0

0.5

1

1.5

t

h(t

)

(b)

−3 −2 −1 0 1 2 3−0.5

0

0.5

1

1.5

t

y(t

)

(c)

Slika 5.3

Zadatak 5.3Koristeći MATLAB odrediti konvoluciju sljedećih signala

a) x(t) = u(t)− u(t− 3) i h(t) = u(t)− u(t− 2)

b) x(t) = t(u(t)− u(t− 3)) i h(t) = u(t)− u(t− 1)

c) x(t) = t(u(t)− u(t− 2)) i h(t) = e−t(u(t− 1)− u(t− 3))

a zatim nacrtati svaki od signala. Dati odgovore na sljedeća pitanja

a) Konvolucija dva kontinualna signala konačnog trajanja je signal kakav po trajanju? Šta ako jejedan od signala beskonačnog trajanja?

b) Analizirati slučaj a) kada se u širina signala x(t) smanjuje. Šta možemo primjetiti? Ako bi pro-mjenili talasni oblik signala x(t) = e−t(u(t− 1)− u(t− 3)) da li bi imali istu situaciju?

c) Konvolucija delta impulsa sa bilo kojim signalom kao rezultat daje koji signal? Kakva je situacijasa pomjerenim delta impulsom?

Rješenje

clear allclose allclc

% vremenska granulacijatstep=0.01;% korak simulacijeN=10;% vremenska pauza (sec) za simulacijutdelay=0.2;t=−6:0.01:6;

x=stepfun(t,0)−stepfun(t,3);%x=t.*(stepfun(t,0)−stepfun(t,2));%x=exp(−t).*(stepfun(t,1)−stepfun(t,2));

h=(stepfun(t,0)−stepfun(t,2));%h=exp(−t).*(stepfun(t,−1)−stepfun(t,3));%h=t.*(stepfun(t,0)−stepfun(t,2));

hr=rot90(rot90(h));Ns=400;

Page 53: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

SIGNALI I SISTEMI 53

hr=[hr((Ns+1):size(hr,2)) zeros(1,Ns)];y=conv(x,h);tsize=size(t,2)/2;yr=y((tsize):size(y,2))*tstep;yr=yr(1:(size(yr,2)−tsize+1));[xmax xmval]=max(x);[hmax hmval]=max(h);[ymax ymval]=max(yr);

jstep=tstep*N;fh=figure(1);n=1;for i=−4:jstep:5.9;

%close allclf(fh)subplot(4,1,1)plot(t,x)xlabel('t')ylabel('x(t)')axis([−6 6 0 xmax*1.2])

subplot(4,1,2)plot(t,h,'r')xlabel('t')ylabel('h(t)')axis([−6 6 0 hmax*1.2])

subplot(4,1,3)plot(t,x)hold onplot(t,hr,'r')xlabel('\tau')ylabel('x(\tau)h(t−\tau)')axis([−6 6 0 max(xmax,hmax*1.2)])

subplot(4,1,4)yp=[yr(1:(200+n*N)) zeros(1,(size(yr,2)−(200+N*n)))];plot(t,yp)axis([−6 6 0 ymax*1.3])xlabel('t')ylabel('y(t)')pause(tdelay)hr=[zeros(1,N) hr(1:(size(hr,2))−N)];n=n+1;

end

−1 0 1 2 3 4 5−0.5

0

0.5

1

1.5

t

x(t

)

(a)

−1 0 1 2 3 4 5−0.5

0

0.5

1

1.5

t

h(t

)

(b)

−1 0 1 2 3 4 5

0

1

2

t

y(t

)

(c)

Slika 5.4: Konvolucija za slučaj a)

Page 54: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

54 SIGNALI I SISTEMI

−1 0 1 2 3 4 5

0

1

2

t

x(t

)

(a)

−1 0 1 2 3 4 5−0.5

0

0.5

1

1.5

t

h(t

)

(b)

−1 0 1 2 3 4 5

0

1

2

3

t

y(t

)

(c)

Slika 5.5: Konvolucija za slučaj b)

−1 0 1 2 3 4 5

0

1

2

t

x(t

)

(a)

−1 0 1 2 3 4 5−0.5

0

0.5

1

1.5

t

h(t

)

(b)

−1 0 1 2 3 4 5−0.5

0

0.5

1

1.5

t

y(t

)

(c)

Slika 5.6: Konvolucija za slučaj c)

clear allclose allclc

% vremenska granulacijatstep=0.01;% korak simulacijeN=10;% vremenska pauza (sec) za simulacijutdelay=0.2;t=−4:0.01:4;

h=(stepfun(t,0)−stepfun(t,2));fh=figure(1);for i=1:100

x=stepfun(t,0)−stepfun(t,3/i);%x=exp(−t).*(stepfun(t,0)−stepfun(t,3/i));y=conv(x,h);tsize=size(t,2)/2;yr=y((tsize):size(y,2))*tstep;yr=yr(1:(size(yr,2)−tsize+1));

clf(fh)subplot(3,1,1)plot(t,x)xlabel('t')ylabel('x(t)')axis([−6 6 0 max(x)*1.2])

subplot(3,1,2)plot(t,h,'r')xlabel('t')ylabel('h(t)')axis([−6 6 0 max(h)*1.2])

Page 55: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

SIGNALI I SISTEMI 55

subplot(3,1,3)plot(t,yr)axis([−6 6 0 max(yr)*1.3])xlabel('t')ylabel('y(t)')pause(tdelay)

end

Page 56: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

56 SIGNALI I SISTEMI

Page 57: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

Laboratorijska vježba 6

Zadatak 6.1Odrediti izlaz sistema opisanog diferencijalnom jednačinom

d2y(t)dt2

+ 3dy(t)dt

+ 2y(t) = dx(t)dt

ako su početni uslovi y′(0) = 1 i y(0) = 0 a ulaz

a) x(t) = t2u(t)

b) x(t) = u(t)

c) x(t) = sin(t)u(t)

d) x(t) = (t2 + 5t+ 3)u(t)

e) x(t) = 10e−3tu(t)

Dati odgovore na sljedeća pitanja:

a) Objasniti šta predstavlja homogeno rješenje diferencijalne jednačine a šta partikularno rješenjediferencijalne jednačine?

b) Objasništi šta predstavlja odziv sistema na nulto stanje (zero state response) i odziv sistema nanulti ulaz (zero imput response).

c) Da li postoji veza između prethodne dvije grupe rješenja diferencijalne jednačine?

d) Šta obezbjeđuje uslov početnog mirovanja?

RješenjeZa rješavanje date diferencijalne jednačine koristit ćemo simoblički račun MATLAB-a i ugrađenu funk-ciju dsolve.

clear allclose allclc

tstep=0.2;tt=0:tstep:10;% prvi arg f−je dsolve je simbolicki zapis dif. jednacine% drugi treci ... arg predstvljaju pocetne uslove% detaljan opis sa help dsolvex = tt.^2.*stepfun(tt,0);

Page 58: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

58 SIGNALI I SISTEMI

y = dsolve('D2y+3*Dy+2*y=2*t','y(0)=0','Dy(0)=1')n=1;y_val=0;for t=tt(1):tstep:tt(end)

y_val(n)=eval(y);n=n+1;

end

subplot(2,1,1)plot(tt,x);xlabel('t')ylabel('x(t)')subplot(2,1,2)plot(tt,y_val,'r');xlabel('t')ylabel('y(t)')

0 2 4 6 8 100

2

4

6

8

10

t

y(t

)

(a)

0 2 4 6 8 10−0.6

−0.4

−0.2

0

0.2

0.4

0.6

t

y(t

)

(b)

0 2 4 6 8 10

−0.4

−0.2

0

0.2

0.4

t

y(t

)

(c)

Slika 6.1

Odziv sistema je moguće odrediti upotrebom lsim funkcije uz nulte početne uslove. Za dio zadatkaa) na sljedeći način.

clear allclose allclc

tstep=0.2;t=0:tstep:10;

% koeficijenti na lijevoj strani diferencijalne jednacinea=[1 3 2];% koeficijenti na desnoj strani diferencijalne jednacineb=[1 0];x = t.^2.*stepfun(t,0);

% definisanje sistemasys=tf(b,a);y = lsim(sys,x,t);% za starije verzije MATLAB−a% y = lsim(b,a,x,t);

subplot(2,1,1)plot(t,x);xlabel('t')ylabel('x(t)')subplot(2,1,2)plot(t,y,'r');xlabel('t')ylabel('y(t)')

Page 59: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

SIGNALI I SISTEMI 59

Zadatak 6.2Odrediti impulsni odziv sistema opisanih diferencijalnim jednačinama

a) dy(t)dt

+ 2y(t) = x(t)

b) d2y(t)dt2

+ 3dy(t)dt

+ 2y(t) = dx(t)dt

c) d2y(t)dt2

+ 5dy(t)dt

+ 6y(t) = 5x(t)

uz nulte početne uslove. Analitički potvrditi rezultate. Dati odgovore na sljedeća pitanja

a) Da li će se razlikovati impulsni odziv sistema sa odzivom sistema na pomjereni delta impuls δ(t−1)i δ(t− 3)? Potvrditi rješenje analitički i kodom.

b) Da li možemo odrediti odziv sistema na pomjereni delta impuls δ(t+ 1) sa funkcijom impulse? Dali možemo na neki drugi način?

c) Za sve sisteme napraviti MATLAB/Simulink model i odrediti impulsni odziv.

RješenjeJedan pristup određivanju impulsnog odziva sistema je preko aproksimiranog delta impulsa. Delta im-puls ćemo aproksimirati pravougaonim impulsom površine jedan ali konačnog trajanja. Smanjivanjemširine impulsa približavat ćemo se stvarnom delta impulsu.

clear allclose allclc

tstep=0.01;t=−2:tstep:4;

% koeficijenti na lijevoj strani diferencijalne jednacinea=[1 2];% koeficijenti na desnoj strani diferencijalne jednacineb=[1];

% mjenjati sirinu pravougaonog impulsa tw kako bi se priblizili delta impulsutw=0.01;% aproksimirani delta impulsx = (stepfun(t,0)−stepfun(t,tw))/tw;

% definisanje sistemasys=tf(b,a);y = lsim(sys,x,t);

subplot(2,1,1)plot(t,x);xlabel('t')ylabel('x(t)')title('Aproksimirani delta impuls')subplot(2,1,2)plot(t,y,'r');xlabel('t')ylabel('y(t)')title('Odziv sistema na aproksimirani delta impuls')

Drugi pristup određivanja impulsnog odziva sistema zapisanog preko diferencijalnih jednačina je prekougrađene funkcije impulse.

Page 60: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

60 SIGNALI I SISTEMI

−2 −1 0 1 2 3 4

0

50

100

t

y(t

)

(a) Ulazni signal - aproksimacija

0 1 2 3 4

0

0.5

1

t

y(t

)

(b) Impulsni odziv preko aproksima-cije

0 1 2 3 4

0

0.5

1

t

y(t

)

(c) Impulsni odziv sa impulse

Slika 6.2

[y2,t2]=impulse(sys,4);figure(2)plot(t2,y2,'k');xlabel('t')ylabel('y(t)')title('Odziv sistema na delta impuls')

Da bi napravili MATLAB/Simulink model potrebna nam je eksplicitna veza između ulaza i izlaza.Eksplicitnu vezu ćemo dobiti rješavanjem diferencijalne jednačine. Međutim, za realizaciju MATAL-B/simulink modela to nećemo raditi, nego ćemo diferencijalnu jednačinu integrirati onoliko puta kojegje reda diferencijalna jednačina. Za sistem a) imamo

dy(t)dt

+ 2y(t) = x(t)

Nakon intergriranja

y(t) = x(t)− 2∫ t

0y(τ)dτ

Na slici 6.3 imamo realizaciju sistema. Step time step blokova su 0 i 0.1.

Slika 6.3: MATLAB/Simulink model za sistem a)

Page 61: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

SIGNALI I SISTEMI 61

Slika 6.4: MATLAB/Simulink model za sistem b)

Page 62: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

62 SIGNALI I SISTEMI

Page 63: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

Laboratorijska vježba 7

Zadatak 7.1Koristeći MATLAB funkciju laplace odrediti i nacrtati Laplaceovu transformaciju sljedećih signala

a) x(t) = u(t)

b) x(t) = e−tu(t)

c) x(t) = u(t)− u(t− 2)

d) x(t) = t(u(t)− u(t− 1) + (2− t)(u(t− 1)− u(t− 2))

e) x(t) = te−tu(t)

f) x(t) = 0.5t sin(2πt)

Dati odgovor na sljedeća pitanja

a) Objasniti razliku između bilateralne i unilateralne Laplaceove transformacije.

b) Za analizu kojih sistema se koristi unilateralna Laplaceova transformacija?

c) Objasniti pojam oblast konvergencije Laplaceove transformacije.

d) Na kojoj ideji se zasniva Laplaceova transformacija?

e) Laplaceova transformacija je pogodna za analizu sistema tokom kojeg stanja? Zašto?

Rješenje

clear allclose allclc

% simbolicke varijable t i ssyms t sx=sym('Heaviside(t)');%x=sym('Heaviside(t)−Heaviside(t−2)');%x=sym('exp(−t)*Heaviside(t)');%x=sym('t*exp(−t)*Heaviside(t)');

% Laplaceova transformacijaX=laplace(x);pretty(X)

tt=−4:0.01:4;

Page 64: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

64 SIGNALI I SISTEMI

x_val=0;for i=1:size(tt,2)

t=tt(i);x_val(i)=eval(x);if (isnan(x_val(i))==1)

x_val(i)=0;end

end

% s = sigma + j*omega% X(s) mozemo nacrtati za konkretne vrijednosti sigme i omege% a) oblast konvergencije X(s) je Res > 0, uzmimo da je sigma=0.5sigma=0.5omega=−5:0.05:5;ss=sigma+j*omega;for i=1:size(ss,2)

s=ss(i);X_val(i)=eval(X);

end

figure(1)subplot(2,1,1)plot(tt,x_val);xlabel('t')ylabel('x(t)')title('Signal x(t) − vremenski domen')subplot(2,1,2)plot(real(X_val),imag(X_val),'r');xlabel('Re(X(s))')ylabel('Im(X(s))')title('Signal X(s) − frekventni(s) domen')

% X(s) cemo predstaviti u 3D ravni uz napomenu da Res>0sigma=0:0.05:5;omega=sigma;X_val=0;for m=1:size(sigma,2)

for n=1:size(omega,2)s=sigma(m)+j*omega(n);X_val(m,n)=eval(X);

endendfigure(2)mesh(sigma,omega,abs(X_val))xlabel('Re(s)')ylabel('Im(s)')zlabel('|X(s)|')title('Amplituda funkcije X(s)')

figure(3)mesh(sigma,omega,angle(X_val))xlabel('Re(s)')ylabel('Im(s)')zlabel('arg(X(s))')title('Faza funkcije X(s)')

Page 65: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

SIGNALI I SISTEMI 65

−4 −2 0 2 4−0.5

0

0.5

1

1.5

t

x(t

)

(a)

0 0.5 1 1.5 2

−1

−0.5

0

0.5

1

Re(X(s))

Im

(X(s

))

(b)

Slika 7.1: Laplaceova transformacija signala a)

Zadatak 7.2Koristeći MATLAB funkciju ilaplace odrediti inverznu Laplaceovu transformaciju sljedećih funkcija

a) X(s) = 1s+ 1 ROC: Res ≥ −1

b) X(s) = 1s2 + 3s+ 2 ROC: Res ≥ −3

c) X(s) = sest

s2 + 1 ROC: Res ≥ 0

d) X(s) = s+ 1s

ROC: Res ≥ 0

a zatim nacrtati dobijene signale.

a) Da li svakoj funkciji u s domenu odgovara samo jedna funkcija u t domenu? Objasniti kada to nijeslučaj.

b) Šta je to svojstvena funkcija sistema?

Rješenje

clear allclose allclc

syms t sX=sym('1/(s+1)');

% inverzna Laplaceova transformacijax=ilaplace(X);pretty(x)

tt=0:0.01:4;x_val=0;for i=1:size(tt,2)

t=tt(i);

Page 66: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

66 SIGNALI I SISTEMI

x_val(i)=eval(x);if (isnan(x_val(i))==1)

x_val(i)=0;end

end

% oblast konvergencije X(s) je Res > −1, uzmimo da je sigma=0.5sigma=0.5omega=0:0.1:5;ss=sigma+j*omega;for i=1:size(ss,2)

s=ss(i);X_val1(i)=eval(X);

end

figure(1)subplot(2,1,1)plot(tt,x_val);xlabel('t')ylabel('x(t)')title('Signal x(t) − vremenski domen')subplot(2,1,2)plot(real(X_val1),imag(X_val1),'r');xlabel('Re(X(s))')ylabel('Im(X(s))')title('Signal X(s) − frekventni(s) domen')

% X(s) cemo predstaviti u 3D ravni uz napomenu da Res>−1sigma=−2:0.1:5;omega=sigma;X_val=0;h=1;

for m=1:size(sigma,2)for n=1:size(omega,2)

s=sigma(m)+j*omega(n);X_val(m,n)=eval(X);if (isnan(X_val(m,n))==1)

s=sigma(m+1)+j*omega(n);X_val(m,n)=eval(X);endif (isinf(X_val(m,n))==1)

s=sigma(m+1)+j*omega(n);X_val(m,n)=eval(X);

endend

end

figure(2)mesh(sigma,omega,abs(X_val))xlabel('Re(s)')ylabel('Im(s)')zlabel('|X(s)|')title('Amplituda funkcije X(s)')

figure(3)mesh(sigma,omega,angle(X_val))xlabel('Re(s)')ylabel('Im(s)')zlabel('arg(X(s))')title('Faza funkcije X(s)')

Page 67: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

SIGNALI I SISTEMI 67

Zadatak 7.3Za sistem prikazan na slici 7.2 dati odgovore na sljedeća pitanja

a) Šta predstavlja Laplaceova transformacija impulsnog odziva sistema?

b) Odrediti prenosnu funkciju cijelog sistema.

c) Odrediti odziv sistema na step signal.

d) Odrediti impulsni odziv sistema koristeći MATLAB toolbox.

e) Odrediti impulsni odziv sistema koristeći MATLAB blockset.

f) Odrediti odziv sistema ako je ulaz x(t) = sin(2πt)

g) Objasniti pojam stabilnosti sistema. Ako je sistem stabilan za jedna signal da li to znači da jestabilan za sve signale? Objasniti.

h) Da li se nestabilni sistemi negdje koriste? Navesti par primjera stabilnih i nestabilnih sistema uprirodi.

i) Odrediti da li su podsistemi h1(t), h2(t) i h3(t) stabilni na osnovu njihovih prenosnih funkcija? Dali je cjelokupan sistem stabilan?

j) Odrediti da li su podsistemi h1(t), h2(t) i h3(t) kauzalni na osnovu njihovih prenosnih funkcija?Da li je cjelokupan sistem kauzalan?

k) Šta kauzalnost sistema obezbjeđuje? Da li su nam korisni akauzalni sistemi? Navesti par primjerakauzalnih i akauzalnih sistema u prirodi.

Poznato je h1(t) = te−tu(t), h1(t) = e−2tu(t) i h3(t) = e−tu(t− 2).

x(t)

h1(t)

h3(t)

h2(t)

+ y(t)

Slika 7.2: Kontinualni sistem.

Rješenje

clear allclose allclc

% ukupno vrijeme simulacijetstop=10;syms t sh1=sym('t*exp(−t)*Heaviside(t)');h2=sym('exp(−2*t)*Heaviside(t)');h3=sym('exp(−t)*Heaviside(t−2)');

Page 68: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

68 SIGNALI I SISTEMI

% Laplaceova transformacija impulsnih odzivaH1=laplace(h1);pretty(h1)H2=laplace(h2);pretty(h2)H3=laplace(h3);pretty(h3)

% prenosna funkcija cijelog sistemaH=H1*H2+H3;pretty(H)

xs=sym('Heaviside(t−1)');X=laplace(xs);Y=H*X;ys=ilaplace(Y);pretty(ys);

% impulsni odziv sistemah=ilaplace(H);

tt=0:0.1:tstop;h_val=0;for i=1:size(tt,2)

t=tt(i);h_val(i)=eval(h);if (isnan(h_val(i))==1)

h_val(i)=h_val(i−1);end

end

% ulazni signal u sistem (step signal) − t domenx=stepfun(tt,1);

% odziv sistemay=conv(x,h_val)*0.01;

y_val=0;for i=1:size(tt,2)

t=tt(i);y_val(i)=eval(ys);if (isnan(y_val(i))==1)

y_val(i)=h_val(i−1);end

end

figure(1)subplot(4,1,1)plot(tt,h_val,'r');xlabel('t')ylabel('h(t)')title('Impulsni odziv cjelokupnog sistema')subplot(4,1,2)plot(tt,x);xlabel('t')ylabel('x(t)')title('Ulaz sistema')subplot(4,1,3)t=linspace(0,tstop*2,size(y,2));plot(t,y,'k');xlabel('t')ylabel('y(t)')title('Odziv sistema dobijen u t domenu')t=linspace(0,tstop,size(y_val,2));subplot(4,1,4)plot(t,y_val,'m');xlabel('t')ylabel('y(t)')

Page 69: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

SIGNALI I SISTEMI 69

title('Odziv sistema dobijen u s domenu')

Objasniti zašto se odzivi na slikama 7.4 razlikuju? Za koji vremenski interval su isti i zašto?

0 2 4 6 8 10−0.5

0

0.5

1

1.5

t

x(t

)

(a)

0 2 4 6 8 10

0

0.2

0.4

t

h(t

)

(b)

Slika 7.3

0 5 10 15 20−0.2

0

0.2

0.4

0.6

0.8

1

t

y(t

)

(a)

0 2 4 6 8 10−0.2

0

0.2

0.4

0.6

0.8

1

t

y(t

)

(b)

Slika 7.4

MATLAB/Simulink model sistema datog na slici 7.2 dat je na slici 7.5.

U MATLAB/Simulink modelu prikazanom na slici 7.5 korišten je blok Transfer Fcn koji predstavljaprenosnu funkciju sistema u s domenu. U postavkama bloka Transfer Fcn u polje Numerator co-efficient unosimo vektor čiji su elementi koeficijenti polinoma u brojiocu prenosne funkcije, a u poljeDenumerator coefficient unosimo vektor čiji su elementi koeficijenti polinoma u imeniocu prenosnefunkcije. Prenosne funkcije možemo vidjeti kucanjem u MATLAB komandnom prozoru H1 i H2 i H3.Vrijednost kašnjenja bloka Transpor delay je dvije sekunde. Odzive dobijene u toolbox-u i bloksetumožemo provjeriti tako što ćemo pokrenu simulaciju u toolbox-u pa simulaciju u bloksetu. Nakon togau MATLAB komandnom prozoru pozvati sljedeće naredbe

plot(t,y_val)hold onplot(t_sim,y_sim,'−−r')

Ponoviti isto za impulsni odziv sistema kao i odziv sistema na sinusni signal.

Page 70: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

70 SIGNALI I SISTEMI

Slika 7.5

Zadatak 7.4Koristeći MATLAB blockset nacrtati odzive sljedećih sistema na step signal

a) X(s) = 1(s+ 1)(s+ 2) ROC: Res ≥ −1

b) X(s) = 1(s− 1)(s+ 2) ROC: −2 ≥ Res ≤ 1

c) X(s) = 2s+ 3 ROC: Res ≥ −3

d) X(s) = 2s− 3 ROC: Res ≥ 3

a) Koji od navedenih sistema je stabilan a koji kauzalan?

b) Da li oblast konvergencije sadrži polove prenosne funkcije?

c) Polovi stabilnog i kauzalnog sistema leže u kojem djelu s ravni?

Page 71: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

Laboratorijska vježba 8

Zadatak 8.1Neka je dat signal

x(t) =∞∑

n=−∞u(t− nT0)− u(t− 1− nT0)

gdje je T0 = 2s. Dati odgovore na sljedeća pitanja

a) Koji tip signala predstavljamo sa Fourierovim redom?

b) Koje uslove signal x(t) mora zadovoljavati da bi postojao njegov Fourierov red? Navesti ih.

c) Kakva je veza između koeficijenta Fourierovog reda i amplitudnog i faznog spektra signala x(t)?

d) Objasniti fizičko značenje amplitudnog i faznog spektra.

e) Amplitudni i fazni spektar su kakve funkcije?

f) Nacrtati signal x(t).

g) Signal x(t) spada u koju grupu signala?

h) Odrediti analitički izraz za koeficijente Fourierovog reda u eksponencijalnom obliku.

i) Nacrtati amplitudni i fazni spektar signala x(t) koristeći MATLAB/toolbox.

j) Analizirati amplitudni i fazni spektar signala x(t) u funkciji vrijednosti perioda T0. Šta se dešavasa porastom perioda T0? Demonstrirati.

Rješenje

clear allclose allclc

k=−15:1:15;ck=exp(−j*k*pi/2).*sin(k*pi/2)./(k*pi);ck(16)=0.5;subplot(2,1,1)stem(k,abs(ck),'marker','.');xlabel('k\omega_0')ylabel('|c_k|')title('Amplitudni spektar')

subplot(2,1,2)stem(k,(−1)*angle(ck),'r','marker','.');xlabel('k\omega_0')ylabel('arg(c_k)')title('Fazni spektar')

Page 72: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

72 SIGNALI I SISTEMI

−15 −10 −5 0 5 10 150

0.2

0.4

0.6

k

abs

(ck)

(a) Amplitudni spektar

−15 −10 −5 0 5 10 15−4

−2

0

2

4

k

arg

(ck)

(b) Fazni spektar

Slika 8.1

Zadatak 8.2Aproksimirati signal x(t) iz prethodnog zadatka konačnim Fourierovim redom. Dati odgovore nasljedeća pitanja

a) Šta predstavlja Gibbsov fenomen? Koje su posljedice datog fenomena?

b) Za koji talasni oblik signala se manifestuje Gibbsov fenomen?

c) Aproksimirati signal

x(t) =∞∑

n=−∞(t− nT0)(u(t− nT0)− u(t− 1− nT0))

konačnim Fourierovim redom od N koeficijenata. Da li je primjetan Gibbsov fenomen?

Rješenje

clc;clear all;close all;

t=−3:0.01:4;fh=figure(1)

for N=1:1:101clf(fh);x=stepfun(t,−2)−stepfun(t,−1)+stepfun(t,0)−stepfun(t,1)+stepfun(t,2)−stepfun(t,3);subplot(2,1,1)plot(t,x,'LineWidth',2,'Color',[0 0 1])axis([−3 4 −0.5 1.5])hold onplot([−3 4],[0 0],'−−k');plot([0 0],[−0.5 1.5],'−−k');hold offxlabel('t')ylabel('x(t), x_a(t)')title(sprintf('Aproksimacija signal x(t) konacnim FR sa %d koeficijenata',N))hold on

x_fr=0.5;% parni ck=0, aproksimiramo signal sa 2N+1 koeficijenata

Page 73: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

SIGNALI I SISTEMI 73

for k=1:2:Nck=exp(−j*k*pi/2).*sin(k*pi/2)./(k*pi);x_fr=x_fr+2*exp(j*k*pi*t).*ck;

endsubplot(2,1,1)plot(t,x_fr,'−−r','LineWidth',2)

k=N;c_N=exp(j*k*pi*t).*exp(−j*k*pi/2).*sin(k*pi/2)./(k*pi);subplot(2,1,2)plot(t,c_N,'m')axis([−3 4 −0.5/N 0.5/N])xlabel('t')ylabel('Amplituda')title(sprintf('Talasni oblik %d−tog harmonika',N))

pause(0.1)end

−3 −2 −1 0 1 2 3 4−0.5

0

0.5

1

1.5

t

xa(t

)

(a) N=3

−3 −2 −1 0 1 2 3 4−0.5

0

0.5

1

1.5

t

xa(t

)

(b) N=13

−3 −2 −1 0 1 2 3 4−0.5

0

0.5

1

1.5

t

xa(t

)

(c) N=33

Slika 8.2: Aproksimacija povorke pravougaonih impulsa konačnim Fourierovim redom sa N koeficije-nata

Zadatak 8.3Aproksimirati signal x(t) sa konačnim Fourierovim redom xa(t) sa N koeficijenata a zatim nacrtatikrivu snage aproksimiranog signala u funkciji broja koeficijenata koji se uzima prilikom aproksimacije.Dati odgovore na sljedeća pitanja

1. Zašto signal x(t) aproksimiramo konačnim Fourierovim redom?

2. Kada će snaga aproksimiranog signala xa(t) biti jednaka snazi signala x(t)?

3. Šta možemo primjetiti koji koeficijenti nose najviše snage?

Rješenje

clear allclose allclc

% ukupna snaga signalP=0.5;% snaga k=0−tog harmonikaPa=0.25;% aproksimacija sa 2*N +1 koeficijenataN=100;k=1;

while(k<N)

Page 74: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

74 SIGNALI I SISTEMI

k=k+1;Pa(k)=Pa(k−1)+2*abs(exp(−j*(k−1)*pi/2).*sin((k−1)*pi/2)./((k−1)*pi)).^2;

end

plot([1 N],[P P],'−−b')hold onsemilogx(1:k,Pa,'r')xlabel('Broj koeficijenata')ylabel('% ukupne snage')axis([1 N Pa(2) P*1.01])

100 101 1020.25

0.3

0.35

0.4

0.45

0.5

N

PPaa

Slika 8.3: Snaga aproksimiranog signala u funkciji broja koeficijenata N

Page 75: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

Laboratorijska vježba 9

Zadatak 9.1Neka je dat signal

x(t) = 2(u(t)− u(t− t0))

gdje je t0 = 5. Odgovoriti na sljedeća pitanja

a) Koje uslove mora zadovoljavati signal x(t) da bi postojala Fourierova transformacija?

b) Kakva je veza između Fourierove transformacije i amplitudnog i faznog spektra signala x(t)?

c) Amplitudni i fazni spektar su kakve funkcije?

d) Fourierova transformacija se koristi za određivanje spektra koje grupe signala?

e) Nacrtati signal x(t).

f) Odrediti Fourierovu transformaciju signala.

g) Nacrtati amplitudni i fazni spektar signala x(t) koristeći MATLAB/toolbox.

h) Analizirati amplitudni i fazni spektar signala x(t) u funkciji parametra t0.

i) Odrediti i nacrtati amplitudni i fazni spektar signala

x(t) = t(u(t)− u(t− t0))

Rješenje

clear allclose allclc

t0=5;A=2;tstep=0.01;wstep=0.1;% simbolicke varijable t i wsyms t wx=sym('A*(Heaviside(t)−Heaviside(t−t0))');

% Fourierova transformacijaX=fourier(x);pretty(X)

% inverzna Fourierova transformacijax=ifourier(X);pretty(x)

Page 76: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

76 SIGNALI I SISTEMI

% odredjivanje vrijednosti signala x(t)t=−4:tstep:4;x=stepfun(t,0)−stepfun(t,t0);

% odredjivanje vrijednosti funkcije X(jw)w=−10:0.1:10;X=A*t0*exp(−j*w*t0/2).*sin(w*t0/2)./(w*t0/2);

figure(1)subplot(3,1,1)plot(t,x);xlabel('t')ylabel('x(t)')title('Signal x(t) − vremenski domen')subplot(3,1,2)plot(w,abs(X),'r');xlabel('\omega')ylabel('|X(j\omega)|')title('Amplitudni spektar |X(j\omega)|')subplot(3,1,3)plot(w,angle(X),'k');xlabel('\omega')ylabel('arg(X(j\omega))')title('Fazni spektar arg(X(j\omega))')

−10 −5 0 5 10

0

2

4

6

8

10

ω(rad)

|X(ω

)|

(a) Amplitudni spektar

−10 −5 0 5 10

−2

0

2

ω(rad)

arg

(X(ω

))

(b) Fazni spektar

Slika 9.1

Zadatak 9.2Neka su dati impulsni odzivi sistema

a) h(t) = 2δ(t− 2)

b) h(t) = e−tu(t)

c) h(t) = tu(t)

d) h(t) = u(t)− u(t− 2)

Dati odgovore na sljedeća pitanja

a) Kada sistem opisan prenosnom funkcijom H(ω) ne unosi izobličenja?

b) Nacrtati impulsne odzive.

Page 77: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

SIGNALI I SISTEMI 77

c) Analitički odrediti prenosne funkcije sistema i nacrtati amplitudnu i faznu karakteristiku.

d) Nacrtati amplitudne karakteristike sistema izražene u decibelima.

e) Na koji način se kašnjenje signala u vremenskom domenu manifestuje u frekventnom domenu?

Rješenje

clear allclose allclc

t=−5:0.01:5;K=0.5;t0=2;x=0.5*(stepfun(t,2)−stepfun(t,2.01));w=−5:0.1:5;X=K*exp(−j*w*t0);

subplot(3,1,1)plot(t,x);xlabel('t')ylabel('x(t)')title('Signal x(t) − vremenski domen')subplot(3,1,2)plot(w,abs(X),'r');xlabel('\omega')ylabel('|X(j\omega)|')title('Amplitudni spektar |X(j\omega)|')subplot(3,1,3)plot(w,angle(X),'k');xlabel('\omega')ylabel('arg(X(j\omega))')title('Fazni spektar arg(X(j\omega))')

−4 −2 0 2 4

0.45

0.5

0.55

0.6

ω(rad)

|X(ω

)|

(a) Amplitudni spektar

−4 −2 0 2 4

−2

0

2

ω(rad)

arg

(X(ω

))

(b) Fazni spektar

Slika 9.2: Amplitudni i fazni spektar prenosne funkcije sistema a)

Page 78: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

78 SIGNALI I SISTEMI

Zadatak 9.3Potrebno je sintetizirat audio tonove koje tvore dobro poznatu sekvencu iz Betovenove devete simfonije(Oda radosti), korištenjem MATLAB-a i osnovnih matematičkih funkcija. Muzička sekvenca nota kojuje potrebno sitetizirati prikazana je na slici 9.3.

Slika 9.3

Za generisanje audio signala u MATLAB-u koristiti funkciju sound(y,f), koja binarnu sekvencu ygeneriše frekvencijom f. Svaka nota predstavalja sinusni signal određene frekvencije (detaljano objaš-njenje o notama biće dato kasnije). Konkretno koristit sljedeći sinusni signal

x(t) = A sin(2πfnt)

gdje je A = 5, fn frekvencija note i t vrijeme sa graulacijom ∆t = 1/fs gdje je fs = 44kHz, samim timei frekvencija f koja se koristi u sound() funkciji je fs. Vremensko trajanje najkraće note tj osmineje 250ms a pauza nakon svake note je 50ms. Nakon kreiranja vektora sa svim notama potrebno jeza svaku notu dok je reprodukujemo sa sound() funkcijom pozivati funkciju spektar koja određujespektar datog signala. Funkcija uzima za argumente vrijednosti sinusnog signala za vrijeme trajanjasame note i frekvenciju fs, a kao rezultat vraća amplitude signala X na frekvencijama od značaja.Takođe nacrtati spektar signala za svaku notu korištenjem funkcije stem(), a za zaustavaljanje tokaprograma dok se data nota reprodukuje preko funkcije sound() koristiti funkciju pause().

function [X,w] = spektar(x,fs)X = abs(fft(x,fs));X = X(210:500)/fs;w = 209:499;

Page 79: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

SIGNALI I SISTEMI 79

Frekvencije u muziciU muzici note su podjeljene u grupe od po 12 koje se nazivaju oktave. Note koje je potrebno koristitisu u oktavi koja sadrži frekvencije od 220-440Hz. Dvanaest nota u svakoj od oktava karakterišelogaritamska skala. Svaka sljedeća nota u oktavi ima frekvenciju za a = 21/12 veću od frekvencijeprethodne note. U tabeli 9.1 imamo prikazane sve note oktave koja se koristi u zadatku.

Nota Frekvencija [Hz]

A 220·a0

Bb 220·a1

B 220·a2

C 220·a3

Db 220·a4

D 220·a5

Eb 220·a6

E 220·a7

F 220·a8

Gb 220·a9

G 220·a10

Ab 220·a11

Tablica 9.1

Muzičke note (muzički zapisi) su u osnovi jedan tip dijagram koji prikazuje frekvenciju note nasuprottrajanja u vremenu. Promjena visine tonova izvodi se dodavanjem simbola # ili b (pojačanja za *a)datoj noti. U najjednostavnijem slučaju, svaka nota može se predstaviti sa sinusnim tonom iza kojeg idekraća pauza. Pauza nam omogućuje da uočimo različite note sa istom visinom (amplituda sinusoide).Trajanje svake note određuje se sobzirom na to da li je nota cijela, polovina, četvrtina ili osmina note.Očito je da četvrtina note ima dvostruko duže trajanje nego li osmina note itd. Kratka pauza nakonsvake note trebala bi da bude iste dužine kao i data nota.

Rješenje

clcclear allclose all

f = 220; %[Hz]a = 2^(1/12);fs = 44e3;Ts = 1/fs;A = f;Bb = f*a;B = f*a^2;

Page 80: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

80 SIGNALI I SISTEMI

C = f*a^3;Db = f*a^4;D = f*a^5;Eb = f*a^6;E = f*a^7;F = f*a^8;Gb = f*a^9;G = f*a^10;Ab = f*a^11;

% pauza−1/8 1/8G 1/4G | 1/2Eb pauza−1/8 1/8F 1/4F D note% 1/8 = 0.5 sec 1/4 = 1 sec ....

OverLap = 1;Amp=5;Tstep = 0.25;TStart = 0;TSteps = [2*Tstep 2*Tstep 2*Tstep 2*Tstep 2*Tstep 2*Tstep 2*Tstep 2*Tstep ...

2*Tstep 2*Tstep 2*Tstep 2*Tstep 2*Tstep Tstep 4*Tstep 2*Tstep 2*Tstep 2*Tstep ...2*Tstep 2*Tstep 2*Tstep 2*Tstep 2*Tstep 2*Tstep 2*Tstep 2*Tstep 2*Tstep 2*Tstep ...

Tstep 4*Tstep 2*Tstep 2*Tstep 2*Tstep 2*Tstep 2*Tstep Tstep Tstep 2*Tstep ...2*Tstep 2*Tstep Tstep Tstep 2*Tstep 2*Tstep 2*Tstep 2*Tstep 4*Tstep 2*Tstep ...2*Tstep 2*Tstep 2*Tstep 2*Tstep 2*Tstep 2*Tstep 2*Tstep 2*Tstep 2*Tstep 2*Tstep ...2*Tstep 2*Tstep Tstep 4*Tstep];

Note = [E E F G G F E D ...C C D E E D D E E F G ...G F E D C C D E D C C ...D D E C D E F E C ...D E F E D C D G E E F G ...G F E D C C D E D C C];

for i=1:size(Note,2)if i == 1

[Out Tstart]= getBit(Note(i),TStart,fs,TSteps(i),Amp);else

[TOut Tstart]= getBit(Note(i),TStart,fs,TSteps(i),Amp);Out = [Out TOut];

endend

fm = fs;n=1;be = 1;bs = 1;for i=1:124

if (mod((i+1),2) == 0)bs = be;be = be + TSteps(n)/Ts − 1;x = Out(bs:be);[X,w] = spektar(x,fs);sound(x,fs);stem(w,X);title('Spektar signala');ylabel('Amplituda [V/Hz]');xlabel('Frekvencija [Hz]');pause(TSteps(n));n = n+1;

elsedisplay('PAUZA');pause(0.05);

endend

function [Mrec Tend]= getBit(f,begin_val,fs,bit_size,Amp)

step_size = 1/fs;

Page 81: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

SIGNALI I SISTEMI 81

end_val = bit_size + begin_val;t=begin_val:step_size:(end_val−step_size);Mrec = Amp*sin(2*pi*f*t);Tend = begin_val + bit_size;

300 310 320 330 340 350 3600

0.5

1

f(Hz)

X(f

)

(a) Nota E

320 330 340 350 360 370 3800

0.5

1

f(Hz)

X(f

)

(b) Nota F

Slika 9.4

360 370 380 390 400 410 4200

0.5

1

f(Hz)

X(f

)

(a) Nota G

260 270 280 290 300 310 3200

0.5

1

f(Hz)

X(f

)

(b) Nota D

Slika 9.5

Page 82: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

82 SIGNALI I SISTEMI

Page 83: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

Laboratorijska vježba 10

Zadatak 10.1Sinusni signal x(t) = cos(60πt) uzorkovan je na frekvenciji

a) fs = 10Hz

b) fs = 50Hz

c) fs = 100Hz

d) fs = 500Hz

Odgovoriti na sljedeća pitanja

1. Kako glasi teorem o uzorkovanju?

2. Nacrtati talasni oblik uzorkovanog signala za sve slučajeve frekvencije uzorkovanja.

3. Nacrtati spektar signala x(t) kao i spektre uzorkovanih signala.

4. Kakav je spektar uzorkovanog signala?

5. Analizirati slučaj uzorkovanja signala kada je fs < 2fm. Koje su posljedice u vremenskomdomenu?

6. Šta predstavlja aliasing i koje su njegove posljedice?

7. Na koji način se može izbjeći aliasing?

8. Ponoviti cijeli zadatak ako je signal x(t) = cos(60πt) + sin(30πt)

Rješenje

clcclear allclose all

t=0:0.00001:0.1;x=cos(60*pi*t);

fs=100;Ts=1/fs;ts=0:Ts:0.1;

% uzorkovani signalxs=cos(60*pi*ts);

Page 84: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

84 SIGNALI I SISTEMI

subplot(2,1,1);plot(t,x)xlabel('t')ylabel('x(t)')title('Analogni signal')subplot(2,1,2);plot(t,x,'−−r')hold onstem(ts,xs,'b','marker','.')xlabel('t')ylabel('x_s(t), x(t)')title('Uzorkovani signal')

0 2 · 10−2 4 · 10−2 6 · 10−2 8 · 10−2 0.1

−1

−0.5

0

0.5

1

t(s)

x(t

)

(a) Analogni signal

0 2 · 10−2 4 · 10−2 6 · 10−2 8 · 10−2 0.1

−1

−0.5

0

0.5

1

t(s)

xs(t

)

(b) Uzorkovani signal fs=50Hz

Slika 10.1

0 2 · 10−2 4 · 10−2 6 · 10−2 8 · 10−2 0.1

−1

−0.5

0

0.5

1

t(s)

xs(t

)

(a) Uzorkovani signal fs=100Hz

0 2 · 10−2 4 · 10−2 6 · 10−2 8 · 10−2 0.1

−1

−0.5

0

0.5

1

t(s)

xs(t

)

(b) Uzorkovani signal fs=500Hz

Slika 10.2

clcclear allclose all

f=−100:100;w=60*pi;fmax=w/(2*pi);fs=50;

Page 85: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

SIGNALI I SISTEMI 85

% spektar originalnog signalaX=stepfun(f,−fmax)−stepfun(f,−fmax+1)+stepfun(f,fmax)−stepfun(f,fmax+1);

% spektar uzorkovanog signalaXs = uzorkovanje(X,fs);Xs=Xs*fs;

subplot(2,1,1);stem(f,X)xlabel('f')ylabel('X(f)')title('Spektar analognog signala')subplot(2,1,2);stem(f,Xs,'−−r')hold onstem(f,X)xlabel('f')ylabel('X_s(f)')title('Spektar uzorkovanog signal')

function Xs = uzorkovanje(X,fs)

Xs=X/fs;Xtmp=Xs;while(max(Xtmp)~= 0)

Xtmp=[zeros(1,fs) Xtmp(1:(size(Xtmp,2)−fs))];Xs=Xs+Xtmp;

endXtmp=X/fs;while(max(Xtmp)~= 0)

Xtmp=[Xtmp((fs+1):(size(Xtmp,2))) zeros(1,fs) ];Xs=Xs+Xtmp;

end

−100 −50 0 50 100

0

0.5

1

f(Hz)

X(f

)

(a) Spektar analognog signala

−100 −50 0 50 100

0

0.5

1

f(Hz)

Xs(f

)

(b) Spektar uzorkovanog signala fs=50Hz

Slika 10.3

Page 86: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

86 SIGNALI I SISTEMI

−100 −50 0 50 100

0

0.5

1

f(Hz)

Xs(f

)

(a) Spektar uzorkovanog signala fs=100Hz

−400 −200 0 200 400

0

0.5

1

f(Hz)

Xs(f

)

(b) Spektar uzorkovanog signala fs=500Hz

Slika 10.4

Zadatak 10.2Signal x(t) = cos(40πt)−sin(25πt)+0.8 sin(10πt) uzorkovan je pomoću kola sa zadrškom na frekvenciji

a) fs = 25Hz

b) fs = 60Hz

c) fs = 150Hz

d) fs = 400Hz

Dati odgovore na sljedeća pitanja

1. Objasniti princip rada kola sa zadrškom?

2. Implementirati u MATLAB/toolbox-u kolo sa zadrškom za uzorkovanje signala x(t).

3. Nacrtati signal x(t), uzorkovani signal i njihove amplitudne spektre.

4. Na koji način se vrši rekonstrukcija signala uzorkovanog pomoću kola sa zadrškom?

5. Implementirati u MATLAB/toolbox-u kolo za rekonstrukciju signala uzorkovanog pomoću kolasa zadrškom?

Rješenje

clcclear allclose all

Tc=0.0001;Tend=0.2;t=0:Tc:Tend;x=cos(40*pi*t)−sin(25*pi*t)+0.8*sin(10*pi*t);

fs=60;Ts=1/fs;ts=0:Ts:Tend;

Page 87: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

SIGNALI I SISTEMI 87

% uzorkovani signalxs=cos(40*pi*ts)−sin(25*pi*ts)+0.8*sin(10*pi*ts);% prolaza kroz kolo sa zadrskomNt=round(Ts/Tc)−1;xsh=0;for i=1:size(ts,2)

xsh=[xsh ones(1,Nt)*xs(i)];endxsh=xsh(2:size(xsh,2));tsh=linspace(0,Tend,size(xsh,2));

subplot(3,1,1);plot(t,x)xlabel('t')ylabel('x(t)')title('Analogni signal')subplot(3,1,2);plot(t,x,'−−r')hold onstem(ts,xs,'b','marker','.')xlabel('t')ylabel('x_s(t), x(t)')title('Uzorkovani signal')subplot(3,1,3);plot(t,x,'−−r')hold onplot(tsh,xsh,'k')xlabel('t')ylabel('x_sh(t)')title('Uzorkovani signal − kolo sa zadrskom')

0 2 · 10−2 4 · 10−2 6 · 10−2 8 · 10−2 0.1 0.12 0.14 0.16 0.18 0.2

−2

0

2

t

x(t

)

Slika 10.5: Analogni signal

0 2 · 10−2 4 · 10−2 6 · 10−2 8 · 10−2 0.1 0.12 0.14 0.16 0.18 0.2

−2

0

2

t

xs(t

)

Slika 10.6: Uzorkovani signal fs = 60Hz

Page 88: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

88 SIGNALI I SISTEMI

0 2 · 10−2 4 · 10−2 6 · 10−2 8 · 10−2 0.1 0.12 0.14 0.16 0.18 0.2

−2

0

2

t

xsh(t

)

Slika 10.7: Uzorkovanje pomoću kola sa zadrškom fs = 60Hz

0 2 · 10−2 4 · 10−2 6 · 10−2 8 · 10−2 0.1 0.12 0.14 0.16 0.18 0.2

−2

0

2

t

xs(t

)

Slika 10.8: Uzorkovani signal fs = 150Hz

0 2 · 10−2 4 · 10−2 6 · 10−2 8 · 10−2 0.1 0.12 0.14 0.16 0.18 0.2

−2

0

2

t

xsh(t

)

Slika 10.9: Uzorkovanje pomoću kola sa zadrškom fs = 150Hz

% rekonstrukcija uzorkovano signala pomocu NF filtera prvog redaR=100;C=0.0001;[ynf1,xnf1]=lsim([1],[R*C 1],xsh,tsh);tnf1=linspace(0,Tend,size(ynf1,1));% rekonstrukcija uzorkovano signala pomocu NF filtera petog reda[b a]=butter(5,0.01);ynfn=filter(b,a,xsh);tnfn=linspace(0,Tend,size(ynfn,2));

figure(2)subplot(2,1,1)plot(t,x,'−−r')hold onplot(tnf1,ynf1,'k')xlabel('t')ylabel('x_sh(t)')

Page 89: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

SIGNALI I SISTEMI 89

title('Rekonstrukcija uzorkovano signala pomocu NF filtera prvog reda')subplot(2,1,2)plot(t,x,'−−r')hold onplot(tnfn,ynfn,'k')xlabel('t')ylabel('x_sh(t)')title('Rekonstrukcija uzorkovano signala pomocu NF filtera petog reda')

0 2 · 10−2 4 · 10−2 6 · 10−2 8 · 10−2 0.1 0.12 0.14 0.16 0.18 0.2

−2

0

2

t

xr(t

)

Slika 10.10: Rekonstrukcija uzorkovanog signala pomoću NF filtera prvog reda, fs = 150Hz

0 2 · 10−2 4 · 10−2 6 · 10−2 8 · 10−2 0.1 0.12 0.14 0.16 0.18 0.2

−2

0

2

t

xr(t

)

Slika 10.11: Rekonstrukcija uzorkovanog signala pomoću NF filtera petog reda„ fs = 150Hz

Zadatak 10.3Signal x(t) ima ograničen spektar

X(f) =(

52 + 1

8f)

(U(f + 20)− U(f + 12)) +(

52 −

18f)

(U(f − 12)− U(f − 20)) (10.1)

i uzorkovan je na frekvenciji

• fs = 20Hz

• fs = 35Hz

• fs = 40Hz

Potrebno je

a) Nacrtati spektar signala x(t).

b) Nacrtati spektar uzorkovanog signala u sve tri slučaja?

Page 90: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

90 SIGNALI I SISTEMI

c) Da li je moguće rekonstruisati signal iz uzoraka? Ako jeste predložiti rješenje.

Rješenje

clcclear allclose all

f=−60:1:60;

X=(2.5+f/8).*(stepfun(f,−20)−stepfun(f,−11))+(2.5−f/8).*(stepfun(f,12)−stepfun(f,20));

fs=20;Xs = uzorkovanje(X,fs);

subplot(2,1,1)plot(f,X)xlabel('f')ylabel('X(f)')subplot(2,1,2)plot(f,Xs)xlabel('f')ylabel('Xs(f)')

Page 91: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

Laboratorijska vježba 11

Zadatak 11.1Za sisteme opisane jednačinama

a) y[n] = 2x[n] + 3

b) y[n] = 1nx[n]

c) y[n] = 2n−1x[n]

d) y[n] = 2x[n]

e) y[n] = x[2n]

f) y[n] = 0.2y[x− 1] + x[x]

realizovati testove za provjeru linearnosti, vremenske invarijantnosti i stabilnosti. Testove realizovatiprvo u MATLAB toolboxu a zatim u blocksetu.

Zadatak 11.2Koristeći MATLAB funkciju conv odrediti konvoluciju sljedećih signala

a) x[n] = u[n], h[n] = δ[n− 1] + 0.5u[n]

b) x[n] = u[−n], h[n] = 2−nu[n]

c) x[n] = 3−nu[n], h[n] = 2−nu[n]

d) x[n] = u[n]− u[n− 3], h[n] = δ[n− 1] + u[n− 3]

e) x[n] = u[n]− u[n− 2], h[n] = n(u[n]− u[n− 3])

f) x[n] = 3−n+1u[n− 2], h[n] = 2nu[−n]

a zatim nacrtati signale x[n], h[n] i y[n].

Zadatak 11.3Odrediti odziv sistema opisanog diferencnom jednačinom

y[n] = ay[n− 1] + x[n]

ako je x[n] = Kδ[n] i y[−1] = α. Dodatno odrediti impulsni odziv sistema i odziv sistema na step ulazu uslov y[−1] = 0. Uzeti da je K=2 i a=1.

Page 92: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

92 SIGNALI I SISTEMI

Zadatak 11.4Odrediti kružnu konvoluciju sekvenci

a) x1[n] = [1, 0, −1, 0, 1], x2[n] = [4, 3, 2, 1, 0]

b) x1[n] = [1, 1, −1, −1, 0], x2[n] = [4, 3, 2, 1, 0]

c) x1[n] = [1, 0, −1, 0, 1, 0], x2[n] = [1, 0, 1, 0, 1, 0]

d) x1[n] = [1, 1, −1, −1], x2[n] = [1, 2, 2, 1]

Page 93: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

Laboratorijska vježba 12

Zadatak 12.1Napisati MATLAB program koji će odrediti Z transformaciju sljedećih sekvenci

a) x[n] = u[n]

b) x[n] = e−nu[n− 1]

c) x[n] = 2nu[−n]

d) x[n] = 2nu[−n] + e−nu[n− 1]

e) x[n] = 2−nnu[n]

a zatim nacrtati oblast konvergencije.

Rješenje

clear allclose allclc

n=−5:5;x=stepfun(n,0);subplot(3,1,1)stem(n,x)xlabel('n')ylabel('x[n]')

syms n zx=sym('Heaviside(n)');Xz=ztrans(x)

n1=1;for re=−2:0.1:2

for im=−2:0.1:2z_val(n1)=re+sqrt(−1)*im;Xz_val(n1)=z_val(n1)/(z_val(n1)−1);n1=n1+1;

endend

subplot(3,1,2)plot(real(Xz_val),imag(Xz_val),'r')xlabel('Re(X(z))')ylabel('Im(X(z))')

subplot(3,1,3)

Page 94: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

94 SIGNALI I SISTEMI

x=−1:0.01:1;plot(x,sqrt(1−x.^2))hold onplot(x,−sqrt(1−x.^2))hold onplot(1,0,'xk')hold onplot(0,0,'or')axis([−2 2 −2 2])xlabel('Re(X(z))')ylabel('Im(X(z))')

−4 −3 −2 −1 0 1 2 3 40

0.5

1

n

x(n

)

Slika 12.1

−10 −8 −6 −4 −2 0 2 4 6 8 10 12−10

0

10

Re(X(z))

Im

(X(z

))

Slika 12.2

−1.2 −1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 1.2−1

0

1

Re(X(z))

Im

(X(z

))

Slika 12.3

Page 95: SS_Lab_final_v1.02

Radna

verzija

Intern

a upotr

eba

©Copyright 2010 - Gogić Asmir

SIGNALI I SISTEMI 95

Zadatak 12.2Ako je prenosna funkcija sistema

a) H(z) = z

z − 1

b) H(z) = z

z2 − 1

c) H(z) = z

(z − 1)2

d) H(z) = 2zz2 − 4

nacrtati odziv sistema na step i delta ulaz koristeći MATLAB blockset. Koji od datih sistema jestabilan?

Rješenje

Slika 12.4