You are on page 1of 91

UNIVERZITET U TUZLI

FAKULTET ELEKTROTEHNIKE

z ija
ba er
LABORATORIJSKE VJEŽBE
Signali i sistemi
v
Gogić Asmir
a
dn
re
ot
Ra
up
a
rn
te
In

Tuzla, Februar 2010. godine

©Copyright 2010 - Gogić Asmir


2 SIGNALI I SISTEMI

z ija
ba er
v
a
dn
re
ot
Ra
up
a
rn
te
In

©Copyright 2010 - Gogić Asmir


Laboratorijska vježba 1

Osnove MATLAB-a

ija
MATLAB (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 jednostavno
za 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,

z
2D i 3D prikaz podataka i dr. MATALB omogućuje dva načina tehničko-matematičkog modelovanja:

ba er
• Grafički - Simulink koji predstavlja vizuelni alat pomoću kojeg je moguće analizirati i simulirati
kontinualne i diskretne sisteme. Prednost ovakvog pristupa je da korisnik ne mora poznavat
sintaksu MATLAB programskog jezika.
v
• Tekstualni - MATLAB editor/debbuger koji predstavlja tekstualni editor za pisanje MATLAB
programa kojeg spremamo u file sa ekstenzijom ”.m”. To je ASCII tekst file koji sadrži sekvencu
MATLAB komandi a razlikujemo dva tipa m-fileova:
a) script files - duge automatizirane sekvence MATLAB komandi koje se ponavaljaju.
a
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.
dn
re

Pisanju MATLAB programa moguće je izvoditi kako smo već rekli u tekstualnom editoru ili direktno
u komandnom prozoru. Pisanje programa u komandnom prozoru pogodno je samo ako pišemo male i
ot

jednostavne programe bez ponavljanja u suprotnom koristimo MATLAB editor/debbuger.


Ra

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


up

C:/MATLAB701/bin/matlab.bat

ili preko Start menija


a

Start ⇒ P rograms ⇒ M atlab ⇒ matlab


rn

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

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

• Komandni prozor - koji omogućuju potpunu kontrolu MATLAB okruženja kao i pisanje kratkih
programa, 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.

©Copyright 2010 - Gogić Asmir


4 SIGNALI I SISTEMI

z ija
ba er
v
Slika 1.1: MATLAB radno okruženje
a
Putanja
dn

MATLAB putanja (path) predstavlja listu direktorija koje MATLAB ”vidi” tj koje pretražuje za
re

sistemske biblioteke. Path cache predstavlja predefinisanu listu /toolbox fileova kreiranu prilikom
pokretanja MATLAB-a u cilju bržeg izvršavanja skripti i funkcija. Neke od korisnih MATLAB komandi
ot

za rad sa pathom su
Ra

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


up

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

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


rn

Varijable
te

MATLAB sve varijable tretira kao matrice. Osnovni (default) tip podatka u MATLAB-u je double. Na
slici 1.2 prikazano je stablo svih tipova podataka u MATLAB-u. S druge strane, MATLAB podržava
In

realne, 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 dijelimo
na 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 varijablu
c koja ima vrijednost 2 + j3

©Copyright 2010 - Gogić Asmir


SIGNALI I SISTEMI 5

N-DIMENSION ARRAY

BOOLEAN NUMERIC TEXT FUNCTION HETEROGENEOUS


logical char HANDLE CONTAINER
function_handle

FLOATING POINT INTEGER NAME-BASED INDEX-BASED


struct cell

SINGLE DOUBLE SIGNED UNSIGNED


PRECISION PRECISION int8 uint8
single double int16 uint16

ija
(default) int32 uint32

Slika 1.2

z
>> a=10

a =

10

>> b=2.1415 ba er
v
b =

2.1415

>> c=2+j*3
a
c =
dn

2.0000 + 3.0000i
re

Varijabla a je skalar ali je MATLAB tretira kao matricu dimenzija 1×1. Listu svih varijabli u radnom
ot

okruženju možemo dobiti sa komandom who dok listu svih varijabli sa tipom podatka, dimenzijama i
atributima možemo dobiti sa whos.
Ra
up

>> who

Your variables are:


a

a b c
rn

>> whos
Name Size Bytes Class Attributes

a 1x1 8 double
te

b 1x1 8 double
c 1x1 16 double complex
In

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

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

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

ija
zeros(3,2)

ans =

0 0

z
0 0
0 0

ba er
Matricu jedinica sa n kolona i m redova kreiramo sa komandom ones(m,n)
v
ones(4,3)

ans =

1 1 1
a
1 1 1
1 1 1
1 1 1
dn
re

Jediničnu matricu kreiramo sa komandom eye(n)


ot

>> eye(3)
Ra

ans =
up

1 0 0
0 1 0
0 0 1
a

Indeksiranje matrica
rn

Indeksi N-dimenzionalnog niza u MATLAB-u počinju od vrijednosti 1. Indeksiranje matrice vršimo


sa malim zagradama ( ).
te

>> A=[4 3 1 5 6]
In

A =

4 3 1 5 6

>> A(2)

ans =

©Copyright 2010 - Gogić Asmir


SIGNALI I SISTEMI 7

>> 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 indeks
0. Od matrice A možemo napraviti novu matricu koja će sadržavati sve vrijednosti matrice A za dati
opseg indeksa upotrebom operatora ”:”.

A =

4 3 1 5 6

>> B=A(2:4)

ija
B =

3 1 5

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

z
nama.

A =

1 2
ba er
v
3 4

>> A(1:3)

ans =
a
1 3 2
dn
re

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

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

A =
up

1 2 3
4 5 6
7 8 9
a

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

B =

4 5
7 8
te

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

B =

4
7

>> B=A(2,:)

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

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

z
>> A=[1 0 2]

A =

1 0 2 ba er
v
>> A=[1 0 2];
>>

Operacija nad matricama


a
Od dvije matrica A i B moguće je napraviti novu matricu koja će sadržavati sve elemente matrice A i
dn

B na sljedeći načini
re

>> A=[1 2]
ot

A =
Ra

1 2
up

>> B=[3 4]

B =

3 4
a

>> C=[A B]
rn

C =
te

1 2 3 4

>> D=[A; B]
In

D =

1 2
3 4

©Copyright 2010 - Gogić Asmir


SIGNALI I SISTEMI 9

Transponovanje matrice izvodi se sa operatorom ”’”

A =

1 2 3

>> A'

ans =

1
2
3

>> A=[1 2; 5 6]

A =

ija
1 2
5 6

>> A'

z
ans =

1 5
2 6

ba er
Rotiranje matrice za 90° u suprotnom smijeru kazaljke na satu izvodimo sa komandom rot90.
v
>> A=[1 2 3 4]

A =
a
1 2 3 4
dn

>> B=rot90(A)
re

B =
ot

4
3
Ra

2
1
up

>> B=rot90(rot90(A))

B =
a

4 3 2 1
rn

>> A=[1 2; 3 4]

A =
te

1 2
3 4
In

>> B=rot90(A)

B =

2 4
1 3

©Copyright 2010 - Gogić Asmir


10 SIGNALI I SISTEMI

>> B=rot90(rot90(A))

B =

4 3
2 1

Obrtanje matrice za 180° u suprotnom smijeru kazaljke na satu izvodimo sa komandom fliplr.

A =

1 2 3
4 5 6

>> fliplr(A)

ija
ans =

3 2 1
6 5 4

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

A =

1
3
2
4
ba er
v
>> det(A)

ans =
a
−2

>> inv(A)
dn
re

ans =

−2.0000 1.0000
−0.5000
ot

1.5000
Ra

Svojstvene vrijednosti matrice A možemo dobit sa komandom eig


up

A =

1 2
a

4 5
rn

>> eig(A)

ans =
te

−0.4641
6.4641
In

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

©Copyright 2010 - Gogić Asmir


SIGNALI I SISTEMI 11

>> A=[1 0; 2 3]

A =

1 0
2 3

>> B=[1 2; 0 3]

B =

1 2
0 3

>> C=A+B

C =

ija
2 2
2 6

>> D=A−B

z
D =

0 −2
2

>> E=A*B

E =
0

ba er
v
1 2
2 13
a
U MATLAB-u matrice je moguće sabirati, oduzimati, množiti i djeliti sa konstantom.
dn

A =
re

1 0
2 3
ot

>> B=2+A
Ra

B =
up

3 2
4 5

>> B=2−A
a

B =
rn

1 2
0 −1
te

>> B=2*A

B =
In

2 0
4 6

>> B=A/2

B =

©Copyright 2010 - Gogić Asmir


12 SIGNALI I SISTEMI

0.5000 0
1.0000 1.5000

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

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


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

C =

2 6

ija
12 20

>> C=B.*A

C =

2 6

z
12 20

>> C=A./B

C =

0.5000 0.6667
ba er
v
0.7500 0.8000

Relacioni operatori
a
MATLAB podržava sljedeće relacione operatore sa varijablama
dn

Operator Značenje
re

== Jednako
∼= Različito
ot

< Manje
Ra

> Veće
up

<= Manje ili jednako


>= Veće ili jednako
a

Tablica 1.1
rn

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

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


>> B=[2 4; 2 5];
>> A==B
In

ans =

0 0
1 0

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

©Copyright 2010 - Gogić Asmir


SIGNALI I SISTEMI 13

ans =

>> A>B

ans =

0 1
0 1

>> A>=B

ans =

0 1
1 1

ija
>> A~=B

ans =

1 1

z
0 1

>> A==2

ans =

0 0
ba er
v
1 0

>> A(1)==2

ans =
a
0
dn
re

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

Operator Značenje
Ra

&& I
up

|| ILI

Tablica 1.2
a

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


rn

Operator Značenje
te

∼ Logička negacija
& Logičko i
In

| Logičko ili
xor Logičko xor

Tablica 1.3

©Copyright 2010 - Gogić Asmir


14 SIGNALI I SISTEMI

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

ans =

>> a&&c

ans =

>> a||b

ans =

ija
1

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

z
ans =

>> a&b

ans =
0

ba er
v
1

>> a&c
a
ans =

0
dn
re

>> xor(a,b)

ans =
ot

0
Ra

