如何使用信号强度计算距Wifi路由器的距离?


84

我想计算建筑物内移动设备的确切位置(因此无法访问GPS)

我想使用至少3个固定wifi信号(我知道其位置的3个固定路由器)的信号强度(以dBm为单位)来执行此操作

Google已经做到了,我想知道他们如何根据这些数据找出确切的位置

查看本文以了解更多详细信息:http : //www.codeproject.com/Articles/63747/Exploring-GoogleGears-Wi-Fi-Geo-Locator-Secrets



4
这个问题似乎与主题无关,因为它与电气工程有关。我建议迁移到electronics.stackexchange.com
Danny Varod 2013年

@lhab Hajj,我的要求与您相同。必须解决这个问题?请分享您的想法,以便其他人也可以从中学到。谢谢。
anddev 2015年

Answers:


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灵敏度-淡入余量

通过以上两个自由空间路径损耗方程,我们可以得出以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

要计算距离,您需要信号强度和信号频率。这是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(频率))+ signalLevel)/ 20)

示例:频率= 2412MHz,signalLevel = -57dbm,结果= 7.000397427391188m

此公式是自由空间路径损耗(FSPL)公式的转换形式。这里的距离以米为单位,频率以兆赫兹为单位。对于其他措施,您必须使用其他常数(27.55)。在此处阅读常量。

欲了解更多信息,请点击这里


感谢您指定它应该是信号电平的绝对值,我一直在寻找错误的地方!
Yiannis Tsimalis

@YiannisTsimalis初学者问题:应该是绝对值还是乘以负数?如果信号电平为正dBm怎么办?
Ellis Valentiner

@ user12202013嗯,我认为这取决于您的接入点的工作方式。我的意思是,通常来说,dBm系统表明您的信号有多嘈杂。如果该值较高,则信号噪声较大,实际上意味着信号较弱。或者说,至少这是我的理解它..
雅尼斯Tsimalis

@YiannisTsimalis我的想法比较笼统,但看了公式后,我认为绝对值是正确的,因为距离应该为正
Ellis Valentiner

1
我已经研究这个公式很长时间了,我得出结论,这是完全错误的!FSPL以db为单位,而signalLevel以dbm为单位。可能会得出很好的估计,但是当距离变大时,结果很容易弄乱。
艾哈迈德·哈默德

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

这里:

  • K-常数(f以MHz和dkm为单位时为32.44,f以MHz和dm为单位时变为-27.55 )
  • FSPL -自由空间路径损耗
  • Ptx -发射器功率dBm(最高20 dBm(100mW))
  • CLtxCLrx-发射器和接收器的电缆损耗,dB(0,如果没有电缆则)
  • AGtxAGrx-发射器和接收器的天线增益,dBi
  • Prx -接收器灵敏度dBm(低至-100 dBm(0.1pW))
  • FM -衰减余量,dB(大于14 dB(正常)或大于22 dB(良好))
  • f -信号频率,MHz
  • d -距离,m或km(取决于K的值)

注意:TP-Link支持站点的公式有误(存在^)。

Prx用接收到的信号强度代替以与WiFi AP保持距离。

示例: Ptx = 16 dBm,AGtx = 2 dBi,AGrx = 0,Prx = -51 dBm(接收信号强度),CLtx = 0,CLrx = 0,f = 2442 MHz(第7个802.11bgn信道),FM = 22.结果:FSPL = 47 dB,d = 2.1865 m

注意:此处的FM(淡入余量)似乎无关紧要,但由于原始公式,我将其保留。

您应该考虑一下墙壁,表http://www.liveport.com/wifi-signal-衰减可能会有所帮助。

示例:(以前的数据)+一堵木墙(从表中可以看到5 dB)。结果:FSPL = FSPL-5 dB = 44 dB,d = 1.548 m

还请注意,天线增益不会增加功率-它描述了辐射方向图的形状(全向天线时为甜甜圈,定向天线时为齐柏林飞艇等)。

这些都没有考虑到信号反射(不知道如何执行此操作)。可能也缺少噪音。因此,该数学运算可能仅对粗略距离估计有用。


7

您的问题的简单答案是Triangulation。从本质上讲,这是所有GPS设备中的概念,我将阅读本文,以详细了解Google如何做到这一点:http : //www.computerworld.com/s/article/9127462/FAQ_How_Google_Latitude_locates_you_?taxonomyId=15&pageNumber= 2

据我了解,他们使用类似于Skyhook的服务,后者是一种定位软件,可根据您的wifi /手机信号确定您的位置。为了达到其准确性,这些服务拥有大型数据库服务器,这些服务器将位置信息存储在这些手机信号塔和wifi接入点上-他们实际上是对都会区进行调查以使其保持最新状态。为了使您达到类似的目的,我假设您必须使用Skyhook之类的服务-您可以使用其SDK(http://www.skyhookwireless.com/location-technology/)。

但是,如果您想进行内部操作(例如使用自己的路由器位置),则可能必须创建一个模仿Triangulation的算法。你必须找到一种方式来获得signal_strengthmac_address设备,并使用你的路由器的位置沿着信息拿出的位置。您可以通过执行类似的操作来获取有关连接到路由器的设备的信息(http://www.makeuseof.com/tag/check-stealing-wifi/)。


这是一项棘手且具有挑战性的任务,您使我热衷于学习有关定位服务这一方面的更多信息。请发布有关此问题的任何新信息/见解,我有兴趣了解如何解决它
Suvi Vignarajah 2012年

5

距离(km)= 10 ^((自由空间路径损耗– 92.45 – 20log10(f))/ 20)


1

通常,由于多径干扰,这是一种非常糟糕的处理方式。绝对比编码问题更多是RF工程问题。

Tl; dr,从墙壁,人,地板等反弹后,wifi的RF能量会散布到不同的方向。除非通过空置的wifi信标在空荡荡的房间里,否则无法通过三角测量来告诉您您的位置恰到好处的地方。

Google之所以能够摆脱困境,是因为当任何Android用户(选择加入其服务)进入范围时,他们基本上可以将每个WiFi SSID的位置映射到GPS位置。这样,即使没有完美的GPS信号,下一次用户走到那里时,Google母舰也能告诉您您的位置。通常,他们会将其与糟糕的GPS信号结合使用。

我所看到的是Zigbee或BTLE设备的网格。如果您知道这些元素的布局位置,则可以使用组合的RSS相对地找出最接近的元素,然后从那里去。


有关谷歌如何做到的更多信息stackoverflow.com/questions/1668304/…–
yhyrcanus

-6

不管您是主持人。我不是以技术作家的身份写信给读者的

你们需要学会使用GPS之前的工具进行导航。诸如六分仪,八分仪,后勤人员或星盘之类的东西。

如果您从3个不同的位置接收到信号,则只需要测量信号强度并从这些位置得出一个比率即可。简单三角形计算,其中a2 + b2 = c2。信号强度越强,设备越靠近接收器。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.