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)))