[英]how to get Distance between wifi access point and Mobile Device
我正在开发一个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);
这将返回以米为单位的距离。
我通过从许多页面在Google上重新获得这些代码。
但我认为我做错了,此代码返回错误的距离。 我也尝试了很多谷歌搜索,但没有得到准确的输出。
请帮我。 如何获得Wifi AP与移动设备之间的距离?
这段代码:
double 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给您的链接(它是德语,但是图表和关键字应该可以理解)。
您可以使用“飞行时间”方法。 请记住,您不能依靠收到的消息,而要依靠收到的开销(例如ACK),我只能拿出这种参考(德语)来衡量信号运行时间,并且通过快速阅读,我认为这是非常重要的。乏味的事情。
有一种称为“三角剖分”的方法,但在这种情况下,您至少有3个热点。 您可以在此pdf中详细回答。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.