Zvezna aproksimacija neenakomerno vzorčenih signalovSODIN, DENIS (Avtor)
Košir, Andrej (Mentor)
neenakomerno vzorčenjeaproksimacijainterpolacijaprevzorčenjezgornja frekvenčna mejašum v podatkihB-zlepekMagistrska naloga opisuje razvoj algoritma za aproksimacijo signala iz neenakomerno vzorčenih podatkov. Predlagana rešitev deluje na principu prevzorčenja merilnih podatkov in uporabe B-zlepkov za rekonstrukcijo signala.
Pred realizacijo samega algoritma smo pregledali teorijo enakomernega in neenakomernega vzorčenja, postopke rekonstrukcije signala, razliko med aproksimacijo in interpolacijo, kriterije za kvaliteto aproksimacije, zgornjo frekvenčno mejo in odpravljanje šuma.
Algoritmi so bili razviti v programskem jeziku Python, v katerega smo preko baze podatkov MongoDB uvozili vse potrebne merilne rezultate. Ti so bili pridobljeni med eksperimentom, v katerem so se kandidati učili slepega desetprstnega tipkanja. Med učenjem smo merili pospeške njihovih rok in velikost zenic. Na podlagi rekonstruiranega signala smo potem določali osredotočenost kandidatov na tipkanje.
V začetni fazi smo skušali signal iz danih podatkov rekonstruirati s pomočjo polinomske interpolacije. Postopek se je zdel privlačen, saj deluje tako na enakomerno kot neenakomerno vzorčenih podatkih. Po izdelavi algoritma in pregledu rezultatov smo ugotovili, da za naš primer ta postopek ni dober. Problem se je pojavil zaradi velikega števila vzorčenih podatkov, ki so botrovali nastanku Rungevega fenomena. Gre za pojav, pri katerem se med dvema vzorčnima točkama pojavijo velike oscilacije, ki jih v našem primeru zagotovo ne bi mogli fizikalno upravičiti.
Sledil je poskus implementacije teorema o neenakomernem vzorčenju, kjer pa se nam je zataknilo že pri izdelavi algoritma. Rezultati, ki smo jih dobivali, niso bili smiselni, kar je bilo po našem mnenju posledica nepravilnega obnašanja jedra funkcije, s katero smo signal skušali rekonstruirati. Preden smo napako odpravili, smo ugotovili, da nam tudi uspešna implementacija tega algoritma ne bi dala rezultatov, ki smo jih v našem primeru potrebovali. Razlog je v tem, da bi rezultat tega algoritma predstavljal interpolacijo vzorčnih točk, za naše podatke pa smo ugotovili, da vsebujejo šum, kar pomeni, da bi jih morali aproksimirati. To spoznanje nas je vodilo k preusmeritvi naše pozornosti na aproksimacijske postopke.
Problem preprileganja (angl. overfitting), ki nastane pri interpolaciji merilnih točk, ki vsebujejo šum, smo se odločili reševati z uporabo B-zlepkov. V prvi iteraciji smo merilne točke skušali aproksimirati s pomočjo dinamičnega postavljanja vozlov. S tem postopkom smo odpravili problem previsokih frekvenc v rekonstruiranem signalu, vendar pa nam po drugi strani ni uspelo odpraviti težav z oscilacijami signala, ki se je pojavila na intervalih, kjer so bile vzorčne točke redke.
Končni izdelani algoritem prav tako temelji na uporabi B-zlepkov. Njegova posebnost je ta, da smo na izmerjenih merilnih točkah najprej uporabili nizkopasovni filter in nato na prevzorčenih točkah izvedli interpolacijo. Tudi tukaj nam je uspelo odpraviti problematiko previsokih frekvenc, težave z oscilacijami signala na področjih z redkimi originalnimi vzorčnimi točkami pa smo nekoliko omilili, ni pa nam jih uspelo popolno odpraviti.20172017-02-07 14:15:01Magistrsko delo/naloga89013VisID: 37781sl