rssi和dbm的轉(zhuǎn)換
WIFI衡量接收信號(hào)強(qiáng)度可以用直接的RF能量dBm來表示,也可以用RSSI這個(gè)相對(duì)值。
下圖中WIFI信號(hào)強(qiáng)度為-65dBm,一般-60~-70算是信號(hào)很好。
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%
相關(guān)閱讀:
- [RF/無線] 射頻技術(shù)中的基本單位dB/dBm/dBw介紹 2023-10-23
- [電子說] 無線射頻單片機(jī)CW32W031讀取RSSI功能介紹 2023-09-20
- [電子說] 基于UWB的非暴露空間位置服務(wù)探究 2023-08-29
- [電子說] DolphinDB 入選 Gartner《中國(guó)數(shù)據(jù)庫市場(chǎng)指南》代表廠商 2023-08-29
- [RF/無線] dB,dBi,dBc,dBm這些你都分的清嗎? 2023-08-18
- [電子說] 關(guān)系型數(shù)據(jù)庫的基本原理(什么是關(guān)系型數(shù)據(jù)庫) 2023-07-10
- [電子說] 電池管理系統(tǒng)ADBMS6815系列滿足電動(dòng)車隊(duì)和大型儲(chǔ)能系統(tǒng)要求 2023-07-14
- [電子說] E-RSSI技術(shù)助力更精確的短距離測(cè)距應(yīng)用 2023-07-10
( 發(fā)表人:李倩 )