You are on page 1of 51

UNIVERZITET U TUZLI FAKULTET ELEKTROTEHNIKE

LABORATORIJSKE VJEBE
Signali i sistemi
Gogi Asmir

dn Ra
In te rn a

Copyright 2010 - Gogi Asmir

up
Tuzla, Februar 2010. godine

ot

re

ve ba r z

ija

SIGNALI I SISTEMI

dn Ra
In te rn a

Copyright 2010 - Gogi Asmir

up

ot

re

ve ba r z

ija

Laboratorijska vjeba 1
Osnove Octave GNU Octave predstavlja interpreterski jezik visokog nivoa, primarno namjenjen za numberiko rjeavanje linearnih i nelinearnih problema. Podrka za graku prezentaciju rezultat obezbjeena sa grakim alatom kao to je gnuplot. Octave program moemo pisati u bilo kojem tekstualnom editoru (ekstenzija fajla mora biti *.m) ili direktno u komandnom prozoru. Pisanje programa u komandnom prozoru pogodno je samo u sluaju kratkih i jednostavnih programa bez ponavljanja. Sintaksa Octavea je slina MATLAB-ovoj tako da se programi pisani za MATLAB lako portaju za Octave. Grako okruenje za GNU Octave predstavlja QtOctave koje ukljuuje komandni prozor, editor i debuger (slika ??.). QtOctave moemo pokrenuti direktno iz komandne linije ako utipkamo qtoctave ili preko dash home panela.

dn Ra
In te rn a

Copyright 2010 - Gogi Asmir

up
Slika 1.1: Octave radno okruenje

ot

re

ve ba r z

ija

SIGNALI I SISTEMI

Nakon pokretanja Octave-a pojavit e se Octave radno okruenje(slika ??). Octave radno okruenje sastoji se od: Menija - u kome se nalaze komande za uitavanje leova, radnog okruenja, tampanje, debagiranje, podeavanje putanje i dr. Terminala - koji omoguuju potpunu kontrolu MATLAB okruenja kao i pisanje kratkih programa, pregleda opisa bilo koje MATLAB komande itd. Variable list - predstavlja listu svih deklarisanih i inicijaliziranih varijabli. Command list - predstavlja listu svih prethodno izvrenih komandi u komandnom prozoru. Navigator - predstavlja sadraj radnog direktorija. Varijable

Osnovni tip podatka u Octave-u je double. Standardni ugraeni tipovi logical, int8, uint8, int16, uint16, int32, uint32, int64, uint64, double, single, double complex, single complex, struct i cell. Octave sve varijable tretira kao matrice.
>> a=10 a = 10 >> b=2.1415 b = 2.1415 >> c=2+j*3 c = 2.0000 + 3.0000i

dn
a
Bytes 8 8 16 Class double double double

Ra
c Size 1x1 1x1 1x1

>> who

Your variables are: a b

a b c

In te

>> whos Name

rn

Deklaracija i inicijalizacija matrice ili vektora izvodi se sa uglastim zagradama [ ]. Redovi u matricama se odvajaju sa operatorom ;.

Copyright 2010 - Gogi Asmir

up

Varijabla a je skalar ali je Octave tretira kao matricu dimenzija 11. Listu svih varijabli u radnom okruenju moemo dobiti sa komandom who dok listu svih varijabli sa tipom podatka, dimenzijama i atributima moemo dobiti sa whos.

ot
complex

Attributes

re

ve ba r z

ija

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 4 7 2 5 8 3 6 9

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


zeros(3,2) ans = 0 0 0 0 0 0

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


ones(4,3) ans = 1 1 1 1 1 1 1 1 1 1 1 1

dn
1

Jedininu matricu kreiramo sa komandom eye(n)


>> eye(3)

Ra
Diagonal Matrix ans = 1 0 0 0 1 0 0 0 1

Indeksiranje matrica

In te

Indeksi N-dimenzionalnog niza u Octave-u poinju od vrijednosti 1. Indeksiranje matrice vrimo sa malim zagradama ( ).
>> A=[4 A = 3 1 5 6]

4 >> A(2)

rn

a
5 6

Copyright 2010 - Gogi Asmir

up

ot

re

ve ba r z

ija

SIGNALI I SISTEMI

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

U zadnjoj liniji vidimo da je nastupila greka jer smo pokuali pristupiti elementu matrice iji je indeks 0. Od matrice A moemo napraviti novu matricu koja e sadravati sve vrijednosti matrice A za dati opseg indeksa upotrebom operatora :.

>> B=A(2:4) B = 3 1 5

>> A = [1 2; 3 4] A = 1 3 >> A(1:3) ans = 1 3 2 2 4

dn
a

Kao i kod jednodimenzionalnih matrica i od dvodimenzionalnih matrica moemo formirati nove matrice sa operatorom :.
>> A=[1 2 3; 4 5 6; 7 8 9] A =

Ra
2 5 8 3 6 9 5 8

1 4 7

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

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

>> B=A(2,:)

In te

4 7

rn

Copyright 2010 - Gogi Asmir

up

ot

re

ve ba r z

Matrice moemo indeksirati i sa jednim indeksom pri emu se elementi matrice indeksiraju po kolonama.

ija

SIGNALI I SISTEMI

B = 4 5 6

Sa operatorom : moemo generisati vektor sa odreenim inkrementom.


>> t=0:0.2:1 t = 0 >> a=5:2:7 a = 5 3 1 1 3 5 7 0.2000 0.4000 0.6000 0.8000 1.0000

Ako ne elimo da se rezulta poziva neke komande ispie u komandnom prozoru na kraj linije stavljamo ;. Operator ; nije obavezan kao to je to sluaj u C jeziku.
>> A=[1 0 2] A = 1 0 2

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

dn
3

Od dvije matrica A i B mogue je napraviti novu matricu koja e sadravati sve elemente matrice A i B na sljedei naini
>> A=[1 2] A = 1 2

Ra
>> B=[3 4] B = 3 4 >> C=[A B] C = 1

In te

>> D=[A; B] D =

1 3

2 4

rn

a
4

Copyright 2010 - Gogi Asmir

up

ot

re

Operacija nad matricama

ve ba r z

ija

