WO2004004132A1 - Iterative decoding method and apparatus for product code based on adjoint formula - Google Patents

Iterative decoding method and apparatus for product code based on adjoint formula Download PDF

Info

Publication number
WO2004004132A1
WO2004004132A1 PCT/CN2002/000457 CN0200457W WO2004004132A1 WO 2004004132 A1 WO2004004132 A1 WO 2004004132A1 CN 0200457 W CN0200457 W CN 0200457W WO 2004004132 A1 WO2004004132 A1 WO 2004004132A1
Authority
WO
WIPO (PCT)
Prior art keywords
decoding
adjoint
soft
input
value
Prior art date
Application number
PCT/CN2002/000457
Other languages
French (fr)
Chinese (zh)
Inventor
Zongwang Li
Original Assignee
Linkair Communications,Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Linkair Communications,Inc. filed Critical Linkair Communications,Inc.
Priority to PCT/CN2002/000457 priority Critical patent/WO2004004132A1/en
Priority to CNA028181204A priority patent/CN1555603A/en
Priority to AU2002320749A priority patent/AU2002320749A1/en
Publication of WO2004004132A1 publication Critical patent/WO2004004132A1/en

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/1134Full parallel processing, i.e. all bit nodes or check nodes are processed in parallel
    • 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
    • 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/2906Coding, 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 using block codes
    • H03M13/2909Product codes
    • 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/2948Iterative decoding

