Rate matching — The circular buffer that sets the actual code rate
Bits into a codeword
Where it sits
What it is
Rate matching is where the code rate is actually set. The encoder always produces the same low mother rate; rate matching punctures it up to whatever was scheduled.
Encoded bits go into a circular buffer, and $E$ bits are read out from a starting position chosen by the redundancy version — four positions at roughly 0, 26 %, 50 % and 85 % of the buffer (TS 38.212 Table 5.4.2.1-2).
A retransmission is therefore not a repeat. A different redundancy version reads mostly parity the receiver has never seen, and combining the two gives a lower effective rate than either alone. Limited-buffer rate matching truncates the buffer so a receiver need only store soft bits for an effective rate of 2/3.
Read on
The full treatment is in nr-pdsch — this page is the definition and the map reference; that note is where the subject is actually developed.
Before this concept, the hierarchy says to learn the following — the full chain, in order: