Upload
asmir-gogic
View
45
Download
3
Tags:
Embed Size (px)
Citation preview
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
UNIVERZITET U TUZLI
FAKULTET ELEKTROTEHNIKE
LABORATORIJSKE VJEŽBESignali i sistemi
Gogić Asmir
Tuzla, Februar 2010. godine
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
2 SIGNALI I SISTEMI
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
Laboratorijska vježba 1
Osnove MATLAB-aMATLAB (MATrix LABoratory) predstavlja interaktivni programski jezik četvrte generacija za inži-njerske i naučne proračune, a integrira računanje, vizualizaciju i programiranje u okruženje jednostavnoza korištenje. Sastavni dio MATLAB-a predstavlja veliki broj dodatnih programskih paketa (toolbox-ova) koji obuhvataju razna tehnička područja: analiza sistema u vremenskom i frekventnom domenu,statistička analiza, simbolički račun, digitalna obrada slika, analiza upravljanja, identifikacija sistema,2D i 3D prikaz podataka i dr. MATALB omogućuje dva načina tehničko-matematičkog modelovanja:
• Grafički - Simulink koji predstavlja vizuelni alat pomoću kojeg je moguće analizirati i simuliratikontinualne i diskretne sisteme. Prednost ovakvog pristupa je da korisnik ne mora poznavatsintaksu MATLAB programskog jezika.
• Tekstualni - MATLAB editor/debbuger koji predstavlja tekstualni editor za pisanje MATLABprograma kojeg spremamo u file sa ekstenzijom ”.m”. To je ASCII tekst file koji sadrži sekvencuMATLAB komandi a razlikujemo dva tipa m-fileova:
a) script files - duge automatizirane sekvence MATLAB komandi koje se ponavaljaju.b) function files - djelovi programa koji se ponavljaju, nove komande i sl.
U nedostatku MATLAB editora m-fileove možemo kreirati u bilo kojem tekst editoru.
Pisanje MATLAB programa moguće je izvoditi kako smo već rekli u tekstualnom editoru ili direktnou komandnom prozoru. Pisanje programa u komandnom prozoru pogodno je samo ako pišemo male ijednostavne programe bez ponavljanja u suprotnom koristimo MATLAB editor/debbuger.
Putanja MATLAB izvršnog filea na Windows operativnim sistemima je po defaultu:
C:/MATLAB701/bin/matlab.bat
ili preko Start menija
Start ⇒ Programs ⇒ Matlab ⇒ matlab
Nakon pokretanja MATLAB-a pojavit će se MATLAB radno okruženje slika 1.1. MATLAB radnookruženje sastoji se od:
• Menija - u kome se nalaze komande za učitavanje fileova, radnog okruženja, štampanje, debagi-ranje, podešavanje putanje i dr.
• Komandni prozor - koji omogućuju potpunu kontrolu MATLAB okruženja kao i pisanje kratkihprograma, pregleda opisa bilo koje MATLAB komande itd.
• Workspace - predstavlja listu svih deklarisanih i inicijaliziranih varijabli.
• Command history - predstavlja listu svih prethodno izvršenih komandi u komandnom prozoru.
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
4 SIGNALI I SISTEMI
Slika 1.1: MATLAB radno okruženje
PutanjaMATLAB putanja (path) predstavlja listu direktorija koje MATLAB ”vidi” tj koje pretražuje zasistemske biblioteke. Path cache predstavlja predefinisanu listu /toolbox fileova kreiranu prilikompokretanja MATLAB-a u cilju bržeg izvršavanja skripti i funkcija. Neke od korisnih MATLAB komandiza rad sa pathom su
• path - prikazuje sve direktorije koje matlab uključuje u putanju.
• pathtool - GUI alat za dodavanje/brisanje direktorija na MATLAB putanju.
• addpath arg - dodaje direktorij arg u MATLAB putanju.
• rmpath arg - briše direktorij arg sa MATLAB putanje.
• which arg - provjerava da li se file arg nalazi na MATLAB putanji.
VarijableMATLAB sve varijable tretira kao matrice. Osnovni (default) tip podatka u MATLAB-u je double. Naslici 1.2 prikazano je stablo svih tipova podataka u MATLAB-u. S druge strane, MATLAB podržavarealne, kompleksne i simboličke varijable. Varijable prema vidljivosti se djele na globalne i lokalne.Globalne varijable definišemo pomoću ključne riječi global. Prema izvoru nastanka varijable dijelimona interne i eksterne. Deklaracija i inicijalizacija varijabli u MATLAB-u se vrši istovremeno.
Primjer: definišimo varijablu a koja ima vrijednost 10, varijablu b koja ima vrijednost 2.1415 i varijabluc koja ima vrijednost 2 + j3
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
SIGNALI I SISTEMI 5
N-DIMENSION ARRAY
HETEROGENEOUSCONTAINER
NAME-BASEDstruct
INDEX-BASEDcell
FLOATING POINT
FUNCTIONHANDLE
function_handle
TEXTchar
NUMERIC
FLOATING POINT
SINGLEPRECISION
single
DOUBLEPRECISION
double(default)
INTEGER
SIGNEDint8int16int32
UNSIGNEDuint8uint16uint32
BOOLEANlogical
Slika 1.2
>> a=10
a =
10
>> b=2.1415
b =
2.1415
>> c=2+j*3
c =
2.0000 + 3.0000i
Varijabla a je skalar ali je MATLAB tretira kao matricu dimenzija 1×1. Listu svih varijabli u radnomokruženju možemo dobiti sa komandom who dok listu svih varijabli sa tipom podatka, dimenzijama iatributima možemo dobiti sa whos.
>> who
Your variables are:
a b c
>> whosName Size Bytes Class Attributes
a 1x1 8 doubleb 1x1 8 doublec 1x1 16 double complex
Deklaracija i inicijalizacija matrice ili vektora izvodi se sa uglastim zagradama [ ]. Redovi u matri-cama se odvajaju sa operatorom ”;”.
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
6 SIGNALI I SISTEMI
>> A=[1 2 3 4]
A =
1 2 3 4
>> B=[1 2 3; 4 5 6; 7 8 9]
B =
1 2 34 5 67 8 9
Matricu nula sa n kolona i m redova kreiramo sa komandom zeros(m,n)
zeros(3,2)
ans =
0 00 00 0
Matricu jedinica sa n kolona i m redova kreiramo sa komandom ones(m,n)
ones(4,3)
ans =
1 1 11 1 11 1 11 1 1
Jediničnu matricu kreiramo sa komandom eye(n)
>> eye(3)
ans =
1 0 00 1 00 0 1
Indeksiranje matricaIndeksi N-dimenzionalnog niza u MATLAB-u počinju od vrijednosti 1. Indeksiranje matrice vršimosa malim zagradama ( ).
>> A=[4 3 1 5 6]
A =
4 3 1 5 6
>> A(2)
ans =
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
SIGNALI I SISTEMI 7
3
>> A(0)??? Subscript indices must either be real positive integers or logicals.
U zadnjoj liniji vidimo da je nastupila greška jer smo pokušali pristupiti elementu matrice čiji je indeks0. Od matrice A možemo napraviti novu matricu koja će sadržavati sve vrijednosti matrice A za datiopseg indeksa upotrebom operatora ”:”.
A =
4 3 1 5 6
>> B=A(2:4)
B =
3 1 5
Matrice možemo indeksirati i sa jednim indeksom pri čemu se elementi matrice indeksiraju po kolo-nama.
A =
1 23 4
>> A(1:3)
ans =
1 3 2
Kao i kod jednodimenzionalnih matrica i od dvodimenzionalnih matrica možemo formirati nove matricesa operatorom ”:”.
>> A=[1 2 3; 4 5 6; 7 8 9]
A =
1 2 34 5 67 8 9
>> B=A(2:3,1:2)
B =
4 57 8
>> B=A(2:3,1)
B =
47
>> B=A(2,:)
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
8 SIGNALI I SISTEMI
B =
4 5 6
Sa operatorom ”:” možemo generisati vektor sa određenim inkrementom.
>> t=0:0.2:1
t =
0 0.2000 0.4000 0.6000 0.8000 1.0000
>> a=−5:2:7
a =
−5 −3 −1 1 3 5 7
Ako ne želimo da se rezulta poziva neke komande ispiše u komandnom prozoru na kraj linije stavljamo”;”. Operator ”;” nije obavezan kao što je to slučaj u C jeziku.
>> A=[1 0 2]
A =
1 0 2
>> A=[1 0 2];>>
Operacija nad matricamaOd dvije matrica A i B moguće je napraviti novu matricu koja će sadržavati sve elemente matrice A iB na sljedeći načini
>> A=[1 2]
A =
1 2
>> B=[3 4]
B =
3 4
>> C=[A B]
C =
1 2 3 4
>> D=[A; B]
D =
1 23 4
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
SIGNALI I SISTEMI 9
Transponovanje matrice izvodi se sa operatorom ”’”
A =
1 2 3
>> A'
ans =
123
>> A=[1 2; 5 6]
A =
1 25 6
>> A'
ans =
1 52 6
Rotiranje matrice za 90 stepeni u suprotnom smijeru kazaljke na satu izvodimo sa komandom rot90.
>> A=[1 2 3 4]
A =
1 2 3 4
>> B=rot90(A)
B =
4321
>> B=rot90(rot90(A))
B =
4 3 2 1
>> A=[1 2; 3 4]
A =
1 23 4
>> B=rot90(A)
B =
2 41 3
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
10 SIGNALI I SISTEMI
>> B=rot90(rot90(A))
B =
4 32 1
Obrtanje matrice za 180 stepeni izvodimo sa komandom fliplr.
A =
1 2 34 5 6
>> fliplr(A)
ans =
3 2 16 5 4
Determinantu matrice možemo dobiti sa komandom det a inverznu matricu sa inv.
A =
1 23 4
>> det(A)
ans =
−2
>> inv(A)
ans =
−2.0000 1.00001.5000 −0.5000
Svojstvene vrijednosti matrice A možemo dobit sa komandom eig
A =
1 24 5
>> eig(A)
ans =
−0.46416.4641
Operacija sa matricamaSabiranje, oduzimanje i množenje matrica u MATLAB-u izvodimo sa operatorima ”+”, ”-” i ”*”respektivno.
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
SIGNALI I SISTEMI 11
>> A=[1 0; 2 3]
A =
1 02 3
>> B=[1 2; 0 3]
B =
1 20 3
>> C=A+B
C =
2 22 6
>> D=A−B
D =
0 −22 0
>> E=A*B
E =
1 22 13
U MATLAB-u matrice je moguće sabirati, oduzimati, množiti i djeliti sa konstantom.
A =
1 02 3
>> B=2+A
B =
3 24 5
>> B=2−A
B =
1 20 −1
>> B=2*A
B =
2 04 6
>> B=A/2
B =
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
12 SIGNALI I SISTEMI
0.5000 01.0000 1.5000
Pored standardnog načina množenja matrica u MATLAB-u postoji još jedan operator ”.” koji saoperatorim množenja i djeljenja omogućava množenje i djeljenje matrica po principu svaki elementprve matrice sa korespondirajućim elementom druge matrice.
>> A=[1 2; 3 4];>> B=[2 3; 4 5];>> C=A.*B
C =
2 612 20
>> C=B.*A
C =
2 612 20
>> C=A./B
C =
0.5000 0.66670.7500 0.8000
Relacioni operatoriMATLAB podržava sljedeće relacione operatore sa varijablama
Operator Značenje== Jednako∼ = Različito< Manje> Veće<= Manje ili jednako>= Veće ili jednako
Tablica 1.1
Relacioni operatori se mogu primjenjivati na nivou jednog elementa matrice ili na nivou cijele matrice.
>> A=[1 5; 2 6];>> B=[2 4; 2 5];>> A==B
ans =
0 01 0
>> A(1)==B(1)
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
SIGNALI I SISTEMI 13
ans =
0
>> A>B
ans =
0 10 1
>> A>=B
ans =
0 11 1
>> A~=B
ans =
1 10 1
>> A==2
ans =
0 01 0
>> A(1)==2
ans =
0
Logički operatoriMATLAB podržava set logičkih operatora na nivou izraza a dati su u tablici 1.2.
Operator Značenje&& I|| ILI
Tablica 1.2
Logičke operatori na nivou bita su dati u tablici 1.3.
Operator Značenje∼ Logička negacija& Logičko i| Logičko ili
xor Logičko xor
Tablica 1.3
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
14 SIGNALI I SISTEMI
>> a=1;b=0;c=3;>> a&&b
ans =
0
>> a&&c
ans =
1
>> a||b
ans =
1
>> a=5;b=6;c=0;>> ~a
ans =
0
>> a&b
ans =
1
>> a&c
ans =
0
>> xor(a,b)
ans =
0
>> xor(a,c)
ans =
1
Kompleksni brojeviKompleksan broj deklarišemo i inicijaliziramo na sljedeći način
>> a=1−1*j
a =
1.0000 − 1.0000i
>> b=2+1*i
b =
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
SIGNALI I SISTEMI 15
2.0000 + 1.0000i
Realni i imaginarni dio kompleksnog broja možemo dobiti preko funkcija real i imag a modul iargument preko funkcija abs i angle.
>> real(a)
ans =
1
>> imag(a)
ans =
−1
>> angle(a)
ans =
−0.7854
>> abs(a)
ans =
1.4142
KonstanteU MATLAB-u imamo nekoliko predefinisanih konstanti a date su u tablici 1.4.
Konstanta Vrijednostπ 3.14159269i Imaginarna jedinicaj Imaginarna jedinica
realmax Maksimalni pozitivni broj 1.7977e+ 308realmin Minimalni pozitivni broj 2.2251e− 308
inf Beskonačno (Infinity)NaN Not a number
Tablica 1.4
Provjera varijabli za vrijednost NaN i Inf se izvodi preko komandi isnan, isfinite i isinf.
FormatU MATLAB-u postoji više načina za prikaz rezultata matematičkih operacija. Rezultati se uobičajnoprikazuju sa jednostrukom preciznošću (4 značajne cifre iza zareza), način prikaza određuje naredbaformat sa argumentom koji može biti kao u tablici 1.5.
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
16 SIGNALI I SISTEMI
Format Prikazshort 4 decimalna mjestashort e eksponencijalni prikaz sa 4 decimalna mjestalong 14 decimalnih mjestalong e eksponencijalni prikaz sa 14 decimalnih mjestarat aproksimacija brojeva razlomkom
compact ispis bez praznih redova
Tablica 1.5
Karakteri i stringoviStringovi predstavljaju vektore karaktera. Elemente stringova indeksiramo kao i elemente matrice.Relacioni operatori za stringove se mogu koristiti samo ako stringovi imaju isti broj elemenata što uvećini slučajeva nije tako. Za poređenje stringova koristi se komanda strcmp a za spajanje stringovastrcat.
>> a=['1' '2' '3']
a =
123>> a='Signali i sistemi';>> b=a;>> a==b
ans =
1 1 1 1 1 1 1 1 1 1 1 1 1 1 11 1
>> strcmp(a,b)
ans =
1
>> b=[a '2']
b =
Signali i sistemi2
>> a==b??? Error using ==> eqMatrix dimensions must agree.
>> strcmp(a,b)
ans =
0
Ćelije i struktureStruktura je tip podatka koji sadrži unaprijed definisan broj i tip podataka. Elemente struktureindeksiramo preko operatora malih zagrada ”()” zajedno sa operatorom ”.”.
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
SIGNALI I SISTEMI 17
>> student=struct('Ime', 'Tarik', 'ocjena', 10)
student =
Ime: 'Tarik'ocjena: 10
>> student(2)=struct('Ime', 'Hamza', 'ocjena', 9);>> student(3)=struct('Ime', 'Ado', 'ocjena', 7);>> student
student =
1x3 struct array with fields:Imeocjena
>> student(1)
ans =
Ime: 'Tarik'ocjena: 10
>> student(1).Ime
ans =
Tarik
Podatak tipa ćelija cell predstavlja višedimenzionalnu matricu kod koje elementi mogu biti matricerazličitih dimenzija. Elementima ćelije pristupamo pomoću operatora vitičastih zagrada ””.
>> a=cell(2,2);>> a1=[1 2 3 4];a2=[3 4];a3=[1 3 4];a4=[1 4];>> a
a =
[1x4 double] [1x3 double][1x2 double] [1x2 double]
>> a1(:)
ans =
1234
>> a3(:)
ans =
134
Grafički prikaz podatakaGrafička interpretacija 2D funkcija omogućena je preko dvije komande plot i stem. Komanda plotse koristi isključivo za prikaz kontinualnih veličina dok stem za prikaz diskretnih veličina.
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
18 SIGNALI I SISTEMI
% uklanjanje svih varijabli iz radnog okruzenjaclear all% zatvaranje svih formi (plotova)close all% ciscenje komandnog prozoraclc
t=0:0.01:6;x1=sin(pi*t);x2=exp(−t);x3=0.1*t.*log(t+1);
% kreiramo formu u kojoj cemo prikazati nase funkcijefigure(1)plot(t,x1)% zadrzimo dati plot na formihold on% prikazemo drugu funkciju crvenom bojomplot(t,x2,'r')% prikazemo trecu funkciju crnom bojomplot(t,x3,'k')hold off
% oznake za apscisu i ordinatuxlabel('t')ylabel('x(t)')% naziv plotatitle('Funckije sin(\pi t), e^−t, 0.1t ln(t+1)')
% definisanje opsega unutar kojeg cemo posmatrati plotaxis([0 5 −2 2])
clear allclose allclc
n=1:10;N=10;% generisanje 10 slucajnih brojeva prema uniformnoj raspodjelix1=rand(1,N);% generisanje 10 slucajnih brojeva prema normalnoj raspodjelix2=randn(1,N);
% kreiramo formu u kojoj cemo prikazati nase funkcijefigure(1)% figura ce imati dva plota prvi jesubplot(2,1,1)stem(n,x1)% oznake za apscisu i ordinatu prvog dijagramaxlabel('n')ylabel('x(n)')% naziv dijagramatitle('Slucajni brojevi, uniformna raspodjela')
% drugi plot jesubplot(2,1,2)stem(n,x2,'r','marker','.')% oznake za apscisu i ordinatu drugog dijagramaxlabel('n')ylabel('x(n)')% naziv dijagramatitle('Slucajni brojevi, normalna raspodjela')
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
SIGNALI I SISTEMI 19
Kontrola toka programaKontrola toka programa izvodi se pomoću if, elseif, else i end komandi.
clear allclose allclc
x=10*rand;
if(x<3)display('x je manje od tri')
elseif(x<=5)display('x je manje od pet a vece od tri')
elsesprintf('x je %f i vece je od pet',x)
end
Kontrolu programa moguće je izvesti preko switch, case, otherwise i end komandi.
osoba = 'Student';switch lower(osoba)
case 'student','ucenik'disp('Osoba je student')
case 'radnik'disp('Osoba je radnik')
case 'profesor'disp('Osoba je profesor')
otherwisedisp('Osoba je nepoznata')
end
PetljeMatlab podržava dva tipa petlji for i while. for petlja se izvršava dok je brojačka varijabla manja odpredefinisane vrijednosti a while petlja se izvršava sve dok je ispunjen logički uslov. Petlje se realizujusa komandama for, while, break i end.
clear allclose allclc
for i=1:10if (mod(i,2)==0)
sprintf('Broj %.3f je paran',i)else
sprintf('Broj %.3f je neparan',i)end
end
x=randn=0.01;while(1)
if(n>=x)sprintf('Pronasao sam veci broj od x=%.3f i to je broj n=%.3f',x,n)break
endn=n+0.01;
end
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
20 SIGNALI I SISTEMI
FunkcijeFunkcije predstavljaju komande ili dio koda koji se ponavlja. Funkcije se definišu na sljedeći način
function [outarg1,outarg2,...,outargn]=imefunkcije(inarg1,inarg2,...,inargn)
tijelo funkcije
Funkcija se sprema u zaseban file koji ima isto ime kao i funkcija.
Napisati MATLAB funkciju koja provjerava da li su dva niza ista.
function [val1,val2,index1] = test(in1,in2)size1 = size(in1,1)*size(in1,2);size2 = size(in2,1)*size(in2,2);if (size1 > size2)
max = size1;else
max = size2;endfor i=1:1:max
if(in1(i) ~= in2(i) )val1 = in1(i);val2 = in2(i);index1 = i;break;
endend
end
>> a = [1 2 3];>> b = [1 3 3];>> test(a,b)
ans =
2
Varijable deklarisane i inicijalizirane u samoj funkciji nisu vidljive izvan funkcije.
Simbolički računMATLAB omogućuje kreiranje posebnih simboličkih varijabli i objekata. Simboličke varijable sadrža-vaju simboličke izraze nad kojima je moguće vršiti operacije diferenciranja.
clear allclose allclc
% deklaracija simbolickih varijablisyms x t;
y = x^3 + x*cos(x) − exp(x);pretty(y)x = 1;% izracunavanje vrijednosti funkcije yy_val = eval(y);
z = diff(y,1);pretty(z)
x = 1;z_val = eval(z);
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
SIGNALI I SISTEMI 21
n=1;for x = 0:0.01:5
y_val1(n) = eval(y);z_val1(n) = eval(z);t(n) = x;n = n + 1;
end
plot(0:0.01:5,y_val1)hold onplot(0:0.01:5,z_val1,'−−r')
PolinomiKorijene polinoma n-tog reda u MATLAB-u moguće je dobiti upotrebom roots komande.
clear allclose allclc
% korijeni polinoma x^2+2*x+1=0 supx1=[1 2 1];% korijeni jednacine suroots(px1)
% vrijednost polinoma za x=0polyval(px1,0)% vrijednost polinoma za x=10polyval(px1,0)
px2=[1 3 3 1];roots(px2)
px3=[1 3 5 3 1];roots(px3)
% korijeni jednacinex=[1 2 3]% polinom jepoly(x)
Dodatne napomene
1. Znak % u MATLAB-u predstavlja komentar karakter.
2. Ime varijable u MATLAB-u ne može biti duže od 63 karaktera.
3. Za prelamanje linije koda koristimo tri tačke (...).
4. Rezultat izvršavanja MATLAB koda neće biti prikazan ako se na kraj linije stavi ”;”.
5. Opis bilo koje komande u MATLAB može se dobiti upotrebom help komande u MATLABkomandnom prozoru u formi help komanda_od_interesa
6. Radno okruženje zajedno sa svim varijablama moguće je spremiti u mojfile.mat file sa savekomandom a učitati ponovo sa load mojfile.mat.
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
22 SIGNALI I SISTEMI
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
Laboratorijska vježba 2
Zadatak 2.1Koristeći MATLAB funkciju stepfun nacrtati sljedeće kontinualne signale
a) x(t) = u(t)
b) x(t) = u(t− 2)
c) x(t) = u(t+ 3)
d) x(t) = 2u(2− t)
e) x(t) = −2u(−3− t)
Rješenje
clear allclose allclc
% vremenski vektor unutar koga prikazujemo signal x(t)% sa granulacijom 0.01st=−5:0.01:5;% generisanje step signala preko ugradjene funkcije stepfun()x=stepfun(t,0);
figure(1)plot(t,x)axis([−5 5 −0.5 1.5])title('x(t)=u(t)')xlabel('t')ylabel('x(t)')grid on
% x(t)=u(t−2)x=stepfun(t,2);figure(2)plot(t,x,'r')axis([−5 5 −0.5 1.5])title('x(t)=u(t−2)')xlabel('t')ylabel('x(t)')grid on
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
24 SIGNALI I SISTEMI
−4 −2 0 2 4−0.5
0
0.5
1
1.5
t
x(t
)
(a) Signal x(t) = u(t)
−4 −2 0 2 4−0.5
0
0.5
1
1.5
t
x(t
)
(b) Signal x(t) = u(t− 2)
−4 −2 0 2 4−0.5
0
0.5
1
1.5
t
x(t
)
(c) Signal x(t) = u(t+ 3)
Slika 2.1
% x(t)=u(t+3)x=stepfun(t,−3);figure(3)plot(t,x,'k')axis([−5 5 −0.5 1.5])title('x(t)=u(t+3)')xlabel('t')ylabel('x(t)')grid on
Zadatak 2.2Koristeći MATLAB funkciju stepfun nacrtati sljedeće kontinualne signale
a) x(t) = δ(t)
b) x(t) = δ(t− 2)
c) x(t) = δ(t+ 1)
d) x(t) = 2δ(2− t)
e) x(t) = −3δ(−3− t)
Rješenje
clear allclose allclc
t=−5:0.01:5;% generisanje delta impulsa preko ugradjene funkcije stepfun()x=100*(stepfun(t,0)−stepfun(t,0.01));
figure(1)plot(t,x)axis([−5 5 −0.5 101])title('x(t)=\delta(t)')xlabel('t')ylabel('x(t)')grid on
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
SIGNALI I SISTEMI 25
−4 −2 0 2 4
0
20
40
60
80
100
t
x(t
)
(a) Signal x(t) = δ(t)
−4 −2 0 2 4
0
20
40
60
80
100
t
x(t
)
(b) Signal x(t) = δ(t− 2)
−4 −2 0 2 4
0
20
40
60
80
100
t
x(t
)
(c) Signal x(t) = δ(t+ 1)
Slika 2.2
% x(t)=d(t−2)x=100*(stepfun(t,2)−stepfun(t,2.01));figure(2)plot(t,x,'r')axis([−5 5 −0.5 101])title('x(t)=\delta(t−2)')xlabel('t')ylabel('x(t)')grid on
% x(t)=d(t+1)x=100*(stepfun(t,−1)−stepfun(t,−0.99));figure(3)plot(t,x,'k')axis([−5 5 −0.5 101])title('x(t)=\delta(t+1)')xlabel('t')ylabel('x(t)')grid on
Zadatak 2.3Koristeći ugrađene MATLAB funkcije nacrtati sljedeće kontinualne signale
a) x(t) = sin(2πt)
b) x(t) = cos(10πt) + sin(2πt)
c) x(t) = e(σ+jω)t
d) x(t) = 2 cos2(10πt)
e) x(t) = e−0.2t cos(2πt)
Rješenje
clear allclose allclc
t=−5:0.01:5;x=sin(2*pi*t);
figure(1)plot(t,x)
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
26 SIGNALI I SISTEMI
axis([−5 5 −1.5 1.5])title('x(t)=sin(2 \pi t)')xlabel('t')ylabel('x(t)')grid on
−4 −2 0 2 4
−1
0
1
t
x(t
)
(a) Signal x(t) = sin(2πt)
−4 −2 0 2 4
−2
−1
0
1
2
t
x(t
)
(b) Signal x(t) = cos(10πt)+sin(2πt)
−4 −2 0 2 4
−2
−1
0
1
2
t
x(t
)
(c) Signal x(t) = eσ+jωt
Slika 2.3
x=cos(10*pi*t)+sin(2*pi*t);figure(2)plot(t,x,'r')axis([−5 5 −2.5 2.5])title('x(t)=cos(10 \pi t)+sin(2 \pi t)')xlabel('t')ylabel('x(t)')grid on
x1=exp((0.2+j*pi)*t);x2=exp((−0.2+j*pi)*t);x3=exp((0+j*pi)*t);figure(3)plot(t,real(x1))hold onplot(t,imag(x1),'r')hold onplot(t,real(x2),'−−m')hold onplot(t,real(x3),'−−k')axis([−5 5 −2.5 2.5])title('x(t)=e^(\sigma+j\omega) t')xlabel('t')ylabel('x(t)')grid on
Zadatak 2.4Koristeći MATLAB funkciju stepfun nacrtati sljedeće diskretne signale
a) x[n] = u[n]
b) x[n] = 1.2u[n+ 2]
c) x[n] = 0.8u[n− 1]
d) x[n] = −1.5u[1− n]
e) x[n] = 2u[2− n]
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
SIGNALI I SISTEMI 27
Rješenje
clear allclose allclc
n=−5:1:5;x=stepfun(n,0);
figure(1)stem(n,x,'marker','.')axis([−5 5 −0.5 1.5])title('x[n]=u[n])')xlabel('n')ylabel('x[n]')grid on
−4 −2 0 2 4
−1
0
1
n
x(n
)
(a) Signal x(n) = u(n)
−4 −2 0 2 4
−1
0
1
n
x(n
)
(b) Signal x(n) = 1.2u(n+ 2)
−4 −2 0 2 4
−1
0
1
n
x(n
)
(c) Signal x(n) = 0.8u(n− 1)
Slika 2.4
x=1.2*stepfun(n,−2);figure(2)stem(n,x,'r','marker','.')axis([−5 5 −0.5 1.5])title('x[n]=1.2u[n+2])')xlabel('n')ylabel('x[n]')grid on
x=0.8*stepfun(n,1);figure(3)stem(n,x,'k','marker','.')axis([−5 5 −0.5 1.5])title('x[n]=0.8u[n−1])')xlabel('n')ylabel('x[n]')grid on
Zadatak 2.5Koristeći MATLAB nacrtati sljedeće diskretne signale
a) x(n) = δ(n)
b) x(n) = 0.7δ(n− 2)
c) x(n) = 1.3δ(n+ 4)
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
28 SIGNALI I SISTEMI
d) x(n) = 2δ(2− n)
e) x(n) = −3δ(−3− n)
f) x(n) = sin(πn
2
)g) x(n) = 0.8 cos(8πn− 0.5) + 1.2 sin(2πn)
h) x(n) = e(σ+jω)n
i) x(n) = 2 cos2(10πn)
j) x(n) = 0.2n cos(2πn)
Rješenje
clear allclose allclc
n=−5:1:5;x=stepfun(n,0)−stepfun(n,1);
figure(1)stem(n,x,'marker','.')axis([−5 5 −0.5 1.5])title('x[n]=\delta[n])')xlabel('n')ylabel('x[n]')grid on
−4 −2 0 2 4
−1
0
1
n
x(n
)
(a) Signal x(n) = δ(n)
−4 −2 0 2 4
−1
0
1
n
x(n
)
(b) Signal x(n) = 0.7δ(n− 2)
−4 −2 0 2 4
−1
0
1
n
x(n
)
(c) Signal x(n) = 1.3δ(n+ 4)
Slika 2.5
x=0.7*(stepfun(n,2)−stepfun(n,3));figure(2)stem(n,x,'r','marker','.')axis([−5 5 −0.5 1.5])title('x[n]=0.7\delta[n−2])')xlabel('n')ylabel('x[n]')grid on
x=1.3*(stepfun(n,4)−stepfun(n,3));figure(3)stem(n,x,'k','marker','.')axis([−5 5 −0.5 1.5])
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
SIGNALI I SISTEMI 29
title('x[n]=1.3u[n+4])')xlabel('n')ylabel('x[n]')grid on
clear allclose allclc
n=−5:1:5;x=sin(pi*n/2);
figure(1)stem(n,x,'marker','.')axis([−5 5 −0.5 1.5])title('x[n]=sin(\pi n/2))')xlabel('n')ylabel('x[n]')grid on
−4 −2 0 2 4
−1
0
1
n
x(n
)
(a) Signal x(n) = sin(πn
2
) −4 −2 0 2 4
−1
0
1
n
x(n
)
(b) Signal x(n) = 0.8 cos(8πn−0.5)+1.2 sin(2πn)
−4 −2 0 2 4
−2
−1
0
1
2
n
x(n
)(c) Signal x(n) = e(σ+jω)n
Slika 2.6
x=0.8*cos(0.8*pi*n−0.5)+sin(2*pi*n);figure(2)stem(n,x,'r','marker','.')axis([−5 5 −0.5 1.5])title('x[n]=0.8cos(8 \pi n −0.5)+sin(2 \pi n)')xlabel('n')ylabel('x[n]')grid on
x1=exp((0.2+j*pi)*n);x2=exp((−0.2+j*pi)*n);x3=exp((0+j*pi)*n);figure(3)stem(n,real(x1),'b','marker','.')hold onstem(n,imag(x1),'r','marker','.')hold onstem(n,real(x2),'m','marker','.')hold onstem(n,real(x3),'k','marker','.')axis([−5 5 −2.5 2.5])title('x[n]=e^(\sigma+j\omega) n')xlabel('n')ylabel('x[n]')grid on
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
30 SIGNALI I SISTEMI
Zadatak 2.6Koristeći MATLAB predefinisane funkcije nacrtati sljedeće kontinualne signale
a) Pravougaoni impuls širine tw = 2s i centriran u nuli.
b) Trougaoni impuls širine tw = 3s i centriran u nuli.
c) Gaussov impuls centralne frekvencije 1Hz i centriran u nuli.
d) Povorku pravougaonih impulsa perioda T=2.
e) Povorku trougaonih impulsa perioda T=2.
f) Chrip signal sa promjenom frekvencije od 0 do 100Hz u vremenskom intervalu (0,1).
Rješenje
clear allclose allclc
t=−5:0.01:5;tw=2;
% koristimo ugradjenu funkciju rectpuls()x=rectpuls(t,tw);
figure(1)plot(t,x)axis([−5 5 −0.5 1.5])title('x(t)=rect(t/t_w)')xlabel('t')ylabel('x(t)')grid on
% ili preko step signalax=stepfun(t,−1)−stepfun(t,1);
figure(2)plot(t,x)axis([−5 5 −0.5 1.5])title('x(t)=u(t+1)−u(t−1)')xlabel('t')ylabel('x(t)')grid on
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
SIGNALI I SISTEMI 31
−4 −2 0 2 4−0.5
0
0.5
1
1.5
t
x(t
)
(a) Signal x(t) = Π(t
tw
) −4 −2 0 2 4−0.5
0
0.5
1
1.5
t
x(t
)
(b) Signal x(t) = Λ(t
tw
) −4 −2 0 2 4
−1
0
1
t
x(t
)
(c) Signal gauspuls
Slika 2.7
tw=3;x=tripuls(t,tw);
figure(3)plot(t,x)axis([−5 5 −0.5 1.5])title('x(t)=\Lambda(t/t_w)')xlabel('t')ylabel('x(t)')grid on
% ili preko step signala
x=(2*t/3+1).*(stepfun(t,−1.5)−stepfun(t,0))+(1−2*t/3).*(stepfun(t,0)−stepfun(t,1.5));figure(4)plot(t,x)axis([−5 5 −0.5 1.5])title('x(t)=(2t/3+1)(u(t+1)−u(t))+(1−2t/3)(u(t)−u(t−1))')xlabel('t')ylabel('x(t)')grid on
% Gaussov impuls − sinusni impulsi modulisani Gaussovom funkcijomfc=1; % centralna frekvencijabw=1/3; % frekventni opsegx=gauspuls(t,fc,bw);figure(5)plot(t,x)axis([−5 5 −1.5 1.5])title('x(t)=u(t+1)−u(t−1)')xlabel('t')ylabel('x(t)')grid on
x=square(pi*t);
figure(6)plot(t,x)axis([−5 5 −1.5 1.5])title('Povorka pravougaonih impulsa')xlabel('t')ylabel('x(t)')grid on
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
32 SIGNALI I SISTEMI
x=sawtooth(pi*t);figure(7)plot(t,x)axis([−5 5 −1.5 1.5])title('Povorka trougaonih impulsa')xlabel('t')ylabel('x(t)')grid on
x=chirp(t,0,1,100);figure(8)plot(t,x)axis([−5 5 −1.5 1.5])title('Chrip signal')xlabel('t')ylabel('x(t)')grid on
−4 −2 0 2 4
−1
0
1
t
x(t
)
(a) Povorka pravougaonih impulsa
−4 −2 0 2 4
−1
0
1
t
x(t
)
(b) Povorka trougaonih impulsa
−4 −2 0 2 4
−1
0
1
tx
(t)
(c) Chrip signal
Slika 2.8
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
Laboratorijska vježba 3
Zadatak 3.1Za sisteme opisane jednačinama
a) y(t) = 5x(t)
b) y(t) = 4tx2(t)
c) y(t) = x2(t) + 4x(t− 1)
d) y(t) = 4x2(t)
e) y(t) = 10x(t)2in(2πt)
f) y(t) = dx(t)dt
realizovati testove za provjeru linearnosti, vremenske invarijantnosti i stabilnosti koristeći MATLAB/Si-mulink (MATLAB blockset). Dodatno realizovati date testove koristeći MATLAB toolbox.
RješenjeKao što smo prije rekli Simulink predstavlja vizuelni alat pomoću kojeg je moguće analizirati i simuliratikontinualne i diskretne sisteme. Simulink startamo sa komandom simulink u komandnom prozoruMATLAB-a ili klikom na ikonu u toolbaru meniju MATLAB radnog okruženja kao na slici 3.1.
Slika 3.1
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
34 SIGNALI I SISTEMI
Nakon pokretanja Simulinka, otvorit će se Simulink Library Browser (slika 3.2) unutar koga senalaze blokovi koji su asocirani sa odgovarajućim matematičkim modelima kontinualnih ili diskretnihsistema. Novi Simulink model kreiramo sa File ⇒ New ⇒ Model ili klikom na ikonu u toolbar traci(crvenom bojom slika 3.2). Modeli kontinualnih i diskretnih sistema označeni su jedinstvenim imenomi nalaze se u izvornoj listi na desnoj strani Simulink Library Browsera (plavom bojom slika 3.2).Svaki blok u izvornoj listi sadrži pod set blokova sa istim atributom kao npr izvori (sources) u podlistisadrži blokove : Radnom number, Signal generator, Sine Wave, Step itd. Blok iz podliste prebacujemou dokument tako što ga selektujemo sa lijevim klikom i držimo dok ga prenosimo na željeno mjesto uSimulink model. Blokove je moguće pretraživati prema njihovom imenu (narandžastom bojom slika3.2) stime što je uvijek potrebno prvo pozicionirati se na početak izvorne liste tj kliknuti na Simulinkprije pretrage.
Slika 3.2
a) Sistem y(t) = 5x(t) predstavlja idealno pojačalo sa pojačanjem 5. Prvo ćemo dizajnirati testza provjeru linearnosti sistema. Za sistem y(t) = f(x(t)) smo rekli da je linearan ako sistemzadovoljava osobine aditivnosti i homogenosti. Drugačije rečeno, sistem je linearan ako je odzivsistema na linearnu kombinaciju dva proizvoljna signala jednak linearnoj kombinaciji odziva ta dvasignala. Matematički zapisan uslov linearnosti je
Tαx1(t) + βx2(t) = αTx1(t)+ βTx2(t)
Uzet ćemo da su konstante α = 2 i β = 3 a modelovat ćemo ih sa blokom Gain kao i sam sistem. Zatestne signale uzet ćemo da je x1(t) = u(t) a modelujemo ga sa blokom Step i x2(t) = tu(t) = r(t)kojeg modelujemo sa blokom Ramp. Za prikaz izlaza sistema koristit ćemo blok Scope. Realizovanitest za linearnost prikazan je na slici 3.3.
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
SIGNALI I SISTEMI 35
Slika 3.3: MATLAB/Simulink model za test linearnosti sistema a)
Parametre pojedinih blokova moguće je mjenjati u postavkama koje se pojave nakon dvostrukogklika na željenih blok. Npr želimo da promjenimo pojačanje blok Gain sa 1 na 3. To ćemo uradititako što u polje Gain unesemo vrijednost 3 i potvrdimo sa Ok. Blokovi na slici 3.3 imaju inicijalnepostavke osim blokova Gain tj njihovog pojačanja. Blokovi To Workspace i Clock su opcioni a služeisključivo za eksportovanje rezultata simulacije u radno okruženje. Za ispravano eksportovanjerazultata simulacije potrebno je u postavkama blokova To Workspace i Clock promjeniti Saveformat u Array. Nakon realizacije sistema spremiti model pod imenom SSLab01a1.mdl. Zadnjiparametar koji trebamo odrediti je vrijeme trajanja simulacije. Vrijednost trajanja simulacije ćemouzeti da je 10 sekundi a unosimo ga u polje prikazano na slici 3.4 (crvenom bojom) ili kroz meniSimulation ⇒ Configuration Parameters ⇒ Stop time 10. Pokretanje simulacije izvodimokroz meni sa Simulation ⇒ Start (kombinacija tipki ctrl+t) ili kroz toolbar (plavom bojomslika 3.4).
Slika 3.4
0 2 4 6 8 100
50
100
150
t
y(t
)
(a) Linearna kombinacija odziva
0 2 4 6 8 100
50
100
150
t
y(t
)
(b) Odziv na linearnu kombinaciju
Slika 3.5
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
36 SIGNALI I SISTEMI
Nakon simulacije odzive sistema možemo vidjeti sa dvostrukim klikom na blok Scope. Korisnakomanda je autoscale koja vrši pravilno skaliranje grafika (plotova) a dostupna je iz toolbartrake Scope prozora. Broj simultanih signala koje želimo prikazati u bloku Scope određujemo saparametrom Number of axes u postavkama bloka Scope kao Parameters ⇒ Number of axes iza naš slučaj je to 2. Odzive sistema takođe možemo prikazati pozivom komande plot pošto smoeksportovali rezultate simulacije. U komandnom prozoru MATLAB-a pozvati sljedeće komande.
>> plot(t,y1);>> hold on>> plot(t,y2,'−−r');
Da li je dati sistem linearan? Pogledati odzive u oba slučaja slika 3.5.Sljedeća osobina sistema koju je potrebno provjeriti je vremenska invarijatnost. Kod testa vremen-ske invarijantnosti moramo provjeriti da li je odziv sistema na zakašnjeli ulaz jednak zakašnjelomodzivu. Vrijednost kašnjenja u oba slučaja mora biti ista kao i oblik ulaznog signala. Vrijednostkašnjenja je proizvoljna ali mi ćemo uzeti da je jedna sekunda. Jedan od načina realizacije kašnje-nja u Simulinku je pomoću bloka Transport Delay. Dvostrukim klikom na dati blok dobit ćemonjegove postavke a među kojima je i Time delay parametar koji određuje iznos kašnjenja i u našemslučaju je 1. Test za vremensku invarijantnost prikazan je na slici 3.6.
Slika 3.6: MATLAB/Simulink model za test vremenske invarijantnosti sistema a)
0 2 4 6 8 100
2
4
6
8
t
y(t
)
(a) Odziv sistema na zakašnjeli ulaz
0 2 4 6 8 100
2
4
6
8
t
y(t
)
(b) Zakašnjeli odziv sistema
Slika 3.7
Nakon realizacije modela spremiti ga pod imenom SSLab01a2.mdl. Vrijeme simulacije uzeti da jedeset sekundi.
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
SIGNALI I SISTEMI 37
Da li je dati sistem vremenski varijantan? Pogledati odzive u oba slučaja slika 3.7.Finalno trebamo dizajnirati test za provjeru stabilnosti sistema. Kod BIBO stabilnosti sistematrebamo provjeriti da li ograničen ulaz uzrokuje ograničen izlaz. Voditi računa da izlaz mora bitiograničen i kada t→∞. Test za stabilnost sistema prikazan je na slici 3.8.
Slika 3.8: MATLAB/Simulink model za test stabilnosti sistema a)
0 2 4 6 8 100
2
4
6
8
t
y(t
)
Slika 3.9: Odziv sistema na ograničen ulaz
Ako promjenimo vrijeme simulacije na 100 sekundi šta možemo uočiti? Da li je dati sistem stabilan?Ako bi zamjenili tip ulaznog signala sa Ramp šta možemo primjetiti?
b) Modeli testova za provjeru linearnosti, vremenske invarijantnosti i stabilnosti sistema y(t) = 4tx2(t)su iste kao i za prethodni sistem. Jedina razlika je u samoj realizaciji sistema koja zahtjeva upotrebuDot Product bloka sa inicijalnim postavkama.
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
38 SIGNALI I SISTEMI
Slika 3.10: MATLAB/Simulink model za test linearnosti sistema b)
Slika 3.11: MATLAB/Simulink model za test vremenske invarijantnosti sistema b)
Slika 3.12: MATLAB/Simulink model za test stabilnosti sistema b)
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
SIGNALI I SISTEMI 39
0 2 4 6 8 100
0.2
0.4
0.6
0.8
1 ·104
t
y(t
)
(a) Linearna kombinacija odziva
0 2 4 6 8 100
1
2
3
4 ·104
t
y(t
)
(b) Odziv na linearnu kombinaciju
Slika 3.13
0 2 4 6 8 100
10
20
30
t
y(t
)
(a) Odziv sistema na zakašnjeli ulaz
0 2 4 6 8 100
10
20
30
t
y(t
)
(b) Zakašnjeli odziv sistema
Slika 3.14
0 2 4 6 8 100
10
20
30
t
y(t
)
Slika 3.15: Odziv sistema na ograničen ulaz
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
40 SIGNALI I SISTEMI
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
Laboratorijska vježba 4
UvodU ovoj laboratorijskoj vježbi upoznat ćemo se sa veoma važnim postupkom u obradi signala a to jeakvizicija podataka i predstavlja adekvatan (digitalni) način prikupljanja podataka. Generisat ćemorazličite talasne oblike signala na različitim frekvencijama i posmatrati ih na osciloskopu te vršitiakviziciju na računaru.
Zadatak 4.1Potrebno je korištenjem signal generatora MA 3733 generisati sljedeće signale
a) Sinusni signal
• amplitude 1.5V, frekvencije 200Hz• amplitude 1.2V, frekvencije 50Hz
b) Povorku pravougaonih impulsa
• amplitude 1V, frekvencije 70Hz• amplitude 2V, frekvencije 30Hz
c) Povorku trougaonih impulsa
• amplitude 2.2V, frekvencije 80Hz• amplitude 2.5V, frekvencije 8Hz
Svaki od signala potrebno je prikazati na osciloskopu 3502C te izvršiti akvizijciju signala u MATLABradno okruženje preko mikrofonskog ili line in ulaza na audio kartici. Napisati funkciju za mjerenjefrekvencije importovanog signala. Spajanje opreme izvršiti prema shemi prikazanoj na slici 4.1.
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
42 SIGNALI I SISTEMI
RAČUNAR
OSCILOSKOP
SIGNAL GENERATOR
LINE IN
Slika 4.1
Oprema3502C predstavlja dvokanalni osciloskop a namjenjen je za analizu signala čija frekvencija ne prelazi20MHz. Osciloskop predstavlja mjerni instrument namjenjen za posmatranje talasnih oblika signala uvremenskom domenu. Opšte karakteristike osciloskopa 3502C su:
1. Vertikalni otklon
• Faktor otklona 5mV do 20V/Div na 12 opsega u 1-2-5 koraka sa finim tuniranjem• Propusni opseg: DC - 20MHz (-3dB)• Vrijeme porasta ≤ 17.5 ns• Preskok ≤ 8%• Ulazna impedansa šentovana za 20pF ± 3pF.• Modovi rada CH-A, CH-B, DUAL i ADD• Frekvencija odsjecanja ≈ 200kHz• Odvajanje kanala 60dB na 1kHz
2. Vremenska baza
• Okidanje automatsko ili vanjskim izvorom• Sweep Time 0.2µs - 0.5s/Div• Skaliranje 5x na svim opsezima
3. Okidanje
• Izvor INT, CH-B, LINE ili EXT• Pozitivna ili negativna ivica• Osjetljivost za interno okidanje ≥ 2Div• Osjetljivost za eksterno okidanje ≥ 1Vp-p
4. Horizontalni otklon
• Faktor otklona 5mV - 20V/Div na 12 opsega u 1-2-5 koraka sa finim tuniranjem.
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
SIGNALI I SISTEMI 43
• Frekventni odziv DC - 1MHz (-3dB)• Ulazna impedansa šentovana za 20pF ± 3pF• Maksimalni ulazni napon do 300V DC + AC ili 600Vp-p
5. Ostale karakteristike
• Kalibracija 0.5Vp-p ± 5% na 1 kHz sa povorkom pravougaonih impulsa• AC napajanje: 100V/120V/220V/240V, 50/60Hz, 19W• Težina ≈ 7kg.• Dimenzije 147(H) X 356(W) X 435(D) [mm]
Slika 4.2
1. Terminal za vertikalni ulaz kanal A
2. Preklopnik za blokiranje AC - GND - DC komponenti kanal A
3. Set prekidača za odabir prikaza jednog ili oba kanala
4. Regulator za podešavanje osjetljivosti V/Div kanal A
5. Dodatni atenuator za podešavanje osjetljivosti kanal A
6. Regulator za podešavanje vertikalne ose kanal A
7. Regulator za podešavanje horizontalne ose kanal A
8. Dodatno pojačanje – sweep time x5
9. Horizontalni regulator za sweep time
10. Dodatni regulator za sweep time
11. Eksterno okidanje
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
44 SIGNALI I SISTEMI
12. Kalibracija
13. Podešavanje nivoa okidanja
14. Auto sweep
15. Podešavanje polariteta strmine
16. Sprezanje
17. GND
18. Selektor signala za sinhronizaciju
19. Prekidač za napajanje osciloskopa
20. Regulator za fokus
21. Regulator za intenzitet
22. Trace(trag) regulator
23. Regulator za podešavanje vertikalne ose kanal B
24. Prekidač za invertovanje polariteta kanal B
25. Regulator za podešavanje osjetljivosti V/Div kanal B
26. Dodatni atenuator za podešavanje osjetljivosti kanal B
27. Terminal za vertikalni ulaz kanal B
28. Preklopnik za blokiranje AC – GND – DC komponenti kanal B
29. Prekidač za prelaz iz moda ”osciloskop” u mod testiranje komponenti
Slika 4.3: Sonda OP20
SONDA OP20 (za osciloskop)
a) Ulazni kapacitet osciloskopa
• 15pF• 40pF
b) Atenuacija
• 1:1• 1:10
c) Ulazni kapacitet sonde
• 72.5pF ±10%• 17.5pF ±1%
d) Unutrašnji otpor
• 237Ω ± 10• 9MΩ ± 1
e) Propusni opseg
• 15MHz (±3dB)
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
SIGNALI I SISTEMI 45
• 60MHz (±3dB)
f) Maksimalni ulazni napon
• 500V• 300V
g) Dužina sonde: 110mm
h) Dužina kabla sonde: 140cm
Signal generator MA3733 omogućuje generisanje signala sa tri različita talasna oblika: sinusni, trouga-oni i pravougaoni. Za svaki od signala nivo amplitude je moguće mjenjati u opsegu od 0 do 10V te jeomogućena dodatna atenuacija AC komponente za -20dB. MA3733 omogućuje dodavanje DC kompo-nente u AC signal u opsegu od -10V do 10V. Frekventni opseg signal generatora je od DC do 10kHzsa korakom 10x. Fino tuniranje frekvencije moguće je preko glavnog regulatora sa korakom 1/100maksimuma podešenog opsega.
Opis MATLAB funkcija neophodnih za izvođenje vježbe
analoginput() Kreira objekta tipa analog input asociranog sa istoimenim adapterom.Funkcija uzima jedan argumenat koji predstavlja driver za sound adap-ter. Adapter za našu vježbu je ’winsound’.
addchannel() Funkcija prima dva argumenta: OBJ i HWCH. Prvi argumenat je adap-ter kreiran sa funkcijom analoginput() a drugi broj kanala koji želimokoristit za odabrani adapter. U ovoj vježbi koristimo jedan kanal.
set() Funkcija prima tri argumenta: H - handle (poseban tip pokazivača),osobinu kao string i njenu vrijednost. Funkcija služi za podešavanjeparametara adaptera specificiranog sa handlom H. Za ovu vježbu bitnaje osobina adaptera ’SampleRate’ koja predstavlja frekvenciju uzorko-vanja i osobina ’SamplesPerTrigger’ koja predstavlja broj generisanihuzoraka po pozivu getdata. Frekvencija uzorkovanja i broj uzoraka popozivu getdata funkcije je 8000.
start() Funkcija prima jedan argumenat koji predstavlja handle adaptera i služiza pokretanja adaptera.
getdata() Funkcija uzima dva parametra, objekat i njegovu vrijednost a vraćaspecificirani broj podataka definisan sa vrijednošću iz objekta.
U nastavku dat je MATLAB kod za akviziciju podatka sa audio adaptera.
duration = 1;% duzina trajanja bloka podatakaFs = 8000;% frekvencija uzorkovanja signalaA=7;t=0:1/Fs:(1−1/Fs);w=0:1:(Fs−1);% inicijalizacija i konfiguracija audio adapteraAI = analoginput('winsound');% inicijalizacija jednog kanalaaddchannel(AI, 1);% setovanje frekvencije uzorkovanjaset (AI, 'SampleRate', Fs);% setovanje velicine bloka podataka
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
46 SIGNALI I SISTEMI
set(AI, 'SamplesPerTrigger', Fs);% pocetak akvizicijefor i=1:1:5
start(AI);data = getdata(AI);if i==1
val=data;else
val=[val data];endsubplot(2,1,1)% skaliranje amplitude tako da odgovara stvarnoj vrijednostidata=data*A;% odredjivanje frekvencije signalaN=0;a=0;if(data(1)>0)
a=2;else
a=1;endn=2;while(n<size(data,1))
if(data(n)>0)if(a==1)
a=2;N=N+1;n=n+5;
endelseif(data(n)<0)
if(a==2)a=1;N=N+1;n=n+5;
endendn=n+1;
endplot(t',data)xlabel('t(s)')ylabel('x(t)')title(sprintf('f = %.1f Hz',(N−1)/2));% prikaz spektra signalamag = spektar(data,Fs);subplot(2,1,2)plot(w(1:500),mag);xlabel('f(Hz)')ylabel('|X(f)|_dBm')pause(0.05);stop(AI);end
disp('−−> Brisanje objekta Analog Input')delete(AI);
Spektar signala moguće je odrediti pozivom funkcije spektar.
function mag = spektar(data,fs)xfft = abs(fft(data));% konverzija u dBmmag = 20*log10(xfft);% odsjecanje nepotrebnih podatakamag=mag(1:500);
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
SIGNALI I SISTEMI 47
0 5 · 10−31 · 10−21.5 · 10−22 · 10−22.5 · 10−23 · 10−2−2
−1
0
1
2
t(s)
x(t
)
(a) Talasni oblik signala x(t)
0 100 200 300 400 500
0
20
40
60
80
f(Hz)
|X(f
)|
(b) Amplitudni spektar signala x(t)
Slika 4.4: Sinusni signal f = 200Hz
0 2 · 10−2 4 · 10−2 6 · 10−2 8 · 10−2 0.1
−1
−0.5
0
0.5
1
t(s)
x(t
)
(a) Talasni oblik signala x(t)
0 100 200 300 400 500
0
20
40
60
80
f(Hz)
|X(f
)|
(b) Amplitudni spektar signala x(t)
Slika 4.5: Sinusni signal f = 50Hz
0 2 · 10−3 4 · 10−3 6 · 10−3 8 · 10−3 1 · 10−2
−1
−0.5
0
0.5
1
t(s)
x(t
)
(a) Talasni oblik signala x(t)
0 100 200 300 400 500
0
20
40
60
f(Hz)
|X(f
)|
(b) Amplitudni spektar signala x(t)
Slika 4.6: Povorka trougaonih impulsa f = 70Hz
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
48 SIGNALI I SISTEMI
0 2 · 10−3 4 · 10−3 6 · 10−3 8 · 10−3 1 · 10−2
−2
−1
0
1
2
t(s)
x(t
)
(a) Talasni oblik signala x(t)
0 100 200 300 400 500
0
20
40
60
80
f(Hz)
|X(f
)|
(b) Amplitudni spektar signala x(t)
Slika 4.7: Povorka trougaonih impulsa f = 730Hz
0 2 · 10−3 4 · 10−3 6 · 10−3 8 · 10−3 1 · 10−2
−2
−1
0
1
2
3
t(s)
x(t
)
(a) Talasni oblik signala x(t)
0 100 200 300 400 500
20
40
60
80
f(Hz)
|X(f
)|
(b) Amplitudni spektar signala x(t)
Slika 4.8: Povorka pravougaonih impulsa f = 80Hz
0 2 · 10−2 4 · 10−2 6 · 10−2 8 · 10−2 0.1
−0.4
−0.2
0
0.2
0.4
0.6
t(s)
x(t
)
(a) Talasni oblik signala x(t)
0 100 200 300 400 500
0
20
40
60
f(Hz)
|X(f
)|
(b) Amplitudni spektar signala x(t)
Slika 4.9: Povorka pravougaonih impulsa f = 80Hz
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
Laboratorijska vježba 5
Zadatak 5.1Nacrtati sljedeće signale
1. x(t) = tu(t)− tu(t− 2)
2. x(t) = e0.5tu(t− 1)− e0.5tu(t− 3)
3. x(t) = (t+ 1)[u(t+ 1)− u(t)] + (1− t)[u(t)− u(t− 1)]
a zatim za svaki od signala izvršiti sljedeće transformacije nezavisno promjenljive
a) x(t− 2)
b) x(t+ 3)
c) x(−t)
d) x(t/2)
e) x(1− t/2)
Dati odgovoren na sljedeća pitanja
a) Da li neka od navedenih operacija transformacije nezavisno promjenljive ima praktičnu primjenu?Navesti par primjera u stvarnom svijetu.
b) Koje od navedenih operacija nije moguće izvesti u realnom svijetu?
c) Pokušati predložiti električno kolo koje realizuje date transformacije.
Rješenje
clear allclose allclc
t = −5:0.05:5;x = t.*(stepfun(t,0)−stepfun(t,2));subplot(3,2,1)plot(t,x,'b','LineWidth',2)axis([−5 5 0 2])xlabel('t')ylabel('x(t)')
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
50 SIGNALI I SISTEMI
grid on
x = (t−2).*(stepfun(t,2)−stepfun(t,4));subplot(3,2,2)plot(t,x,'r','LineWidth',2)axis([−5 5 0 2])xlabel('t')ylabel('x(t−2)')grid on
x = (t+3).*(stepfun(t,−3)−stepfun(t,−1));subplot(3,2,3)plot(t,x,'m','LineWidth',2)axis([−5 5 0 2])xlabel('t')ylabel('x(t+3)')grid on
x = (−t).*(stepfun(t,−2)−stepfun(t,0));subplot(3,2,4)plot(t,x,'k','LineWidth',2)axis([−5 5 0 2])xlabel('t')ylabel('x(−t)')grid on
x = (t/2).*(stepfun(t,0)−stepfun(t,4));subplot(3,2,5)plot(t,x,'g','LineWidth',2)axis([−5 5 0 2])xlabel('t')ylabel('x(t/2)')grid on
x = (1−t/2).*(stepfun(t,−2)−stepfun(t,2));subplot(3,2,6)plot(t,x,'c','LineWidth',2)axis([−5 5 0 2])xlabel('t')ylabel('x(1−t/2)')grid on
−4 −2 0 2 4
0
1
2
t
x(t
)
(a)
−4 −2 0 2 4
0
1
2
t
x(t−
2)
(b)
−4 −2 0 2 4
0
1
2
t
x(t
+3)
(c)
Slika 5.1
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
SIGNALI I SISTEMI 51
−4 −2 0 2 4
0
1
2
t
x(−t)
(a)
−4 −2 0 2 4
0
1
2
t
x(t/2)
(b)
−4 −2 0 2 4
0
1
2
t
x(1−t/
2)
(c)
Slika 5.2
Zadatak 5.2Koristeći ugrađenu MATLAB funkciju conv odrediti konvoluciju signala x(t) = (t+1)(u(t+1)−u(t))+(1− t)(u(t)−u(t−1)) i h(t) = u(t)−u(t−2). Nacrtati signale x(t), h(t) i y(t). Voditi računa o dužinivektora y(t). Dati odgovoren na sljedeća pitanja
a) Zašto vektor y(t) ima veći broj elemenata nego x(t) i h(t)?
b) Kovolucija se može primjeniti za određivanje odziva koje grupe sistema?
c) Za određivanje odziva sistema pomoću konvolucije neophodno je poznavati jedan podatak. Koji jeto podatak?
Rješenje
clear allclose allclc
t=−4:0.01:4;x=(1+t).*(stepfun(t,−1)−stepfun(t,0))+(1−t).*(stepfun(t,0)−stepfun(t,1));h=stepfun(t,0)−stepfun(t,2);y=conv(x,h);
subplot(3,1,1)plot(t,x)xlabel('t')ylabel('x(t)')axis([−4 4 0 max(x)*1.2])
subplot(3,1,2)plot(t,h,'r')xlabel('t')ylabel('h(t)')axis([−4 4 0 max(h)*1.2])
y=y(501:(size(y,2)−300))*0.01;subplot(3,1,3)plot(t,y,'k')axis([−6 6 0 max(y)*1.3])xlabel('t')ylabel('y(t)')
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
52 SIGNALI I SISTEMI
−3 −2 −1 0 1 2 3−0.5
0
0.5
1
1.5
t
x(t
)
(a)
−3 −2 −1 0 1 2 3−0.5
0
0.5
1
1.5
t
h(t
)
(b)
−3 −2 −1 0 1 2 3−0.5
0
0.5
1
1.5
t
y(t
)
(c)
Slika 5.3
Zadatak 5.3Koristeći MATLAB odrediti konvoluciju sljedećih signala
a) x(t) = u(t)− u(t− 3) i h(t) = u(t)− u(t− 2)
b) x(t) = t(u(t)− u(t− 3)) i h(t) = u(t)− u(t− 1)
c) x(t) = t(u(t)− u(t− 2)) i h(t) = e−t(u(t− 1)− u(t− 3))
a zatim nacrtati svaki od signala. Dati odgovore na sljedeća pitanja
a) Konvolucija dva kontinualna signala konačnog trajanja je signal kakav po trajanju? Šta ako jejedan od signala beskonačnog trajanja?
b) Analizirati slučaj a) kada se u širina signala x(t) smanjuje. Šta možemo primjetiti? Ako bi pro-mjenili talasni oblik signala x(t) = e−t(u(t− 1)− u(t− 3)) da li bi imali istu situaciju?
c) Konvolucija delta impulsa sa bilo kojim signalom kao rezultat daje koji signal? Kakva je situacijasa pomjerenim delta impulsom?
Rješenje
clear allclose allclc
% vremenska granulacijatstep=0.01;% korak simulacijeN=10;% vremenska pauza (sec) za simulacijutdelay=0.2;t=−6:0.01:6;
x=stepfun(t,0)−stepfun(t,3);%x=t.*(stepfun(t,0)−stepfun(t,2));%x=exp(−t).*(stepfun(t,1)−stepfun(t,2));
h=(stepfun(t,0)−stepfun(t,2));%h=exp(−t).*(stepfun(t,−1)−stepfun(t,3));%h=t.*(stepfun(t,0)−stepfun(t,2));
hr=rot90(rot90(h));Ns=400;
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
SIGNALI I SISTEMI 53
hr=[hr((Ns+1):size(hr,2)) zeros(1,Ns)];y=conv(x,h);tsize=size(t,2)/2;yr=y((tsize):size(y,2))*tstep;yr=yr(1:(size(yr,2)−tsize+1));[xmax xmval]=max(x);[hmax hmval]=max(h);[ymax ymval]=max(yr);
jstep=tstep*N;fh=figure(1);n=1;for i=−4:jstep:5.9;
%close allclf(fh)subplot(4,1,1)plot(t,x)xlabel('t')ylabel('x(t)')axis([−6 6 0 xmax*1.2])
subplot(4,1,2)plot(t,h,'r')xlabel('t')ylabel('h(t)')axis([−6 6 0 hmax*1.2])
subplot(4,1,3)plot(t,x)hold onplot(t,hr,'r')xlabel('\tau')ylabel('x(\tau)h(t−\tau)')axis([−6 6 0 max(xmax,hmax*1.2)])
subplot(4,1,4)yp=[yr(1:(200+n*N)) zeros(1,(size(yr,2)−(200+N*n)))];plot(t,yp)axis([−6 6 0 ymax*1.3])xlabel('t')ylabel('y(t)')pause(tdelay)hr=[zeros(1,N) hr(1:(size(hr,2))−N)];n=n+1;
end
−1 0 1 2 3 4 5−0.5
0
0.5
1
1.5
t
x(t
)
(a)
−1 0 1 2 3 4 5−0.5
0
0.5
1
1.5
t
h(t
)
(b)
−1 0 1 2 3 4 5
0
1
2
t
y(t
)
(c)
Slika 5.4: Konvolucija za slučaj a)
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
54 SIGNALI I SISTEMI
−1 0 1 2 3 4 5
0
1
2
t
x(t
)
(a)
−1 0 1 2 3 4 5−0.5
0
0.5
1
1.5
t
h(t
)
(b)
−1 0 1 2 3 4 5
0
1
2
3
t
y(t
)
(c)
Slika 5.5: Konvolucija za slučaj b)
−1 0 1 2 3 4 5
0
1
2
t
x(t
)
(a)
−1 0 1 2 3 4 5−0.5
0
0.5
1
1.5
t
h(t
)
(b)
−1 0 1 2 3 4 5−0.5
0
0.5
1
1.5
t
y(t
)
(c)
Slika 5.6: Konvolucija za slučaj c)
clear allclose allclc
% vremenska granulacijatstep=0.01;% korak simulacijeN=10;% vremenska pauza (sec) za simulacijutdelay=0.2;t=−4:0.01:4;
h=(stepfun(t,0)−stepfun(t,2));fh=figure(1);for i=1:100
x=stepfun(t,0)−stepfun(t,3/i);%x=exp(−t).*(stepfun(t,0)−stepfun(t,3/i));y=conv(x,h);tsize=size(t,2)/2;yr=y((tsize):size(y,2))*tstep;yr=yr(1:(size(yr,2)−tsize+1));
clf(fh)subplot(3,1,1)plot(t,x)xlabel('t')ylabel('x(t)')axis([−6 6 0 max(x)*1.2])
subplot(3,1,2)plot(t,h,'r')xlabel('t')ylabel('h(t)')axis([−6 6 0 max(h)*1.2])
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
SIGNALI I SISTEMI 55
subplot(3,1,3)plot(t,yr)axis([−6 6 0 max(yr)*1.3])xlabel('t')ylabel('y(t)')pause(tdelay)
end
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
56 SIGNALI I SISTEMI
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
Laboratorijska vježba 6
Zadatak 6.1Odrediti izlaz sistema opisanog diferencijalnom jednačinom
d2y(t)dt2
+ 3dy(t)dt
+ 2y(t) = dx(t)dt
ako su početni uslovi y′(0) = 1 i y(0) = 0 a ulaz
a) x(t) = t2u(t)
b) x(t) = u(t)
c) x(t) = sin(t)u(t)
d) x(t) = (t2 + 5t+ 3)u(t)
e) x(t) = 10e−3tu(t)
Dati odgovore na sljedeća pitanja:
a) Objasniti šta predstavlja homogeno rješenje diferencijalne jednačine a šta partikularno rješenjediferencijalne jednačine?
b) Objasništi šta predstavlja odziv sistema na nulto stanje (zero state response) i odziv sistema nanulti ulaz (zero imput response).
c) Da li postoji veza između prethodne dvije grupe rješenja diferencijalne jednačine?
d) Šta obezbjeđuje uslov početnog mirovanja?
RješenjeZa rješavanje date diferencijalne jednačine koristit ćemo simoblički račun MATLAB-a i ugrađenu funk-ciju dsolve.
clear allclose allclc
tstep=0.2;tt=0:tstep:10;% prvi arg f−je dsolve je simbolicki zapis dif. jednacine% drugi treci ... arg predstvljaju pocetne uslove% detaljan opis sa help dsolvex = tt.^2.*stepfun(tt,0);
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
58 SIGNALI I SISTEMI
y = dsolve('D2y+3*Dy+2*y=2*t','y(0)=0','Dy(0)=1')n=1;y_val=0;for t=tt(1):tstep:tt(end)
y_val(n)=eval(y);n=n+1;
end
subplot(2,1,1)plot(tt,x);xlabel('t')ylabel('x(t)')subplot(2,1,2)plot(tt,y_val,'r');xlabel('t')ylabel('y(t)')
0 2 4 6 8 100
2
4
6
8
10
t
y(t
)
(a)
0 2 4 6 8 10−0.6
−0.4
−0.2
0
0.2
0.4
0.6
t
y(t
)
(b)
0 2 4 6 8 10
−0.4
−0.2
0
0.2
0.4
t
y(t
)
(c)
Slika 6.1
Odziv sistema je moguće odrediti upotrebom lsim funkcije uz nulte početne uslove. Za dio zadatkaa) na sljedeći način.
clear allclose allclc
tstep=0.2;t=0:tstep:10;
% koeficijenti na lijevoj strani diferencijalne jednacinea=[1 3 2];% koeficijenti na desnoj strani diferencijalne jednacineb=[1 0];x = t.^2.*stepfun(t,0);
% definisanje sistemasys=tf(b,a);y = lsim(sys,x,t);% za starije verzije MATLAB−a% y = lsim(b,a,x,t);
subplot(2,1,1)plot(t,x);xlabel('t')ylabel('x(t)')subplot(2,1,2)plot(t,y,'r');xlabel('t')ylabel('y(t)')
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
SIGNALI I SISTEMI 59
Zadatak 6.2Odrediti impulsni odziv sistema opisanih diferencijalnim jednačinama
a) dy(t)dt
+ 2y(t) = x(t)
b) d2y(t)dt2
+ 3dy(t)dt
+ 2y(t) = dx(t)dt
c) d2y(t)dt2
+ 5dy(t)dt
+ 6y(t) = 5x(t)
uz nulte početne uslove. Analitički potvrditi rezultate. Dati odgovore na sljedeća pitanja
a) Da li će se razlikovati impulsni odziv sistema sa odzivom sistema na pomjereni delta impuls δ(t−1)i δ(t− 3)? Potvrditi rješenje analitički i kodom.
b) Da li možemo odrediti odziv sistema na pomjereni delta impuls δ(t+ 1) sa funkcijom impulse? Dali možemo na neki drugi način?
c) Za sve sisteme napraviti MATLAB/Simulink model i odrediti impulsni odziv.
RješenjeJedan pristup određivanju impulsnog odziva sistema je preko aproksimiranog delta impulsa. Delta im-puls ćemo aproksimirati pravougaonim impulsom površine jedan ali konačnog trajanja. Smanjivanjemširine impulsa približavat ćemo se stvarnom delta impulsu.
clear allclose allclc
tstep=0.01;t=−2:tstep:4;
% koeficijenti na lijevoj strani diferencijalne jednacinea=[1 2];% koeficijenti na desnoj strani diferencijalne jednacineb=[1];
% mjenjati sirinu pravougaonog impulsa tw kako bi se priblizili delta impulsutw=0.01;% aproksimirani delta impulsx = (stepfun(t,0)−stepfun(t,tw))/tw;
% definisanje sistemasys=tf(b,a);y = lsim(sys,x,t);
subplot(2,1,1)plot(t,x);xlabel('t')ylabel('x(t)')title('Aproksimirani delta impuls')subplot(2,1,2)plot(t,y,'r');xlabel('t')ylabel('y(t)')title('Odziv sistema na aproksimirani delta impuls')
Drugi pristup određivanja impulsnog odziva sistema zapisanog preko diferencijalnih jednačina je prekougrađene funkcije impulse.
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
60 SIGNALI I SISTEMI
−2 −1 0 1 2 3 4
0
50
100
t
y(t
)
(a) Ulazni signal - aproksimacija
0 1 2 3 4
0
0.5
1
t
y(t
)
(b) Impulsni odziv preko aproksima-cije
0 1 2 3 4
0
0.5
1
t
y(t
)
(c) Impulsni odziv sa impulse
Slika 6.2
[y2,t2]=impulse(sys,4);figure(2)plot(t2,y2,'k');xlabel('t')ylabel('y(t)')title('Odziv sistema na delta impuls')
Da bi napravili MATLAB/Simulink model potrebna nam je eksplicitna veza između ulaza i izlaza.Eksplicitnu vezu ćemo dobiti rješavanjem diferencijalne jednačine. Međutim, za realizaciju MATAL-B/simulink modela to nećemo raditi, nego ćemo diferencijalnu jednačinu integrirati onoliko puta kojegje reda diferencijalna jednačina. Za sistem a) imamo
dy(t)dt
+ 2y(t) = x(t)
Nakon intergriranja
y(t) = x(t)− 2∫ t
0y(τ)dτ
Na slici 6.3 imamo realizaciju sistema. Step time step blokova su 0 i 0.1.
Slika 6.3: MATLAB/Simulink model za sistem a)
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
SIGNALI I SISTEMI 61
Slika 6.4: MATLAB/Simulink model za sistem b)
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
62 SIGNALI I SISTEMI
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
Laboratorijska vježba 7
Zadatak 7.1Koristeći MATLAB funkciju laplace odrediti i nacrtati Laplaceovu transformaciju sljedećih signala
a) x(t) = u(t)
b) x(t) = e−tu(t)
c) x(t) = u(t)− u(t− 2)
d) x(t) = t(u(t)− u(t− 1) + (2− t)(u(t− 1)− u(t− 2))
e) x(t) = te−tu(t)
f) x(t) = 0.5t sin(2πt)
Dati odgovor na sljedeća pitanja
a) Objasniti razliku između bilateralne i unilateralne Laplaceove transformacije.
b) Za analizu kojih sistema se koristi unilateralna Laplaceova transformacija?
c) Objasniti pojam oblast konvergencije Laplaceove transformacije.
d) Na kojoj ideji se zasniva Laplaceova transformacija?
e) Laplaceova transformacija je pogodna za analizu sistema tokom kojeg stanja? Zašto?
Rješenje
clear allclose allclc
% simbolicke varijable t i ssyms t sx=sym('Heaviside(t)');%x=sym('Heaviside(t)−Heaviside(t−2)');%x=sym('exp(−t)*Heaviside(t)');%x=sym('t*exp(−t)*Heaviside(t)');
% Laplaceova transformacijaX=laplace(x);pretty(X)
tt=−4:0.01:4;
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
64 SIGNALI I SISTEMI
x_val=0;for i=1:size(tt,2)
t=tt(i);x_val(i)=eval(x);if (isnan(x_val(i))==1)
x_val(i)=0;end
end
% s = sigma + j*omega% X(s) mozemo nacrtati za konkretne vrijednosti sigme i omege% a) oblast konvergencije X(s) je Res > 0, uzmimo da je sigma=0.5sigma=0.5omega=−5:0.05:5;ss=sigma+j*omega;for i=1:size(ss,2)
s=ss(i);X_val(i)=eval(X);
end
figure(1)subplot(2,1,1)plot(tt,x_val);xlabel('t')ylabel('x(t)')title('Signal x(t) − vremenski domen')subplot(2,1,2)plot(real(X_val),imag(X_val),'r');xlabel('Re(X(s))')ylabel('Im(X(s))')title('Signal X(s) − frekventni(s) domen')
% X(s) cemo predstaviti u 3D ravni uz napomenu da Res>0sigma=0:0.05:5;omega=sigma;X_val=0;for m=1:size(sigma,2)
for n=1:size(omega,2)s=sigma(m)+j*omega(n);X_val(m,n)=eval(X);
endendfigure(2)mesh(sigma,omega,abs(X_val))xlabel('Re(s)')ylabel('Im(s)')zlabel('|X(s)|')title('Amplituda funkcije X(s)')
figure(3)mesh(sigma,omega,angle(X_val))xlabel('Re(s)')ylabel('Im(s)')zlabel('arg(X(s))')title('Faza funkcije X(s)')
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
SIGNALI I SISTEMI 65
−4 −2 0 2 4−0.5
0
0.5
1
1.5
t
x(t
)
(a)
0 0.5 1 1.5 2
−1
−0.5
0
0.5
1
Re(X(s))
Im
(X(s
))
(b)
Slika 7.1: Laplaceova transformacija signala a)
Zadatak 7.2Koristeći MATLAB funkciju ilaplace odrediti inverznu Laplaceovu transformaciju sljedećih funkcija
a) X(s) = 1s+ 1 ROC: Res ≥ −1
b) X(s) = 1s2 + 3s+ 2 ROC: Res ≥ −3
c) X(s) = sest
s2 + 1 ROC: Res ≥ 0
d) X(s) = s+ 1s
ROC: Res ≥ 0
a zatim nacrtati dobijene signale.
a) Da li svakoj funkciji u s domenu odgovara samo jedna funkcija u t domenu? Objasniti kada to nijeslučaj.
b) Šta je to svojstvena funkcija sistema?
Rješenje
clear allclose allclc
syms t sX=sym('1/(s+1)');
% inverzna Laplaceova transformacijax=ilaplace(X);pretty(x)
tt=0:0.01:4;x_val=0;for i=1:size(tt,2)
t=tt(i);
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
66 SIGNALI I SISTEMI
x_val(i)=eval(x);if (isnan(x_val(i))==1)
x_val(i)=0;end
end
% oblast konvergencije X(s) je Res > −1, uzmimo da je sigma=0.5sigma=0.5omega=0:0.1:5;ss=sigma+j*omega;for i=1:size(ss,2)
s=ss(i);X_val1(i)=eval(X);
end
figure(1)subplot(2,1,1)plot(tt,x_val);xlabel('t')ylabel('x(t)')title('Signal x(t) − vremenski domen')subplot(2,1,2)plot(real(X_val1),imag(X_val1),'r');xlabel('Re(X(s))')ylabel('Im(X(s))')title('Signal X(s) − frekventni(s) domen')
% X(s) cemo predstaviti u 3D ravni uz napomenu da Res>−1sigma=−2:0.1:5;omega=sigma;X_val=0;h=1;
for m=1:size(sigma,2)for n=1:size(omega,2)
s=sigma(m)+j*omega(n);X_val(m,n)=eval(X);if (isnan(X_val(m,n))==1)
s=sigma(m+1)+j*omega(n);X_val(m,n)=eval(X);endif (isinf(X_val(m,n))==1)
s=sigma(m+1)+j*omega(n);X_val(m,n)=eval(X);
endend
end
figure(2)mesh(sigma,omega,abs(X_val))xlabel('Re(s)')ylabel('Im(s)')zlabel('|X(s)|')title('Amplituda funkcije X(s)')
figure(3)mesh(sigma,omega,angle(X_val))xlabel('Re(s)')ylabel('Im(s)')zlabel('arg(X(s))')title('Faza funkcije X(s)')
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
SIGNALI I SISTEMI 67
Zadatak 7.3Za sistem prikazan na slici 7.2 dati odgovore na sljedeća pitanja
a) Šta predstavlja Laplaceova transformacija impulsnog odziva sistema?
b) Odrediti prenosnu funkciju cijelog sistema.
c) Odrediti odziv sistema na step signal.
d) Odrediti impulsni odziv sistema koristeći MATLAB toolbox.
e) Odrediti impulsni odziv sistema koristeći MATLAB blockset.
f) Odrediti odziv sistema ako je ulaz x(t) = sin(2πt)
g) Objasniti pojam stabilnosti sistema. Ako je sistem stabilan za jedna signal da li to znači da jestabilan za sve signale? Objasniti.
h) Da li se nestabilni sistemi negdje koriste? Navesti par primjera stabilnih i nestabilnih sistema uprirodi.
i) Odrediti da li su podsistemi h1(t), h2(t) i h3(t) stabilni na osnovu njihovih prenosnih funkcija? Dali je cjelokupan sistem stabilan?
j) Odrediti da li su podsistemi h1(t), h2(t) i h3(t) kauzalni na osnovu njihovih prenosnih funkcija?Da li je cjelokupan sistem kauzalan?
k) Šta kauzalnost sistema obezbjeđuje? Da li su nam korisni akauzalni sistemi? Navesti par primjerakauzalnih i akauzalnih sistema u prirodi.
Poznato je h1(t) = te−tu(t), h1(t) = e−2tu(t) i h3(t) = e−tu(t− 2).
x(t)
h1(t)
h3(t)
h2(t)
+ y(t)
Slika 7.2: Kontinualni sistem.
Rješenje
clear allclose allclc
% ukupno vrijeme simulacijetstop=10;syms t sh1=sym('t*exp(−t)*Heaviside(t)');h2=sym('exp(−2*t)*Heaviside(t)');h3=sym('exp(−t)*Heaviside(t−2)');
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
68 SIGNALI I SISTEMI
% Laplaceova transformacija impulsnih odzivaH1=laplace(h1);pretty(h1)H2=laplace(h2);pretty(h2)H3=laplace(h3);pretty(h3)
% prenosna funkcija cijelog sistemaH=H1*H2+H3;pretty(H)
xs=sym('Heaviside(t−1)');X=laplace(xs);Y=H*X;ys=ilaplace(Y);pretty(ys);
% impulsni odziv sistemah=ilaplace(H);
tt=0:0.1:tstop;h_val=0;for i=1:size(tt,2)
t=tt(i);h_val(i)=eval(h);if (isnan(h_val(i))==1)
h_val(i)=h_val(i−1);end
end
% ulazni signal u sistem (step signal) − t domenx=stepfun(tt,1);
% odziv sistemay=conv(x,h_val)*0.01;
y_val=0;for i=1:size(tt,2)
t=tt(i);y_val(i)=eval(ys);if (isnan(y_val(i))==1)
y_val(i)=h_val(i−1);end
end
figure(1)subplot(4,1,1)plot(tt,h_val,'r');xlabel('t')ylabel('h(t)')title('Impulsni odziv cjelokupnog sistema')subplot(4,1,2)plot(tt,x);xlabel('t')ylabel('x(t)')title('Ulaz sistema')subplot(4,1,3)t=linspace(0,tstop*2,size(y,2));plot(t,y,'k');xlabel('t')ylabel('y(t)')title('Odziv sistema dobijen u t domenu')t=linspace(0,tstop,size(y_val,2));subplot(4,1,4)plot(t,y_val,'m');xlabel('t')ylabel('y(t)')
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
SIGNALI I SISTEMI 69
title('Odziv sistema dobijen u s domenu')
Objasniti zašto se odzivi na slikama 7.4 razlikuju? Za koji vremenski interval su isti i zašto?
0 2 4 6 8 10−0.5
0
0.5
1
1.5
t
x(t
)
(a)
0 2 4 6 8 10
0
0.2
0.4
t
h(t
)
(b)
Slika 7.3
0 5 10 15 20−0.2
0
0.2
0.4
0.6
0.8
1
t
y(t
)
(a)
0 2 4 6 8 10−0.2
0
0.2
0.4
0.6
0.8
1
t
y(t
)
(b)
Slika 7.4
MATLAB/Simulink model sistema datog na slici 7.2 dat je na slici 7.5.
U MATLAB/Simulink modelu prikazanom na slici 7.5 korišten je blok Transfer Fcn koji predstavljaprenosnu funkciju sistema u s domenu. U postavkama bloka Transfer Fcn u polje Numerator co-efficient unosimo vektor čiji su elementi koeficijenti polinoma u brojiocu prenosne funkcije, a u poljeDenumerator coefficient unosimo vektor čiji su elementi koeficijenti polinoma u imeniocu prenosnefunkcije. Prenosne funkcije možemo vidjeti kucanjem u MATLAB komandnom prozoru H1 i H2 i H3.Vrijednost kašnjenja bloka Transpor delay je dvije sekunde. Odzive dobijene u toolbox-u i bloksetumožemo provjeriti tako što ćemo pokrenu simulaciju u toolbox-u pa simulaciju u bloksetu. Nakon togau MATLAB komandnom prozoru pozvati sljedeće naredbe
plot(t,y_val)hold onplot(t_sim,y_sim,'−−r')
Ponoviti isto za impulsni odziv sistema kao i odziv sistema na sinusni signal.
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
70 SIGNALI I SISTEMI
Slika 7.5
Zadatak 7.4Koristeći MATLAB blockset nacrtati odzive sljedećih sistema na step signal
a) X(s) = 1(s+ 1)(s+ 2) ROC: Res ≥ −1
b) X(s) = 1(s− 1)(s+ 2) ROC: −2 ≥ Res ≤ 1
c) X(s) = 2s+ 3 ROC: Res ≥ −3
d) X(s) = 2s− 3 ROC: Res ≥ 3
a) Koji od navedenih sistema je stabilan a koji kauzalan?
b) Da li oblast konvergencije sadrži polove prenosne funkcije?
c) Polovi stabilnog i kauzalnog sistema leže u kojem djelu s ravni?
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
Laboratorijska vježba 8
Zadatak 8.1Neka je dat signal
x(t) =∞∑
n=−∞u(t− nT0)− u(t− 1− nT0)
gdje je T0 = 2s. Dati odgovore na sljedeća pitanja
a) Koji tip signala predstavljamo sa Fourierovim redom?
b) Koje uslove signal x(t) mora zadovoljavati da bi postojao njegov Fourierov red? Navesti ih.
c) Kakva je veza između koeficijenta Fourierovog reda i amplitudnog i faznog spektra signala x(t)?
d) Objasniti fizičko značenje amplitudnog i faznog spektra.
e) Amplitudni i fazni spektar su kakve funkcije?
f) Nacrtati signal x(t).
g) Signal x(t) spada u koju grupu signala?
h) Odrediti analitički izraz za koeficijente Fourierovog reda u eksponencijalnom obliku.
i) Nacrtati amplitudni i fazni spektar signala x(t) koristeći MATLAB/toolbox.
j) Analizirati amplitudni i fazni spektar signala x(t) u funkciji vrijednosti perioda T0. Šta se dešavasa porastom perioda T0? Demonstrirati.
Rješenje
clear allclose allclc
k=−15:1:15;ck=exp(−j*k*pi/2).*sin(k*pi/2)./(k*pi);ck(16)=0.5;subplot(2,1,1)stem(k,abs(ck),'marker','.');xlabel('k\omega_0')ylabel('|c_k|')title('Amplitudni spektar')
subplot(2,1,2)stem(k,(−1)*angle(ck),'r','marker','.');xlabel('k\omega_0')ylabel('arg(c_k)')title('Fazni spektar')
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
72 SIGNALI I SISTEMI
−15 −10 −5 0 5 10 150
0.2
0.4
0.6
k
abs
(ck)
(a) Amplitudni spektar
−15 −10 −5 0 5 10 15−4
−2
0
2
4
k
arg
(ck)
(b) Fazni spektar
Slika 8.1
Zadatak 8.2Aproksimirati signal x(t) iz prethodnog zadatka konačnim Fourierovim redom. Dati odgovore nasljedeća pitanja
a) Šta predstavlja Gibbsov fenomen? Koje su posljedice datog fenomena?
b) Za koji talasni oblik signala se manifestuje Gibbsov fenomen?
c) Aproksimirati signal
x(t) =∞∑
n=−∞(t− nT0)(u(t− nT0)− u(t− 1− nT0))
konačnim Fourierovim redom od N koeficijenata. Da li je primjetan Gibbsov fenomen?
Rješenje
clc;clear all;close all;
t=−3:0.01:4;fh=figure(1)
for N=1:1:101clf(fh);x=stepfun(t,−2)−stepfun(t,−1)+stepfun(t,0)−stepfun(t,1)+stepfun(t,2)−stepfun(t,3);subplot(2,1,1)plot(t,x,'LineWidth',2,'Color',[0 0 1])axis([−3 4 −0.5 1.5])hold onplot([−3 4],[0 0],'−−k');plot([0 0],[−0.5 1.5],'−−k');hold offxlabel('t')ylabel('x(t), x_a(t)')title(sprintf('Aproksimacija signal x(t) konacnim FR sa %d koeficijenata',N))hold on
x_fr=0.5;% parni ck=0, aproksimiramo signal sa 2N+1 koeficijenata
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
SIGNALI I SISTEMI 73
for k=1:2:Nck=exp(−j*k*pi/2).*sin(k*pi/2)./(k*pi);x_fr=x_fr+2*exp(j*k*pi*t).*ck;
endsubplot(2,1,1)plot(t,x_fr,'−−r','LineWidth',2)
k=N;c_N=exp(j*k*pi*t).*exp(−j*k*pi/2).*sin(k*pi/2)./(k*pi);subplot(2,1,2)plot(t,c_N,'m')axis([−3 4 −0.5/N 0.5/N])xlabel('t')ylabel('Amplituda')title(sprintf('Talasni oblik %d−tog harmonika',N))
pause(0.1)end
−3 −2 −1 0 1 2 3 4−0.5
0
0.5
1
1.5
t
xa(t
)
(a) N=3
−3 −2 −1 0 1 2 3 4−0.5
0
0.5
1
1.5
t
xa(t
)
(b) N=13
−3 −2 −1 0 1 2 3 4−0.5
0
0.5
1
1.5
t
xa(t
)
(c) N=33
Slika 8.2: Aproksimacija povorke pravougaonih impulsa konačnim Fourierovim redom sa N koeficije-nata
Zadatak 8.3Aproksimirati signal x(t) sa konačnim Fourierovim redom xa(t) sa N koeficijenata a zatim nacrtatikrivu snage aproksimiranog signala u funkciji broja koeficijenata koji se uzima prilikom aproksimacije.Dati odgovore na sljedeća pitanja
1. Zašto signal x(t) aproksimiramo konačnim Fourierovim redom?
2. Kada će snaga aproksimiranog signala xa(t) biti jednaka snazi signala x(t)?
3. Šta možemo primjetiti koji koeficijenti nose najviše snage?
Rješenje
clear allclose allclc
% ukupna snaga signalP=0.5;% snaga k=0−tog harmonikaPa=0.25;% aproksimacija sa 2*N +1 koeficijenataN=100;k=1;
while(k<N)
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
74 SIGNALI I SISTEMI
k=k+1;Pa(k)=Pa(k−1)+2*abs(exp(−j*(k−1)*pi/2).*sin((k−1)*pi/2)./((k−1)*pi)).^2;
end
plot([1 N],[P P],'−−b')hold onsemilogx(1:k,Pa,'r')xlabel('Broj koeficijenata')ylabel('% ukupne snage')axis([1 N Pa(2) P*1.01])
100 101 1020.25
0.3
0.35
0.4
0.45
0.5
N
PPaa
Slika 8.3: Snaga aproksimiranog signala u funkciji broja koeficijenata N
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
Laboratorijska vježba 9
Zadatak 9.1Neka je dat signal
x(t) = 2(u(t)− u(t− t0))
gdje je t0 = 5. Odgovoriti na sljedeća pitanja
a) Koje uslove mora zadovoljavati signal x(t) da bi postojala Fourierova transformacija?
b) Kakva je veza između Fourierove transformacije i amplitudnog i faznog spektra signala x(t)?
c) Amplitudni i fazni spektar su kakve funkcije?
d) Fourierova transformacija se koristi za određivanje spektra koje grupe signala?
e) Nacrtati signal x(t).
f) Odrediti Fourierovu transformaciju signala.
g) Nacrtati amplitudni i fazni spektar signala x(t) koristeći MATLAB/toolbox.
h) Analizirati amplitudni i fazni spektar signala x(t) u funkciji parametra t0.
i) Odrediti i nacrtati amplitudni i fazni spektar signala
x(t) = t(u(t)− u(t− t0))
Rješenje
clear allclose allclc
t0=5;A=2;tstep=0.01;wstep=0.1;% simbolicke varijable t i wsyms t wx=sym('A*(Heaviside(t)−Heaviside(t−t0))');
% Fourierova transformacijaX=fourier(x);pretty(X)
% inverzna Fourierova transformacijax=ifourier(X);pretty(x)
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
76 SIGNALI I SISTEMI
% odredjivanje vrijednosti signala x(t)t=−4:tstep:4;x=stepfun(t,0)−stepfun(t,t0);
% odredjivanje vrijednosti funkcije X(jw)w=−10:0.1:10;X=A*t0*exp(−j*w*t0/2).*sin(w*t0/2)./(w*t0/2);
figure(1)subplot(3,1,1)plot(t,x);xlabel('t')ylabel('x(t)')title('Signal x(t) − vremenski domen')subplot(3,1,2)plot(w,abs(X),'r');xlabel('\omega')ylabel('|X(j\omega)|')title('Amplitudni spektar |X(j\omega)|')subplot(3,1,3)plot(w,angle(X),'k');xlabel('\omega')ylabel('arg(X(j\omega))')title('Fazni spektar arg(X(j\omega))')
−10 −5 0 5 10
0
2
4
6
8
10
ω(rad)
|X(ω
)|
(a) Amplitudni spektar
−10 −5 0 5 10
−2
0
2
ω(rad)
arg
(X(ω
))
(b) Fazni spektar
Slika 9.1
Zadatak 9.2Neka su dati impulsni odzivi sistema
a) h(t) = 2δ(t− 2)
b) h(t) = e−tu(t)
c) h(t) = tu(t)
d) h(t) = u(t)− u(t− 2)
Dati odgovore na sljedeća pitanja
a) Kada sistem opisan prenosnom funkcijom H(ω) ne unosi izobličenja?
b) Nacrtati impulsne odzive.
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
SIGNALI I SISTEMI 77
c) Analitički odrediti prenosne funkcije sistema i nacrtati amplitudnu i faznu karakteristiku.
d) Nacrtati amplitudne karakteristike sistema izražene u decibelima.
e) Na koji način se kašnjenje signala u vremenskom domenu manifestuje u frekventnom domenu?
Rješenje
clear allclose allclc
t=−5:0.01:5;K=0.5;t0=2;x=0.5*(stepfun(t,2)−stepfun(t,2.01));w=−5:0.1:5;X=K*exp(−j*w*t0);
subplot(3,1,1)plot(t,x);xlabel('t')ylabel('x(t)')title('Signal x(t) − vremenski domen')subplot(3,1,2)plot(w,abs(X),'r');xlabel('\omega')ylabel('|X(j\omega)|')title('Amplitudni spektar |X(j\omega)|')subplot(3,1,3)plot(w,angle(X),'k');xlabel('\omega')ylabel('arg(X(j\omega))')title('Fazni spektar arg(X(j\omega))')
−4 −2 0 2 4
0.45
0.5
0.55
0.6
ω(rad)
|X(ω
)|
(a) Amplitudni spektar
−4 −2 0 2 4
−2
0
2
ω(rad)
arg
(X(ω
))
(b) Fazni spektar
Slika 9.2: Amplitudni i fazni spektar prenosne funkcije sistema a)
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
78 SIGNALI I SISTEMI
Zadatak 9.3Potrebno je sintetizirat audio tonove koje tvore dobro poznatu sekvencu iz Betovenove devete simfonije(Oda radosti), korištenjem MATLAB-a i osnovnih matematičkih funkcija. Muzička sekvenca nota kojuje potrebno sitetizirati prikazana je na slici 9.3.
Slika 9.3
Za generisanje audio signala u MATLAB-u koristiti funkciju sound(y,f), koja binarnu sekvencu ygeneriše frekvencijom f. Svaka nota predstavalja sinusni signal određene frekvencije (detaljano objaš-njenje o notama biće dato kasnije). Konkretno koristit sljedeći sinusni signal
x(t) = A sin(2πfnt)
gdje je A = 5, fn frekvencija note i t vrijeme sa graulacijom ∆t = 1/fs gdje je fs = 44kHz, samim timei frekvencija f koja se koristi u sound() funkciji je fs. Vremensko trajanje najkraće note tj osmineje 250ms a pauza nakon svake note je 50ms. Nakon kreiranja vektora sa svim notama potrebno jeza svaku notu dok je reprodukujemo sa sound() funkcijom pozivati funkciju spektar koja određujespektar datog signala. Funkcija uzima za argumente vrijednosti sinusnog signala za vrijeme trajanjasame note i frekvenciju fs, a kao rezultat vraća amplitude signala X na frekvencijama od značaja.Takođe nacrtati spektar signala za svaku notu korištenjem funkcije stem(), a za zaustavaljanje tokaprograma dok se data nota reprodukuje preko funkcije sound() koristiti funkciju pause().
function [X,w] = spektar(x,fs)X = abs(fft(x,fs));X = X(210:500)/fs;w = 209:499;
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
SIGNALI I SISTEMI 79
Frekvencije u muziciU muzici note su podjeljene u grupe od po 12 koje se nazivaju oktave. Note koje je potrebno koristitisu u oktavi koja sadrži frekvencije od 220-440Hz. Dvanaest nota u svakoj od oktava karakterišelogaritamska skala. Svaka sljedeća nota u oktavi ima frekvenciju za a = 21/12 veću od frekvencijeprethodne note. U tabeli 9.1 imamo prikazane sve note oktave koja se koristi u zadatku.
Nota Frekvencija [Hz]
A 220·a0
Bb 220·a1
B 220·a2
C 220·a3
Db 220·a4
D 220·a5
Eb 220·a6
E 220·a7
F 220·a8
Gb 220·a9
G 220·a10
Ab 220·a11
Tablica 9.1
Muzičke note (muzički zapisi) su u osnovi jedan tip dijagram koji prikazuje frekvenciju note nasuprottrajanja u vremenu. Promjena visine tonova izvodi se dodavanjem simbola # ili b (pojačanja za *a)datoj noti. U najjednostavnijem slučaju, svaka nota može se predstaviti sa sinusnim tonom iza kojeg idekraća pauza. Pauza nam omogućuje da uočimo različite note sa istom visinom (amplituda sinusoide).Trajanje svake note određuje se sobzirom na to da li je nota cijela, polovina, četvrtina ili osmina note.Očito je da četvrtina note ima dvostruko duže trajanje nego li osmina note itd. Kratka pauza nakonsvake note trebala bi da bude iste dužine kao i data nota.
Rješenje
clcclear allclose all
f = 220; %[Hz]a = 2^(1/12);fs = 44e3;Ts = 1/fs;A = f;Bb = f*a;B = f*a^2;
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
80 SIGNALI I SISTEMI
C = f*a^3;Db = f*a^4;D = f*a^5;Eb = f*a^6;E = f*a^7;F = f*a^8;Gb = f*a^9;G = f*a^10;Ab = f*a^11;
% pauza−1/8 1/8G 1/4G | 1/2Eb pauza−1/8 1/8F 1/4F D note% 1/8 = 0.5 sec 1/4 = 1 sec ....
OverLap = 1;Amp=5;Tstep = 0.25;TStart = 0;TSteps = [2*Tstep 2*Tstep 2*Tstep 2*Tstep 2*Tstep 2*Tstep 2*Tstep 2*Tstep ...
2*Tstep 2*Tstep 2*Tstep 2*Tstep 2*Tstep Tstep 4*Tstep 2*Tstep 2*Tstep 2*Tstep ...2*Tstep 2*Tstep 2*Tstep 2*Tstep 2*Tstep 2*Tstep 2*Tstep 2*Tstep 2*Tstep 2*Tstep ...
Tstep 4*Tstep 2*Tstep 2*Tstep 2*Tstep 2*Tstep 2*Tstep Tstep Tstep 2*Tstep ...2*Tstep 2*Tstep Tstep Tstep 2*Tstep 2*Tstep 2*Tstep 2*Tstep 4*Tstep 2*Tstep ...2*Tstep 2*Tstep 2*Tstep 2*Tstep 2*Tstep 2*Tstep 2*Tstep 2*Tstep 2*Tstep 2*Tstep ...2*Tstep 2*Tstep Tstep 4*Tstep];
Note = [E E F G G F E D ...C C D E E D D E E F G ...G F E D C C D E D C C ...D D E C D E F E C ...D E F E D C D G E E F G ...G F E D C C D E D C C];
for i=1:size(Note,2)if i == 1
[Out Tstart]= getBit(Note(i),TStart,fs,TSteps(i),Amp);else
[TOut Tstart]= getBit(Note(i),TStart,fs,TSteps(i),Amp);Out = [Out TOut];
endend
fm = fs;n=1;be = 1;bs = 1;for i=1:124
if (mod((i+1),2) == 0)bs = be;be = be + TSteps(n)/Ts − 1;x = Out(bs:be);[X,w] = spektar(x,fs);sound(x,fs);stem(w,X);title('Spektar signala');ylabel('Amplituda [V/Hz]');xlabel('Frekvencija [Hz]');pause(TSteps(n));n = n+1;
elsedisplay('PAUZA');pause(0.05);
endend
function [Mrec Tend]= getBit(f,begin_val,fs,bit_size,Amp)
step_size = 1/fs;
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
SIGNALI I SISTEMI 81
end_val = bit_size + begin_val;t=begin_val:step_size:(end_val−step_size);Mrec = Amp*sin(2*pi*f*t);Tend = begin_val + bit_size;
300 310 320 330 340 350 3600
0.5
1
f(Hz)
X(f
)
(a) Nota E
320 330 340 350 360 370 3800
0.5
1
f(Hz)
X(f
)
(b) Nota F
Slika 9.4
360 370 380 390 400 410 4200
0.5
1
f(Hz)
X(f
)
(a) Nota G
260 270 280 290 300 310 3200
0.5
1
f(Hz)
X(f
)
(b) Nota D
Slika 9.5
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
82 SIGNALI I SISTEMI
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
Laboratorijska vježba 10
Zadatak 10.1Sinusni signal x(t) = cos(60πt) uzorkovan je na frekvenciji
a) fs = 10Hz
b) fs = 50Hz
c) fs = 100Hz
d) fs = 500Hz
Odgovoriti na sljedeća pitanja
1. Kako glasi teorem o uzorkovanju?
2. Nacrtati talasni oblik uzorkovanog signala za sve slučajeve frekvencije uzorkovanja.
3. Nacrtati spektar signala x(t) kao i spektre uzorkovanih signala.
4. Kakav je spektar uzorkovanog signala?
5. Analizirati slučaj uzorkovanja signala kada je fs < 2fm. Koje su posljedice u vremenskomdomenu?
6. Šta predstavlja aliasing i koje su njegove posljedice?
7. Na koji način se može izbjeći aliasing?
8. Ponoviti cijeli zadatak ako je signal x(t) = cos(60πt) + sin(30πt)
Rješenje
clcclear allclose all
t=0:0.00001:0.1;x=cos(60*pi*t);
fs=100;Ts=1/fs;ts=0:Ts:0.1;
% uzorkovani signalxs=cos(60*pi*ts);
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
84 SIGNALI I SISTEMI
subplot(2,1,1);plot(t,x)xlabel('t')ylabel('x(t)')title('Analogni signal')subplot(2,1,2);plot(t,x,'−−r')hold onstem(ts,xs,'b','marker','.')xlabel('t')ylabel('x_s(t), x(t)')title('Uzorkovani signal')
0 2 · 10−2 4 · 10−2 6 · 10−2 8 · 10−2 0.1
−1
−0.5
0
0.5
1
t(s)
x(t
)
(a) Analogni signal
0 2 · 10−2 4 · 10−2 6 · 10−2 8 · 10−2 0.1
−1
−0.5
0
0.5
1
t(s)
xs(t
)
(b) Uzorkovani signal fs=50Hz
Slika 10.1
0 2 · 10−2 4 · 10−2 6 · 10−2 8 · 10−2 0.1
−1
−0.5
0
0.5
1
t(s)
xs(t
)
(a) Uzorkovani signal fs=100Hz
0 2 · 10−2 4 · 10−2 6 · 10−2 8 · 10−2 0.1
−1
−0.5
0
0.5
1
t(s)
xs(t
)
(b) Uzorkovani signal fs=500Hz
Slika 10.2
clcclear allclose all
f=−100:100;w=60*pi;fmax=w/(2*pi);fs=50;
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
SIGNALI I SISTEMI 85
% spektar originalnog signalaX=stepfun(f,−fmax)−stepfun(f,−fmax+1)+stepfun(f,fmax)−stepfun(f,fmax+1);
% spektar uzorkovanog signalaXs = uzorkovanje(X,fs);Xs=Xs*fs;
subplot(2,1,1);stem(f,X)xlabel('f')ylabel('X(f)')title('Spektar analognog signala')subplot(2,1,2);stem(f,Xs,'−−r')hold onstem(f,X)xlabel('f')ylabel('X_s(f)')title('Spektar uzorkovanog signal')
function Xs = uzorkovanje(X,fs)
Xs=X/fs;Xtmp=Xs;while(max(Xtmp)~= 0)
Xtmp=[zeros(1,fs) Xtmp(1:(size(Xtmp,2)−fs))];Xs=Xs+Xtmp;
endXtmp=X/fs;while(max(Xtmp)~= 0)
Xtmp=[Xtmp((fs+1):(size(Xtmp,2))) zeros(1,fs) ];Xs=Xs+Xtmp;
end
−100 −50 0 50 100
0
0.5
1
f(Hz)
X(f
)
(a) Spektar analognog signala
−100 −50 0 50 100
0
0.5
1
f(Hz)
Xs(f
)
(b) Spektar uzorkovanog signala fs=50Hz
Slika 10.3
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
86 SIGNALI I SISTEMI
−100 −50 0 50 100
0
0.5
1
f(Hz)
Xs(f
)
(a) Spektar uzorkovanog signala fs=100Hz
−400 −200 0 200 400
0
0.5
1
f(Hz)
Xs(f
)
(b) Spektar uzorkovanog signala fs=500Hz
Slika 10.4
Zadatak 10.2Signal x(t) = cos(40πt)−sin(25πt)+0.8 sin(10πt) uzorkovan je pomoću kola sa zadrškom na frekvenciji
a) fs = 25Hz
b) fs = 60Hz
c) fs = 150Hz
d) fs = 400Hz
Dati odgovore na sljedeća pitanja
1. Objasniti princip rada kola sa zadrškom?
2. Implementirati u MATLAB/toolbox-u kolo sa zadrškom za uzorkovanje signala x(t).
3. Nacrtati signal x(t), uzorkovani signal i njihove amplitudne spektre.
4. Na koji način se vrši rekonstrukcija signala uzorkovanog pomoću kola sa zadrškom?
5. Implementirati u MATLAB/toolbox-u kolo za rekonstrukciju signala uzorkovanog pomoću kolasa zadrškom?
Rješenje
clcclear allclose all
Tc=0.0001;Tend=0.2;t=0:Tc:Tend;x=cos(40*pi*t)−sin(25*pi*t)+0.8*sin(10*pi*t);
fs=60;Ts=1/fs;ts=0:Ts:Tend;
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
SIGNALI I SISTEMI 87
% uzorkovani signalxs=cos(40*pi*ts)−sin(25*pi*ts)+0.8*sin(10*pi*ts);% prolaza kroz kolo sa zadrskomNt=round(Ts/Tc)−1;xsh=0;for i=1:size(ts,2)
xsh=[xsh ones(1,Nt)*xs(i)];endxsh=xsh(2:size(xsh,2));tsh=linspace(0,Tend,size(xsh,2));
subplot(3,1,1);plot(t,x)xlabel('t')ylabel('x(t)')title('Analogni signal')subplot(3,1,2);plot(t,x,'−−r')hold onstem(ts,xs,'b','marker','.')xlabel('t')ylabel('x_s(t), x(t)')title('Uzorkovani signal')subplot(3,1,3);plot(t,x,'−−r')hold onplot(tsh,xsh,'k')xlabel('t')ylabel('x_sh(t)')title('Uzorkovani signal − kolo sa zadrskom')
0 2 · 10−2 4 · 10−2 6 · 10−2 8 · 10−2 0.1 0.12 0.14 0.16 0.18 0.2
−2
0
2
t
x(t
)
Slika 10.5: Analogni signal
0 2 · 10−2 4 · 10−2 6 · 10−2 8 · 10−2 0.1 0.12 0.14 0.16 0.18 0.2
−2
0
2
t
xs(t
)
Slika 10.6: Uzorkovani signal fs = 60Hz
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
88 SIGNALI I SISTEMI
0 2 · 10−2 4 · 10−2 6 · 10−2 8 · 10−2 0.1 0.12 0.14 0.16 0.18 0.2
−2
0
2
t
xsh(t
)
Slika 10.7: Uzorkovanje pomoću kola sa zadrškom fs = 60Hz
0 2 · 10−2 4 · 10−2 6 · 10−2 8 · 10−2 0.1 0.12 0.14 0.16 0.18 0.2
−2
0
2
t
xs(t
)
Slika 10.8: Uzorkovani signal fs = 150Hz
0 2 · 10−2 4 · 10−2 6 · 10−2 8 · 10−2 0.1 0.12 0.14 0.16 0.18 0.2
−2
0
2
t
xsh(t
)
Slika 10.9: Uzorkovanje pomoću kola sa zadrškom fs = 150Hz
% rekonstrukcija uzorkovano signala pomocu NF filtera prvog redaR=100;C=0.0001;[ynf1,xnf1]=lsim([1],[R*C 1],xsh,tsh);tnf1=linspace(0,Tend,size(ynf1,1));% rekonstrukcija uzorkovano signala pomocu NF filtera petog reda[b a]=butter(5,0.01);ynfn=filter(b,a,xsh);tnfn=linspace(0,Tend,size(ynfn,2));
figure(2)subplot(2,1,1)plot(t,x,'−−r')hold onplot(tnf1,ynf1,'k')xlabel('t')ylabel('x_sh(t)')
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
SIGNALI I SISTEMI 89
title('Rekonstrukcija uzorkovano signala pomocu NF filtera prvog reda')subplot(2,1,2)plot(t,x,'−−r')hold onplot(tnfn,ynfn,'k')xlabel('t')ylabel('x_sh(t)')title('Rekonstrukcija uzorkovano signala pomocu NF filtera petog reda')
0 2 · 10−2 4 · 10−2 6 · 10−2 8 · 10−2 0.1 0.12 0.14 0.16 0.18 0.2
−2
0
2
t
xr(t
)
Slika 10.10: Rekonstrukcija uzorkovanog signala pomoću NF filtera prvog reda, fs = 150Hz
0 2 · 10−2 4 · 10−2 6 · 10−2 8 · 10−2 0.1 0.12 0.14 0.16 0.18 0.2
−2
0
2
t
xr(t
)
Slika 10.11: Rekonstrukcija uzorkovanog signala pomoću NF filtera petog reda„ fs = 150Hz
Zadatak 10.3Signal x(t) ima ograničen spektar
X(f) =(
52 + 1
8f)
(U(f + 20)− U(f + 12)) +(
52 −
18f)
(U(f − 12)− U(f − 20)) (10.1)
i uzorkovan je na frekvenciji
• fs = 20Hz
• fs = 35Hz
• fs = 40Hz
Potrebno je
a) Nacrtati spektar signala x(t).
b) Nacrtati spektar uzorkovanog signala u sve tri slučaja?
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
90 SIGNALI I SISTEMI
c) Da li je moguće rekonstruisati signal iz uzoraka? Ako jeste predložiti rješenje.
Rješenje
clcclear allclose all
f=−60:1:60;
X=(2.5+f/8).*(stepfun(f,−20)−stepfun(f,−11))+(2.5−f/8).*(stepfun(f,12)−stepfun(f,20));
fs=20;Xs = uzorkovanje(X,fs);
subplot(2,1,1)plot(f,X)xlabel('f')ylabel('X(f)')subplot(2,1,2)plot(f,Xs)xlabel('f')ylabel('Xs(f)')
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
Laboratorijska vježba 11
Zadatak 11.1Za sisteme opisane jednačinama
a) y[n] = 2x[n] + 3
b) y[n] = 1nx[n]
c) y[n] = 2n−1x[n]
d) y[n] = 2x[n]
e) y[n] = x[2n]
f) y[n] = 0.2y[x− 1] + x[x]
realizovati testove za provjeru linearnosti, vremenske invarijantnosti i stabilnosti. Testove realizovatiprvo u MATLAB toolboxu a zatim u blocksetu.
Zadatak 11.2Koristeći MATLAB funkciju conv odrediti konvoluciju sljedećih signala
a) x[n] = u[n], h[n] = δ[n− 1] + 0.5u[n]
b) x[n] = u[−n], h[n] = 2−nu[n]
c) x[n] = 3−nu[n], h[n] = 2−nu[n]
d) x[n] = u[n]− u[n− 3], h[n] = δ[n− 1] + u[n− 3]
e) x[n] = u[n]− u[n− 2], h[n] = n(u[n]− u[n− 3])
f) x[n] = 3−n+1u[n− 2], h[n] = 2nu[−n]
a zatim nacrtati signale x[n], h[n] i y[n].
Zadatak 11.3Odrediti odziv sistema opisanog diferencnom jednačinom
y[n] = ay[n− 1] + x[n]
ako je x[n] = Kδ[n] i y[−1] = α. Dodatno odrediti impulsni odziv sistema i odziv sistema na step ulazu uslov y[−1] = 0. Uzeti da je K=2 i a=1.
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
92 SIGNALI I SISTEMI
Zadatak 11.4Odrediti kružnu konvoluciju sekvenci
a) x1[n] = [1, 0, −1, 0, 1], x2[n] = [4, 3, 2, 1, 0]
b) x1[n] = [1, 1, −1, −1, 0], x2[n] = [4, 3, 2, 1, 0]
c) x1[n] = [1, 0, −1, 0, 1, 0], x2[n] = [1, 0, 1, 0, 1, 0]
d) x1[n] = [1, 1, −1, −1], x2[n] = [1, 2, 2, 1]
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
Laboratorijska vježba 12
Zadatak 12.1Napisati MATLAB program koji će odrediti Z transformaciju sljedećih sekvenci
a) x[n] = u[n]
b) x[n] = e−nu[n− 1]
c) x[n] = 2nu[−n]
d) x[n] = 2nu[−n] + e−nu[n− 1]
e) x[n] = 2−nnu[n]
a zatim nacrtati oblast konvergencije.
Rješenje
clear allclose allclc
n=−5:5;x=stepfun(n,0);subplot(3,1,1)stem(n,x)xlabel('n')ylabel('x[n]')
syms n zx=sym('Heaviside(n)');Xz=ztrans(x)
n1=1;for re=−2:0.1:2
for im=−2:0.1:2z_val(n1)=re+sqrt(−1)*im;Xz_val(n1)=z_val(n1)/(z_val(n1)−1);n1=n1+1;
endend
subplot(3,1,2)plot(real(Xz_val),imag(Xz_val),'r')xlabel('Re(X(z))')ylabel('Im(X(z))')
subplot(3,1,3)
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
94 SIGNALI I SISTEMI
x=−1:0.01:1;plot(x,sqrt(1−x.^2))hold onplot(x,−sqrt(1−x.^2))hold onplot(1,0,'xk')hold onplot(0,0,'or')axis([−2 2 −2 2])xlabel('Re(X(z))')ylabel('Im(X(z))')
−4 −3 −2 −1 0 1 2 3 40
0.5
1
n
x(n
)
Slika 12.1
−10 −8 −6 −4 −2 0 2 4 6 8 10 12−10
0
10
Re(X(z))
Im
(X(z
))
Slika 12.2
−1.2 −1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 1.2−1
0
1
Re(X(z))
Im
(X(z
))
Slika 12.3
Radna
verzija
Intern
a upotr
eba
©Copyright 2010 - Gogić Asmir
SIGNALI I SISTEMI 95
Zadatak 12.2Ako je prenosna funkcija sistema
a) H(z) = z
z − 1
b) H(z) = z
z2 − 1
c) H(z) = z
(z − 1)2
d) H(z) = 2zz2 − 4
nacrtati odziv sistema na step i delta ulaz koristeći MATLAB blockset. Koji od datih sistema jestabilan?
Rješenje
Slika 12.4