Definitions

  • the present invention belongs to the field of communication technology, and particularly relates to decoding of a cascaded linear block code in a digital communication system, and in particular to an iterative decoding method and device based on an adjoint product code.
  • Channel error correction coding is an important part of the communication system, and linear block codes are an important type of channel error correction coding.
  • BCH codes (codes invented by Bose, Ray-Chaudhuri, and Hocquenghem respectively) are linear block codes that can correct multiple errors. If an even or odd check is added to the BCH code word The bits constitute the extended BCH code.
  • Concatenated codes can enhance error correction performance.
  • Concatenated block codes are long codes formed by concatenating two or more linear block codes.
  • a product code is a special concatenated block code.
  • Its codeword is a matrix, which consists of row and column subcodes.
  • [C (n, k, d) J represents that the row and column subcodes are product codes of linear block codes C (n, k, d);
  • C ⁇ nk x , d x ) xC ⁇ n 2 , k 2 , d 2 ) means that the row subcode is a linear block code C (n consentk x , d,) and the column subcode is a product code of the linear block code C (,, / ⁇ 2 ).
  • Iterative decoding uses soft input values and external information The value is decoded and a soft output value is generated. A new external information value is calculated based on the soft output value and fed back to the input of the decoder
  • the object of the present invention is to provide an iterative decoding method and device based on adjoint product codes, which are processed by a series of high-speed parallel algorithms, namely: optimized two-dimensional fast sorting processing, and q-pattern search based on table lookup Processing, and fast calculation processing of external information values, so that the hardware implements iterative decoding of the product code at high speed, thereby achieving high-speed data communication.
  • An iterative decoding method for a product code based on an adjoint type is characterized in that when iteratively decoding a product code, a binary subcode of the product code needs to be decoded, and the binary subcode is decoded. It is necessary to satisfy the conditions for decoding binary linear block codes with adjointness; obtain soft output values and external information values; use the obtained soft output values and external information values to implement iterative decoding of a product code with an arbitrary number of iterations.
  • the decoding of the binary subcodes of the product code refers to: decoding the binary row and column subcodes of the product code.
  • the conditions for decoding an adjoint binary linear block code include:
  • the hard-decision binary sequence is the soft-decision decoded codeword e, and the decoding is completed; marking the least reliable symbol position in the soft input vector, and also the lightest-weight column vector in the check matrix H Position, where / ⁇ w- / c ;
  • the decoding failure flag is set and the decoding ends
  • the binary symbols corresponding to the positions of the set in the hard decision binary sequence b are complemented to obtain the soft decision decoding codeword e, and the decoding ends.
  • the method for iterative decoding of a product code based on an adjoint type includes the steps of: when iteratively decoding a product code, decoding a binary row sub-code and a column sub-code of the product code, and meeting the following requirements: Conditions:
  • the hard-decision binary sequence is the soft-decision decoded codeword e, and the decoding ends; find the 7 least reliable symbol positions in the soft input vector, and also the lightest-weight column vector in the check matrix H Location, where
  • the decoding failure flag is set and the decoding ends
  • the steps for deriving the soft output value and external information value are:
  • the finding the most unreliable symbol position in the soft input vector refers to:
  • the two-dimensional fast partial sorting method suitable for hardware implementation can be used to find the most unreliable symbol position in the soft input vector.
  • the steps include:
  • the one-dimensional array to be sorted constitutes a two-dimensional array.
  • the most / reliable symbol positions required can be obtained by comparing at most / times; for a ⁇ two-dimensional array, it takes up to + 0 + / clock cycles to complete the required sorting.
  • Finding all "patterns ⁇ rf" and their set of positions satisfying the adjoint condition ( ⁇ ;. Ei / h ,.) ⁇ S mod 2 and positional conditions refer to:
  • the implementation steps using high-speed hardware based on look-up table are as follows:
  • an anti-adjoint table and an adjoint table for correcting a single error are stored, where: the error position corresponding to the adjoint, if the adjoint cannot locate a single error, The corresponding position is set to the -1 flag, requiring a total of "l 0 g 2 n]. (2"- / £ -1) bits; the accompanying formula corresponding to the error position requires a total of "("- / c ) bits;
  • the step of deriving the soft output value and the external information value may further include:
  • the external information value is used for fast processing.
  • the-pattern search is completed, all the calculation of the bit external information value can be completed in parallel within 1 clock cycle, but 2 (+ 2 ) ⁇ «bit storage unit is required.
  • An iterative decoding device based on an adjoint product code which includes: an input-output module, an adjoint calculation module, a selection ordering module, a -pattern search module, an external information value calculation module, and a storage module;
  • Input data and control signals are inputs to the input and output modules
  • the input / output module stores the input data in the storage module
  • the input / output module inputs data to the adjoint calculation module and the selection sorting module
  • the adjoint calculation module, the selection sorting module and the storage module respectively input data to the q-pattern search module;
  • the pattern search module inputs data to the external information value calculation module
  • the external information value calculation module feeds back signals to the input and output modules
  • the input and output modules output data and status signals.
  • the input / output module includes at least a soft input value calculation module;
  • the soft input value calculation module calculates the soft input value SI of each iteration of the decoder based on the soft information value U input and the external information value w generated during the decoding process, and the reliable value
  • the storage module may include: a data storage dual-port RAM, an accompanying table module, and an anti-adjoint table module;
  • the input-output module stores the input data in the data storage dual-port RAM; the adjoint table module and the anti-adjoint table module respectively input data to the q-pattern search module.
  • the beneficial effect of the present invention is that, by providing an iterative decoding method and device for a product code based on an adjoint type, it is possible to ensure that the product code subcode generates an optimized codeword list, and quickly calculates a code character number to output soft information, thereby having good Decoding performance and high decoding speed. This enables high-speed data communication.
  • FIG. 1 is a flowchart of a binary linear block code decoding method
  • FIG. 2 is a flowchart of a decoding method of a product code
  • FIG. 3 is a hardware implementation block diagram of the device according to the present invention.
  • Figure 4 is a schematic diagram of the quick sort algorithm
  • Fig. 5 is a comparison diagram of the decoding performance when the product code formed by the extended BCH code [C (64,51,6)] 2 is decoded 6 times.
  • a method for iterative decoding of a product code based on an adjoint type which is specifically implemented as follows: when iteratively decoding a product code, a binary subcode of the product code needs to be decoded, and The decoding needs to satisfy the conditions for the decoding of the binary linear block code with adjointness; obtain the soft output value and the external information value; use the obtained soft output value and the external information value to realize the iterative decoding of the product code with an arbitrary number of iterations.
  • the adjoint is used to decode binary linear block code
  • the code steps include:
  • step 1QQ the decoding method starts.
  • step 101 a symbol soft input value vector SI is input.
  • step 102 a symbol vector hard decision binary sequence b is calculated.
  • step 104 it is determined whether S is not equal to zero.
  • step 104 If the judgment result of step 104 is that S is not equal to 0, the process proceeds to step 105, otherwise proceeds to step 112.
  • step 105 mark the soft input vector (usually ⁇ «-the most unreliable symbol positions, and also the lightest weighted column vector position in the check matrix H).
  • step 106 find all / of "patterns and their location set L, satisfying the adjoint condition
  • the column vector is one of the least reliable symbol positions in the soft input vector.
  • step 107 it is determined whether a-pattern is found.
  • step 107 determines whether a-pattern is found. If the determination result of step 107 is yes, that is, a-pattern is found, the process proceeds to step 109, otherwise proceeds to 108.
  • step 108 that is, if the -mode is not found, the decoding failure flag is set, and the process proceeds to step 113.
  • step 109 the weight of the-pattern is calculated, that is, the weight corresponding to the set of column vector labels of the check matrix H is calculated. Then store these weight values and corresponding bits
  • step 110 find the set J, with the smallest weight.
  • step 111 for the binary symbol corresponding to the position of the set ⁇ in the hard decision binary sequence b Complement the number, and thus obtain the soft decision decoding codeword S
  • step 112 the hard decision binary sequence b is the required soft decision decoding codeword 5.
  • step 113 the decoding ends.
  • step 200 the decoding method starts.
  • step 201 the log-likelihood value of each symbol is input from the demodulator, and these received symbols are grouped into a vector of length ⁇ 2 to form an array of X n 2 .
  • step 204 the i-th row (or column) subcode is decoded.
  • the specific decoding process has been described in detail in FIG.
  • step 205 it is determined whether S is not equal to 0
  • step 205 If the judgment result of step 205 is that S is not equal to 0, the process proceeds to step 206, otherwise proceeds to step 211
  • step 207 it is determined whether a decoding failure flag is set.
  • step 207 If the judgment result of step 207 is that the decoding failure flag is set, the process proceeds to step 213, otherwise proceeds to step 208
  • step 204 that is, in the flowchart shown in FIG. 1, if the decoding of the subcode is successful, one of the codewords is obtained, which is recorded as e and a position set corresponding to the minimum weight, and e is applied to all code characters. Calculation of No. soft output value. If the binary numbers of positions in the hard decision binary sequence b corresponding to all elements in the set of other positions are complemented, a series of codewords can be obtained, which are useful in the calculation of soft output values.
  • the J'th symbol of this codeword is required to be different from the J'th symbol of e, and it is called "j-competition codeword". If there are multiple "competitive contention codewords" in the above decoding method, then take the codeword with the smallest set of corresponding position weights, and record it as the corresponding minimum set of position weights 4.
  • the soft output value is calculated as follows:
  • /? Can be a constant, or it can be dynamically modified during decoding.
  • the soft input value of the next iterative decoding can be obtained as follows: a is a weighting factor, which is a positive factor considering the different standard deviations of the SI and w samples.
  • step 207 the following steps are performed.
  • step 208 look for "j-contest codeword '" from the decoded output column of step 204.
  • step 209 it is determined whether "j-competitive codeword" exists.
  • step 209 If the judgment result of step 209 is that "j-competition codeword" exists, the process proceeds to step 210, otherwise proceeds to step 212.
  • step 210 the selected smallest weight 11 j- competitive codeword.
  • step 213 the sub-decoding fails, and the external information value is set to 0.
  • step 215 it is determined whether i ⁇ n holds.
  • step 216 If the judgment result of step 216 is yes, proceed to step 215, otherwise proceed to step
  • step 216 i is incremented by one, and then returns to step 3 ⁇ 4 204 to decode other rows or columns in the input array.
  • step 217 If the determination result of step 217 is YES, proceed to step 220. Otherwise, proceed to step 218.
  • step 218 If the determination result of step 218 is YES, proceed to step 219. Otherwise, proceed to step 221.
  • n is assigned a value of ⁇ m .
  • n is assigned a value of n 2 . And set i to 0, and go to step 203.
  • the hard decision output decodes the soft output value array and proceeds to step 222.
  • step 222 the iterative decoding ends.
  • An iterative decoding method for product codes based on an adjoint type which includes: an input-output module, an adjoint calculation module, a selection sorting module, a 2-mode search module, an external information value calculation module, and a storage module; input data and control signals Is the input of the input-output module; the input-output module stores the input data in the storage module; the input-output module inputs data to the adjoint calculation module and the selection sorting module; the adjoint calculation module, the selection sorting module and the storage module respectively enter the mode Search module input data;-pattern search module inputs data to external information value calculation module; The external information value calculation module feeds back signals to the input and output modules; the input and output modules output data and status signals.
  • the black arrows in the figure indicate the data flow direction.
  • the decoder consists of an input-output module, a companion calculation module, a selection sorting module, a pattern search module, an external information value calculation module, and a storage module. The functions of each module are described below:
  • the input data and control signals are input to the input / output / control module 300 of the decoder, and the decoding parameters of the decoder are initialized according to the control signals, and the anti-adjoint table of single errors is stored according to the check matrix of the linear block code.
  • the incident table (corresponding to the position of the error). A total of "( «-/ 0 bits) is required to store the input data; the input data is stored in the data storage dual-port RAM 302.
  • the soft input value calculation unit in the module 300 is based on the input soft information value 11 and the decoding process.
  • the generated external information value w (0 in initial decoding) is calculated to obtain the soft input value si of each iteration of the decoder.
  • the absolute value of the soft input value
  • is input to module 304 to find the location set with the smallest reliable value.
  • A This step is one of the key steps affecting the decoding speed, and an optimized fast sort algorithm needs to be adopted.
  • the decoding algorithm based on the adjoint subcode does not need to sort the entire soft input sequence. It only needs to select the least reliable symbol position.
  • a simple parallel comparison sort algorithm Through the analysis of some sorting algorithms, a two-dimensional fast partial sorting algorithm suitable for hardware implementation is invented as shown in Figure 4. The sorting process is as follows:
  • the one-dimensional array to be sorted is formed into a two-dimensional array.
  • Table 1 shows the above rapid Sorting results of partial sorting algorithms. From Table 1, a simple comparison operation can be used to find the minimum value.
  • the binary hard decision sequence b is input to the module 305 and its adjoint S is calculated.
  • the location set, ⁇ , and the adjoint S are input to the module 306, and the g -pattern search algorithm designed by the application is used to look up the adjoint table 307 and the anti-adjoint table 308 to find the position set of all -patterns that satisfy the condition Location conditions.
  • This step is one of the key steps affecting the decoding speed, and is the core of the subcode adjoint decoding.
  • a table-based high-speed hardware implementation algorithm is used. The process is as follows: For the obtained / reliable symbol positions, determine other modes ( ⁇ ⁇ / ).
  • W "' v (i) ⁇ L q ), if W inv (i)> ⁇ L q ) and ig L q if w min > ⁇ L q )-After the pattern search is completed, W, W'" v , flag , handledAnd _ / 3 ⁇ 41 ⁇ 2 are input to the external information calculation module 309, and the external information values of all code character numbers are calculated in parallel according to the following formula.
  • the control unit of the module 300 determines the row subcode and column subcode decoding according to the input control information and the decoding status, and starts and terminates the decoding process.
  • Simulation results Here is a product code with the extended BCH code C (64,51,6) as the subcode [C (64,51,6) f. Simulation results using BPSK modulation on an additive white Gaussian channel. First, some parameters of the iterative decoding method will be determined.
  • Figure 5 is a diagram of the 6-item decoding of the product code formed by the extended BCH code [C (64,51,6)] 2
  • the method shown in Figure 2 is compared with the hardware decoding performance shown in Figure 3.
  • the ordinate is the bit error rate (BER)
  • the abscissa is the bit energy signal-to-noise ratio (Eb / N0).
  • the figure shows a comparison of the present invention preclude different coding decoding performance parameter 1, and compare them with the performance of the hardware decoder, the BER-10- 6 7 and when 10-, and the performance of the hardware decoder
  • the floating-point simulation results of 12, 13 are only 0.2 dB worse.
  • the product code [C (8, 4, 4)] 2 of the extended Hamming code C (8, 4, 4) as a subcode is taken as an example to briefly explain the working process of the algorithm.
  • the generator polynomial of the subcode is: (1 + x + x 2 ).
  • Table 2 is Check matrix for extended Hamming code C (8, 4, 4).
  • Tables 3 and 4 are the adjoint tables and anti-adjoint tables obtained by extending the check matrix of the Hamming code C (8, 4, 4). Table 2
  • Table 4 Table 5 is the codeword matrix after the product code [C (8,4,4)] 2 is coded.
  • the codeword matrix encoded by the product code is an 8X8 matrix, and its 4X4 sub-matrix composed of G to 3 rows and G to 3 columns is the input information bit, and each row and each column is a C (8, 4, 4) Extended Hamming codeword.
  • the codeword matrix in Table 2 is output to the modulator and transmitted.
  • the noise-received codeword matrix that is, the product code [C (8,4,4)] 2 is received, as shown in Table 6.
  • row decoding is performed first.
  • the external information value in the codeword is approximately (6 6 6 6 6 6 6 6). At this time, the value of ⁇ is 6 and the soft output information value vector is (21 37 37 379 35 31 37).
  • the hard-decision binary sequence is used as the output codeword, and no other "competitive codeword" needs to be calculated.
  • the external information value in the codeword is approximately (-6 -6 6 -6 6 6 6 -6), and the value is 6 at this time, and the soft output information value vector is (-17 -18 21-3724 37 25 -37).

Landscapes

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

Abstract

The present invention provides an iterative decoding method and apparatus for product code. The method and apparatus are based on adjoint formula. By using a series of high speed parallel algorithm processing, i.e. two dimensional high speed sort processing, q-mode search processing based on table search, and high speed calculate processing of external information value, the hardware is make to realize high speed iterative decoding of product code and thus high speed data communications are realized.

Description

一种基于伴随式的乘积码迭代译码方法及装置 技术领域  Method and device for iterative decoding of adjoint product codes
本发明属于通信技术领域, 其特别涉及数字通信系统中级联线性分组码 的译码, 具体地讲是一种基于伴随式的乘积码迭代译码方法及装置。  The present invention belongs to the field of communication technology, and particularly relates to decoding of a cascaded linear block code in a digital communication system, and in particular to an iterative decoding method and device based on an adjoint product code.
背景技术 Background technique
信道纠错编码是通信系统的重要组成部分, 线性分組码是一类重要的信 道纠错编码。 线性分组码通常表示为 C(«,/«:, 包含 个信息比特和 个 冗余比特, 其中 个冗余比特是 /<:个信息比特的线性组合, 最小汉明距 离为 d, 码率为 ? = yt/M。 汉明码是码长为 " =2"'-1 , 信息比特数为 " = 2"' - m - 1纠单个错误的线性分组码, 如果在汉明码字中增加一个偶或奇 检验比特就构成了扩展汉明码。 BCH 码 (由 Bose、 Ray-Chaudhuri 和 Hocquenghem分别发明的码)是能纠多个错误的线性分组码, 如果在 BCH 码字中增加一个偶或奇检验比特就构成了扩展 BCH码。 Channel error correction coding is an important part of the communication system, and linear block codes are an important type of channel error correction coding. A linear block code is usually expressed as C («, /« :, which contains information bits and redundant bits, where each redundant bit is a linear combination of // <: information bits, the minimum Hamming distance is d, and the code rate is ? = yt / M. The Hamming code is a linear block code with a code length of "= 2 "'-1 and information bits of "= 2"'-m-1 to correct a single error. If an even number is added to the Hamming codeword, Or odd check bits constitute the extended Hamming code. BCH codes (codes invented by Bose, Ray-Chaudhuri, and Hocquenghem respectively) are linear block codes that can correct multiple errors. If an even or odd check is added to the BCH code word The bits constitute the extended BCH code.
级联码能够增强纠错性能, 级联分组码是由两个或多个线性分组码级 联而构成的长码。 乘积码是特殊的级联分组码, 它的码字是一个矩阵, 由 行子码和列子码构成。 [C (n, k,d)J表示行子码和列子码都为线性分组码 C(n,k,d)的乘积码; C{n kx,dx)xC{n2,k2,d2)表示行子码为线性分组码 C(n„kx,d,) , 列子码为线性分组码 C( ,/ ^2)的乘积码。 迭代译码是利用软 输入值和外部信息值译码并产生软输出值 , 根据软输出值计算出新的外部 信息值并反馈到译码器的输入端再次译码。 Concatenated codes can enhance error correction performance. Concatenated block codes are long codes formed by concatenating two or more linear block codes. A product code is a special concatenated block code. Its codeword is a matrix, which consists of row and column subcodes. [C (n, k, d) J represents that the row and column subcodes are product codes of linear block codes C (n, k, d); C {nk x , d x ) xC {n 2 , k 2 , d 2 ) means that the row subcode is a linear block code C (n „k x , d,) and the column subcode is a product code of the linear block code C (,, / ^ 2 ). Iterative decoding uses soft input values and external information The value is decoded and a soft output value is generated. A new external information value is calculated based on the soft output value and fed back to the input of the decoder to decode again.
随着迭代译码算法的应用, 乘积码又再一次得到了关注。 近年来, 迭 代译码由于其强有力的纠错性能和较低的复杂度得到了广泛应用。 在迭代 译码过程中, 译码器不仅输出信息比特的硬判值, 还要输出译码后的信息 比特的可靠值。 因此, 为了实现高速数据通信, 有必要硬件高速实现乘积 码的迭代译码。 发明内容 本发明的目的是, 提供一种基于伴随式的乘积码迭代译码方法及装置, 通过一系列高速并行算法处理, 即: 优化的二维快速排序处理、 基于查表 的 q-模式搜索处理、 和外部信息值的快速计算处理, 以使硬件高速实现乘 积码的迭代译码, 从而实现高速数据通信。 With the application of iterative decoding algorithms, product codes have once again received attention. In recent years, iterative decoding has been widely used due to its powerful error correction performance and low complexity. In the iterative decoding process, the decoder not only outputs the hard decision value of the information bits, but also the reliable value of the decoded information bits. Therefore, in order to achieve high-speed data communication, it is necessary for the hardware to implement iterative decoding of the product code at high speed. SUMMARY OF THE INVENTION The object of the present invention is to provide an iterative decoding method and device based on adjoint product codes, which are processed by a series of high-speed parallel algorithms, namely: optimized two-dimensional fast sorting processing, and q-pattern search based on table lookup Processing, and fast calculation processing of external information values, so that the hardware implements iterative decoding of the product code at high speed, thereby achieving high-speed data communication.
本发明的目的是由如下技术方案来实现的:  The object of the present invention is achieved by the following technical solutions:
一种基于伴随式的乘积码迭代译码方法, 其特征在于, 在对乘积码进 行迭代译码时, 需对乘积码的二进制子码进行译码, 且对所述二进制子码 进行的译码需满足伴随式对二进制线性分组码译码的条件; 得出软输出值和外部信息值; 利用得到的软输出值和外部信息值实现 任意迭代次数的乘积码迭代译码。 所述的需对乘积码的二进制子码进行译码是指: 对乘积码的二进制行 子码和列子码进行译码。  An iterative decoding method for a product code based on an adjoint type is characterized in that when iteratively decoding a product code, a binary subcode of the product code needs to be decoded, and the binary subcode is decoded. It is necessary to satisfy the conditions for decoding binary linear block codes with adjointness; obtain soft output values and external information values; use the obtained soft output values and external information values to implement iterative decoding of a product code with an arbitrary number of iterations. The decoding of the binary subcodes of the product code refers to: decoding the binary row and column subcodes of the product code.
所述的伴随式对二进制线性分组码译码的条件包括:  The conditions for decoding an adjoint binary linear block code include:
输入符号向量的软输入值 SI;  Soft input value SI of the input symbol vector;
计算符号向量的硬判决二进制序列 b;  Compute a hard decision binary sequence b of a symbol vector;
根据得到的硬判决二进制序列 b 和相应的校验矩阵 H, 得到伴随式向 量 S=HbT; According to the obtained hard decision binary sequence b and the corresponding check matrix H, the adjoint vector S = Hb T is obtained ;
如果 s = o, 硬判决二进制序列即为软判决译码码字 e, 译码结束; 标记软输入向量中 /个最不可靠的符号位置, 同时也是校验矩阵 H中 权重最轻的列向量位置, 其中 /≤w-/c; If s = o, the hard-decision binary sequence is the soft-decision decoded codeword e, and the decoding is completed; marking the least reliable symbol position in the soft input vector, and also the lightest-weight column vector in the check matrix H Position, where / ≤w- / c ;
找出所有 ^ d的 -模式及其位置集合^ , 满足伴随式条件  Find all-patterns of ^ d and their position set ^, satisfy the adjoint condition
(∑eiy h/)≡S mod 2和位置条件^; . { 0,Α,···,Α— ^ , xe{0,l,--,n-l}, 其中 h;是校验矩阵 H的第 i个列向量, 是软输入向量中 1个最不可靠的符号 位置之一; (∑ei y h /) ≡S mo d 2 and position condition ^;. { 0 , Α , ··, Α— ^, xe {0, l,-, nl}, where h ; is the check matrix The ith column vector of H is one of the least reliable symbols in the soft input vector One of the positions
如果未找到 -模式, 置译码失败标志, 译码结束;  If the -mode is not found, the decoding failure flag is set and the decoding ends;
计算 -模式的权重, 即计算相应于校验矩阵 H的列向量标号的集合 的权重^ |^/);| , 然后存贮这些权重值及相应的位置集合; 找出具有最小权重的集合 Calculate the weight of the pattern, that is, calculate the weight corresponding to the set of column vector labels of the check matrix H ^ | ^ /) ; |, and then store these weight values and the corresponding set of positions; find the set with the smallest weight
对硬判决二进制序列 b 中相应于集合 的位置的二进制符号求补, 得 到软判决译码码字 e , 译码结束。  The binary symbols corresponding to the positions of the set in the hard decision binary sequence b are complemented to obtain the soft decision decoding codeword e, and the decoding ends.
所述的一种基于伴随式的乘积码迭代译码方法, 其步骤包括: 在对乘积码进行迭代译码时 , 需对乘积码的二进制行子码和列子码进 行译码, 且需满足下列条件:  The method for iterative decoding of a product code based on an adjoint type includes the steps of: when iteratively decoding a product code, decoding a binary row sub-code and a column sub-code of the product code, and meeting the following requirements: Conditions:
输入符号向量的软输入值 SI;  Soft input value SI of the input symbol vector;
计算符号向量的硬判决二进制序列 b;  Compute a hard decision binary sequence b of a symbol vector;
根据得到的硬判决二进制序列 b 和相应的校验矩阵 H, 得到伴随式向 量 S=HbT; According to the obtained hard decision binary sequence b and the corresponding check matrix H, an adjoint vector S = Hb T is obtained ;
如果 s = o, 硬判决二进制序列即为软判决译码码字 e , 译码结束; 找到软输入向量中 7个最不可靠的符号位置, 同时也是校验矩阵 H中 权重最轻的列向量位置, 其中  If s = o, the hard-decision binary sequence is the soft-decision decoded codeword e, and the decoding ends; find the 7 least reliable symbol positions in the soft input vector, and also the lightest-weight column vector in the check matrix H Location, where
找出所有 ≤d的 -模式及其位置集合 , 满足伴随式条件  Find all-patterns of ≤d and their set of locations, satisfying the adjoint condition
(∑;ei h')≡S mod 2和位置条件^; {ρ0, ··,Α— "4, ^ e {0,l,---,n-l} , 其中 h,.是校脸矩阵 H的第 i个列向量, 是软输入向量中 1个最不可靠的符号 位置之一; (∑; ei h ') ≡S mod 2 and position condition ^; {ρ 0 , ··, Α— "4, ^ e {0, l, ---, nl}, where h ,. is the face correction matrix The ith column vector of H is one of the least reliable symbol positions in the soft input vector;
如果未找到 模式, 置译码失败标志, 译码结束;  If the mode is not found, the decoding failure flag is set and the decoding ends;
计算 -模式的权重, 即计算相应于校验矩阵 H的列向量标号的集合 ^ 的权重 =∑^|^/) | , 然后存贮这些权重值及相应的位置集合; 找出具有最小权重的集合 ; 对硬判决二进制序列 b 中相应于集合 J,„的位置的二进制符号求补, 得 到软判决译码码字 e, 译码结束; Calculate the weight of the pattern, that is, calculate the weight of the set ^ corresponding to the column vector label of the check matrix H = ∑ ^ | ^ /) |, and then store these weight values and the corresponding set of positions; find the one with the smallest weight set; Complement the binary symbols in the hard decision binary sequence b corresponding to the positions of the set J, “, to obtain the soft decision decoding codeword e, and the decoding ends;
得出软输出值和外部信息值的步骤为:  The steps for deriving the soft output value and external information value are:
在 S不等于 0且未置译码失败标记时, 从上述子码译码的输出列中寻 找 "卜竟争码字";  When S is not equal to 0 and the decoding failure flag is not set, look for "bu Jing contention code word" from the output column of the above subcode decoding;
在不存在 " j-竟争码字", 或者 S = 0 时, 计算软输出值 {SO)j={SI)j+ {2cJ-l) , 其中 是一个常数, (S/ 是第 J'个符号的软输入值, 首次迭代时, (S/);= , ^是解调器输出的软信息值; 其他迭代时,Calculate the soft output value {SO) j = {SI) j + {2c J -l) when "j-competitive codeword" does not exist, or S = 0, where S / is the Jth The soft input value of 'symbols, (S /) ; =, ^ is the soft information value output by the demodulator at the first iteration; at other iterations,
(SI)j = iij + aWj , 计算外部信息值 w; = (SO)j - (SI)j; (SI) j = iij + a Wj , calculate the external information value w ; = (SO) j-(SI) j;
在存在 "j-竟争码字" 时, 选择权重最小的"卜竟争码字", 计算软输 出值 (S6> =( - m)(2cj -l) , 计算外部信息值 . =0SO - SJ ; When there is a "j-competition codeword", select the "bu-contest codeword" with the smallest weight, calculate the soft output value (S6> = ( -m ) (2cj -l), and calculate the external information value. = 0SO- SJ;
在上述子码译码过程中已置译码失败标记时, 计算外部信息值 =0; 利用得出的软输出值和外部信息值, 对其他行子码或列子码进行译码; 待所有行子码译码完毕后, 利用新的外部信息值构成新的软输入值译码所 有列子码; 行子码和列子码交替译码实现任意迭代次数的乘积码迭代译码。  When a decoding failure flag has been set in the above-mentioned subcode decoding process, calculate the external information value = 0; use the obtained soft output value and external information value to decode other row or column subcodes; wait for all rows After the subcode decoding is completed, the new external information value is used to form a new soft input value to decode all column subcodes; the row subcode and column subcode are alternately decoded to implement iterative decoding of the product code of any number of iterations.
所述的找到软输入向量中 1个最不可靠的符号位置是指: 可采用适合 硬件实现的二维快速部分排序法找到软输入向量中 1个最不可靠的符号位 置, 其步驟包括:  The finding the most unreliable symbol position in the soft input vector refers to: The two-dimensional fast partial sorting method suitable for hardware implementation can be used to find the most unreliable symbol position in the soft input vector. The steps include:
首先将待排序的一维阵列构成一个二维阵列, 如 n=128 的子码软输入 序列可构成一个 8 x 16的二维阵列; First, the one-dimensional array to be sorted constitutes a two-dimensional array. For example, a soft input sequence of subcodes of n = 128 can form an 8 x 16 two-dimensional array.
利用传统的并行比较排序法, 首先对二维阵列的所有行同时排序, 然 后对它的所有列同时排序;  Using the traditional parallel comparison sorting method, all rows of a two-dimensional array are sorted at the same time, and then all its columns are sorted at the same time.
通过最多 /次比较就能够得出所需要的 /个最不可靠的符号位置; 对于 χθ二维阵列, 最多需要 + 0 + /个时钟周期就可完成所要求的排序。  The most / reliable symbol positions required can be obtained by comparing at most / times; for a χθ two-dimensional array, it takes up to + 0 + / clock cycles to complete the required sorting.
所述的找出所有 ≤rf的 "模式及其位置集合 , 满足伴随式条件 (∑;.ei/h,.)S mod 2和位置条件是指: 采用基于查表的高速硬件实现步骤如 下: Finding all "patterns ≤ rf" and their set of positions satisfying the adjoint condition (∑ ;. Ei / h ,.) S mod 2 and positional conditions refer to: The implementation steps using high-speed hardware based on look-up table are as follows:
在译码前, 根据线性分组码 c , 的校验矩阵, 存贮纠单个错误的 反伴随式表和伴随式表, 其中: 伴随式所对应的错误位置, 如果该伴随式 不能定位单个错误, 则相应位置设为- 1 标志, 共需要「l0g2n〕.(2''-- 1)比特; 错误位置所对应的伴随式, 共需要 "("— /c)比特; Before decoding, according to the check matrix of the linear block code c, an anti-adjoint table and an adjoint table for correcting a single error are stored, where: the error position corresponding to the adjoint, if the adjoint cannot locate a single error, The corresponding position is set to the -1 flag, requiring a total of "l 0 g 2 n]. (2"- / £ -1) bits; the accompanying formula corresponding to the error position requires a total of "("- / c ) bits;
根据得到的伴随式 S 查反伴随式表确定单个错误位置, 如果位置标志 不为- 1, 找到了一个 -模式, 其中: =1; 否则, 表示有多个位置出错; 针对得到的 /个最不可靠符号位置, 确定其它 -模式, 其中 ≤£; 当求 -模式, 其中 g = 2时, 首先查伴随式表确定 /个最不可靠的符号 位置集合中某个位置出错的伴随式 Sl 5 然后求 S^S®^, 最后由 S2查反伴 随式表确定错误位置, 如果位置标志不为 -1, 找到了一个 -模式 ( g = 2 ), 当 取满足条件的不同值时,重复上面步骤便可找出所有满足译码条件的 模式。 Determine the single error location according to the obtained S inverse inverse table. If the position flag is not -1, a-pattern is found, where: = 1; otherwise, it means that there are multiple position errors; For unreliable symbol positions, determine other-patterns, where ≤ £ ; when seeking-patterns, where g = 2, first check the adjoint table to determine the adjoint S l with an error in one of the least reliable symbol position sets. 5 then find S ^ S® ^, and finally 2 S trans verified by the error syndrome table to determine a position, if the position flag is not -1, to find a - mode (g = 2), when taken to meet the different values of the condition, Repeat the above steps to find all the modes that meet the decoding conditions.
所述的得出软输出值和外部信息值的步骤可进一步包括:  The step of deriving the soft output value and the external information value may further include:
若找到 " -竟争码字", 软输出值为: (《¾=[^( 。)- ( min)](2 - 1); 如果子码译码时不能找到 "广竟争码字,,, 则, 软输出值近似计算为:If "-competitive codeword" is found, the soft output value is: ("¾ = [^ (.)-( Min )] (2-1); , Then, the soft output value is approximately calculated as:
(SO)j=(SI)J+fi(2cJ-l); (SO) j = (SI) J + fi (2c J -l);
若子码译码失败, 软输出值设为: (SO =(W ;  If the decoding of the subcode fails, the soft output value is set to: (SO = (W;
外部信息值为: =oso) - OS .;  The external information value is: = oso)-OS.;
针对上列算式, 采用外部信息值快速处理, 当 -模式搜索完毕, 可以 在 1 个时钟周期内并行完成所有《比特外部信息值的计算, 但是需要 2( + 2)·«比特存贮单元, b是软输入值量化比特数目, 其处理步骤如下: 按下式初始化两组深度为"、 宽度为 + 2或 ^ + 3, 其中扩展汉明码为 qb + 2, 扩展 BCH码为? b + 3的存贮单元 W和 Wim'; 初始化深度为"、 宽度为 1比特的标志字 flag, 且设 wmin =2?i+2- 1, failure = 1] For the above formula, the external information value is used for fast processing. When the-pattern search is completed, all the calculation of the bit external information value can be completed in parallel within 1 clock cycle, but 2 (+ 2 ) · «bit storage unit is required. b is the number of quantization bits of the soft input value, and the processing steps are as follows: Initialize the two sets of depth as ", width + 2 or ^ + 3, where the extended Hamming code is qb + 2, and the extended BCH code is b + 3 Memory cells W and Wim '; initialized to "" and width to 1-bit flag word, and set w min = 2 ? I + 2-1, failure = 1)
W{i) = 2"b+2-\ W {i) = 2 " b + 2- \
Winv{i) = 2q 2-\ , 0<i≤n W inv (i) = 2 q 2- \, 0 <i≤n
fl g{i) =  fl g (i) =
在子码译码过程中, 每找到一个 模式, 按下式更新 w、 W'w、 flag 和 wmin ' 并设 failure = 0: During the subcode decoding process, every time a pattern is found, the following formula is used to update w, W ' w , flag and w min' and set failure = 0:
fl gii) = , if i&Lq fl gii) =, if i & L q
W{i) = {Lq), if W i)>w{Lq) and ieLq W (i) = (L q ), if W i)> w (L q ) and ieL q
Winv{i) = {Lq), if Wi'n'{i)> (Lq) and HLq -模式搜索完毕后, 按下式计算外部信息值: W inv {i) = {L q ), if W i ' n '{i)> (L q ) and HL q -After the pattern search is completed, calculate the external information value according to the following formula:
if failure == 1 w,. = 0 for all Q≤i<n-\  if failure == 1 w ,. = 0 for all Q≤i <n- \
else if flag{i) == 0 w; = {2bt - 1) else if flag (i) == 0 w ; = (2b t -1)
else if W{i) > wn,n w{ =(W{i)-wmil,){(2bi一 1))-Λ ( ) else if W (i)> w n , n w { = (W (i) -w mil ,) {(2b i一 1))-Λ ()
else if Winv{i)≠2^2-l W;. )(l-2b;)- Λ(ζ.) else if W inv (i) ≠ 2 ^ 2 -l W;. ) (l-2b ; )-Λ ( ζ .)
else w. = βθ,-ΐ^) 式中 为二进制硬判决值。  else w. = βθ, -ΐ ^) where is a binary hard decision value.
一种基于伴随式的乘积码迭代译码装置, 其中包括: 输入输出模块、 伴随式计算模块、 选择排序模块、 -模式搜索模块、 外部信息值计算模块 和存贮模块;  An iterative decoding device based on an adjoint product code, which includes: an input-output module, an adjoint calculation module, a selection ordering module, a -pattern search module, an external information value calculation module, and a storage module;
输入数据及控制信号为输入输出模块的输入;  Input data and control signals are inputs to the input and output modules;
输入输出模块将输入数据存贮到存储模块中;  The input / output module stores the input data in the storage module;
输入输出模块向伴随式计算模块及选择排序模块输入数据;  The input / output module inputs data to the adjoint calculation module and the selection sorting module
伴随式计算模块、 选择排序模块及存贮模块分别向 q -模式搜索模块输 入数据; The adjoint calculation module, the selection sorting module and the storage module respectively input data to the q-pattern search module;
-模式搜索模块向外部信息值计算模块输入数据;  -The pattern search module inputs data to the external information value calculation module;
外部信息值计算模块反馈信号给输入输出模块;  The external information value calculation module feeds back signals to the input and output modules;
输入输出模块输出数据和状态信号。 所述的输入输出模块至少包括软输入值计算模块; The input and output modules output data and status signals. The input / output module includes at least a soft input value calculation module;
软输入值计算模块根据输入的软信息值 U和译码过程中产生的外部信 息值 w , 计算得出译码器每次迭代的软输入值 SI , 根据软输入值得出可靠 值 |si|和二进制硬判决序列 b。  The soft input value calculation module calculates the soft input value SI of each iteration of the decoder based on the soft information value U input and the external information value w generated during the decoding process, and the reliable value | si | and Binary hard decision sequence b.
所述的存储模块可包括: 数据存储双口 RAM、 伴随式表模块、 反伴随 式表模块;  The storage module may include: a data storage dual-port RAM, an accompanying table module, and an anti-adjoint table module;
输入输出模块将输入数据存贮到数据存贮双口 RAM 中; 伴随式表模块 和反伴随式表模块分别向所述的 q -模式搜索模块输入数据。  The input-output module stores the input data in the data storage dual-port RAM; the adjoint table module and the anti-adjoint table module respectively input data to the q-pattern search module.
本发明的有益效果为, 通过提供一种基于伴随式的乘积码迭代译码方法 及装置, 能够保证乘积码子码产生优化的码字列表, 并快速计算码字符号 输出软信息, 因而具有良好的译码性能和高的译码速度。 从而实现高速数 据通信。  The beneficial effect of the present invention is that, by providing an iterative decoding method and device for a product code based on an adjoint type, it is possible to ensure that the product code subcode generates an optimized codeword list, and quickly calculates a code character number to output soft information, thereby having good Decoding performance and high decoding speed. This enables high-speed data communication.
附图说明 图 1是二进制线性分组码译码方法流程图; BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a flowchart of a binary linear block code decoding method;
图 2是乘积码的译码方法流程图;  FIG. 2 is a flowchart of a decoding method of a product code;
图 3是本发明所述装置的硬件实现框图;  FIG. 3 is a hardware implementation block diagram of the device according to the present invention;
图 4是快速排序算法原理图;  Figure 4 is a schematic diagram of the quick sort algorithm;
图 5是对扩展 BCH码 [C(64,51,6)]2构成的乘积码进行 6次迭代译码时 的译码性能比较图。  Fig. 5 is a comparison diagram of the decoding performance when the product code formed by the extended BCH code [C (64,51,6)] 2 is decoded 6 times.
具体实施方式 detailed description
一种基于伴随式的乘积码迭代译码方法, 其具体实施方式为, 在对乘 积码进行迭代译码时, 需对乘积码的二进制子码进行译码, 且对所述二进 制子码进行的译码需满足伴随式对二进制线性分组码译码的条件; 得出软 输出值和外部信息值; 利用得到的软输出值和外部信息值实现任意迭代次 数的乘积码迭代译码。 如图 1 所示, 所述的伴随式对二进制线性分组码译 码的步骤包括: A method for iterative decoding of a product code based on an adjoint type, which is specifically implemented as follows: when iteratively decoding a product code, a binary subcode of the product code needs to be decoded, and The decoding needs to satisfy the conditions for the decoding of the binary linear block code with adjointness; obtain the soft output value and the external information value; use the obtained soft output value and the external information value to realize the iterative decoding of the product code with an arbitrary number of iterations. As shown in FIG. 1, the adjoint is used to decode binary linear block code The code steps include:
在步骤 1QQ, 译码方法开始。  At step 1QQ, the decoding method starts.
在步骤 101, 输入符号软输入值向量 SI。  In step 101, a symbol soft input value vector SI is input.
在步骤 102, 计算符号向量硬判决二进制序列 b。  In step 102, a symbol vector hard decision binary sequence b is calculated.
在步骤 103, 4艮据得到的硬判决二进制序列 b和相应的校验矩阵 H, 计 算伴随式向量 S=HbTIn step 103, according to the obtained hard decision binary sequence b and the corresponding check matrix H, an adjoint vector S = Hb T is calculated.
在步骤 104, 判断 S是否不等于 0。  In step 104, it is determined whether S is not equal to zero.
如果步骤 104的判断结果为 S不等于 0, 则过程进行到步驟 105, 否则 进行到步 112。  If the judgment result of step 104 is that S is not equal to 0, the process proceeds to step 105, otherwise proceeds to step 112.
在步骤 105, 标记软输入向量中 (通常≤«- 个最不可靠的符号位 置, 同时也是校验矩阵 H中权重最轻的列向量位置。  In step 105, mark the soft input vector (usually ≤ «-the most unreliable symbol positions, and also the lightest weighted column vector position in the check matrix H).
在步骤 106, 找出所有 /的 "模式及其位置集合 L, 满足伴随式条件In step 106, find all / of "patterns and their location set L, satisfying the adjoint condition
∑.ei h(.)≡S mod 2和位置条件^; ^ ο,Α,···, ^,^, xe{0,l,—,w— 1} , 其中 是校验矩阵 H的第 个列向量, 是软输入向量中 /个最不可靠的符号 位置之一。 ∑. Ei h ( .) ≡S mod 2 and position condition ^; ο, Α, ··, ^, ^, xe {0, l, —, w— 1}, where is the first The column vector is one of the least reliable symbol positions in the soft input vector.
在步骤 107, 判断是否找到 -模式。  In step 107, it is determined whether a-pattern is found.
如果步骤 107的判断结果为是, 即找到 -模式, 则过程进行到步骤 109, 否则进行到 108。  If the determination result of step 107 is yes, that is, a-pattern is found, the process proceeds to step 109, otherwise proceeds to 108.
在步驟 108, 即未找到 -模式的情况下, 置译码失败标志, 并转到步骤 113。  In step 108, that is, if the -mode is not found, the decoding failure flag is set, and the process proceeds to step 113.
在步骤 109, 计算 -模式的权重, 也就是说计算相应于校验矩阵 H的列 向量标号的集合 的权重 = 。 然后存贮这些权重值及相应的位
Figure imgf000010_0001
In step 109, the weight of the-pattern is calculated, that is, the weight corresponding to the set of column vector labels of the check matrix H is calculated. Then store these weight values and corresponding bits
Figure imgf000010_0001
置集合。 Home collection.
在步驟 110, 找出具有最小权重的集合 J,„。 在步驟 111, 对硬判决二进制序列 b中相应于集合 ^的位置的二进制符 号求补, 于是得到软判决译码码字 S At step 110, find the set J, with the smallest weight. At step 111, for the binary symbol corresponding to the position of the set ^ in the hard decision binary sequence b Complement the number, and thus obtain the soft decision decoding codeword S
在步骤 112, 硬判决二进制序列 b就是所要求的软判决译码码字 5 在步骤 113, 译码结束。  In step 112, the hard decision binary sequence b is the required soft decision decoding codeword 5. In step 113, the decoding ends.
如图 2所示, 基于伴随式乘积码迭代译码的步驟为:  As shown in Figure 2, the steps of iterative decoding based on the adjoint product code are:
在步骤 200, 译码方法开始。  At step 200, the decoding method starts.
在步骤 201, 从解调器输入每个符号的对数似然值, 并将这些接收符号 组成长度为《2的向量, 进而组成 X n2的阵列。 In step 201, the log-likelihood value of each symbol is input from the demodulator, and these received symbols are grouped into a vector of length < 2 to form an array of X n 2 .
在步骤 202, 设 i=0, 迭代次数 iter=0, w=0, η=ηι ( 是行子码的个数, η2是列子码的个数)及 dec—stop=l In step 202, set i = 0, the number of iterations, iter = 0, w = 0, η = ηι (the number of row subcodes and η 2 the number of column subcodes) and dec_stop = l
在步驟 203, 计算软输入值阵列 =^+ 其中 α是第 iter次迭代的 加权因子, 它考虑到样值 SI和 w的不同方差。  In step 203, calculate the soft input value array = ^ + where α is the weighting factor of the iter iteration, which takes into account the different variances of the sample values SI and w.
在步骤 204, 译码第 i行(或列)子码, 具体译码过程已经在图 1中详 细说明。  In step 204, the i-th row (or column) subcode is decoded. The specific decoding process has been described in detail in FIG.
在步骤 205, 判断 S是否不等于 0  In step 205, it is determined whether S is not equal to 0
如果步骤 205的判断结果为 S不等于 0, 则过程进行到步骤 206, 否则 进行到步驟 211  If the judgment result of step 205 is that S is not equal to 0, the process proceeds to step 206, otherwise proceeds to step 211
在步厥 206, 置 dec— stop=0  At step 206, set dec_stop = 0
在步骤 207, 判断是否置译码失败标志。  In step 207, it is determined whether a decoding failure flag is set.
如果步骤 207的判断结果为置译码失败标志, 则过程进行到步骤 213 否则进行到步驟 208  If the judgment result of step 207 is that the decoding failure flag is set, the process proceeds to step 213, otherwise proceeds to step 208
在迭代译码过程中, 计算某个符号的软输出值需要两个码字。 在步骤 204, 即图 1所示的流程图中, 如果子码译码成功, 就求出了其中的一个码 字, 记作 e以及与其相应的最小权重的位置集合 , e应用于所有码字符号 软输出值的计算。 如果对硬判决二进制序列 b中位置相应于其它位置集合 中的所有元素的二进制数求补, 可以求出一系列码字, 它们在软输出值 计算中是有用的。 在符号的软输出值计算中, 还需要求出另一个与 S相对 的码字, 对于第 J'个符号软输出值的计算, 要求这个码字的第 J'个符号与 e的第 J'个符号不同, 称其为 "j-竟争码字"。 如果在上述译码方法中存在 多个 "卜竟争码字,,, 则取相应位置集合 权重最小的码字, 记作 以及 与其相应的最小权重的位置集合 4。 软输出值计算如下: During the iterative decoding process, two codewords are required to calculate the soft output value of a symbol. In step 204, that is, in the flowchart shown in FIG. 1, if the decoding of the subcode is successful, one of the codewords is obtained, which is recorded as e and a position set corresponding to the minimum weight, and e is applied to all code characters. Calculation of No. soft output value. If the binary numbers of positions in the hard decision binary sequence b corresponding to all elements in the set of other positions are complemented, a series of codewords can be obtained, which are useful in the calculation of soft output values. In the calculation of the soft output value of the symbol, another For the calculation of the soft output value of the J'th symbol of the codeword, the J'th symbol of this codeword is required to be different from the J'th symbol of e, and it is called "j-competition codeword". If there are multiple "competitive contention codewords" in the above decoding method, then take the codeword with the smallest set of corresponding position weights, and record it as the corresponding minimum set of position weights 4. The soft output value is calculated as follows:
(SO)t =-( SI-(2cw-l) 2-||si-(2c-l (SO) t =-(SI- (2c w -l) 2- || si- (2c-l
4' 如果在上述译码方法中不存在 "j-竟争码字", 如当 s = o时, 则可认为 译码输出的可靠度较大, 软输出值可近似计算为:  4 'If there is no "j-competitive codeword" in the above decoding method, if s = o, it can be considered that the reliability of the decoding output is large, and the soft output value can be approximately calculated as:
{SO)j={SI)J+ {2cj-\) (SO) j = (SI) J + {2c j- \)
/?可以是一个常数, 也可以在译码过程中动态修正。 /? Can be a constant, or it can be dynamically modified during decoding.
如果子码译码失败, 设外部信息值 w =0; 其它情况, 外部信息值的计 算如下: If the subcode decoding fails, set the external information value w = 0; otherwise, the external information value is calculated as follows:
wJ=(SO)j-(SI)j w J = (SO) j- (SI) j
因此, 可以求出下一次迭代译码的软输入值如下: a是一个加权因子, 它是考虑到 SI和 w样本所具有的不同标准方差而 作出的爹正。  Therefore, the soft input value of the next iterative decoding can be obtained as follows: a is a weighting factor, which is a positive factor considering the different standard deviations of the SI and w samples.
基于上述分析, 在图 1所示的迭代译码流程图中, 在步骤 207之后, 执行以下步骤。  Based on the above analysis, in the iterative decoding flowchart shown in FIG. 1, after step 207, the following steps are performed.
在步骤 208, 从步骤 204的译码输出列中寻找 "j-竟争码字' '。  In step 208, look for "j-contest codeword '" from the decoded output column of step 204.
在步骤 209, 判断是否存在 "j-竟争码字"。  In step 209, it is determined whether "j-competitive codeword" exists.
如果步骤 209 的判断结果为存在" j-竟争码字 ", 则过程进行到步骤 210, 否则进行到步骤 212。  If the judgment result of step 209 is that "j-competition codeword" exists, the process proceeds to step 210, otherwise proceeds to step 212.
在步骤 210, 选择权重最小的11 j-竟争码字"。 In step 210, the selected smallest weight 11 j- competitive codeword. "
在步驟 211, 计算软输出值 (SO =( 。- ^,)(2 -1)。 在步骤 212, 计算软输出值 (SO);=0S . + (2 -l), 其中 是一个常数。 在步骤 213, 子译码失败, 设外部信息值 =0。 In step 211, calculate the soft output value (SO = (.-^,) (2 -1). At step 212, calculate the soft output value (SO) ; = 0S. + (2 -l), where is a constant. In step 213, the sub-decoding fails, and the external information value is set to 0.
在步骤 214, 计算外部信息值 w;=0SO) - (5¾。 In step 214, the external information value w; = 0SO)-(5¾) is calculated.
在步骤 215, 判断 i<n是否成立。  In step 215, it is determined whether i <n holds.
如果步骤 216 的判断结果为是, 则进行到步骤 215, 否则进行到步骤 If the judgment result of step 216 is yes, proceed to step 215, otherwise proceed to step
217。 217.
在步骤 216, i 自增 1, 然后返回到步 ¾ 204, 对输入阵列中其他的行 或列进行译码。  In step 216, i is incremented by one, and then returns to step ¾ 204 to decode other rows or columns in the input array.
在步驟 217, 判断 11=^是否成立, 即判断奇次或偶次迭代。  In step 217, it is judged whether 11 = ^ is true, that is, it is judged to be odd or even iteration.
如果步骤 217 的判断结果为是, 则进行到步骤 220。 否则, 进行到步 骤 218。  If the determination result of step 217 is YES, proceed to step 220. Otherwise, proceed to step 218.
在步珮 218, 判断 iter<Max— iter或 dec_stop=l是否成立, 即判断是 否达到预定的迭代次数和是否译码码字无错误。  In step 218, it is determined whether iter <Max—iter or dec_stop = 1, that is, whether it has reached a predetermined number of iterations and whether the decoded codeword is error-free.
如果步骤 218 的判断结果为是, 则进行到步驟 219。 否则, 进行到步 骤 221。  If the determination result of step 218 is YES, proceed to step 219. Otherwise, proceed to step 221.
在步骤 219, 则将 n赋值为 ηι。 并且将 i 赋值为 0, iter 自增 1, dec_stop=l, 转移到步骤 203。 In step 219, n is assigned a value of ηm . And set i to 0, increment iter by 1, dec_stop = l, and go to step 203.
在步驟 220, 则将 n赋值为 n2。 并且将 i 赋值为 0, 转移到步驟 203。 在步骤 221, 硬判输出译码软输出值阵列, 到步骤 222。 In step 220, n is assigned a value of n 2 . And set i to 0, and go to step 203. In step 221, the hard decision output decodes the soft output value array and proceeds to step 222.
在步骤 222, 迭代译码结束。  At step 222, the iterative decoding ends.
一种基于伴随式的乘积码迭代译码装置, 其中包括: 输入输出模块、 伴随式计算模块、 选择排序模块、 2-模式搜索模块、 外部信息值计算模块 和存贮模块; 输入数据及控制信号为输入输出模块的输入; 输入输出模块 将输入数据存贮到存储模块中; 输入输出模块向伴随式计算模块及选择排 序模块输入数据; 伴随式计算模块、 选择排序模块及存贮模块分别向 模 式搜索模块输入数据; -模式搜索模块向外部信息值计算模块输入数据; 外部信息值计算模块反馈信号给输入输出模块; 输入输出模块输出数据和 状态信号。 如图 3 所示: 图中黑色箭头表示数据流向。 译码器由输入输 出模块、 伴随式计算模块、 选择排序模块、 模式搜索模块、 外部信息 值计算模块和存贮模块组成。 各模块的功能描述如下: An iterative decoding method for product codes based on an adjoint type, which includes: an input-output module, an adjoint calculation module, a selection sorting module, a 2-mode search module, an external information value calculation module, and a storage module; input data and control signals Is the input of the input-output module; the input-output module stores the input data in the storage module; the input-output module inputs data to the adjoint calculation module and the selection sorting module; the adjoint calculation module, the selection sorting module and the storage module respectively enter the mode Search module input data;-pattern search module inputs data to external information value calculation module; The external information value calculation module feeds back signals to the input and output modules; the input and output modules output data and status signals. As shown in Figure 3: The black arrows in the figure indicate the data flow direction. The decoder consists of an input-output module, a companion calculation module, a selection sorting module, a pattern search module, an external information value calculation module, and a storage module. The functions of each module are described below:
输入数据和控制信号输入到译码器的输入输出 /控制模块 300 , 根据控 制信号初始化译码器的译码参数,根据线性分组码 的校验矩阵, 存 贝 έ纠单个错误的反伴随式表(伴随式所对应的错误位置, 如果该伴随式不 能定位单个错误, 则相应位置设为- 1 标志, 共需要「1ο ^·(2" - 1)比特) 和伴随式表(错误位置所对应的伴随式, 共需要《(«- /0比特); 将输入数据 存贮到数据存贮双口 RAM302中。 模块 300中的软输入值计算单元根据输入 的软信息值 11和译码过程中产生的外部信息值 w (初始译码时为 0 )计算得 出译码器每次迭代的软输入值 si。 根据软输入值得出可靠值 |si| (软输入值 的绝对值)和二进制硬判决序列 b。  The input data and control signals are input to the input / output / control module 300 of the decoder, and the decoding parameters of the decoder are initialized according to the control signals, and the anti-adjoint table of single errors is stored according to the check matrix of the linear block code. (The position of the error corresponding to the incident. If the incident cannot locate a single error, the corresponding position is set to the -1 flag, which requires a total of "1ο ^ · (2"-1) bits.) And the incident table (corresponding to the position of the error). A total of "(«-/ 0 bits) is required to store the input data; the input data is stored in the data storage dual-port RAM 302. The soft input value calculation unit in the module 300 is based on the input soft information value 11 and the decoding process. The generated external information value w (0 in initial decoding) is calculated to obtain the soft input value si of each iteration of the decoder. According to the soft input, a reliable value | si | (the absolute value of the soft input value) and binary hard Decision sequence b.
可靠值 |SI|输入到模块 304 , 找出 /个可靠值最小的位置集合 。,A, 该步骤是影响译码速度的关键步骤之一, 需要采用优化的 快速排序算法。 基于伴随式子码译码算法并不需要对整个软输入序列排序, 只需要选择 /个最不可靠的符号位置。 可以考虑采用简单的并行比较排序算 法。 通过对一些排序算法的分析, 这里发明了一种适合于硬件实现的二维 快速部分排序算法如图 4所示, 排序过程如下:  Reliable value | SI | is input to module 304 to find the location set with the smallest reliable value. A, This step is one of the key steps affecting the decoding speed, and an optimized fast sort algorithm needs to be adopted. The decoding algorithm based on the adjoint subcode does not need to sort the entire soft input sequence. It only needs to select the least reliable symbol position. Consider using a simple parallel comparison sort algorithm. Through the analysis of some sorting algorithms, a two-dimensional fast partial sorting algorithm suitable for hardware implementation is invented as shown in Figure 4. The sorting process is as follows:
首先将待排序的一维阵列构成一个二维阵列。 如 n=128 的子码软输入 序列可构成一个 8 x l6的二维阵列。 First, the one-dimensional array to be sorted is formed into a two-dimensional array. For example, a soft input sequence of n = 128 subcodes can form a two-dimensional array of 8 x l6 .
利用传统的并行比较排序算法, 首先对二维阵列的所有行同时排序, 然后对它的所有列同时排序。  Using a traditional parallel comparison sorting algorithm, all rows of a two-dimensional array are sorted simultaneously, and then all its columns are sorted simultaneously.
通过最多 /次比较就能够求出所需要的 /个最不可靠的符号位置。 对于 。二维阵列, 最多需要 +。 + Z个时钟周期就可完成所要求的排序。 例如, 设 128个输入数据 X= [ 30 7 19 15 28 24 14 0 26 14 19 25 29 5 12 29 29 13 28 1 11 26 0 4 6 6 19 8 6 0 23 14 29 14 1 3 27 16 6Through the comparison at most / times, the required / unreliable symbol positions can be found. for. Two-dimensional array, up to +. + Z clock cycles will complete the required sequencing. For example, suppose 128 input data X = [30 7 19 15 28 24 14 0 26 14 19 25 29 5 12 29 29 13 28 1 11 26 0 4 6 6 19 8 6 0 23 14 29 14 1 3 27 16 6
21 26 0 21 12 26 16 22 13 9 6 6 21 9 17 4 22 12 27 27 18 15 28 26 2021 26 0 21 12 26 16 22 13 9 6 6 21 9 17 4 22 12 27 27 18 15 28 26 20
26 21 10 9 10 17 23 9 26 18 11 22 17 14 22 19 25 30 16 28 5 31 8 826 21 10 9 10 17 23 9 26 18 11 22 17 14 22 19 25 30 16 28 5 31 8 8
28 23 4 0 28 6 9 21 9 15 2 31 18 13 16 10 1 3 7 18 24 16 20 6 12 25 21 14 18 25 1 19 1 13 9 27 0 24 31 31 25] , 表 1给出了上述快速部分 排序算法的排序结果。 从表 1 中通过简单的比较运算就能够找出 /个最小 值。 28 23 4 0 28 6 9 21 9 15 2 31 18 13 16 10 1 3 7 18 24 16 20 6 12 25 21 14 18 25 1 19 1 13 9 27 0 24 31 31 25], Table 1 shows the above rapid Sorting results of partial sorting algorithms. From Table 1, a simple comparison operation can be used to find the minimum value.
表 1 Table 1
Figure imgf000015_0001
Figure imgf000015_0001
二进制硬判决序列 b输入到模块 305 , 计算出它的伴随式 S。  The binary hard decision sequence b is input to the module 305 and its adjoint S is calculated.
位置集合 , Α, 和伴随式 S输入到模块 306 , 应用设计的 g-模式 搜索算法查伴随式表 307和反伴随式表 308找出所有满足条件的 -模式的 位置集合 , 满足伴随式条件和位置条件。 该步骤是影响译码速度的关键 步骤之一, 是子码伴随式译码的核心。 考虑到硬件结构, 为了便于高速译 码, 采用一种基于查表的高速硬件实现算法, 过程如下: 针对所求得的 /个 最不可靠符号位置, 确定其它 模式(^≤ί/ )。 如, 求 模式 = 2 ), 首 先查伴随式表确定/个最不可靠的符号位置集合中某个位置出错的伴随式 S,, 然后求 s^S®^, 最后由 82查反伴随式表确定错误位置, 如果位置标 志不为 - 1, 找到了一个 -模式 ( = 2 )。 不断重复, 找出所有满足译码步 驟 d条件的 -模式。The location set, Α , and the adjoint S are input to the module 306, and the g -pattern search algorithm designed by the application is used to look up the adjoint table 307 and the anti-adjoint table 308 to find the position set of all -patterns that satisfy the condition Location conditions. This step is one of the key steps affecting the decoding speed, and is the core of the subcode adjoint decoding. Considering the hardware structure, in order to facilitate high-speed decoding, a table-based high-speed hardware implementation algorithm is used. The process is as follows: For the obtained / reliable symbol positions, determine other modes (^ ≤ί / ). For example, find the pattern = 2), first check the adjoint table to determine the adjoint with a certain error in the least reliable symbol position set. S ,, then find s ^ S® ^, and finally check the anti-adjoint table by 8 2 to determine the error position. If the position flag is not -1, a-pattern is found (= 2). Repeat repeatedly to find all-patterns that meet the conditions of decoding step d.
-模式搜索过程中同时按下式初始化两组深度为 n、 宽度为 qbYl或 qb + 3 (扩展汉明码为 b + 2, 扩展 BCH 码为 qb + 3 ) 的存贮单元 W和 W'"1'; 初始化深度为 "、 宽度为 1比特的标志字 flag。 设 wniin = 2"b+2 -1 , failure = 1。 -During pattern search, simultaneously initialize two sets of storage units W and W 'with depth n and width qbYl or qb + 3 (extended Hamming code b + 2, extended BCH code qb + 3) " 1 '; Initialize flag flag with a depth of "1" and a width of 1 bit. Let w niin = 2 " b + 2 -1 and failure = 1.
W(i) = 2≠+2-l W (i) = 2 ≠ + 2 -l
Winv(i) = 2≠+2-l , 0≤i≤n 每找到一个 -模式, 按下式更新 W、 W'"v、 flag和 wniill。 并设 /a7wre = 0。 flag(i) = l, if i e Lq W inv (i) = 2 ≠ + 2 -l, 0≤i≤n Every time a-pattern is found, update W, W '" v , flag, and w niill as follows . And set / a7wre = 0. flag (i ) = l, if ie L q
W{i) = {Lq), if W{i)> {Lq) and ieLq W (i) = (L q ), if W (i)> (L q ) and ieL q
W"'v(i) = {Lq), if Winv(i) > {Lq) and i g Lq if wmin > {Lq) -模式搜索完毕后, W、 W'"v、 flag, „和_/¾½ 输入到外部信息计 算模块 309, 按下式并行计算出所有码字符号的外部信息值。 W "' v (i) = {L q ), if W inv (i)> {L q ) and ig L q if w min > {L q )-After the pattern search is completed, W, W'" v , flag , „And _ / ¾½ are input to the external information calculation module 309, and the external information values of all code character numbers are calculated in parallel according to the following formula.
if failure = 1 wi = 0 for all 0≤i≤n-l if failure = 1 w i = 0 for all 0≤i≤nl
else if flag(i) == 0 wt = β{2^ -1)else if flag (i) == 0 w t = β (2 ^ -1)
le if W{i)>w^n -Wmin) ((2b,. -1))-Λ(.) le if W (i)> w ^ n - Wmin ) ((2b ,. -1))-Λ (.)
elseif Wim{i)≠VM-\ wt =(W"V ^-w^il-lb^-A^) elseif W im {i) ≠ V M- \ w t = (W " V ^ -w ^ il-lb ^ -A ^)
else = ^(1-26;)  else = ^ (1-26;)
式中 为二进制硬判决值。  Where is the binary hard decision value.
外部信息值计算完成后输入到模块 300, 写入到外部信息值存贮双口 RAM 302中。  After the external information value calculation is completed, it is input to the module 300 and written into the external information value storage dual-port RAM 302.
模块 300 的控制单元根据输入控制信息和译码状态确定行子码和列子 码译码, 并启动和终止译码过程。  The control unit of the module 300 determines the row subcode and column subcode decoding according to the input control information and the decoding status, and starts and terminates the decoding process.
仿真结果: 这里给出以扩展 BCH 码 C(64,51,6)为子码的乘积码 [C(64,51,6)f、 采用 BPSK调制在加性白高斯信道下的仿真结果。 首先将确定 迭代译码方法的一些参数。 Simulation results: Here is a product code with the extended BCH code C (64,51,6) as the subcode [C (64,51,6) f. Simulation results using BPSK modulation on an additive white Gaussian channel. First, some parameters of the iterative decoding method will be determined.
比例因子 在仿真中, 外部信息值 |w|不需要归一化, 比列因子 α = 0.5。 Scale factor In the simulation, the external information value | w | does not need to be normalized, and the column factor α = 0.5.
可靠度因子 : 在每一次迭代译码过程中, 固定 不变。 但是随着迭 代次数的增加, 按下式改变: 浮点仿真 ? = 0.2 + 0.2 , 硬件译码装置中 ^ = 6 + 6 , ί表示半次迭代的数量(一次完整的迭代包含一次行迭代和一次 列迭代, 半次迭代指一次行迭代或一次列迭代)。  Reliability factor: It is fixed during each iterative decoding process. However, as the number of iterations increases, the following formula changes: Floating-point simulation? = 0.2 + 0.2, ^ = 6 + 6 in the hardware decoding device, ί represents the number of half iterations (one complete iteration includes one row iteration and One column iteration, half iteration refers to one row iteration or one column iteration).
图 5是对扩展 BCH码 [C(64,51,6)]2构成的乘积码进行 6次迭代译码时图 Figure 5 is a diagram of the 6-item decoding of the product code formed by the extended BCH code [C (64,51,6)] 2
2所示的方法浮点和图 3所示的硬件译码性能比较图。 在图 5 中, 纵坐标 为误比特率 (BER ), 横坐标为比特能量信噪比 (Eb/N0 )。 图中给出了本发 明釆用不同译码参数 1 的译码性能比较, 以及它们与硬件译码器的性能比 较, 在 BER-10- 6和 10- 7时, 硬件译码器的性能与 12、 13 的浮点仿真结果 仅差 0. 2dB。 The method shown in Figure 2 is compared with the hardware decoding performance shown in Figure 3. In FIG. 5, the ordinate is the bit error rate (BER), and the abscissa is the bit energy signal-to-noise ratio (Eb / N0). The figure shows a comparison of the present invention preclude different coding decoding performance parameter 1, and compare them with the performance of the hardware decoder, the BER-10- 6 7 and when 10-, and the performance of the hardware decoder The floating-point simulation results of 12, 13 are only 0.2 dB worse.
下面给出图 3所示的迭代译码器译码的一个实例。  An example of the iterative decoder decoding shown in FIG. 3 is given below.
以扩展汉明码 C (8, 4, 4)为子码的乘积码 [C (8, 4, 4)]2为例简要说明算法的 工作过程。 子码的生成多项式为: (1 + x + x2) , 生成 C(7, 4,3)汉明码加上一个 全校验比特构成扩展汉明码 C(8, 4, 4), 表 2 是扩展汉明码 C(8, 4, 4)的校验矩 阵。 表 3和表 4是由扩展汉明码 C(8, 4, 4)的校验矩阵而得到的伴随式表和反 伴随式表。 表 2 The product code [C (8, 4, 4)] 2 of the extended Hamming code C (8, 4, 4) as a subcode is taken as an example to briefly explain the working process of the algorithm. The generator polynomial of the subcode is: (1 + x + x 2 ). Generate the C (7, 4, 3) Hamming code plus a full check bit to form the extended Hamming code C (8, 4, 4). Table 2 is Check matrix for extended Hamming code C (8, 4, 4). Tables 3 and 4 are the adjoint tables and anti-adjoint tables obtained by extending the check matrix of the Hamming code C (8, 4, 4). Table 2
0 1 2 3 4 5 6 7  0 1 2 3 4 5 6 7
0 1 0 1 1 1 0 0 0  0 1 0 1 1 1 0 0 0
1 1 1 1 0 0 1 0 0  1 1 1 1 0 0 1 0 0
2 0 1 1 1 0 0 1 0  2 0 1 1 1 0 0 1 0
3 1 1 1 1 1 1 1 1 表 33 1 1 1 1 1 1 1 1 table 3
Figure imgf000018_0001
Figure imgf000018_0001
表 4
Figure imgf000018_0002
表 5是乘积码 [C(8,4,4)]2编码后的码字矩阵。
Table 4
Figure imgf000018_0002
Table 5 is the codeword matrix after the product code [C (8,4,4)] 2 is coded.
表 5 table 5
Figure imgf000018_0003
Figure imgf000018_0003
如表 5所示, 乘积码编码后的码字矩阵是一个 8X8矩阵, 它的 G到 3 行和 G到 3列所构成的 4X4子矩阵为输入信息比特, 每一行和每一列都是 一个 C(8, 4, 4)扩展汉明码字。表 2中的码字矩阵输出到调制器, 并发射出来。 在接收端, 收到经过噪声干扰的码字矩阵, 即乘积码 [C(8,4,4)]2接收码 字矩阵, 如表 6所示。 As shown in Table 5, the codeword matrix encoded by the product code is an 8X8 matrix, and its 4X4 sub-matrix composed of G to 3 rows and G to 3 columns is the input information bit, and each row and each column is a C (8, 4, 4) Extended Hamming codeword. The codeword matrix in Table 2 is output to the modulator and transmitted. At the receiving end, the noise-received codeword matrix, that is, the product code [C (8,4,4)] 2, is received, as shown in Table 6.
表 6  Table 6
Figure imgf000019_0001
例如首先进行行译码。
Figure imgf000019_0001
For example, row decoding is performed first.
表 6中第一行的硬判决二进制序列为(1 1 1 1 1 1 1 1) , 计算其伴随 式向量为(0 0 0 0) , 即 s=o, 接收序列中可能没有错误, 立即选择硬判决 二进制序列作为输出码字, 不需要计算任何其它 "竟争码字"。 码字中外部 信息值近似为(6 6 6 6 6 6 6 6) , 此时 ^取值为 6, 软输出信息值向量为 ( 21 37 37 379 35 31 37 )。 表 6中第二行的硬判决二进制序列为(0 0 1 0 1 1 1 0) , 计算其伴随式向量为(0 0 0 0) , 即 S=0, 接收序列中可能 没有错误, 立即选择硬判决二进制序列作为输出码字, 不需要计算任何其 它 "竟争码字"。 码字中外部信息值近似为(-6 -6 6 -6 6 6 6 -6) , 此时 取值为 6, 软输出信息值向量为 (- 17 -18 21-3724 37 25 -37 )。 表 6 中第三行的硬判决二进制序列为(1 0 0 0 1 1 1 1) , 计算其伴随式向量为 (0 0 1 1) , 即 S[3]=l, 立即选择硬判决其接收序列中可能存在奇数个错 误,选择那些满足 |Z,.| = 1或 3的集合 Lj, 于是最多有 G) + ('2)个集合, 选 M, 首先通过排序算法找到权重最小的位置集合 {2, 6, 0, 4} , 找出符合条件 的 模式, 它们对应的错误位置是: (0 0 0 0 0 0 1 0)、 (1 0 1 0 0 0 0 1)、 (0 0 1 0 1 1 0 0)和 (1 1 0 0 1 0 0 0) , 这些 模式的权重 ^分 别是 6、 46、 49 和 54, 于是求出译码输出码字为(1 0 0 0 1. 1 0 1) , 计 算码字符号的外部信息值为(30 -17- 31- 6 30 12 -319) , 软输出信息值向 量为 (40 -48 -36 -2343 43 -2540 )。 The hard-decision binary sequence in the first row of Table 6 is (1 1 1 1 1 1 1 1), and its adjoint vector is calculated as (0 0 0 0), that is, s = o. There may be no errors in the received sequence. Select immediately The hard-decision binary sequence is used as the output codeword, and no other "competitive codeword" needs to be calculated. The external information value in the codeword is approximately (6 6 6 6 6 6 6 6). At this time, the value of ^ is 6 and the soft output information value vector is (21 37 37 379 35 31 37). The hard-decision binary sequence in the second row of Table 6 is (0 0 1 0 1 1 1 0), and its adjoint vector is calculated as (0 0 0 0), that is, S = 0. There may be no errors in the receiving sequence. Select immediately The hard-decision binary sequence is used as the output codeword, and no other "competitive codeword" needs to be calculated. The external information value in the codeword is approximately (-6 -6 6 -6 6 6 6 -6), and the value is 6 at this time, and the soft output information value vector is (-17 -18 21-3724 37 25 -37). The hard-decision binary sequence in the third row of Table 6 is (1 0 0 0 1 1 1 1), and its adjoint vector is calculated as (0 0 1 1), that is, S [3] = l, and the hard-decision is immediately selected for reception. There may be an odd number of errors in the sequence. Select those sets Lj that satisfy | Z ,. | = 1 or 3, so there are at most G) + (' 2 ) sets, choose M, and first find the set of positions with the smallest weight by the ranking algorithm. {2, 6, 0, 4}, find the patterns that meet the conditions, and their corresponding error locations are: (0 0 0 0 0 0 1 0), (1 0 1 0 0 0 0 1), (0 0 1 0 1 1 0 0) and (1 1 0 0 1 0 0 0), the weights of these modes are 6, 46, 49, and 54, respectively, so the decoded output codeword is (1 0 0 0 1. 1 0 1), count The external information value of the arithmetic character number is (30 -17- 31- 6 30 12 -319), and the soft output information value vector is (40 -48 -36 -2343 43 -2540).
其它各行依次计算。 所有行译码后的外部信息值阵列见表 7。 软输出 信息值阵列见表 8。
Figure imgf000020_0001
取《=8/16 , 计算乘积码 [C (8, 4, 4)]2第一次列译码的软输入值阵列见表 9。 表 9
The other rows are calculated sequentially. See Table 7 for the external information value array after all rows are decoded. See Table 8 for the soft output information value array.
Figure imgf000020_0001
Take "= 8/16, calculate the product code [C (8, 4, 4)] 2 The soft input value array of the first column decoding is shown in Table 9. Table 9
Figure imgf000020_0002
列译码过程同行译码。 列译码后的外部信息值阵列见表 10, 软输出信息值 阵列见表 10。 表 10
Figure imgf000020_0002
Column decoding process peer decoding. The external information value array after column decoding is shown in Table 10, and the soft output information value array is shown in Table 10. Table 10
Figure imgf000021_0001
Figure imgf000021_0001
表 11 Table 11
Figure imgf000021_0002
Figure imgf000021_0002
此时完成了一次完整的迭代译码。  At this point, a complete iterative decoding is completed.
重复上述行译码和列译码过程, 得到第 2 次迭代的译码软输出值阵列 如表 12。 在第 2次迭代中, 列子码和行子码的译码过程中, 所有计算得到 的伴随式 S都为 0, 因此, 译码器自动终止译码过程。  Repeat the above row decoding and column decoding process to obtain the decoded soft output value array of the second iteration, as shown in Table 12. In the second iteration, during the decoding process of the column subcode and the row subcode, all the calculated adjoint S are 0. Therefore, the decoder automatically terminates the decoding process.
表 12 Table 12
Figure imgf000021_0003
Figure imgf000021_0003
对照表 5和表 12的符号判决, 本发明的译码结果完全正确。  With reference to the symbol decisions in Tables 5 and 12, the decoding results of the present invention are completely correct.
以上具体实施方式仅用于说明本发明, 而非用于限定本发明。  The above specific implementations are only used to illustrate the present invention, but not intended to limit the present invention.

Claims

权 利 要 求 Rights request
1. 一种基于伴随式的乘积码迭代译码方法, 其特征在于, 在对乘积码 进行迭代译码时, 需对乘积码的二进制子码进行译码, IL对所述二进制子 码进行的译码需满足伴随式对二进制线性分组码译码的条件; 得出软输出值和外部信息值; 利用得到的软输出值和外部信息值实现 任意迭代次数的乘积码迭代译码。  1. An iterative decoding method for a product code based on an adjoint type, characterized in that when iteratively decoding a product code, a binary subcode of the product code needs to be decoded, and The decoding needs to satisfy the conditions for the decoding of the binary linear block code with adjointness; obtain the soft output value and the external information value; use the obtained soft output value and the external information value to realize the iterative decoding of the product code with any iteration number.
2. 根据权利要求 1所述的方法, 其特征在于, 所述的需对乘积码的二 进制子码进行译码是指: 对乘积码的二进制行子码和列子码进行译码。 2. The method according to claim 1, wherein the decoding of the binary subcode of the product code means: decoding the binary row subcode and column subcode of the product code.
3. 根据权利要求 1所述的方法, 其特征在于, 所述的伴随式对二进制 线性分组码译码的条件包括:  3. The method according to claim 1, wherein the conditions for the decoding of the binary linear block code by the adjoint method include:
输入符号向量的软输入值 SI;  Soft input value SI of the input symbol vector;
计算符号向量的硬判决二进制序列 b;  Compute a hard decision binary sequence b of a symbol vector;
根据得到的硬判决二进制序列 b和相应的校验矩阵 H, 得到伴随式向 量 S=HbT; According to the obtained hard decision binary sequence b and the corresponding check matrix H, the adjoint vector S = Hb T is obtained ;
如果 S = 0, 硬判决二进制序列即为软判决译码码字 £ , 译码结束; 标记软输入向量中 7个最不可靠的符号位置, 同时也是校验矩阵 H中 权重最轻的列向量位置, 其中 /≤M - /C ; If S = 0, the hard-decision binary sequence is the soft-decision decoded code word £, and the decoding ends; mark the 7 least reliable symbol positions in the soft input vector, and also the lightest-weight column vector in the check matrix H Position, where / ≤M-/ C ;
找出所有 ≤c /的 ^ "模式及其位置集合 , 满足伴随式条件  Find all ^ "patterns ≤" c / and their position set, satisfy the adjoint condition
(∑/ei,h')≡S mod 和位置条件^;^ ^^, ,…,;^^ , Λ- 6 {0,1,·· ·, 72 -1} , 其中 h;是校验矩阵 H的第 /个列向量, A是软输入向量中 7个最不可靠的符号 位置之一; (∑ / ei , h ') ≡S mod and positional conditions ^; ^^^,, ...,; ^^, Λ- 6 {0,1, ··, 72 -1}, where h ; is the check The / column vector of the matrix H, A is one of the 7 least reliable symbol positions in the soft input vector;
如果未找到 -模式, 置译码失败标志, 译码结束;  If the -mode is not found, the decoding failure flag is set and the decoding ends;
计算 -模式的权重, 即计算相应于校验矩阵 H的列向量标号的集合 的权重 , 然后存贮这些权重值及相应的位置集合; Calculate the weight of the pattern, that is, calculate the weight corresponding to the set of column vector labels of the check matrix H, and then store these weight values and the corresponding set of positions;
Figure imgf000022_0001
找出具有最小权重的集合 A„;
Figure imgf000022_0001
Find the set A with the smallest weight;
对硬判决二进制序列 b 中相应于集合 Α,,的位置的二进制符号求补, 得 到软判决译码码字 £, 译码结束。  The binary symbols corresponding to the positions of the set A ,, in the hard decision binary sequence b are complemented to obtain the soft decision decoding code word £, and the decoding is completed.
4. 根据权利要求 1所述的方法, 其步骤包括:  4. The method according to claim 1, comprising the steps of:
在对乘积码进行迭代译码时, 需对乘积码的二进制行子码和列子码进 行译码, 且需满足下列条件:  When iteratively decoding a product code, the binary row and column subcodes of the product code need to be decoded, and the following conditions must be met:
输入符号向量的软输入值 SI;  Soft input value SI of the input symbol vector;
计算符号向量的硬判决二进制序列 b;  Compute a hard decision binary sequence b of a symbol vector;
根据得到的硬判决二进制序列 b和相应的校验矩阵 H, 得到伴随式向 量 S=HbT; According to the obtained hard decision binary sequence b and the corresponding check matrix H, the adjoint vector S = Hb T is obtained ;
如果 S = 0, 硬判决二进制序列即为软判决译码码字 £, 译码结束; 找到软输入向量中 7个最不可靠的符号位置, 同时也是校验矩阵 H中 权重最轻的列向量位置, 其中 /≤M-/C;  If S = 0, the hard-decision binary sequence is the soft-decision decoded code word £, and the decoding ends; find the 7 least reliable symbol positions in the soft input vector, and also the lightest weighted column vector in the check matrix H Position, where / ≤M- / C;
找出所有 的 -模式及其位置集合 , 满足伴随式条件  Find all the -patterns and their set of locations that satisfy the adjoint condition
(∑,'e,h'.)S mod 和位置条件 ;^ ^。, ^'…,/^, , xe{0,l,,..,"_l}, 其中 h,.是校验矩阵 H的第 i个列向量, 是软输入向量中 1个最不可靠的符号 位置之一; (∑, ' e , h '.) S mo d and position condition; ^ ^. , ^ '…, / ^,, Xe {0, l ,, .., "_ l}, where h ,. is the ith column vector of the check matrix H, and is one of the least reliable of the soft input vectors One of the symbol positions
如果未找到 -模式, 置译码失败标志, 译码结束;  If the -mode is not found, the decoding failure flag is set and the decoding ends;
计算 -模式的权重, 即计算相应于校验矩阵 H的列向量标号的集合/ 的权重^. =∑^|(<¾¾| , 然后存贮这些权重值及相应的位置集合;  Calculate the weights of the pattern, that is, calculate the weights corresponding to the set of column vector labels of the check matrix H /. ^. = ∑ ^ | (<¾¾ |, and then store these weight values and corresponding position sets;
找出具有最小权重的集合 „,;  Find the set with the smallest weight
对硬判决二进制序列 b 中相应于集合 的位置的二进制符号求补, 得 到软判决译码码字 e, 译码结束;  Complement the binary symbols corresponding to the positions of the set in the hard decision binary sequence b to obtain the soft decision decoding codeword e, and the decoding ends;
得出软输出值和外部信息值的步骤为:  The steps for deriving the soft output value and external information value are:
在 S不等于 0且未置译码失败标记时, 从上述子码译码的输出列中寻 找 Ί-竟争码字"; When S is not equal to 0 and no decoding failure flag is set, it is searched from the output column of the above subcode decoding. Look for Ί-competition code word ";
在不存在 " j-竟争码字", 或者 S = 0 时, 计算软输出值 Calculate soft output value when "j-competitive codeword" does not exist, or S = 0
{SO)i
Figure imgf000024_0001
, 其中 /?是一个常数, / 是第 J'个符号的软输入值, 首次迭代时, siw .是解调器输出的软信息值; 其他迭代时, (SI)j =Uj +awj , 计算外部信息值 1 = (SO)J-(SI)J;
(SO) i
Figure imgf000024_0001
Where /? Is a constant, / is the soft input value of the J'th symbol, and siw. Is the soft information value output by the demodulator at the first iteration; (SI) j = Uj + awj at other iterations, calculate External information value 1 = (SO) J- (SI) J;
在存在 "j-竟争码字" 时, 选择权重最小的" j-竟争码字", 计算软输 出值 (SO),. =(ψ0 -^„)(2c.-l) , 计算外部信息值 =0SO) -0S/ ; When "j-competition codeword" exists, select "j-competition codeword" with the smallest weight, and calculate the soft output value (SO),. = (Ψ 0- ^ „) (2c.-l), calculate External information value = 0SO) -0S /;
在上述子码译码过程中已置译码失败标记时, 计算外部信息值 W =0; 利用得出的软输出值和外部信息值, 对其他行子码或列子码进行译码; 待所有行子码译码完毕后 , 利用新的外部信息值构成新的软输入值译码所 有列子码; 行子码和列子码交替译码实现任意迭代次数的乘积码迭代译码。 When a decoding failure flag is set in the above-mentioned subcode decoding process, the external information value W = 0 is calculated; using the obtained soft output value and external information value, other row subcodes or column subcodes are decoded; After the row subcode is decoded, the new external information value is used to form a new soft input value to decode all column subcodes. The row subcode and column subcode are alternately decoded to implement iterative decoding of the product code for any number of iterations.
5. 根据权利要求 4所述的方法, 其特征在于, 所述的找到软输入向量 中 1个最不可靠的符号位置是指: 可采用适合硬件实现的二维快速部分排 序法找到软输入向量中 个最不可靠的符号位置, 其步骤包括:  5. The method according to claim 4, wherein the finding one of the most unreliable symbol positions in the soft input vector refers to: finding a soft input vector using a two-dimensional fast partial sorting method suitable for hardware implementation. Among the most unreliable symbol positions, the steps include:
首先将待排序的一维阵列构成一个二维阵列, 如 n=128 的子码软输入 序列可构成一个 8xi6的二维阵列; First, the one-dimensional array to be sorted constitutes a two-dimensional array. For example, a soft input sequence of subcodes of n = 128 can form a two-dimensional array of 8 × i6.
利用传统的并行比较排序法, 首先对二维阵列的所有行同时排序, 然 后对它的所有列同时排序;  Using the traditional parallel comparison sorting method, all rows of a two-dimensional array are sorted at the same time, and then all its columns are sorted at the same time.
通过最多 /次比较就能够得出所需要的 Z个最不可靠的符号位置; 对于 xo二维阵列, 最多需要; + 0 + /个时钟周期就可完成所要求的排序。  The most unreliable Z symbol positions can be obtained through a maximum of / times of comparison; for a xo two-dimensional array, a maximum of; + 0 + / clock cycles can complete the required ordering.
6. 根据权利要求 4所述的方法, 其特征在于, 所述的找出所有 的 模式及其位置集合 , 满足伴随式条件 ( ^h,.)S mod 2和位置条件是 指: 采用基于查表的高速硬件实现步骤如下: 6. The method according to claim 4, characterized in that the finding all patterns and their position set, satisfying the adjoint condition (^ h ,.) S mod 2 and the position condition means: The high-speed hardware implementation steps of the look-up table are as follows:
在译码前, 根据线性分组码 的校验矩阵, 存贮纠单个错误的 反伴随式表和伴随式表, 其中: 伴随式所对应的错误位置, 如果该伴随式 不能定位单个错误, 则相应位置设为- 1 标志, 共需要「1^4(2" -1)比特; 错误位置所对应的伴随式, 共需要 — 比特; Before decoding, an anti-adjoint table and a companion table for correcting single errors are stored according to the check matrix of the linear block code, where: the error position corresponding to the adjoint, if the adjoint If a single error cannot be located, the corresponding position is set to the -1 flag, which requires a total of "1 ^ 4 (2" -1) bits; the companion corresponding to the error position requires a total of-bits;
根据得到的伴随式 s 查反伴随式表确定单个错误位置, 如果位置标志 不为 -1, 找到了一个 -模式, 其中: q = l; 否则, 表示有多个位置出错; 针对得到的 /个最不可靠符号位置, 确定其它 模式, 其中^^ 当求 模式, 其中 = 2时, 首先查伴随式表确定 /个最不可靠的符号 位置集合中某个位置出错的伴随式 Sl 5 然后求 S^S®^ , 最后由 S2查反伴 随式表确定错误位置, 如果位置标志不为- 1, 找到了一个 -模式( =2 ), 当 取满足条件的不同值时,重复上面步驟便可找出所有满足译码条件的 - 模式。 According to the obtained adjoint s, check the anti-adjoint table to determine the single error position. If the position flag is not -1, a-pattern is found, where: q = l; otherwise, it means that there are multiple position errors; For the most unreliable symbol position, determine other patterns, where ^^ When the pattern is found, where = 2, first check the adjoint table to determine the adjoint S 1 5 with an error in a certain position in the least reliable symbol position set, and then find S ^ S® ^, S 2 trans finally verified by the syndrome table to determine a position error, if the position flag is not - 1, to find a - mode (= 2), when taken to meet the different values of the condition, the above steps will be repeated You can find all-patterns that satisfy the decoding conditions.
7. 根据权利要求 4所述的方法, 其特征在于, 所述的得出软输出值和 外部信息值的步驟可进一步包括:  7. The method according to claim 4, wherein the step of deriving a soft output value and an external information value further comprises:
若找到 " 竟争码字,,, 软输出值为: Ο^) ^^)-^^)]^.-1); 如果子码译码时不能找到 "广竟争码字", 则, 软输出值近似计算为: If a "competitive codeword" is found, the soft output value is: Ο ^) ^^)-^^)] ^ .- 1 ); If the "competitive codeword" cannot be found when decoding the subcode, then, The soft output value is approximately calculated as:
(S0)j =(SI)J+fi(2cJ-l) 若子码译码失败, 软输出值设为:
Figure imgf000025_0001
(S0) j = (SI) J + fi (2c J -l) If the subcode decoding fails, the soft output value is set to:
Figure imgf000025_0001
外部信息值为: . =(SO) - (57) ;  The external information values are:. = (SO)-(57);
针对上列算式, 采用外部信息值快速处理, 当 模式搜索完毕, 可以 在 1 个时钟周期内并行完成所有 "比特外部信息值的计算, 但是需要 2(^ + 2).«比特存贮单元, 是软输入值量化比特数目, 其处理步驟如下: 按下式初始化两组深度为"、 宽度为 ^ + 2或 + 3, 其中扩展汉明码为 qb + 2 , 扩展 BCH码为^ + 3的存贮单元 W和 W'"v; 初始化深度为《、 宽度为 1比特的标志字 flag , 且设 wmin = 2≠+2 - 1, failure = 1; For the above formula, the external information value is used for fast processing. When the pattern search is completed, all "bit external information value calculations can be completed in parallel within 1 clock cycle, but 2 (^ + 2).« Bit storage unit, Is the number of quantized bits of the soft input value, and its processing steps are as follows: Initialize the two sets of depth "", width ^ + 2 or + 3, where the extended Hamming code is qb + 2 and the extended BCH code is ^ + 3 Storage units W and W '"v; flag word flag with an initial depth of 1 and a width of 1 bit, and set w min = 2 ≠ + 2-1, failure = 1;
Winv(i) = 2≠+2-l , 0≤i≤n W inv (i) = 2 ≠ + 2 -l, 0≤i≤n
fl g(i) = 0 在子码译码过程中, 每找到一个 模式, 按下式更新 w、 W'"v、 flag 和 ' 并设 failure = 0: fl g (i) = 0 In the subcode decoding process, every time a pattern is found, update w, W '" v , flag, and' and set failure = 0 as follows:
fl gii) = \, if ieLq fl gii) = \, if ieL q
W{i) = {Lq), if W{i)> (Lq) and i Lq
Figure imgf000026_0001
wmill = {Lq), if wmin > {Lq)
W (i) = (L q ), if W (i)> (L q ) and i L q
Figure imgf000026_0001
w mill = (L q ), if w min > (L q )
-模式搜索完毕后, 按下式计算外部信息值:  -After the pattern search is completed, calculate the external information value according to the following formula:
if failure == 1 w; = 0 for all Q≤i≤n-\ if failure == 1 w ; = 0 for all Q≤i≤n- \
else if flagii) == 0 wt = β(2^一 1)else if flagii) == 0 w t = β (2 ^ 一 1)
lse if W{i)>wmin W; =( (!·)- Wmin) ((2b,. -1))-Λ(ζ.) lse if W (i)> w min W; = ((! ·) -Wmin ) ((2b ,. -1))-Λ ( ζ .)
else if Winv (i)≠ 2"b+2 - 1 wt= (winv (,:) - w^n ) (1 - 2b,)- A {η ) else if W inv (i) ≠ 2 " b + 2-1 w t = (w inv (, :)-w ^ n ) (1-2b,)-A (η)
else w. = β(1-2^) 式中 έ,.为二进制硬判决值。 else w . = β (1-2 ^) where έ ,. is a binary hard decision value.
8. 根据权利要求 4所述的方法, 其步骤可进一步包括:  8. The method according to claim 4, further comprising:
所述的找到软输入向量中 1个最不可靠的符号位置是指: 可采用适合 硬件实现的二维快速部分排序法找到软输入向量中 1个最不可靠的符号位 置, 其步骤包括:  The finding the most unreliable symbol position in the soft input vector refers to: The two-dimensional fast partial sorting method suitable for hardware implementation can be used to find the most unreliable symbol position in the soft input vector. The steps include:
首先将待排序的一维阵列构成一个二维阵列, 如 η=128 的子码软输入 序列可构成一个 8 x i 6的二维阵列; First, the one-dimensional array to be sorted constitutes a two-dimensional array. For example, a soft input sequence of subcodes of η = 128 can form a two-dimensional array of 8 x i 6 ;
利用传统的并行比较排序法, 首先对二维阵列的所有行同时排序, 然 后对它的所有列同时排序;  Using the traditional parallel comparison sorting method, all rows of a two-dimensional array are sorted at the same time, and then all its columns are sorted at the same time.
通过最多/次比较就能够得出所需要的 /个最不可靠的符号位置; 对于 Χ0二维阵列, 最多需要^ + 0 + /个时钟周期就可完成所要求的排序; The required / most unreliable symbol positions can be obtained through the most / times comparison; for the X 0 two-dimensional array, it takes a maximum of ^ + 0 + / clock cycles to complete the required sorting;
所述的找出所有 ≤^ 的 -模式及其位置集合 , 满足伴随式条件 (∑^h,.)S mod 2和位置条件是指: 采用基于查表的高速硬件实现步驟如 下: The finding of all-patterns of ≤ ^ and their position set, satisfying the adjoint condition (Σ ^ h ,.) S mod 2 and the position condition means: The implementation steps using high-speed hardware based on look-up table are as follows:
在译码前, 根据线性分组码 C(n,/^)的校验矩阵, 存贮纠单个错误的 反伴随式表和伴随式表, 其中: 伴随式所对应的错误位置, 如果该伴随式 不能定位单个错误, 则相应位置设为- 1 标志, 共需要「10 4(2"-/ - 1)比特; 错误位置所对应的伴随式, 共需要 — 比特; Before decoding, according to the check matrix of the linear block code C (n, / ^), Anti-adjoint tables and adjoint tables, where: the error position corresponding to the adjoint, if the adjoint cannot locate a single error, the corresponding position is set to the -1 flag, a total of "1 0 4 (2"- / -1 ) Bits; the companion corresponding to the error position requires a total of-bits;
根据得到的伴随式 s查反伴随式表确定单个错误位置, 如果位置标志 不为- 1, 找到了一个 -模式, 其中: g=i; 否则, 表示有多个位置出错; 针对得到的 /个最不可靠符号位置, 确定其它 -模式, 其中 ≤ί ; According to the obtained adjoint s, check the anti-adjoint table to determine the single error position. If the position flag is not -1, a-pattern is found, where: g = i; otherwise, it means that there are multiple position errors; The least reliable symbol position, determine other-patterns, where ≤ί ;
当求 模式, 其中 =2时, 首先查伴随式表确定 /个最不可靠的符号 位置集合中某个位置出错的伴随式 Sl 5 然后求 s^s®^, 最后由 s2查反伴 随式表确定错误位置, 如果位置标志不为- 1, 找到了一个 模式( =2 ), 当 取满足条件的不同值时,重复上面步骤便可找出所有满足译码条件的? - 模式; When finding the pattern, where = 2, first look at the adjoint table to determine the adjoint S l 5 that has an error in a certain position in the most unreliable set of symbol positions, then find s ^ s® ^, and finally check the adjoint by s 2 The formula table determines the error position. If the position flag is not-1, a pattern is found (= 2). When taking different values that meet the conditions, repeat the above steps to find all that satisfy the decoding conditions? -Mode;
所述的得出软输出值和外部信息值的步驟可进一步包括:  The step of deriving the soft output value and the external information value may further include:
若找到 ' -竟争码字", 软输出值为:
Figure imgf000027_0001
If '-competitive codeword "is found, the soft output value is:
Figure imgf000027_0001
如果子码译码时不能找到 " _竟争码字", 则, 软输出值近似计算为: {SO)J=(SI)j+ (2cj-\); 若子码译码失败, 软输出值设为: (SO)j =(SI)J; 外部信息值为: ^=(SC¾- (57);If "_competitive codeword" cannot be found during subcode decoding, the soft output value is approximately calculated as: {SO) J = (SI) j + (2c j- \); if the subcode decoding fails, soft output value is set to: (SO) j = (SI ) J; external information is: ^ = (SC¾- (57) ;;
针对上列算式, 采用外部信息值快速处理, 当 模式搜索完毕, 可以 在 1 个时钟周期内并行完成所有《比特外部信息值的计算, 但是需要 2( δ + 2).Μ比特存贮单元, 是软输入值量化比特数目, 其处理步骤如下: 按下式初始化两组深度为 π、 宽度为 b + 2或 + 3, 其中扩展汉明码为 qb + 2 , 扩展 BCH码为 + 3的存贮单元 W和 W'"v; 初始化深度为 π、 宽度为For the above formula, the external information value is used for fast processing. When the pattern search is completed, all calculations of the bit external information value can be completed in parallel within 1 clock cycle, but 2 (δ + 2). Is the number of quantized bits of the soft input value. The processing steps are as follows: Initialize the two sets of storages with a depth of π and a width of b + 2 or + 3, where the extended Hamming code is qb + 2 and the extended BCH code is + 3 Cells W and W '"v; initial depth is π and width is
1比特的标志字 flag, 且设 wmin = 2Φ+2 -1 , failure = 1; 1-bit flag word flag, and set w min = 2 Φ + 2 -1, failure = 1;
W(i) = 2≠+2-l W (i) = 2 ≠ + 2 -l
ψ!ην(ί) = 2≠+2-1 , 0≤i≤n ψ ! ην (ί) = 2 ≠ + 2 -1, 0≤i≤n
fl gii) = 0 在子码译码过程中, 每找到一个 -模式, 按下式更新 W、 W'"v、 flag 和 Wmin , 并设 f。U騰 = 0: fl gii) = 0 In the subcode decoding process, each time a pattern is found, the following formula is used to update W, W '" v , flag and W min, and set f. U Teng = 0:
flagij) = 1, if i e Lq flagij) = 1, if ie L q
W(i) = {Lq), if W(i)> {Lq) and ieLq W (i) = (L q ), if W (i)> (L q ) and ieL q
) (J?), if Wim[i)>w{Lq) and i^Lq ) (J ? ), If W im (i)> w (L q ) and i ^ L q
H (J?), if wmi!1 > {Lq) 模式搜索完毕后, 按下式计算外部信息值: H (J ? ), If w mi! 1 > {L q ) After searching for the pattern, calculate the external information value according to the following formula:
if failure == 1 w,- = 0 for all 0≤i<n-\  if failure == 1 w,-= 0 for all 0≤i <n- \
else ifflag(i) = 0 wt = -1) else ifflag (i) = 0 w t = -1)
else if W{i)>wmin w,. = (:)- wniin)((26;. -1))-Λ( .)
Figure imgf000028_0001
else if W (i)> w min w ,. = (:)-w niin ) ((26 ;. -1))-Λ (.)
Figure imgf000028_0001
else wt = (1-2δι) 式中 b,.为二进制硬判决值。 else w t = (1-2δι) where b ,. is a binary hard decision value.
9. 一种基于伴随式的乘积码迭代译码装置, 其中包括: 输入输出模块、 伴随式计算模块、 选择排序模块、 模式搜索模块、 外部信息值计算模块 和存贮模块;  9. An iterative decoding device based on an adjoint product code, comprising: an input-output module, an adjoint calculation module, a selection ordering module, a pattern search module, an external information value calculation module, and a storage module;
输入数据及控制信号为输入输出模块的输入;  Input data and control signals are inputs to the input and output modules;
输入输出模块将输入数据存贮到存储模块中;  The input / output module stores the input data in the storage module;
输入输出模块向伴随式计算模块及选择排序模块输入数据;  The input / output module inputs data to the adjoint calculation module and the selection sorting module
伴随式计算模块、 选择排序模块及存贮模块分别向 模式搜索模块输 入数据;  The adjoint calculation module, the selection sorting module and the storage module respectively input data to the pattern search module;
模式搜索模块向外部信息值计算模块输入数据;  The pattern search module inputs data to the external information value calculation module;
外部信息值计算模块反馈信号给输入输出模块;  The external information value calculation module feeds back signals to the input and output modules;
输入输出模块输出数据和状态信号。  The input and output modules output data and status signals.
10. 根据权利要求 9 所述的装置, 其特征在于, 所述的输入输出模块 至少包括软输入值计算模块;  10. The device according to claim 9, wherein the input / output module comprises at least a soft input value calculation module;
软输入值计算模块根据输入的软信息值 u和译码过程中产生的外部信 息值 w , 计算得出译码器每次迭代的软输入值 SI , 根据软输入值得出可靠 值 |si|和二进制硬判决序列 b。 The soft input value calculation module is based on the input soft information value u and the external information generated during the decoding process. The interest value w is calculated to obtain the soft input value SI of each iteration of the decoder. According to the soft input value, a reliable value | si | and a binary hard decision sequence b are obtained.
11. 根据权利要求 9 所述的装置, 其特征在于, 所述的存储模块可包 括: 数据存储双口 RAM、 伴随式表模块、 反伴随式表模块;  11. The device according to claim 9, wherein the storage module comprises: a dual-port data storage RAM, a companion table module, and an anti-adjoint table module;
输入输出模块将输入数据存贮到数据存贮双口 RAM 中; 伴随式表模块 和反伴随式表模块分別向所述的 q -模式搜索模块输入数据。  The input-output module stores the input data in the data storage dual-port RAM; the adjoint table module and the anti-adjoint table module respectively input data to the q-pattern search module.
12. 根据权利要求 9所述的装置, 其特征在于,  12. The device according to claim 9, characterized in that:
所述的输入输出模块至少包括软输入值计算模块; 软输入值计算模块 根据输入的软信息值 u和译码过程中产生的外部信息值 w , 计算得出译码 器每次迭代的软输入值 SI , 根据软输入值得出可靠值 |SI|和二进制硬判决序 列 b ;  The input / output module includes at least a soft input value calculation module; the soft input value calculation module calculates the soft input of each iteration of the decoder according to the input soft information value u and the external information value w generated during the decoding process. The value SI, according to the soft input is worth the reliable value | SI | and the binary hard decision sequence b;
所述的存储模块可包括: 数据存储汉口 RAM、 伴随式表模块、 反伴随 式表模块; 输入输出模块将输入数据存贮到数据存贮双口 RAM 中; 伴随式 表模块和反伴随式表模块分别向所述的 -模式搜索模块输入数据。  The storage module may include: a data storage Hankou RAM, an accompanying table module, and an anti-adjoint table module; an input-output module that stores input data into a data storage dual-port RAM; an accompanying table module and an anti-adjoint table The module inputs data to the -pattern search module, respectively.
PCT/CN2002/000457 2002-07-01 2002-07-01 Iterative decoding method and apparatus for product code based on adjoint formula WO2004004132A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/CN2002/000457 WO2004004132A1 (en) 2002-07-01 2002-07-01 Iterative decoding method and apparatus for product code based on adjoint formula
CNA028181204A CN1555603A (en) 2002-07-01 2002-07-01 Iterative decoding method and device based on adjoint product code
AU2002320749A AU2002320749A1 (en) 2002-07-01 2002-07-01 Iterative decoding method and apparatus for product code based on adjoint formula

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2002/000457 WO2004004132A1 (en) 2002-07-01 2002-07-01 Iterative decoding method and apparatus for product code based on adjoint formula

