WO2011111654A1 - 誤り訂正符号復号装置、誤り訂正符号復号方法および誤り訂正符号復号プログラム - Google Patents

誤り訂正符号復号装置、誤り訂正符号復号方法および誤り訂正符号復号プログラム Download PDF

Info

Publication number
WO2011111654A1
WO2011111654A1 PCT/JP2011/055224 JP2011055224W WO2011111654A1 WO 2011111654 A1 WO2011111654 A1 WO 2011111654A1 JP 2011055224 W JP2011055224 W JP 2011055224W WO 2011111654 A1 WO2011111654 A1 WO 2011111654A1
Authority
WO
WIPO (PCT)
Prior art keywords
decoding
code
information
simultaneous
soft
Prior art date
Application number
PCT/JP2011/055224
Other languages
English (en)
French (fr)
Inventor
利彦 岡村
Original Assignee
日本電気株式会社
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 日本電気株式会社 filed Critical 日本電気株式会社
Priority to CN2011800127543A priority Critical patent/CN102792597A/zh
Priority to US13/583,186 priority patent/US20130007568A1/en
Priority to JP2012504446A priority patent/JP5700035B2/ja
Publication of WO2011111654A1 publication Critical patent/WO2011111654A1/ja

Links

Images

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
    • H03M13/2978Particular arrangement of the component decoders
    • 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/3707Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
    • 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/3972Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using sliding window techniques or parallel windows

