5G/NR - Frequency Domain Location

 

 

 

Frequency Domain Location in a Nutshell

 

  • In 5G, time and frequency resource allocation of physical channels or signals are very flexible comparing to LTE
  • Due to this high flexibility, it is often tricky to understand how the configuration of such frequency and time domain works.
  • Time domain configuration is relatively simple since it is specified as an absolute OFDM symbol number within a slot, but frequency domain configuration is not as simple as time domain configuration.
  • Explanation on how such a frequency domain allocation (frequency domain resource location) works is the main purpose of this note.
  • A few important terminology you should get familiar with for frequency domain location are
    • Reference Subcarrier
    • PointA
    • LocationAndBandwidth
  • Physical Signals or Channels that are applicable to this concept are
    • SSB
    • CORESET 0
    • BWP

Frequency domain configuration in NR is not one number. It is a chain of offsets, each measured from the one before it, and each counted in a unit that the previous step had to establish first. Meeting ssb-subcarrierOffset before Point A leaves a reader with no way to place it.

This page follows that chain from the bottom. It starts with the reference grid, reaches Point A, and then uses both to place the SS/PBCH block, CORESET 0 and a bandwidth part in turn. The parameters that carry each step are collected at the end.

Frequency Domain Location in Detail

As you know, NR use various types of subcarrier spacing (Numerology). In addition, it can use different subcarrier spacing within the same channel bandwidth depending on type of channel/signal (e.g, SSB, PDSCH etc) or BWP. Then the problem (confusing part) is how to specify the location of each resource blocks using differentsubcarrier spacing. We need some kind of reference coordinate system for this.

The difficulty is worth stating precisely, because it is what every parameter on this page exists to answer. A resource block index means nothing on its own. It only means something once the grid it belongs to is known, and NR carries several grids at once in the same channel.

38.211 clause 4.4.4 sets out the pieces. Clause 4.4.4.2 defines Point A, clause 4.4.4.3 defines common resource blocks, clause 4.4.4.4 defines physical resource blocks and clause 4.4.4.5 defines virtual resource blocks. One origin and three numberings is the whole of the coordinate system, and the sections below use all of them.

Two consequences follow, and both are easy to miss. A parameter counted in resource blocks needs its subcarrier spacing stated separately, because the same count spans different amounts of spectrum at 15 kHz and at 30 kHz. And a parameter measured from the SSB cannot be compared with one measured from Point A until the offset between the two is known.

  • The reference grid is a ruler, not a transmission : nothing is sent on it, and its only job is to give the other grids a common origin.
  • Its spacing depends on the frequency range : 15 kHz in FR1 and 60 kHz in FR2, whatever spacing the channel itself uses.
  • Point A is the origin of the common grid : 38.211 clause 4.4.4.2 defines it, and every subcarrier spacing puts its CRB 0 there.
  • Offsets are chained, not absolute : ssb-subcarrierOffset is measured from a common resource block boundary, which is itself measured from Point A.
  • NSA and SA answer the question differently : NSA names the SSB frequency directly, and SA builds it up from Point A.

Reference Subcarrier Spacing for FR1 and FR2

In NR, there are two different type of reference coordinate system and these reference coordinate system is called Reference PRB. In sub 6 Ghz(FR1), we use the reference PRB system based on 15 Khz subcarrier spacing and in mmWave(FR2) we use the reference PRB sysbem based on on 60 khz subcarrier spacing as illustrated below.   

Two channel bandwidths are drawn side by side, one for FR1 and one for FR2. The grid inside each is the reference PRB grid, and the two use different subcarrier spacings. In FR1 each reference PRB is 12 subcarriers of 15 kHz, so the lines are close together. In FR2 each is 12 subcarriers of 60 kHz, so far fewer fit across the same picture. PRB0, PRB1 and PRB2 are labelled at the bottom of each grid, and the dashed arrow marks both as the reference PRB.

Two channel bandwidths side by side, FR1 on the left with a fine grid of 15 by 12 kHz reference PRBs and FR2 on the right with a coarse grid of 60 by 12 kHz, PRB0 marked in red at the bottom of each and a dashed arrow labelling both as the reference PRB

Figure 1. The reference grid is not the grid a channel is transmitted on. It is the ruler that every other grid is measured against, and FR1 and FR2 use different rulers.

Point A and Offset

