4G/LTE - LTE NB

 

 

 

NPDCCH/DCI

 

If you have been working since the legacy LTE, you would be familiar with the concepts and parameters related to how network notify UE of downlink and uplink resource assignment and you may not need any explanation about the general concept of PDCCH / DCI and you can jump directly in the details. However, if LTE-NB is the first LTE experience, you would need to the basic concept of DCI. For the basic concept, I would suggest you to read the legacy LTE DCI page or at least the first section of the page.

The page follows the path a DCI takes. It starts with the physical channel, NPDCCH, and its two NCCEs. It then goes through the three DCI formats N0, N1 and N2 field by field, and the 36.213 tables that turn each field into a real value. It ends with the search spaces and subframes in which the UE looks for NPDCCH.

Followings are the topics to be covered in this page.

Basic Terminologies

When we are talking about resource allocation mechanism, DCI(Downlink Control Indicator) is the most important part but if you are going a little bit deeper into the implementation of DCI in Transport/Physical layer. You would see a couple of additional parameters that may confuse you in some case.

 

Terminology

Meaning

DCI

A Logical Block(Unit) that carries data for NPDSCH(Downlink) or NPUSCH(Uplink) data

NPDCCH

The Physical Channel that carries(conveys) DCI

NCCE

The basic unit of physical block in NPDCCH where DCI data is allocated. NPDCCH split its area into two subblock. This subblock is called NCCE. In NPDCCH, there are two subblocks called NCCE 0 and NCCE 1.

 

The three terms stack on top of each other. A DCI is the content, NPDCCH is the channel that carries it, and the NCCE is the unit the channel is built from. NB-IoT keeps each layer much smaller than LTE, because the whole carrier is one PRB of 12 subcarriers.

  • DCI is the message : it tells the UE where and how to receive NPDSCH or send NPUSCH.
  • NPDCCH is the channel : it carries one DCI, repeated over one or more subframes.
  • NCCE is the building block : one PRB holds exactly two of them, NCCE 0 and NCCE 1.

NPDCCH / NCCE

As in legacy LTE, in LTE-NB as well the DCI is carried by the physical channel called NPDCCH. The basic resource allocation unit for PDCCH is called NCCE. There are two NCCE that are defined as shown below. There are two different types of NPDCCH format (Format 0 and Format 1). NPDCCH Format 0 takes up only one NCCE and NPDCCH format 1 takes up two NCCEs.

The diagram below shows one NB-IoT PRB for one subframe, with the two NCCEs drawn over it. The table on the right is 36.211 Table 10.2.5.1-1, and the text underneath is the 36.213 rule for the first OFDM symbol of NPDCCH.

NCCE 0 and NCCE 1 in one NB-IoT PRB, with the NPDCCH formats table and the NPDCCH start symbol rule

NCCE 0 takes subcarriers 0 to 5 and NCCE 1 takes subcarriers 6 to 11. Both start at symbol lNPDCCHStart, which comes from eutraControlRegionSize in SIB1-NB, or is 0 when that parameter is absent.

  • Two NCCEs per subframe : 36.211 v19.3.0 clause 10.2.5.1 puts NCCE 0 on subcarriers 0 to 5 and NCCE 1 on subcarriers 6 to 11.
  • NPDCCH format 0 uses one NCCE : and NPDCCH format 1 uses both, always in the same subframe.
  • The start symbol leaves room for LTE : in the in-band case, eutraControlRegionSize skips the symbols of the LTE control region.
  • NPDCCH is not mapped to reference signals : the red LTE CRS and the yellow and purple NRS resource elements inside the NCCEs are left out of the mapping.

The last point comes from 36.211 clause 10.2.5.5. NPDCCH is mapped only to resource elements that are part of its NCCEs and that are not used for NPBCH, NPSS, NSSS, NRS or LTE CRS. So an NCCE carries fewer symbols than its 6 × 11 grid suggests, and the loss is larger in the in-band case with four CRS ports.

DCI - Downlink Control Information

A DCI is the message that tells a UE what to do on the shared channels. NB-IoT keeps the set of formats small, so each format has one base size and one main job, and the UE has only a few DCI sizes to try.

Unlike in LTE, in LTE-NB only three types of DCI (DCI Format N0, N1, N2) as described in 36.212 6.4.3 Downlink control information

There are three different DCI format defined in LTE-NB as summarized in the table shown below.

 

DCI Format

Bit Length (size)

Purpose / Usage

N0

23

UL Grant (NPUSCH Scheduling)

N1

23

DL Scheduling (NPDSCH Scheduling)

RACH initiated by PDCCH Order

N2

15

Paging and direct indication

 

