Systemet använder received signal strength indicator (RSSI) från flera accesspunkter (APs) för att triangulera positionen. Denna triangulering bygger på att jämföra aktuella RSSI-värden med värden från en fingerprint databas med olika kända positioner
Systemet använder algoritmen K-Nearest Neighbor (K-NN) där
Denna modell bygger på datapunkter där avståndet mäts med euklidiskt avstånd.
Enskilda punkter kan påverka klassificeringen. Litet K gör modellen känslig för brus. Stort K gör modellen mer stabil men beslutet blir mer generaliserat och mindre precist.
Programmet uppdaterar positionen vid nästa tidssteg
Vid varje tidssteg
Så här kör du programmet
Källkod ./knn/next_p.c
Kompilera koden
gcc -o next_p ./knn/next_p.c
Testfall
För att köra programmet med förflyttning 20 längder nordost (45 grader), med start North 100, East 50
./next_p 100 50 20 45
Förväntat output
114.14 64.14
För
Så här kör du programmet
Källkod ./knn/ap_ss.c
Kompilera koden
gcc -o ap_ss ./knn/ap_ss.c
Testfall
./ap_ss 1 2 3 4 5 6 7 8 9
Förväntat output
1.0 0.0 0.0
0.0 1.0 0.0
0.0 0.0 1.0
1.00 2.00 3.00
4.00 5.00 6.00
7.00 8.00 9.00
Programmet hanterar RSSI-värden från flera APs och representerar dessa i en matris
Så här kör du programmet
Källkod ./knn/ap_r.c
Kompilera koden
gcc -o ap_r ./knn/ap_r.c
Testfall
För att köra programmet med 9 värden som RSSI-signalstyrkor från olika APs.
./ap_r 1 2 3 4 5 6 7 8 9
Förväntat output
1.00 2.00 3.00
4.00 5.00 6.00
7.00 8.00 9.00
Programmet genererar en fingerprint vektor