WO2011082509A1 - 一种turbo码译码方法和装置 - Google Patents

一种turbo码译码方法和装置 Download PDF

Info

Publication number
WO2011082509A1
WO2011082509A1 PCT/CN2010/001528 CN2010001528W WO2011082509A1 WO 2011082509 A1 WO2011082509 A1 WO 2011082509A1 CN 2010001528 W CN2010001528 W CN 2010001528W WO 2011082509 A1 WO2011082509 A1 WO 2011082509A1
Authority
WO
WIPO (PCT)
Prior art keywords
decoder
decoding unit
decoding
sub
code segment
Prior art date
Application number
PCT/CN2010/001528
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 新邮通信设备有限公司
Publication of WO2011082509A1 publication Critical patent/WO2011082509A1/zh

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6522Intended application, e.g. transmission or communication standard
    • H03M13/65253GPP LTE including E-UTRA
    • 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/27Coding, 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 using interleaving techniques
    • H03M13/2739Permutation polynomial interleaver, e.g. quadratic permutation polynomial [QPP] interleaver and quadratic congruence interleaver
    • 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/27Coding, 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 using interleaving techniques
    • H03M13/2771Internal interleaver for turbo codes
    • H03M13/2775Contention or collision free turbo code internal interleaver
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/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 the field of communication system technologies, and in particular, to a Turbo code decoding method and apparatus.
  • LTE Long Term Evolution
  • LTE uses a conventional Turbo encoder consisting of two parallel component encoders and an inner interleaver.
  • the two component encoders are a component encoder 1 and a component encoder 2, respectively.
  • each component encoder adopts the same structure as the WCDMA system, including three registers, and the number of states is 8.
  • the inner interleaver uses a Quadratic Permutation Polynomial (QPP) interleaver. Assume that the length of the bit stream input to the inner interleaver is ] ⁇ , that is, the bit stream is c. The bit stream output after interleaving is.
  • QPP Quadratic Permutation Polynomial
  • the values corresponding to the quadratic polynomial parameters /; and / 2 are given in the form of a list.
  • Turbo code decoding uses Soft Input Soft Output (SISO) Maximum A Posteriori (MAP) algorithm, which calculates each state transition, message of a Markov process given a channel observation sequence. The posterior probability of bits and coded symbols, as long as all possible posterior probabilities of these quantities are calculated, ie The value of the posterior probability is an estimate.
  • the MAP algorithm is the optimal algorithm for iterative decoding of Turbo codes.
  • the Logarithmic Domain Maximum A Posteriori Probability (Log-MAP) algorithm is a logarithmic domain implementation of the MAP algorithm.
  • A is the time subscript
  • is the constant
  • is the channel observation sequence
  • is the check sequence
  • is the a priori information of IT
  • the initial value of p can be 0. Then take the extra information from the previous iteration.
  • forward path metric parameter it is called the forward path metric parameter.
  • the soft input soft output (SISO) decoder implementing the Turbo decoder is composed of two component decoders, which are a component decoder 1 and a component decoder 2, respectively, and an interleaver and
  • the interleaver used in the Tu rb 0 encoder in Figure 1 is the same, that is, the QPP interleaver.
  • the input of the component decoder 1 is: a log likelihood ratio of the channel observation sequence, a log likelihood ratio of the check sequence output by the component encoder 1 in Fig. 1, and an extract from the output of the component decoder 2.
  • the output of the component decoder 1 is a log likelihood ratio.
  • the log likelihood ratio of the channel observation sequence and the a priori information of the input component decoder 1 are subtracted to obtain the outer information output by the component decoder 1. Interleaved for ;).
  • the input of the component decoder 2 is: a log likelihood ratio of the channel observation sequence, a sequence after interleaving, a log likelihood ratio ⁇ 2 of the test sequence output by the component encoder 2 in Fig. 1 and a component decoding
  • the output of the component decoder 2 is a log likelihood ratio L el (X).
  • the Turbo code is selected as the channel coding scheme for high-speed data services, and the required data rate is about 2 Mbit/s. That is, the decoding speed of the existing Turbo decoder is about 2 Mbit/s.
  • the specific design specifications of the LTE system require a peak rate of up to 50 Mbit/s and a downlink of 100 Mbit/s. This means that the decoding speed of the Turbo decoder in the LTE system must satisfy the decoding output rate of more than 100 Mbit/s.
  • the present invention provides a Turbo code decoding method, which can improve the decoding speed of Turbo codes.
  • the present invention also provides a Turbo code decoding apparatus which improves the decoding speed of Turbo codes.
  • the present invention discloses a Turbo code decoding method, the method comprising: dividing each code block into M codes for each code block in the input sequence Segment, M is a natural number greater than 1, and M segments are respectively input to M decoding units, and M decoding units perform parallel translation of respective input code segments according to log-domain maximum a posteriori probability Log-MAP algorithm. a code, and outputting the decoded code segment;
  • two coding units corresponding to two code segments adjacent to each other are referred to as a first decoding unit and a second decoding unit, respectively, and in the decoding process, the first decoding unit is in the second
  • the decoding unit passes the forward path metric parameter of the end boundary point of the own code segment, so that the second decoding unit calculates the forward path metric parameter of the starting boundary point of the own code segment; and the second decoding unit is first
  • the decoding unit passes the backward path metric parameter of the starting boundary point of the own code segment, so that the first decoding unit calculates the backward path metric parameter of the end boundary point of the own code segment.
  • the invention also discloses a Turbo code decoding device, the device comprising: M decoding units, M being a natural number greater than 1;
  • Each code block in the input sequence is divided into M code segments and then input to the M decoding units respectively;
  • Each decoding unit is configured to receive the input code segment according to the logarithmic domain maximum
  • the probability probability Log-MAP algorithm decodes the input code segment, and outputs the decoded code segment
  • two coding units corresponding to two code segments adjacent to each other are referred to as a first decoding unit and a second decoding unit, respectively, and in the decoding process, the first decoding unit is in the second
  • the decoding unit passes the forward path metric parameter of the end boundary point of the own code segment, so that the second decoding unit calculates the forward path metric parameter of the starting boundary point of the own code segment; and the second decoding unit is first
  • the decoding unit passes the backward path metric parameter of the starting boundary point of the own code segment, so that the first decoding unit calculates the backward path metric parameter of the end boundary point of the own code segment.
  • the code block of the input sequence is divided into a plurality of code segments and input to a plurality of coding units respectively, and the code input by each of the plurality of coding units according to the Log-MAP algorithm is used.
  • the segment is decoded in parallel, wherein, in the decoding process, the technical solution of the forward path metric parameter and the backward path metric parameter of the boundary of the corresponding code segment is transmitted between the decoding units corresponding to the adjacent code segments,
  • a plurality of decoding units perform decoding in parallel, thereby greatly increasing the decoding speed, and the more the number of decoding units, the faster the decoding speed.
  • FIG. 1 is a schematic diagram of a turbo encoder in an existing LTE system
  • FIG. 2 is a basic structural diagram of a conventional turbo code decoder
  • Figure 3 is a block diagram showing the structure of a turbo code decoding apparatus in an embodiment of the present invention.
  • FIG. 4 is a schematic diagram of the transfer of boundary state values between adjacent decoding units in a turbo code decoder according to an embodiment of the present invention
  • FIG. 5 is a schematic structural diagram of a decoding apparatus including a multi-stage pipeline sub-decoder according to an embodiment of the present invention
  • FIG. 6 is a schematic diagram showing a part of an internal structure of a SISO decoder in an embodiment of the present invention
  • Figure 7 is a diagram showing the overall timing operation of the turbo code decoding apparatus in the embodiment of the present invention.
  • the existing turbo code decoding apparatus includes only one decoding unit including the basic structure shown in Fig. 2, each of the input units (i.e., the sequence to be decoded) is paired by the unique decoding unit.
  • the code block is decoded, and the decoding speed is limited by the decoding efficiency of the unique decoding unit, so the decoding speed is low, and the high-speed data service requirement of the system such as LTE cannot be satisfied.
  • the core idea of the present invention is: using a Log-MAP algorithm by multiple decoding units to perform Turbo code decoding on different code segments of each code block in the input sequence in parallel, and according to the needs of the Log-MAP algorithm, In the decoding process, the forward path metric parameters and the backward path metric parameters of the boundaries of the respective corresponding code segments need to be transmitted between adjacent decoding units.
  • Such a scheme in which a plurality of decoding units perform decoding in parallel can multiply the speed of decoding of Turbo codes, and the more decoding units are decoded in parallel, the faster the decoding speed is. Therefore, in practice, the number of decoding units can be set according to the actual decoding speed requirement.
  • Fig. 3 is a block diagram showing the structure of a turbo code decoding apparatus in the embodiment of the present invention.
  • the Turbo code decoding apparatus in this embodiment includes: an input buffer, an output buffer, an interleaving/deinterleaving memory, and M parallel decoding units, where M is an arbitrary natural number greater than 1, for example, 4, 8 , 16 and so on.
  • the input buffer and output buffer are used for serial and parallel-to-serial conversion, and the input buffer also implements ping-pong operations to improve throughput.
  • the ping-pong operation herein refers to the input buffer selectively outputting input data to different decoding units, for example, transmitting the first code segment of a certain code block to the decoding unit 1, and the second of the code blocks. The code segment is sent to the decoding unit 2, and so on.
  • the interleaving/deinterleaving memory is used for interleaving or deinterleaving in the process of storing each decoding unit for performing Turbo code decoding operations. The data of the operation.
  • M decoding units are configured to decode the input code segment (including the channel observation sequence and the check sequence in the input code segment) according to the Log-MAP algorithm, and output the decoded code segment to the output buffer.
  • Each of the decoding units here performs the decoding algorithm function performed by the basic structure shown in FIG. 2, that is, each decoding unit includes two component decoders and corresponding interleavers and deinterleavers which are cascaded.
  • the decoding apparatus shown in FIG. 3 transmits the forward path metric of the boundary of the corresponding code segment between the coding units corresponding to each adjacent code segment in the decoding process.
  • the parameter and the backward path metric parameter are specifically: the two coding units corresponding to any two adjacent code segments are respectively referred to as a first decoding unit and a second decoding unit, and are in the decoding process.
  • the second decoding unit transmits the backward path metric parameter of the starting boundary point of the self code segment to the first decoding unit, so that the first decoding unit calculates the backward path metric parameter of the end boundary point of the own code segment.
  • the 80000 points are first divided into a plurality of code blocks (the manner of dividing the input sequence into a plurality of code blocks is the same as in the prior art, and is not in the present invention.
  • the decoding unit 1 needs to pass the forward path metric parameter of the 1000th point to the decoding unit 2, so that the decoding unit 2 calculates the forward path metric parameter of the 1001th point; accordingly, the decoding unit 2 needs to The backward path metric parameter of the 1001th point is passed to the decoding unit 1 so that the decoding unit 1 calculates the backward path metric parameter of the 1000th point.
  • the boundary of the corresponding code segment is transmitted during the decoding process. Forward path metrics and backward path metrics.
  • Fig. 4 is a diagram showing the transfer of boundary state values between adjacent decoding units in the turbo code decoder in the embodiment of the present invention.
  • the boundary state value herein refers to the forward path metric parameter "value or backward path metric parameter value of the boundary point of the code segment corresponding to each coding unit.
  • a value or value of a corresponding code segment boundary point is mutually transferred between corresponding component decoders in each adjacent decoding unit, for example, for adjacent decoding unit 1 and decoding unit 2, respectively.
  • the value or value of the corresponding code segment boundary point is transmitted between the component decoders 1, and the value or value of the corresponding code segment boundary point is transmitted between the respective component decoders 2.
  • the number M of decoding units included in the turbo code decoding apparatus may be determined according to actual conditions.
  • the number of decoding units is determined according to actual LTE decoding rate requirements. Therefore, the scheme of dividing the code block into a plurality of code segments and decoding them in parallel by a plurality of decoding units greatly improves the throughput of the turbo code decoding device and reduces the decoding delay.
  • the design criteria of the Turbo code interleaver in the LTE system it can be ensured that during the interleaving and de-interleaving, the memory access conflict does not occur between the decoding units, thereby ensuring the reliability of the parallel structure design.
  • each decoding unit in the turbo code decoding apparatus is designed as The structure of the multi-stage pipeline sub-decoder, that is, each decoding unit includes a plurality of sub-decoders that are sequentially cascaded, and the plurality of sub-decoders perform the It iteration operation together (It is an input code according to the Log-MAP algorithm)
  • the total number of iterations required to complete the decoding of the segment, R is the number of sub-decoders, and each sub-decoder completes the It/R iteration operation, and It and It/R are both natural numbers. For example, the total number of iterations is 12.
  • each decoding unit includes a two-stage sub-decoder
  • the first-level sub-decoder completes the first six iterations of a code segment
  • the second-level sub-decoder completes the code. The last 6 iterations of the segment; thus, when the first-stage sub-decoder completes the first 6 iterations of the corresponding code segment in a certain code block, the second-level sub-decoder continues the code segment.
  • the first sub-decoder can perform the first iteration operation on the corresponding code segment in the next code block, so the decoding rate is equivalently doubled.
  • each decoding unit includes a three-level sub-decoder
  • the first-level sub-decoder completes the first four iterations of a code segment
  • the second-level sub-decoder The fourth iteration operation in the middle of the code segment is completed
  • the third-level sub-decoder completes the last four iterations of the code segment; in this case, the decoding rate is equivalently increased by two times.
  • FIG. 5 is a block diagram showing the structure of a decoding apparatus including a multi-stage pipeline sub-decoder in an embodiment of the present invention.
  • M decoding units and R-stage pipeline sub-decoders are taken as an example, where R is an arbitrary natural number greater than 1, and all the first-level sub-blocks of M decoding units.
  • the decoder constitutes a first-stage pipeline, and all of the two sub-decoders of the M decoding units constitute a second-stage pipeline, and all of the R-stage sub-decoders of the M decoding units
  • the structure of the first-stage pipeline and the second-stage pipeline are illustrated in Fig. 5.
  • the structure of the subsequent stages from the third stage to the R stage, R is greater than or equal to 3)
  • the structure of the second stage pipeline is the same, so it is omitted.
  • the data selector is represented by MUX
  • the SISO decoder of the soft input soft output is represented by SISO
  • the external information memory is represented by RAM
  • the external information is represented by Le. Interest.
  • the MUX11, the SISO I RAM11, the MUX2 SIS02 RAM21, and the corresponding MUX, SISO, and RAM devices in the subsequent pipeline constitute the decoding unit 1, wherein the MUX1 1 and the SISO I RAM 11 constitute the first-level sub-decoder in the decoding unit 1.
  • MUX21, SIS021 and RAM21 constitute a secondary sub-decoder in decoding unit 1, and so on.
  • the corresponding MUX, SISO, and RAM devices in MUX12, SIS012, RAM12, MUX22, SIS022, RAM22, and subsequent pipelines constitute decoding unit 2, wherein MUX21, SIS02 RAM21 constitutes a level one sub-decoding in decoding unit 2.
  • the MUX 22, SIS 022, and RAM 22 constitute a secondary sub-decoder in the decoding unit 2, and so on.
  • the composition of the subsequent decoding unit is also deduced by analogy.
  • the SISO decoder reads and writes the corresponding RAM through the data switch bus.
  • each data selector MUX is used to output initial external information to the corresponding SISO decoder during the first iteration operation, and output the external information obtained from the corresponding RAM to the corresponding iterative operation.
  • SIS 0 decoder wherein, the MUX in the first-level sub-decoder takes 0 as the initial external information, and the other MUX in each sub-decoder except the first-level sub-decoder
  • the outer information obtained by the last iteration of the decoder is used as the initial outer information.
  • Each SISO decoder performs It/R iteration operations using the data output from the MUX and the input code segment, and sends the external information obtained by each iteration operation to the corresponding RAM; each RAM is used to store the SISO decoder.
  • the outer information generated by the operation is iterated every time, and the external information is provided to the corresponding MUX, so that the MUX sends the external information to the SISO unit for the next iteration operation.
  • two coding units corresponding to two adjacent code segments are referred to as a first decoding unit and a second decoding unit, respectively, and in the decoding process: the first decoding unit
  • Each of the sub-decoders transmits a forward path metric parameter of an end boundary point of the own code segment to a corresponding sub-decoder in the second coding unit, so that the corresponding sub-decoder in the second coding unit calculates a forward path metric parameter of a starting boundary point of the own code segment;
  • each sub-decoder in the second coding unit passes a starting boundary point of the own code segment to a corresponding sub-decoder in the first coding unit Backward road
  • the path metric parameter is such that the corresponding sub-decoder in the first coding unit calculates the backward path metric parameter of the end boundary point of the own code segment.
  • the input buffer is used to store an input sequence including channel information and a check sequence.
  • the RAM chip select logic inputs different code blocks into different pipelines according to requirements, and inputs a pipeline block. After being divided into a plurality of code segments, they are respectively input into a plurality of decoding units in the pipeline.
  • Each decoding unit outputs the decoded code segment to the hard decision unit; the hard decision unit is configured to receive the decoded code segment output by the M decoding units, and perform hard decision on the decoded code segment. Go to the output cache.
  • the hard decision method here is the same as the prior art, which means that each piece of information is judged as follows: If the information is greater than or equal to 0, the output of the corresponding bit is judged to be 1; if the information is less than 0, the decision is corresponding The output of the bit is 0.
  • the key issue is how to pass the external information generated by the upper stage pipeline to the next stage of the pipeline as the a priori information of its next stage pipeline.
  • the component decoder 2 When the component decoder 2 is operating, the RAM is still read and written according to the interleaved address; after that, the second stage pipeline starts the seventh iteration of the n-1th code block, and the first stage pipeline starts the next code block. That is, the first iteration of the nth code block.
  • the component decoder 1 When the second stage pipeline starts the seventh iteration operation of the n-1th code block, the component decoder 1 is first operated, and the external information Le needs to be read from the RAM in the first stage pipeline according to the sequentially increasing address; At this time, the first stage pipeline is processing the component decoder 1 operation process in the first iteration operation of the nth code block, To read and write Le sequentially from the above RAM address. But the write is always slower than the read, so the sub-decoder in the second stage pipeline has enough time to get the Le information from the RAM of the first stage pipeline (actually reading Le with the first stage pipeline).
  • Le in the first-stage pipeline can be guaranteed.
  • Information can be correctly passed to the second stage pipeline.
  • Le before the data selector MUX in the second stage pipeline in Fig. 5 represents the external information transmitted from the first stage pipeline.
  • Each of the SISO decoders in Fig. 5 includes the basic structure shown in Fig. 2, that is, each SISO decoder includes two component decoders and corresponding interleavers and deinterleavers.
  • the two component decoders are represented by a component decoder 1 and a component decoder 2, and the component decoder 1 and the component decoder 2 perform an iterative operation together, and their respective algorithm functions are performed in two of FIG.
  • the component decoders are the same.
  • a corresponding address calculation module is included in each SISO decoder.
  • the address calculation module reads and writes the corresponding RAM through the data access switch bus according to the sequentially incremented address; during the operation of the component decoder 2, the address calculation module accesses the data according to the interleaved address.
  • the switch bus reads and writes the corresponding RAM.
  • Figure 6 is a block diagram showing a part of the internal structure of the SISO decoder in the embodiment of the present invention. As shown in Fig. 6, a schematic diagram of a component decoder and an address calculation module in the SISO decoder is shown. Here, since the internal structures of the two component decoders in the SISO decoder are the same, only the internal structure of one of the component decoders is illustrated.
  • a component decoder in the SISO decoder includes: a branch metric calculation module, a status update module, a storage module, a control module, and an external information calculation module;
  • the branch metric calculation module is configured to calculate a branch metric parameter according to the input information, and send the parameter to the state update module and the external information calculation module; where the input information includes channel information and a priori information, and the channel information includes a channel observation sequence and a calibration Test sequence a status update module, configured to calculate a forward path metric parameter according to the received branch metric parameter, and send the parameter to the storage module for saving, calculate a backward path metric parameter according to the received branch metric parameter, and send the parameter to the external information calculation module; a module, configured to save forward path metric parameters from the state update module;
  • an external information calculation module configured to calculate and output the external information according to the input information, the branch metric parameter from the branch metric calculation module, the backward path metric parameter from the state update module, and the forward path metric parameter from the storage module; Used to perform timing control on the branch metric calculation module, the status update module, the storage module, and the external information calculation module.
  • the address calculation module includes a data selector MUX and an interleaving address calculation unit.
  • the first input of the MUX is the original address information sequentially incremented, and the second input is the original address information calculated by the interleave address.
  • the unit performs interleaving calculation of the address information; when the component decoder 1 in the SISO decoder performs the operation, the address calculation module selects the first input as the output address, and when the component decoder 2 performs the operation, the address calculation module Select to use the second input as the output address.
  • Each component decoder in the SISO unit uses the Log-MAP algorithm to calculate each state quantity, ", and the information bit log likelihood ratio LLR and the outer information Le.
  • L the length of the code block
  • M the number of decoding units
  • FIG. 7 is a diagram showing the overall timing operation of the turbo code decoding apparatus in the embodiment of the present invention.
  • the R-stage pipeline sub-decoder structure is taken as an example, and R is arbitrary. Natural number, that is, each decoding unit is composed of a primary sub-decoder and a secondary sub-decoder
  • each iteration operation includes a component decoder 1 operation and a component decoder 2 operation, and each component decoder operation includes forward recursion ⁇ and "operation and post-recursion ⁇ , ⁇ , LLR, and Le operations.
  • the present invention divides the input sequence into a plurality of code blocks, divides each code block into a plurality of code segments of equal length, and inputs them to a plurality of decoding units respectively, and is configured by a plurality of decoding units according to the Log.
  • the MAP algorithm decodes the code segments input in parallel, wherein in the decoding process, the forward path metric parameters and the backward path metric parameters of the boundary of each corresponding code segment are transmitted between adjacent decoding units.
  • the decoding unit is further designed as a multi-stage pipeline, and the decoding speed is further improved, and the more the number of stages of the pipeline, the faster the decoding speed.