This kind of common reference point shown above is represented as a specific term named as 'PointA' in 3GPP. The PointA is defined in 38.211 - 4.4.4.2 as follows.

    Point A serves as a common reference point for resource block grids and is obtained from:

    • offsetToPointA for a PCell downlink represents the frequency offset between point A and the lowest subcarrier of the lowest resource block of the SS/PBCH block used by the UE for initial cell selection, expressed in units of resource blocks assuming 15 kHz subcarrier spacing for FR1 and 60 kHz subcarrier spacing for FR2;
    • absoluteFrequencyPointA for all other cases where absoluteFrequencyPointA represents the frequency-location of point A expressed as in ARFCN.

For example, let's assume that we configure SSB with 30 Khz subcarrier spacing in FR1. We can configure the frequency domain location of SSB in Reference PRB coordinate as shown below and the position can be informed to UE via signaling message.

The left column is the FR1 reference grid from Figure 1, still at 15 kHz. The block on the right is an SSB using 30 kHz subcarrier spacing, so its resource blocks are twice as tall. A horizontal line marks the reference location of the SSB, which is the lowest subcarrier of its lowest resource block. The yellow arrow runs from PRB0 up to that line. The label beside it says the offset is counted in whole PRBs and is signalled to the UE.

The FR1 reference grid on the left at 15 by 12 kHz and an SSB using 30 kHz subcarrier spacing on the right, with a horizontal line marking the reference location of the SSB as the lowest subcarrier of its lowest PRB, and a yellow arrow from PRB0 up to that line labelled offset in the unit of PRB and informed to the UE by signalling

Figure 2. The offset is what connects two grids that use different subcarrier spacings. Without it the SSB grid and the reference grid have no common origin.

How are resource blocks actually numbered ?

Everything above counts resource blocks, and the counting restarts more than once. NR has three separate resource block numberings, and the figures on this page use all three without naming them. I lost time to this more than once, so it is worth setting out before the SSB and CORESET sections.

Common resource blocks are the absolute grid. They are numbered from 0 upward, and the centre of subcarrier 0 of CRB 0 coincides with Point A. There is one CRB grid per subcarrier spacing, and every one of them starts at the same Point A. That shared origin is the reason Point A exists. It is what keeps a 15 kHz grid and a 30 kHz grid aligned to each other.

Physical resource blocks are numbered inside a bandwidth part, from 0 to one less than the size of that part. The two numberings are related by one addition. A PRB index plus the starting CRB of the bandwidth part gives the CRB index. This is why a grant that says PRB 5 means nothing on its own, and why the BWP configuration has to be known first.

Virtual resource blocks are also numbered inside a bandwidth part, and they are what a scheduling grant allocates. They are then mapped to physical resource blocks, either directly or through an interleaver. Non-interleaved mapping means VRB n is PRB n. Interleaved mapping spreads a contiguous VRB allocation across the band. A small allocation then gets frequency diversity it would not otherwise have. The PDSCH page covers the mapping itself.

Numbering

Numbered from

How far it runs

What uses it

Common RB

Point A, which is CRB 0

across the whole carrier, one grid per subcarrier spacing

offsetToPointA, the BWP start, CORESET 0

Physical RB

the first RB of a bandwidth part

0 to the BWP size minus 1

the actual position of a transmission

Virtual RB

the first RB of a bandwidth part

0 to the BWP size minus 1

what a DCI resource allocation field counts

One consequence explains a detail in the figures above. CORESET 0 is placed relative to the SSB rather than relative to Point A, and Figure 7 shows the arrow ending on the bottom of the SSB. That is not an inconsistency. A UE looking for CORESET 0 has found an SSB. It has not yet read the system information that carries offsetToPointA, so the SSB is the only reference it has.

  • Three numberings, one origin : Common, physical and virtual resource blocks all exist at once. Only the common grid is anchored to Point A.
  • Point A is a shared origin, not a carrier edge : Its purpose is to keep grids of different subcarrier spacings aligned. It does not have to fall inside the carrier.
  • A PRB index is meaningless without its bandwidth part : Add the starting common RB of the BWP to a PRB index and the absolute position appears.
  • A grant counts virtual resource blocks : The DCI allocates VRBs, and the mapping to PRBs decides whether the allocation stays contiguous in frequency.
  • CORESET 0 is measured from the SSB, not from Point A : At that point in the acquisition the UE has no Point A yet, so the SSB is the only origin available.

SSB Frequency Location in NSA/ENDC

The illustration shown below is based on the following statement on absoluteFrequencySSB from 38.331. As you may notice, there is slight differences between the two versions. The biggest difference is the part in red. The illustration shown below is based on v15.2.1.

38.331 V15.2.1 (2018-06)

    Frequency of the SSB to be used for this serving cell. The frequency provided in this field identifies the position of resource element RE=#0 (subcarrier #0) of resource block RB#10 of the SS block. The cell-defining SSB of the PCell is always on the sync raster. Frequencies are considered to be on the sync raster if they are also identifiable with a GSCN value (38.101). If the field is absent, the SSB related parameters should be absent, e.g. ssb-PositionsInBurst, ssb-periodicityServingCell and subcarrierSpacing in ServingCellConfigCommon IE. If the field is absent, the UE obtains timing reference from the SpCell. This is only supported in case the Scell is in the same frequency band as the SpCell.

 

38.331 V15.5.1 (2019-05)

    Frequency of the SSB to be used for this serving cell. SSB related parameters (e.g. SSB index) provided for a serving cell refer to this SSB frequency unless mentioned otherwise. The cell-defining SSB of the PCell is always on the sync raster. Frequencies are considered to be on the sync raster if they are also identifiable with a GSCN value(TS 38.101-1). If the field is absent, the SSB related parameters should be absent, e.g. ssb-PositionsInBurst, ssb-periodicityServingCell and subcarrierSpacing in ServingCellConfigCommon IE. If the field is absent, the UE obtains timing reference from the SpCell. This is only supported in case the Scell is in the same frequency band as the SpCell.

 

The SSB is drawn as twenty resource blocks, numbered RB0 at the bottom to RB19 at the top, inside the carrier bandwidth. One arrow points at RB10 and at nothing else. The note on the left says that absoluteFrequencySSB, expressed in ARFCN, gives the position of resource element 0 of that resource block.

An SSB drawn as twenty resource blocks from RB0 at the bottom to RB19 at the top inside the carrier bandwidth, with a blue arrow labelled absoluteFrequencySSB in ARFCN pointing at RB10, and a note that it gives resource element 0, subcarrier 0, of RB#10 of the SS block

Figure 3. In NSA the SSB is located directly, with no reference to Point A at all. One ARFCN value names subcarrier 0 of RB10, and the rest of the SSB follows from it.

SSB Frequency Location in SA

Standalone operation cannot borrow a reference from an LTE anchor, so the SSB frequency has to be reconstructed rather than read. The UE finds the SSB on the synchronization raster first, then works downward to Point A using two offsets from system information. Three specifications are involved, and each contributes one link in that chain.

PointA is defined in 38.211 - 4.4.4.2 as follows.

  • Point A serves as a common reference point for resource block grids and is obtained from:
    • offsetToPointA for a PCell downlink represents the frequency offset between point A and the lowest subcarrier of the lowest resource block of the SS/PBCH block used by the UE for initial cell selection, expressed in units of resource blocks assuming 15 kHz subcarrier spacing for FR1 and 60 kHz subcarrier spacing for FR2;
    • absoluteFrequencyPointA for all other cases where absoluteFrequencyPointA represents the frequency-location of point A expressed as in ARFCN.

AbsoluteFrequencyPointA is defined by 38.331 (v15.7) as follow.

    Absolute frequency position of the reference resource block (Common RB 0). Its lowest subcarrier is also known as Point A . Note that the lower edge of the actual carrier is not defined by this field but rather in the scs-SpecificCarrierList.

GSCN is with reference to the center frequency of SSB based on the statement in 38.104 - 5.4.3.2.

    The mapping between the synchronization raster and the corresponding resource element of the SS block is given in table 5.4.3.2-1. The mapping depends on the total number of RBs that are allocated in the channel and applies to both UL and DL.

< 38.104 v15.7 - Table 5.4.3.2-1: Synchronization Raster to SS block Resource Element Mapping >

The table is two rows deep and one column wide. Resource element index k is 0. The physical resource block number of the SS block is 10.

38.104 Table 5.4.3.2-1, giving resource element index k as 0 and the physical resource block number n PRB of the SS block as 10

Figure 4. This is what fixes the RB10 in the previous figure. The synchronization raster points at subcarrier 0 of resource block 10 of the SS block, and not at the bottom of it.

 

I assume that both GCSN and SSB_REF are with the reference to the center frequency of SSB based on the statement in 38.104 - 5.4.3.2.

    The frequency position of the SS block is defined as SS_REF with corresponding number GSCN. The parameters defining the SSREF and GSCN for all the frequency ranges are in table 5.4.3.1-1

