Patent ID: 8171383

Claim:
An apparatus, comprising non-transitory computer readable media for implementing: an encoder implemented to encode at least one information bit thereby generating an encoded frame; a rate matching module implemented to: process the encoded frame, in accordance with a predetermined rate parameter indicating a number of bits to be punctured from the encoded frame, to partition the encoded frame into a plurality of remaining bits and a plurality of punctured bits such that the plurality of remaining bits are output from the rate matching module; if the number of bits to be punctured from the encoded frame including fewer bits than a number of remaining bits that are unpunctured, select the number of remaining bits; if the number of bits to be punctured from the encoded frame including more bits or an equal number of bits than the number of remaining bits that are unpunctured, select the number of punctured bits; generate a grid distance based on a ratio of a number of bits of the encoded frame divided by the selected number of remaining bits or the selected number of punctured bits; generate a plurality of pointers based on the grid distance; generate a plurality of random displacements such that each random displacement within the plurality of random displacements corresponding to one pointer within the plurality of pointers; and generate a plurality of final addresses using the plurality of pointers and the plurality of random displacements; and wherein: if the number of bits to be punctured from the encoded frame including fewer bits than a number of remaining bits that are unpunctured, then: the plurality of final addresses corresponding to the plurality of punctured bits; the plurality of remaining bits being identified as unaddressed by the plurality of final addresses; and the identified, plurality of remaining bits being output; or if the number of bits to be punctured from the encoded frame including more bits or an equal number of bits than the number of remaining bits that are unpunctured, then the plurality of final addresses corresponding to the plurality of remaining bits that are output.