2

我正在开发一个 android 应用程序,它具有搜索所有最近/检测到的 wifi 热点的模块。

我可以从搜索到的 wifi 热点中获取所有详细信息,例如 SSID、BSSID、功能、频率、级别和时间戳

有了这些信息,我还需要 wifi 的距离(wifi 接入点和移动设备之间的距离)

我正在使用下面的行来获取距离。

double exp = (27.55 - (20 * Math.log10(freqInMHz)) + Math.abs(levelInDb)) / 20.0;
double distanceM = Math.pow(10.0, exp);

这将以米为单位返回距离。

我通过谷歌的研究从许多页面获得了这些代码。

但我想我错了,这段代码返回了错误的距离。我也在谷歌搜索上尝试了很多,但没有得到准确的输出。

请帮我。如何获取 Wifi AP 和移动设备之间的距离?

4

4 回答 4

4

这段代码:

双倍 exp = (27.55 - (20 * Math.log10(freqInMHz)) + Math.abs(levelInDb)) / 20.0; 双距离M = Math.pow(10.0, exp);

在假设两个各向同性天线之间的自由空间路径衰减和以 20dBm 的功率发射的 AP 下工作(数学甚至不正确;自由空间路径损耗的频率依赖性不同;对于W-LAN,使用,更正在27.55)。

实际上,如果不需要高带宽,您正在处理各向异性天线、路径中的障碍物、衍射效应和改变其功率输出以节省能量的 AP。

或者换句话说:仅查看接收功率来获得可靠的距离图是完全不切实际的。它可以给你一个大致的数量级,但不是远程准确的东西。这只是基础物理学。

测量距离的唯一可靠方法是飞行时间。为此,您必须测量设备和接入点之间的往返时间。由于我们要处理的光速和距离在米到 100m(顶部)的数量级,这意味着测量纳秒。可以完成,但需要一些工作。请参阅 SatelliteSD 给您的链接(它是德语,但图表和关键字应该可以理解)。

于 2015-01-30T09:39:05.837 回答
1

有可能,您可以使用飞行时间方法。 请记住,您不能依赖收到的消息,而是依赖收到的开销(如ACK)乏味的事情。

于 2015-01-30T09:13:20.260 回答
0

不,这是不可能的。

您将无法找到从当前设备位置到实际热点的热点距离。

热点似乎没有报告它们的坐标。

检查具有更详细信息的链接。

于 2015-01-30T08:55:59.460 回答
-1

有一种称为“三角测量”的方法,但在这种情况下,您至少有 3 个热点。您可以在此 pdf 中详细回答。

http://www.see.ed.ac.uk/~slig/papers/ITM2010.pdf

于 2015-01-30T09:27:50.710 回答