Laboratórium 1. 4. mérés Házi feladat Készítette: Koszó Norbert (GTPL3A) Második (javított) kiadás
4. mérés Koszó Norbert (GTPL3A) Feladat 1. Adott egy diszkrét jel mintasorozata. A mintavételi idő t = 500 ns. Minimum hány alappontos DFT műveletre van szükség, ha a minta spektrumát f = 20 Hz felbontással szeretnénk vizsgálni? 2. Képezzen 16 mintából álló bemenő mintasorozatokat, melyek a következő jellegzetes jelalakoknak felelnek meg: 1. 50% kitöltésű négyszög 2. Háromszög 3. Fűrész 4. Szinusz Ügyeljen arra, hogy a mintasor pontosan egy periódust adjon meg. Gondolja végig, hogy jellegre milyen spektrum mintát várhat a fenti jelek vizsgálatától. Végezze el a Fourier transzformációt a segédprogrammal és ellenőrizze, hogy helytállóak voltak-e előzetes várakozásai. Foglalja össze, hogy a fenti azonos periódusú jelek között milyen jellegzetes különbségek váltak nyilvánvalóvá. Megoldás 1. feladat f = f s N = 1 t N N = 1 t f = 1 500 ns 20Hz =105 2. feladat 50% kitoltésű négyszög Mintasorozat: 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0. Páratlan harmonikusok kb. 1/x szerint csökkennek, páros harmonikus nincs. Háromszög Mintasorozat: 0, 0.125, 0.250, 0.375, 0.500, 0.625, 0.750, 0.875, 1, 0.875, 0.750, 0.625, 0.500, 0.375, 0.250, 0.125. Csak páratlan harmonikusok, melyek amplitúdója erősen (1/x^2 szerűen) csökkennek. Fűrész Mintasorozat: 0.00000, 0.06667, 0.13333, 0.20000, 0.26667, 0.33333, 0.40000 0.46667, 0.53333, 0.60000, 0.66667, 0.73333, 0.80000, 0.86667, 0.93333, 1.00000. Páratlan és páros harmonikusok is vannak. 1. oldal
Koszó Norbert (GTPL3A) 4. mérés Szinusz Mintasorozat: 0.00000, 0.38268, 0.70711, 0.92388, 1.00000, 0.92388, 0.70711, 0.38268, 0.00000, 0.38268, 0.70711, 0.92388, 1.00000, 0.92388, 0.70711, 0.38268. Nincs felharmonikus. DFTs cuccok Ez nem része a házi feladatnak, de a mérés során szükség van rá. A könyv a feladatok a felkészüléshez bekezdés 4. pontjában írja elő ezt feladatnak. A lent látható kód biztosan hibás. A feladat 1V effektív értékre viszonyítva kér db értékeket. Ez biztosan nem teljesül, sőt, nem is decibelben vannak megadva az értékek. Decibelbe átszámoláskor alapnak az általam használt jel effektív értékével kell osztani, és jó lesz remélem. Én laboron az itteni számértékek logaritmusát vettem, és konstans eltérés volt a mért és a számolt értékek között, tehát a hiba az eltérő amplitúdóból adódott. Ezt beleírtam a jegyzőkönyvbe, nekem elfogadták. octave-3.0.1:1> t=[0:1:99]; octave-3.0.1:2> negyszog=2*(sign(sign(50-t)-1)+0.5) octave-3.0.1:3> haromszog=[[0:1:50],[49:-1:1]]./50 octave-3.0.1:4> furesz=[0:1:99]./99 octave-3.0.1:5> szinusz=sin(2*pi/100*t) octave-3.0.1:6> k=[0:1:9]; octave-3.0.1:7> abs(negyszog*exp(2*pi*i/100*transpose(t)*k)) 0.00000 63.67245 0.00000 21.25211 0.00000 12.78491 0.00000 9.16829 0.00000 7.16869 octave-3.0.1:8> abs(haromszog*exp(2*pi*i/100*transpose(t)*k)) 5.0000e+01 2.0271e+01 2.7132e-15 2.2583e+00 7.4966e-16 8.1727e-01 2.4988e-15 4.2029e-01 4.6714e-15 2.5695e-01 octave-3.0.1:9> abs(furesz*exp(2*pi*i/100*transpose(t)*k)) 50.0000 16.0789 8.0434 5.3667 4.0297 3.2285 2.6953 2.3152 2.0308 1.8103 octave-3.0.1:10> abs(szinusz*exp(2*pi*i/100*transpose(t)*k)) 6.7030e-15 5.0000e+01 2.0870e-15 3.0137e-15 2.9595e-15 3.4823e-15 7.6888e-15 6.3001e-15 5.1760e-15 1.9933e-15 2. oldal
4. mérés Koszó Norbert (GTPL3A) DFTs cuccok magyarázat Többen panaszkodtak, hogy a fenti kód nem érthető számukra. Megértem, valóban nem triviális. Egy kis segítség hozzá. Induljunk ki a diszkrét Fourier transzformáció képletéből: N 1 2 i N X k = x n e k n, (1) n=0 ahol N a jel hossza. Ez ugye egy szumma valami szorozva valami, ami tipikusan egy mátrix szorzással oldható meg könnyedén. Nézzük meg egy egyszerű példán, legyen a= 1,2,3 és b= 2,3,4, a kérdés pedig legyen a n b n. Ezt átírhatjuk mátrixok n=1 szorzatára 3 3 2 4 a b'= 1 2 3 =20. Octaveban ez a következőképp valósítható meg: octave:7> a=[1:1:3]; b=[2:1:4]; octave:8> a*transpose(b) 20 Amennyiben az 1. képletben k értékét rögzítjük, a fenti szorzást kapjuk vissza: N 1 X 1 = n=0 x n e a n 2 i N n. b n Mi viszont nem csak egy k értékre vagyunk kíváncsiak, hanem sokra. Egyszerűen megfogalmazva, legyen a= 1,2,3, b 1 = 2,3,4, b 2 = 3,4,5, a kérdés pedig 3 n=1 3 a n b 1n és n=1 mátrix ügyeskedéssel megoldható egy lépésben 2 3 5 a b ' 1 b ' 2 = 1 2 3 3 4 4 Octaveban implementálva: a n b 2n. Nyilván alkalmazhatjuk kétszer a fenti trükköt, de egy is = 20 26. octave:10> a=[1:1:3]; b1=[2:1:4]; b2=[3:1:5]; octave:11> a*[transpose(b1),transpose(b2)] 20 26 3. oldal
Koszó Norbert (GTPL3A) 4. mérés A többit már mindenki fantáziájára bízom, nem szeretném elvenni tőletek az örömöt, hogy ezt megértsétek. Egyébként tényleg nem. Rajzoljátok le a mátrixokat, ha máshogy nem megy. Érdemes egyszer végiggondolni szerintem. Itt is felhívnám a figyelmeteket, hogy a második oldalon található eredmények nem helyesek, csak az elvet mutatják be. A házi feladathoz felhasznált eszközök A házi feladat kizárólag ingyenes szoftverekkel, Openoffice.org irodai csomaggal készült, FreeSans, FreeMono és FreeSerif betűtípussal íródott, Ubuntu operációs rendszeren. A feladatokat önállóan, meg nem engedett segítség igénybevétele nélkül oldottam meg:... Koszó Norbert 4. oldal