>> xor(a,c)
up

ans =

1
a

Kompleksni brojevi
rn

Kompleksan broj deklarišemo i inicijaliziramo na sljedeći način


te

>> a=1−1*j

a =
In

1.0000 − 1.0000i

>> b=2+1*i

b =

©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 i
argument preko funkcija abs i angle.

>> real(a)

ans =

>> imag(a)

ans =

−1

ija
>> angle(a)

ans =

−0.7854

z
>> abs(a)

ans =

1.4142 ba er
v
Konstante
U MATLAB-u imamo nekoliko predefinisanih konstanti a date su u tablici 1.4.
a
Konstanta Vrijednost
dn

π 3.14159269
re

i Imaginarna jedinica
j Imaginarna jedinica
ot

realmax Maksimalni pozitivni broj 1.7977e + 308


Ra

realmin Minimalni pozitivni broj 2.2251e − 308


up

inf Beskonačno (Infinity)


NaN Not a number
a

Tablica 1.4
rn

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

Format
U MATLAB-u postoji više načina za prikaz rezultata matematičkih operacija. Rezultati se uobičajno
In

prikazuju sa jednostrukom preciznošću (4 značajne cifre iza zareza), način prikaza određuje naredba
format sa argumentom koji može biti kao u tablici 1.5.

©Copyright 2010 - Gogić Asmir


16 SIGNALI I SISTEMI

Format Prikaz
short 4 decimalna mjesta
short e eksponencijalni prikaz sa 4 decimalna mjesta
long 14 decimalnih mjesta
long e eksponencijalni prikaz sa 14 decimalnih mjesta
rat aproksimacija brojeva razlomkom
compact ispis bez praznih redova

Tablica 1.5

Karakteri i stringovi

ija
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
većini slučajeva nije tako. Za poređenje stringova koristi se komanda strcmp a za spajanje stringova
strcat.

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

a =

123
ba er
v
>> a='Signali i sistemi';
>> b=a;
>> a==b

ans =
a
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1
dn
re

>> strcmp(a,b)

ans =
ot

1
Ra

>> b=[a '2']


up

b =

Signali i sistemi2

>> a==b
a

??? Error using ==> eq


Matrix dimensions must agree.
rn

>> strcmp(a,b)
te

ans =

0
In

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

©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:


Ime
ocjena

ija
>> student(1)

ans =

Ime: 'Tarik'
ocjena: 10

z
>> student(1).Ime

ans =

Tarik
ba er
v
Podatak tipa ćelija cell predstavlja višedimenzionalnu matricu kod koje elementi mogu biti matrice
različitih dimenzija. Elementima ćelije pristupamo pomoću operatora vitičastih zagrada ”{}”.
a
>> a=cell(2,2);
>> a{1}=[1 2 3 4];a{2}=[3 4];a{3}=[1 3 4];a{4}=[1 4];
>> a
dn
re

a =

[1x4 double] [1x3 double]


ot

[1x2 double] [1x2 double]


Ra

>> a{1}(:)
up

ans =

1
2
3
a

4
rn

>> a{3}(:)

ans =
te

1
3
4
In

Grafički prikaz podataka


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

©Copyright 2010 - Gogić Asmir


18 SIGNALI I SISTEMI

% uklanjanje svih varijabli iz radnog okruzenja


clear all
% zatvaranje svih formi (plotova)
close all
% ciscenje komandnog prozora
clc

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 funkcije


figure(1)
plot(t,x1)
% zadrzimo dati plot na formi
hold on

ija
% prikazemo drugu funkciju crvenom bojom
plot(t,x2,'r')
% prikazemo trecu funkciju crnom bojom
plot(t,x3,'k')
hold off

z
% oznake za apscisu i ordinatu
xlabel('t')
ylabel('x(t)')
% naziv plota

ba er
title('Funckije sin(\pi t), e^{−t}, 0.1t ln(t+1)')

% definisanje opsega unutar kojeg cemo posmatrati plot


axis([0 5 −2 2])
v
clear all
close all
a
clc

n=1:10;
dn

N=10;
re

% generisanje 10 slucajnih brojeva prema uniformnoj raspodjeli


x1=rand(1,N);
% generisanje 10 slucajnih brojeva prema normalnoj raspodjeli
ot

x2=randn(1,N);
Ra

% kreiramo formu u kojoj cemo prikazati nase funkcije


figure(1)
up

% figura ce imati dva plota prvi je


subplot(2,1,1)
stem(n,x1)
% oznake za apscisu i ordinatu prvog dijagrama
xlabel('n')
a

ylabel('x(n)')
% naziv dijagrama
rn

title('Slucajni brojevi, uniformna raspodjela')

% drugi plot je
subplot(2,1,2)
te

stem(n,x2,'r','marker','.')
% oznake za apscisu i ordinatu drugog dijagrama
xlabel('n')
In

ylabel('x(n)')
% naziv dijagrama
title('Slucajni brojevi, normalna raspodjela')

©Copyright 2010 - Gogić Asmir


SIGNALI I SISTEMI 19

Kontrola toka programa


Kontrola toka programa izvodi se pomoći 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

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

osoba = 'Student';

z
switch lower(osoba)
case {'student','ucenik'}
disp('Osoba je student')
case 'radnik'
disp('Osoba je radnik')
case 'profesor'
disp('Osoba je profesor')
ba er
v
otherwise
disp('Osoba je nepoznata')
end
a
Petlje
Matlab podržava dva tipa petlji for i while. for petlja se izvršava dok je brojačka varijabla manja od
dn

predefinisane vrijednosti a while petlja se izvršava sve dok je ispunjen logički uslov. Petlje se realizuju
re

preko ključnih riječi for, while, break i end.


ot

clear all
close all
Ra

clc
up

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

end
end
rn
te

x=rand
n=0.01;
while(1)
In

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

©Copyright 2010 - Gogić Asmir


20 SIGNALI I SISTEMI

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

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

tijelo funkcije

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

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;

ija
end
for i=1:1:max
if(in1(i) ~= in2(i) )
val1 = in1(i);
val2 = in2(i);
index1 = i;

z
break;
end

ba er
end
end
v
>> a = [1 2 3];
>> b = [1 3 3];
>> test(a,b)

ans =
a
2
dn
re

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

Simbolički račun
ot

MATLAB omogućuje kreiranje posebnih simboličkih varijabli i objekata. Simboličke varijable sadrža-
Ra

vaju simboličke izraze nad kojima je moguće vršiti operacije diferenciranja.


up

clear all
close all
clc
a

% deklaracija simbolickih varijabli


syms x t;
rn

y = x^3 + x*cos(x) − exp(x);


pretty(y)
x = 1;
te

% izracunavanje vrijednosti funkcije y


y_val = eval(y);
In

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

x = 1;
z_val = eval(z);
n=1;
for x = 0:0.01:5

©Copyright 2010 - Gogić Asmir


SIGNALI I SISTEMI 21

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 on
plot(0:0.01:5,z_val1,'−−r')

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

clear all
close all

ija
clc

% korijeni polinoma x^2+2*x+1=0 su


px1=[1 2 1];
% korijeni jednacine su
roots(px1)

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

px2=[1 3 3 1];
ba er
v
roots(px2)

px3=[1 3 5 3 1];
roots(px3)
a
% korijeni jednacine
x=[1 2 3]
% polinom je
dn

poly(x)
re

Dodatne napomene
ot
Ra
up

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


a

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

5. Opis bilo koje komande u MATLAB može se dobiti upotrebom help komande u MATLAB
komandnom prozoru.
te

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

©Copyright 2010 - Gogić Asmir


22 SIGNALI I SISTEMI

z ija
ba er
v
a
dn
re
ot
Ra
up
a
rn
te
In

©Copyright 2010 - Gogić Asmir


Laboratorijska vježba 2

Zadatak 2.1

ija
Koristeći MATLAB funkciju stepfun nacrtati sljedeće kontinualne signale

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

z
c) x(t) = u(t + 3)
d) x(t) = 2u(2 − t)
e) x(t) = −2u(−3 − t) ba er
v
Rješenje
a
clear all
close all
clc
dn
re

% vremenski vektor unutar koga prikazujemo signal x(t)


% sa granulacijom 0.01s
t=−5:0.01:5;
% generisanje step signala preko ugradjene funkcije stepfun()
ot

x=stepfun(t,0);
Ra

figure(1)
up

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

% x(t)=u(t−2)
x=stepfun(t,2);
te

figure(2)
plot(t,x,'r')
axis([−5 5 −0.5 1.5])
In

title('x(t)=u(t−2)')
xlabel('t')
ylabel('x(t)')
grid on

©Copyright 2010 - Gogić Asmir


24 SIGNALI I SISTEMI

1.5 1.5 1.5

1 1 1
x(t)

x(t)

x(t)
0.5 0.5 0.5

0 0 0

−0.5 −0.5 −0.5


−4 −2 0 2 4 −4 −2 0 2 4 −4 −2 0 2 4
t t t

(a) Signal x(t) = u(t) (b) Signal x(t) = u(t − 2) (c) Signal x(t) = u(t + 3)

Slika 2.1

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

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

z
ylabel('x(t)')
grid on

Zadatak 2.2
ba er
Koristeći MATLAB funkciju stepfun nacrtati sljedeće kontinualne signale
v
a) x(t) = δ(t)
b) x(t) = δ(t − 2)
a
c) x(t) = δ(t + 1)
dn

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

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

Rješenje
Ra
up

clear all
close all
clc
a

t=−5:0.01:5;
% generisanje delta impulsa preko ugradjene funkcije stepfun()
rn

x=100*(stepfun(t,0)−stepfun(t,0.01));

figure(1)
plot(t,x)
te

axis([−5 5 −0.5 101])


title('x(t)=\delta(t)')
xlabel('t')
In

ylabel('x(t)')
grid on

©Copyright 2010 - Gogić Asmir


SIGNALI I SISTEMI 25

100 100 100

80 80 80

x(t) 60 60 60

x(t)

x(t)
40 40 40

20 20 20

0 0 0

−4 −2 0 2 4 −4 −2 0 2 4 −4 −2 0 2 4
t t t

