Patent ID: 6947491

Claim:
A method of processing data in a communication systems by selectively resequencing a block of T sequential expanded data elements having a bit size M contained in a sequential set of data words W′ having a bit size L′ to produce a set of sequential data words W having a bit size L containing the T expanded data elements in a selected sequence based upon an interleaver mapping to a matrix having C element columns and N rows where L and L′ are integers larger than M, C is not equal to L and the last r columns of the matrix have N−1 rows where r<C and r=(C*N)−T, comprising: sequentially extracting the T data elements from the set of sequential data words W′; determining a matrix mapping position for a first extracted element at a first row of an initial column of a pre-determined interleaver column sequence; for each subsequent extracted data element, determining a matrix mapping position of a row n and a column i at a next row of the same column as the immediately preceding data element or, if that column has no next row, the first row of the next column in the pre-determined interleaver column sequence; defining a row by row sequential mapping of M bit sequential addresses of a local memory of data words W corresponding to the C by N matrix; for each data element, determining a sequential bit address within one word or spanning two sequential words of the set of words W corresponding to the element's determined matrix mapping position; and storing each data element at its determined address.