Patent ID: 7130354

Claim:
A method of encoding data having one or more subsets of data, to one or more constellation points, each constellation point having coordinates, comprising: initializing a first binary array and a second binary array with bits from one subset of the subsets of data, wherein the first binary array and second binary array are initialized with the values of alternating bits from the one subset; starting at the most significant bit for each of the first and second binary arrays, for each successive pair of bits of each array, modifying the value of the lesser significant bit of that pair based on the value of the more significant bit of that pair and a template; and concatenating each of the first and second binary arrays with one or more end bits having predetermined values, such that the one or more end bits become the one or more least significant bits of each of the first and second binary arrays, whereby the first binary array is a two's complement representation of one of the coordinates of a constellation point, and the second binary array is a two's complement representation of another coordinate of the constellation point.