(a) Signal x(t) = δ(t) (b) Signal x(t) = δ(t − 2) (c) Signal x(t) = δ(t + 1)

Slika 2.2

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

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

z
ylabel('x(t)')
grid on

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

Zadatak 2.3
re

Koristeći MATLAB funkcije nacrtati sljedeće kontinualne signale


ot

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

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


up

c) x(t) = e(σ+jω)t
d) x(t) = 2cos2 (10πt)
a

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


rn

Rješenje
te

clear all
close all
In

clc

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

figure(1)
plot(t,x)

©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

2 2
1

1 1
x(t)

x(t)

x(t)
0 0 0

−1 −1

−1
−2 −2

−4 −2 0 2 4 −4 −2 0 2 4 −4 −2 0 2 4

ija
t t t

(a) Signal x(t) = sin(2πt) (b) Signal x(t) = cos(10πt)+sin(2πt) (c) Signal x(t) = eσ+jωt

Slika 2.3

z
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)')
ba er
v
grid on

x1=exp((0.2+j*pi)*t);
a
x2=exp((−0.2+j*pi)*t);
x3=exp((0+j*pi)*t);
figure(3)
dn

plot(t,real(x1))
re

hold on
plot(t,imag(x1),'r')
hold on
ot

plot(t,real(x2),'−−m')
hold on
Ra

plot(t,real(x3),'−−k')
axis([−5 5 −2.5 2.5])
up

title('x(t)=e^{(\sigma+j\omega) t}')
xlabel('t')
ylabel('x(t)')
grid on
a

Zadatak 2.4
rn

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


te

a) x[n] = u[n]

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

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

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

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

©Copyright 2010 - Gogić Asmir


SIGNALI I SISTEMI 27

Rješenje

clear all
close all
clc

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

ija
1 1 1

z
x(n)

x(n)

x(n)
0 0 0

−1

−4 −2 0
n
2 4 ba er
−1

−4 −2 0
n
2 4
−1

−4 −2 0
n
2 4
v
(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
a
x=1.2*stepfun(n,−2);
figure(2)
dn

stem(n,x,'r','marker','.')
axis([−5 5 −0.5 1.5])
re

title('x[n]=1.2u[n+2])')
xlabel('n')
ylabel('x[n]')
ot

grid on
Ra
up

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

xlabel('n')
ylabel('x[n]')
rn

grid on
te

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

a) x(n) = δ(n)

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

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

©Copyright 2010 - Gogić Asmir


28 SIGNALI I SISTEMI

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

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

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

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

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

Rješenje

ija
clear all
close all
clc

z
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])')
ba er
v
xlabel('n')
ylabel('x[n]')
grid on
a
1 1 1
dn
re
x(n)

x(n)

x(n)

0 0 0
ot

−1 −1 −1
Ra

−4 −2 0 2 4 −4 −2 0 2 4 −4 −2 0 2 4
n n n
up

(a) Signal x(n) = δ(n) (b) Signal x(n) = 0.7δ(n − 2) (c) Signal x(n) = 1.3δ(n + 4)

Slika 2.5
a

x=0.7*(stepfun(n,2)−stepfun(n,3));
rn

figure(2)
stem(n,x,'r','marker','.')
axis([−5 5 −0.5 1.5])
title('x[n]=0.7\delta[n−2])')
te

xlabel('n')
ylabel('x[n]')
grid on
In

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

©Copyright 2010 - Gogić Asmir


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,'marker','.')
axis([−5 5 −0.5 1.5])
title('x[n]=sin(\pi n/2))')

ija
xlabel('n')
ylabel('x[n]')
grid on

z
2
1 1

ba er
x(n)

x(n)

x(n)
0 0 0

−1

−1 −1
v
−2

−4 −2 0 2 4 −4 −2 0 2 4 −4 −2 0 2 4
n n n

πn
 
(a) Signal x(n) = sin
(b) Signal x(n) = 0.8cos(8πn − 0.5) + (c) Signal x(n) = e(σ+jω)n
2 1.2sin(2πn)
a
Slika 2.6
dn
re

x=0.8*cos(0.8*pi*n−0.5)+sin(2*pi*n);
figure(2)
ot

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

xlabel('n')
up

ylabel('x[n]')
grid on

x1=exp((0.2+j*pi)*n);
a

x2=exp((−0.2+j*pi)*n);
rn

x3=exp((0+j*pi)*n);
figure(3)
stem(n,real(x1),'b','marker','.')
hold on
te

stem(n,imag(x1),'r','marker','.')
hold on
stem(n,real(x2),'m','marker','.')
In

hold on
stem(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

©Copyright 2010 - Gogić Asmir


30 SIGNALI I SISTEMI

Zadatak 2.6
Koristeć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 1Hz u vremenskom intervalu (0,1).

ija
Rješenje

clear all
close all

z
clc

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

% koristimo ugradjenu funkciju rectpuls()


x=rectpuls(t,tw);
ba er
v
figure(1)
plot(t,x)
axis([−5 5 −0.5 1.5])
title('x(t)=rect(t/t_w)')
a
xlabel('t')
ylabel('x(t)')
grid on
dn
re

% ili preko step signala


x=stepfun(t,−1)−stepfun(t,1);

figure(2)
ot

plot(t,x)
axis([−5 5 −0.5 1.5])
Ra

title('x(t)=u(t+1)−u(t−1)')
up

xlabel('t')
ylabel('x(t)')
grid on
a
rn
te
In

©Copyright 2010 - Gogić Asmir


SIGNALI I SISTEMI 31

1.5 1.5

1
1 1
x(t)

x(t)

x(t)
0.5 0.5 0

0 0
−1

−0.5 −0.5
−4 −2 0 2 4 −4 −2 0 2 4 −4 −2 0 2 4
t t t

t t
   
(c) Signal x(t) = u(t + 3)
(a) Signal x(t) = Π (b) Signal x(t) = Λ
tw tw

Slika 2.7

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

figure(3)
plot(t,x)

z
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 ba er


v
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))')
a
xlabel('t')
ylabel('x(t)')
grid on
dn
re

% Gaussov impuls − sinusni impulsi modulisani Gaussovom funkcijom


ot

fc=1; % centralna frekvencija


bw=1/3; % frekventni opseg
Ra

x=gauspuls(t,fc,bw);
up

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

grid on
rn

x=square(pi*t);
te

figure(6)
plot(t,x)
axis([−5 5 −1.5 1.5])
In

title('Povorka pravougaonih impulsa')


xlabel('t')
ylabel('x(t)')
grid on

©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,1);
figure(8)
plot(t,x)
axis([−5 5 −1.5 1.5])
title('Chrip signal')
xlabel('t')

ija
ylabel('x(t)')
grid on

1 1 1

z
x(t)

x(t)

x(t)
0 0 0

−1 −1 ba er −1
v
−4 −2 0 2 4 −4 −2 0 2 4 −4 −2 0 2 4
t t t

(a) Povorka pravougaonih impulsa (b) Povorka trougaonih impulsa (c) Chrip signal

Slika 2.8
a
dn
re
ot
Ra
up
a
rn
te
In

©Copyright 2010 - Gogić Asmir


Laboratorijska vježba 3

Zadatak 3.1

ija
Za sisteme opisane jednačinama

a) y(t) = 5x(t)
b) y(t) = 4tx2 (t)

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

d) y(t) =
4
x2 (t)
e) y(t) = 10x(t)2in(2πt)
ba er
v
dx(t)
f) y(t) =
dt
a
realizovati testove za provjeru linearnosti, vremenske invarijantnosti i stabilnosti koristeći MATLAB/Si-
mulink (MATLAB blockset). Dodatno realizovati date testove koristeći MATLAB toolbox.
dn

Rješenje
re

Kao što smo prije rekli Simulink predstavlja vizuelni alat pomoću kojeg je moguće analizirati i simu-
lirati kontinualne i diskretne sisteme. Simulink startamo kucanjem simulink u komandnom prozoru
ot

MATLAB-a ili klikom na ikonu u toolbaru meniju MATLAB radnog okruženja kao na slici 3.1.
Ra
up
a
rn
te

Slika 3.1
In

©Copyright 2010 - Gogić Asmir


34 SIGNALI I SISTEMI

Nakon pokretanja Simulinka, otvorit će se Simulink Library Browser (slika 3.2) unutar koga se
nalaze blokovi koji su asocirani sa odgovarajućim matematičkim modelima kontinualnih ili diskretnih
sistema. Novi Simulink model kreiramo sa F ile ⇒ N ew ⇒ M odel ili klikom na ikonu u toolbar traci
(crvenom bojom slika 3.2). Modeli kontinualnih i diskretnih sistema označeni su jedinstvenim imenom
i 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 podlisti
sadrži blokove : Radnom number, Signal generator, Sine Wave, Step itd. Blok iz podliste prebacujemo
u dokument tako što ga selektujemo sa lijevim klikom i držimo dok ga prenosimo na željeno mjesto u
Simulink model. Blokove je moguće pretraživati prema njihovom imenu (narandžastom bojom slika
3.2) stime što je uvijek potrebno prvo pozicionirati se na početak izvorne liste tj kliknuti na Simulink
prije pretrage.

z ija
ba er
v
a
dn
re
ot
Ra
up

Slika 3.2

a) Sistem y(t) = 5x(t) predstavlja idealno pojačalo sa pojačanjem 5. Prvo ćemo dizajnirati test
a

za provjeru linearnosti sistema. Za sistem y(t) = f (x(t)) smo rekli da je linearan ako sistem
rn

zadovoljava osobine aditivnosti i homogenosti. Drugačije rečeno, sistem je linearan ako je odziv
sistema na linearnu kombinaciju dva proizvoljna signala jednak linearnoj kombinaciji odziva ta dva
signala. Matematički zapisan uslov linearnosti je
te

T {αx1 (t) + βx2 (t)} = αT {x1 (t)} + βT {x2 (t)}


In

Uzet ćemo da su konstante α = 2 i β = 3 a modelovat ćemo ih sa blokom Gain kao i sam sistem. Za
testne 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. Realizovani
test za linearnost prikazan je na slici 3.3.

©Copyright 2010 - Gogić Asmir


SIGNALI I SISTEMI 35

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