The sizes in the table are the Release 13 sizes. In 36.212 v19.3.0 they are the base sizes. Formats N0 and N1 in the UE-specific search space can grow by a few bits when later features are configured. The spec then pads the shorter of the two with zeros until both are the same size, so the UE still decodes N0 and N1 with a single payload size.

The purposes have grown as well. N0 also covers transmission on preconfigured uplink resources. N1 also carries the SC-MCCH change notification when its CRC is scrambled by G-RNTI, and N2 also schedules SC-MCCH when its CRC is scrambled by SC-RNTI.

  • N0 and N1 share one size : a 1-bit flag at the start tells them apart.
  • N2 is separate : it is shorter, and it is only sent with P-RNTI or SC-RNTI.
  • 23 and 15 bits are the Release 13 base : later features add bits, and zero padding keeps N0 and N1 equal.

Format N0

DCI Format N0 is for UL Grant. It is equivalent to DCI 0 in normal LTE. Each of the field in DCI format N0 is defined as follows.

 

Field

# of Bits

Description

Flag for format N0/format N1 differentiation

1

0 - N0, 1 - N1

Subcarrier indication

6

When Subcarrier Spacing = 15 Khz

      See 36.213 Table 16.5.1.1-1

When Subcarrier Spacing = 3.75 Khz

      n_sc = I_sc

Resource assignment

3

See 36.213 Table 16.5.1.1-2

Scheduling delay

2

See 36.213 Table 16.5.1-1

Modulation and coding scheme

4

See 36.213 Table 16.5.1.2-1

Redundancy version

1

 

Repetition number

3

See 36.213 Table 16.5.1.1-3

New data indicator

1

 

DCI subframe repetition number

2

 

Total Number of Bits

23

 

 

36.212 v19.3.0 clause 6.4.3.1 keeps these nine fields as the base layout, and adds fields that appear only when a feature is configured. HARQ process number is 1 bit and is present when two HARQ processes are configured. Number of scheduled TB for Unicast is 1 bit and is present with multi-TB scheduling. Resource reservation is 1 bit and is present when resourceReservationConfigUL is configured.

Some existing fields change meaning. With npusch-16QAM-Config, an MCS value of '1111' indicates 16QAM, and the Repetition number field then carries the 16QAM MCS. With npusch-OCC-Enabled, the Redundancy version field works as the OCC enabled or disabled flag. When the CRC is scrambled by PUR-RNTI and the MCS is '1110', the DCI instead carries an ACK or fallback indicator, a repetition adjustment and a timing advance adjustment.

  • 23 bits is the base : optional fields add bits only in the UE-specific search space.
  • Flag = 0 marks N0 : the UE reads the first bit before anything else.
  • Field reuse keeps the size small : 16QAM, OCC and PUR reuse existing fields instead of adding new ones.

Format N1

DCI Format N1 is for all NPDSCH (user data and SIBs) except NPDSCH carrying Paging and to trigger PRACH(non-contention based).  Each of the field in DCI format N1 is defined as follows.

< NPDCCH order = 0,  N1 CRC not masked with RA-RNTI >

This is to assign resources for normal NPDSCH

 

Field

# of Bits

Description

Flag for format N0/format N1 differentiation

1

0 - N0, 1 - N1

NPDCCH order indicator

1

 

Scheduling delay

3

See 36.213 Table 16.4.1-1

Resource assignment

3

See 36.213 Table 16.4.1.3-1

Modulation and coding scheme

4

See 36.213 16.4.1.5

Repetition number

4

See 36.213 Table 16.4.1.3-2

New data indicator

1

 

HARQ-ACK resource

4

See 36.213 Table 16.4.2-1,  

      36.213 Table 16.4.2-2

DCI subframe repetition number

2

 

Total Number of Bits

23

 

 

< NPDCCH order = 0,  N1 CRC masked with RA-RNTI >

This is to assign resources for NPDSCH for RAR(Random Access Response)

 

Field

# of Bits

Description

Flag for format N0/format N1 differentiation

1

0 - N0, 1 - N1

NPDCCH order indicator

1

 

Scheduling delay

3

 

Resource assignment

3

 

Modulation and coding scheme

4

 

Repetition number

4

 

Reserved

1

 

Reserved

4

 

DCI subframe repetition number

2

 

Total Number of Bits

23

 

 

The two Reserved rows are the New data indicator and the HARQ-ACK resource fields. 36.212 clause 6.4.3.2 reserves both when the CRC is scrambled by RA-RNTI, because a random access response has no HARQ feedback.

< NPDCCH order = 1 and CRC masked with C-RNTI>

This is to trigger PRACH (in Non-contention based RACH)

 

Field

# of Bits

Description

Flag for format N0/format N1 differentiation

1

0 - N0, 1 - N1

NPDCCH order indicator

1

 

Starting number of NPRACH repetitions

2

 

Subcarrier indication of NPRACH

6

 

All the remaining fields

