NG Toolset开发笔记--5GNR Resource Grid(48)

这篇博客介绍了5GNR中PRACH关联周期的确定方法,通过寻找160ms内最小的有效PRACH时机。同时讲解了SSB到PRACH时机的映射以及PRACH在时域和频域的资源映射。作者计划发布'5GNR Resource Grid'工具的首个alpha版本。
摘要由CSDN通过智能技术生成

3/17 update:

sendMsg1 is ready now, including:

*PRACH association period determination

*SSB to PRACH occasion mapping

*PRACH time-domain/freq-domain resource mapping

 

(1) PRACH association period determination

Used method is trying to find minimum valid prach occasions during 160ms (16 frames) period:

self.minNumValidPrachOccasionPerAssociationPeriod = math.ceil(self.numTxSsb / self.nrRachSsbPerRachOccasionM8 * 8)

where:

*numTxSsb is number of transmitted SSBs

*nrRachSsbPerRachOccasionM8 is ssb-perRACH-Occasion multiplied by 8.

Procedure to validate prach occasions:

#refer to 3GPP 38.213 vf40 8.1
                #For paired spectrum all PRACH occasions are valid.
                #If a UE is provided TDD-UL-DL-ConfigurationCommon, a PRACH occasion in a PRACH slot is valid if 
                #-	it is within UL symbols, or 
                #-	it does not precede a SS/PBCH block in the PRACH slot and starts at least N_gap symbols after a last downlink symbol and at least N_gap symbols after a last SS/PBCH block transmission symbol, where N_gap is provided in Table 8.1-2.
                for s in raSlots:
                    for t in range(self.nrRachCfgNumOccasionsPerSlot):
                        if self.nrDuplexMode == 'FDD':
                            for f in range(self.nrRachMsg1Fdm):
                                validPrachOccasionsPerAssociationPeriod.append([[curHsfn, curSfn, s], t, f])
                        else:
                            scaleTd = self.baseScsTd // self.prachScs
                            rachFirstSymbInBaseScsTd = (s * self.nrSymbPerSlotNormCp + self.nrRachCfgStartSymb + t * self.nrRachCfgDuration) * scaleTd
                            rachSymbsInbaseScsTd = [rachFirstSymbInBaseScsTd+k for k in range(self.nrRachCfgDuration*scaleTd)]
                            
                            nGapInBaseScsTd = 0 if self.nrRachScs in ('1.25', '5') or self.nrRachCfgFormat == 'B4' else 2*(self.baseScsTd//self.prachScs)
                            
                            valid = True
                            for k in rachSymbsInbaseScsTd:
                                if tdGrid[k] !=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值