Why Do We Need Rate Matching in 5G?

Rate matching gets you the exact number of bits after channel encoding that are being transmitted. Let's assume we have some resources allocated for a particular channel and we also know the information bits to be transmitted on these resources. When we say resources we mean time (OFDM symbols), frequency (subcarriers), and space (streams, layers).

A Concrete Example: Repetition

For example, let's assume we have 50 bits to be transmitted over a PRB with QPSK modulation. These 50 bits go through the channel encoder which has a base code rate of 1/3, therefore, the number of bits after channel encoding is 150. The resources we had were single PRB = 12 subcarriers ร— 14 symbols = 168 REs. Each RE carries one modulated symbol, so in total 168 ร— 2 = 336 bits (with QPSK) can be transmitted over the allocated single PRB.

Remember we had only 150 bits, whereas the resources we have can carry 336 bits. One simple way to fill this gap is to repeat the encoded bits until they become 336 bits.

We are rate-matching the encoded bits to the allocated resources, and the code rate is = 50/336 โ‰ˆ 0.1488. Originally we had 50 information bits and we are transmitting 336 bits.

BIT REPETITION (example)
[150 encoded bits] โ†’ repeated โ†’ [336 bits mapped to PRB]
Code rate = 50 / 336 โ‰ˆ 0.1488

A Concrete Example: Puncturing / Shortening

What if we had 150 information bits to be transmitted over the same resources (1 full PRB with QPSK modulation)? In this case, the bits after the channel encoder are 150 ร— 3 = 450 (assuming a 1/3 base code rate), but the resources we have can carry only 336 bits.

One simple way to match this is to drop the 114 extra bits (= 450 โ€“ 336) and transmit only the 336 bits. This is known as puncturing/shortening. In this case, we are rate-matching with code rate 150/336 โ‰ˆ 0.4464.

BIT PUNCTURING (example)
[450 encoded bits] โ†’ drop 114 โ†’ [336 bits transmitted]
Code rate = 150 / 336 โ‰ˆ 0.4464

In the 5G 3GPP specification 3GPP TS 38.212 V15.5.0, Section 5.4, this process is known as bit selection.

Maximum and Minimum Code Rates

Now the question comes: for a given number of information bits, what are the maximum or minimum resources we can have? We are actually asking about the possible maximum and minimum code rates.

We can't have radio resources less than the information bits we are transmitting. From the example above with 150 information bits, the resources can't be less than 150 bits. That means the code rate can't be greater than one (the Shannon capacity theorem).

LimitCode RateValueApplies to
Maximum code rate948/1024โ‰ˆ 0.9258PDSCH/PUSCH
Minimum code rate30/1024โ‰ˆ 0.03PDSCH/PUSCH
Very low code rate< 30/1024โ€”PBCH, PDCCH, PUCCH

For 150 information bits with max code rate: resources as low as 150 ร— (1024/948) โ‰ˆ 162 bits. With minimum code rate: resources as high as 5120 bits โ€” you can repeat the encoded bits as many times as needed.

Rate Matching = Bit Selection + Bit Interleaving

Rate matching actually has two distinct functions:

1. Bit Selection

As described above โ€” this handles the mapping of the encoded bits to exactly the number of bits that fit in the allocated radio resources, using either repetition or puncturing depending on whether you have too few or too many encoded bits.

2. Bit Interleaving

Bit interleaving makes sure that the encoded bits are not in the same sequence when they are being transmitted over the air.

Why is this necessary? Suppose a burst error occurs โ€” a corruption of a large number of consecutive data bits โ€” in the system. Burst errors are comparatively difficult to correct at the receiver by the decoder.

Bit interleaving avoids this problem. It changes the sequence of the transmitted bits so that consecutive encoded bits are spread across non-consecutive positions in the transmitted sequence. This turns a burst error into scattered individual bit errors, which the channel decoder can handle far more effectively.

CONCEPT: BIT INTERLEAVING
Before: [b0, b1, b2, b3, b4, b5, ...] โ†’ burst error corrupts b2,b3,b4
After: [b0, b3, b1, b4, b2, b5, ...] โ†’ same error now scattered โ†’ easier to correct

Summary

Rate matching is a fundamental building block of the 5G NR Physical Layer. Every channel โ€” PDSCH, PUSCH, PDCCH, PBCH, PUCCH โ€” goes through rate matching to ensure the exact number of bits required by the radio resources is produced, and that these bits are interleaved to be robust against burst errors.

The key takeaway: rate matching = bit selection (repetition or puncturing) + bit interleaving, as defined in 3GPP TS 38.212, Section 5.4.

๐Ÿ“ก

Telnovat Editorial Team

Deep technical content on 5G NR and 6G, grounded in 3GPP specifications and real-world engineering experience. Follow on LinkedIn โ†—


Related Articles

5G PHY

Scrambling in 5G โ€” What and Why?

How pseudo-random sequences suppress interference across channels.

Performance

5G NR Data Rate Calculation

Calculate maximum 5G throughput from first principles.

Learn More in the Full 5G PHY Course โ†’