您好,欢迎来电子发烧友网! ,新用户?[免费注册]

您的位置:电子发烧友网>电子百科>通信技术>无线通信>

rssi和dbm的转换

2017年11月20日 14:03 网络整理 作者: 用户评论(0

  WIFI衡量接收信号强度可以用直接的RF能量dBm来表示,也可以用RSSI这个相对值。

  下图中WIFI信号强度为-65dBm,一般-60~-70算是信号很好。

  rssi和dbm的转换

  Received signal strength indicator (RSSI)是WIFI衡量接收信号强度的一个相对值。

  说白了就是让大家好理解信号强度,不然都用dBm谁知道多少dBm算信号强啊。

  

  RSSI = 0时,我们PC WIFI那个Bar可能信号只有一格或一格都没有,我们说信号很差,其可能对应实际能量《 -90dBm。

  RSSI=120~127时,WIFI Bar可能信号满格,其可能对应实际能量》 -60dBm等。

  RSSI值的定义由WIFI芯片厂家自己定,如一个厂家可以定义RSSI = 80对应-65dBm;另一个可以定义RSSI = 80对应-60dBm等。 Qualcomm Atheros的RSSI一般是0-127。

  所以,对于相同信号强度,实际的RSSI值可能不同,对于用户还是看有几格信号最直接和省事。

  dBm

  dbm是一个表示功率绝对值的单位,他的计算公式为10lg功率值/1mw。例如如果接收到的功率为1mw,按照dbm单位进行折算后的值应该为10lg 1mw/1mw=0dbm。当然在实际传输过程中接收方是很难达到接收功率1mw的。因此我们通过这个公式就可以从dbm值反向推出接收方接收到的功率值了。

  dBm是一个表示功率绝对值的值(也可以认为是以1mW功率为基准的一个比值),计算公式为:10log(功率值/1mw)。

  [例] 如果功率P为1mw,折算为dBm后为0dBm。

  [例] 对于40W的功率,按dBm单位进行折算后的值应为:

  10log(40W/1mw)=10log(40000)=10log4+10log10000=46dBm。

       RSSI

  Received Signal Strength Indication接收的信号强度指示,无线发送层的可选部分,用来判定链接质量,以及是否增大广播发送强度。通过接收到的信号强弱测定信号点与接收点的距离,进而根据相应数据进行定位计算的一种定位技术如无线传感的ZigBee网络CC2431芯片的定位引擎就采用的这种技术、算法。接收机测量电路所得到的接收机输入的平均信号强度指示。这一测量值一般不包括天线增益或传输系统的损耗。
 
        公式:

  “RSSI – 95 = dBm

  RSSI_MAX for Atheros chips is 60. So, -35 dBm is equivalent to 》 100%, and -95 dBm to 0%”

  但是也只是针对该特例的公式,没有普适性。

  我们常说的RSSI和RSCP都有两个值,一个是report value(正值),一个是quanlity value(负值),在3G 中RSSI中2个值的对应关系如下:

  quanlity value=report value-100 Reported value Measured quantity value Unit UTRA_carrier_RSSI_LEV _00 UTRA carrier RSSI 《 ?100 dBm UTRA_carrier_RSSI_LEV _01 -100 £ UTRA carrier RSSI 《 ?99 dBm UTRA_carrier_RSSI_LEV _02 -99 £ UTRA carrier RSSI 《 ?98 dBm … … … UTRA_carrier_RSSI_LEV _74 -27 £ UTRA carrier RSSI 《 -26 dBm UTRA_carrier_RSSI_LEV _75 -26 £ UTRA carrier RSSI 《 -25 dBm UTRA_carrier_RSSI_LEV _76 -25 £ UTRA carrier RSSI dBm

  还有就是RSCP,对应关系如下:

  quantity value=reported value*2-116 Reported value Measured quantity value Unit CPICH_RSCP_LEV _00 CPICH RSCP 《?115 dBm CPICH_RSCP_LEV _01 -115 £ CPICH RSCP 《 ?114 dBm CPICH_RSCP_LEV _02 -114 £ CPICH RSCP 《 ?113 dBm … … … CPICH_RSCP_LEV _89 -27 £ CPICH RSCP 《 -26 dBm CPICH_RSCP

  对于想要找个统一的公式去计算如何从RSSI转换为信号强度百分比的事情,结论只能是:

  没有统一的公式,你自己看着办。

  最终我暂时的做法是:

  既然没有准的公式,那么就根据此处的实际情况:

  基本都是在-100以上的值,所以,暂时就简单起见,把RSSI直接加上100,得到0到100的信号强度。

  相关代码如下:

  // signal strength==RSSI=Received signal strength indication

  //-89, -51, -95, -94

  private int rssi;

  //private int signalStrength;

  public void setRssi(int rssi) {

  this.rssi = rssi;

  }

  public int getRssi() {

  return rssi;

  }

  // public void setSignalStrength(int signalStrength) {

  // this.signalStrength = signalStrength;

  // }

  public int getSignalStrength() {

  //return signalStrength;

  int signalStrength = rssi + 100;

  if(signalStrength 《 0){

  signalStrength = 0;

  }

  else if(signalStrength 》 100) {

  signalStrength = 100;

  }

  return signalStrength;

  }

非常好我支持^.^

(16) 100%

不好我反对

(0) 0%

( 发表人:李倩 )

      发表评论

      用户评论
      评价:好评中评差评

      发表评论,获取积分! 请遵守相关规定!