hanxiaoge - diva portalliu.diva-portal.org/smash/get/diva2:504435/fulltext01.pdfand it is the first...
TRANSCRIPT
Institutionen för systemteknikDepartment of Electrical Engineering
Examensarbete
Investigation of LDPC code in DVB-S2
Examensarbete utfört i Reglerteknikvid Tekniska högskolan vid Linköpings universitet
av
Hanxiao Ge
LiTH-ISY-EX--12/4321--SE
Linköping 2012
Department of Electrical Engineering Linköpings tekniska högskolaLinköpings universitet Linköpings universitetSE-581 83 Linköping, Sweden 581 83 Linköping
Investigation of LDPC code in DVB-S2
Examensarbete utfört i Reglerteknikvid Tekniska högskolan i Linköping
av
Hanxiao Ge
LiTH-ISY-EX--12/4321--SE
Handledare: Jian Wangisy, Linköpings universitet
Examinator: Di Wuisy, Linköpings universitet
Linköping, 23 January, 2012
Avdelning, InstitutionDivision, Department
Division of Automatic ControlDepartment of Electrical EngineeringLinköpings universitetSE-581 83 Linköping, Sweden
DatumDate
2012-01-23
SpråkLanguage
¤ Svenska/Swedish
¤ Engelska/English
¤
£
RapporttypReport category
¤ Licentiatavhandling
¤ Examensarbete
¤ C-uppsats
¤ D-uppsats
¤ Övrig rapport
¤
£
URL för elektronisk versionhttp://urn.kb.se/resolve?urn=urn:nbn:se:liu:diva-75164
http://www.ep.liu.se
ISBN
—
ISRN
LiTH-ISY-EX--12/4321--SE
Serietitel och serienummerTitle of series, numbering
ISSN
—
TitelTitle Investigation of LDPC code in DVB-S2
FörfattareAuthor
Hanxiao Ge
SammanfattningAbstract
As one of the most powerful error-correcting codes, Low-density parity checkcodes are widely used in digital communications. Because of the performanceof LDPC codes are capable to close the shannon limited extraordinarily, LDPCcodes are to be used in the new Digital Video Broadcast-Satellite-SecondGeneration(DVB-S2) and it is the first time that LDPC codes are included in thebroadcast standard in 2003.
In this thesis, a restructured parity-check matrices which can be divided intosub-matrices for LDPC code in DVB-S2 is provided. Corresponded to this re-structured parity-check matrix, a reconstructed decoding table is invented. Theencoding table of DVB-S2 standard only could obtain the unknown check nodesfrom known variable nodes, while the decoding table this thesis provided couldobtain the unknown variable nodes from known check nodes what is exactly theLayered-massage passing algorithm needed. Layered-message passing algorithmwhich also known as "Turbo-decoding message passing" is used to reduce the de-coding iterations and memory storage for messages. The thesis also investigate Bpalgorithm, λ-min algorithm, Min-sum algorithm and SISO-s algorithm, meanwhile,simulation results of these algorithms and schedules are also presented.
NyckelordKeywords LDPC code, DVB-S2, Restructured parity-check matrix, Layered message pass-
ing(LMP), Reconstructed decoding table
AbstractAs one of the most powerful error-correcting codes, Low-density parity check codesare widely used in digital communications. Because of the performance of LDPCcodes are capable to close the shannon limited extraordinarily, LDPC codes are tobe used in the new Digital Video Broadcast-Satellite-Second Generation(DVB-S2)and it is the first time that LDPC codes are included in the broadcast standardin 2003.
In this thesis, a restructured parity-check matrices which can be divided intosub-matrices for LDPC code in DVB-S2 is provided. Corresponded to this re-structured parity-check matrix, a reconstructed decoding table is invented. Theencoding table of DVB-S2 standard only could obtain the unknown check nodesfrom known variable nodes, while the decoding table this thesis provided couldobtain the unknown variable nodes from known check nodes what is exactly theLayered-massage passing algorithm needed. Layered-message passing algorithmwhich also known as "Turbo-decoding message passing" is used to reduce the de-coding iterations and memory storage for messages. The thesis also investigate Bpalgorithm, λ-min algorithm, Min-sum algorithm and SISO-s algorithm, meanwhile,simulation results of these algorithms and schedules are also presented.
v
Acknowledgments
I would like to express my sincere gratitude to my examiner Di Wu who giveslots of helpful on thesis ideas and proposal.
I would like to thank my supervisor Jian Wang who guide me to finish thethesis.
There is no doubt there are lots of helpful tools, such as latex, matlab, emacs,I used during my project. so, I am grateful to those tools’ authors.
Special thanks should be given to my parents and my boyfriend for their en-couragement and assistance. And thanks to all my friends who help and supportme.
Finally, it is my honour to be a master student in the Linköping Universityand completed the programme successfully in the ISY department. I will neverforget these wonderful life during my study in Sweden.
vii
Contents
1 Introduction 31.1 Thesis Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2 Low-density parity check codes 52.1 The block code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.2 Representations of LDPC codes . . . . . . . . . . . . . . . . . . . . 72.3 Hard-decision and Soft-decision decoding . . . . . . . . . . . . . . 9
2.3.1 Hard-decision decoding . . . . . . . . . . . . . . . . . . . . 92.3.2 Soft-decision decoding . . . . . . . . . . . . . . . . . . . . . 12
2.4 Decoding algorithms for LDPC codes . . . . . . . . . . . . . . . . . 142.4.1 BP Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . 152.4.2 λ-min Algorithm . . . . . . . . . . . . . . . . . . . . . . . . 182.4.3 Min-sum Algorithm . . . . . . . . . . . . . . . . . . . . . . 19
3 Analysis of LDPC codes in DVB-S2 213.1 Regularity of the LDPC code in DVB-S2 . . . . . . . . . . . . . . . 213.2 Schedule for iterative decoding . . . . . . . . . . . . . . . . . . . . 24
3.2.1 Two-Phase Message passing schedule . . . . . . . . . . . . . 243.2.2 Layered-Message passing schedule . . . . . . . . . . . . . . 25
4 DVB-S2 LDPC decoding using reconstructed decoding table 294.1 Restructured parity-check matrix for DVB-S2 . . . . . . . . . . . . 29
4.1.1 Description of restructured parity-check matrix . . . . . . . 314.2 Reconstructed LDPC decoding table . . . . . . . . . . . . . . . . . 324.3 SISO algorithm for restructured parity-check matrix . . . . . . . . 36
4.3.1 SISO-simplified(SISO-s) algorithm . . . . . . . . . . . . . . 384.3.2 Verification of SISO algorithm . . . . . . . . . . . . . . . . 38
5 Simulation results 415.1 Comparison among BP, λ-min and Min-sum algorithms . . . . . . 41
5.1.1 Comparison among BP, 3-min, 2-min and Min-sum algo-rithms at rate 1/4 . . . . . . . . . . . . . . . . . . . . . . . 41
5.1.2 Comparison among BP, 4-min, 3-min, 2-min and Min-sumalgorithms at rate 1/2 . . . . . . . . . . . . . . . . . . . . . 42
5.1.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
ix
x Contents
5.2 Comparison between TPMP and LMP . . . . . . . . . . . . . . . . 435.2.1 Comparison of performance with the specified iterations . . 435.2.2 Comparison of the iterations between TPMP and LMP . . 435.2.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
5.3 Comparison among SISO, SISO-s and λ-min algorithms . . . . . . 445.3.1 Comparison between SISO and SISO-s algorithms . . . . . 445.3.2 Comparison between SISO-s and λ-min algorithms . . . . . 455.3.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
6 Memory cost estimation 496.1 Decoder architecture . . . . . . . . . . . . . . . . . . . . . . . . . . 49
6.1.1 Memory of variable messages . . . . . . . . . . . . . . . . . 496.1.2 Interconnected network . . . . . . . . . . . . . . . . . . . . 506.1.3 Decoding units of extrinsic messages . . . . . . . . . . . . . 51
6.2 Memory cost estimation . . . . . . . . . . . . . . . . . . . . . . . . 526.2.1 Memory cost estimation of Extrinsic-messages . . . . . . . . 52
7 Conclusion and Future work 557.1 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557.2 Future work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Bibliography 57
A Decoding Table: Addresses of variable bits for Nldpc = 64800 59
List of Figures2.1 Tanner graph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.2 Presentation for qij and rji . . . . . . . . . . . . . . . . . . . . . . 92.3 Illustration for example 2.1 . . . . . . . . . . . . . . . . . . . . . . 122.4 Function φ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.1 Tanner graph for an irregular LDPC code . . . . . . . . . . . . . . 243.2 Illustration of a decoding for a sub-iteration . . . . . . . . . . . . . 27
4.1 Tanner graph for the number ’54’ . . . . . . . . . . . . . . . . . . 304.2 Parity-check matrix for the number ’54’ . . . . . . . . . . . . . . . 304.3 Tanner graph for the number ’9318’ . . . . . . . . . . . . . . . . . 314.4 Parity-check matrix for the number ’9318’ . . . . . . . . . . . . . . 324.5 Restructured parity-check matrix . . . . . . . . . . . . . . . . . . . 334.6 A special sub-matrix in restructured parity-check matrix . . . . . . 344.7 Single row layered-message passing to block row layered-message
passing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344.8 Computation of extrinsic message with q(x, y) . . . . . . . . . . . . 36
5.1 Performance of Bp, λ-min with λ = 2, 3 and Min-sum algorithmsat rate 1/4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
5.2 Performance of Bp, λ-min with λ = 2, 3, 4 and Min-sum algorithmsat rate 1/2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.3 Performance of Two-phase message passing(TPMP) and Layeredmessage passing(LMP) with four specified iterations . . . . . . . . 44
5.4 Iterations comparison between Two-phase message passing(TPMP)and Layered-message passing(LMP) at rate 1/4 . . . . . . . . . . . 45
5.5 Iterations comparison between Two-phase message passing(TPMP)and Layered-message passing(LMP) at rate 1/2 . . . . . . . . . . . 46
5.6 Iterations comparison between Two-phase message passing(TPMP)and Layered-message passing(LMP) at rate 2/3 . . . . . . . . . . . 46
5.7 Performance of SISO and SISO-s algorithms at rate 1/2 . . . . . . 475.8 Performance of SISO-s and λ-min algorithms at rate 1/2 . . . . . . 47
6.1 Overview of the date flow for Layered-message passing algorithm . 506.2 Memory of variable messages . . . . . . . . . . . . . . . . . . . . . 516.3 Decoding unit for extrinsic message . . . . . . . . . . . . . . . . . . 54
List of Tables3.1 The q for normal frames . . . . . . . . . . . . . . . . . . . . . . . . 223.2 The q for short frames . . . . . . . . . . . . . . . . . . . . . . . . . 223.3 Parameters for LDPC code in DVB-S2 of 11 code rates . . . . . . 23
6.1 Extrinsic message memory estimation for LDPC code in DVB-S2 . 52
Chapter 1
Introduction
Low-Density Parity-Check(LDPC) codes was first discovered by Robert G. Gal-lager in 1962 in his doctoral dissertation [9]. It had not been drawing enoughattention for almost 30 years until McaKay and Neal rediscovered it in 1990s[6].Granted by its excellent decoding ability, the performance of LDPC codes allowsthe noise threshold to be set very close to the theoretical maximum (the Shannonlimit).
Compared to turbo codes, LDPC codes have a higher error correcting perfor-mance and lower complexity. These advances boosted LDPC codes to be appliedin the new Digital Video Broadcast-Satellite-Second Generation (DVB-S2)[1], andfor the first time LDPC codes won the competition against six turbo codes andbecame part of the broadcast standard in 2003. In fact, LDPC codes have beenalso used in many other systems, such as WiMAX (802.16e), CMMB, 10GBaseT(802.3an).
However, LDPC code in DVB-S2 can be a combination of normal and shortframes, which have the codeword length of 64800 bits and 16200 bits, respectively.Such kind of computational burden laid on an implementation platform demandsa proper decoding algorithm simplification to reduce its computation complexity.Up to date, intensive investigation has shown there are many possible algorithmsfor LDPC codes. Among them, the basic BP-algorithm which is so-called sum-product algorithm, achieves good performance but still remains high computationcomplexity. In order to overcome its shortcomings, λ-min algorithm and min-sumalgorithm[5][3], which are both based on BP-algorithm, are introduced.
The decoding algorithms for LDPC are iterative, and the procedure consists ofvariable message and check message and their updating. In the process, the mes-sages sent to check nodes are updated by variable nodes and on the contrary, theones sent to variable nodes are updated by check nodes. A schedule called "Two-phase message passing (TPMP)" executes the computations in two steps, whichinclude the message computation from variable node to check node and that from
3
4 Introduction
check node to variable node as well. Compared to TPMP, another schedule whichis known as "Layered-message passing (LMP)" or "Turbo decoding-message pass-ing (TDMP)" has higher convergence speed[8][2]. For this schedule, the variablemessages are updated in each sub-iteration and hard-decision is made after theupdating of variable message in each sub-iteration.
In this thesis, the parity-check matrix of LDPC in DVB-S2 is restructured sothat the matrix can be divided into many sub-matrices. Meanwhile, one com-putation mechanism called "Soft-in Soft-out (SISO)" algorithm[7], which is alsoevolved from BP-algorithm is introduced. With the combination of sub-matricesand layered message passing schedule, the efficiency of decoding is increased andthe memory storage for messages are reduced.
This thesis investigate several of the most important LDPC algorithms andpresents the simulation results. According to analysis of the characteristic tothe LDPC code in DVB-S2, a structured decoding iterative algorithm is proposed.Meanwhile, a corresponding decoding table for LDPC codes in DVB-S2 is provided.
1.1 Thesis GuidelinesThesis consists of 7 chapters.
Chapter 1 Summarizes the LDPC code and DVB-S2 system.
Chapter 2 Introduces the basic knowledge and several common algorithms ofLDPC code.
Chapter 3 Analyses the structure of parity-check matrix of LDPC code in DVB-S2 and presents two schedules with different convergence speed.
Chapter 4 Restructures the parity-check matrix of LDPC code in DVB-S2 andprovide a reconstructed decoding table instead of the encoding table.
Chapter 5 Presents the simulation results and comparison of their performance.
Chapter 6 Provides decoder architecture in DVB-S2 and memory cost estima-tion.
Chapter 7 Makes the conclusion and future work.
Chapter 2
Low-density parity checkcodes
In 1962, Robert G. Gallager first presented the Low-Density Parity-Check(LDPC)codes in his doctoral dissertation[9]. LDPC codes are linear error correcting codesdefined by a sparse parity check matrix, it achieves the bit-error-rate performancenear the theoretical Shannon limit. But it’s limited to the technical conditionsand LDPC codes were forgotten for almost 30 years until it was reinvented byMackay in 1996[6]. Compared to turbo codes, LDPC codes have a higher errorcorrecting performance and lower complexity, LDPC codes are to be used in thenew Digital Video Broadcast-Satellite-Second Generation(DVB-S2) and it is thefirst time that LDPC codes are included in the broadcast standard in 2003[1].
2.1 The block code
LDPC codes are error correcting codes consist of block codes and convolutionalcodes. Because LDPC convolutional codes are uneconomical to implement in hard-ware with large area and high power consumption, mostly LDPC block codes areused in the practical hardware implementation. In the rest part of this paper, weonly work on LDPC block codes.
The block code is an important error-correcting code which helps us to trans-mit the messages over communication channels. The data stream is divided intopieces which we called messages with the length K, then each message is encodedto a codeword with length N. Here we use (N,K) to denote the block code whichconsist of the length N for codeword and the length K for message. The ratioof the message and the codeword is R = K/N . For easy understanding, we canconsider R as one codeword with length N contains one message with length K.
The encoding process can be described as the multiplication between the mes-sage m and a special matrix, here the special matrix is called as the generator
5
6 Low-density parity check codes
matrix.
C = m ·G (2.1)
Here we denote the generator matrix G is a set of {g0, g1, · · · , gk−1}and eachgk−1 have the dimension with the number n. We also denote the message m ={m0, m1, · · · ,mk−1}, and the codeword C = {c0, c1, · · · , cn−1}.
G =
g0,0 g0,1 · · · g0,n−1
g1,0 g1,1 · · · g1,n−1
......
. . ....
gk−1,0 gk−1,1 · · · gk−1,n−1
(2.2)
Corresponding to the generator matrix G, there exists a (n− k) × n matrixH to let G ·HT , we call it parity-check matrix. It requires H should meet theequation C ·H = 0. If we put the generator matrix G into [I, P ], the parity-checkmatrix can be organized as
[PT , I
].
H =
h0,0 h0,1 · · · h0,n−1
h1,0 h1,1 · · · h1,n−1
......
. . ....
hn−k−1,0 hn−k−1,1 · · · hn−k−1,n−1
(2.3)
C ·HT = 0 (2.4)
Hence, it’s easy to find the relation between G and H as the equation below.
G ·HT = 0 (2.5)
Here, we use an example to achieve a quick understanding of the relation amongthem.
Example 2.1
It’s a (7,3) generator matrix.
G =
1 0 0 1 1 0 10 1 0 0 1 1 10 0 1 1 0 1 1
2.2 Representations of LDPC codes 7
If the message vector ism = [1, 0, 1], we can calculate the responding codewordas below.
C = m ·G =[1 1 0
] ·
1 0 0 1 1 0 10 1 0 0 1 1 10 0 1 1 0 1 1
=
[1 1 0 1 0 1 0
]
we need to find a (n− k)× n matrix H to meet the requirement C ·HT = 0.Obviously, the parity-check matrix we supplied below also meet the requirementG ·HT = 0.
H =
1 0 1 1 0 0 01 1 0 0 1 0 00 1 1 0 0 1 01 1 1 0 0 0 1
2.2 Representations of LDPC codes
Normally, there exists matrix and graphical representations for the LDPC codes.Before Tanner introduced his effective graphical representation, we use the matrixrepresentation to describe the LDPC codes. The reason for the LDPC codes calledlow-density is its parity-check matrix has most zeros and a small amount of ones.Suppose we have an (N, K)LDPC code with the parity-check matrix H. Parity-check matrix H has the block length N and the dimension M = N − K whichmeans this parity-check matrix has N columns and M rows. We denote each rowhas Dc ones and each column has Dv ones which are corresponded to the degreesin the Tanner graph.
Tanner graph is a bipartite graph which consists of variable nodes and checknodes. An (N, K) LDPC code has N variable nodes and N-k check nodes, wecan simply consider that variable nodes are the bits of the codewords. The edgesbetween variable nodes and check nodes are the ones in the matrix H which meansthis variable node and check node are associated. As it is called, check nodes helpus to check the correctness of the codewords. We can easy to change the H below
8 Low-density parity check codes
�� ������
����
�� ����
����
�� �� ��
�� �� �� �� �� �� �� ��
Figure 2.1. Tanner graph
into Tanner graph of figure 2.1.
H =
0 1 1 0 1 0 0 11 1 0 1 0 1 0 00 0 0 1 1 0 1 11 0 1 0 0 1 1 0
Regular and Irregular LDPC codes
From the figure 2.1 we can easily find that the degree of variable nodes which areassociated to the bits of codewords is Dv and the degree of check nodes is Dc.If each Dc are constant and so it is with Dv, we call this LDPC code is regular.Otherwise, it’s an irregular LDPC code.
According to every variable node, if it has a high degree which means it canreceive more information from the associated check nodes. More information thevariable node get, the higher correctness the variable node reach. For each checknode, it can propagate more valuable information to the associated variable nodeswith low degree. In irregular LDPC codes, the variable nodes with higher degreecould get their correct value more quickly, and the associated check nodes havea greater chance to get the correct information. Then, the variable nodes withlow degree can receive more valuable information from the associated high degreecheck nodes. Hence, the performance of irregular LDPC codes is better than reg-ular LDPC codes.
2.3 Hard-decision and Soft-decision decoding 9
��������
����
�� ����
������
��
��
���
������
���
Figure 2.2. Presentation for qij and rji
2.3 Hard-decision and Soft-decision decoding
The decoding algorithms for LDPC codes approximately divided into hard-decisionalgorithm and soft-decision algorithm. Hard-decision algorithm decodes the dataon fixed set of value, because we only consider the binary symmetric channels thatthe fixed value should be 0 or 1. Compared with hard-decision algorithm’s simpleimplementation, soft-decision algorithm has better performance.
Before introducing the algorithms, let’s make some notations first.
fj- the j’th check node.ci- the i’th variable node.qij - the message from variable node ci to check node fj .rji - the message from check node fj to variable node ci.Nj = {i,Hji = 1}- the set of variable nodes fulfil the equation in the j’th row.Nj\i = {i′,Hji′ = 1} \ {i}- the set of variable nodes fulfil the equation in the j’throw except the i’th variable node.Mi = {j,Hji = 1}- the set of check nodes fulfil the equation in the i’th column.Mi\j = {j′,Hj′i = 1} \ {j}- the set of check nodes fulfil the equation in the i’thcolumn except the j’th check node.pi = Pr (ci = 1 | yi)
2.3.1 Hard-decision decoding
Here we introduce a kind of hard-decision algorithm named bit-flipping algorithm.The parity-check matrix is a sparse parity check matrix which was built randomly.Because of its sparseness, either the receiver doesn’t receiver any wrong code orthere is a high probability to receive a wrong code. This algorithm will be in-troduced by the data of the example 2.1 and figure 2.1. The modulation mapsthe codewords C = {c1, c2, · · · , cn−1} into a sequence X = {x1, x2, · · · , xn−1}.
10 Low-density parity check codes
Y = {y1, y2, · · · , yn−1} was denoted as the real received vector via the transmitchannel, and Z = {z1, z2, · · · , zn−1} was the hard-decision vector which was gotfrom the equation below.
zi =
{0 yi ≤ 01 yi > 0
(2.6)
The parity matrix H was denoted as equation 2.2, and we denote s = z ·HT .Then we can get the equation below.
sn−k = z · hn−k =n−1∑
i=0
zi · h(j,i) (mod2) , J = N −K (2.7)
If the sn−k in the set of S are all zeros, they receive the correct codewords.And if there has no-zeros in the set of S, the received vector Z has some mistakesin it. Let’s make some notations as below.
f = {f0, f1, · · · , fj , · · · , fN−1} = s ·H
fn−k = s · hn−k =j−1∑
i=0
si · h(i,j), J = N −K (2.8)
Then find the largest element fj in the set {f0, f1, · · · , fN−1}and transfer thecorresponding zj to the opposite number. Here we use several steps to introducethe bit-flipping algorithm.
Step 1 Use the equation 2.7 to calculate the vector sn−k with the received vec-tor z. If the elements in the set of s are all zeros, it’s terminated with the correctvector, otherwise, go to the next step.
Step 2 Calculate the set of {f0, f1, · · · , fN−1} and find the largest fj . Thentransfer the corresponding zj to it’s opposite number (0 or 1), get a new vector z’.
Step 3 calculate the vector sn−k = z · hn−k with the new vector z’. If the ele-ments of s are all zeros or the iterations reach the maximum number, the decodingis terminated with the current vector, otherwise, the decoding go back to step 2.
2.3 Hard-decision and Soft-decision decoding 11
Example 2.2
Assume we get the vectorz = {1, 1, 0, 0, 1, 1, 0, 1}, and we use the same parity-checkmatrix H which is built the figure 2.1. Then we can get
s = z ·HT = {1, 1, 0, 0}Then go to step 2,
f = {1, 2, 1, 1, 1, 1, 0, 1}Obviously, f1 is the largest element in the set of f. Then change z1 = 1 to
z1 = 0, and go back to re-calculate the vector s. Because of s = {0, 0, 0, 0},z = {1, 0, 0, 0, 1, 1, 0, 1} is the correct vector after the decoding.
Message passing algorithm for hard-decision decoding
In order to get a better overview of the soft-decision decoding, here another hard-decision decoding algorithm will be introduced. Unlike the last method which onlyuse the parity-check matrixH, this method is based on the Tanner graph to decode.
As figure 2.2 shows, the check node fj receives the message from the connectedvariable nodes. Assume the check node fj has four connected variable nodes andit receive four message from them. Then if ciwhich is one of the connected variablenodes want the response message from this check node fj , in order to fulfil theequation Hji = 1, the check node fj will return the message which is calculatedvia the messages from the other three variable nodes to ci For example, the f0
is connected to c1, c2, c4, c7 in figure. If the messages from c1, c1, c4 are 0,1,0, thecheck nodefj returns 1 to c7 for fulfilling the equation. Then every variable nodegets their messages from the check nodes they connected, use the majority vote tomake the decision.
Let’s use the data from example 2.2 and figure 2.3 to illustrate this method.
Step 1 All variable node ci send their messages to the connected check nodesfj , and each fj receives four variable node messages. Such like the f0 in figure 2.3receives messages from c1, c2, c4, c7.
12 Low-density parity check codes
�� ������
����
�� ����
����
�� �� ��
�� �� �� �� �� �� �� ��
� � � � � � � �
� � � �� � � �� � � �� � � �
Figure 2.3. Illustration for example 2.1
Step 2 Calculate the the response message from check nodes fj to connectedvariable nodes ci. We assume the other message from connected variable nodesare correct, in order to fulfil the equation H = 1 we can get the response message.Use f2 as an example, the messages from c1, c2, c4, c7 is {1, 0, 1, 1}. We calculatethe response message to c1 by the other three message {0, 1, 1}. For fulfilling theequation, the response message to c1 should be 0.
In this step, every variable node receives two response message from their con-nected check nodes, if those two messages are both equal to its original messageit means this variable code has the correct value. it is presented in figure 2.3.
Step 3 This step is going to decide the value of variable node by majority vote.The messages consist of two messages from the connected check nodes and itsoriginal message. Let’s go to the figure 2.3, the message for c0 is {0, 1, 1} and thedecision for c0 is 1. After every variable node decide its new value, we can findonly c1 has changed. We get a new vector {1, 0, 0, 0, 1, 1, 0, 1}.
Step 4 Go back to step 2, if every variable node receives the same value messagefrom the connected check nodes, the vector is decoded correctly. So we correctthe vector {1, 1, 0, 0, 1, 1, 0, 1} to {1, 0, 0, 0, 1, 1, 0, 1} which is the same result withexample 2.2.
2.3.2 Soft-decision decodingAccording to the method explained above, we have a basic understanding of mes-sage passing algorithm which is also the basic principle for soft-decision decod-
2.3 Hard-decision and Soft-decision decoding 13
ing algorithm. The greatest difference between hard-decision decoding and soft-decision decoding is the former propagates the message of 0 or 1 while the latterpropagate the probability of 0 or 1. Next there is three steps to introduce thesoft-decision algorithm.
Step 1 All variable node ci send their messages qij to the connected check nodesfj . The message which consist of qij (0) and qij (1) from the variable node ci isthe probability of 0 and 1. The equations below are based on there is no availableinformation between variable nodes and check notes, it’s a initialization.
qij (0) = 1− Pi
qij (1) = Pi
Step 2 Calculate the the response message rji from check nodes fj to connectedvariable nodes ci. According to Gallager’s research[], we get a equation to calcu-late the probability for the even 1’s in a sequence to fulfil H = 1 . For an N lengthbinary sequence, the probability for how many even 1’s is showed below.
12
1 +
n∏
j=1
(1− 2Pi)
(2.9)
Then the check nodes’ response messages are
rji (0) =12
1 +
∏
i′∈Nj\i
(1− 2qi′j (1))
(2.10)
rji (1) = 1− rji (0)
Step 3 When the check codes receive the messages from variable nodes, the newqij is a multiplication of old qij times the received rji. Kij is denoted as a param-eter for the new qij to fulfil the equation qij (0) + qij (1) = 1. In order to reducethe effect of ci to itself after the iterations, Mi\j means all veritable nodes exceptcj participate the multiplication.
qij (0) = Kij (1− pi)∏
j′∈Mi\j
rj′i (0)
qij (1) = Kijpi
∏
j′∈Mi\j
rj′i (1) (2.11)
14 Low-density parity check codes
qij (0) + qij (1) = 1
After the variable node cj update it’s probabilities, the equations below showshow to calculate the estimation of cj . Kij is selected to ensure Qi (0)+Qi (1) = 1.If Qi (0) > Qi (1), the estimation for this variable node is 0, otherwise the estima-tion is 1.
Qi (0) = Kij (1− pi)∏
j∈Mi
rji (0)
Qi (1) = Kijpi
∏
j∈Mi
rji (1) (2.12)
Qi (0) + Qi (1) = 1
If the current estimation of the codeword fulfil H=1 or the iterations reachthe limitation, the termination to the decoding is enforced. Otherwise, go back tostep 2.
This soft decision decoding algorithm is sum-product algorithm, also calledbelief- propagation algorithm. Compared to soft-decision decoding, hard-decisiondecoding has low complexity but worse performance, while hardware implemen-tation of soft-decision is limited by its complexity. Generally, both soft-decisiondecoding and hard-decision decoding are used in one algorithm.
2.4 Decoding algorithms for LDPC codes
The (N, K) LDPC codes are defined by parity-check matrices H = [Hji] which isa matrix with N columns and N-K rows. Here denote each column which could beregarded as one variable node has Dv check nodes connected and each row whichcould be regarded as one check node has Dc variable nodes connected. From thatwe can denote the set of variable nodes N (j) = {n : Hji = 1} and the check nodesM (i) = {j : Hji = 1}. Similar to the notation in previous chapter, Nj\i meansthe variable nodes’ set without the variable node n and Mi\j means check nodes’set without the check node j.
2.4 Decoding algorithms for LDPC codes 15
The message passing algorithm was simply introduced in chapter 2, the algo-rithms which will be introduced are all based on message passing algorithm. Themessage passing algorithm for LDPC codes could be illustrated by Tanner graphwith passing message via the edge between variable nodes and check nodes.In thesubsection, Belief-propagation decoding algorithm will be introduced first, thenseveral simplified BP-decoding algorithm will be proposed and compared in theleft part.
2.4.1 BP Algorithm
Belief-propagation decoding algorithm, also called sum-product decoding algo-rithm was rediscoverd by McaKay and Neal[6]. In the previous chapter, the soft-decision decoding algorithm propagates the message from variable nodes to checknodes then propagate the message back. The message consists of the probabilitiesof both 0 and 1, and the calculations for the check nodes is multiplications whichcauses high complexity. Here we introduce the log-likelihood ratio (LLR) whichcan transfer the multiplications to additions in log-domain. In the left part of thisthesis, all of the numbers will be introduced in log-domain.
L (ci) = log1− pi
pi
uij = logqij (0)qij (1)
, vji = logrji (0)rji (1)
(2.13)
The codeword is transmitted over a channel corrupted by additive white Gaus-sian noise(AWGN) after the BPSK modulation. Then we can get the probabilityof qij (0) and qij (1).
qij (0) = 1− pi = Pr (ci = 0|yi) =1
1 + e−2yi
σ2
(2.14)
qij (1) = pi = Pr (ci = 1|yi) =1
1 + e2yiσ2
(2.15)
Initialization
16 Low-density parity check codes
uij = log(
qij (0)qij (1)
)
= log
(1 + e
2yiσ2
1 + e−2yi
σ2
)
= log(e2yi/σ2)
= 2yi/σ2 (2.16)
vji = 0
Here we use several steps to introduce the BP-decoding algorithm. Here wedenote LLRint as the received LLR message.
Step 1 Message computation from variable node to check node
The detailed computation of the message from the varible nodes to each checknode vji is introduced.
vji = log(
rji (0)rji (1)
)
= log
1 +∏
i′∈Nj\i
(1− 2qi′j(1)
1− ∏i′∈Nj\i
(1− 2qi′j(1)
= log
1 +∏
i′∈Nj\i
(1− 2
(1
1+eu
i′j
))
1− ∏i′∈Nj\i
(1− 2
(1
1+eu
i′j
))
= log
1 + e
Pi′∈Nj\i
log
„e
ui′j−1
eu
i′j +1
«
1− e
Pi′∈Nj\i
log
„e
ui′j−1
eu
i′j +1
«
(2.17)
2.4 Decoding algorithms for LDPC codes 17
The most frequently used computation is defined, and φ has the property thatφ (x) = φ−1 (x) when x > 0.
φ (x) = − log(tanh
(x
2
))= log
ex + 1ex − 1
(2.18)
Simplified by φ(x), the equation 2.18 can reconstruct as below.
vji =∏
i′∈Nj\i
sign(ui′j) · φ ∑
i′∈Nj\i
φ (|ui′j |) (2.19)
Note that all the value from variable nodes need to be separated into sign andabsolute value in the computation.
Step 2 Message computation from check node to variable node
For each check node, use the equation below to update the message uij .
uij = LLRint (i) +∑
j′∈Mi\j
vj′i (2.20)
Step 3 Hard decision
In order to get a new LLR for hard-decision, use equation below to update themessage ui.
ui = LLRint (i) +∑
j∈Mi
vji (2.21)
zi =
{1 ui ≤ 00 ui > 0
(2.22)
If ziHT = 0 , zi could be considered as a correct codeword then stop the itera-
tions. Or go back to step 1 until the iteration exceeds the maximum number, butthe codeword z can not be considered as a correct codeword.
18 Low-density parity check codes
Each check node receives Dc messages from the variable nodes which are asso-ciated to this check node, then the check node calculate the corresponding messagevji and send them back to associated variable node. After receiving messages fromthe check nodes, the variable nodes calculate a new LLR vector to replace the oldLLR vector for the next iteration.
0 0.5 1 1.5 2 2.5 30
1
2
3
4
5
6
7
8
φ(x)
φ(x)
Figure 2.4. Function φ
2.4.2 λ-min Algorithmλ-min decoding algorithm could be considered as a simplified BP decoding algorithm[3],the key of the simplification is the approximation of 2.18. As the curve of φ (x)shows in figure 2.4, the smaller value in x-axis obtains higher value in y-axis thatmeans the result of vji depends on the minimum absolute value of uij . Here sup-pose the vector [I1, I2, · · · , Iλ] is the λ smallest absolute value, then 2.18 coulddescribed as
vji =∏
i′∈Nj\i
sign(ui′j) · φ ∑
i′∈Nj\i
φ (|ui′j |)
≈∏
i′∈Nj\i
sign(ui′j) · φ [φ |I0|+ φ |I1|+ · · ·+ φ |Iλ|]
For each iteration, 3 steps are processed as below.
Step 1 Message computation from variable node to check node
For each check node with λ-min absolute value from the associated variablenodes, update vji by equation below.
2.4 Decoding algorithms for LDPC codes 19
vji =∏
i′∈Nj\i
sign(ui′j) · φ [φ |I0|+ φ |I1|+ · · ·+ φ |Iλ|] (2.23)
Step 2 Message computation from check node to variable node
For each check node, use the equation below to update the message uij .
uij = LLRint (i) +∑
j′∈Mi\j
vj′i (2.24)
Step 3 Hard decision
In order to get a new LLR for hard-decision, use equation below to update themessage ui.
ui = LLRint (i) +∑
j∈Mi
vji (2.25)
Create the hard decision vector zi, zi = 1 when ui > 0 and zi = 0 when ui > 0.If ziH
T = 0 , zi could be considered as a correct codeword then stop the iterations.Or go back to step 1 until the iteration exceeds the maximum number, but thecodeword z can not be considered as a correct codeword.
2.4.3 Min-sum Algorithm
As the suggestion of the name, min-sum algorithm could be considered as twosteps with min and sum. The simplification is still the approximation of 2.18,but in this algorithm only the minimum and minimum but one absolute value arestored.For each iteration, 3 steps are processed as below.
Step 1 Message computation from variable node to check node
For each check node with minimum and minimum but one absolute value fromthe associated variable nodes, update vji by equation below.
20 Low-density parity check codes
vji =∏
i′∈Nj\i
sign(ui′j) · φ ∑
i′∈Nj\i
φ (|ui′j |)
≈∏
i′∈Nj\i
sign(ui′j) · [min |ui′j |] (2.26)
Step 2 Message computation from check node to variable node
For each check node, use the equation below to update the message uij .
uij = LLRint (i) +∑
j′∈Mi\j
vj′i (2.27)
Step 3 Hard decision
In order to get a new LLR for hard-decision, use equation below to update themessage ui.
ui = LLRint (i) +∑
j∈Mi
vji (2.28)
Create the hard decision vector zi, zi = 1 when ui > 0 and zi = 0 when ui > 0.If ziH
T = 0 , zi could be considered as a correct codeword then stop the iterations.Or go back to step 1 until the iteration exceeds the maximum number, but thecodeword z can not be considered as a correct codeword.
Chapter 3
Analysis of LDPC codes inDVB-S2
Because of the outstanding communication performance which even can outper-form the Turbo code, LDPC code is selected by the second generation DigitalVideo Broadcasting standard for satellite applications (DVB-S2) as their channeldecoding scheme. It’s necessary to analysis the structure and schedule of LDPCcodes in DVB-S2[4], then in section 3.4 a reconstructed decoding table and anefficient algorithm will be introduced.
3.1 Regularity of the LDPC code in DVB-S2
The LDPC code in DVB-S2 has normal frames with the codeword length of 64800bits and short frames with the codeword length of 16200 bits. The normal frameshas 11 different code rates ranging from 1/4 to 9/10 and the short frames has 10different code rate ranging from 1/4 to 8/9, the normal frames will be illustratedin the following part.
According to the definition in DVB-S2 standard[1], the LDPC code are encodedas irregular repeat accumulate (IRA) codes which have the advantage of low en-coding complexity. The LDPC encoder encode the information (i0, i1, · · · , iK−1)with the size of K onto a codeword with the size of N , the LDPC encoder need tocreate the (N −K) parity bits (p0, p1, · · · , pN−K−1) from the K information bits.Before the procedure, the q was denoted as a constant varies by rates. The table3.1 for normal frames and table 3.2 for short frames are presented by N = 64800(or 16200) in DVB-S2.
q =N −K
360=
N
360(1−R) (3.1)
21
22 Analysis of LDPC codes in DVB-S2
Code Rate q1/4 1351/3 1202/5 1081/2 903/5 722/3 603/4 454/5 365/6 308/9 209/10 18
Table 3.1. The q for normal frames
Code Rate q1/4 361/3 302/5 271/2 253/5 182/3 153/4 124/5 105/6 88/9 5
Table 3.2. The q for short frames
Step 1 p0 = p1 = p2 · · · = pN−K−1 = 0
Step 2 Let’s do the accumulation to i0, the corresponding parity bits to theinformation bits i0 are specified in the annex B of DVB-S2 standard. Here we userate 1/2 as the example rate.
p54 =p54 ⊕ i0, p9318 = p9318 ⊕ i0
p14392 =p14392 ⊕ i0, p27561 = p27561 ⊕ i0
p26909 =p26909 ⊕ i0, p10219 = p10219 ⊕ i0
p2534 =p2534 ⊕ i0, p8597 = p8597 ⊕ i0
Step 3 With m = (0, 1, 2, · · · , 359), there exist
{x + (m mod 360)× q} mod (N −K) (3.2)
to accumulate the next 359 informations at the first row. After the first 360information bits are accumulated, the next 360 information bits is accumulatedby the second row of the table for rate 1/2.
p144 =p144 ⊕ i1, p9408 = p9408 ⊕ i1
p14482 =p14482 ⊕ i1, p27651 = p27651 ⊕ i1
p26999 =p26999 ⊕ i1, p10309 = p10309 ⊕ i1
p2624 =p2624 ⊕ i1, p8687 = p8687 ⊕ i1
Step 4 After the whole information bits are used, the left parity bits are calcu-lated by pi = pi ⊕ pi−1. Notice that the final parity bit pi keep its original value.
3.1 Regularity of the LDPC code in DVB-S2 23
i = 0, 1, · · · , N −K − 1.
The encoding procedure above comes from the standard of DVB-S2. Figure3.1 presents the tanner graph for the irregular LDPC code in DVB-S2, and itshows some regularities which can be use for the hardware implementation.
The encoding table in the standard of DVB-S2 could be regarded as anotherdescription of the parity-check matrix. Each row of the table presents the cor-responding addresses of check nodes to those 360 variable nodes. The table hasq = (N − K)/360 rows and the degree of information bits can be discovered inthe table. In DVB-S2, the information bits consist of two degrees Dj in the frontpart and D3 in the left part of information bits. Each rate has different Dj buthas the same D3 = 3. The degree Dc for the check node are uniform and can becalculated from the known Dc and Ds.
Dc =(Df ×Row + D3 × (q −Row))× 360 + 2× (N −K)
N −K(3.3)
Here Row is the number of rows which has degree with Dj .
For example, the table for code rate 1/2 which provided by DVB-S2 standardcan be divided into a 36× 8 matrix and a 54× 3 matrix. The 36× 8 matrix meanseach bit of the first 36× 360 information bits has the degree Dj = 8, and the next54× 360 information bits has the degree D3 = 3. Because each check node exceptthe first one has the same degree, according to the known edges the degree forcheck node are easy to figure out. Table 3.3 list the Dj , Dc and the number ofedges for each rate with N = 64800.
Rate Dj EDj E3 Dc K
1/4 12 5400 10800 4 162001/3 12 7200 14400 5 216002/5 12 8640 17280 6 259201/2 8 12960 19440 7 324003/5 12 12960 25920 11 388802/3 13 4320 38880 10 432003/4 12 5400 43200 14 486004/5 11 6480 45360 18 518405/6 13 5400 48600 22 540008/9 4 7200 50400 27 576009/10 4 6480 51840 30 58320
Table 3.3. Parameters for LDPC code in DVB-S2 of 11 code rates
24 Analysis of LDPC codes in DVB-S2
...
...
...
Permutation
Check node
Information bits
Parity bits
Figure 3.1. Tanner graph for an irregular LDPC code
3.2 Schedule for iterative decoding
Normally, the LDPC code are decoded by iterative standard message passing algo-rithm which also known as Two-phase message passing algorithm. The drawbackof this schedule is their low convergence compared to the turbo code. In order toincrease the speed of convergence, a ’layered decoding’ schedule will be introduce.
3.2.1 Two-Phase Message passing schedule
As the name of TPMP schedule, it consist of two phases in one iteration. Themessage form variable node propagated to check nodes for computation in phase1, then the check node send the message to variable node and update in phase 2.Here the function 2.18 φ (x) = log ex+1
ex−1 are used for simplification in procedure.
Initialization
For all variable ui are initialized by the input LLR, and the extrinsic messagefor check nodes vj are initialized to zero.
Phase 1
In the phase 1 of every iteration, the extrinsic message for each check nodesare calculated with the message from associated variable.
vji =∏
i′∈Nj\i
sign(ui′j) · φ ∑
i′∈Nj\i
φ (|ui′j |)
3.2 Schedule for iterative decoding 25
Phase 2
In phase 2, each variable node update it’s new LLR with the extrinsic message.
uij = LLRint (i) +∑
j′∈Mi\j
vj′i
3.2.2 Layered-Message passing schedule
The major problem of Two-phase message passing algorithm is the low convergencespeed. The Two-Phase message passing algorithm executes the computations intwo steps which are the message computation from variable node to check nodeand the message computation from check node to variable node. In Two-phasemessage passing algorithm, it has two types of computation and the inter-mediamessages need to be saved at every round at each iteration.
Layered-message passing algorithm which updating the message layer by layeris widely utilized in LDPC decoder. Because of the regularity of the LDPC code inDVB-S2, row Layered-message passing algorithm which also known as "Horizon-tal shuffled decoding", "Turbo Decoding Message Passing(TDMP)", "Turbo-likedecoding" will be introduced[2][8]. In Two-phase message passing, the computedmessages don’t participate in the further computation in this decoding iteration.If the computed messages can be used to compute other messages in the sameiteration and the convergence will speed up. Moreover, the inter-media messagesare updated directly and the check messages become the new variable messagesin a sub-iteration. The utilization to inter-media messages in every sub-iterationsignificant saves the memory.
By the regularity of LDPC code in DVB-S2, in every rate the degree for checknodes are identical while the degrees for variable nodes vary frequently. So therow Layered-message passing approach is utilized for LDPC in DVB-S2, and inthe left part of this subsection this approach will be illustrated by examples.
Description for Row Layered-message passing
Compared to Two-phase message passing algorithm with two simple steps, RowLayered-message passing algorithm update variable message with check messagerow by row. A 4 by 8 parity-check matrix H which shows in figure 3.2 will help usto understand this algorithm in details. Before introducing the algorithms, let’s
26 Analysis of LDPC codes in DVB-S2
make some notations first.
λi =[λi
1, λi2, · · · , λi
Dc
]- extrinsic message corresponding to the non-zeros in the
i’th row.Ii = [I1, I2, · · · , IDc
] - the set of indexes in i’th row.γ(Ii) = [γ1, γ2, · · · , γDc ] - a vector of variable messages with the corresponding Ii
in i’th row.ρ = [ρ1, ρ2, · · · , ρDc
] = γ(Ii) − λi - the input message which is the i’th variablemessage subtract the old extrinsic message to keep the reliability.Λi = [Λ1, Λ2, · · · , ΛDc ] - the output message after the computation in i’th row.
H =
0 1 1 0 1 0 0 11 1 0 1 0 1 0 00 0 0 1 1 0 1 11 0 1 0 0 1 1 0
In the parity-check matrix H, the extrinsic messages λi =[λi
1, λi2, · · · , λi
Dc
]in each row are corresponding to the non-zeros in this row. An iteration con-sist of multiple sub-iterations which corresponding to rows. Because the LLRmessages corresponding to the zeros are not used in the computation, here a setIi = [I1, I2, · · · , IDc ] is used to store the index of the non-zeros for the i’th row.γ(Ii) = [γ1, γ2, · · · , γDc ] are the set of variable messages which are correspondingto the non-zeros for the i’th row in H.
Let’s use the matrix above as an example, it’s a parity-check matrix for thecode of length 8, and each row has the same weight of 4. With the help from theindex set I2 = [1, 2, 4, 6] for row 2, we can get the extrinsic vector λ2 when λ2
1 is thefirst variable message, λ2
2 is the second variable message, and the left two λ2 arecorrespond to the forth and sixth variable message. Actually, the vector of γ is thevariable message which initialized by the input LLR value. Every time after thecomputation for a row, the new extrinsic messages will update the correspondingγ and the new vector γ will go to work for the next row.
Here four steps are used to illustrate the decoding process for i’th row in H.
Step 1 The extrinsic messages for i’th row and variable messages for Ii =[I1, I2, · · · , IDc ] are ready.
Step 2 ρ = [ρ1, ρ2, · · · , ρDc ] = γ(Ii) − λi. The subtraction is to make sure themessage which generated by this row in the earlier iteration are not used as inputsin the next iteration to lead the reliability.
Step 3 Computation for the new extrinsic messages which use ρ as inputs using2.19 as decoding algorithm.
3.2 Schedule for iterative decoding 27
0 1 1 0 1 0 0 1
1 1 0 1 0 1 0 0
0 0 0 1 1 0 1 1
1 0 1 0 0 1 1 0
λ1
λλ
λ
2
3
4
ρ
γ
Step 1
(variable message)
2
+ + + +- - --
2
Step 2
Decode
Λ2
+ + + +
Step 3
(old extrinsic message)
(new extrinsic message)
Step 4γ3
(posterior message
for row 2)
(posterior message
for row 3)
0 1 1 0 1 0 0 1
1 1 0 1 0 1 0 0
0 0 0 1 1 0 1 1
1 0 1 0 0 1 1 0
λ1
λλ
λ
2
3
4
(new extrinsic
message updated)
Figure 3.2. Illustration of a decoding for a sub-iteration
28 Analysis of LDPC codes in DVB-S2
Step 4 The new extrinsic messages vector Λi replace the old extrinsic messages,and then add the new extrinsic message Λi to the corresponding variable message.γi = ρi + Λi.
The hard decision for Layered-message passing algorithm is different from two-phase message passing, in each sub-iteration the γ was updated then the harddecisions are made. If the hard decision appears it is the correct variable message,the decoding stop immediately. Obviously, the hard decision in each sub-iterationshelps this algorithm getting correct vector faster.
Figure 3.2 illustrated this four steps and using the decoding process for row 2as an example.
Compared to Two-phase message passing algorithm, the Layered-message pass-ing algorithm not only speeds up the convergence behaviour but also leads to sig-nificant memory saving. The Two-phase message passing algorithm need to save(Dc ·N · (1−R)− 1) messages for check nodes in phase 1, (Ej ·Dj + E3 · 3 + N ·(1−R) · 2− 1) messages for variable nodes in phase 2 and N posterior messages.The messages which check node received are sent by variable nodes which meansthey store the same number of message, and the storage for Two-phase messagepassing algorithm is
STTPMP = (2 · (Dc ·N · (1−R)− 1) + N) (3.4)
The Layered-message passing algorithm need to save (Dc · N · (1 − R) − 1)extrinsic message for check nodes and N posterior messages.
STRLMP = (Dc ·N · (1−R)− 1) + N (3.5)
Compared to Two-phase message passing algorithm, Row Layered-messagepassing algorithm leading a memory savings as
Dc ·N · (1−R)− 12 · (Dc ·N · (1−R)− 1) + N
% (3.6)
For example, the LDPC codes with rate 1/2 have degree with 7 for each checknode, and the memory savings up to 43.75%. For rate 2/3 the memory savings is43.48%.
Chapter 4
DVB-S2 LDPC decodingusing reconstructeddecoding table
With the help of formula 3.2 and encoding table for each rate, the connectivitybetween variable nodes and check nodes are described clearly. This encoding tableshows the way how to calculate the unknown index of check node form knownindex of variable node, but the regularity of LDPC codes in DVB-S2 shows eachcheck node has the uniform degree meanwhile the variable nodes has three differ-ent degrees[4]. So it’s better to use a calculation method from known check nodeto unknown variable node.
4.1 Restructured parity-check matrix for DVB-S2
Each number in encoding table representing the 360 check nodes’ indexes associ-ated to 360 variable nodes. Let’s use a codeword with length 64800 as an example.In the encoding table for 1/2 rate, the first row consists of 8 numbers which meansthe first 360 variable nodes have a degree with 8. Moreover, the first row shows all
54 9318 14392 27561 26909 10219 2534 8597
55 7263 4635 2530 28130 3033 23830 3651
56 24731 23583 26036 17299 5750 792 9169
. . .
52 29194 595
53 19267 20113
u tou0 359
u tou719
u tou720 1079
360
u tou32039
u tou32040 32399
31680
29
30 DVB-S2 LDPC decoding using reconstructed decoding table
variable node
check node54 54+90 54+2*90
...
...
54+359*9054+358*90
0 1 2 358 359
variable node m
check node m*q+54
Figure 4.1. Tanner graph for the number ’54’
54
q+54
2q+54
358q+54
359q+54
0 1 2 358 359
1 0 0
0 1 0
0 0 1
1 0
0 1
0
0
0
0 0 0
0 0 0
. . .
. . .
. . .
. . .
. . .. . .. . .. . .
. . .
. . .
. . .
. . .
. . .
variable nodes
chcek nodes
0
0
0
Figure 4.2. Parity-check matrix for the number ’54’
the corresponding check nodes for variable nodes u0 to u359 and the second rowshows the connectivity for variable nodes u360 to nodes u719 which was illustratedin figure 4.1.
For the rate 1/2, the first number ’54’ define an edge between variable nodeu0 and check node v54. The check node’s index for next variable node u1 can becalculated.
q =N · (1−R)
360= 90
(54 + 1 mod (360)× 90) mod 32400 = 144
As the figure 4.2 illustrates, this 360 variable nodes transmits the messages to
4.1 Restructured parity-check matrix for DVB-S2 31
variable node
check node9318+90 9318+2*90
...
...
mod(9318+
359*90)
mod(9318+
358*90)
0 1 2 358 359
9318
variable node check node
m (m*q+9318) mod 32400
Figure 4.3. Tanner graph for the number ’9318’
corresponding check nodes in parallel which means at least 360 message can betransmitted to the 360 different check nodes in the same time without conflict. Inaddition, the figure 4.1 shows u0 corresponding to v54, u1 corresponding to v144
and u2 corresponding to v235. When the index for variable node increases withunit 1, the index for corresponding check node increases with unit q = 90.
As we know, the variable nodes and check nodes could be regarded as X-axisand Y-axis respectively in parity-check matrix H. And the figure 4.2 presents thatkind of matrix for the first 360 variable nodes with the number ’54’. Obviously,it’s a 360× 360 identical matrix while the unit for Y-axis is q.
In order to find the regularity, the second number ’9318’ in the first row wasillustrated by figure 4.3. Because the last 104 indexes of check nodes was out ofthe range (N-K), it mod the (N-K) to make sure the connectivity’s correctness.Figure 4.4 presents the corresponding matrix for the number ’9318’, and it’s thean identical matrix left shifts 104 unit.
4.1.1 Description of restructured parity-check matrix
From this two examples, we can find each number in encoding table could be re-garded as an identical matrix with certain left cyclic shifts. In the parity-checkmatrix H, there exist few ones and many zeros. Inspired by the matrices fromexamples, the whole parity-check matrix is divided into sub-matrices of the size360 × 360. Here denote the Ix as the identical matrix with x left cyclic shifts.Figure 4.5 presents the restructured parity-check matrix.
Figure 4.5 shows the restructured parity-check matrix and detailed three sub-matrix to help readers for easy understanding. Figure 4.1 and 4.4 show the reg-ularity of the encoding table in DVB-S2. One number in encoding table standsfor a 360× 360 identical matrix with certain left cyclic shifts. With this method,
32 DVB-S2 LDPC decoding using reconstructed decoding table
48
q+48
2q+48
358q+48
359q+48
0 1 2 358 359
0 0 0
0 0 0
103q+48
. . .. . .
1 0 0
0 1 0
0 0 1
1 0
0 1
. . .
. . .
. . .
. . .
. . .
. . .
1 0
0 1
1 0
0 1
0 0 0
0 0 0
0 0
0 0
. . .
. . .
. . .
. . .
. . .. . .
. . .
. . .
0 0
0 0
. . .
. . .
. . .
. . .257
variable node
check node
Figure 4.4. Parity-check matrix for the number ’9318’
the information part of variable nodes are divided into q × (R · 180) sub-matriceswhile the unit for Y-axis is defined as q.
In the original parity-check matrix, there exist a fixed zigzag pattern. Becausethe unit of Y-axis is q, it can’t use the same method as information parts. Inorder to get the identical matrix, the unit of X-axis is defined as q which is theuniform definition to the unit of Y-axis. The sub-matrices in parity node groupsare all identical matrix and the figure 4.5 also illustrated three sub-matrices inparity node groups.
In the restructured parity-check matrix, there only have one sub-matrix whichis not identical matrix or identical matrix with left cyclic shifts. It’s illustrated byfigure 4.6, and it could be regarded as a identical matrix without the first row’selement.
4.2 Reconstructed LDPC decoding table
The restructured parity-check matrix could be regarded as a q × 180 matrix. Asthe figure 4.5 shows, the restructured parity-check matrix could also be dividedinto q rows with 360 nodes elements per row and this restructured parity-checkmatrix could use the row Layered-message passing algorithm. Figure 4.7 illus-
4.2 Reconstructed LDPC decoding table 33
I
I
I
0
0
0
Ix
Ix
Ix
Ix
Ix
I1*
0
0
0 0
0 0
0
0 0
0 0
0 0
0
Information node groups Parity nodes groups
180-q q
q
the first index for
each sub-matrix
(0, 1, 2, 3,...q)
the first index for
each sub-matrix
(0, 360, 720,...K-360)
0, q, 2q, ... 359q
0,
q,
2q,...
359q
1, q+1, 2q+1, ... 359q+1
1,
q+1,
2q+1,...
359q+1
q-1, 2q-1, 3q-1, ... 360q-1
q-1,
2q-1,
3q-1,...
360q-1
0, 1, 2, ... 359
0,
q,
2q,...
359q
360, 361, 362, ... 719
1,
q+1,
2q+1,...
359q+1
q-1,
2q-1,
3q-1,...
360q-1
k-360. k-359, k-358....k-1
The first
sub-matrix
in row 1
The second
sub-matrix
in row 2
The last
sub-matrix
in last row
The first
sub-matrix
in row 1
The second
sub-matrix
in row 2
The last
sub-matrix
in last row
Ix
Ix
Ix
I0
I0
I0
Ix
Ix
I0
I0
I0
...
...
...
...
...
...
...
...
.........
...
...
...
...
...
...
Figure 4.5. Restructured parity-check matrix
34 DVB-S2 LDPC decoding using reconstructed decoding table
0
q
2q
358q
359q
q-1 2q-1 359q-1 360q-1
0 0 0
1 0 0
0 1 0
1 0 0
0 1 0
0
0
0
0 0 0
0 0 0
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
variable nodes
chcek nodes
0
0
0
0
0
0
Figure 4.6. A special sub-matrix in restructured parity-check matrix
trates a simple example which transfer the single row Layered-message passing toblock row Layered-message passing.
The restructured parity-check matrix shows each block row contains Dc sub-matrices which are identical matrices with left cyclic shifts. The encoding tablepresents the connectivity from known variable nodes to corresponding unknowncheck nodes while the row Layered-message passing algorithm want to transmitsthe message from known check nodes to unknown variable nodes.
Here a LDPC decoding table for rate 1/2 is presented in Appendix A. Thisdecoding table consists of two parts, the index of sub-matrix in row which denote
λ0
λ1
λ2
λ
λ4
λ5
3
1
1
1 1
1
1
0 0 0 0
0 0
00
0 0
00
0
Iλ0
λ1
Figure 4.7. Single row layered-message passing to block row layered-message passing
4.2 Reconstructed LDPC decoding table 35
as gb, and the beginning position gp. Let’s use figure 4.4 as an example, it’s the48th row in the decoding table with gb = 1 and gp = 257. It means the first checknode v48 are associated to the variable node u257. Because the unit for our columnvaries by q, we denote the gs as the index of column and according to the checknode with index
(m · q + gs) (4.1)
the corresponding variable node with the index of
((gb − 1) · 360 + (gp + m) mod 360) (4.2)
The decoding table only presents for the information bits, the parity bits canbe calculated by
v(m·q+gs) → u(m·q+gs−1) (4.3)v(m·q+gs) → u(m·q+gs) (4.4)
In order to check the correctness of this formula, an example will be illustrated.
Example 4.1
In the decoding table for rate 1/2, the 48th row has gb = 1 while gp = 257, gs = 48.When m = 0, the check node v48 corresponding to
u((gb−1)·360+(gp mod 360)) = u257
The result is exactly the same result as the figure 4.4 shows.
For each check node, it is associated to (Dc−2) information nodes and 2 paritynodes. Here I will use two steps to illustrate the procedure and v0 will be used asan example.
Step 1 The corresponding information nodes are calculated by the decodingtable. For the check node v1, the corresponding information bits can be calculatedby
u((11−1)·360+(310) mod 360) = u3910
u((11−1)·360+(299) mod 360) = u3899
u((21−1)·360+(74) mod 360) = u7274
u((38−1)·360+(0) mod 360) = u13320
u((42−1)·360+(206) mod 360) = u14966
36 DVB-S2 LDPC decoding using reconstructed decoding table
Q Q Q Q
Q Q Q Q
QQ QQ
λ
λ λ λ λ
α α α α α
β β β β β
Λ
Λ Λ Λ Λ
Λ λ
2 3 4 5
λ λ λ λ2 3 4 5
1
7
2 3 4 5
7
1
2 3 4 5 6
1 2 3 4 5
λ
α
6
6
β
λ6
7
QΛ6
Figure 4.8. Computation of extrinsic message with q(x, y)
Step 2 Without the information bits, there also exist 2 parity bit correspondingto the check node v1.
v(0·q+1) → u(0·q+1−1) = u0
v(0·q+1) → u(0·q+1) = u1
4.3 SISO algorithm for restructured parity-checkmatrix
In the previous section, the original parity-check matrix is restructured and be-came a matrix consists of q × 180 sub-matrices and each sub-matrix is identicalmatrix or identical matrix with certain left cyclic shifts. In section 3.2, the pro-cedure for a decoding sub-iteration is introduced without detailing the decodingalgorithms for extrinsic messages.
In Bp algorithm, because of the wide dynamic range of function φ(x) and itsinverse φ(−x), it need large date-paths and function units to make sure the accu-racy of the extrinsic messages. SISO algorithm is introduced by M. Mansour[7], ituse an alternate function q(x, y) to compute message which can be approximatedto SISO-s algorithm and implement using simple logic gates.
Here a new function q(x, y) will instead the old function φ(x) to reconstructthe formula 2.19. The bivariate function is defined as
q(x, y) = logex+y + 1ex + ey
(4.5)
4.3 SISO algorithm for restructured parity-check matrix 37
The function q(x, y) has this properties as below:
1. q(x, y) = q(y, x);
2. q(−x,−y) = q(x, y);
3. q(x, 0) = q(0, y) = q(0, 0) = 0;
4. q(x,−y) = q(−x, y) = −q(x, y);
5. q(|x|, |y|) ≥ 0;
6. q(x, y) = q(sign(x) · |x|, sign(y) · |y|) = sign(x · y) · q(|x|, |y|).
This properties help us to get the relation between q(x, y) and φ(x) is showsbelow:
7. sign(x · y) · φ−1(φ(|x|) + φ(|y|)) = q(x, y);
8. sign(x · y · z) · φ−1(φ(|x|) + φ(|y|) + φ(|z|)) = q((q(x, y), z);
9. sign(∏Dc
i=1 xi) · φ−1(∑Dc
i=1 φ(|xi|)) = q(· · · (q(q(x1, x2), x3), · · · ), xDc).
The following notation is defined for convenience.
q(x1, x2, · · · , xc) = q(· · · (q(q(x1, x2), x3), · · · ), xDc) (4.6)
According to the formula above, the decoding formula for extrinsic messageswhich has the same computation result with formula 2.19 shows below:
Λj = q[j](λ1, · · · , λj , · · · , λDc), j = 1, · · · , Dc (4.7)
With the help of formula 3.13, figure 4.8 shows a effective computing architec-ture to compute the extrinsic messages. If computation starts from the λ1,
q(λ1, λ2) = α2
q(q(λ1, λ2), λ3) = q(α2, λ3) = α3
q(q(q(λ1, λ2), λ3), λ4) = q(α3, λ4) = α4
At the position j,
38 DVB-S2 LDPC decoding using reconstructed decoding table
q(αj−2, λj−1) = αj−1 (4.8)
If computation starts from the λ6,
q(λDc−1, λDc) = βDc−1
q(λDc−2, q(λDc−1, λDc)) = q(λDc−2, βDc−1) = βDc−2
q(λDc−3, q(λDc−2, q(λDc−1, λDc))) = q(λDc−3, βDc − 2) = βDc−3
At the position j + 1,
q(λj+1, βj+2) = βj+1 (4.9)
Next step is the computation of the extrinsic message Λj , and with the help offormula 3.14 and 3.15, the Λj can be computed by
Λj = q(αj−1, βj + 1) (4.10)
4.3.1 SISO-simplified(SISO-s) algorithm
The function q(x, y) could be approximated as below
q(x, y) = log(ex + ey)− log(ex+y + 1)≈ max(x, y) + max(5/8− |x− y|/4, 0)−max(x + y, 0)−max(5/8− |x + y|/4, 0)
(4.11)
With to the approximated equation 4.11, SISO algorithm could be approxi-mated to SISO-s algorithm without using a lookup table. The performance com-parison between SISO algorithm and SISO-s algorithm is present in simulationsresults.
4.3.2 Verification of SISO algorithm
In the previous section, 9 properties is introduced and the formula 3.16 replacethe formula 2.19 to compute the extrinsic message. The properties 7 to 9 will beillustrated in this section.
4.3 SISO algorithm for restructured parity-check matrix 39
Verification for property 7: sign(x · y) · φ−1(φ(|x|) + φ(|y|)) = q(x, y)
Because of the property 6, the formula changes as below
q(x, y) = logex+y + 1ex + ey
→ e|x|+|y| + 1e|x| + e|y|
= eq(x,y)
First to calculate (φ(|x|) + φ(|y|))
φ(|x|) + φ(|y|) = loge|x| + 1e|x| − 1
+ loge|y| + 1e|y| − 1
= log(e|x| + 1) · (e|y| + 1)(e|x| − 1) · (e|y| − 1)
= loge|x|+|y| + 1 + e|x| + e|y|
e|x|+|y| + 1− e|x| − e|y|
= logeq(x,y) + 1eq(x,y) − 1
then,
sign(x · y) · φ−1(φ(|x|) + φ(|y|)) = φ−1
(log
eq(x,y) + 1eq(x,y) − 1
)
= φ
(log
eq(x,y) + 1eq(x,y) − 1
)
= logelog eq(x,y)+1
eq(x,y)−1 + 1
elog eq(x,y)+1
eq(x,y)−1 − 1
= logeq(x,y)+1eq(x,y)−1
+ 1eq(x,y)+1eq(x,y)−1
− 1
= q(x, y)
Verification for property 8: sign(x · y · z) · φ−1(φ(|x|) + φ(|y|) + φ(|z|)) =q((q(x, y), z)
40 DVB-S2 LDPC decoding using reconstructed decoding table
First, denote w = e|x|+|y|+1e|x|+e|y| = eq(x,y). It’s a similar computation as above.
φ(|x|) + φ(|y|) + φ(|z|) = loge|w| + 1e|w| − 1
+ loge|z| + 1e|z| − 1
= logeq(w,z) + 1eq(w,z) − 1
then, the property 8 could rebuild as
sign(x · y · z) · φ−1(φ(|x|) + φ(|y|) + φ(|z|)) = q((q(x, y), z) = φ−1
(log
eq(w,z) + 1eq(w,z) − 1
)
= φ
(log
eq(w,z) + 1eq(w,z) − 1
)
= q(w, z)
= q(q(x, y), z)
As the computation above, it’s easy to get
sign(Dc∏
i=1
φ(|xi|)) = q(· · · (q(q(x1, x2), x3), · · · ), xDc)
Becauseex+y + 1ex + ey
won’t smaller then zero, it’s no necessary to divide the computation into sign partand absolute value.
Chapter 5
Simulation results
In this chapter, the algorithms and schedules which are presented in the pastchapters will be shown by figures.
5.1 Comparison among BP, λ-min and Min-sumalgorithms
λ-min algorithm and Min-sum algorithm are evolved from the BP-algorithm. The
simplified part is∏
i′∈Nj\i
sign(ui′j) · φ[
∑i′∈Nj\i
φ (|ui′j |)], λ-min algorithm keeps λ
min uij to participate the computation while Min-sum algorithm simplified theformula into
∏i′∈Nj\i
sign(ui′j) · [min |ui′j |] which means Min-sum algorithm only
keeps the minimum and the minimum but one uij to participate the computation.
In this section, the comparison among BP-algorithm, λ-min algorithm andMin-sum algorithm will be illustrated.
5.1.1 Comparison among BP, 3-min, 2-min and Min-sumalgorithms at rate 1/4
Figure 5.1 compares the performance of Bp-algorithm, λ-min algorithm(λ = 3)and Min-sum algorithm with 30 iterations. The lambda-min algorithm outper-forms the Min-sum algorithm and it’s quite close to the Bp-algorithm.
At rate 1/4, the degree Dc for check nodes is 4(3 for the first check node),the difference between Bp-algorithm and 3-min algorithm is only 3-min keep 3minimum uij and Bp-algorithm keeps the whole 4 uij except the first check node.
41
42 Simulation results
−0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 1.2 1.410
−6
10−5
10−4
10−3
10−2
10−1
100
Eb/No
BE
R
Bp−Algorithm
Min−sum Algorithm
3−min Algorithm
2−min Algorithm
Figure 5.1. Performance of Bp, λ-min with λ = 2, 3 and Min-sum algorithms at rate1/4
5.1.2 Comparison among BP, 4-min, 3-min, 2-min and Min-sum algorithms at rate 1/2
Figure 5.2 compares the performance of Bp-algorithm, λ-min algorithm(λ = 2, 3, 4)and Min-sum algorithm with 30 iterations. In figure 5.2 Bp-algorithm has thebest performance, and Min-sum has the worst performance. The 2-min algorithmoutperforms the Min-sum algorithm and with the λ increasing, the correspondingalgorithm’s performance is closer to Bp-algorithm.
At rate 1/2, the degree Dc for check nodes is 7(6 for the first check node). Asthe figure 5.1 shows, when the λ is larger(but small than Dc), the performance iscloser to the Bp-algorithm. In order to have obvious comparison, here we chooseλ-min algorithm(λ = 2, 3, 4).
5.1.3 Conclusion
As expected, figure 5.1 and 5.2 compares the performance among Bp-algorithm,λ-min algorithm and Min-sum algorithm. The check node’s degree Dc for rate1/4 and 1/2 are 4(3 for the first check node) and 7(6 for the first check node)respectively. Obviously, it’s more degradation of the Min-sum algorithm in figure5.2 then the Min-sum algorithm in figure 5.1.
With the same λ, the performance of the algorithms which has higher checknode degree can achieve better improvement than the algorithms with low checknode degree. If it is a low check node degree parity-check matrix, the Min-sumalgorithm already appears good performance, while it’s a high check node degreeparity-check matrix, it’s better to use λ-min or other algorithms to improve itsperformance.
5.2 Comparison between TPMP and LMP 43
0.5 0.6 0.7 0.8 0.9 1 1.1 1.2 1.3 1.4 1.510
−5
10−4
10−3
10−2
10−1
100
Eb/No
BE
R
Min−sum algorithm
Bp algorithm
4−min algorithm
3−min algorithm
2−min algorithm
Figure 5.2. Performance of Bp, λ-min with λ = 2, 3, 4 and Min-sum algorithms at rate1/2
5.2 Comparison between TPMP and LMP
Layered message passing decoding(LMP) has higher convergence speed than two-phase message passing decoding(TPMP). In this section, the iterations for Bpalgorithm and Layered-message passing will compared with 3 different rates. Withthe same iteration at the same rate, the BER performance for this two scheduleswill be compared.
5.2.1 Comparison of performance with the specified itera-tions
Figure 5.3 presents the BER performance of Two-phase message passing and lay-ered message passing with the same iteration at rate 1/2. The specified iterationsare 5, 10, 20 and 30. The figure demonstrates with the same iteration, Layeredmessage passing decoding outperform than Two-phase message passing. Especiallywith the 10 iterations, the Layered-message passing present an order of magnitudeimprovement of the BER performance. In another hand, it’s shows the high con-vergence speed of Layered-message passing.
5.2.2 Comparison of the iterations between TPMP and LMP
Figure 5.4, 5.5 and 5.6 shows the comparison of iterations between Two-phasemessage passing and Layered-message passing with 3 different rate. Obviously, theiterations which Layered-message passing decoding needed are half of the iterationswhich Two-phase message passing decoding needed.
44 Simulation results
0.5 0.55 0.6 0.65 0.7 0.75 0.8 0.85 0.9 0.95 110
−6
10−5
10−4
10−3
10−2
10−1
Eb/No
BER
iter10
iter15
iter20
iter30
iter10
iter15
iter20
iter30
Figure 5.3. Performance of Two-phase message passing(TPMP) and Layered messagepassing(LMP) with four specified iterations
5.2.3 Conclusion
In this section, comparison between Two-phase message passing and Layered-message passing is presented. According to four figures, Layered-message passingalgorithm shows higher convergence speed that only need half of the iterationswhich Two-phase message passing needed.
5.3 Comparison among SISO, SISO-s and λ-minalgorithms
In chapter 4, SISO algorithm is introduced as a suitable decoding mechanism tothe extrinsic message. A simplified SISO algorithm is also introduced which canbe implemented without look-up table.
In this section, the comparison between SISO algorithm and SISO-simplifiedalgorithm with the Layered message passing is presented. As we know, the compu-tation in SISO algorithm comes to the same result of BP-algorithm. As a simplifiedBP-algorithm, λ-min algorithm is compared with SISO-simplified algorithm.
5.3.1 Comparison between SISO and SISO-s algorithms
Figure 5.7 shows the comparison between SISO algorithm and SISO-s algorithmat the rate 1/2. Because the simulations lack enough frames, the curves are notso smooth, but the figure 5.7 also presents the performance comparison betweenthis two algorithms. The BER performance of SISO-simplified algorithm is quiteclose to the SISO-algorithm.
5.3 Comparison among SISO, SISO-s and λ-min algorithms 45
0.8 1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.85
10
15
20
25
30
35
40
Eb/No
Itera
tions
Layered message passing
Two−phase message passing
Figure 5.4. Iterations comparison between Two-phase message passing(TPMP) andLayered-message passing(LMP) at rate 1/4
5.3.2 Comparison between SISO-s and λ-min algorithmsFigure 5.8 shows the comparison among SISO-simplified algorithm, 4-min algo-rithm and 3-min algorithm at the rate 1/2. As the figure 5.7, the curves arenot so smooth because the simulation didn’t use enough frames. The BER per-formance of 4-min algorithm is almost superposed with the BER performance ofSISO-simplified algorithm, but the BER performance of 3-min algorithm is worsethan the other two algorithms.
5.3.3 ConclusionAccording to the comparison in rate 1/2, the BER performance of SISO-simplifiedalgorithm is similar to the 4-min algorithm and it’s quite close to the BER perfor-mance of SISO algorithm.
46 Simulation results
0.5 1 1.5 2 2.5 3 3.5 40
5
10
15
20
25
30
35
40
45
50
Eb/No
Itera
tions
Layered−message passing
Two−phase message passing
Figure 5.5. Iterations comparison between Two-phase message passing(TPMP) andLayered-message passing(LMP) at rate 1/2
1.8 2 2.2 2.4 2.6 2.8 3 3.2 3.4 3.6 3.80
5
10
15
20
25
30
Eb/No
Itera
tions
Layered−message passing
Two−phase message passing
Figure 5.6. Iterations comparison between Two-phase message passing(TPMP) andLayered-message passing(LMP) at rate 2/3
5.3 Comparison among SISO, SISO-s and λ-min algorithms 47
0.4 0.45 0.5 0.55 0.6 0.65 0.7 0.75 0.810
−4
10−3
10−2
10−1
100
Eb/No
BE
R
SISO algorithm
SISO−s algorithm
Figure 5.7. Performance of SISO and SISO-s algorithms at rate 1/2
0.4 0.45 0.5 0.55 0.6 0.65 0.7 0.75 0.8 0.85 0.910
−4
10−3
10−2
10−1
100
Eb/No
BE
R
SISO−s algorithm
4−min algorithm
3−min algorithm
Figure 5.8. Performance of SISO-s and λ-min algorithms at rate 1/2
Chapter 6
Memory cost estimation
In the previous chapters, we investigate several algorithms and schedules of LDPCcode. According to the investigation of the regularity of LDPC code in DVB-S2,a restructured parity-check matrix which can be divided into sub-matrices is pro-vided. In order to get the addresses of variable bits from known check bits, areconstructed decoding table for each rate is provided in Appendix A. Next, wewant to discuss decoder architecture and the memory cost estimation.
6.1 Decoder architectureIn the restructured parity-check matrix, the 360 rows in each sub-matrices are non-overlapping. This means at most 360 corresponding check nodes could computetheir extrinsic messages in parallel, which is an important regularity to implementthe hardware. But it will be a large resource cost if the decoder contains 360 func-tion units. Because we discuss the memory cost and the number of function unitswon’t affect the total memory size, here we assume the decoder has 360 functionunits is computed in parallel.
Figure 6.1 shows the architecture of LDPC decoder in DVB-S2. Basically, thedecoder consists of memory of variable messages, interconnected network and ex-trinsic message decoding units. The input values could be the received LLR valuesfor initialization and the updated variable messages after each sub-iteration. Withthe updating for the memory, the Hard decision unit will check the correctness forthe variable messages.
6.1.1 Memory of variable messages
The memory for variable messages is initialized with the received LLR values andis updated at each sub-iteration. In order to let readers have better understanding,assume the variable messages are stored as the parity-check matrix as figure 6.2.
49
50 Memory cost estimation
Memory for
variable message
Interconnection
network
Extrinsic mesaage
decodeing unit
...
Input
Output
Hard
decision
Figure 6.1. Overview of the date flow for Layered-message passing algorithm
It’s a 180×360 matrix with 180 rows and each row contains 360 variable messages.In each sub-iteration, only one row of the variable messages is updated.
6.1.2 Interconnected network
As the regularity of identical matrix(or identical matrix with left cyclic shifts)which shows in figure 4.5, if we know the position of non-zero in the first row, wewill get the position for the other non-zeros in this identical matrix with left cyclicshifts.
For the information nodes, when the label of the sub-block(gs) is provided, theindex of the first non-zero variable node can be found in the decoding table. Theindex for the left variable nodes and check nodes can be computed. In a sub-matrixof the restructured parity-check matrix, the unit interval for check nodes is q whileit’s 1 for variable nodes. For the parity nodes, the unit interval for variable nodesand check nodes are both q. In order to make sure the computed number won’toutside the sub-matrix, the computed number will be modulated by (N −K) (360
6.1 Decoder architecture 51
Memory for variable messages
180
rows
360 messages per row
0 ~ 359
360 ~ 719720 ~ 1079
64440 ~ 64799
64080 ~ 64439
Index of
rows
...Figure 6.2. Memory of variable messages
for the variable node).
6.1.3 Decoding units of extrinsic messages
As figure 6.3 shows, the restructured parity-check matrix could be divided into qsub-blocks and each sub-block contains 180 sub-matrices. Each row in the samesub-block can be computed in parallel, which means at most there could exist 360function units to do computation for the maximum thoughput. In order to achievea good compromise between hardware resources and throughput, the number offunction units could be varied, such like 180, 90, 45. And it leads to the changesof the memory size for single Extrinsic memory, but the total memory size forextrinsic messages won’t be changed.
We assume in each sub-iteration, 360 rows which in the same sub-block arecomputed by 360 decoders. For the first iteration, the memories for extrinsicmessages is set to zero. For each extrinsic decoder, the input variable messagessubtract the corresponding extrinsic messages and the results are fed to the extrin-sic decoder to get the new extrinsic messages. The algorithm for decoder could beSISO algorithm, SISO-simplified algorithm or λ-min algorithm. The new extrinsicmessages are replaced the old extrinsic messages in the memories and the newvariable messages are also updated. After each sub-iteration, the updated variablemessages are fed back to the memories for variable message.
52 Memory cost estimation
6.2 Memory cost estimation
From the decoder architecture shown in figure 6.1, the decoder has three typeof memories which store variable messages, hard bits and extrinsic messages re-spectively. The Variable-message memory holds the variable messages which areupdated in each sub-iteration and it is initialized by received LLR values. TheHard-decoding memory holds hard decoding bits for variable messages (one bitcorresponding to one variable message). Different from Variable-message memoryand Hard-decoding memory, the single memory size for extrinsic messages is var-ied with the number of function units. But here we only discuss the total memorysize of extrinsic messages with different algorithms.
Memory cost estimation of Variable-messages and Hard-decoding bits
Assume the bit width for one LLR value is 7 bit, the memory size of Variable-message memory is 453600 bits. For Hard-decoding memory, it’s 64800 bits needto stored.
6.2.1 Memory cost estimation of Extrinsic-messages
The basic difference between various algorithms is the computation unit for theextrinsic messages. Because of the high implementation complexity of the BPalgorithm, we introduced several suboptimal algorithms. According to the simula-tion results, λ-min algorithm and SISO-s algorithm are still has good performancewhile the implementation complexity is reduced.
Rate q Dc
Total memory size Total memory size Total memory sizeof Extrinsic mess. of Extrinsic mess. of Extrinsic mess.
(SISO-s) (4-min, 3-min (3-min, 2-minfor R<1/2) for R<1/2)
1/4 135 4 135× 28× 360 135× 34× 360 135× 26× 3601/3 120 5 120× 35× 360 120× 38× 360 120× 29× 3602/5 108 6 108× 42× 360 108× 39× 360 108× 30× 3601/2 90 7 90× 49× 360 90× 49× 360 90× 40× 3603/5 72 11 72× 77× 360 72× 57× 360 72× 47× 3602/3 60 10 60× 70× 360 60× 56× 360 60× 46× 3603/4 45 14 45× 98× 360 45× 60× 360 45× 50× 3604/5 36 18 36× 126× 360 36× 68× 360 36× 57× 3605/6 30 22 30× 154× 360 30× 72× 360 30× 61× 3608/9 20 27 20× 189× 360 20× 77× 360 20× 66× 3609/10 18 30 18× 210× 360 18× 80× 360 18× 69× 360Max memory size 1995840 1652400 1252800
Table 6.1. Extrinsic message memory estimation for LDPC code in DVB-S2
6.2 Memory cost estimation 53
Corresponding to the SISO-s algorithm, the λ-min algorithm only need the λsmallest values for the computation. With the bit width for a LLR value is 7 bitand the weight Dc for check node is 30, the memory need to store 210 bits whenBp, SISO or SISO-s algorithms is used as the decoding algorithm. For λ(λ = 3)-min algorithms, one LLR value only requires 69 bits(30 sign bits, 4× 6 magnitudebits and 3× 5 index bits). While the min-sum decoding only requires 47 bits (30sign bits, 2× 6 magnitude bits and 5 index bits) for one check message’s compu-tation.
The performance of λ-min algorithm is getting closer to the (λ − 1)-min al-gorithm when the rate is reducing. Meanwhile the memory size is increasing,especially when the rate is lower than 1/2. Hence, for the memory reduction,(λ − 1)min is advised when R < 1/2. Table 6.1 summarize the required memorysize for different decoding algorithms, the Extrinsic memory size has a distinctreduce when the λ-min algorithm is used. If the decoder using Bp, SISO andSISO-s algorithms, 1995840 bits are required for the extrinsic LLR values. With4-min algorithm(3-min when R<1/2), the total memory size of extrinsic messagesis reduced to 1652400 bits (82.8%). With 3-min algorithm(2-min when R<1/2),the memory size of extrinsic messages is further reduced to 1252800 bits(62.8%).
54 Memory cost estimation
Decoding units for extrinsic message
λ1,1
~ λ1,1
c1 D λ1,2
~ λ1,2
c1 D λ1,359
~λ1,359
c1 D λ1,360
~λ1,360
c1 D
λ2,1
~ λ2,1
1 D λ2,2
~ λ2,2
1 D
λq-1,1
~λq-1,1
1 D
λq,1
~ λq,1
1 D
c c
c
c
λq-1,2
~λq-1,2
1 Dc
λq,2
~λq,2
1 Dc
q-1,360~ λ
q-1,360
1 Dcλq,360
~ λq,360
1 Dcλ
q-1,359~ λ
q-1,359
1 Dcλq,359
~ λq,359
1 Dcλ
λ2,359
~λ2,359
c1 D λ2,360
~λ2,360
c1 D
...
...
...
...
...
Restructured
parity-check matrix
Memorys for
extrinsic message
1 1
2 2
...
...
q q
...
...
...
...
0 1 359
0
1
359
sub-block
+
Old
Variable
message
+
Extrinsic
Decoder
Updated
Variable
message
Old
Variable
message
+
Extrinsic
Decoder
Updated
Variable
message
Old
Variable
message
+
Extrinsic
Decoder
Updated
Variable
message
Old
Variable
message
+
Extrinsic
Decoder
Updated
Variable
message
...
- -+ + +
- -
Figure 6.3. Decoding unit for extrinsic message
Chapter 7
Conclusion and Future work
7.1 Conclusion
In this thesis, we introduce and analyse several LDPC algorithms and their char-acteristics. Because the algorithms for LDPC code are iterative decoding, twoschedules(TPMP and LMP) are illustrated and compared. According to the sim-ulation results, we found Bp-algorithm has the better performance but also hashigher computation complexity, while Min-sum algorithm has lower computationcomplexity but much worse performance. The λ-min algorithm has the lowercomputation complexity compared to Bp algorithm and better performance thanMin-sum algorithm. The comparison simulations between Two-phase messagepassing(TPMP) and Layered message passing(LMP) are also presented, comparedto TPMP, LMP has higher convergence speed, less decoding iterations and smallermemory size for extrinsic messages.
According to the analysis of parity-check matrix of LDPC code in DVB-S2, theparity-check matrix is restructured to let extrinsic message compute in parallel.The encoding table of DVB-S2 standard only could obtain the unknown checknodes from known variable nodes, while the reconstructed decoding table thisthesis provided could obtain the unknown variable nodes from known check nodeswhat is exactly the Layered-massage passing algorithm needed. At the last part,the memory cost estimation is presented and memory size comparison of differentalgorithms and schedules are also illustrated.
7.2 Future work
Next work of the thesis is the hardware implementation. With the combinationof sub-matrices, reconstructed decoding table and layered message passing sched-ule, the efficiency of decoding is increased and the memory storage for messagesare reduced. SISO-s algorithm is approximated from SISO algorithm, it can beimplemented without lookup table. Because λ-min algorithm only need to store
55
56 Conclusion and Future work
λ extrinsic messages, maybe it’s possible to combine SISO-s algorithm and λ-minalgorithm to a decoding method, this combination decoding method only storeλ extrinsic messages and could be implemented without lookup table. In orderto achieve a good compromise between hardware resources and throughout, thenumber of decoding units should be deliberated in the hardware implementation.
Bibliography
[1] European telecommunications standards institude(etsi). digital video broad-casting (dvb) second generation framing structure for broadband satellite ap-plications; en 302 307 v1.1.1. URL: www.dvb.org.
[2] D.Declercq A.Segard, F.Verdier and P.Urard. "A DVB-S2 compliant LDPCdecoder integrating the Horizontal Shuffle Scheduling". ISPACS 2006. YonagoConvention Center, Tottori, Japan.
[3] E.Boutillon F.Guilloud and J.Danger. "λ-Min Decoding Algorithm of Regularand Irregular LDPC Codes". in Proc. 3nd International Symposium on TurboCodes and Related Topics, Brest, France, Sep.2003. pp.451-454.
[4] T.Brack F.kienle and N.Wehn. "A synthesizable IP Core for DVB-S2 LDPCCode Decoding". IEEE Design, Automation and Test in Europe.Proceedings,2005. pp. 100-105 Vol.3.
[5] J.Chen and M.Fossorier. "Density Evolution for Two Improved BP-Based De-coding Algorithms of LDPC Codes". IEEE Communications Letters Vol.6,No.5, May 2002.
[6] D.J.C. Mackay and R.M.Neal. "Near Shannon Limit Performance of Low Den-sity Parity Check Codes". Electronics Letters 32(18), pp. 1645-1646, 1996.
[7] Mohammad M.Mansour. "A Turbo-Decoding Message-Passing Algorithm forSparse Parity-Check Matrix Codes". IEEE Transcations on signal processing,vol. 54, No. 11, Nov. 2006.
[8] A. de Baynast P. Radosavljevic and J. R. Cavallaro. "Optimized Message Pass-ing Schedules for LDPC Decoding". Asilomar Conference on Signals, Systems,and Computers, Nov. 2005. Page(s):591 - 595.
[9] R.Gallager. "Low-density parity-check codes". IEEE Transactions on Informa-tion Theory. vol. 8, pp. 21-28, 1962.
57
Appendix A
Decoding Table: Addressesof variable bits forNldpc = 64800
Addresses of check bit(v) = m · q + gs
Addresses of variable bit(u) = ((gb − 1) · 360 + (gp + m) mod 360)
Example of interpretation of the rate 1/2.
v0 → u9420, v0 → u9821, v0 → u11093, v0 → u12960, v0 → u26819
v90 → u9421, v90 → u9822, v90 → u11094, v90 → u12961, v90 → u26820
......
......
...
v27000 → u9360, v27000 → u9761, v27000 → u11033, v27000 → u13260, v27000 → u26759
......
......
...
v32310 → u9419, v32310 → u9820, v32310 → u11092, v32310 → u13319, v32310 → u26818
59
60 Decoding Table: Addresses of variable bits for Nldpc = 64800
Rate: 1/4 (N =64800) ldpc
( 0 ~
44 )
( 45 ~
89 )
g g gpbp
1 28
29 45
7 15
14 21
2 12
5 26
6 6
11 13
25 36
18 42
10 11
3 13
9 16
15 43
12 30
1 3
1 8
9 13
10 41
9 13
12 31
15 24
2 36
11 37
7 9
6 14
18 35
4 5
8 15
1 3
7 31
5 6
25 37
12 26
2 9
11 41
5 7
2 10
4 28
10 20
6 34
14 14
1 17
22 38
3 10
6 9
7 13
8 20
7 12
12 14
5 32
8 14
5 9
1 14
12 24
3 23
23 38
7 10
1 39
3 4
1 8
12 40
2 16
15 42
4 14
7 12
14 34
9 13
12 39
10 36
9 39
3 27
5 35
6 8
3 5
10 11
13 40
6 13
15 27
12 40
5 7
12 18
19 33
4 6
2 32
9 33
5 9
8 25
2 3
1 13
9 13
2 29
30 38
19 43
4 13
19 42
13 16
15 22
8 20
3 10
4 11
8 32
14 45
2 11
1 6
28 41
11 30
11 15
1 7
5 29
15 45
7 11
24 44
7 10
4 4
10 21
1 33
2 14
2 11
3 15
22 44
11 27
4 35
17 44
8 43
15 23
5 21
17 31
6 14
15 26
8 34
4 6
4 10
2 8
3 37
356 291
93 117
346 340
28 35
237 5
159 35
257 171
259 49
74 134
313 141
48 297
263 298
137 196
123 117
216 306
223 136
314 32
36 268
154 234
51 165
34 264
157 181
175 87
168 304
27 146
194 83
101 179
294 147
62 73
49 253
48 235
286 118
131 180
180 97
86 200
131 291
61 189
207 107
64 198
327 254
60 295
187 260
184 217
297 357
275 332
224 205
323 158
258 1
284 234
217 16
260 194
82 337
50 276
93 98
248 209
130 183
147 160
295 79
226 128
74 315
352 272
329 344
45 299
43 232
60 294
243 41
317 10
312 225
325 271
318 354
152 200
147 308
301 249
70 283
222 262
159 70
16 227
268 141
75 249
220 352
20 22
142 112
140 287
245 31
239 185
354 31
216 170
117 300
176 195
206 237
311 291
102 273
66 326
142 19
131 122
132 179
98 181
206 115
16 292
257 96
193 336
334 278
307 208
233 125
147 65
320 74
107 111
296 55
12 25
178 117
164 15
217 352
331 87
248 309
196 236
280 330
186 105
205 245
236 267
347 350
106 225
237 23
194 24
287 210
122 131
159 194
118 79
155 139
103 163
13 202
350 257
293 288
184 198
304 310
64 262
( 90 ~
134
)
gb gb gp
61
Rate: 1/3 (N =64800) ldpc
( 0 ~
39 )
( 40 ~
79 )
g g gpbp
( 80 ~
119
)gb gb g
p
1 1 48
39 50 58
10 20 31
2 16 50
14 17 27
7 21 22
8 8 19
13 22 51
25 26 38
13 20 27
4 23 49
12 13 20
18 20 58
1 14 15
1 5 26
11 15 48
21 56 0
17 38 39
11 12 0
14 26 50
14 18 36
8 15 20
2 11 16
6 21 33
13 41 47
10 19 22
1 8 12
4 11 59
7 21 0
17 24 45
3 10 20
7 17 0
8 10 23
37 52 0
6 28 57
8 19 19
22 44 56
12 12 29
1 10 13
15 18 18
14 16 22
4 20 57
11 22 0
7 16 18
22 34 52
8 15 48
14 19 43
1 21 54
16 22 0
4 11 58
16 20 22
1 17 20
4 19 31
1 7 23
33 41 54
12 15 16
2 6 47
6 10 15
14 21 54
24 29 40
12 19 19
11 19 32
4 21 57
7 9 14
4 43 55
14 27 33
8 15 19
7 14 23
12 15 60
14 19 28
7 15 18
21 22 36
7 30 37
6 18 22
2 10 15
6 21 52
8 11 42
41 42 60
2 4 30
1 23 49
7 18 31
2 55 0
28 35 42
15 17 17
22 39 59
10 21 53
13 13 23
16 16 23
23 23 53
4 6 13
18 32 45
11 13 45
1 18 40
2 30 34
14 20 29
8 12 35
7 10 17
17 43 51
10 13 46
12 17 37
6 6 10
32 36 49
10 46 59
1 20 44
2 12 60
2 4 13
16 23 56
13 16 47
24 51 0
6 17 21
11 19 53
18 21 38
7 23 23
20 25 35
17 25 44
16 34 55
2 8 11
6 6 46
2 11 12
4 18 40
314 184 47
132 176 124
217 117 76
237 28 151
5 340 15
159 274 344
257 171 97
259 232 293
215 227 30
71 306 133
263 183 97
48 297 252
209 49 319
226 216 298
223 136 37
32 268 241
354 350 0
123 184 115
99 154 0
34 123 149
263 297 28
21 165 122
175 199 83
294 287 212
168 200 205
323 202 122
356 194 106
253 62 326
147 264 0
173 125 146
86 22 215
61 73 0
118 346 45
355 218 0
64 1 2
60 303 221
234 6 150
107 332 244
206 25 131
158 108 106
234 187 312
275 346 288
258 272 0
260 337 48
179 28 278
224 349 225
248 131 341
186 304 237
16 192 0
215 82 75
294 273 259
147 43 116
74 300 309
93 50 148
276 118 226
79 225 317
45 60 33
315 189 98
329 144 205
153 319 336
318 2 27
283 231 76
147 302 154
301 70 41
222 248 86
325 132 238
268 16 74
262 220 117
159 237 240
142 35 17
20 141 35
357 291 118
278 69 81
245 330 250
239 27 291
117 180 194
31 117 157
316 122 176
176 195 332
49 225 180
216 240 121
102 259 0
310 347 281
122 316 206
74 42 93
201 160 67
168 336 299
230 307 143
15 302 137
257 193 125
194 9 4
334 107 22
352 192 276
233 335 171
233 93 22
65 309 239
178 248 55
350 26 355
243 352 93
280 164 281
196 236 48
19 52 304
230 43 116
70 66 181
205 265 339
236 347 267
245 208 36
237 257 12
28 67 0
194 159 8
122 253 291
29 262 253
118 71 76
28 36 231
13 242 304
163 13 319
264 288 350
293 184 98
304 310 198
64 115 57
62 Decoding Table: Addresses of variable bits for Nldpc = 64800
Rate: 2/5 (N =64800) ldpc
( 0 ~
53 )
( 54 ~
107
)
gpgb gb
1 1 40
22 24 28 63
10 15 33 55
2 16 28 68
8 17 21
6 8 18
14 22 22 62
13 29 40
12 16 25 65
4 14 24 59
15 23 26
16 19 22 58
1 4 26 65
1 11 12
18 31 32 66
18 27 28
19 22 26
7 12 28
11 13 26
10 12 15
2 8 17
11 18 27 67
4 16 21
1 13 14
5 6 8 68
21 24 29
6 12 24 72
2 21 27 53
10 12 44 69
3 6 28
5 10 23 70
10 15 32 72
13 19 23 51
13 22 39
1 14 19
10 17 26
13 19 22 67
4 15 42
12 16 17
6 15 17 50
11 21 27 69
6 8 24 69
1 17 23
15 23 30
11 20 21
4 15 17 49
1 28 40
10 18 24
1 4 26 56
5 15 25 49
2 5 28 71
5 17 43 61
13 16 32
22 23 27
10 13 17 52
12 23 24
11 12 30 71
16 21 27
4 4 14 66
13 16 46 70
8 15 41 56
15 18 25 65
6 10 28 54
23 24 27
6 8 24 64
8 21 36 70
5 16 21
2 12 37 47
6 21 41 57
11 24 45 68
2 12 24 57
1 15 28
4 23 26
2 12 25 60
16 16 38 72
23 35 37 67
5 19 29 51
26 27 38
14 17 18
5 16 23
4 11 11
14 24 27
25 25 28 53
1 8 14
2 25 25 71
10 14 23
14 18 19
22 25 33
6 13 31 48
10 14 28
5 10 19
5 18 37 47
9 13 30
1 21 27
2 17 25 63
4 14 18
28 31 34 59
5 25 26
11 22 45
18 21 22 54
6 19 35 53
19 22 26 66
8 18 25 61
17 26 26
2 11 27
5 27 43
2 8 13
4 11 19 56
314 184 97
117 232 187 294
48 5 146 223
233 49 147 62
171 28 97
159 257 340
131 306 111 210
48 200 299
137 225 183 272
263 352 141 80
216 134 130
298 194 252 200
226 136 322 157
223 32 51
123 71 51 143
157 96 6
115 122 174
241 36 132
199 154 248
25 146 34
45 194 83
62 73 347 187
253 165 308
356 106 267
294 286 118 106
202 234 184
147 219 257 95
86 303 75 126
27 200 285 81
207 61 336
184 189 31 101
217 180 6 178
327 297 257 226
107 215 151
206 168 48
248 260 133
332 29 273 95
275 234 89
205 158 16
260 217 187 282
258 221 239 67
50 224 179 99
186 98 255
248 105 66
82 199 2
130 329 337 120
147 42 351
295 43 312
93 74 15 288
293 41 45 237
236 193 276 237
159 317 173 341
79 16 130
116 295 231
346 318 294 178
152 10 192
283 312 248 244
141 35 28
222 147 70 48
159 291 113 282
70 325 176 349
220 75 148 1
262 323 161 124
41 250 7
20 268 291 179
31 27 25 219
245 237 231
176 170 359 85
216 23 328 75
117 259 24 150
237 354 31 311
49 142 306
195 196 123
205 311 117 110
122 268 225 337
287 263 294 193
131 108 108 20
227 60 7
297 307 206
194 98 11
257 334 16
336 74 281
299 143 57 293
352 65 125
304 15 302 223
230 107 160
296 55 209
93 174 9
178 309 248 235
243 259 108
60 22 147
236 164 33 291
52 280 122
70 207 162
102 245 208 64
347 237 350
115 36 85 93
315 279 166
122 286 194
159 253 66 36
118 183 43 319
192 18 37 29
103 13 76 240
163 333 132
239 350 52
64 118 67
175 288 198
64 310 106 359
gp
63
27 28 31 37 75
11 11 21 38 42
5 17 28 39 52
3 7 17 40 69
10 25 34 41 83
4 14 25 31 42
15 22 33 43 77
5 29 35 44 90
17 19 31 45 88
22 25 46 59 80
2 5 6 38 47
9 20 21 33 48
16 27 34 49 79
9 17 47 50 67
1 19 51 64 68
14 24 31 52 64
7 12 53 60 74
9 28 50 54 57
15 24 26 55 82
3 16 29 39 56
12 20 32 57 75
1 9 12 58 68
20 32 59 72 86
4 10 20 46 60
5 18 36 53 61
20 25 28 62 79
3 30 53 63 84
8 14 35 64 67
19 26 33 46 65
6 7 15 36 66
21 23 48 67 87
4 5 47 68 81
7 18 26 65 69
16 17 36 41 70
12 13 71 78 89
15 23 29 37 72
6 22 26 52 73
5 11 32 62 74
8 11 38 51 75
21 27 49 56 76
16 21 71 76 77
18 32 58 59 78
17 21 28 79 87
15 22 60 80 90
9 20 26 40 81
2 6 19 23 82
8 22 34 72 83
1 27 51 66 84
1 11 15 36 85
1 6 30 34 86
2 12 13 61 87
2 4 22 86 88
6 18 74 88 89
11 24 41 69 90
1 4 7 9 84
2 26 31 54 89
3 7 29 31 43
4 4 13 27 61
5 5 24 30 36
6 18 30 45 55
7 13 22 39 58
8 13 32 62 71
9 13 13 36 66
2 2 10 30 35
4 11 19 24 34
12 14 18 48 73
8 13 16 25 82
10 14 31 35 50
7 15 32 33 44
16 23 27 80 85
2 14 17 21 33
3 18 18 25 29
3 19 35 40 54
19 20 28 36 63
10 10 21 23 76
22 23 24 70 78
15 23 27 30 55
8 24 25 29 37
14 16 25 42 45
3 23 26 49 83
3 14 27 65 81
17 28 35 73 77
1 10 29 35 56
8 28 30 34 63
12 19 29 31 70
10 11 30 32 34
9 24 32 33 33
12 26 34 43 85
6 8 16 35 57
1 20 33 36 44
60 101 293 0 179
310 299 74 0 206
329 346 42 0 222
98 291 93 0 8
43 121 324 0 82
208 106 224 151 0
74 257 124 0 22
234 316 95 0 146
28 345 63 0 311
19 19 0 64 7
332 220 184 359 0
83 160 227 190 0
27 281 179 0 163
260 215 45 0 129
332 134 0 260 229
194 25 176 0 61
225 121 0 236 275
187 306 239 0 58
250 309 87 0 199
168 221 200 246 0
310 326 67 0 266
54 337 172 0 80
271 54 0 70 305
153 316 190 176 0
325 287 156 263 0
357 71 132 0 284
71 243 275 0 117
230 192 291 0 341
87 28 350 237 0
122 122 286 219 0
234 299 205 0 330
232 34 175 0 127
158 31 171 147 0
249 273 67 314 0
313 72 0 189 36
131 208 187 83 0
325 131 83 64 0
216 75 291 164 0
257 196 317 318 0
259 28 3 265 0
23 272 224 248 0
11 85 193 293 0
49 122 115 0 287
300 310 245 0 137
300 212 253 352 0
309 292 302 183 0
295 31 335 288 0
265 195 121 20 0
257 181 156 149 0
247 174 341 64 0
48 112 244 212 0
320 296 117 131 0
125 10 61 219 0
114 215 223 163 0
0 70 268 98 310
0 13 355 195 354
0 16 184 328 349
0 189 254 52 254
0 41 153 304 81
0 255 248 271 186
0 1 49 358 60
0 18 137 282 65
0 292 330 262 159
280 327 0 36 228
180 0 289 36 135
0 147 257 86 70
107 0 308 9 283
114 0 89 128 330
165 0 113 154 302
0 15 234 222 272
96 115 0 344 223
86 0 196 76 298
352 0 187 93 136
176 0 30 282 144
173 55 0 76 230
0 143 8 257 346
157 0 118 71 87
235 0 104 108 199
209 85 0 184 48
259 117 0 161 350
297 29 0 262 4
117 0 107 236 27
201 73 0 193 6
203 358 0 143 345
171 354 118 0 31
123 198 26 0 294
28 242 24 0 36
101 7 0 124 119
183 353 207 0 139
62 144 2 0 199
Rate: 1/2 (N =64800) ldpc
( 0 ~
44 )
( 45 ~
89 )
g g g gb pbp
64 Decoding Table: Addresses of variable bits for Nldpc = 64800
Rate: 3/5 (N =64800) ldpc
( 0 ~
44 )
g gb p
1 16 23 25 33 34 37 41 102
1 8 10 12 25 34 38 45 98
3 7 9 15 34 35 39 65 93
13 18 18 23 27 28 40 58 105
8 12 15 19 19 26 41 56 97
23 25 26 29 30 32 42 49 95
7 11 13 18 21 26 43 51 99
11 19 26 28 31 32 44 46 98
4 9 9 9 23 36 39 45 80
1 8 12 23 31 32 46 68 78
2 14 18 24 25 31 47 52 104
5 10 12 12 16 17 48 57 83
6 12 14 26 34 36 42 49 95
4 4 8 16 32 35 37 50 82
8 14 16 18 29 30 51 70 90
5 16 24 28 32 33 52 61 81
10 14 16 20 28 30 42 53 103
3 6 24 27 30 36 54 61 91
2 5 15 15 21 24 55 59 100
3 6 8 10 28 32 56 60 92
3 11 12 20 24 33 57 64 93
3 4 5 7 16 19 58 63 76
4 18 22 27 27 30 50 59 103
2 10 20 28 28 28 43 60 80
2 7 21 22 31 36 61 63 87
2 2 12 18 26 33 52 62 77
1 15 17 18 29 36 53 63 77
1 7 11 17 33 36 44 64 84
3 11 11 19 31 33 48 65 73
3 6 11 12 28 31 60 66 76
1 9 9 14 23 30 54 67 100
2 5 11 27 33 34 53 68 86
7 8 22 23 24 33 67 69 89
3 4 9 15 17 31 39 70 84
1 4 7 20 24 24 44 71 101
1 4 4 14 25 28 37 72 97
2 5 6 14 25 27 48 73 107
2 6 17 18 20 25 66 74 104
10 12 13 26 35 36 45 75 75
16 21 21 23 30 31 43 76 87
12 16 21 21 26 27 59 77 105
5 10 26 26 31 35 50 78 94
1 3 11 23 30 32 41 79 82
5 13 19 25 35 35 70 80 89
9 9 13 16 21 27 65 81 83
123 160 47 226 15 246 0 151 157
205 222 334 98 293 226 0 286 14
3 103 182 308 204 325 0 266 21
33 143 174 215 101 117 0 1 149
7 235 221 310 239 326 0 337 2
151 150 200 349 307 240 0 159 223
275 180 260 8 115 75 0 176 19
298 132 176 62 274 316 0 101 73
6 272 262 239 304 114 230 0 3
282 243 203 294 31 191 0 296 18
302 299 279 173 126 229 0 93 347
254 60 268 224 24 117 0 299 72
286 158 198 80 14 257 104 0 246
265 139 309 41 320 197 101 0 346
295 75 249 28 42 8 0 332 264
159 255 54 134 217 243 0 137 193
39 114 289 104 98 290 18 0 309
330 8 355 156 41 272 0 60 274
135 118 231 320 276 24 0 44 188
172 282 4 256 319 309 0 164 167
239 70 53 238 194 56 0 248 177
93 130 24 285 179 133 0 352 289
58 302 130 149 219 96 350 0 124
124 75 71 303 250 283 94 0 56
4 236 298 22 54 326 0 83 270
82 120 184 153 311 76 176 0 45
317 85 312 148 76 339 67 0 264
359 179 153 179 309 310 208 0 149
284 296 189 227 46 107 259 0 13
43 80 132 49 266 132 211 0 66
49 119 287 157 7 31 44 0 309
12 206 232 81 285 210 276 0 161
70 163 341 225 218 137 172 0 238
207 33 167 27 19 25 211 0 204
199 288 266 176 122 278 97 0 245
358 186 200 196 29 36 103 0 119
349 345 270 350 319 67 53 0 311
199 152 257 25 121 259 301 0 85
41 107 83 36 94 168 83 0 292
257 132 57 241 237 305 72 0 327
253 345 147 6 339 262 58 0 192
131 320 93 19 288 14 206 0 173
320 203 336 33 222 72 175 0 23
164 344 248 179 204 328 88 0 160
62 305 187 10 161 87 228 0 166
65
Rate: 2/3 (N =64800) ldpc
( 45 ~
71 )
g gb p
3 10 19 31 31 34 56 82 107
9 9 25 25 34 35 66 78 83
8 14 22 27 27 36 55 84 92
5 13 14 22 22 28 72 73 85
4 10 14 21 24 29 57 74 86
6 8 15 21 30 33 38 87 108
2 13 15 24 34 35 58 85 88
8 15 22 22 24 34 40 88 89
1 8 10 10 14 29 62 79 90
17 17 17 18 20 33 69 91 106
2 13 19 28 30 32 64 92 102
16 17 19 19 23 23 69 93 106
3 10 13 17 20 35 62 86 94
1 6 26 29 32 35 68 95 96
4 5 6 13 17 20 40 75 96
3 7 26 29 34 36 72 81 97
4 6 15 19 21 22 51 98 101
1 13 30 31 33 34 38 85 99
2 5 23 29 32 33 67 74 100
7 9 11 24 35 36 46 79 101
8 15 18 27 32 36 71 102 108
6 20 21 22 25 30 71 88 103
7 7 11 29 34 35 47 90 104
5 6 7 15 18 27 54 96 105
12 13 19 20 29 36 49 94 106
14 17 20 25 29 29 47 91 107
11 16 20 22 22 32 55 99 108
318 282 17 253 49 242 91 0 320
16 330 178 28 271 261 117 256 0
235 310 36 99 282 321 86 0 304
69 98 42 181 6 50 120 167 0
52 86 181 336 113 304 310 48 0
229 127 349 108 33 223 319 0 313
48 82 291 285 96 16 175 145 0
284 238 243 304 137 215 252 14 0
83 30 48 327 246 292 309 183 0
232 131 157 309 9 325 38 0 253
271 69 130 249 177 196 281 0 82
295 310 15 1 359 335 199 0 44
121 96 275 141 309 260 272 230 0
218 346 116 260 250 320 336 0 339
8 212 163 28 31 290 190 186 0
161 52 110 263 202 152 170 345 0
87 129 23 78 187 51 169 0 342
246 300 64 176 204 133 215 296 0
47 282 12 21 3 44 47 268 0
265 131 208 67 135 39 204 22 0
87 207 125 166 124 278 172 0 253
341 19 118 272 20 164 174 18 0
143 61 323 213 281 185 74 343 0
144 241 354 249 45 187 280 277 0
7 16 174 76 162 353 55 276 0
206 49 224 86 346 301 152 72 0
350 284 164 248 71 19 302 75 0
1 1 12 13 40 61 80 80
2 4 8 13 18 62 112 113
3 9 12 40 48 63 86 118
2 4 4 7 17 64 107 115
2 3 5 31 59 65 73 79
6 6 8 10 58 63 66 67
1 7 7 9 36 67 70 84
1 2 8 8 15 68 89 100
9 11 12 14 32 69 108 111
5 6 8 10 43 70 95 104
7 8 11 39 43 71 86 95
3 7 9 12 34 72 83 98
4 10 13 45 57 64 73 104
1 2 12 14 41 66 74 77
3 5 15 24 28 75 78 83
g gb p
0 356 124 130 76 0 128 195
0 171 49 124 135 0 299 58
0 209 288 42 9 0 288 248
52 0 257 131 341 0 93 60
263 159 0 21 329 0 94 326
0 48 268 202 196 309 0 167
223 0 352 147 264 0 340 198
314 136 0 16 93 0 237 74
0 354 150 311 117 0 276 91
32 154 184 0 256 0 334 53
153 225 0 292 43 0 227 235
241 267 297 0 36 0 258 357
194 23 0 164 320 56 0 219
49 253 293 0 23 191 0 356
147 62 0 150 87 0 339 270
( 0 ~
14 )
66 Decoding Table: Addresses of variable bits for Nldpc = 64800
Rate: 2/3 (N =64800) ldpc
( 15 ~
59 )
g gb p
3 11 16 26 57 72 76 108
4 11 17 20 35 77 87 103
3 6 7 18 35 78 79 109
6 10 19 30 39 67 79 89
1 10 20 48 51 68 80 85
2 6 17 21 45 62 81 91
8 8 22 29 37 82 82 88
4 9 23 49 56 71 75 83
1 5 12 24 54 84 116 116
3 9 12 25 46 69 85 90
1 2 10 26 38 86 99 106
1 5 27 55 55 78 82 87
2 5 28 31 59 73 88 97
3 11 11 23 29 89 106 114
10 12 29 30 56 74 90 92
6 10 19 31 36 87 91 98
5 7 8 12 32 92 101 118
2 6 8 12 33 74 81 93
2 10 11 27 34 94 105 114
4 8 35 53 58 66 70 95
3 12 24 27 36 69 96 109
4 6 20 37 52 72 92 97
3 4 10 21 38 98 99 100
5 10 22 33 39 93 99 103
1 12 30 38 40 94 100 112
2 8 23 41 54 96 101 119
3 8 25 42 47 65 88 102
6 11 16 43 49 65 76 103
7 10 28 34 44 97 104 110
2 5 26 45 60 91 94 105
7 11 37 42 46 77 85 106
1 9 16 42 47 61 62 107
7 7 14 48 51 61 108 115
1 5 19 46 49 93 109 117
4 6 11 22 50 76 110 120
3 9 25 32 51 111 113 120
1 6 7 11 52 75 112 117
4 9 41 52 53 96 102 113
7 11 15 44 54 63 105 114
9 12 18 50 55 71 81 115
5 9 21 33 56 107 116 119
3 10 47 57 60 101 110 117
4 11 44 50 58 64 84 118
5 6 9 53 59 68 90 119
2 4 5 9 60 102 111 120
286 345 0 67 72 204 0 67
118 134 0 1 352 0 100 276
61 327 168 0 290 0 114 280
107 85 0 249 263 209 0 15
184 27 0 164 305 271 0 269
275 332 210 0 31 204 0 317
158 53 0 244 185 0 195 101
224 199 0 199 274 342 227 0
93 258 190 0 261 0 272 309
260 106 2 0 33 210 0 47
226 130 35 0 162 0 49 88
352 272 0 238 165 39 57 0
74 82 0 144 249 260 0 208
50 284 302 193 0 0 148 211
207 223 237 0 267 114 0 62
79 249 324 0 239 268 0 83
283 70 122 350 0 0 304 281
147 318 224 126 0 253 353 0
222 238 176 262 0 0 159 164
70 165 0 229 19 182 88 0
262 154 352 219 0 202 0 44
268 159 157 0 288 14 252 0
20 31 231 29 0 0 101 12
117 221 228 62 0 359 0 207
206 28 95 21 0 18 0 310
195 291 95 0 288 94 0 228
216 98 219 0 302 208 183 0
96 24 176 0 143 100 115 0
336 308 187 249 0 189 0 86
257 16 81 0 18 211 299 0
125 179 212 38 0 310 160 0
147 40 19 35 0 57 223 0
107 296 200 0 176 74 0 137
12 334 335 237 0 175 0 83
65 309 249 291 0 126 0 301
178 194 220 319 0 0 44 117
186 280 259 8 0 51 0 352
52 192 155 46 0 166 26 0
237 87 116 41 0 243 15 0
270 36 294 212 0 111 238 0
122 183 326 250 0 176 0 266
118 349 93 0 274 290 302 0
103 289 177 274 0 137 193 0
310 198 29 296 0 204 319 0
64 288 350 115 0 74 337 0
67
Rate: 3/4 (N =64800) ldpc
gpgb
1 3 4 7 11 32 46 60 70 91 95 127
2 4 8 10 40 41 47 63 83 92 114 130
2 3 3 8 31 41 48 52 86 91 93 115
4 6 8 9 9 18 49 49 51 94 124 135
3 5 11 12 30 37 46 47 50 95 101 108
6 6 6 10 31 33 51 74 78 95 96 132
6 7 9 10 13 17 49 52 90 97 99 107
8 10 14 15 20 34 48 53 67 98 109 124
5 9 9 11 13 22 54 56 90 97 99 117
2 3 5 7 10 30 55 58 88 100 109 112
2 5 10 11 13 14 56 64 79 100 101 101
1 6 9 12 16 24 57 57 58 98 102 123
1 3 13 13 14 32 53 58 77 91 103 105
5 11 12 14 14 42 54 59 69 104 108 111
4 5 13 14 15 23 52 60 63 105 106 117
5 8 11 16 19 27 61 69 87 103 106 126
4 7 7 10 17 36 62 85 86 92 107 115
3 4 4 18 29 40 63 70 89 103 108 130
7 7 8 12 15 19 51 61 64 109 120 122
2 5 13 14 20 36 65 78 88 97 110 128
6 9 11 21 28 39 47 66 75 111 114 133
2 3 5 12 17 22 57 67 83 104 111 112
1 3 5 9 10 23 68 82 85 99 113 121
1 6 7 24 24 37 56 65 69 107 110 114
1 10 12 25 28 39 70 79 81 115 125 134
9 10 12 23 26 43 71 80 82 93 116 119
1 8 15 15 26 27 59 68 72 117 121 129
7 9 10 21 28 35 48 73 74 98 118 119
11 15 15 26 29 44 72 74 76 113 119 129
1 6 12 13 19 30 50 75 81 93 105 120
4 7 7 11 21 31 66 71 76 92 121 127
1 5 8 14 32 45 60 72 77 100 122 135
2 3 4 9 18 33 46 71 78 120 123 128
11 15 15 34 38 43 53 66 79 96 124 131
3 8 13 35 35 38 59 62 80 106 110 125
4 6 12 15 27 36 54 81 87 113 123 126
4 6 7 14 29 37 67 80 82 118 125 127
2 10 13 14 15 38 55 77 83 102 128 134
8 11 15 22 34 39 65 84 89 126 129 131
1 8 11 20 33 40 50 84 85 102 112 130
1 1 12 13 14 41 62 68 86 104 122 131
6 9 12 14 42 45 73 84 87 96 132 133
2 2 4 25 25 43 55 64 88 94 118 133
2 3 5 12 42 44 73 75 89 116 116 134
2 8 13 16 44 45 61 76 90 94 132 135
0 52 205 145 164 263 0 173 301 0 187 78
0 279 351 314 42 179 0 92 151 0 29 180
210 0 89 22 290 13 0 184 33 203 0 28
0 220 272 348 51 69 0 98 205 0 195 296
39 0 203 13 169 319 332 80 0 0 340 171
0 82 329 199 283 55 0 4 91 329 0 24
45 0 156 348 166 62 290 0 222 0 253 299
0 79 210 179 200 45 300 0 273 0 162 61
324 0 281 136 32 262 0 321 189 189 0 214
53 218 120 270 0 75 0 348 334 0 89 271
20 252 213 0 279 349 0 181 16 95 0 320
342 240 232 0 94 192 0 322 84 303 0 88
288 183 0 251 302 51 25 0 147 283 0 186
154 155 318 0 162 111 248 0 321 0 257 80
98 145 6 66 0 301 3 0 329 0 225 170
333 93 214 0 39 224 0 230 19 281 0 304
198 164 257 143 0 243 0 171 172 273 0 202
24 65 42 0 168 190 0 28 308 109 0 134
130 132 157 120 39 0 48 143 0 0 52 105
108 36 313 14 0 26 0 18 184 305 0 153
51 341 114 0 194 225 139 0 257 0 322 39
316 220 191 115 207 0 180 0 254 29 262 0
300 58 107 227 198 0 0 177 298 12 0 97
244 197 186 0 160 336 17 173 0 273 84 0
63 285 32 0 37 146 0 166 15 0 69 113
222 254 104 50 0 57 0 20 294 190 0 76
185 89 293 215 199 0 203 275 0 0 112 19
183 45 251 287 0 68 178 0 191 185 0 354
201 11 166 202 0 170 265 0 69 172 0 49
305 234 358 328 316 0 327 0 296 74 190 0
326 285 228 195 273 0 47 237 0 53 0 217
36 22 262 267 0 301 329 80 0 129 0 38
107 186 276 283 64 0 338 220 0 212 0 208
135 112 25 0 315 222 91 332 0 156 0 253
62 195 8 0 306 337 269 109 0 70 233 0
232 325 356 75 57 0 217 0 187 53 2 0
186 8 20 176 306 0 53 196 0 352 38 0
77 289 301 184 253 0 29 50 0 109 0 246
79 350 57 222 117 0 296 0 168 111 0 95
197 314 69 265 227 0 353 253 0 155 331 0
219 112 125 202 276 0 221 272 0 302 41 0
151 174 184 343 0 100 89 114 0 230 0 182
353 342 166 46 295 0 79 159 0 179 251 0
301 323 314 193 259 0 102 47 0 28 164 0
200 347 247 291 186 0 192 148 0 322 225 0
(0 ~
44 )
68 Decoding Table: Addresses of variable bits for Nldpc = 64800
Rate: 4/5 (N =64800) ldpc
gp
gb
(0 ~
35
)
1 7 13 16 16 18 26 37 40 50 74 83 88 110 127 141
2 10 11 15 18 28 34 38 42 65 75 98 100 111 120 123
3 6 8 11 13 20 22 39 49 69 76 80 108 112 120 127
4 6 6 10 12 16 19 40 41 60 74 77 96 113 130 131
5 5 7 8 16 31 32 41 50 56 78 86 106 114 124 136
1 6 6 10 14 17 23 42 45 53 79 99 107 115 130 131
7 8 9 12 12 14 28 43 43 59 80 90 90 116 134 137
5 7 8 11 11 15 20 44 46 65 75 81 88 117 118 138
1 9 9 10 11 15 21 45 54 72 79 82 102 114 118 135
1 2 3 3 10 14 27 37 46 62 83 101 108 119 125 145
4 5 11 13 13 14 26 47 48 67 83 84 94 120 122 124
9 9 12 13 16 16 34 48 58 67 77 85 92 121 128 138
1 1 3 11 12 13 31 47 49 63 82 86 87 115 122 136
4 5 8 10 14 17 30 50 69 72 78 85 87 110 123 133
8 12 15 16 18 23 33 51 64 71 85 88 89 124 129 132
4 6 8 8 12 13 16 53 59 70 89 101 109 113 123 125
1 6 7 12 16 17 18 54 64 71 80 90 102 126 143 145
2 2 2 7 9 18 18 47 55 70 81 91 98 126 126 127
1 9 10 13 17 19 36 55 56 61 92 95 106 125 128 129
3 5 6 12 17 20 22 39 56 57 84 93 99 112 121 129
3 3 4 15 18 21 30 40 54 58 81 94 109 119 130 141
2 14 15 15 18 22 27 58 59 62 79 94 95 118 131 133
2 7 7 17 17 17 23 44 46 60 77 78 96 113 132 140
5 5 8 8 8 24 35 43 61 63 91 97 103 115 133 139
1 3 6 6 12 16 25 51 57 62 76 98 105 111 134 139
4 14 15 18 18 26 29 63 66 66 97 99 104 119 135 135
2 7 10 11 14 21 27 41 51 64 76 89 100 117 121 136
7 9 10 11 14 16 28 45 65 68 87 92 101 137 142 144
4 4 6 7 18 25 29 42 60 66 95 102 103 122 132 138
3 13 14 15 17 29 30 55 57 67 91 100 103 139 140 144
2 3 9 15 17 31 36 48 53 68 96 104 107 114 116 140
1 1 9 14 24 32 35 38 69 73 74 82 105 111 112 141
2 9 12 15 25 32 33 44 49 70 84 93 106 134 142 143
3 4 5 10 13 17 34 37 68 71 97 105 107 116 142 143
4 5 10 11 19 33 35 38 61 72 75 86 108 117 128 144
2 4 5 11 13 24 36 39 73 73 93 104 109 110 137 145
0 256 35 41 179 117 239 0 299 288 0 326 160 0 129 102
0 353 118 264 45 30 71 0 63 263 0 337 1 0 16 149
0 265 329 142 253 332 19 0 28 302 0 204 134 0 27 177
0 301 332 295 106 284 78 0 151 144 223 0 176 0 353 198
0 27 334 180 176 298 184 0 154 193 0 270 343 0 357 90
356 0 247 235 42 131 238 0 137 341 0 299 89 0 357 188
(0 ~
5 )
69
Rate: 5/6 (N =64800) ldpc
gp
(6 ~
35
)
0 142 126 297 192 291 290 0 285 249 0 18 299 0 208 40
25 282 0 172 133 185 69 0 237 292 243 0 269 0 154 96
135 0 98 317 112 255 113 0 324 124 111 0 195 264 0 301
124 74 206 69 0 198 162 93 0 250 0 117 72 0 139 206
270 189 0 250 300 28 96 0 178 177 114 0 74 0 78 320
246 122 0 2 24 345 36 0 237 41 209 0 94 0 110 18
349 4 282 313 115 0 118 104 0 239 114 0 198 167 0 322
346 217 234 203 0 310 57 0 93 309 271 238 0 158 0 263
325 29 0 134 302 164 122 0 212 261 353 0 47 0 99 2
229 163 34 248 108 157 0 0 95 229 0 301 199 129 323 0
49 257 60 35 289 0 174 0 185 288 14 0 27 0 353 163
215 253 263 39 349 0 208 245 0 296 320 0 91 112 155 0
82 16 107 131 179 0 272 29 0 319 0 53 162 125 0 189
144 323 201 209 232 0 76 225 95 0 128 0 310 110 90 0
24 278 241 139 279 0 276 351 335 0 325 0 149 135 0 275
64 49 146 194 15 0 75 244 0 62 342 26 0 205 0 239
347 96 41 192 257 31 0 194 226 0 167 204 0 238 0 110
22 295 41 216 5 0 181 173 0 264 235 0 272 304 0 132
184 345 171 54 240 87 0 93 352 0 56 0 163 145 0 312
80 338 235 143 28 0 306 0 23 155 86 0 57 225 0 237
257 320 245 132 238 76 0 176 116 0 137 319 0 341 82 0
48 237 230 114 320 249 0 54 0 237 193 166 0 0 152 249
341 152 62 327 148 28 0 293 21 0 219 0 119 349 254 0
164 97 346 318 141 42 0 326 150 0 334 175 0 0 347 18
222 118 298 278 19 0 22 20 210 0 169 0 218 343 339 0
206 12 141 215 20 0 6 205 0 249 204 253 0 59 18 0
275 165 48 96 171 108 0 218 150 0 195 290 0 120 0 286
301 282 346 253 74 312 0 43 33 0 302 186 0 277 292 0
129 243 257 140 244 157 0 153 117 0 309 258 0 303 171 0
147 286 48 121 303 253 0 241 0 329 304 134 0 87 24 0
1 4 7 9 10 14 15 15 31 41 55 61 73 79 91 98 119 121 137 141
2 2 3 3 8 14 16 20 32 32 47 62 68 70 92 101 102 122 132 149
1 3 6 10 13 13 28 29 33 43 57 63 66 71 92 93 117 123 131 133
1 4 5 6 9 12 13 18 34 35 59 64 65 80 91 94 112 124 138 149
5 5 6 9 10 10 12 16 35 40 56 65 78 88 95 110 114 125 138 147
3 3 5 6 8 9 13 14 36 49 56 64 66 90 92 96 116 126 133 148
1 4 7 7 8 10 12 18 37 38 46 67 74 87 97 108 112 127 130 144
2 3 4 8 8 8 23 28 38 48 53 63 68 84 93 98 117 121 124 128
2 4 4 9 13 14 23 29 39 40 57 63 69 72 95 99 101 129 131 142
3 5 7 7 9 9 10 14 40 54 59 70 78 83 99 100 106 122 130 134
1 4 5 10 11 15 19 25 35 41 50 71 77 84 101 104 118 129 131 134
2 6 7 7 12 12 13 14 42 46 60 64 72 90 91 102 116 132 145 146
1 3 8 10 11 12 13 30 38 43 47 73 82 87 99 103 103 133 136 147
1 2 5 8 10 13 14 14 43 44 44 74 88 89 103 104 120 134 143 145
4 6 7 8 10 12 13 15 33 45 60 62 72 75 105 114 118 126 128 135
gb
(0 ~
14
)
70 Decoding Table: Addresses of variable bits for Nldpc = 64800
gp
(15
~2
9 )
gb
(0 ~
29
)
1 6 6 11 12 15 16 26 32 46 52 73 76 81 106 107 109 127 136 137
1 2 3 6 9 15 17 30 37 44 47 62 77 83 107 109 115 130 137 139
2 2 3 5 7 10 18 27 39 41 48 70 75 78 96 100 108 138 140 150
4 6 8 11 12 15 17 19 39 42 49 68 79 81 106 109 120 124 135 139
1 2 2 3 8 11 20 24 50 52 58 61 67 80 95 107 110 123 140 141
6 6 6 9 15 21 22 27 31 36 51 66 74 81 100 105 111 123 125 141
5 7 7 9 10 15 22 24 34 34 52 65 71 82 104 112 113 122 127 142
1 4 10 11 14 14 15 23 33 48 53 82 83 86 102 110 113 135 142 143
9 11 14 14 15 20 22 24 42 54 55 80 84 85 113 114 115 136 144 144
2 3 4 5 8 21 21 25 37 55 58 61 69 85 97 97 115 125 143 145
4 4 11 12 13 13 14 26 31 54 56 69 76 86 111 116 119 140 146 146
1 7 11 11 11 11 26 27 51 53 57 77 79 87 96 98 117 139 147 148
5 8 9 12 13 13 15 28 45 51 58 76 85 88 105 108 118 132 148 150
2 5 9 11 12 15 19 29 36 49 59 75 86 89 93 111 119 128 129 149
1 3 5 7 12 17 25 30 45 50 60 67 89 90 94 94 120 121 126 150
0 48 28 274 232 218 240 341 0 272 80 0 80 339 0 252 199 0 249 209
0 159 257 171 97 137 106 76 0 272 87 0 189 149 0 169 156 0 317 289
263 0 225 141 42 115 191 242 0 174 192 0 205 138 240 0 348 0 156 7
136 0 32 237 264 7 6 117 0 110 120 0 143 348 255 0 335 0 8 204
0 99 122 326 291 257 347 150 0 228 347 0 265 158 0 58 273 0 218 146
21 194 199 0 202 287 336 235 0 250 85 7 0 264 225 0 291 0 62 235
253 27 0 83 221 234 239 134 0 51 210 0 55 209 0 93 116 0 38 290
147 118 217 0 303 308 43 325 0 155 323 358 0 168 303 0 204 99 238 0
61 25 189 0 108 67 18 96 0 349 149 119 0 19 97 0 98 0 124 133
60 281 187 337 304 212 0 113 0 173 294 0 78 58 44 0 260 304 0 240
275 248 258 312 0 143 162 175 47 0 309 0 304 225 0 341 29 250 0 123
260 98 16 294 0 75 276 122 0 244 301 66 0 292 4 0 340 0 131 288
215 224 2 310 45 231 0 235 304 0 221 0 137 64 138 0 56 0 92 225
74 50 82 131 74 306 0 85 171 0 43 0 332 164 199 0 315 0 247 231
346 291 317 35 179 87 358 0 268 0 188 220 40 0 0 99 71 219 229 0
147 246 141 28 96 294 0 342 39 0 138 93 0 223 0 354 54 19 0 264
222 301 70 298 144 179 0 253 12 330 0 248 0 53 0 310 339 149 0 144
262 20 268 283 230 192 0 233 26 191 0 177 125 0 340 112 0 0 67 93
323 349 231 299 28 335 144 0 226 332 0 98 0 127 285 0 126 30 55 0
195 278 216 31 27 148 0 49 0 225 190 242 313 0 296 280 0 282 0 294
16 165 268 180 354 0 321 74 280 299 0 184 173 0 255 51 0 25 130 0
117 257 307 357 250 135 0 288 183 293 0 320 196 0 41 0 151 234 100 0
257 59 31 15 278 291 64 0 279 21 0 307 0 175 3 92 0 57 54 0
160 117 194 54 324 301 35 0 245 0 78 179 0 236 233 0 284 154 0 60
178 65 230 334 207 155 99 0 35 0 155 312 18 0 76 315 0 297 303 0
201 22 208 281 101 57 24 0 126 258 0 213 247 0 291 0 292 106 0 231
347 245 143 302 279 174 309 0 202 327 0 232 154 0 354 5 0 9 0 43
122 253 8 52 132 147 210 0 224 271 0 60 53 0 152 309 0 100 0 116
118 310 262 76 162 37 304 0 283 172 0 65 127 0 350 62 0 106 178 0
64 288 350 163 118 54 296 0 309 246 0 36 92 0 287 51 0 302 172 0
71
Rate: 8/9 (N =64800) ldpc
gp
gb
1 2 16 18 21 26 35 41 51 58 61 78 80 81 84 92 101 110 110 121 122 137 141 153 154
2 4 9 18 22 31 36 42 44 60 62 64 67 82 87 93 102 109 116 122 137 138 142 155 157
1 3 8 18 23 30 39 43 44 56 63 73 77 83 92 99 102 103 106 123 123 129 143 149 150
4 6 14 14 24 27 37 44 46 54 64 64 80 83 84 91 104 115 116 124 132 135 144 146 157
5 5 10 17 22 23 25 45 45 52 65 72 75 82 85 94 105 119 120 124 125 133 145 150 159
6 6 13 13 26 28 32 45 46 57 62 66 77 86 90 95 106 111 115 126 128 138 145 146 151
7 10 13 21 27 33 41 47 50 61 62 67 85 87 96 107 107 118 127 129 136 144 145 147
3 6 8 10 24 24 28 48 55 60 65 68 71 87 88 89 108 114 120 128 128 132 142 146 148
1 2 9 9 29 30 40 49 52 53 61 69 71 83 89 91 104 108 109 129 131 134 149 152 159
7 10 14 15 30 34 34 42 50 51 70 73 79 81 89 90 110 117 117 127 130 135 149 150 156
3 8 11 11 23 26 31 43 50 51 69 71 76 91 94 97 101 103 111 123 126 131 151 152 155
12 12 17 19 27 32 35 46 49 52 63 70 72 81 92 96 108 112 113 121 132 140 143 152 158
2 5 13 15 33 33 36 47 47 53 67 73 74 88 93 98 101 113 119 133 134 140 151 153 158
9 11 12 14 29 34 38 42 54 55 74 74 75 88 94 95 104 113 114 124 133 134 147 148 154
7 8 15 19 32 35 40 43 55 56 65 70 75 86 93 95 111 112 115 125 130 135 141 154 155
1 7 15 16 31 36 37 48 48 56 72 76 76 85 86 96 107 114 116 126 136 139 148 153 156
4 11 17 21 22 37 41 54 57 68 68 77 97 97 100 106 117 118 127 130 137 143 157 160
3 5 16 18 29 38 38 49 58 58 66 78 79 82 98 99 103 105 118 122 125 138 144 156 158
17 19 20 20 25 39 39 57 59 59 69 78 79 84 98 99 109 112 119 121 136 139 141 142 159
4 12 16 20 25 28 40 53 59 60 63 66 80 90 100 100 102 105 120 131 139 140 147 160 160
0 70 164 129 0 48 239 0 323 122 0 330 297 0 338 24 0 154 146 0 12 144 0 280 326
0 12 172 241 0 32 311 0 280 53 0 307 69 0 286 134 0 248 30 0 54 162 0 270 276
199 0 43 286 0 99 170 0 79 125 0 11 118 0 179 272 257 0 242 0 7 237 0 100 124
0 176 293 64 0 243 152 0 71 248 0 187 115 331 0 160 0 290 101 0 48 187 0 158 237
0 47 347 278 285 265 0 0 334 213 0 181 112 199 0 302 0 51 22 180 0 228 0 209 146
0 239 117 60 0 87 122 60 0 246 353 0 114 0 257 262 0 69 344 0 235 304 166 0 88
0 215 196 52 0 62 54 0 232 107 295 0 49 0 357 0 299 118 0 120 95 49 288 0
314 264 0 64 59 201 0 0 317 184 28 0 310 18 0 255 0 75 4 0 190 29 31 165 0
218 93 0 239 0 281 163 0 263 34 253 0 114 209 0 41 299 133 0 0 93 106 0 269 74
45 0 184 131 0 262 167 265 0 298 0 217 35 192 278 0 0 42 132 194 0 166 147 0 227
356 207 0 263 354 217 0 318 189 0 164 0 140 0 8 212 312 117 0 225 355 0 0 342 26
0 186 301 21 295 0 182 98 296 0 317 350 0 209 0 144 15 0 87 263 0 35 305 0 102
186 302 0 254 0 16 129 352 259 0 114 0 280 264 0 128 232 0 6 0 150 321 42 0 62
330 147 130 0 235 0 312 332 0 174 0 310 313 139 0 180 15 171 0 304 107 0 217 274 0
175 3 0 60 258 0 171 159 0 292 83 206 0 306 176 0 337 253 0 176 350 0 164 257 0
49 236 159 0 334 0 200 267 237 0 299 0 133 28 116 0 341 281 0 293 0 301 80 126 0
135 275 0 103 143 0 201 180 0 43 123 0 0 271 74 215 0 316 24 150 0 31 0 276
223 199 24 0 30 0 205 336 0 165 69 0 240 183 0 122 131 309 0 205 328 0 288 292 0
61 0 224 65 25 0 51 126 0 158 340 72 0 198 200 0 130 83 0 43 337 0 222 199 0
124 52 282 0 323 309 0 216 268 0 245 344 0 255 0 291 31 153 0 80 76 0 19 0 288
72 Decoding Table: Addresses of variable bits for Nldpc = 64800
Rate: 9/10 (N =64800) ldpc
1 2 12 14 19 27 36 37 38 54 55 58 65 73 85 87 91 92 98 109 113 125 127 127 132 145 154 155
2 4 8 13 20 31 32 38 45 45 56 57 63 74 76 88 92 95 101 110 119 120 128 141 144 145 146 159
1 3 9 17 21 28 35 37 39 41 57 59 63 75 80 83 93 99 101 110 111 125 129 138 144 147 147 160
4 6 13 17 21 22 24 40 40 53 58 70 72 76 79 80 94 106 107 109 111 112 130 136 139 147 148 153
5 5 6 15 23 23 25 41 46 52 59 62 69 77 78 81 91 91 95 113 115 116 127 131 135 149 153 156
6 9 12 17 19 24 33 42 47 47 60 60 62 75 75 78 93 96 106 114 122 123 132 133 134 150 150 160
3 6 7 9 20 22 25 41 43 53 61 61 69 79 79 88 94 96 97 114 115 122 133 136 140 149 151 152
1 2 8 8 25 26 29 37 42 44 57 59 62 80 82 85 92 93 98 116 117 117 134 135 137 149 152 157
7 9 12 18 27 27 31 45 48 48 56 63 64 81 89 89 99 103 108 110 117 119 132 135 142 151 153 162
3 10 10 16 24 28 28 43 44 46 61 64 71 73 81 82 98 100 107 118 121 124 129 136 141 146 154 161
11 11 15 18 29 33 34 39 47 52 55 65 68 74 83 90 94 101 105 109 115 119 133 137 140 155 155 161
2 5 12 13 30 30 35 39 48 49 56 66 68 73 74 84 102 102 103 112 120 121 131 138 138 148 156 162
7 8 10 13 31 32 36 43 49 51 65 67 67 77 84 85 97 103 108 111 120 121 130 131 139 145 157 159
1 14 16 16 21 30 32 44 46 50 58 68 70 83 86 86 102 104 104 118 122 126 137 139 140 146 158 158
4 7 11 15 20 22 33 42 49 51 66 69 71 76 82 87 96 100 105 114 123 123 128 141 143 148 154 159
3 14 16 18 23 29 34 50 50 52 64 67 70 84 86 88 100 105 106 113 116 124 129 130 142 152 156 160
5 10 15 17 19 34 35 38 53 54 60 66 71 77 78 89 99 104 107 112 125 126 128 143 143 150 151 161
4 11 14 18 26 26 36 40 51 54 55 72 72 87 90 90 95 97 108 118 124 126 134 142 144 157 158 162
0 70 60 164 0 48 239 0 152 234 0 246 69 0 286 257 0 352 123 0 12 144 0 266 302 0 295 296
0 12 172 64 0 99 32 0 79 280 0 125 187 0 330 160 0 257 146 0 64 324 0 324 126 39 0 60
199 0 347 286 0 243 167 311 0 171 0 122 307 0 131 117 0 248 154 71 0 54 0 100 280 0 276 78
0 176 293 241 171 0 265 0 170 323 0 181 310 0 331 300 0 290 101 184 51 0 0 158 191 237 0 285
0 47 239 278 0 285 201 0 327 232 0 295 114 0 199 231 262 180 0 0 180 137 36 0 166 0 83 62
0 215 196 129 60 0 122 0 60 334 0 53 353 114 118 0 272 0 344 0 149 187 0 9 49 0 276 211
314 264 0 64 194 52 0 163 0 298 0 107 310 0 209 41 74 210 0 215 0 81 0 165 215 146 0 67
218 93 0 239 59 0 87 129 54 0 292 165 0 0 49 18 241 122 0 0 235 190 0 288 233 74 0 282
45 0 117 346 0 217 281 0 98 71 317 0 300 0 24 179 0 19 6 243 0 294 278 0 14 185 0 172
356 0 263 147 354 0 295 265 318 0 253 0 217 313 27 0 322 0 30 0 106 95 18 0 179 227 0 263
0 186 301 229 0 258 62 312 0 189 34 0 206 140 0 176 291 0 75 100 304 0 136 0 204 0 118 343
186 302 0 184 0 235 262 205 0 352 174 0 350 112 133 0 0 76 176 263 0 150 237 0 147 49 0 250
175 330 147 0 0 334 182 332 0 296 114 0 164 297 306 0 174 0 108 6 143 0 164 8 0 272 0 275
49 0 262 118 268 30 0 159 48 0 126 0 299 273 0 63 309 0 253 190 0 117 74 325 0 292 0 47
135 236 130 0 118 103 0 201 259 0 123 0 11 72 28 0 93 319 0 294 0 166 76 0 197 321 47 0
223 24 0 80 143 309 0 267 237 0 187 340 0 116 140 0 244 281 0 205 67 0 43 222 0 214 163 0
199 275 61 0 21 16 0 200 0 41 184 43 0 115 183 0 130 83 0 43 0 134 301 0 325 288 219 0
124 52 282 0 25 323 0 51 336 0 216 0 280 255 0 134 31 279 0 223 337 0 288 328 0 162 102 0
gp
gb