Як розрахувати відстань від маршрутизатора Wi-Fi за допомогою сили сигналу?


84

Я хотів би розрахувати точне розташування мобільного пристрою всередині будівлі (тому немає доступу до GPS)

Я хочу зробити це, використовуючи потужність сигналу (в дБм) принаймні 3 фіксованих сигналів wifi (3 фіксованих маршрутизатори, з яких я знаю положення)

Google це вже робить, і я хотів би знати, як вони визначають точне місцезнаходження на основі цих даних

Докладнішу інформацію див. У цій статті: http://www.codeproject.com/Articles/63747/Exploring-GoogleGears-Wi-Fi-Geo-Locator-Secrets


stackoverflow.com/questions/4071539/… Ось посилання для довідки.
yokoyoko

4
Здається, це питання не є темою, оскільки мова йде про електротехніку. Я пропоную перейти на electronics.stackexchange.com
Денні Варод

@lhab хадж, моя вимога така ж, як і ваша. Треба це вирішити? Будь ласка, поділіться своєю ідеєю, щоб інші також могли навчитися на цьому. Дякую.
anddev

Відповіді:


47

FSPL залежить від двох параметрів: перший - це частота радіосигналів; - другий - відстань бездротової передачі. Наступна формула може відображати взаємозв'язок між ними.

FSPL (dB) = 20log10(d) + 20log10(f) + K

d = distance
f = frequency
K= constant that depends on the units used for d and f
If d is measured in kilometers, f in MHz, the formula is:

FSPL (dB) = 20log10(d)+ 20log10(f) + 32.44

З рівняння запасу затухання втрата вільного простору може бути обчислена за таким рівнянням.

Втрата вільного просторового шляху = Tx Втрата кабелю Power-Tx + Підсилення антени Tx + Підсилення Rx антени - Rx Втрата кабелю - Rx Чутливість - Запас поля

За допомогою двох вищевказаних рівнянь втрати вільного простору, ми можемо з’ясувати відстань у км.

Distance (km) = 10(Free Space Path Loss – 32.44 – 20log10(f))/20

Зона Френеля - це область навколо зору прямої видимості, на яку поширюються радіохвилі після того, як вони залишають антену. Вам потрібна чітка лінія зору, щоб зберегти міцність, особливо для бездротових систем 2,4 ГГц. Це пов’язано з тим, що хвилі 2,4 ГГц поглинаються водою, подібно до води, яка міститься на деревах. Емпіричне правило полягає в тому, що 60% зони Френеля не повинні мати перешкод. Як правило, 20% блокування зони Френеля призводить до незначних втрат сигналу до каналу. Понад 40% блокування втрата сигналу стане значною.

FSPLr=17.32*√(d/4f)

d = distance [km]
f = frequency [GHz]
r = radius [m]

Джерело: http://www.tp-link.com/en/support/calculator/


3
Хороша відповідь, і у мене є подальше запитання. Наскільки точні вимірювання? Іншими словами, чи можу я отримати точність у діапазоні дюймів / сантиметрів?
Chiwda

32

Для розрахунку відстані потрібна сила сигналу та частота сигналу. Ось код Java:

public double calculateDistance(double signalLevelInDb, double freqInMHz) {
    double exp = (27.55 - (20 * Math.log10(freqInMHz)) + Math.abs(signalLevelInDb)) / 20.0;
    return Math.pow(10.0, exp);
}

Використана формула:

відстань = 10 ^ ((27,55 - (20 * log10 (частота)) + рівень сигналу) / 20)

Приклад: частота = 2412 МГц, рівень сигналу = -57 дБм, результат = 7.000397427391188 м

Ця формула є перетвореною формою формули втрати вільного простору (FSPL) . Тут відстань вимірюється в метрах, а частота - в мегагерцах. Для інших заходів потрібно використовувати іншу константу (27,55). Прочитайте про константи тут .

Більше інформації читайте тут .


Дякуємо, що вказали, що це має бути абсолютне значення рівня сигналу, я деякий час шукав, що я помилився!
Янніс Цімаліс,

@YiannisTsimalis питання для початківців: це має бути абсолютне значення або просто помножити на негативне? Що робити, якщо рівень сигналу був позитивним дБм?
Ellis Valentiner

@ user12202013 хм, думаю, це залежить від того, як працює ваша точка доступу. Я маю на увазі, як правило, система дБм вказує, наскільки шумним є ваш сигнал. Якщо значення вище, тоді сигнал стає більш шумним, що фактично означає, що сигнал слабший. Або принаймні я так це розумію ..
Яніс Цімаліс

@YiannisTsimalis Я думав загальніше, але, подивившись формулу, думаю, абсолютне значення є правильним, оскільки відстань має бути позитивним
Елліс Валентінер

1
Я досліджував цю формулу вже досить давно, і дійшов висновку, що це абсолютно неправильно! FSPL вимірюється в дБ, тоді як Рівень сигналу вимірюється в дБм. Це може дати хорошу оцінку, але результати можуть бути легко зіпсовані, коли відстань стає досить великою.
Ахмед Хаммад

16
K = 32.44
FSPL = Ptx - CLtx + AGtx + AGrx - CLrx - Prx - FM
d = 10 ^ (( FSPL - K - 20 log10( f )) / 20 )

Тут:

  • K- постійна (32,44, коли fв МГц і dв км, змінюється до -27,55, коли fв МГц і dв м)
  • FSPL - Безкоштовна втрата космічного шляху
  • Ptx - потужність передавача, дБм (до 20 дБм (100 мВт))
  • CLtx, CLrx- втрата кабелю на передавачі та приймачі, дБ (0, якщо кабелів немає)
  • AGtx, AGrx- коефіцієнт посилення антени на передавачі та приймачі, дБі
  • Prx - чутливість приймача, дБм (до -100 дБм (0,1pW))
  • FM - запас затухання, дБ (більше 14 дБ (нормальний) або більше 22 дБ (хороший))
  • f - частота сигналу, МГц
  • d - відстань, м або км (залежить від значення К)

