NG Toolset开发笔记--NB-IoT Resource Grid(13)

2/23号完成:

(1)sendNpuschFormat1

(2)fillNpuschFormat1和fillNpuschFormat2

至此,NB Grid基本实现完毕。(todo list:NPDSCH/NPDCCH gap和以tab方式绘制nb grid

代码同步commit到github:https://github.com/zhenggao2/NgToolset

比如fillNpuschFormat1实现如下:

def fillNpuschFormat1(self, hsfn, sfn, slot):
        allSymb = self.args['npuschAllSymbols']
        scs = self.args['npuschFormat1Scs']
        
        #host LTE grid (isc, isymb)
        hostScs = [self.args['nbInbandPrbIndUl'] * 12 + isc for isc in scs] if self.args['nbUlScSpacing'] == NbiotPhy.NBIOT_UL_15K.value else [self.args['nbInbandPrbIndUl'] * 12 + math.floor(isc/4) for isc in scs]
        hostSlot = [slot] if self.args['nbUlScSpacing'] == NbiotPhy.NBIOT_UL_15K.value else list(range(4*slot, 4*(slot+1)))
        hostSymb = []
        hostSymb.extend([i*self.symbPerSlotNb+j for i in hostSlot for j in range(self.symbPerSlotNb)])
        
        key = str(hsfn)+'_'+str(sfn)
        for ind, isc in enumerate(scs):
            for isymb in range(self.symbPerSlotNb):
                if allSymb: #npusch-AllSymbols = True
                    if self.gridNbUl[key][0][isc][slot*self.symbPerSlotNb+isymb] == NbiotResType.NBIOT_RES_BLANK.value:
                        self.gridNbUl[key][0][isc][slot*self.symbPerSlotNb+isymb] = NbiotResType.NBIOT_RES_NPUSCH_FORMAT2.value
                else:
                    isSrs = False
                    for i in range(1 if self.args['nbUlScSpacing'] == NbiotPhy.NBIOT_UL_15K.value else 4):
                        if self.args['hostLteGridUl'][0][hostScs[ind]][hostSymb[4*isymb+i]] == LTE_RES_SRS.value:
                            isSrs = True
                            break
                    if not isSrs and self.gridNbUl[key][0][isc][slot*self.symbPerSlotNb+isymb] == NbiotResType.NBIOT_RES_BLANK.value:
                        self.gridNbUl[key][0][isc][slot*self.symbPerSlotNb+isymb] = NbiotResType.NBIOT_RES_NPUSCH_FORMAT2.value

缺省配置下,NB部分输出为:


猜你喜欢

转载自blog.csdn.net/jeffyko/article/details/79351238
今日推荐