【发布时间】:2014-06-11 06:29:54
【问题描述】:
我正在构建一个应用程序,用于收集我周围 AP 的 RSSI 级别并据此进行一些计算。
问题是即使设备静止,读数也不稳定。例如,来自接入点的信号在-71、-68、-75 等之间波动......
有没有办法稳定信号?
【问题讨论】:
我正在构建一个应用程序,用于收集我周围 AP 的 RSSI 级别并据此进行一些计算。
问题是即使设备静止,读数也不稳定。例如,来自接入点的信号在-71、-68、-75 等之间波动......
有没有办法稳定信号?
【问题讨论】:
在电信领域,接收信号强度指示器 (RSSI) 是对接收到的无线电信号中存在的功率的测量。
我认为您能做的最好的事情就是将它们一起计数并在 x 量的测量时间后将它们分开。 (因为由于各种组件,您永远无法获得 100% 准确的访问点)。
来源: http://en.wikipedia.org/wiki/Received_signal_strength_indication
【讨论】:
“问题是即使设备静止,读数也不稳定。例如,来自接入点的信号在-71、-68、-75等之间波动......”
这是无线信号的本质。即使设备静止,环境也在“移动”,因此,信号遭受小规模衰落主要是由于环境散射体。因此,在设备测量中获得这些波动是正常的。
每个 Android 设备 Wi-Fi 测量的准确性是另一回事。
此外,请记住,返回的值以 dBm 为单位,这意味着以 mWatt 为单位,但以对数刻度表示。因此,正如 Thealon 提出的平均,您必须小心,因为您无法划分 dBm 值。
一种解决方案是将 dBm 值转换回 mWatt,然后执行平均。如下所示
Convert dBm to mWatt: mWatt = 10^(dBm/10)
【讨论】:
在获取 RSSI 时,Google 建议:
Use calculateSignalLevel(int, int) to convert this number into an absolute signal level which can be displayed to a user.
【讨论】: