Method and apparatus for encoding and decoding of variable length quasi-cyclic low-density parity-check, QC-LDPC, codes
10931310 ยท 2021-02-23
Assignee
Inventors
- Vasily Stanislavovich Usatyuk (Moscow, RU)
- Ilya Viktorovich Vorobyev (Moscow, RU)
- Nikita Andreevich Polianskii (Moscow, RU)
- German Viktorovich Svistunov (Moscow, RU)
Cpc classification
H03M13/036
ELECTRICITY
H03M13/6516
ELECTRICITY
H03M13/116
ELECTRICITY
H03M13/1188
ELECTRICITY
H03M13/1182
ELECTRICITY
H03M13/635
ELECTRICITY
International classification
H03M13/03
ELECTRICITY
Abstract
A method for quasi-cyclic low-density parity-check (QC-LDPC) encoding and decoding of a data packet by a lifted matrix is provided, the method comprising: lifting the QC-LDPC code for maximal code length N.sub.max and maximal circulant size Z.sub.upper of the base matrix; generating a plurality of optimal values r.sub.i for a plurality of circulants Z.sub.1, Z.sub.2, . . . , Z.sub.upper based on the QC-LDPC code lifted for maximal length N.sub.max, 0r.sub.iZ.sub.upper1; saving the generated plurality of optimal values r.sub.i corresponding to the plurality of circulants Z.sub.1, Z.sub.2, . . . , Z.sub.upper and a matrix for the QC-LDPC code lifted for maximal length N.sub.max in the memory; receiving a current circulant Z.sub.current from the plurality of circulants Z.sub.1, Z.sub.2, . . . , Z.sub.upper; selecting a current optimal value r.sub.current from the plurality of optimal values r.sub.i stored in the memory corresponding to the current circulant Z.sub.current; and lifting the base matrix based on the current optimal value r.sub.current.
Claims
1. A method for quasi-cyclic low-density parity-check (QC-LDPC) encoding and decoding, comprising: receiving a data packet; determining a circulant Z.sub.current from a plurality of circulants Z.sub.1, Z.sub.2, . . . , Z.sub.upper; selecting a value r.sub.current from a plurality of values r.sub.i stored in a memory corresponding to the circulant Z.sub.current; obtaining a lifted matrix based on the value r.sub.current; and performing QC-LDPC coding on the data packet for error correction based on the lifted matrix, wherein the lifted matrix is obtained by a floor scale modular lifting of a base matrix of a QC-LDPC code, the QC-LDPC code being lifted for a maximal code length N.sub.max and a maximal circulant size Z.sub.upper of the base matrix, N.sub.max=Z.sub.upper*L, where L is the number of columns of the base matrix, the plurality of values r.sub.i for the plurality of circulants Z.sub.1, Z.sub.2, . . . , Z.sub.upper are generated based on the QC-LDPC code lifted for maximal length N.sub.max, 0r.sub.iZ.sub.upper1, the generated plurality of values r.sub.i corresponding to the plurality of circulants Z.sub.1, Z.sub.2, . . . , Z.sub.upper and a matrix for the QC-LDPC code lifted for maximal length N.sub.max are saved in the memory, and the floor lifting of the base matrix is calculated as:
2. The method of claim 1, wherein the plurality of values r.sub.i corresponding to the plurality of circulants Z.sub.1, Z.sub.2, . . . , Z.sub.upper are generated by: constructing a plurality of families of parity-check matrixes, each family corresponds to a value r in a plurality of values r.sub.1, r.sub.2, . . . , r.sub.k corresponding to code lengths N.sub.1, N.sub.2, N.sub.3, . . . , N.sub.k; and based on the plurality of the families of the parity-check matrixes, selecting the plurality of values r.sub.i corresponding to the plurality of circulants Z.sub.1, Z.sub.2, . . . , Z.sub.upper by multi-parameter filtering.
3. The method of claim 2, wherein the multi-parameter filtering uses a method including at least one of: Extrinsic Message Degree, ACE Spectrum, Tanner Spectral Bound, Code Distance, Codeword's weight spectrum enumerator, Trapping Set Weight Enumerator, and simulations result.
4. The method of claim 2, wherein the plurality of the families of the parity-check matrixes is constructed by using equation: E.sub.r(H.sub.upper)=E(H.sub.upper).Math.r mod Z.sub.upper, where E.sub.r(H.sub.upper) is a value of circulant shift in the base matrix for maximal circulant size corresponding to the value r.
5. A non-transitory computer readable storage medium storing program code, the program code comprising instructions, which when performed on a computer cause the computer to perform: receiving a data packet; determining a circulant Z.sub.current from a plurality of circulants Z.sub.1, Z.sub.2, . . . , Z.sub.upper; selecting a value r.sub.current from a plurality of values r.sub.i stored in the memory corresponding to the circulant Z.sub.current; obtaining a lifted matrix based on the value r.sub.current; and performing QC-LDPC coding on the data packet for error correction based on the lifted matrix, wherein the lifted matrix is obtained by a floor scale modular lifting of a base matrix of a QC-LDPC code, the QC-LDPC code being lifted for a maximal code length N.sub.max and a maximal circulant size Z.sub.upper of the base matrix, N.sub.max=Z.sub.upper*L, where L is the number of columns of the base matrix, the plurality of values r.sub.i for the plurality of circulants Z.sub.1, Z.sub.2, . . . , Z.sub.upper are generated based on the QC-LDPC code lifted for maximal length N.sub.max, 0r.sub.iZ.sub.upper1, the generated plurality of values r.sub.i corresponding to the plurality of circulants Z.sub.1, Z.sub.2, . . . , Z.sub.upper and a matrix for the QC-LDPC code lifted for maximal length N.sub.max are saved in a memory, and the floor lifting of the base matrix is calculated as:
6. An apparatus for quasi-cyclic low-density parity-check (QC-LDPC) encoding and decoding, the apparatus comprising a processor and a memory, wherein the memory stores: a maximal length N.sub.max and a maximal circulant size Z.sub.upper of the base matrix, a matrix for the QC-LDPC code lifted for maximal length N.sub.max; and a plurality of values r.sub.i corresponding to a plurality of circulants Z.sub.1, Z.sub.2, . . . , Z.sub.upper, the plurality of values r.sub.i being generated based on the QC-LDPC code lifted for maximal length N.sub.max and maximal circulant size Z.sub.upper of the base matrix, wherein N.sub.max=Z.sub.upper*L, L is a column in the base matrix and 0r.sub.iZ.sub.upper1, wherein the processor is configured to: receive a data packet; determine a circulant Z.sub.current from the plurality of circulants Z.sub.1, Z.sub.2, . . . , Z.sub.upper; select a value r.sub.current from the plurality of values r.sub.i stored in the memory corresponding to the circulant Z.sub.current; obtain a lifted matrix based on the value r.sub.current; and perform QC-LDPC coding on the data packet for error correction based on the lifted matrix, and wherein the lifted matrix is obtained by a floor scale modular lifting of a base matrix of a QC-LDPC code, by the processor, and the floor lifting of the base matrix is calculated as:
7. The apparatus of claim 6, wherein, the plurality of values r.sub.i corresponding to the plurality of circulants Z.sub.1, Z.sub.2, . . . , Z.sub.upper are generated by: constructing a plurality of families of parity-check matrixes, each family corresponds to value r in a plurality of values r.sub.1, r.sub.2, . . . , r.sub.k corresponding to code lengths N.sub.1, N.sub.2, N.sub.3, . . . , N.sub.k; and based on the plurality of the families of the parity-check matrixes, selecting the plurality of values r.sub.i corresponding to the plurality of circulants Z.sub.1, Z.sub.2, . . . , Z.sub.upper by multi-parameter filtering.
8. The apparatus of claim 7, wherein the multi-parameter filtering uses a method including at least one of: Extrinsic Message Degree, ACE Spectrum, Tanner Spectral Bound, Code Distance, Codeword's weight spectrum enumerator, Trapping Set Weight Enumerator, and simulations result.
9. The apparatus of claim 7, wherein the processor is further configured to construct the plurality of the families of the parity-check matrixes using equation: E.sub.r(H.sub.upper)=E(H.sub.upper).Math.r mod Z.sub.upper, where E.sub.r(H.sub.upper) is a value of circulant shift in the base matrix for maximal circulant size corresponding to the value r.
Description
BRIEF DESCRIPTION OF DRAWINGS
(1) To illustrate the technical features of embodiments of the present invention more clearly, the accompanying drawings provided for describing the embodiments are introduced briefly in the following. The accompanying drawings in the following description are merely some embodiments of the present invention, modifications on these embodiments are possible without departing from the scope of the present embodiments of the invention as defined in the claims.
(2)
(3)
(4)
(5)
(6)
DESCRIPTION OF EMBODIMENTS
(7)
N.sub.max=Z.sub.upper*L,(1)
wherein L is a column in the base matrix.
(8) At step 102 a plurality of optimal values r.sub.i for a plurality of circulants Z.sub.1, Z.sub.2, . . . , Z.sub.upper is generated based on the QC-LDPC code lifted for maximal length N.sub.max, 0r.sub.iZ.sub.upper1. The generated plurality of optimal values r.sub.i corresponding to the plurality of circulants Z.sub.1, Z.sub.2, . . . , Z.sub.upper and a matrix for the QC-LDPC code lifted for maximal length N.sub.max are saved in the memory unit at step 103. At step 104 a current circulant Z.sub.current from the plurality of circulants Z.sub.1, Z.sub.2, . . . , Z.sub.upper is received. Then a current optimal value r.sub.current is selected from the plurality of optimal values r.sub.i stored in the memory unit corresponding to the current circulant Z.sub.current (step 105). Finally at step 106 the base matrix is lifted based on the current optimal value r.sub.current. A floor lifting of the base matrix is calculated as:
(9)
where E(H.sub.upper) is a value of circulant shift in the base matrix for maximal circulant size; wherein 0r.sub.currentZ.sub.upper1 and r.sub.current=1 is excluded.
(10) The method for QC-LDPC encoding and decoding in accordance with the present embodiment of the invention may be widely used, for example in cryptography, in data transfer and for data storage.
(11) A (J,L) regular QC-LDPC code of length N is usually defined by a parity-check matrix:
(12)
where 1jJ1, 1lL1 and I(p.sub.j,l) represents the pp circulant permutation matrix obtained by cyclically right-shifting the pp identity matrix I(0) by p.sub.j,l positions, with p=N/L.
(13) For a specific QC-LDPC code the corresponding base matrix (mother matrix or protograph) is defined as the matrix of circulant shift that defines the QC-LDPC code:
(14)
(15) Mask matrix for which regular QC-LDPC code can become irregular for different column weight case or QC-LDPC regular code with zero block circulant may be defined as:
(16)
where .Math. is Hadamard product.
(17) Lifting is operation under base matrix (protograph), by using of which code with different authomorphism or circulant size from a similar base matrix can be obtained.
(18) Normally floor-lifting of base matrix is calculated by formula:
(19)
where z.sub.currentlifting size of circulant,
(20) z.sub.uppermaximal circulant size of base matrix,
(21) E(H.sub.upper)value of circulant shift in base matrix for maximal size of circulant.
(22) Length of code N from z.sub.current*VN.sub.protograph to z.sub.upper*VN.sub.protograph with some additive step between z.sub.current:step:z.sub.upper, where VN.sub.protograph is number of variable nodes in base matrix.
(23) The method according to the present embodiment of the invention uses random matrix design approach lifting QC-LDPC directly from mask matrix (base matrix or protograph).
(24) A cycle of even length 2K in H is defined by 2K positions such that:
(25) 1) Two consecutive positions are obtained by changing alternatively column of row only;
(26) 2) All positions are distinct except first and last one;
(27) Two consecutive elements of the path belong to different circulant permutation matrices. So a chain of circulant permutation matrices can be defined:
I(p.sub.i.sub.
where i.sub.ai.sub.a+1, j.sub.aj.sub.a+1, for all 0aK1.
(28) As each part of cycle is one, the circulant permutation matrix I(p.sub.i,j) participating in cycle cannot be empty. Using these shifts of identity matrix necessary and sufficient conditions of existing of the cycle can be defined as:
.sub.a=0.sup.K1p.sub.i.sub.
(29)
(30)
(31) The input for floor modular scale lifting represents a QC-LDPC code lifted for maximal circulant size Z.sub.upper with L variable nodes (columns in base matrix) and J parity-check (rows in base matrix):
Z.sub.upper*L=N.sub.max.(11)
Circulant sizes for which lifting this base matrix is desired: Z.sub.1<Z.sub.2< . . . <Z.sub.k<Z.sub.upper, to get lengths Z.sub.1*L=N.sub.1<Z.sub.2*L=N.sub.2<Z.sub.3*L=N.sub.3<Z.sub.4*L=N.sub.4< . . . <Z.sub.upper*L=N.sub.max. The output of the floor modular scale lifting represents scale values r.sub.1, r.sub.2, . . . , r.sub.k for every circulant sizes Z.sub.1, Z.sub.2, . . . , Z.sub.k. By using these values it is possible to generate code for every code lengths N.sub.1, N.sub.2, N.sub.3, . . . , N.sub.k in a fast manner using formula (12).
(32) QC-LDPC code lifted for maximal code length is received and for every value r.sub.1, r.sub.2, . . . , r.sub.k (related to circulants size Z.sub.1, Z.sub.2, . . . , Z.sub.k) which corresponds to codes with lengths N.sub.1, N.sub.2, N.sub.3, . . . , N.sub.k using formula (12) i parity-check matrixes are determined. Every r.sub.current can be in the range 1 . . . Z, 1. After using multi-parameter sieving, best value r is chosen based on: Extrinsic Message Degree, ACE Spectrum, Tanner Spectral Bound, Code Distance, Codeword's weight spectrum enumerator, Trapping Set Weight Spectrum Enumerator, simulation result, as shown in
(33) This procedure may be made offline only once, then a matrix lifted for maximal length is saved along with r values.
(34) After value r.sub.i is got for every circulant Z.sub.1, Z.sub.2, . . . , Z.sub.upper parity-check matrix for every length N.sub.1, N.sub.2, N.sub.3, . . . , N.sub.k can be constructed using formula:
E.sub.r(H.sub.upper)=E(H.sub.upper).Math.r mod z.sub.upper(12)
where r is integer 1rz.sub.upper1 and GCD(r, z.sub.upper)=1.
(35) For any path P shift d.sub.P in the E.sub.r(H.sub.upper) is equal to r times of shift d.sub.P by same path in E(H.sub.upper):
(36)
(37) When GCD(r, z.sub.upper)=1, d.sub.p0(mod z.sub.upper) in the same time with d.sub.p0 (mod z.sub.upper).
(38) So, structure of cycles of E(H.sub.upper) and E_r(H.sub.upper) are equivalent. In comparison with classical floor lifting approach, this method provides additional freedom and flexibility. Such r can be chosen as to avoid catastrophic (critical) points and to improve quality of graph in general, example of improving using change of r is presented in
(39) Combining formula (12) with formula (7) of classical floor-lifting of base matrix the following formula for a floor lifting can be obtained:
(40)
where r.sub.currentscale factor, being an integer value from 0 . . . z.sub.upper1,
CGD(r.sub.current,z.sub.upper)=1.
This increases freedom and flexibility of floor lifting.
(41) For each z.sub.current we can find such r.sub.current that bring best possible quality of E(H.sub.current). This method can be applied to any QC-LDPC codes to get flexible length properties.
(42)
(43) Comparison of the floor lifting in accordance with the present embodiment of the invention with traditional floor lifting is further provided with the reference to
(44) TABLE-US-00001 60 54 75 1 69 38 1 9 84 4 8 39 32 64 92 79 1 56 17 0 7 0 1 1 1 73 1 3 10 70 25 37 46 1 47 46 44 56 55 81 43 59 62 53 0 0 0 1 92 81 86 58 4 1 66 1 13 81 92 56 48 94 20 29 44 22 2 21 1 1 0 0 31 1 83 71 1 89 11 42 23 40 62 31 81 74 82 25 42 13 86 70 7 1 1 0
(45) Table 1 contains a comparison of the lifting approach in accordance with the provided method and a traditional floor lifting approach based on the number of cycles.
(46) TABLE-US-00002 TABLE 1 Floor scale modular lifting in accordance with provided method Traditional floor lifting Number of Number of z.sub.current cycles cycles; r z.sub.current cycles cycles; r 24 6 669; r = 4 24 4 2; r = 1 28 6 583; r = 28 28 4 2; r = 1 32 6 508; r = 52 32 4 1; r = 1 36 6 439; r = 20 36 4 1; r = 1 40 6 420; r = 28 40 4 1; r = 1 44 6 364; r = 76 44 4 1; r = 1 48 6 238; r = 2 48 4 1; r = 1 52 6 341; r = 20 52 4 1; r = 1 56 6 217; r = 14 56 4 1; r = 1 60 6 195; r = 10 60 4 1; r = 1 64 6 179; r = 74 64 6 263; r = 1 68 6 177; r = 86 68 6 223; r = 1 72 6 151; r = 58 72 6 228; r = 1 76 6 153; r = 94 76 6 223; r = 1 80 6 144; r = 14 80 6 205; r = 1 84 6 139; r = 82 84 6 201; r = 1 88 6 130; r = 38 88 6 197; r = 1 92 6 132; r = 86 92 6 178; r = 1 z.sub.upper = 96 6 68; r = 1 z.sub.upper = 96 6 173; r = 1
(47) Comparison based on the ACE Spectrum for lifting with circulant size z.sub.current=60, N=1440 is provided in
(48) BER performance comparison of traditional floor-lifting QC-LDPC and QC-LDPC lifted using the provided approach of same base-matrix under min-sum decoder 15 iterations under AWGN channel is illustrated in
(49) Using the floor scale modular lifting method described in the present description the following two parity-check matrix of Repeat Accumulate QC-LDPC code may be designed: 1224 circulant from 28 to 2304 with step 4, length 672 to 55296 with step 96, rate 0.5
(50) TABLE-US-00003 1105 1626 1 1 1 1737 1 1 1 1 1 1 526 0 1 1 1 1 1 1 1 1 1 1 1704 1 1327 1 1 1 1340 1 1438 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 662 206 1 1 1 1510 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 869 416 1 348 40 1 1 1 53 1 1 1 1 1 0 0 1 1 1 1 1 1 1 2196 1 1 1566 1 1 1 1 1 1 2219 1 1 1 1 1 0 0 1 1 1 1 1 1 2167 1 1346 1 2146 1 1 261 1 1 1 2033 0 1 1 1 1 0 0 1 1 1 1 1 1 792 1 857 696 1 1273 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1435 181 1 1 1 1 1 1028 1 2292 1029 1 1 1 1 1 1 1 0 0 1 1 1 3 1 1 1427 370 1 1 1 1414 527 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1433 2215 1 1 1 1 42 1294 1 1 371 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 2188 1927 1 1007 512 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1140 1 1589 1 1 1 1567 1 1761 1 1684 526 1 1 1 1 1 1 1 1 1 1 0
and
624 circulant from 4 to 2304 with step 4 length 96 to 55296 with step 96, rate 0.75
(51) TABLE-US-00004 984 581 2108 942 855 1987 1404 1 1365 1 2025 1 1 682 737 1893 932 2126 185 1472 522 1 377 1122 1161 1 83 1971 342 858 1726 2205 815 1 1 109 671 1 1876 201 907 1490 191 272 1986 970 616 1393 1 1 646 1 2158 2244 1820 390 1445 2051 861 1 1454 1022 1163 1 139 679 421 874 2035 1806 723 2097 884 1 1 1 19 1449 667 719 804 1 1 899 0 1 1 1 1 1 1 1 934 212 1 0 0 1 1 1 442 1 447 1576 1 0 1 0 0 1 1 1 930 270 1 629 1 1 1 0 0 1 742 1 1 1 1 1 1 1 1 0 0 1 1793 1 1081 275 899 1 1 1 1 0
(52) The foregoing descriptions are only implementation manners of the present embodiments of the invention, the scope of the present embodiments of the invention is not limited to this. Any variations or replacements can be easily made through person skilled in the art. Therefore, the protection scope of the present embodiments of the invention should be subject to the protection scope of the attached claims.