신호 강도를 사용하여 Wi-Fi 라우터와의 거리를 계산하는 방법은 무엇입니까?


84

건물 내 모바일 장치의 정확한 위치를 계산하고 싶습니다 (GPS 액세스 불가)

3 개 이상의 고정 Wi-Fi 신호 (위치를 알고있는 고정 라우터 3 개)의 신호 강도 (dBm 단위)를 사용하여이 작업을 수행하고 싶습니다.

Google은 이미 그렇게하고 있으며이 데이터를 기반으로 정확한 위치를 찾는 방법을 알고 싶습니다.

자세한 내용은이 문서를 확인하십시오. http://www.codeproject.com/Articles/63747/Exploring-GoogleGears-Wi-Fi-Geo-Locator-Secrets


stackoverflow.com/questions/4071539/… 여기에 참조 용 링크가 있습니다.
yokoyoko

4
이 질문은 전기 공학에 관한 것이므로 주제를 벗어난 것으로 보입니다. 나는로 마이그레이션하는 것이 좋습니다 electronics.stackexchange.com
대니 Varod에게

@lhab Hajj, 내 요구 사항은 당신과 동일합니다. 이 문제를 해결해야합니까? 다른 사람도 배울 수 있도록 아이디어를 공유하십시오. 감사합니다.
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

Fade Margin 방정식에서 Free Space Path Loss는 다음 방정식으로 계산할 수 있습니다.

여유 공간 경로 손실 = Tx Power-Tx 케이블 손실 + Tx 안테나 이득 + Rx 안테나 이득-Rx 케이블 손실-Rx 감도-페이드 마진

위의 두 개의 자유 공간 경로 손실 방정식을 사용하여 거리 (km)를 찾을 수 있습니다.

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

프레 넬 존은 전파가 안테나를 떠난 후 확산되는 시각적 가시선 주변 영역입니다. 특히 2.4GHz 무선 시스템의 경우 강도를 유지하기 위해 명확한 가시선을 원합니다. 2.4GHz 파장은 나무에서 발견되는 물처럼 물에 흡수되기 때문입니다. 경험상 프레 넬 존의 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

거리를 계산하려면 신호 강도와 신호 주파수가 필요합니다. 다음은 자바 코드입니다.

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 (주파수)) + signalLevel) / 20)

예 : 주파수 = 2412MHz, signalLevel = -57dbm, 결과 = 7.000397427391188m

이 공식은 FSPL (Free Space Path Loss) 공식 의 변형 된 형태입니다 . 여기서 거리는 미터로 측정되고 주파수는 메가 헤르츠로 측정됩니다. 다른 측정의 경우 다른 상수 (27.55)를 사용해야합니다. 여기 에서 상수를 읽으 십시오 .

자세한 내용은 여기 를 참조 하십시오 .


신호 레벨의 절대 값이어야 함을 지정해 주셔서 감사합니다. 제가 잘못한 것을 잠시 찾고있었습니다!
Yiannis Tsimalis

@YiannisTsimalis 초보자 질문 : 절대 값이어야합니까 아니면 음수 값을 곱해야합니까? 신호 레벨이 양의 dBm이면 어떻게됩니까?
Ellis Valentiner

@ user12202013 흠 액세스 포인트가 작동하는 방식에 달려 있다고 생각합니다. 일반적으로 dBm 시스템은 신호가 얼마나 노이즈인지를 나타냅니다. 값이 더 높으면 신호가 더 시끄 럽습니다. 이는 실제로 신호가 더 약하다는 것을 의미합니다. 또는 적어도 이것은 내가 그것을 이해하는 방법입니다 ..
이아 니스 Tsimalis

@YiannisTsimalis 좀 더 일반적으로 생각하지만, 공식보고 후 나는 거리가 긍정적해야하기 때문에 절대 값이 올바른지 생각
엘리스 Valentiner

1
나는이 공식을 꽤 오랫동안 조사해 왔고, 그것이 완전히 틀렸다고 결론지었습니다! FSPL은 db로 측정되고 signalLevel은 dbm으로 측정됩니다. 좋은 추정치를 얻을 수 있지만 거리가 상당히 커지면 결과가 쉽게 엉망이 될 수 있습니다.
Ahmed Hammad

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

여기:

  • K-상수 ( fMHz 및 dkm 단위 인 경우 32.44, fMHz 및 dm 단위 인 경우 -27.55로 변경 )
  • FSPL -여유 공간 경로 손실
  • Ptx -송신기 전력, dBm (최대 20dBm (100mW))
  • CLtx, CLrx -송신기 및 수신기의 케이블 손실, dB (케이블이없는 경우 0)
  • AGtx, AGrx -송신기 및 수신기의 안테나 이득, dBi
  • Prx -수신기 감도, dBm (최저 -100dBm (0.1pW))
  • FM -페이드 마진, dB (14dB 이상 (정상) 또는 22dB 이상 (양호))
  • f -신호 주파수, MHz
  • d -거리, m 또는 km (K 값에 따라 다름)

참고 : TP-Link 지원 사이트의 공식에 오류가 있습니다 (mising ^).

Prx수신 신호 강도로 대체 하여 WiFi AP와의 거리를 얻습니다.

