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

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

rssi和dbm的轉(zhuǎn)換

2017年11月20日 14:03 網(wǎng)絡(luò)整理 作者: 用戶評(píng)論(0
關(guān)鍵字:dbm(16213)RSSI(27271)

  WIFI衡量接收信號(hào)強(qiáng)度可以用直接的RF能量dBm來表示,也可以用RSSI這個(gè)相對(duì)值。

  下圖中WIFI信號(hào)強(qiáng)度為-65dBm,一般-60~-70算是信號(hào)很好。

  rssi和dbm的轉(zhuǎn)換

  Received signal strength indicator (RSSI)是WIFI衡量接收信號(hào)強(qiáng)度的一個(gè)相對(duì)值。

  說白了就是讓大家好理解信號(hào)強(qiáng)度,不然都用dBm誰知道多少dBm算信號(hào)強(qiáng)啊。

  

  RSSI = 0時(shí),我們PC WIFI那個(gè)Bar可能信號(hào)只有一格或一格都沒有,我們說信號(hào)很差,其可能對(duì)應(yīng)實(shí)際能量《 -90dBm。

  RSSI=120~127時(shí),WIFI Bar可能信號(hào)滿格,其可能對(duì)應(yīng)實(shí)際能量》 -60dBm等。

  RSSI值的定義由WIFI芯片廠家自己定,如一個(gè)廠家可以定義RSSI = 80對(duì)應(yīng)-65dBm;另一個(gè)可以定義RSSI = 80對(duì)應(yīng)-60dBm等。 Qualcomm Atheros的RSSI一般是0-127。

  所以,對(duì)于相同信號(hào)強(qiáng)度,實(shí)際的RSSI值可能不同,對(duì)于用戶還是看有幾格信號(hào)最直接和省事。

  dBm

  dbm是一個(gè)表示功率絕對(duì)值的單位,他的計(jì)算公式為10lg功率值/1mw。例如如果接收到的功率為1mw,按照dbm單位進(jìn)行折算后的值應(yīng)該為10lg 1mw/1mw=0dbm。當(dāng)然在實(shí)際傳輸過程中接收方是很難達(dá)到接收功率1mw的。因此我們通過這個(gè)公式就可以從dbm值反向推出接收方接收到的功率值了。

  dBm是一個(gè)表示功率絕對(duì)值的值(也可以認(rèn)為是以1mW功率為基準(zhǔn)的一個(gè)比值),計(jì)算公式為:10log(功率值/1mw)。

 ?。劾?如果功率P為1mw,折算為dBm后為0dBm。

 ?。劾?對(duì)于40W的功率,按dBm單位進(jìn)行折算后的值應(yīng)為:

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

? ? ? ?RSSI

  Received Signal Strength Indication接收的信號(hào)強(qiáng)度指示,無線發(fā)送層的可選部分,用來判定鏈接質(zhì)量,以及是否增大廣播發(fā)送強(qiáng)度。通過接收到的信號(hào)強(qiáng)弱測(cè)定信號(hào)點(diǎn)與接收點(diǎn)的距離,進(jìn)而根據(jù)相應(yīng)數(shù)據(jù)進(jìn)行定位計(jì)算的一種定位技術(shù)如無線傳感的ZigBee網(wǎng)絡(luò)CC2431芯片的定位引擎就采用的這種技術(shù)、算法。接收機(jī)測(cè)量電路所得到的接收機(jī)輸入的平均信號(hào)強(qiáng)度指示。這一測(cè)量值一般不包括天線增益或傳輸系統(tǒng)的損耗。
?
? ? ? ? 公式:

  “RSSI – 95 = dBm

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

  但是也只是針對(duì)該特例的公式,沒有普適性。

  我們常說的RSSI和RSCP都有兩個(gè)值,一個(gè)是report value(正值),一個(gè)是quanlity value(負(fù)值),在3G 中RSSI中2個(gè)值的對(duì)應(yīng)關(guān)系如下:

  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,對(duì)應(yīng)關(guān)系如下:

  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

  對(duì)于想要找個(gè)統(tǒng)一的公式去計(jì)算如何從RSSI轉(zhuǎn)換為信號(hào)強(qiáng)度百分比的事情,結(jié)論只能是:

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

  最終我暫時(shí)的做法是:

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

  基本都是在-100以上的值,所以,暫時(shí)就簡(jiǎn)單起見,把RSSI直接加上100,得到0到100的信號(hào)強(qiáng)度。

  相關(guān)代碼如下:

  // 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%

不好我反對(duì)

(0) 0%

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

      發(fā)表評(píng)論

      用戶評(píng)論
      評(píng)價(jià):好評(píng)中評(píng)差評(píng)

      發(fā)表評(píng)論,獲取積分! 請(qǐng)遵守相關(guān)規(guī)定!

      ?