blogy logo
login PRIHLÁS SA
BLOG deadawp
ČLÁNKY
DISKUSIE
3
SLEDUJETE BLOG
PHP, Arduino programátor
deadawp



Kružnicová trilaterácia - MATLAB
pridal deadawp 6.3. 2021 o 18:35



Určenie polohy bodu (mobilného terminálu) v priestore je dôležité najmä v aplikáciách mobilných sietí. Nájde však využitie aj v navigačných systémoch, alebo aj polohy vo vnútri budov a miestností (tzv. indoor navigation). Samotný odhad polohy môže realizovať mobilný terminál, alebo môže byť odhad polohy mobilného terminálu realizovaný sieťou, čo šetrí batériu mobilného terminálu a určenie polohy je presnejšie, nakoľko sa využíva určitý druh laterácie.

Dnes si ukážeme jednoduchú implementáciu v prostredí MATLAB, ktorá poukazuje na odhad polohy mobilného terminálu v priestore s meraním na strane siete (viacerými BTS stanicami) s rôznou chybovosťou spôsobenou prechodom signálu cez prekážky, či inou interferenciou bez Line of Sight (priamej viditeľnosti).

Požiadavky na implementáciu:

  • 3x BTS stanice, ktoré tvoria ľubovoľný trojholník (vzájomná vzdialenosť medzi BTS minimálne 400 metrov a zároveň menej ako 800 metrov)
  • 1x bod (mobilný terminál) určený ťažnicami trojuholníka v jeho ťažisku (stred trojuholníka)

Priestor, kde sa budú BTS stanice a mobilný terminál budú nachádzať budeme reprezentovať pravouhlým systémom s veľkosťou 1000x1000 bodov (metrov). Pre 2D odhad bodu postačujú aj 2 BTS stanice. Avšak z dôvodu vyššej presnosti využijeme 3 BTS stanice, ktoré dokážu určiť polohu presnejšie, zároveň sú aj v ideálnom priestore, nakoľko platí podmienka pre ich vzájomnú polohu. V prvom kroku je nutné vygenerovať si v prostredí MATLAB súradnice BTS stanice č. 1. Pre vygenerovanie použijeme funkciu randi(), kde nastavíme výstupnú hodnotu funkcie z rozsahu 0 až 1000 pre súradnicu x a y, ktorou budeme reprezentovať polohu BTS v grafe súradnicového systému.

Pri generovaní 2. BTS stanice je nutné dbať na podmienku vzdialenosti medzi vzdialenosťou tejto stanice a už existujúcej BTS stanice s pervými súradnicami. Rozdiel vzdialenosti je jednoduché implementovať, nakoľko využívame fakt, že sú BTS stanice v pravouhlom súradnicovom systéme. Vzťahom pre Pytagorovu vetu (jej druhú odmocninu) je možné vypočítať rozdiely X a Y súradníc a vyjadriť tak vzdialenosť dvoch bodov (v metroch). Využil som jednoduchý cyklus, ktorý generuje súradnice 2. BTS stanice do momentu, kým je splnená podmienka vzdialenosti (viac ako 400 metrov a zároveň menej ako 800 metrov).

Generovanie súradníc 3. BTS stanice je totožné, vyžaduje však porovnanie s oboma existujúcimi BTS stanicami, ktoré už majú pevne svoje body vygenerované v súradnicovom systéme. Pre vyššiu mieru náhodnosti je možné využiť príkaz rng shuffle, ktorý má širšiu entropiu (viac faktorov náhodnosti). Pre určenie bodu, ktorý je v dosahu všetkých BTS staníc a má byť podľa inštrukcií v strede trojuholníka, využijeme ťažnice, ktoré nám spoľahlivo ťažisko nájdu, využívame tu aj vzťah o úsečke, ktorú vytvorí ťažnica, že sa delí v pomere 2:1. Všetky body môžeme vykresliť do grafu, ktorý si definujeme cez axis() s min a max hodnotou pre X a Y os. 

Pre vykreslenie bodov, ktoré sú tvorené znakmi (hviezdička pre bod (mobilný terminál), krížik pre BTS stanice) vykreslíme funkciou scatter(). Čiary na ilustráciu, ktoré reprezentujú absolútnu vzdialenosť medzi BTS stanicami a bodom v strede trojuholníka využijeme funkciu plot. Pre vizualizáciu hodnôt metrov, ktoré poukazujú na vzdialenosť, ktorú daná úsečka reprezentuje využijeme funkciu text(), kde môžeme výstup naformátovať (zátvorky, číslo, dátový typ...) a vpísať do grafu na určitú pozíciu.

