Patent ID: 7013412

Claim:
A method for deinterleaving an interleaved data signal, the method comprises: obtaining the interleaved data signal from a transmitter, the data signal being interleaved by an interleaver at the transmitter end in blocks in accordance with a prescribed variable interleaving specification obtained from a given generating rule for calculating various interleaving specifications, the generating rule including an inner and an outer intra-row permutation and an inter-row permutation for defining a permutation matrix containing interleaving target addresses, wherein each one of the blocks includes K data symbols; deinterleaving the interleaved data signal at a receiver end: without previously calculating the permutation matrix containing interleaving target addresses, calculating deinterleaving target addresses being elements of an inverse permutation matrix for a first prescribed segment of the K data symbols of a data block directly from the given generating rule by the steps of carrying out an inverse inter-row permutation, carrying out an inverse outer intra-row permutation, and carrying out an inverse inner intra-row permutation, and storing the deinterleaving target addresses of the first prescribed segment of the K data symbols in a target address memory; deinterleaving the first prescribed segment of the K data symbols by accessing a memory for storage of the data symbols with the deinterleaving target addresses stored in the target address memory; segmentally deinterleaving all remaining segments of the data block by: a) calculating new deinterleaving target addresses for a next prescribed segment of the K data symbols of the data block directly from the generating rule according to above-mentioned steps, and storing the new deinterleaving target addresses in the target address memory, b) deinterleaving the next segment of the K data symbols of the data block in accordance with the new deinterleaving target addresses stored in the target address memory, and c) repeating steps a) and b) for each one of the remaining segments of the data block to obtain the deinterleaved data signal.