Landscapes

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

Description

一种 Turbo码译码方法和装置
技术领域 本发明涉及通信系统技术领域, 特别是涉及一种 Turbo码 译码方法和装置。
发明背景 由于 Turbo码的近 Shannon界的突出纠错能力, 长期演进 ( LTE , Long Term Evolution ) 系统选用 Turbo码作为高速数据 业务的信道编码方案。
图 1是现有的 LTE系统中的 Turbo编码器的示意图。如图 1所示, LTE采用传统的由两个并行的分量编码器和一个内交织器组成的 Turbo 编码器。 两个分量编码器分别为分量编码器 1和分量编码器 2。 其中, 每个分量编码器与 WCDMA系统采用相同的结构,包括三个寄存器,状 态数目为 8。 而内交织器采用了二次置换多项式 (QPP, Quadratic Permutation Polynomial) 交织器。 假设输入内交织器的比特流 的长度 为] ί , 即该比特流为 c。, 经过交织后输出的比特流是。, ^ ..., ^— 那么它们满足对应关系 ς: = cnw, 交织前后的元素序号的对应关系满足二 次多项式: n( ) = (/i + / )m0d , = 0,1,..., -1。 现有的标准中以列表的 形式给出了各种交织长度下, 二次多项式参数/;和 /2所对应的数值。 图 1所示的编码器的码率为 1/3, 输出 3个分量( 、 、 ), 其中, 为 输入信道的数据, 和 为校验序列, 由于受到 Turbo码总共 12个尾比 特的影响, 每个分量码的长度为 D = + 4。
Turbo码译码采用软输入软输出 (SISO) 的最大后验概率 (MAP, Maximum A Posteriori)算法, 该算法是在给定信道观察序列的情况下计 算马尔科夫过程的每个状态转移、 消息比特和编码符号的后验概率, 只 要计算出这些量的所有可能的后验概率, 即可以通过硬判决取具有最大 后验概率的值为估计值。 MAP算法是实现 Turbo码迭代译码的最优算法。 对数域最大后验概率(Log-MAP)算法是 MAP算法的对数域实现。
Log-MAP算法的计算歩骤如下:
(a) 从 =0开始, 根据以下的式 (1) 计算分支度量值 Z¾'m:
D 式 (1)
Figure imgf000004_0001
其中, 称 为分支度量参数, A为时间下标, 为状态下标, σ为常数, 为信道观测序列, Λ为校验序列, ρ为 IT的先验 信息, 初始时 p的值可以取 0, 之后取上一次迭代过程中的外信 息。
(b) 在 Α = 0时, 初始化前向路径度量 ^, 并根据以下的式 (2) 利用 从 = 0到 N-1计算并存储前向路径度量 :
A = ln = H∑ak bum) - riMj'm)) = max* ( ¾''m) + D^) 式 (2)
=o
这里, 称《为前向路径度量参数。
(C) 在 N-1时, 初始化后向路径度量 B, 并根据以下的 式 (3) 利用 从 A = N-2到 Α = 0计算并存储后向路径度量^:
Βΐ = lnA™ = Η∑β,ηΓ · ri'm) = maX¾(/'m) + Z¾'m) 式( 3 ) 这里, 称 为前向路径度量参数。
(d) 根据以下的式 (4) 从 =0到 A = N-1计算信息比特对 数似然比 LLR:
式 ( 4)
Figure imgf000004_0002
根据 LLR计算外信息 :
Le{dk) = L{dk \Yx N)-[La{dk) + lcxk] 式 (5)
(e) 将外信息作为下一次迭代时计算的 Ι¾'™先验信息, 循 环迭代运算上述过程, 直至达到最大的迭代次数 It, 并根据最 后一次迭代过程中的 L L R做出相应的判决输出。
其中, max* (x, y) = ln(ex + ey ) = max( , y) + ln(l + e ^;) ,包含求最大值 运算和修正函数 /(x) = ln(l + e 运算, 函数 /(X)可以采用查找表实 现。
基于上述 Log-MAP算法实现的 Turbo译码器的基本结构如 图 2所示。
图 2是现有的 Turbo码译码器的基本结构图。 如图 2所示, 实现 Turbo译码器的软输入软输出(SISO )译码器由两个分量译 码器级联组成, 分别为分量译码器 1和分量译码器 2, 交织器与 图 1中的 Tu rb 0编码器中所使用的交织器相同, 即为 Q P P交织器。 分量译码器 1的输入为: 信道观测序列的对数似然比 , 图 1中 的分量编码器 1输出的校验序列的对数似然比 , 以及由分量 译码器 2的输出提取出的先验信息 ^ ½)。分量译码器 1的输出是 对数似然比 。 减去信道观测序列的对数似然比 以及 输入分量译码器 1的先验信息 得到分量译码器 1输出的外 信息 。对 ;)进行交织得到 。分量译码器 2的输入为: 信道观测序列的对数似然比 ^进行交织后的序列, 图 1中的分量 编码器 2输出的检验序列的对数似然比 Λ 2 以及由分量译码器 1 的输出提取出的先验信息 。 分量译码器 2的输出是对数似 然比 Lel (X)。 Lel (X)减去交织后的信道观测序列对数似然比以及输 入分量译码器 2的先验信息 £。2½),得到分量译码器 2输出的外信 息、 L2e (dk)。 Ζ^( )经过反交织得到下一次迭代输入分量译码器 1 的先验信息。 这样, 经过多次迭代, 分量译码器 1和分量译码器 2所产生的外信息趋于稳定,后验概率比值逐渐逼近于对整个码 的最大似然译码。
现有的通信系统, 如通用移动通信系统(UMTS , Universal Mobile Telecommunication system ) 中, 选用 Turbo码作为高速 数据业务的信道编码方案, 其要求的数据速率约为 2Mbit/s。 即 现有的 Turbo译码器的译码速度在 2Mbit/s左右。 但 LTE系统的具体设计指标要求峰值速率达到上行 50Mbit/s、 下行 100Mbit/s。 这意味着 LTE系统中的 Turbo译码器 的译码速度必须满足译码输出速率大于 100Mbit/s。
因此, 现有的 Turbo译码器的译码速度有待提高。
发明内容 本发明提供了一种 Turbo码译码方法, 该方法能够提高 Turbo码译码速度。
本发明还提供了一种 Turbo码译码装置, 该装置提高了 Turbo码译码速度。
为达到上述目的, 本发明的技术方案是这样实现的: 本发明公开了一种 Turbo码译码方法, 该方法包括: 对于输入序列中的每个码块, 将该码块划分成 M个码段, M为大于 1的自然数, 将 M个码段分别输入至 M个译码单元, 由 M个译码单元根据对数域最大后验概率 Log-MAP算法对各自的 输入码段并行进行译码, 并输出译码后的码段;
其中, 将任意前后相邻的两个码段所对应的两个译码单元 分别称为第一译码单元和第二译码单元, 则在译码过程中, 第 一译码单元向第二译码单元传递自身码段的结尾边界点的前向 路径度量参数, 以便第二译码单元计算出自身码段的起始边界 点的前向路径度量参数; 而第二译码单元向第一译码单元传递 自身码段的起始边界点的后向路径度量参数, 以便第一译码单 元计算出自身码段的结尾边界点的后向路径度量参数。
本发明还公开了一种 Turbo码译码装置, 该装置包括: M个 译码单元, M为大于 1的自然数;
输入序列中的每个码块被划分成为 M个码段后分别输入至 所述 M个译码单元;
每个译码单元, 用于接收输入的码段, 根据对数域最大后 验概率 Log-MAP算法对输入码段进行译码, 将译码后的码段输 出;
其中, 将任意前后相邻的两个码段所对应的两个译码单元 分别称为第一译码单元和第二译码单元, 则在译码过程中, 第 一译码单元向第二译码单元传递自身码段的结尾边界点的前向 路径度量参数, 以便第二译码单元计算出自身码段的起始边界 点的前向路径度量参数; 而第二译码单元向第一译码单元传递 自身码段的起始边界点的后向路径度量参数, 以便第一译码单 元计算出自身码段的结尾边界点的后向路径度量参数。
由上述技术方案可见, 本发明这种将输入序列中的每个码 块划分成多个码段后分别输入至多个译码单元, 由多个译码单 元根据 Log-MAP算法对各自输入的码段并行进行译码, 其中, 在译码过程中, 相邻码段所对应的译码单元之间传递对应码段 的边界的前向路径度量参数和后向路径度量参数的技术方案, 由于有多个译码单元并行进行译码,因此大大提高了译码速度, 并且译码单元的数量越多, 译码速度越快。
附图简要说明 图 1是现有的 LTE系统中的 Turbo编码器的示意图;
图 2是现有的 Turbo码译码器的基本结构图;
图 3是本发明实施例中的 Turbo码译码装置的组成结构框 图;
图 4是本发明实施例中的 Turbo码译码器中的相邻译码单 元之间边界状态值的传递示意图;
图 5是本发明实施例中的包含多级流水线子译码器的译码 装置的组成结构示意图;
图 6是本发明实施例中的 SISO译码器的部分内部结构示意 图; 图 7是本发明实施例中的 Turbo码译码装置的总体时序操 作图。
实施本发明的方式 由于现有的 Turbo码译码装置只包括一个包含图 2所示基 本结构的译码单元, 由该唯一的译码单元对输入序列 (即待译 码的序列) 的每个码块进行译码, 译码速度受限于该唯一的译 码单元的译码效率, 因此译码速度低, 不能满足 LTE等系统的 高速数据业务需求。
基于此, 本发明的核心思想是: 由多个译码单元采用 Log-MAP算法对输入序列中的每个码块的不同码段并行进行 Turbo码译码, 并且根据 Log-MAP算法的需要, 在译码过程中, 相邻的译码单元之间需要传递各自对应码段的边界的前向路径 度量参数和后向路径度量参数。
这种多个译码单元并行进行译码的方案可以成倍地提高 Turbo码译码的速度, 且并行进行译码的译码单元数量越多, 译 码速度越快。 因此, 在实际当中可以根据实际的译码速度需求 设定译码单元的个数。
图 3是本发明实施例中的 Turbo码译码装置的组成结构框 图。 如图 3所示, 本实施例中的 Turbo码译码装置包括: 输入缓 存、 输出缓存、 交织 /解交织存储器以及 M个并行的译码单元, M为大于 1的任意自然数, 例如 4、 8、 16等。
在图 3中, 输入缓存和输出缓存用于串并与并串转换, 输 入缓存还实现乒乓操作以提高吞吐量。 这里的乒乓操作是指输 入缓存将输入数据选择性地输出给不同的译码单元, 例如, 将 某一码块的第一个码段发送给译码单元 1,将该码块的第二个码 段发送给译码单元 2, 以此类推。 交织 /解交织存储器用于存储 各译码单元进行 Turbo码译码运算的过程中进行交织或解交织 运算的数据。 M个译码单元, 用于根据 Log-MAP算法对输入码 段 (输入码段中包括信道观测序列和校验序列) 进行译码, 并 将译码后的码段输出到输出缓存。 这里的每一个译码单元都完 成图 2所示的基本结构所完成的译码算法功能,即每一个译码单 元都包括级联的两个分量译码器和相应交织器以及解交织器。
根据背景技术中介绍的 log-MAP算法中的式 (2 ) 和式 (3 ) 可知, 对应于某个点的前向路径度量参数《的计算依赖于其前 一个点的前向路径度量参数, 而其后向路径度量参数 的计算 依赖于其后一个点的后向路径度量参数。 因此, 由于 Log-MAP 算法的计算需要, 图 3所示的译码装置在译码过程中, 各相邻码 段所对应的译码单元之间传递各自对应码段的边界的前向路径 度量参数和后向路径度量参数, 具体为: 将任意前后相邻的两 个码段所对应的两个译码单元分别称为第一译码单元和第二译 码单元, 则在译码过程中, 第一译码单元向第二译码单元传递 自身码段的结尾边界点的前向路径度量参数, 以便第二译码单 元计算出自身码段的起始边界点的前向路径度量参数; 而第二 译码单元向第一译码单元传递自身码段的起始边界点的后向路 径度量参数, 以便第一译码单元计算出自身码段的结尾边界点 的后向路径度量参数。
例如, 当一个 80000点的输入序列需要进行 Turbo码译码 时, 首先将该 80000点划分成多个码块(将输入序列划分成多个 码块的方式与现有技术相同, 本发明中不做限定, 例如可以根 据输入缓存的大小进行划分等), 这里假设划分成 10个码块, 即 每个码块 8000点; 对于每个码块, 将该码块划分成 M个码段, 这里设 M等于 8, 较佳地划分成长度相等的 M = 8个码段, 即每 个码段 1000点, 将该 8个码段分别输入至 8个译码单元并行进行 译码, 即译码单元 1对该码块中的 1〜1000点进行译码, 译码单 元 2对 1001〜2000点进行译码, , 译码单元 8对 7001〜8000 点进行译码。 前面提到, 根据背景技术中介绍的 log-MAP算法 中的式 (2 ) 和式 (3 ) 可知, 对应于某个点的前向路径度量参 数《的计算依赖于其前一个点的前向路径度量参数, 而其后向 路径度量参数 的计算依赖于其后一个点的后向路径度量参 数。因此译码单元 1需要将第 1000个点的前向路径度量参数传递 给译码单元 2, 以便译码单元 2计算第 1001个点的前向路径度量 参数; 相应地, 译码单元 2需要将第 1001个点的后向路径度量参 数传递给译码单元 1, 以便译码单元 1计算第 1000个点的后向路 径度量参数。 同样其他的相邻译码单元之间, 如译码单元 2和译 码单元 3之间、 译码单元 3和译码单元 4之间等, 都在译码过程中 传递对应码段的边界的前向路径度量参数和后向路径度量参 数。
图 4是本发明实施例中的 Turbo码译码器中的相邻译码单 元之间边界状态值的传递示意图。 这里的边界状态值指的是各 译码单元所对应的码段的边界点的前向路径度量参数《值或后 向路径度量参数 值。 参见图 4, 各相邻译码单元中的对应的分 量译码器之间相互传递对应码段边界点的《值或 值,例如对于 相邻的译码单元 1和译码单元 2,其各自的分量译码器 1之间传递 对应码段边界点的《值或 值, 其各自的分量译码器 2之间传递 对应码段边界点的《值或 值。
在本发明中, Turbo码译码装置中包含的译码单元的个数 M 可以根据实际情况而定, 例如在 LTE系统中, 根据实际的 LTE 译码速率需求确定译码单元的个数。 因此这种将码块划分成多 个码段, 由多个译码单元并行进行译码的方案, 大大提高了 Turbo码译码装置的吞吐量并降低了译码延迟。 根据 LTE系统中 的 Turbo码交织器的设计准则,可以保证译码装置在交织和解交 织期间, 各译码单元之间不会发生存储器访问冲突问题, 从而 保证了上述并行结构设计的可靠性。
为了进一歩提高 Turbo码译码装置的译码速度, 本发明的 一个实施例中,将 Turbo码译码装置中的每个译码单元都设计为 多级流水线子译码器的结构, 即每个译码单元包括顺序级联的 多个子译码器, 该多个子译码器共同完成 It次迭代运算 (It为根 据 Log-MAP算法对输入码段进行译码所需要完成的总迭代次 数, R为子译码器个数), 且每个子译码器完成其中的 It/R次迭 代运算, It和 It/R均为自然数。 例如, 总迭代次数 12, 如果每个 译码单元包含两级子译码器, 则第一级子译码器完成一个码段 的前 6次迭代运算, 第二级子译码器完成该码段的后 6次迭代运 算; 这样当第一级子译码器完成某一码块中的相应码段的前 6 次迭代运算后, 由第二级子译码器来继续进行该码段的第 7次迭 代, 而此时第一子译码器可以对下一个码块中的相应码段进行 第 1次迭代运算, 因此译码速率相当于提高了一倍。 又例如, 总 迭代次数仍为 12时, 如果每个译码单元包含三级子译码器, 则 第一级子译码器完成一个码段前 4次迭代运算,第二级子译码器 完成该码段的中间的 4次迭代运算,第三级子译码器完成该码段 的后 4次迭代运算; 这种情况下, 译码速率相当于提高了两倍。 以此类推, 译码单元中设置的级联子译码器的个数越多, 即流 水线级数越多, 译码速率越快。
图 5是本发明实施例中的包含多级流水线子译码器的译码 装置的组成结构示意图。 如图 5所示, 在本实施例中以 M个译码 单元, R级流水线子译码器为例进行说明, 这里 R为大于 1的任 意自然数, M个译码单元中的所有一级子译码器构成第一级流 水线, M个译码单元中的所有二级子译码器构成第二级流水 线, ... ..., M个译码单元中的所有 R级子译码器构成第 R级流水 在图 5中示意出了第一级流水线和第二级流水线的内部结 构, 之后的各级流水线 (从第三级到第 R级, R大于或等于 3时) 的结构与第二级流水线的结构相同, 故省略。
在图 5中, 用 MUX表示数据选择器, 用 SISO表示软输入软 输出的 SISO译码器, 用 RAM表示外信息存储器, 用 Le表示外信 息。 则 MUX11、 SISO I RAM11、 MUX2 SIS02 RAM21 以及后续流水线中的相应的 MUX、 SISO和 RAM器件构成译码单 元 1, 其中, MUX1 1、 SISO I RAM11构成译码单元 1中的一级 子译码器, MUX21、 SIS021和 RAM21构成译码单元 1中的二级 子译码器, 以此类推。同样, MUX12、 SIS012, RAM12、 MUX22、 SIS022、RAM22以及后续流水线中的相应的 MUX、 SISO和 RAM 器件构成译码单元 2, 其中, MUX21、 SIS02 RAM21构成译 码单元 2中的一级子译码器, MUX22、 SIS022和 RAM22构成译 码单元 2中的二级子译码器, 以此类推。 后续译码单元的构成也 以此类推。 在每个子译码器中, SISO译码器通过数据开关总线 对相应的 RAM进行读写。
在图 5中, 每一个数据选择器 MUX , 用于在首次迭代运算 时将初始外信息输出给对应的 SISO译码器, 在之后的迭代运算 时将从对应的 R A M获得的外信息输出给对应的 S I S 0译码器; 其 中, 一级子译码器中的 MUX将 0作为初始外信息, 其他除一级 子译码器以外的各子译码器中的 MUX , 将其上一级子译码器最 后一次迭代运算得到的外信息作为初始外信息。 每个 SISO译码 器, 利用 MUX输出的数据以及输入码段进行 It/R次迭代运算, 并将每次迭代运算得到的外信息发送到对应的 RAM; 每个 RAM 用于存储 SISO译码器每次迭代运算所产生的外信息, 并向对应 的 MUX提供该外信息, 以便 MUX将该外信息发送给 SISO单元 进行下一次的迭代运算。
在图 5中,将任意前后相邻的两个码段所对应的两个译码单 元分别称为第一译码单元和第二译码单元, 则在译码过程中: 第一译码单元中的每个子译码器向第二译码单元中的对应子译 码器传递自身码段的结尾边界点的前向路径度量参数, 以便第 二译码单元中的对应子译码器计算出自身码段的起始边界点的 前向路径度量参数; 第二译码单元中的每个子译码器向第一译 码单元中的对应子译码器传递自身码段的起始边界点的后向路 径度量参数, 以便第一译码单元中的对应子译码器计算出自身 码段的结尾边界点的后向路径度量参数。 例如, 在译码单元 1 中的子译码器 1中的 SIS011和译码单元 2中的子译码器 1中的 SIS012之间、 译码单元 2中的子译码器 1中 SIS012和译码单元 3 中的子译码器 1中的 SIS013之间、 译码单元 1中的子译码器 2中 的 SIS021和译码单元 2中的子译码器 2中的 SIS022之间等, 都需 要传递各自对应输入码段的边界的前向路径度量参数和后向路 径度量参数。
在图 5中, 输入缓存用于存储输入序列, 该输入序列包括信 道信息和校验序列, 由 RAM片选逻辑根据需求将不同的码块输 入到不同流水线中, 并将输入一个流水线的码块分成多个码段 后分别输入到该流水线中的多个译码单元中。 每个译码单元将 译码后的码段输出到硬判决单元; 硬判决单元, 用于接收 M个 译码单元输出的译码后的码段, 对译码后码段进行硬判决后输 出到输出缓存中。 这里的硬判决方式与现有技术相同, 是指对 每一位信息都进行如下的判决: 如果该信息大于或等于 0, 则判 决相应位的输出为 1 ; 如果该信息小于 0, 则判决相应位的输出 为 0。
在图 5所示的结构中, 关键问题在于, 如何将上一级流水线 产生的外信息作为其下一级流水线的先验信息传递给其下一级 流水线。 下面以 R= 2, 即两级流水线的译码装置为例对该问题 予以说明: 以总迭代次数为 12次为例, 第一级流水线在处理第 n- 1码块的第 6次迭代运算中的分量译码器 2运算时, 仍然按照交 织后的地址读写 RAM; 此后第二级流水线开始第 n- 1码块的第 7 次迭代运算, 而第一级流水线开始下一个码块, 即第 n码块的第 1次迭代运算。第二级流水线开始进行第 n- 1码块的第 7次迭代运 算时, 先进行分量译码器 1运算, 需要按照顺序递增的地址从第 一级流水线中的 RAM中读取外信息 Le ; 此时, 第一级流水线正 在处理第 n码块的第 1次迭代运算中的分量译码器 1运算过程,需 要从上述的 RAM地址顺序读写 Le。 但是写总是慢于读, 因此, 第二级流水线中的子译码器有足够的时间从第一级流水线的 RAM中取得 Le信息 (实际上与第一级流水线同歩读取 Le )。 由 于前后两级子译码器都是按照顺序递增的地址读 Le信息, 且一 级子译码器写回的 Le信息总是慢于读取过程, 因此, 可以保证 第一级流水线中的 Le信息能够正确地传递给第二级流水线。图 5 中的第二级流水线中的数据选择器 MUX前的 Le表示从第一级 流水线传递来的外信息。
图 5中的每一个 SISO译码器都包括图 2所示的基本结构, 即 每个 SISO译码器都包括两个分量译码器以及相应的交织器和 解交织器。 这两个分量译码器用分量译码器 1和分量译码器 2表 示, 分量译码器 1和分量译码器 2共同完成一次迭代运算, 且其 各自执行的算法功能与图 2中的两个分量译码器相同。此外每个 SISO译码器中还包括相应的地址计算模块。 在分量译码器 1运 算期间, 地址计算模块按照顺序递增的地址通过数据存取开关 总线读写对应的 RAM ; 在分量译码器 2运算期间, 地址计算模 块按照交织后的地址通过数据存取开关总线读写对应的 RAM。
图 6是本发明实施例中的 SISO译码器的部分内部结构示意 图。 如图 6所示, 示意出了 SISO译码器中的一个分量译码器以 及地址计算模块的结构示意图。 这里, 由于 SISO译码器中的两 个分量译码器的内部结构相同, 因此只示意出了其中的一个分 量译码器的内部结构。
如图 6所示, SISO译码器中的一个分量译码器包括: 分支 度量计算模块、 状态更新模块、 存储模块、 控制模块和外信息 计算模块;
其中, 分支度量计算模块, 用于根据输入信息计算分支度 量参数, 并发送给状态更新模块和外信息计算模块; 这里的输 入信息包括信道信息和先验信息, 而信道信息包括信道观测序 列和校验序列; 状态更新模块, 用于根据接收的分支度量参数计算出前向 路径度量参数, 并发送到存储模块进行保存, 根据接收的分支 度量参数计算出后向路径度量参数,并发送给外信息计算模块; 存储模块, 用于保存来自状态更新模块的前向路径度量参 数;
外信息计算模块, 用于根据输入信息、 来自分支度量计算 模块的分支度量参数、 来自状态更新模块的后向路径度量参数 以及来自存储模块的前向路径度量参数, 计算外信息并输出; 控制模块, 用于对分支度量计算模块、 状态更新模块、 存 储模块和外信息计算模块进行时序控制。
如图 6所示, 地址计算模块包括一个数据选择器 MUX和一 个交织地址计算单元; 其中, MUX的第一个输入为顺序递增的 原始地址信息, 第二个输入为原始地址信息经过交织地址计算 单元进行交织计算后的地址信息; 当 SISO译码器中的分量译码 器 1进行运算时, 地址计算模块选择将第一输入作为输出地址, 当分量译码器 2进行运算时,地址计算模块选择将第二输入作为 输出地址。
SISO单元中每个分量译码器用 Log-MAP算法计算各个状 态量 、 《、 以及信息比特对数似然比 LLR和外信息 Le。 对于 计算 ^、 《、 β、 LLR和 Le的过程, 需要分为两歩先后完成, 即 前向递推过程和后向递推过程。 前向递推过程需要消耗 L/M ( L 为码块的长度, M为译码单元的个数) 个周期计算 和《, 并存 储《值。 接着进行后向递推运算, 消耗 L/M个周期计算 β、 LLR和 Le。 上述的前向递推和后向递推的过程是先后进行的, 因为《和 的递推都需要用到 直, 而 直在一次计算中只能选 择前向或后向运算。 为了进一歩说明本发明的技术方案, 下面 给出本发明实施例中的 Turbo译码装置的总体时序操作图。
图 7是本发明实施例中的 Turbo码译码装置的总体时序操 作图。 如图 7所示, 以 R级流水线子译码器结构为例, R为任意 自然数,即每个译码单元由一级子译码器、二级子译码器
R级子译码器构成时, 构成第一级流水线的所有一级子译码器 完成每个码块的前 It/R次迭代运算, 构成第二级流水线的所有 二级子译码器完成每个码块的第二个 It/R次迭代运算, ... ..., 构 成第 R级流水线的所有 R级子译码器完成每个码块的最后的 It/R 次迭代运算。 这里, It为总迭代次数。 每次迭代运算包括分量 译码器 1运算和分量译码器 2运算, 每个分量译码器运算又包含 前向递推 ^和《运算和后先递推 ^、 β、 LLR和 Le运算。
综上所述, 本发明这种将输入序列划分成多个码块, 将每 个码块划分成为长度相等的多个码段后分别输入至多个译码单 元, 由多个译码单元根据 Log-MAP算法对各自输入的码段并行 进行译码, 其中, 在译码过程中, 相邻的译码单元之间传递各 对应码段的边界的前向路径度量参数和后向路径度量参数的技 术方案, 由于有多个译码单元并行进行译码, 因此大大提高了 译码速度, 并且译码单元的数量越多, 译码速度越快。 此外, 本发明中还进一歩将译码单元设计成多级流水线的结构, 进一 歩提高了译码速度, 并且流水线的级数越多, 译码速度越快。
以上所述仅为本发明的较佳实施例而已, 并不用以限制本 发明, 凡在本发明的精神和原则之内, 所做的任何修改、 等同 替换、 改进等, 均应包含在本发明保护的范围之内。

