CN112534724B - Decoder and method for decoding polarization code and product code - Google Patents

Decoder and method for decoding polarization code and product code Download PDF

Info

Publication number
CN112534724B
CN112534724B CN201880095995.0A CN201880095995A CN112534724B CN 112534724 B CN112534724 B CN 112534724B CN 201880095995 A CN201880095995 A CN 201880095995A CN 112534724 B CN112534724 B CN 112534724B
Authority
CN
China
Prior art keywords
code
decoding
matrix
codeword
product
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201880095995.0A
Other languages
Chinese (zh)
Other versions
CN112534724A (en
Inventor
卡洛·康多
瓦莱里奥·比奥里奥
英格玛·兰德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN112534724A publication Critical patent/CN112534724A/en
Application granted granted Critical
Publication of CN112534724B publication Critical patent/CN112534724B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/13Linear 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

Landscapes

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

Abstract

A decoder and method for decoding a polar code and a product code. The invention relates to a decoder (301) for decoding a polarization code word, the polarization code word being obtained by encoding information data using a polarization code encoding scheme. The polarization code codeword comprises a plurality of code values. The decoder (301) comprises: a processor (303) is configured to select a first consecutive code value to obtain a first sub-codeword and to select a second consecutive code value to obtain a second sub-codeword. The second consecutive code values follow the first consecutive code values. The processor is further configured to arrange the first and second sub-codewords to form a product code matrix, the product code matrix comprising: a first matrix row having first consecutive code values, a second matrix row having second consecutive code values, a first matrix column comprising code values of a first sub-codeword and a second sub-codeword, and a second matrix column comprising code values of the first sub-codeword and the second sub-codeword. The product code matrix is decoded using a product code decoding scheme to recover information data from the polarization code words. The invention also relates to a decoder (311) for decoding product code words.

Description

Decoder and method for decoding polarization code and product code
Technical Field
The present invention relates generally to the field of channel coding. More particularly, the present invention relates to a decoder and corresponding method for decoding polar code words as well as product code words.
Background
Channel codes are essential in all digital communication systems. A forward error correction (forward error correction, FEC) coding system (also referred to as a coding scheme) consists of an encoder on the transmitter side and a decoder on the receiver side. The encoder adds redundancy to the data to be transmitted, i.e. additional redundant data, and the decoder uses this redundancy to correct transmission errors so that the receiver can obtain the transmitted data without errors despite the presence of a noisy communication channel. Fig. 1 shows a communication system 100 in which data u to be transmitted, called information words, are supplied to an encoder 101, the encoder 101 generating a codeword x comprising redundancy. And then transmitted over noisy communication channel 103, which typically introduces errors. The output vector y is provided to the decoder 105, and the decoder 105 generates an estimate of the transmitted codeword and the transmitted data. The set C of possible codewords is called a code or channel code and in particular this code is referred to below.
The polarization code is a linear block code that relies on polarization effects that allow ordering of the bit positions of u (called bit channels) in order of reliability. As the code length goes to infinity, polarization effects can affect the reliability of bit channels that are either completely noisy or completely noiseless. Furthermore, the proportion of the snr-free channel is equal to the channel capacity. For more details on polarization codes, see "channel polarization" by e.arikan in IEEE information theory journal of 7, volume 55, 7, page 3051, 2009: a method of constructing capacity implementation codes for symmetric binary input memoryless channels "(e.arikan," Channel polarization: A method for constructing capacity achieving codes for symmetric binary-input memoryless channels, "IEEE Transactions on Information Theory, vol.55, no.7, pp.3051, july 2009).
For a limited practical code length, the polarization of the bit channel is incomplete. Thus, there is a partially noisy bit channel. The polarization encoding process includes dividing the bit channels in u into two groups: k good bit channels carrying information bits and indexed by information set I; and N-K bad bit channels fixed to a predefined value (typically 0) and indexed by the frozen set F. In case of a limited code length, the K best bit channels, i.e. the bit channel with the highest reliability, are selected to form the information set, while the remaining bit channels are frozen. The frozen set F is available to both the encoder and the decoder (see fig. 1).
Arikan polarization code based on a kernel matrixSuch a length is n=2 n And the polarization code with the information length K is encoded as follows. As described above, a frozen set F of size N-K is selected. For i ε F, bit u of input vector u i Is set to be 0 and is set to be a constant value, otherwise it is set to an information bit. By means of a transformation matrix->Codeword x is calculated as x=ut, representing an n-fold (n-fold) Kronecker product. As a generalization, different kernels may be used, and the frozen sets may be defined in an alternative manner.
Most polar code decoding algorithms are based on successive cancellation (Successive Cancellation, SC) decoding algorithms, which are sequential in nature. It can be considered a binary tree search in which the bits at the leaf nodes are estimated, the tree is traversed in a depth-first manner, and the left branch is prioritized. At SC decoding, the decoder first performs decoding on bit u 1 And feeding back the decision to the decoding process; then it makes a pair of bits u 2 And feeding back the decision to the decoding process; it proceeds in this way until the last bit u is obtained N Until the design of (3). In addition to normal SC decoding, SC list decoding, SC stack decoding or similar decoding algorithms may be applied.
The product code is a type of error correction code constructed by encoding an information symbol matrix row by row using a row component code and then column by column using a column component code, as shown in fig. 2. The double coding acts as a concatenation of row and column component codes. In a generic product code, rows may use different component codes and columns may use different component codes.
Polarization product codes have been proposed in the text of "irregular polarization turbo product codes for high throughput optical interfaces" by t.koike-akno et al in 2018 optical fiber teleconferencing and display (t.koike-akno et al, "Irregular polar turbo product coding for high-throughput optical interface," in Optical Fiber Communication Conference and Exhibition, 2018), wherein the system polarization code is used as the component code.
In the product code, the information bits are K c ×K r Array permutation, then using code C r Independent coding K c And (3) row. Thereafter, code C is used c For N obtained in the last step r The columns are encoded. The result is an N r ×N c Array, wherein the rows are codes C r Is code C c Is a codeword of (c). The product code may be decoded by sequentially decoding the row and column component codes. The product code decoder typically decodes all row codewords first, which can be done in parallel. Next, using the results of the row decoding, the decoder decodes all column codewords, which can be done in parallel. The decoder performs a certain number of iterations in this way and produces an estimate of the transmitted bits. Soft input/soft output decoders are typically used to improve decoding performance by iterating the decoding of rows and columns and exchanging soft information between the two decoders.
The product code can be decoded with a high degree of parallelism, but good error correction performance comes at the cost of complex soft-input soft-output decoding. On the other hand, polarization code decoding experiences long decoding delays due to the sequential nature of SC-based decoding.
The use of polarization codes as constituent codes poses the problem of effectively combining product decoding and component code decoding. For efficient product decoding, the information output from the component code decoding must be soft. However, the most efficient polar decoder based on SC decoding returns hard information. Soft output decoding of the polar code is sub-optimal in nature because the polar code achieves capacity under SC decoding and is built for SC-based decoding algorithms.
In view of the above, there remains a need for an improved decoder and corresponding method that, among other things, allows more efficient decoding of polar code words and product code words.
Disclosure of Invention
It is an object of the present invention to provide an improved decoder and a corresponding method which in particular enable a more efficient decoding of polar code words and product code words.
The foregoing and other objects are achieved by the subject matter of the independent claims. Further embodiments are evident from the dependent claims, the description and the figures.
The polarization code can be decoded by using a continuous cancellation (SC) based algorithm, so that the error correction performance is good and the complexity is limited; however, SC-based decoding does not parallelize well. On the other hand, product decoding is easily parallelizable, but in order to improve the error correction performance of product decoding, it is necessary to use a soft-input soft-output decoding algorithm, which is computationally complex and suboptimal for the polarization code. There is currently no tradeoff between these two approaches in the prior art.
Embodiments of the present invention solve the problem of how to decode a polar code with low delay and how to decode a product polar code with enhanced error correction performance by observing the polar code properties and interpreting the product polar code as a polar code, and vice versa. Embodiments of the present invention allow for the decoding of parallel polar codes and the exploitation of the interpretation of polar codes as product codes to use polar decoding as a powerful post-processing step. This allows combining the speed of product decoding with the efficiency of decoding algorithms that are optimal for the polar codes, such as Successive Cancellation (SC) decoding algorithms.
More particularly, according to a first aspect, the invention relates to a decoder for decoding a polarization code word obtained by encoding information data using a polarization code encoding scheme, the polarization code word comprising a plurality of code values, the decoder comprising a processor configured to: selecting a first successive code value to obtain a first sub-codeword; selecting a second consecutive code value to obtain a second sub-codeword, the second consecutive code value following the first consecutive code value; arranging the first sub-codeword and the second sub-codeword to form a product code matrix, the product code matrix comprising: a first matrix row having first consecutive code values, a second matrix row having second consecutive code values, a first matrix column comprising code values of the first and second sub-codewords, and a second matrix column comprising code values of the first and second sub-codewords; and decoding the product code matrix using a product code decoding scheme to recover (retrieve) the information data from the polarization code words.
Thus, an improved decoder is provided which in particular allows for more efficient decoding of polar code words.
In another possible implementation form of the first aspect, the processor is configured to determine a decoding metric indicative of a decoding quality at decoding the product code matrix and to decode the polar code codeword using a polar code decoding scheme if the decoding metric exceeds or equals a predetermined threshold.
In another possible implementation form of the first aspect, the decoding metric is an error metric indicating decoding errors in decoding the product code matrix.
In another possible implementation form of the first aspect, the processor is configured to decode the product code matrix by decoding rows and/or columns of the product code matrix separately.
In another possible implementation form of the first aspect, the processor is configured to decode at least two rows of the product code matrix in parallel and/or to decode at least two columns of the product code matrix in parallel.
In another possible implementation form of the first aspect, the polarization code word is based on a frozen bit set comprising positions of frozen bits, the frozen bits carrying no information, wherein each row or each column of the product code matrix is based on a frozen bit subset, wherein the processor is configured to determine the frozen bits in each frozen bit subset by copying a bit vector comprising logical 1's and logical zero's to obtain copied bit vectors, and to compare the copied bit vectors to the frozen bit subsets, wherein the logical 1's are located at positions of the bit vector where frozen bits are detected, and the logical zero is located at other positions of the bit vector.
According to a second aspect, the invention relates to a decoder for decoding product code words obtained by encoding information data using a product code encoding scheme providing a product code matrix comprising matrix rows and matrix columns of values of the product code words, each matrix row and matrix column comprising component code words. The decoder includes a processor configured to concatenate the component codewords to obtain concatenated codewords having serially arranged code values, and decode the concatenated codewords using a polar-code decoding scheme.
Thus, an improved decoder is provided which in particular allows for a more efficient decoding of product code codewords.
In another possible implementation form of the second aspect, the processor is configured to concatenate the component codewords arranged in a subsequent matrix row or in a subsequent matrix column to obtain the concatenated codeword.
In another possible implementation form of the second aspect, each component codeword is based on a frozen bit subset having frozen bits, wherein the processor is configured to replicate the frozen bit subsets arranged in rows and columns and to compare the replicated frozen bit subsets to obtain the frozen bit set of the polarization code codeword.
In another possible implementation form of the second aspect, the processor is configured to: if the respective bit values of the different frozen bit subsets are equal, a bit value is selected for the frozen bit set. In particular logic 1.
According to a third aspect, the invention relates to a decoding method for decoding a polarization code word, wherein the polarization code word is obtained by encoding information data using a polarization code encoding scheme, the polarization code word comprising a plurality of code values. The decoding method comprises the following steps: selecting a first successive code value to obtain a first sub-codeword; selecting a second consecutive code value to obtain a second sub-codeword, the second consecutive code value following the first consecutive code value; arranging the first sub-codeword and the second sub-codeword to form a product code matrix, the product code matrix comprising: a first matrix row having first consecutive code values, a second matrix row having second consecutive code values, a first matrix column comprising code values of the first and second sub-codewords, and a second matrix column comprising code values of the first and second sub-codewords; and decoding the product code matrix using a product code decoding scheme to recover the information data from the polarization code words.
Thus, an improved decoding method is provided which in particular allows for a more efficient decoding of polar code words.
In another possible implementation form of the third aspect, the decoding method further comprises the steps of: a decoding metric indicative of a decoding quality at which the product code matrix is decoded is determined, and if the decoding metric exceeds or equals a predetermined threshold, the polarization code codeword is decoded using a polarization code decoding scheme.
According to a fourth aspect, the invention relates to a decoding method for decoding product code words obtained by encoding information data using a product code encoding scheme providing a product code matrix comprising matrix rows and matrix columns of values of the product code words, each matrix row and matrix column comprising component code words. The decoding method comprises the following steps: concatenating the component codewords to obtain concatenated codewords having serially arranged code values, and decoding the concatenated codewords using a polar-code decoding scheme.
Thus, an improved decoding method is provided which in particular allows for a more efficient decoding of product code codewords.
According to a fifth aspect, the invention relates to a computer program comprising a program code for performing the method according to the second aspect or the method according to the fourth aspect when run on a computer.
The present invention may be implemented in hardware and/or software.
Drawings
Other embodiments of the invention will be described with reference to the following drawings, in which:
fig. 1 shows a schematic diagram of a communication system comprising an encoder, a communication channel and a decoder;
FIG. 2 shows a schematic diagram of a coding scheme of a product code;
fig. 3 shows a schematic diagram of a decoder for decoding a polar code codeword according to an embodiment and a decoder for decoding a product code codeword according to an embodiment;
FIG. 4 shows a schematic diagram of the conversion of a polar code to a product code performed by a decoder according to an embodiment;
FIG. 5 shows a schematic diagram of a communication system including an encoder, a communication channel, a product code decoder according to an embodiment, and a polar code decoder according to an embodiment;
FIG. 6 shows a schematic diagram of a method of decoding a polarization code codeword according to an embodiment; and
fig. 7 shows a schematic diagram of a method of decoding a product code codeword according to an embodiment.
The same reference numbers will be used throughout the drawings to refer to the same or at least functionally equivalent features.
Detailed Description
In the following description, reference is made to the accompanying drawings which form a part hereof, and in which is shown by way of illustration specific aspects in which the invention may be practiced. It is to be understood that other aspects may be utilized and structural or logical changes may be made without departing from the scope of the present invention. The following detailed description is, therefore, not to be taken in a limiting sense, as the scope of the present invention is defined by the appended claims.
For example, it should be understood that the disclosure relating to the described method may also be true for a corresponding apparatus or system configured to perform the method, and vice versa. For example, if a particular method step is described, the corresponding apparatus may comprise the unit performing the described method step, even if the unit is not explicitly described or shown in the figures. Furthermore, it is to be understood that features of the various exemplary aspects described herein may be combined with each other, unless specifically indicated otherwise.
As will be described in more detail below, embodiments of the present invention provide, among other things, the advantages of decoding a polar code with low delay and decoding a product polar code with enhanced error correction performance by observing the polar code properties and interpreting the product polar code as a polar code, and vice versa.
Fig. 3 shows a schematic diagram of a decoder 301 for decoding a polar code codeword according to an embodiment and a decoder 311 for decoding a product code codeword according to an embodiment.
Assuming a polarization code codeword x of length N obtained by encoding information of length N and a frozen bit vector u, x may be divided into N from the first bit of x r N of consecutive bits c Segment, and x may be N c ×N r Is arranged in a matrix X of (2) such that the first column is defined by N c The first bit of the segment, the second column of the segment, and so on. Further, the first row corresponds to the first N r Bit segment, second row corresponds to second segment, and so on.
Given the recursive nature of a polar code, the rows and columns of X are N respectively r Bit and N c Codewords of a bit-long polarization code are referred to as component codes. This matrix-like structure is characteristic of a product code and allows simultaneous decoding of row (column) component codes. Thus, product decoding can be applied to the polar codes.
More specifically, the decoder 301 as shown in fig. 3 may decode a polarization code word obtained by encoding information data using a polarization code encoding scheme, and includes a processor 303, the processor 303 being configured to: selecting a first successive code value to obtain a first sub-codeword; selecting a second consecutive code value to obtain a second sub-codeword, the second consecutive code value following the first consecutive code value; arranging the first and second sub-codewords to form a product code matrix, the product code matrix comprising: a first matrix row having first consecutive code values, a second matrix row having second consecutive code values, a first matrix column comprising code values of a first sub-codeword and a second sub-codeword, and a second matrix column comprising code values of the first sub-codeword and the second sub-codeword; and decoding the product code matrix using a product code decoding scheme to recover the information data from the polarization code words.
In one embodiment, the processor 303 is configured to determine a decoding metric indicative of a decoding quality when decoding the product code matrix and to decode the polar code codeword using a polar code decoding scheme if the decoding metric exceeds or equals a predetermined threshold. The decoding metric is an error metric indicating decoding errors in decoding the product code matrix.
In one embodiment, the processor 303 is configured to decode the product code matrix by decoding the rows and/or columns of the product code matrix separately, and to decode at least two rows of the product code matrix in parallel, and/or to decode at least two columns of the product code matrix in parallel.
In another embodiment, the polarization code word is based on a set of frozen bits including locations of frozen bits that do not carry information, wherein each row or each column of the product code matrix is based on a subset of frozen bits. The processor (303) is configured to determine the frozen bits in each frozen bit subset by copying a bit vector comprising logical 1's and logical zero's to obtain a copied bit vector, and to compare the copied bit vector to the frozen bit subset, wherein logical 1's are located at positions of the bit vector where frozen bits are to be detected, and logical zero's are located at other positions of the bit vector.
An exemplary conversion 400 of the polar code to the product code performed by the decoder 301 is shown in fig. 4. Given a polar code of length N, codeword x can be divided into lengthsIs->Parts, and the parts may be rearranged one below the other. Obtained->The matrix is a non-systematic product code matrix in which each row and each column is of length +.>Is a valid polarization code word of (1). Fig. 4 shows an example 400 of a polar codeword for n=16. Even if the length is different from +.>The segments of (2) also apply; the resulting matrix N r ×N c Rectangular, but this attribute still applies.
Alternatively, the encoding process of the product code may be expressed asWherein->Is the transpose of the transform matrix of the column component code, T r Is a transformation matrix of the row component code. They encode the information matrix U into a product codeword X. By combining T c And T r Respectively regarded as length N c And N r Is a product polarization code.
N of X c Rows may be linked as N c ×N r The segments of vector x such that the first row constitutes a first segment, the second row constitutes a second segment, and so on. Given a construction of a polar code as the product of smaller codes, vector x is of length N c ×N r Is a code word of a polarization code of (a). Thus, polarization decoding may be applied to product codes having polarization component codes.
More specifically, the decoder 311 shown in fig. 3 may decode a product code codeword obtained by encoding information data using a product code encoding scheme that provides a product code matrix including matrix rows and matrix columns composed of values of the product code codeword, each matrix row and matrix column including component codewords.
Further, the decoder 311 comprises a processor 313, the processor 313 being configured to concatenate the component codewords to obtain concatenated codewords having serially arranged code values, and to decode the concatenated codewords using a polar-code decoding scheme.
In one embodiment, the processor 313 is configured to concatenate the component codewords arranged in a subsequent matrix row or subsequent matrix column to obtain concatenated codewords.
In another embodiment, each component codeword is based on a frozen bit subset having frozen bits, and the processor 313 is configured to replicate the frozen bit subsets arranged in rows and columns and compare the replicated frozen bit subsets to obtain the frozen bit set of the polarization code codeword. Further, the processor 313 is configured to: if the respective bit values of the different frozen bit subsets are equal, a bit value is selected for the frozen bit set, the bit being a select logic 1.
Given the above-mentioned equivalence, the proposed decoding method foresees decoding the row and column component polarization codes as a first step, in which information is exchanged in a product-like manner between the row and column decoding stages. Product decoding can be easily parallelized because all rows can be processed in parallel and all columns can be processed in parallel, which greatly reduces the decoding delay of a length N polar code.
As a second step, in case there is still an error after the first decoding step, a code of total length N is decoded using a polar decoding algorithm. In order to limit complexity and maximize hardware reusability, the same decoding algorithm may be used for component codes in the first step and for whole codes in the second step. Any decoding algorithm may be used in either of the two phases, for example a hard output algorithm, such as an SC-based decoding algorithm, and a soft output decoding algorithm, such as a belief propagation or Soft Cancellation (SCAN) algorithm.
The speed and implementation complexity of the proposed decoding process depends on the number of instantiated parallel component code decoders, the number of product-like iterations, and the percentage of times the second decoding step is activated.
Fig. 5 shows a schematic diagram illustrating a communication system 500, the communication system 500 comprising an encoder 501, a communication channel 503, a product code decoder 311 according to an embodiment and a polar code decoder 301 according to an embodiment. The modified transmission system 500 in fig. 5 shows a new decoding architecture as described above.
The embodiments of the present invention provide three novel decoding methods. Based on the above observations, it is possible to divide the polarization code words into product code rows with row and column polarization component codes and vice versa.
First, the polarized product code may be decoded using a polarized code decoding algorithm. Second, the polar code may be decoded using a product code decoding algorithm. Third, the hybrid decoding method may be performed by: the first step is to treat the code as a product code and apply product code decoding, i.e. iterative decoding of the row and column polarized component codes and exchange of information between the two phases; the second step is to treat the code as a single polarization code of length N and apply polarization decoding in the presence of errors after the first step.
The first decoding step as described above allows parallelization of the polar-code decoding process, thereby reducing delay. The implementation complexity may be adjusted according to the number of instantiated parallel component code decoders. The second decoding step enhances the decoding process by decoding longer codes to improve error correction performance. It is activated with probability gamma. As channel conditions improve, γ tends to be 0, and thus has a negligible effect on the average decoding delay. To limit the implementation complexity of the second step, the same decoding algorithm can be used for the second step, and also for the component codes of the first step, thereby maximizing resource sharing.
Fig. 6 shows a schematic diagram of a method 600 of decoding a polarization code codeword, wherein the polarization code codeword is obtained by encoding information data using a polarization code encoding scheme, and the polarization code codeword comprises a plurality of code values.
The decoding method 600 includes the steps of: a first step 601 of selecting a first consecutive code value to obtain a first sub-codeword; a second step 603 of selecting a second consecutive code value to obtain a second sub-codeword, the second consecutive code value following the first consecutive code value; a third step 605 of arranging the first sub-codeword and the second sub-codeword to form a product code matrix comprising a first matrix row having first consecutive code values and a second matrix row having second consecutive code values, a first matrix column comprising code values of the first sub-codeword and the second sub-codeword, a second matrix column comprising code values of the first sub-codeword and the second sub-codeword; a fourth step 607 decodes the product code matrix using a product code decoding scheme to recover the information data from the polarization code words.
Fig. 7 shows a schematic diagram of a method 700 of decoding product code words obtained by encoding information data using a product code encoding scheme that provides a product code matrix comprising matrix rows and matrix columns of values of the product code words, each matrix row and matrix column comprising component codewords.
The decoding method 700 includes: in step 701 the process is carried out, concatenating the component codewords to obtain concatenated codewords having serially arranged code values; and step 703 decoding the concatenated codeword using a polar code decoding scheme.
While a particular feature or aspect of the disclosure may have been disclosed with respect to only one of several implementations or embodiments, such feature or aspect may be combined with one or more other features or aspects of the other implementations or embodiments, as may be desired and advantageous for any given or particular application. Furthermore, the terms "comprising," having, "" companion, "or other variants thereof, as used in the detailed description or claims, are intended to be inclusive in a non-exclusive manner similar to the term" comprising. Also, the terms "exemplary," "e.g.," and "like" are merely examples and are not optimal or optimal. The terms "coupled" and "connected," along with their derivatives, may have been used. It should be understood that these terms may have been used to indicate that two elements co-operate or interact with each other regardless of whether they are in direct physical or electrical contact or whether they are not in direct contact with each other.
Although specific aspects have been illustrated and described herein, it will be appreciated by those of ordinary skill in the art that a variety of alternate and/or equivalent implementations may be substituted for the specific aspects shown and described without departing from the scope of the present disclosure. This application is intended to cover any adaptations or variations of the specific aspects discussed herein.
Although elements in the following claims are recited in a particular order with corresponding labeling, unless the claim recitations otherwise imply a particular order for implementing some or all of those elements, those elements are not necessarily intended to be limited to being implemented in that particular order.
Many alternatives, modifications, and variations will be apparent to those skilled in the art in light of the above teaching. Of course, those skilled in the art will readily recognize that the present invention has many applications other than those described herein. While the invention has been described with reference to one or more particular embodiments, those skilled in the art will recognize that many changes may be made thereto without departing from the scope of the present invention. It is, therefore, to be understood that within the scope of the appended claims and equivalents thereof, the invention may be practiced otherwise than as specifically described herein.

Claims (12)

1. A decoder (301) for decoding a polarization code codeword obtained by encoding information data using a polarization code encoding scheme, the polarization code codeword comprising a plurality of code values, the decoder (301) comprising a processor (303), the processor (303) being configured to:
-selecting a first consecutive code value to obtain a first sub-codeword;
-selecting a second consecutive code value to obtain a second sub-codeword, the second consecutive code value following the first consecutive code value;
-arranging the first and second sub-codewords to form a product code matrix, the product code matrix comprising: a first matrix row having the first consecutive code values, a second matrix row having the second consecutive code values, a first matrix column comprising the code values of the first and second sub-codewords, and a second matrix column comprising the code values of the first and second sub-codewords; and
-decoding the product code matrix using a product code decoding scheme to recover the information data from the polarization code words;
wherein the processor (303) is configured to determine a decoding metric indicative of a decoding quality when decoding the product code matrix, and to decode the polar code codeword using a polar code decoding scheme if the decoding metric exceeds or equals a predetermined threshold.
2. The decoder (301) according to claim 1, wherein the decoding metric is an error metric indicating decoding errors in decoding the product code matrix.
3. Decoder (301) according to claim 1 or 2, wherein the processor (303) is configured to decode the product code matrix by decoding rows and/or columns of the product code matrix, respectively.
4. A decoder (301) according to claim 3, wherein the processor (303) is configured to decode at least two rows of the product code matrix in parallel and/or to decode at least two columns of the product code matrix in parallel.
5. Decoder (301) according to claim 1 or 2, wherein the polarization code words are based on a frozen bit set comprising positions of frozen bits, the frozen bits not carrying information, wherein each row or each column of the product code matrix is based on a frozen bit subset, wherein the processor (303) is configured to determine frozen bits in each frozen bit subset by copying bit vectors comprising logical 1's and logical zero's to obtain copied bit vectors, and to compare the copied bit vectors to frozen bit subsets, wherein the logical 1's are located at positions of the bit vectors where frozen bits are to be detected, and the logical zero is located at other positions of the bit vectors.
6. A decoder (311) for decoding product code words obtained by encoding information data using a product code encoding scheme providing a product code matrix comprising matrix rows and matrix columns of values of the product code words, each matrix row and matrix column comprising component codewords, the decoder (311) comprising a processor (313), the processor (313) being configured to concatenate the component codewords to obtain concatenated codewords having serially arranged code values, and to decode the concatenated codewords using a polar code decoding scheme;
wherein the processor (313) is configured to concatenate the component codewords arranged in a subsequent matrix row or in a subsequent matrix column to obtain the concatenated codeword.
7. The decoder (311) of claim 6, wherein each component codeword is based on a frozen bit subset having frozen bits, wherein the processor (313) is configured to replicate frozen bit subsets arranged in rows and columns and to compare the replicated frozen bit subsets to obtain a frozen bit set of a polarization code codeword.
8. The decoder (311) of claim 7, wherein the processor (313) is configured to: if the respective bit values of the different frozen bit subsets are equal, a bit value is selected for the frozen bit set.
9. The decoder (311) of claim 8, wherein the processor (313) is configured to: if the respective bit values of the different frozen bit subsets are equal, a logical 1 is selected for the frozen bit set.
10. A decoding method (600) for decoding a polarization code codeword obtained by encoding information data using a polarization code encoding scheme, the polarization code codeword comprising a plurality of code values, the decoding method (600) comprising:
-selecting (601) a first consecutive code value to obtain a first sub-codeword;
-selecting (603) a second consecutive code value to obtain a second sub-codeword, the second consecutive code value following the first consecutive code value;
-arranging (605) the first and second sub-codewords to form a product code matrix, the product code matrix comprising: a first matrix row having the first consecutive code values, a second matrix row having the second consecutive code values, a first matrix column comprising the code values of the first and second sub-codewords, and a second matrix column comprising the code values of the first and second sub-codewords; and
-decoding (607) the product code matrix using a product code decoding scheme to recover the information data from the polarization code words;
wherein the decoding method (600) further comprises:
a decoding metric indicative of a decoding quality at decoding the product code matrix is determined, and if the decoding metric exceeds or equals a predetermined threshold, the polar code codeword is decoded using a polar code decoding scheme.
11. A decoding method (700) for decoding product code words obtained by encoding information data using a product code encoding scheme providing a product code matrix comprising matrix rows and matrix columns of values of the product code words, each matrix row and matrix column comprising component codewords, the decoding method (700) comprising concatenating (701) the component codewords to obtain concatenated codewords having serially arranged code values, and decoding (703) the concatenated codewords using a polar code decoding scheme;
the concatenating (701) the component codewords to obtain concatenated codewords having serially arranged code values, comprising:
and cascading the component code words arranged in the subsequent matrix rows or the component code words arranged in the subsequent matrix columns to obtain the cascading code words.
12. A computer program product comprising a computer program for performing the decoding method (600) according to claim 10 or the decoding method (700) according to claim 11 when run on a computer.
CN201880095995.0A 2018-09-13 2018-09-13 Decoder and method for decoding polarization code and product code Active CN112534724B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2018/074798 WO2020052770A1 (en) 2018-09-13 2018-09-13 Decoders and methods for decoding polar codes and product codes

Publications (2)

Publication Number Publication Date
CN112534724A CN112534724A (en) 2021-03-19
CN112534724B true CN112534724B (en) 2024-04-09

Family

ID=63586725

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880095995.0A Active CN112534724B (en) 2018-09-13 2018-09-13 Decoder and method for decoding polarization code and product code

Country Status (2)

Country Link
CN (1) CN112534724B (en)
WO (1) WO2020052770A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI731696B (en) * 2020-05-26 2021-06-21 國立臺灣大學 A method of decoding the polar codes based on belief propagation

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107276716A (en) * 2016-04-08 2017-10-20 法国矿业电信学校联盟 Method and apparatus for decoding data signal
WO2017196203A1 (en) * 2016-05-12 2017-11-16 Huawei Technologies Co., Ltd Devices and methods implementing polar codes
WO2018021926A1 (en) * 2016-07-27 2018-02-01 Huawei Technologies Co., Ltd. Decoding of polar codes and polar subcodes
CN108390677A (en) * 2018-03-20 2018-08-10 山东大学 A kind of coding and decoding method of polarization code optimization
CN108390740A (en) * 2017-02-03 2018-08-10 华为技术有限公司 A kind of transmission method of information, interpretation method and device

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10313056B2 (en) * 2017-02-06 2019-06-04 Mitsubishi Electric Research Laboratories, Inc. Irregular polar code encoding

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107276716A (en) * 2016-04-08 2017-10-20 法国矿业电信学校联盟 Method and apparatus for decoding data signal
WO2017196203A1 (en) * 2016-05-12 2017-11-16 Huawei Technologies Co., Ltd Devices and methods implementing polar codes
WO2018021926A1 (en) * 2016-07-27 2018-02-01 Huawei Technologies Co., Ltd. Decoding of polar codes and polar subcodes
CN108390740A (en) * 2017-02-03 2018-08-10 华为技术有限公司 A kind of transmission method of information, interpretation method and device
CN108390677A (en) * 2018-03-20 2018-08-10 山东大学 A kind of coding and decoding method of polarization code optimization

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Irregular Polar Turbo Product Coding for High-Throughput Optical Interface;Toshiaki Koike-Akino等;2018 Optical Fiber Communications Conference and Exposition (OFC);第1-3页,图1 *

Also Published As

Publication number Publication date
WO2020052770A1 (en) 2020-03-19
CN112534724A (en) 2021-03-19

Similar Documents

Publication Publication Date Title
US10326478B2 (en) Apparatus and method for encoding and decoding data in twisted polar code
CN106888026B (en) Segmented polarization code coding and decoding method and system based on LSC-CRC (least significant likelihood-Cyclic redundancy check) decoding
JP5705106B2 (en) Method for performing soft decision decoding of Euclidean space Reed-Muller code
US20140040214A1 (en) Entropy Coding and Decoding Using Polar Codes
KR20170097580A (en) Apparatus for polar coding
US20030188253A1 (en) Method for iterative hard-decision forward error correction decoding
US9973212B2 (en) Decoding algorithm with enhanced parity check matrix and re-encoding scheme for LDPC code
CN111541517B (en) List polarization code propagation decoding method
US8468438B2 (en) Method and apparatus for elementary updating a check node during decoding of a block encoded with a non-binary LDPC code
CN109983705B (en) Apparatus and method for generating polarization code
CN111446973B (en) Polarization code belief propagation decoding method based on multi-flip bit set
US20160049962A1 (en) Method and apparatus of ldpc encoder in 10gbase-t system
CN112534724B (en) Decoder and method for decoding polarization code and product code
US11323139B2 (en) Apparatuses and methods for mapping frozen sets between polar codes and product codes
Lu et al. Blind identification of convolutional interleaver parameters
WO2019013663A1 (en) Generalized low-density parity check codes (gldpc)
US8892985B2 (en) Decoding and optimized implementation of SECDED codes over GF(q)
CN112104379B (en) Polarization code confidence propagation dynamic overturning decoding method based on key set
CN110995288B (en) RM code analysis method and device
KR101304570B1 (en) Methods of Generating Parity Check Matrix, Error Correction Methods and Devices using thereof, and Memories and Electronic Device using thereof
WO2020139234A1 (en) Performance enhancement of polar codes for short frame lengths considering error propagation effects
Ovechkin et al. Improving performance of non-binary multithreshold decoder’s work due to concatenation
CN117914446A (en) Decoding method and system for algebraic code
Jing et al. Enhanced Adaptive Successive-Cancellation List Decoder
TW201713048A (en) Decoding algorithm with enhanced parity check matrix and re-encoding scheme for LDPC code

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant