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

Geolocation 如何使用信号强度计算与Wifi路由器的距离?,geolocation,wifi,signal-strength,Geolocation,Wifi,Signal Strength,我想计算建筑物内移动设备的准确位置(因此没有GPS接入) 我想使用至少3个固定wifi信号(3个固定路由器,我知道其位置)的信号强度(dBm)来实现这一点 谷歌已经这样做了,我想知道他们是如何根据这些数据计算出确切的位置的 查看本文了解更多详细信息:您的问题的简单答案是三角测量。这基本上是所有GPS设备中的概念,我将阅读这篇文章,以了解更多关于谷歌如何做到这一点的信息: 据我所知,他们使用的服务类似于,这是一种定位软件,根据您的wifi/手机信号确定您的位置。为了达到准确度,这些服务拥有大型数据

我想计算建筑物内移动设备的准确位置(因此没有GPS接入)

我想使用至少3个固定wifi信号(3个固定路由器,我知道其位置)的信号强度(dBm)来实现这一点

谷歌已经这样做了,我想知道他们是如何根据这些数据计算出确切的位置的


查看本文了解更多详细信息:

您的问题的简单答案是三角测量。这基本上是所有GPS设备中的概念,我将阅读这篇文章,以了解更多关于谷歌如何做到这一点的信息:

据我所知,他们使用的服务类似于,这是一种定位软件,根据您的wifi/手机信号确定您的位置。为了达到准确度,这些服务拥有大型数据库服务器,在这些基站和wifi接入点上存储位置信息——它们实际上调查大都市地区,使其保持最新。为了实现类似的功能,我假设您必须使用Skyhook之类的服务—您可以使用他们的SDK()


然而,如果你想做一些内部的事情(比如使用你自己的路由器的位置),那么你可能必须创建一个模拟三角测量的算法。您必须找到一种方法来获取设备的
信号强度和
mac\u地址
,并使用该信息以及路由器的位置来确定位置。通过执行类似的操作(),您可能可以获得连接到路由器的设备的信息。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
根据衰减裕度方程,可用以下方程计算自由空间路径损耗

自由空间路径损耗=发射功率发射电缆损耗+发射天线增益+接收天线增益-接收电缆损耗-接收灵敏度-衰减裕度

利用上述两个自由空间路径损耗方程,我们可以计算出以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]

来源:

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

计算所需信号强度和信号频率的距离。以下是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)

示例:频率=2412MHz,信号电平=-57dbm,结果=7.000397427391188m

此公式是公式的变换形式。这里的距离以米为单位,频率以兆赫为单位。对于其他度量,必须使用不同的常数(27.55)。读取常量

欲了解更多信息,请阅读

在这里:

  • K
    -常数(32.44,当
    f
    以MHz和
    d
    以km为单位时,当
    f
    以MHz和
    d
    以m为单位时变为-27.55)
  • FSPL
    -可用空间路径丢失
  • Ptx
    -发射机功率,dBm(高达20 dBm(100mW))
  • CLtx
    CLrx
    -发射机和接收机的电缆损耗,dB(如果没有电缆,则为0)
  • AGtx
    AGrx
    -发射机和接收机的天线增益,dBi
  • Prx
    -接收机灵敏度,dBm(降至-100 dBm(0.1pW))
  • FM
    -衰减裕度,dB(大于14 dB(正常)或大于22 dB(良好))
  • f
    -信号频率,MHz
  • d
    -距离,m或km(取决于K值)
注意:来自TP链接支持站点的公式中存在错误(MISIG
^

用接收到的信号强度代替
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分贝,d=2.1865米

注意:FM(淡入边距)在这里似乎无关紧要,但我离开它是因为原来的公式

你们应该把桌子放进墙里,桌子可能会有帮助

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

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


所有这些都没有考虑到信号反射(不知道如何做到这一点)。可能噪音也不见了。所以这个数学可能只适用于粗略的距离估计。

不管你是不是主持人。我不是以技术作家的身份,而是面向我的读者写文章的

你们需要学习使用GPS之前的工具导航。六分仪、八度仪、背杆或星盘之类的东西


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

一般来说,这是一种非常糟糕的方法,因为信号强度太大。这绝对是一个射频工程问题,而不是编码问题

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