Claims
- 1. A turbo decoder for use in data control and comprising MAP decoding, the turbo decoder comprising:
an address generator for generating an address; a first memory unit for storing systematic data sampled of a turbo codeword; a second memory unit for storing parity data samples of the turbo codeword; and a third memory unit for storing bit probability likelihood ratios of the systematic data samples, wherein the address is simultaneously provided to at least the first memory unit, the second memory unit and the third memory unit such that the first memory unit reads a systematic data sample based on the address, the second memory unit reads a parity data sample based on the address and the third memory unit reads a likelihood ratio sample based on the address.
- 2. The turbo decoder of claim 1 wherein the address generator further comprises:
a memory unit comprising a de-interleaver definition; and a counter for generating a real address into the de-interleaver definition, wherein an output of the de-interleaver definition is used to address the first memory unit and the third memory unit.
- 3. The turbo decoder of claim 1 wherein the third memory unit further comprises a top memory unit and a bottom memory unit, the top memory unit for storing parity data samples of a top code of the turbo codeword and the bottom memory unit for storing a bottom code of the turbo codeword.
- 4. The turbo decoder of claim 3 further comprising a multiplexer for selecting one of the top memory unit and bottom memory unit as an output of the third memory unit.
- 5. The turbo decoder of claim 1 wherein the address generated from the address generator is delayed for a predetermined number of clock cycles and provided to the first memory unit and the third memory unit as a write address.
- 6. The turbo decoder of claim 5 wherein the address generated from the address generator is delayed using a buffer.
- 7. A turbo decoder for use in data control and comprising MAP decoding, the turbo decoder comprising:
an address generator for generating an address; a first memory unit for storing systematic data sampled of a turbo codeword; a second memory unit for storing parity data samples of a top code and a bottom code of the turbo codeword; a third memory unit for storing bit probability likelihood ratios of the systematic data samples, a fourth memory unit for storing a de-interleaver definition; and a multiplexer for selecting between an output of the address generator and the fourth memory unit, wherein the address is simultaneously provided to at least the second memory unit and the fourth memory unit and an output of the multiplexer provides an address to the first memory unit and the second memory unit.
- 8. The turbo decoder of claim 7 wherein a top code/bottom code select block controls the multiplexer.
- 9. The turbo decoder of claim 7 wherein an output of the multiplexer is delayed for a predetermined number of clock cycles and provided to the third memory unit as a write address to update the bit probability likelihood ratios.
- 10. The turbo decoder of claim 7 wherein the output of the multiplexer is delayed using a buffer.
- 11. The turbo decoder of claim 7 wherein the address generator comprises an up/down counter and wherein the first memory unit, second memory unit and third memory unit are adapted to store respective memory data as required for use with the up/down counter.
- 12. The turbo decoder of claim 7 wherein the up/down counter generates a memory mapping sequence represented by represented as [0 1 2 3 4 5 . . . τ−1 τ−1 τ−2 . . . 3 2 1 0], where τ represents a number of systematic data samples in the turbo codeword.
- 13. The turbo decoder of claim 12 wherein τ is programmable and supports variable block lengths.
- 14. The turbo decoder of claim 7 wherein the address generated by the address generator is provided to a MAP decoder, the MAP decoder is adapted to use the address for buffering values of alpha and beta recursions.
- 15. A turbo decoder for use in data control and comprising MAP decoding, the turbo decoder comprising:
an address generator for generating an address; a first memory unit coupled to the address generator for storing systematic data sampled of a turbo codeword; a second memory unit coupled to the address generator and storing parity data samples of the turbo codeword; and a third memory unit coupled to the address generator and storing bit probability likelihood ratios of the systematic data samples, wherein the address is simultaneously provided to at least the first memory unit, the second memory unit and the third memory unit such that the first memory unit reads a systematic data sample based on the address, the second memory unit reads a parity data sample based on the address and the third memory unit reads a likelihood ratio sample based on the address.
- 16. The turbo decoder of claim 15 wherein the address generator further comprises:
a memory unit comprising a de-interleaver definition; and a counter coupled to the memory unit and generating a real address into the de-interleaver definition, wherein an output of the de-interleaver definition is used to address the first memory unit and the third memory unit.
- 17. The turbo decoder of claim 15 wherein the third memory unit further comprises a top memory unit and a bottom memory unit coupled to the address generator, the top memory unit for storing parity data samples of a top code of the turbo codeword and the bottom memory unit for storing a bottom code of the turbo codeword.
- 18. The turbo decoder of claim 17 further comprising a multiplexer coupled to the top memory unit and the bottom memory unit and selecting one of the top memory unit and bottom memory unit as an output of the third memory unit.
- 19. A turbo decoder for use in data control and comprising MAP decoding, the turbo decoder comprising:
an address generator for generating an address; a first memory unit coupled to the address generator and storing systematic data sampled of a turbo codeword; a second memory unit coupled to the address generator and storing parity data samples of a top code and a bottom code of the turbo codeword; a third memory unit coupled to the address generator storing bit probability likelihood ratios of the systematic data samples, a fourth memory unit coupled to the address generator and storing a de-interleaver definition; and a multiplexer coupled to the address generator and the fourth memory unit and selecting between an output of the address generator and the fourth memory unit, wherein the address is simultaneously provided to at least the second memory unit and the fourth memory unit and an output of the multiplexer provides an address to the first memory unit and the second memory unit.
- 20. A decoder for decoding punctured at least one turbo codeword using MAP decoding, the decoder comprising:
a gamma probability module for calculating a gamma probability contribution wherein the gamma probability contribution corresponding to a parity bit is selectively neutralized according to a puncturing pattern associated with the turbo codeword.
- 21. The decoder of claim 20 wherein the puncturing pattern comprises a puncturing rate of one-half (½) and at a minimum every other parity bit contribution to the gamma probability contribution is neutralized.
- 22. The decoder of claim 20 wherein the gamma probability module is adapted to change the puncturing pattern of neutralizing the parity bit contribution to the gamma probability contribution such that multiple turbo codeword rates are supported.
- 23. A decoder for decoding turbo codewords using MAP decoding, the decoder comprising:
a first gamma probability block for computing gamma values used for computing alpha and beta recursions; and a second gamma probability block for computing gamma values used for computing sigma probabilities.
- 24. The decoder of claim 23 wherein a same input from each of an a priori probabilities input, a systematic bit probabilities input and a parity bit probabilities input is provided to both the first and the second probability blocks.
- 25. The decoder of claim 24 wherein probability contributions of the a priori probabilities input, the systematic bit probabilities input and the parity bit probabilities input are selectively neutralized using the gamma values computation from at least one of the first gamma probability block and the second gamma probability block.
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation of pending U.S. patent application Ser. No. 09/519,903 filed on Mar. 7, 2000 entitled Turbo Decoder Control for Use With a Programmable Interleaver, Variable Block Length, and Multiple Code Rates.
Continuations (1)
|
Number |
Date |
Country |
Parent |
09519903 |
Mar 2000 |
US |
Child |
10356872 |
Feb 2003 |
US |