Claims

权利要求书
1、 一种 Turbo码译码方法, 其特征在于, 该方法包括: 对于输入序列中的每个码块,将该码块划分成为 M个码段, 将 M个码段分别输入至 M个译码单元,由 M个译码单元根据对数 域最大后验概率 Log-MAP算法对各自的输入码段并行进行译 码, 并输出译码后的码段;
其中, 将任意前后相邻的两个码段所对应的两个译码单元 分别称为第一译码单元和第二译码单元, 则在译码过程中, 第 一译码单元向第二译码单元传递自身码段的结尾边界点的前向 路径度量参数, 以便第二译码单元计算出自身码段的起始边界 点的前向路径度量参数; 而第二译码单元向第一译码单元传递 自身码段的起始边界点的后向路径度量参数, 以便第一译码单 元计算出自身码段的结尾边界点的后向路径度量参数。
2、 根据权利要求 1所述的方法, 其特征在于, 每个译码单 元包括 R个子译码器, R为自然数;
所述 M个译码单元根据 Log-MAP算法对各自输入的码段并 行进行译码包括: 对于每个译码单元, 由该译码单元中的 R个 子译码器共同完成根据 Log-MAP算法对输入码段进行译码所需 要完成的 It次迭代运算, 且每个子译码器完成其中的 It/R次迭代 运算; 其中, It和 It/R均为自然数;
所述第一译码单元向第二译码单元传递自身码段的结尾边 界点的前向路径度量参数, 以便第二译码单元计算出自身码段 的起始边界点的前向路径度量参数为: 第一译码单元中的每个 子译码器向第二译码单元中的对应子译码器传递自身码段的结 尾边界点的前向路径度量参数, 以便第二译码单元中的对应子 译码器计算出自身码段的起始边界点的前向路径度量参数; 所述第二译码单元向第一译码单元传递自身码段的起始边 界点的后向路径度量参数, 以便第一译码单元计算出自身码段 的结尾边界点的后向路径度量参数为: 第二译码单元中的每个 子译码器向第一译码单元中的对应子译码器传递自身码段的起 始边界点的后向路径度量参数, 以便第一译码单元中的对应子 译码器计算出自身码段的结尾边界点的后向路径度量参数。
3、 根据权利要求 1或 2所述的方法, 其特征在于, 划分出 的所述 M个码段的长度相等;
和 /或,
该方法进一歩包括: 对译码后的码段进行硬判决。
4、 一种 Turbo码译码装置, 其特征在于, 该装置包括: M 个译码单元, M为大于 1的自然数;
输入序列中的每个码块被划分成 M个码段后分别输入至所 述 M个译码单元;
每个译码单元, 用于接收输入的码段, 根据 Log-MAP算法 对输入码段进行译码, 将译码后的码段输出;
其中, 将任意前后相邻的两个码段所对应的两个译码单元 分别称为第一译码单元和第二译码单元, 则在译码过程中: 第 一译码单元向第二译码单元传递自身码段的结尾边界点的前向 路径度量参数, 以便第二译码单元计算出自身码段的起始边界 点的前向路径度量参数; 而第二译码单元向第一译码单元传递 自身码段的起始边界点的后向路径度量参数, 以便第一译码单 元计算出自身码段的结尾边界点的后向路径度量参数。
5、 根据权利要求 4所述的装置, 其特征在于, 每个译码单 元包括顺序级联的 R个子译码器, 依次为: 一级子译码器、 二 级子译码器 R级子译码器; 其中, R为自然数;
由该 R个子译码器共同完成根据 Log-MAP算法对输入码段 进行译码所需要完成的 It次迭代运算, 且每个子译码器完成其 中的 It/R次迭代运算; It和 It/R均为自然数。
其中, 在译码过程中: 第一译码单元中的每个子译码器向 第二译码单元中的对应子译码器传递自身码段的结尾边界点的 前向路径度量参数, 以便第二译码单元中的对应子译码器计算 出自身码段的起始边界点的前向路径度量参数; 第二译码单元 中的每个子译码器向第一译码单元中的对应子译码器传递自身 码段的起始边界点的后向路径度量参数, 以便第一译码单元中 的对应子译码器计算出自身码段的结尾边界点的后向路径度量 参数。
6、 根据权利要求 4或 5所述的装置, 其特征在于, 该装置进 一歩包括: 硬判决单元;
所述每个译码单元, 用于将译码后的码段输出到硬判决单 元;
所述硬判决单元, 用于接收 M个译码单元输出的译码后的 码段, 对译码后码段进行硬判决后输出。
7、 根据权利要求 5所述的装置, 其特征在于, 每个子译码 器包括: 数据选择器、 软输入软输出 SISO译码器和外信息存储 器;
数据选择器, 用于在首次迭代运算时将初始外信息输出给 SISO译码器, 在之后的迭代运算时将从外信息存储器获得的外 信息输出给 SISO译码器; 其中, 一级子译码器中的数据选择器 将 0作为初始外信息,其他子译码器中的数据选择器将上一级子 译码器最后一次迭代运算得到的外信息作为初始外信息;
SISO译码器, 利用数据选择器输出的数据以及输入码段进 行 It/R次迭代运算, 并将每次迭代运算得到的外信息发送到外 信息存储器;
外信息存储器, 用于存储 SISO译码器每次迭代运算所产生 的外信息, 并向数据选择器提供该外信息, 以便数据选择器将 该外信息发送给 SISO单元进行下一次的迭代运算;
其中, 在译码过程中: 第一译码单元中的每个子译码器中 的 SISO译码器向第二译码单元中的对应子译码器中的 SISO译 码器传递自身码段的结尾边界点的前向路径度量参数, 以便第 二译码单元中的对应子译码器中的 SISO译码器计算出自身码 段的起始边界点的前向路径度量参数; 第二译码单元中的每个 子译码器中的 SISO译码器向第一译码单元中的对应子译码器 中的 S I S 0译码器传递自身码段的起始边界点的后向路径度量 参数, 以便第一译码单元中的对应子译码器中 SISO译码器计算 出自身码段的结尾边界点的后向路径度量参数。
8、 根据权利要求 7所述的装置, 其特征在于, 在每个子译 码器进一歩包括数据存取开关总线;
在每个子译码器中, SISO译码器通过数据开关总线对外信 息存储器进行读写。
9、 根据权利要求 7所述的装置, 其特征在于, 每个 SISO译 码器包括: 地址计算模块和两个级联的分量译码器; 所述两个 级联的分量译码器为第一分量译码器和第二分量译码器;
第一分量译码器和第二分量译码器共同完成一次迭代运 算;
在第一分量译码器运算期间, 地址计算模块按照顺序递增 的地址读写对应的外信息存储器;
在第二分量译码器运算期间, 地址计算模块按照交织后的 地址读写对应的外信息存储器。
10、 根据权利要求 9所述的装置, 其特征在于, 每个分量译 码器包括: 分支度量计算模块、 状态更新模块、 存储模块、 控 制模块和外信息计算模块;
分支度量计算模块,用于根据输入信息计算分支度量参数, 并发送给状态更新模块和外信息计算模块;
状态更新模块, 用于根据接收的分支度量参数计算出前向 路径度量参数, 并发送到存储模块进行保存, 根据接收的分支 度量参数计算出后向路径度量参数,并发送给外信息计算模块; 存储模块, 用于保存来自状态更新模块的前向路径度量参 数; 外信息计算模块, 用于根据输入信息、 来自分支度量计 J 模块的分支度量参数、 来自状态更新模块的后向路径度量参 以及来自存储模块的前向路径度量参数, 计算外信息并输出; 控制模块, 用于对分支度量计算模块、 状态更新模块、 存储模块 外信息计算模块进行时序控制。
PCT/CN2010/001528 2010-01-11 2010-09-29 一种turbo码译码方法和装置 WO2011082509A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201010003408.6A CN101777924B (zh) 2010-01-11 2010-01-11 一种Turbo码译码方法和装置
CN201010003408.6 2010-01-11

Publications (1)

Publication Number Publication Date
WO2011082509A1 true WO2011082509A1 (zh) 2011-07-14

Family

ID=42514273

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2010/001528 WO2011082509A1 (zh) 2010-01-11 2010-09-29 一种turbo码译码方法和装置

Country Status (2)

Country Link
CN (1) CN101777924B (zh)
WO (1) WO2011082509A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020052672A1 (zh) * 2018-09-12 2020-03-19 中兴通讯股份有限公司 Turbo乘积码的译码方法、装置、译码器及计算机存储介质
US11184109B2 (en) 2017-02-13 2021-11-23 Accelercomm Limited Parallel turbo decoding with non-uniform window sizes

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101777924B (zh) * 2010-01-11 2014-02-19 新邮通信设备有限公司 一种Turbo码译码方法和装置
CN102064838B (zh) * 2010-12-07 2014-01-15 西安电子科技大学 基于新型无冲突交织器的低延迟并行Turbo译码方法
CN102710366B (zh) * 2012-03-21 2016-06-22 华为技术有限公司 数据译码的方法及装置
CN102611464B (zh) * 2012-03-30 2015-01-28 电子科技大学 基于外信息并行更新的Turbo译码器
CN103513961B (zh) * 2012-06-18 2017-07-11 中兴通讯股份有限公司 片内缓存方法及装置
CN102723958B (zh) * 2012-06-28 2015-02-25 电子科技大学 基于多核DSP的Turbo并行译码方法
CN103916142A (zh) * 2013-01-04 2014-07-09 联想(北京)有限公司 信道译码器和译码方法
CN104038234B (zh) * 2013-03-07 2017-09-29 华为技术有限公司 极性码的译码方法和译码器
CN103546167B (zh) * 2013-07-25 2016-12-28 上海数字电视国家工程研究中心有限公司 译码装置以及对解析数据进行译码的方法
CN105009461B (zh) 2013-12-24 2017-12-22 华为技术有限公司 极性码的译码方法和译码装置
CN105306076A (zh) * 2014-06-30 2016-02-03 深圳市中兴微电子技术有限公司 一种基于MAP算法的Turbo译码方法及装置
CN105915235B (zh) * 2016-04-08 2019-03-05 东南大学 一种基于Intel CPU的并行Turbo译码方法
CN105933090B (zh) * 2016-04-14 2019-07-16 电子科技大学 一种多核并行scma译码系统
CN105790775B (zh) * 2016-05-19 2019-01-29 电子科技大学 一种基于概率Turbo译码器的概率计算单元
CN107565983B (zh) * 2017-09-08 2020-08-11 广东工业大学 一种Turbo码的译码方法及装置
WO2019218130A1 (zh) * 2018-05-15 2019-11-21 深圳市大疆创新科技有限公司 Turbo编码方法、Turbo编码器及无人机
CN108880569B (zh) * 2018-07-24 2021-11-09 暨南大学 一种基于反馈分组马尔科夫叠加编码的速率兼容编码方法
CN111641417B (zh) * 2020-06-09 2023-03-31 电子科技大学 一种基于fpga的完成矩阵列置换交织的装置
CN113258940B (zh) * 2021-06-15 2021-10-08 成都星联芯通科技有限公司 turbo译码方法、装置、译码设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1286533A (zh) * 1999-11-12 2001-03-07 深圳市中兴通讯股份有限公司 一种高速并行级联码的译码方法及译码器
CN1758543A (zh) * 2005-11-11 2006-04-12 清华大学 提高Turbo码译码速度的并行译码方法及译码装置
CN101373978A (zh) * 2007-08-20 2009-02-25 华为技术有限公司 一种Turbo码译码方法以及装置
CN101777924A (zh) * 2010-01-11 2010-07-14 新邮通信设备有限公司 一种Turbo码译码方法和装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020136282A1 (en) * 2001-03-26 2002-09-26 Quang Nguyen Optimum UMTS modem
JP2005210238A (ja) * 2004-01-21 2005-08-04 Nec Corp ターボ復号装置及びその方法並びにその動作プログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1286533A (zh) * 1999-11-12 2001-03-07 深圳市中兴通讯股份有限公司 一种高速并行级联码的译码方法及译码器
CN1758543A (zh) * 2005-11-11 2006-04-12 清华大学 提高Turbo码译码速度的并行译码方法及译码装置
CN101373978A (zh) * 2007-08-20 2009-02-25 华为技术有限公司 一种Turbo码译码方法以及装置
CN101777924A (zh) * 2010-01-11 2010-07-14 新邮通信设备有限公司 一种Turbo码译码方法和装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11184109B2 (en) 2017-02-13 2021-11-23 Accelercomm Limited Parallel turbo decoding with non-uniform window sizes
WO2020052672A1 (zh) * 2018-09-12 2020-03-19 中兴通讯股份有限公司 Turbo乘积码的译码方法、装置、译码器及计算机存储介质
US11381259B2 (en) 2018-09-12 2022-07-05 Zte Corporation Decoding method and device for turbo product codes, decoder and computer storage medium