Publications (1)

Publication Number Publication Date
WO2004004132A1 true WO2004004132A1 (en) 2004-01-08

Family

ID=29783999

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2002/000457 WO2004004132A1 (en) 2002-07-01 2002-07-01 Iterative decoding method and apparatus for product code based on adjoint formula

Country Status (3)

Country Link
CN (1) CN1555603A (en)
AU (1) AU2002320749A1 (en)
WO (1) WO2004004132A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105191146A (en) * 2013-04-26 2015-12-23 爱思开海力士有限公司 Syndrome tables for decoding turbo-product codes

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104022786B (en) * 2014-05-21 2017-09-01 上海宏光经济信息发展中心青岛电子技术部 Product code coding method
CN114050898A (en) * 2021-11-08 2022-02-15 南京理工大学 QKD negotiation method constructed based on HLS and LDPC codes
CN117976021B (en) * 2024-04-01 2024-06-11 陕西中安数联信息技术有限公司 Data storage method and system for multi-data block combined LDPC coding

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5563897A (en) * 1993-11-19 1996-10-08 France Telecom Method for detecting information bits processed by concatenated block codes
WO1999057816A1 (en) * 1998-05-04 1999-11-11 Alcatel Product code iterative decoding
US6038696A (en) * 1996-12-10 2000-03-14 U.S. Philips Corporation Digital transmission system and method comprising a product code combined with a multidimensional modulation
WO2000019616A2 (en) * 1998-09-28 2000-04-06 Advanced Hardware Architectures, Inc. Turbo product code decoder

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5563897A (en) * 1993-11-19 1996-10-08 France Telecom Method for detecting information bits processed by concatenated block codes
US6038696A (en) * 1996-12-10 2000-03-14 U.S. Philips Corporation Digital transmission system and method comprising a product code combined with a multidimensional modulation
WO1999057816A1 (en) * 1998-05-04 1999-11-11 Alcatel Product code iterative decoding
WO2000019616A2 (en) * 1998-09-28 2000-04-06 Advanced Hardware Architectures, Inc. Turbo product code decoder

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105191146A (en) * 2013-04-26 2015-12-23 爱思开海力士有限公司 Syndrome tables for decoding turbo-product codes
CN105191146B (en) * 2013-04-26 2019-03-05 爱思开海力士有限公司 For decoding the verification sublist of turbine product code

