Claims
- 1. A soft-in soft-out functional block (SISO) that calculates a plurality of soft symbol decisions for a block that includes plurality of encoded symbols arranged into a plurality of sub-blocks, the SISO comprising:
during a first time period, a first alpha/beta metric calculation functional block successively calculates check point values for forward metrics (alphas) of sub-blocks within a first half of the block; during the first time period, the first alpha/beta metric calculation functional block also successively calculates check point values for backward metrics (betas) of sub-blocks within a second half of the block; during a second time period, upon reaching a final sub-block of the first half of the block, the first alpha/beta metric calculation functional block calculates an alpha for each encoded symbol contained therein and stores the calculated alphas; during the second time period, upon reaching a final sub-block of the second half of the block, the first alpha/beta metric calculation functional block also calculates a beta for each encoded symbol contained therein and stores the calculated betas; wherein a third time period occurs after the first alpha/beta metric calculation functional block completes processing both the final sub-block of the first half of the block and the final sub-block of the second half of the block; during the third time period, a second alpha/beta metric calculation functional block successively calculates alphas for each symbol of the final sub-block of the second half of the block; during the third time period, the second alpha/beta metric calculation functional block successively calculates betas for each symbol of the final sub-block of the first half of the block; during the third time period, the first alpha/beta metric calculation functional block performs skip-back processing to successively re-calculate alphas for each encoded symbol of a sub-block that precedes the final sub-block within the first half of the block and stores the re-calculated alphas; and during the third time period, wherein the first alpha/beta metric calculation functional block performs skip-back processing to successively re-calculate betas for each encoded symbol of a sub-block that precedes the final sub-block within the second half of the block and stores the re-calculated betas.
- 2. The SISO of claim 1, further comprising an extrinsic value calculation functional block calculates a corresponding soft symbol decision for each encoded symbol within the final sub-block of the first half of the block using the stored alphas and the calculated betas.
- 3. The SISO of claim 2, wherein the SISO is communicatively coupled to an output processor that selectively receives each soft symbol decision and calculates a corresponding hard symbol decision there from.
- 4. The SISO of claim 1, further comprising an extrinsic value calculation functional block calculates a corresponding soft symbol decision for each encoded symbol within the final sub-block of the second half of the block using the stored betas and the calculated alphas.
- 5. The SISO of claim 4, wherein the SISO is communicatively coupled to an output processor that selectively receives each soft symbol decision and calculates a corresponding hard symbol decision there from.
- 6. The SISO of claim 1, wherein, during the second time period, the first alpha/beta metric calculation functional block stores the alphas and the betas by pushing them onto an alpha/beta stack.
- 7. The SISO of claim 1, wherein the plurality of encoded symbols is encoded according to a rate control sequence having a plurality of rate controls arranged in a period.
- 8. The SISO of claim 7, wherein a rate control of the plurality of rate controls includes a modulation that includes a constellation having a mapping.
- 9. The SISO of claim 7, wherein a first rate control of the plurality of rate controls includes a first modulation that includes a first constellation having a first mapping; and
wherein a second rate control of the plurality of rate controls includes a second modulation that includes a second constellation having a second mapping.
- 10. The SISO of claim 1, wherein the SISO is included within a decoder that is implemented within a communication receiver; and
wherein the communication receiver is contained within at least one of a satellite communication system, a High Definition Television (HDTV) communication system, a cellular communication system, a microwave communication system, a point-to-point communication system, a uni-directional communication system, a bi-directional communication system, a one to many communication system, and a fiber-optic communication system.
- 11. A soft-in soft-out functional block (SISO) that calculates a plurality of soft symbol decisions for a block that includes plurality of encoded symbols arranged into a plurality of sub-blocks, the SISO comprising:
a first alpha/beta metric calculation functional block that initially processes the encoded symbols of the plurality of encoded symbols in a first direction within the block, the first direction extending from a block beginning towards a block middle, to calculate forward metrics (alphas) and selectively stores alpha check point values associated with the sub-blocks of the plurality of sub-blocks that are processed in the first direction onto a check point stack; wherein the first alpha/beta metric calculation functional block also initially processes the encoded symbols of the plurality of encoded symbols in a second direction within the block, the second direction extending from a block end towards the block middle, to calculate backward metrics (betas) and selectively stores beta check point values associated with the sub-blocks of the plurality of sub-blocks that are processed in the second direction; wherein, when the first alpha/beta metric calculation functional block substantially reaches the block middle when processing in the first direction, the first alpha/beta metric calculation functional block pushes each alpha value onto an alpha stack; wherein, when the first alpha/beta metric calculation functional block substantially reaches the block middle when processing in the second direction, the first alpha/beta metric calculation functional block pushes each beta value onto a beta stack; wherein, when the first alpha/beta metric calculation functional block reaches the block middle after processing in the first direction, a second alpha/beta metric calculation functional block skips back to a first sub-block that has been processed in the first direction by the first alpha/beta metric calculation functional block and recalculates alphas for each encoded symbol contained in the first sub-block while the first alpha/beta metric calculation functional block simultaneously calculates betas in the second direction for a sub-block adjacent to the first sub-block; wherein, when the first alpha/beta metric calculation functional block substantially reaches the block middle after processing in the second direction, the second alpha/beta metric calculation functional block skips back to a second sub-block that has been processed by the first alpha/beta metric calculation functional block in the second direction and re-calculates betas for each encoded symbol contained in the second sub-block while the first alpha/beta metric calculation functional block simultaneously calculates alphas in the first direction for a sub-block adjacent to the second sub-block; for each encoded symbol for which the second alpha/beta metric calculation functional block calculates a beta in the second direction for the sub-block adjacent to the first sub-block, an extrinsic value calculation functional block pops a corresponding alpha off of the alpha stack and calculates a corresponding soft symbol decision using the most recently corresponding calculated beta and most recently popped alpha; and for each encoded symbol for which the second alpha/beta metric calculation functional block calculates an alpha in the first direction for the sub-block adjacent to the second sub-block, the extrinsic value calculation functional block pops a corresponding beta off of the beta stack and calculates a corresponding soft symbol decision using the most recently corresponding calculated alpha and most recently popped beta.
- 12. The SISO of claim 11, further comprising an output processor, communicatively coupled to the SISO, that selectively receives a first soft symbol decision there from that corresponds to first encoded symbol within the sub-block adjacent to the first sub-block and calculates a best estimate for the first encoded symbol using the first corresponding soft symbol decision; and
wherein the output processor selectively receives a second corresponding soft symbol decision from the SISO that corresponds to a second encoded symbol within the sub-block adjacent to the second sub-block and calculates a best estimate for the second encoded symbol using the second corresponding soft symbol decision.
- 13. The SISO of claim 11, wherein the plurality of encoded symbols is encoded according to a rate control sequence having a plurality of rate controls arranged in a period.
- 14. The SISO of claim 13, wherein a rate control of the plurality of rate controls includes a modulation that includes a constellation having a mapping.
- 15. The SISO of claim 13, wherein a first rate control of the plurality of rate controls includes a first modulation that includes a first constellation having a first mapping; and
wherein a second rate control of the plurality of rate controls includes a second modulation that includes a second constellation having a second mapping.
- 16. The SISO of claim 13, wherein the SISO is communicatively coupled to a metric generator that calculates a plurality of trellis metrics for each symbol of the plurality of encoded symbols and provides the plurality of trellis metrics to the SISO; and
the metric generator calculates the plurality of trellis metrics for each symbol of the plurality of encoded symbols based on its rate control.
- 17. The SISO of claim 11, wherein the second alpha/beta metric calculation functional block performs skip-back processing for each remaining sub-block within the plurality of sub-blocks to re-calculate the respective alphas and betas therein.
- 18. The SISO of claim 11, wherein the SISO performs a first SISO operation and a second SISO operation during at least one iteration of iterative decoding to generate the soft symbol decisions.
- 19. The SISO of claim 18, wherein, during the first SISO operation, the SISO calculates a first plurality of extrinsic values;
further comprising an interleaver/de-interleaver, communicatively coupled to the SISO, that interleaves the first plurality of extrinsic values to generate a first “a priori probability” (app) information that is fed back to the SISO during the first SISO operation; wherein, during the second SISO operation, the SISO calculates a second plurality of extrinsic values; wherein the interleaver/de-interleaver de-interleaves the second plurality of extrinsic values to generate a second “a priori probability” (app) information that is fed back to the SISO during the second SISO operation.
- 20. The SISO of claim 11, wherein the SISO is included within a decoder that is implemented within a communication receiver; and
wherein the communication receiver is contained within at least one of a satellite communication system, a High Definition Television (HDTV) communication system, a cellular communication system, a microwave communication system, a point-to-point communication system, a uni-directional communication system, a bi-directional communication system, a one to many communication system, and a fiber-optic communication system.
- 21. A decoder that decodes a block that includes plurality of encoded symbols arranged into a plurality of sub-blocks, the decoder comprising:
a soft-in soft-out functional block (SISO) that, based on a plurality of trellis metrics, calculates a first plurality of extrinsic values for each encoded symbol of the plurality of encoded symbols; an interleaver/de-interleaver, communicatively coupled to the SISO, that interleaves the first plurality of extrinsic values to generate a first “a priori probability” (app) information; wherein the SISO, based on the plurality of trellis metrics, calculates a second plurality of extrinsic values for each encoded symbol of the plurality of encoded symbols; wherein the interleaver/de-interleaver, that is communicatively coupled to the SISO, de-interleaves the second plurality of extrinsic values to generate a second “a priori probability” (app) information; wherein the first “a priori probability” (app) information is fed back to the SISO during a first SISO operation; wherein the second “a priori probability” (app) information is fed back to the SISO during a second SISO operation; wherein the SISO performs the first SISO operation and the second SISO operation during at least one iteration of iterative decoding to generate a plurality of soft symbol decisions, each soft symbol decision of the plurality of soft symbol decisions corresponds to an encoded symbol of the plurality of encoded symbols; wherein the SISO initially processes the encoded symbols of the plurality of encoded symbols in a first direction within the block, the first direction extending from a block beginning towards a block middle, to calculate forward metrics (alphas) and selectively stores alpha check point values associated with the sub-blocks of the plurality of sub-blocks that are processed in the first direction; wherein the SISO also initially processes the encoded symbols of the plurality of encoded symbols in a second direction within the block, the second direction extending from a block end towards the block middle, to calculate backward metrics (betas) and selectively stores betas check point values associated with the sub-blocks of the plurality of sub-blocks that are processed in the second direction; wherein, when the SISO substantially reaches the block middle when processing in the first direction and in the second direction, the SISO pushes each alpha value onto an alpha stack, and the SISO pushes each beta value onto a beta stack; wherein, when the SISO reaches the block middle after processing in the first direction, the SISO skips back to a first sub-block that has been processed in the first direction and re-calculates alphas for each encoded symbol contained in the first sub-block while simultaneously continuing to calculate betas in the second direction for a sub-block adjacent to the first sub-block and popping alphas off of the alpha stack and calculating soft symbol decisions for each encoded symbol within the sub-block adjacent to the first sub-block; and wherein, when the SISO substantially reaches the block middle after processing in the second direction, the SISO skips back to a second sub-block that has been processed in the second direction and re-calculates betas for each encoded symbol contained in the second sub-block while simultaneously continuing to calculate alphas in the first direction for a sub-block adjacent to the second sub-block and popping betas off of the beta stack and calculating soft symbol decisions for each encoded symbol within the sub-block adjacent to the second sub-block.
- 22. The decoder of claim 21, wherein the plurality of encoded symbols is encoded according to a rate control sequence having a plurality of rate controls arranged in a period.
- 23. The decoder of claim 22, wherein the SISO calculates the soft symbol decisions for each encoded symbol within the sub-block adjacent to the first sub-block according to the respective rate control associated with each encoded symbol.
- 24. The decoder of claim 22, wherein the SISO calculates the soft symbol decisions for each encoded symbol within the sub-block adjacent to the second sub-block according to the respective rate control associated with each encoded symbol.
- 25. The decoder of claim 22, wherein a rate control of the plurality of rate controls includes a modulation that includes a constellation having a mapping.
- 26. The decoder of claim 22, wherein a first rate control of the plurality of rate controls includes a first modulation that includes a first constellation having a first mapping; and
wherein a second rate control of the plurality of rate controls includes a second modulation that includes a second constellation having a second mapping.
- 27. The decoder of claim 21, wherein the interleaver/de-interleaver includes logically partitioned Random Access Memory (RAM) to support simultaneous read/write operations to at least two logically partitioned portions of the RAM.
- 28. The decoder of claim 21, wherein the SISO performs skip-back processing for each remaining sub-block within the plurality of sub-blocks.
- 29. The decoder of claim 21, further comprising an output processor that receives the plurality of soft symbol decisions and generates hard symbol decisions there from that are best estimates of the encoded symbols of the plurality of encoded symbols.
- 30. The decoder of claim 21, wherein the decoder is implemented within a communication receiver; and
wherein the communication receiver is contained within at least one of a satellite communication system, a High Definition Television (HDTV) communication system, a cellular communication system, a microwave communication system, a point-to-point communication system, a uni-directional communication system, a bi-directional communication system, a one to many communication system, and a fiber-optic communication system.
- 31. A received block processing method that decodes a block that includes plurality of encoded symbols arranged into a plurality of sub-blocks, the method comprising:
during a first time period, successively calculating check point values for forward metrics (alphas) of sub-blocks within a first half of the block; during the first time period, successively calculating check point values for backward metrics (betas) of sub-blocks within a second half of the block; during a second time period, upon reaching a final sub-block of the first half of the block, calculating an alpha for each encoded symbol contained therein and storing the calculated alphas; during the second time period, upon reaching a final sub-block of the second half of the block, calculating a beta for each encoded symbol contained therein and storing the calculated betas; wherein a third time period occurs after completing the processing of both the final sub-block of the first half of the block and the final sub-block of the second half of the block; during the third time period, successively calculating alphas for each symbol of the final sub-block of the second half of the block; during the third time period, successively calculating betas for each symbol of the final sub-block of the first half of the block; during the third time period, performing skip-back processing to successively re-calculate alphas for each encoded symbol of a sub-block that precedes the final sub-block within the first half of the block and storing the re-calculated alphas; and during the third time period, performing skip-back processing to successively re-calculate betas for each encoded symbol of a sub-block that precedes the final sub-block within the second half of the block and storing the re-calculated betas.
- 32. The method of claim 31, further comprising calculating a corresponding soft symbol decision for each encoded symbol within the final sub-block of the first half of the block using the stored alphas and the calculated betas.
- 33. The method of claim 32, further comprising calculating a hard symbol decision for each corresponding soft symbol decision.
- 34. The method of claim 31, further comprising calculating a corresponding soft symbol decision for each encoded symbol within the final sub-block of the second half of the block using the stored betas and the calculated alphas.
- 35. The method of claim 34, further comprising calculating a hard symbol decision for each corresponding soft symbol decision.
- 36. The method of claim 31, wherein, during the second time period, storing the alphas and the betas by pushing them onto an alpha/beta stack.
- 37. The method of claim 31, wherein the plurality of encoded symbols is encoded according to a rate control sequence having a plurality of rate controls arranged in a period.
- 38. The method of claim 37, wherein a rate control of the plurality of rate controls includes a modulation that includes a constellation having a mapping.
- 39. The method of claim 37, wherein a first rate control of the plurality of rate controls includes a first modulation that includes a first constellation having a first mapping; and
wherein a second rate control of the plurality of rate controls includes a second modulation that includes a second constellation having a second mapping.
- 40. The method of claim 31, wherein the method is performed within a decoder that is implemented within a communication receiver; and
wherein the communication receiver is contained within at least one of a satellite communication system, a High Definition Television (HDTV) communication system, a cellular communication system, a microwave communication system, a point-to-point communication system, a uni-directional communication system, a bi-directional communication system, a one to many communication system, and a fiber-optic communication system.
- 41. A received block processing method that decodes a block that includes plurality of encoded symbols arranged into a plurality of sub-blocks, the method comprising:
processing the encoded symbols of the plurality of encoded symbols in a first direction within the block, the first direction extending from a block beginning towards a block middle, to calculate forward metrics (alphas) and selectively storing alpha check point values associated with the sub-blocks of the plurality of sub-blocks that are processed in the first direction; processing the encoded symbols of the plurality of encoded symbols in a second direction within the block, the second direction extending from a block end towards the block middle, to calculate backward metrics (betas) and selectively storing betas check point values associated with the sub-blocks of the plurality of sub-blocks that are processed in the second direction; when substantially reaching the block middle when processing in the first direction and in the second direction, storing each alpha value and each beta value; when reaching the block middle after processing in the first direction, skipping back to a first sub-block that has been processed in the first direction and recalculating alphas for each encoded symbol contained in the first sub-block while simultaneously continuing to calculate betas in the second direction for a sub-block adjacent to the first sub-block, retrieving the stored alphas, and calculating soft symbol decisions for each encoded symbol within the sub-block adjacent to the first sub-block; and when reaching the block middle after processing in the second direction, skipping back to a second sub-block that has been processed in the second direction and re-calculating betas for each encoded symbol contained in the second sub-block while simultaneously continuing to calculate alphas in the first direction for a sub-block adjacent to the second sub-block, retrieving stored betas, and calculating soft symbol decisions for each encoded symbol within the sub-block adjacent to the second sub-block.
- 42. The method of claim 41, wherein the plurality of encoded symbols is encoded according to a rate control sequence having a plurality of rate controls arranged in a period.
- 43. The method of claim 42, further comprising calculating the soft symbol decisions for each encoded symbol within the sub-block adjacent to the first sub-block according to the respective rate control associated with each encoded symbol.
- 44. The method of claim 42, further comprising calculating the soft symbol decisions for each encoded symbol within the sub-block adjacent to the second sub-block according to the respective rate control associated with each encoded symbol.
- 45. The method of claim 42, wherein a rate control of the plurality of rate controls includes a modulation that includes a constellation having a mapping.
- 46. The method of claim 42, wherein a first rate control of the plurality of rate controls includes a first modulation that includes a first constellation having a first mapping; and
wherein a second rate control of the plurality of rate controls includes a second modulation that includes a second constellation having a second mapping.
- 47. The method of claim 41, further comprising calculating two extrinsic values for an encoded symbol of the plurality of encoded symbols.
- 48. The method of claim 41, further comprising performing skip-back processing for each remaining sub-block within the plurality of sub-blocks.
- 49. The method of claim 41, further comprising calculating a soft symbol decision using an extrinsic value for an encoded symbol of the plurality of encoded symbols; and
generating a hard symbol decision using the soft symbol decision that is a best estimate of the encoded symbol of the plurality of encoded symbols.
- 50. The method of claim 41, wherein the method is performed within a decoder that is implemented within a communication receiver; and
wherein the communication receiver is contained within at least one of a satellite communication system, a High Definition Television (HDTV) communication system, a cellular communication system, a microwave communication system, a point-to-point communication system, a uni-directional communication system, a bi-directional communication system, a one to many communication system, and a fiber-optic communication system.
CROSS REFERENCE TO RELATED PATENTS/PATENT APPLICATIONS
[0001] The present U.S. Utility patent application claims priority pursuant to 35 U.S.C. §119(e) to the following U.S. Provisional Patent Applications which are hereby incorporated herein by reference in their entirety and made part of the present U.S. Utility patent application for all purposes:
[0002] 1. U.S. Provisional Patent Application Serial No. 60/384,698, entitled “Variable code rate and signal constellation turbo trellis coded modulation codec,” (Attorney Docket No. BP 2333), filed May 31, 2002 (May 31, 2002), pending.
[0003] 2. U.S. Provisional Application Serial No. 60/434,734, “TTCM decoder design,” (Attorney Docket No. BP 2581), filed Dec. 18, 2002 (Dec. 18, 2002), pending.
[0004] The present U.S. Utility patent application also claims priority pursuant to 35 U.S.C. §120 to the following U.S. Utility patent application which is hereby incorporated herein by reference in its entirety and made part of the present U.S. Utility patent application for all purposes:
[0005] 1. U.S. Utility application Ser. No. 10/264,486, entitled “Variable code rate and signal constellation turbo trellis coded modulation codec,” (Attorney Docket No. BP 2333), filed Oct. 4, 2002 (Oct. 04, 2002), pending.
Provisional Applications (2)
|
Number |
Date |
Country |
|
60384698 |
May 2002 |
US |
|
60434734 |
Dec 2002 |
US |