You are on page 1of 8

Wai Fong, NASA/GSFC, 10/2/02

White Paper for Low Density Parity Check (LDPC) Codes for CCSDS Channel
Coding Blue Book
Purpose:
To provide the capability for Forward Error Correction (FEC) Coding for high rate
bandwidth efficient channel coding with low error floor < 10-10 BER.
Background:
The current CCSDS documents Telemetry Channel Coding Blue Book 101.0-B-5, TC
Synchronization and Channel Coding 131.0-R-1, and TM Synchronization and Channel
Coding 231.0-R-1 define three FEC channel coding methods: Convolutional Codes
(CC), Reed Solomon (RS) Codes, and Turbo Codes (TC). CC are bandwidth inefficient
although puncturing options are available that mitigate this. This however comes at the
cost of BER performance. RS Codes are powerful codes that have a high coding rate but
require a certain amount Signal-to-Noise Ratio (SNR) before good performance gains are
achieved. Concatenating RS with CC helps mitigate this problem but at the expense of
more bandwidth. TC provide near capacity performance but require large amounts of
bandwidth, are slow to decode and can have an error floor as high as 10-6 BER. TC are
well suited for deep space missions but are not appropriate for high-speed bandwidth
constraint near-Earth missions. Although these methods have performed well in the past,
technological trends toward higher data rates with constraints on bandwidth allocation
necessitates a search for better performing codes. The search for a new coding method
that can provide near capacity coding gains with high coding rates and very low error
floors is the goal of this paper.
Introduction to LDPC codes:
LDPC codes were first invented by Gallager in 1962 [1]. These codes were neglected for
nearly 35 years. These are large block codes with a very sparse (small density of ones)
parity check matrix. The properties of these codes can be summarized as follows: the
number of ones of each row and column are constant (because of this property Gallager
codes are now classified as Regular LDPC codes) but small compared to the entire matrix
and the number of ones in common between any two columns or two rows are small,
preferably one. This last property allows for iterative decoding to converge to or close to
the Shannon limit and provides for good minimum distance. Code synthesis is achieved
through computer generation as each new column is randomly synthesized and tested to
ensure compliance with the properties outlined above. With soft-in and soft-out iterative
decoding Gallager LDPC codes perform close to the Shannon capacity limit.
Irregular LDPC codes were introduced by Luby et al. [2] These are similar to the
Gallager codes except that there is variance in the number of ones of each row and
column. Like Gallager codes, irregular codes are generated by computer and are decoded
using the same iterative technique. They do outperform Regular codes in terms of
distance to Shannon capacity. However, due to their moderate minimum distances both
regular and irregular computer synthesized codes can have error floors around 10-9 BER.

Geometry based LDPC codes were developed by Kou, Lin and Fossorier [3]. These are a
class of Regular codes based on parallel lines of finite geometry. Due to their geometric
structure some of these codes are cyclic and quasi-cyclic in nature, have large minimum
distances, require less iterations to achieve close to Shannon limit decoding performance
and have no low error floor >10-10 BER. They also have many decoding options:
Message Passing, Bit-Flipping, Weighted Bit-Flipping, Majority-Logic Decoding.
Considerations:
Although there are a large number of codes to choose from, the following considerations
are observed:
-5
1. Many near-Earth missions use Rate (R) = 0.43 RS/CC @ SNR of 2.5 dB at 10
BER.
-5
2. Some missions require only R = 0.5 CC @ SNR of 4.2 dB at 10 BER.
3. Large frame lengths are useful for higher data-rate missions.
4. Too large of a frame length may impact encoder/decoder size and speed.
5. Smaller satellites may have limited resources i.e. power, memory.
6. Most sensors are either 8, 12 or 16 bits/sample and packing/unpacking frames is
an issue on space/ground processing.
7. Mission operation centers prefer 8 or 16 bit boundaries for frame lengths.
8. Geometry-based LDPC codes can be shortened or lengthened to accommodate 8
or 16 bit boundaries with little effect on performance.
9. Existing receivers have buffer sizes at the CCSDS AOS frame lengths of 255x8xI
where I = 1 to 8.
10. Data compression requires 10-10 BER.
11. Bandwidth efficiency is a major consideration on Category A missions.
Requirements:
After weighing each consideration the following list of requirements were developed:
1. n and/or k must be a multiple of 8 (and/or 16 if possible) with various frame
lengths.
2. Fast decoding > 600Mbps to handle higher data-rate missions.
-10
3. Very low error floor, below 10 BER
4. Minimize encoding complexity to help reduce spacecraft power, weight and size
requirements.
5. Coding rates >> to help increase bandwidth efficiency.
Candidate Code 1:
This candidate code, denoted C1, is a (4095, 3367) cyclic LDPC code with rate R =
0.822 and minimum distance dmin = 65. Since it is cyclic, it is uniquely specified by a
generator polynomial g(X) of degree 724 [4]. Its encoding circuit can be easily
implemented with a feedback shift-register using 728 flip-flops and no more than 728 XOR gates.
C1 is constructed based on the lines and points of the 2-dimensional Euclidean geometry,
EG(2, 26), over the field GF(26). The geometry EG(2, 26) consists of 4096 points and