Also Published As

Publication number Publication date
CN1555603A (en) 2004-12-15
AU2002320749A1 (en) 2004-01-19

Similar Documents

Publication Publication Date Title
US11362682B2 (en) Encoding method and apparatus using CRC code and polar code
Yuan et al. Low-latency successive-cancellation list decoders for polar codes with multibit decision
JP4389373B2 (en) Decoder for iterative decoding of binary cyclic code
Zhang et al. VLSI implementation-oriented (3, k)-regular low-density parity-check codes
CN107026656B (en) CRC-assisted medium-short code length Polar code effective decoding method based on disturbance
USRE44421E1 (en) Decoding apparatus for low-density parity-check codes using sequential decoding, and method thereof
CN101039119B (en) Encoding and decoding methods and systems
US20050229091A1 (en) Iterative decoding of linear block codes by adapting the parity check matrix
CN104025459A (en) Decoding processing method and decoder
CN107370560A (en) Coding and speed matching method, the device and equipment of a kind of polarization code
US20130283119A1 (en) Method and Apparatus for Elementary Updating a Check Node During Decoding of a Block Encoded with a Non-binary LDPC Code
Galligan et al. Block turbo decoding with ORBGRAND
CN110661535B (en) Method, device and computer equipment for improving Turbo decoding performance
Jamali et al. Low-complexity decoding of a class of Reed-Muller subcodes for low-capacity channels
Liang et al. Raptor-like rateless spinal codes using outer systematic polar codes for reliable deep space communications
WO2004004132A1 (en) Iterative decoding method and apparatus for product code based on adjoint formula
CN112104379B (en) Polarization code confidence propagation dynamic overturning decoding method based on key set
US10516418B2 (en) Hybrid type iterative decoding method and apparatus
CN102751996B (en) High-performance low-complexity decoding method of block product codes TPC (Turbo Product Code)
Yu et al. Iterative decoding of product codes composed of extended Hamming codes
CN1182657C (en) Method used to reduce storage content needed and complexity by product code decode
Raj et al. Design of successive cancellation list decoding of polar codes
CN112929036A (en) Confidence propagation dynamic flip decoding method based on log-likelihood ratio
Hashimoto et al. Performance of explicit error detection and threshold decision in decoding with erasures
Xia et al. High throughput polar decoding using two-staged adaptive successive cancellation list decoding

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SD SE SG SI SK SL TJ TM TN TR TT TZ UA UG US UZ VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR IE IT LU MC NL PT SE SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 20028181204

Country of ref document: CN

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP