Polar coding — The code used for control, not data
Bits into a codeword
Where it sits
What it is
What it is. The channel code used for control information — DCI on PDCCH, the PBCH payload, and uplink control on PUCCH — while data uses LDPC. TS 38.212 clause 5.3.1, invoked for DCI by clause 7.3.3.
Why control does not use LDPC. The two codes are good at different lengths.
LDPC is an asymptotic code. Its performance comes from many short cycles averaging out over a long block; at a few hundred bits there is not enough block for that to happen. A DCI payload is about 44 bits (PDSCH §8.1) — three orders of magnitude shorter than the 770 000-bit transport block in PDSCH §9.2.
Polar codes are exact at any length. Arıkan's construction splits a channel into synthetic sub-channels of graded reliability and puts information on the good ones, frozen zeros on the bad. The construction is provably capacity-achieving and, unlike LDPC, behaves well when the block is small.
And control has a different job. A DCI must be found before it can be decoded — a device blind-
decodes many candidates (nr-pdcch.md, still to be written). List decoding of a polar
code with a CRC check is what makes "is this candidate mine?" a reliable question.
The RNTI is hidden in the CRC, and the mechanism is worth seeing. TS 38.212 clause 7.3.2 attaches a 24-bit CRC using $g_{\text{CRC24C}}$, then scrambles the last 16 parity bits with the RNTI:
So the CRC does three jobs at once: it detects errors, it identifies the recipient, and — because a wrong RNTI produces a random syndrome — it tells a device that a candidate it blind-decoded was never meant for it. That is why NR needs no address field on the control channel, and it is the counterpart of the PDSCH scrambling argument in PDSCH §6.1.
Read on
This concept was first written up in ref-modulation, which reads the whole group as one argument.
Before this concept, the hierarchy says to learn the following — the full chain, in order: