Подтвердить что ты не робот

Как рассчитать расстояние от Wifi-маршрутизатора, используя силу сигнала?

Я хотел бы рассчитать точное местоположение мобильного устройства внутри здания (так что нет доступа к GPS)

Я хочу сделать это, используя силу сигнала (в дБм) не менее 3 фиксированных сигналов Wi-Fi (3 фиксированных маршрутизатора, из которых я знаю позицию)

Google уже делает это, и я хотел бы знать, как они определяют точное местоположение на основе этих данных.

Проверьте эту статью для получения более подробной информации: http://www.codeproject.com/Articles/63747/Exploring-GoogleGears-Wi-Fi-Geo-Locator-Secrets

4b9b3361

Ответ 1

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

Из уравнения Fade Margin, потеря свободного пробела можно вычислить со следующим уравнением.

Потеря свободного космического пути = потеря мощности 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/

Ответ 2

Чтобы рассчитать расстояние, вам нужна мощность сигнала и частота сигнала. Вот код 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);
}

Используемая формула:

distance = 10 ^ ((27.55 - (20 * log10 (частота)) + signalLevel)/20)

Пример: частота = 2412 МГц, signalLevel = -57dbm, result = 7.000397427391188m

Эта формула преобразуется в форму формулу свободного пробега пути (FSPL). Здесь расстояние измеряется в метрах, а частота - в мегагерцах. Для других мер вы должны использовать разные константы (27.55). Читайте для констант здесь.

Подробнее читайте здесь.

Ответ 3

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 дБм (Ptx))
  • CLtx, CLrx - потери в кабеле на передатчике и приемнике, дБ (0, если нет кабелей)
  • AGtx, AGrx - усиление антенны на передатчике и приемнике, дБи
  • Prx - чувствительность приемника, дБм (до -100 дБм (0,1 пВт))
  • FM - запас по замиранию, дБ (более 14 дБ (нормально) или более 22 дБ (хорошо))
  • f - частота сигнала, МГц
  • d - расстояние, м или км (зависит от значения K)

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

Замените Prx принятого сигнала, чтобы получить расстояние от точки доступа WiFi.

Пример: 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 м

Также обратите внимание, что усиление антенны не добавляет мощности - оно описывает форму диаграммы направленности (пончик в случае всенаправленной антенны, дирижабль в случае направленной антенны и т.д.).

Ничто из этого не учитывает отражения сигнала (не знаю, как это сделать). Вероятно, шум также отсутствует. Так что эта математика может быть полезна только для приблизительной оценки расстояния.

Ответ 4

простой ответ на ваш вопрос будет триангуляции. По сути, это концепция всех 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/).

Ответ 5

Расстояние (км) = 10 ^ ((Потеря свободного пробега - 92.45 - 20log10 (f))/20)

Ответ 6

В общем, это действительно плохой способ работы из-за многолучевых помех. Это, безусловно, больше инженерный вопрос, чем вопрос кодирования.

Tl; dr, радиочастотная энергия Wi-Fi рассеивается в разных направлениях после отскока от стен, людей, пола и т.д. Невозможно определить, где вы находитесь, используя только триангуляцию, если только вы не находитесь в пустой комнате с маяками Wi-Fi, размещенными в точно в правильном месте.

Google может обойтись без этого, потому что, по сути, они могут сопоставить, где каждый SSID Wi-Fi находится в местоположении GPS, когда любой пользователь Android (который подключается к их сервису) входит в зону действия. Таким образом, в следующий раз, когда пользователь будет проходить мимо, даже без идеального сигнала GPS, материнское устройство Google может определить ваше местоположение. Как правило, они будут использовать это в сочетании с дерьмовым сигналом GPS.

То, что я видел, это сетка устройств Zigbee или BTLE. Если вы знаете, где они расположены, вы можете использовать объединенный RSS-канал, чтобы выяснить, к каким из них вы ближе всего, и перейти оттуда.

Ответ 7

Не волнует, если вы модератор. Я написал свой текст для моей аудитории, а не как технический писатель

Все, что вы, ребята, должны научиться ориентироваться с помощью инструментов, предшествующих GPS. Что-то вроде секстанта, октанта, бэкстаффа или астролябии.

Если вы получили сигнал из 3 разных мест, вам нужно только измерить уровень сигнала и составить соотношение из этих мест. Простой расчет треугольника, где a2 + b2 = c2. Чем сильнее уровень сигнала, тем ближе устройство к приемнику.