ija
Parametre pojedinih blokova moguće je mjenjati u postavkama koje se pojave nakon dvostrukog
klika na željenih blok. Npr želimo da promjenimo pojačanje blok Gain sa 1 na 3. To ćemo uraditi
tako što u polje Gain unesemo vrijednost 3 i potvrdimo sa Ok. Blokovi na slici 3.3 imaju inicijalne
postavke osim blokova Gain tj njihovog pojačanja. Blokovi To Workspace i Clock su opcioni a služe

z
isključivo za eksportovanje rezultata simulacije u radno okruženje. Za ispravano eksportovanje
razultata simulacije potrebno je u postavkama blokova To Workspace i Clock promjeniti Save

ba er
format u Array. Nakon realizacije sistema spremiti model pod imenom SSLab01a1.mdl. Zadnji
parametar koji trebamo odrediti je vrijeme trajanja simulacije. Vrijednost trajanja simulacije ćemo
uzeti da je 10 sekundi a unosimo ga u polje prikazano na slici 3.4 (crvenom bojom) ili kroz meni
Simulation ⇒ Conf iguration P arameters ⇒ Stop time 10. Pokretanje simulacije izvodimo
v
kroz meni sa Simulation ⇒ Start (kombinacija tipki ctrl+t) ili kroz toolbar (plavom bojom
slika 3.4).
a
dn
re
ot

Slika 3.4
Ra
up

150 150
a

100 100
rn
y(t)

y(t)

50 50
te
In

0 0
0 2 4 6 8 10 0 2 4 6 8 10
t t
(a) Linearna kombinacija odziva (b) Odziv na linearnu kombinaciju

Slika 3.5

©Copyright 2010 - Gogić Asmir


36 SIGNALI I SISTEMI

Nakon simulacije odzive sistema možemo vidjeti sa dvostrukim klikom na blok Scope. Korisna
komanda je autoscale koja vrši pravilno skaliranje grafika (plotova) a dostupna je iz toolbar
trake Scope prozora. Broj simultanih signala koje želimo prikazivati u bloku Scope određujemo sa
parametrom Number of axes u postavkama bloka Scope kao P arameters ⇒ N umber of axes i
za naš slučaj je to 2. Odzive sistema takođe možemo prikazati pozivom komande plot pošto smo
eksportovali 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šnjelom

ija
odzivu. Vrijednost kašnjenja u oba slučaja mora biti ista kao i oblik ulaznog signala. Vrijednost
kaš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 ćemo
njegove postavke a među kojima je i Time delay parametar koji određuje iznos kašnjenja i u našem
slučaju je 1. Test za vremensku invarijantnost prikazan je na slici 3.6.

ba er
z
v
a
dn
re

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


ot

8 8
Ra
up

6 6
y(t)

y(t)

4 4
a
rn

2 2
te

0 0
0 2 4 6 8 10 0 2 4 6 8 10
t t
In

(a) Odziv sistema na zakašnjeli ulaz (b) Zakašnjeli odziv sistema

Slika 3.7

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

©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 sistema
trebamo provjeriti da li ograničen ulaz uzrokuje ograničen izlaz. Voditi računa da izlaz mora biti
ograničen i kada t → ∞. Test za stabilnost sistema prikazan je na slici 3.8.

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

z
6

ba er
y(t)

4
v
2

0
a
0 2 4 6 8 10
t
dn

Slika 3.9: Odziv sistema na ograničen ulaz


re

Ako promjenimo vrijeme simulacije na 100 sekundi šta možemo uočiti? Da li je dati sistem stabilan?
ot

Ako bi zamjenili tip ulaznog signala sa Ramp šta možemo primjetiti?


Ra

b) Modeli testova za za provjeru linearnosti, vremenske invarijantnosti i stabilnosti sistema y(t) =


up

4tx2 (t) su iste kao i za prethodni sistem. Jedina razlika je u samoj realizaciji sistema koja zahtjeva
upotrebu Dot Product bloka sa inicijalnim postavkama.
a
rn
te
In

©Copyright 2010 - Gogić Asmir


38 SIGNALI I SISTEMI

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

ba er
z
v
a
dn
re
ot

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


Ra
up
a
rn
te
In

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

©Copyright 2010 - Gogić Asmir


SIGNALI I SISTEMI 39

·104 ·104
1 4

0.8
3

0.6
y(t)

y(t)
2
0.4

1
0.2

0 0
0 2 4 6 8 10 0 2 4 6 8 10
t t

ija
(a) Linearna kombinacija odziva (b) Odziv na linearnu kombinaciju

Slika 3.13

z
30 30

20 ba er 20
v
y(t)

y(t)

10 10
a
0 0
dn

0 2 4 6 8 10 0 2 4 6 8 10
re

t t
(a) Odziv sistema na zakašnjeli ulaz (b) Zakašnjeli odziv sistema
ot

Slika 3.14
Ra
up

30
a

20
rn
y(t)
te

10
In

0
0 2 4 6 8 10
t

Slika 3.15: Odziv sistema na ograničen ulaz

©Copyright 2010 - Gogić Asmir


40 SIGNALI I SISTEMI

z ija
ba er
v
a
dn
re
ot
Ra
up
a
rn
te
In

©Copyright 2010 - Gogić Asmir


Laboratorijska vježba 4

Uvod

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

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

a) Sinusni signal

• amplitude 1.5V, frekvencije 200Hz


ba er
v
• amplitude 1.2V, frekvencije 50Hz
b) Povorku pravougaonih impulsa
a
• amplitude 1V, frekvencije 70Hz
• amplitude 2V, frekvencije 30Hz
dn
re

c) Povorku trougaonih impulsa


• amplitude 2.2V, frekvencije 80Hz
ot

• amplitude 2.5V, frekvencije 8Hz


Ra
up

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

©Copyright 2010 - Gogić Asmir


42 SIGNALI I SISTEMI

OSCILOSKOP

SIGNAL GENERATOR

RAČUNAR

LINE IN

ija
Slika 4.1

z
Oprema

ba er
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. Opšte karakteristike osciloskopa 3502C su:
v
1. Vertikalni otklon
• Faktor otklona 5mV do 20V/Div na 12 opsega u 1-2-5 koraka sa finim tuniranjem
a
• Propusni opseg: DC - 20MHz (-3dB)
• Vrijeme porasta ≤ 17.5 ns
dn
re

• Preskok ≤ 8%
• Ulazna impedansa šentovana za 20pF ± 3pF.
ot

• Modovi rada CH-A, CH-B, DUAL i ADD


• Frekvencija odsjecanja ≈ 200kHz
Ra

• Odvajanje kanala 60dB na 1kHz


up

2. Vremenska baza
• Okidanje automatsko ili vanjskim izvorom
a

• Sweep Time 0.2µs - 0.5s/Div


• Skaliranje 5x na svim opsezima
rn

3. Okidanje
te

• Izvor INT, CH-B, LINE ili EXT


• Pozitivna ili negativna ivica
In

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

©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]““““““““

z ija
ba er
v
a
dn
re

Slika 4.2
ot
Ra

1. Terminal za vertikalni ulaz kanal A


up

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

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


a

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


rn

5. Dodatni atenuator za podešavanje osjetljivosti kanal A

6. Regulator za podešavanje vertikalne ose kanal A


te

7. Regulator za podešavanje horizontalne ose kanal A

8. Dodatno pojačanje – sweep time x5


In

9. Horizontalni regulator za sweep time

10. Dodatni regulator za sweep time

11. Eksterno okidanje

©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

ija
21. Regulator za intenzitet
22. Trace(trag) regulator
23. Regulator za podešavanje vertikalne ose kanal B

z
24. Prekidač za invertovanje polariteta kanal B

ba er
25. Regulator za podešavanje osjetljivosti V/Div kanal B
26. Dodatni atenuator za podešavanje osjetljivosti kanal B
v
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
a
SONDA OP20 (za osciloskop)
dn
re

a) Ulazni kapacitet osciloskopa


ot

• 15pF
Ra

• 40pF
up

b) Atenuacija
• 1:1
• 1:10
a

c) Ulazni kapacitet sonde


rn

• 72.5pF ±10% Slika 4.3: Sonda OP20


• 17.5pF ±1%
te

d) Unutrašnji otpor
In

• 237Ω ± 10
• 9MΩ ± 1
e) Propusni opseg
• 15MHz (±3dB)

©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 je
omoguć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 10kHz

ija
sa korakom 10x. Fino tuniranje frekvencije moguće je preko glavnog regulatora sa korakom 1/100
maksimuma podešenog opsega.

Opis MATLAB funkcija neophodnih za izvođenje vježbe

z
analoginput() Kreira objekta tipa analog input asociranog sa istoimenim adapterom.

addchannel() ba er
Funkcija uzima jedan argumenat koji predstavlja driver za sound adap-
ter. Adapter za našu vježbu je ’winsound’.
Funkcija prima dva argumenta: OBJ i HWCH. Prvi argumenat je adap-
ter kreiran sa funkcijom analoginput() a drugi broj kanala koji želimo
v
koristit 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šavanje
a
parametara adaptera specificiranog sa handlom H. Za ovu vježbu bitna
je osobina adaptera ’SampleRate’ koja predstavlja frekvenciju uzorko-
dn

vanja i osobina ’SamplesPerTrigger’ koja predstavlja broj generisanih


re

uzoraka po pozivu getdata. Frekvencija uzorkovanja i broj uzoraka po


pozivu getdata funkcije je 8000.
ot

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

Funkcija uzima dva parametra, objekat i njegovu vrijednost a vraća


up

getdata()
specificirani broj podataka definisan sa vrijednošću iz objekta.

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


a
rn

duration = 1;
% duzina trajanja bloka podataka
Fs = 8000;
% frekvencija uzorkovanja signala
te

A=7;
t=0:1/Fs:(1−1/Fs);
w=0:1:(Fs−1);
In

% 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

©Copyright 2010 - Gogić Asmir


46 SIGNALI I SISTEMI

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;

ija
else
a=1;
end
n=2;
while(n<size(data,1))
if(data(n)>0)

z
if(a==1)
a=2;
N=N+1;

end
n=n+5;

