wifi - 如何将 Wifi 信号强度从质量(百分比)转换为 RSSI(dBm)?

标签 wifi

我应该如何将 Wifi 信号强度从质量百分比(通常为 0% 到 100%)转换为 RSSI 值(通常为负 dBm 数(即 -96db))?

最佳答案

Wifi 信号强度占 RSSI dBm 的百分比

Microsoft 在其 WLAN_ASSOCIATION_ATTRIBUTES 中定义了 Wifi 信号质量结构如下:

wlanSignalQuality:

A percentage value that represents the signal quality of the network. WLAN_SIGNAL_QUALITY is of type ULONG. This member contains a value between 0 and 100. A value of 0 implies an actual RSSI signal strength of -100 dbm. A value of 100 implies an actual RSSI signal strength of -50 dbm. You can calculate the RSSI signal strength value for wlanSignalQuality values between 1 and 99 using linear interpolation.

RSSI(或“ radio (接收)信号强度指示器”)的单位为“dB”(分贝)或类似的“dBm”(dB 每毫瓦)(请参阅 dB vs. dBm)其中较小幅度的负数具有最高的信号强度或质量。

<小时/>

因此,quality(百分比)与dBm之间的换算如下:

    quality = 2 * (dBm + 100)  where dBm: [-100 to -50]

    dBm = (quality / 2) - 100  where quality: [0 to 100]

伪代码(带有示例夹紧):

    // dBm to Quality:
    if(dBm <= -100)
        quality = 0;
    else if(dBm >= -50)
        quality = 100;
    else
        quality = 2 * (dBm + 100);

    // Quality to dBm:
    if(quality <= 0)
        dBm = -100;
    else if(quality >= 100)
        dBm = -50;
    else
        dBm = (quality / 2) - 100;

注意:

仔细检查您用于计算的质量的定义。另请检查 dB(或 dBm)的范围。限制可能会有所不同。

示例:

Medium quality:   50%      ->   -75dBm   = (50 / 2) - 100
Low quality:      -96dBm   ->   8%       = 2 * (-96 + 100)

关于wifi - 如何将 Wifi 信号强度从质量(百分比)转换为 RSSI(dBm)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15797920/

相关文章:

安卓 6 : Connect to specific wifi network programmatically not working

android - 如何检查 Android 中连接的 wifi 网络是否处于 Activity 状态

networking - 为什么要等待 DIFS 以检测 channel 是否空闲

android - android系统多久扫描一次wifi

linux - tcpdump 在 Linux 中捕获 mac 和 rssi

Android,在连接到 wifi 时与移动数据通信,无需互联网访问

python - 计算 AP 的距离,包括信噪比

windows - 如何检查.cmd(批处理脚本)中的Internet连接并根据是否连接WiFi来运行另一个命令?

java - 使用 WLAN 建立从 Android 到 Eclipse 程序的数据通信的最简单方法

Android 致命异常 MAIN : java. lang.RuntimeException:无法启动 Activity ComponentInfo