SIGNALI I SISTEMI

Transponovanje matrice izvodi se sa operatorom


A = 1 >> A' ans = 1 2 3 >> A=[1 2; 5 6] 2 3

1 5 >> A' ans = 1 2

2 6

5 6

Napomena: ako je matrica A matrica kompleksnih vrijednosti onda operator transponovanja vri i konjugovanje svih vrijednosti. Transponovanje matrice kopleksnih vrijednosti izvodimo sa operatorom .. Rotiranje matrice za 90 stepeni u suprotnom smijeru kazaljke na satu izvodimo sa komandom rot90.
>> A=[1 2 3 4] A = 1 2 3

dn
4 1

>> B=rot90(A) B =

Ra
3 2 2 4

4 3 2 1

>> B=rot90(rot90(A)) B = 4

>> A=[1 2; 3 4] A =

>> B=rot90(A) B =

In te

1 3

rn

a
Copyright 2010 - Gogi Asmir

up

ot

re

ve ba r z

ija

A =

SIGNALI I SISTEMI

2 1

4 3

>> B=rot90(rot90(A)) B = 4 2 3 1

Rotiranje matrice za 180 stepeni izvodimo sa komandom fliplr.


A =

>> fliplr(A) ans = 3 6 2 5 1 4

Determinantu matrice moemo dobiti sa komandom det a inverznu matricu sa inv.


A = 1 3 >> det(A) ans = 2 >> inv(A) ans = 2 4

dn
1.0000 0.5000 2 5

Ra
2.0000 1.5000 >> A = [1 2; 4 5] A = 1 4

Svojstvene vrijednosti matrice A moemo dobit sa komandom eig

In te

>> eig(A) ans =

0.4641 6.4641

rn

a
Copyright 2010 - Gogi Asmir

up

ot

re

ve ba r z

ija

1 4

2 5

3 6

10 Operacija sa matricama

SIGNALI I SISTEMI

Sabiranje, oduzimanje i mnoenje matrica u Octave-u izvodimo sa operatorima +, - i * respektivno.


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

>> B=[1 2; 0 3] B =

>> C=A+B C = 2 2 >> D=AB D = 0 2 >> E=A*B E = 1 2 2 13 2 0 2 6

dn
a

A =

Ra
0 3 2 5 2 1

1 2

>> B=2+A B = 3 4

B =

>> B=2*A B =

In te

>> B=2A

1 0

rn

Copyright 2010 - Gogi Asmir

up

ot

U Octave-u matrice je mogue sabirati, oduzimati, mnoiti i djeliti sa konstantom.

re

ve ba r z

ija

1 0

2 3

SIGNALI I SISTEMI

11

2 4 >> B=A/2 B = 0.5000 1.0000

0 6

0 1.5000

Pored standardnog naina mnoenja matrica u Octave-u postoji jo jedan operator . koji sa operatorim mnoenja i djeljenja omoguava mnoenje i djeljenje matrica po principu svaki element prve matrice sa korespondirajuim elementom druge matrice.
>> A=[1 2; 3 4]; >> B=[2 3; 4 5]; >> C=A.*B C = 2 12 >> C=B.*A C = 2 12 >> C=A./B C = 0.5000 0.7500 0.6667 0.8000 6 20 6 20

dn
a

Relacioni operatori

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

Operator == = < > <= >=

up

ot

Octave podrava sljedee relacione operatore sa varijablama Znaenje Jednako Razliito Manje Vee Manje ili jednako Vee ili jednako Tablica 1.1

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

rn

Copyright 2010 - Gogi Asmir

re

ve ba r z

ija

12
ans = 0 1 0 0

SIGNALI I SISTEMI

>> A(1)==B(1) ans = 0 >> A>B ans = 0 0 >> A>=B ans = 0 1 >> A~=B ans = 1 0 >> A==2 ans = 0 1 >> A(1)==2 ans = 0 0 0 1 1 1 1 1 1

dn
a rn
||

Octave podrava set logikih operatora na nivou izraza a dati su u tablici ??. Operator && Znaenje I ILI

Logike operatori na nivou bita su dati u tablici ??.

In te

Copyright 2010 - Gogi Asmir

up

Logiki operatori

Ra

ot
Tablica 1.2

re

ve ba r z

ija

SIGNALI I SISTEMI

13

Operator & | xor

Znaenje Logika negacija Logiko i Logiko ili Logiko xor

Tablica 1.3

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

dn
rn a

Ra
1 >> a&c ans = 0 >> xor(a,b) ans =

In te

>> xor(a,c) ans =

Copyright 2010 - Gogi Asmir

up

ot

re

ve ba r z

ija

14 Kompleksni brojevi

SIGNALI I SISTEMI

Kompleksan broj deklariemo i inicijaliziramo na sljedei nain


>> a=11*j a = 1.0000 1.0000i >> b=2+1*i b = 2.0000 + 1.0000i

Realni i imaginarni dio kompleksnog broja moemo dobiti preko funkcija real i imag a modul i argument preko funkcija abs i angle.
>> real(a) ans = 1 >> imag(a) ans = 1 >> angle(a) ans = 0.7854 >> abs(a) ans = 1.4142

dn
rn a

Ra

Konstante

U Octave-u imamo nekoliko predenisanih konstanti a date su u tablici ??. Provjera varijabli za vrijednost NaN i Inf se izvodi preko komandi isnan, isfinite i isinf. Format

In te

U Octave-u postoji vie naina za prikaz rezultata matematikih operacija. Rezultati se uobiajno prikazuju sa jednostrukom preciznou (4 znaajne cifre iza zareza), nain prikaza odreuje naredba format sa argumentom koji moe biti kao u tablici ??.

Copyright 2010 - Gogi Asmir

up

ot

re

ve ba r z

ija

SIGNALI I SISTEMI

15

Konstanta i j realmax realmin inf NaN

Vrijednost 3.14159269 Imaginarna jedinica Imaginarna jedinica Maksimalni pozitivni broj 1.7977e + 308 Minimalni pozitivni broj 2.2251e 308 Beskonano (Innity) Not a number Tablica 1.4

Format short short e long long e rat compact

Prikaz 4 decimalna mjesta