elseif(data(n)<0)
if(a==2)
ba er
v
a=1;
N=N+1;
n=n+5;
end
end
a
n=n+1;
end
plot(t',data)
dn

xlabel('t(s)')
re

ylabel('x(t)')
title(sprintf('f = %.1f Hz',(N−1)/2));
% prikaz spektra signala
mag = spektar(data,Fs);
ot

subplot(2,1,2)
plot(w(1:500),mag);
Ra

xlabel('f(Hz)')
up

ylabel('|X(f)|_{dBm}')
pause(0.05);
stop(AI);
end
disp('−−> Brisanje objekta Analog Input')
delete(AI);
a
rn

Spektar signala moguće je odrediti pozivom funkcije spektar.


te

function mag = spektar(data,fs)


xfft = abs(fft(data));
% konverzija u dBm
In

mag = 20*log10(xfft);
% odsjecanje nepotrebnih podataka
mag=mag(1:500);

©Copyright 2010 - Gogić Asmir


SIGNALI I SISTEMI 47

2 80

1 60

|X(f )|
40
x(t)

20
−1
0

−2
0 5 · 10−31 · 10−21.5 · 10−22 · 10−22.5 · 10−23 · 10−2 0 100 200 300 400 500
t(s) f (Hz)

(a) Talasni oblik signala x(t) (b) Amplitudni spektar signala x(t)

ija
Slika 4.4: Sinusni signal f = 200Hz

z
80

ba er
1
60
0.5
|X(f )|

40
x(t)

0
v
−0.5 20

−1 0
a
0 2 · 10−2 4 · 10−2 6 · 10−2 8 · 10−2 0.1 0 100 200 300 400 500
t(s) f (Hz)
dn
re

(a) Talasni oblik signala x(t) (b) Amplitudni spektar signala x(t)

Slika 4.5: Sinusni signal f = 50Hz


ot
Ra
up

1
60
0.5
a

40
|X(f )|
x(t)

0
rn

20
−0.5
te

−1 0

0 2 · 10−3 4 · 10−3 6 · 10−3 8 · 10−3 1 · 10−2 0 100 200 300 400 500
In

t(s) f (Hz)

(a) Talasni oblik signala x(t) (b) Amplitudni spektar signala x(t)

Slika 4.6: Povorka trougaonih impulsa f = 70Hz

©Copyright 2010 - Gogić Asmir


48 SIGNALI I SISTEMI

80
2
60
1
40

|X(f )|
x(t)

0
20
−1

0
−2

0 2 · 10−3 4 · 10−3 6 · 10−3 8 · 10−3 1 · 10−2 0 100 200 300 400 500
t(s) f (Hz)

(a) Talasni oblik signala x(t) (b) Amplitudni spektar signala x(t)

ija
Slika 4.7: Povorka trougaonih impulsa f = 730Hz

z
3
80
2

1
ba er 60
|X(f )|
x(t)

v
0
40
−1

−2 20
a
0 2 · 10−3 4 · 10−3 6 · 10−3 8 · 10−3 1 · 10−2 0 100 200 300 400 500
t(s) f (Hz)
dn

(a) Talasni oblik signala x(t) (b) Amplitudni spektar signala x(t)
re

Slika 4.8: Povorka pravougaonih impulsa f = 80Hz


ot
Ra
up

80
2
60
a
|X(f )|
x(t)

0 40
rn

20
−2
te

0
0 2 · 10−2 4 · 10−2 6 · 10−2 8 · 10−2 0.1 0 100 200 300 400 500
In

t(s) f (Hz)

(a) Talasni oblik signala x(t) (b) Amplitudni spektar signala x(t)

Slika 4.9: Povorka pravougaonih impulsa f = 80Hz

©Copyright 2010 - Gogić Asmir


Laboratorijska vježba 5

Zadatak 5.1

ija
Nacrtati sljedeće signale

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


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

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

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

a) x(t − 2)
v
b) x(t + 3)
c) x(−t)
a
d) x(t/2)
dn

e) x(1 − t/2)
re

Dati odgovoren na sljedeća pitanja


ot

a) Da li neka od navedenih operacija transformacije nezavisno promjenljive ima praktičnu primjenu?


Ra

Navesti par primjera u stvarnom svijetu.


up

b) Koje od navedenih operaciju predstavljaju apsurd u realnom svijetu?


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

Rješenje
rn

clear all
te

close all
clc
In

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

©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

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

z
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')
ba er
v
ylabel('x(t/2)')
grid on

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

ylabel('x(1−t/2)')
re

grid on
ot

2 2 2
Ra
up
x(t − 2)

x(t + 3)
x(t)

1 1 1

0 0 0
a

−4 −2 0 2 4 −4 −2 0 2 4 −4 −2 0 2 4
t t t
rn

(a) (b) (c)

Slika 5.1
te
In

©Copyright 2010 - Gogić Asmir


SIGNALI I SISTEMI 51

2 2 2

x(1 − t/2)
x(t/2)
x(−t)
1 1 1

0 0 0

−4 −2 0 2 4 −4 −2 0 2 4 −4 −2 0 2 4
t t t

(a) (b) (c)

Slika 5.2

Zadatak 5.2

ija
Koristeć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žini
vektora y(t). Dati odgovoren na sljedeća pitanja

z
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?

ba er
c) Za određivanje odziva sistema pomoću konvolucije neophodno je poznavati jedan podatak. Koji je
to podatak?
v
Rješenje
a
clear all
close all
clc
dn
re

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);
ot

y=conv(x,h);
Ra

subplot(3,1,1)
plot(t,x)
up

xlabel('t')
ylabel('x(t)')
axis([−4 4 0 max(x)*1.2])

subplot(3,1,2)
a

plot(t,h,'r')
xlabel('t')
rn

ylabel('h(t)')
axis([−4 4 0 max(h)*1.2])

y=y(501:(size(y,2)−300))*0.01;
te

subplot(3,1,3)
plot(t,y,'k')
axis([−6 6 0 max(y)*1.3])
In

xlabel('t')
ylabel('y(t)')

©Copyright 2010 - Gogić Asmir


52 SIGNALI I SISTEMI

1.5 1.5 1.5

1 1 1

h(t)
x(t)

y(t)
0.5 0.5 0.5

0 0 0

−0.5 −0.5 −0.5


−3 −2 −1 0 1 2 3 −3 −2 −1 0 1 2 3 −3 −2 −1 0 1 2 3
t t t

(a) (b) (c)

Slika 5.3

Zadatak 5.3

ija
Koristeći MATLAB odrediti konvoluciju sljedećih signala

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

z
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 ba er


v
a) Konvolucija dva kontinualna signala konačnog trajanja je signal kakav po trajanju? Šta ako je
jedan 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-
a
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 situacija
dn

sa pomjerenim delta impulsom?


re

Rješenje
ot
Ra

clear all
up

close all
clc

% vremenska granulacija
tstep=0.01;
a

% korak simulacije
N=10;
rn

% vremenska pauza (sec) za simulaciju


tdelay=0.2;
t=−6:0.01:6;
te

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

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;

©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 all
clf(fh)
subplot(4,1,1)
plot(t,x)
xlabel('t')

ija
ylabel('x(t)')
axis([−6 6 0 xmax*1.2])

subplot(4,1,2)
plot(t,h,'r')
xlabel('t')

z
ylabel('h(t)')
axis([−6 6 0 hmax*1.2])

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

subplot(4,1,4)
a
yp=[yr(1:(200+n*N)) zeros(1,(size(yr,2)−(200+N*n)))];
plot(t,yp)
axis([−6 6 0 ymax*1.3])
dn

xlabel('t')
re

ylabel('y(t)')
pause(tdelay)
hr=[zeros(1,N) hr(1:(size(hr,2))−N)];
n=n+1;
ot

end
Ra
up

1.5 1.5

2
1 1
h(t)
x(t)

y(t)

0.5 0.5 1
a

0 0
rn

−0.5 −0.5
−1 0 1 2 3 4 5 −1 0 1 2 3 4 5 −1 0 1 2 3 4 5
t t t
te

(a) (b) (c)

Slika 5.4: Konvolucija za slučaj a)


In

©Copyright 2010 - Gogić Asmir


54 SIGNALI I SISTEMI

1.5 3

2
1
2

h(t)
x(t)

y(t)
1 0.5
1

0
0 0

−0.5
−1 0 1 2 3 4 5 −1 0 1 2 3 4 5 −1 0 1 2 3 4 5
t t t

(a) (b) (c)

Slika 5.5: Konvolucija za slučaj b)

1.5 1.5

ija
2
1 1
h(t)
x(t)

y(t)
1 0.5 0.5

0 0

z
0

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

(a)
t

ba er
(b)
t

Slika 5.6: Konvolucija za slučaj c)


(c)
t
v
clear all
close all
a
clc

% vremenska granulacija
dn

tstep=0.01;
re

% korak simulacije
N=10;
% vremenska pauza (sec) za simulaciju
ot

tdelay=0.2;
t=−4:0.01:4;
Ra

h=(stepfun(t,0)−stepfun(t,2));
up

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);
a

tsize=size(t,2)/2;
yr=y((tsize):size(y,2))*tstep;
rn

yr=yr(1:(size(yr,2)−tsize+1));

clf(fh)
subplot(3,1,1)
te

plot(t,x)
xlabel('t')
ylabel('x(t)')
In

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

©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

z ija
ba er
v
a
dn
re
ot
Ra
up
a
rn
te
In

©Copyright 2010 - Gogić Asmir


56 SIGNALI I SISTEMI

z ija
ba er
v
a
dn
re
ot
Ra
up
a
rn
te
In

©Copyright 2010 - Gogić Asmir


Laboratorijska vježba 6

Zadatak 6.1

ija
Odrediti izlaz sistema opisanog diferencijalnom jednačinom

d2 y(t) dy(t) dx(t)


+3 + 2y(t) =
dt2 dt dt
ako su početni uslovi y 0 (0) = 1 i y(0) = 0 a ulaz

z
a) x(t) = t2 u(t)
b) x(t) = u(t)
c) x(t) = sin(t)u(t)
ba er
v
d) x(t) = t2 + 5t + 3u(t)
e) x(t) = 10e−3t u(t)
a
Dati odgovore na sljedeća pitanja:
dn
re

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

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

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


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

