Signal Processing

CRC-Aided SC List

/C-R-C ay-did S-C list/
Often abbreviated CA-SCL, this is the practical decoding algorithm that made polar codes competitive enough to be standardized for 5G NR control channels. A successive-cancellation list decoder retains the L most likely candidate codeword paths instead of committing to a single hard decision, and a short cyclic redundancy check concatenated with the message is then used to pick the one surviving path whose CRC verifies. Because the CRC bits also raise the minimum distance among the surviving candidates, CA-SCL with a list size of L = 8 typically reduces block error rate by one to two orders of magnitude over plain SCL at the same signal-to-noise ratio, closing most of the gap to maximum-likelihood forward error correction.
Category: Signal Processing
Typical list size L: 8 (up to 32)
5G NR CRC: 11 or 24 bits

How CRC Concatenation Rescues List Decoding

Arikan's original successive-cancellation (SC) decoder for polar codes is elegant and low-complexity but performs poorly at finite block lengths because a single early bit error propagates through the rest of the decoding tree. List decoding fixes the propagation problem by exploring multiple hypotheses: at each information bit the decoder forks both the 0 and 1 hypotheses, keeps the L paths with the best accumulated metric, and prunes the rest. The flaw is in the final step. After SCL produces its L survivors, the path with the best metric is not always the transmitted codeword, even when a correct candidate sits somewhere in the list. Researchers observed that the true codeword was frequently present but simply not selected.

CRC-aided SC list decoding solves the selection problem by concatenating a short cyclic redundancy check with the message before polar encoding. The CRC turns into an error-detecting outer code. After SCL finishes, the decoder recomputes the CRC on each of the L candidates and immediately discards any path that fails, then chooses the best-metric path among those that pass. As long as the correct path survives in the list and no incorrect path happens to satisfy the CRC, the decoder selects the right codeword. The probability that a wrong path falsely passes is approximately 2−r per candidate for an r-bit CRC, so even a modest CRC makes false selection rare.

The second, less obvious benefit is distance: the CRC and polar code together behave like a concatenated code whose minimum distance exceeds that of the polar code alone. This is why CA-SCL beats not only ordinary SCL but, at practical list sizes, even approaches the maximum-likelihood performance bound of the standalone polar code. The combined gain is what convinced 3GPP to adopt polar codes with CA-SCL for the 5G NR uplink and downlink control channels.

Path Metric and CRC Selection

Log-likelihood path metric (lower is better):
PMl(i) = PMl(i−1) + ln(1 + e−(1−2ûi)·Li)

Hardware approximation:
PM ≈ PMprev + |Li|  if  ûi ≠ ½(1 − sign Li), else unchanged

Final CRC-aided selection:
ŵ = arg minl { PMl(N) : CRC(message bits of path l) = 0 }

False-pass probability of a wrong path:
Pfa ≈ 2−r  per surviving candidate, r = CRC length in bits

Where Li is the channel log-likelihood ratio at bit i, ûi is the trial hard decision, N is the polar block length, and L is the list size. Example: r = 11 bit CRC, L = 8 survivors → Pfa ≈ 8 × 2−11 ≈ 0.004.

Decoder Comparison at Short Block Lengths

DecoderComplexityBLER vs. SC (at 1e−3)Latency5G NR roleNotes
SC (plain)O(N log N)baseline (worst)Low, sequentialNot used directlyError propagation hurts
SCL, L=8O(L·N log N)~1 to 2 dB betterModerateIntermediate stepBest-metric selection fails sometimes
CA-SCL, L=8O(L·N log N)~2.5 to 3.5 dB betterModeratePDCCH, PUCCH, PBCHCRC picks the correct survivor
CA-SCL, L=32O(L·N log N)~0.2 to 0.4 dB over L=8HigherLab / referenceDiminishing returns
LDPC (BP)O(N·iter), paralleln/a (data channel)Low, parallelPDSCH / PUSCH dataBetter for long blocks
Common Questions

Frequently Asked Questions

How does the CRC actually help an SC list decoder choose the right path?

Plain SCL finishes with L survivors and normally outputs the best path-metric candidate, but that path is sometimes wrong even when a correct candidate exists in the list. CA-SCL appends a short CRC (6, 11, 16, or 24 bits in 5G NR) to the message before encoding. After SCL produces its L candidates, the decoder recomputes the CRC on each and discards every failing path, then picks the best-metric path among the CRC-passing ones. As long as the true codeword survives and no wrong path also passes the CRC, selection is correct, which closes most of the gap to maximum-likelihood decoding.

What list size L and CRC length does 5G NR use for polar codes?

3GPP TS 38.212 uses an 11-bit CRC for uplink control (PUCCH/PUSCH UCI) and a 24-bit CRC for the downlink PDCCH and the PBCH. Commercial receivers typically run CA-SCL with L = 8, balancing block error rate against latency and area. Pushing L to 16 or 32 yields only a few tenths of a dB because survival of the correct path, not CRC selection, becomes the limiter. PDCCH also uses distributed CRC interleaving so the decoder can early-terminate paths that violate the partial CRC.

Why can a longer CRC sometimes hurt CA-SCL performance?

Two effects compete. A longer CRC lowers the false-pass probability of a wrong path, roughly 2−r per survivor, so a 24-bit CRC almost never lets a bad path through. But those CRC bits are overhead that steal coding gain: for a fixed transmitted block, more CRC bits leave fewer redundancy bits for the polar code, raising the effective rate. At short blocks the overhead penalty dominates, so a 6 to 11 bit CRC is often optimal; longer CRCs are justified only for larger blocks or very low undetected-error targets.

How does CA-SCL latency and complexity compare to LDPC decoding?

CA-SCL scales as O(L·N log N) and is inherently sequential because successive cancellation decodes bits one at a time along the polar tree, giving higher latency per bit than a fully parallel LDPC belief-propagation decoder. That is why 5G NR uses polar CA-SCL for short control blocks (up to about 1706 payload bits) and LDPC for the high-throughput data channel. For small control payloads, CA-SCL with L = 8 delivers excellent block error rate at low SNR with acceptable latency, while LDPC dominates on the large data blocks where its parallelism wins.

5G & mmWave Front Ends

Build the RF Chain Behind Your Polar Decoder

CA-SCL only sees the bits your front end recovers. RF Essentials supplies the millimeter-wave converters, low-noise amplifiers, and integrated assemblies that deliver clean signal-to-noise to your 5G NR receiver. Talk to our engineering team.

Get in Touch