14 decimalnih mjesta

eksponencijalni prikaz sa 14 decimalnih mjesta aproksimacija brojeva razlomkom ispis bez praznih redova Tablica 1.5

dn
1

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

Ra
ans = 1 1 1 1

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

rn

a
1 1 1 1 1 1

up
1 1

ot
1 1

re

Stringovi 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 u veini sluajeva nije tako. Za poreenje stringova koristi se komanda strcmp a za spajanje stringova strcat.

Karakteri i stringovi

ve ba r z

eksponencijalni prikaz sa 4 decimalna mjesta

ija
1 1

In te
>> strcmp(a,b) ans = 1 >> b=[a '2'] b =

Copyright 2010 - Gogi Asmir

16
Signali i sistemi2 >> a==b ??? Error using ==> eq Matrix dimensions must agree. >> strcmp(a,b) ans = 0

SIGNALI I SISTEMI

elije i strukture Struktura je tip podatka koji sadri unaprijed denisan broj i tip podataka. Elemente strukture indeksiramo preko operatora malih zagrada () zajedno sa operatorom ..
>> 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: Ime ocjena >> student(1) ans = Ime: 'Tarik' ocjena: 10 >> student(1).Ime ans = Tarik

dn
[1x3 double] [1x2 double]

Ra

a =

[1x4 double] [1x2 double] >> a{1}(:) ans =

In te

>> a=cell(2,2); >> a{1}=[1 2 3 4];a{2}=[3 4];a{3}=[1 3 4];a{4}=[1 4]; >> a

rn

Podatak tipa elija cell predstavlja viedimenzionalnu matricu kod koje elementi mogu biti matrice razliitih dimenzija. Elementima elije pristupamo pomou operatora vitiastih zagrada {}.

Copyright 2010 - Gogi Asmir

up

ot

re

ve ba r z

ija

SIGNALI I SISTEMI

17

1 2 3 4 >> a{3}(:) ans = 1 3 4

Graki prikaz podataka

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

dn
a

Ra
In te
clear all close all clc

% definisanje opsega unutar kojeg cemo posmatrati plot axis([0 5 2 2])

n=1:10; N=10; % generisanje 10 slucajnih brojeva prema uniformnoj raspodjeli x1=rand(1,N); % generisanje 10 slucajnih brojeva prema normalnoj raspodjeli x2=randn(1,N); % kreiramo formu u kojoj cemo prikazati nase funkcije figure(1)

rn

Copyright 2010 - Gogi Asmir

up

% oznake za apscisu i ordinatu xlabel('t') ylabel('x(t)') % naziv plota title('Funckije sin(\pi t), e^{t}, 0.1t ln(t+1)')

ot

% kreiramo formu u kojoj cemo prikazati nase funkcije figure(1) plot(t,x1) % zadrzimo dati plot na formi hold on % prikazemo drugu funkciju crvenom bojom plot(t,x2,"r") % prikazemo trecu funkciju crnom bojom plot(t,x3,"k") hold off

re

ve ba r z

% uklanjanje svih varijabli iz radnog okruzenja clear all % zatvaranje svih formi (plotova) close all % ciscenje komandnog prozora clc

ija

Graka interpretacija 2D funkcija omoguena je preko dvije komande plot i stem. Komanda plot se koristi iskljuivo za prikaz kontinualnih veliina dok stem za prikaz diskretnih veliina. Sljedee primjere emo testirati koristeo Octave editor.

18

SIGNALI I SISTEMI

% figura ce imati dva plota prvi je subplot(2,1,1) stem(n,x1) % oznake za apscisu i ordinatu prvog dijagrama xlabel('n') ylabel('x(n)') % naziv dijagrama title('Slucajni brojevi, uniformna raspodjela') % drugi plot je subplot(2,1,2) stem(n,x2,"r") % oznake za apscisu i ordinatu drugog dijagrama xlabel('n') ylabel('x(n)') % naziv dijagrama title('Slucajni brojevi, normalna raspodjela')

dn Ra
In te rn a

Copyright 2010 - Gogi Asmir

up

ot

re

ve ba r z

ija

SIGNALI I SISTEMI

19

Kontrola toka programa Kontrola toka programa izvodi se pomou if, elseif, else i end komandi.
clear all close all clc 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') else sprintf('x je %f i vece je od pet',x) end

Kontrolu programa mogue 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') otherwise disp('Osoba je nepoznata') end

Petlje

dn
a

Ra
In te

clear all close all clc

x=rand n=0.01; while(1) if(n>=x) sprintf('Pronasao sam veci broj od x=%.3f i to je broj n=%.3f',x,n) break end n=n+0.01; end

rn

for i=1:10 if (mod(i,2)==0) sprintf('Broj %.3f je paran',i) else sprintf('Broj %.3f je neparan',i) end end

Copyright 2010 - Gogi Asmir

up

ot

re

Octave podrava dva tipa petlji for i while. for petlja se izvrava dok je brojaka varijabla manja od predenisane vrijednosti a while petlja se izvrava sve dok je ispunjen logiki uslov. Petlje se realizuju sa komandama for, while, break i end.

ve ba r z

ija

20 Funkcije

SIGNALI I SISTEMI

Funkcije predstavljaju komande ili dio koda koji se ponavlja. Funkcije se deniu na sljedei nain function [outarg1,outarg2,...,outargn]=imefunkcije(inarg1,inarg2,...,inargn) tijelo funkcije Funkcija se sprema u zaseban le koji ima isto ime kao i funkcija. Primjer: Napisati Octave 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; end for i=1:1:max if(in1(i) ~= in2(i) ) val1 = in1(i); val2 = in2(i); index1 = i; break; end end end

ans = 2

dn
a

clear all close all clc

% vrijednost polinoma za x=0 polyval(px1,0) % vrijednost polinoma za x=10 polyval(px1,0) px2=[1 3 3 1]; roots(px2)

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

In te

rn

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

Copyright 2010 - Gogi Asmir

up

Korijene polinoma n-tog reda u Octave-u mogue je dobiti upotrebom roots komande.

Ra

Polinomi

ot

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

re

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

ve ba r z

ija

SIGNALI I SISTEMI

21

