In general, embodiments of the present invention relate to data encoding and decoding in communication systems. More specifically, the present invention relates to an apparatus and method for generating polar codes.
Reliable transmission of data over noisy communication channels generally requires some kind of error correction coding to be used. Polar codes were shown to achieve the Shannon capacity of many channels. See, E. Arikan, “Channel polarization: A method for constructing capacity achieving codes for symmetric binary-input memoryless channels”, IEEE Trans. on Inf. Theory, vol. 55, no. 7, pp. 3051-3073, July 2009).
In their original or classical construction as specified in the above mentioned work by Arikan, polar codes are based on the polarization effect generated by the Kronecker products of the following kernel:
In general, a classical polar code of length N and dimension K is defined by a generator matrix GN=T2⊗n, N=2n, and a set of frozen bit indices F⊂[N], [N]={0, 1, . . . , N−1}, wherein the size of the set of frozen bit indices F is given by |F|=N−K. A set of K information bit indices I is defined as the complementary set of the set of frozen bit indices, namely I=[N]\F, and therefore |I|=K.
In order to encode the K information bits into a polar code or codeword cN of length N, the elements ui of a binary input vector uN of length N are set equal to zero for i∈F and equal to the K information bits for i∈I. Then, the encoded polar code cN can be obtained as:
c
N
=u
N
·G
N.
According to the classical construction of polar codes, the effective generator matrix GN is a sub-matrix of T2⊗n formed by rows of T2⊗n. As a consequence, only polar codes having a length of powers of 2, namely N=2n, can be generated. Therefore, given a code dimension (i.e. number of information bits) K, classical polar codes admit only a polar code rate R=K/N, under the condition that N is a power of 2.
The relationship between the input vector uN and the polar code cN can also be represented by a Tanner graph. An example of such a graph is provided in
As already mentioned above, a major drawback of the polar codes constructed by making use of only one kernel, i.e. T2, is that the code lengths are restricted to powers of 2, i.e., N=2n. This is not sufficient to cover the diversity of block lengths demanded by modern communication systems. Using the so-called puncturing or shortening techniques from coding theory, the codes can be trimmed to any code length (see, e.g., “A Novel Puncturing Scheme for Polar Codes”, by Wang et. al., IEEE Comm. Lett., December 2014, “On the Puncturing Patterns for Punctured Polar Codes”, IEEE ISIT, July 2014, by Zhang et. al., and “Beyond Turbo Codes: Rate-Compatible Punctured Polar Codes”, IEEE ICC, June 2013, by C. Kai et al.). However, the main shortcomings of puncturing and shortening techniques of original polar codes is the lack of structure of the frozen sets and puncturing or shortening patterns generated by these methods. In particular, every modified code has a completely different set of frozen bit indices and puncturing or shortening pattern that has to be stored or calculated on the fly. Hence, these methods are not practical to implement due to their high latency and are not simple to describe in a systematic manner, such as tables of nested sets. Moreover, puncturing and shortening lead to a loss of performance compared to a full code.
Another approach to overcome the problem of the length of polar codes, which makes use of constructions of generator matrices based on several kernels, is disclosed in PCT/EP2016/069593. On the basis of this approach, multi-kernel polar codes of lengths N that are not only powers of two can be constructed. In particular, the original polar codes constructed on the basis of the kernel T2 are a sub-case of multi-kernel polar codes wherein the block length N is a power of 2. In general, multi-kernel polar codes have a good performance while the encoding complexity remains low, and the decoding follows the same general structure as for usual binary kernel codes. In particular, the original polar codes constructed on the basis of the kernel T2 are a sub-case of multi-kernel polar codes where the block length N is a power of 2. The multi-kernel construction of polar codes largely increases the number of code lengths that can be achieved without making use of the techniques of puncturing or shortening. However, the performance of multi-kernel polar codes crucially depends on the kernels which are used to construct the generator matrix.
Furthermore, in the construction of polar codes, besides the importance of determining a good generator matrix GN, the generation of the set of information bit indices plays also a very important role. In fact, the main idea behind the classical construction of polar codes is that, based on successive-cancellation (SC) decoding, some bit indices of the input vector uN can be more reliable than other bit indices in terms of transmission probability or reliability, and this is also known as the polarization phenomenon, and thus the name “polar code”.
In a current system, the information bits are put in the most reliable positions of the input vector uN, while the unreliable positions are fixed to the bit value 0, also called frozen bits. The reliability of input bit positions can be obtained, for example, by density evolution algorithms, genie-aided simulation, or other similar methods (e.g., see “A comparative study of polar code constructions for the AWGN channel,” by H. Vangala et. al, arXiv:1501.02473, 2015). Such a construction of polar codes is appropriate especially for long codes under SC decoding. However, for short codes under list decoding, such a construction of polar codes, and, in particular, of multi-kernel polar codes does not provide a good block error rate (BLER) performance. This is due to the fact that this construction relies on the polarization effect as mentioned above, and polarization needs a large code length to be effective. Thus, for short code lengths, the polarization does not occur. Moreover, the density evolution algorithm employed in the calculation of the reliabilities of the bits is quite complex, and this increases the latency of the encoder used to encode the input vector uN and of the decoder used to decode the polar code cN in order to obtain uN. In particular, this is an important issue for short codes, where the complexity of the density evolution algorithm is significant compared to the encoding complexity.
Thus, there is a need for an improved apparatus and method for generating a polar code in a less complex manner.
It is an object of the invention to provide for an improved apparatus and method for generating a polar code in a less complex manner.
The foregoing and other objects are achieved by the subject matter of the independent claims. Further implementation forms are apparent from the dependent claims, the description and the figures.
According to a first aspect, embodiments of the present invention relate to an apparatus for generating a polar code cN of length N and dimension K, on the basis of a generator matrix GN of size N×N, wherein the generator matrix GN is based on a kernel Tp of size p×p, with p≤N. The polar code cN is given by cN=uN·GN, wherein uN=(u0, . . . , uN-1) is a vector of size N, ui, i=0, . . . N−1, corresponding to an information bit if i∈I, I being a set of K information bit indices, and ui=0, if i∈F, F being a set of N−K frozen bit indices. The apparatus comprises a processor configured to: generate a distance spectrum vector dT
Thus, an improved apparatus for generating a polar code in a less complex manner is provided.
In a first possible implementation form of the apparatus according to the first aspect as such, p=3 and the kernel T3 is given by the following equation:
In a second possible implementation form of the apparatus according to the first implementation form of the first aspect, the generator matrix GN is given by the following equation:
G
N
=G′
n
⊗T
3,
wherein G′n represents a first additional generator matrix and ⊗ represents the Kronecker product operator.
In a third possible implementation form of the apparatus according to the second implementation form of the first aspect, the processor is further configured to generate the distance spectrum vector dG
d
G
=d
G′
⊗d
T
,
wherein dG′
In a fourth possible implementation form of the apparatus according to the first aspect as such, p=5 and the kernel T5 is given by following equation:
In a fifth possible implementation form of the apparatus according to the fourth implementation form of the first aspect, the generator matrix GN is given by the following equation:
G
N
=G″
m
⊗T
5,
wherein G″m represents a second additional generator matrix and ⊗ represents the Kronecker product operator.
In a sixth possible implementation form of the apparatus according to the fifth implementation form of the first aspect, the processor is further configured to generate the distance spectrum vector dG
d
G
=d
G″
⊗d
T
,
wherein dG′
In a seventh possible implementation form of the apparatus according to the first aspect as such or any one of the first to sixth implementation form thereof, the first row of the kernel Tp has a maximum Hamming weight among all rows of the kernel Tp.
In an eighth possible implementation form of the apparatus according to the seventh implementation form of the first aspect, the generator matrix GN can be written as follows:
G
N
=G
q
⊗G
p,
wherein Gq is a third generator matrix of a code of size q and Gp is a fourth generator matrix of a code of size p, and wherein, in order to generate the set of K information bit indices I. The processor is further configured to: generate a vector:
r
G
=(dG
The processor is further configured to generate an auxiliary vector:
r′
G
=(dG
The processor is further generate a vector rG
According to a second aspect, embodiments of the present invention relate to a communication apparatus comprising a channel encoder comprising an apparatus for generating a polar code according to the first aspect as such or any one of the first to eighth implementation form thereof.
According to a third aspect, embodiments of the present invention relate to a communication apparatus comprising a channel decoder comprising an apparatus for generating a polar code according to the first aspect as such or any one of the first to eighth implementation form thereof.
According to a fourth aspect, embodiments of the present invention relate to a method for generating a polar code cN of length N and dimension K on the basis of a generator matrix GN of size N×N, wherein the generator matrix GN is based on a kernel Tp of size p×p, with p≤N. The polar code cN is given by cN=uN·GN, wherein uN=(u0, . . . , uN-1) is a vector of size N, ui, i=0, . . . N−1, corresponding to an information bit if i∈I, I being a set of K information bit indices, and ui=0, if i∈F, F being a set of N−K frozen bit indices. The method comprises: generating a distance spectrum vector dT
Thus, an improved method for generating a polar code in a less complex manner is provided.
The method according to the fourth aspect of the embodiments of the present invention can be performed by the apparatus according to the first aspect of the invention. Further features of the method according to the fourth aspect of the embodiments of the preset invention result directly from the functionality of the apparatus according to the first aspect of the embodiments of the present invention and its different implementation forms.
According to a fifth aspect, embodiments of the present invention relate to a computer program comprising a program code for performing the method according to the fourth aspect when executed on a computer.
The invention can be implemented in hardware and/or software.
Further embodiments of the invention will be described with respect to the following figures, wherein:
In the various figures, identical reference signs will be used for identical or at least functionally equivalent features.
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 invention 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 invention. The following detailed description, therefore, is not to be taken in a limiting sense, as the scope of the present invention is defined by the appended claims.
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.
The apparatus 110a can generate the polar code cN of length N and dimension K, on the basis of a generator matrix GN of size N×N, wherein the generator matrix GN is based on a kernel Tp of size p×p, with p≤N, wherein the polar code cN is given by cN=uN·GN, wherein uN=(u0, . . . , uN-1) is a vector of size N, ui, i=0, . . . N−1, corresponding to an information bit if i∈I, I being a set of K information bit indices, and ui=0, if i∈F, F being a set of N−K frozen bit indices. The apparatus 110a comprises a processor 110a-1, wherein the processor 110a-1 is configured to perform the following steps: (i) generate a distance spectrum vector dT
Thus, as will be appreciate, in an embodiment of the invention, the generation of the polar code cN can be divided into two main steps: firstly, the generator matrix GN having good distance properties is constructed, and then the set of K information bit indices of the polar code or of the multi-kernel polar code is generated on the basis of the distance properties of the generator matrix GN, as will be described in more detail in the following.
In embodiment of the invention, for codes having short lengths, the kernel Tp can be constructed in such a way that the code distance is taken into account. For a given kernel Tp, the minimum distance of a code based on Tp is closely related to the minimum Hamming weight of vectors in the space spanned by the rows selected to generate the set of K information bit indices I. In multi-kernel polar codes, the number of rows of GN to be selected depends on the number of information bits, namely on K. Traditionally (see e.g., the aforementioned work by Arikan), the rows of GN are selected according to a transmission reliability order, namely the K information bits are put in the K most reliable positions of the input vector uN, while the unreliable positions (frozen bits) are fixed to the bit value o. As a result, codes of same length but different dimension are nested, i.e., the set of information bit indices of the code of a smaller rate is a subset of the set of information bit indices of the code of a larger rate, differently from embodiments of the present invention, where different subsets of rows for different information set sizes are selected. In this way, the information sets of codes of different dimension may not be nested.
In embodiments of the invention, for p=3, the kernel T3 of size 3×3 is given by:
This kernel shows polarization effects similar to the one shown by the conventional kernel T2, and shows optimal properties in terms of the distance profile.
In embodiments of the invention, p=5 and the kernel T5 is given by following equation:
In order to better elucidate some advantages of the generation of polar codes according to embodiments of the present invention compared to prior art solutions, the distance spectrum vector dT
Since the kernel T3 has a size of 3×3, only codes of size 3 having a dimension K=1, 2 or 3 can be generated: c3=u3·T3.
If K=1, one row i of the kernel T3 can be selected, or equivalently the information bit can be put in the i-th component of the input vector u3. In particular, in order to maximize the minimum distance of the polar code c3, the first row (1 1 1) is selected, giving a minimum distance 3. Any other row selection would result in a smaller minimum distance, namely 2. In fact, the only possible non-zero input sequences for u3 are {1 0 0}, {0 1 0}, and {0 0 1}, for the first, second and third bits being chosen as information bits, respectively. This results in the codes or codewords c3: {111}, {101}, {011}, which have minimum distances 3, 2, and 2, respectively. Therefore, by choosing the first row, the codeword having maximum value, i.e. 3, among all possible values of the minimum distances is obtained. In particular, in case K=1, the obtained set of codewords corresponds to the rows of the generator matrix, which in this case is T3.
If K=2, the possible input vectors are given by: u(2,3)={001,010,011}, if the two information bits are put into the last two rows of the kernel T3 (or equivalently correspond to the second and third elements of the input vector u3); u(1,3)={101,001,100}, if the two information bits are put into the first and third row of T3, respectively, and, analogously, u(1,2)={100,010,110}. The corresponding polar codes or codewords are given by: c(2,3)={011,101,110} (having minimum distance 2), c(1,3)={100,011,111} (having minimum distance 1), and c(1,2)={111,101,010} (having minimum distance 1), respectively. Therefore, in order to maximize the minimum distance among all possible minimum distances among all possible codewords, the last two rows
of T3 can be selected to place the two information bits, generating a code of minimum distance equal to 2.
If K=3, then all the rows of T3 have to be selected to put the 3 information bits. Namely, all non-zero input vectors are given by: u3={001,010,100,011,101,110,111} which results in a minimum distance 1 (since e.g. c(110)=010 has weight 1). Therefore, the distance spectrum vector d3 in this embodiment in given by: d3=(3,2,1).
The classical construction of the distance spectrum vector on the basis of the reliability of the transmission selects the last row for dimension 1, the last two rows for dimension 2, and all rows for dimension 3. This results in the classical distance spectrum vector d3=(2,2,1).
By comparing the distance spectrum vector used in embodiments of the invention and the classical distance spectrum vector, it can be seen that the construction of the polar code according to embodiments of the invention achieves a larger distance for dimension 1 (K=1) than the conventional construction based on reliabilities of the transmission.
In embodiments of the invention, the generator matrix GN is given by the Kronecker product of various kernels, e.g. T2 and T3. In this case, the generated code cN is a multi-kernel polar code and shows polarization properties. It can be proved that the distance spectrum vector of the Kronecker product of two or more kernels is given by the Kronecker product of the distance spectrum vectors of the kernels, sorted in descending order. This property can be used to easily calculate the distance spectrum vector of a multi-kernel code designed according to embodiments of the invention.
In order to better elucidate the construction of multi-kernel polar codes and of their distance spectrum vectors, in
In this embodiment, a code c6 of length 6 is obtained as c6=u6·G6, wherein u6 is an input vector of length 6 comprising K information bits and N−K frozen bits.
As mentioned above, in order to calculate the distance spectrum vector of G6, the Kronecker product of the distance spectrum vectors of T2 and T3 can be calculated according to the following formula:
d
6
=d
2
⊗d
3=(2,1)⊗(3,2,1)=(6,4,2,3,2,1),
wherein d2=(2,1) is the distance spectrum of the kernel T2. Sorting the result in descending order, the distance spectrum vector of G6 can be obtained for the minimum distance construction, namely: (6,4,3,2,2,1). This means that sets of information bit indices can be selected in order to obtain a code of dimension K=1 with minimum distance 6, of dimension K=2 with minimum distance 4, etc. On the other hand, the distance spectrum vector according to of the classical reliability construction is given by: (4,4,2,2,2,1). In this case as well, the construction of the polar code according to embodiments of the invention shows better distance properties compared to prior art constructions.
In embodiments of the invention, the distance spectrum vector dG
In embodiments of the invention, the kernel Tp with distance spectrum dT
As first, the distance spectrum of the kernel is used to create a vector rT
First, the vector rG
This algorithm finds an optimal solution if only one kernel of size larger than 2 is used in the multi-kernel construction. It may also be applied in the case of multiple kernels of size larger than 2, leading to good results, as demonstrated by simulations illustrated in
In order to better elucidate the steps of the row selection algorithm according to embodiments of the invention, the set of information bit indices I obtained for the exemplary generator matrix G6 described above is shown in table 1, wherein
and wherein the differences between the vector r6 and the vector r6′ are indicated in boldface. In particular, in table 1, the set of information bit indices I calculated by means of the row selection algorithm following the distance criterion according to embodiments of the invention and the set of information bit indices obtained by using the conventional criterion based on transmission reliability are shown for different dimensions K. In table 1, the differences between the two sets of information bit indices are indicated in boldface.
6
3
The bit positions or indices of u6 ordered according a decreasing reliability are [5,4,2,3,1,0]. For example, if the coding rate is fixed to R=½, which means that there are K=3 information bits (R=K/N), then the 3 information bits are put in the 3 most reliable bit positions, corresponding to the bits [u5, u4, u2], while the 3 less reliable bits are fixed to o, i.e., they are frozen bits. Therefore, according to the classical construction of polar codes, the set of indices {5,4,2} of the input vector u6 defines the set of information bit indices I, while the remaining indices, namely the set of indices {3,1,0}, form the set of frozen bit indices F.
As it can be taken from table 1, the row selection algorithm according to embodiments of the invention, finds the set of information bit indices leading to the minimum distance as determined by the distance spectrum, and the code construction according to embodiments of the invention leads to a larger minimum distance than the code construction according to the criterion based on transmission reliability.
For example, let us assume that a polar code c6 of dimension N=6 is generated by encoding an information bit (K=1) by means of the generator matrix G6 according to the formula:
c
6
=u
6
·G
6,
wherein u=(u0,u1,u2,u3,u4,u5) comprises the information bit and N−K=5 frozen bits. According to the row selection algorithm implemented in embodiments of the invention, the fourth element of the vector u6 should correspond to the information bit, because the maximum value of the minimum distance (in this case 6) among all possible values of the minimum distance, a codeword can have, corresponds to the fourth element of the vector r6.
Once the input vector u6 is encoded generating the polar code c6, then the channel encoder 110 can send the polar code c6 to the channel decoder 130 over the communication channel 120. The channel decoder 130 can be a successive cancellation (SC) decoder, configured to decode the polar code c6.
In the SC decoder, input bits (on the left side of
Embodiments of the invention realize different advantages, such as the generation of multi-kernel polar codes based on a minimum distance criterion, and on the kernel T3. In order to lower the computational complexity of the construction of polar codes, a simple greedy algorithm is given in order to generate the set of information bit indices (and hence the set of frozen bit indices) of multi-kernel polar codes. In particular, the complexity of the algorithm according to embodiments of the invention is much lower than the complexity of state-of-the-art algorithms based on density evolution or similar methods. Therefore, embodiments of the invention lead to a lower encoding and decoding latency. Moreover, the encoding or decoding algorithm according to embodiments of the invention is more efficient compared to prior art algorithms (e.g., see aforementioned the work by Arikan), for which a mother code has to be punctured or shortened in order to get the same block length, and decoding has to be performed on a longer mother code.
As it can be seen in
is decoded using the SC-list decoding method with list size L=8. In this embodiment, the generator matrix is given by G40=T2⊗3⊗T5, wherein the kernel T5 is defined by:
Since there is only a T5 kernel at the rightmost of the Kronecker product of the generator matrix, in this case as well, the row selection algorithm provided by embodiments of the invention is optimal. The kernel T5 as well complies with the assumptions on the kernel as described above, and, therefore, the multi-kernel polar code according to embodiments of this invention (MK-dist) outperforms the other polar codes.
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.
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 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.
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 invention beyond those described herein. While the present invention 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 invention. It is therefore to be understood that within the scope of the appended claims and their equivalents, the invention may be practiced otherwise than as specifically described herein
This application is a continuation of International Application No. PCT/EP2016/082555, filed on Dec. 23, 2016, the disclosure of which is hereby incorporated by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/EP2016/082555 | Dec 2016 | US |
Child | 16443105 | US |