Claims
- 1. A method of interleaving blocks of indexed data having indices, the blocks having a varying length, the method including the steps of:
providing a set of basic Interleavers comprising a family of one or more permutations of the indexed data X(t) and having a variable length; selecting one of the basic Interleavers based upon a desired Interleaver length L; and adapting the selected basic Interleaver to produce an Interleaver having the desired Interleaver length L.
- 2. The method of claim 1 wherein the step of selecting includes:
identifying a group of the basic Interleavers having a length greater than or equal to the desired Interleaver length L; and selecting one of the basic Interleavers having a selected length which is smallest among the identified group of basic Interleavers.
- 3. The method of claim 2 wherein the step of adapting the selected basic Interleaver includes deleting indexed data having indices higher than required for a permutation of length L.
- 4. The method of claim 3 wherein the family of basic Interleavers consists of “two-dimensional permutations” and further comprising the steps of: computing the “two-dimensional permutations”, including the steps of:
(a) writing the indexed data into an Interleaver matrix having one or more rows R in each of two dimensions; (b) permuting the indexed data in the one or more rows in at least one of the two dimensions, to produce constituent permutations, said constituent permutations possibly being different from one row to another row in each of the two dimensions; and (c) reading out the indexed data from the Interleaver matrix.
- 5. The method of claim 4 further including the steps of:
providing an Interleaver device 16 for the interleaving blocks of indexed data, the Interleaver device 16 further comprising a memory device for storing descriptions of the basic Interleavers; and storing the descriptions of the basic Interleavers in the memory device.
- 6. The method of claim 5 wherein the constituent permutations are pseudo-random permutations described by mathematical operations involving a limited number of parameters, wherein an amount of storage required for storing the limited number of parameters is less than another amount of storage required for storing a vector representation of a totality of permuted indices of the constituent permutations.
- 7. The method of claim 6 wherein at least one of the constituent permutations is a Galois field permutation that maps indexed data at positions i=,1,2, . . . ord(α)−l to a new position I(i)=f(αi) in the at least one of the two dimensions, wherein f is an integer-valued function acting on the finite field GF(q) and wherein a is a non-zero element in the finite Galois field GF(q) of multiplicative order ord(α); and
applying at least one Galois permutation to the indexed data along the at least one of the two dimensions.
- 8. The method of claim 6 further including the step of:
providing a turbo code encoder comprising two or more constituent code encoders connected together and to the Interleaver device 16; and turbo encoding the indexed data after the interleaving by the Interleaver device 16 of the turbo code encoder.
- 9. The method of claim 6 wherein the lengths of the constituent permutations, applied along the at least one of the two dimensions are even integers.
- 10. The method of claim 9 wherein the constituent permutations with even lengths serve to interlace the indexed data from a lower half and an upper half of the Interleaver matrix, in the at least one of the two dimensions to which the constituent permutations with even lengths is applied, and in a consistent manner.
- 11. The method of claim 10 wherein the lengths of the constituent permutations, applied along at least one of the two dimensions, are integral powers of two.
- 12. The method of claim 11 wherein at least one of the constituent permutations with length and integral power of 2 maps indexed data at a position i, corresponding to index i, to a new position I(i), corresponding to a position defined by the function I(i), wherein I(i) is an integer whose binary representation is a reverse of the binary representation of i.
- 13. A method of interleaving blocks of indexed data, the blocks having a variable length, the method including the steps of:
1) providing a family of basic Interleavers comprising “two-dimensional permutations” including the step of computing the “two-dimensional permutations” further comprising the steps of:
writing the indexed data into an Interleaver matrix having one or more rows R in each of two dimensions; permuting the indexed data in one or more rows R in at least one of the two dimensions, to produce “constituent permutations”, said constituent permutations possibly being different from one row to another row in each of the two dimensions, wherein the constituent permutations are pseudo-random permutations described by mathematical operations involving a limited number of parameters, wherein an amount of storage required for storing the limited number of parameters is less than another amount of storage required for storing a vector representation of permuted indices of the constituent permutations; reading out the indexed data from the Interleaver matrix; 2) selecting one of the basic Interleavers for use in encoding based upon a desired Interleaver length L; 3) adapting the selected basic Interleaver to produce an Interleaver having the desired Interleaver length L; wherein the step of selecting includes: identifying a group of the basic Interleavers having a length greater than or equal to the desired Interleaver length L; selecting one of the basic Interleavers having a length which is smallest among the identified group of the basic Interleavers; wherein the steps of adapting the selected basic Interleaver includes:
deleting indexed data having indices higher than required for a permutation of length L; 4) providing an Interleaver device 16 for interleaving blocks of indexed data, the Interleaver device further comprising a memory device for storing descriptions of the basic Interleavers; and 5) storing the descriptions of the basic Interleavers in the memory device.
- 14. The method of claim 13 wherein q is an integral power of two.
- 15. The method of claim 1, further including the step of:
providing a turbo encoder consisting of two or more constituent encoders connected together, wherein the interleaving is performed by the turbo encoder.
- 16. A system for interleaving and turbo encoding blocks of indexed data, having indices, the blocks having a varying length, the system comprising:
a parallel concatenation of two or more constituent encoders for recursive convolutional codes having a recursion period p; and an Interleaver device coupled to the parallel concatenation of the two or more constituent encoders for performing the steps of:
accessing stored descriptions of basic Interleavers, the basic Interleavers comprising a family of one or more permutations of the indexed data and having a variable length; identifying a group of the basic Interleavers having a length greater than or equal to a desired Interleaver length L; selecting one of the basic Interleavers having a length which is smallest among the group of the basic interleaves; and adapting the selected one of the basic Interleavers to produce an Interleaver having the desired Interleaver length L.
Parent Case Info
[0001] This applications claims benefit of U.S. Provisional Application Serial No. 60/096,807 filed Aug. 17, 1998.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60096807 |
Aug 1998 |
US |
Divisions (1)
|
Number |
Date |
Country |
Parent |
09376067 |
Aug 1999 |
US |
Child |
10024834 |
Dec 2001 |
US |