Apparatuses and methods for mapping frozen sets between polar codes and product codes
11323139 · 2022-05-03
Assignee
Inventors
- Carlo CONDO (Munich, DE)
- Valerio BIOGLIO (Boulogne Billancourt, FR)
- Ingmar Land (Boulogne Billancourt, FR)
Cpc classification
International classification
H03M13/00
ELECTRICITY
H03M13/29
ELECTRICITY
Abstract
A method generates a frozen vector associated with a polar code codeword on the basis of a frozen matrix associated with a product code codeword, the frozen matrix being of size N.sub.c×N.sub.r. The method includes replicating a first matrix row of the frozen matrix N.sub.c times to generate an expanded matrix row; replicating a first matrix column of the frozen matrix N.sub.r times to generate an expanded matrix column; generating the frozen vector on the basis of the expanded matrix row and the expanded matrix column. The disclosure further provides a method for generating a frozen matrix associated with a product code codeword on the basis of a frozen vector associated with a polar code codeword, wherein the product code codeword comprises a matrix of size N.sub.c×N.sub.r, and the frozen vector comprises a vector of size N with a plurality of bits.
Claims
1. A method for generating a frozen vector associated with a polar code codeword on the basis of a frozen matrix associated with a product code codeword, the frozen matrix being of size N.sub.r×N.sub.r, the frozen matrix comprising a plurality of bits, the method comprising: replicating a first matrix row of the frozen matrix N.sub.c, times to generate an expanded matrix row; replicating a first matrix column of the frozen matrix N.sub.r times to generate an expanded matrix column; generating the frozen vector on the basis of the expanded matrix row and the expanded matrix column, wherein a bit value of the frozen vector equals 1 in response to a corresponding bit of the expanded matrix row or a further corresponding bit of the expanded matrix column equaling 1 and, otherwise, the bit value of the frozen vector equals 0; and encoding a data based on the frozen vector.
2. The method of claim 1, further comprising: changing at least one bit of the frozen vector that is not frozen into a frozen bit, wherein the at least one bit of the frozen vector is at a position at which a reliability of a corresponding bit of the polar code codeword is lower than a predetermined threshold value.
3. The method of claim 1, further comprising: changing at least one further bit of the frozen vector that is frozen into an information bit, wherein the at least one further bit of the frozen vector is at a position at which a reliability of a corresponding bit of the polar code codeword is higher than a predetermined threshold value.
4. The method of claim 1, further comprising: decoding the product code codeword on the basis of the frozen vector associated with the polar code codeword using a polar code decoding scheme.
5. A method for generating a frozen matrix associated with a product code codeword on the basis of a frozen vector associated with a polar code codeword, the product code codeword comprising a matrix of size N.sub.r×N.sub.r, the frozen vector comprising a vector of size N, the vector comprising a plurality of bits, the method comprising: generating a first vector of size N.sub.r, wherein the first vector comprises a bit with a value of 1 at position k and multiple bits with a value of 0 at the other positions; expanding the first vector on the basis of the i.sup.th row of a transpose of a transformation matrix associated with the polarl code codeword to generate a first expanded vector, the transformation matrix being of size N.sub.r×N.sub.r; determining a bit value of the frozen matrix at position k for the i.sup.th row on the basis of the first expanded vector and the frozen vector, wherein the bit value of the frozen matrix at position k for the i.sup.th row is a frozen bit, in response to, for each bit of the first expanded vector that comprises a bit value of 1, a corresponding bit of the frozen vector also equaling 1; and encoding a data based on the frozen matrix.
6. The method of claim 5, further comprising: expanding the first vector by multiplying the first vector with each bit of the i.sup.th row of the transpose of the transformation matrix.
7. The method of claim 5, further comprising: generating a second vector of size N.sub.c, wherein the second vector comprises a bit with a value of 1 at position k and multiple bits with a value of 0 at the other positions; expanding the second vector on the basis of the j.sup.th row of a transpose of a further transformation matrix associated with the polar code codeword to generate a second expanded vector, the further transformation matrix being of size N.sub.r×N.sub.r; and determining a bit value of the frozen matrix at position k for the j.sup.th column on the basis of the second expanded vector and the frozen vector, wherein the bit value of the frozen matrix at position k for the j.sup.th column is a frozen bit, in response to, for each bit of the second expanded vector that comprises a bit value of 1, a corresponding bit of the frozen vector also equaling 1.
8. The method of claim 7, further comprising: expanding the second vector to generate the second expanded vector by multiplying the j.sup.th row of the transpose of the further transformation matrix with each bit of the second vector.
9. The method of claim 5, further comprising: changing at least one bit of the frozen matrix that is not frozen into a frozen bit, wherein the at least one bit of the frozen matrix is at a position at which a reliability of a corresponding bit of the product code codeword is lower than a predetermined threshold value.
10. The method of claim 5, further comprising: changing at least one further bit of the frozen matrix that is frozen into an information bit, wherein the at least one further bit of the frozen matrix is at a position at which a reliability of a corresponding bit of the product code codeword is higher than a predetermined threshold value.
11. The method of claim 5, further comprising: decoding the polar code codeword on the basis of the frozen matrix associated with the product code codeword using a product code decoding scheme.
12. A non-transitory computer-readable medium, having computer-executable instructions stored thereon for performing a method for generating a frozen matrix associated with a product code codeword on the basis of a frozen vector associated with a polar code codeword, the product code codeword comprising a matrix of size N.sub.r×N.sub.r, the frozen vector comprising a vector of size N, the vector comprising a plurality of bits, the computer-executable instructions, when executed by one or more processors, cause a processor to facilitate: generating a first vector of size N.sub.r, wherein the first vector comprises a bit with a value of 1 at position k and multiple bits with a value of 0 at the other positions; expanding the first vector on the basis of the i.sup.th row of a transpose of a transformation matrix associated with the polar code codeword to generate a first expanded vector, the transformation matrix being of size N.sub.r×N.sub.r; determining a bit value of the frozen matrix at position k for the i.sup.th row on the basis of the first expanded vector and the frozen vector, wherein the bit value of the frozen matrix at position k for the i.sup.th row is a frozen bit, if in response to, for each bit of the first expanded vector that comprises a bit value of 1, a respective corresponding bit of the frozen vector also equaling 1; and encoding a data based on the frozen matrix.
13. The non-transitory computer-readable medium of claim 12, wherein the processor executes the instructions to further facilitate: expanding the first vector by multiplying the first vector with each bit of the i.sup.th row of the transpose of the transformation matrix.
14. The non-transitory computer-readable medium of claim 12, wherein the processor executes the instructions to further facilitate: generating a second vector of size N.sub.c, wherein the second vector comprises a bit with a value of 1 at position k and multiple bits with a value of 0 at the other positions; expanding the second vector on the basis of the j.sup.th row of a transpose of a further transformation matrix associated with the polar code codeword to generate a second expanded vector, the further transformation matrix being of size N.sub.r×N.sub.r; and determining a bit value of the frozen matrix at position k for the j.sup.th column on the basis of the second expanded vector and the frozen vector, wherein the bit value of the frozen matrix at position k for the j.sup.th column is a frozen bit, if in response to, for each bit of the second expanded vector that comprises a bit value of 1, a corresponding bit of the frozen vector also equaling 1.
15. The non-transitory computer-readable medium of claim 14, wherein the processor executes the instructions to further facilitate: expanding the second vector to generate the second expanded vector by multiplying the j.sup.th row of the transpose of the further transformation matrix with each bit of the second vector.
16. The non-transitory computer-readable medium of claim 12, wherein the processor executes the instructions to further facilitate: changing at least one bit of the frozen matrix that is not frozen into a frozen bit, wherein the at least one bit of the frozen matrix is at a position at which a reliability of a corresponding bit of the product code codeword is lower than a predetermined threshold value.
17. The non-transitory computer-readable medium of claim 12, wherein the processor executes the instructions to further facilitate: changing at least one further bit of the frozen matrix that is frozen into an information bit, wherein the at least one further bit of the frozen matrix is at a position at which a reliability of a corresponding bit of the product code codeword is higher than a predetermined threshold value.
18. The non-transitory computer-readable medium of claim 12, wherein the processor executes the instructions to further facilitate: decoding the polar code codeword on the basis of the frozen matrix associated with the product code codeword using a product code decoding scheme.
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 various figures, identical reference signs will be used for identical or at least functionally equivalent features.
DETAILED DESCRIPTION
(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 is understood that other aspects may be utilized and structural or logical changes may be made without departing from the scope of the present disclosure. The following detailed description, therefore, is not to be taken in a limiting sense, as the scope of the present disclosure is defined be the appended claims.
(11) For instance, it is understood that a disclosure in connection with a described method may 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. Further, it is understood that the features of the various exemplary aspects described herein may be combined with each other, unless specifically noted otherwise.
(12) As will be described in more detail in the following, embodiments of the disclosure allow for inferring a frozen set of the polar code from that of component codes, and vice versa. Embodiments of the disclosure offer in particular the advantages of tuning the latency and error-correction performance towards a desired trade-off when both decoding approaches are applied.
(13)
(14) Given the fact that a polar code can be decoded as a product code and vice versa, the frozen set used by one encoding approach needs to be mapped to the frozen set used by the other. Embodiments of the disclosure can perform this two-way mapping and a mixed frozen set selection criterion, which is useful for error-correction performance and latency trade-off in case the two decoding approaches are combined.
(15) To allow different trade-offs in terms of decoding speed, complexity and error-correction performance, embodiments of the disclosure allow for the design of a novel frozen set F′, which can be viewed as an intermediate choice between the optimal frozen set for product decoding and the optimal frozen set for standard polar decoding.
(16) In an embodiment, a modified transmission system, which shows the use of the newly designed frozen set F′ and the new decoding architecture, is portrayed in
(17)
(18) As can be taken from
(19) In an embodiment, the processing unit 403 can change at least one bit of the frozen vector that is not frozen into a frozen bit, wherein the at least one bit of the frozen vector is at a position at which a reliability of a corresponding bit of the polar code codeword is lower than a predetermined threshold value, for instance, the corresponding bit of the polar code codeword is the least reliable. The relative reliability of bits can be computed according to different methods, including but not limited to Monte Carlo simulations, Gaussian Approximation, and Battacharyya parameter, as shown in, for example, 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. Similarly, the processing unit 403 can further change at least one further bit of the frozen vector that is frozen into an information bit, wherein the at least one further bit of the frozen vector is at a position at which a reliability of a corresponding bit of the polar code codeword is higher than a predetermined threshold value.
(20) According to an embodiment, an example of mapping the frozen set from product code to polar code is provided below, assuming that each row component code of a product polar code has a frozen set F.sub.r and each column component code has a frozen set F.sub.c. While a frozen set can be represented by the list of the bit indices of frozen bits, it is useful to represent F.sub.r (F.sub.c) as a vector of N.sub.r (N.sub.e) bits with a 0 if the corresponding bit is an information bit, and a 1 if the bit is frozen.
(21) For the sake of simplicity, every row component code is assumed to have the same frozen set F.sub.r in this example, and every column component code has frozen set F.sub.c. The following can be generalized in case of different frozen sets.
(22) To obtain the frozen set F of the N-bit polar code from F.sub.r and F.sub.c, the following steps need to be performed: First of all, F.sub.r is expanded into the N-bit F.sub.r-exp replicating F.sub.r N.sub.c times. For example, in case N.sub.r is equal to 4, N.sub.c is equal to 4, and F.sub.r is [1, 1, 0, 0], then F.sub.r-exp is [1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0].
(23) Secondly, F.sub.c is expanded into the N-bit F.sub.c-exp replicating the first bit of F.sub.c N.sub.r times, then the second bit of F.sub.c N.sub.r times, and so on. For example, in case N.sub.r is equal to 4, N.sub.c is equal to 4, and F.sub.c is [1, 1, 0, 0], then F.sub.c-exp is [1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0].
(24) Finally, F as F.sub.r-exp or F.sub.c-exp can be obtained meaning that F has a bit value of 1 where either F.sub.r-exp or F.sub.c-exp have a bit value of 1. Given that F.sub.r-exp=[1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0] and F.sub.c-exp=[1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0], then F=[1,1,1,1,1,1,1,1,1,1,0,0,1,1,0,0].
(25) The selection of F.sub.r and F.sub.c is independent of the described mapping.
(26) As for mapping the frozen set from polar code to product code, the mapping apparatus 411 in
(27) As can be taken from
(28) Next, the processing unit 413 can determine a bit value of the frozen matrix at position k for the i.sup.th row on the basis of the first expanded vector and the frozen vector, wherein the bit value of the frozen matrix at position k for the i.sup.th row is a frozen bit, if, for each bit of the first expanded vector that comprises a bit value of 1, a respective corresponding bit of the frozen vector also equals 1.
(29) Moreover, the processing unit 413 is further configured to: generate a second vector of size N.sub.c, wherein the second vector comprises a bit with a value of 1 at position k and multiple bits with a value of 0 at the other positions; and expand the second vector on the basis of the j.sup.th row of a transpose of a further transformation matrix associated with the polar-code codeword to generate a second expanded vector, by multiplying the j.sup.th row of the transpose of the further transformation matrix with each bit of the second vector, wherein the further transformation matrix is of size N.sub.r×N.sub.r.
(30) Finally, the processing unit 413 determines a bit value of the frozen matrix at position k for the j.sup.th column on the basis of the second expanded vector and the frozen vector, wherein the bit value of the frozen matrix at position k for the j.sup.th column is a frozen bit, if, for each bit of the second expanded vector that comprises a bit value of 1, a respective corresponding bit of the frozen vector also equals 1.
(31) In a further embodiment, the processing unit 413 can change at least one bit of the frozen matrix that is not frozen into a frozen bit, wherein the at least one bit of the frozen matrix is at a position at which a reliability of a corresponding bit of the product code codeword is lower than a predetermined threshold value. Also, the processing unit 413 can further change at least one further bit of the frozen matrix that is frozen into an information bit, wherein the at least one further bit of the frozen matrix is at a position at which a reliability of a corresponding bit of the product code codeword is higher than a predetermined threshold value.
(32) More specifically, an example of mapping the frozen set from polar code to product code is provided below, assuming that a polar code has a frozen set F, represented as the N-bit binary vector described previously. Given the product code representation of said code, F.sub.r.sup.i and F.sub.c.sup.j can be defined as the inferred frozen set of for row i and column j respectively. Also, T is defined as the transformation matrix for the N-bit polar code, and T.sup.t as its transpose.
(33) To identify F.sub.r.sup.i the following steps need to be performed for all N.sub.r bits, for 1≤i≤N.sub.c: first, to check if bit 1≤k≤N.sub.r of F.sub.r.sup.i is a frozen bit given F, building the N.sub.r-bit vector b.sub.k.sup.i that has a single 1 at the k-th bit. For example, with i=1, k=4, N.sub.r=8, then b.sub.4.sup.1=[0,0,0,1,0,0,0,0].
(34) A second step is expanding b.sub.k.sup.i into the N-bit b exp.sub.k.sup.i, by replicating b.sub.k.sup.i N.sub.c times according to the 1s in the i-th row of T.sup.t. For example, given b.sub.2.sup.3=[0,1,0,0] and the third row of T.sup.t being [1,0,0,1], then b exp.sub.k.sup.i=[0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0].
(35) A third step is comparing b exp.sub.k.sup.i, and F: bit k in F.sub.r is a frozen bit if, given the indices for which the entries of b exp.sub.k.sup.i are 1, also F has 1s. For example, given b exp.sub.2.sup.3=[0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0] and F=[1,1,0,0,1,0,0,1,0,0,0,0,1,1,1,1], then bit 2 in F.sub.r.sup.3 is a frozen bit, since all the 1s in b exp.sub.2.sup.3 are also is in F.
(36) To identify F.sub.c.sup.j the following steps need to be performed for all N.sub.c bits, for 1≤i≤N.sub.c: first, to check if bit 1≤k≤N.sub.c: of F.sub.c.sup.j is a frozen bit given F, building the N.sub.c-bit vector b.sub.k.sup.j that has a single 1 at the k-th bit. For example, with i=1, k=4, N.sub.c=8, then b.sub.4.sup.1=[0,0,0,1,0,0,0,0].
(37) A second step is expanding b.sub.k.sup.j into the N-bit b exp.sub.k.sup.j, by replicating the jth row of T.sup.t N.sub.c times according to the 1s in b.sub.k.sup.j. For example, given b.sub.2.sup.3=[0,1,0,0] and the third row of T.sup.t being [1,0,0,1], then b exp.sub.k.sup.j=[0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0].
(38) A third step is comparing b exp.sub.k.sup.j and F: bit k in F.sub.c is a frozen bit if, given the indices for which the entries of b exp.sub.k.sup.j are 1, also F has 1s. For example, given b exp.sub.2.sup.3=
(39) [0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0] and F=[1,1,0,0,1,0,0,1,0,0,0,0,1,1,1,1], then bit 2 in F.sub.c.sup.3 is a frozen bit, since all the 1s in b exp.sub.2.sup.3 are also is in F.
(40) The selection of F is independent of the described mapping.
(41) Given the mappings described above, two limited frozen set selection cases may be identified: a first case that F.sub.r and F.sub.c are selected and F is inferred; a second case in which F is selected, F.sub.r and F.sub.c are inferred.
(42) According to an embodiment, the two design approaches can be merged. Considering R as the desired rate of the length-N polar code, and the rate of the row and column component codes as R.sub.r and R.sub.c, wherein R.sub.r×R.sub.c≥R, as a first step, F.sub.r and F.sub.c are designed targeting optimal polar decoding of length-N.sub.r and length-N.sub.c polar codes. The inferred F has a rate of R.sub.r×R.sub.c: if R.sub.r×R.sub.c>R, the remainder of the frozen bit positions needed to achieve R is set as the least reliable positions of the length-N polar code that are not frozen in the inferred frozen set. The difference between R.sub.r×R.sub.c and R allows for trade-off latency and performance when the two decoding approaches are combined.
(43)
(44) In an embodiment, the product code decoder 505 for decoding a product code codeword comprises: the mapping apparatus 401 as shown above for generating a frozen vector associated with a polar code codeword on the basis of a frozen matrix associated with the product code codeword; and a decoding unit configured to decode the product code codeword on the basis of the frozen vector associated with the polar code codeword using a polar code decoding scheme.
(45) In an embodiment, the polar code decoder 507 for decoding a polar code codeword comprises: the mapping apparatus 411 as shown above for generating a frozen matrix associated with a product code codeword on the basis of a frozen vector associated with the polar code codeword; and a decoding unit configured to decode the polar code codeword on the basis of the frozen matrix associated with the product code codeword using a product code decoding scheme.
(46) Embodiments of the disclosure can provide three decoding approaches, which are based on the observation that a polar code codeword can be split into rows of a product code with row and column polar component codes, and vice versa.
(47) First, a polar product code can be decoded with polar code decoding algorithms. Secondly, a polar code can be decoded with product code decoding algorithms. Thirdly, a hybrid decoding approach can be performed by the following steps: a first step of considering the code as a product code and applying product-code decoding, i.e. iterative decoding of the row and column polar component codes and exchanging of information between the two phases; a second step of considering the code as a single polar code of length N and applying polar decoding in case errors are left after the first step.
(48) The first decoding step as mentioned above allows the parallelization of polar code decoding process, reducing latency. Implementation complexity can be tuned depending on the number of parallel component code decoders instantiated. The second decoding step improves the error-correction performance by strengthening the decoding process with the decoding of a longer code. It is activated with a probability γ. As channel conditions improve, γ tends to be 0, thus having negligible impact on the average decoding latency. 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 at the first step, thus maximizing resource sharing.
(49)
(50) The method 600 comprises the following steps: a first step 601 of replicating a first matrix row of the frozen matrix N.sub.c times to generate an expanded matrix row; a second step 603 of replicating a first matrix column of the frozen matrix N.sub.r times to generate an expanded matrix column; and a third step 605 of generating the frozen vector on the basis of the expanded matrix row and the expanded matrix column, wherein a respective bit value of the frozen vector equals 1 if a respective corresponding bit of the expanded matrix row or a further respective corresponding bit of the expanded matrix column equals 1 and, otherwise, the respective bit value of the frozen vector equals 0.
(51)
(52) The method 700 comprises the following steps: a first step 701 of generating a first vector of size N.sub.r, wherein the first vector comprises a bit with a value of 1 at position k and multiple bits with a value of 0 at the other positions; a second step 703 of expanding the first vector on the basis of the i.sup.th row of a transpose of a transformation matrix associated with the polar-code codeword to generate a first expanded vector, the transformation matrix being of size N.sub.c×N.sub.c; and a third step 705 of determining a bit value of the frozen matrix at position k for the i.sup.th row on the basis of the first expanded vector and the frozen vector, wherein the bit value of the frozen matrix at position k for the i.sup.th row is a frozen bit, if, for each bit of the first expanded vector that comprises a bit value of 1, a respective corresponding bit of the frozen vector also equals 1.
(53) In a further embodiment, the method 700 comprises more steps as follows: a step of generating a second vector of size N.sub.c, wherein the second vector comprises a bit with a value of 1 at position k and multiple bits with a value of 0 at the other positions; a step of expanding the second vector on the basis of the j.sup.th row of a transpose of a further transformation matrix associated with the polar-code codeword to generate a second expanded vector, the further transformation matrix being of size N.sub.r×N.sub.r; and a step of determining a bit value of the frozen matrix at position k for the j.sup.th column on the basis of the second expanded vector and the frozen vector, wherein the bit value of the frozen matrix at position k for the j.sup.th column is a frozen bit, if, for each bit of the second expanded vector that comprises a bit value of 1, a respective corresponding bit of the frozen vector also equals 1.
(54) 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.
(55) 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.
(56) 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.
(57) 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 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 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.