Rješenje
a

Za rješavanje date diferencijalne jednačine koristit ćemo simoblički račun MATLAB-a i ugrađenu funk-
rn

ciju dsolve.
te

clear all
close all
clc
In

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 dsolve
x = tt.^2.*stepfun(tt,0);

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

ija
10 0.6
0.4
8 0.4

0.2
0.2
6
y(t)

y(t)

y(t)
0 0
4

z
−0.2
−0.2
2
−0.4
−0.4
0
0 2 4

(a)
t
6 8 10
−0.6
0 2

ba er
4

(b)
t
6 8 10 0 2 4

(c)
t
6 8 10
v
Slika 6.1

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

close all
re

clc

tstep=0.2;
ot

t=0:tstep:10;
Ra

% koeficijenti na lijevoj strani diferencijalne jednacine


a=[1 3 2];
up

% koeficijenti na desnoj strani diferencijalne jednacine


b=[1 0];
x = t.^2.*stepfun(t,0);

% definisanje sistema
a

sys=tf(b,a);
y = lsim(sys,x,t);
rn

% za starije verzije MATLAB−a


% y = lsim(b,a,x,t);

subplot(2,1,1)
te

plot(t,x);
xlabel('t')
ylabel('x(t)')
In

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

©Copyright 2010 - Gogić Asmir


SIGNALI I SISTEMI 59

Zadatak 6.2
Odrediti impulsni odziv sistema opisanih diferencijalnim jednačinama

dy(t)
a) + 2y(t) = x(t)
dt
d2 y(t) dy(t) dx(t)
b) +3 + 2y(t) =
dt2 dt dt
d2 y(t) dy(t)
c) +5 + 6y(t) = 5x(t)
dt2 dt

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)

ija
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? Da
li možemo na neki drugi način?
c) Za sve sisteme napraviti MATLAB/Simulink model i odrediti impulsni odziv.

z
Rješenje

ba er
Jedan 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.
v
clear all
close all
clc
a
tstep=0.01;
t=−2:tstep:4;
dn
re

% koeficijenti na lijevoj strani diferencijalne jednacine


a=[1 2];
% koeficijenti na desnoj strani diferencijalne jednacine
ot

b=[1];

% mjenjati sirinu pravougaonog impulsa tw kako bi se priblizili delta impulsu


Ra

tw=0.01;
up

% aproksimirani delta impuls


x = (stepfun(t,0)−stepfun(t,tw))/tw;

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

subplot(2,1,1)
rn

plot(t,x);
xlabel('t')
ylabel('x(t)')
te

title('Aproksimirani delta impuls')


subplot(2,1,2)
plot(t,y,'r');
In

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 preko
ugrađene funkcije impulse.

©Copyright 2010 - Gogić Asmir


60 SIGNALI I SISTEMI

y(t) 100 1 1

y(t)

y(t)
50 0.5 0.5

0 0 0

−2 −1 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4
t t t

(a) Ulazni signal - aproksimacija (b) Impulsni odziv preko aproksima- (c) Impulsni odziv sa impulse
cije

Slika 6.2

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

z
Da bi napravili MATLAB/Simulink model potrebna nam je eksplicitna veza između ulaza i izlaza.

ba er
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 kojeg
je reda diferencijalna jednačina. Za sistem a) imamo
v
dy(t)
+ 2y(t) = x(t)
dt
Nakon intergriranja
a
Z t
y(t) = x(t) − 2 y(τ )dτ
dn

0
re

Na slici 6.3 imamo realizaciju sistema. Step time step blokova su 0 i 0.1.
ot
Ra
up
a

Slika 6.3: MATLAB/Simulink model za sistem a)


rn
te
In

©Copyright 2010 - Gogić Asmir


SIGNALI I SISTEMI 61

Slika 6.4: MATLAB/Simulink model za sistem b)

z ija
ba er
v
a
dn
re
ot
Ra
up
a
rn
te
In

©Copyright 2010 - Gogić Asmir


62 SIGNALI I SISTEMI

z ija
ba er
v
a
dn
re
ot
Ra
up
a
rn
te
In

©Copyright 2010 - Gogić Asmir


Laboratorijska vježba 7

Zadatak 7.1

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

a) x(t) = u(t)
b) x(t) = e−t u(t)

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

ba er
d) x(t) = t(u(t) − u(t − 1) + (2 − t)(u(t − 1) − u(t − 2))
e) x(t) = te−t u(t)
v
f) x(t) = 0.5t sin(2πt)

Dati odgovor na sljedeća pitanja


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

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


re

c) Objasniti pojam oblast konvergencije Laplaceove transformacije.


ot

d) Na kojoj ideji se zasniva Laplaceova transformacija?


Ra

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


up

Rješenje
a

clear all
close all
rn

clc

% simbolicke varijable t i s
syms t s
te

x=sym('Heaviside(t)');
%x=sym('Heaviside(t)−Heaviside(t−2)');
%x=sym('exp(−t)*Heaviside(t)');
In

%x=sym('t*exp(−t)*Heaviside(t)');

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

tt=−4:0.01:4;

©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 Re{s} > 0, uzmimo da je sigma=0.5
sigma=0.5
omega=−5:0.05:5;
ss=sigma+j*omega;
for i=1:size(ss,2)
s=ss(i);
X_val(i)=eval(X);

ija
end

figure(1)
subplot(2,1,1)
plot(tt,x_val);
xlabel('t')

z
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')
ba er
v
% X(s) cemo predstaviti u 3D ravni uz napomenu da Re{s}>0
sigma=0:0.05:5;
omega=sigma;
X_val=0;
a
for m=1:size(sigma,2)
for n=1:size(omega,2)
s=sigma(m)+j*omega(n);
dn

X_val(m,n)=eval(X);
re

end
end
figure(2)
mesh(sigma,omega,abs(X_val))
ot

xlabel('Re(s)')
ylabel('Im(s)')
Ra

zlabel('|X(s)|')
up

title('Amplituda funkcije X(s)')

figure(3)
mesh(sigma,omega,angle(X_val))
xlabel('Re(s)')
ylabel('Im(s)')
a

zlabel('arg(X(s))')
title('Faza funkcije X(s)')
rn
te
In

©Copyright 2010 - Gogić Asmir


SIGNALI I SISTEMI 65

1.5
1

1 0.5

Im(X(s))
x(t)

0.5 0

−0.5
0

−1
−0.5 0 0.5 1 1.5 2
−4 −2 0 2 4
t Re(X(s))
(a) (b)

ija
Slika 7.1: Laplaceova transformacija signala a)

Zadatak 7.2

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

a) X(s) =

b) X(s) =
1
s+1
ROC: Re{s} ≥ −1

1
ROC: Re{s} ≥ −3
ba er
v
s2 + 3s + 2
sest
c) X(s) = ROC: Re{s} ≥ 0
s2+1
a
s+1
d) X(s) = ROC: Re{s} ≥ 0
s
dn
re

a zatim nacrtati dobijene signale.


ot

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

b) Šta je to svojstvena funkcija sistema?


up

Rješenje
a

clear all
rn

close all
clc

syms t s
te

X=sym('1/(s+1)');

% inverzna Laplaceova transformacija


In

x=ilaplace(X);
pretty(x)

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

©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 Re{s} > −1, uzmimo da je sigma=0.5


sigma=0.5
omega=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);

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

z
ylabel('Im(X(s))')
title('Signal X(s) − frekventni(s) domen')

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

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

X_val(m,n)=eval(X);
re

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

end
end
Ra

end
up

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

title('Amplituda funkcije X(s)')


rn

figure(3)
mesh(sigma,omega,angle(X_val))
xlabel('Re(s)')
te

ylabel('Im(s)')
zlabel('arg(X(s))')
title('Faza funkcije X(s)')
In

©Copyright 2010 - Gogić Asmir


SIGNALI I SISTEMI 67

Zadatak 7.3
Za 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 je

ija
stabilan za sve signale? Objasniti.

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

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

ba er
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?
v
k) Šta kauzalnost sistema obezbjeđuje? Da li su nam korisni akauzalni sistemi? Navesti par primjera
kauzalnih i akauzalnih sistema u prirodi.

Poznato je h1 (t) = te−t u(t), h1 (t) = e−2t u(t) i h3 (t) = e−t u(t − 2).
a
h1 (t) h2 (t)
dn
re

+
ot

x(t) y(t)
Ra
up

h3 (t)

Slika 7.2: Kontinualni sistem.


a

Rješenje
rn

clear all
te

close all
clc
In

% ukupno vrijeme simulacije


tstop=10;
syms t s
h1=sym('t*exp(−t)*Heaviside(t)');
h2=sym('exp(−2*t)*Heaviside(t)');
h3=sym('exp(−t)*Heaviside(t−2)');

©Copyright 2010 - Gogić Asmir


68 SIGNALI I SISTEMI

% Laplaceova transformacija impulsnih odziva


H1=laplace(h1);
pretty(h1)
H2=laplace(h2);
pretty(h2)
H3=laplace(h3);
pretty(h3)

% prenosna funkcija cijelog sistema


H=H1*H2+H3;
pretty(H)

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

ija
% impulsni odziv sistema
h=ilaplace(H);

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

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

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

ba er
% ulazni signal u sistem (step signal) − t domen
v
x=stepfun(tt,1);

% odziv sistema
y=conv(x,h_val)*0.01;
a
y_val=0;
for i=1:size(tt,2)
dn

t=tt(i);
re

y_val(i)=eval(ys);
if (isnan(y_val(i))==1)
y_val(i)=h_val(i−1);
end
ot

end
Ra

figure(1)
up

subplot(4,1,1)
plot(tt,h_val,'r');
xlabel('t')
ylabel('h(t)')
title('Impulsni odziv cjelokupnog sistema')
subplot(4,1,2)
a

plot(tt,x);
xlabel('t')
rn

ylabel('x(t)')
title('Ulaz sistema')
subplot(4,1,3)
te

t=linspace(0,tstop*2,size(y,2));
plot(t,y,'k');
xlabel('t')
ylabel('y(t)')
In

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

©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?

1.5