13

1

Total Number of Bits

23

 

 

The NPDCCH order has gained fields since Release 13. 36.212 v19.3.0 adds a 1-bit Preamble format indicator when NPRACH format 2 is configured and supported, and then the Subcarrier indication of NPRACH grows from 6 to 8 bits. It also adds a 4-bit Carrier indication of NPRACH for a UE that supports multi-carrier NPRACH. All the remaining bits are still set to one, so the 13 in the table above shrinks when these fields are present.

The scheduling layout gains optional fields too. HARQ process number, Number of scheduled TB for Unicast and Resource reservation work as in N0. Number of scheduled TB for SC-MTCH is 3 bits and is used with G-RNTI. An MCS value of '1111' indicates 16QAM when npdsch-16QAM-Config is configured, and a HARQ-ACK resource value of 15 can switch HARQ feedback off when downlinkHARQ-FeedbackDisabledDCI-NB is configured.

  • One format, three jobs : normal NPDSCH scheduling, RAR scheduling and the NPDCCH order.
  • NPDCCH order indicator = 1 means PDCCH order : only with C-RNTI, and all unused bits are set to one.
  • RA-RNTI reserves 5 bits : no new data indicator and no HARQ-ACK resource for a RAR.

Format N2

Paging and direct indication are sent to every UE that is listening, not to one UE. So N2 has its CRC scrambled by P-RNTI, and its first bit decides which of the two jobs the rest of the DCI does.

DCI format N2 is used for for paging and direct indication and each of the field in this format is as follows.

< Flag = 0 >

 

Field

# of Bits

Description

Flag for paging/direct indication differentiation

1

0 - Direct Indication, 1 - Paging

Direct Indication information

8

 

Reserved information bits (Padding)

 

 

Total Number of Bits

15

 

 

< Flag = 1 >

 

Field

# of Bits

Description

Flag for paging/direct indication differentiation

1

0 - Direct Indication, 1 - Paging

Resource assignment

3

 

Modulation and coding scheme

4

 

Repetition number

4

 

DCI subframe repetition number

3

 

Total Number of Bits

15

 

 

The DCI subframe repetition number is 3 bits here but 2 bits in N0 and N1. The reason is in 36.213 Table 16.6-2 further down. The Type1 common search space where paging is sent has up to eight repetition levels, while the UE-specific search space has only four.

36.212 v19.3.0 clause 6.4.3.3 adds one more use. When the CRC is scrambled by SC-RNTI, N2 carries a 1-bit SC-MCCH change notification, and then uses the same layout as Flag = 1 to schedule SC-MCCH.

  • Flag = 0 is direct indication : 8 bits of system information update and other indications, then padding.
  • Flag = 1 is paging : the layout schedules the NPDSCH that carries the paging message.
  • Both layouts are 15 bits : padding makes the direct indication layout the same size as the paging one.

Tables and Figures for Parameter Details

Every DCI field above is only an index. The UE turns each one into a real value with a table in 36.213 clause 16. This section goes through those tables in order, uplink first for Format N0 and downlink next for Format N1, so the path from a field to a resource can be followed step by step.

The table pictures are from 36.213 Release 13. Where 36.213 v19.4.0 has changed a table, the text next to it says so.

Subcarrier Indication for NPUSCH - Table 16.5.1.1-1

The following table illustrates the mechanism for configuring uplink resources in NB-IoT by linking the subcarrier indication field (I_sc) to the physical structure of a Resource Unit (RU). The top table (36.213) defines how the I_sc value from the control information maps to a specific number of allocated subcarriers, distinguishing between single-tone transmissions and multi-tone groups of 3, 6, or 12 subcarriers.

< 36.213 Table 16.5.1.1-1: Allocated subcarriers for NPUSCH with subcarrier spacing = 15 Khz >

36.213 Table 16.5.1.1-1 allocated subcarriers for NPUSCH with 15 kHz subcarrier spacing

Following two table shows how the subcarrier indication field in DCI format N0 specifies the specific subcarriers to allocate UL resource.

It details the dimensions of an RU for these different configurations, showing the inverse relationship between bandwidth and time; as the number of allocated subcarriers increases, the number of slots required to form one RU decreases. The arrows connecting the two tables visually demonstrate that selecting a specific I_sc value not only assigns frequency resources but also automatically dictates the time duration (number of slots) for the transmission, keeping the total resource size at 24 subcarrier-slots across the three multi-tone modes, while a single-tone RU holds 16 subcarrier-slots.

Subcarrier indication ranges of 36.213 Table 16.5.1.1-1 linked to the NPUSCH resource unit rows of 36.211 Table 10.1.2.3-1

Each Isc range selects one row of 36.211 Table 10.1.2.3-1. That row fixes the slots per RU: 16 for one tone, 8 for 3 tones, 4 for 6 tones and 2 for 12 tones.