% korijeni jednacine x=[1 2 3] % polinom je poly(x)

Dodatne napomene

1. Znak % u Octave-u predstavlja komentar karakter. 2. Ime varijable u Octave-u ne moe biti due od 63 karaktera. 3. Za prelamanje linije koda koristimo tri take (...). 4. Rezultat izvravanja Octave koda nee biti prikazan ako se na kraj linije stavi ;. 5. Opis bilo koje komande u Octave moe se dobiti upotrebom help komande u Octave terminalu u formi help komanda_od_interesa 6. Radno okruenje zajedno sa svim varijablama mogue je spremiti u mojle le sa save komandom a uitati ponovo sa load mojle.

dn Ra
In te rn a

Copyright 2010 - Gogi Asmir

up

ot

re

ve ba r z

ija

22

SIGNALI I SISTEMI

dn Ra
In te rn a

Copyright 2010 - Gogi Asmir

up

ot

re

ve ba r z

ija

Laboratorijska vjeba 2
Zadatak 2.1 Koristei Octave nacrtati sljedee 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) Rjeenje

clear all close all clc

dn
a

Ra
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(t2) x=stepfun(t,2); figure(2) plot(t,x,'r') axis([5 5 0.5 1.5]) title('x(t)=u(t2)') xlabel('t') ylabel('x(t)') grid on

In te

rn

Copyright 2010 - Gogi Asmir

up

ot

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

re

ve ba r z

ija

24
1.5 1.5

SIGNALI I SISTEMI
1.5

x(t)

x(t)

0.5

0.5

x(t) 4 2

0.5

0.5

0 t

0.5

0 t

0.5

0 t

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

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

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

Slika 2.1

Zadatak 2.2

Koristei Octave nacrtati sljedee kontinualne signale a) x(t) = (t) b) x(t) = (t 2) c) x(t) = (t + 1) d) x(t) = 2(2 t)

dn
a

e) x(t) = 3(3 t) Rjeenje

Ra

clear all close all clc

In te

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

rn

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

Copyright 2010 - Gogi Asmir

up

ot

re

ve ba r z

% 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

ija

SIGNALI I SISTEMI

25

100 80 60 40 20 0 4 2 0 t 2 4

100 80 60 40 20 0 4 2 0 t 2 4

100 80 60 40 20 0 4 2 0 t 2 4

x(t)

x(t)

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

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

x(t)

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

Slika 2.2

Koristei Octave nacrtati sljedee kontinualne signale a) x(t) = sin(2t)

Ra
c) x(t) = e(+j)t d) x(t) = 2 cos2 (10t) e) x(t) = e0.2t cos(2t) Rjeenje

In te

clear all close all clc

t=5:0.01:5; x=sin(2*pi*t); figure(1) plot(t,x)

rn

a
Copyright 2010 - Gogi Asmir

up

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

ot

re

Zadatak 2.3

dn

% 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

ve ba r z

% x(t)=d(t2) 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(t2)') xlabel('t') ylabel('x(t)') grid on

ija

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

SIGNALI I SISTEMI

2 1 1 x(t) 0 x(t) 0 1 1 2 4 2 0 t 2 4 4 2 0 t 2 4 x(t)

2 1 0 1 2 4 2 0 t 2 4

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

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

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

Ra

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 on plot(t,imag(x1),'r') hold on plot(t,real(x2),'m') hold on plot(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

dn
a

Koristei Octave nacrtati sljedee 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]

In te

rn

Zadatak 2.4

Copyright 2010 - Gogi Asmir

up

ot

re

ve ba r z

ija

(c) Signal x(t) = e+jt

SIGNALI I SISTEMI

27

Rjeenje

clear all close all clc n=5:1:5; x=stepfun(n,0); figure(1) stem(n,x) axis([5 5 0.5 1.5]) title('x[n]=u[n])') xlabel('n') ylabel('x[n]') grid on

ve ba r z
0 x(n) 4 2 0 n 2 4

x(n)

x(n)

1 4 2

0 n

ija
1 0 1 4 2 0 n 2 4

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

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

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

Slika 2.4

dn
a

Ra
In te
Zadatak 2.5 a) x(n) = (n) b) x(n) = 0.7(n 2) c) x(n) = 1.3(n + 4)

Koristei Octave nacrtati sljedee diskretne signale

rn
Copyright 2010 - Gogi Asmir

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

up

ot

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

re

28 d) x(n) = 2(2 n) e) x(n) = 3(3 n) f) x(n) = sin n 2

SIGNALI I SISTEMI

g) x(n) = 0.8 cos(8n 0.5) + 1.2 sin(2n) h) x(n) = e(+j)n i) x(n) = 2 cos2 (10n) j) x(n) = 0.2n cos(2n) Rjeenje

clear all close all clc n=5:1:5; x=stepfun(n,0)stepfun(n,1); figure(1) stem(n,x) axis([5 5 0.5 1.5]) title('x[n]=\delta[n])') xlabel('n') ylabel('x[n]') grid on

dn
x(n) 0 1 4 2 0 n 2 4 4

re
2 0 n 2 4

x(n)

x(n)

ot

Ra

ve ba r z
1 0 1 4 2 0 n 2 4

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

up

a
rn a

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

Slika 2.5

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

In te

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

Copyright 2010 - Gogi Asmir

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

SIGNALI I SISTEMI

29

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

clear all close all clc n=5:1:5; x=sin(pi*n/2); figure(1) stem(n,x) axis([5 5 0.5 1.5]) title('x[n]=sin(\pi n/2))') xlabel('n') ylabel('x[n]') grid on

ve ba r z
1 0 x(n) 4 2 0 n 2 4

x(n)

x(n)

1 4 2

0 n

ija
2 1 0 1 2 4 2 0 n 2 4

(a) Signal x(n) = sin

a
up

n 2

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

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

Slika 2.6

dn
a

In te

rn

Ra

x=0.8*cos(0.8*pi*n0.5)+sin(2*pi*n); figure(2) stem(n,x,"r") 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") hold on stem(n,imag(x1),"r") hold on stem(n,real(x2),"m") hold on stem(n,real(x3),"k") axis([5 5 2.5 2.5]) title('x[n]=e^{(\sigma+j\omega) n}') xlabel('n') ylabel('x[n]') grid on

Copyright 2010 - Gogi Asmir

ot

re

30 Zadatak 2.6

SIGNALI I SISTEMI

Koristei Octave nacrtati sljedee 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). Rjeenje

t=5:0.01:5; tw=2; 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 % preko step signala x=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(t1)') xlabel('t') ylabel('x(t)') grid on

dn
1.5

Ra
1 0 4 2

1.5

up
1 1 x(t) 0.5 x(t) 4 2 0 0 1 0.5 4 2 0 t 2 4

0.5

0.5

In te

0 t

rn

x(t)

ot
0 t 2

re
4

(a) Signal x(t) =

t tw

(b) Signal x(t) =

Copyright 2010 - Gogi Asmir

ve ba r z
t tw (c) Signal gauspuls

clear all close all clc

Slika 2.7

ija

SIGNALI I SISTEMI

31

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))+(12*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))+(12t/3)(u(t)u(t1))') xlabel('t') ylabel('x(t)') grid on

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

dn
a

x=square(pi*t);

Ra
In te

rn

Copyright 2010 - Gogi Asmir

up

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

ot

re

ve ba r z

ija

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

1 4 2

1 4

ve ba r z
x(t) 0 1 2 0 t 2 4 4

x(t)

x(t)

0 t

ija
1 2 0 t 2 4

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

(a) Povorka pravougaonih impulsa

(b) Povorka trougaonih impulsa

(c) Chrip signal

dn Ra
In te rn a

Copyright 2010 - Gogi Asmir

up

ot

re

Slika 2.8

Laboratorijska vjeba 3
Zadatak 3.1 Za sisteme opisane jednainama a) y(t) = 5x(t) b) y(t) = 4tx2 (t) c) y(t) = x2 (t) + 4x(t 1) d) y(t) = 4 x2 (t)

e) y(t) = 10x(t) sin(2t) f) y(t) = dx(t) dt

realizovati testove za provjeru linearnosti, vremenske invarijantnosti i stabilnosti koristei Octave.

dn
a

Rjeenje

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

Ra
Test linearnost
clear all close all clc t=0:1e1:10;

In te

a=2; b=3; x1 = stepfun(t,1); x2 = t.*stepfun(t,2); y1 y2 x3 x4 = 5*x1; = 5*x2; =5*(a*x1 + b*x2); =a*y1 + b*y2;

subplot(3,1,1); plot(t,x1); ylabel("x_1(t)") xlabel("t(s)");

rn

Copyright 2010 - Gogi Asmir

up

ot

re

ve ba r z

ija

34
subplot(3,1,2); plot(t,x2); ylabel("x_2(t)") xlabel("t(s)"); subplot(3,1,3); plot(t,x3); hold on plot(t,x4,".r") ylabel("x_3(t), x_4(t)") xlabel("t(s)");

SIGNALI I SISTEMI

Test vremenske invarijantnosti


clear all close all clc t=0:1e1:10; t0 = 2; x = t.*stepfun(t,2); x_t = timeshift(x,t,t0); y = 5*x; y = timeshift(y,t,t0); y_t = 5*x_t; subplot(3,1,1); plot(t,x); ylabel('x(t)') xlabel('t(s)'); subplot(3,1,2); plot(t,x_t); ylabel('x_t(t)') xlabel('t(s)'); subplot(3,1,3); plot(t,y); hold on plot(t,y_t,".r") ylabel('y(t), y_t(t)') xlabel('t(s)');

dn
a

Test stabilnosti
clear all close all clc

Ra

t=0:1e1:10;

y1 = 5*x1; y2 = 5*x2;

subplot(4,1,1); plot(t,x1); ylabel('x_1(t)') xlabel('t(s)'); subplot(4,1,2); plot(t,y1);

In te

rn

% o g r a n i e n signal x1 = stepfun(t,2); % ne o g r a n i e n signal x2 = t.*stepfun(t,2);

Copyright 2010 - Gogi Asmir

up

ot

re

ve ba r z

ija

SIGNALI I SISTEMI

35

ylabel('y_1(t)') xlabel('t(s)'); subplot(4,1,3); plot(t,x2); ylabel('x_2(t)') xlabel('t(s)'); subplot(4,1,4); plot(t,y2); ylabel('y_2(t)') xlabel('t(s)');

b) y(t) = x2 (t) + 4x(t 1) Test linearnost


clear all close all clc t=0:1e1:10; a=2; b=3; x1 = stepfun(t,1); x2 = t.*stepfun(t,2); y1 = x1.^2 y2 = x2.^2 x = a*x1 + x3 =x.^2 + x4 =a*y1 + + 4*timeshift(x1,t,1); + 4*timeshift(x2,t,1); b*x2 4*timeshift(x,t,1); b*y2;

Ra
dt = t(2) t(1); N = abs(t0/dt);

function y = timeshift(x,t,t0)

In te

if t0 > 0 y = [zeros(1,N) x(1:endN)]; else y = [x(N+1:end) zeros(1,N) ]; end

Test vremenske invarijantnosti


clear all close all clc

rn

a
Copyright 2010 - Gogi Asmir

up

subplot(3,1,1); plot(t,x1); ylabel("x_1(t)") xlabel("t(s)"); subplot(3,1,2); plot(t,x2); ylabel("x_2(t)") xlabel("t(s)"); subplot(3,1,3); plot(t,x3); hold on plot(t,x4,".r") ylabel("x_3(t), x_4(t)") xlabel("t(s)");

dn

ot

re

ve ba r z

ija

36

SIGNALI I SISTEMI

t=0:1e1:10; t0 = 2; x = t.*stepfun(t,2); x_t = timeshift(x,t,t0); y = x.^2 + 4*timeshift(x,t,1); y = timeshift(y,t,t0); y_t = x_t.^2 + 4*timeshift(x_t,t,1); subplot(3,1,1); plot(t,x); ylabel('x(t)') xlabel('t(s)'); subplot(3,1,2); plot(t,x_t); ylabel('x_t(t)') xlabel('t(s)'); subplot(3,1,3); plot(t,y); hold on plot(t,y_t,".r") ylabel('y(t), y_t(t)') xlabel('t(s)');