Also Published As

Publication number Publication date
CN101777924A (zh) 2010-07-14
CN101777924B (zh) 2014-02-19

Similar Documents

Publication Publication Date Title
WO2011082509A1 (zh) 一种turbo码译码方法和装置
JP5479580B2 (ja) Lteにおける並列turboデコーディングの方法及び装置
JP4629295B2 (ja) ターボ符号化された符号シーケンスの復号方法及び復号装置
KR100955305B1 (ko) 큐피피 인터리브를 갖는 병렬 터보 디코딩을 위한 공식적플렉서블 충돌 방지 메모리 억세싱
US7984368B2 (en) Method and system for increasing decoder throughput
CA3069482C (en) Blockwise parallel frozen bit generation for polar codes
EP1564893A1 (en) Turbo decoder, turbo decoding method, and operating program of same
JP4907802B2 (ja) 通信の復号化の際に用いられるバタフライプロセッサ装置
JP4227481B2 (ja) 復号装置および復号方法
KR20080098391A (ko) 양방향 슬라이딩 윈도우 아키텍처를 갖는 map 디코더
JP4054221B2 (ja) ターボ復号方法及びターボ復号装置
WO2010045842A1 (zh) 一种译码中外信息计算方法、译码器以及Turbo码译码器
US7584389B2 (en) Turbo decoding apparatus and method
JP2004343716A (ja) 畳み込み符号化信号の伝送形式をブラインド検出する方法および復号器
JP4837645B2 (ja) 誤り訂正符号復号回路
US8448033B2 (en) Interleaving/de-interleaving method, soft-in/soft-out decoding method and error correction code encoder and decoder utilizing the same
CN108270452B (zh) 一种Turbo译码器及译码方法
US8032811B2 (en) Efficient almost regular permutation (ARP) interleaver and method
EP1115209A1 (en) Apparatus and method for performing parallel siso decoding
Han et al. High speed max-log-MAP turbo SISO decoder implementation using branch metric normalization
Huang et al. A high speed turbo decoder implementation for CPU-based SDR system
JP2003152556A (ja) 誤り訂正符号復号装置
CN108880569B (zh) 一种基于反馈分组马尔科夫叠加编码的速率兼容编码方法
US7652597B2 (en) Multimode decoder
Zhu et al. An improved decoding of tail-biting convolutional codes for LTE systems

Legal Events

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

Ref document number: 10841853

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS (EPO FORM 1205A DATED 12-12-2012)

122 Ep: pct application non-entry in european phase

Ref document number: 10841853

Country of ref document: EP

Kind code of ref document: A1