Claims
- 1. An interleaver for interleaving code symbols comprising:
plurality of subsections, each subsection having a set of addresses, and each address having an index, wherein a substantially constant relationship exists from any one subsection to any other subsection between the index of each address at a particular location.
- 2. The interleaver as set forth in claim 1, wherein said index is a subset of bits from said address.
- 3. The interleaver as set forth in claim 1, wherein said index is said address divided by a row size.
- 4. An deinterleaver for deinterleaving soft decision data comprising:
plurality of subsections, each subsection having a set of addresses, and each address having an index, wherein a substantially constant relationship exists from any one subsection to any other subsection between the index of each address at a particular location.
- 5. The interleaver as set forth in claim 4, wherein said index is a subset of bits from said address.
- 6. The interleaver as set forth in claim 4, wherein said index is said address divided by a row size.
- 7. A forward error correction encoder comprising:
first encoder for encoding information bits; interleaver for interleaving code symbols from said first encoder, said interleaver having a plurality of subsections, each subsection having a set of addresses, and each address having an index, wherein a substantially constant relationship exists from any one subsection to any other subsection between the index of each address at a particular location; second encoder for encoding interleaved code symbols from said interleaver.
- 8. The encoder as set forth in claim 7, wherein said index is a subset of bits from said address.
- 9. The encoder as set forth in claim 7, wherein said index is said address divided by a row size.
- 10. A forward error correction decoder comprising:
interleaver for interleaving code symbols from said first encoder, said interleaver having a plurality of subsections, each subsection having a set of addresses, and each address having an index, wherein a substantially constant relationship exists from any one subsection to any other subsection between the index of each address at a particular location; plurality of memory elements, each for storing data associated with a valid index value; plurality of decoders, each for decoding a subsection from said interleaver.
- 11. The decoder as set forth in claim 7, wherein said index is a subset of bits from said address.
- 12. The decoder as set forth in claim 7, wherein said index is said address divided by a row size.
- 13. The decoder as set forth in claim 10, wherein said plurality of decoders use said data from said plurality of memory elements during decoding.
- 14. An interleaver for interleaving code symbols comprising:
first subsection comprised of a first set of addresses, each address having a first location i and a first index x; second subsection comprised of a first set of addresses, each address having a second location i and a second index x, wherein said first index x and said second index x are different whenever said first index and said second index are equal.
- 15. The interleaver as set forth in claim 14, wherein said first subsection is comprised of a set of r sets of n addresses, where each set of n addresses are separated by a value SET_STEP.
- 16. A forward error correction decoder comprising:
plurality of memory elements, each for storing data associated with a valid index value; plurality of decoders, each for decoding a subsection from said interleaver; M interleaver subsections, where said M interleaver subsections each have addresses and said addresses are generated in sets of n values separated by a value SET_STEP, and wherein each subsection is comprised of r sets of n values, where r is an integer multiple of M.
- 17. The forward error correction decoder as set forth in claim 16, where said valid index value is equal to trunc(A/r*SET_STEP) % M, and each memory element from said set of memory elements corresponds to a possible index value, and wherein data corresponding to a write address is written to a memory element associated with an index corresponding to said write address.
- 18. A system for performing iterative decoding comprising
address vector generation circuit for generating and vector of M interleaver addresses; routing selector circuit for calculating a routing index based on an address from said address vector; set of memories, each for storing extrinsic information for a portion of a frame being decoded; address routing circuit for routing said address vector to said set of memories according to said routing index; data routing circuit for routing data from said set of memories to a set of decoder each of which decodes a portion of the frame in parallel, wherein the routing index for each address in said address vector is unique.
- 19. The system as set forth in claim 18 wherein said vector of M interleavers addresses are each a member of a subsection of an interleaver, and wherein said addresses are generated in sets of n values separated by a value SET_STEP, and wherein each subsection is comprised of r sets of n values, where r is an integer multiple of M.
- 20. The forward error correction decoder as set forth in claim 16, where said valid index value is equal to trunc(A/r*SET_STEP) % M, and each memory element from said set of memory elements corresponds to a possible index value, and wherein data corresponding to a write address is written to a memory element associated with an index corresponding to said write address.
- 21. A decoder for decoding parallel concatenated convolutional codes and serial concatenated convolutional codes comprising:
decoder for performing the maximum a posteriori decoding algorithm, said decoder having a source data input and an extrinsic information input; sample memory for storing receive samples; extrinsic information memory for storing extrinsic information and soft decision information, said extrinsic information memory coupled to said extrinsic information input of said decoder; multiplexer for coupling said sample memory to said source data input in a first mode, and coupling said extrinsic information memory to said source data input in a second mode.
- 22. The decoder of claim 1 wherein said first mode is parallel concatenated convolutional mode and inner code serial concatenated convolutional mode, and said second mode is outer code serial concatenated convolutional mode.
- 23. A decoder for decoding parallel concatenated convolutional codes and serial concatenated convolutional codes comprising:
plurality of decoders for performing the maximum a posteriori decoding algorithm, said decoder having a source data input and an extrinsic information input; plurality of sample memories for storing receive samples; plurality of extrinsic information memory for storing extrinsic information and soft decision information, said extrinsic information memory coupled to said extrinsic information input of said decoder; multiplexer for coupling said sample memory to said source data input in a first mode, and coupling said extrinsic information memory to said source data input in a second mode.
- 24. The decoder of claim 4 further comprising a rotation circuit for shifting the coupling of the plurality of decoders and plurality of sample memories during a warm up period.
- 25. The decoder of claim 3 further comprising a clash check circuit for arbitrating between multiple requests for data from a single extrinsic information
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of 35 U.S.C. § 120 and claims priority to co-pending U.S. application Ser. No. 60/174,298 filed Jan. 3, 2000 entitled “ITERATIVE DECODING ARCHITECTURE”; U.S. application Ser. No. 60/174,290 entitled “SYSTEM AND METHOD FOR EFFICIENT PARALLEL PROCESSING OF TURBO CODES” filed Jan. 3, 2000, all assigned to the assignee of the present invention.
Provisional Applications (2)
|
Number |
Date |
Country |
|
60174298 |
Jan 2000 |
US |
|
60174290 |
Jan 2000 |
US |