NOTE : The "Grid" Changes

  • Standard LTE/NB-IoT (15 kHz): The 180 kHz block is divided into 12 subcarriers (12 × 15 kHz = 180 kHz).
  • 3.75 kHz Mode: The same 180 kHz block is divided into 48 subcarriers (48 × 3.75 kHz = 180 kHz).

Resource Assignment for NPUSCH - Table 16.5.1.1-2

The following table defines the specific mapping between the resource assignment index (I) found in the DCI Uplink Grant and the actual number of resource units (NRU) allocated for the transmission. This table acts as a lookup mechanism that allows the network to communicate the duration of the uplink transmission using a compact 3-bit value.

The table demonstrates that for lower index values (0 through 5), the mapping is largely linear, where the index corresponds directly to counts of 1, 2, 3, 4, 5, and 6 resource units respectively. However, for the highest two indices, the allocation jumps non-linearly, with index 6 assigning 8 resource units and index 7 assigning 10 resource units, allowing the scheduler to grant longer transmission periods without requiring additional bits in the control message.

< 36.213 Table 16.5.1.1-2: Number of resource units (N_RU) for NPUSCH. >  

36.213 Table 16.5.1.1-2 number of resource units for NPUSCH


Scheduling Delay for NPUSCH - Table 16.5.1-1

An uplink grant cannot be used at once. The UE first has to finish receiving NPDCCH and switch its half-duplex radio from receive to transmit, so the 2-bit scheduling delay field in N0 sets the size of that gap.

The following table defines the scheduling delay (K0) for DCI Format N0.

This table dictates the time gap between when the UE receives the Uplink Grant (DCI Format N0) and when it must actually start transmitting the data (NPUSCH). This gap gives the UE time to process the grant and prepare the transmission.

< 36.213 Table 16.5.1-1: k0 for DCI format N0 >  

36.213 Table 16.5.1-1 k0 for DCI format N0

Key Parameters

  • K0: This is the 2-bit "Scheduling Delay" field found inside the DCI Format N0.
  • Delay (ms): This is the resulting delay in milliseconds (subframes).

How it Works

When the network sends a DCI, it sets the K0 field to one of the four values (0–3). The UE reads this value and applies the corresponding delay:

  • K0 = 0: Wait 8 ms before transmitting.
  • K0 = 1: Wait 16 ms.
  • K0 = 2: Wait 32 ms.
  • K0 = 3: Wait 64 ms.

36.213 v19.4.0 clause 16.5.1 states where the delay is counted from. NPUSCH starts in the first NB-IoT UL slot after the end of subframe n + k0, where n is the last subframe of the NPDCCH. A non-terrestrial network adds Koffset to this. TDD NB-IoT on a terrestrial network uses Table 16.5.1-1A instead, with delays of 0, 8, 16 and 32.


MCS for Single-Tone NPUSCH - Table 16.5.1.2-1

The following table is the Modulation and TBS (Transport Block Size) index table specifically for Single-Tone NPUSCH transmissions (indicated by Isc = 0). This table serves as a lookup mechanism that the UE uses to interpret the "MCS" field received in the Uplink Grant (DCI Format N0).

When the network schedules a device using only a single subcarrier (3.75 kHz or 15 kHz), it provides an MCS Index (Imcs) ranging from 0 to 10. The table maps this index to a Modulation Order (Qm), which determines the robustness of the signal. Notably, for the lowest MCS indices (0 and 1), the modulation order is 1, indicating the use of BPSK (specifically π/2-BPSK in NB-IoT). This is the most robust setting available, designed to maintain connectivity in extreme coverage conditions. For MCS indices of 2 and above, the modulation order increases to 2, switching the scheme to QPSK (specifically π/2-QPSK) to allow for higher data throughput.

Simultaneously, the table maps the input MCS index to a TBS Index (Itbs). It is important to note that this column does not provide the actual number of bits directly. Instead, this Itbs value acts as a pointer. The UE takes this resulting Itbs and combines it with the number of assigned resource units (NRU) to look up the final transport block size (in bits) in a separate standard table (Table 16.5.1.2-2).

< 36.213 Table 16.5.1.2-1: Modulation and TBS index table for NPUSCH with NscRU = 1 >

36.213 Table 16.5.1.2-1 modulation and TBS index table for single-tone NPUSCH

This table is only for single-tone NPUSCH. For multi-tone NPUSCH, 36.213 clause 16.5.1.2 sets ITBS = IMCS directly with QPSK. When 16QAM is configured and indicated, ITBS = IMCS' + 14, where IMCS' is the 16QAM MCS carried in the Repetition number field.


TBS for NPUSCH - Table 16.5.1.2-2

