5G NR · PDCCH decoding

PDCCH Blind Detection

The UE is never told where its grant is. So it guesses: it descrambles every candidate in its search space by its RNTI and checks the CRC — a hit means "this DCI is mine". It must do this within strict per-slot budgets on decode attempts and channel estimates. Watch the search run and balance the budget. TS 38.213 §10.1.

0max BD/slot (15k)
CRCRNTI-masked
≤4DCI sizes
38.213§10.1
descramble · CRC check · find the grant
1 No address label

Why decode blindly?

There is no header that says "UE 42, your DCI is here". Instead the DCI's CRC is masked with the RNTI. The UE tries each candidate location and DCI size, unmasks with its own RNTI, and checks the CRC. Pass = the message was for it. This keeps control overhead tiny — but the UE must bound how many attempts it makes.

RNTI-masked CRC

The 24-bit CRC is XORed with the RNTI. Only the intended UE's unmasking yields a valid CRC.

Candidates × sizes

Each search space lists candidates per aggregation level; the UE tries each for every monitored DCI size.

Hard budgets

Per slot the UE can only run so many decodes and estimate so many CCEs — capped by sub-carrier spacing.

2 The search

Blind decoding in action

Each tile is a (candidate, size) attempt. The UE sweeps them, descrambling by C-RNTI and checking the CRC. Most fail; one — if scheduled — passes. Press play.

Press Decode. The UE tries each candidate; a green CRC pass is its DCI. If nothing is scheduled, every attempt fails — and that's normal.
3 Limits

Decode & CCE budgets

Two per-slot ceilings (TS 38.213 Tables 10.1-2/3), both set by sub-carrier spacing: the maximum monitored PDCCH candidates (blind decodes) and the maximum CCEs the UE will channel-estimate. Add candidates and watch both.

Blind decodes
CCE channel estimates
4 Knowledge check

Test yourself