Definitions

  • the present invention relates to an error correction code decoding apparatus, and more particularly to an error correction code decoding apparatus, an error correction code decoding method, and an error correction code decoding program for decoding a parallel concatenated code typified by a turbo code.
  • Error correction coding technology is a technology that protects data from errors such as bit inversion occurring on a communication path during data transmission through operations such as data coding and decoding. Such an error correction coding technique is currently widely used in various fields including wireless communication and digital storage media.
  • Encoding is a process of converting information to be transmitted into a code word to which redundant bits are added.
  • Decoding is a process of estimating the original codeword (information) from the codeword (received word) in which an error is mixed using the redundancy.
  • FIG. 1 shows the configuration of the turbo encoder 100 and the turbo code decoder 110.
  • the 1A is configured by connecting two systematic convolutional encoders 101 and 102 having feedback via an interleaver 103 in parallel.
  • This convolutional code is called an element code of a turbo code, and a code having 4 or less memories is usually used.
  • the encoder 101 is referred to as an element code 1
  • the encoder 102 is referred to as an element code 2
  • the parity sequences generated respectively are referred to as parity 1 and parity 2.
  • the interleaver 103 performs a bit rearrangement process. The coding performance depends greatly on the size and design of the interleaver 103.
  • Soft-input soft-output (Soft-In Soft-Output, hereinafter referred to as SISO) decoder 111 performs a decoding process corresponding to each element code.
  • the memories 112, 113, and 114 hold reception values corresponding to the information series, parity 1, and parity 2, respectively.
  • the memory 115 holds soft output values (external information) obtained by SISO decoding of element codes.
  • the deinterleaver 116 performs processing for returning the rearrangement by the interleaver 103.
  • the turbo code decoding method is characterized in that a soft output value (external information) obtained by SISO decoding of an element code is used as a soft input value (preliminary information) of the other element code, and this is repeated.
  • the element code of the turbo code is a binary convolutional code.
  • Optimal soft output decoding is decoding in which 0 and 1 are determined by calculating the a posteriori probability of each information bit based on the received sequence under the codeword constraints. For this purpose, it is sufficient to calculate the following equation (1).
  • Y) / P (u (t) 1
  • u (t) is the information bit at time t
  • Y is a sequence of received values for the codeword
  • P (u (t) b
  • (t) b.
  • Finding L (t) with a general error correction code is extremely difficult in terms of computational complexity, but in the case of a convolutional code with a small number of memories, such as an element code of a turbo code, the entire codeword is in a state. It can be expressed by a code trellis with a small number, and SISO decoding can be efficiently performed using this.
  • This algorithm is called BCJR algorithm or MAP algorithm and is described in Non-Patent Document 2.
  • This MAP algorithm can be applied to SISO decoding used in turbo codes.
  • the soft output value exchanged in the process of decoding the turbo code is not the value L (t) itself of equation (1) but the external value represented by the following equation (2) calculated from L (t). It is a value Le (t) called information.
  • Le (t) L (t) -C ⁇ x (t)-La (t). (2) Where x (t) is the received value for the information bit u (t), La (t) is the external information obtained by soft output decoding of the other element code used as prior information of u (t), and C is the communication This coefficient is determined by the signal-to-noise ratio of the road.
  • the code word for the input information changes according to the value of the memory in the encoder.
  • This memory value in the encoder is called the “state” of the encoder. Coding using a convolutional code is performed while changing the state according to the information sequence.
  • the code trellis is a graph representing a combination of transitions of this state.
  • the state of the encoder at each time point is represented as a node, and an edge is assigned to a pair of nodes in a state where a transition exists from each node.
  • An edge is assigned a label of a code word output in the transition.
  • the connection of edges is called a path, and the label of the path corresponds to the codeword sequence of the convolutional code.
  • FIG. 2B is a code trellis corresponding to the encoder shown in FIG.
  • the initial state is that all memories are 0.
  • the encoder state is a memory value.
  • the code word “00” is output and the state becomes “00” at time 1.
  • the code word “11” is output and the state at the time 1 becomes “10”.
  • the output of codewords corresponding to information bits 0 and 1 and the state transition to time 2 are performed for the states “00” and “11” at time 1.
  • the state of the encoder can also be expressed as an integer of the number of bits corresponding to the number of memories, such as “00” representing 0 and “11” representing 3.
  • the MAP algorithm is based on a process of sequentially calculating a correlation (path metric) between a code trellis path and a sequence of received values.
  • the MAP algorithm is roughly divided into the following three types of processing: (A) Forward processing: a path metric reaching each node from the head of the code trellis is calculated. (B) Backward processing: a path metric reaching each node from the end of the code trellis is calculated. (C) Soft output generation processing: The soft output (posterior probability ratio) of the information symbol at each time point is calculated using the results of (a) and (b).
  • the path metric in the forward processing relatively represents the probability (logarithm value) of reaching each node from the head of the code trellis under the received sequence and prior information.
  • the path metric in the backward processing relatively represents the probability (logarithm value) of reaching each node from the end of the code trellis.
  • a set of convolutional code states is set to S, and path metrics calculated by forward processing and backward processing at a node at time t and state s ( ⁇ S) are ⁇ (t, s) and ⁇ (t, s), respectively. deep.
  • the information bits, codewords, received values, and prior information when transitioning from state s to state s ′ at time t at ⁇ (t, s, s ′) (soft output of the other element code in the case of turbo code) ) Represents a branch metric which is a likelihood determined by (1).
  • ⁇ (t, s, s ') is a priori for the Euclidean distance and information bits between the modulation value and the received value of the codeword output at the transition from state s to state s'. It can be easily calculated using the information.
  • ⁇ _ ⁇ s, s' ⁇ S: ⁇ (s, b) s' ⁇ is the sum of the pair of states ⁇ s, s' ⁇ in which the information bit in the state transition from state s to state s' is b It represents taking.
  • the Max-Log-MAP algorithm is performed by changing the sum according to the maximum value in the processing of Equation (3), Equation (4), and Equation (5), and conversion to exp and log becomes unnecessary, so Viterbi This can be realized by the same processing as the ACS (Add-Compare-Select) processing in the algorithm, and can be greatly simplified.
  • the code trellis is divided into windows (at time point W) as shown in FIG. Scheduling that performs forward processing, backward processing, and soft output generation processing can be considered.
  • 301 represents the timing of the training process of the backward process
  • ⁇ for the W time point is updated according to the equation (4).
  • As an initial value there is a method of setting ⁇ to the same value for all states, or using a value calculated in the previous process in iterative decoding in turbo code decoding.
  • Reference numeral 302 represents the timing of forward processing, and the path metric ⁇ in Expression (3) is held until the soft output generation processing at that time is completed.
  • Reference numeral 303 denotes timing for performing backward processing using the path metric at the window boundary calculated in 301 as an initial value and simultaneously generating soft output using ⁇ in 302. In FIG. 3, scheduling performed by switching forward processing and backward processing is also conceivable.
  • a delay of 2W occurs in backward processing training, but if the block is sufficiently large compared to the window, the decoding processing using M SISO decoders is nearly M times faster. Can be achieved.
  • the information reception value memory, external information memory, and parity reception value memory must also be configured separately, and simultaneous access to the same memory from multiple SISO decoders occurs It is desirable not to do so. If memory access conflict (memory contention) occurs between multiple SISO decoders as shown in Fig. 5, avoid the conflict by subdividing memory or adding ports, etc. to maintain high speed, or prepare a buffer. Therefore, it is necessary to perform processing with allowance for delay. The former causes a significant increase in apparatus scale, and the latter causes a significant decrease in decoder throughput.
  • the parity reception value With respect to the parity reception value, if it is divided and held by the number of blocks so as to correspond to the blocks divided by the element code 1 and the element code 2, respectively, memory access contention does not occur, and access can be made with the same address. For this reason, the parity reception value memory can be realized as a single memory. However, the received information and the external information are accessed to the same memory when decoding element code 1 and element code 2. That is, even if a memory is prepared according to a block corresponding to element code 1, access at the time of decoding element code 2 uses an interleaved address. Therefore, a random interleaver simply uses memory access. Conflicts usually occur. When considering the radix-2 ⁇ n algorithm, which is a parallel processing that performs processing for n time points of the code trellis in one cycle of the MAP algorithm, memory access conflicts even if the memory of external information is divided into n May occur.
  • the information length is often small, and a method for improving communication efficiency by making it possible to handle the interleaver size K of the turbo code finely is adopted.
  • Patent Document 1 a method of simultaneously decoding two element codes is known as a method of parallelizing turbo code decoding. This is described in Patent Document 1.
  • FIG. 6 shows the configuration of the decoding device described in Patent Document 1.
  • the code trellises of element code 1 and element code 2 are each divided into four blocks, and the SISO decoders (SISO0 to SISO7) simultaneously perform decoding processing on these blocks.
  • the replacement processing unit 601 and the replacement processing unit 602 respectively perform a replacement process that realizes assignment of external information between the memory and the SISO decoder and an inverse conversion process corresponding to the interleaver.
  • the replacement processing unit 601 performs the same replacement process on the received information value (not shown) and assigns the input to the SISO decoder.
  • this parallelization method it is necessary to have external information and information reception values in different memories according to element codes as shown in FIG. 6, so that the memory size is double that of the method of FIG.
  • Non-Patent Document 3 has limited parallelism, and therefore does not efficiently perform decoding processing for various interleaver sizes of turbo codes used in mobile applications. There was a problem.
  • the decoding device described in Patent Document 1 has a problem in that it requires an increase in memory size in order to efficiently perform decoding processing, resulting in an increase in device size.
  • the present invention has been made to solve the above-described problems, and provides an error correction code decoding apparatus capable of efficiently performing decoding processing on various interleaver sizes while suppressing an increase in apparatus scale. With the goal.
  • An error correction code decoding apparatus includes a first element code that is a convolutional code of information, a second element code that is a convolutional code of the information replaced by an interleaver, and the information.
  • simultaneous decoding for selecting whether or not to simultaneously decode the first and second element codes according to the size of the interleaver Selection means; reception information storage means for storing the received information at a position corresponding to a selection result of the simultaneous decoding selection means; and external information corresponding to each of the first and second element codes, External information storage means for storing at a position corresponding to the selection result of the selection means, and the received information and the external information for each block into which the first and second element codes are divided
  • a plurality of soft input / soft output decoders for executing the soft input / soft output decoding in parallel and outputting the external information, respectively, and when the simultaneous decoding is not selected by the simultaneous decoding selecting means, When the simultaneous decoding is not selected by the simultaneous decoding selecting means, When the
  • the error correction code decoding method of the present invention includes a first element code that is a convolutional code of information, a second element code that is a convolutional code of the information replaced by an interleaver, and the information.
  • An error correction code decoding apparatus that repeatedly performs decoding on received information of encoded information including: selecting whether or not to simultaneously decode the first and second element codes according to the size of the interleaver
  • the received information is stored in the received information storage means at a position corresponding to the selection result of the simultaneous decoding, and the external information corresponding to each of the first and second element codes is set according to the selection result of the simultaneous decoding.
  • the external information storage means Stored in the external information storage means at a predetermined position, and soft input / soft output decoding based on the received information and the external information is executed in parallel for each block obtained by dividing the first and second element codes. If the simultaneous decoding is not selected using a plurality of soft input / soft output decoders that respectively output external information, the decoding of the first element code and the decoding of the second element code are sequentially executed. If the simultaneous decoding is selected, the first and second element codes are simultaneously decoded and repeated.
  • the error correction code decoding program includes a first element code that is a convolutional code of information, a second element code that is a convolutional code of the information replaced by an interleaver, the information, Selects whether or not to simultaneously decode the first and second element codes in accordance with the size of the interleaver in an error correction code decoding apparatus that repeatedly performs decoding on received information of encoded information including A simultaneous decoding selection step; a reception information storage step for storing the reception information in a reception information storage means at a position corresponding to the selection result of the simultaneous decoding; and external information corresponding to the first and second element codes, respectively.
  • the present invention can provide an error correction code decoding apparatus capable of efficiently performing decoding processing on various interleaver sizes while suppressing an increase in apparatus scale.
  • (A) is a block diagram of a related art turbo encoder
  • (b) is a block diagram of a related art turbo code decoder.
  • (A) is a block diagram of the convolutional encoder in the turbo code decoder of related technology
  • (b) is a conceptual diagram of the code trellis showing the state transition of a convolutional encoder.
  • (A) is a figure which shows the order of the forward process in a MAP algorithm of the related art turbo code decoder, a backward process, and a soft output production
  • (b) is the forward process using the window in this MAP algorithm, It is a figure which shows the order of a backward process and a soft output production
  • FIG. 1 is a configuration diagram of an error correction code decoding apparatus as a first embodiment of the present invention.
  • FIG. It is a flowchart which shows the operation
  • FIG. 7 shows the configuration of the error correction code decoding apparatus 1 as the first embodiment of the present invention.
  • the error correction code decoding apparatus 1 includes a simultaneous decoding selection unit 2, a reception information storage unit 3, an external information storage unit 4, and a soft input / soft output decoding unit 5 as functional blocks.
  • the simultaneous decoding selection unit 2 is configured by a circuit that realizes a later-described simultaneous decoding selection function
  • the reception information storage unit 3 and the external information storage unit 4 are a storage device such as a RAM (Random Access Memory) and a storage device.
  • the soft input / soft output decoding unit 5 includes M (M is an integer of 1 or more) SISO decoders.
  • the simultaneous decoding selection unit 2 determines the interleaver size K on the transmission side and the reception side at the start of the communication session. Further, the simultaneous decoding selection unit 2 selects or determines whether or not to decode element code 1 and element code 2 described later according to the determined interleaver size K (K is an integer of 1 or more). The selection result (decision information) is output.
  • the received information storage unit 3 receives an element code 1 which is a convolutional code of information from an error correction encoder (not shown) via a communication path, and an element code which is a convolutional code of information obtained by replacing this information with an interleaver. 2 and the encoded information including this information is received, and the received reception information is stored.
  • the reception information includes an information reception value corresponding to the information, a parity 1 reception value corresponding to the parity of the element code 1, and a parity 2 reception value corresponding to the parity of the element code 2.
  • reception information storage unit 3 stores this reception information at a position corresponding to the selection result of the simultaneous decoding selection unit 2.
  • the external information storage unit 4 stores the external information soft-output by the SISO decoder of the soft input / soft output decoding unit 5 at a position corresponding to the selection result of the simultaneous decoding selection unit 2.
  • the soft input / soft output decoding unit 5 includes, for example, M SISO decoders that execute a radix-2 ⁇ n MAP algorithm capable of local processing using a window.
  • the soft input / soft output decoding unit 5 sequentially executes and repeats the decoding of the element code 1 and the decoding of the element code 2. Specifically, the soft input / soft output decoding unit 5 divides the code trellis of the element code 2 and the process of executing the decoding on each block obtained by dividing the code trellis of the element code 1 in parallel using a plurality of SISO decoders. The process of executing the decoding for each block in parallel is sequentially repeated.
  • the soft input / soft output decoding unit 5 decodes and repeats the element code 1 and the element code 2 simultaneously. Specifically, the soft-input / soft-output decoding unit 5 performs the decoding for each block obtained by dividing the code trellis of the element code 1 and the decoding for each block obtained by dividing the code trellis of the element code 2 at the same time in parallel. .
  • the process in which the soft input / soft output decoding unit 5 sequentially executes and repeats the decoding of the element code 1 and the decoding of the element code 2 is referred to as “normal parallelization”.
  • a process in which the soft input / soft output decoding unit 5 performs the decoding of the element code 1 and the element code 2 at the same time is referred to as “simultaneous decoding of the element code”.
  • the error correction code decoding apparatus 1 stores Ks in advance as the maximum value of the interleaver size that allows simultaneous decoding of element code 1 and element code 2.
  • the error correction code decoding apparatus 1 has already determined the interleaver size K at the transmission side and the reception side at the start of the communication session, and the same is true even when a plurality of frames are transmitted in the session. Interleaver size K shall be used.
  • the error correction code decoding apparatus 1 obtains the minimum divisor q of M such that K is a multiple of (M / q) ⁇ n with respect to the interleaver size K of the current session ( Step S1).
  • the simultaneous decoding selection unit 2 outputs a selection result for selecting whether or not to perform simultaneous decoding of two element codes according to the interleaver size K (step S2).
  • the reception information storage unit 3 converts the information reception value and the parity reception value into normal parallelization based on the selection result.
  • the corresponding address is read (step S3).
  • the soft input / soft output decoding unit 5 performs decoding of the element code 1 by using M / q SISO decoders (step S4), and then decodes the element code 2 by M / q SISO decoding. Decoding is performed by using a device (step S5).
  • the soft input / soft output decoding unit 5 repeats steps S4 to S5 until it is determined that iterative decoding is completed (Yes in step S6).
  • the error correction code decoding apparatus 1 completes the decoding process for all the frames in the current session, the error correction code decoding apparatus 1 ends the session decoding process (Yes in step S7).
  • the reception information storage unit 3 sets the information reception value and the parity reception value according to the simultaneous decoding of the element codes based on the selection result. Read into the address (step S8).
  • the soft input / soft output decoding unit 5 simultaneously decodes element code 1 using M / q SISO decoders and element code 2 using another M / q SISO decoders. (Steps S9 and S10).
  • the soft input / soft output decoding unit 5 repeats the simultaneous execution of steps S9 and S10 until it is determined that the iterative decoding is completed (Yes in step S11).
  • the error correction code decoding apparatus 1 completes the decoding process for all frames in the current session, the error correction code decoding apparatus 1 ends the session decoding process (Yes in step S12).
  • the error correction code decoding apparatus 1 ends the operation.
  • the simultaneous decoding selection unit 2 performs the processing in steps S1 and S2 on all interleaver sizes K in advance and stores them in a storage device (not shown). You may refer to it. Further, the simultaneous decoding selection unit 2 may select whether or not to execute the simultaneous decoding based on only the determination of K> Ks.
  • K is small
  • the block size B is inevitably small, and the overhead required for training of backward processing of the window size W is also large. Therefore, it can be expected that the simultaneous decoding of two element codes while suppressing the degree of parallelism per element code also contributes to speeding up in this respect.
  • the soft input / soft output decoding unit 5 may determine the end determination using a CRC added in advance to the information portion.
  • the error correction code decoding apparatus can efficiently perform decoding processing for various interleaver sizes while suppressing an increase in apparatus scale.
  • the error correction code decoding apparatus executes normal decoding for each block in parallel, repeats decoding of element code 1 and element code 2 sequentially, and two element codes. This is because parallelism that simultaneously performs decoding is used in a selectable manner.
  • the error correction code decoding apparatus uses the reception information and the external information as a selection result as to whether or not to perform simultaneous decoding in the reception information storage unit and the external information storage unit. Since the data is stored in the corresponding position, an increase in the capacity of the reception information storage unit and external information storage can be suppressed.
  • FIG. 9 shows the configuration of a turbo code decoding apparatus 20 as a second embodiment of the present invention.
  • the same components as those of the error correction code decoding apparatus 1 as the first embodiment of the present invention are denoted by the same reference numerals, and detailed description thereof is omitted.
  • a turbo code decoding apparatus 20 includes a simultaneous decoding selection unit 1100, an address generation unit 800, an information reception value memory 801, a parity reception value memory 802, an external information memory 803, and a soft input / soft output decoding unit. 5, a replacement unit 900, and a hard decision unit 1001.
  • the address generation means 800, the information reception value memory 801, and the parity reception value memory 802 constitute one embodiment of the reception information storage means of the present invention.
  • the address generation means and external information memory 803 constitute one embodiment of the external information storage means of the present invention.
  • the address generation unit 800 generates addresses for reading / writing the information reception value memory 801, the parity reception value memory 802, and the external information memory 803 according to the selection result of the simultaneous decoding selection unit 1100.
  • the address generation method will be described later.
  • the information reception value memory 801 includes (M ⁇ n) memories U_0, U_1, ..., U_ ⁇ M ⁇ n-1 ⁇ .
  • the memory U_ ⁇ n ⁇ J + i ⁇ (0 ⁇ i ⁇ n) is x (j ⁇ B + i), x (j ⁇ B + i + n), x (j ⁇ B + i + 2n), ..., x (j • Store B / n received values of B + i + Bn).
  • B K / M ′ is the block size.
  • the memory U_ ⁇ 2 ⁇ (n ⁇ j + i) ⁇ is configured to store the same data as the memory U_ ⁇ n ⁇ j + i ⁇ .
  • the memories U_0, U_1, ..., U_ ⁇ M ' ⁇ n-1 ⁇ are used for decoding of the element code 1
  • the memories U_ ⁇ M' ⁇ n ⁇ , U_ ⁇ M ' ⁇ n + 1 ⁇ , ..., U_ ⁇ 2 M ′ ⁇ n ⁇ 1 ⁇ is used in decoding of element code 2.
  • memory P_ ⁇ n ⁇ j + i ⁇ (0 ⁇ i ⁇ n ) Is y1 (j ⁇ B + i), y1 (j ⁇ B + i + n),..., y1 (j ⁇ B + i + Bn), y2 (j ⁇ B + i), y2 (j ⁇ B Stores 2 ⁇ B / n received values of + i + n), ..., y2 (j ⁇ B + i + Bn).
  • the external information is information that is soft-output by the SISO decoder of the soft-input / soft-output decoding unit 5 and further replaced by prior information described later by the replacement unit 900.
  • the external information memory 803 divides the K pieces of external information into M ′ equal parts and outputs the external information e1 (j) that is the SISO decoded output of the element code 1 These are stored in memories E_ ⁇ M ′ ⁇ n ⁇ , E_ ⁇ M ′ ⁇ n + 1 ⁇ ,..., E_ ⁇ 2 ⁇ M ′ ⁇ n ⁇ 1 ⁇ so as to be prior information of SISO decoding of code 2. Also, the external information memory 803 uses the memory E_0, E_1,..., E_ ⁇ so that the external information e2 (j), which is the SISO decoded output of the element code 2, becomes the prior information of the SISO decoding of the element code 1. Store in M ' ⁇ n-1 ⁇ .
  • the total memory size of the information reception value memory 801 and the external information memory 803 is set to be not less than twice the maximum value Ks of interleaver size capable of simultaneous decoding and not less than the maximum value of the interleaver size.
  • FIG. 11 shows the configuration of the replacement unit 900.
  • the replacement unit 900 includes a replacement processing unit 901 and an inverse conversion processing unit 905.
  • the interleaving process is performed by using a plurality of SISOs of the address generated by the address generation unit 800 in FIG. 8 and the data simultaneously read from the information reception value memory 801 and the parity reception value memory 802.
  • This can be realized by a replacement process that gives a response to the decoder.
  • n replacement processing units 901 and n inverse conversion processing units 905 are prepared.
  • the replacement processing unit 901 and the inverse transformation processing unit 905 are configured to execute a replacement process of size M / q according to each q in the case of normal parallelization and simultaneous decoding of element codes.
  • the replacement processing unit 901 includes a replacement processing unit 902 for normal parallel processing, a replacement processing unit 903 for simultaneous decoding of element codes, and a selector 904 for selecting the replacement processing unit 902 and the replacement processing unit 903. And have.
  • the replacement processing unit 902 performs replacement processing (represented as ⁇ 1) of M data (external information) from the external information memory 803.
  • the replacement processing unit 903 performs identity conversion of M ′ data corresponding to the element code 1 and replacement processing (represented as ⁇ 2) of M ′ data corresponding to the element code 2.
  • the inverse transformation processing unit 905 includes an inverse transformation processing unit 906 for normal parallelization, an inverse transformation processing unit 907 for simultaneous decoding of element codes, a swap processing unit 908, an inverse transformation processing unit 906, and And a selector 909 for selecting the inverse conversion processing unit 907.
  • the inverse transformation processing unit 905 updates the external information memory 803 after performing inverse transformation on the external information generated by the SISO decoder of the soft input / soft output decoding unit 5.
  • the inverse transformation processing unit 906 and the inverse transformation processing unit 907 perform inverse transformation processing Inv_ ⁇ 1 and Inv_ ⁇ 2 for ⁇ 1 of the replacement processing unit 902 and ⁇ 2 of the replacement processing unit 903, respectively.
  • the swap processing unit 908 performs swap processing of the external information of the element code 1 and the external information of the element code 2 generated by the inverse conversion processing unit 907.
  • external information generated by decoding of element code 1 is read as prior information by decoding of element code 1, so that external information generated by decoding of element code 1 is read as prior information by decoding of element code 2. It is written in the external information memory 803 so that it can be read.
  • the processing schedule of SISO decoding in the block assumes a processing order in which backward processing is first performed in units of windows as shown in FIG.
  • the address generation unit 800 when decoding element code 1 with normal parallelization, is common to all memories in units of windows. W-1, W-2,..., 1, 0, 2 ⁇ W-1,2 ⁇ W-2,..., W, 3 ⁇ W-1,3 ⁇ W-2,... And generate an address.
  • the address generation unit 800 reads the data from the information reception value memory 801 and the external information memory 803 when decoding the element code 2 in normal parallelization. ⁇ 1-1 ( ⁇ (W-1) mod B, ⁇ (B + W-1) mod B,..., ⁇ ((M'-1) B + W-1) mod B), ⁇ 1-1 ( ⁇ (W-2) mod B, ⁇ (B + W-2) mod B,..., ⁇ ((M'-1) B + W-2) mod B), ...
  • ⁇ 1-1 ( ⁇ (1) mod B, ⁇ (B + 1) mod B,..., ⁇ ((M'-1) B + 1) mod B), ⁇ 1-1 ( ⁇ (0) mod B, ⁇ (B) mod B,..., ⁇ ((M'-1) B) mod B), ⁇ 1-1 ( ⁇ (2W-1) mod B, ⁇ (B + 2W-1) mod B,..., ⁇ ((M'-1) B + 2W-1) mod B), ⁇ 1-1 ( ⁇ (2W-2) mod B, ⁇ (B + 2W-2) mod B,..., ⁇ ((M'-1) B + 2W-2) mod B), ... And the address of each memory.
  • the interleaving processing of the turbo code is performed by converting the information sequence u (0), u (1), u (2), ..., u (K-1) into u ( ⁇ (0)), u ( ⁇ (1 )), ..., u ( ⁇ (K-1)), ⁇ 1-1 represents the inverse transformation processing by the inverse transformation processing unit 905, and each memory and a plurality of SISO decoders Give correspondence.
  • "a mod B" is a remainder of B of a, and takes a value from 0 to B-1.
  • the address generation unit 800 reads the parity 2 by normal parallelization.
  • generate an address B / n + W-1, B / n + W-2,..., B / n + 1, B / n, B / n + 2 ⁇ W-1, B / n + 2 ⁇ W-2,..., B / n + W, B / n + 3 ⁇ W-1, B / n + 3 ⁇ W-2,... And generate an address.
  • the address generation unit 800 in the simultaneous decoding of the element codes, corresponds to the memories U_0, U_1,..., U_ ⁇ M ′ ⁇ n ⁇ 1 ⁇ and E_0, E_1,. .., E_ ⁇ M ′ ⁇ n ⁇ 1 ⁇ , as in the case of decoding of element code 1 described above, and the memory U_ ⁇ M ′ ⁇ n ⁇ , U_ corresponding to the input of SISO decoding of element code 2 ⁇ M ' ⁇ n + 1 ⁇ , ..., U_ ⁇ 2 ⁇ M' ⁇ n-1 ⁇ and E_ ⁇ M ' ⁇ n ⁇ , E_ ⁇ M' ⁇ n +1 ⁇ , ..., E_ ⁇ 2
  • addresses are generated in the same manner as in the decoding of element code 2 described above.
  • the address generation unit 800 uses the same address as in the case of the element code 1 in the normal parallelization for the parity in the simultaneous decoding of the element codes up to P_0,..., P_ ⁇ 2 ⁇ M′-1 ⁇ . Is generated.
  • the hard decision unit 1001 is arranged as shown in FIG. 12, and includes the information reception value read from the information reception value memory 801, external information as advance information read from the external information memory 803, and the soft input / soft output decoding unit 5. A hard decision is made using the generated external information.
  • the hard decision unit 1001 includes a temporary memory 1002, an address control unit 1003, a hard decision memory 1004, and a hard decision circuit 1005.
  • the temporary memory 1002 is a memory that temporarily holds the information reception value and the prior information until external information is generated.
  • the address control unit 1003 generates read / write addresses for the temporary memory 1002 and the hard decision memory 1004.
  • the hard decision circuit 1005 is a circuit that executes a process of generating L (t) from the received information value x (t), the prior information La (t), and the external information Le (t) by Expression (2).
  • the hard decision circuit 1005 determines the decoding result 0 or 1 based on the sign of L (t).
  • the selector of the hard decision circuit 1005 is external to element code 1 swapped by the swap processing unit 908 in FIG. A process of returning the information so as to correspond to the received value of the element code 1 and the external information is performed.
  • the simultaneous decoding selection unit 1100 is configured in the same manner as the simultaneous decoding selection unit 2 according to the first embodiment of the present invention. Further, the selection result is displayed as an address generation unit 800, a replacement unit 905, a hard decision unit 1001, and a soft decision unit. The data is output to the input soft output decoding unit 5.
  • turbo code decoding apparatus 20 configured as described above performs decoding on a 3GPP LTE turbo code will be described below.
  • An example of a turbo code decoding device 20 to which ⁇ 2 SISO decoders 8) are applied is shown mainly in the case where simultaneous decoding of element codes is selected.
  • the LTE interleaver uses 8 radix-2 ⁇ 2 SISO decoders by dividing the code trellis into 8 by normal parallelization for 512 or more K, thereby enabling memory access. Parallel decoding can be executed while avoiding contention. Therefore, it is preferable that the turbo code decoding apparatus 20 sets 512 as the upper limit Ks of the interleave size when performing simultaneous decoding of element codes. At this time, since the maximum length of the interleaver 6144 is larger than twice Ks in the turbo code decoding device 20, it is not necessary to increase the memory capacity even if the element codes are decoded simultaneously.
  • each of U_0 to U_7 and U_8 to U_15 can be configured by one memory.
  • P_0,..., P_15 can be realized by one memory because they are accessed with the same address in both normal parallelization and simultaneous decoding of element codes.
  • the external information memory 803 outputs the SISO decoding of the element code 2 in E_0,..., E_7 for simultaneous decoding of the element codes (hereinafter, “memory” is omitted).
  • E_8,..., E_15 store external information that is an output of SISO decoding of element code 1.
  • e2 (122) e2 (124) E_1: e2 (1) e2 (3) ... e2 (123) e2 (125) E_2: e2 (126) e2 (128) ... e2 (248) e2 (250) E_3: e2 (127) e2 (129) ... e2 (249) e2 (251) E_4: e2 (252) e2 (254) ... e2 (374) e2 (376) E_5: e2 (253) e2 (255) ... e2 (375) e2 (377) E_6: e2 (378) e2 (380) ...
  • E_0 to E_7 and E_8 to E_15 are respectively accessed with the same address, and thus can be realized with one memory.
  • u ( ⁇ (t)) u ((55 ⁇ t + 84 ⁇ t ⁇ 2) mod 504)
  • the information reception value and the prior information are read out.
  • the SISO decoder 0 reads x (14), x (15), e2 (14), e2 (15), y1 (14), y1 (15) and reads the first in FIG. Start time slot backward processing.
  • the SISO decoder 0 determines the branch metric ⁇ (14, s, s ′), ⁇ (15, s, s ′) (s, s′ ⁇ S) of the element code 1 based on the read received value and external information. ) And is temporarily stored inside the decoder until the generation of the external information is completed.
  • the SISO decoders 1, 2, and 3 perform the same process as the SISO decoder 0.
  • the SISO decoders 4, 5, 6 and 7 read the received value, the prior information and the parity received value with respect to the decoding of the element code 2 as follows.
  • the SISO decoders 4, 5, 6 and 7 generate the generated external information e2 (98), e2 (69), e2 (224), e2 (195), e2 (350), e2 (321), e2 ( 476) and e2 (447) are written in the memories E_0,..., E_7, respectively.
  • the SISO decoder 0 reads x (12), x (13), e2 (12), e2 (13), y1 (12), y1 (13) and proceeds with backward processing.
  • the SISO decoder 0 calculates the branch metrics ⁇ (12, s, s ′), ⁇ (13, s, s ′) of the element code 1 from the read received value and external information (s, s′ ⁇ S ), And temporarily storing them inside the SISO decoder until the generation of the external information is completed.
  • the SISO decoders 1, 2 and 3 perform the same processing as the SISO decoder 0.
  • the SISO decoders 4, 5, 6 and 7 read the reception value, the prior information and the parity reception value as follows for the decoding of the element code 2.
  • the SISO decoders 4, 5, 6 and 7 generate the generated external information e2 (30), e2 (43), e2 (156), e2 (169), e2 (282), e2 (295), e2 ( 408) and e2 (421) are written in the memories E_0,..., E_7, respectively.
  • the error correction code decoding apparatus may change the setting of W depending on whether normal parallelization or simultaneous decoding of element codes. Also, since the appropriate size of W depends on the coding rate, it is effective to set W in consideration of the coding rate at this time.
  • the turbo code decoding apparatus is configured as described above, so that an interleaver size that requires reducing the number of SISO decoders to be used only by normal parallelization is used. On the other hand, it is possible to increase the number, and improvement in characteristics can be achieved at a processing speed for achieving the same characteristics or at the same processing speed.
  • the turbo code decoding device as the second exemplary embodiment of the present invention does not require an increase in the capacity of the information reception value memory and the external information memory. This is because the turbo code decoding apparatus sets the total size of the information reception value memory and the external information memory to the maximum interleaver size or more, and only two when the interleaver size is 1/2 or less of the maximum interleaver size. This is because the simultaneous decoding of the element codes can be selected.
  • the replacement means of the present invention for assigning information reception values and external information read from a plurality of memories to a plurality of SISO decoders. Requires a circuit with an input / output size different from that of normal parallel processing.
  • this replacement means the processing in the case of normal parallelization in which the number of inputs / outputs is maximized is dominant, so the overhead for supporting the processing of simultaneously decoding two element codes in the present invention is Limited.
  • Received information of encoded information including a first element code that is a convolutional code of information, a second element code that is a convolutional code of the information replaced by an interleaver, and the information
  • simultaneous decoding selection means for selecting whether or not to decode the first and second element codes simultaneously
  • reception Received information storage means for storing information at a position corresponding to the selection result of the simultaneous decoding selection means, and external information respectively corresponding to the first and second element codes in the selection result of the simultaneous decoding selection means
  • External information storage means for storing at a corresponding position, and soft input / soft output decoding based on the received information and the external information for each block obtained by dividing the first and second element codes
  • a plurality of soft-input soft-output decoders that execute in parallel and output the external information, respectively, and when the simultaneous decoding is not selected by the simultaneous de
  • the simultaneous decoding selection means selects simultaneous decoding of the first and second element codes when the size of the interleaver is not a multiple of the number of the plurality of soft input / soft output decoders.
  • the error-correcting code decoding apparatus according to supplementary note 1, wherein:
  • the supplementary note 1 is characterized in that the simultaneous decoding selection means selects the simultaneous decoding of the first and second element codes when the size of the interleaver is smaller than a predetermined value.
  • the error correction code decoding apparatus described.
  • the said simultaneous decoding selection means selects simultaneous decoding of the said 1st and 2nd element code, when the size of the said interleaver is a predetermined value,
  • the additional remark 1 characterized by the above-mentioned. Error correction code decoding apparatus.
  • the reception information storage unit double stores an information reception value corresponding to the information among the reception information, and the external information
  • the storage means stores the external information that is the decoding result of the first element code so as to be read by the soft input / soft output decoder that decodes the second element code, and decodes the second element code.
  • the error correction code decoding apparatus according to any one of appendix 1 to appendix 4, wherein the external information as a result is stored so as to be read by the soft input / soft output decoder that decodes the first element code .
  • the received information storage means, the external information storage means, and the soft input / soft output decoding means by replacing the information reception value and the external information with a size corresponding to the selection result of the simultaneous decoding selection means 6.
  • the error correction code decoding apparatus according to any one of appendix 1 to appendix 5, further comprising replacement means for inputting / outputting data to / from.
  • the soft input / soft output decoding means locally performs soft input / soft output decoding of the first and second element codes using a window, and the simultaneous decoding selection means selects the simultaneous decoding.
  • the error correction code decoding apparatus according to any one of appendix 1 to appendix 7, wherein the size of the window is changed.
  • Received information of encoded information including a first element code that is a convolutional code of information, a second element code that is a convolutional code of the information replaced by an interleaver, and the information
  • An error correction code decoding apparatus that performs iterative decoding on whether or not to simultaneously decode the first and second element codes according to the size of the interleaver, and
  • the received information is stored in the received information storage means at a position corresponding to the decoding selection result, and the external information corresponding to each of the first and second element codes is stored in the external information storage means at the position corresponding to the simultaneous decoding selection result.
  • Received information of encoded information including a first element code that is a convolutional code of information, a second element code that is a convolutional code of the information replaced by an interleaver, and the information
  • a simultaneous decoding selection step for selecting whether or not to simultaneously decode the first and second element codes in accordance with the size of the interleaver in an error correction code decoding apparatus that repeatedly performs decoding on
  • a reception information storage step for storing information in a reception information storage means at a position corresponding to the selection result of the simultaneous decoding selection means; and external information corresponding to the first and second element codes respectively.
  • the present invention can provide an error correction code decoding apparatus capable of efficiently performing decoding processing on various interleaver sizes while suppressing an increase in apparatus scale. It is suitable as a decoding device for the corresponding turbo code.

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)