< 38.104 v15.7 - Table 5.4.3.1-1: GSCN parameters for the global frequency raster >

Three frequency ranges, each with its own formula for the SS block frequency position and its own range of GSCN. Below 3000 MHz the position is N times 1200 kHz plus M times 50 kHz, with GSCN from 2 to 7498. From 3000 to 24250 MHz it is 3000 MHz plus N times 1.44 MHz, with GSCN from 7499 to 22255. Above that it is 24250.08 MHz plus N times 17.28 MHz. The note gives 3 as the default value of M for operating bands with an SCS spaced channel raster.

38.104 Table 5.4.3.1-1, giving the SS block frequency position and GSCN for three ranges: 0 to 3000 MHz as N times 1200 kHz plus M times 50 kHz with GSCN 3N plus M minus 3 over 2 and range 2 to 7498, 3000 to 24250 MHz as 3000 MHz plus N times 1.44 MHz with GSCN 7499 plus N and range 7499 to 22255, and 24250 to 100000 MHz as 24250.08 MHz plus N times 17.28 MHz with GSCN 22256 plus N and range 22256 to 26639, with a note that the default value of M is 3

Figure 5. The synchronization raster is far coarser than the channel raster, and deliberately so. A UE searching for a cell only has to test the frequencies this table can generate.

That table has since gained company. In 38.104 v20.0.0 it is titled Table 5.4.3.1-1, GSCN parameters for the global frequency raster for above 3 MHz channel bandwidth, and two more tables sit beside it. Table 5.4.3.1-2 covers a 3 MHz channel bandwidth, and Table 5.4.3.1-3 adds parameters for band n100. The three rows shown above are unchanged.

Putting all the statements mentioned above, I can illustrate the SSB position and PointA, OffsetToPointA,ssb-subcarrierOffset as follows.

This is the SSB of Figure 3, now measured from below. The lowest line carries all three names of the same point, which are AbsoluteFrequencyPointA from 38.331, Point A from 38.211, and Common RB0. A green arrow spans from there to N_CRB^SSB, which is offsetToPointA. A shorter arrow above it is k_SSB, which is ssb-subcarrierOffset, and it reaches RB0 of the SSB. SSB_REF and GSCN still point at RB10.

The SSB drawn from RB0 to RB19 with SSB REF and GSCN pointing at RB10, a short green arrow labelled k SSB and ssb-subcarrierOffset below RB0, a longer green arrow labelled N CRB SSB and OffsetToPointA below that, and a bottom line carrying AbsoluteFrequencyPointA from 38.331, PointA from 38.211 and Common RB0

Figure 6. In SA the SSB position is built up from Point A in two steps, a whole number of resource blocks and then a number of subcarriers. That is why both offsetToPointA and ssb-subcarrierOffset exist.

 

Example 01 > PointA Calculation for SCS 30Khs

Assuming followings are given

    (1) GSCN (ARFCN)

    (2) k_SSB

    (3) OffsetToPointA

Step 1 :  Convert (1) into the frequency in Mhz and assign it to (A)

Step 2 :  Calculate the SSB Reference Location(subcarrier 0 in RB0 of SSB) in Mhz and store it to (B)

    (B) = (A) - (10 x 12 x 0.03)

     

    NOTE : : (10 x 12 x 0.03) indicates 10 RB(half of total SSB RB) in Mhz

Step 3 :  Calculate Point A in the form of frequency in Mhz using following equation and assign it to (C)

    (C) = (B) - (k_SSB x 0.015) - ((3) x 12 x 0.015)  

     

    NOTE : : 0.015 in  (k_SSB x 0.015) came from here.

Step 4 : Convert (C) into ARFCN

 

NOTE : The calculation in this example is based on the following statement.

    38.211-4.4.4.2 states 'offsetToPointA for a PCell downlink represents the frequency offset between point A and the lowest subcarrier of the lowest resource block overlapping with the SS/PBCH block used by the UE for initial cell selection, expressed in units of resource blocks assuming 15 kHz subcarrier spacing for FR1 and 60 kHz subcarrier spacing for FR2'.

 

Example 02 > PointA Calculation for SCS 30Khs

Now let's practice the example 1 with concrete numbers. Let's assume that we are given following numbers

    (1) GSCN (ARFCN) =  7811 (629952)

    (2) k_SSB = 0

    (3) OffsetToPointA = 30

