Devices and methods implementing polar codes
10892848 ยท 2021-01-12
Assignee
Inventors
- Oleg Feat'evich Kurmaev (Moscow, RU)
- Alexey Mikhailovich Razinkin (Moscow, RU)
- Vasily Stanislavovich Usatyuk (Moscow, RU)
Cpc classification
H03M13/033
ELECTRICITY
H03M13/616
ELECTRICITY
International classification
H04L1/00
ELECTRICITY
H03M13/00
ELECTRICITY
H03M13/15
ELECTRICITY
H03M13/29
ELECTRICITY
Abstract
The disclosure relates to devices and methods implementing polar codes. For instance, the disclosure relates to an an encoder for encoding data, wherein the encoder comprises a processor configured to encode the data using a (n, k, d) parent polar code C into codewords c.sub.0.sup.n-1=u.sub.0.sup.n-1A subject to the constraints u.sub.0.sup.n-1V.sup.T=0, wherein u.sub.0.sup.n-1 denotes the data, wherein
wherein F.sup..Math.m denotes the m-times Kronecker product of the matrix F with itself and wherein the constraint matrix V comprises in addition to the constraint matrix V.sub.0 of the parent polar code the constraint matrix V.sub.1 of a first helper code C.sub.1 and the constraint matrix V.sub.2 of a second helper code C.sub.2.
Claims
1. An encoder for encoding data, wherein the encoder comprises: a processor configured to: obtain a data sequence; and encode the data sequence using a (n, k, d) parent polar code C into codewords c.sub.0.sup.n-1, wherein a (n, k, d) denotes a length n of the parent polar code C, a number of information bits k, and a minimum distance d of the parent polar code C; and a transmitter configured to: output the codewords c.sub.0.sup.n-1 over a communication channel; wherein c.sub.0.sup.n-1=u.sub.0.sup.n-1A subject to constraint u.sub.0.sup.n-1V.sup.T=0, wherein u.sub.0.sup.n-1 denotes the data sequence, wherein
2. The encoder of claim 1, wherein the first helper code C.sub.1 defines a minimum distance d.sub.1, which is greater than or equal to a minimum distance d of the parent polar code C, and the second helper code C.sub.2 defines a minimum distance d.sub.2, which is greater than or equal to half the minimum distance d of the parent polar code C.
3. The encoder of claim 1, wherein the processor is configured to generate one or more of the constraint matrix V.sub.1 of the first helper code C.sub.1 and the constraint matrix V.sub.2 of the second helper code C.sub.2 recursively in a same manner as the constraint matrix V.sub.0.
4. The encoder of claim 1, wherein one or more of the parent polar code C, the first helper code C.sub.1, and the second helper code C.sub.2 is an extended Bose-Chaudhuri-Hocquenghem (BCH) code.
5. The encoder of claim 4, further comprising: a memory storing one or more of: a specification of the parent polar code C, the first helper code C.sub.1, and the second helper code C.sub.2, wherein the specification is based on an approximation of the parent polar code C, the first helper code C.sub.1 and the second helper code C.sub.2 for a binary erasure channel (BEC).
6. The encoder of claim 5, wherein the specification of the parent polar code C, the first helper code C.sub.1 and the second helper code C.sub.2 is generated by the following steps: determining a first frozen set of the parent polar code C, the first helper code C.sub.1 and the second helper code C.sub.2 according to check matrices of the parent polar code C, the first helper code C.sub.1, and the second helper code C.sub.2; determining a second frozen set of an approximation of the parent polar code C, the first helper code C.sub.1, and the second helper code C.sub.2 using the BEC; and determining and storing the symmetric differences between the first frozen set and the second frozen set in the memory of the encoder as part of the specification of the parent polar code C, the first helper code C.sub.1, and the second helper code C.sub.2.
7. A method for encoding data, the method comprising: obtaining, by a processor, a data sequence; encoding, by the processor, the data using a (n, k, d) parent polar code C into codewords c.sub.0.sup.n-1, wherein a (n, k, d) denotes a length n of the parent polar code C, a number of information bits k, and a minimum distance d of the parent polar code C; outputting, by the processor, the codewords c.sub.0.sup.n-1 to a transmitter for transmission over a communication channel; wherein c.sub.0.sup.n-1=u.sub.0.sup.n-1A is subject to a constraint u.sub.0.sup.n-1V.sup.T=0, wherein u.sub.0.sup.n-1 denotes the data sequence, wherein
8. A decoder for decoding codewords, wherein the decoder comprises: a receiver configured to: receive codewords c.sub.0.sup.n-1 over a communication channel, wherein c.sub.0.sup.n-1=u.sub.0.sup.n-1A; and a processor configured to: decode the codewords c.sub.0.sup.n-1 using a (n, k, d) parent polar code C subject to a constraint u.sub.0.sup.n-1V.sup.T=0 into a data sequence, wherein a (n, k, d) denotes a length n of the parent polar code C, a number of information bits k, and a minimum distance d of the parent polar code C; wherein u.sub.0.sup.n-1 denotes the data sequence, wherein
9. The decoder of claim 8, wherein the first helper code C.sub.1 defines a minimum distance d.sub.1, which is greater than or equal to a minimum distance d of the parent polar code C, and the second helper code C.sub.2 defines a minimum distance d.sub.2, which is greater than or equal to half the minimum distance d of the parent polar code C.
10. The decoder of claim 8, wherein the processor is configured to generate one or more of the constraint matrix V.sub.1 of the first helper code C.sub.1 and the constraint matrix V.sub.2 of the second helper code C.sub.2 recursively in a same manner as the constraint matrix V.sub.0.
11. The decoder of claim 8, wherein one or more of the parent polar code C, the first helper code C.sub.1, and the second helper code C.sub.2 is an extended Bose-Chaudhuri-Hocquenghem (BCH) code.
12. The decoder of claim 11, further comprising: a memory storing a specification of one or more of the parent polar code C, the first helper code C.sub.1, and the second helper code C.sub.2, wherein the specification is based on an approximation of the parent polar code C, the first helper code C.sub.1 and the second helper code C.sub.2 for a binary erasure channel (BEC).
13. The decoder of claim 12, wherein the specification of one or more of the parent polar code C, the first helper code C.sub.1, and the second helper code C.sub.2 is generated by the following steps: determining a first frozen set of the parent polar code C, the first helper code C.sub.1, and the second helper code C.sub.2 according to check matrices of the parent polar code C, the first helper code C.sub.1, and the second helper code C.sub.2; determining a second frozen set of an approximation of the parent polar code C, the first helper code C.sub.1, and the second helper code C.sub.2 using the BEC; and storing the differences between the first frozen set and the second frozen set in the memory of the decoder as part of the specification of the parent polar code C, the first helper code C.sub.1 and the second helper code C.sub.2.
14. A method for decoding codewords, the method comprising: obtaining, by a processor, codewords c.sub.0.sup.n-1 received by a receiver over a communication channel, wherein c.sub.0.sup.n-1=u.sub.0.sup.n-1A; and decoding, by the processor, the codewords c.sub.0.sup.n-1=u.sub.0.sup.n-1A using a (n, k, d) parent polar code C subject to a constraint u.sub.0.sup.n-1V.sup.T=0 into a data sequence, wherein a (n, k, d) denotes a length n of the parent polar code C, a number of information bits k, and a minimum distance d of the parent polar code C; wherein u.sub.0.sup.n-1 denotes the data sequence, wherein
15. A computer program comprising program code for performing the method of claim 7 when executed on a computer.
16. A computer program comprising program code for performing the method of claim 14 when executed on a computer.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) Further embodiments of the disclosure will be described with respect to the following figures, wherein:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9) In the figures, identical reference signs will be used for identical or functionally equivalent features.
DETAILED DESCRIPTION OF EMBODIMENTS
(10) In the following description, reference is made to the accompanying drawings, which form part of the disclosure, and in which are shown, by way of illustration, specific aspects in which the present disclosure may be placed. It will be appreciated that the disclosure may be placed in other aspects and that structural or logical changes may be made without departing from the scope of the disclosure. The following detailed description, therefore, is not to be taken in a limiting sense, as the scope of the disclosure is defined by the appended claims.
(11) For instance, it will be appreciated that a disclosure in connection with a described method will generally also hold true for a corresponding device or system configured to perform the method and vice versa. For example, if a specific method step is described, a corresponding device may include a unit to perform the described method step, even if such unit is not explicitly described or illustrated in the figures.
(12) Moreover, in the following detailed description as well as in the claims, embodiments with functional blocks or processing units are described, which are connected with each other or exchange signals. It will be appreciated that the disclosure also covers embodiments which include additional functional blocks or processing units that are arranged between the functional blocks or processing units of the embodiments described below.
(13) Finally, it is understood that the features of the various exemplary aspects described herein may be combined with each other, unless specifically noted otherwise.
(14)
(15) The encoder 110 comprises a processor 111 and a memory 113 and is configured to encode data. Likewise, the decoder 130 comprises a processor 131 and a memory 133 and is configured to decode data, in particular data encoded by the encoder 110. The encoder 110 and/or the decoder 130 can be implemented as part of a communication device, such as a mobile phone or a base station of a cellular communication network.
(16) In order to reduce the decoding error probability and complexity of sequential decoding, embodiments of the disclosure provide recursive polar subcodes. The constraint matrix for a recursive polar subcode is given by
(17)
where V.sub.1 and V.sub.2 are the constraint matrices of some helper (n/2, k.sub.i, d.sub.i) codes C.sub.1 and C.sub.2.
(18) Thus, in an embodiment the processor 111 of the encoder 110 is configured to encode the data using a (n, k, d) parent polar code C into codewords c.sub.0.sup.n-1=u.sub.0.sup.n-1A subject to the constraints u.sub.0.sup.n-1V.sup.T=0, wherein u.sub.0.sup.n-1 denotes the data, wherein
(19)
wherein F.sup..Math.m denotes the m-times Kronecker product of the matrix F with itself. (n, k, d) defines the length n of the parent polar code C, the number of information bits k, i.e the length of the data, and the minimum distance d of the parent polar code C. The constraint matrix V is defined by the following equation:
(20)
wherein V.sub.0 denotes the constraint matrix of the parent polar code, V.sub.1 denotes the constraint matrix of a first helper code C.sub.1, V.sub.2 denotes the constraint matrix of a second helper code C.sub.2 and E denotes a matrix consisting of rows of weight 1. In an embodiment, the first helper code C.sub.1 and/or the second helper code C.sub.2 are subcodes of a Reed-Muller code of sufficiently small order. The rows of weight 1 of the matrix E define static freezing constraints, which, in an embodiment, are imposed onto bit subchannels of low capacity by the polarizing transformation.
(21) Likewise, in an embodiment the processor 131 of the decoder 130 is configured to decode the codewords c.sub.0.sup.n-1=u.sub.0.sup.n-1A using a (n, k, d) parent polar code C subject to the constraints u.sub.0.sup.n-1V.sup.T=0, wherein u.sub.0.sup.n-1 denotes the data, wherein
(22)
wherein F.sup..Math.m denotes the m-times Kronecker product of the matrix F with itself and wherein the constraint matrix V is defined by the following equation:
(23)
wherein V.sub.0 denotes the constraint matrix of the parent polar code, V.sub.1 denotes the constraint matrix of a first helper code C.sub.1, V.sub.2 denotes the constraint matrix of a second helper code C.sub.2 and E denotes a matrix consisting of rows of weight 1.
(24) In an embodiment, the parameters of the helper codes are selected in such a way that they have sufficiently high minimum distance, i.e.
(25)
(26) The constraint matrices V.sub.1 and V.sub.2 of the helper codes can be constructed recursively in the same way as the constraint matrix V.sub.0 of the parent code. Thus, embodiments of the disclosure allow introducing more freezing constraints to the early phases of the sequential/list decoding process. This allows reducing the number of high probability paths in the code tree explored by the decoder, reducing thus the average number of iterations performed, and the probability of the decoder losing the correct path.
(27) In an embodiment, the code can be constructed in the follow way: 1. Construct dynamic freezing constraints for a parent (n, k, d) extended BCH code; 2. Construct dynamic freezing constraints for the helper (n.sub.i, k.sub.i, d.sub.i) extended BCH codes; 3. Combine the constraint matrices of parent and helper codes to obtain rn matrix V, and let
(28)
(29) In an embodiment, the parent polar code C, the first helper code C.sub.1 and/or the second helper code C.sub.2 is an extended Bose-Chaudhuri-Hocquenghem (BCH) code. The check matrix of an extended BCH parent or helper code is given by
(30)
where x.sub.i are distinct values of GF(2.sup.m). Each row of this matrix results in a number of freezing constraints of the following form:
uA(x.sub.0.sup.t, . . . ,x.sub.n-1.sup.t)T=0, 0td2(1)
(31) It is possible to show that after combining with additional constraints u.sub.i=0 corresponding to bit subchannels with high error probability most of the equations defined by (1) become trivial (i.e. u.sub.i.sub.
(32) The rows of check matrices corresponding to the non-trivial constraints u.sub.i.sub.
(33) In an embodiment, the remaining static freezing constraints are specified in the following manner. A parameter Z.sub.0,0 defining the binary erasure channel (BEC) is specified and only the symmetric differences between the set of static frozen symbol indices (i.e. integers i:u.sub.i=0) of the polar code constructed for the BEC and the considered polar subcode are stored as part of the specification. As known to the person skilled in the art, the symmetric difference of two sets A and D is their union excluding their intersection, i.e.
AB=(AB)\(AB).
(34) Thus, the present disclosure provides a method of generating a compact specification of a polar code, wherein the method comprises the steps of: determining a first frozen set of the polar code; determining a second frozen set of an approximation of the polar code using the binary erasure channel (BEC); and determining the differences between the first frozen set and the second frozen set. Such compact specifications can be stored in the memory 113 of the encoder 110 and/or the memory 133 of the decoder 130.
(35) Let be the set of trivial frozen symbol indices for a code of length n=2.sup.m, |
|=f. Consider a BEC with erasure probability Z.sub.0,0=p. Denote B(p) as the vector of indices i of subchannels sorted by their erasure probabilities Z.sub.m,i in descending order. Let B(p).sub.0.sup.f-1 be the set of frozen symbol indices for a (n, nf) polar code C optimized for the BEC. In an embodiment, the size of the difference of the set of indices of frozen symbols between C and the target code is minimized. Thereafter, B
=B(p*).sub.0.sup.f*-1 can be computed, where
(36)
Hence, according to an embodiment the code can be specified by a tuple S(m, )=(m, |
|, p*, |B
|,
B.sub.F), where m is the logarithm to the base 2 of the code length, |
| is number of static frozen symbols, and p* is the optimal erasure probability.
(37) In an embodiment, this approach is implemented recursively. In an embodiment, the set is split into two subsets H.sub.L(m,
)={i
|i<2.sup.m-1} and H.sub.R(m,
)={i2.sup.m-1|i
, i2.sup.m-1}. In an embodiment, the compact specification procedure S(m,F) is recursively applied to obtain a recursive specification in the following form:
(38)
where |S| is the length in bytes of the specification and S.sub.1. S.sub.2 denotes a concatenation of the two specifications S.sub.i and S.sub.2.
(39) In the following an example will be described, which illustrate several aspects of the disclosure.
(40) Consider construction of a (32,17,6) recursive polar subcode. A constraint matrix of the (32,21,6) e-BCH parent code is given by the matrix V.sub.0 shown in
(41) Consider a (32, 16)-polar code with the following set of frozen symbols F:
F={0, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31}
(42) In an embodiment, the frozen set F can be approximated by the frozen set for the binary erasure channel (BEC) with erasure probabilities of 0.005, 0.01, 0.015, . . . , 0.995. In an embodiment, the optimal approximated set is B.sub.F={0}, p*=0.005, f*=1. The non-recursive compact specification is defined as follows:
S(5, F)=(m,|F|,p*,|B.sub.F|,|F\B.sub.F|,F\B.sub.F,B.sub.F\F)=(5, 16, 0.005, 1, 15, {16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31}, { })
(43) This exemplary specification contains 20 numbers. After the algorithm finishes building this specification, it tries to split the frozen set into two parts and approximate them separately. In the considered case the partitioning is
H.sub.L={0},H.sub.R={0,1,2,3,4,5,6,7,8,9,10,12,13,14,15}
(44) The set H.sub.L is approximated by B.sub.H.sub.
B.sub.H.sub.
(45) Hence, the code can be specified by giving the following numbers: 4, 0.005, 1, 1, 0 4, 0.005, 15, 16, 0 11
(46) This recursive specification requires just 11 numbers, which is much less than is required for the above presented non-recursive specification.
(47)
(48) The efficiency of the embodiments for compact code specification is illustrated by the table shown in
(49) 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, to the extent that the terms include, have, with, or other variants thereof are used in either the detailed description or the claims, such terms are intended to be inclusive in a manner similar to the term comprise. Also, the terms exemplary, for example and e.g. are merely meant as an example, rather than the best or optimal. The terms coupled and connected, along with derivatives may have been used. It should be understood that these terms may have been used to indicate that two elements cooperate or interact with each other regardless whether they are in direct physical or electrical contact, or they are not in direct contact with each other.
(50) 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.
(51) Although the elements in the following claims are recited in a particular sequence with corresponding labeling, unless the claim recitations otherwise imply a particular sequence for implementing some or all of those elements, those elements are not necessarily intended to be limited to being implemented in that particular sequence.
(52) Many alternatives, modifications, and variations will be apparent to those skilled in the art in light of the above teachings. Of course, those skilled in the art will readily recognize that there are numerous applications of the disclosure beyond those described herein. While the present disclosure 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 disclosure. It is therefore to be understood that within the scope of the appended claims and their equivalents, the disclosure may be practiced otherwise than as specifically described herein.