A method for performing circular buffer rate matching for three equally sized bit streams: a systematic bit stream, a parity 1 bit stream and a parity 2 bit stream, the method comprising: prepending the systematic bit stream, the parity 1 bit stream and the parity 2 bit stream with null bits, wherein each of the prepended systematic bit stream, the prepended parity 1 bit stream and the prepended parity 2 bit stream is arranged into a matrix having 32 columns; permuting the prepended systematic bit stream and the prepended parity 1 bit stream according to a first permutation pattern; permuting the prepended parity 2 bit stream based on the first permutation pattern; transposing the permuted systematic bit stream, the permuted parity 1 bit stream and the permuted parity 2 bit stream, by transposing the respective matrix of each of the bit streams; shuffling the transposed parity 1 bit stream and the transposed parity 2 bit stream, by interleaving bits of the transposed parity 1 bit stream and the transposed parity 2 bit stream, to generate a shuffled bit stream, wherein the shuffled bit stream is arranged into a shuffled bit stream matrix; removing the null bits from the transposed systematic bit stream, wherein location of the null bits in the transposed systematic bit stream is based only on a number of prepended null bits and the first permutation pattern; removing the null bits from the shuffled bit stream, wherein location of the null bits in the shuffled bit stream is based only on the number of prepended null bits, the first permutation pattern, and a null index related to the number of prepended null bits; and generating a combined bit stream (1312 & 1314) from the three bit streams, by first reading out row-by-row the transposed matrix of the systematic bit stream from which the null bits are removed and by then reading out row-by-row the shuffled bit stream matrix from which the null bits are removed; and storing the combined bit stream (1312 & 1314) in a circular buffer. prepending the systematic bit stream, the parity 1 bit stream and the parity 2 bit stream with null bits, wherein each of the prepended systematic bit stream, the prepended parity 1 bit stream and the prepended parity 2 bit stream is arranged into a matrix having 32 columns; permuting the prepended systematic bit stream and the prepended parity 1 bit stream according to a first permutation pattern; permuting the prepended parity 2 bit stream based on the first permutation pattern; transposing the permuted systematic bit stream, the permuted parity 1 bit stream and the permuted parity 2 bit stream, by transposing the respective matrix of each of the bit streams; shuffling the transposed parity 1 bit stream and the transposed parity 2 bit stream, by interleaving bits of the transposed parity 1 bit stream and the transposed parity 2 bit stream, to generate a shuffled bit stream, wherein the shuffled bit stream is arranged into a shuffled bit stream matrix; removing the null bits from the transposed systematic bit stream, wherein location of the null bits in the transposed systematic bit stream is based only on a number of prepended null bits and the first permutation pattern; removing the null bits from the shuffled bit stream, wherein location of the null bits in the shuffled bit stream is based only on the number of prepended null bits, the first permutation pattern, and a null index related to the number of prepended null bits; and generating a combined bit stream (1312 & 1314) from the three bit streams, by first reading out row-by-row the transposed matrix of the systematic bit stream from which the null bits are removed and by then reading out row-by-row the shuffled bit stream matrix from which the null bits are removed; and storing the combined bit stream (1312 & 1314) in a circular buffer.