我正在开发一个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和移动设备之间的距离?
发布于 2015-01-30 09:39:05
此代码:
双exp = (27.55 - (20 * Math.log10(freqInMHz)) + Math.abs(levelInDb)) /20.0,双distanceM = Math.pow(10.0,exp);
工作在两个各向同性天线之间的自由空间路径衰减和AP发射功率为20 for的假设下工作(数学上甚至是不正确的;自由空间路径损耗的频率依赖性是不同的;对于W的波段来说,不是这样,校正在27.55中)。
在现实中,您正在处理各向异性天线,在您的路径中的障碍,衍射效应和AP改变它的功率输出,以节省能源,如果不需要高带宽。
换句话说:仅仅看接收到的功率就能得到一个可靠的距离图是完全不切实际的。它可以给你一个大概的数量级,但不是一个远为精确的东西。这只是基本的物理学。
唯一可靠的测量距离的方法是飞行时间.为此,您必须测量设备和接入点之间的往返时间。由于我们所处理的光速和距离是从米到100米(顶部),这就意味着测量纳秒。可以做,但需要做一些工作。请参阅SatelliteSD给您的链接(它是德语的,但图表和关键字应该是可以理解的)。
发布于 2015-01-30 09:13:20
这是可能的,你可以使用飞行时间的方法。请记住,您不能依赖收到的消息,但是根据接收到的开销(如ACK),我只能提出这个引用(德语) 信号运行时的测量,通过快速阅读,我认为这是一件非常乏味的事情。
发布于 2015-01-30 08:55:59
https://stackoverflow.com/questions/28231999
复制相似问题