Výsledný základný graf s označením a vizualizáciou BTS staníc a mobilného terminálu vyzerá následovne:

Reprezentácia v grafe sa zakaždým mení, nakoľko sú body stále generované pri spustení scriptu. Môžeme tak vidieť rôzne typy trojuholníkov, ktoré systém dokáže vygenerovať, najčastejšie majú najbližšie k rovnoramennému / pravouhlému. Dané vzdialenosti označené pri červených čiarkovaných úsečkách je však absolútna hodnota vypočítaná zo súradníc. Súradnice mobilného terminálu však nie sú BTS staniciam známe. 

Uvažujme však, že vieme súradnice mobilného terminálu z vygenerovaných súradníc tohto bodu, ku ktorým pridáme chybu, ktorá bude reprezentovať chybu merania sieťou, ktorá súvisí napríklad s meraním výkonu prijatého signálu z mobilného terminálu. Ten nemusí mať priamu viditeľnosť na BTS stanicu a chyba je spôsobená prechodom signálu a últmom pri prechode prostredím.

Pridaná chyba odhadu:

  • 5%
  • 10%
  • 20%

Ku známej vzdialenosti medzi BTS stanicou a mobilným terminálom (červená čiarkovaná úsečka z grafu vyššie) pridáme jednotlivé chyby a do grafu vykreslíme kružnicu inej farby pre lepšiu orientáciu. Tento postup opakujeme pre všetky ostatné BTS stanice. Vykreslené kružnice sa v určitom mieste pretínajú a oblasť prieniku nazývame aj kružnicovou (tri)lateráciou. Tam, kde sa kružnice pretli, tam je najpravedpodobnejšie miesto, kde sa nachádza mobilný terminál (bod). Čím je chyba merania vyššia, tým väčšia je aj oblasť, ktorú trilaterácia označuje.

Tento spôsob merania je rýchly a používa sa v rôznych aplikáciách pre určenie polohy bodu v priestore, základ pre čo najlepšie výsledky je však Line-Of-Sight (Priama viditeľnosť). Tento typ merania sa využíva v mobilných sieťach napríklad pre určenie sektoru, kde sa používateľ nachádza. Táto metóda sa používa predovšetkým v LTE sieťach (4G). Nakoľko nevieme presnú súradnicu, kde sa v tomto priestore môže bod nachádzať, odhadneme jeho polohu na stred ohraničenej oblasti (kružnicovou trilateráciou) pre čo najpresnejší (priemerný) výsledok v danej oblasti.

Rozdielom súradníc si vyjadríme aj chybu v metroch, ktorá reprezentuje polohu bodu reálnu (absolútnu) a odhadnutú (relatívnu). V tomto náhodnom výstupe umiestnenia BTS staníc a mobilného terminálu sme pre chybu merania 5% dosiahli chybu merania 138 metrov, pre 10% 150 metrov, pre 20% 173 metrov. 

Ružová hviezdička v grafickej reprezentácii v pravouhlom súradnicovom systéme predstavuje skutočnú polohu mobilného terminálu v dosahu všetkých BTS staníc. Červená, modrá a zelená hviezdička udáva odhadnutú polohu v strede sektora, ktorý bol ohraničený kružnicovou trilateráciou. Hviezdičky sú odhadnuté pre chybu merania 5, 10 a 20% pri šírení signálu prostredím (nepriama viditeľnosť).

Programová implementácia u autora: martinius96@gmail.com



Prístupov 3771
Kvalita článku
hlasov 0

PRÍSPEVKY
SLEDOVAŤ
Prosím prihláste sa pre možnosť pridania komentáru.
Prihláste sa, alebo použite facebook login facebook login
ĎALŠIE ČLÁNKY V BLOGU
ULP aplikácie - ESP8266 / ESP32
[ 14.11.2021] (príspevkov 0)
Detekčná charakteristika - MATLAB
[ 8.8.2021] (príspevkov 0)
Práca s obrázkami - MATLAB
[ 19.7.2021] (príspevkov 1)
Flash Encryption a jeho implementácia v ...
[ 18.7.2021] (príspevkov 0)
Secure Boot V1 a jeho implementácia v ES...
[ 13.7.2021] (príspevkov 0)
Senzor Bosch BME280 v prostredí ESP-IDF
[ 8.7.2021] (príspevkov 0)
Podpora ESP32 do projektu WiFi termostat
[ 1.7.2021] (príspevkov 0)
Beamforming vizualizácia - MATLAB
[ 29.6.2021] (príspevkov 0)
Výroba DPS - AISLER - RFID DOMINATOR
[ 18.6.2021] (príspevkov 0)