NG Toolset開發筆記--5GNR Resource Grid(34)

10/28~11/1號完成Carrier Grid/SSB Grid相關參數的實現:

For simplicity, assume:

*subcarrierSpacingCommon in MIB is the same as scs of the carrier;

*bands for SUL/SDL is not supported.

 

when 'operating band' is changed:

(1)update the band info label

(2)update ssb scs

(3)update carrier scs

 

when 'ssb scs' is change:

(1) update ssb pattern

(2) update minGuardBandScs240k if necessary

(3) update k_SSB and n_CRB_SSB if necessary

 

when 'carrier scs' is change:

(1)update transmission bandwidth

 

when 'transmission bandwidth' is changed:

(1) update N_RB

(2) update minGuardBand

(3) update minGuardBandScs240k if necessary

(4) update k_SSB and n_CRB_SSB

Note: If SSB scs is 240k, the minimum transmission bandwidth is 100M.

 

for k_SSB and n_CRB_SSB update:

def updateKSsbAndNCrbSsb(self):
        #refer to 3GPP 38.211 vf30
        #7.4.3.1	Time-frequency structure of an SS/PBCH block
        '''
        For FR1, k_ssb and n_crb_ssb based on 15k
        For FR2, k_ssb based on carrier_scs, n_crb_ssb based on 60k

        FR1/FR2   carrier_scs   ssb_scs     k_ssb	n_crb_ssb
        -----------------------------------------------------------
        FR1	        15k         15k         0~11	minGuardBand
                    15k         30k         0~11	minGuardBand
                    30k         15k         0~23	2*minGuardBand
                    30k         30k         0~23	2*minGuardBand
        FR2         60k         120k        0~11	minGuardBand
                    60k         240k        0~11	max(minGuardBand,4*minGuardBand240k)
                    120k        120k        0~11	2*minGuardBand
                    120k        240k        0~11	max(2*minGuardBand,4*minGuardBand240k)
        -----------------------------------------------------------
        '''
        key = self.nrCarrierScsComb.currentText()[:-3] + '_' + self.nrSsbScsComb.currentText()[:-3]
        minGuardBand = int(self.nrMinGuardBandEdit.text())
        if key in ('15_15', '15_30', '60_120'):
            self.nrSsbKssbEdit.setPlaceholderText('0~11')
            self.nrSsbNCrbSsbEdit.setText(str(minGuardBand))
        elif key in ('30_15', '30_30'):
            self.nrSsbKssbEdit.setPlaceholderText('0~23')
            self.nrSsbNCrbSsbEdit.setText(str(2*minGuardBand))
        elif key == '60_240':
            self.nrSsbKssbEdit.setPlaceholderText('0~11')
            minGuardBand240k = int(self.nrSsbMinGuardBandScs240kEdit.text())
            self.nrSsbNCrbSsbEdit.setText(str(max(minGuardBand, 4*minGuardBand240k)))
        elif key == '120_120':
            self.nrSsbKssbEdit.setPlaceholderText('0~11')
            self.nrSsbNCrbSsbEdit.setText(str(2*minGuardBand))
        elif key == '120_240':
            self.nrSsbKssbEdit.setPlaceholderText('0~11')
            minGuardBand240k = int(self.nrSsbMinGuardBandScs240kEdit.text())
            self.nrSsbNCrbSsbEdit.setText(str(max(2*minGuardBand, 4*minGuardBand240k)))

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章