Claims
- 1. In an iterative decoder, an iterative decoding method for decoding received digital data elements representing source data elements coded according to a turbo coding scheme, the iterative decoding method comprising:
computing a set of branch metrics for the received digital data elements based upon at least one received digital data element; computing a set of forward recursive metrics based upon the set of branch metrics according to an approximation: 25Ak(m)=log[αk(m)]=maxm′{Γ(uk,ck,m′,m)+Ak-1(m′)}-HAk;computing a set of backward recursive metrics based upon the set of branch metrics according to an approximation: 26Bk(m′)=log[βk(m′)]=maxm{Γ(uk,ck,m′,m)+Bk+1(m)}-HBk;and computing a set of output extrinsic Log Likelihood Ratio (LLR) values based upon the set of backward metrics and the set of forward metrics according to an equation: 27Λ(dk)=log[∑e:u(e)=dk=+1ⅇ{Ak-1(m′)+Γ1(ck,m′,m)+Bk(m)}]-log[∑e:u(e)=dk=0ⅇ{Ak-1(m′)+Γ0(ck,m′,m)+Bk(m)}]
- 2. The iterative decoding method of claim 1, wherein computing the set of output extrinsic LLR values comprises:
maintaining a table of logarithm values; and using the table of logarithm values to determine the logarithm of the value L(dk) where. 28L(dk)=log[∑e:u(e)=dk ⅇ{Ak-1(m′)+Γ(ck,m′,m)+Bk(m)}]and dk is either +1 or 0.
- 3. The iterative decoding method of claim 2, wherein using the table of logarithm values to determine the logarithm of the values L(dk=+1) and L(dk=0) comprises:
obtaining the logarithm of the values L(dk=+1) and L(dk=0) directly from the table of logarithm values.
- 4. The iterative decoding method of claim 2, wherein using the table of logarithm values to determine the logarithm of the values L(dk=+1) and L(dk=0) comprises:
obtaining, from the table of logarithm values, a logarithm of a value less than L(dk=+1); obtaining, from the table of logarithm values, a logarithm of a value less than L(dk=0); obtaining, from the table of logarithm values, a logarithm of a value greater than L(dk=+1); obtaining, from the table of logarithm values, a logarithm of a value greater than L(dk=0); and deriving the logarithm of the value L(dk=+1) from the logarithm of the value less than L(dk=+1) and the logarithm of the value greater than L(dk=+1) and deriving the logarithm of the value L(dk=0) from the logarithm of the value less than L(dk=0) and the logarithm of the value greater than L(dk=0).
- 5. The iterative decoding method of claim 4, wherein deriving the logarithm of the value L(dk=+1) from the logarithm of the value less than L(dk=+1) and the logarithm of the value greater than L(dk=+1)and deriving the logarithm of the value L(dk=0) from the logarithm of the value less than L(dk=0) and the logarithm of the value greater than L(dk=0) comprises:
extrapolating the logarithm of the value L(dk=+1) from the logarithm of the value less than L(dk=+1) and the logarithm of the value greater than L(dk=+1) and extrapolating the logarithm of the value L(dk=0) from the logarithm of the value less than L(dk=0) and the logarithm of the value greater than L(dk=0).
- 6. The iterative decoding method of claim 1, wherein computing the set of backward recursive metrics comprises:
using a sliding window for processing less than the entirety of received digital data elements.
- 7. The iterative decoding method of claim 6, wherein using a sliding window for processing less than the entirety of received digital data elements comprises:
initializing the set of backward recursive metrics with equal probabilities.
- 8. The iterative decoding method of claim 6, wherein using a sliding window for processing less than the entirety of received digital data elements comprises:
initializing the set of backward recursive metrics with the set of forward recursive metrics.
- 9. An iterative decoder for decoding received digital data elements representing source data elements coded according to a turbo coding scheme, the decoder comprising:
branch metric logic operably coupled to compute a set of branch metrics for the received digital data elements based upon at least one received digital data element; forward recursive metric logic operably coupled to compute a set of forward recursive metrics based upon the set of branch metrics according to an approximation: 29Ak(m)=log[αk(m)]=maxm′{Γ(uk,ck,m′,m)+Ak-1(m′)}-HAk;backward recursive metric logic operably coupled to compute a set of backward recursive metrics based upon the set of branch metrics according to an approximation: 30Bk(m′)=log[βk(m′)]=maxm{Γ(uk,ck,m′,m)+Bk+1(m)}-HBk;and extrinsic logic operably coupled to compute a set of output extrinsic Log Likelihood Ratio (LLR) values based upon the set of backward metrics and the set of forward metrics according to an equation: Λ(dk)=L(dk=+1)−L(dk=0).
- 10. The iterative decoder of claim 9, wherein the extrinsic logic comprises:
logic for using a table of logarithm values to determine the logarithm of the values L(dk=+1) and L(dk=0).
- 11. The iterative decoder of claim 10, wherein the logic for using the table of logarithm values to determine the logarithm of the values L(dk=+1) and L(dk=0) comprises:
logic for obtaining the logarithm of the values L(dk=+1) and L(dk=0) from the table of logarithm values.
- 12. The iterative decoder of claim 10, wherein the logic for using the table of logarithm values to determine the logarithm of the value L(dk=+1) and L(dk=0) comprises:
logic for obtaining, from the table of logarithm values, a logarithm of a value less than L(dk=+1); logic for obtaining, from the table of logarithm values, a logarithm of a value greater than L(dk=+1); logic for obtaining, from the table of logarithm values, a logarithm of a value less than L(dk=0); logic for obtaining, from the table of logarithm values, a logarithm of a value greater than L(dk=0); and logic for deriving the logarithm of the value L(dk=+1) from the logarithm of the value less than L(dk=+1) and the logarithm of the value greater than L(dk=+1) and for deriving the logarithm of the value L(dk=0) from the logarithm of the value less than L(dk=0) and the logarithm of the value greater than L(dk=0).
- 13. The iterative decoder of claim 12, wherein the logic for deriving the logarithm of the values L(dk=+1) and L(dk=0) from the logarithm of the values less than L(dk=+1) and L(dk=0) and the logarithm of the value greater than L(dk=+1) and L(dk=0) comprises:
logic for extrapolating the logarithm of the value L(dk=+1) from the logarithm of the value less than L(dk=+1) and the logarithm of the value greater than L(dk=+1) and logic for extrapolating the logarithm of the value L(dk=0) from the logarithm of the value less than L(dk=0) and the logarithm of the value greater than L(dk=0).
- 14. The iterative decoder of claim 9, wherein the backward recursive metric logic comprises:
logic for using a sliding window for processing less than the entirety of received digital data elements.
- 15. The iterative decoder of claim 14, wherein the logic for using a sliding window for processing less than the entirety of received digital data elements comprises:
logic for initializing the set of backward recursive metrics with equal probabilities.
- 16. The iterative decoder of claim 14, wherein the logic for using a sliding window for processing less than the entirety of received digital data elements comprises:
logic for initializing the set of backward recursive metrics with the set of forward recursive metrics.
- 17. An apparatus for decoding received digital data elements representing source data elements coded according to a turbo coding scheme, the apparatus comprising:
a first iterative decoder; a second iterative decoder; an interleaver operably coupled to receive first output extrinsic Log Likelihood Ratio (LLR) values from the first iterative decoder and to provide interleaved output extrinsic Log Likelihood Ratio (LLR) values to the second iterative decoder; and a deinterleaver operably coupled to receive second output extrinsic Log Likelihood Ratio (LLR) values from the second iterative decoder and to provide deinterleaved output extrinsic Log Likelihood Ratio (LLR) values to the first iterative decoder, wherein each iterative decoder comprises: branch metric logic operably coupled to compute a set of branch metrics for the received digital data elements based upon at least one received digital data element; forward recursive metric logic operably coupled to compute a set of forward recursive metrics based upon the set of branch metrics according to an approximation: 31Ak(m)=log[αk(m)]=maxm′{Γ(uk,ck,m′,m)+Ak-1(m′)}-HAk;backward recursive metric logic operably coupled to compute a set of backward recursive metrics based upon the set of branch metrics according to an approximation: 32Bk(m′)=log[βk(m′)]=maxm{Γ(uk,ck,m′,m)+Bk+1(m)}-HBk;and extrinsic logic operably coupled to compute a set of output extrinsic Log Likelihood Ratio (LLR) values based upon the set of backward metrics and the set of forward metrics according to an equation: Λ(dk)=L(dk=+1)−L(dk=0).
- 18. The apparatus of claim 17, further comprising a table of logarithm values, wherein the extrinsic logic comprises:
logic for using the table of logarithm values to determine the logarithm of the values L(dk=+1) and L(dk=0).
- 19. The apparatus of claim 18, wherein the logic for using the table of logarithm values to determine the logarithm of the values L(dk=+1) and L(dk=0) comprises:
logic for obtaining the logarithm of the values L(dk=+1) and L(dk=0) from the table of logarithm values.
- 20. The apparatus of claim 18, wherein the logic for using the table of logarithm values to determine the logarithm of the values L(dk=+1) and L(dk=0) comprises:
logic for obtaining, from the table of logarithm values, a logarithm of a value less than L(dk=+1); logic for obtaining, from the table of logarithm values, a logarithm of a value greater than L(dk=+1); logic for obtaining, from the table of logarithm values, a logarithm of a value less than L(dk=0); logic for obtaining, from the table of logarithm values, a logarithm of a value greater than L(dk=0); and logic for deriving the logarithm of the value L(dk=+1) from the logarithm of the value less than L(dk=+1) and the logarithm of the value greater than L(dk=+1) and logic for deriving the logarithm of the value L(dk=0) from the logarithm of the value less than L(dk=0) and the logarithm of the value greater than L(dk=0).
- 21. The apparatus of claim 20, wherein the logic for deriving the logarithm of the values L(dk=+1) and L(dk=0) from the logarithm of the value less than L(dk=+1) and the logarithm of the value greater than L(dk=+1) and the logarithm of the value less than L(dk=0) and the logarithm of the value greater than L(dk=0) comprises:
logic for extrapolating the logarithm of the value L(dk=+1) from the logarithm of the value less than L(dk=+1) and the logarithm of the value greater than L(dk=+1) and logic for extrapolating the logarithm of the value L(dk=0) from the logarithm of the value less than L(dk=0) and the logarithm of the value greater than L(dk=0).
- 22. The apparatus of claim 17, wherein the backward recursive metric logic comprises:
logic for using a sliding window for processing less than the entirety of received digital data elements.
- 23. The apparatus of claim 22, wherein the logic for using a sliding window for processing less than the entirety of received digital data elements comprises:
logic for initializing the set of backward recursive metrics with equal probabilities.
- 24. The apparatus of claim 22, wherein the logic for using a sliding window for processing less than the entirety of received digital data elements comprises:
logic for initializing the set of backward recursive metrics with the set of forward recursive metrics.
- 25. An apparatus comprising a digital storage medium having embodied therein a program for controlling a programmable logic device to decode received digital data elements representing source data elements coded according to a turbo coding scheme, the program comprising:
branch metric logic programmed to compute a set of branch metrics for the received digital data elements based upon at least one received digital data element; forward recursive metric logic programmed to compute a set of forward recursive metrics based upon the set of branch metrics according to an approximation: 33Ak(m)=log[αk(m)]=maxm′{Γ(uk,ck,m′,m)+Ak-1(m′)}-HAk;backward recursive metric logic programmed to compute a set of backward recursive metrics based upon the set of branch metrics according to an approximation: 34Bk(m′)=log[βk(m′)]=maxm{Γ(uk,ck,m′,m)+Bk+1(m)}-HBk;and extrinsic logic programmed to compute a set of output extrinsic Log Likelihood Ratio (LLR) values based upon the set of backward metrics and the set of forward metrics according to an equation: Λ(dk)=L(dk=+1)−L(dk=0).
- 26. The apparatus of claim 25, wherein the extrinsic logic comprises:
logic for using a table of logarithm values to determine the logarithm of the values L(dk=+1) and L(dk=0).
- 27. The apparatus of claim 26, wherein the logic for using the table of logarithm values to determine the logarithm of the values L(dk=+1) and L(dk=0) comprises:
logic for obtaining the logarithm of the values L(dk=+1) and L(dk=0) from the table of logarithm values.
- 28. The apparatus of claim 26, wherein the logic for using the table of logarithm values to determine the logarithm of the values L(dk=+1) and L(dk=0) comprises:
logic for obtaining, from the table of logarithm values, a logarithm of a value less than L(dk=+1); logic for obtaining, from the table of logarithm values, a logarithm of a value greater than L(dk=+1); logic for obtaining, from the table of logarithm values, a logarithm of a value less than L(dk=0); logic for obtaining, from the table of logarithm values, a logarithm of a value greater than L(dk=0); and logic for deriving the logarithm of the value L(dk=+1) from the logarithm of the value less than L(dk=+1) and the logarithm of the value greater than L(dk=+1) and logic for deriving the logarithm of the value L(dk=0) from the logarithm of the value less than L(dk=0) and the logarithm of the value greater than L(dk=0).
- 29. The apparatus of claim 28, wherein the logic for deriving the logarithm of the values L(dk=+1) and L(dk=0) from the logarithm of the value less than L(dk=+1) and the logarithm of the value greater than L(dk=+1) and from the logarithm of the value less than L(dk=0) and the logarithm of the value greater than L(dk=0) comprises:
logic for extrapolating the logarithm of the value L(dk=+1) from the logarithm of the value less than L(dk=+1) and the logarithm of the value greater than L(dk=+1) and logic for extrapolating the logarithm of the value L(dk=0) from the logarithm of the value less than L(dk=0) and the logarithm of the value greater than L(dk=0).
- 30. The apparatus of claim 25, wherein the backward recursive metric logic comprises:
logic for using a sliding window for processing less than the entirety of received digital data elements.
- 31. The apparatus of claim 30, wherein the logic for using a sliding window for processing less than the entirety of received digital data elements comprises:
logic for initializing the set of backward recursive metrics with equal probabilities.
- 32. The apparatus of claim 30, wherein the logic for using a sliding window for processing less than the entirety of received digital data elements comprises:
logic for initializing the set of backward recursive metrics with the set of forward recursive metrics.
- 33. The apparatus of claim 25, wherein the programmable logic device comprises one of:
a microprocessor; a digital signal processor; and a field programmable gate array.
PRIORITY
[0001] This patent application claims priority from U.S. Provisional Patent Application No. 60/423,778 filed Nov. 5, 2002, which is hereby incorporated herein by reference in its entirety.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60423778 |
Nov 2002 |
US |