Примітка: у формулах є помилка на веб-сайті підтримки TP-Link (помилка ^).

Замініть Prxсилу отриманого сигналу, щоб отримати відстань від WiFi AP.

Приклад: Ptx = 16 дБм, AGtx = 2 дБі, AGrx = 0, Prx = -51 дБм (сила прийнятого сигналу), CLtx = 0, CLrx = 0, f = 2442 МГц (7-й канал 802.11bgn), FM = 22. Результат: FSPL = 47 дБ, d = 2,1865 м

Примітка: FM (поле зникання) тут здається неактуальним, але я залишаю його через оригінальну формулу.

Вам слід взяти до уваги стіни, таблиця http://www.liveport.com/wifi-signal-attenuation може допомогти.

Приклад: (попередні дані) + одна дерев'яна стіна (5 дБ, зі таблиці). Результат: FSPL = FSPL - 5 дБ = 44 дБ, d = 1,548 м

Також зверніть увагу, що посилення антени не додає потужності - воно описує форму діаграми випромінювання (пончик у випадку всеспрямованої антени, цепелін у випадку спрямованої антени тощо).

Ніщо з цього не враховує відбиття сигналів (не маю уявлення, як це зробити). Ймовірно, шум також відсутній. Тож ця математика може бути корисною лише для грубого оцінювання відстані.


7

простою відповіддю на ваше запитання буде Тріангуляція. Що, по суті, є концепцією всіх пристроїв GPS, я прочитав би цю статтю, щоб дізнатись більше про те, як Google робить це: http://www.computerworld.com/s/article/9127462/FAQ_How_Google_Latitude_locates_you_?taxonomyId=15&pageNumber= 2 .

Наскільки я розумію, вони використовують послугу, подібну до Skyhook , яка є програмним забезпеченням для визначення місцезнаходження, яке визначає ваше місцезнаходження на основі ваших сигналів Wi-Fi / мобільного телефону. Для того, щоб досягти своєї точності, ці служби мають великі сервери баз даних, які зберігають інформацію про місцезнаходження на цих вежах стільникових мереж та точках доступу до Wi-Fi - вони фактично обстежують мегаполіси, щоб підтримувати їх актуальними. Для того, щоб ви досягли чогось подібного, я вважаю, що вам доведеться скористатися такою послугою, як Skyhook - ви можете використовувати їх SDK ( http://www.skyhookwireless.com/location-technology/ ).

Однак, якщо ви хочете зробити щось внутрішнє (наприклад, використовувати розташування власних маршрутизаторів) - вам, ймовірно, доведеться створити алгоритм, що імітує Тріангуляцію. Ви повинні знайти спосіб отримати signal_strengthі mac_addressпристрій і використовувати цю інформацію разом з розташуванням маршрутизаторів , щоб придумати місце. Можливо, ви можете отримати інформацію про пристрої, підключені до ваших маршрутизаторів, виконавши щось подібне до цього ( http://www.makeuseof.com/tag/check-stealing-wifi/ ).


це складне та складне завдання, ви хочете, щоб я дізнався більше про цей аспект служб визначення місцезнаходження .. будь ласка, опублікуйте будь-яку нову інформацію / розуміння, яке ви отримаєте щодо цієї проблеми, мені цікаво знати, як ви її вирішуєте
Суві Vignarajah

5

Відстань (км) = 10 ^ ((Втрата вільного простору - 92,45 - 20log10 (f)) / 20)


1

Загалом, це дійсно поганий спосіб робити речі через багатопроменеві перешкоди . Це, безумовно, більше радіочастотне інженерне питання, ніж кодування.

Tl; dr, радіочастотна енергія wifi розсіюється в різні боки після відбивання від стін, людей, підлоги і т. Д. Неможливо визначити, де ви знаходитесь, лише за допомогою трикутника, якщо ви не в порожній кімнаті з маяками wifi, розміщеними в саме в потрібному місці.

Google може уникнути цього, оскільки вони, по суті, можуть зіставити, де кожен SSID Wi-Fi знаходиться в GPS-місці, коли будь-який користувач Android (який вибирає їхню послугу) потрапляє в діапазон. Таким чином, наступного разу, коли користувач пройде туди, навіть без ідеального сигналу GPS, материнський корабель Google може визначити, де ви знаходитесь. Як правило, вони використовуватимуть це у поєднанні з безглуздим сигналом GPS.

Те, що я бачив, - це сітка пристроїв Zigbee або BTLE. Якщо ви знаєте, де вони викладені, ви можете скористатися комбінованим RSS, щоб визначити, до яких із них ви найближчі, і перейти звідти.


Для отримання додаткової інформації про те , як Google робить це stackoverflow.com/questions/1668304 / ...
yhyrcanus

-6

Вам байдуже, якщо ви модератор. Я писав свій текст для своєї аудиторії не як технічний письменник

Все, хлопці, вам потрібно навчитися орієнтуватися за допомогою інструментів, що передують GPS. Щось на кшталт секстанта, октанта, задника або астролябії.

Якщо ви приймаєте сигнал з 3 різних місць, то вам потрібно лише виміряти потужність сигналу і скласти співвідношення з цих місць. Просте обчислення трикутника, де a2 + b2 = c2. Чим сильніший рівень сигналу, тим ближче пристрій знаходиться до приймача.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.