0.4
1

h(t)
x(t)

0.5 0.2

0
0

ija
−0.5
0 2 4 6 8 10 0 2 4 6 8 10
t t
(a) (b)

z
Slika 7.3

0.8 ba er 1

0.8
v
0.6 0.6
y(t)

y(t)

0.4 0.4

0.2 0.2
a
0 0
dn

−0.2 −0.2
re

0 5 10 15 20 0 2 4 6 8 10
t t
ot

(a) (b)
Ra

Slika 7.4
up

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 predstavlja
prenosnu funkciju sistema u s domenu. U postavkama bloka Transfer Fcn u polje Numerator co-
a

efficient unosimo vektor čiji su elementi koeficijenti polinoma u brojiocu prenosne funkcije, a u polje
rn

Denumerator coefficient unosimo vektor čiji su elementi koeficijenti polinoma u imeniocu prenosne
funkcije. 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 bloksetu
te

možemo provjeriti tako što ćemo pokrenu simulaciju u toolbox-u pa simulaciju u bloksetu. Nakon toga
u MATLAB komandnom prozoru pozvati sljedeće naredbe
In

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

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

©Copyright 2010 - Gogić Asmir


70 SIGNALI I SISTEMI

Slika 7.5

Zadatak 7.4

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

1
a) X(s) = ROC: Re{s} ≥ −1
(s + 1)(s + 2)

z
1
b) X(s) = ROC: −2 ≥ Re{s} ≤ 1
(s − 1)(s + 2)

c) X(s) =
2
s+3
2
ROC: Re{s} ≥ −3

ROC: Re{s} ≥ 3
ba er
v
d) X(s) =
s−3

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


a
b) Da li oblast konvergencije sadrži polove prenosne funkcije?
c) Polovi stabilnog i kauzalnog sistema leže u kojem djelu s ravni?
dn
re
ot
Ra
up
a
rn
te
In

©Copyright 2010 - Gogić Asmir


Laboratorijska vježba 8

Zadatak 8.1

ija
Neka je dat signal

X
x(t) = u(t − nT0 ) − u(t − 1 − nT0 )
n=−∞
gdje je T0 = 2s. Dati odgovore na sljedeća pitanja

z
a) Koji tip signala možemo predstaviti preko Fourierovih redova?

ba er
b) Koje uslove mora zadovoljavati signal x(t) 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.
v
e) Amplitudni i fazni spektar su kakve funkcije?
f) Nacrtati signal x(t).
a
g) Signal x(t) spada u koju grupu signala?
h) Odrediti analitički izraz za koeficijente Fourierovog reda u eksponencijalnom obliku.
dn
re

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šava
ot

sa porastom perioda T0 ? Demonstrirati.


Ra

Rješenje
up

clear all
close all
clc
a
rn

k=−15:1:15;
ck=exp(−j*k*pi/2).*sin(k*pi/2)./(k*pi);
ck(16)=0.5;
subplot(2,1,1)
te

stem(k,abs(ck),'marker','.');
xlabel('k\omega_0')
ylabel('|c_k|')
In

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

©Copyright 2010 - Gogić Asmir


72 SIGNALI I SISTEMI

0.6 4

2
0.4

arg(ck )
abs(ck )

0.2
−2

0 −4
−15 −10 −5 0 5 10 15 −15 −10 −5 0 5 10 15
k k
(a) Amplitudni spektar (b) Fazni spektar

ija
Slika 8.1

Zadatak 8.2
Aproksimirati signal x(t) iz prethodnog zadatka konačnim Fourierovim redom. Dati odgovore na

z
sljedeća pitanja

ba er
a) Šta predstavlja Gibbsov fenomen? Koje su posljedice datog fenomena?
b) Za koju talasni oblik signala se Gibbsov fenomen veže?
v
c) Aproksimirati signal

X
x(t) = (t − nT0 )(u(t − nT0 ) − u(t − 1 − nT0 ))
a
n=−∞

konačnim Fourierovim redom. Da li primjetan Gibbsov fenomen?


dn
re

Rješenje
ot

clc;
Ra

clear all;
close all;
up

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

for N=1:1:101
a

clf(fh);
x=stepfun(t,−2)−stepfun(t,−1)+stepfun(t,0)−stepfun(t,1)+stepfun(t,2)−stepfun(t,3);
rn

subplot(2,1,1)
plot(t,x,'LineWidth',2,'Color',[0 0 1])
axis([−3 4 −0.5 1.5])
hold on
te

plot([−3 4],[0 0],'−−k');


plot([0 0],[−0.5 1.5],'−−k');
hold off
In

xlabel('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

©Copyright 2010 - Gogić Asmir


SIGNALI I SISTEMI 73

for k=1:2:N
ck=exp(−j*k*pi/2).*sin(k*pi/2)./(k*pi);
x_fr=x_fr+2*exp(j*k*pi*t).*ck;
end
subplot(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

ija
1.5 1.5 1.5

1 1 1

z
xa (t)

xa (t)

xa (t)
0.5 0.5 0.5

−0.5
−3 −2 −1 0
t
1 2 3 4 ba er
0

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

−0.5
−3 −2 −1 0
t
1 2 3 4
v
(a) N=3 (b) N=13 (c) N=33

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

Aproksimirati signal x(t) sa konačnim Fourierovim redom xa (t) sa N koeficijenata a zatim nacrtati
re

krivu snage aproksimiranog signala u funkciji broja koeficijenata koji se uzima prilikom aproksimacije.
Dati odgovore na sljedeća pitanja
ot

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


Ra

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

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

Rješenje
a
rn

clear all
close all
clc
te

% ukupna snaga signal


P=0.5;
In

% snaga k=0−tog harmonika


Pa=0.25;
% aproksimacija sa 2*N +1 koeficijenata
N=100;
k=1;

while(k<N)

©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 on
semilogx(1:k,Pa,'r')
xlabel('Broj koeficijenata')
ylabel('% ukupne snage')
axis([1 N Pa(2) P*1.01])

0.5

0.45

ija
P Pa a

0.4

0.35

z
0.3

0.25 0
10 ba er 101 102
v
N

Slika 8.3: Snaga aproksimiranog signala u funkciji broja koeficijenata N


a
dn
re
ot
Ra
up
a
rn
te
In

©Copyright 2010 - Gogić Asmir


Laboratorijska vježba 9

Zadatak 9.1

ija
Neka je dat signal
x(t) = 2(u(t) − u(t − t0 ))
gdje je t0 = 5. Odgovoriti na sljedeća pitanja

z
a) Koje uslove mora zadovoljavati signal x(t) da bi postojala njegova Fourierova transformacija?
b) Kakva je veza između Fourierove transformacije i amplitudnog i faznog spektra signala x(t)?

ba er
c) Amplitudni i fazni spektar su kakve funkcije?
d) Fourierova transformacija se koristi za određivanje spektra koje grupe signala?
v
e) Nacrtati signal x(t).
f) Odrediti Fourierovu transformaciju signala.
a
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 .
dn
re

i) Odrediti i nacrtati amplitudni i fazni spektar signala

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


ot
Ra

Rješenje
up

clear all
close all
clc
a

t0=5;
rn

A=2;
tstep=0.01;
wstep=0.1;
% simbolicke varijable t i w
te

syms t w
x=sym('A*(Heaviside(t)−Heaviside(t−t0))');
In

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

% inverzna Fourierova transformacija


x=ifourier(X);
pretty(x)

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

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

z
title('Fazni spektar arg(X(j\omega))')

10

8
ba er 2
v arg(X(ω))

6
|X(ω)|

0
4
a
2 −2
dn

0
re

−10 −5 0 5 10 −10 −5 0 5 10
ω(rad) ω(rad)
ot

(a) Amplitudni spektar (b) Fazni spektar


Ra

Slika 9.1
up

Zadatak 9.2
Neka su dati impulsni odzivi sistema
a

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

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


c) h(t) = tu(t)
te

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


In

Dati odgovore na sljedeća pitanja

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


b) Nacrtati impulsne odzive.

©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 all
close all
clc

t=−5:0.01:5;
K=0.5;
t0=2;

ija
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);

z
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)|')
ba er
v
title('Amplitudni spektar |X(j\omega)|')
subplot(3,1,3)
plot(w,angle(X),'k');
xlabel('\omega')
ylabel('arg(X(j\omega))')
a
title('Fazni spektar arg(X(j\omega))')
dn

0.6
re

0.55 2
ot
arg(X(ω))
|X(ω)|

Ra

0.5 0
up

0.45 −2
a

−4 −2 0 2 4 −4 −2 0 2 4
rn

ω(rad) ω(rad)
(a) Amplitudni spektar (b) Fazni spektar
te

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


In

©Copyright 2010 - Gogić Asmir


78 SIGNALI I SISTEMI

Zadatak 9.3
Potrebno 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 koju
je potrebno sitetizirati prikazana je na slici 9.3.

z ija
ba er
v
Slika 9.3
a
dn

Za generisanje audio signala u MATLAB-u koristiti funkciju sound(y,f), koja binarnu sekvencu y
re

generiš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
ot

x(t) = A sin(2 · π · fn · t)
Ra

gdje je A = 5, fn frekvencija note i t vrijeme sa graulacijom ∆t = 1/fs gdje je fs = 44kHz, samim time
up

i frekvencija f koja se koristi u sound() funkciji je fs . Vremensko trajanje najkraće note tj osmine
je 250ms a pauza nakon svake note je 50ms. Nakon kreiranja vektora sa svim notama potrebno je
za svaku notu dok je reprodukujemo sa sound() funkcijom pozivati funkciju spektar koja određuje
spektar datog bloka podataka. Funkcija uzima za argumente vrijednosti sinusnog signala za vrijeme
a

trajanja same note i frekvenciju fs , a kao rezultat vraća amplitude signala X na frekvencijama . Zatim
iscrtavati spektar signala za svaku notu korištenjem funkcije stem(), a za zaustavaljanje toka programa
rn

dok se data nota reprodukuje preko funkcije sound() koristiti funkciju pause().
te

function [X,w] = spektar(x,fs)


X = abs(fft(x,fs));
X = X(210:500)/fs;
In

w = 209:499;

