Claims
- 1. A method of turbo decoding comprising:
receiving a turbo encoded block of data; dividing the data-block into sub-blocks; dividing the data-block into segments, each segment including a number of contiguous sub-blocks; and decoding each segment in parallel using a sliding window process, wherein each sub-block corresponds to one sliding window.
- 2. The method of claim 1 wherein the sliding window process includes determining a forward recursion metric for a sub-block during one time period Ti and determining a backward recursion metric for the sub-block during a following time period Ti+1.
- 3. The method of claim 2 wherein the sliding window process includes determining a log likelihood ratio (LLR) for the sub-block based on the determined forward recursion metric and the determined backward recursion metric for the sub-block.
- 4. The method of claim 1 wherein a forward recursion metric, a backward recursion metric, and a log likelihood ratio (LLR) are determined for each sub-block of each segment using the sliding window process.
- 5. The method of claim 1 wherein the data-block is divided into segments that overlap any adjacent segment or segments by two sliding windows.
- 6. The method of claim 1 wherein the sliding window process comprises determining a forward recursion metric for a sub-block during time period Ti, determining a backward recursion metric for the sub-block during a following time period Ti+1, and determining the log likelihood ratio (LLR) during time period Ti+1 from the forward recursion metric determined during time period Ti and the backward recursion metric determined during time period Ti+1.
- 7. The method of claim 6 further comprising determining a pre-computation backward recursion metric for the sub-block during time period Ti−1.
- 8. The method of claim 6 further comprising determining a pre-computation backward recursion metric for a sub-block following the sub-block during time period Ti, wherein the determined pre-computation backward recursion metric is used to determine the backward recursion metric during time period Ti+1 for the sub-block.
- 9. A turbo decoder comprising:
an interface to receive a turbo encoded block of data; and a decoder to divide the data-block into sub-blocks and segments, each segment including a number of contiguous sub-blocks, the decoder including
a parallel processor to decode each segment in parallel using a sliding window process, wherein
each sub-block corresponds to one sliding window.
- 10. The turbo decoder of claim 9 wherein the parallel processor determines a forward recursion metric for a sub-block during time period Ti and determines a backward recursion metric for the sub-block during the following time period Ti+1.
- 11. The turbo decoder of claim 10 wherein the parallel processor determines a log likelihood ratio (LLR) for the sub-block based on the determined forward recursion metric and the determined backward recursion metric for the sub-block.
- 12. The turbo decoder of claim 9 wherein the parallel processor determines a forward recursion metric, a backward recursion metric, and a log likelihood ratio (LLR) for each sub-block of each segment using the sliding window process.
- 13. The turbo decoder of claim 9 wherein the decoder divides the data-block into segments that overlap any adjacent segment or segments by two sliding windows.
- 14. The turbo decoder of claim 9 wherein the parallel processor determines a forward recursion metric for a sub-block during time period Ti, determines a backward recursion metric for the sub-block during time period Ti+1, and determines a log likelihood ratio (LLR) during time period Ti+1 from the forward recursion metric determined during time period Ti and the backward recursion metric determined during time period Ti+1.
- 15. The turbo decoder of claim 14 wherein the parallel processor determines a pre-computation backward recursion metric for the sub-block during time period Ti+1.
- 16. The turbo decoder of claim 14 wherein the parallel processor determines a pre-computation backward recursion metric for a sub-block following the sub-block during time period Ti and the determined pre-computation backward recursion metric is used to determine the backward recursion metric during time period Ti+1 for the sub-block.
- 17. A method of turbo decoding comprising:
receiving a turbo encoded block of data; dividing the data-block into sub-blocks; determining a pre-computation forward recursion metric for a sub-block; determining forward recursion metrics for two or more consecutive sub-blocks following the pre-computation forward recursion metric sub-block; determining a pre-computation backward recursion metric for another sub-block; determining backward recursion metrics for two or more consecutive sub-blocks preceding the pre-computation backward recursion metric sub-block; repeating the determinations of the pre-computation forward recursion metric; forward recursion metrics, pre-computation backward recursion metric, and backward recursion metrics to determine a forward recursion metric and a backward recursion metric for each sub-block; decoding the data-block based on the determined forward and backward recursion metrics, wherein the pre-computation forward recursion metric and the pre-computation backward recursion metric are determined concurrently.
- 18. The method of claim 17 wherein a pre-computation forward recursion metric is determined for each of a last sub-block of the two or more forward recursion metric sub-blocks.
- 19. The method of claim 17 wherein a pre-computation backward recursion metric is determined for each of a first sub-block of the two or more preceding backward recursion metric sub-blocks.
- 20. The method of claim 17 further comprising determining the log likelihood ratio (LLR) for each sub-block based on the determined forward recursion metric for the sub-block and the determined backward recursion metric for the sub-block.
- 21. The method of claim 17 wherein the forward recursion metrics are determined for a first sub-block during a time period Ti and a second sub-block during a following time period Ti+1 and the backward recursion metrics are determined for the second sub-block during time period Ti and the first sub-block during following time period Ti+1.
- 22. The method of claim 21 wherein the log likelihood ratio (LLR) for the first sub-block and the second sub-block are determined during the time period Ti+1.
- 23. The method of claim 22 wherein the determined forward recursion metric for the first sub-block and the backward recursion metric for the second sub-block are stored for one time period T only.
- 24. The method of claim 22 wherein the pre-computation forward recursion metric and the pre-computation backward recursion metric and the backward recursion metric are determined during the time period Ti−1.
- 25. A turbo decoder comprising:
an interface to receive a turbo encoded block of data; and a decoder device to divide the data-block into sub-blocks, to determine the log likelihood ratio (LLR) for each sub-block, and to decode the data-block based on the determined LLR, the decoder including
a processor to determine a pre-computation forward recursion metric for a sub-block, determine forward recursion metrics for two or more consecutive sub-blocks following the pre-computation forward recursion metric sub-block, determine a pre-computation backward recursion metric for another sub-block, and determine a backward recursion metrics for two or more consecutive sub-blocks preceding the pre-computation backward recursion metric sub-block, the processor iteratively repeating the determinations of the pre-computation forward recursion metric; forward recursion metrics, pre-computation backward recursion metric, and backward recursion metrics over the entire data-block, wherein
the pre-computation forward recursion metric and backward recursion metrics are determined concurrently.
- 26. The decoder of claim 25 wherein the processor determines forward metrics for a first sub-block during a time period Ti and a second sub-block during a following time period Ti+1 and determines the backward recursion metrics for the second sub-block during time period Ti and the first sub-block during following time period Ti+1.
- 27. The decoder of claim 26 wherein the (LLR) for the first sub-block and the second sub-block are determined during the second time period Ti+1.
- 28. The decoder of claim 25 further comprising a memory to store the determined forward recursion metric for the first sub-block and the determined backward recursion metric for the second sub-block for one time period T.
- 29. A turbo decoder comprising:
an interface to receive a turbo encoded block of data; and a decoder device to divide the data-block into sub-blocks and to determine the log likelihood ratio (LLR) for each sub-block, and to decode the data-block based on the determined LLR, the decoder including a two parallel processing unit
the two parallel processing unit comprising:
a forward recursion metric pre-computation unit; a first forward recursion metric computation unit; a second forward recursion metric computation unit; a backward recursion metric pre-computation unit; a first backward recursion metric computation unit; and a second backward recursion metric computation unit.
- 30. A turbo decoder comprising:
an interface to receive a turbo encoded block of data; and a decoder device to divide the data-block into sub-blocks, to determine the log likelihood ratio (LLR) for each sub-block, and to decode the data-block based on the determined LLR, the decoder including a three parallel processing unit
the three parallel processing unit comprising,
a forward recursion metric pre-computation unit; a first forward recursion metric computation unit; a second forward recursion metric computation unit; a third forward recursion metric computation unit; a backward recursion metric pre-computation unit; a first backward recursion metric computation unit; a second backward recursion metric computation unit; and a third backward recursion metric computation unit;
- 31. A method of turbo decoding comprising:
receiving a turbo encoded block of data; dividing the data-block into sub-blocks; dividing the data-block into a first segment and a second segment that overlap; for each segment in parallel
determining the forward recursion metrics for two consecutive sub-blocks; determining the backward recursion metrics for the two consecutive sub-blocks; determining the log likelihood ratio for the two consecutive sub-blocks based on the determined forward recursion metric and the determined backward recursion metric for the two consecutive sub-blocks; repeating the determinations of the forward recursion metrics and backward recursion metrics to determine the LLR for each sub-block; and decoding the data-block based on the determined LLR.
- 32. The method of claim 31 wherein the determinations of the forward recursion metrics and the backward recursion metrics for the first segment are determined during a first time period including two time slots TSB and TSB+1, the determinations of the forward recursion metrics and the backward recursion metrics for the second segment are determined during a second period including two time slots TSB and TSB+1, and the first and second periods overlap by one time slot TSB+1.
- 33. The method of claim 31 wherein one forward recursion metric and one backward recursion metric for the two consecutive sub-blocks in either segment are stored for one time slot.
- 34. A turbo decoder comprising:
an interface to receive a turbo encoded block of data; a decoder to divide the data-block into sub-blocks and to divide the data-block into a first segment and a second segment that overlap, the decoder including a first processor to determine the forward recursion metrics for two consecutive sub-blocks of the first segment, to determine the backward recursion metrics for the two consecutive sub-blocks of the first segment, and to determine the log likelihood ratio for the two consecutive sub-blocks of the first segment, the first processor iteratively repeating the determination of the forward recursion metrics, the backward recursion metrics, and the LLRs for each sub-block of the first segment; a second processor to determine the forward recursion metrics for two consecutive sub-blocks of the second segment, to determine the backward recursion metrics for the two consecutive sub-blocks of the second segment, and to determine the log likelihood ratio for the two consecutive sub-blocks of the second segment, the second processor iteratively repeating the determination of the forward recursion metrics, the backward recursion metrics, and the LLRs for the second segment, wherein
the decoder decodes the data-block based on the determined LLRs.
- 35. The turbo decoder of claim 34 wherein one iteration for the first segment includes a first time period including two time slots and a corresponding iteration for the second segment is determined during a second period including two time slots and the first and second periods overlap by one time slot.
- 36. The turbo decoder of claim 34 wherein one forward state metric and one backward state metric for the two consecutive sub-blocks in either segment are each stored for one time slot.
- 37. A turbo decoder comprising:
an interface to receive a turbo encoded block of data; and a decoder to divide the data-block into sub-blocks and dividing the data-block into a first segment and a second segment that overlap, to determine the log likelihood ratio (LLR) for each sub-block of the first and second segments, and to decode the data-block based on the determined LLRs, the decoder including a two parallel processing unit,
the two parallel processing unit comprising:
a first forward recursion metric computation unit; a second forward recursion metric computation unit; a back ward recursion metric pre-computation unit; a first backward recursion metric computation unit; and a second backward recursion metric computation unit.
- 38. The decoder of claim 37 wherein the first forward recursion metric unit, the backward recursion metric pre-computation unit and the first backward recursion unit process the first segment and the second forward recursion metric unit, the backward recursion metric pre-computation unit and the second backward recursion unit process the second segment.
- 39. A method of turbo decoding data, the method comprising the steps of:
a) receiving a plurality of sub-blocks of data from a single turbo encoded data block; b) calculating pre-computation forward recursion metrics for a first sub-block using a first computation unit; c) calculating pre-computation backward recursion metrics for a second sub-block using a second computation unit; d) calculating a forward recursion metric for a sub-block adjacent to and downstream from the first sub block on a third computation unit; and e) calculating backward recursion metrics for a sub-block adjacent to and upstream from the second sub block on a fourth computation unit.
- 40. The method recited in claim 39 wherein the calculating steps b) and c) are performed simultaneously at a first time slot interval.
- 41. The method recited in claim 39 wherein the calculating steps d) and e) are performed simultaneously at a second time slot interval.
- 42. The method recited in claim 39 further comprising the following steps:
f) calculating pre-computation forward recursion metrics for a third sub-block using the first computation unit; and g) calculating pre-computation reverse recursion metrics for a fourth sub-block using the second computation unit.
- 43. The method recited in claim 42 wherein steps f) and g) are performed simultaneously at a second time interval.
- 44. The method recited in claim 39 wherein the forward recursion metrics are stored in memory until the backward recursion metrics are computed for a subsequent sub-block.
- 45. The method recited in claim 39 wherein the backward recursion metrics are stored in memory until the forward recursion metrics are computed for a subsequent sub-block.
- 46. The method recited in claim 39 further comprising the steps of:
f) repeating calculating step d) for a quantity of N−1 times for sequentially upstream sub-block; and g) repeating calculating step e) for a quantity of N−1 times for sequentially downstream sub-block, wherein N is the quantity of parallelism in the decoder, and wherein the repeating steps d) and e) both occur at an incremented time slot interval.
- 47. The method recited in step 46 further comprising the following step:
h) outputting forward recursion metrics and backward recursion metrics to N quantity of L computation units.
- 48. The method recited in step 47 further comprising the steps of:
i) calculating extrinsic information and log likelihood ratio in each of the N quantity of L computation units; and j) outputting the extrinsic information and the log likelihood ratio in each of the N quantity of L computation units.
- 49. The method recited in claim 48 wherein the calculating step i) for each of the N quantity of L computation units is performed concurrently, and wherein the output step j) for each of the N quantity of L computation units is performed concurrently.
- 50. The method recited in claim 48 further comprising the following steps:
k) relocating the relative position of the first sub-block, the second sub-block, and sequentially upstream sub-blocks and sequentially downstream sub-blocks a quantity of N sub-blocks upstream in the turbo encoded data block; and
l) repeating steps a) through l).
- 51. A method of turbo decoding data, the method comprising the steps of:
a) receiving a plurality of sub-blocks of data for a single turbo encoded data-block; b) grouping the plurality of sub-blocks into a plurality of segments, wherein each of the plurality of segments has contiguous sub-blocks; and c) calculating a pre-computation metric for a sub-block in each of at least two segments using a single computation unit.
- 52. The method recited in claim 51 wherein calculating step c) for each of the at least two segments is performed serially.
- 53. The method recited in claim 51 wherein the pre-computation metric is a pre-computation reverse recursion metric.
- 54. The method recited in claim 51 further comprising the step of:
d) calculating concurrently a forward recursion metric for at least one of the plurality of sub-blocks in each of the plurality of segments using a respective one of a plurality of computation units.
- 55. The method recited in claim 54 further comprising the step of:
e) calculating concurrently a reverse recursion metric for at least one of the plurality of sub-blocks in each of the plurality of segments using a respective one of a plurality of computation units.
- 56. The method recited in claim 55 further comprising the steps of:
f) communicating concurrently the forward recursion metric for at least one of the plurality of sub-blocks in each of the plurality of segments to a respective one of a plurality of L computation units; and g) communicating concurrently the reverse recursion metric for at least one of the plurality of sub-blocks in each of the plurality of segments to the respective one of the plurality of L computation units.
- 57. The method recited in claim 56 further comprising the steps of:
h) calculating log likelihood ratio and extrinsic information in each of the plurality of L computation units; and i) outputting the extrinsic information and the log likelihood ratio from each of the plurality of L computation units.
Parent Case Info
[0001] This application claims priority from U.S. Provisional Application No. 60/286,962, filed Apr. 30, 2001, titled “Turbo Decoding and Decoders,” by Zhongfeng Wang and Keshab Parhi, the entire disclosure of which is incorporated herein by reference.
Government Interests
[0002] The U.S. Government has a paid-up license in this invention and the right in limited circumstances to license others on reasonable terms as provided for by the terms of contract number DA/DABT63-96-C-0050 awarded by the Defense Advanced Research Project Agency.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60286962 |
Apr 2001 |
US |