After the MCS table gives ITBS and the resource assignment gives IRU, one question is left: how many bits fit in the grant. The TBS table answers it.

The following table is the final lookup table used to determine the Transport Block Size (TBS) for an NPUSCH transmission.

This table represents the culmination of the scheduling process. Once the User Equipment (UE) has determined the duration of the transmission (from the Resource Assignment) and the efficiency of the coding (from the MCS), it uses this table to find the exact number of bits it can transmit in that specific slot.

< 36.213 Table 16.5.1.2-2: Transport block size (TBS) table for NPUSCH >

36.213 Table 16.5.1.2-2 transport block size table for NPUSCH

The Axes of the Table

The table is organized as a matrix defined by two key inputs:

  1. Rows (Itbs): This is the TBS Index (0 to 12). The UE derives this value from the MCS field in the DCI using the previous table you viewed (Table 16.5.1.2-1). A higher Itbs indicates a higher modulation order or a less redundant coding scheme, allowing for more data density.
  2. Columns (IRU): This is the Resource Unit Index (0 to 7). This value comes directly from the "Resource Assignment" field in the DCI. It corresponds to the duration of the transmission (e.g., column 0 represents 1 RU, column 7 represents 10 RUs).

How to Read the Data

To find the payload size, the UE finds the intersection of its assigned Itbs and IRU.

  • Vertical Trend: As you move down a column (increasing Itbs), the block size increases because the coding rate becomes more aggressive (fitting more bits into the same time duration).
  • Horizontal Trend: As you move right across a row (increasing IRU), the block size increases because the transmission duration is longer, providing more physical symbols to carry data.

Limitations

You will notice empty cells in the bottom-right corner of the table (e.g., Itbs 9-12 combined with IRU 6-7). These empty spaces indicate invalid configurations. The standard does not support using the highest coding rates combined with the longest transmission durations, likely to prevent excessive packet error rates or processing complexity.

The picture is the Release 13 table, where 1000 bits was the ceiling, and that ceiling explains the empty cells. 36.306 v19.3.0 Table 4.1C-2 still gives UE category NB1 a maximum uplink TBS of 1000 bits. In 36.213 v19.4.0 the table runs from ITBS 0 to 21 and fills most of those cells up to 2536 bits, which is the category NB2 maximum.


Repetition Number for NPUSCH - Table 16.5.1.1-3

NB-IoT reaches deep coverage by sending the same transport block many times. The Repetition number field in N0 decides how many times, and the table below turns its 3 bits into a count.

The following table defines the Repetition Number (Nrep) for NPUSCH transmissions.

This table explains how the 3-bit "Repetition Number" field (Irep) inside the Uplink Grant (DCI Format N0) maps to the actual number of times the UE must repeat the transmission.

< 36.213 Table 16.5.1.1-3: Number of repetitions (N_Rep) for NPUSCH >

36.213 Table 16.5.1.1-3 number of repetitions for NPUSCH

Key Concepts

  • Exponential Growth: The mapping follows a power-of-two scale (Nrep = 2Irep). This allows the network to request massive coverage extension using only a small 3-bit field.
  • Coverage Enhancement: Repetition is the core feature of NB-IoT that allows it to work in basements or deep underground. By repeating the exact same signal multiple times (up to 128 times in this table), the base station can accumulate the energy to decode signals that would otherwise be lost in noise.

How to Interpret the Values

  • Irep = 0: This means no repetition. The UE transmits the packet exactly once.
  • Irep = 7: The UE transmits the same packet 128 times consecutively.

Impact on Transmission Time

This parameter drastically affects the total time the UE is busy.

  •   If your resource assignment is 2 RUs (2 ms) and Nrep = 1, the transmission takes 2 ms.
  •   If your resource assignment is 2 RUs (2 ms) but Nrep = 128 (128 repetitions), the transmission takes: 256 ms (128 × 2 ms).

Scheduling Delay for NPDSCH - Table 16.4.1-1

The downlink has the same problem as the uplink. The UE has to finish decoding NPDCCH before NPDSCH starts, and a UE in deep coverage needs NPDCCH repeated many times. The 3-bit scheduling delay field in N1 sets this gap, and the table depends on how deep the coverage is.

The following table defines the scheduling delay (k0) specifically for Downlink Data (NPDSCH) transmissions.

This table dictates how long the UE must wait between receiving the Downlink Grant (DCI Format N1) and the start of the actual Data transmission. Unlike the Uplink table you saw earlier, this table has two different columns for delays, depending on the coverage level (determined by Rmax).

< 36.213 Table 16.4.1-1: k0 for DCI format N1 >

36.213 Table 16.4.1-1 k0 for DCI format N1 with columns for Rmax below and at least 128