©Copyright 2010 - Gogić Asmir


SIGNALI I SISTEMI 79

Frekvencije u muzici
U muzici note su podjeljene u grupe od po 12 koje se nazivaju oktave. Note koje je potrebno koristiti
su u oktavi koja sadrži frekvencije od 220-440Hz. Dvanaest nota u svakoj od oktava karakteriše
logaritamska skala. Svaka sljedeća nota u oktavi ima frekvenciju za a = 21/12 veću od frekvencije
prethodne 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

ija
C 220·a3

Db 220·a4

D 220·a5

z
Eb 220·a6

ba er
E

F
220·a7

220·a8
v
Gb 220·a9

G 220·a10
a
Ab 220·a11
dn
re

Tablica 9.1
ot

Muzičke note (muzički zapisi) su u osnovi jedan tip dijagram koji prikazuje frekvencije nasuprot vre-
Ra

mena. 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 ide kraća pa-
up

uza. 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 nakon svake
note trebala bi da bude iste dužine kao i data nota.
a

Rješenje
rn

clc
te

clear all
close all
In

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

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

ija
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];

z
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];
ba er
v
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);
a
Out = [Out TOut];
end
end
dn
re

fm = fs;
n=1;
be = 1;
bs = 1;
ot

for i=1:124
if (mod((i+1),2) == 0)
Ra

bs = be;
up

be = be + TSteps(n)/Ts − 1;
x = Out(bs:be);
[X,w] = spektar(x,fs);
sound(x,fs);
stem(w,X);
title('Spektar signala');
a

ylabel('Amplituda [V/Hz]');
xlabel('Frekvencija [Hz]');
rn

pause(TSteps(n));
n = n+1;
else
te

display('PAUZA');
pause(0.05);
end
end
In

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

step_size = 1/fs;

©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;

1 1
X(f )

X(f )
0.5 0.5

ija
0 0
300 310 320 330 340 350 360 320 330 340 350 360 370 380
f (Hz) f (Hz)
(a) Nota E (b) Nota F

z
Slika 9.4

ba er
v
1 1
X(f )

X(f )
a
0.5 0.5
dn
re

0 0
360 370 380 390 400 410 420 260 270 280 290 300 310 320
f (Hz) f (Hz)
ot

(a) Nota G (b) Nota D


Ra

Slika 9.5
up
a
rn
te
In

©Copyright 2010 - Gogić Asmir


82 SIGNALI I SISTEMI

z ija
ba er
v
a
dn
re
ot
Ra
up
a
rn
te
In

©Copyright 2010 - Gogić Asmir


Laboratorijska vježba 10

Zadatak 10.1

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

a) fs = 10Hz
b) fs = 50Hz

z
c) fs = 100Hz
d) fs = 500Hz

Odgovoriti na sljedeća pitanja


ba er
v
1. Kako glasi teorem o uzorkovanju?
2. Nacrtati talasni oblik uzorkovanog signala za sve slučajeve frekvencije uzorkovanja.
a
3. Nacrtati spektar signala x(t) kao i spektre uzorkovanih signala.
dn

4. Kakav je spektar uzorkovanog signala?


re

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

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


Ra

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


up

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

Rješenje
a
rn

clc
clear all
close all
te

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

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

% uzorkovani signal
xs=cos(60*pi*ts);

©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 on
stem(ts,xs,'b','marker','.')
xlabel('t')
ylabel('x_s(t), x(t)')
title('Uzorkovani signal')

1 1

ija
0.5 0.5

xs (t)
x(t)

0 0

z
−0.5 −0.5

−1

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


t(s)
ba er
0.1
−1

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


t(s)
0.1
v
(a) Analogni signal (b) Uzorkovani signal fs =50Hz

Slika 10.1
a
1 1
dn
re

0.5 0.5
xs (t)

xs (t)
ot

0 0
Ra

−0.5 −0.5
up

−1 −1

0 2 · 10−2 4 · 10−2 6 · 10−2 8 · 10−2 0.1 0 2 · 10−2 4 · 10−2 6 · 10−2 8 · 10−2 0.1
t(s) t(s)
a

(a) Uzorkovani signal fs =100Hz (b) Uzorkovani signal fs =500Hz


rn

Slika 10.2
te

clc
clear all
In

close all

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

©Copyright 2010 - Gogić Asmir


SIGNALI I SISTEMI 85

% spektar originalnog signala


X=stepfun(f,−fmax)−stepfun(f,−fmax+1)+stepfun(f,fmax)−stepfun(f,fmax+1);

% spektar uzorkovanog signala


Xs = 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 on
stem(f,X)
xlabel('f')
ylabel('X_s(f)')

ija
title('Spektar uzorkovanog signal')

function Xs = uzorkovanje(X,fs)

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

end
Xtmp=[zeros(1,fs) Xtmp(1:(size(Xtmp,2)−fs))];
Xs=Xs+Xtmp;
ba er
v
Xtmp=X/fs;
while(max(Xtmp)~= 0)
Xtmp=[Xtmp((fs+1):(size(Xtmp,2))) zeros(1,fs) ];
Xs=Xs+Xtmp;
end
a
dn

1 1
re
ot
Xs (f )
X(f )

0.5 0.5
Ra
up

0 0

−100 −50 0 50 100 −100 −50 0 50 100


a

f (Hz) f (Hz)
rn

(a) Spektar analognog signala (b) Spektar uzorkovanog signala fs =50Hz

Slika 10.3
te
In

©Copyright 2010 - Gogić Asmir


86 SIGNALI I SISTEMI

Xs (f ) 1 1

Xs (f )
0.5 0.5

0 0

−100 −50 0 50 100 −400 −200 0 200 400


f (Hz) f (Hz)
(a) Spektar uzorkovanog signala fs =100Hz (b) Spektar uzorkovanog signala fs =500Hz

ija
Slika 10.4

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

z
a) fs = 25Hz
b) fs = 60Hz
c) fs = 150Hz
ba er
v
d) fs = 400Hz

Dati odgovore na sljedeća pitanja


a
1. Objasniti princip rada kola sa zadrškom?
dn
re

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

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


Ra

5. Implementirati u MATLAB/toolbox-u kolo za rekonstrukciju signala uzorkovanog pomoću kola


up

sa zadrškom?

Rješenje
a
rn

clc
clear all
close all
te

Tc=0.0001;
Tend=0.2;
t=0:Tc:Tend;
In

x=cos(40*pi*t)−sin(25*pi*t)+0.8*sin(10*pi*t);

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

©Copyright 2010 - Gogić Asmir


SIGNALI I SISTEMI 87

% uzorkovani signal
xs=cos(40*pi*ts)−sin(25*pi*ts)+0.8*sin(10*pi*ts);
% prolaza kroz kolo sa zadrskom
Nt=round(Ts/Tc)−1;
xsh=0;
for i=1:size(ts,2)
xsh=[xsh ones(1,Nt)*xs(i)];
end
xsh=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);

ija
plot(t,x,'−−r')
hold on
stem(ts,xs,'b','marker','.')
xlabel('t')
ylabel('x_s(t), x(t)')
title('Uzorkovani signal')

z
subplot(3,1,3);
plot(t,x,'−−r')
hold on
plot(tsh,xsh,'k')
xlabel('t')
ylabel('x_{sh}(t)')
ba er
title('Uzorkovani signal − kolo sa zadrskom')
v
2
a
x(t)

0
dn
re

−2
ot

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
t
Ra
up

Slika 10.5: Analogni signal

2
a
xs (t)

rn

0
te

−2

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
In

Slika 10.6: Uzorkovani signal fs = 60Hz

©Copyright 2010 - Gogić Asmir


88 SIGNALI I SISTEMI

2
xsh (t)

−2

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
t

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

ija
2
xs (t)

z
−2

ba er
2 · 10−2 4 · 10−2 6 · 10−2 8 · 10−2 0.1
t
0.12 0.14 0.16 0.18 0.2
v
Slika 10.8: Uzorkovani signal fs = 150Hz

2
a
xsh (t)

0
dn
re

−2
ot

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
Ra

t
up

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

% rekonstrukcija uzorkovano signala pomocu NF filtera prvog reda


a

R=100;
C=0.0001;
rn

[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);
te

ynfn=filter(b,a,xsh);
tnfn=linspace(0,Tend,size(ynfn,2));
In

figure(2)
subplot(2,1,1)
plot(t,x,'−−r')
hold on
plot(tnf1,ynf1,'k')
xlabel('t')
ylabel('x_{sh}(t)')

©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 on
plot(tnfn,ynfn,'k')
xlabel('t')
ylabel('x_{sh}(t)')
title('Rekonstrukcija uzorkovano signala pomocu NF filtera petog reda')

2
xr (t)

ija
−2

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
t

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

2
ba er
v
xr (t)

−2
a
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
dn

t
re

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

Zadatak 10.3
Ra

Signal x(t) ima ograničen spektar


up

   
5 1 5 1
X(f ) = + f (U (f + 20) − U (f + 12)) + − f (U (f − 12) − U (f − 20)) (10.1)
2 8 2 8

i uzorkovan je na frekvenciji
a
rn

• fs = 20Hz

• fs = 35Hz
te

• fs = 40Hz
In

Potrebno je

a) Nacrtati spektar signala x(t).

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

©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

clc
clear all
close 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);

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

z
xlabel('f')
ylabel('Xs(f)')

ba er
v
a
dn
re
ot
Ra
up
a
rn
te
In

©Copyright 2010 - Gogić Asmir


Laboratorijska vježba 11

Zadatak 11.1

ija
Za sisteme opisane jednačinama

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

z
n
c) y[n] = 2n−1 x[n]
d) y[n] = 2x[n]
e) y[n] = x[2n]
ba er
v
f) y[n] = 0.2y[x − 1] + x[x]

realizovati testove za provjeru linearnosti, vremenske invarijantnosti i stabilnosti. Testove realizovati


a
prvo u MATLAB toolboxu a zatim u blocksetu.

Zadatak 11.2
dn
re

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


ot

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


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

c) x[n] = 3−n u[n], h[n] = 2−n u[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])
a

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


rn

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


te
In

©Copyright 2010 - Gogić Asmir

You might also like