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

100 篇文章 0 订阅
42 篇文章 1 订阅

2/23号完成:

(1)sendNpuschFormat1

(2)fillNpuschFormat1和fillNpuschFormat2

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

比如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部分输出为:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值