Key Parameters

  • k0: The 3-bit "Scheduling Delay" field inside DCI Format N1.
  • Rmax: The maximum number of repetitions configured for the NPDCCH (Control Channel) search space. This acts as a proxy for the coverage condition: (NOTE : Rmax is configured by an RRC parameter (e.g, npdcch-NumRepetitions-r13)
    • Rmax < 128: Normal coverage (standard delays).
    • Rmax ≥ 128: Extreme coverage (extended delays).

How to Read the Table

When the UE receives a DCI, it checks the k0 field value (0–7) and its current Rmax configuration to find the actual delay.

  1. Normal Coverage (Rmax < 128):
    • Delays are relatively short to minimize latency.
    • Example: k0 = 0. (Transmission starts in the first NB-IoT DL subframe from subframe n+5, where n is the last NPDCCH subframe).
    • Example: k0 = 7 (a delay of 128 subframes).
  2. Extreme Coverage (Rmax ≥ 128):
    •   Delays are significantly scaled up. This huge gap is necessary because devices in deep coverage (like basements) often need extra time to switch modes or process weak signals.
    • Example: k0 = 7 (1024 subframes, over 1 second!).

Summary

This mechanism allows the base station to dynamically adjust the timeline. For a device with a good signal, it can schedule data within a few subframes (Rmax < 128). For a device in a weak-signal area (high Rmax), it can push the transmission far into the future (up to about 1 second) to ensure the device is ready and resources are clear.

36.213 v19.4.0 clause 16.4.1 gives the exact count. NPDSCH starts in NB-IoT DL subframe n0, which comes k0 NB-IoT DL subframes after subframe n+5, where n is the last NPDCCH subframe. So even k0 = 0 leaves a gap of 4 subframes after the NPDCCH. DCI format N2 always uses k0 = 0, and a DCI with CRC scrambled by G-RNTI uses Table 16.4.1-1a instead.


HARQ-ACK Resource at 3.75 kHz - Table 16.4.2-1

The following table defines how the ACK/NACK resource field (0–15) maps to (1) the exact single-tone subcarrier index used for HARQ-ACK on NPUSCH and (2) the corresponding scheduling delay k0.

From the table, resource field 0–7 uses k0 = 13, and resource field 8–15 uses k0 = 21. The ACK/NACK subcarrier cycles through 38–45 in both ranges.

< 36.213 Table 16.4.2-1: ACK/NACK subcarrier and k0 for NPUSCH with Subcarrier Spacing= 3.75KHz >

36.213 Table 16.4.2-1 ACK/NACK subcarrier and k0 for NPUSCH with 3.75 kHz subcarrier spacing


HARQ-ACK Resource at 15 kHz - Table 16.4.2-2

The following table defines the specific resources (frequency and time) a UE must use to send an ACK/NACK response (NPUSCH Format 2) when the system uses 15 kHz subcarrier spacing.

This table maps the 4-bit "HARQ-ACK resource" field found in the Downlink Grant (DCI Format N1) to two critical parameters:

< 36.213 Table 16.4.2-2: ACK/NACK subcarrier and k0 for NPUSCH with Subcarrier Spacing= 15KHz >

36.213 Table 16.4.2-2 ACK/NACK subcarrier and k0 for NPUSCH with 15 kHz subcarrier spacing

ACK/NACK Subcarrier (Frequency)

This column tells the UE which specific subcarrier (Index 0, 1, 2, or 3) to use for the feedback transmission.

  •   Even though the total bandwidth has 12 subcarriers (in 15 kHz mode), the ACK/NACK is typically assigned to specific subsets to separate it from data traffic.

k0 (Timing Delay)

This column defines the scheduling delay in milliseconds (subframes). The UE must wait k0 ms after the end of the Downlink Data (NPDSCH) transmission before sending the ACK/NACK.

How the Table is Organized

The table groups the 16 possible values (0–15) into four distinct timing “buckets” to help the network manage congestion:

  • Values 0–3: Fast response (k0 = 13 ms).
  • Values 4–7: Medium response (k0 = 15 ms).
  • Values 8–11: Slow response (k0 = 17 ms).
  • Values 12–15: Slowest response (k0 = 18 ms).

Why is this useful?

If the Base Station sends data to 4 different UEs in the same subframe, it can assign them different "ACK/NACK resource field" values. This forces the UEs to reply at different times (e.g., one at 13 ms, another at 15 ms) or on different subcarriers, preventing their signals from colliding.


Resource Assignment for NPDSCH - Table 16.4.1.3-1

The downlink resource assignment works differently from the uplink one. An NPDSCH always fills the whole PRB, so the field only has to say how many subframes the transport block spans.

The following table defines the Number of Subframes (Nsf) for an NPDSCH (Downlink Data) transmission.

This table serves as the downlink equivalent to the Resource Unit table used in the uplink. It maps the 3-bit "Resource Assignment" field (Isf) found in the Downlink Grant (DCI Format N1) to the specific duration of the data transmission.

< 36.213 Table 16.4.1.3-1: Number of subframes (N_SF) for NPDSCH >

36.213 Table 16.4.1.3-1 number of subframes for NPDSCH

Key Difference from Uplink

While the Uplink (NPUSCH) defines duration in "Resource Units" (which can vary in bandwidth and slot count), the Downlink (NPDSCH) typically occupies the entire bandwidth of the resource block. Therefore, the resource allocation is defined purely in terms of Time (Subframes).

How the Mapping Works

The table uses a 3-bit input (0–7) to define transmission lengths ranging from 1 ms to 10 ms:

  • Linear Range (Indices 0–5): For the majority of the values, the mapping is linear. The index number plus one equals the duration in subframes. For example, Index 0 is 1 subframe, and Index 5 is 6 subframes.
  • Extended Range (Indices 6–7): To support larger data payloads without increasing the size of the control bits, the mapping jumps non-linearly at the end. Index 6 assigns 8 subframes, and Index 7 assigns 10 subframes.

Example

If the network sends a DCI with the resource assignment field set to 011 (Decimal 3), the UE knows that the downlink data packet will last exactly 4 milliseconds (4 Subframes).


Repetition Number for NPDSCH - Table 16.4.1.3-2

NPDSCH repetition uses a wider field than NPUSCH repetition. The Repetition number field in N1 is 4 bits, and the table below turns it into a count of up to 2048 repetitions.

The following table defines the Repetition Number (Nrep) specifically for NPDSCH (Downlink Data) transmissions.

This table explains how the 4-bit "Repetition Number" field (Irep) found in DCI Format N1 maps to the actual number of times the base station will repeat the downlink packet.

< 36.213 Table 16.4.1.3-2: Number of repetitions (N_Rep) for NPDSCH >

36.213 Table 16.4.1.3-2 number of repetitions for NPDSCH

Key Differences from the Uplink Table

You may recall the Uplink Repetition table you viewed earlier (Table 16.5.1.1-3). There are two major differences here:

  1. Larger Field Size: The Downlink DCI uses 4 bits (indices 0–15) instead of the Uplink's 3 bits, allowing for more granular control.
  2. Massive Scale: While the Uplink table you saw maxed out at 128 repetitions, this Downlink table goes significantly higher, allowing up to 2048 repetitions.

How to Interpret the Values

  • Normal Coverage (Indices 0–3): Standard repetitions (Nrep = 1, 2, 4, 8). Used for devices with good signal quality to handle minor fading.
  • Deep Coverage (Indices 12–15): Extreme repetitions (Nrep = 256, 512, 1024, 2048).
    • Example: If Irep = 15, the base station transmits the same 1 ms subframe 2048 times.
    • Impact: This single packet transmission would take over 2 seconds to complete (2048 ms ≈ 2.048 s).

Why 2048 Repetitions?

This extreme level of repetition is what enables NB-IoT to achieve the 20 dB coverage enhancement (MCL 164 dB) compared to legacy LTE. It allows the signal to be decoded even by devices buried deep underground or inside shielded infrastructure, provided they have the battery life to listen for that long.


MCS and TBS for NPDSCH - Clause 16.4.1.5

The MCS field in N1 is read differently from the one in N0. For NPDSCH there is no separate single-tone table, and SIB1-NB takes its TBS from somewhere else, so clause 16.4.1.5 has two cases.

< 36.213 - 16.4.1.5 Modulation order and transport block size determination >

I_MCS and I_TBS mapping gets different depending on whether the NPDSCH carries SystemInformationBlockType1-NB or User Data as follows.

  • Case 1 : When the NPDSCH carries SystemInformationBlockType1-NB
  • Case 2 : When the NPDSCH carries user data
    • I_TBS = I_MCS

36.213 v19.4.0 adds a third case for 16QAM. When npdsch-16QAM-Config is configured and the MCS field is '1111', the modulation order is 4, and ITBS comes from the 16QAM MCS IMCS' in the Repetition number field. ITBS = IMCS' + 11 when operationModeInfo is in-band, which is '00' or '01', and ITBS = IMCS' + 14 otherwise.

NPDCCH Search Space

In order to detect whether there is any data (NPDSCH) sent for it or detect any UL Grant for NPUSCH, it should monitor (try to decode) various regions within downlink subframes. There is no explicit regions notified by the network about exactly which regions UE need to monitor. UE needs to monitor all the possible regions that are allowed for NPDCCH and decode the information in try-and-error based. This kind of process is called 'blind decoding'. However, UE does not try to decode every possible combinations of resource elements within a subframe. There are a certain set of predefined regions in which a PDCCH can be allocated. UE monitor only those predefined regions. These predefined set of regions are called NPDCCH Search Space.  

There are a few types of NPDCCH space as shown below (36.213 - 16.6 Narrowband physical downlink control channel related procedures).

 

Type

Sub Type

Description

Common

Type1-NPDCCH common search space

NPDCCH for Paging Message

Type2-NPDCCH common search space

NPDCCH for RAR, Msg3 retransmission and Msg4

Type1A-NPDCCH common search space

NPDCCH for SC-MCCH, the SC-PTM control channel

Type2A-NPDCCH common search space

NPDCCH for SC-MTCH, the SC-PTM traffic channel

UE Specific

NPDCCH UE-specific search space

NPDCCH for unicast scheduling, with CRC scrambled by C-RNTI, SPS C-RNTI or PUR-RNTI

 

36.213 v19.4.0 clause 16.6 lists five search spaces, and the table above now includes the two that Release 13 did not have. Type1A and Type2A carry SC-PTM, the single-cell multicast of NB-IoT. Each search space takes its Rmax from its own RRC parameter and its candidates from its own table.

  • UE-specific search space : npdcch-NumRepetitions, and the Table 16.6-1 candidates.
  • Type1 and Type1A : npdcch-NumRepetitionPaging and npdcch-NumRepetitions-SC-MCCH, and the Table 16.6-2 candidates.
  • Type2 and Type2A : npdcch-NumRepetitions-RA and npdcch-NumRepetitions-SC-MTCH, and the Table 16.6-3 candidates.

The same clause also limits what the UE has to monitor at once. A UE is not required to monitor the UE-specific search space together with the Type1 or the Type2 common search space, or Type1 together with Type2. Until the UE-specific search space is configured, the UE monitors it with the same configuration as the search space that scheduled Msg4.

NPDCCH Location - NPDCCH Subframes

A search space says which NCCEs the UE tries. It does not yet say in which subframes. NB-IoT repeats NPDCCH over many subframes, so the UE also needs to know where each repetition block may start, and 36.213 clause 16.6 derives that from a few RRC parameters.

The location of NPDCCH (the subframes transmitting NPDCCH) is determined as follows (described in 36.213-16.6 Narrowband physical downlink control channel related procedures).

NPDCCH starting subframe formula with its RRC parameters and the NPDCCH candidate subframes

The search space starts in subframe k0, where (10nf + ⌊ns/2⌋) mod T = αoffset·T and T = Rmax·G. A candidate starts b = u·R NB-IoT DL subframes later.

  • T is the search space period : Rmax times G, where G is npdcch-StartSF-USS or npdcch-StartSF-CSS-RA, and T is at least 4.
  • αoffset shifts the start inside the period : it comes from npdcch-Offset-USS or npdcch-Offset-RA.
  • R is chosen per DCI : the DCI subframe repetition number field points to one R column of Table 16.6-1, 16.6-2 or 16.6-3.
  • b counts NB-IoT DL subframes : subframes that carry SI messages are skipped in the count.

NOTE : In case of Type1-NPDCCH common search space, k = k0 and is determined from locations of NB-IoT paging opportunity subframes

< 36.213-Table 16.6-1: NPDCCH UE- specific search space candidates >

36.213 Table 16.6-1 NPDCCH UE-specific search space candidates

< 36.213-Table 16.6-2: Type 1- NPDCCH common search space candidates >

36.213 Table 16.6-2 Type 1 NPDCCH common search space candidates

< 36.213-Table 16.6-3: Type 2- NPDCCH common search space candidates >

36.213 Table 16.6-3 Type 2 NPDCCH common search space candidates

Read the three tables above side by side and a pattern shows. Only the UE-specific search space with a small Rmax has candidates at aggregation level L' = 1, which is NPDCCH format 0 in one NCCE. Every other case uses L' = 2, which is both NCCEs.

  • Table 16.6-1 has four R values per Rmax : which is why N0 and N1 need a 2-bit DCI subframe repetition number.
  • Table 16.6-2 has up to eight R values : which is why N2 needs 3 bits.
  • Table 16.6-3 has four R values : the same 2 bits cover the random access search space.
  • L' = 1 needs Rmax of 1 or 2 : the UE then tries NCCE 0 and NCCE 1 as two separate candidates.

Reference

[1] 3GPP TS 36.211 v19.3.0 - clause 10.2.5 for NPDCCH formats and resource mapping

[2] 3GPP TS 36.212 v19.3.0 - clause 6.4.3 for DCI formats N0, N1 and N2

[3] 3GPP TS 36.213 v19.4.0 - clause 16.4 for NPDSCH and ACK/NACK, clause 16.5 for NPUSCH, clause 16.6 for NPDCCH search spaces

[4] 3GPP TS 36.306 v19.3.0 - clause 4.1C for the NB-IoT UE categories