Digital Communications

CRC Attachment

/see-ar-see uh-tach-muhnt/
Appending cyclic-redundancy-check parity bits to a transport block or code block is the first physical-layer channel-coding step in 5G NR and LTE. The parity word, computed by polynomial division over GF(2), lets the receiver detect residual bit errors after forward error correction and decide whether to return an ACK or a NACK for HARQ retransmission. 3GPP TS 38.212 specifies a 24-bit CRC (gCRC24A) for transport blocks above 3824 bits, a 16-bit CRC for smaller blocks, and per-code-block 24-bit gCRC24B words after segmentation, giving an undetected-error probability near 2−24.
Category: Digital Communications
TB CRC length: 16 or 24 bits
Undetected Pe: ≈ 6 × 10−8

How CRC Attachment Protects a Transport Block

A cyclic redundancy check treats the information bits of a block as the coefficients of a binary polynomial b(x). The transmitter divides xL·b(x) by a fixed generator polynomial g(x) of degree L using modulo-2 arithmetic, and the L-bit remainder becomes the CRC parity word that is concatenated to the message. Because the resulting codeword is exactly divisible by g(x), the receiver can recompute the remainder over the decoded bits: a zero remainder means no detectable error, while any non-zero remainder flags a block error. In 5G NR the transport-block CRC is attached before code-block segmentation, and each segment then receives its own 24-bit CRC so the receiver can localize which segment failed.

The strength of a CRC comes from the algebraic properties of g(x). A well-chosen degree-L polynomial detects all single-bit and double-bit errors, all odd numbers of bit errors when g(x) contains the factor (x + 1), every burst error shorter than L bits, and fails to detect a random error pattern only with probability 2−L. For the 24-bit polynomials used on NR transport blocks, that residual miss rate is roughly 6 × 10−8, low enough that an undetected error is far rarer than the target block-error-rate of 10−1 to 10−2 seen before HARQ combining.

CRC attachment is tightly coupled to the decoder. With CRC-aided successive-cancellation list decoding of polar codes, the CRC is computed over the information bits and embedded so the list decoder can rank its candidate paths and keep only the one whose CRC checks. This dual role, error detection plus path selection, is why the uplink control channel and the PBCH in NR distribute CRC bits among the polar information set rather than appending them all at the tail.

CRC Polynomials and Generator Division

Codeword construction:
c(x) = xL·b(x) + [ xL·b(x) mod g(x) ]  (arithmetic over GF(2))

NR transport-block CRC (L = 24), gCRC24A:
g(x) = x24 + x23 + x18 + x17 + x14 + x11 + x10 + x7 + x6 + x5 + x4 + x3 + x + 1

Undetected-error probability (random codeword):
Pud ≈ 2−L → 2−24 ≈ 6 × 10−8  |  2−16 ≈ 1.5 × 10−5

Where b(x) = information polynomial, L = CRC degree, g(x) = generator polynomial. A guaranteed burst-error detection length equals L, and all odd-weight errors are caught when (x + 1) divides g(x).

3GPP CRC Variants by Channel

CRC nameLength (bits)Applied toChannel / useUndetected Pe
gCRC24A24Transport block > 3824 bitsPDSCH / PUSCH (LDPC)≈ 6 × 10−8
gCRC24B24Each segmented code blockPDSCH / PUSCH per-CB≈ 6 × 10−8
gCRC24C24DCI payload (RNTI-scrambled)PDCCH (polar)≈ 6 × 10−8
gCRC1616Transport block ≤ 3824 bitsSmall PDSCH / PUSCH≈ 1.5 × 10−5
gCRC1111UCI 12 to 19 bitsPUCCH / PUSCH (polar)≈ 4.9 × 10−4
gCRC66UCI ≤ 11 bitsSmall PUCCH (polar)≈ 1.6 × 10−2
Common Questions

Frequently Asked Questions

Which CRC polynomials does 3GPP define for transport blocks versus code blocks?

TS 38.212 defines six generators. A transport block above 3824 bits gets a 24-bit gCRC24A, while smaller blocks use gCRC16. After segmentation each code block adds a 24-bit gCRC24B. PDCCH DCI uses gCRC24C scrambled with the RNTI, PUCCH/PUSCH UCI of 12 to 19 bits uses gCRC11, and UCI of 12 bits or fewer uses gCRC6. Longer CRCs cut the miss rate but cost more overhead.

How does the receiver use the CRC after polar or LDPC decoding?

The decoder produces candidate bits; the receiver recomputes the CRC and compares it to the received parity. A match returns a HARQ ACK, a mismatch returns a NACK and triggers retransmission of a new redundancy version. In CRC-aided polar list decoding the CRC also prunes failing paths, improving block-error-rate by roughly 0.5 to 1 dB. A 24-bit CRC misses an error with probability near 2−24.

How much overhead does CRC attachment add to a 5G NR transport block?

A 24-bit CRC on an 8448-bit information block adds about 0.28 percent. With segmentation each code block carries an extra 24-bit gCRC24B, so a block split into four segments spends 24 + 4 × 24 = 120 CRC bits. Small payloads pay much more: a 32-bit UCI under gCRC11 spends roughly 26 percent on CRC, which is why shorter gCRC6 and gCRC11 polynomials protect small control fields.

Digital Link Hardware

Build a Cleaner Physical Layer

Lower-noise front ends and stable converters keep raw bit-error-rates low so CRC and HARQ rarely have to recover. Talk to RF Essentials about millimeter-wave amplifiers and frequency converters for your link.

Get in Touch