Step 1 :  Convert (1) into the frequency in Mhz and assign it to (A)

    GSCN (ARFCN) =  7811 (629952) ==> 3449.28 Mhz

     

    NOTE : I used this site to get this number

Step 2 :  Calculate the SSB Reference Location(subcarrier 0 in RB0 of SSB) in Mhz and store it to (B)

    (B) = (A) - (10 x 12 x 0.03)

          =  3449.28 - (10 x 12 x 0.03)

         = 3445.68

Step 3 :  Calculate Point A in the form of frequency in Mhz using following equation and assign it to (C)

    (C) = (B) - (k_SSB x 0.015) - ((3) x 12 x 0.015)  

          = 3445.68 - (0 x 0.015) - (30 x 12 x 0.015)

          = 3440.28

Step 4 : Convert (C) into ARFCN

    3440.28 Mhz ==> 629352

     

    Note : I used this site to get this number

CORESET 0 Location in Frequency Domain

Note where the offset is measured from, because it is not Point A. At the moment a UE needs CORESET 0 it has decoded the MIB and nothing more, so system information has not arrived and offsetToPointA is still unknown. The only reference it holds is the SSB it just found.

The two ends of the offset are worth reading carefully. It runs from the smallest resource block index of CORESET 0 up to the smallest index of the common resource block that overlaps the first resource block of the SSB. The upper end is therefore a common resource block boundary, and not the lowest subcarrier of the SSB itself.

The CORESET 0 Location in frequency domain is determined based on following statement in 38.213.

    The offset in Tables 13-1 through 13-10 is defined with respect to the SCS of the CORESET for Type0-PDCCH CSS set, provided by subCarrierSpacingCommon, from the smallest RB index of the CORESET for Type0-PDCCH CSS set to the smallest RB index of the common RB overlapping with the first RB of the corresponding SS/PBCH block

    NOTE : Note that the subcarrier spacing in the parameters shown here differs depending on the situation as summarized below.

    • k_ssb : always 15 Khz subcarrier spacing for FR1, 60 Khz subcarrier spacing for FR2 regardless of SSB subcarrier spacing.
    • OffsetToPointA : the unit of this parameter is number of RB. Subcarrier spacing within this RB is always 15 Khz subcarrier spacing for FR1, 60 Khz subcarrier spacing for FR2 regardless of SSB subcarrier spacing.
    • SSB Subcarrier Spacing : this varies depending on subCarrierSpacingCommon value in MIB. It can be summarized as follows.
      • When subCarrierSpacingCommon = scs15or60,
        • SSB Subcarrier Spacing for FR1 = 15 Khz
        • SSB Subcarrier Spacing for FR2 = 60 Khz
      • When subCarrierSpacingCommon = scs30or120,
        • SSB Subcarrier Spacing for FR1 = 30 Khz
        • SSB Subcarrier Spacing for FR2 = 120 Khz

One detail in that statement has widened. 38.213 v19.4.0 describes the CORESET 0 configuration in Tables 13-0 through 13-10 rather than 13-1 through 13-10. It also adds Tables 13-1A and 13-4A for shared spectrum channel access in FR1, and Table 13-10A for FR2-2. The offset column that this section is about behaves the same way in all of them.

Based on this statement, I illustrate the CORESET 0 position as shown below.

This is Figure 6 with CORESET 0 added as the orange bar on the left. A red arrow marks the offset to its lower edge, and the label gives tables 13-1 to 13-10 of 38.213 as the source. Everything on the right is unchanged, including the SSB blocks, offsetToPointA, ssb-subcarrierOffset and Point A. Notice which line the red arrow ends on. It ends on the bottom of the SSB, not on Point A.

The same SSB and Point A drawing with CORESET 0 added as an orange bar on the left, and a red arrow labelled offset in Tables 13-1 to 13-10 of 38.213 running from the lower edge of CORESET 0 up to the common resource block boundary just below the SSB

Figure 7. CORESET 0 is positioned relative to the SSB rather than to Point A. A UE has already found the SSB by the time it needs CORESET 0, and it has not yet read anything that would give it Point A.

BWP Frequency Location

A bandwidth part is the simplest case on this page, and for one reason. It is always a contiguous run of common resource blocks, so a start and a length describe it completely. No subcarrier level offset is needed, because a bandwidth part begins on a resource block boundary of its own grid.