Test stabilnosti
clear all close all clc t=0:1e1:10; % o g r a n i e n signal x1 = stepfun(t,2); % ne o g r a n i e n signal x2 = t.*stepfun(t,2);

dn
a

In te

subplot(4,1,1); plot(t,x1); ylabel('x_1(t)') xlabel('t(s)'); subplot(4,1,2); plot(t,y1); ylabel('y_1(t)') xlabel('t(s)'); subplot(4,1,3); plot(t,x2); ylabel('x_2(t)') xlabel('t(s)'); subplot(4,1,4); plot(t,y2); ylabel('y_2(t)') xlabel('t(s)');

Ra

rn

Copyright 2010 - Gogi Asmir

up

ot

y1 = x1.^2 + 4*timeshift(x1,t,1); y2 = x2.^2 + 4*timeshift(x2,t,1);

re

ve ba r z

ija

Laboratorijska vjeba 4
Uvod U ovoj laboratorijskoj vjebi upoznat emo se sa veoma vanim postupkom u obradi signala a to je akvizicija podataka. Akvizicija podataka predstavlja adekvatan (digitalni) nain prikupljanja podataka. Generisat emo razliite talasne oblike signala na razliitim frekvencijama i posmatrati ih na osciloskopu i vriti akviziciju na raunaru. Zadatak 4.1

Koristei signal generatora MA 3733 generisati sljedee signale a) Sinusni signal

amplitude 1.5V, frekvencije 200Hz amplitude 1.2V, frekvencije 50Hz b) Povorku pravougaonih impulsa amplitude 1V, frekvencije 70Hz

dn
a

amplitude 2V, frekvencije 30Hz c) Povorku trougaonih impulsa

amplitude 2.5V, frekvencije 8Hz

Ra
In te

Svaki od signala potrebno je prikazati na osciloskopu 3502C te izvriti akvizijciju signala u Octave radno okruenje preko mikrofonskog ili line in ulaza na audio kartici. Napisati funkciju za mjerenje frekvencije importovanog signala. Spajanje opreme izvriti prema shemi prikazanoj na slici ??.

rn

Copyright 2010 - Gogi Asmir

up

ot

amplitude 2.2V, frekvencije 80Hz

re

ve ba r z

ija

38

SIGNALI I SISTEMI

OSCILOSKOP

SIGNAL GENERATOR RAUNAR

LINE IN

Oprema

3502C predstavlja dvokanalni osciloskop a namjenjen je za analizu signala ija frekvencija ne prelazi 20MHz. Osciloskop predstavlja mjerni instrument namjenjen za posmatranje talasnih oblika signala u vremenskom domenu. Opte karakteristike osciloskopa 3502C su: 1. Vertikalni otklon

Propusni opseg: DC - 20MHz (-3dB)

dn
a

Vrijeme porasta 17.5 ns Preskok 8%

Ulazna impedansa entovana za 20pF 3pF. Modovi rada CH-A, CH-B, DUAL i ADD

Ra

Frekvencija odsjecanja 200kHz

2. Vremenska baza

Okidanje automatsko ili vanjskim izvorom Sweep Time 0.2s - 0.5s/Div

3. Okidanje

4. Horizontalni otklon Faktor otklona 5mV - 20V/Div na 12 opsega u 1-2-5 koraka sa nim tuniranjem.

In te

Izvor INT, CH-B, LINE ili EXT Pozitivna ili negativna ivica Osjetljivost za interno okidanje 2Div

Osjetljivost za eksterno okidanje 1Vp-p

rn

Skaliranje 5x na svim opsezima

Copyright 2010 - Gogi Asmir

up

Odvajanje kanala 60dB na 1kHz

ot

re

Faktor otklona 5mV do 20V/Div na 12 opsega u 1-2-5 koraka sa nim tuniranjem

ve ba r z

Slika 4.1

ija

SIGNALI I SISTEMI

39

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 Teina 7kg. Dimenzije 147(H) X 356(W) X 435(D) [mm]

dn Ra
In te
11. Eksterno okidanje 10. Dodatni regulator za sweep time

2. Preklopnik za blokiranje AC - GND - DC komponenti kanal A 3. Set prekidaa za odabir prikaza jednog ili oba kanala 4. Regulator za podeavanje osjetljivosti V/Div kanal A 5. Dodatni atenuator za podeavanje osjetljivosti kanal A 6. Regulator za podeavanje vertikalne ose kanal A 7. Regulator za podeavanje horizontalne ose kanal A 8. Dodatno pojaanje sweep time x5 9. Horizontalni regulator za sweep time

rn

Copyright 2010 - Gogi Asmir

up

1. Terminal za vertikalni ulaz kanal A

ot

re
Slika 4.2

ve ba r z

ija

40 12. Kalibracija 13. Podeavanje nivoa okidanja 14. Auto sweep 15. Podeavanje polariteta strmine 16. Sprezanje 17. GND 18. Selektor signala za sinhronizaciju 19. Prekida za napajanje osciloskopa

SIGNALI I SISTEMI

21. Regulator za intenzitet 22. Trace(trag) regulator 23. Regulator za podeavanje vertikalne ose kanal B 24. Prekida za invertovanje polariteta kanal B

25. Regulator za podeavanje osjetljivosti V/Div kanal B

26. Dodatni atenuator za podeavanje osjetljivosti kanal B 27. Terminal za vertikalni ulaz kanal B

28. Preklopnik za blokiranje AC GND DC komponenti kanal B

dn
a

SONDA OP20 (za osciloskop)

a) Ulazni kapacitet osciloskopa 15pF 40pF

Ra

b) Atenuacija 1:1

1:10

rn

c) Ulazni kapacitet sonde 72.5pF 10% 17.5pF 1%

up
Slika 4.3: Sonda OP20

d) Unutranji otpor 237 10 9M 1

e) Propusni opseg 15MHz (3dB)

In te

Copyright 2010 - Gogi Asmir

ot

re

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

ve ba r z

ija

20. Regulator za fokus

SIGNALI I SISTEMI

41

