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 . <EOS>