What is Rate Matching?

Hi all.
I am trying to understand Rate Matching with respect to 4G/5G.
Could somebody give a brief idea on what exactly is Rate Matching?

Admin note: this post was updated with image below.

LTE CRS rate matching: When 5G-NR physical downlink shared channel (PDSCH) is using 15 kHz subcarrier spacing, the subcarrier of LTE and 5G-NR are also orthogonal.
To avoid the LTE CRS subcarriers, a 5G-NR user is configured with the LTE CRS frequency information so that the 5G-NR user can calculate the LTE CRS positions as reserved resources, and the 5G-NR PDSCH will rate match around those reserved resources.
By rate.

Thanks @xsdenied07. But this is specific to DSS.
I wanted to understand in the most basic way what is Rate Matching and why we need it.
We need it for even single RAT cases also, like LTE only or NR only.

In very simple words, you rate match the incoming bits to available resources.

You have some resources available for data transmission over the resource grid including all the antennas, time and subcarriers.

Now you also have the encoded bits in you hand which you need to transmit over those available resources after modulation.

You rate match these encoded bits to those available resources either by repeating few of them if they are less, or discarding few of them if they are more.


The rate-matching is to extract the exact set of bits to be transmitted within a given TTI.
The rate-matching for Turbo coded transport channels is defined for each code block: there are three basic steps composing a rate-matching.
Namely, sub-block interleaver, bit collection, and bit selection. Finally, after the rate-matching, each individually processed code block has to be concatenated and transferred to a modulation block.


Rate matching is required around LTE CRS pattern and if 5G subframes collide with those frames.

I am still unclear…
Does puncturing means do not transmit anything in those resources?
And rate matching mean to adjust transport block excluding punctures resources?

Think is it this way:

You have some radio resources (like PRBs, layers, OFDM symbols). You can transmit B1 bits to those resources for some given modulation and other configurations.
Now lets say you have you have a transport block which undergo CRC attachment and encoding (LDPC or Polar or any other). Now after this processing you have B2 bits

B2 bits need to be transmitted where you have resources for B1 bits

case 1: B2 > B1
Means you have less resources campared to bits you have to transmit. So what you will do, you just transmit B1 bits and skip the remaining B1-B2 bits. Knows as puncturing

case 2: B1 > B2
Means you have more resources compared to the bits you need to transmit. What you should do now? repeat some of the bits to fill the remaining resources. Known as repetition.


Thanks for clear cut explanation.
So it it is relevant in case of DSS, where it says, “NR PDSCH is rate matched aroung LTE CRS”?
How do you look at this statement?
Which of the case you explained above is suitabel here?

I explain in general what it is.

Now let’s understand rate-matching LTE CRS

You were given some radio resources, let’s say 10 PRBs and 10 OFDM symbols for PDSCH

Now given that you will be transmitting LTE CRS in some of the REs, you can’t transmit PDSCH there.

So your actual radio resources went down by that many REs.

That means B1 decreased. The number of bits you can transmit decreased.

That means when you are doing rate matching you need to take care that there are LTE CRS coming in between so the number of bits that you can transmit are less.
In right words: the number of bits you are ratematching to went down from B1 to B1-delta.


Simpler explanation for rate matching for LTE in case of 5G DSS is that in symbols & REs where lte-crs are to be transmitted for 4G it means no PDSCH for 5G will be transmitted.

Here’s a good White Paper explaining the 3 types of DSS: Dynamic Spectrum Sharing (DSS) - MediaTek - Mar 2020

Its clear to me now, thank You very much!
So whenever there is punctung of resources, you need to rate match or rate down.

I believe it’s not too complicated to go over the doc.
If you need to understand just rate matching, you simply count the available REs exluding LTE CRS REs, and all other 5G reference signal REs.

1 Like

Rate matching concept exists since day 1 of LTE

It refers to the process of matching the effective code rate to the desired code rate

From MCS and number of RBs, we can obtain TBS (actual size of data block) from tables (LTE case) or formulas (NR case). The number of REs in each RB is fixed in this process.

Effective code rate= (TBS + CRC)/(Mod order × number of REs)

so if the number of REs in the allocated RBs are less than normal assumed in TBS calculation, effective code rate will increase and it will require rate matching ( MCS will lowered)

If this happens for LTE UE on LTE channel, UE will automatically know how many REs are not used in the allocated RBs (same for NR UEs on NR only channel)

For case of NR UE on LTE channel (i.e. DSS case), the network should inform the NR UE about the REs not used because of LTE


So can I say the puncturing is the coversion of redundancy bits or parity bits in to information bits i.e. the code rate will increase

Hi Expert,
What is basic concept of Puncturing (and Rate Matching)?

There are roughly two different context where the term Rate Matching is being used. One is with physical channel coding process and the other with PDSCH Resource Allocation process. The second one is only with 5G (I don’t remember that I see this mechanism in LTE). I think most of the replies in this page is about the RateMatch in channel coding process.
Just in case when you are interested in the RateMatch for 5G PDSCH resource allocation, please refer to my note : 5G | ShareTechnote

1 Like

Thanks for the explanation.
So, if I got this right, I suppose:

  • B1 = Transport Block Size + CRC (24 bits)
  • B2 = Num_Of_Res * Modulation Order

If this holds, I have the following 2 questions:

  1. How can B1 > B2? From the MCS selection process isn’t it supposed that the effective rate B1/B2 < 1?
  2. When B2 > B1, the B2 - B1 bits are the redundancy bits for FEC?
1 Like

B2 can never be less than B1. Never. Otherwise there are 100% chances of loosing the TB at receiver. B1 goes through LDPC encoder and the output is B3. LDPC has a base code rate which is 1/3 or 1/5. So the B3 is roughly ~3B1 or ~5B1.

  • If B3 > B2 then you discard B3-B2 bits
  • If B3 < B2 then B2-B3 bits will be repeated

Hi Experts.

Is there rate matching in UL?