The location and size of a BWP are specified in the RRC (Radio Resource Control) layer using several parameters, including AbsoluteFrequencyPointA, LocationAndBandwidth

The BWP is the grey block on the right. Two arrows define it. The long one runs from Common RB0 up to the bottom of the block, and it is the starting resource block. The short one beside the block is the number of consecutive resource blocks. Both are carried by one parameter, locationAndBandwidth, encoded as an RIV.

A grey BWP block on the right, a green arrow from Common RB0 up to its lower edge labelled Start RB, a second arrow beside the block labelled number of consecutive RBs, and both traced back to LocationAndBandwidth expressed as an RIV

Figure 8. A bandwidth part needs only a start and a length, because it is always contiguous. Packing both into a single RIV is what keeps the field small enough to repeat in every configuration.

As illustrated above, BWP location is specified by two parameters : AbsoluteFrequencyPointA and LocationAndBandwidth. Brief description of these two parameters are :

  • AbsoluteFrequencyPointA: This parameter defines the absolute frequency of the first subcarrier in the lowest frequency band of the common resource blocks (CRBs) in the channel band.
  • LocationAndBandwidth: This parameter is used to define both the location(starting position) and the bandwidth of the BWP. It is encoded using a single integer value which is calculated from the two values (i.e, startRB and lcrb(the number of contiguous RBs)).
  • NOTE : For further details and specific examples on how to calculate LocationAndBandwidth, refer to this.

Parameters determining Frequency Domain Location

There are many different RRC parameters determining Frequency Domain Location as listed below. But not all of them are used all at the same time. Depending on situation, the different set of parameters are used. When you try to set these frequency related parameters, you may ask to yourself a few questions as below.

  • Do I want to setup frequency configuration in NSA or SA ?
  • Do I want to setup SSB frequency ? or BWP frequency ?

Following is based on 38.331 v19.3.0 (Release 19)

FrequencyInfoDL ::=                 SEQUENCE {
    absoluteFrequencySSB                ARFCN-ValueNR                                                   OPTIONAL,   -- Cond SpCellAdd
    frequencyBandList                   MultiFrequencyBandListNR,
    absoluteFrequencyPointA             ARFCN-ValueNR,
    scs-SpecificCarrierList             SEQUENCE (SIZE (1..maxSCSs)) OF SCS-SpecificCarrier,
    ...,
    [[
    referenceCell-r18                   ServCellIndex                                                   OPTIONAL    -- Cond SSBlessSCell
    ]]
}

SCS-SpecificCarrier ::=             SEQUENCE {
    offsetToCarrier                     INTEGER (0..2199),
    subcarrierSpacing                   SubcarrierSpacing,
    carrierBandwidth                    INTEGER (1..maxNrofPhysicalResourceBlocks),
    ...,
    [[
    txDirectCurrentLocation         INTEGER (0..4095)                                       OPTIONAL            -- Need S
    ]],
    [[
    sbfd-Subband-Allocation-r19     SBFD-Subband-Allocation-r19                             OPTIONAL            -- Need R
    ]]
}

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

PDCCH-ConfigSIB1 ::=                SEQUENCE {
    controlResourceSetZero              ControlResourceSetZero,
    searchSpaceZero                     SearchSpaceZero
}

Three of those definitions have moved since the version this page was written against. The field absoluteFrequencySSB is now optional and carries -- Cond SpCellAdd, which matches the sentence below about a cell taking its timing from the SpCell. The direct current field lost its version suffix and is plain txDirectCurrentLocation, which is already how the description below spells it.

The MIB change is the one to watch in a decoder. The field pdcch-ConfigSIB1 is no longer an INTEGER (0..255). It is a structure of two fields, controlResourceSetZero and searchSpaceZero, and the first of those is what indexes the CORESET 0 tables used earlier on this page. The bit count is unchanged, so an old decoder reads the same eight bits and simply does not split them.