4160 lines. One of the points is the origin of the geometry. Each line consists of 64
points. Two lines are either disjoint (no common points) or they intersect at one and only
one point (i.e., one point in common). For each point in EG(2, 26), there are 65 lines
intersecting at it. A line that contains the origin is said to be passing through the origin.
There are 65 lines in EG(2, 26) passing through the origin and the other 4095 lines not
passing through the origin. Let n = 4095. Let L be a line not passing through the origin
of the geometry. The incidence vector of line L is defined as a 4095-tuple over GF(2),
vL = (v1, v2, . . . , vn),
where vi = 1 if and only if the ith non-origin point of EG(2, 26) is on L, otherwise vi = 0.
Then the parity-check matrix H1 of C1 is a 4095 x 4095 square circulant matrix with
column and row weights of 64. The rows (or the columns) of H1 are simply the incidence
vectors of the 4095 lines in EG(2, 26) not passing through the origin. This parity-check
matrix can be easily generated by simply cyclically shifting the incidence vector of any
line L not passing through the origin 4095 times.
C1 can be decoded with various methods, ranging from low to high complexity and
reasonably good to very good error performance. These decoding methods are: one-step
majority-logic (MLG) decoding, bit-flipping (BF) decoding, weighted BF decoding,
iterative decoding and two-stage iterative/MLG decoding. MLG and BF decodings are
hard-decision decodings which can be simply implemented with logic gates and require
only logic operations. Iterative decoding is a soft-in soft-out decoding which requires
real-number computations. The weighted BF decoding is reliability-based decoding
method which also requires some real number computations. MLG decoding is the
simplest decoding but gives the least coding gain over the uncoded system compared
with the other decoding methods. However it can be implemented to operate at a very
high speed, for instance 10-40 Gbps. The complexity of the BF decoding is at the same
level as that of the MLG decoding, except that it has a longer decoding delay than the
MLG decoding. However, it gives better error performance (or larger coding gain over
the uncoded system) than the MLG decoding. The complexity of the weighted BF
decoding is higher than both the MLG and BF decodings but it provides better error
performance than both. The iterative decoding provides the best error performance with
the largest decoding complexity. It also requires much longer decoding time due to the
iterative decoding process. To achieve high-speed decoding, a parallel/pipeline decoding
process is needed. The two-stage iterative/MLG decoding is devised to shorten the
decoding delay of the pure iterative decoding by terminating the iterative decoding
process with MLG decoding. This hybrid decoding not only shortens the decoding delay
but also reduces the computational complexity with a small performance degradation
compared to pure iterative decoding. The above decoding methods provide a wide range
of trade-offs among error performance, decoding complexity and decoding delay for the
candidate code C1. The computer generated LDPC codes (regular or irregular) do not
have this advantage. In general, they can only be decoded with iterative decoding.
The bit and frame (or block) error performances of C1 are shown in Figures 1 and 2. The
error performance is computed based on BPSK transmission over an AWGN channel.

