Patent ID: 7657818

Claim:
A method for performing convolutional interleaving or deinterleaving of a data flow, with a depth D and a period I, the method comprising: determining a schedule for each of a plurality of R memory cells based on an array having a plurality of rows, each row comprising a first element defining a period index P and a second element defining a byte index B, wherein the array is constructed by: generating a first row of the array, comprising: setting the first element of the first row of the array equal to a period index initialization value; setting the second element of the first row of the array equal to a byte index initialization value; generating a next row of the array, comprising: setting P equal to the period index initialization value; setting B equal to the byte index initialization value; setting a position index L equal to one of the following: B+(B*(D−1)); or B+((I−1−B)*(D−1)); resetting P, wherein P is one of the following: P = P + ⌊ B I ⌋ when the position index L equals B+(B*(D−1)); or P = P + ⌊ L I ⌋ when the position index L equals B+((I−1−B)*(D−1)); resetting B, wherein B=L mod I; setting the first element of the next row of the array equal to P; and setting the second element of the next row of the array equal to B; and repeating generating the next row of the array until the second element of the next row of the array equals the second element of the first row of the array; performing for each time sample the following operations: selecting a first memory cell from the R memory cells based on the schedules of the R memory cells; reading a first byte stored in the first memory cell; writing the first byte to the interleaver output; receiving a second byte at the input of the interleaver; writing the second byte to the first memory cell.