WO2009158341A2 - Device having turbo decoding capabilities and a method for turbo decoding - Google Patents

Device having turbo decoding capabilities and a method for turbo decoding Download PDF

Info

Publication number
WO2009158341A2
WO2009158341A2 PCT/US2009/048268 US2009048268W WO2009158341A2 WO 2009158341 A2 WO2009158341 A2 WO 2009158341A2 US 2009048268 W US2009048268 W US 2009048268W WO 2009158341 A2 WO2009158341 A2 WO 2009158341A2
Authority
WO
WIPO (PCT)
Prior art keywords
turbo decoding
metrics
channel data
windows
decoding process
Prior art date
Application number
PCT/US2009/048268
Other languages
French (fr)
Other versions
WO2009158341A3 (en
Inventor
Guy Drory
Ron Bercovich
Yosef Kazaz
Aviel Livay
Yonatan Naor
Yuval Neeman
Original Assignee
Freescale Semiconductor Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Freescale Semiconductor Inc. filed Critical Freescale Semiconductor Inc.
Publication of WO2009158341A2 publication Critical patent/WO2009158341A2/en
Publication of WO2009158341A3 publication Critical patent/WO2009158341A3/en

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3905Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP decoding

Definitions

  • This disclosure relates generally to devices that have turbo decoding capabilities and to methods for turbo decoding.
  • WCDMA wide band code division multiple access
  • 3GPP2 third generation partnership project 2
  • LTE 3GPP long term evolution 3GPP
  • Turbo coding involves the use of a turbo encoder for encoding a code segment (i.e. a data packet) and a turbo decoder for the decoding of the encoded code segment.
  • a turbo encoder typically includes a pair of convolutional encoders, one of which receives information bits (i.e. systematic bits) while the other convolutional encoder receives interleaved information bits.
  • the information bits are shuffled (interleaved) in accordance with a specified interleaving scheme.
  • the pair of convolutional encoders output two sequences of parity bits that are modulated and transmitted to a receiver.
  • the systematic bits are also modulated and transmitted to the receiver.
  • the receiver has a turbo decoder that receives so-called channel data.
  • the turbo decoder processes channel data and interleaved channel data in order to reconstruct the data packets that were provided to the turbo encoder.
  • turbo decoding includes calculating branch metrics, path metrics (including forward state metrics and backward state metrics), and extrinsic information in a recursive manner.
  • a channel data block is usually partitioned to windows. The size of these windows is usually set to provide a good trade-off between turbo decoding overhead and memory requirement. In many prior art devices even if such a good trade off is provided, each window is preceded by a "warm up" period in order to compensate for the lack of proper initial conditions. Summary of the present invention
  • FIG. 1 schematically shows an example of an embodiment of a device that has turbo decoding capabilities
  • FIG. 2 schematically shows an example of an embodiment of a dual recursion unit
  • FIG. 3 - 6 schematically show examples of an embodiment of a device that has turbo decoding capabilities and transfer of information between components of the device;
  • FIG. 7 - 10 schematically show examples of an embodiment of a dual recursion element and transfer of information to and from components of the dual recursion element;
  • FIG. 1 1 schematically shows an example of an embodiment of forward state metric calculations
  • FIG. 12 schematically shows an example of an embodiment of backward state metric calculations
  • FIG. 13 schematically shows an example of an embodiment of a method for turbo decoding.
  • FIG. 1 schematically shows an example of an embodiment of device 10 that has turbo decoding capabilities.
  • a device that has turbo decoding capabilities can include: (i) a controller adapted to control multiple iterations of a turbo decoding process until a turbo decoding process is completed; (ii) a group of recursion units that comprises multiple forward recursion units and multiple backward recursion units. The group may be adapted to calculate in parallel, at least forward state metrics and backward state metrics of multiple windows, during a current iteration out of the multiple iterations; and (iii) an initialization unit adapted to initialize at least one state metric of multiple windows of a channel data block for the current iteration of the turbo decoding process by at least one corresponding state metric that was calculated during a previous iteration of the turbo decoding process.
  • Device 10 can have information (data and/or media) processing capabilities.
  • Device 10 can be a base station, a part of a base station, a mobile device and the like.
  • device 10 includes various components such as controller 20, group of recursion units 30, hard decision unit 70, initialization unit 80, channel data memory unit 90, and extrinsic information memory unit 100.
  • Controller 20 is adapted to control multiple iterations of a turbo decoding process until this process is completed. Controller 20 is connected to various components of device 10 such as group of recursion units 30, hard decision unit 70, initialization unit 80, and then like. Controller 20 can also be connected to various memory modules such as channel data memory unit 90 and extrinsic information memory unit 100. For simplicity of explanation, these connections are not shown in
  • Group of recursion units 30 includes multiple forward recursion units and multiple backward recursion units.
  • a forward recursion unit can calculate forward state metrics. Additionally, the unit may calculate at least one of the following: branch metrics, extrinsic information and hard decisions.
  • a backward recursion unit can calculate backward state metrics. Additionally, a backward recursion unit may calculate at least one of the following: branch metrics, extrinsic information and hard decisions. Pairs of forward and backward recursion units can be integrated to form dual recursion units (DRUs).
  • DRUs dual recursion units
  • Hard decision unit 70 stores hard decisions.
  • Channel data memory unit 90 stores channel data, usually one or two windows of channel data block at a time. It can store the whole data channel block or any portion thereof.
  • Extrinsic information memory unit 100 stores extrinsic information.
  • device 10 implements both a so-called X-architecture and a next iteration initialization (Nil) technique.
  • the X-architecture implies that forward state metrics and backward state metrics of certain windows are calculated in parallel without a substantial latency between the calculation of the forward state metrics and backward state metrics of the certain windows.
  • Nil implies that the initial values of multiple path metrics for a so-celled current iteration of the turbo decoding process are set to be path metrics that were calculated during a previous iteration of the turbo decoding process. The combination of these techniques speeds up the turbo decoding process.
  • path metrics that were calculated for a certain window can be used to initiate path metrics of an adjacent window.
  • FIG. 2 schematically shows an example of an embodiment of dual recursion unit (DRU) 31.
  • DRU dual recursion unit
  • DRU 31 includes: channel memories 311 and 312, multiplexers 313 and 314, forward recursion unit 41 , backward recursion unit 51 , alpha memory 315, beta memory 316, extrinsic memories 317 and 318 and multiplexers 319 and 310.
  • Alpha memory 315 and beta memory 316 are connected to forward recursion unit 41 and to backward recursion unit 51.
  • Forward recursion unit 41 is connected to multiplexer 313 for receiving channel data and is connected to multiplexer 319 for receiving extrinsic information.
  • Backward recursion unit 51 is connected to multiplexer 314 for receiving channel data and is connected to multiplexer 310 for receiving extrinsic information.
  • Multiplexer 313 can select between channel data received by an input of
  • Multiplexer 314 can select between channel data received by an input of DRU 31 (thereby bypassing channel memory 312) and channel data (previously received by DRU 31 ) that is stored in channel memory 312.
  • Multiplexer 317 can select between extrinsic information received by an input of DRU 31 (thereby bypassing extrinsic memory 317) and channel data (previously received by DRU 31 ) that is stored in extrinsic memory 317.
  • Multiplexer 310 can select between extrinsic information received by an input of DRU 31 (thereby bypassing extrinsic memory 318) and extrinsic information (previously received by DRU 31 ) that is stored in extrinsic memory 318.
  • Table 1 summarizes two iterations of a turbo decoding process, starting from the first iteration.
  • Table 1 includes various acronyms, for example, DRU stands for a dual recursive unit (such as 31 , 32, 33 or 34), IU stands for initialization unit 80, ZTT stands for a zero Trellis termination algorithm, TB stands for a tail biting algorithm, HDU is hard decision unit 70.
  • DRU stands for a dual recursive unit (such as 31 , 32, 33 or 34)
  • IU stands for initialization unit 80
  • ZTT stands for a zero Trellis termination algorithm
  • TB stands for a tail biting algorithm
  • HDU hard decision unit 70.
  • alpha is a forward state metric
  • beta is a backward state metric.
  • Table 1 includes four columns - the leftmost column (titled “stage”) indicates the stage (initialization of an iteration, iteration itself, end of iteration), the next column (titled “Transfer of information, non-DRU operations”) indicates transfer of information between components (mostly information transfers) and operations that are executed by components that differ from DRUs, the next column (titled “Interaction within DRU”) indicates operations that occur within a DRU, and the rightmost column (titled” FIG.) indicates which are the relevant figures.
  • the calculation process of path metrics of a window includes a north portion and a south portion. The calculation process starts by the north portion and ends by the south portion.
  • the north portion includes calculating the leftmost alpha till the middle of window alpha and calculating the rightmost beta till the middle of the window beta.
  • the south portion starts after the middle of window alphas and betas were calculated and ends when the rightmost alpha and the leftmost beta are calculated.
  • FIG. 3 - FIG. 6 illustrate the transfer of information between components while FIG. 7 - FIG. 10 illustrate the transfer of information between DRU components and other components. These information transfers are illustrated by dashed arrows.
  • FIG. 11 illustrates the calculation of forward state metrics by DRUs 31 , 32, 33 and 34 during four iterations.
  • FIG. 12 illustrates the calculation of backward state metrics by DRUs 31 , 32, 33 and 34 during two iterations.
  • Alpha and beta calculations are illustrates by oriented arrows.
  • ZTT or BT initialization of path are indicates by black circles.
  • Initialization of path metrics between the first half of an iteration to a second half are indicated by a hollow pentagon.
  • Initializations between iterations are indicated by hollow circles.
  • Table 2 summarizes the operations illustrated in FIG. 1 1 and FIG. 12.
  • Table 2 is based upon the following assumptions: (i) there are eight windows that are referred to as WO - W7, WO being the leftmost window; (ii) a ZTT algorithm is applies and it sets all alphas except the leftmost alpha to zero, it also sets all betas except the rightmost beta to zero, (iii) the odd iterations are iterations that involve processing channel data while the even iterations are iterations that involve processing interleaved channel data. During the first and third quarters of each iteration non- interleaved channel data is received and processed. During the second and fourth quarter of each iteration interleaved channel data is received and processed.
  • a north portion of one or more windows can be calculated in parallel to one or more south portions of one or other windows.
  • FIG. 13 schematically shows an example of an embodiment of method
  • Method 200 starts by initialization stage 220. During the initialization stage the number of iterations can be set, ZTT information or TB information can be received and channel data can be stored in a memory unit that can be accessed
  • DRUs (directly or indirectly) by DRUs.
  • Stage 220 is followed by stage 240 of performing a first iteration of a turbo decoding process.
  • Stage 220 can include initializing at least one state metric, for example by applying tail biting algorithm or a zero Trellis termination algorithm. These algorithms can be used for initializing the leftmost alpha and the rightmost betas during stage
  • Stage 240 is followed by stage 260 of performing another iteration of the turbo decoding process.
  • Stage 260 includes stage 262 of initializing at least one state metric of multiple windows of a channel data block for a current iteration of the turbo decoding process by at least one corresponding state metric that was calculated during a previous iteration of the turbo decoding process.
  • the previous iteration can be the penultimate iteration.
  • Stage 262 is followed by stage 264 of calculating in parallel, at least forward state metrics and backward state metrics of the multiple windows, during the current iteration.
  • stage 264 also can include calculating other elements such as but not limited to branch metrics, extrinsic information, hard decisions, or a combination thereof.
  • stage 260 can include multiple data transfers between components of a device, multiple data transfers to and from DRU components and multiple initialization stages.
  • Stage 260 can include calculating extrinsic information and initializing the at least one state metric by at least one corresponding state metric that was calculated during a last iteration during which extrinsic calculation was calculated in response to interleaved channel data.
  • stage 262 of initializing can include initializing forwards metrics of (K-1 ) windows corresponding forward metrics that were calculated during the previous iteration.
  • Stage 264 can include calculating in parallel forward state metrics and backward state metrics of four windows out of eight windows of the channel data block, during the current iteration.
  • Stage 260 is followed by stage 280 of determining whether the turbo decoding process ended or whether additional iterations of the turbo decoding process are required. Usually the number of iterations is set in advance and stage 280 includes comparing the number of iterations to the predefined iterations limit. The turbo process can be stopped according to results of the turbo decoding. [0056] If the turbo decoding process did not end then stage 280 is followed by stage 260, else stage 280 is followed by "END" stage 300.
  • any two components herein combined to achieve a particular functionality can be seen as “associated with” each other such that the desired functionality is achieved, irrespective of architectures or intermedial components.
  • any two components so associated can also be viewed as being “operably connected,” or “operably coupled,” to each other to achieve the desired functionality.
  • the invention is not limited to physical devices or units implemented in non-programmable hardware but can also be applied in programmable devices or units able to perform the desired device functions by operating in accordance with suitable program code.
  • the devices may be physically distributed over a number of apparatuses, while functionally operating as a single device.
  • the specifications and drawings are, accordingly, to be regarded in an illustrative rather than in a restrictive sense.

Abstract

A device and a method for turbo decoding. The method includes performing multiple iterations of a turbo decoding process until a turbo decoding process is completed. The performing comprises repeating the stages of: (i) initializing at least one state metric of multiple windows of a channel data block for a current iteration of the turbo decoding process by at least one corresponding state metric that was calculated during a previous iteration of the turbo decoding process; and (ii) calculating in parallel, at least forward state metrics and backward state metrics of the multiple windows, during the current iteration.

Description

DEVICE HAVING TURBO DECODING CAPABILITIES AND A METHOD FOR TURBO DECODING
Field of the invention
[0001] This disclosure relates generally to devices that have turbo decoding capabilities and to methods for turbo decoding.
Background of the invention
[0002] Wireless communication systems are widely deployed to provide various types of communications such as voice and data. One such system is wide band code division multiple access (WCDMA), which has been adopted in various competing wireless communication standards, e.g. third generation partnership project 3GPP, 3GPP project 2 (3GPP2) and long term evolution 3GPP (LTE 3GPP). [0003] To overcome data corruption that can occur during RF transmission, the different wireless communication standards typically include some form of channel coding, where one common channel coding technique is turbo coding. [0004] Turbo coding involves the use of a turbo encoder for encoding a code segment (i.e. a data packet) and a turbo decoder for the decoding of the encoded code segment. A turbo encoder typically includes a pair of convolutional encoders, one of which receives information bits (i.e. systematic bits) while the other convolutional encoder receives interleaved information bits. The information bits are shuffled (interleaved) in accordance with a specified interleaving scheme. The pair of convolutional encoders output two sequences of parity bits that are modulated and transmitted to a receiver. The systematic bits are also modulated and transmitted to the receiver.
[0005] The receiver has a turbo decoder that receives so-called channel data. The turbo decoder processes channel data and interleaved channel data in order to reconstruct the data packets that were provided to the turbo encoder. Briefly, turbo decoding includes calculating branch metrics, path metrics (including forward state metrics and backward state metrics), and extrinsic information in a recursive manner. [0006] A channel data block is usually partitioned to windows. The size of these windows is usually set to provide a good trade-off between turbo decoding overhead and memory requirement. In many prior art devices even if such a good trade off is provided, each window is preceded by a "warm up" period in order to compensate for the lack of proper initial conditions. Summary of the present invention
[0007] The present invention provides a method and a device as described in the accompanying claims. Specific embodiments of the invention are set forth in the dependent claims. These and other aspects of the invention will be apparent from and elucidated with reference to the embodiments described hereinafter.
Brief description of the drawings
[0008] Further details, aspects, and embodiments of the invention will be described, by way of example only, with reference to the drawings.
[0009] FIG. 1 schematically shows an example of an embodiment of a device that has turbo decoding capabilities;
[0010] FIG. 2 schematically shows an example of an embodiment of a dual recursion unit;
[001 1] FIG. 3 - 6 schematically show examples of an embodiment of a device that has turbo decoding capabilities and transfer of information between components of the device;
[0012] FIG. 7 - 10 schematically show examples of an embodiment of a dual recursion element and transfer of information to and from components of the dual recursion element;
[0013] FIG. 1 1 schematically shows an example of an embodiment of forward state metric calculations;
[0014] FIG. 12 schematically shows an example of an embodiment of backward state metric calculations; and
[0015] FIG. 13 schematically shows an example of an embodiment of a method for turbo decoding.
Detailed description of the drawings
[0016] Because the apparatus implementing the present invention is, for the most part, composed of electronic components and circuits known to those skilled in the art, circuit details will not be explained in any greater extent than that considered necessary as illustrated above, for the understanding and appreciation of the underlying concepts of the present invention and in order not to obfuscate or distract from the teachings of the present invention.
[0017] In the following specification, the invention will be described with reference to specific examples of embodiments of the invention. It will, however, be evident that various modifications and changes may be made therein without departing from the broader spirit and scope of the invention as set forth in the appended claims.
[0018] It has been found that FIG. 1 schematically shows an example of an embodiment of device 10 that has turbo decoding capabilities.
[0019] A device that has turbo decoding capabilities can include: (i) a controller adapted to control multiple iterations of a turbo decoding process until a turbo decoding process is completed; (ii) a group of recursion units that comprises multiple forward recursion units and multiple backward recursion units. The group may be adapted to calculate in parallel, at least forward state metrics and backward state metrics of multiple windows, during a current iteration out of the multiple iterations; and (iii) an initialization unit adapted to initialize at least one state metric of multiple windows of a channel data block for the current iteration of the turbo decoding process by at least one corresponding state metric that was calculated during a previous iteration of the turbo decoding process.
[0020] Device 10 can have information (data and/or media) processing capabilities. Device 10 can be a base station, a part of a base station, a mobile device and the like.
[0021] In the show example, device 10 includes various components such as controller 20, group of recursion units 30, hard decision unit 70, initialization unit 80, channel data memory unit 90, and extrinsic information memory unit 100.
[0022] Controller 20 is adapted to control multiple iterations of a turbo decoding process until this process is completed. Controller 20 is connected to various components of device 10 such as group of recursion units 30, hard decision unit 70, initialization unit 80, and then like. Controller 20 can also be connected to various memory modules such as channel data memory unit 90 and extrinsic information memory unit 100. For simplicity of explanation, these connections are not shown in
FIG. 1.
[0023] Group of recursion units 30 includes multiple forward recursion units and multiple backward recursion units. A forward recursion unit can calculate forward state metrics. Additionally, the unit may calculate at least one of the following: branch metrics, extrinsic information and hard decisions. A backward recursion unit can calculate backward state metrics. Additionally, a backward recursion unit may calculate at least one of the following: branch metrics, extrinsic information and hard decisions. Pairs of forward and backward recursion units can be integrated to form dual recursion units (DRUs). [0024] In the example of FIG. 1 , each DRU out of 31 - 34 is connected to hard decision unit 70, to initialization unit 80, to channel data memory unit 90, and to extrinsic information memory unit 100.
[0025] Hard decision unit 70 stores hard decisions.
[0026] Channel data memory unit 90 stores channel data, usually one or two windows of channel data block at a time. It can store the whole data channel block or any portion thereof.
[0027] Extrinsic information memory unit 100 stores extrinsic information.
[0028] In this example, device 10 implements both a so-called X-architecture and a next iteration initialization (Nil) technique. The X-architecture implies that forward state metrics and backward state metrics of certain windows are calculated in parallel without a substantial latency between the calculation of the forward state metrics and backward state metrics of the certain windows. Nil implies that the initial values of multiple path metrics for a so-celled current iteration of the turbo decoding process are set to be path metrics that were calculated during a previous iteration of the turbo decoding process. The combination of these techniques speeds up the turbo decoding process.
[0029] In addition, path metrics that were calculated for a certain window can be used to initiate path metrics of an adjacent window.
[0030] FIG. 2 schematically shows an example of an embodiment of dual recursion unit (DRU) 31.
[0031] The shown example of DRU 31 includes: channel memories 311 and 312, multiplexers 313 and 314, forward recursion unit 41 , backward recursion unit 51 , alpha memory 315, beta memory 316, extrinsic memories 317 and 318 and multiplexers 319 and 310.
[0032] Alpha memory 315 and beta memory 316 are connected to forward recursion unit 41 and to backward recursion unit 51. Forward recursion unit 41 is connected to multiplexer 313 for receiving channel data and is connected to multiplexer 319 for receiving extrinsic information. Backward recursion unit 51 is connected to multiplexer 314 for receiving channel data and is connected to multiplexer 310 for receiving extrinsic information.
[0033] Multiplexer 313 can select between channel data received by an input of
DRU 31 (thereby bypassing channel memory 31 1 ) and channel data (previously received by DRU 31 ) that is stored in channel memory 311. Multiplexer 314 can select between channel data received by an input of DRU 31 (thereby bypassing channel memory 312) and channel data (previously received by DRU 31 ) that is stored in channel memory 312. [0034] Multiplexer 317 can select between extrinsic information received by an input of DRU 31 (thereby bypassing extrinsic memory 317) and channel data (previously received by DRU 31 ) that is stored in extrinsic memory 317. Multiplexer 310 can select between extrinsic information received by an input of DRU 31 (thereby bypassing extrinsic memory 318) and extrinsic information (previously received by DRU 31 ) that is stored in extrinsic memory 318.
[0035] Various examples of a turbo decoding process will be explained in further details in relation to FIG. 3 - FIG. 10.
[0036] Table 1 summarizes two iterations of a turbo decoding process, starting from the first iteration. Table 1 includes various acronyms, for example, DRU stands for a dual recursive unit (such as 31 , 32, 33 or 34), IU stands for initialization unit 80, ZTT stands for a zero Trellis termination algorithm, TB stands for a tail biting algorithm, HDU is hard decision unit 70. In addition, alpha is a forward state metric and beta is a backward state metric.
[0037] Table 1 includes four columns - the leftmost column (titled "stage") indicates the stage (initialization of an iteration, iteration itself, end of iteration), the next column (titled "Transfer of information, non-DRU operations") indicates transfer of information between components (mostly information transfers) and operations that are executed by components that differ from DRUs, the next column (titled "Interaction within DRU") indicates operations that occur within a DRU, and the rightmost column (titled" FIG.) indicates which are the relevant figures. [0038] It is noted that the calculation process of path metrics of a window includes a north portion and a south portion. The calculation process starts by the north portion and ends by the south portion. The north portion includes calculating the leftmost alpha till the middle of window alpha and calculating the rightmost beta till the middle of the window beta. The south portion starts after the middle of window alphas and betas were calculated and ends when the rightmost alpha and the leftmost beta are calculated.
[0039] FIG. 3 - FIG. 6 illustrate the transfer of information between components while FIG. 7 - FIG. 10 illustrate the transfer of information between DRU components and other components. These information transfers are illustrated by dashed arrows.
Figure imgf000007_0001
Figure imgf000008_0001
Figure imgf000009_0001
Figure imgf000010_0001
TABLE 1
[0040] FIG. 11 illustrates the calculation of forward state metrics by DRUs 31 , 32, 33 and 34 during four iterations. FIG. 12 illustrates the calculation of backward state metrics by DRUs 31 , 32, 33 and 34 during two iterations. Alpha and beta calculations are illustrates by oriented arrows. ZTT or BT initialization of path are indicates by black circles. Initialization of path metrics between the first half of an iteration to a second half are indicated by a hollow pentagon. Initializations between iterations are indicated by hollow circles. [0041] Table 2 summarizes the operations illustrated in FIG. 1 1 and FIG. 12. Table 2 is based upon the following assumptions: (i) there are eight windows that are referred to as WO - W7, WO being the leftmost window; (ii) a ZTT algorithm is applies and it sets all alphas except the leftmost alpha to zero, it also sets all betas except the rightmost beta to zero, (iii) the odd iterations are iterations that involve processing channel data while the even iterations are iterations that involve processing interleaved channel data. During the first and third quarters of each iteration non- interleaved channel data is received and processed. During the second and fourth quarter of each iteration interleaved channel data is received and processed.
Figure imgf000011_0001
Figure imgf000012_0001
TABLE 2 [0042] It is noted that is BT is applied then at the initialization of the second and fourth quarters of the each of the first and iteration the beta pf W7 equals the last alphas of W1 from a previous quarter.
[0043] It is further noted that a north portion of one or more windows can be calculated in parallel to one or more south portions of one or other windows.
[0044] FIG. 13 schematically shows an example of an embodiment of method
200 for turbo decoding.
[0045] Method 200 starts by initialization stage 220. During the initialization stage the number of iterations can be set, ZTT information or TB information can be received and channel data can be stored in a memory unit that can be accessed
(directly or indirectly) by DRUs.
[0046] Stage 220 is followed by stage 240 of performing a first iteration of a turbo decoding process.
[0047] Stage 220 can include initializing at least one state metric, for example by applying tail biting algorithm or a zero Trellis termination algorithm. These algorithms can be used for initializing the leftmost alpha and the rightmost betas during stage
260.
[0048] Stage 240 is followed by stage 260 of performing another iteration of the turbo decoding process.
[0049] Stage 260 includes stage 262 of initializing at least one state metric of multiple windows of a channel data block for a current iteration of the turbo decoding process by at least one corresponding state metric that was calculated during a previous iteration of the turbo decoding process. The previous iteration can be the penultimate iteration.
[0050] Stage 262 is followed by stage 264 of calculating in parallel, at least forward state metrics and backward state metrics of the multiple windows, during the current iteration. The term "at least" indicates that stage 264 also can include calculating other elements such as but not limited to branch metrics, extrinsic information, hard decisions, or a combination thereof.
[0051] Various example of stage 260 were illustrates by tables 1 and 2. Referring to the example of previous figures, stage 260 can include multiple data transfers between components of a device, multiple data transfers to and from DRU components and multiple initialization stages.
[0052] Stage 260 can include calculating extrinsic information and initializing the at least one state metric by at least one corresponding state metric that was calculated during a last iteration during which extrinsic calculation was calculated in response to interleaved channel data. [0053] Assuming that there are K windows within the channel data block then stage 262 of initializing can include initializing forwards metrics of (K-1 ) windows corresponding forward metrics that were calculated during the previous iteration. [0054] Stage 264 can include calculating in parallel forward state metrics and backward state metrics of four windows out of eight windows of the channel data block, during the current iteration.
[0055] Stage 260 is followed by stage 280 of determining whether the turbo decoding process ended or whether additional iterations of the turbo decoding process are required. Usually the number of iterations is set in advance and stage 280 includes comparing the number of iterations to the predefined iterations limit. The turbo process can be stopped according to results of the turbo decoding. [0056] If the turbo decoding process did not end then stage 280 is followed by stage 260, else stage 280 is followed by "END" stage 300.
[0057] Those skilled in the art will recognize that boundaries between the functionality of the above described operations merely illustrative. The functionality of multiple operations may be combined into a single operation, and/or the functionality of a single operation may be distributed in additional operations. Moreover, alternative embodiments may include multiple instances of a particular operation, and the order of operations may be altered in various other embodiments. [0058] Thus, it is to be understood that the architectures depicted herein are merely exemplary, and that in fact many other architectures can be implemented which achieve the same functionality. In an abstract, but still definite sense, any arrangement of components to achieve the same functionality is effectively "associated" such that the desired functionality is achieved. Hence, any two components herein combined to achieve a particular functionality can be seen as "associated with" each other such that the desired functionality is achieved, irrespective of architectures or intermedial components. Likewise, any two components so associated can also be viewed as being "operably connected," or "operably coupled," to each other to achieve the desired functionality. [0059] In addition, the invention is not limited to physical devices or units implemented in non-programmable hardware but can also be applied in programmable devices or units able to perform the desired device functions by operating in accordance with suitable program code. Furthermore, the devices may be physically distributed over a number of apparatuses, while functionally operating as a single device. [0060] However, other modifications, variations, and alternatives are also possible. The specifications and drawings are, accordingly, to be regarded in an illustrative rather than in a restrictive sense.
[0061] The word 'comprising' does not exclude the presence of other elements or steps then those listed in a claim. Moreover, the terms "front," "back," "top," "bottom," "over," "under" and the like in the description and in the claims, if any, are used for descriptive purposes and not necessarily for describing permanent relative positions. It is understood that the terms so used are interchangeable under appropriate circumstances such that the embodiments of the invention described herein are, for example, capable of operation in other orientations than those illustrated or otherwise described herein.
[0062] Furthermore, the terms "a" or "an," as used herein, are defined as one or more than one. Also, the use of introductory phrases such as "at least one" and "one or more" in the claims should not be construed to imply that the introduction of another claim element by the indefinite articles "a" or "an" limits any particular claim containing such introduced claim element to inventions containing only one such element, even when the same claim includes the introductory phrases "one or more" or "at least one" and indefinite articles such as "a" or "an." The same holds true for the use of definite articles. Unless stated otherwise, terms such as "first" and "second" are used to arbitrarily distinguish between the elements such terms describe. Thus, these terms are not necessarily intended to indicate temporal or other prioritization of such elements. The mere fact that certain measures are recited in mutually different claims does not indicate that a combination of these measures cannot be used to advantage.

Claims

CLAIMSWe claim
1. A method for turbo decoding, the method comprises: performing multiple iterations of a turbo decoding process until a turbo decoding process is completed; wherein the performing comprises repeating the stages of: initializing at least one state metric of multiple windows of a channel data block for a current iteration of the turbo decoding process by at least one corresponding state metric that was calculated during a previous iteration of the turbo decoding process; and calculating in parallel, at least forward state metrics and backward state metrics of the multiple windows, during the current iteration.
2. The method according to claim 1 comprising: calculating extrinsic data in response to interleaved channel data; and initializing the at least one state metric by at least one corresponding state metric that was calculated during a last iteration during which extrinsic calculation was calculated in response to interleaved channel data.
3. The method according to claim 1 wherein there are K windows within the channel data block and wherein the initializing comprises initializing forwards metrics of (K-1 ) windows corresponding forward metrics that were calculated during the previous iteration.
4. The method according to claim 1 comprising calculating in parallel forward state metrics and backward state metrics of four windows out of eight windows of the channel data block.
5. The method according to claim 1 comprising performing a zero trellis termination initialization of a forward metric of a leftmost window.
6. The method according to claim 1 comprising performing a tail biting initialization of a forward metric of a leftmost window.
7. A device having turbo encoding capabilities, the device comprises: a controller adapted to control multiple iterations of a turbo decoding process until a turbo decoding process is completed; a group of recursion units that comprises multiple forward recursion units and multiple backward recursion units; the group is adapted calculate in parallel, at least forward state metrics and backward state metrics of the multiple windows, during a current iteration out of the multiple iterations; and an initialization unit adapted to initialize at least one state metric of multiple windows of a channel data block for the current iteration of the turbo decoding process by at least one corresponding state metric that was calculated during a previous iteration of the turbo decoding process.
8. The device according to claim 7 wherein the group of recursion units calculates extrinsic data in response to interleaved channel data; and wherein the initialization unit initializes the at least one state metric by at least one corresponding state metric that was calculated during a last iteration during which extrinsic calculation was calculated in response to interleaved channel data.
9. The device according to claim 7 wherein there are K windows within the channel data block and wherein the initialization unit initializes forwards metrics of (K- 11 ) windows corresponding forward metrics that were calculated during the previous iteration.
10. The device according to claim 7 wherein the group of recursion units comprises four forward state metrics calculators and four backward state metrics calculators that operate in parallel to each other.
11. The device according to claim 7 wherein the initialization unit performs a zero Trellis termination initialization of a forward metric of a leftmost window.
12. The device according to claim 7 wherein the initialization unit performs a tail biting initialization of a forward metric of a leftmost window.
PCT/US2009/048268 2008-06-27 2009-06-23 Device having turbo decoding capabilities and a method for turbo decoding WO2009158341A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/163,638 US8171384B2 (en) 2008-06-27 2008-06-27 Device having turbo decoding capabilities and a method for turbo decoding
US12/163,638 2008-06-27

Publications (2)

Publication Number Publication Date
WO2009158341A2 true WO2009158341A2 (en) 2009-12-30
WO2009158341A3 WO2009158341A3 (en) 2010-05-06

Family

ID=41445262

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2009/048268 WO2009158341A2 (en) 2008-06-27 2009-06-23 Device having turbo decoding capabilities and a method for turbo decoding

Country Status (2)

Country Link
US (1) US8171384B2 (en)
WO (1) WO2009158341A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012146124A1 (en) * 2011-04-26 2012-11-01 中兴通讯股份有限公司 Turbo decoding method and device

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8543881B2 (en) * 2009-09-11 2013-09-24 Qualcomm Incorporated Apparatus and method for high throughput unified turbo decoding
US8719658B2 (en) * 2010-09-09 2014-05-06 Qualcomm Incorporated Accessing memory during parallel turbo decoding

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030014700A1 (en) * 1999-02-18 2003-01-16 Alexandre Giulietti Method and apparatus for interleaving, deinterleaving and combined interleaving-deinterleaving
US20070055919A1 (en) * 2005-09-07 2007-03-08 Li Victor O Embedded state metric storage for MAP decoder of turbo codes
US20070177696A1 (en) * 2006-01-27 2007-08-02 Pei Chen Map decoder with bidirectional sliding window architecture
KR20080038682A (en) * 2006-10-30 2008-05-07 엘지전자 주식회사 Method for providing interleaver, method for interleaving, both with continuous length, and method for decoding using the same

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0794717A (en) 1993-09-27 1995-04-07 Toshiba Corp Semiconductor device and manufacture thereof
FI113721B (en) * 1999-12-15 2004-05-31 Nokia Corp Method and receiver for iteratively improving the channel estimate
US20020021770A1 (en) * 2000-05-03 2002-02-21 Beerel Peter A. Reduced-latency soft-in/soft-out module
FI109162B (en) * 2000-06-30 2002-05-31 Nokia Corp Method and arrangement for decoding a convolution-coded codeword
US6829313B1 (en) * 2000-07-17 2004-12-07 Motorola, Inc. Sliding window turbo decoder
US6745352B2 (en) * 2000-12-13 2004-06-01 Ericsson Inc. Methods of estimating error rates for communications received using iterative processing and related receivers
DE60116923T2 (en) 2001-07-10 2006-07-27 Motorola, Inc., Schaumburg Improved high-speed architecture "maximum a posteriori" (MAP) with optimized memory size and power consumption
US7092464B2 (en) * 2002-01-23 2006-08-15 Bae Systems Information And Electronic Systems Integration Inc. Multiuser detection with targeted error correction coding
JP3549519B2 (en) * 2002-04-26 2004-08-04 沖電気工業株式会社 Soft output decoder
US7587004B2 (en) * 2002-09-18 2009-09-08 St-Ericsson Sa Method for decoding data using windows of data
US7346833B2 (en) * 2002-11-05 2008-03-18 Analog Devices, Inc. Reduced complexity turbo decoding scheme

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030014700A1 (en) * 1999-02-18 2003-01-16 Alexandre Giulietti Method and apparatus for interleaving, deinterleaving and combined interleaving-deinterleaving
US20070055919A1 (en) * 2005-09-07 2007-03-08 Li Victor O Embedded state metric storage for MAP decoder of turbo codes
US20070177696A1 (en) * 2006-01-27 2007-08-02 Pei Chen Map decoder with bidirectional sliding window architecture
KR20080038682A (en) * 2006-10-30 2008-05-07 엘지전자 주식회사 Method for providing interleaver, method for interleaving, both with continuous length, and method for decoding using the same

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
DOBKIN, ROSTISLAV ET AL.: 'PARALLEL VLSI ARCHITECTURE FOR MAP TURBO DECODER' IEEE 2002 PIMRC vol. 1, 15 September 2002, pages 384 - 388 *
HSU, JAH-MING ET AL.: 'A PARALLEL DECODING SCHEME FOR TURBO CODES' IEEE '98 ISCAS vol. 4, 31 May 1998 - 03 June 1998, pages 445 - 448 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012146124A1 (en) * 2011-04-26 2012-11-01 中兴通讯股份有限公司 Turbo decoding method and device

Also Published As

Publication number Publication date
WO2009158341A3 (en) 2010-05-06
US20090327834A1 (en) 2009-12-31
US8171384B2 (en) 2012-05-01

Similar Documents

Publication Publication Date Title
US8443265B2 (en) Method and apparatus for map decoding and turbo decoder using the same
EP2077031B1 (en) Sliding-window method and apparatus for soft input/soft output processing
US7191377B2 (en) Combined turbo-code/convolutional code decoder, in particular for mobile radio systems
US7929646B2 (en) Map decoder with bidirectional sliding window architecture
US7536630B2 (en) Reconfigurable Viterbi/turbo decoder
WO2002052734A1 (en) Apparatus and method for stopping iterative decoding in a cdma mobile communication system
US20120066566A1 (en) Accessing memory during parallel turbo decoding
US9819445B1 (en) Method and apparatus for joint rate matching and deinterleaving
EP2313979B1 (en) Methods for programmable decoding of a plurality of code types
EP2599228A1 (en) Decoding technique for tail-biting codes
EP1471677A1 (en) Method of blindly detecting a transport format of an incident convolutional encoded signal, and corresponding convolutional code decoder
US20130007568A1 (en) Error correcting code decoding device, error correcting code decoding method and error correcting code decoding program
US8171384B2 (en) Device having turbo decoding capabilities and a method for turbo decoding
US7979781B2 (en) Method and system for performing Viterbi decoding using a reduced trellis memory
KR19990081470A (en) Method of terminating iterative decoding of turbo decoder and its decoder
Ampadu et al. An efficient hardware interleaver for 3G turbo decoding
US7333419B2 (en) Method to improve performance and reduce complexity of turbo decoder
EP1695444B1 (en) A decoder
US20050172200A1 (en) Data receiving method and apparatus
JP2001257602A (en) Method and device for data error correction
CN107733445B (en) Turbo code word generating method and decoding method
KR100627723B1 (en) Parallel decoding method for turbo decoding and turbo decoder using the same
US8413033B2 (en) Device and method for calculating backward state metrics of a trellis
Madhukumar et al. Application of Fixed Point Turbo Decoding Algorithm for Throughput Enhancement of SISO Parallel Advanced LTE Turbo Decoders.
WO2004038928A1 (en) Communication unit and method of decoding

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09770875

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 09770875

Country of ref document: EP

Kind code of ref document: A2