60MHz (3dB) f) Maksimalni ulazni napon 500V 300V g) Duina sonde: 110mm h) Duina kabla sonde: 140cm Signal generator MA3733 omoguuje generisanje signala sa tri razliita talasna oblika: sinusni, trougaoni i pravougaoni. Za svaki od signala nivo amplitude je mogue mjenjati u opsegu od 0 do 10V te je omoguena dodatna atenuacija AC komponente za -20dB. MA3733 omoguuje dodavanje DC komponente u AC signal u opsegu od -10V do 10V. Frekventni opseg signal generatora je od DC do 10kHz sa korakom 10x. Fino tuniranje frekvencije mogue je preko glavnog regulatora sa korakom 1/100 maksimuma podeenog opsega. Opis MATLAB funkcija neophodnih za izvoenje vjebe

analoginput()

Kreira objekta tipa analog input asociranog sa istoimenim adapterom. Funkcija uzima jedan argumenat koji predstavlja driver za sound adapter. Adapter za nau vjebu je winsound. Funkcija prima dva argumenta: OBJ i HWCH. Prvi argumenat je adapter kreiran sa funkcijom analoginput() a drugi broj kanala koji elimo koristit za odabrani adapter. U ovoj vjebi koristimo jedan kanal. Funkcija prima tri argumenta: H - handle (poseban tip pokazivaa), osobinu kao string i njenu vrijednost. Funkcija slui za podeavanje parametara adaptera speciciranog sa handlom H. Za ovu vjebu bitna je osobina adaptera SampleRate koja predstavlja frekvenciju uzorkovanja i osobina SamplesPerTrigger koja predstavlja broj generisanih uzoraka po pozivu getdata. Frekvencija uzorkovanja i broj uzoraka po pozivu getdata funkcije je 8000. Funkcija prima jedan argumenat koji predstavlja handle adaptera i slui za pokretanja adaptera.

addchannel()

set()

dn
a

start()

Ra
getdata()

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


duration = 1; % duzina trajanja bloka podataka Fs = 8000; % frekvencija uzorkovanja signala A=7; t=0:1/Fs:(11/Fs); w=0:1:(Fs1); % inicijalizacija i konfiguracija audio adaptera AI = analoginput('winsound'); % inicijalizacija jednog kanala addchannel(AI, 1); % setovanje frekvencije uzorkovanja set (AI, 'SampleRate', Fs); % setovanje velicine bloka podataka

In te

rn

Copyright 2010 - Gogi Asmir

up

Funkcija uzima dva parametra, objekat i njegovu vrijednost a vraa specicirani broj podataka denisan sa vrijednou iz objekta.

ot

re

ve ba r z

ija

42

SIGNALI I SISTEMI

Spektar signala mogue je odrediti pozivom funkcije spektar.


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

In te

rn

set(AI, 'SamplesPerTrigger', Fs); % pocetak akvizicije for i=1:1:5 start(AI); data = getdata(AI); if i==1 val=data; else val=[val data]; end subplot(2,1,1) % skaliranje amplitude tako da odgovara stvarnoj vrijednosti data=data*A; % odredjivanje frekvencije signala N=0; a=0; if(data(1)>0) a=2; else a=1; end n=2; while(n<size(data,1)) if(data(n)>0) if(a==1) a=2; N=N+1; n=n+5; end elseif(data(n)<0) if(a==2) a=1; N=N+1; n=n+5; end end n=n+1; end plot(t',data) xlabel('t(s)') ylabel('x(t)') title(sprintf('f = %.1f Hz',(N1)/2)); % prikaz spektra signala mag = 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);

dn

Ra

Copyright 2010 - Gogi Asmir

up

ot

re

ve ba r z

ija

SIGNALI I SISTEMI

43

80 60 |X(f )| 0 5 1031 102 102 102 102 102 1.5 2 2.5 3 t(s) 40 20

x(t)

1 0 2 0 100 200 300 400 500 f (Hz)

(a) Talasni oblik signala x(t)

(b) Amplitudni spektar signala x(t)

Slika 4.4: Sinusni signal f = 200Hz

1 0.5 x(t) 0 0.5 1 0

dn

2 102 4 102 6 102 8 102 t(s)

ve ba r z
80 60 |X(f )| 40 20 0 0.1 0 100 |X(f )|

ija
200 300 400 500 f (Hz) 100 200 300 400 500 f (Hz)

(a) Talasni oblik signala x(t)

Slika 4.5: Sinusni signal f = 50Hz

Ra
1 0.5 0 x(t) 0.5

up

ot
60 40 20 0 0

In te

rn
0 2 103 4 103 6 103 8 103 1 102 t(s)

(a) Talasni oblik signala x(t)

Slika 4.6: Povorka trougaonih impulsa f = 70Hz

Copyright 2010 - Gogi Asmir

re

(b) Amplitudni spektar signala x(t)

(b) Amplitudni spektar signala x(t)

44

SIGNALI I SISTEMI

80 2 60 1 0 1 0 2 0 2 103 4 103 6 103 8 103 1 102 t(s) 0 100 200 300 400 500 |X(f )| x(t) 40 20

f (Hz)

(a) Talasni oblik signala x(t)

(b) Amplitudni spektar signala x(t)

Slika 4.7: Povorka trougaonih impulsa f = 730Hz

3 2 1 x(t) 0 1 2 0

Slika 4.8: Povorka pravougaonih impulsa f = 80Hz

Ra

0.6 0.4 0.2 0

up

rn

|X(f )|

x(t)

0.2 0.4

In te

2 102 4 102 6 102 8 102 t(s)

ot
60 40 20 0 0.1 0 100 200 300 400 500 f (Hz)

(a) Talasni oblik signala x(t)

Slika 4.9: Povorka pravougaonih impulsa f = 80Hz

Copyright 2010 - Gogi Asmir

re

(a) Talasni oblik signala x(t)

dn

2 103 4 103 6 103 8 103 1 102 t(s)

ve ba r z
80 60 |X(f )| 40 20 0 100 200 f (Hz)

(b) Amplitudni spektar signala x(t)

(b) Amplitudni spektar signala x(t)

ija
300 400 500

Laboratorijska vjeba 5
Zadatak 5.1 Nacrtati sljedee signale 1. x(t) = tu(t) tu(t 2) 2. x(t) = e0.5t u(t 1) e0.5t u(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 izvriti sljedee transformacije nezavisno promjenljive a) x(t 2) b) x(t + 3) c) x(t) d) x(t/2) e) x(1 t/2)

