1 BWP定义

由于5G采用大带宽,若每个UE都使用全带宽,则对UE能力要求很高。BWP指载波的一部分,让UE只使用其中的一部分,降低UE的成本。

38.211-4.4.5 A bandwidth part is a subset of contiguous common resource blocks for a given numerology in bandwidth part on a given carrier.

对应载波和BWP,存在CRB和PRB。CRB在载波上编号,PRB在BWP上编号,两者之间映射关系如下图: CRB-to-PRB

CRB编号和PRB编号的关系如下:

CRB和PRB的关系

2 BWP配置

已知条件

  • 载波中心频点Fc和带宽BW
  • SSB中心频点SS_REF
  • RRC参数offsetToCarrier

计算:

  • Point A
  • SSB RE级偏移ssb-SubcarrierOffset
  • SSB RB级偏移offsetToPointA
  • CORESET相对于SSB偏移offset
  • BWP起始位置和大小locationAndBandwidth

载波、SSB、CORESET0和BWP的频域关系如下图所示:

// 配置载波偏移、子载波间隔和载波带宽

SCS-SpecificCarrier ::=             SEQUENCE {
    offsetToCarrier                     INTEGER (0..2199),
    subcarrierSpacing                   SubcarrierSpacing,
    carrierBandwidth                    INTEGER (1..maxNrofPhysicalResourceBlocks),
}
// 配置PointA和SSB中心频点的ARFCN

FrequencyInfoDL ::=                 SEQUENCE {
    absoluteFrequencySSB                ARFCN-ValueNR                                                   
    frequencyBandList                   MultiFrequencyBandListNR,
    absoluteFrequencyPointA             ARFCN-ValueNR,
    scs-SpecificCarrierList             SEQUENCE (SIZE (1..maxSCSs)) OF SCS-SpecificCarrier,
    ...
}
// 配置SSB RB级偏移

FrequencyInfoDL-SIB ::=             SEQUENCE {
    frequencyBandList                   MultiFrequencyBandListNR-SIB,
    offsetToPointA                      INTEGER (0..2199),
    scs-SpecificCarrierList             SEQUENCE (SIZE (1..maxSCSs)) OF SCS-SpecificCarrier
}
MIB ::=                             SEQUENCE {
    systemFrameNumber                   BIT STRING (SIZE (6)),
    subCarrierSpacingCommon             ENUMERATED {scs15or60, scs30or120},
    ssb-SubcarrierOffset                INTEGER (0..15),
    dmrs-TypeA-Position                 ENUMERATED {pos2, pos3},
    pdcch-ConfigSIB1                    PDCCH-ConfigSIB1,
    cellBarred                          ENUMERATED {barred, notBarred},
    intraFreqReselection                ENUMERATED {allowed, notAllowed},
    spare                               BIT STRING (SIZE (1))
}
BWP ::=                             SEQUENCE {
    locationAndBandwidth                INTEGER (0..37949),
    subcarrierSpacing                   SubcarrierSpacing,
    cyclicPrefix                        ENUMERATED { extended }                                                
}

3 如何确定BWP的位置和带宽?

通过RRC参数locationAndBandwidth进行配置,利用RIV指示起始位置和BWP带宽。

RIV计算如下图所示:

RIV

# 基站侧:根据BWP起始位置和带宽计算RIV
rbLength = 273
rbStart = 0
bwpSize = 275
if ((rbLength-1) <= (bwpSize//2)):
    RIV = bwpSize*(rbLength-1)+rbStart
else
    RIV = bwpSize*(bwpSize-rbLength+1)+(bwpSize-1-rbStart)
print("RIV=%d",RIV)
# UE侧:根据RIV计算BWP起始位置和带宽
RIV = 36300
bwpSize = 275

rbLength = RIV // bwpSize
rbStart = RIV % bwpSize
if ((rbStart + rbLength - 1) <= bwpSize):
    rbStart = rbStart
    rbLength = rbLength + 1
else:
    rbLength = bwpSize - rbLength + 1
    rbStart = bwpSize - 1 - rbStart

print("rbStart=%d,rbLength=%d",rbStart,rbLength)

4 UE侧如何获取BWP的配置?

UE在接入前知道基站的中心频点、带宽和offsetToCarrier吗?

UE在接入前知道SSB中心频点的大致范围,在此范围内进行盲检获得SSB的位置,实现小区同步和解MIB。UE从MIB上获取CORESET0的信息,从而解SIB1,获取BWP配置等信息。

遗留问题: ssb-SubcarrierOffset的作用是什么? SSB盲检原理?

5 BWP切换

此部分暂时不理解,后续更新。