Sveučilište u Zagrebu Fakultet elektrotehnike i računarstva Zavod za elektroničke sustave i obradbu informacija Svojstva signala i Fourierove transformacije Signali i sustavi (FER-2) - Laboratorijska vježba 1. Grupa B 1. Uvod Laboratorijske vježbe iz Signala i sustava zamišljene su da približe studenta problematici analize i simulacije sustava. Sve vježbe se izvode na računalu, a koristi se programski sustav MATLAB. Osim što posjeduje mogućnost izvođenja raznih jednostavnih i izuzetno složenih matematičkih operacija, MATLAB ima i modul Simulink koji je zamišljen kao alat za brzo i jednostavno simuliranje raznih sustava. S MATLABom i Simulinkom ste se upoznali na LiV-u MATLAB. Svrha ove laboratorijske vježbe je pojasniti određene segmente gradiva s predavanja te upoznati studente s primjenom MATLAB-a na rješavanje zadataka iz područja reprezentacije, svojstava, te frekvencijske analize signala. Od studenta se očekuje da će nakon ove vježbe moći uz pomoć MATLAB-a konstruirati različite oblike kontinuiranih i diskretnih signala, te da će moći odrediti Fourierovu transformaciju i nacrtati spektar nekog signala. 2. Priprema Prisjetite se kako se pišu MATLAB m-funkcije te kako se koristi Simulink (vježbe 2. i 4. sa LiV-a MATLAB). Kao podsjetnik vam osim materijala korištenih na LiV-u MATLAB može poslužiti i priručnik Kratke upute za korištenje MATLAB-a koji je dostupan na stranicama predmeta. Osim toga, prisjetite se svega što ste naučili o Fourierovom redu i Fourierovoj transformaciji. Prije dolaska na laboratorijske vježbe korisno je pročitati sve zadatke koje ćemo raditi. Primijetite da uz neke zadatke piše (PRIPREMA). To su zadaci koje morate riješiti prije dolaska na vježbu. Rješenja uredno napišite rukom na papiru. U zaglavlje svakog papira s pripremom napišite vaše ime i prezime te JMBAG. Pripremni zadaci su: 3.1-6a, 3.1-8c, 3.2-1a, 3.2-2a. 3. Rad u laboratoriju Prije početka rada uključite dnevnik (naredba diary). Bez obzira na dnevnik također vam preporučamo da rješenje svakog zadatka spremite kao MATLAB m-skriptu čije ime je redni broj zadatka. Bodove iz laboratorija stječete tijekom vježbi. Prva laboratorijska vježba nosi tri boda. Točno napisana priprema vam donosi jedan bod. U zadnjem satu laboratorijskih vježbi (ili prije ako ste prije gotovi s vježbom) dežurni asistent će obići studente te svakog od vas zamoliti da demonstrira rješenje nekoliko zadanih zadataka unutar ove 1
vježbe. Ako uspješno demonstrirate zadatak 1 (jedan bod) i ako točno odgovorite na postavljeno pitanje vezano uz zadatak (još jedan bod) dobivate preostala dva boda. Svaki student može samo jednom demonstrirati rješenje zadatka i odgovarati. Ako krivo odgovorite ili ako je demonstrirano rješenje zadatka krivo ne dobivate bodove. NEMA popravnih zadataka! Dio zadataka označen je kao (PRIPREMA), dok je dio označen kao (ZA ONE KOJI ŽELE ZNATI VIŠE). Zadatke za pripremu ste riješili prije vježbi, dok zadatke za one koji žele znati više ne trebate rješavati. Predlažemo da ih preskočite te se vratite na njih ako obavezne zadatke završite prije predviđenog vremena. 3.1. Svojstva signala Prvi dio prve laboratorijske vježbe se bavi svojstvima signala. 5 minuta Zadatak 3.1-1 Jednodimenzionalni kontinuirani i diskretni signali Koristeći MATLAB nacrtajte sljedeće signale: 1. x(t) = sin(4t) + 2cos(8t) 2. x(n) = sin(3n) Za crtanje kontinuiranog signala koristite naredbu ezplot, a za crtanje diskretnog signala naredbu stem:» syms t % definiramo simboličku varijablu t» ezplot(sin(t)) % crtamo kontinuirani signal sin(t)» stem(sin([0:30])) % crtamo 31 uzorak diskretnog signala 15 minuta Zadatak 3.1-2 Pisanje m funkcije koja opisuje jednodimenzionalni signal Za tri signala prikazana na slici 1. napišite MATLAB funkcije koje računaju vrijednosti signala za zadano vrijeme. Korištenjem tih funkcija nacrtajte sva tri zadana signala. Na slikama podesite vremensku os tako da se dobivene slike poklapaju sa slikama iz ovih uputa. Označite vremensku os slovom t, a ordinate s x 1 (t), y 1 (t) i x 2 (t) respektivno. Neka se tri datoteke koje sadrže napisane funkcije zovu x1.m, x2.m i y1.m (te napisane funkcije ćete koristit kasnije u drugoj vježbi). Kao pomoć navodimo jednu mogućnost kako napisati kod funkcije x1: 1. function y=x1(t) 2. % SIS - Laboratorijske vježbe - zadatak 3.1-2 3. % Funkcija računa vrijednost signala x1 za zadani t 4. 5. % Ulazni argument moze biti vektor pa za svaki t racunamo izlaz. 6. for i = 1 : numel(t) 7. % Vrijednost funkcije je nula za sve zadane t. 8. y(i) = 0; 9. % Osim na dva intervala, prvom [0,1] i drugom [3,4]. 10. if (0 <= t(i)) & (t(i) <= 1) 11. y(i) = 1; 12. end 13. if (3 <= t(i)) & (t(i) <= 4) 14. y(i) = 1; 15. end 16. end 1 Demonstracija će vam biti jednostavnija ako ste napisali m-skriptu jednostavno pozovete tu skriptu. Ako niste pisali m-skripte, iskoristite dnevnik. Dnevnik otvorite u ugrađenom editoru i odaberete dio koji odgovara rješenju zadatka kojeg tražimo. Pritiskom na desnu tipku miša dobivate izbornik iz kojega je potrebno odabrati Evaluate Selection. MATLAB tada izvršava označeni dio te crta sve slike i prikazuje sve rezultate. 2
Kada smo tri signala napisali kao MATLAB funkcije za crtanje se koristi naredba plot:» t=[-2:0.01:5]; % definiramo trenutke u kojima računamo x1» plot(t, x1(t)) % crtamo x1 za definirane trenutke t Slika 1. Kontinuirani signal 5 minuta Zadatak 3.1-3 Dvodimenzionalni signal (slika) a) Konstruirajte sliku u MATLAB-u korištenjem naredbe imagesc (ili image):» v=[1:64]; % definiramo indekse boja» imagesc(v) % prikazujemo sliku b) Prema primjeru iz zadatka a) kreirajte sliku koja ima sinusoidalne oscilacije uzduž x- osi (intenzitet se mijenja kao sinus funkcija) koje nacrtane daju vertikalne pruge. Prije prikaza slike odaberite paletu koju dobivate naredbom colormap(bone). 10 minuta Zadatak 3.1-4 Trodimenzionalni signal (video) U MATLAB-u je moguće više slika spojiti u jedan video signal. Koristimo li bilo koju naredbu za crtanje (plot, stem, image, imagesc itd.) njen rezultat možemo dodati u video signal naredbom getframe:» colormap(gray) % odabiremo sivu paletu» imagesc(sin(v/10)) % prikazujemo sliku (skoro pa 3.1-3b )» F(1)=getframe % prikazanu sliku spremamo kao prvu sliku u % video signal F Sada kada znamo kako dodati pojedinu sliku u video korištenjem for petlje možemo generirati više slika odjednom. Stvoreni film se pregledava naredbom movie:» for i=1:30 % kreiramo 30 slika našeg filma u petlji stem(sin(v/10+i)); % stem morate zamijeniti s naredbom koja F(i)=getframe; % će nacrtati slike koju tražimo od vas end» movie(f) % pregledavamo film 3
Koristeći navedeni predložak kreirajte film u kojem se vide vertikalne pruge koje se kreću ulijevo. Korisite bone paletu boja. 10 minuta Zadatak 3.1-5 Preklapanje spektra u vremenskoj domeni (eng. aliasing) (ZA ONE KOJI ŽELE ZNATI VIŠE) Zadan je signal xk( n) = sin( ω kn), pri čemu je ω k = 2π k 5. Koristeći naredbu stem nacrtajte na četiri slike signal xk ( n ) za k = 1, 2, 4,6. Neka je korak n iz intervala [0, 9]. Koliko različitih signala ste nacrtali? Koji signali su jednaki? Zašto? Za crtanje više signala na jednoj slici koristite naredbu subplot. 15 minuta Zadatak 3.1-6 Periodičnost diskretnog signala a) (PRIPREMA) Ispitajte koji od zadanih signala su periodični te koji im je temeljni period: 1. πn πn f1 ( n) = sin cos 8 8 2. ( ) 2 πn f3 n = n 8 3. sin b) Nacrtajte sve zadane signale na intervalu n [ 0,31] te pomoću slike utvrdite koji su signali periodički i koliki im je temeljni period! c) Ukoliko pomnožite signale pod 1. i 2., odnosno pod 1. i 3. hoće li dobiveni signali biti periodički? Koliki je njihov temeljni period? Kada množite signale član po član morate dodati točku prije operatora. Dakle:» n=[0:10]; % definiramo korak n» f1=sin(pi*n); f2=cos(pi*n); % signali f1 i f2» y=f1.* f2 % ovo je umnožak signala f1 i f2 10 minuta Zadatak 3.1-7 Periodičnost kontinuiranog signala 2π 2π (ZA ONE KOJI ŽELE ZNATI VIŠE) Kreirajte simbolički izraz za signal x() t = sin t sin t T T. Koristeći naredbu ezplot nacrtajte zadani signal za T = 4,8,16. Koliki je temeljni period signala izražen preko T? 20 minuta Zadatak 3.1-8 Energija i snaga signala a) Kreirajte simboličke izraze za signale: 1. cos 2. sin b) Koristeći naredbu ezplot nacrtajte dva perioda oba signala. c) (PRIPREMA) Izračunajte analitički energiju i snagu signala. d) Definirajte simboličke izraze E1 i E2 kao energiju zadanih signala jedan i dva respektivno. Energiju definirajte i promatrajte isključivo na intervalu [ a, a]. Energija je definirana kao integral kvadrata signala, pri čemu prema uvjetu zadatka integriramo samo na intervalu [ a, a]: 4
» syms t a % t i a su simboličke varijable» E1=int(cos(pi*t/5)*cos(pi*t/5),t,-a,a) % E1 je energija E1 = (5*cos(1/5*a*pi)*sin(1/5*a*pi)+a*pi)/pi e) Izračunajte energiju E T /2 oba signala na jednom periodu korištenjem simboličkih izraza T iz podzadatka d), odnosno uvrstite polovinu perioda 2 za vrijednost parametra a. Koristite naredbu subs za uvrštavanje vrijednosti u simbolički izraz:» subs(e1, a, 4) % u izrazu E1 mijenjamo a sa 4 3.2432 Za svaki signal korištenjem naredbe ezplot nacrtajte kako energija ovisi o parametru a, pri čemu uzmite da je a iz intervala [0, 30]. Kako se energija E a mijenja s promjenom parametra a? Koju vrijednost E a očekujete za a +? f) Definirajte P1 i P2 kao simboličke izraze koji predstavljaju snagu signala na intervalu [ a, a]. Nacrtajte, opet koristeći naredbu ezplot, snage oba signala signala za a iz 1 intervala,80 10. Kako se ponaša snaga kada se a povećava? Iz grafova procijenite za oba signala kojoj vrijednosti teži snaga ako a +. Usporedite snagu P s energijom 1 E! T T /2 g) Zašto očekujete da će snaga P a za oba signala konvergirati k istoj vrijednosti? 3.2. Frekvencijska analiza vremenski kontinuiranih signala Drugi dio prve laboratorijske vježbe bavi se Fourierovim transformacijama, i to frekvencijskom analizom vremenski kontinuiranih signala. 15 minuta Zadatak 3.2-1 Fourierov red Fourierov red se koristi za analizu periodičkih kontinuiranih signala i određen je izrazima 1 Pri tome je T 0 period signala, dok je ω 0 kružna frekvencija povezana s periodom preko izraza 2π/T 0 = ω 0. Primjer rastava periodičkog signala u Fourierov red dan je na slici 2. 5
Slika 2. Fourierov red Za određivanje Fourierovog reda u MATLAB-u koristimo Symbolic Toolbox s time da računamo po definiciji jer ne postoji naredba koja izravno računa Fourierov red. Npr. spektar periodički ponavljanih pravokutnih impulsa trajanja T 0 /2 (slika 2.) bi odredili kao:» syms t T0 k <ENT> % potrebne varijable» int(1*exp(-2*pi*j/t0*t*k),-t0/4,t0/4)/t0 <ENT> % integracija 1/2*i*(exp(-1/2*i*pi*k)-exp(1/2*i*pi*k))/pi/k» pretty(simplify(ans)) <ENT> % uljepšavanje rezultata a) (PRIPREMA) Izračunajte Fourierov red signala: x ( t ) = 220cos 100 π t 4. 1 ( ) 5. ( ) π x ( t) = 220cos 100π t + 50sin(300 π t+ ) 2 3 sin(1/2 pi k) ------------- pi k b) Korištenjem MATLAB-a odredite rastav signala iz a) dijela zadatka u Fourierov red. Neka period za računanje Fourierovog reda bude T 0 = 1/25. c) Pomoću naredbe stem nacrtajte amplitudni i fazni spektar signala iz a) dijela zadatka. Crtanje simboličkih funkcija po diskretnoj varijabli zahtijeva pisanje skripte:» X1<ENT> % neka X1 sadrži spektar signala x1 po k X1 = -220*(-1+exp(i*pi*k)^2)/pi/exp(i*pi*k)^2/(k^2-4)» A=zeros(51,1); % 51 koeficijent reda ćemo spremiti u A» for n=-25:25 A(n+26)=subs(limit(X1,k,n)); % moramo računati limes za svaki k koji nas end % zanima zbog mogućeg dijeljenja s 0» stem([-25:25],abs(a)) % crtamo amplitudu» stem([-25:25],angle(a)) % crtamo fazu 6
20 minuta Zadatak 3.2-2 Spektralna gustoća snage Periodički kontinuirani signali imaju beskonačnu energiju i konačnu srednju snagu. Štoviše, kako su signali periodički unutar jednog perioda srednja snaga je uvijek jednaka. Želimo li izračunati snagu iz spektra koristimo Parsevalovu relaciju 1. Pri tome X k 2 predstavlja srednju snagu k-te harmoničke komponente signala. Prikažemo li X k 2 kao funkciju frekvencije kω 0 dobivamo spektralnu gustoću snage 2. a) (PRIPREMA) Izračunajte rastav u Fourierov red niza pravokutnih impulsa jedinične amplitude trajanja T koji se ponavljaju svakih T 0 pri čemu je T 0 > T. Korištenjem Parsevalove relacije odredite snagu signala. b) Korištenjem MATLAB-a odredite Fourierov red signala iz a) dijela zadatka. Neka T i T 0 budu simboličke varijable. c) Nacrtajte amplitudni i fazni spektar te spektralnu gustoću snage za T = 3 i T 0 = 20 te k 100,100. T = 3 i T 0 = 4. Neka je [ ] d) Korištenjem Parsevalove relacije odredite snagu signala, no samo na temelju prvih m spektralnih komponenti. Nacrtajte kako m 1,100. 10 minuta Zadatak 3.2-3 Fourierov integral ovisi o m za [ ] Fourierov integral 3 se koristi za prikaz kontinuiranih signala i određen je izrazima 1 2 Primjer rastava jednog kontinuiranog signala dan je na slici 3. Za računanje Fourierove transformacije u MATLAB-u možete koristiti funkciju fourier (ili alternativno računati izravno definicijske izraze):» syms t» fourier(heaviside(t)) <ENT> % računamo Fourierov transformaciju % step funkcije pi*dirac(w)-i/w» fourier(heaviside(t+1)-heaviside(t-1)) <ENT> exp(-i*w)*(pi*dirac(w)-i/w)-exp(i*w)*(pi*dirac(w)-i/w)» simplify(ans) <ENT> -2*sin(w)/w 2 Umjesto spektralna gustoća snage može se koristiti i izraz gustoća spektra snage, a ponekad čak i samo spektar snage (iako zadnji izraz nije potpuno precizan). 3 Umjesto Fourierov integral često se jednostavno kaže Fourierova transformacija. 7
Slika 3. Fourierov integral a) Korištenjem MATLAB-a odredite Fourierovu transformaciju signala iz 3.2-1a zadatka. Usporedite dobivene spektre. b) Korištenjem MATLAB-a odredite Fourierovu transformaciju jednog pravokutnog impulsa jedinične amplitude i trajanja T = 3. Nacrtajte amplitudni i fazni spektar. Usporedite 4 dobivenu transformaciju s rastavom periodičkog niza impulsa iz zadatka 3.2-2. U čemu je razlika?» syms t» X=fourier(heaviside(t+1/2)-heaviside(t-1/2)); <ENT>» X=simplify(X) <ENT> 2*sin(w/2)/w» ezplot(abs(x)),[-30,30]) <ENT> % amplituda» ezplot(atan(imag(x)/real(x)),[-30,30]) <ENT> % faza c) (ZA ONE KOJI ŽELE ZNATI VIŠE) Pomaknite u vremenu impuls iz b) dijela zadatka te opet izračunajte i nacrtajte amplitudni i fazni spektar. Što se događa sa spektrom ako pomaknemo signal u vremenu? Što se događa sa signalom ako pomaknemo spektar u frekvenciji? 10 minuta Zadatak 3.2-4 Spektralna gustoća energije Za periodičke signale smo računali srednju snagu unutar jednog perioda. Za općeniti kontinuirani signal snagu unutar nekog intervala možemo odrediti kao Želimo li pomoću danog izraza odrediti srednju snagu cijelog signala za većinu aperiodskih signala dobili bi nulu. Stoga se kontinuirani aperiodski signali i signali konačnog trajanja (npr. razni impulsi) obično karakteriziraju preko energije. Za određivanje energije signala opet koristimo Parsevalovu relaciju 4 Primijetite da bi očekivali spektar u kojem se javljaju linije amplitude koja odgovara upravo polovini amplitude zadane harmonijske funkcije jer rastavljamo signal u kombinaciju eksponencijala (kosinus i sinus se mogu zapisati kao zbroj dvije eksponencijale). Umjesto toga dobili smo spektralne linije amplitude koja odgovara amplitudi pomnoženoj s π. Razlog je u tome što se konstanta 1/(2π) nalazi uz integral inverzne transformacije, a ne uz integral za računanje transformacije. 8
1 2. Veličina F(ω)F * (ω) = F(ω) 2 nam predstavlja spektralnu gustoću energije. a) Koristeći MATLAB odredite i nacrtajte spektralnu gustoću energije pravokutnog impulsa jedinične amplitude i trajanja T = 3 (impuls iz zadatka 3.2-3b). b) Korištenjem Parsevalove relacije odredite ukupnu energiju signala iz a) dijela zadatka. c) (ZA ONE KOJI ŽELE ZNATI VIŠE) Korištenjem Parsevalove relacije odredite energiju signala, no samo na temelju prvih m spektralnih komponenti. Nacrtajte kako ovisi o m za 1,40. 4. Literatura 1. John R. Buck, Michael M. Daniel, Andrew C. Singer, Computer Explorations in Signals and Systems using Matlab, 2 nd edition, Prentice Hall, Upper Saddle River, New Jersey, 2002. 2. H. Babić, Signali i sustavi (zavodska skripta), FER, Zagreb 1996., http://sis.zesoi.fer.hr/predavanja/pdf/sis_2001_skripta.pdf 3. Edward A. Lee, Pravin Varaiya, Structure and Interpretation of Signals and Systems, Addison Wesley, 2003. 4. T. Petković, Z. Kostanjčar, M. Budišić, B. Jeren, Upute za laboratorijske vježbe iz Signala i sustava, FER, Zagreb, svibanj 2006. http://sis.zesoi.fer.hr/laboratorij/pdf/upute_za_vjezbe_20060509.pdf 5. Ž. Ban, Osnove MATLAB-a, FER, Zagreb, 2006. http://www.fer.hr/_download/repository/osnove_matlaba.pdf 6. Laboratorij i vještine MATLAB: Uvod u Simulink, FER, Zagreb, 2006. http://www.fer.hr/_download/repository/simulinkskripta.pdf 7. T. Petković, Kratke upute za korištenje MATLAB-a, FER, Zagreb, travanj 2005. http://www.fer.hr/_download/repository/matlab_upute.pdf 9