Figure 1 shows the error performance of this code with various decoding methods for
BERs above 10-6. Figure 2 shows the error performance of C1 above BER of 10-10. At
the BER of 10-8, the code with MLG decoding achieves a 5.5 dB coding gain over the
uncoded BPSK, while with iterative decoding, it achieves almost 8 dB coding gain over
the uncoded BPSK. No error floor occurs above 10-8 BER for the iterative decoding.
The error floor of an LDPC code depends very much on its minimum distance. For a
code with a large minimum distance, either there is no error floor or the error floor occurs
at a very low BER. Candidate code C1 has a very large minimum distance = 65.
Therefore, there should be no error floor at all or an error floor below 10-10 BER. If there
is no error floor above BER of 10-10, C1 with iterative decoding would achieve at least a 9
dB coding gain over the uncoded BPSK.
0

10

BPSK uncoded
EGLDPC IDBP bit
EGLDPC IDBP block
EGLDPC BF bit
EGLDPC onestep majoritylogic
EGLDPC weighted OSML bit
EGLDPC weighted BF bit
Shannon limit

10

Error Rate

10

10

10

10

5
E /N (dB)
b

Figure 1: EG-LDPC (4095, 3367) BER Performance with Various Decoding Options
Another special feature of this candidate code is that the iterative decoding converges
very fast as shown in Figure 3. The performance gap between 2 iterations and 100
iterations is within 0.5 dB, while the gap between 5 iterations and 100 iterations is less
than 0.2 dB. Therefore, the decoding can be terminated after 5 iterations with only a 0.2
dB loss. This reduces the decoding computational complexity and speeds up the
decoding process (or shorten the decoding delay) significantly. Alternatively, the
decoding can be terminated after 2 iterations followed with MLG decoding (two-stage

iterative/MLG decoding). Computer generated LDPC codes do not have this feature.
They, in general, converge at a much slower rate and take at least 20 iterations to be close
to the performance of 100 iterations. Figures 1 and 2 also show that the code with
iterative decoding also has good frame error performance. Frame error performance also
depends very much on the minimum distance of the code. Computer generated LDPC
codes in general do not have large minimum distance, and hence their frame error
performance in general has error floor at a high frame error rate, for instance 10-4.
0

10

uncoded BPSK
FER MLD
BER MLD
FER BF
BER BF
FER IDBP
BER IDBP
Shannon limit

10

10

block/bit error probability

10

10

10

10

10

10

10

10

10

5
Eb/No (dB)

10

Figure 2: EG-LDPC (4095, 3367) BER and FER Performance


Finally, the C1 can be shortened to fit the data structure and frame requirements [4]. For
example, by deleting 7 information bits from each codeword, a (4088, 3360) shortened
cyclic code C1* with of minimum distance at least 65 is obtained at almost the same rate
as the original code. For this shortened code, both data and block sizes are multiples of 8.
The encoding and decoding circuits for the original code can be used for the shortened
code without any changes.

Uncoded BPSK
Max ItNum 1
Max ItNum 2
Max ItNum 5
Max ItNum 10
Max ItNum 20
Max ItNum 100

10

Error Rate

10

10

10

10

4
Eb/N0 (dB)

Figure 3: EG-LDPC (4095, 3367) Iterative Convergence


