EP1564893B1 - Turbo Dekodierer, Turbo Dekodiermethode und Computerprogramm hierfür - Google Patents
Turbo Dekodierer, Turbo Dekodiermethode und Computerprogramm hierfür Download PDFInfo
- Publication number
- EP1564893B1 EP1564893B1 EP05001013A EP05001013A EP1564893B1 EP 1564893 B1 EP1564893 B1 EP 1564893B1 EP 05001013 A EP05001013 A EP 05001013A EP 05001013 A EP05001013 A EP 05001013A EP 1564893 B1 EP1564893 B1 EP 1564893B1
- Authority
- EP
- European Patent Office
- Prior art keywords
- sub
- value
- path metric
- alpha
- beta
- Prior art date
- Legal status (The legal status 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 status listed.)
- Not-in-force
Links
- 238000000034 method Methods 0.000 title claims description 21
- 238000012545 processing Methods 0.000 claims description 124
- 238000004891 communication Methods 0.000 claims description 6
- 230000010365 information processing Effects 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 description 35
- 238000010586 diagram Methods 0.000 description 23
- 230000009897 systematic effect Effects 0.000 description 15
- 230000008569 process Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 238000007476 Maximum Likelihood Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/3972—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using sliding window techniques or parallel windows
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/29—Coding, 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/2957—Turbo codes and decoding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3723—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using means or methods for the initialisation of the decoder
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/3905—Maximum 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
- the present invention relates to a turbo decoder, a turbo decoding method, and an operating program of the same and more particularly to improvements in a high-performance and high-reliability turbo decoding method to decode a turbo code to be used in fields of communication systems and information processing systems.
- turbo code method which uses a so-called turbo code as an error-correcting code enabling a characteristic being near to the Shannon limit to be obtained is being studied and developed by C. Berrou et. al., as a high-performance and high-reliability coding method to be used in a wide range of communications and information processing including a mobile telecommunication system, information storage system, digital broadcasting system, and a like.
- Figures 6 and 7 are schematic diagrams showing configurations of a publicly known conventional turbo encoder and a publicly known conventional turbo decoder.
- Figure 6 shows the schematic block diagram showing the turbo encoder having a coding rate of 1/3, which includes Recursive Systematic Convolutional Encoders (may be simply referred to as element encoders) E11 and E22, and an interleaver E21.
- a “sequence of information bits to be encoded” (hereinafter, may be referred to as "information bit to be encoded") E01 is branched to be output as a sequence of systematic bits (hereinafter, may be simply referred to as systematic bit) E02 and to be input to the element encoder E11 and the interleaver E21.
- the element encoder E11 encodes the "information bit to be encoded" E01 by using an error-correcting code, to output a sequence of redundancy bits (hereinafter, may be simply referred to as parity bit) E12.
- the interleaver E21 generally writes once the "information bit to be encoded” E01, reads out the "information bit to be encoded” E01 in a different order, and then transfers to the element encoder E22 with data being arranged in a mixed order.
- the element encoder E22 encodes the interleaved sequence of an information bit to be encoded by using element data and outputs a sequence of redundancy bits (hereinafter, may be simply referred to as parity bit) E23.
- a recursive systematic convolutional encoder (RSC) is employed as the element encoders E11 and E22.
- the turbo decoder shown in Fig. 7 includes element decoders D04 and D16, an interleaver D12, a de-interleaver D23, and a hard decision and decoder output block D25.
- element decoder D04 To the element decoder D04 are input a systematic information sequence (hereinafter, may be simply referred to as systematic information) D01 corresponding to the systematic bit E02 and a parity information sequence (may simply referred to as parity information) D02 corresponding to the parity bit E12, and extrinsic information D03. Then, output extrinsic information D11 is used by the subsequent element decoder D16.
- extrinsic information D11 and the systematic information D01 are input to the element decoder D16, as extrinsic information D15 and the systematic information D13 through the interleaver D12, together with a parity information sequence (may be simply referred to as parity information) D14 corresponding to the parity bit E23.
- soft output information D21 and extrinsic information D22 obtained by the element decoder D16 are transferred to the de-interleaver D23.
- the de-interleaver D23 outputs information in order being reverse to order of interchanging of data made by the interleaver D12. That is, the order of each of the interleaved soft output information D21 and the extrinsic information D22 is made to get into its original order arranged before having been interleaved and the information is output as soft decision output information D24 and extrinsic information D03. Moreover, the hard decision and decoder output block D25 makes a hard decision on the soft decision output information D24 to output a final decoded result. The extrinsic information D03 is fed back to the element decoder D04 for subsequent decoding processing.
- the decoding processing is repeated by renewing extrinsic information D15 from the element decoder D04 and the extrinsic information D03 from the element decoder D16 and, after a plurality of times of loop operations, a hard decision is made on the soft decision output information D24.
- a MAP (Maximum A Posteriori Probability) decoding method is reported to be the best at present.
- this method has problems in that a device to perform this method becomes very large in size and an amount of processing is remarkably large and, therefore, in an actual installation, a Max-Log-MAP (Max Logarithmic Maximum A Posteriori) method in which the processing is simplified by judging whether transmitted data is "1" or "0" based on a maximum value of likelihood is generally and widely used.
- a MAP algorithm is a maximum likelihood decoding algorithm using a trellis diagram.
- Figure 8A is a diagram illustrating an example of an element encoder which shows a case in which the number of registers "D" is three.
- the trellis diagram as shown in Fig. 8B , represents a relation between a value output when a value is input to the element encoder and a state of each of the registers "D".
- the MAP algorithm roughly includes following three kinds of processing:
- a forward path metric value and a backward path metric value to be calculated in each of forward and backward processing operations at a time point "t" (not shown) and in a state “s" (not shown) are represented as an Alpha value (t, s) (not shown) and Beta value (t, s) (not shown) , respectively.
- a probability of transition from the state "s" to a state "s"' at the time point "t” is represented as a Gamma value (t, s, s') (here, the Gamma is called a "branch metric value”) .
- the Gamma value (t, s, s') (not shown) is a probability that can be obtained from received values (systematic information sequence, parity information sequence, and extrinsic information).
- Alpha t , s Max Alpha t - 1 , s ⁇ + Gamma t , s ⁇ , s
- the "Max” indicating the processing of obtaining a maximum value shows that the maximum value is to be calculated in all states "s"'.
- the Alpha value (t, S3) corresponding to a state (S3) at a time point "t” is calculated as follows. Out of metric values obtained by adding each of the Gamma branch metric values (t, S1, S3) and (t, S2, S3) to each of the Alpha path metric values (t-1, S1) and (t-1, S2) in two previous stages, the metric value being larger is determined as an Alpha value in the state [this calculation is called "Alpha ACS (Add-Compare-Select) calculation"] . This processing is performed in all states during all time change "t" and the Alpha values in all states are held.
- the Alpha value of the State #0 is defined as "zero (0)" and the Alpha values of other States are defined as "-MAX (Minimum value) value".
- Beta t , s Max Beta ⁇ t + 1 , s ⁇ + Gamma ⁇ t + 1 , s , s ⁇
- the Beta value (t, S4) corresponding to a State (S4) at a time point "t” is calculated as follows (see equation 2) .
- Out of metric values obtained by adding each of the branch metric Gamma values (t+1, S4, S5) and (t+1, S4, and S6) to each of the Beta path metric values (t+1, S5) and (t+1, S6) in two latter stages, the metric value being larger is determined as a Beta value in the State [this calculation is called "Beta ACS (Add-Compare-Select) calculation"].
- This processing is performed in all States during all time change "t" and processing of calculating a Beta value from a direction reverse to the Alpha (that is, from a trellis final State side) is performed. Moreover, in the first calculation of the Beta value, since there exists no Beta value in the latter stage, setting of an initial value is required.
- the Beta value of the State #0 is defined as "zero (0)" and the Beta values of other States are defined as "-MAX (Minimum value) value”.
- All path metric values at the time point "t” are obtained by adding Alpha (t-1, s' ) , Beta (t, s), and Gamma (t, s', s) which have been already calculated. Then, a differential between a maximum path metric value of a path having a decoded result of "0 (zero)" and a maximum path metric value of a path having a decoded result of "1” becomes a soft output value at a time point "t"
- L1 (t) a maximum path metric value having a decoded result of "1" is also obtained.
- a value obtained by deducting a channel value (value to be obtained from a received value) and an a priori value (extrinsic information to be supplied from the previous-stage decoder) from the soft output value (posteriori value) obtained as above is used as extrinsic information.
- a method called a sliding window is widely used (see A.J. Viterbi, "An Intuitive Justification and a Simplified Implementation of the MAP Decoder for Convolutional Codes" IEEE, J. Select. Areas Commun., Vol. 16, pp. 260-264, Feb. 1998 , hereinafter called a non-patent reference 1) .
- this method only likelihood information in a trellis corresponding to a window size is stored and the window position is shifted until it reaches a decoding length, which enables a great reduction of the use of memory.
- path metric values Alpha and Beta values
- the decoder disclosed in the non-patent reference 1 has a problem in that, though enabling the great reduction of the use of memory, decoding processing is performed in order of each window and, therefore, it is impossible to reduce entire decoding processing time.
- the decoder disclosed in the non-patent reference 2 also has a problem in that, since all Alpha and Beta values are set as 0 (zero), decoding errors occur in a node in a concentrated manner caused by division of the sub-code blocks. Therefore, in order to realize effective and high-speed turbo decoding, improvements in initialization of parallel decoding processing are expected.
- turbo decoder which is capable of decoding at a high speed by improvements of initialization of parallel decoding processing, a method for decoding, and an operation program of the decoding.
- Figure 1 is a schematic block diagram showing configurations of a turbo decoder of an embodiment of the present invention.
- a code block having a length of NW (“N" and "W” each are an integer being 2 or more) is divided into N pieces of sub-code blocks #1 to #4 each having a same length W (not shown) and each of the sub-code blocks is decoded in parallel.
- the number N of the sub-code blocks is four.
- Each of systematic information 2, parity information 3 and extrinsic information 14, that is, each of the systematic information 2, the parity information 3 output from a turbo decoding input buffer 1, and the extrinsic information 14 obtained from the preceding decoding operation in iteration decoding operations is divided into sub-code blocks #1 to #4 and each of the sub-code blocks #1 to #4 is input to each of sub-turbo decoders.
- a first sub-turbo decoder to decode a first sub-code block #1 is made up of an "a priori initialization processing block" 4 and an "extrinsic value calculation and hard decision processing block" 8.
- a second sub-turbo decoder is made up of an "a priori initialization processing block" 5 and an "extrinsic value calculation and hard decision processing block” 9.
- a third sub-turbo decoder is made up of an "a priori initialization processing block” 6 and an “extrinsic value calculation and hard decision processing block” 10.
- a fourth sub-turbo decoder is made up of an "a priori initialization processing block" 7 and an "extrinsic value calculation and hard decision processing block" 11.
- a RAM (Random Access Memory) 12 is used to store extrinsic information output from each of "extrinsic value calculation and hard decision processing block"s (stage #1 to #4) 8 to 11 according to an interleaver pattern output from an interleaver pattern information section 13 and a decorder output section 15 derives each hard decision output from the "extrinsic value calculation and hard decision processing block"s (stages #1 to #4) 8 to 11 according to an interleaver pattern output from the interleaver pattern information section 13.
- Path metric Alpha and Beta values obtained by a priori initializing processing in the "a priori initialization processing block"s (stages #1 to #4) 4 to 7 are transferred to each of the "extrinsic value calculation and hard decision processing block”s 8 to 11.
- Configurations of each sub-turbo decoder are the same and, therefore, only one example of detailed components of the one sub-turbo decoder is described here.
- FIG. 2 is a block diagram illustrating an example of configurations of the "a priori initialization processing block" (stage #2) 5 in a second turbo decoder of the embodiment of the present invention.
- a branch metric (BM) value is calculated from systematic information 2 obtained in the forward processing, parity information 3, and extrinsic information 14 in a BM calculating section 501.
- the calculated branch metric values are input to an Alpha ACS calculating section 504 and are stored in a memory 511 so that the values are used in a Beta ACS calculating section 512 and the "extrinsic value calculation and hard decision processing block" (stage #2) 9.
- a value to be input to the Alpha ACS calculating section 504 includes a branch metric value being an output value from the BM calculating section 501, an initial value being used as an Alpha path metric value obtained in the initialization processing block (preceding-stage of block #1) 4 in a forward direction, and an Alpha path metric value 503 provided by a path used in the preceding-period state.
- a final Alpha path metric value calculated by the sub-code block #2 is written into an Alpha initialization value memory (hereinafter, referred to as initial Alpha memory) 506 and is then transferred, as an initial value, to the "a priori initialization processing block" (following-stage of block #3) 6. All the Alpha path metric values calculated in this sub-code block are written into an Alpha RAM 505 and are then transferred to the "extrinsic value calculation and hard decision processing block" 9.
- a value to be input to the Beta ACS calculating section 512 includes a branch metric value read from the memory 511, an initial value being used as a Beta path metric value obtained in the initialization processing block (following-stage of block #3 in a backward direction) 6, and a Beta path metric value 514 provided by a path used in the preceding-period of stage.
- a final Beta path metric value making up the calculated sub-code block is written into a Beta initialization value memory (hereinafter, referred to as initial Beta memory) 515 and is then transferred, as an initial value, to the initialization processing block (following-stage block #1) 4.
- a Beta path metric value 92 is transferred to the "extrinsic value calculation and hard decision processing block" 9.
- Figure 3 is a block diagram illustrating an example of configurations of the "extrinsic value calculation and hard decision processing block" 9 in the second sub-turbo decoder of the embodiment of the present invention.
- a soft output value calculating section 93 a soft output value is calculated from an Alpha path metric value 91, the Beta path metric value 92 and a branch metric value 90, all of which have been obtained in the initialization processing block (stage #2) 5.
- An input to a channel value calculating section 96 is the systematic information 2 and an output from the channel value calculating section 96 is channel information 97.
- An input to an extrinsic value calculating section 95 is the channel information 97 and the extrinsic information 14 and a soft output value obtained in the soft output value calculating section 93.
- the calculated extrinsic value is written into the extrinsic information RAM 12 (see Fig. 1 ) according to a pattern output from the interleaver pattern information section 13.
- an output value from the soft output value calculating section 93 is input to a hard decision processing section 94 to perform a hard decision processing.
- a value from the hard decision processing section 94 is output to the decorder output section 15, as a decoded result, according to a pattern from the interleaver pattern information section 13.
- FIG. 4 is a flowchart briefly describing entire operations of the turbo decoder of the present invention.
- the code block is divided into a plurality of sub-code blocks (four sub-code blocks (#1 to #4) in this embodiment) (Step S2) and is then fed to each of corresponding "a priori initialization processing block"s 4 to 7.
- a priori initialization processing is performed on an Alpha path metric value and a Beta path metric value of each sub-code block (Step S3) .
- parallel decoding processing on each sub-code block is performed (Step S4).
- M (M is a positive integer) times of iterative decoding operations are performed (Steps S3 to S5) and a decoded output of the code block is derived finally (Step S6).
- M is a positive integer
- the number of initialization stages K is three.
- Alpha and Beta path metric values are calculated.
- the Alpha path metric value is calculated in the Alpha ACS calculating section 504.
- the final value obtained at this time point is stored in the initial Alpha memory 506 and is transferred, as an initial value, to a subsequent sub-code block (forward direction) in a subsequent stage, however, the final value is not yet stored in the Alpha RAM 505 and no processing of outputting the final value to the extrinsic value calculation and hard decision block 9 is performed.
- Beta path metric value is calculated in the Beta ACS calculating section 512.
- the final value obtained here is stored in the initial Beta memory 515 and is transferred to a subsequent sub-code block (backward direction) in a subsequent stage and no processing of outputting the final value to the extrinsic value calculation and hard decision block 9 is performed.
- an initial value of the Alpha path metric value is a final value (#1A1) of the Alpha path metric value of the first sub-code block #1 obtained in the initialization processing stage (period) 1 and an initial value of the Beta path metric value is a final value (#3B1) of the Beta path metric value in the third sub-code block #3 obtained in the initialization processing stage (period) 1.
- a final value (#2A2) of the Alpha path metric value and a final value (#2B2) of the Beta path metric value obtained in this stage 2 are transferred, as initial values, to the third sub-code block #3 and first sub-code block #1 respectively, in the stage 3.
- the BM calculating section 501, the memory 511, the Alpha ACS calculating section 504, the Beta ACS calculating section 512, the initial Alpha memory 506, the initial Beta memory 515 shown in Fig. 2 operate and a final value obtained by the Alpha ACS calculating section 504 and a final value obtained by the Beta ACS calculating section 512 are stored in the initial Alpha memory 506 and in the initial Beta memory 515 respectively and are then transferred, as initial values, respectively to subsequent sub-code blocks #3 and #1 in a subsequent stage.
- a final value output from the initial Alpha memory 506 in the forward direction in the previous stage is used, as an initial value, by the Alpha calculating section 504 and a final value output from the initial Beta memory 515 in the backward direction in the previous stage is used by the Beta ACS calculating section 512, and a result (Alpha path metric value 91) from the Alpha ACS calculation is transferred via the RAM 505, or a result (Beta path metric value 92) from the Beta ACS calculation is transferred together with a branch metric value 90 (output from the memory 511), to the extrinsic value calculation and hard decision block 9.
- a final calculated value of the Alpha path metric value calculated in the first stage 1 is stored, as it is, in the Alpha RAM 505 and is transferred to the extrinsic value calculation and hard decision block 8.
- a final calculated value of the Beta path metric value calculated in the first stage 1 is transferred, as it is, to the extrinsic value calculation and hard decision block 11.
- calculation is performed, starting from a left end of each sub-code block (in a forward direction), to obtain the Alpha path metric value making up each sub-code.
- Calculation is performed, starting from a right end of a sub-block (in a backward direction) after the calculation on Alpha path metric value making up the entire sub-code block is terminated.
- Alpha and Beta path metric values in each sub-decoder are calculated. That is, all the Alpha and Beta path metric values are used in the initialization processing stage 3.
- a soft output value and extrinsic information are calculated.
- the extrinsic information obtained in each of the "extrinsic value calculation and hard decision processing block”s is stored in the RAM 12 according to an interleaver pattern output from the interleaver information section 13 and is transferred to a subsequent element decoder.
- the turbo decoder is generally made up of two element decoders.
- each of these two element decoders has the same configuration and, therefore, in the present invention, only one processing circuit is used to achieve the turbo decoder.
- the turbo decoder in order to perform iterative decoding operations using an interleaver, when the M-th (M is an integer being two or more) decoding operation is performed, sets the first (stage 1) Alpha and Beta initial values in the "a priori initialization processing block" as below. That is, setting of the Alpha path metric initial value making up the leftmost sub-block (#1) and the Beta path metric initial value in the rightmost sub-block (#4) is done in the same way as employed in the ideal Max-Log-MAP algorithm (see initial values in the leftmost and in the rightmost portions in the stage 1 in Fig. 5 ) .
- Initial values of other Alpha and Beta path metric values are as follows.
- An initial value of the Alpha path metric value is a final value of the Alpha path metric value obtained from a neighboring sub-code block ( (N-1) -th sub-code block) in the final initialization processing stage (stage 3) at time of (M-1)-th decoding operations.
- An initial value of the Beta path metric value is a final value of the Beta path metric value obtained from a neighboring sub-code block ((N+1)-th sub-code block) in the final initialization processing stage (stage 3) at time of the (M-1)-th decoding operation.
- a decoding algorithm applied to the embodiment of the present invention is the Max-Log-MAP algorithm, however, a Log-MAP (Logarithmic Maximum A Posteriori) algorithm that can faithfully realize a Maximum A Posteriori Probability decoding operation may be also employed.
- a length of a code block is divided into a plurality of code blocks each having an equal length.
- parallel decoding processing described above has to be achieved by adding dummy data.
- the number of initialization stages K is three as shown in Fig. 5 .
- the number of initialization stages K increases, though the initial value of the Alpha or Beta path metric value making up each sub-code block is improved, hardware costs and circuit delays increase.
- the number of initialization stages K has to be set by taking decoding capability, hardware costs, or a like into consideration.
- the processing shown in Figs. 4 and 5 is performed by hardware shown in Figs. 1 to 3 , using a control section in the CPU.
- the above processing may be performed by storing, in advance, the operating procedure in memory as a program and making the CPU (computer) read the contents to execute the program.
- path metric values (Alpha and Beta values) at a breakpoint (starting and ending points of each sub-code block)
- its initial value is assumed as a fixed value (for example, 0) in a first time decoding processing and, as a result, extrinsic information calculated based on the setting of the initial value is different from the result from the ideal Max-Log-MAP algorithm. That is, extrinsic information becomes incorrect and capability of the iterative decoder is degraded.
- an initial value in each sub-block is improved as the number of initialization processing stages increases, thus improving a capability of decoding operations in the decoder.
- hardware costs and circuit delays increase and, therefore, in actual design, it is necessary to take a tradeoff among the number of initialization processing stages, decoding capability, and hardware costs into consideration.
- turbo decoder is installed in a device such as a portable cellular phone in which a real time characteristic of communications is strictly required.
- a turbo decoding method is provided which is capable of realizing high-speed and highly accurate decoding operations by improving initialization of path metric values for parallel decoding processing.
- Turbo encoded code data is divided into a first to an N-th sub-code blocks and parallel decoding processing on these sub-code blocks is performed.
- a priori initialization processing unit 4, 5, 6, 7 (for example four pieces) which employ an initial value for calculation of a path metric value of each sub-code block excluding the first sub-code block in a forward direction as a final calculated value in a preceding sub-code block and an initial value for calculation of a path metric value of each sub-code block excluding the N-th sub-code block in a backward direction as a final calculated value in a following sub-code block.
- parallel decoding processing on each sub-code block is performed using "extrinsic value calculation and hard decision processing block"s 8, 9, 10, 11 as shown in Fig. 1 .
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Claims (4)
- Turbo-Decodierer zum Unterteilen von turbocodierten Codedaten in erste bis N-te Untercode-Blöcke (#1, #2, 3, #4), wobei eine ganze Zahl größer oder gleich 2 ist, und zum Ausführen einer parallelen Decodierungsverarbeitung an jedem der Untercodeblöcke (#1, 2, 3, #4), wobei der Turbo-Decodierer gekennzeichnet ist durch eine a priori-Initialisierungsverarbeitungseinheit (4, 5, 6, 7) zum Berechnen in jeder von K Stufen, wobei K eine ganze Zahl größer oder gleich 2 ist, eines Vorwärtspfad-Metrikwerts (Alpha) und eines Rückwärtspfad-Metrikwerts (Beta) in jedem der Untercodeblöcke (#1, #2, 3, #4), wobei jeweils ein Anfangeswert verwendet wird, wobei
in einer ersten Initialisierungsverarbeitungsstufe in jedem der ersten bis N-ten Untercodeblöcke (#1, #2, 3, #4) der Vorwärtspfad-Metrikwert (Alpha) und der Rückwärtspfad-Metrikwert (Beta) jeweils unter Verwendung eines im Voraus eingestellten Anfangswerts berechnet werden; und
in jeder einer zweiten bis K-ten Initialisierungsverarbeitungsstufe (Initialisierungsstufe 2) in jedem der Untercodeblöcke (#2, #3) mit Ausnahme des ersten Untercodeblocks der Vorwärtspfad-Metrikwert (Alpha) unter Verwendung eines letzten berechneten Werts (#1A1, #2A1) des Vorwärtspfad-Metrikwerts (Alpha) in einem vorhergehenden Untercodeblock (#1, #2) in einer vorhergehenden Initialisierungsverarbeitungsstufe (Initialisierungsstufe 1) als ein Anfangswert berechnet wird und in jedem der Untercodeblöcke (#2, #3) mit Ausnahme des N-ten Untercodeblocks der Rückwärtspfad-Metrikwert (Beta) unter Verwendung eines letzten berechneten Werts (#3B1, #4B1) des Rückwärtspfad-Metrikwerts (Beta) in einem folgenden Untercodeblock (#3, #4) in der vorhergehenden Initialisierungsverarbeitungsstufe (Initialisierungsstufe 1) als ein Anfangswert berechnet wird;
N Decodierungseinheiten (8, 9, 10, 11), wovon jede einem Entsprechenden der N Untercodeblöcke (#1, #2, #3, #4) entspricht, wobei die N ecodierungseinheiten (8, 9, 10, 11) jeweils dafür ausgelegt sind, gleichzeitig die Decodierungverarbeitung an den entsprechenden Untercodeblöcken (#1, #2, #3, #4) anhand eines entsprechenden Einganges von der a priori-Initialisierungsverarbeitungseinheit (4, 5, 6, 7) auszuführen, wobei der entsprechende Eingang einen letzten berechneten Wert sowohl für den Vorwärtspfad-Metrikwert (Alpha) als auch für den Rückwärtspfad-Metrikwert (Beta) in den entsprechenden Untercodeblöcken (#1, 2, 3, #4) in der K-ten Initialisierungsverarbeitungsstufe enthält; und
einen Decodiererausgabeabschnitt (15), der mit den Decodierungseinheiten verbunden ist und dafür ausgelegt ist, ein decodiertes Ergebnis auszugeben, das in einem Kommunikationssystem oder in einem Datenverarbeitungssystem verwendbar ist. - Turbo-Decodierer nach Anspruch 1, wobei in der K-ten Initialisierungsverarbeitungsstufe in dem ersten Untercodeblock (#1) der letzte berechnete Wert des Vorwärtspfad-Metrikwerts (Alpha), der in der ersten Initialisierungsverarbeitungsstufe berechnet wird, unverändert gespeichert wird und in dem N-ten Untercodeblock (#4) der letzte berechnete Wert des Rückwärtspfad-Metrikwerts (Beta), der in der ersten Initialisierungsverarbeitungsstufe berechnet wird, unverändert gespeichert wird.
- Turbo-Decodierungsverfahren, in dem turbocodierte Codedaten in erste bis N-te Untercodeblöcke (#1, #2, #3, #4), wobei N eine ganze Zahl größer oder gleich 2 ist, unterteilt werden und eine Decodierungsverarbeitung an jedem der Untercodeblöcke (#1, 2, 3, #4) ausgeführt wird, wobei das Turbo-Decodierungsverfahren gekennzeichnet ist durch:eine a priori-Initialisierungsverarbeitung zum Berechnen in jeder von K Stufen, wobei K eine ganze Zahl größer oder gleich 2 ist, eines Vorwärtspfad-Metrikwerts (Alpha) und eines Rückwärtspfad-Metrikwerts (Beta) in jedem der Untercodeblöcke (#1, #2, #3, #4), wobei jeweils ein Anfangswert verwendet wird,wobei die a priori-Initialisierungsverarbeitung umfasst:einen ersten Schritt zum Berechnen in jedem der ersten bis N-ten Untercodeblöcke (#1, #2, #3, #4) des Vorwärtspfad-Werts (Alpha) und des Rückwärtspfad-Metrikwerts (Beta), wobei jeweils ein im Voraus eingestellter Anfangswert verwendet wird, undjeweils einen zweiten bis K-ten Schritt (Initialisierungsstufe 2) zum Bereichnen in jedem der Untercodeblöcke (#2, #3) mit Ausnahme des ersten Untercodeblocks des Vorwärtspfad-Metrikwerts (Alpha) unter Verwendung eines letzten berechneten Werts (#1A1, #2A1) des Vorwärtspfad-Metrikwerts (Alpha) in einem vorhergehenden Untercodeblock (#1, #2) in einem vorhergehenden Schritt (Initialisierungsstufe 1) als einen Anfangswert und zum Berechnen in jedem der Untercodeblöcke (#2, #3) mit Ausnahme des N-ten Untercodeblocks des Rückwärtspfad-Metrikwerts (Beta) unter Verwendung eines letzten berechneten Werts (#3B1, #4B1) des Rückwärtspfad-Metrikwerts (Beta) in einem folgenden Untercodeblock (#3, #4) in dem vorhergehenden Schritt (Initialisierungsstufe 1) als einen Anfangswert;einen Decodierungsschritt, in dem N Decodierungseinheiten (8, 9, 10, 11), die jeweils einem Entsprechenden der N Untercodeblöcke (#1, #2, #3, #4) entsprechen, jeweils gleichzeitig die Decodierungsverarbeitung an den entsprechenden Untercodeblöcken (#1, #2, #3, #4) anhand eines entsprechenden Eingangs von der a priori-Initialisierungsverarbeitung ausführen, wobei die entsprechende Einheit einen letzten berechneten Wert sowohl des Vorwärtspfad-Metrikwerts (Alpha) als auch des Rückwärtspfad-Metrikwerts (Beta) in den entsprechenden Untercodeblöcken (#1, 2, #3, #4), die in dem *K-ten Schritt der a priori-Initialisierungsverarbeitung erhalten werden, enthält; undeinen Ausgabeschritt, in dem ein Decodiererausgabeabschnitt (15), der mit den Decodierungseinheiten verbunden ist, ein decodiertes Ergebnis ausgibt, das in einem Kommunikationssystem oder in einem Datenverarbeitungssystem verwendbar ist.
- Turbo-Decodierungsverfahren nach Anspruch 4, wobei in dem K-ten Schritt in dem ersten Untercodeblock (#1) der letzte berechnete Wert des Vorwärtspfad-Metrikwerts (Alpha), der in dem ersten Schritt berechnet wird, unverändert gespeichert wird und in dem N-ten Untercodeblock (#4) der letzte berechnete Wert des Rückwärtspfad-Metrikwerts (Beta), der in dem ersten Schritt berechnet wird, unverändert gespeichert wird.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004012540 | 2004-01-21 | ||
JP2004012540A JP2005210238A (ja) | 2004-01-21 | 2004-01-21 | ターボ復号装置及びその方法並びにその動作プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
EP1564893A1 EP1564893A1 (de) | 2005-08-17 |
EP1564893B1 true EP1564893B1 (de) | 2013-01-09 |
Family
ID=34697852
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP05001013A Not-in-force EP1564893B1 (de) | 2004-01-21 | 2005-01-19 | Turbo Dekodierer, Turbo Dekodiermethode und Computerprogramm hierfür |
Country Status (4)
Country | Link |
---|---|
US (1) | US7549113B2 (de) |
EP (1) | EP1564893B1 (de) |
JP (1) | JP2005210238A (de) |
CN (1) | CN100454767C (de) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006324754A (ja) * | 2005-05-17 | 2006-11-30 | Fujitsu Ltd | 最大事後確率復号方法及び復号装置 |
US7788572B1 (en) * | 2005-10-03 | 2010-08-31 | Seagate Technology Llc | Parallel maximum a posteriori detectors with forward and reverse viterbi operators having different convergence lengths on a sampled data sequence |
US7895497B2 (en) * | 2006-06-26 | 2011-02-22 | Samsung Electronics Co., Ltd. | Apparatus and method using reduced memory for channel decoding in a software-defined radio system |
FR2904499B1 (fr) * | 2006-07-27 | 2009-01-09 | Commissariat Energie Atomique | Procede de decodage a passage de messages avec ordonnancement selon une fiabilite de voisinage. |
US7882416B2 (en) * | 2006-10-10 | 2011-02-01 | Broadcom Corporation | General and algebraic-constructed contention-free memory mapping for parallel turbo decoding with algebraic interleave ARP (almost regular permutation) of all possible sizes |
US20090172495A1 (en) * | 2007-12-27 | 2009-07-02 | Via Telecom, Inc. | Methods and Apparatuses for Parallel Decoding and Data Processing of Turbo Codes |
KR101442837B1 (ko) * | 2008-02-23 | 2014-09-23 | 삼성전자주식회사 | 터보 디코더 장치 및 방법 |
GB0804206D0 (en) * | 2008-03-06 | 2008-04-16 | Altera Corp | Resource sharing in decoder architectures |
US8065596B2 (en) * | 2008-03-14 | 2011-11-22 | Newport Media, Inc. | Iterative decoding for layer coded OFDM communication systems |
WO2009119057A1 (ja) * | 2008-03-24 | 2009-10-01 | パナソニック株式会社 | 無線通信装置および誤り訂正符号化方法 |
US8578255B1 (en) * | 2008-12-19 | 2013-11-05 | Altera Corporation | Priming of metrics used by convolutional decoders |
EP2429085B1 (de) * | 2009-06-18 | 2018-02-28 | ZTE Corporation | Verfahren und vorrichtung zur parallelen turbodecodierung in einem lte-system (long term evolution) |
CN101777924B (zh) * | 2010-01-11 | 2014-02-19 | 新邮通信设备有限公司 | 一种Turbo码译码方法和装置 |
US8650468B2 (en) * | 2010-07-27 | 2014-02-11 | MediaTek Pte. Ltd. | Initializing decoding metrics |
GB2529209B (en) * | 2014-08-13 | 2021-05-26 | Accelercomm Ltd | Detection circuit, receiver, communications device and method of detecting |
TWI565246B (zh) * | 2015-01-12 | 2017-01-01 | 晨星半導體股份有限公司 | 迴旋編碼的解碼方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1124691C (zh) * | 1999-09-13 | 2003-10-15 | 华为技术有限公司 | 一种串/并行级联卷积码译码器及其译码实现方法 |
DE60007956T2 (de) * | 2000-02-21 | 2004-07-15 | Motorola, Inc., Schaumburg | Vorrichtung und Verfahren zur SISO Dekodierung |
US20020021770A1 (en) * | 2000-05-03 | 2002-02-21 | Beerel Peter A. | Reduced-latency soft-in/soft-out module |
US6952457B2 (en) * | 2000-12-29 | 2005-10-04 | Motorola, Inc. | Method and system for adapting a training period in a turbo decoding device |
JP3537044B2 (ja) * | 2001-04-17 | 2004-06-14 | 日本電気株式会社 | ターボ復号方式及びその方法 |
JP2003018022A (ja) * | 2001-06-29 | 2003-01-17 | Kddi Submarine Cable Systems Inc | 復号方法及び装置 |
CN1178398C (zh) * | 2001-08-23 | 2004-12-01 | 财团法人工业技术研究院 | 在维特比译码器中生存路径的存储器管理方法 |
US6996765B2 (en) * | 2001-11-14 | 2006-02-07 | Texas Instruments Incorporated | Turbo decoder prolog reduction |
KR100444571B1 (ko) * | 2002-01-11 | 2004-08-16 | 삼성전자주식회사 | 터보디코더와 알에스디코더가 연접된 디코딩장치 및 그의디코딩방법 |
EP1398881A1 (de) * | 2002-09-05 | 2004-03-17 | STMicroelectronics N.V. | Kombinierter Turbo-Kode/Faltungskode Dekodierer, besonders für mobile Radio Systeme |
EP1543624A2 (de) * | 2002-09-18 | 2005-06-22 | Koninklijke Philips Electronics N.V. | Verfahren zur decodierung von daten unter benutzung von datenfenstern |
-
2004
- 2004-01-21 JP JP2004012540A patent/JP2005210238A/ja active Pending
-
2005
- 2005-01-19 EP EP05001013A patent/EP1564893B1/de not_active Not-in-force
- 2005-01-21 CN CNB2005100059010A patent/CN100454767C/zh not_active Expired - Fee Related
- 2005-01-21 US US11/038,267 patent/US7549113B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN100454767C (zh) | 2009-01-21 |
CN1645751A (zh) | 2005-07-27 |
US20050172204A1 (en) | 2005-08-04 |
US7549113B2 (en) | 2009-06-16 |
JP2005210238A (ja) | 2005-08-04 |
EP1564893A1 (de) | 2005-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1564893B1 (de) | Turbo Dekodierer, Turbo Dekodiermethode und Computerprogramm hierfür | |
US7500169B2 (en) | Turbo decoder, turbo decoding method, and turbo decoding program | |
US6192501B1 (en) | High data rate maximum a posteriori decoder for segmented trellis code words | |
US7467347B2 (en) | Method for decoding error correcting code, its program and its device | |
US7636879B2 (en) | Error correction decoder | |
JP4227481B2 (ja) | 復号装置および復号方法 | |
JP4907802B2 (ja) | 通信の復号化の際に用いられるバタフライプロセッサ装置 | |
EP1130789A2 (de) | Dekodierung eines Faltungcodes mit weichen Entscheidungen | |
US8196006B2 (en) | Modified branch metric calculator to reduce interleaver memory and improve performance in a fixed-point turbo decoder | |
US6912684B2 (en) | Error correction encoding method and apparatus, and error correction decoding method and apparatus | |
KR101051933B1 (ko) | 트렐리스의 버터플라이 구조를 이용한 맵 디코딩을 위한메트릭 계산 | |
JP2004343716A (ja) | 畳み込み符号化信号の伝送形式をブラインド検出する方法および復号器 | |
US7200798B2 (en) | Unified serial/parallel concatenated convolutional code decoder architecture and method | |
KR100390416B1 (ko) | 터보 디코딩 방법 | |
US6877125B2 (en) | Devices and methods for estimating a series of symbols | |
US7266757B1 (en) | Pipelined architecture implementing recursion processes for forward error correction | |
JP3888135B2 (ja) | 誤り訂正符号復号装置 | |
JP2002076921A (ja) | 誤り訂正符号復号方法及び装置 | |
JP2002217748A (ja) | 誤り訂正復号器 | |
JP2001352256A (ja) | 復号装置及び復号方法 | |
JP2001285079A (ja) | 通信用誤り訂正符号復号装置 | |
WO2011048997A1 (ja) | 軟出力復号器 | |
JP4525658B2 (ja) | 誤り訂正符号復号装置 | |
Saouter et al. | Fast SUBMAP decoders for duo-binary turbo-codes | |
KR20020066556A (ko) | 터보 코드 복호화 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU MC NL PL PT RO SE SI SK TR |
|
AX | Request for extension of the european patent |
Extension state: AL BA HR LV MK YU |
|
17P | Request for examination filed |
Effective date: 20051026 |
|
AKX | Designation fees paid |
Designated state(s): DE FR GB IT |
|
GRAP | Despatch of communication of intention to grant a patent |
Free format text: ORIGINAL CODE: EPIDOSNIGR1 |
|
GRAS | Grant fee paid |
Free format text: ORIGINAL CODE: EPIDOSNIGR3 |
|
GRAA | (expected) grant |
Free format text: ORIGINAL CODE: 0009210 |
|
RAP1 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: WARREN & LEWIS INVESTMENT CORPORATION |
|
AK | Designated contracting states |
Kind code of ref document: B1 Designated state(s): DE FR GB IT |
|
REG | Reference to a national code |
Ref country code: GB Ref legal event code: FG4D |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R096 Ref document number: 602005037777 Country of ref document: DE Effective date: 20130307 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: DE Payment date: 20130731 Year of fee payment: 9 |
|
PLBE | No opposition filed within time limit |
Free format text: ORIGINAL CODE: 0009261 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: FR Payment date: 20130723 Year of fee payment: 9 Ref country code: GB Payment date: 20130710 Year of fee payment: 9 |
|
26N | No opposition filed |
Effective date: 20131010 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: IT Payment date: 20130725 Year of fee payment: 9 |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R097 Ref document number: 602005037777 Country of ref document: DE Effective date: 20131010 |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R119 Ref document number: 602005037777 Country of ref document: DE |
|
GBPC | Gb: european patent ceased through non-payment of renewal fee |
Effective date: 20140119 |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R119 Ref document number: 602005037777 Country of ref document: DE Effective date: 20140801 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: DE Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20140801 |
|
REG | Reference to a national code |
Ref country code: FR Ref legal event code: ST Effective date: 20140930 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: GB Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20140119 Ref country code: FR Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20140131 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: IT Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20140119 |