예 : Ptx = 16dBm, AGtx = 2dBi, AGrx = 0, Prx = -51dBm (수신 신호 강도), CLtx = 0, CLrx = 0, f = 2442MHz (7 번째 802.11bgn 채널), FM = 22. 결과 : FSPL = 47dB, d = 2.1865m

참고 : FM (페이드 마진)은 여기서는 관련이없는 것 같지만 원래 공식 때문에 그대로 둡니다.

벽을 확인해야합니다. http://www.liveport.com/wifi-signal-attenuation 표 가 도움이 될 수 있습니다.

예: (이전 데이터) + 나무 벽 1 개 (표에서 5dB). 결과 : FSPL = FSPL-5dB = 44dB, d = 1.548m

또한 안테나 이득은 전력을 추가하는 것이 아니라 방사 패턴 의 모양 을 나타냅니다 (전 방향성 안테나의 경우 도넛, 지향성 안테나의 경우 제플린 등).

이 중 어느 것도 신호 반사를 고려하지 않습니다 (이 작업을 수행하는 방법을 알지 못함). 아마도 노이즈도 누락되었을 것입니다. 따라서이 수학은 대략적인 거리 추정에만 유용 할 수 있습니다.


7

질문에 대한 간단한 대답은 삼각 측량입니다. 기본적으로 모든 GPS 기기의 개념 인 Google이이를 수행하는 방법에 대해 자세히 알아보기 위해이 기사를 읽어 보겠습니다. http://www.computerworld.com/s/article/9127462/FAQ_How_Google_Latitude_locates_you_?taxonomyId=15&pageNumber= 2 .

내 이해에 따르면, 그들은 Wi-Fi / 휴대폰 신호를 기반으로 위치를 결정하는 위치 소프트웨어 인 Skyhook 과 유사한 서비스를 사용합니다 . 정확성을 달성하기 위해 이러한 서비스에는 이러한 셀 타워와 Wi-Fi 액세스 포인트에 위치 정보를 저장하는 대규모 데이터베이스 서버가 있습니다. 실제로 대도시 지역을 조사하여 최신 상태로 유지합니다. 비슷한 것을 얻으려면 Skyhook과 같은 서비스를 사용해야한다고 가정합니다 . SDK ( http://www.skyhookwireless.com/location-technology/ )를 사용할 수 있습니다 .

그러나 내부 작업 (예 : 자체 라우터 위치 사용)을 수행하려면 삼각 측량을 모방 한 알고리즘을 만들어야합니다. 당신은 얻을 방법을 찾아야 할 것입니다signal_strengthmac_address장치 오고 해당 정보를 라우터 위치와 함께 사용하여 위치 . 이와 유사한 작업을 수행하여 라우터에 연결된 장치에 대한 정보를 얻을 수 있습니다 ( http://www.makeuseof.com/tag/check-stealing-wifi/ ).


이것은 까다 롭고 도전적인 작업입니다. 위치 서비스의 이러한 측면에 대해 더 많이 알고 싶어합니다.이 문제에 대한 새로운 정보 / 통찰을 게시하십시오. 해결 방법을 알고 싶습니다.
Suvi Vignarajah

5

거리 (km) = 10 ^ ((여유 공간 경로 손실 – 92.45 – 20log10 (f)) / 20)


1

일반적으로 이것은 다중 경로 간섭 으로 인해 작업을 수행하는 정말 나쁜 방법입니다 . 이것은 코딩보다는 RF 엔지니어링 질문에 가깝습니다.

Tl; dr, wifi RF 에너지는 벽, 사람, 바닥 등에서 튀어 나온 후 다른 방향으로 흩어집니다. Wi-Fi 비콘이있는 빈 방에 있지 않는 한 삼각 측량만으로 어디에 있는지 알 수있는 방법이 없습니다. 정확히 올바른 장소.

구글은 안드로이드 사용자 (서비스를 선택한 사람)가 범위에 들어올 때 모든 와이파이 SSID가있는 위치를 GPS 위치로 매핑 할 수 있기 때문에이 문제를 피할 수 있습니다. 이렇게하면 완벽한 GPS 신호 없이도 사용자가 다음에 걸어 갈 때 Google 모선이 사용자가 어디에 있는지 알 수 있습니다. 일반적으로 엉뚱한 GPS 신호와 함께 사용합니다.

내가 본 것은 Zigbee 또는 BTLE 장치의 그리드입니다. 이들이 어디에 배치되어 있는지 알고 있다면 결합 된 RSS를 사용하여 상대적으로 가장 가까운 RSS를 파악하고 거기에서 이동할 수 있습니다.


Google이 수행하는 방법에 대한 자세한 내용은 stackoverflow.com/questions/1668304/…
yhyrcanus

-5

중재자 여도 상관 없습니다. 테크니컬 작가가 아닌 청중에게 글을 썼습니다.

GPS 이전의 도구로 탐색하는 법을 배우는 데 필요한 모든 것입니다. 육분의, 8 분의, 백 스태프 또는 아스트 롤라 베와 같은 것.

3 개의 다른 위치에서 신호를 수신 한 경우 신호 강도를 측정하고 해당 위치에서 비율을 설정하기 만하면됩니다. a2 + b2 = c2 인 간단한 삼각형 계산. 신호 강도가 강할수록 장치가 수신기에 가까워집니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.