Candidate Code 2:
This candidate code, denoted C2, is a (8176,7156) Euclidean geometry LDPC code with
rate R = 0.875. It is not cyclic but quasi-cyclic [5]. Every cyclic shift of 4 bits of a
codeword is also a codeword. Its encoding can also be implemented with shift-registers.
C2 is constructed based on the 3-dimensional Euclidean geometry EG(3,23) over the field
GF(23). This geometry consists of 512 points and 4672 lines. Each line consists of 8
points. For each point, there are 73 lines intersecting at it. The incidence vectors of the
4599 lines, not passing through the origin of the geometry, can be partitioned into 9
cyclic classes, Q1, Q2, . . . , Q9, each class consists of 511 incidence vectors. Each cyclic
class Qi can be obtained by cyclically shifting any vector in Qi 511 times. For each cyclic
class Qi, a 511 x 511 square circulant matrix Ai is formed whose rows are simply the
incidence vectors of Qi. Both the column and row weights of Ai are 8. Splitting each
column of Qi into 4 columns of the same length with its weight uniformly distributed into
the 4 new columns as suggested by Kou, Lin and Fossorier [3], Qi can be partitioned into
four 511 x 511 square circulant matrices, Ai(1), Ai(2), Ai(3), Ai(4). Each circulant Ai(j) has
column and row weights of 2. Using these 4 circulants, form a 511x2044 matrix,
Gi = [Ai(1), Ai(2), Ai(3), Ai(4)].

The column and row weights of Gi are 2 and 8, respectively. Then the parity check
matrix H2 of C2 is given below:
G1 G 2 G 3 G 4
H2=
.
G 5 G 6 G 7 G 8
The column and row weights of H2 are 4 and 32, respectively. C2 is simply the null space
of H2.
0

10

uncoded BPSK
FER (8176,7156)
BER (8176,7156)
Shannon limit

10

10

block/bit error probability

10

10

10

10

10

10

10

4
5
Eb/No (dB)

Figure 4: EG-LDPC (8176, 7156) BER and FER Performance


The bit and frame error performance of C2 with iterative decoding is shown in Figure 4.
Both the BER and FER curves have a sharp waterfall characteristic. The BER performs
very well all the way down to the BER of 4x10-10 without any error floor while the FER
exhibits no error floor down to 10-6. At the 10-9, the BER achieves more than 9 dB
coding gain over the uncoded BPSK and performs only 1.2 dB from the Shannon limit.
If there is no error floor above BER of 10-10, C2 with iterative decoding should provide 10
dB coding gain over the uncoded BPSK. Decoding of C2 also converges very fast as
shown in Figure 5. At the BER of 10-8, the performance gap between 10 iterations and
100 iterations is about 0.2 dB, while the performance gap between 20 iterations and 100

iterations is within 0.05 dB. To shorten the decoding delay and reduce the computational
complexity set the maximum number of iterations to 10 and take a 0.2 dB loss.
1

10

uncoded BPSK
MaxIT=5
MaxIT=10
MaxIT=20
MaxIT=100

10

10

bit error probability

10

10

10

10

10

10

10

10

4
5
Eb/No (dB)

Figure 5: EG-LDPC (8176, 7156) Iterative Convergence


The exact minimum distance of C2 is unknown. Since there is no error floor down to the
BER of almost 10-10, its minimum distance should be relatively large. Experiments
indicate that the minimum distance of C2 is at least 7.
References:
[1] R. G. Gallager, Low-density parity-check codes, IRE Trans. Inform. Theory, vol.
IT-8, pp. 21-28, Jan. 1962.
[2] M. Luby, M. Mitzenmacher, A. Shokrollahi, D. Speilman, and V. Stemann, Practical
loss-resilient codes, in Proc. 29th Annu. ACM Symp. Theory of Computing, 1997, pp.
150-159.
[3] Y. Kou, S. Lin, and M. P. C. Fossorier, Low-density parity-check codes based on
finite geometries: a rediscovery and new results, IEEE Trans. Information Theory,
vol. 47, pp. 2711-2736, Nov. 2001.
[4] S. Lin and D. J. Costello, Jr., Error Control Coding: Fundamentals and
Applications. Englewood Cliffs, NJ: Prentice-Hall, 1983.
[5] W. W. Peterson and E. J. Weldon, Jr., Error-Correcting Codes, 2nd ed. Cambridge,
MA: MIT Press, 1972.
8

You might also like