dn
a

Dati odgovoren na sljedea pitanja

Ra
Rjeenje

b) Koje od navedenih operacija nije mogue izvesti u realnom svijetu? c) Pokuati predloiti elektrino kolo koje realizuje date transformacije.

In te

clear all close all clc

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

rn

Copyright 2010 - Gogi Asmir

up

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

ot

re

ve ba r z

ija

46
grid on

SIGNALI I SISTEMI

x = (t2).*(stepfun(t,2)stepfun(t,4)); subplot(3,2,2) plot(t,x,"r") axis([5 5 0 2]) xlabel('t') ylabel('x(t2)') grid on x = (t+3).*(stepfun(t,3)stepfun(t,1)); subplot(3,2,3) plot(t,x,"m") 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") 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") axis([5 5 0 2]) xlabel('t') ylabel('x(t/2)') grid on x = (1t/2).*(stepfun(t,2)stepfun(t,2)); subplot(3,2,6) plot(t,x,"c") axis([5 5 0 2]) xlabel('t') ylabel('x(1t/2)') grid on

dn
2 x(t 2) 1 0

ot
x(t + 3) 2 0 t 2 4

re
2 1 0 4 2 0 t 2 4

Ra
1 0 4 2 0 t 2 4

(a)

rn

up
4

x(t)

ve ba r z
(b) (c)

In te

Copyright 2010 - Gogi Asmir

Slika 5.1

ija

SIGNALI I SISTEMI

47

x(1 t/2) 4 2

x(t/2)

x(t)

0 4 2 0 t 2 4

0 0 t 2 4

0 4 2 0 t 2 4

(a)

(b)

(c)

Slika 5.2

Koristei funkciju conv odrediti konvoluciju signala x(t) = (t+1)(u(t+1)u(t))+(1t)(u(t)u(t1)) i h(t) = u(t) u(t 2). Nacrtati signale x(t), h(t) i y(t). Voditi rauna o duini vektora y(t). Dati odgovoren na sljedea pitanja a) Zato vektor y(t) ima vei broj elemenata nego x(t) i h(t)?

b) Kovolucija se moe primjeniti za odreivanje odziva koje grupe sistema? c) Za odreivanje odziva sistema pomou konvolucije neophodno je poznavati jedan podatak. Koji je to podatak? Rjeenje

dn
a

clear all close all clc

Ra
In te

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

rn

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

Copyright 2010 - Gogi Asmir

up

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

ot

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

re

ve ba r z

ija

Zadatak 5.2

48
1.5 1.5

SIGNALI I SISTEMI
1.5

h(t)

x(t)

0.5

0.5

y(t) 3 2 1

0.5

0.5

0 t

0.5

0 t

0.5

0 t

(a)

(b)

(c)

Slika 5.3

Odrediti konvoluciju sljedeih 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) = et (u(t 1) u(t 3))

a zatim nacrtati svaki od signala. Dati odgovore na sljedea pitanja

a) Konvolucija dva kontinualna signala konanog trajanja je signal kakav po trajanju? ta ako je jedan od signala beskonanog trajanja?

dn
a

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;

In te

rn

% vremenska granulacija tstep=0.01; % korak simulacije N=10; % vremenska pauza (sec) za simulaciju tdelay=0.2; t=6:0.01:6;

Copyright 2010 - Gogi Asmir

up

clear all close all clc

Ra

ot

Rjeenje

re

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

b) Analizirati sluaj a) kada se u irina signala x(t) smanjuje. ta moemo primjetiti? Ako bi promjenili talasni oblik signala x(t) = et (u(t 1) u(t 3)) da li bi imali istu situaciju?

ve ba r z

ija

Zadatak 5.3

SIGNALI I SISTEMI

49

hr=[hr((Ns+1):size(hr,2)) zeros(1,Ns)]; y=conv(x,h); tsize=floor(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 all clf(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 on plot(t,hr,"r") xlabel('\tau') ylabel('x(\tau)h(t\tau)') axis([6 6 0 max(xmax,hmax*1.2)])

dn
h(t)

end

Ra
1.5 1 x(t) 0.5 0 0.5 1

up
1.5 1 0.5 y(t) 1 0 0.5

ot
0 1

subplot(4,1,4) yp=[yr(1:(200+n*N)) zeros(1,(size(yr,2)(200+N*n)))]; plot(t,yp(1:size(t,2))) 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;

re
2 t 3

ve ba r z
2 1 0 4 5 1 0 1 2 t 3 4 5

rn

In te

2 t

(a)

a
3 4 5

(b)

Slika 5.4: Konvolucija za sluaj a)

Copyright 2010 - Gogi Asmir

ija
(c)

50
1.5 2 1

SIGNALI I SISTEMI

2 h(t) x(t) 1 0.5 y(t) 1 0 0 1 0 1 2 t 3 4 5 0.5 1 0 1 2 t 3 4 5 0 1 0 1 2 t 3 4 5

(a)

(b)

(c)

Slika 5.5: Konvolucija za sluaj b)


1.5 2 1 1.5

0.5

0 1 0 1 2 t 3 4 5 0.5 1

ve ba r z
1 2 t 3 4 5 0.5 1

ija
1 y(t) 0.5 0 0 1 2 t 3 4 5

(a)

h(t)

x(t)

(b)

(c)

Slika 5.6: Konvolucija za sluaj c)

dn
a

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

In te

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

rn

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=floor(size(t,2)/2); yr=y(tsize:size(y,2))*tstep; yr=yr(1:(size(yr,2)tsize+1));

Ra

Copyright 2010 - Gogi Asmir

up

ot

% vremenska granulacija tstep=0.01; % korak simulacije N=10; % vremenska pauza (sec) za simulaciju tdelay=0.2; t=4:0.01:4;

re

clear all close all clc

SIGNALI I SISTEMI

51

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

dn Ra
In te rn a

Copyright 2010 - Gogi Asmir

up

ot

re

ve ba r z

ija

You might also like