Diplomaterv
GSM alapú helymeghatározás paramétereinek javítása neurális hálózatok felhasználásával
Czuczor Péter Témavezető: Tihanyi Attila
Pázmány Péter Katolikus Egyetem Információs Technológiai Kar 2010.
1
Nyilatkozat
Alulírott Czuczor Péter, a Pázmány Péter Katolikus Egyetem Információs Technológiai Karának hallgatója kijelentem, hogy ezt a diplomatervet meg nem engedett segítség nélkül, saját magam készítettem, és a diplomamunkában csak a megadott forrásokat használtam fel. Minden olyan részt, melyet szó szerint, vagy azonos értelemben, de átfogalmazva más forrásból átvettem, egyértelműen a forrás megadásával megjelöltem. Ezt a Diplomamunkát más szakon még nem nyújtottam be.
2010. május. 17.
…………………………… Aláírás
2
PÁZMÁNY PÉTER KATOLIKUS EGYETEM INFORMÁCIÓS TECHNOLÓGIAI KAR
DIPLOMATERV-TÉMA BEJELENTÉS
Név:
Czuczor Péter
Tagozat:
nappali
Szak:
Műszaki Informatika
Témavezető neve:
Tihanyi Attila
A dolgozat címe:
Rádióhullám terjedésén alapuló helymeghatározás paramétereinek javítása neurális hálózatok felhasználásával
A dolgozat témája: A Rádióhullám terjedésén alapuló helymeghatározó rendszer beltéri mérés pontosságának, megbízhatóságának növelése: a geometriai becslés hibájának neurális hálózatokkal történő meghatározásának felhasználásával. Feladatok: Tekintse át a helymeghatározási rendszerek működési alapelveit, vizsgálja meg, hogy a neurális hálózat alkalmazása milyen lehetőségeket jelent a beltéri helymeghatározás pontosságának javítására.
-
Elemezze a meglévő eredményeket és határozza meg, hogy milyen körülmények között célszerű használni a neurális hálózatos módszert a feladatban. Készítsen a meglévő adatok felhasználásával egy számítógépes modellt mellyel igazolja a választott neurális hálózat alkalmazásának előnyeit és be tudja mutatni annak korlátait.
-
Tesztelje az elkészített modellt újonnan felvett adatokkal.
-
Jelenítse meg számszerűsített formában az egyszerű geometriai módszerhez viszonyítottan az alkalmazott eljárás hatékonyságának növekedését.
-
Határozza meg, milyen körülmények között lehet és célszerű használni a jelölt által kidolgozott eljárást.
A témavezetést vállalom: .................................................... (a témavezető aláírása) Kérem a diplomamunka témájának jóváhagyását. Budapest, 200. ……………. .................................................... (a hallgató aláírása)
A diplomamunka-témát az Információs Technológiai Kar jóváhagyta. Budapest, 200. …………… ...................................................... Nyékyné dr. Gaizler Judit Dékán
3
Tartalomjegyzék Tartalomjegyzék...................................................................................................................... 4 Abstract.................................................................................................................................... 4 Kivonat..................................................................................................................................... 5 1. Bevezetés............................................................................................................................... 6 1.2 1.3 1.4 1.4
A feladat ismertetése...................................................................................................................... 7 Karunkon folyó GSM helymeghatározás technológia lényege....................................................8 Célkitűzés........................................................................................................................................8 Rádióhullámon terjedő jelek áttekintése.....................................................................................10
................................................................................................................................................. 11 1.6 Kültéri helymeghatározási rendszerek........................................................................................ 12 1.7 Beltéri helymeghatározási rendszerek.........................................................................................12 1.8 Helymeghatározási módszerek.................................................................................................... 13
2 Neurális Hálózatok............................................................................................................. 17 3 Az elemzendő adatbázis felépítése..................................................................................... 25 3.1 Adatbázist tároló fájlok.................................................................................................................25 3.2 Adatmezők jelentése......................................................................................................................26 3.3 Felhasznált eszközök.....................................................................................................................27 3.6 Mobiltelefonokon megvalósítható adatbázis................................................................................30
4 Elvégzett vizsgálatok, kapott eredmények........................................................................ 36 4.1LAC, Cellid, Channel alapján a megegyezések összehasonlítása................................................36 4.2 LAC, Cellid, Channel, BSIC alapján a megegyezések összehasonlítása....................................37 4.3 LAC, Cellid, Channel, RSSI alapján a megegyezések összehasonlítása.................................... 38 4.4 Főkomponens analízis (Principal Component Analysis)............................................................41 4.5 Műszerünk vételi mérésének vizsgálata....................................................................................... 42
................................................................................................................................................. 45 5 Helymeghatározás javítása neurális hálózatok segítségéve............................................. 47 ..............................................................................................................................................................51 ..............................................................................................................................................................52 5.1 Az implementált Java WiFi tracking rendszer.............................................................................53 ..............................................................................................................................................................54 5.2 Algoritmusok komplexitás vizsgálata...........................................................................................54
6 Következtetések, Összegzés ............................................................................................... 55 6.1 Problémák .....................................................................................................................................57
7 Összefoglalás....................................................................................................................... 57 8 Köszönetnyilvánítás............................................................................................................ 59 Régi Irodalomjegyzék............................................................................................................ 60 Formázott Irodalomjegyzék.................................................................................................. 61
Abstract
4
Kivonat A dolgozat első felében a meglévő mérési adatokat elemeztem többféle szempont alapján. Megnéztem, hogy egy hetes mérés esetén időben mennyire állandóak a jelek, mennyire függenek külső környezeti tényező hatásától. Megnéztem a mérőeszközünk precizitását, megmértem. Bevezettünk egy rendszert, mellyel képesek vagyunk olyan környezetben, ahol adott a WiFi hálózat, helyet meghatározni. Ezt a rendszert korlátozott körülmények között teszteltem. Megmutattuk a főkomponens analízis használhatóságát az adatbázisunk csökkentésére. Ennek a matematikai módszernek a neurális hálózat taníthatóságánál van szerepe nagy mintahalmaz esetén.
5
Innen ötletek: A helymeghatározás nem kiváltság, nem különleges igény, hanem egy általános kívánalom a mindennapi ember számára. Modern világunkban napi szinten kerülünk olyan helyzetben, amikor könnyebbé tehetnénk az életünket a pozíciónk tudásával. A GPS képes helyet meghatározni, azonban nem mindenhol képes rá. Barlangban, alagútban, épületekben más megoldást kell találni a pozícionálásra. Lehetséges megoldás a GSM hálózatokból származó jelekkel történő helymeghatározás, azonban a GSM hálózatok használt frekvenciasávjából adódóan sohasem lehet olyan pontos mintha ugyanezt a helymeghatározást WIFI hálózatokkal végeznénk. A GSM hálózatoknál 20 méter alatti pozícionálás megfelelőnek bizonyulhat, azonban WIFI hálózatokkal 10 méter alattira is lehetőség van. Napjainkban a legpontosabb helymeghatározási módszere az ujjlenyomat alapú, ez azt jelenti, hogy az adott területnek a fizikai jellemzőit megpróbáljuk egy adatbázisban tárolni, minél pontosabban tudjuk leírni az adott terület környezetét, annál pontosabban tudunk helyet meghatározni. Lehetőség van a helymeghatározás utólagos javítására. Ebben jelenthet segítséget a Rejtett Markov modell, ilyenkor az egyes pozíciós tévedéseket, hibákat a legnagyobb valószínűség szerint ki tudjuk kerülni. A Rejtett Markov modell egy megfigyelési sorozatot vár el bemenetként és pozíciók sorozatát adja kimenetként. A modell képes a javításra, azonban meg vannak korlátai, nehéz a modellt mindig az új területekhez kalibrálni. Egész technológia szegmens alakult ki a Location Tracking alkalmazásokra építve, ezek a vállalatok nem rég indultak, de máris több éves kutatási előnnyel bírnak a többiek előtt. Egyesek 5 méter alatti helymeghatározásra mások 20 méter alattira képesek csak, a helymeghatározást támógató szoftvereknek is széles palettája nyílik meg. Az emberiség ezekben az időkben döbben rá, a GPS forradalmával egyidejűleg, hogy mekkora segítséget is jelenthet a helyzetünk tudása. Gondoljunk a helymeghatározás fontosságára egy építkezésnél, túránál, ahol esetlegesen emberéletek múlhatnak a minél pontosabb és gyorsabb pozícionáláson, de munkahelyeken, korházakban és iskolákban is hasznos a technológia. Életünket teljesebbé, jobbá tehetjük azáltal, hogy amikor szükségünk van, akkor meg tudjuk határozni a pozíciónkat.
1. Bevezetés A modern ember számára elképzelhetetlen az élet, a létezés mobiltelefon nélkül: mindenhova magunkkal visszük és szinte mindig elérhetőek vagyunk (aminek megvannak az árnyoldalai is természetesen: mindig rosszkor csöng, nem a megfelelő ember keres). Magyarország sem kivétel, 13 évvel a GSM szolgáltatás beindulása után az előfizetések száma meghaladta a lakosság lélekszámát, pontosan 10 millió 108 ezer db előfizetése volt a körülbelül 10 millió magyarnak 2007. májusában, tehát kijelenthető, hogy napjainkban szinte mindenki rendelkezik mobiltelefon készülékkel.
6
A kezdet nem volt ilyen könnyű: 1983-ban a Motorola DynaTAC 8000x volt az első hordozható telefon, ami megkapta az FCC (az amerikai hírközlési felügyelet) engedélyét. A telefon néhány hónappal később, a tömeggyártás után, a boltokba került és szinte egyből elkapkodták. Mindenkinek kellett az új, szebb világ egyik ígérete. Olyanfajta hullámot indított el, amit még most is érzünk, és soha nem látott növekedésnek indította a mobilkommunikáció szegmensét.
A mobiltelefonok elterjedésén kívül a rajtuk elérhető szolgáltatások száma is rohamos mértékben fejlődött. Hol van már, ha visszagondolunk, amikor a színes képernyős mobil ritkaság számba ment. Ezt követően hasonló módon gondolkodtunk az mp3 lejátszásra képes mobilokról, ezek a készülékek voltak a drágák és divatosak, később ezek a multimédiás funkciók is a készülékek alapfelszereltségévé vált, most hasonló a helyzet a GPS helymeghatározással, ami a jövő vezető szolgáltatása lehet. Valószínűleg, aki először tud hasznos, közérdekű szoftvereket bemutatni, amik kihasználják a GPS-ben rejlő lehetőségeket, az nagy profitra tehet szert és meghódíthatja a mobil piac új most nyíló szegmensét, ebben rejlik most az innováció lehetősége. Ebben a félévben mi is kapcsolódva a GPS-hez mégis egy teljesen más mederbe helyezve képzeltük el a helymeghatározást, egy olyan szolgáltatást megálmodva, amire eddig nem volt példa.
1.2 A feladat ismertetése Új vizeken evezve, a múlt félévi munkát máshonnan folytatva, a GSM helymeghatározás volt ennek a félévnek a témája. A GSM helymeghatározás egy nagyon innovatív technológia, amire jelen pillanatban még nincs tökéletes vagy pontosabban fogalmazva „jól működő” megoldás közkézen, a piac ki van éhezve egy használható GSM adatokon alapuló helymeghatározásra, és abban a szerencsés helyzetben vagyok, hogy ebben, a karunkon működő munkában vehetek részt.
7
A mostani feladatom a GSM helymeghatározásban mért adatoknak elemzése az egyes adatmezők közötti kapcsolat, függőség, más néven korreláció vizsgálata volt. Annak a minimális
számú
adatmezőnek
a
kiszámolása,
megadása,
amelyekből
pontos
helymeghatározás lehetséges, pontosabban mondva az a minimális halmaz, ami még pont elég, viszont nem túl sok, ahhoz, hogy a ne menjen pontosság vagy a fedés rovására. A kapott eredményekből következtetések levonása, majd ezeknek az új tapasztalatoknak a tudatában kidolgozni egy jobb algoritmust, amit majd gyakorlatban kipróbálhatunk és alkalmazhatunk a későbbi félévekben vagy akár még ebben a félévben. Az eszközünknek meg kellett vizsgálnom a pontosságát, vételi szint mérésének jellemzőit. Ezekből minél több előremutató eredményt gyűjteni, következtetést levonni. Ezen kívül meg kellett ismernem a Neurális Hálózatokat és azoknak meg kellett ismerkednem az alapvető felhasználásával, lehetséges hálózat modelljükkel. A diplomamunka témája a GSM alapú helymeghatározás Neurális Hálózatok segítségével, ezért fontos minél alaposabban elmélyedni ebben a matematikai módszerben, ami napjainkban egyre több fényt kap.
1.3 Karunkon folyó GSM helymeghatározás technológia lényege A technológia lényege, hogy egy előzetes mérés során feltérképezzük az adott terület GSM jellemzőit a GPS koordinátákkal egyetemben és ezt tároljuk egy adatbázisban. Majd a tényleges helymeghatározásnál megpróbáljuk visszafejteni az adatbázist és a megfelelő GPS koordinátát, ezt rendeljük hozzá a meghatározásnál mért GSM-hez, és ha jól csináltuk, akkor egy közeli eredményt kapunk a valósághoz.
1.4 Célkitűzés Célkitűzésem az adatbázis beolvasása és minél több szempont alapján mérése, elemzése.
Első lépés ennek az igen nagy adatbázisnak a lekezelése, beolvasása amely a ma napság oly népszerű programozási nyelveknek igen sok gondot okozott tapasztalataim során.
8
Következő lépés az adatbázis lecsökkentése egy olyan minimális számú halmazra, amiben csak különböző elemek vannak, ez egyfajta tömörítésnek is felfogható. Ezután történik a különböző immár lecsökkentett sorok összehasonlítása, megpróbálok olyan alapvető elveket megfogalmazni, hogy a sorok nagy részében, hány darab megegyezés van, hol lehetnek eltérések, mik azok a mezők, amik szinte minden egyes sorban megegyeznek, mert ezekre építkezhetünk.
Ezután az eszköz pontosságának mérése következik, amit szintén az adatbázis jellemzőiből fogok elérni. Fontos még a félévben, hogy alapvető Neurális Hálózatok ismeretekkel megismerkedjek. Ezután következhetne magának a helymeghatározó (adatbázisban kereső) algoritmusnak a megalkotása, amely Neurális Hálózatokra épülne.
(Sok cég is építette be profiljába vagy tette főprofiljává a beltéri helymeghatározást és az ezzel egybe kötött vezeték nélküli hálózat kiépítést. Látható, hogy mekkora az igény és mekkora az üzleti értéke ennek a technológiai szegmensnek. GPS technológiát nem lehet kiszorítani vagy leváltani a piacról, azonban nem is kell, mivel a beltéri helymeghatározás teljesen más igényeket elégít ki. A GPS technológia legnagyobb hátránya, hogy épületek belsejében vagy egyéb beltéri területeken (pl. csatorna, barlang…) nem képes helymeghatározásra, mivel a műholdak folyamatos láthatósága (pontosabban minimum 4 db műhold) láthatósága az előfeltétele a mérésnek és a GPS helymeghatározásnak. Hozzáadva az eddigiekhez még az is előfordulhat, hogy egyes külföldi belvárosi területeken, ahol a látóviszonyok erősen korlátozottak a körülvevő épületek miatt, szintén nem lesz sikeres a GPS helymeghatározás. Ezt a hiányosságot lehet kiváltani egy más, rádióhullám terjedésén alapuló helymeghatározással, a WiFi-vel. A mikrohullám terjedésén alapuló helymeghatározás igen pontos lehet, mivel láttuk egyes vállalatok képesek 5 méter pontosságú helymeghatározásra, és kiépítése sem jár feltétlenül extra költségekkel, rá lehet építeni az eddigi vezeték nélküli hálózati rendszerünkre, mint egy pluszszolgáltatás. Ha professzionális helymeghatározásra 9
vágyunk, akkor természetesen előre felmért és beállított csatlakozási pontokra lesz szükségünk (ld. RF Fingerprint). Egy rádióhullám használható helymeghatározásra, a jelterjedéséből következik.)
1.4 Rádióhullámon terjedő jelek áttekintése
1.5 Rádióhullámon terjedő jelek 1. táblázat Az egyes frekvenciasávok elnevezése a hozzájuk tartozó hullámhosszal Elnevezés
Frekvencia
Hullámhossz
ELF extremely low frequency SLF superlow frequency ULF ultralow frequency VLF very low frequency LF low frequency MF medium frequency HF high frequency VHF very high frequency UHF ultrahigh frequency SHF superhigh frequency EHF extremely high frequency
3Hz-tól 30Hz-ig 30Hz-tól 300Hz-ig 300Hz-tól 3000Hz-ig 3kHz-tól 30kHz-ig 30kHz-tól 300kHz-ig 300kHz-tól 3000kHz-ig 3MHz-tól 30MHz-ig 30MHz-tól 300MHz-ig 300MHz-tól 3000Mhz-ig 3GHz-tól 30GHz-ig 30GHz-tól 300GHz-ig
100.000km-tól 10.000 km-ig 10.000km-tól 1.000km-ig 1.000km-tól 100km-ig 100km-tól 10km-ig 10km-tól 1km-ig 1km-tól 100m-ig 100m-tól 10m-ig 10m-tól 1m-ig 1m-tól 10cm-ig 10cm-tól 1cm-ig 1cm-tól 1mm-ig
Az 1. táblázat Az egyes frekvenciasávok elnevezése a hozzájuk tartozó hullámhosszal azt mutatja meg, hogy hány fajta rádióhullámon terjedő jel létezik, ezek mindegyikét fel lehet használni helymeghatározásra, a különbség köztük helymeghatározás szempontjából az, lefedési területük1, ami hullámhosszal arányosan csökken. A lefedési terület határozza meg, mennyire pontos helymeghatározásra képesek. Míg WiFi jelet 40 méteres körben lehet fogni és szinte 4-5 méterenként jelentősen csökken a jelerőssége, és ezzel együtt a szolgáltatás minősége is ugyanígy csökken, addig egy az FM Petőfi Rádiót szinte kilométereken keresztül is ugyanolyan jelerősséggel, gyakorlatiasabban mondva ugyanolyan élvezeti szinttel tudom hallgatni. A frekvencia és hullámhossz fordított arányosságát az 1. egyenlet mutatja.
1. egyenlet frekvencia fordítottan arányos a hullámhosszal 1
Az a terület, amin belül vevőeszközökkel lehet fogni az adott adó sugárzását
f
c
10
Azonos adó teljesítmény mellett ha nagyobb a hullámhossz akkor a négyzetesen fog számítani a vételi szintnél, míg a távolság négyzete fordítottan arányos . 2. egyenlet a rádió hullámú jel vétele a vevőben
PT GT PT GT 2GR A e 4d 2 4d 2 4 Ahol rendre: PT az adó teljesítménye PR
Ae effektív területe az antennának egy állandó, ami az antennát jellemzi
GT Az antenna vételi konstansa (ami az iránytól, nagyságtól, és egyéb paraméterektől függ)
hullámhossz d távolság
PR vételi jelszint
1. ábra a frekvenciák jelvesztesége adott távolság alatt
11
A fentebbi képen is látszik világosan, hogy minél nagyobb a frekvenciája egy adott rádióhullámú jelnek annál nagyobb minőségromlást kénytelen elszenvedni a megtett távolsággal arányosan. Ebből következik a lefedettségi terület megértése is, nevezetesen, hogy minél nagyobb a frekvenciája egy jelnek, annál kisebb területet tud lefedni, gondoljuk csak a rádiókra amikkel 10-20 kilometerre lehet szórni egy egy adást, de gondolhatunk a kisebb hullámhosszú GSM hullámokra, amikkel már csak maximum egy kilométeres lefedettség területet kapunk és a lista végén a IEEE 802.11 szabvány áll amivel már csak 4060 m-t tudunk kijelölni és beszórni, viszont ennek a hátránya, hogy jóval sérülékenyebb a jel külső behatásoktól, ahogy a 1. ábra a frekvenciák jelvesztesége adott távolság alatt ábra is mutatja. [])
1.6 Kültéri helymeghatározási rendszerek Ebbe a fejezetben, ha szükséges, akkor írható még 5 oldal is akár vagy ki is hagyható, röviden leírható. A bemutatást a kültéri helymeghatározási rendszerekkel kezdem és először GPS-t (Global Positioning System) mutatom be, mivel ez a legismertebb és legelterjedtebb helymeghatározási módszer, ezért dolgozatomból nem tudom kihagyni a rövidebb pár oldalas összefoglalását a technológiának és
1.6.1 GPS (Global Positioning System)
1.6.1 Assisted GPS (A-GPS)
1.6.1 Tranzit
1.7 Beltéri helymeghatározási rendszerek Röviden áttekintem azokat a létező Rádió hullámon terjedő jeleket, melyekkel helymeghatározás lehetséges beltéren
12
1.7.1 Wi-Fi 1.7.2 GSM 1.7.2 Ultrahang
1.8 Helymeghatározási módszerek Közös jellemzőjük, hogy egy kérés hatására különböző adatokból (ezek lehetnek a jeladók pozíciói, a vevőben mért vételi jelszintek, referencia pontok adatbázisa) egy algoritmus eredményeként egy becsült pozíciót kapunk. Terület vagy pont is lehet a helymeghatározás eredménye. Egyes módszereknél szükség van a jeladók pozíciójára is, más esetekben elegendő a vevőben mért adat. A geometriabecslés kategóriába tartoznak az alább felsoroltak. [1]
1.8.1 Háromszögelés Ez a módszer az egyes jeladók (lehetnek bázisállomások vagy vezeték nélküli eszközök) bemérésének hagyományos módszere pl. rádióállomás. Ebben az esetben szükséges a jelsugárzók pozíciója. Két szög és egy távolság ismeretével képesek vagyunk meghatározni a vevő pozícióját, hiszen a háromszög egy oldalának és két szögének ismerete elegendő a távolság számításához. Két méréssel a két szög meghatározható, a pozíciókból pedig a háromszög oldala kiszámítható. Több méréssel a hiba mértéke csökkenthető. Ez a geometriai becslés (2. ábra Háromszögelés két bázisállomás pozíciójának ismeretével igen érzékeny a jeladók elhelyezkedésére, nagyobb a hiba, ha kedvezőtlen a helyezkedésük. 1 és 2 a mért szöget és d a pozíciókból számított távolságot jelöli a képen.
13
2. ábra Háromszögelés két bázisállomás pozíciójának ismeretével
14
1.8.2 Ívmetszés Ívmetszésnél szintén szükség van a jeladók pozícióinak ismeretére, most nem a mért szögekből, hanem a mért távolságból következtetünk a bemérendő adó pozíciójára. Ha meg tudjuk határozni egy jeladótól mért távolságunkat, akkor ez a távolság egy körív mentén adódik, ha két jeladótól tudunk távolságot határozni, akkor ez két pont lesz. Három bázisállomás esetén már pont alapú helymeghatározás lehetséges. További mérésekkel csökkenthető a hiba. A 3. ábra Ívmetszés három bázisállomástól mért távolságbólábrán a d1, d2, d3 a távolságokat jelöli és a harmadik bázisállomás kijelöli az A és B lehetséges pozíciók közül a B-t.
3. ábra Ívmetszés három bázisállomástól mért távolságból
1.8.3 Leszármaztatott A mozgó objektum (kommunikációs hálózati rendszertől függően lehet mobiltelefon, laptop, esetleg GPS vevő) pozíciójának meghatározására szolgál. Szükséges feltétel, hogy az eszköz kezdeti pozícióját tudjuk pl. GPS koordinátákból. Az ismert kiinduló ponttól kezdődően folyamatosan mérjük a készülék pillanatnyi gyorsulásának nagyságát, irányát. Ezeket az adatokat a sorozatos pozícionálásokból is ki lehet számítani, azonban az új generációs okos telefonok számottevő hányada rendelkezik gyorsulásmérővel, amivel lehet mérni az irányt és a nagyságot is. A mozgás pillanatnyi gyorsulásából az eltelt idő alapján kiintegrálható a távolság vektor, ezt hozzáadva a kezdeti pozícióhoz megkapjuk az aktuális pozíciót. 15
Hasonlóan tovább az újabb és újabb helyzetek is meghatározhatók az időmúlásával és a kiintegrálással. Régen a tengeri navigáció során használták az iránytűvel, sebességmérővel és kronométerrel (igen pontos, idő mérésére alkalmas eszköz) felszerelt hajók. A származtatott helymeghatározás nagy előnye, hogy olyan esetekben, amikor vétel megszűnik, tovább vagyunk képesek pozícionálni az előzetes mérési eredményekből, a gyorsulás kiszámításából. Az egyes becsült pozíciók közötti szakaszokat egyenes szakaszokkal közelítik (útvonalgörbe). A mérési hibák halmozódnak az ismétlődő további pozícionálásokkal, azonban egyből lehet javítani, amint a helymeghatározó rendszerünk jele újra vehető.
1.8.4 Helymeghatározás területi azonosítók szerint A rádióhullámon terjedésén alapuló hálózatok közül: a GSM és Wi-Fi hálózatok esetén is lehetőség van a végkészülékből a területi azonosítók kinyerésére. Bázisállomások azonosítóját (BSIC) az adó kisugározza, a Wi-Fi AP-k (Access Point: Csatlakozási Pont) azonosítója szintén „broadcastolódik”, amit a végkészülékek képesek fogni. Ismert bázisállomás esetén hozzá lehet rendelni olyan földrajzi koordinátát, amely az ellátott terület közepét jellemzi, ez nem lesz pontos adat, viszont minden egyes ponttól, ahol vesszük a jelet maximum akkora lehet a távolság, ameddig a sugárzott jel a vételi szint tartományán belül terjed. Tehát ennél a módszernél, ha egy Wi-Fi adó 90 méter sugarú körben szór, míg egy GSM adó akár 2 kilométer sugarú kört is le tud fedni, akkor a helymeghatározás ebben az esetben 90 méteren belüli, míg a második esetben 2 kilométeren belüli lesz. Ennél a módszernél a további helyváltoztatások során a bázisazonosítók figyelésével tovább finomítható a helymeghatározás. Az adatsor alapján a leszármaztatott módszerhez hasonlóan gyorsulást és mozgásirányt tudunk számolni a készülékhez, ezt belekalkulálva a pozícionálásba tovább pontosíthatjuk. Nagyvárosi környezetben a cellaméret jelentősen lezsugorodhat GSM-nél (pár száz méterre), ilyenkor a módszer jobb eredményt hozhat.
1.8.5 Helymeghatározás észlelt időkülönbségek mérése alapján Ha a bázis állomások, Wi-Fi jeladók órái szinkronizáltan működnek, akkor lehetőség van a vevőben az időkülönbségekből távolságot számolni. Ehhez szükséges, hogy minden eszközben egy szinkronizált pszeudorandom jelsorozat fusson.
A vevőben fogjuk a
bázisállomások által sugárzott jeleket, ezek tartalmazzák a pszeudorandom kódokat, amik a vevő időben addig tologat, amíg újra egymásra nem simul a két jel időbeli alakzata, ha meg van a szinkronizáció, megvan az időeltolás. Az időeltolásból a rádióhullám terjedésének 16
egyenletébe behelyettesítve, pedig megkaphatóak a távolságok. (GPS technológiánál ismert kódméréshez hasonlóan) Az ábrán 3 bázis állomás és az általuk sugárzott jelek érkezési ideje (T1, T2, T3) látszódik. A valóságban a mobiltelefon nem működik szinkronizáltan, emiatt az időkülönbségeket tudja venni a készülék (T2-T1, T3-T2, T3-T1) és a hálózatépítő ismeri az adók pozícióját. A pontok, amik bázisállomás páronként egyforma időeltéréssel veszik a jeleket egy hiperbola mentén helyezkednek el és a metszéspont végül kiadja a pozíciót.
4. ábra helymeghatározás 3 bázisállomásból jövő jelek észlelt időkülönbsége alapján
2 Neurális Hálózatok Ebben a témakörben először alapvetően áttekintjük ennek a módszernek az ismérveit, felépítését, eredetét majd megnézzük az egyes különböző neurális hálózatokat. Mindezt, azért tesszük, mivel feltételezéseink szerint megvalósítható a helymeghatározás javítása a Neurális Hálózatok segítségével. A neurális hálózatok, amelyeknek eredete a biológiai rendszerekből származtatható, olyan párhuzamos feldolgozást végző, adaptív eszközök, amelyek jól teljesíthetnek bármilyen
17
matematika probléma megoldásában. Főleg olyan esetekben teljesíthetnek jól, amikor a rendszerünk úgymond fekete dobozként funkcionál, keveset tudunk róla és próbáljuk közelíteni. [2]
2. 1
Bevezetés
Ez a kutatási irányzat még nagyon friss és nagyon újszerű, sokáig aránytalanul méltányolva volt, mikor Minsky és Papert kimutatták 1969-ben, hogy a perceptron csak lineáris szeparálásokra képes, ami a feladatoknak csak egy nagyon kis része. Ebben az időben olyan algoritmus még nem létezett, ami többrétegű hálózatokat lett volna képes tanítani (mint most a Backpropogation). És Marvin Minsky, aki a MIT professzora volt, azon sejtésének adott helyet, hogy szerinte nem is létezik ilyen algoritmus, amivel több rétegű Neurális Hálózatot lehet tanítani. Mintegy húsz évet kellett várni, hogy felélénküljenek az ilyen irányú kutatások. Erre, pedig akkor került sor, amikor a Hopfield hálót publikálták 1982-ben. Ez a publikáció megmutatta, hogy egy viszonylag egyszerű hálózat, hogyan tud megoldani komplex problémákat, köztük NP-teljes feladatokat is képes közelíteni. Jelentős esemény volt még továbbá a hiba visszaterjesztés algoritmusának (BackPropogation Algorithm) feltalálása, amely elvetette Minsky sejtését, mely szerint nem lehet tanítani többrétegű hálózatot.
2. 2
Perceptron
A neurális hálózatok alap építőköve ez az elem. A lenti ábrán látható modell a McCullock-Pitts modell. Nagyon sok perceptron modellt megalkottak, viszont ez a legelterjedtebb és legismertebb modell, a legtöbb hálózat ezt a neuron közelítést használja. Lényege, hogy a bejövő inputokat súlyozzuk, különböző értékekkel majd ezeket összeadjuk és egy aktivizációs függvénnyel, ami a nem lineáris funkcióért felelős, kiértékelünk. Az aktivizációs függvény érteki 0,1 között lehetnek, azaz a kimenetünk értéke is ennyi lehet hard esetben. Soft esetnél [0,1] között lehetnek az értékek.
18
Az ábrán látszik a bemenő vektor és a súly vektor, ezenkívűl még van egy 0.-k súly is, amit w 0al jelölünk, ezt hívjuk biasnak. Ha tanítani szeretnénk a Perceptront, hogy különböző szeparáló feladatokat oldjunk meg vele, pl. lineáris szeperálásokat (Ilyen az AND és OR logikai fv. is) akkor Rosenblatt algoritmussal tudjuk megtenni
Ilyenkor nincs másra szükségünk csak egy adott bemenethez tartozó elvárt kimenetből álló tanító halmazra és a sokadik iterációra beállnak a súlyok.
2. 3
Hopfield Neural Network
19
A Hopfield network topologiájat a lenti ábra mutatja. A súlyokat mátrixos alakban szokták megadni ennek jele W, a bias-t vektorban szokás jelölni: b. Bemeneteink
nincsenek,
mivel
állapotokból
indítjuk
a
hálózatunkat.
Háromfajta
állapotátmenet szabályunk lehet: 1. Szekvenciális Szabály: 2. Valószínűségi Szabály: 3. Párhuzamos Szabály: Túl sokat nem elidőzve ezzel a modellel, a dolgozat terjedelme nem elegendő a részletes bemutatásra. Csak a számunkra érdekes lehetőségekre figyelve, ez pedig a Hoppfield hálózat viselkedése, mint egy asszociatív memória.
20
2.3.1
Hoppfield Network vizsgála GSM helymeghatározásra
A HNN jó szolgálatot tehet a GSM helymeghatározás javítására, ha pár szempontot szem előtt tartunk. Sajnos bizonyítékok még nincsenek, de az elmélet jó támpontot ad. A Hopfield network viselkedése mint egy asszociatív memória:
Az ábrán látható, hogy egy előre eltárolt mintákat tartalmazó Hopfield hálózat képes az ilyen félig vagy felismerhető mintákból arra asszociálni, ami a legközelebb áll a mintához. A GSM helymeghatározás nyelvére ezt úgy lehet lefordítani, hogy a mi előzőleg mért és tárolt mintáinkból képzett memóriát építünk fel a Hoppfield-Hálózatunkban és ezekre próbálunk majd asszociálni egy félig felismerhető (újonnan mért eredmény) mérésből, ami valószínűleg el fog térni az eddig mintáktól. Sajnos mindennek van árnyoldala, a Hopfield hálózatnak is van. Ez, pedig a kapacitás kérdése. A mi esetünkben az információs theoritikai kapacitást kellene használnunk, mivel előre nem tudjuk megjósolni a mért adatunkat.
21
Itt az M a minták száma, ahányat tárolni tudunk és N a perceptronok száma. Ez könnyű számolásokkal is látszik, hogy nagy mintaszámnál nem hatékony, valószínűleg kivitelezhetetlen a Hoppfield Network használata, ezért a javasolt felhasználása a beltéri helymeghatározás, ahol rögzített és lényegesen kevesebb számú pontunk van, mint kültéren.
2. 4 Feed Forward Neural Network Ennek a hálózat típusnak a különlegessége, hogy rétegekbe vannak rendezve az egyes perceptronok. A kimeneti érték számolása az alapképlet egymásba skatulyázásával érhető el:
2.4.1 Backpropogation Ezen az ábrán egyenes vonal az eredeti irányt jelöli, a szaggatott, pedig a hiba irányát.
A súlyok minimalizálva vannak az empirikus hibafüggvényből:
A súlyok a következőképpen vannak beállítva (ilyenkor az empirikus hiba bizonyítottan konvergál a minimumhoz): 22
2.5 Létező Neurális Hálózat Modellek Neural Networks Matlab (Profi szintű kiegészítő a Matlab-hoz, lehet tervezni, futtatni, tanítani a neurorális háloinkat, az alap Matlabra szükség van hozzá cserébe GUI-t is kapunk) Java-s Neural Networks megvalósítások, előnyük az, hogy nincs szükség hozzá semmilyen extra alkalmazásra. A legígéretesebb azonban a C#-ban írt megoldás, ezzel foglalkoztam a legtöbbet a félév során. Osztálydiagramja lentebb látható:
23
24
3 Az elemzendő adatbázis felépítése Vizsgálódásaim első számú tárgyai, azok az előmérési eredmények voltak, amiket két mérőeszköz egy héten keresztül folyamatosan vett a két adott ponton, egymástól 2 méter távolságnyira. Mivel két mérés történt, ezért két ilyen fájl készült, amiben ilyen adatok vannak tárolva.
3.1 Adatbázist tároló fájlok
Adott két fájl jellemzői itt láthatóak. Név:
Méret:
Sor:
0407[1].txt
212.304.096 byte
849.018 db
0417.txt
87.626.678 byte
355.402 db
Fontos hozzátenni, hogy ezek a sor és méret adatok hibaellenőrzés előtti állapotra vonatkoznak, mivel a feldolgozás során kivesszük a hibás sorokat, vagy ahol nem értékelhető a mérés, ezért a 800.000 sorból 300.000 marad 355.402 sorból 200.000 marad megközelítőleg.
25
Ezek több szempontból érdekes mérések, mivel helyileg állandó, viszont időben változó mérési eredmények, ezért arra a fontos kérdésre kaphatunk választ, hogy időben mennyire változnak vagy konstansok ezek az adatok. Az a megérzés az, hogy változnak, de a vizsgálatok után, lehet csak biztosat állítani.
3.2 Adatmezők jelentése
Egy általános sor felépítését tekintjük most át. Lentebb (táblázat 1.) láthatjuk a sorokban szereplő adatmezőket, minden egyes mezőből 7 szerepel egy sorban, az első 13 elem GPS mező lenne, de mivel itt egy pontban történtek a mérések, ezektől eltekintünk, az utolsó mező, pedig az időt tárolja így jön ki: 13+9*7+1=77db mező. 2. táblázat
13. MNC
14. MCC
15. LAC
16. 17. CELLID BSIC
18. CHANNEL
19. RSSI
20. C1
21. C2
Az adatsor elemeinek fogalmának tisztázása következik. A GPS adatokkal felsorolás szinten sem foglalkozunk, mivel ezek a mi méréseinkben, (mint a korábbiakban is említettük) nem játszanak most szerepet. Egy GSM struktúra általános felépítése: 001E,2B21,10,741,34,24,32,216,30)*7 -
MCC
Mobil Country Code mint 216, mivel Magyarország
-
MNC
Mobil Network Code mindig 30, mivel T-mobile Sim
001E:
LAC
Location Area Code
2B21:
CELLID
10:
RSSI
vételi szint
741:
Channel
hz-ben kapjuk
34:
BSIC
Base Station Identification Code
24:
C1
Color code
32:
C2
Color code
cella azonosító
26
Csak az első struktúrában nincs kitöltve az MNC, MCC utána már igen, de ezek mindig megegyeznek, mivel nem lépünk át az ország határain vagy nem cserélünk SIM kártyát mérés közben.
3.3 Felhasznált eszközök Mivel az adathalmazunk mérete, sorszáma igen magas, ezért különböző eszközöket kellett igénybe vennünk. Eszköz neve
:
Funkciója:
1. Java
szűrés
2. Linux scriptek
tömörítés, szűrés
3. Microsoft Excel
grafikon rajzolás, eredmény megjelenítés
4. Matlab r2007b
elemzés
5. Statistics Toolbox (Matlabhoz kiegészítés)
elemzés
6. C#
a végén már minden elemzés ebben történt
3.1 Java
Az első elképzelés az volt, hogy a program minden része Java-ban fog futni, de sajnos a modern világ nem engedte ezt meg. Ennek oka, hogy a Java Virtuális Gépének Heap-je maximálva van, és körülbelül 50 megabyte felett nem képes működni, mivel a Matlab is Javaban van megírva így ott is adódtak emiatt a későbbiekben problémák.
A Java memória gondjai miatt csak az alap szűrő program lett implementálva Java-ban, milyen mezőket hasonlítsunk össze, milyen sorokat ne vegyünk figyelembe (pl. hiba miatt, vagy pl. a LAC (Location Area Code) sokszor 1E, néha 001E, de a jelentése ugyanaz, ezért ugyananak is vettük), kiiratás és az a funkció, hogy a sorrend ne számítson az egyes soroknál, hanem tetszőleges legyen, hogy egy adott rekord (pl. cellid, channel) hányadik elemként fordul elő, ami számít, hogy csak az adott sor tartalmazza. 27
A sorrend függetlenség megoldása Java-ban:
while(true) { Beolvasott=in.readLine(); String[] result = Beolvasott.split(","); for(int i=0;i<=6;i++) { try{ tempk=Integer.parseInt(result[18+i*9]); } catch (ArrayIndexOutOfBoundsException ep) {} if (tempk != 0) { for(int j=0;j<szam.length;j++){ if (szam[j] == 0 ) { szam[j] = tempk;} if(szam[j] == tempk) {break;} } } }
Rövid leírása a megoldásnak: egy tömböt használunk, ahol az összes frekvencia értéket tároljuk sorrendben, majd ezekbe pakoljuk bele, ha találunk a sorban megegyezést, mivel a frekvencia sávok száma véges, a mi esetünkben 42 db, ezért ezzel megoldható a sorrend érzékenység.
3.2 Scriptek Munkám során az egyik legnagyobb segítséget a Linuxba beépített script nyelv segített, ennek a segítségével tudtam a megegyező sorokat megszámolni és sorba rendezni. Egy általános utasítás így nézett ki: Cat 0704.txt | sort –r | uniq –ci | sort –nr > 0704.elemzett.txt
28
Cat segítségével olvassuk be a fájlunkat, majd sorba rendezzük a sort segítségével, erre a uniq utasítás miatt van szükség, mert csak előre rendezett fájlban tud megegyezéseket keresni, az uniq c paraméterezése azt jelenti, hogy számoljuk is a megegyezéseket, ne csak tüntessük el az egyező sorokat, az i paraméterezése, pedig, hogy kis és nagybetűs eseteket nem vesszük figyelembe. A sort n paramétere azt jelenti, hogy a karakterek számbeli értékét vegye figyelembe, az r pedig, hogy visszafele, növekvő sorrendbe rendezze. Ezt a scriptet lefuttatva egy olyan kimenetet kapunk, ahol nincs megegyező sor és fentről lefelé azok a sorok vannak listázva, amelyeknek a legnagyobb az előfordulása. Ha pl.
BSIC C1 C2 mezőket akarjuk összehasonlítani és a java szűrés utáni kimenetet adjuk
bemenetnek: Megegyezés
BSIC C1C2
181606
19;9;15
153745
38;28;36
130651
39;29;37
109178
36;32;32
89323
14;4;10
80188
20;10;16
67720
15;5;11
67295
11;1;15
55924
18;8;14
51535
16;6;12
Összefoglalva reguláris kifejezéseket használunk a megoldáshoz, még pontosabban véges automatákat, és ez a megoldás működött.
3.3 Microsoft Excel, Dia, Gnuplot Az elért eredmények ábrázolása ezeknek az eszközöknek a segítségével készült.
3.4 Matlab + Statistics Toolbox A főkomponens analízist lehetett elvégezni a Matlab-ban a Toolboxban található Princomp() függvény segítségével. A főkomponens analízis a neurális hálózat tanításánál nagy mintahalmaz esetén fontos szerepet játszik. 29
3.5 C# Egy idő után áttértem erre, mivel az adatfeldolgozó eljárások könnyebben foglalhatóak ún. .dll formájába, amivel már mindenki egyénileg függvényhívásokkal elemezheti az adatait.
3.6 Mobiltelefonokon megvalósítható adatbázis Mind WiFi helymeghatározás, mind GSM helymeghatározás esetén szükséges lehet a mobil végkészülékeken az adott területi azonosítók és vételi jelszintek egy adatbázisban történő tárolása. Ezt az adatbázist internetes kapcsolat útján később egy szervernek lehet továbbítani vagy az egyes méréseket individuálisan is továbbíthatóak. [ 3
3.6.1 Adatbázis elérés fajtái
I. Az adatbázis elérését tekintve: Az adatbázisokhoz alapvetően kétféleképpen férhetünk hozzá. a) Az egyik a kliens-szerver oldali hozzáférés. Ez alatt azt értjük, hogy ilyenkor több program alól tudjuk osztott módon elérni az adatbázisunkat, azonban külső kapcsolódásra nincs lehetőség (ekkor az RDBs osztályt alkalmazzuk).
b) A másik lehetőség a közvetlenebb mód, a fájlszerver használata, ilyenkor esetleg több külső felhasználó is hozzáférhet az adatbázisunkhoz, azonban csak kizárólag egy adott alkalmazás által, ez a kliens oldali elérés (az RFs osztályra van szükségünk).
Összegzésképpen elmondható az elérési módokról, hogy ha kisebb projektről van szó, akkor a kliens oldali elérés javasolt a gyorsaság miatt, azonban ha nagyobb alkalmazás fejlesztésbe vágjuk a fejszénket, akkor célszerűbb az utóbbi módot alkalmazni, annak több felhasználós támogatottsága miatt. 30
II. Az adatbázis típusát tekintve: Két adatbázis típust különböztetünk meg, ezeket a típusokat két különböző osztály implementálja (RDbNamedDatabase és RDbStoreDatabase). Mindkét API egy szülőtől származtatható nevezetesen az RDbDatabase osztályból. Ez az ősosztály az adatbázisok eléréséhez szükséges műveleteket definiálja, pl. a tranzakció kezeléssel kapcsolatos parancsokat, adatséma-módosító utasításokat (DDL, tábla- és indexlétrehozó,
indextörlő és –módosító utasítások) vagy különféle SQL-utasítások
végrehajtását. a) Az egyik lehetőség az RDBNamedDatabase osztály használata, ahol egy adatbázist a szokásos módon egy névvel illetünk, ez lehetőséget biztosít kliens-szerver elérésre is. Lehetőségünk van az adatbázist megnyitni (Open), létrehozni (Create) vagy felülírni/lecserélni (Replace), a zárójelben lévő metódusokkal. Titkosításra a CSecurityEncryptBase objektumot használhatjuk.
b)A másik lehetőség az RDBStoreDatabase osztály alkalmazása, ebben az esetben, habár csak kliens-oldali elérésre is van lehetőség, közvetlenebb elérésre van módunk, mivel az adatbázisunk állandó. Tömörítésre is tudunk végezni az adatbázisunkon, aminek elég nagy a processzoridő szükséglete, viszont a visszatömörítés már gyorsabban megvan.
Végül elmondható, hogy ha egyszerűbb egy felhasználós adatbázist szeretnénk implementálni, ahol egy adatbázisban tárolunk minden adatot, (mivel neveket nem tudunk adni), akkor választhatjuk az RDBStoreDatabase osztály kínálta alacsonyabb szintű elérést, de ha nagyobb, sok useres adatbázisra van szükségünk akkor az első megoldást kell alkalmazni.
31
3.6.2 Symbian megvalósítás
Munkánk során, az adatbáziskapcsolatok megismerésében egy I/a. elérésű és II/b. típusú adatbázist néztünk meg, mivel elsősorban példaprogramok fejlesztése a célünk ebben a félévben.
Ha nagyobb adatbázist építenénk fel, akkor is inkább mindent a szerveren
végeznénk, ott futtatnánk le a query-ket, és saját interfészt használnánk az adatok mobilra viteléhez. A mostani feladatban, azonban kifejezetten mobil végkészülékeken futó adatbázisokra
voltunk
kíváncsiak,
ezeknek
a
megvalósítására,
kezelhetőségére,
használhatóságára.
A Symbian RDBMS implementálása után, végignézzük a példaprogramunk főbb pontjait. Nagy vonalakban tekintjük át, amik a megértés nehézségét fokoznák, azokat kihagyjuk. 5 darab metódus segítségével kreáljuk, adunk hozzá, és jelenítjük meg az adatbázisunkat. // Adatbázis készítése és struktúrája LOCAL_C void doMakeDatabaseL(const TDesC& aDatabaseFileName); // Néhány rekord hozzátétele az adatbázishoz LOCAL_C void doAddDataL(const TDesC& aDatabaseFileName); // A sorok megjelenítése LOCAL_C void doShowL(const TDesC& aHeading,RDbRowSet& aSet); // A Nevek tábla elkészítése LOCAL_C void doCreateTableL(RDbDatabase& aDatabase); // A Nevek index kreálása LOCAL_C void doCreateIndexL(RDbDatabase& aDatabase);
A Főprogramunkban az adatbázis kreálásának első lépéseit végezzük, megadjuk a fájl nevét, majd az emulátornak a szükséges fejlécekhez az eléréseket:
32
_LIT(KDbCreateDb,"dbcreate.db"); _LIT(KCEpoc32exData,"C:\\epoc32ex\\data\\"); TParse name; fsSession.MkDirAll(KCEpoc32exData); fsSession.Parse(KDbCreateDb,KCEpoc32exData,name);
Sok Symbian sajátosságtól eltérünk itt és csak a magját mutatjuk be. A doMakeDatabaseL() metódusban látható, hogy választjuk ki az adatbázis elérési típusát RDbStoreDatabase-t. Ebből a metódusból, még két másik metódus hívódik meg. RDbStoreDatabase database; TStreamId id=database.CreateL(store); store->SetRootL(id); store->CommitL(); doCreateTableL(database); doCreateIndexL(database);
A doCreateTableL() függvény, az adatbázis táblánkat kreálja meg, itt tudunk oszlopokat létrehozni, 4 oszlopot hozunk létre a Nevek elnevezésű táblában
_LIT(KCol1, "Keresztnev"); _LIT(KCol2, "Vezeteknev"); _LIT(KCol3, "Szuletett"); _LIT(KTable, "Nevek"); // Táblát definiálunk CDbColSet* columns=CDbColSet::NewLC(); // add the columns // text columns default to 50 characters (variable length) columns->AddL(TDbCol(KCol1,EDbColText));
33
// specify an alternative length TDbCol vezeteknev(KCol2,EDbColText,60); vezeteknev.iAttributes=TDbCol::ENotNull; columns->AddL(vezeteknev); TDbCol szuletett(KCol3,EDbColInt32); // columns are Nullable by default szuletett.iAttributes=TDbCol::ENotNull; columns->AddL(szuletett);
Utána a CleanupStackel, pedig felszabadítjuk az objektumot, hogy ne legyenek memórialeakek. CleanupStack::PopAndDestroy();
doCreateIndexL() metódussal kulcsot generálunk egyszerűen két oszlopunkhoz, és utána ugyanúgy CleanupStack-ben felszabadítjuk az erőforrásokat. Visszatérünk a főmetódushoz és ott doAddDataL() függvény hívódik meg, itt történik az adatbázis feltöltése. Egy adattagot a következőképpen töltünk fel. (Természetesen előtte, hogy ezt meg tudjuk csinálni, nézetet kell csinálnunk az adatbázisra, ez a Symbian sajátossága révén kell megtenni szintén kicsit hosszadalmas, ettől most eltekintünk) _LIT(KComposition1, "Kovács"); _LIT(KComposer1, "Béla"); view.InsertL(); view.SetColL(1,KComposition1); view.SetColL(2,KComposer1); view.SetColL(3,1984); view.PutL();
34
SetColL-l metódussal tesszük bele az adatbázisba az adatokat, majd a PutL()-el véglegesítjük. Miután befejeztük a feltöltést, lezárjuk az adatbázist és a nézetünket, majd szintén meghívjuk a CleanupStack::PopAndDestroy() memória felszabadító függvényét.
Utána már nincs egyéb dolgunk csak lekérdezni az adatbázisunkat. Ehhez szintén kapcsolódni kell az adatbázishoz és csinálni egy query-t: _LIT(KSQLStatement,"select
vezeteknev,keresztnev,szuletett
from
Nevek
order
by
keresztnev,vezeteknev"); Egy ciklusban lekérdezni az adatbázis, különböző formázásokkal pedig megjeleníteni: for (aSet.FirstL();aSet.AtRow();aSet.NextL()) { // egy sor megmutatása aSet.GetL(); // adatok kinyerése az adatbázisból aSet.ColDes()-el TPtrC vezeteknev=aSet.ColDes(1); TPtrC keresztnev=aSet.ColDes(2); //adtok kinyerése az adatbázisból TInt típusba TInt ev=aSet.ColInt(3); //megjelenítés a képernyőn console->Printf(KRowFormatter,&keresztnev,&vezeteknev,ev); }
És a 4. ábra mutatja az emulátoron megjelenítve a végeredményt.
35
4. ábra
4 Elvégzett vizsgálatok, kapott eredmények Ebben a fejezetben Különböző vizsgálatok alapján statisztikai eredményeit kapjunk, Fontos ezeket kielemezni, mivel ezek az eredmények határozzák meg a GSM vagy Wi-Fi helymeghatározásunk technológiának alapjait.
4.1LAC, Cellid, Channel összehasonlítása 0417.txt
alapján
93 különböző adatsorból áll
a
megegyezések
Leggyakoribb 10 sor
ismétlődésszáma:
36
95517 87853 5668 3123 2944 1429 1393 1385 1049 924
4.2 LAC, Cellid, Channel, BSIC alapján a megegyezések összehasonlítása
37
0407[1].txt
40.669 különböző adatsorból áll
első 700 elem:
4.3 LAC, Cellid, Channel, RSSI alapján a megegyezések összehasonlítása
0407[1].txt
307ezer sort redukáltunk le 1845 különböző adatsorra
első 700 elem:
38
első 100 elem:
Leggyakoribb 10 sor
ismétlődésszáma: 23165 18105 17761 17542 11596 9705 8254 8169 8013 5825
39
40
4.4 Főkomponens analízis (Principal Component Analysis) A GSM alapú helymeghatározás jelenleg úgy működik, hogy az összes mérési adatot tároljuk. Ez jelenleg megfelelő, de a későbbiekben a gyakorlati alkalmazásoknál a különböző eszközök véges tárolási és számítási képességével számolnunk kell.
A főkomponens analízis (angolul röviden PCA) során korlátozott csatorna vagy korlátozott feldolgozó egységünk miatt, szükséges lépés az eredetileg N dimenziós adathalmazt, egy M dimenziós adathalmazra transzformálni, ahol M <<<< N. [4]
5. ábra 812db egyedi 3 dimenziós [RSSI, C1, C2] vektor PCA eredménye
A főkomponens analízis után megvizsgálva a súlyokat egyértelműn látszik a képen (ábra szám) , hogy lehetőség van tömörítésre mivel az első és második főkomponens szinte teljesen tömöríti az adatokat. Vizsgálatom során, mivel a korábbiakban kifejtettem, hogy C1 és C2 miben hasonlít kommunikációs fogalom szintjén az RSSI-hez, megvizsgáljuk, hogy valójában mekkora hasznos információt tárolnak ezek az adatok számunkra. Arra vagyunk kíváncsiak, hogy a BSIC mennyire korrelál a C1 C2-vel. Matlab Princom() függvényét futtatjuk le a
41
0407[1].txt szűrt és matlabba betöltött vektorán. 812-db egyedi vektor találtam A különböző a 812db vektorra lefuttatva a PCA-t az eredmény: COEFF= 0.4626 0.8642 -0.1981 0.6718 -0.1959 0.7143 0.5785 -0.4635 -0.6712 Arra vagyunk kivancsiak, hogy a RSSI mennyire korrelál a C1 C2-vel. Matlab Princom() függvényét futtatjuk le a 0407[1].txt szűrt és matlabba betöltött vektorán. 524-db egyedi vektor találtam A különböző a 524 db vektorra lefuttatva a PCA-t az eredmény:
COEFF= -0.9988 -0.0434 -0.0225 0.0182 -0.7569 0.6532 0.0454 -0.6520 -0.7568
4.5 Műszerünk vételi mérésének vizsgálata
4.5.1 Műszerünk paraméterei:
GSM/GPRS/EDGE modem Fax és adat kapcsolat extra hardver nélkül
42
tud kommunikálni 850/900/1800/1900Mhz-en is. kis méret és kis fogyasztás könnyű irányítás AT parancsok segítségével
4.5.2 RSSI (Received Signal Strength Indication)
A vételi szint vagy más néven RSSI vizsgálatát jelentette ez a feladat. Most ezzel a fogalommal ismerkedünk meg röviden. A telekommunikációban az RSSI (Received Signal Strength Indication) egy mérés , amely a rádió jelnek az erősségét reprezentálja. RSSI az egy vevő készülék oldali mérés, amely gyakran láthatatlan a felhasználó számára. Az erre vonatkozó szabványokat az IEEE 802.11 tartalmazza. A mérések a [0,255] intervallum között mozoghatnak a termék gyártójától függően. Az 1-es érték a minimális mérhető értéket jelenti, míg a 0 azt jelenti, hogy egyáltalán nincs jel. Ennek a változónak van maximális értéke is, ami a gyártó függő. Példának okáért a Cisco System kártyái 0 és 100 közötti értéket fognak kiadni. Ebben az esetben az RSSI_MAX 100-t jelent. Tizedes értékek nincsenek, emiatt a Cisco kártyák, tehát 101 különböző értéket tudnak kijelezni. Egy másik népszerű gyártó azonban 0-127 közötti RSSI értéket fog visszaadni egy mérést követően (0x80 egy hibás mérést fog jelenteni). Ezzel a tudással felvértezve megvizsgáljuk a műszerünk vételi paramétereit, azaz mérési adatait, jellemzőit, határait. 4.5.2 A mérés
A mérőeszköz pontosságát fogjuk mérni RSSI adatokon. Ez a vételi szint elemzését jelenti. A vizsgálathoz, mint az előbbiekben is, most is egy igen nagy adathalmazt vizsgáltam Név:
Méret:
0417.txt
87.626.678 byte
Sor: 355.402 db
Először is megvizsgáltam, hogy tudunk-e mérni tizedes jegyet, végigmenve az összes soron és minden egyes értéken, hogy tartalmaz-e tizedespontot.
43
if (szet[17+i].IndexOf(".")>-1) {Console.Write("Igen, Tartalmaz tizedes jegyet ebben az értékben: "+szet[17+i]);tizedes=true;} Majd megvizsgáltam, hogy a maximum és minimum RSSI-t, és azt tapasztaltam, hogy mínusz soha nem volt, ami alátámasztja azt, hogy ilyen téren 100% megbízhatóságú a műszer. A Maximum RSSI:
45
A Minimum RSSI:
0
A meglepő csak annyi, hogy nagyobb RSSI értéket nem mértünk.
Megnéztem, hogy az egyes RSSI értékek hányszor fordultak elő. ábra
Majd ebből valószínűséget is számoltam:
44
Az ábrából az következik, hogy a két legvalószínűbb mérési eredmény a 39 és a 20. A kapott eredmény azt mutatja, hogy tíz mérésből kétszer ezek az eredmények (39-es és 20-as vételi szint) fordultak elő.
Ezt a vizsgálatot elvégeztem a bázis állomásokra is, azaz a BSIC-re. Az itt kapott eloszlásokat a következő ábra mutatja:
Ez a megdöbbentő kép azt mutatja, hogy az esetek 70%-ban ezek közül a bázis állomások közül az egyik látható a mérőműszerünk által, ha ebbe a képbe beveszünk egy 6. bázis állomást, akkor már az esetek 78%-ban. Kimagaslóan nagyobb a valsószínűsége ezeknek a bázis állomásoknak a többihez képest.
45
Ezek a bázis állomások rendre: 10 12 22 24 56 kódot viselik.
46
5 Helymeghatározás javítása neurális hálózatok segítségéve
Való világbeli probléma
Reprezentációja az adatoknak, paramétereknek
FNN tervezés
Tanulóhalmaz tervezés
w OPT
mérés
FNN tanítás
Dereprentezáció
Megoldás
6. ábra Helymeghatározás problémájának megoldása előrecsatolt neurális hálózatokkal
Adott egy való világbeli probléma, a mi esetünkben a helymeghatározás javításának problémája ezt a problémát reprezentálnunk kell a neurális hálózat számára érhető nyelvre. A probléma absztrakt leprogramozása után, meg kell terveznünk a neurális modellünket. Az előző fejezetben megvizsgált statisztikai jellemzők alapján kijelenthetjük, hogy van jogosultsága a helymeghatározásnak (mivel időben kváziállandóak az adatok), és a neurális hálózatok képesek univerzális approximátorként működni (minden egyes függvényt tetszőleges pontossággal közelíthetnek). Tehát ha úgy tekintünk a problémára, mint egy N dimenziós függvényre, ahol N a látott AP-k száma, akkor megkonstruálhatjuk a modellünket. Neurális hálózatok esetén először is definiálnunk kell a modellt, amit használni szeretnénk, a dolgozatomban az előrecsatolt neurális hálózatokat használtam. Bemeneteket 0-1 tartomány közé kell transzformálnunk a bemeneteket.
47
Egy egyszerűsített adatbázist használtam, 4 pontot felvettem egymától 5 méter távolságra, itt 50-szer elvégezve a méréseket az eredményt kiátlagoltam az értékeket (így csökkentettem a zaj hatását az adatokra) Az adatsorok felépítése: 3. táblázat
1. Dátum
2. 3. 4. x_pozíció y_pozíció SSID
5. MAC
6. átlag_RSSI
7. SSID
8. 9. MAC …
Az alábbi adatsorokat mentettem el az adatbázisban: 201005070428,368,212,11,Astarte,00:17:3f:62:7c:81,-70.0,SpeedTouchA12B0E,00:90:d0:f7:c9:e4,73.0,petkezs,00:23:69:1f:f2:88,-67.0,csagica,00:03:2f:21:ec:9f,-73.0,TP-LINK_D0AEC2,00:21:27:d0:ae:c2,75.0,linksys,00:1d:7e:bc:c7:6c,-71.0,rush,00:23:cd:de:84:12,-72.0,franko_net,00:1c:a2:d9:da:c9,73.0,Peter,00:1c:a2:db:4e:41,-51.0,Karg,00:23:cd:ff:de:e6,-66.0,Nandi,00:1c:a2:ff:3c:08,0.0 201005070428,395,299,15,Astarte,00:17:3f:62:7c:81,-61.0,,SpeedTouchA12B0E,00:90:d0:f7:c9:e4,73.0,petkezs,00:23:69:1f:f2:88,-67.0,,00:13:f7:7a:12:18,-81.0,csagica,00:03:2f:21:ec:9f,59.0,KMPC,00:1c:f0:47:c8:26,-81.0,TP-LINK_D0AEC2,00:21:27:d0:ae:c2,-75.0,linksys,00:1d:7e:bc:c7:6c,56.0,Nandi,00:1c:a2:ff:3c:08,-72.0,rush,00:23:cd:de:84:12,-60.0,franko_net,00:1c:a2:d9:da:c9,77.0,Office,00:18:4d:10:43:5a,-84.0,Peter,00:1c:a2:db:4e:41,-56.0,Karg,00:23:cd:ff:de:e6,-65.0 201005070428,160,203,10,Astarte,00:17:3f:62:7c:81,-70.0,SpeedTouchA12B0E,00:90:d0:f7:c9:e4,75.0,petkezs,00:23:69:1f:f2:88,-66.0,csagica,00:03:2f:21:ec:9f,-74.0,TP-LINK_D0AEC2,00:21:27:d0:ae:c2,81.0,linksys,00:1d:7e:bc:c7:6c,-69.0,rush,00:23:cd:de:84:12,-73.0,franko_net,00:1c:a2:d9:da:c9,70.0,Peter,00:1c:a2:db:4e:41,-43.0,Karg,00:23:cd:ff:de:e6,-62.0 201005070428,443,56,15,Astarte,00:17:3f:62:7c:81,-64.0,SpeedTouchA12B0E,00:90:d0:f7:c9:e4,73.0,petkezs,00:23:69:1f:f2:88,-67.0,csagica,00:03:2f:21:ec:9f,-59.0,TP-LINK_D0AEC2,00:21:27:d0:ae:c2,75.0,linksys,00:1d:7e:bc:c7:6c,-65.0,Nandi,00:1c:a2:ff:3c:08,-76.0,rush,00:23:cd:de:84:12,64.0,franko_net,00:1c:a2:d9:da:c9,-73.0,Peter,00:1c:a2:db:4e:41,-50.0,Karg,00:23:cd:ff:de:e6,68.0,Office,00:18:4d:10:43:5a,0.0,KMPC,00:1c:f0:47:c8:26,0.0
Ezen azonosítójú vételi jelszintek elfogadható nagyságban minden pontban foghatóak: [Peter, Karg, Petkezs, franko_net, lynksis, Astarte] T Ezen AP-k vételi jelszintjei fogják adni a referencia pontokat az egyes koordinátákban. Tehát 4 referencia pontunk lesz, amik rendre: 1. referencia pont: [-51, -66,- 67, -73, -71, -71] T 2. referencia pont: [41, -65, -67, -77, -56, -71] T 3. referencia pont: [-43, -62, -66, -70, -69, -70] T 4. referencia pont: [-50, -68,- 67,- 73, -65, -64] T PETER SSID-ju router a legerosebb, nem veletlenul, mivel ez a lakasban talalhato sajat routerem. Erdekes megfigyelni azonban, hogy ennek is lemegy a veteli jelszintje egy falon áthaladva körülbelül -7 dBm-el, az 1. es 4. koordinataban Ezek közül is tovább szűrtem 4 AP-ra a tanulóhalmazt mivel számunkra kevés az információ tartalma a 3.-k Petkezs azonosítója AP-nak: -67, -67,-66,-67 ez az AP csak a probléma komplexitását növelné, és a második is kivettem, mivel a többi AP-t jobbnak találtam. Az áttranszformált tanulóhalmaz tehát így néz ki: 48
public static double Tanulohalmaz_Bemenetek[][] = { { 0.51, 0.73, 0.71, 0.70}, { 0.41, 0.77, 0.56, 0.61}, { 0.43, 0.70, 0.69, 0.70}, { 0.50, 0.73, 0.65, 0.64}, }; public static double Tanulohalmaz_Kimenetek[][] = { { 1.0 }, { 2.0},{ 3.0 },{ 4.0} };
Nagyobb tanulóhalmazt is alkothattam volna, viszont először szerettem volna látni, hogy ezek a referencia pontok a neurális hálózatom számára megtanulhatóak. Erre tanítottam többféle algoritmussal a neurális hálózatomat.
7. ábra 4 db pontra tanítás kétfajta algoritmussal
Random kezdősúlyokat állítottam be a hálózatnak. Az ábrán látható, hogy a másodiknak választott algoritmus folyamatosan éri el a megfelelő súlyokat, míg az első algoritmus egy lokális értékbe megérkezve onnan nem tud kimozdulni. Az iterációt mutatja az x tengely, azaz, hogy hányszor tanítotttam a hálózatot, a hiba mértékét pedig az Y tengely, mivel lineáris a kimeneti függvényem így az első pár 100 epochnál az első algoritmus nagyon nagy hibákat generált, ezt a részt kivettem, mivel a lényegi rész nem lett volna ábrázolható, tehát fontos megjegyezni, hogy az első sima BP algoritmus is képes volt rátanulni a mintákra csak
49
egy adott lokális optimálisnak tűnő hálózat súlykészletet nem tudott tovább javítani, míg a második tanuló algoritmus fokozatosan érte el a kívánt hiba értéket, amit most 9%-ra állítottam be, itt mivel lináris függvényről van szó ez a hiba érték nem azt jelenti, hogy az esetek 9%-ban rossz megoldásunk lesz, hanem, hogy a kimeneti érték az elvárt 1 vagy 2 helyett [0,91 - 1,09] vagy [1,91-2,09] értékeken belül van. Megvizsgálva a második algoritmust (ResilientPropogation) az képes tovább is tanulni azaz gyakorlatilag bármekkora pontosság elérhető időtől függően, egy idő után lassul a pontosság növekedése (ábra). A tanulásban látható külöbség abból ered, hogy véletlen súlyokkal indítjuk a hálózatunkat, tehát az optimális súly kollekciótól nagyon távoli is lehet ez az indítás. 2100 iterációig (az előbbi 1000iteráció helyett) tanítottuk a neurális hálózatot ahol 2%-s hiba nagyságot sikerült elérni.
A rendszer kimenete a tanítás után: Tanulóhalmaz: [0.51, 0.73, 0.71, 0.70] [0.41, 0.77, 0.56, 0.61] [0.43, 0.70, 0.69, 0.70] [0.50, 0.73, 0.65, 0.64]
elvárt =1.0 elvárt=2.0 elvárt=3.0 elvárt=4.0
tényleges kimenet= 1.0042084865909815 tényleges kimenet= 2.0045961360046434 tényleges kimenet= 2.9941104780321197 tényleges kimenet= 4.004889745316982
Újonnan felvett mérésekre: [0.44, 0.72, 0.70, 0.70.] [0.40, 0.70, 0.62, 0.67]
valódi pozíció=1.0 valódi pozíció=2.0
tényleges kimenet= 1.3540529439947497 tényleges kimenet= 1.6858126551616763
Hibák is előfordulnak:
50
[0.36, 0.76, 0.77, 0.67]
valódi pozíció=4.0
tényleges kimenet= 3.1004295485155984
Jól látható, hogy a rendszer hibázik igaz, nem ad pontos választ (1.0 ~1.354…) viszont ha a két algoritmus eredményeit kombináljuk, azaz oda rakjuk a lehetséges halmazból a pozíciókat, ahová a neurális hálózat a legnagyobb valószínűséggel asszociál, és amit az eredeti algoritmus kijelöl, akkor ebben az esetben javítottunk a helymeghatározásunkon. Nagy előnye még, hogy nem egy konkrét helyre mutat, hanem egy értéket ad, ami megmutatja, hogy a hálózat szerint milyen valószínűséggel esik ez a pont az 1. pozícióra. Tovább javítható a működés, ha egy transzformációt végzünk a bemeneteket, amikor normalizálunk 0-1 közé és vissza transzformációt a kimeneteken.
A használt FFN modell:
Peter
Σ
tan
Σ Franko_net
Σ
tan
tan Pozíció száma
Σ
tan
Σ
tan
Σ
lin
lynksis
Σ
tan
Astarte
Σ
tan
8. ábra Megtervezett előrecsatolt neurális hálózati modell 8 neuronból áll.
A modellt úgy terveztem, hogy az aktuális méréseket bemenetnek adva egy számmal jelölt pozíciót adjon, tehát ha az első pozícióban vagyunk és ott mérünk, akkor 1legyen a kimenet, ha a másodikban mérünk, akkor 2 és így tovább. A lehetséges bemenetek az RSSI értékek azaz egy 4 dimenziós [0…1] intervallumon értelmezett vektor. A bemeneti réteg 4 db neuronból áll és az aktivizációs függvénye tangens, a rejtett réteg 3 darab neuronból áll és aktivizációs függvénye tangens szintén. A kimeneti réteg 1 darab neuronból áll, ami a pozíciót mutatja és lineáris függvény, azaz bármilyen valós
51
szám lehet a kimenete. A rejtett réteget próbáltam 4 neuronnal is így viszont sokkal több ideig tartott a hálózat tanítása, ezért maradt a rejtett rétegben 3 neuron végül. További modell lehetőségek: - Még egy rejtett réteg becsatolása, ahol a 2. rejtett réteg szintén tangens, ennek a rétegnek a kimenete olyan súly, ami a pozíciót jelenti, tehát ha az utolsó kimeneti réteg pedig a pozíció azonosítóját adná meg. -az a második rétegbeli neuron tüzelne, amelyiknél valószínű, hogy a valódi pozíciót kódolja ( 9.ábra) Peter
Σ
tan
Σ Σ
Franko_net
Σ
Σ
tan
Σ
tan
tan
tan
2
Σ
tan
lin
pozíció azonosítója
3
lynksis
Σ
Σ
tan
tan 4
Σ
Astarte
tan
Σ Σ
tan
tan
9. ábra 2 rejtett rétegű FNN
- két kimeneti neuron, ahol a pozíciókat adná meg, ez a neuron képes lehetne megtanulni a környezetben kódolt jelterjedési viszonyokat (sejtés: ide nagyon nagy méretű tanulóhalmaz kellene, hogy a jelterjedési körülménye, reflekció, több utas terjedés számba vegye a hálózat) ( 10.ábra)
Peter
Σ
tan
Σ Franko_net
tan
Σ Σ
lin
Y koordináta
tan
Σ
tan
lynksis
Σ
tan
Σ Σ
Astarte
Σ
lin
X koordináta
tan
tan
10. ábra FNN modell pozíciók a kimeneteken
52
5.1 Az implementált Java WiFi tracking rendszer Javaban elkészült egy alkalmazás, amely WiFi adatok alapján képes pozícionálni egy egyszerű algoritmussal, ezzel közelítjük a geometriai módszerek pontosságát.
11. ábra Wi-Fi helymeghatározó toolbox GUI: 21 darab referencia pontot tartalmazó adatbázissal az Egyetem épületén belül
Az ábrán a grafikus felhasználói felület látható. Ezen a képen az az egyetemen végzett méréseket tároltuk az adatbázisban (ITK 4. emeletén készült mérések). A lehetséges pozíciók színe kékkel van megjelölve, míg ha a helymeghatározás gombra nyomunk, akkor egy algoritmus kiértékeli a tárolt pontokat és a processzálást követően megjelenik pirossal a legvalószínűbb pozíció helyzete. Lehetőség van térkép betöltésére, új pontok felvételére, összes pont törlésére, adatbázis betöltésére, mentésére és aktuális pozíciónál fogható jelek mérésére. 53
Az alkalmazás több modulból áll. Legalul a hálózati kártya és a fájlrendszer helyezkedik el. A vezeték nélküli hálózati kártyával egy protokollon keresztül tart kapcsolatot a WifitoJava osztály, ezen az osztályon keresztül tudunk mérni, aktuális vételi szinteket lekérdezni. A FileOperations osztály a fájlrendszerrel tartja a kapcsolatot, ez az osztály a felelős az adatbázis mentéséért, betöltéséért, és a bitmapok beillesztéséért térképként. A betöltött vagy lekérdezett adatokat az algoritmusok osztálya rendezi a megfelelő adatszerkezetekbe, generál referencia pontokat, és képes egy valós idejű mérésből legvalószínűbb pozíciót meghatározni két fajta modell segítségével (neurális hálózatok és egyszerű összehasonlító módszerrel) (ábra)
Grafikus User Interface Algoritmusok osztálya WifitoJava osztály Halókártya
FileOperations osztály Fájlrendszer
12. ábra Egymásra épülő modulok
5.2 Algoritmusok komplexitás vizsgálata
Tehát látszik, hogy valós idejű helymeghatározásnál, lényegesen gyorsabb a neurális hálózatokkal való helymeghatározás, ellenben azzal, mintha mindig minden egyes pontot az összes adatbázisbeli elemmel összehasonlítanánk.
54
6 Következtetések, Összegzés Az adatokat sikeresen fel tudjuk most már dolgozni, olyan eszközök, megoldások vannak a birtokainkban, amikkel viszonylag gyorsan, és szinte bármekkora adatbázist fel tudunk dolgozni, szűrni és soraiból következtetéseket vonni, szinte bármilyen vizsgálatokat el tudunk végezni ezekre a már szűrt adathalmazra. Eredmények vannak, most gyakorlatba kell átültetni az itt megtapasztaltakat. Az ábrákról a következőt lehet leolvasni, időben vannak állandó tényezők, ha jól választjuk meg a helymeghatározáshoz szükséges cellid-kat, location area kódokat, frekvencia sávokat, akkor már nagy valószínűséggel be tudjuk lőni a céleszköz helyét, utána már reményeink szerint csak pontosítani kell a távolságokat a vételi szinttel. Egy egyszerűbb példán megnézve a 4.3 pontban elemzett adatokat megszemlélve: 0407[1].txt fájltelemeztük, és az első 3 leggyakoribb sor adatszerkezete a következő: 23165 1E,23C5,116,24,1E,2B21,741,10,,,115,57,1E,23C7,112,13,1E,23CF,106,21,006F,23A4,118,56,,, 109,66,,,117,0,,,108,47,,,736,0,,,119,0,,,114,0,,,735,0,,,729,0,,,732,0,,,749,0,,,110,0,,,738,0,,,7 39,0,,,744,0,,,748,0, 18105 1E,23C5,116,24,1E,2B21,741,10,1E,0EFC,115,57,1E,23C7,112,13,,,106,21,,,118,56,,,109,66,,,1 17,77,,,108,47,,,736,22,,,119,53,1E,240D,114,24,,,735,56,,,729,12,,,732,7,,,749,4,1E,23D8,11 0,55,,,738,77,,,739,55,,,744,4,,,748,7, 17761 1E,23C5,116,24,1E,2B21,741,10,1E,0EFC,115,57,1E,23C7,112,13,,,106,21,,,118,1,,,109,66,,,11
55
7,77,,,108,47,,,736,22,,,119,53,1E,240D,114,24,,,735,56,,,729,12,,,732,7,,,749,4,1E,23D8,110, 55,,,738,77,,,739,55,,,744,4,,,748,7, itt mind 3 sorban megegyezik: 1E,23C5,116,24 1E,2B21,741,10 1E,23C7,112,13, Ennek a 3*4 konkrét elemnek (LAC,CELLID,CHANNEL,RSSI) megadásával tudnánk keresni egy pontosabb helyre, egy ilyen utasítással: „azok a sorok, amik tartalmazzák ezeket az adatokat azok itt találhatóak.”
A Főkomponens analízis egy matematikai módszer, használatával az adathalmaz dimenzióját tudják csökkenteni. Van egy bemenő adatvektorunk és ebből képezünk koordináta transzformációval egy jó esetben független kimenő adatvektort, mivel független, azaz merőlegesek egymásra ezek a vektorok így egy matematikai tételből adódóan kisebb vagy egyenlőnek kell lenni az eredeti bemenő vektorunkkal. Ebben a modellben a koordináta transzformációt keressük.
Sajnos ez az előbb bevezetett főkomponens analízis meglepő eredményt hozott, mivel sejtésünk szerint ki kellett volna esnie oszlopoknak, ehelyett azt az eredményt kaptuk, hogy lineárisan nem összefüggőek az adatok, hiába lett beszorozva a koordináta transzformációval. A mérőműszer eredményei azt támasztották alá, hogy igenis pontosak a méréseink és a BSIC eloszlásának az ábráján, ahogy láttuk, időben alig változó, invariáns komponenseket is lehet találni. Ha ezeket ültetnénk bele neurális hálózatokba, akkor talán még tovább lehetne pontosítani a helymeghatározásunkat, de ezekre a kérdésekre csak a jövőfélévben fogunk választ kapni.
56
A Hopfield hálózatokban a fentebb tárgyalt indokok miatt igen nagy potenciált látok beltéri helymeghatározásra, azonban körültekintően kell meghatároznunk a tárolt mintákat és a bináris decimális konverziónak a veszélyei sem egészen tisztázottak a számomra, ezt a következő félévben fogjuk viszgálni
6.1 Problémák
Problémát okozott C#-ban ez a hatalmas mennyiségű adathalmaz kezelése, sajnos elég sokáig OutOfMemory kivételekbe futottam. És ha a C#-s Neurális Hálózatos modelt fogjuk alkalmazni, akkor valahogy meg kell oldani a memória kezelést. A legnagyobb problémát idén a Neurális Hálózatoknak az elvonatkoztatott szintű nézete és intuitív felhasználása jelentette. Az eddigi felhasználásokból, alkalmazásokból egy olyasfajta átható szemléletet nyerni, amelynek a segítségével meg lehet alkotni egy rendszert, amivel pontosabb helymeghatározást tudunk elérni
7 Összefoglalás A helymeghatározó rendszer, amit bevezettünk az előző fejezetekben az egyetlen módszer, amellyel elfogadható pont alapú helymeghatározást lehet végezni beltéri területeken. Nincs lehetőség egy épületben vagy barlangban esetleg csatornában műholdakat látni és abból a vételidő különbségén alapuló helymeghatározást végezni. A GSM jelekre alapuló helymeghatározás egy alternatíva lehetne, de mivel jóval nagyobb a lefedési területe, mint egy szabványos 802.11 hálózatnak, ez részben a különböző frekvencián és a különböző teljesítményén alapul az adóknak, ahogy láttuk az fejezet egyenleténél. Ezért nem várhatunk el olyan pontosságú helymeghatározást, mint egy jól bekalibrált, előzetesen felépített rendszer a vezeték nélküli hálózaton. Általánosan elmondható tény tehát, hogy minél magasabb a frekvencia, minél kisebb területet határoz meg az adott rádióhullámon terjedő jel, annál pontosabb helymeghatározásra van lehetőség. Jelenleg a mikrohullámú
57
kommunikáció jelei azok, amik a legszélesebb körben elterjedtek és a legkisebb sugarú lefedési kört határozzák meg. Wi-Fi hálózatok igen széles körben használtak, minden egyes mérésnél 6db AP fölött láttunk, napjainkban nem csak nagy vállalatok, irodák, tanintézmények osztják meg ily módon a hálózatot, hanem minden internetet használónak van lehetősége pár ezer forint környékén egy vezeték nélküli jel adására képes készüléket vásárolnia. A Wi-Fi hálózatoknál egy kardinális kérdés, hogy milyen eszközök interferálnak a hálózatunkkal pl. távirányítók, vezeték nélküli eszközök (Fax, telefon, egér…), ezeknek kiszűrése Spektrum Analizáló eszközökkel lehetséges. Egész iparág nőtte ki magát az épületen belüli helymeghatározásból, nagy igény van erre, komoly piaci, üzleti értéke van a technológiának és nem kevesen gazdagodnak meg ebből. A cégek féltve őrzik azokat a technológiai innovációkat, amiket hosszú évek kutatása alatt értek el mérnökök, kutatók tucatjaival. Ahogy
bemutattuk…
fejezetben
a
neurális
hálózatok
használhatóak
a
helymeghatározás javítására, azonban ahhoz, hogy használható legyen, először fel kell építenünk a tanuló halmazt és a modellt, a bemeneti réteg neuronszáma megegyezik a bemenetek számával, a rejtett rétegbe elegendő eggyel kevesebb neuron is. A modell megépítése után, tanítanunk kell, megfelelő tanulóhalmaz és maga a tanítás is igen időigényes feladat lehet. A helymeghatározásra épített szolgáltatások száma szinte
kimeríthetetlen,
gondoljunk csak arra, hogy minden cég szeretné követni a dolgozóit, hogy rendesen végzik a munkájukat; a nagy értékű eszközeiket szintúgy szeretnék biztonságban tudni. A szülők szintén szeretnék tudni, hogy épségben vannak-e a gyermekeik az iskolában. Korházakban csakugyan fontos az értékes objektumok védelme, bevásárlóközpontokban egyszerűbbe lehetne a vásárlást és a fogyasztókat az őket érdeklő számukra prioritással bíró üzletek felé navigálni. Múzeumokban prospektusok mellé helymeghatározást kínálva még teljesebbé tehető az élmény, szintúgy vidámparkokban. Barlangokban túrázóknál, bányákban dolgozóknál emberéleteket lehetne menteni az 5-10 méteren belüli pont alapú helymeghatározással. Összefoglalásképpen kijelenthetjük, hogy a WiFi helymeghatározás gyors, pontos, beltéri helymeghatározásra a legpontosabb megoldás, amelynek helymeghatározási módszerét javítani lehet neurális hálózatokkal.
58
8 Köszönetnyilvánítás Köszönettel tartozom témavezetőmnek, Tihanyi Attilának a végtelen türelméért, folyamatos segítőkészségéért és a számtalan hasznos ötletéért, magyarázataiért. Továbbá szeretném megköszönni Treplán Gergőnek a segítséget a Wi-Fi helymeghatározásban. Nélkülük nem jöhetett volna létre ez a dolgozat.
Végezetül hálás vagyok a GSM
helymeghatározó csoport minden tagjának.
59
Régi Irodalomjegyzék
[3] Pere László: Linux Felhasználói Ismeretek 1-2 – kiadó: Kiskapu Kft. [4] Vivek G. Gite: Linux Shell Scripting Tutorial – kiadó: -. [5] Jiangou Jack Wang , Jinlin Wang, David Sinclair, Leo Watts : A Neural Network and Kalman Filter Hybrid Approach for GPS/INS Integration [6] Steffen Nissen : Neural Networks Made Simple [7] Ben Kröse, Patrick van der Smagt : An introdustion to Neural Networks [9] Matlab Support [Internet]. Hivatkozás:http://www.mathworks.com/access/helpdesk/help/toolbox/stats/index.html?/ac cess/helpdesk/help/toolbox/stats/rn/brikqoj1.html&http://www.mathworks.com/products/new_products/latest_features.html [10] BME GTK lapjának mobil telefon története c. cikke [Internet]. Hivatkozás: http://p2p-fusion.mokk.bme.hu/w2/index.php/14._A_mobiltelefon_t%C3%B6rt %C3%A9nete
60
[11] Prof. Levendovszky János Neurális Hálózatok c. tárgyának elektronikus jegyzete [Internet]. Hivatkozás: http://neural.hit.bme.hu
Formázott Irodalomjegyzék
61
1[] Gy. Takács, „Helymeghatározás mobiltelefonnal és mobil hálózattal”, Híradástechnika 8., 2008. 2[] Horváth, Neurális Hálózatok és műszaki alkalmazásaik, Budapest: Műegyetemi Kiadó, 1998. 3[]Hassan, Csúcs, Forstner, Marossy, Symbian alapú szoftverfejlesztés, Bicske: SZAK kiadó, 2004. 4[] Jollife, Principal component analysis, 2nd edition Springer, 2002.