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

最佳答案

Wifi信号强度百分比达到RSSI dBm

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

wlanSignalQuality :



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;

注意:

仔细检查用于计算的Quality的定义。还要检查dB(或dBm)的范围。限制可能会有所不同。

示例:

10-06 13:38