Release 19 also added a second extension group to SCS-SpecificCarrier. The new field sbfd-Subband-Allocation-r19 carries a subband layout for subband full duplex, and it is the first thing in this IE that describes anything other than one contiguous carrier.

  • The two Point A parameters live in different messages : FrequencyInfoDL carries absoluteFrequencyPointA as an ARFCN, and FrequencyInfoDL-SIB carries offsetToPointA in resource blocks.
  • offsetToPointA and offsetToCarrier share a range : both are INTEGER (0..2199), and 2199 is 275 times 8 minus 1.
  • Point A is not the carrier edge : offsetToCarrier is what places the lowest usable subcarrier, and it can be non-zero.
  • ssb-SubcarrierOffset is four bits in MIB : INTEGER (0..15), which is the kSSB drawn in Figure 6.
  • absoluteFrequencySSB is conditional : -- Cond SpCellAdd, so a serving cell in the same band as the SpCell can be configured without it.
  • One IE per subcarrier spacing : scs-SpecificCarrierList holds an SCS-SpecificCarrier for each spacing in use, and all of them are measured from the same Point A.

absoluteFrequencySSB : Frequency of the SSB to be used for this serving cell. SSB related parameters (e.g. SSB index) provided for a serving cell refer to this SSB frequency unless mentioned otherwise. The frequency provided in this field identifies the position of resource element RE=#0 (subcarrier #0) of resource block RB#10 of the SS block. The cell-defining SSB of the PCell is always on the sync raster. Frequencies are considered to be on the sync raster if they are also identifiable with a GSCN value. If the field is absent, the SSB related parameters should be absent, e.g. ssb-PositionsInBurst, ssb-periodicityServingCell and subcarrierSpacing in ServingCellConfigCommon IE. If the field is absent, the UE obtains timing reference from the SpCell. This is only supported in case the Scell is in the same frequency band as the SpCell => The value in this field in in the unit of ARFCN

absoluteFrequencyPointA :  Absolute frequency position of the reference resource block (Common RB 0). Its lowest subcarrier is also known as Point A. Note that the lower edge of the actual carrier is not defined by this field but rather in the scs-SpecificCarrierList. Corresponds to L1 parameter 'offset-ref-low-scs-ref-PRB' => The value in this field in in the unit of ARFCN

carrierBandwidth : Width of this carrier in number of PRBs (using the subcarrierSpacing defined for this carrier) Corresponds to L1 parameter 'BW  => The value in this field in in the unit of RB

offsetToCarrier : Offset in frequency domain between Point A (lowest subcarrier of common RB 0) and the lowest usable subcarrier on this carrier in number of PRBs (using the subcarrierSpacing defined for this carrier). The maximum value corresponds to 275*8-1. Corresponds to L1 parameter 'offset-pointA-low-scs'

SubcarrierSpacing : Subcarrier spacing of this carrier. It is used to convert the offsetToCarrier into an actual frequency. Only the values 15 or 30 kHz (<6GHz), 60 or 120 kHz (>6GHz) are applicable. The network configures all SCSs of configured BWPs configured in this serving cell. Corresponds to L1 parameter 'ref-scs'

txDirectCurrentLocation : Indicates the downlink Tx Direct Current location for the carrier. A value in the range 0..3299 indicates the subcarrier index within the carrier. The values in the value range 3301..4095 are reserved and ignored by the UE. If this field is absent, the UE assumes the default value of 3300 (i.e. "Outside the carrier").

offsetToPointA : The offset in PRB between the Point A and the lowest subcarrier of the lowest PRB of the cell-defining SSB after floating SSB is resolved.

38.211-4.4.4.2 states 'offsetToPointA for a PCell downlink represents the frequency offset between point A and the lowest subcarrier of the lowest resource block overlapping with the SS/PBCH block used by the UE for initial cell selection, expressed in units of resource blocks assuming 15 kHz subcarrier spacing for FR1 and 60 kHz subcarrier spacing for FR2'.

Reference

[1] NR Wide Bandwidth Operations : Jeongho Jeon, Intel Corporation.

[2] 38.211 v19.4.0 : NR - Physical channels and modulation. Clause 4.4.4.2 defines Point A, and clauses 4.4.4.3 to 4.4.4.5 define the common, physical and virtual resource block numberings.

[3] 38.104 v20.0.0 : NR - Base Station radio transmission and reception. Clause 5.4.3.1 gives the synchronization raster and Table 5.4.3.2-1 maps it to resource block 10 of the SS block. The two tables above are taken from v15.7.

[4] 38.213 v19.4.0 : NR - Physical layer procedures for control. Clause 13 holds the CORESET 0 configuration tables and the offset used above.

[5] 38.331 v19.3.0 : NR - Radio Resource Control (RRC) protocol specification. FrequencyInfoDL, SCS-SpecificCarrier, FrequencyInfoDL-SIB, MIB and PDCCH-ConfigSIB1 are quoted from it.