您好,歡迎來電子發(fā)燒友網! ,新用戶?[免費注冊]

您的位置:電子發(fā)燒友網>電子百科>通信技術>無線通信>

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接收的信號強度指示,無線發(fā)送層的可選部分,用來判定鏈接質量,以及是否增大廣播發(fā)送強度。通過接收到的信號強弱測定信號點與接收點的距離,進而根據(jù)相應數(shù)據(jù)進行定位計算的一種定位技術如無線傳感的ZigBee網絡CC2431芯片的定位引擎就采用的這種技術、算法。接收機測量電路所得到的接收機輸入的平均信號強度指示。這一測量值一般不包括天線增益或傳輸系統(tǒng)的損耗。
?
? ? ? ? 公式:

  “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

  對于想要找個統(tǒng)一的公式去計算如何從RSSI轉換為信號強度百分比的事情,結論只能是:

  沒有統(tǒng)一的公式,你自己看著辦。

  最終我暫時的做法是:

  既然沒有準的公式,那么就根據(jù)此處的實際情況:

  基本都是在-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%

( 發(fā)表人:李倩 )

      發(fā)表評論

      用戶評論
      評價:好評中評差評

      發(fā)表評論,獲取積分! 請遵守相關規(guī)定!

      ?