参考文档:
https://blog.csdn.net/fuchengbo000/article/details/42741103
http://blog.sina.com.cn/s/blog_746b60460102uy9h.html
最常用的就是看RSRP和RSRQ
关键字
RB :Resource Block
RE: Resource Element: 时频资源网格中的一个元素,这个可以在DL/UL Resource Grid Definitions 看到具体形式
目录
1 RSRP
2:RSRQ
3: RSSI
4 RS-SINR
4 热力图实现
一 RSRP(Reference Signal Received Power参考信号接收功率)
小区下行公共导频在测量带宽内功率的线性值(每个RE上的功率),当存在多根接收天线时,需要对多根天线上的测量结果进行比较,上报值不低于任何一个分支对应的RSRP值,。即为信号功率。反映当前信道的路径损耗强度,用于小区覆盖的测量和小区选择/重选和切换。
取值范围:-44~-140dBm,值越大越好, 分成了6个区间
RSRP(dBm) | 覆盖强度级别 | 备注 |
<-105 | 6 | 覆盖较差。业务基本无法起呼 |
[-105,-95] | 5 | 覆盖差。室外语音业务能够起呼,但呼叫成功率低,掉话率高。室内业务基本无法发起业务 |
[-95,-85] | 4 | 覆盖一般,室外能够发起各种业务,可获得低速率的数据业务。但室内呼叫成功率低,掉话率高。 |
[-85,-75] | 3 | 覆盖较好,室外能够发起各种业务,可获得中等 速率的数据业务。室内能发起各种业务,可获 得低速率数据业务。 |
[-75,-65] | 2 | 覆盖好,室外能够发起各种业务可获得高速率的数据业务。室内能发起各种业务,可获得中等速率数据业务。 |
[-44,-65] | 1 | 覆盖非常好。 |
RSRP Reported Value | 测量范围上限 | 测量范围下限 |
0 | <-140 | |
1 | -140 | -139 |
.... | ... | ... |
36 | -105 | -104 |
.... | .... | .... |
46 | -95 | -94 |
... | ... | ... |
56 | -85 | -84 |
... | ... | ... |
97 | -19 | -18.5 |
如下热力图
颜色越浅信号越强,一般rsrp/10>4 信号就可以了。 一般在测量消息里面看到rsrp/10,根据热力图就很快得到信号的实际情况
二 RSRQ(Reference Signal Received Quality参考信号接收质量)
M*RSRP/RSSI,其中M为RSSI测量带宽内的RB数,即为系统带宽内的RB总数。反映和指示当前信道质量的信噪比和干扰水平。为了使测量得到的RSRQ为负值,与RSRP保持一致,因此RSRP定义的是单个RE上的信号功率,RSSI定义的是一个OFDM符号上所有RE的总接收功率。
上报范围值:-30~46 ,值越大越好
RSRQ Reported Value | 测量范围上限 | 测量范围下限 |
-30 | <34 | |
-29 | -34 | -33.5 |
-28 | -33.5 | -33 |
.... | ... | ... |
-1 | -20 | -19.5 |
0 | -19.5 |
|
1 | -19.5 | -19 |
2 | -19 | -18.5 |
.... | .... | ... |
46 | 2.5 |
rsrq>0 很多业务才可以正常发起,在实验室中,我们可以通过
多次呼叫,在CallBox上面设置不同的rsrp,rsrq,然后根据掉话率,计算相关系数。
以及根据热力图,得到rsrq 的电话
三 RSSI(Received Signal Strength Indicator接收信号强度指示):UE探测带宽内一个OFDM符号所有RE上的总接收功率(若是20M的系统带宽,当没有下行数据时,则为200个导频RE上接收功率总和, 当 有下行数据时,则为1200个RE上接收功率总和),包括服务小区和非服务小区信号、相邻信道干扰,系统内部热噪声等。即为总功率S+I+N,其中I为干扰功率,N为噪声功率。反映当前信道的接收信号强度和干扰程度。
四 RS-SINR(Signal to Interference Noise Ratio信干噪比):
UE探测带宽内的参考信号功率与干扰噪声功率的比值,即为S/(I+N),其中信号功率为CRS的接收功率,I+N为参考信号上非服务小区、相邻信道干扰和系统内部热噪声功率总和。反映当前信道的链路质量,是衡量UE性能参数的一个重要指标。
取值范围:0~30 ,值越大越好
Logarithmic values of SINR are in 1/5th of a dB. Range: 0 to 250, which translates to -20 dB to +30 dB.
=============OTA 测量信息=================
03:49:14.981133 [0xB0C0] UL_DCCH / MeasurementReport
RRC Release Number.Major.minor = 12.7.6
Radio Bearer ID = 1, Physical Cell ID = 349
measResults
measId 3,
measResultPCell
rsrpResult 37, -104
rsrqResult 23,-8.5
measResultNeighCells measResultListEUTRA :
physCellId 362,
rsrpResult 28,
rsrqResult 0
============QMI 上报UI 信息================
03:49:08.719021 [0x1544] QMI_MCS_QCSI_PKT
MsgType = Indication
nas_sig_info {
lte_sig_info {
rssi = -73
rsrq = -10//
rsrp = -102// not good
snr = 114: 算法 156*2-200=112
==========
For SNR value, its calculation is like this:
Snr = sinr * 2 - 200
03:49:08.724167 LTE ML1/High [lte_ml1_common_rssi_ind.c 869] pci = 349, rsrq = -9, rsrp = -101, rssi = -74
03:49:09.675052 LTE ML1/High [lte_ml1_common_rssi_ind.c 1899] rsrp: -100 rsrq:-9 rssi: -71 sinr: 156
03:49:22.164141 LTE ML1/High [lte_ml1_common_rssi_ind.c 869] pci = 349, rsrq = -9, rsrp = -103, rssi = -74
五 热力图CODE
'''
X: 标识在Y驻上面的数据
Y: 标识在X 坐标轴 上面的定型数据
legend(handles, labels,loc)
'''
def DrawSINRBar():
print("\n enter======")
sinrDB = np.arange(-20,30,1/5)
sinrValue = np.arange(0,250,1)
colors1 = '#00FF00' #点的颜色
colors2 = '#FF0022'
area = np.pi * 4**2
m = len(sinrDB)
for i in range(0,m,5):
value = sinrValue[i]
db = sinrDB[i]
#print("\n value ",value)
if db>0:
a =plt.scatter(db, value, c=colors1, marker='v',linewidth = '1.0',s=area )
else:
b =plt.scatter(db, value, c=colors2, marker='o',s=area )
plt.xlim(xmax=30,xmin=-20)
plt.ylim(ymax=250,ymin=0)
plt.legend(handles=[a,b],labels=['>100', '<100'], loc='upper right')
plt.xlabel("db")
plt.ylabel('value')
plt.title('this is a demo')
DrawSINRBar()
'''
创建分散颜色
#n_colors---> 颜色个数
#start ---> 值区间在0-3,开始颜色
#rot ---> 颜色旋转角度
#gamma ---> 颜色伽马值,越大颜色越暗
#dark,light ---> 值区间0-1,颜色越深
#reverse ---> 布尔值,默认为False,由浅到深
————————————————
版权声明:本文为CSDN博主「一行数据」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_42554007/article/details/82624418
'''
def DrawRSRP():
plt.figure(figsize=(10,10),facecolor='white')
x= np.zeros((10,10))
for i in range(10):
for j in range(10):
rsrp =i*10+j
x[i,j]=-140+rsrp
#cmap = sns.cubehelix_palette(8, gamma = 2)
#cmap = sns.cubehelix_palette(8, start = .5, rot = -.75)
cmap = sns.cubehelix_palette(n_colors=6, start=0.5, rot=1.5, gamma=0.5, hue=0.8, light=1.0, dark=0.0, reverse=True, as_cmap=True)
#cmap = sns.cubehelix_palette(as_cmap=True)
sns.heatmap(x.T, cmap=cmap)#热力图
plt.xlabel("rsrp/10")
plt.ylabel("rsrp%10")
plt.title("rsrp[value-db]")
'''
3GPP determines the ranges ,
in ETSI TS 136 133.
'''
def DrawRSRQ():
plt.figure(figsize=(8,8),facecolor='white')
x= np.zeros((5,5))
rsrq_db = -33.5
for i in range(5):
for j in range(5):
#pos = (i*5+j)*3
#rsrq= -29+pos
x[i,j]=rsrq_db
rsrq_db +=1.5
print("\n 热力图 ",x)
#cmap = sns.cubehelix_palette(n_colors=6, start=0.5, rot=0.5, gamma=0.5, hue=0.8, light=1.0, dark=0.0, reverse=False, as_cmap=True)
cmap = sns.cubehelix_palette(n_colors=6,start=2.0, rot=0.8,as_cmap=True)
sns.heatmap(x, cmap=cmap)#热力图
plt.xlabel("rsrq")
plt.ylabel("rsrq")