Devices and methods for generating block punctured polar codes
11245422 · 2022-02-08
Assignee
Inventors
- Mikhail Sergeevich Kamenev (Moscow, RU)
- Iuliia Borisovna Kameneva (Moscow, RU)
- Jie Jin (Moscow, RU)
- Oleg Feat'evich Kurmaev (Moscow, RU)
Cpc classification
International classification
H03M13/00
ELECTRICITY
Abstract
The device and method disclosed herein are configured for generating a polar code of length N and dimension K on the basis of an original polar code being defined by a code sequence S having N.sub.max bit indices sorted from least reliable to most reliable sub-channels. The device comprises a processing unit configured to: (a) generate an auxiliary code sequence having N.sub.max/2 bit indices by removing bit indices greater than or equal to N.sub.max/2 from the code sequence S; (b) remove from the auxiliary code sequence the last N.sub.R bit indices to generate a modified auxiliary code sequence; and (c) generate the polar code of length N and dimension K by puncturing the original polar code on the basis of a puncturing set defined by the last p=N.sub.max−N bit indices of the modified auxiliary code sequence.
Claims
1. A device for generating a polar code of length N and dimension K on the basis of an original polar code being defined by a code sequence S having N.sub.max bit indices, wherein the device comprises a processor configured to: generate an auxiliary code sequence having N.sub.max/2 bit indices by removing bit indices greater than or equal to N.sub.max/2 from the code sequence S; remove from the auxiliary code sequence the last N.sub.R bit indices to generate a modified auxiliary code sequence, wherein N.sub.R denotes the number of removed bits; determine the number of removed bits N.sub.R on the basis of N.sub.max, N and a predefined code rate R; and generate the polar code of length N and dimension K by puncturing the original polar code on the basis of a puncturing set defined by the last p=N.sub.max−N bit indices of the modified auxiliary code sequence.
2. The device of claim 1, wherein the processor is configured to determine the number of removed bits N.sub.R on the basis of the following equation:
N.sub.R=round(ap+b), wherein round( . . . ) denotes a rounding function and a and b denote parameters, which depend on N.sub.max and the predefined code rate R.
3. The device of claim 2, wherein the device further comprises a memory unit and wherein the processor is configured to determine the parameters a and b on the basis of a look-up table stored in the memory.
4. The device of claim 3, wherein the processor is configured to determine the parameters a and b on the basis of auxiliary parameters a′ and b′ provided in the look-up table and the following equations:
a=f(R)a′,
b=f(R)b′, wherein f(R) denotes a function of the predefined code rate R and wherein the auxiliary parameters a′ and b′ depend on N.sub.max.
5. The device of claim 4, wherein the processor is configured to determine the auxiliary parameters a′ and b′ on the basis of the look-up table and the look-up table is: TABLE-US-00003 N.sub.max b′ a′ 64 32.455 −0.87273 128 77.319 −1.2332 256 138.56 −1.1028 512 275.89 −1.1111 1024 572.83 −1.1649
6. The device of claim 4, wherein the processor is configured to determine the parameters a and b on the basis of the auxiliary parameters a′ and b′ provided in the look-up table and the following equations:
a=R.sup.2a′,
b=R.sup.2b′.
7. The device of claim 1, wherein the processor is configured to determine the number of removed bits N.sub.R on the basis of the following equation:
N.sub.R=max(0,round(ap+b)), wherein round( . . . ) denotes a rounding function, max( . . . ) denotes the maximum function and a and b denote parameters, which depend on N.sub.max and the predefined code rate R.
8. A method for generating a polar code of length N and dimension K on the basis of an original polar code being defined by a code sequence S having N.sub.max bit indices, wherein the method comprises: generating an auxiliary code sequence having N.sub.max/2 bit indices by removing bit indices greater than or equal to N.sub.max/2 from the code sequence S; removing from the auxiliary code sequence the last N.sub.R bit indices to generate a modified auxiliary code sequence, wherein N.sub.R denotes the number of removed bits and wherein the number of removed bits N.sub.R is determined on the basis of N.sub.max, N and a predefined code rate R; and generating the polar code of length N and dimension K by puncturing the original polar code on the basis of a puncturing set defined by the last p=N.sub.max−N bit indices of the modified auxiliary code sequence.
9. The method of claim 8, wherein the number of removed bits N.sub.R is determined on the basis of the following equation:
N.sub.R=round(ap+b), wherein round( . . . ) denotes a rounding function and a and b denote parameters, which depend on N.sub.max and the predefined code rate R.
10. The method of claim 9, wherein the parameters a and b are determined on the basis of a look-up table.
11. The method of claim 10, wherein the parameters a and b are determined on the basis of auxiliary parameters a′ and b′ provided in the look-up table and the following equations:
a=f(R)a′,
b=f(R)b′, wherein f(R) denotes a function of the predefined code rate R and wherein the auxiliary parameters a′ and b′ depend on N.sub.max.
12. The method of claim 11, wherein the auxiliary parameters a′ and b′ are determined on the basis of the look-up table and the look-up table is: TABLE-US-00004 N.sub.max b′ a′ 64 32.455 −0.87273 128 77.319 −1.2332 256 138.56 −1.1028 512 275.89 −1.1111 1024 572.83 −1.1649
13. The method of claim 11, wherein the parameters a and b are determined on the basis of the auxiliary parameters a′ and b′ provided in the look-up table and the following equations:
a=R.sup.2a′,
b=R.sup.2b′.
14. The method of claim 8, wherein the number of removed bits N.sub.R is determined on the basis of the following equation:
N.sub.R=max(0,round(ap+b)), wherein round( . . . ) denotes a rounding function, max( . . . ) denotes the maximum function and a and b denote parameters, which depend on N.sub.max and the predefined code rate R.
15. A non-transitory computer storage medium storing a program code, wherein when the program code is executed by a computer, the program code causes the computer to perform: generating an auxiliary code sequence having N.sub.max/2 bit indices by removing bit indices greater than or equal to N.sub.max/2 from the code sequence S; removing from the auxiliary code sequence the last N.sub.R bit indices to generate a modified auxiliary code sequence, wherein N.sub.R denotes the number of removed bits and wherein the number of removed bits N.sub.R is determined on the basis of N.sub.max, N and a predefined code rate R; and generating the polar code of length N and dimension K by puncturing the original polar code on the basis of a puncturing set defined by the last p=N.sub.max−N bit indices of the modified auxiliary code sequence.
16. The computer storage medium of claim 15, wherein the number of removed bits N.sub.R is determined on the basis of the following equation:
N.sub.R=round(ap+b), wherein round( . . . ) denotes a rounding function and a and b denote parameters, which depend on N.sub.max and the predefined code rate R.
17. The computer storage medium of claim 16, wherein the parameters a and b are determined on the basis of a look-up table.
18. The computer storage medium of claim 17, wherein the parameters a and b are determined on the basis of auxiliary parameters a′ and b′ provided in the look-up table and the following equations:
a=f(R)a′,
b=f(R)b′, wherein f(R) denotes a function of the predefined code rate R and wherein the auxiliary parameters a′ and b′ depend on N.sub.max.
19. The computer storage medium of claim 18, wherein the auxiliary parameters a′ and b′ are determined on the basis of the look-up table and the look-up table is: TABLE-US-00005 N.sub.max b′ a′ 64 32.455 −0.87273 128 77.319 −1.2332 256 138.56 −1.1028 512 275.89 −1.1111 1024 572.83 −1.1649
20. The computer storage medium of claim 19, wherein the parameters a and b are determined on the basis of the auxiliary parameters a′ and b′ provided in the look-up table and the following equations:
a=R.sup.2a′,
b=R.sup.2b′.
21. The computer storage medium of claim 15, wherein the number of removed bits N.sub.R is determined on the basis of the following equation:
N.sub.R=max(0,round(ap+b)), wherein round( . . . ) denotes a rounding function, max( . . . ) denotes the maximum function and a and b denote parameters, which depend on N.sub.max and the predefined code rate R.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) Further embodiments of the invention will be described with respect to the following figures, wherein:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11) In the various figures, identical reference signs will be used for identical or at least functionally equivalent features.
DETAILED DESCRIPTION OF EMBODIMENTS
(12) 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.
(13) 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.
(14)
(15) Generally, a polar code is a (N=2.sup.m, K) linear block code generated by K rows j.sub.i∈{0, . . . , N−1}\F, 0≤i<K of matrix
(16)
where S.sup..Math.m denotes the m-fold Kronecker product of the matrix S with itself. The encoding algorithm is as follows: c.sub.0.sup.N-1=u.sub.0.sup.N-1A.sub.log.sub.
(17) The first communication apparatus 202 comprises a channel encoder 202a, wherein the channel encoder 202a comprises the device 202b for generating a polar code of length N and dimension K on the basis of an original polar code being defined by a code sequence S having N.sub.max bit indices sorted from least reliable to most reliable sub-channels. N.sub.max is usually a power of 2, i.e. N.sub.max=2.sup.m, N and K can be arbitrary positive integers smaller than N.sub.max with N.sub.max=2.sup.[log.sup.
(18) The second communication apparatus 204 comprises a channel decoder 204a, wherein the channel decoder 204a comprises a device 204b for generating a polar code of length N and dimension K on the basis of an original polar code being defined by a code sequence S having N.sub.max bit indices sorted from least reliable to most reliable sub-channels. The channel decoder 204a of the second communication apparatus 204 is configured to decode the encoded data provided by the first communication apparatus 202, for instance, on the basis of a successive-cancellation (SC) scheme or a successive-cancellation list (SCL) scheme. In an embodiment, the channel decoder 204a is configured to decode N log likelihood ratios of codeword bits into an information message of size K on the basis of the polar code generated by the processing unit 204c of the device 204b.
(19) As can be taken from
(20) As will be described in more detail further below, the processing unit 202c of the device 202b of the first communication apparatus 202 is configured to: (a) generate an auxiliary code sequence having N.sub.max/2 bit indices by removing bit indices greater than or equal to N.sub.max/2 from the code sequence S; (b) remove from the auxiliary code sequence the last N.sub.R bit indices to generate a modified auxiliary code sequence, wherein N.sub.R denotes the number of removed bits and wherein the processing unit 202c is configured to determine the number of removed bits N.sub.R on the basis of N.sub.max, N and a predefined code rate R; and (c) generate the polar code of length N and dimension K by puncturing the original polar code on the basis of a puncturing set defined by the last p=N.sub.max−N bit indices of the modified auxiliary code sequence.
(21) The above described construction of the puncturing set of bits or bit indices is illustrated in
(22)
(23) In an embodiment, the processing unit 202c of the device 202b of the first communication apparatus 202 is configured to determine the number of removed bits N.sub.R on the basis of the following equation:
N.sub.R=round(ap+b),
wherein round( . . . ) denotes a rounding function and a and b denote parameters, which depend on N.sub.max and the predefined code rate R. In an embodiment, the rounding function can be a ceiling function or a floor function. In an embodiment, the processing unit 202c of the device 202b of the first communication apparatus 202 is configured to determine the number of removed bits N.sub.R on the basis of the following equation:
N.sub.R=max(0,round(ap+b)),
wherein max( . . . ) denotes the maximum function.
(24) In an embodiment, the device 202b of the first communication apparatus 202 (and likewise the device 204b of the second communication apparatus 204) can further comprise a memory unit, wherein the processing unit 202c is configured to determine the parameters a and b on the basis of a look-up table stored in the memory unit.
(25) In an embodiment, the processing unit 202c of the device 202b of the first communication apparatus 202 is configured to determine the parameters a and b on the basis of auxiliary parameters a′ and b′ provided in the look-up table and the following equations:
a=f(R)a′,
b=f(R)b′,
wherein f(R) denotes a function of the predefined code rate R and wherein the auxiliary parameters a′ and b′ depend on N.sub.max.
(26) In an embodiment, the processing unit 202c of the device 202b of the first communication apparatus 202 is configured to determine the auxiliary parameters a′ and b′ on the basis of the following look-up table:
(27) TABLE-US-00002 N.sub.max b′ a′ 64 32.455 −0.87273 128 77.319 −1.2332 256 138.56 −1.1028 512 275.89 −1.1111 1024 572.83 −1.1649
(28) In an embodiment, the processing unit 202c of the device 202b of the first communication apparatus 202 is configured to determine the parameters a and b on the basis of the auxiliary parameters a′ and b′ provided in the look-up table and the following equations:
a=R.sup.2a′,
b=R.sup.2b′.
(29) In an embodiment, the channel encoder 202a of the first communication apparatus 202 is configured to use as a set of frozen bits the bits defined by the N.sub.max−N bit indices of the code sequence S defined by the puncturing set and the first N−K bit indices of the code sequence S without the puncturing set for encoding an information message of size K into a codeword of size N on the basis of the polar code generated by the processing unit 202c of the device 202b.
(30) Likewise, in an embodiment, the channel decoder 204a of the second communication apparatus is configured to use as a set of frozen bits the bits defined by the N.sub.max−N bit indices of the code sequence S defined by the puncturing set and the first N−K bit indices of the code sequence S without the puncturing set for decoding N log likelihood ratios of codeword bits into an information message of size K on the basis of the polar code generated by the processing unit 204c of the device 204b.
(31) In the following, some of the embodiments described above are summarized in an algorithmic form.
(32) The scheme for generating the puncturing set P as implemented in the device 202a, 204a according to an embodiment can be summarized as the following Algorithm 1:
(33) Input:
(34) Code sequence S of length N.sub.max;
(35) Number of punctured bits p;
(36) Lookup table LT (as described above);
(37) Code rate R.
(38) Output:
(39) Set P of bits to be punctured.
(40) 1. Set S.sub.2 to be vector of size N.sub.max/2;
(41) 2. j=0;
(42) 3. For i from 0 to N.sub.max−1: a. If S[i]<N.sub.max/2 then: i. S.sub.2[j]=S[i]; ii. j=j+1.
(43) 4. Based on N.sub.max and lookup table LT, set a′, b′;
(44) 5. a=a′R.sup.2, b=b′R.sup.2;
(45) 6. N.sub.R=round(ap+b) or N.sub.R=max(0,round(ap+b));
(46) 7. P=S.sub.2[N.sub.max−N.sub.R−p, . . . , N.sub.max−N.sub.R−1];
(47) The scheme for encoding an information message of length K into a codeword of length N, using a (N.sub.max=2.sup.[log.sup.
(48) Input:
(49) Bit sequence I of length K;
(50) Required codeword length N, N.sub.max=2.sup.[log.sup.
(51) Code sequence S of length N.sub.max;
(52) Lookup table LT (as described above).
(53) Output:
(54) Codeword C of length N.
(55) 1. Using Algorithm 1, determine set of punctured bits P of size p=N.sub.max−N;
(56) 2. S=S\P;
(57) 3. Frozen bits set F=S[0, . . . , N−K−1]∪P;
(58) 4. Encode message l into codeword C using (N.sub.max, K) Polar code, with frozen channels defined in accordance with set F;
(59) 5. C=C[{0, . . . , N.sub.max−1}\P].
(60) The scheme for decoding the codeword obtained using Algorithm 2 as implemented in the channel decoder 204a according to an embodiment can be summarized as the following Algorithm 3:
(61) Input:
(62) Vector L of log likelihood ratios (LLRs) of codeword bits of length N, N.sub.max=2.sup.[log.sup.
(63) Required information message length K;
(64) Code sequence S of length N.sub.max;
(65) Lookup table LT (as described above).
(66) Output:
(67) Information message I of length K.
(68) 1. Using Algorithm 1, determine set of punctured bits P of size p=N.sub.max−N;
(69) 2. Set L.sub.F to be vector of size N.sub.max consisting of all zeroes;
(70) 3. j=0;
(71) 4. For i from 0 to N.sub.max−1: a. If i∈P then continue; b. L.sub.F[i]=L[j]; c. j=j+1;
(72) 5. S=S\P;
(73) 6. Frozen bits set F=S[0, . . . , N−K−1]∪P;
(74) 7. Decode codeword defined by LLRs vector L.sub.F into information message I using (N.sub.max, K) Polar code, with frozen channels defined in accordance with set F.
(75)
(76) The puncturing scheme implemented in embodiments of the invention allows constructing polar codes of any length, which demonstrate a better or similar performance in comparison with polar codes generated by rate matching schemes. Corresponding simulation results for code rates 1/3, 1/4, . . . , 1/8 are presented in
(77) In
(78) In
(79)
(80) 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.
(81) 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.
(82) 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.
(83) 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.