Iha*_*ajj 78 geolocation wifi signal-strength
我想计算一下建筑物内移动设备的确切位置(所以没有GPS接入)
我想用至少3个固定wifi信号的信号强度(以dBm为单位)来做这个(我知道位置的3个固定路由器)
谷歌已经这样做了,我想知道他们是如何根据这些数据找出确切位置的
查看这篇文章了解更多详情:http://www.codeproject.com/Articles/63747/Exploring-GoogleGears-Wi-Fi-Geo-Locator-Secrets
Iha*_*ajj 45
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
Run Code Online (Sandbox Code Playgroud)
根据衰落余量方程,可以使用以下等式计算自由空间路径损耗.
自由空间路径损耗= Tx功率-TX电缆损耗+发射天线增益+接收天线增益 - RX电缆损耗 - 接收灵敏度 - 衰落余量
通过上述两个自由空间路径损耗方程,我们可以找出以km为单位的距离.
Distance (km) = 10(Free Space Path Loss – 32.44 – 20log10(f))/20
Run Code Online (Sandbox Code Playgroud)
菲涅耳区是视线周围的区域,无线电波在离开天线后会扩散到视线范围内.您需要清晰的视线来保持强度,特别是对于2.4GHz无线系统.这是因为2.4GHz的波被水吸收,就像树上的水一样.根据经验,60%的菲涅耳区必须没有障碍物.通常,20%菲涅耳区域阻塞会给链路带来很少的信号损失.超过40%的阻塞信号损失将变得非常重要.
FSPLr=17.32*?(d/4f)
d = distance [km]
f = frequency [GHz]
r = radius [m]
Run Code Online (Sandbox Code Playgroud)
资料来源:http://www.tp-link.com/en/support/calculator/
Mar*_*lev 31
要计算距离,您需要信号强度和信号频率.这是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);
}
Run Code Online (Sandbox Code Playgroud)
使用的公式是:
距离= 10 ^((27.55 - (20*log10(频率))+ signalLevel)/ 20)
示例:frequency = 2412MHz,signalLevel = -57dbm,result = 7.000397427391188m
该公式是自由空间路径损耗(FSPL)公式的变换形式.这里的距离以米为单位,以频率为单位 - 以兆赫为单位.对于其他措施,您必须使用不同的常数(27.55).在这里阅读常量.
欲了解更多信息,请阅读这里.
kes*_*asx 16
K = 32.44
FSPL = Ptx - CLtx + AGtx + AGrx - CLrx - Prx - FM
d = 10 ^ (( FSPL - K - 20 log10( f )) / 20 )
Run Code Online (Sandbox Code Playgroud)
这里:
K- 常数(32.44,f以MHz为单位,d以km为单位,f以MHz和dm 为单位变为-27.55 )FSPL - 自由空间路径损失Ptx - 发射机功率,dBm(最高20 dBm(100mW))CLtx,CLrx- 发射器和接收器的电缆损耗,dB(0,如果没有电缆)AGtx,AGrx- 发射机和接收机的天线增益,dBiPrx - 接收器灵敏度,dBm(低至-100 dBm(0.1pW))FM - 衰落余量,dB(大于14 dB(正常)或大于22 dB(良好))f - 信号频率,MHzd - 距离,m或km(取决于K的值)注意:TP-Link支持站点(mising ^)的公式中存在错误.
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-attenuation可能有所帮助.
示例:(以前的数据)+一个木墙(距离表格5 dB).结果:FSPL = FSPL - 5 dB = 44 dB,d = 1.548 m
还请注意,天线增益不会增加功率 - 它描述了辐射模式的形状(全向天线的情况下的甜甜圈,定向天线的情况下的齐柏林飞艇等).
这些都没有考虑到信号反射(不知道如何做到这一点).噪音也可能不见了.所以这个数学可能只适用于粗略的距离估计.
您的问题的简单答案是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_strength和mac_address设备,并使用你的路由器的位置沿着信息拿出的位置。您可以通过执行类似的操作来获取有关连接到路由器的设备的信息(http://www.makeuseof.com/tag/check-stealing-wifi/)。