Abstract

 装置規模の増大を抑えながら多様なインターリーバサイズに対して効率よく復号処理を行うことができる誤り訂正符号復号装置を提供する。誤り訂正符号復号装置は、インターリーバのサイズに応じて要素符号1および2を同時復号するか否かを選択する同時復号選択部と、同時復号選択部の選択結果に応じた位置に受信情報を格納する受信情報格納部と、要素符号1および2にそれぞれ対応する外部情報を、同時復号選択部の選択結果に応じた位置に格納する外部情報格納部と、要素符号1および2が分割された各ブロックに対して軟入力軟出力復号を並列に実行する複数の軟入力軟出力復号器を有し、同時復号が選択されなかった場合は、要素符号1の復号および要素符号2の復号を順次実行して繰り返し、同時復号が選択された場合は、要素符号1および2を同時に復号して繰り返す軟入力軟出力復号部と、を備える。

Description

誤り訂正符号復号装置、誤り訂正符号復号方法および誤り訂正符号復号プログラム
 本発明は、誤り訂正符号の復号装置に関し、特に、ターボ符号に代表される並列連接符号を復号する誤り訂正符号復号装置、誤り訂正符号復号方法および誤り訂正符号復号プログラムに関する。
 誤り訂正符号化技術は、データの符号化・復号という操作を通じてデータ伝送時の通信路上で発生したビット反転等のエラーからデータを保護する技術である。このような誤り訂正符号化技術は、無線通信やデジタル記憶媒体を始めとする各分野で現在広く利用されている。符号化は、送信する情報を、冗長ビットを付加した符号語に変換する処理である。復号は、その冗長性を利用してエラーが混入した符号語(受信語)から元の符号語(情報)を推定する処理である。
 Berrouらによって提案されたターボ符号は、その訂正能力の高さからモバイル用途の実用化が進んできた。ターボ符号に関しては非特許文献1に述べられている。
 図1にターボ符号器100およびターボ符号復号器110の構成を示す。
 図1(a)におけるターボ符号器100は、インターリーバ103を介してフィードバックを持つ組織的な畳込み符号化器101、102が2個並列に連接されて構成される。この畳込み符号はターボ符号の要素符号と呼ばれ、メモリ数4以下の符号が通常使用され、図1はメモリ数2の場合の例を示している。以下、符号化器101を要素符号1、符号化器102を要素符号2と呼び、それぞれで生成されるパリティ系列をパリティ1、パリティ2と呼ぶことにする。インターリーバ103は、ビットの並び替え処理を行う。インターリーバ103の大きさと設計によって符号性能が大きく左右される。
 図1(b)におけるターボ符号復号器110の構成について説明する。軟入力軟出力(Soft-In Soft-Output, 以下、SISOともいう)復号器111は、各要素符号に対応する復号処理を行う。メモリ112、113、114は、それぞれ情報系列、パリティ1、パリティ2に対応する受信値を保持する。メモリ115は、要素符号のSISO復号で得られる軟出力値(外部情報)を保持する。デインターリーバ116は、インターリーバ103による並び替えを戻す処理を行う。ターボ符号の復号法の特徴は、要素符号のSISO復号で得られる軟出力値(外部情報)を他方の要素符号の軟入力値(事前情報)として利用し、これを繰り返すことにある。以下、ターボ符号の要素符号は2値の畳込み符号であるとして説明を行う。
 最適な軟出力復号は、符号語の制約条件において受信系列に基づき各情報ビットの事後確率を計算して0、1を判定する復号である。このためには次の式(1)を計算すれば十分となる。
  L(t) = log(P(u(t)=0|Y)/P(u(t)=1|Y)) … (1)
 ここで、u(t)は時点tの情報ビット、Yは符号語に対する受信値の系列、P(u(t)=b|Y)(b=0,1)は受信系列Yの下でu(t)=bとなる条件付確率である。一般の誤り訂正符号でL(t)を求めることは計算量の点で非常に困難であるが、ターボ符号の要素符号のようにメモリ数が小さい畳込み符号の場合には符号語全体を状態数の小さい符号トレリスで表すことが可能であり、これを利用して効率よくSISO復号を実行することができる。このアルゴリズムはBCJRアルゴリズムもしくはMAPアルゴリズムと呼ばれていて非特許文献2に記述されている。
 ターボ符号で使用するSISO復号にはこのMAPアルゴリズムを適用することができる。ターボ符号の復号の繰り返しの過程で交換される軟出力値は式(1)の値L(t)そのものではなく、L(t)から算出される、次の式(2)で表される外部情報と呼ばれる値Le(t)である。
  Le(t) = L(t)-C ・ x(t) - La(t). … (2)
 ここでx(t)は情報ビットu(t)に対する受信値、La(t)はu(t)の事前情報として用いた他方の要素符号の軟出力復号で得られた外部情報、Cは通信路のSN比(signal-to-noise ratio)で決まる係数である。
 MAPアルゴリズムについて詳しく述べる。畳込み符号では、符号器におけるメモリの値に応じて入力情報に対する符号語が変化する。この符号器内部におけるメモリの値を符号器の"状態"と呼ぶ。畳込み符号による符号化は情報系列に応じて状態を変化させながら出力を行う。符号トレリスは、この状態の遷移の組み合わせをグラフで表現したものである。この符号トレリスでは、各時点における符号器の状態がノードとして表され、各ノードから遷移が存在する状態のノードのペアにエッジがアサインされる。エッジにはその遷移で出力される符号語のラベルが割り当てられる。エッジの連結をパスと呼び、パスのラベルは畳込み符号の符号語系列に対応する。
 図1に示した要素符号の畳込み符号器(メモリ数2)の構成を図2(a)に示す。図2(b)は、図2(a)に示した符号器に対応する符号トレリスである。初期状態はメモリを全て0とする。符号器の状態はメモリの値である。図2の畳込み符号では最初の情報ビットが0であれば符号語"00"を出力して時点1で状態"00"となる。一方、情報ビットが1であれば符号語"11"を出力して時点1の状態は"10"となる。時点2では時点1の状態"00","11"それぞれに対して情報ビット0、1に応じた符号語の出力と時点2への状態遷移が行われる。符号器の状態は"00"を0と表し、"11"を3と表す等、メモリ数分のビット数の整数として表現することもできる。
 符号トレリスを利用した復号アルゴリズムとしてよく知られているビタビアルゴリズムと同様に、MAPアルゴリズムは符号トレリスのパスと受信値の系列の相関(パスメトリック)を順次計算する処理を基本とする。MAPアルゴリズムは大きく分けて次の3種類の処理から成る:
(a)フォワード処理:符号トレリスの先頭から各ノードへ到達するパスメトリックを算出する。
(b)バックワード処理:符号トレリスの終端から各ノードへ到達するパスメトリックを算出する。
(c)軟出力生成処理:(a)、(b)の結果を用いて各時点での情報シンボルの軟出力(事後確率比)を算出する。
 ここで、フォワード処理におけるパスメトリックは受信系列と事前情報の下、符号トレリスの先頭から各ノードへ到達する確率(の対数値)を相対的に表す。バックワード処理におけるパスメトリックは符号トレリスの末尾から各ノードへ到達する確率(の対数値)を相対的に表す。畳込み符号の状態の集合をSとして時点t、状態s(∈S)のノードにおけるフォワード処理およびバックワード処理で算出されるパスメトリックをそれぞれα(t, s)およびβ(t,s)とおく。また、γ(t, s, s')で時点tで状態sから状態s'へ遷移する際の情報ビットおよび符号語と受信値および事前情報(ターボ符号の場合は他方の要素符号の軟出力)で決定される尤度であるブランチメトリックを表すとする。加法的白色ガウス通信路において、γ(t, s, s')は、状態sから状態s'への遷移で出力される符号語の変調値と受信値の間のユークリッド距離および情報ビットに対する事前情報を用いて容易に計算することができる。このとき、フォワード処理およびバックワード処理は次のように1時点前もしくは1時点後の値を用いて実行される(パスメトリック、軟出力は対数領域で表す):
(a)フォワード処理:
  α(t, s) = log(Σ_{s'∈S:τ(s', b)=s, b=0,1} exp(α(t-1, s')+γ(t-1, s', s))) … (3)
(b)バックワード処理:
  β(t, s) = log(Σ_{s'∈S:τ(s , b)=s', b=0,1} exp(β(t+1, s')+γ(t, s, s'))) … (4)
(c)軟出力生成処理
  L(t) = log(Σ_{s, s'∈S: τ(s , 0)=s'} exp(α(t, s) + γ(t, s, s') + β(t+1, s'))) - log(Σ_{s, s'∈S:τ(s , 1) = s'} exp(α(t, s) + γ(t, s, s') + β(t+1, s'))) … (5)
 ここで、τ(s', b) = sは、状態s'から情報ビットbで状態sへ遷移することを表し、Σ_{s'∈S:τ(s', b)=s, b=0,1}は次の時点で状態s'となるすべての状態sに関して和をとることを表す。またΣ_{s, s'∈S: τ(s, b)=s'}は状態sから状態s'への状態遷移における情報ビットがbとなる状態のペア{s, s'}に関して和をとることを表す。
 Max-Log-MAPアルゴリズムは式(3)、式(4)および式(5)の処理において、和を最大値によって変更することにより行われ、expとlogへの変換が不要となるためにビタビアルゴリズムにおけるACS(Add-Compare-Select)処理と同一の処理で実現可能となり、大幅な簡易化が可能となる。
 式(5)の軟出力生成のためには時点t毎にフォワード処理のαとバックワード処理のβが揃う必要があり、また、各時点のαとβの生成をどのような順序で行うかのスケジューリングを考えることが必要となる。単純な方法として図3(a)のように、符号トレリスの終端からバックワード処理を行って各時点のβを生成しておき、次にトレリスの先頭からフォワード処理および軟出力生成処理を行うスケジュールが考えられる。このスケジュールではトレリス長、つまり情報長分の遅延が発生するため、高速化には限界がある。また、βを情報長分保持する必要もあるため、メモリの使用量も大きい。
 そこで、畳込み符号のMAPアルゴリズムが符号トレリス上においてある程度局所的に実行できる性質を利用して、図3(b)のように符号トレリスをウィンドウ(大きさW時点)に分割してウィンドウ毎にフォワード処理、バックワード処理および軟出力生成処理を行うスケジューリングが考えられる。図3(b)において301はバックワード処理のトレーニング処理のタイミングを表しており、式(4)に従ってW時点分βを更新する。初期値はすべての状態に対してβを同じ値に設定する、もしくはターボ符号復号では反復復号における前回の処理で計算した値を用いる方法がある。302はフォワード処理のタイミングを表しており、式(3)のパスメトリックαはその時点の軟出力生成処理が終了するまで保持する。303は、301で計算したウィンドウ境界におけるパスメトリックを初期値としてバックワード処理を行うと同時に302のαを利用して軟出力生成を行うタイミングを表している。図3においてフォワード処理とバックワード処理を入れ替えて行うスケジューリングも考えられる。
 上述のウィンドウを用いたSISO復号は局所的な処理が可能であるため、局所的なSISO復号器を複数個用意してこれを並列に実行させることで高速化を図ることが自然に考えられる。図4は、符号トレリスを4個のブロックに分割して4個のSISO復号器(SISO0~SISO3)を用いて復号処理する場合の模式図である。符号トレリス終結処理に対応するバックワード処理は予め計算しておけばよいので、符号トレリスの終結を行っていても、分割は終結部分を除いて考えればよい。このとき符号トレリスの時点数は情報長(= インターリーバ長)Kと一致する。また、符号トレリスがM分割されM個のSISO復号器が復号処理に使用される場合、復号器1個あたりの処理時点数(=ブロックの大きさ)はB = K/M時点となる。図3のウィンドウ処理ではバックワード処理のトレーニングで2W時点分の遅延が発生するが、ブロックがウィンドウに比して十分大きければ、M個のSISO復号器を用いた復号処理においてM倍に近い高速化が達成できる。
 複数のSISO復号器による並列化を考えた場合、情報受信値メモリ、外部情報メモリ、パリティ受信値メモリも分割して構成すること、および複数のSISO復号器からの同一メモリへの同時アクセスが発生しないようにすることが、望ましい。図5のように複数のSISO復号器によるメモリアクセスの競合(メモリコンテンション)が発生する場合にはメモリの細分化やポートの増設などによって競合を回避し高速性を保つか、バッファを用意して遅延を許容して処理するといった処理が必要になる。前者は大幅な装置規模の増大を、後者は復号器のスループットの大きな低下を招く。パリティ受信値に関しては、要素符号1および要素符号2でそれぞれ分割したブロックに対応するようにブロック数分に分割して保持すればメモリアクセスの競合は発生せず、同一アドレスでアクセスできる。このため、パリティ受信値メモリは、1個のメモリとしても実現可能となる。しかし、情報受信値と外部情報については要素符号1と要素符号2の復号時に同一のメモリにアクセスすることになる。つまり、要素符号1に対応したブロックに応じてメモリが用意されるとしても、要素符号2の復号時のアクセスは、インターリーブしたアドレスを使用することになるため、単にランダムなインターリーバではメモリアクセスの競合が通常発生する。MAPアルゴリズムの1サイクルで符号トレリスのn時点分の処理を行う並列化であるradix-2^nアルゴリズムを考える場合にも同様に外部情報などのメモリをn個に分割してもメモリアクセスの競合の発生可能性がある。
 この問題に対してメモリアクセスの競合が起こらないようにインターリーバを設計する方法が知られている。Radix-2^nのMAPアルゴリズムを実行するM個のSISO復号器を使用することを考える。3GPP LTE(3rd Generation Partnership Project Long Term Evolution)で採用されたインターリーバは、インターリーバサイズKがM・nの倍数の場合には、M個のradix-2^n SISO復号器による並列復号時にメモリアクセス競合が発生しないことを保証する。なぜならインターリーバサイズKがM・nの倍数の場合、インターリーバは、情報受信値や外部情報をM・n個のブロックに対応したメモリに分割して保持するからである。3GPP LTEのインターリーバについては、例えば非特許文献3に記載されている。
 モバイル用途では情報長が小さい場合も多く、ターボ符号のインターリーバサイズKも細かく対応可能にすることで通信効率を向上させる方式が採られている。非特許文献3の3GPP LTEのターボ符号は、K=40から6144の中の188個に応じたインターリーバを設定している。Kが小さいほど、より細かいステップでインターリーバが設定されている。たとえば、K=40から512までは8のステップ、K=512から1024までは16のステップ、K=1024から2048までは32のステップ、K=2048以上は64のステップの各サイズに対して、インターリーバが設定されている。このときすべてのインターリーバサイズに対応するためには並列度はM・n = 8が限度となる。
 また、ターボ符号復号の並列化の手法として2個の要素符号を同時に復号する方法も知られている。これに関しては特許文献1に述べられている。
 図6に、特許文献1に記載の復号装置の構成を示す。図6において、要素符号1および要素符号2の符号トレリスはそれぞれ4個のブロックに分割され、これらのブロックに対してSISO復号器(SISO0~SISO7)は同時に復号処理を実行する。置換処理部601および置換処理部602は、インターリーバに対応して、メモリおよびSISO復号器の間で外部情報のアサインを実現する置換処理およびその逆変換処理をそれぞれ実行する。置換処理部601は、要素符号2の復号において、情報受信値(図示せず)も同一に置換処理を行ってSISO復号器へ入力をアサインする。この特許文献1に記載の復号装置は、他方の要素符号で生成された外部情報を直ちに事前情報として利用してSISO復号を行うことが特徴である。したがって、ブロック長B=K/MがWに比して大きければ、繰り返し復号の収束速度も高めることができる。しかし、この並列化手法では図6のように外部情報や情報受信値を要素符号に応じて異なるメモリに持つ必要があるため、これらのメモリサイズは図1の方式と比べて2倍となる。
C. Berrou et.al, "Near Shannon limit error-correcting coding and decoding: Turbo codes", Proc. IEEE International Conference of Communications (ICC), pp.1064-1070, 1993. L.R.Bhal et.al, "Optimal decoding of linear codes for minimizing symbol error rate", IEEE Transaction on Information Theory, pp.284-287, 1974. 3rd Generation Partnership Project; Technical Specification Group Radio Access Network; Evolved Universal Terrestrial Radio Access (E-UTRA); Multiplexing and channel coding (Release 8)、2009年
特開2007-006541号公報
 しかしながら、非特許文献3に記載された3GPP LTEの復号装置では、並列度に限度があるため、モバイル用途で用いられるターボ符号の多様なインターリーバサイズに対して効率よく復号処理を行っていないという課題があった。
 また、特許文献1に記載された復号装置では、効率よく復号処理を行うためにメモリサイズの増加を必要とし装置規模が増大するという課題があった。
 本発明は、上述の課題を解決するためになされたもので、装置規模の増大を抑えながら多様なインターリーバサイズに対して効率よく復号処理を行うことができる誤り訂正符号復号装置を提供することを目的とする。
 本発明の誤り訂正符号復号装置は、情報の畳込み符号である第1の要素符号と、インターリーバによって置換された前記情報の畳込み符号である第2の要素符号と、前記情報とを含む符号化情報の受信情報に対して繰り返し復号を実行する誤り訂正符号復号装置において、前記インターリーバのサイズに応じて前記第1および第2の要素符号を同時復号するか否かを選択する同時復号選択手段と、前記受信情報を、前記同時復号選択手段の選択結果に応じた位置に格納する受信情報格納手段と、前記第1および第2の要素符号にそれぞれ対応する外部情報を、前記同時復号選択手段の選択結果に応じた位置に格納する外部情報格納手段と、前記第1および第2の要素符号が分割された各ブロックに対して前記受信情報および前記外部情報に基づく軟入力軟出力復号を並列に実行して前記外部情報をそれぞれ出力する複数の軟入力軟出力復号器を有し、前記同時復号選択手段によって同時復号が選択されなかった場合は、前記第1の要素符号の復号および前記第2の要素符号の復号を順次実行して繰り返し、前記同時復号選択手段によって同時復号が選択された場合は、前記第1および第2の要素符号を同時に復号して繰り返す軟入力軟出力復号手段と、を備える。
 また、本発明の誤り訂正符号復号方法は、情報の畳込み符号である第1の要素符号と、インターリーバによって置換された前記情報の畳込み符号である第2の要素符号と、前記情報とを含む符号化情報の受信情報に対して繰り返し復号を実行する誤り訂正符号復号装置が、前記インターリーバのサイズに応じて前記第1および第2の要素符号を同時復号するか否かを選択し、前記受信情報を、前記同時復号の選択結果に応じた位置で受信情報格納手段に格納し、前記第1および第2の要素符号にそれぞれ対応する外部情報を、前記同時復号の選択結果に応じた位置で外部情報格納手段に格納し、前記第1および第2の要素符号が分割された各ブロックに対して前記受信情報および前記外部情報に基づく軟入力軟出力復号を並列に実行して前記外部情報をそれぞれ出力する複数の軟入力軟出力復号器を用いて、前記同時復号を選択しなかった場合は、前記第1の要素符号の復号および前記第2の要素符号の復号を順次実行して繰り返し、前記同時復号を選択した場合は、前記第1および第2の要素符号を同時に復号して繰り返す。
 また、本発明の誤り訂正符号復号プログラムは、情報の畳込み符号である第1の要素符号と、インターリーバによって置換された前記情報の畳込み符号である第2の要素符号と、前記情報とを含む符号化情報の受信情報に対して繰り返し復号を実行する誤り訂正符号復号装置に、前記インターリーバのサイズに応じて前記第1および第2の要素符号を同時復号するか否かを選択する同時復号選択ステップと、前記受信情報を、前記同時復号の選択結果に応じた位置で受信情報格納手段に格納する受信情報格納ステップと、前記第1および第2の要素符号にそれぞれ対応する外部情報を、前記同時復号の選択結果に応じた位置で外部情報格納手段に格納する外部情報格納ステップと、前記第1および第2の要素符号が分割された各ブロックに対して前記受信情報および前記外部情報に基づく軟入力軟出力復号を並列に実行して前記外部情報をそれぞれ出力する複数の軟入力軟出力復号器を用いて、前記同時復号を選択しなかった場合は、前記第1の要素符号の復号および前記第2の要素符号の復号を順次実行して繰り返し、前記同時復号を選択した場合は、前記第1および第2の要素符号を同時に復号して繰り返す軟入力軟出力復号ステップと、を実行させる。
 本発明は、装置規模の増大を抑えながら多様なインターリーバサイズに対して効率よく復号処理を行うことができる誤り訂正符号復号装置を提供することができる。
(a)は、関連技術のターボ符号器の構成図、(b)は、関連技術のターボ符号復号器の構成図である。 (a)は、関連技術のターボ符号復号器における畳込み符号化器の構成図、(b)は、畳込み符号化器の状態遷移を表す符号トレリスの概念図である。 (a)は、関連技術のターボ符号復号器のMAPアルゴリズムにおけるフォワード処理、バックワード処理および軟出力生成処理の順序を示す図、(b)は、このMAPアルゴリズムにおけるウィンドウを用いてのフォワード処理、バックワード処理および軟出力生成処理の順序を示す図である。 関連技術のターボ符号復号装置において、符号トレリスを分割したブロック毎に同時にSISO復号を行う並列化を説明する模式図である。 関連技術のターボ符号復号装置において、SISO復号の並列化でメモリアクセスの競合が発生する状況を説明する模式図である。 他の関連技術のターボ符号復号装置の構成図である。 本発明の第1の実施の形態としての誤り訂正符号復号装置の構成図である。 本発明の第1の実施の形態としての誤り訂正符号復号装置の動作を示すフローチャートである。 本発明の第2の実施の形態としてのターボ符号復号装置の構成図である。 本発明の第2の実施の形態におけるメモリ構成の説明図である。 本発明の第2の実施の形態における置換部の構成を示すブロック図である。 本発明の第2の実施の形態における硬判定部の配置を示すブロック図である。 本発明の第2の実施の形態における硬判定部の構成を示すブロック図である。 本発明の第2の実施の形態としてのターボ符号復号装置を3GPP LTEターボ符号(インターリーバ長504)の復号に適用したときの特性を示すグラフである。
 以下、本発明の第1の実施の形態について、図面を参照して詳細に説明する。
 本発明の第1の実施の形態としての誤り訂正符号復号装置1の構成を図7に示す。図7において、誤り訂正符号復号装置1は、機能ブロックとして、同時復号選択部2と、受信情報格納部3と、外部情報格納部4と、軟入力軟出力復号部5とを備えている。
 ここで、同時復号選択部2は、後述の同時復号選択機能を実現する回路によって構成され、受信情報格納部3および外部情報格納部4は、RAM(Random Access Memory)等の記憶装置および記憶装置に対するデータの読み書きを制御する制御回路によって構成され、軟入力軟出力復号部5は、M(Mは1以上の整数)個のSISO復号器によって構成される。
 同時復号選択部2は、通信セッションの開始時に送信側と受信側でインターリーバサイズKを決定する。また、同時復号選択部2は、決定したインターリーバサイズK(Kは1以上の整数)に応じて、後述の要素符号1および要素符号2を同時復号するか否かを選択または決定するための選択結果(決定情報)を出力する。
 受信情報格納部3は、図示しない誤り訂正符号器から通信経路を介して、情報の畳込み符号である要素符号1と、この情報がインターリーバによって置換された情報の畳込み符号である要素符号2と、この情報とを含む符号化情報を受信し、受信された受信情報を格納する。
 ここで、受信情報は、情報に対応する情報受信値、要素符号1のパリティに対応するパリティ1受信値、および要素符号2のパリティに対応するパリティ2受信値によって構成される。
 また、受信情報格納部3は、この受信情報を、同時復号選択部2の選択結果に応じた位置に格納する。
 外部情報格納部4は、軟入力軟出力復号部5のSISO復号器によって軟出力される外部情報を、同時復号選択部2の選択結果に応じた位置に格納する。
 軟入力軟出力復号部5は、例えば、ウィンドウを用いて局所的な処理が可能なradix-2^nのMAPアルゴリズムを実行する、M個のSISO復号器を有する。この場合、M個のSISO復号器は、本発明におけるL(=M・n)個のSISO復号器の一実施形態を構成する。
 また、軟入力軟出力復号部5は、同時復号選択部2によって同時復号が選択されなかった場合、要素符号1の復号および要素符号2の復号を順次実行して繰り返す。詳細には、軟入力軟出力復号部5は、複数のSISO復号器を用いて要素符号1の符号トレリスを分割した各ブロックに対する復号を並列に実行する処理と、要素符号2の符号トレリスを分割した各ブロックに対する復号を並列に実行する処理とを、順次繰り返す。
 また、軟入力軟出力復号部5は、同時復号選択部2によって同時復号が選択された場合、要素符号1および要素符号2を同時に復号して繰り返す。詳細には、軟入力軟出力復号部5は、要素符号1の符号トレリスを分割した各ブロックに対する復号と、要素符号2の符号トレリスを分割した各ブロックに対する復号とを同時に並列に実行して繰り返す。
 なお、以下、軟入力軟出力復号部5が、要素符号1の復号および要素符号2の復号を順次実行して繰り返す処理を、「通常の並列化」と呼ぶ。また、軟入力軟出力復号部5が、要素符号1および要素符号2の復号を同時に実行する処理を、「要素符号の同時復号」と呼ぶことにする。
 次に、本発明の第1の実施の形態としての誤り訂正符号復号装置1の動作について図8を用いて説明する。
 なお、図8において、誤り訂正符号復号装置1は、要素符号1および要素符号2の同時復号を行うことが可能なインターリーバサイズの最大値としてあらかじめKsを記憶しているものとする。
 また、誤り訂正符号復号装置1は、図8において、通信セッションの開始時に送信側と受信側でインターリーバサイズKを既に決定しており、そのセッションで複数のフレームを送信する場合も、同一のインターリーバサイズKを用いるものとする。
 図8において、まず、誤り訂正符号復号装置1は、現セッションのインターリーバサイズKに対して、Kが(M/q)×nの倍数となるような最小のMの約数qを求める(ステップS1)。
 次に、同時復号選択部2は、インターリーバサイズKに応じて2個の要素符号の同時復号を実行するか否かを選択する選択結果を出力する(ステップS2)。
 例えば、同時復号選択部2は、q=1もしくはK>Ksが成り立つか否かに基づいて、要素符号1および要素符号2の同時復号を実行するか否かを選択してもよい。
 ステップS2において、q=1もしくはK>Ksであり通常の並列化が選択されると、受信情報格納部3は、選択結果に基づいて、情報受信値およびパリティ受信値を、通常の並列化に応じたアドレスに読み込む(ステップS3)。
 次に、軟入力軟出力復号部5は、M/q個のSISO復号器を用いて要素符号1の復号を行い(ステップS4)、その後、要素符号2の復号をM/q個のSISO復号器を用いて復号を行う(ステップS5)。
 軟入力軟出力復号部5は、繰り返し復号の終了の判定となるまで(ステップS6でYes)、ステップS4~S5を繰り返す。
 誤り訂正符号復号装置1は、現セッションのすべてのフレームの復号処理を終了したら、セッションの復号処理を終了する(ステップS7でYes)。
 一方、ステップS2において、2個の要素符号の同時復号が選択されると、受信情報格納部3は、選択結果に基づいて、情報受信値およびパリティ受信値を、要素符号の同時復号に応じたアドレスに読み込む(ステップS8)。
 次に、軟入力軟出力復号部5は、M/q個のSISO復号器を用いて要素符号1の復号を、別のM/q個のSISO復号器を用いて要素符号2の復号を同時に行う(ステップS9、S10)。
 軟入力軟出力復号部5は、繰り返し復号の終了の判定となるまで(ステップS11でYes)、ステップS9およびS10の同時実行を繰り返す。
 誤り訂正符号復号装置1は、現セッションのすべてのフレームの復号処理を終了したら、セッションの復号処理を終了する(ステップS12でYes)。
 以上で、誤り訂正符号復号装置1は動作を終了する。
 なお、ステップS1およびS2において、同時復号選択部2は、すべてのインターリーバサイズKに対してあらかじめステップS1およびS2の処理を実行して記憶装置(図示せず)に保存しておき、実行時にそれを参照してもよい。また、同時復号選択部2は、同時復号を実行するか否かの選択を、単にK>Ksの判定のみに基づいて行ってもよい。ここで、Kが小さい場合は必然的にブロックサイズBも小さくなり、ウィンドウサイズWのバックワード処理のトレーニングに必要なオーバーヘッドも大きくなる。したがって、要素符号あたりの並列度を抑えて2個の要素符号の同時復号を行うことにより、この点においても高速化に貢献することが期待できる。
 また、ステップS5およびS11において、軟入力軟出力復号部5は、終了判定を、予め情報部分に付加されているCRCを用いて判定してもよい。
 次に、本発明の第1の実施の形態の効果について述べる。
 本発明の第1の実施の形態としての誤り訂正符号復号装置は、装置規模の増大を抑えながら多様なインターリーバサイズに対して効率よく復号処理を行うことができる。
 その理由は、誤り訂正符号復号装置は、要素符号毎に各ブロックに対する復号を並列に実行し、要素符号1の復号および要素符号2の復号を順次繰り返す通常の並列化と、2個の要素符号の復号を同時に行う並列化を選択可能に併用するからである。
 また、本発明の第1の実施の形態としての誤り訂正符号復号装置は、受信情報および外部情報を、受信情報格納部および外部情報格納部内の、同時復号を実行するか否かの選択結果に応じた位置に格納するので、受信情報格納部および外部情報格納の容量の増加を抑えることができる。
 次に、本発明の第2の実施の形態について、図面を参照して詳細に説明する。なお、本発明の第2の実施の形態としては、本発明の誤り訂正符号復号装置を、ターボ符号を復号するターボ符号復号装置に適用した例について説明する。
 本発明の第2の実施の形態としてのターボ符号復号装置20の構成を図9に示す。なお、図9において、本発明の第1の実施の形態としての誤り訂正符号復号装置1と同一の構成については同一の符号を付して詳細な説明を省略する。
 図9において、ターボ符号復号装置20は、同時復号選択部1100と、アドレス生成部800と、情報受信値メモリ801と、パリティ受信値メモリ802と、外部情報メモリ803と、軟入力軟出力復号部5と、置換部900と、硬判定部1001とを備えている。
 ここで、アドレス生成手段800、情報受信値メモリ801およびパリティ受信値メモリ802は、本発明の受信情報格納手段の一実施形態を構成する。また、アドレス生成手段および外部情報メモリ803は、本発明の外部情報格納手段の一実施形態を構成する。
 図10に、M=8、n=2のときのアドレス生成手段800、情報受信値メモリ801、パリティ受信値メモリ802、および、外部情報メモリ803の構成を示す。
 アドレス生成部800は、同時復号選択部1100の選択結果に応じて、情報受信値メモリ801、パリティ受信値メモリ802および外部情報メモリ803のリード/ライトのためのアドレスを生成する。アドレスの生成法については後述する。
 情報受信値メモリ801は、(M・n)個のメモリU_0, U_1, …, U_{M・n-1}で構成される。また、情報受信値メモリ801は、K個の情報受信値をM'=M/q等分したブロックをさらにアドレスのmod nで分割して(M'・n)個のメモリに保持する。つまり、情報受信値メモリをU_0, U_1, …,U_{M'・n-1}、情報受信値をx(j) (j=0,…,K-1)で表すと、メモリU_{n・j+i} (0≦i<n)にはx(j・B+i), x(j・B+i+n), x(j・B+i+2n),…,x(j・B+i+B-n)のB/n個の受信値を格納する。ここでB=K/M'はブロックサイズである。要素符号の同時復号を行う場合q>1であり、メモリU_{2・(n・j+i)}にはメモリU_{n・j+i}と同一のデータを格納するように構成する。メモリU_0, U_1, …,U_{M'・n-1}は要素符号1の復号で使用され、メモリU_{M'・n}, U_{M'・n+1}, …,U_{2・M'・n-1}は要素符号2の復号で使用される。
 パリティ受信値メモリ802は、(M・n)個のメモリで構成される。通常の並列化では、パリティ1およびパリティ2の受信値をM'=M/q等分してM'個のメモリに保持する。パリティ1およびパリティ2の受信値をy1(j), y2(j)(j=0,1,…,K-1)で表すと、メモリP_{n・j+i} (0≦i<n)は、y1(j・B+i), y1(j・B+i+n),…,y1(j・B+i+B-n),y2(j・B+i), y2(j・B+i+n),…,y2(j・B+i+B-n)の2・B/n個の受信値を格納する。要素符号の同時復号では、パリティ1およびパリティ2のK個の受信値をそれぞれM'=M/q等分し(q>1)、メモリP_0,P_1,…,P_{M'・n-1}はパリティ1の受信値を、メモリP_{M'・n},P_{M'・n+1},…,P_{2・M'・n-1}はパリティ2の受信値を保持する。
 外部情報メモリ803は(M・n)個のメモリで構成される。通常の並列化では、外部情報メモリ803は、K個の外部情報をM'=M/q等分し、M'個のメモリに情報受信値と同様に保持する。ここで、外部情報は、軟入力軟出力復号部5のSISO復号器によって軟出力され、さらに置換部900で後述する事前情報に置換された情報である。具体的に、要素符号の同時復号では、外部情報メモリ803は、K個の外部情報をM'等分し、要素符号1のSISO復号化された出力である外部情報e1(j)を、要素符号2のSISO復号の事前情報となるようにメモリE_{M'・n}, E_{M'・n+1},…, E_{2・M'・n-1}に格納する。また、外部情報メモリ803は、要素符号2のSISO復号化された出力である外部情報e2(j)を、要素符号1のSISO復号の事前情報となるようにメモリE_0, E_1,…,E_{M'・n-1}に格納する。
 また、情報受信値メモリ801、外部情報メモリ803のメモリサイズのトータルは、同時復号を実行可能なインターリーバサイズの最大値Ksの2倍以上かつインターリーバサイズの最大値以上に設定される。
 図11に、置換部900の構成を示す。
 図11において、置換部900は、置換処理部901および逆変換処理部905を有している。
 ここで、メモリアクセスの衝突がない場合のインターリーブ処理は、図8のアドレス生成手段800で生成するアドレスと、情報受信値メモリ801およびパリティ受信値メモリ802から同時に読み出したデータとの、複数のSISO復号器への対応を与える置換処理で実現することができる。Radix-2^n のSISO復号であればこの置換処理部901および逆変換処理部905もそれぞれn個用意する。
 置換処理部901および逆変換処理部905は、通常の並列化の場合および要素符号の同時復号の場合の各qに応じて、サイズM/qの置換処理を実行するよう構成される。
 図11において、置換処理部901および逆変換処理部905は、M=8に対してq=1およびq=2に応じた置換処理を実行するよう構成される。
 置換処理部901は、通常の並列化を行う場合の置換処理部902と、要素符号の同時復号を行う場合の置換処理部903と、置換処理部902および置換処理部903の選択を行うセレクタ904とを有している。
 置換処理部902は、外部情報メモリ803からのM個のデータ(外部情報)の置換処理(Π1と表す)を行う。
 置換処理部903は、要素符号1に対応するM'個のデータの恒等変換および要素符号2に対応するM'個のデータの置換処理(Π2と表す)を行う。
 逆変換処理部905は、通常の並列化を行う場合の逆変換処理部906と、要素符号の同時復号を行う場合の逆変換処理部907と、スワップ処理部908と、逆変換処理部906および逆変換処理部907の選択を行うセレクタ909とを有している。
 逆変換処理部905は、軟入力軟出力復号部5のSISO復号器で生成される外部情報に対して逆変換を行ってから外部情報メモリ803を更新する。
 逆変換処理部906および逆変換処理部907は、それぞれ置換処理部902のΠ1および置換処理部903のΠ2に対する逆変換処理Inv_Π1およびInv_Π2を行う。
 スワップ処理部908は、逆変換処理部907によって生成された要素符号1の外部情報および要素符号2の外部情報のスワップ処理を行う。これにより、要素符号1の復号で生成される外部情報は要素符号2の復号で事前情報として読み込まれるように、要素符号2の復号で生成される外部情報は要素符号1の復号で事前情報として読み込まれるように、外部情報メモリ803に書き込まれる。
 再び図9に戻り、アドレス生成部800について説明する。ここで、ブロック内のSISO復号の処理スケジュールはサイズWのウィンドウを用いて図3(b)に示したようにウィンドウ単位でバックワード処理を最初に行う処理順序を想定する。置換処理部901による各メモリからのデータの読み出しもこれに合わせて行う。M'= M/q, B=K/M'とする。
 このとき、アドレス生成部800は、通常の並列化で要素符号1の復号のときには、すべてのメモリに共通にウィンドウ単位で、
W-1, W-2, …, 1, 0, 2・W-1,2・W-2,…,W, 3・W-1,3・W-2,…
とアドレスを生成する。
 また、アドレス生成部800は、通常の並列化で要素符号2の復号のときには、情報受信値メモリ801および外部情報メモリ803からのデータ読み出しのために、
Π1-1(π(W-1) mod B, π(B+W-1) mod B, …, π((M'-1)B+W-1) mod B),
Π1-1(π(W-2) mod B, π(B+W-2) mod B, …, π((M'-1)B+W-2) mod B),
 ...
Π1-1(π(1) mod B, π(B+1) mod B, …, π((M'-1)B+1) mod B),
Π1-1(π(0) mod B, π(B) mod B, …, π((M'-1)B) mod B),
Π1-1(π(2W-1) mod B, π(B+2W-1) mod B, …, π((M'-1)B+2W-1) mod B),
Π1-1(π(2W-2) mod B, π(B+2W-2) mod B, …, π((M'-1)B+2W-2) mod B),
 ...
と各メモリのアドレスを生成する。
 ここでターボ符号のインターリーブ処理は、情報系列u(0), u(1),u(2),...,u(K-1)をu(π(0)),u(π(1)),...,u(π(K-1))の順序に並べ直すものとすると、Π1-1は逆変換処理部905による逆変換処理を表し、各メモリと複数SISO復号器との対応を与える。"a mod B"はaのBによる剰余で、0からB-1までの値とする。LTE(Long Term Evolution)インターリーバではπ(z) mod B = π(B+z) mod B = ... = π((M'-1)B+z) mod Bが成り立つため、要素符号2のときもすべてのメモリで同一アドレスとすることができる。
 また、アドレス生成部800は、通常の並列化でパリティ2の読み出しのために、
B/n+W-1, B/n+W-2, …, B/n+1, B/n, B/n+2・W-1,B/n+2・W-2,…,
B/n+W, B/n+3・W-1, B/n+3・W-2,…
とアドレスを生成する。
 また、アドレス生成部800は、要素符号の同時復号において、要素符号1のSISO復号の入力に対応するメモリU_0,U_1,...,U_{M'・n-1}およびE_0,E_1,...,E_{M'・n-1}については、上述の要素符号1の復号のときと同様に、また要素符号2のSISO復号の入力に対応するメモリU_{M'・n},U_{M'・n+1},...,U_{2・M'・n-1}およびE_{M'・n},E_{M'・n +1},...,E_{2・M'・n-1}については、上述の要素符号2の復号のときと同様に、それぞれアドレスを生成する。
 また、アドレス生成部800は、要素符号の同時復号でのパリティに関してはP_0,...,P_{2・M'-1}まで共通に通常の並列化における要素符号1の場合と同様にアドレスを生成する。
 硬判定部1001は、図12に示すように配置され、情報受信値メモリ801から読み出した情報受信値、外部情報メモリ803から読み出した事前情報としての外部情報、および軟入力軟出力復号部5によって生成される外部情報を用いて硬判定を行う。
 ここで、硬判定部1001の構成を図13に示す。硬判定部1001は、テンポラリメモリ1002と、アドレス制御部1003と、硬判定メモリ1004と、硬判定回路1005とを有している。
 テンポラリメモリ1002は、情報受信値および事前情報を外部情報が生成されるまで一時的に保持するメモリである。
 アドレス制御部1003は、テンポラリメモリ1002および硬判定メモリ1004のリード/ライトのアドレスを生成する。
 硬判定回路1005は、情報受信値x(t)、事前情報La(t)および外部情報Le(t)から式(2)によってL(t)を生成する処理を実行する回路である。硬判定回路1005は、L(t)の正負に基づき復号結果0または1を判定する。要素符号の同時復号を行う場合には要素符号1の硬判定結果のみをみれば十分であるため、硬判定回路1005のセレクタは、図11のスワップ処理部908によってスワップされた要素符号1の外部情報を要素符号1の受信値と外部情報に対応するように戻す処理を行う。
 同時復号選択部1100は、本発明の第1の実施の形態の同時復号選択部2と同様に構成され、さらに、その選択結果を、アドレス生成部800、置換部905、硬判定部1001および軟入力軟出力復号部5に出力する。
 以上のように構成されたターボ符号復号装置20が、3GPP LTEのターボ符号に対する復号を行う例について以下、説明する。
 3GPP LTEのターボ符号では前述のようにM・n=8まではすべてのインターリーバサイズKにおいてメモリアクセスの競合を回避することができるが、ここでは、M = 8, n = 2 (radix-2^2のSISO復号器8個)を適用したターボ符号復号装置20の例を、要素符号の同時復号を選択した場合を中心に示す。
 ターボ符号復号装置20は、M = 8, n = 2に対して、図10に示したように、情報受信値、パリティ受信値および外部情報を格納するメモリとして、それぞれM×n=16個のメモリを用いる。LTEインターリーバの最大長は6144のため、図10において、情報受信値と外部情報の1個あたりのメモリのサイズ(深さ)は6144/16 = 384となる。また、パリティ受信値のメモリのサイズ(深さ)はパリティ1とパリティ2の受信値を併せて384×2=768となる。
 前述のように、LTEインターリーバでは512以上のKに対しては通常の並列化で符号トレリスを8個に分割してradix-2^2のSISO復号器を8個用いることにより、メモリアクセスの競合を回避して並列復号を実行させることができる。よって、ターボ符号復号装置20は、要素符号の同時復号を行うときのインターリーブサイズの上限Ksとして512を設定することが好ましい。このとき、ターボ符号復号装置20において、インターリーバの最大長6144はKsの2倍より大であるため、要素符号の同時復号を行ってもメモリ容量の増加を必要としない。
 ターボ符号復号装置20は、K < Ks = 512でq = 2の場合には、M' = 4, n = 2として2個の要素符号の同時復号を実行する。例えばK = 504のときはq = 2となり、図8のステップS2で要素符号の同時復号が選択される。
 なお、ターボ符号復号装置20は、K < 512であれば、q = 1とすることが可能な場合(例えばKが16の倍数となる場合)であってもq = 2として処理を行ってもよい。
 まず、情報受信値メモリ801は、メモリ(以下、「メモリ」を省略)U_0,…,U_15においてq = 2の場合には情報受信値をM' = M/q = 4個のブロックに分割してU_0からU_7に格納する。x(j)(j = 0,1,…,K-1)でj番目の情報受信値を表すとする。ブロック長をB=K/M'とおく。情報受信値メモリ801は、d番目のブロックの受信値x(j)(j = B・d, B・d+1,..., B・d+B-1)に対してj = 0 mod 2のx(j)はU_{2・d}に、j = 1 mod 2のx(j)はU_{2・d+1}に格納する。K = 504のとき、B = K/M'=126でU_0, ..., U_7には次のように126/n = 126/2 = 63個の情報受信値が格納される。
U_0: x(0) x(2) ... x(122) x(124)
U_1: x(1) x(3) ... x(123) x(125)
U_2: x(126) x(128) ... x(248) x(250)
U_3: x(127) x(129) ... x(249) x(251)
U_4: x(252) x(254) ... x(374) x(376)
U_5: x(253) x(255) ... x(375) x(377)
U_6: x(378) x(380) ... x(500) x(502)
U_7: x(379) x(381) ... x(501) x(503)
 ここで、要素符号の同時復号では、U_8,...,U_15にもU_0,...,U_7と同一の受信値が格納される。LTEインターリーバでは通常の並列化ではU_0からU_15まで常に同一のアドレスでアクセスされ、また要素符号の同時復号ではU_0からU_7とU_8からU_15はそれぞれ同一のアドレスでアクセスされる。このため、U_0からU_7とU_8からU_15はそれぞれ1個のメモリで構成することもできる。
 また、パリティ受信値メモリ802は、要素符号の同時復号ではP_0からP_7には要素符号1のパリティ受信値を、P_8からP_15には要素符号2のパリティ受信値を格納する。y1(j)とy2(j)(j = 0,1,...,K-1)で要素符号1および要素符号2のパリティのj番目の受信値を表すとすると、要素符号の同時復号を行うK=504のとき、パリティ受信値メモリには次のようにパリティ受信値が格納される。
P_0: y1(0) y1(2) ... y1(122) y1(124)
P_1: y1(1) y1(3) ... y1(123) y1(125)
P_2: y1(126) y1(128) ... y1(248) y1(250)
P_3: y1(127) y1(129) ... y1(249) y1(251)
P_4: y1(252) y1(254) ... y1(374) y1(376)
P_5: y1(253) y1(255) ... y1(375) y1(377)
P_6: y1(378) y1(380) ... y1(500) y1(502)
P_7: y1(379) y1(381) ... y1(501) y1(503)
P_8: y2(0) y2(2) ... y2(122) y2(124)
P_9: y2(1)  y2(3) ... y2(123) y2(125)
P_10:y2(126) y2(128) ... y2(248) y2(250)
P_11:y2(127) y2(129) ... y2(249) y2(251)
P_12:y2(252) y2(254) ... y2(374) y2(376)
P_13:y2(253) y2(255) ... y2(375) y2(377)
P_14:y2(378) y2(380) ... y2(500) y2(502)
P_15:y2(379) y2(381) ... y2(501) y2(503)
 ここで、P_0,...,P_15は通常の並列化でも要素符号の同時復号でも同一のアドレスでアクセスされるため、1個のメモリで実現することができる。
 また、外部情報メモリ803は、情報受信値メモリ801と同様に、要素符号の同時復号ではメモリ(以下、「メモリ」を省略)E_0,...,E_7には要素符号2のSISO復号の出力である外部情報を、E_8,...,E_15には要素符号1のSISO復号の出力である外部情報を格納する。e1(j)とe2(j)(j=0,1,...,K-1)が、要素符号1および要素符号2の出力で得られるu
(j)に対する外部情報を表すとすると、K=504のときには外部情報メモリには次のように外部情報が格納される。
E_0: e2(0) e2(2) ... e2(122) e2(124)
E_1: e2(1) e2(3) ... e2(123) e2(125)
E_2: e2(126) e2(128) ... e2(248) e2(250)
E_3: e2(127) e2(129) ... e2(249) e2(251)
E_4: e2(252) e2(254) ... e2(374) e2(376)
E_5: e2(253) e2(255) ... e2(375) e2(377)
E_6: e2(378) e2(380) ... e2(500) e2(502)
E_7: e2(379) e2(381) ... e2(501) e2(503)
E_8: e1(0) e1(2) ... e1(122) e1(124)
E_9: e1(1) e1(3) ... e1(123) e1(125)
E_10:e1(126) e1(128) ... e1(248) e1(250)
E_11:e1(127) e1(129) ... e1(249) e1(251)
E_12:e1(252) e1(254) ... e1(374) e1(376)
E_13:e1(253) e1(255)...e1(375) e1(377)
E_14:e1(378) e1(380)... e1(500) e1(502)
E_15:e1(379) e1(381) ... e1(501) e1(503)
 ここで、LTEインターリーバでは、E_0からE_7とE_8からE_15はそれぞれ同一のアドレスでアクセスされるため、それぞれ1個のメモリで実現することができる。
 次にK = 504のLTEインターリーバを用いたターボ符号に対する要素符号の同時復号の処理について述べる。K = 504のLTEインターリーバは非特許文献3を参照すると、
u(π(t)) = u((55・t + 84・t^2) mod 504)
とインターリーブ処理を行う。M'= M/q = 4で、radix^2^2 (n = 2)とする。8個のSISO復号器の中の4個のSISO復号器0、1、2および3で要素符号1の復号を実行し, 残りの4個のSISO復号器4、5、6および7で要素符号2の復号を同時に実行する。各ブロックにおけるSISO復号は図3(b)に示したようなウィンドウ(サイズW)を用いたスケジュールを考える。つまり、各ブロックにおいて符号トレリスの時点としてn = 2に対応して2時点ずつ
(W-2, W-1), (W-4,W-3),…, (3, 2), (1, 0), (2W-2, 2W-1), (2W-4, 2W-3),...,(W+3,W+2), (W+1,W),…
の順序でメモリからデータを読み込み、MAPアルゴリズムのバックワード処理を最初に動作させる。以下、ウィンドウサイズWは16に設定してtime 0, 1の場合の処理を示す。
 (i) time 0:まず、time 0での処理について説明する。
 情報受信値メモリ801および外部情報メモリ803のリードアドレスはad1_0 = ad1_1 = 7であるため、情報受信値メモリU_0,..., U_7, 外部情報メモリE_0,...,E_7から次のような情報受信値および事前情報が読み出されることになる。
x(14), x(15), x(140), x(141), x(266), x(267), x(392), x(393)
e2(14), e2(15), e2(140), e2(141), e2(266), e2(267), e2(392), e2(393)
 また、メモリP_0, P_1, P_2, P_3, P_4, P_5, P_6, P_7に対してリードアドレスadp_0 = adp_1= 7から次のようなパリティ受信値が読み出されることになる。
y1(14), y1(15), y1(140), y1(141), y1(266), y1(267), y1(392), y1(393)
 そこで、まず、SISO復号器0は、x(14),x(15),e2(14),e2(15),y1(14),y1(15)を読み込んで図3(b)における最初のタイムスロットのバックワード処理を開始する。SISO復号器0は、読み込んだ受信値と外部情報とに基づいて、要素符号1のブランチメトリックγ(14, s, s'), γ(15, s, s') (s, s'∈S)を計算し、これらの外部情報生成が終わるまで復号器内部で一時的に保存する。また、SISO復号器1、2および3は、SISO復号器0と同様に処理を行う。
 また、SISO復号器4、5、6および7は、要素符号2の復号に関して次のように受信値、事前情報およびパリティ受信値を読み込む。
 SISO復号器4:
情報受信値 x(π(14)) = x(98), x(π(15))) = x(69)
事前情報  e1(π(14)) = e1(98), e1(π(15)) = e1(69)
パリティ2受信値 y2(14), y2(15)
 SISO復号器5:
情報受信値 x(π(140)) = x(476), x(π(141)) = x(447)
事前情報   e1(π(140)) = e1(476), e1(π(141)) = e1(447)
パリティ2受信値 y2(140), y2(141)
 SISO復号器6:
情報受信値 x(π(266)) = x(350), x(π(267)) = x(321)
事前情報  e1(π(266)) = e1(350), e1(π(267)) = e1(321)
パリティ2受信値 y2(266), y2(267)
 SISO復号器7:
情報受信値 x(π(392)) = x(224), x(π(393)) = x(195)
事前情報 e1(π(392)) = e1(224), e1(π(393))) = e1(195)
パリティ2受信値 y2(392), y2(393)
 読み込んだ受信値と事前情報から、SISO復号器4、5、6および7は、それぞれ要素符号2のブランチメトリック(γ(14,s,s'), γ(15,s,s')), (γ(140,s,s'), γ(141,s,s')), (γ(266,s,s,'), γ(267,s,s')), (γ(392,s,s'), γ(393,s,s'))を計算し(s,s'∈S)、計算したブランチメトリックを、対応する時点の外部情報生成が終わるまで復号器内部に一時的に保存する。
 SISO復号器へのこのようなデータのアサインはU_8,U_10,U_12,U_14およびE_8,E_10,E_12,E_14 のリードアドレスad2,0, U_9,U_11,U_13,U_15およびE_9,E_11,E_13,E_15に対するリードアドレスad2,1, U_8,U_10,U_12,U_14およびE_8,E_10,E_12,E14)から読み出したデータの置換処理Π2_0、U_9,U_11,U_13,U_15およびE_9,E_11,E_13,E15)から読み出したデータの置換処理Π2_1を次のように設定することで実現できる。[x]はx以下の最大の整数を表す。
ad2_0 = (98 mod 126)/2 = (476 mod 126)/2 = (350 mod 126)/2 = (224 mod 126)/2 = 49
ad2_1 = [(69 mod 126)/2] = [(447 mod 126)/2] = [(321 mod 126)/2] = [(195 mod 126)/2] = 34
Π2_0 : (x(98), x(224), x(350), x(476)) → (x(98), x(476), x(350), x(224))
(e1(98), e1(224), e1(350), e1(476)) → (e1(98), e1(476), e1(350), e1(224))
Π2_1 : (x(69), x(195), x(321), x(447)) → (x(69), x(447), x(321), x(195))
(e1(69), e1(195), e1(321), e1(447)) → (e1(69), e1(447), e1(321), e1(195))
 次に、SISO復号器0、1、2および3は、生成した外部情報e1(14), e1(15), e1(140), e1(141), e1(266), e1(267), e1(392), e1(393)をそれぞれメモリE_8,...,E_15に書き込む。
 同時に、SISO復号器4、5、6および7は、生成した外部情報e2(98), e2(69), e2(224), e2(195), e2(350), e2(321), e2(476), e2(447)を、それぞれメモリE_0,...,E_7に書き込む。
 (i) time 1:次に、time 1での処理について説明する。
 ここでは、要素符号1の復号の情報受信値メモリおよび外部情報メモリのリードドレスはad1_0 = ad1_1 = 6であり、U_0,..., U_7, E_0,...,E_7からは次のような情報受信値および外部情報が読み出されることになる。
x(12), x(13), x(138), x(139), x(264), x(265), x(390), x(391)
e2(12), e2(13), e2(138), e2(139), e2(264), e2(265), e2(390), e2(391)
 また、メモリP_0, P_1, P_2, P_3, P_4, P_5, P_6, P_7からは、リードアドレスのadp_0 = adp_1= 6によって次のようなパリティ1受信値が読み出されることになる。
y1(12), y1(13), y1(138), y1(139), y1(264), y1(265), y1(390), y1(391)
 そこで、SISO復号器0は、x(12),x(13),e2(12),e2(13),y1(12),y1(13)を読み込んでバックワード処理を進める。読み込んだ受信値と外部情報から、SISO復号器0は、要素符号1のブランチメトリックγ(12,s,s'), γ(13,s,s')を計算し(s,s'∈S)、これらの外部情報生成が終わるまでSISO復号器内部で一時的に保存する。SISO復号器1、2および3は、SISO復号器0と同様に処理を行う。
 一方、SISO復号器4、5、6および7は、要素符号2の復号に関して次のように受信値、事前情報およびパリティ受信値を読み込む。
 SISO復号器4:
情報受信値 x(π(12)) = x(156), x(π(13)) = x(295)
事前情報   e1(π(12)) = e1(156), e1(π(13)) = e1(295)
パリティ2受信値  y2(12), y2(13)
 SISO復号器5:
情報受信値 x(π(138)) = x(30), x(π(139)) = x(169)
事前情報  e1(π(138)) = e1(30), e1(π(139)) = e1(169)
パリティ2受信値 y2(138), y2(139)
 SISO復号器6:
情報受信値 x(π(264)) = x(408), x(π(265))) = x(43)
事前情報   e1(π(264)) = e1(408), e1(π(265))) = e1(43)
パリティ2受信値 y2(264), y2(265)
 SISO復号器7:
情報受信値 x(π(390)) = x(282), x(π(391))) = x(421)
事前情報 e1(π(390)) = e1(282), e1(π(391))) = e1(421)
パリティ2受信値 y2(390), y2(391)
 読み込んだ受信値と外部情報から、SISO復号器4、5、6および7は、それぞれ要素符号2のブランチメトリック(γ(12,s,s'), γ(13,s,s')), (γ(138,s,s'), γ(139,s,s')), (γ(264,s,s'), γ(265,s,s')), (γ(390,s,s'), γ(391,s,s'))を計算し(s,s'∈S)、このブランチメトリックを、対応する時点の外部情報生成が終わるまで復号器内部に一時的に保存する。
 SISO復号器へのこのようなデータの割り当てはU_8,U_10,U_12,U_14およびE_8,E_10,E_12,E_14 のリードアドレスad2_0, U_9,U_11,U_13,U_15およびE_9,E_11,E_13,E_15に対するリードアドレスad2_1, U_8,U_10,U_12,U_14 とE_8,E_10,E_12,E14から読み出したデータの置換処理Π2_0、U_9,U_11,U_13,U_15 とE_9,E_11,E_13,E15から読み出したデータの置換処理Π2_1を次のように設定することで実現できる。
ad2_0 = (30 mod 126)/2 = (156 mod 126)/2 = (282 mod 126)/2 = (408 mod 126)/2 = 15
ad2_1 = [(43 mod 126)/2] = [(169 mod 126)/2] = [(295 mod 126)/2] = [(421 mod 126)/2] = 21
Π2_0 : (x(30), x(156), x(282), x(408)) → (x(156), x(30), x(408), x(282))
(e1(30), e1(156), e1(282), e1(408)) → (e1(156), e1(30), e1(408), e1(282))
Π2_1 : (x(43), x(169), x(295), x(421)) → (x(295), x(169), x(43), x(421))
(e1(43), e1(169), e1(295), e1(421)) → (e1(295), e1(169), e1(43), e1(421))
 SISO復号器0、1、2および3は、生成した外部情報e1(12), e1(13), e1(138), e1(139), e1(264), e1(265), e1(390), e1(391)をそれぞれメモリE_8,...,E_15に書き込む。
 また、SISO復号器4、5、6および7は、生成した外部情報e2(30), e2(43), e2(156), e2(169), e2(282), e2(295), e2(408), e2(421)を、それぞれメモリE_0,...,E_7に書き込む。
 図14に、K = 504のLTEインターリーバに本発明の第2の実施の形態としてのターボ符号復号装置20を適用したときの復号特性を示す。
 図14において、特性「公知:W=16, It=8」は、公知のターボ符号復号装置によってメモリアクセスの競合を無視してM=8, n=2として通常の並列化で復号をおこなったときの8 iteration(要素符号1および要素符号2の復号が完了して1 iterationとカウント)での復号特性を示している。
 特性「公知:W=16, It=4.5」は、公知のターボ符号復号装置によってメモリアクセスの衝突を考慮してM'=4, n=2として復号を実行し、同一の復号処理サイクル数という条件の下で4.5 iteration復号処理を実行したときの復号特性を示している。
 一方、特性「改良:W=16, It=9」は同一の復号処理サイクル数という条件の下でM'=4(q=2), n=2として本発明の第2の実施の形態としてのターボ復号装置2によって要素符号の同時復号を実行したときの復号特性を示している。
 図14からわかるように、要素符号の同時復号を併用することで、K=504の場合にもM=8, n=2とする並列化が可能と仮定した場合と同程度の特性が得られ、M'=4とした通常の並列化と比較すると0.2dB程度の符号化利得の改善をみることができる。要素符号の同時復号では外部情報の更新の遅延が小さいほど特性の改善を見ることができるため、ウィンドウサイズWを小さくすることで特性の改善を見ることができる場合もある。
 また、図14において、特性「改良:W=8 It=10」は、ウィンドウサイズをW=8として、同一の復号処理サイクル数という条件の下で、本発明の第2の実施の形態としてのターボ符号復号装置20によって要素符号の同時復号を実行したときの信号特性を示している。このとき、図3のバックワード処理のトレーニング期間が小さくなって繰り返し数が10に増えたこともあり、W = 16と比較してわずかではあるが復号特性が改善されていることがわかる。
 このように、本発明の第2の実施の形態において、誤り訂正符号復号装置は、通常の並列化か要素符号の同時復号かによってWの設定を変更してもよい。また、適切なWのサイズは符号化率にも依存するため、このとき符号化率も考慮してWを設定すると効果的である。
 次に、本発明の第2の実施の形態のターボ符号復号装置20の効果について述べる。
 本発明の第2の実施の形態としてのターボ符号復号装置は、上述のように構成することにより、通常の並列化のみでは利用するSISO復号器の個数を小さくする必要があったインターリーバサイズに対してもその個数を大きくすることが可能となり、同一特性を達成するための処理速度もしくは同一処理速度であれば特性の改善を達成することができる。
 また、本発明の第2の実施の形態としてのターボ符号復号装置は、情報受信値メモリおよび外部情報メモリの容量の増加を必要としない。なぜなら、ターボ符号復号装置は、情報受信値メモリおよび外部情報メモリのサイズのトータルを最大インターリーバサイズ以上に設定し、この最大インターリーバサイズの1/2以下のインターリーバサイズの場合のみに2個の要素符号の同時復号を選択可能にするからである。
 なお、本発明の第2の実施の形態では、複数のメモリから読み出した情報受信値および外部情報を複数のSISO復号器にアサインする本発明の置換手段として、要素符号の同時復号を行う場合には通常の並列化とは異なる入出力サイズの回路を必要とすることになる。しかしながら、この置換手段では、入出力数が最大となる通常の並列化の場合の処理が支配的となるため、本発明において2個の要素符号の復号を同時に行う処理に対応するためのオーバーヘッドは限定的となる。
 上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限定されない。
 (付記1)情報の畳込み符号である第1の要素符号と、インターリーバによって置換された前記情報の畳込み符号である第2の要素符号と、前記情報とを含む符号化情報の受信情報に対して繰り返し復号を実行する誤り訂正符号復号装置において、前記インターリーバのサイズに応じて前記第1および第2の要素符号を同時復号するか否かを選択する同時復号選択手段と、前記受信情報を、前記同時復号選択手段の選択結果に応じた位置に格納する受信情報格納手段と、前記第1および第2の要素符号にそれぞれ対応する外部情報を、前記同時復号選択手段の選択結果に応じた位置に格納する外部情報格納手段と、前記第1および第2の要素符号が分割された各ブロックに対して前記受信情報および前記外部情報に基づく軟入力軟出力復号を並列に実行して前記外部情報をそれぞれ出力する複数の軟入力軟出力復号器を有し、前記同時復号選択手段によって同時復号が選択されなかった場合は、前記第1の要素符号の復号および前記第2の要素符号の復号を順次実行して繰り返し、前記同時復号選択手段によって同時復号が選択された場合は、前記第1および第2の要素符号を同時に復号して繰り返す軟入力軟出力復号手段と、を備えた誤り訂正符号復号装置。
 (付記2)前記同時復号選択手段は、前記インターリーバのサイズが、前記複数の軟入力軟出力復号器の個数の倍数ではない場合に前記第1および第2の要素符号の同時復号を選択することを特徴とする付記1に記載の誤り訂正符号復号装置。
 (付記3)前記同時復号選択手段は、前記インターリーバのサイズが予め定められた値よりも小さい場合に前記第1および第2の要素符号の同時復号を選択することを特徴とする付記1に記載の誤り訂正符号復号装置。
 (付記4)前記同時復号選択手段は、前記インターリーバのサイズがあらかじめ定められた値である場合に前記第1および第2の要素符号の同時復号を選択することを特徴とする付記1に記載の誤り訂正符号復号装置。
 (付記5)前記同時復号選択手段によって前記同時復号が選択された場合に、前記受信情報格納手段は、前記受信情報のうち前記情報に対応する情報受信値を二重に格納し、前記外部情報格納手段は、前記第1の要素符号の復号結果である外部情報を、前記第2の要素符号を復号する前記軟入力軟出力復号器によって読み込まれるよう格納し、前記第2の要素符号の復号結果である外部情報を、前記第1の要素符号を復号する前記軟入力軟出力復号器によって読み込まれるよう格納することを特徴とする付記1から付記4のいずれかに記載の誤り訂正符号復号装置。
 (付記6)前記情報受信値および前記外部情報を、前記同時復号選択手段の選択結果に応じたサイズで置換して、前記受信情報格納手段および前記外部情報格納手段と前記軟入力軟出力復号手段との間で入出力する置換手段をさらに備えたことを特徴とする付記1から付記5のいずれかに記載の誤り訂正符号復号装置。
 (付記7)前記同時復号選択手段によって前記同時復号が選択された場合に、前記第1および第2のいずれかの要素符号の軟出力に基づいて硬判定を行う硬判定手段をさらに備えたことを特徴とする付記1から付記6のいずれかに記載の誤り訂正符号復号装置。
 (付記8)前記軟入力軟出力復号手段は、前記第1および第2の要素符号の軟入力軟出力復号をウィンドウを用いて局所的に実行し、前記同時復号選択手段によって前記同時復号が選択された場合には、前記ウィンドウのサイズを変更することを特徴とする付記1から付記7のいずれかに記載の誤り訂正符号復号装置。
 (付記9)前記軟入力軟出力復号手段は、さらに符号化率に基づいて前記ウィンドウのサイズを決定することを特徴とする付記1から付記8のいずれかに記載の誤り訂正符号復号装置。
 (付記10)情報の畳込み符号である第1の要素符号と、インターリーバによって置換された前記情報の畳込み符号である第2の要素符号と、前記情報とを含む符号化情報の受信情報に対して繰り返し復号を実行する誤り訂正符号復号装置が、前記インターリーバのサイズに応じて前記第1および第2の要素符号を同時復号するか否かを選択し、前記受信情報を、前記同時復号の選択結果に応じた位置で受信情報格納手段に格納し、前記第1および第2の要素符号にそれぞれ対応する外部情報を、前記同時復号の選択結果に応じた位置で外部情報格納手段に格納し、前記第1および第2の要素符号が分割された各ブロックに対して前記受信情報および前記外部情報に基づく軟入力軟出力復号を並列に実行して前記外部情報をそれぞれ出力する複数の軟入力軟出力復号器を用いて、前記同時復号を選択しなかった場合は、前記第1の要素符号の復号および前記第2の要素符号の復号を順次実行して繰り返し、前記同時復号を選択した場合は、前記第1および第2の要素符号を同時に復号して繰り返す、誤り訂正符号復号方法。
 (付記11)情報の畳込み符号である第1の要素符号と、インターリーバによって置換された前記情報の畳込み符号である第2の要素符号と、前記情報とを含む符号化情報の受信情報に対して繰り返し復号を実行する誤り訂正符号復号装置に、前記インターリーバのサイズに応じて前記第1および第2の要素符号を同時復号するか否かを選択する同時復号選択ステップと、前記受信情報を、前記同時復号選択手段の選択結果に応じた位置で受信情報格納手段に格納する受信情報格納ステップと、前記第1および第2の要素符号にそれぞれ対応する外部情報を、前記同時復号の選択結果に応じた位置で外部情報格納手段に格納する外部情報格納ステップと、前記第1および第2の要素符号が分割された各ブロックに対して前記受信情報および前記外部情報に基づく軟入力軟出力復号を並列に実行して前記外部情報をそれぞれ出力する複数の軟入力軟出力復号器を用いて、前記同時復号を選択しなかった場合は、前記第1の要素符号の復号および前記第2の要素符号の復号を順次実行して繰り返し、前記同時復号を選択した場合は、前記第1および第2の要素符号を同時に復号して繰り返す軟入力軟出力復号ステップと、を実行させる誤り訂正符号復号プログラム。
 以上、各実施の形態を参照して本願発明を説明したが、本願発明は上記各実施の形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
 この出願は、2010年3月8日に出願された日本出願特願2010-050246号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 本発明は、装置規模の増大を抑えながら多様なインターリーバサイズに対して効率よく復号処理を行うことができる誤り訂正符号復号装置を提供することができ、モバイル用途等で多くのインターリーバサイズに対応しているターボ符号に対する復号装置として好適である。
1  誤り訂正符号復号装置
2  同時復号選択部
3 受信情報格納部
4 外部情報格納部
5 軟入力軟出力復号部
20 ターボ符号復号装置
100 ターボ符号器
101、102 符号化器
103 インターリーバ
110 ターボ符号復号器
601、602 置換処理部
800 アドレス生成部
801 情報受信値メモリ
802 パリティ受信値メモリ
803 外部情報メモリ
900 置換部
901、902、903 置換処理部
904、909 セレクタ
905、906、907 逆変換処理部
908 スワップ処理部
1001 硬判定部
1002 テンポラリメモリ
1003 アドレス制御部
1004 硬判定メモリ
1005 硬判定回路
1100 同時復号選択部

Claims (10)

  1.  情報の畳込み符号である第1の要素符号と、インターリーバによって置換された前記情報の畳込み符号である第2の要素符号と、前記情報とを含む符号化情報の受信情報に対して繰り返し復号を実行する誤り訂正符号復号装置において、
     前記インターリーバのサイズに応じて前記第1および第2の要素符号を同時復号するか否かを選択する同時復号選択手段と、
     前記受信情報を、前記同時復号選択手段の選択結果に応じた位置に格納する受信情報格納手段と、
     前記第1および第2の要素符号にそれぞれ対応する外部情報を、前記同時復号選択手段の選択結果に応じた位置に格納する外部情報格納手段と、
     前記第1および第2の要素符号が分割された各ブロックに対して前記受信情報および前記外部情報に基づく軟入力軟出力復号を並列に実行して前記外部情報をそれぞれ出力する複数の軟入力軟出力復号器を有し、前記同時復号選択手段によって同時復号が選択されなかった場合は、前記第1の要素符号の復号および前記第2の要素符号の復号を順次実行して繰り返し、前記同時復号選択手段によって同時復号が選択された場合は、前記第1および第2の要素符号を同時に復号して繰り返す軟入力軟出力復号手段と、
     を備えた誤り訂正符号復号装置。
  2.  前記同時復号選択手段は、前記インターリーバのサイズが、前記複数の軟入力軟出力復号器の個数の倍数ではない場合に前記第1および第2の要素符号の同時復号を選択することを特徴とする請求項1に記載の誤り訂正符号復号装置。
  3.  前記同時復号選択手段は、前記インターリーバのサイズが予め定められた値よりも小さい場合に前記第1および第2の要素符号の同時復号を選択することを特徴とする請求項1に記載の誤り訂正符号復号装置。
  4.  前記同時復号選択手段は、前記インターリーバのサイズがあらかじめ定められた値である場合に前記第1および第2の要素符号の同時復号を選択することを特徴とする請求項1に記載の誤り訂正符号復号装置。
  5.  前記同時復号選択手段によって前記同時復号が選択された場合に、
     前記受信情報格納手段は、前記受信情報のうち前記情報に対応する情報受信値を二重に格納し、
     前記外部情報格納手段は、前記第1の要素符号の復号結果である外部情報を、前記第2の要素符号を復号する前記軟入力軟出力復号器によって読み込まれるよう格納し、前記第2の要素符号の復号結果である外部情報を、前記第1の要素符号を復号する前記軟入力軟出力復号器によって読み込まれるよう格納することを特徴とする請求項1から請求項4のいずれかに記載の誤り訂正符号復号装置。
  6.  前記情報受信値および前記外部情報を、前記同時復号選択手段の選択結果に応じたサイズで置換して、前記受信情報格納手段および前記外部情報格納手段と前記軟入力軟出力復号手段との間で入出力する置換手段をさらに備えたことを特徴とする請求項1から請求項5のいずれかに記載の誤り訂正符号復号装置。
  7.  前記同時復号選択手段によって前記同時復号が選択された場合に、前記第1および第2のいずれかの要素符号の軟出力に基づいて硬判定を行う硬判定手段をさらに備えたことを特徴とする請求項1から請求項6のいずれかに記載の誤り訂正符号復号装置。
  8.  前記軟入力軟出力復号手段は、前記第1および第2の要素符号の軟入力軟出力復号をウィンドウを用いて局所的に実行し、
     前記同時復号選択手段によって前記同時復号が選択された場合には、前記ウィンドウのサイズを変更することを特徴とする請求項1から請求項7のいずれかに記載の誤り訂正符号復号装置。
  9.  前記軟入力軟出力復号手段は、さらに符号化率に基づいて前記ウィンドウのサイズを決定することを特徴とする請求項1から請求項8のいずれかに記載の誤り訂正符号復号装置。
  10.  情報の畳込み符号である第1の要素符号と、インターリーバによって置換された前記情報の畳込み符号である第2の要素符号と、前記情報とを含む符号化情報の受信情報に対して繰り返し復号を実行する誤り訂正符号復号装置が、
     前記インターリーバのサイズに応じて前記第1および第2の要素符号を同時復号するか否かを選択し、
     前記受信情報を、前記同時復号の選択結果に応じた位置で受信情報格納手段に格納し、
     前記第1および第2の要素符号にそれぞれ対応する外部情報を、前記同時復号の選択結果に応じた位置で外部情報格納手段に格納し、
     前記第1および第2の要素符号が分割された各ブロックに対して前記受信情報および前記外部情報に基づく軟入力軟出力復号を並列に実行して前記外部情報をそれぞれ出力する複数の軟入力軟出力復号器を用いて、前記同時復号を選択しなかった場合は、前記第1の要素符号の復号および前記第2の要素符号の復号を順次実行して繰り返し、前記同時復号を選択した場合は、前記第1および第2の要素符号を同時に復号して繰り返す、誤り訂正符号復号方法。
PCT/JP2011/055224 2010-03-08 2011-03-07 誤り訂正符号復号装置、誤り訂正符号復号方法および誤り訂正符号復号プログラム WO2011111654A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN2011800127543A CN102792597A (zh) 2010-03-08 2011-03-07 纠错码解码装置、纠错码解码方法以及纠错码解码程序
US13/583,186 US20130007568A1 (en) 2010-03-08 2011-03-07 Error correcting code decoding device, error correcting code decoding method and error correcting code decoding program
JP2012504446A JP5700035B2 (ja) 2010-03-08 2011-03-07 誤り訂正符号復号装置、誤り訂正符号復号方法および誤り訂正符号復号プログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2010-050246 2010-03-08
JP2010050246 2010-03-08

Publications (1)

Publication Number Publication Date
WO2011111654A1 true WO2011111654A1 (ja) 2011-09-15

Family

ID=44563456

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/055224 WO2011111654A1 (ja) 2010-03-08 2011-03-07 誤り訂正符号復号装置、誤り訂正符号復号方法および誤り訂正符号復号プログラム

Country Status (4)

Country Link
US (1) US20130007568A1 (ja)
JP (1) JP5700035B2 (ja)
CN (1) CN102792597A (ja)
WO (1) WO2011111654A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014011627A (ja) * 2012-06-29 2014-01-20 Mitsubishi Electric Corp 内部インタリーブを有する誤り訂正復号装置
WO2014097531A1 (ja) * 2012-12-19 2014-06-26 日本電気株式会社 アクセス競合解決処理回路、データ処理装置及びアクセス競合解決方法
JP2018509857A (ja) * 2015-03-23 2018-04-05 日本電気株式会社 情報処理装置、情報処理方法、及びプログラム

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2932602A4 (en) * 2012-12-14 2016-07-20 Nokia Technologies Oy METHOD AND DEVICE FOR DECODING
CN104242957B (zh) * 2013-06-09 2017-11-28 华为技术有限公司 译码处理方法及译码器
CN113366872B (zh) 2018-10-24 2024-06-04 星盟国际有限公司 利用并行级联卷积码的lpwan通信协议设计
US10868571B2 (en) * 2019-03-15 2020-12-15 Sequans Communications S.A. Adaptive-SCL polar decoder

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009095008A (ja) * 2007-09-20 2009-04-30 Mitsubishi Electric Corp ターボ符号復号装置、ターボ符号復号方法及び通信システム
JP2010050634A (ja) * 2008-08-20 2010-03-04 Oki Electric Ind Co Ltd 符号化装置、復号装置及び符号化システム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100373965B1 (ko) * 1998-08-17 2003-02-26 휴우즈 일렉트로닉스 코오포레이션 최적 성능을 갖는 터보 코드 인터리버
JP3888135B2 (ja) * 2001-11-15 2007-02-28 日本電気株式会社 誤り訂正符号復号装置
US7543197B2 (en) * 2004-12-22 2009-06-02 Qualcomm Incorporated Pruned bit-reversal interleaver
JP4229948B2 (ja) * 2006-01-17 2009-02-25 Necエレクトロニクス株式会社 復号装置、復号方法、及び受信装置
US7810018B2 (en) * 2006-10-27 2010-10-05 Telefonaktiebolaget Lm Ericsson (Publ) Sliding window method and apparatus for soft input/soft output processing
US8583983B2 (en) * 2006-11-01 2013-11-12 Qualcomm Incorporated Turbo interleaver for high data rates
US8239711B2 (en) * 2006-11-10 2012-08-07 Telefonaktiebolaget Lm Ericsson (Publ) QPP interleaver/de-interleaver for turbo codes
US8379738B2 (en) * 2007-03-16 2013-02-19 Samsung Electronics Co., Ltd. Methods and apparatus to improve performance and enable fast decoding of transmissions with multiple code blocks

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009095008A (ja) * 2007-09-20 2009-04-30 Mitsubishi Electric Corp ターボ符号復号装置、ターボ符号復号方法及び通信システム
JP2010050634A (ja) * 2008-08-20 2010-03-04 Oki Electric Ind Co Ltd 符号化装置、復号装置及び符号化システム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
CHENG-CHI WONG ET AL.: "Turbo Decoder Using Contention-Free Interleaver and Parallel Architecture", IEEE JOURNAL OF SOLID-STATE CIRCUITS, vol. 45, no. 2, February 2010 (2010-02-01), pages 422 - 432, XP011301268, DOI: doi:10.1109/JSSC.2009.2038428 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014011627A (ja) * 2012-06-29 2014-01-20 Mitsubishi Electric Corp 内部インタリーブを有する誤り訂正復号装置
WO2014097531A1 (ja) * 2012-12-19 2014-06-26 日本電気株式会社 アクセス競合解決処理回路、データ処理装置及びアクセス競合解決方法
JP2018509857A (ja) * 2015-03-23 2018-04-05 日本電気株式会社 情報処理装置、情報処理方法、及びプログラム

Also Published As

Publication number Publication date
JPWO2011111654A1 (ja) 2013-06-27
JP5700035B2 (ja) 2015-04-15
US20130007568A1 (en) 2013-01-03
CN102792597A (zh) 2012-11-21

Similar Documents

Publication Publication Date Title
May et al. A 150Mbit/s 3GPP LTE turbo code decoder
US7191377B2 (en) Combined turbo-code/convolutional code decoder, in particular for mobile radio systems
KR101323444B1 (ko) 반복적 디코더 및 반복적 디코딩 방법
JP5700035B2 (ja) 誤り訂正符号復号装置、誤り訂正符号復号方法および誤り訂正符号復号プログラム
JP2006115145A (ja) 復号装置及び復号方法
Weithoffer et al. 25 years of turbo codes: From Mb/s to beyond 100 Gb/s
JP5840741B2 (ja) 複数のコード・タイプをプログラマブル復号する方法および装置
JP4874312B2 (ja) ターボ符号復号装置、ターボ符号復号方法及び通信システム
Belhadj et al. Performance comparison of channel coding schemes for 5G massive machine type communications
US6487694B1 (en) Method and apparatus for turbo-code decoding a convolution encoded data frame using symbol-by-symbol traceback and HR-SOVA
JP4837645B2 (ja) 誤り訂正符号復号回路
JP2003198386A (ja) インターリーブ装置及びインターリーブ方法、符号化装置及び符号化方法、並びに復号装置及び復号方法
KR101051933B1 (ko) 트렐리스의 버터플라이 구조를 이용한 맵 디코딩을 위한메트릭 계산
JP2009524316A (ja) 高速な符号化方法および復号方法ならびに関連する装置
KR100390416B1 (ko) 터보 디코딩 방법
KR100628201B1 (ko) 터보 디코딩 방법
JP3540224B2 (ja) ターボ復号器とターボ復号方法及びその方法を記憶した記憶媒体
KR19990081470A (ko) 터보복호기의 반복복호 종료 방법 및 그 복호기
US9130728B2 (en) Reduced contention storage for channel coding
Dobkin et al. Parallel VLSI architecture and parallel interleaver design for low-latency MAP turbo decoders
WO2011048997A1 (ja) 軟出力復号器
GB2559616A (en) Detection circuit, receiver, communications device and method of detecting
Raymond et al. Design and VLSI implementation of a high throughput turbo decoder
KR100317377B1 (ko) 변복조 시스템의 부호화 및 복호화 장치
Madhukumar et al. Application of Fixed Point Turbo Decoding Algorithm for Throughput Enhancement of SISO Parallel Advanced LTE Turbo Decoders.

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201180012754.3

Country of ref document: CN

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

Ref document number: 11753312

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2012504446

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 13583186

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11753312

Country of ref document: EP

Kind code of ref document: A1