Upload
others
View
8
Download
0
Embed Size (px)
Citation preview
Algebraic Constructions of HighPerformance and Efficiently EncodableNon-Binary Quasi-Cyclic LDPC Codes
By
Bo Zhou
B.S.E.E. (Shanghai Jiaotong University, Shanghai, P.R. China) 2001M.S.E.E. (Shanghai Jiaotong University, Shanghai, P.R. China) 2004
DISSERTATION
Submitted in partial satisfaction of the requirements for the degree of
DOCTOR OF PHILOSOPHY
in
Electrical and Computer Engineering
in the
OFFICE OF GRADUATE STUDIES
of the
UNIVERSITY OF CALIFORNIA
DAVIS
Approved:
Committee in Charge2008
i
c© Bo Zhou, 2008. All rights reserved.
To my wife and my parents
ii
Acknowledgments
I would like to express my sincere gratitude to my advisors, Professor Shu Lin and
Professor Zhi Ding. Professor Lin is definitely a master in error control coding and
I have benefited tremendously from conducting research under his supervision. Just
as importantly, he permitted me the flexibility in choosing and pursuing research
ideas from his abundant list of suggested problems. Professor Ding also served as a
true mentor by providing knowledgeable advice on all aspects of academic life. Their
expertise, understanding, and patience considerably added to my graduate experience.
I would like to thank Professor Khaled A.S. Abdel-Ghaffar for his time and effort
in reviewing this dissertation. I also would like to thank the other committee mem-
bers, Professor Bernard C. Levy and Professor Wolfgang Polonik, for their interest
and assistance in this dissertation. I appreciate Professor Mihaela van der Schaar,
currently with the University of California, Los Angeles, for her guidance and support
in my first year at the University of California, Davis.
I acknowledge the generous financial support of my graduate studies from the Na-
tional Aeronautics and Space Administration (NASA) under the grants NNX07AK50G
and NNG05GD13G, the National Science Foundation (NSF) under the grants CCF-
0727478 and ECS-0121469, and the gift grants from Intel and Northrop Grumman
Space Technology.
I also appreciate Mr. Shie Qian of National Instruments for his continuous en-
couragement and consideration during my graduate studies in the United States.
I have benefited greatly from current and former fellow students in Communica-
tions and Signal Processing Laboratory at the University of California, Davis: Lan
Lan, Ying Yu Tai, Lingqi Zeng, Xiaofei Dong, Haitong Sun, Shumei Song, Meng
iii
Chen, Jingyu Kang, Li Zhang, He Huang, Senhua Huang, and Qin Huang. They
have helped me, in various ways, in my struggle to complete my Ph.D. program. In
particular, I wish to thank Qin Huang for his simulation results of Reed-Solomon
codes.
Last but not the least, I am grateful to my parents for the support they provided
me through my entire life, and in particular, I must acknowledge my wife, Zhao-
qiong Dong, without whose love and encouragement, I would not have finished this
dissertation.
iv
Bo ZhouMarch 2008
Electrical and Computer Engineering
Algebraic Constructions of High Performance and Efficiently
Encodable Non-Binary Quasi-Cyclic LDPC Codes
Abstract
This dissertation presents a general method and eight algebraic methods for con-
structing high performance and efficiently encodable non-binary quasi-cyclic LDPC
codes based on arrays of special circulant permutation matrices. Two design tech-
niques, array masking and array dispersion, for constructing both regular and irreg-
ular LDPC codes with desired specifications are also proposed. Codes constructed
based on these methods perform very well over the AWGN channel and flat fading
channels. With iterative decoding using a Fast Fourier Transform based sum-product
algorithm, they achieve significantly large coding gains over Reed-Solomon codes of
the same lengths and rates decoded with either algebraic hard-decision Berlekamp-
Massey algorithm or algebraic soft-decision Kötter-Vardy algorithm. Also presented
is a class of asymptotically optimal LDPC codes for correcting bursts of erasures.
Due to their quasi-cyclic structure, these non-binary LDPC codes can be encoded us-
ing simple shift-registers with linear complexity. Structured non-binary LDPC codes
have a great potential to replace Reed-Solomon codes for some applications in either
communication or storage systems for combating mixed types of noise and interfer-
ences.
v
Contents
1 Introduction 1
1.1 Error Control Coding . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Channel Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Performance Measures . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4 Motivation and Outline . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2 Finite Fields and Finite Geometries 10
2.1 A Brief Review of Finite Fields . . . . . . . . . . . . . . . . . . . . . 10
2.2 Finite Geometries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.1 Euclidean Geometries . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.2 Projective Geometries . . . . . . . . . . . . . . . . . . . . . . 16
3 Linear Block Codes 19
3.1 Basic Concepts of Linear Block Codes . . . . . . . . . . . . . . . . . . 19
3.2 Quasi-Cyclic Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.3 Low-Density Parity-Check Codes . . . . . . . . . . . . . . . . . . . . 25
3.3.1 Definition of LDPC Codes . . . . . . . . . . . . . . . . . . . . 26
3.3.2 Graphical Representation of LDPC Codes . . . . . . . . . . . 27
3.3.3 Quasi-Cyclic LDPC Codes . . . . . . . . . . . . . . . . . . . . 30
3.3.4 Decoding Algorithms of LDPC Codes . . . . . . . . . . . . . . 31
3.4 Non-Binary LDPC Codes for Correcting Bursts of Symbol Erasures . 36
vi
4 A General Construction of QC-LDPC Codes and Two Design Tech-
niques 41
4.1 Special Vector Representations of Finite Field Elements . . . . . . . . 41
4.2 A General Construction of QC-LDPC Codes by Dispersing Base Matrices 43
4.3 Construction of QC-LDPC Codes by Array Masking . . . . . . . . . . 45
4.4 Construction of QC-LDPC Codes by Array Dispersion . . . . . . . . 48
5 Construction of QC-LDPC Codes Based on Euclidean Geometries 54
5.1 QC-LDPC Codes Based on Parallel Flats in Euclidean Geometries . . 54
5.2 QC-LDPC Codes Based on Intersecting Flats in Euclidean Geometries 64
5.3 Code Construction Based on Multiple Intersecting Lines . . . . . . . 73
5.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
6 Construction of QC-LDPC Codes Based on Reed-Solomon Codes
with Two Information Symbols 80
6.1 QC-LDPC Codes Based on RS Codes with Two Information Symbols 81
6.2 Conclusion and Remarks . . . . . . . . . . . . . . . . . . . . . . . . . 91
7 Construction of QC-LDPC Codes by Random Partition of a Finite
Field 93
7.1 Random QC-LDPC Codes Based on Finite Field Partition . . . . . . 93
7.2 QC-LDPC Codes Based on the Additive Permutation of a Finite Field 97
7.3 Conclusion and Remarks . . . . . . . . . . . . . . . . . . . . . . . . . 100
8 Two Specific Constructions of QC-LDPC Codes Based on Subgroups
of Finite Fields 101
8.1 Non-Binary QC-LDPC Codes Based on Cyclic Subgroups of Finite Fields101
8.2 Non-Binary QC-LDPC Codes Based on Additive Subgroups of Finite
Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
vii
8.3 Conclusion and Remarks . . . . . . . . . . . . . . . . . . . . . . . . . 114
9 Coded Modulations with Non-Binary LDPC Codes over AWGN and
Fading Channels 115
9.1 Coded Modulations with Non-Binary LDPC Codes . . . . . . . . . . 115
9.2 Non-Binary LDPC Codes over Fading Channels . . . . . . . . . . . . 119
10 Conclusion 124
References 127
viii
1
Chapter 1
Introduction
1.1 Error Control Coding
In mathematics, computer science, telecommunications, and information theory, error
detection and correction have great practical importance in maintaining data (infor-
mation) integrity across noisy channels and less-than-reliable storage media. Error
control coding provides the ways that each data signal conforms to specific rules
of construction so that departures from this construction in the received signal can
generally be automatically detected and corrected. In general, these methods put
redundant information into the data stream following certain relations so that the
decoded stream, if damaged in transmission, can be corrected. The study of error
control coding began with the landmark paper of Claude E. Shannon [39], which
describes the maximum attainable efficiency of an error control scheme versus the
levels of noise interference. Since then, much research has been devoted to the prob-
lem of devising efficient encoding and decoding methods for error control in a noisy
environment.
A typical digital communication or storage system is shown in Figure 1.1, which
demonstrates the role of error control coding in the system. Error control coding is
2
InformationSource
SourceEncoder
ChannelEncoder
Modulator(Writing Unit)
TransmissionChannel
(Storage Medium)Noise
Demodulator(Reading Unit)
ChannelDecoder
SourceDecoder
Destination
Figure 1.1: Block diagram of a a typical digital communication or storage system.
realized by using two parts: a channel encoder and a channel decoder. The chan-
nel encoder brings well-designed redundancy to the message by adding some extra
symbols to the message or by expanding the signal set when combined with the mod-
ulator. At the receiver, the channel decoder performs error detection or correction by
using this redundancy. Error control coding can be designed separately from modu-
lation, where the redundancy causes the reduction of data rate. In this case, power
efficiency is typically increased, i.e., lower power is needed after coding to achieve the
same error probability, at the cost of bandwidth efficiency. Error control coding can
also be designed in conjunction with modulation, where bandwidth efficiency is not
sacrificed and error control is achieved at the expense of decoding complexity.
1.2 Channel Models
Since error control coding is concentrated on the channel encoder and the channel
decoder, the modulator (writing unit), the channel, and the demodulator (reading
3
1 − p
p
1 − p
p
1
0
1
0
Figure 1.2: A binary symmetric channel (BSC) with crossover probability p.
unit) in Figure 1.1 can be combined into a coding channel. If the output in a given
time depends only on the input at that time, not on any previous inputs, the coding
channel is said to be memoryless. If the output of the demodulator is sampled, i.e.,
discrete in time, the channel is discrete.
The discrete memoryless channel (DMC) is a common model of channels. Let
X = {x0, x1, . . . , xm−1} and Y = {y0, y1, . . . , yn−1} be the input alphabet and the
output alphabet of a DMC, respectively. It can be completely described by a set of
mn conditional probabilities P (Y = yj|X = xi) for each xi ∈ X and each yj ∈ Y .
As shown in Figure 1.2, the simplest example of DMC’s is the binary symmetric
channel (BSC), whose input alphabet and output alphabet both have two symbols,
i.e., m = n = 2. The transitional conditional probabilities are
P (Y = y|X = x) =
1 − p, if y = x,
p, if y 6= x,
where x ∈ {0, 1}.
Another simple example is the binary erasure channel (BEC), as shown in Figure
1.3. Its output alphabet consists of three symbols, {0, 1, ?}, where “?” represents an
erasure. In this model, the transmitter sends a bit, and the receiver either receives
the bit or a message that the bit is not received (erased) with erasure probability �.
4
1 − �
�
1 − �
�
1
0
1
0
?
Figure 1.3: A binary erasure channel (BEC) with erasure probability �.
Its transitional conditional probabilities are
P (Y = y|X = x) =
1 − �, if y = x,
�, if y =?,
where x ∈ {0, 1}.
If the output of a channel is unquantized, then n = ∞. This results in a channel
characterized by the discrete input alphabet X , the continuous output alphabet Y ,
and the set of conditional probability density functions P (y|X = xi) for each xi ∈ X .
The most important channel of this type is the binary input additive white Gaus-
sian noise (BIAWGN) channel shown in Figure 1.4, for which X = {±1} and
Y = X + N,
where X = ±1, and N is a zero-mean Gaussian random variable with variance σ2,
i.e., N ∼ N (0, σ2). Hence, for a given X, Y is Gaussian with mean ±1 and variance
σ2. That is,
P (y|X = ±1) = 1√2πσ
exp
[
−(y ∓ 1)2
2σ2
]
.
If the two-sided power spectral density is N0/2, then σ2 = N0/2.
In Chapter 6, we will introduce two other types of coding channels: random
5
X ∈ {±1} Y = X + N
N ∼ N (0, σ2)
Figure 1.4: A binary input additive white Gaussian noise (BIAWGN) channel.
erasure channel (REC) and burst erasure channel (BUEC).
1.3 Performance Measures
To measure the performance of a coded system, two methods are generally used,
error probability and coding gain. Error probability is the probability of a decoding
error. There are three types of error probabilities, word-error-rate (WER) (or block-
error-rate (BLER)), symbol-error-rate (SER), and bit-error-rate (BER). WER is the
probability that a decoded codeword at the output of the decoder is in error. SER
(or BER) is defined as the probability that a decoded information symbol (or bit)
at the output of the decoder is in error. For binary codes, one symbol consists of
one bit, so SER equals BER. A coded system should be designed to keep these three
error probabilities as low as possible under certain system constraints, such as power,
bandwidth, decoding complexity, and delay.
The other performance measure of a coded system is coding gain. It is defined as
the reduction in the signal-to-noise ratio (SNR) required to achieved a specific error
probability for a coded system compared to an uncoded system. Here, SNR is defined
as the ratio of the average power of the transmitted signal to the average power of
the noise at the receiver output. It is desired for a coded system to maximize its
coding gain over an uncoded system. In other word, in designing a coded system,
the objective of error control coding is to minimize the SNR for the coded system to
6
achieve specific error probability. Shannon’s channel coding theorem gives a theoret-
ical minimum SNR required for a coded system with a given code rate to achieve an
arbitrarily small error probability, called Shannon limit or channel capacity [39].
For a coding channel with input X and output Y , the capacity C of the channel
is defined as [7]:
C = maxP (xi)
I(X; Y ), (1.1)
where I(X; Y ) is the average mutual information provided by the output Y about
the input X. Given the statistics of the channel, the channel capacity indicates how
much information about the input X can be obtained from the presence of the output
Y . For a discrete-input, discrete-output channel, the capacity is
C = maxP (xi)
m−1∑
i=0
n−1∑
j=0
P (yj|xi)P (xi) logP (yj|xi)P (yj)
. (1.2)
The capacity of a discrete-input, continuous-output channel is given by
C = maxP (xi)
m−1∑
i=0
∫
Y
p(y|xi)P (xi) logp(y|xi)p(y)
dy, (1.3)
where
p(y) =m−1∑
i=0
p(y|xi)P (xi).
Figure 1.5 demonstrates the Shannon limits as a function of code rates over the
discrete-input, continuous-output AWGN channels for the modulations of BPSK,
8-PSK, 16-QAM, 32-QAM, and 64-QAM. From this figure, we can determine the
Shannon limit for a given code rate.
7
−2 −1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 150
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Shannon Limit (dB)
Cod
e R
ate
BPSK8−PSK16−QAM32−QAM64−QAM
Figure 1.5: Shannon limit as a function of code rate.
1.4 Motivation and Outline
The needs for cheaper, faster, and more reliable communication and storage systems
have propelled many researchers to seek ways to attain ultimate limits of reliable
transmission. Error control using low-density parity-check (LDPC) codes is currently
the most promising coding technique to achieve channel capacity for a wide range of
channels.
Based on the methods of construction, LDPC codes can be classified into two gen-
eral categories: random codes and structured codes. Although long random LDPC
codes generally perform closer to the Shannon limit in the waterfall region than struc-
tured LDPC codes of the same parameters, well-designed structured LDPC codes can
perform just as well as random-like LDPC codes (regular or irregular) in terms of error
probability, error-floor, and decoding convergence rate, collectively. Structured codes
can have a lower error-floor which is important in digital communication and storage
systems, where very low error probability is required. Structured codes with large
8
minimum distances can be constructed more easily than computer-generated random
codes. Moreover, structured codes, such as cyclic and quasi-cyclic (QC)-LDPC codes,
have encoding advantage over other types of LDPC codes. These codes also have ad-
vantages in IC decoder implementation due to their cyclic symmetry that results
in simple regular wiring and modular structure, which is particularly important in
practical applications.
This dissertation presents new methods for constructing high performance and
efficient encodable non-binary QC-LDPC codes. It is organized as follows. In Chap-
ter 2, some basic concepts and theorems of algebra are reviewed. Finite fields which
are very important to the modern coding theory are briefly introduced. Two classes
of finite geometries, Euclidean geometry and projective geometry over finite fields,
as well as the structural properties of these geometries, are presented. Chapter 3
briefly reviews the concepts of linear block codes. Some important subclasses of
linear block codes including QC codes and LDPC codes are also introduced. Espe-
cially, several decoding algorithms of LDPC codes are described. Chapter 4 presents
a general method for constructing non-binary QC-LDPC codes by dispersing base
matrices over finite fields. Also, two design techniques, array masking and array dis-
persion, are proposed to improve the performance of QC-LDPC codes and construct
new classes of regular and irregular QC-LDPC codes. Chapter 5 is concerned with
the construction of non-binary QC-LDPC codes based on parallel and intersecting
structural properties of flats in Euclidean geometries. Chapter 6 presents a method
to construct a class of QC-LDPC codes based on the minimum weight codewords
of Reed-Solomon (RS) codes with two information symbols. Chapter 7 presents a
flexible method for constructing non-binary QC-LDPC codes based on random parti-
tion of the elements of a finite field. Chapter 8 presents two specific constructions of
non-binary QC-LDPC codes based on cyclic and additive subgroups of finite fields.
Chapter 9 presents the integration of the algebraically constructed non-binary codes
9
and block coded modulations over AWGN and fading channels. Chapter 10 concludes
the dissertation.
10
Chapter 2
Finite Fields and Finite Geometries
Modern algebra is the basis for algebraic coding theory. In this chapter, the concepts
and properties of finite fields and finite geometries will be introduced. A large portion
of algebraic coding theory, code construction, and decoding is based on finite fields.
2.1 A Brief Review of Finite Fields
In this section, we introduce an algebraic system with two binary operations, called a
field. Fields with finite number of elements, called finite fields, play an important role
in developing algebraic error control coding theory and constructing error-correction
codes which can be efficiently encoded and decoded.
Definition 2.1. Let F be a set of elements on which two binary operations, called
addition “+” and multiplication “ · ”, are defined. The set F is a field under these
two operations, addition and multiplication, if the following conditions (or axioms)
are satisfied:
1. The set F is a commutative group under addition “+”. The identity element
with respect to addition “+” is called the zero element (or additive identity) of
F and is denoted by 0.
11
2. The set F \ {0}, or nonzero elements of F, forms a commutative group under
multiplication “ · ”. The identity element with respect to multiplication “ · ” is
called the unit element (or multiplicative identity) of F and is denoted by 1.
3. For any three elements a, b, and c in F, the distributive law, a·(b+c) = a·b+a·c,
holds.
In a field, the additive inverse of an element a is denoted by “−a”, and multiplica-
tive inverse of a is denoted by “a−1” if a 6= 0. Based on addition and multiplication
operations, and additive and multiplicative inverses of elements of a field, two other
operations, namely subtraction “−” and division “÷”, can be defined. Subtracting a
field element b from a field element a is defined as adding the additive inverse −b of
b to a, i.e., a− b = a + (−b). It is clear that a− a = 0. Dividing a field element a by
a nonzero element b is defined as multiplying a by the multiplicative inverse b−1 of b,
i.e., a ÷ b = a · b−1. It is clear that a ÷ a = 1 if a 6= 0.
The number of elements in a field is called the order of the field. A field with
finite order is called a finite field, otherwise called an infinite field. The characteristic
of a field is defined as the smallest positive integer λ such that∑λ
i=1 1 = 0.
There are a number of basic properties of fields:
• For every element a in a field, a · 0 = 0 · a = 0.
• For any two nonzero elements a and b in a field, a · b 6= 0.
• a · b = 0 and a 6= 0 imply that b = 0.
• For any two elements a and b in a field, −(a · b) = (−a) · b = a · (−b).
• For a 6= 0, a · b = a · c implies that b = c.
A subfield K of finite field F is defined as a subset of the elements of F and
satisfies the field conditions with the same operations of F. In this context, F is
12
called an extension field of K. If K 6= F, we say that K is a proper subfield of F. A
field containing no proper subfields is called a prime field.
For any q, which is a power of a prime p, i.e., q = pm, there exists a finite field
of q elements, denoted by GF(q). The finite field GF(q) is also called Galois field.
The finite field GF(q) contains GF(p) as a subfield and is an extension field of GF(p).
The characteristic of GF(q) is p. A good reference for construction and structural
properties of finite fields is [28].
Let a be a nonzero element of a finite field GF(q). The smallest positive integer
n such that an = 1 is called the order of the field element a.
Theorem 2.1. Let a be a nonzero element of order n in a finite field GF(q). Then,
the powers of a, an = 1, a, a2, . . . , an−1, form a cyclic subgroup of the multiplicative
group of GF(q).
Theorem 2.2. Let a be a nonzero element of a finite field GF(q). Then, aq−1 = 1.
Theorem 2.3. Let a be a nonzero element of a finite field GF(q), and n be the order
of a. Then, n divides q − 1.
In a finite field GF(q), a nonzero element α is said to be primitive if the order of
α is q − 1.
Consider the finite field GF(q), where q is a power of a prime p, i.e., q = pm.
Let α be a primitive element. Then, the powers of α, α0 = 1, α, . . . , αq−2, form all
the nonzero elements. The q distinct elements can also be represented by q distinct
polynomials of α over GF(p) with degree m − 1 or less, i.e., αi = a0 + a1α + · · · +
am−1αm−1, where a0, a1, . . . , am−1 ∈GF(p). The zero element 0 is represented by
the zero polynomial. Hence, there are two representations for the nonzero elements
of GF(q): the power representation and the polynomial representation. The power
representation is convenient for multiplication and the polynomial representation is
convenient for addition.
13
2.2 Finite Geometries
In contrast to ordinary geometry, a finite geometry has finite numbers of points,
lines, and flats. However, finite and ordinary geometries also have some fundamental
structures in common, such as: 1) two points are connected by a line; 2) two lines
are either disjoint (i.e., no point in common) or intersect at one and only one point
(i.e., one point in common); 3) if two lines have two points in common, they are
the same line. In this section, we present two families of finite geometries over finite
fields, namely Euclidean and projective geometries. These geometries will be used to
construct LDPC codes for iterative decoding in Chapter 5.
2.2.1 Euclidean Geometries
An m-dimensional Euclidean geometry over GF(q), denoted by EG(m,q), where q is
a power of a prime, is an m-dimensional vector space Vm of all the m-tuples
(a0, a1, . . . , am−1)
with ai ∈GF(q) for 0 ≤ i < m. An m-tuple corresponds to a point in EG(m,q). The
all-zero m-tuple, 0 = (0, 0, . . . , 0), is the origin of the geometry. The vector addition
and scalar multiplication of m-tuples over GF(q) are defined as follows:
(a0, a1, . . . , am−1) + (b0, b1, . . . , bm−1) , (a0 + b0, a1 + b1, . . . , am−1 + bm−1),
β · (a0, a1, . . . , am−1) , (β · a0, β · a1, . . . , β · am−1),
where the addition ai + bi and the multiplication β · ai (β ∈GF(q)) are carried out in
GF(q).
For 1 ≤ µ ≤ m, let β1, β2, . . . , βµ be µ elements of GF(q) and a0, a1, a2, . . . , aµ
14
be µ + 1 linearly independent points in EG(m,q). Then, a µ-dimensional flat, or a
µ-flat, passing through the point a0 but not the origin consists of qµ points of the
form a0 +∑µ
i=1 βiai, while a µ-flat passing through the origin consists of qµ points of
the form∑µ
i=1 βiai. Hence, a µ-flat in EG(m,q) is either a µ-dimensional subspace or
a coset of a µ-dimensional subspace of the vector space Vm over GF(q). A 0-flat is a
point in EG(m,q), and a 1-flat is a line in EG(m,q).
Let GF(qm) be an extension field of GF(q). Each element in GF(qm) can be
represented as an m-tuple over GF(q). Therefore, the qm elements in GF(qm) can be
regarded as qm points in EG(m,q), and GF(qm) is a realization of EG(m,q). Let α be
a primitive element of GF(qm). Then, all the elements of GF(qm) can be represented
as the powers of α, i.e., α−∞ , 0, α0 = 1, α, . . . , αqm−2, so all the points of EG(m,q)
can be represented as powers of α. The 0-element in GF(qm) represents the origin of
the geometry. Let αl0 , αl1 , . . . , αlµ be µ + 1 linearly independent elements in GF(qm)
and β1, β2, . . . , βµ be µ elements of GF(q). In EG(m,q), a µ-flat passing through the
point αl0 but not the origin consists of the qµ points of the form αl0 +∑µ
i=1 βiαli . A
µ-flat passing through the origin consists of the qµ points of the form∑µ
i=1 βiαli .
Two µ-flats in EG(m,q) either do not have any point in common or intersect at
a flat with a smaller dimension. Two µ-flats that have no point in common are said
to be disjoint. Flats that correspond to cosets of the same µ-dimensional subspace
of Vm are said to be parallel, which do not have any point in common. For each
µ-dimensional subspace of Vm, there are qm−µ parallel µ-flats in EG(m,q), and they
form a parallel bundle of µ-flats, denoted by P(µ). These parallel µ-flats are mutually
disjoint and contain all the qm points of EG(m,q), each point appearing once and
only once on only one of these parallel flats. In EG(m,q), there are
qm−µµ
∏
i=1
qm−i+1 − 1qµ−i+1 − 1 (2.1)
15
µ-flats. These µ-flats can be grouped into
µ∏
i=1
qm−i+1 − 1qµ−i+1 − 1 (2.2)
parallel bundles of µ-flats.
If two µ-flats in EG(m,q) intersect at a flat of a smaller dimension, the largest flat
at which they can intersect is a (µ − 1)-flat, and there exists one and only one such
(µ − 1)-flat. For 0 ≤ µ1 < µ2 ≤ m, there are
qµ2−µ1µ1∏
i=1
qµ2−i+1 − 1qµ1−i+1 − 1 (2.3)
µ1-flats contained in a given µ2-flat, and
µ2∏
i=µ1+1
qm−i+1 − 1qµ2−i+1 − 1 (2.4)
µ2-flats containing a given µ1-flat.
Let EG∗(m,q) be the subgeometry of EG(m,q) obtained by removing the origin
and all the flats passing through the origin. In EG∗(m,q), for 0 ≤ µ1 < µ2 < m, there
are
qµ2−µ1µ1∏
i=1
qµ2−i+1 − 1qµ1−i+1 − 1 (2.5)
µ1-flats contained in a given µ2-flat, and
qµ2−µ1µ2∏
i=µ1+1
qm−i − 1qµ2−i+1 − 1 (2.6)
µ2-flats containing a given µ1-flat. Moreover, the number of µ-flats in EG∗(m,q) for
0 ≤ µ < m is
(qm−µ − 1)µ
∏
i=1
qm−i+1 − 1qµ−i+1 − 1 . (2.7)
16
2.2.2 Projective Geometries
Projective geometries form another family of geometries over finite fields, consisting
of finite numbers of points, lines, and flats. For any positive integer m and any finite
field GF(q), there exists an m-dimensional projective geometry over GF(q), denoted
by PG(m,q). A point of PG(m,q) is a nonzero (m + 1)-tuple over GF(q). Let β
be a primitive element of GF(q). For any point (a0, a1, . . . , am) in PG(m,q) and
0 ≤ j < q − 1, the (m + 1)-tuple (βja0, βja1, . . . , βjam) represents the same point
(a0, a1, . . . , am). That is to say that the q − 1 nonzero (m + 1)-tuples in the following
set:
{(βja0, βja1, . . . , βjam) : βj ∈ GF(q), 0 ≤ j < q − 1}, (2.8)
represent the same point (a0, a1, . . . , am). Therefore, no point in PG(m,q) is a multiple
(or scalar product) of another point in PG(m,q). Since all the points of PG(m,q) are
nonzero (m + 1)-tuples over GF(q), PG(m,q) does not have an origin.
The m-dimensional projective geometry PG(m,q) over GF(q) can be constructed
from the extension field GF(qm+1) of GF(q). We regard GF(qm+1) as the (m +
1)-dimensional vector space Vm+1 over GF(q). Each element in GF(qm+1) can be
represented by an (m+1)-tuple over GF(q). Let α be a primitive element of GF(qm+1).
Then, α0, α, . . . , αqm+1−2 give all the nonzero elements of GF(qm+1). Let
n =qm+1 − 1
q − 1 = qm + qm−1 + · · · + q + 1. (2.9)
Let β = αn. The order of β is q − 1. The q elements, 0, β0 = 1, β, . . . , βq−2, form the
ground field GF(q) of GF(qm+1).
Consider the first n powers of α:
Γ = {α0, α1, α2, . . . , αn−1}. (2.10)
17
No element αi in Γ can be a product of an element in GF(q) and another element αj
in Γ. (Suppose that, for η ∈GF(q), αi = ηαj. Then, αi−j = η. Because ηq−1 = 1, we
obtain α(i−j)(q−1) = 1, with (i − j)(q − 1) < qm+1 − 1. This contradicts the fact that
the order of α is qm+1 − 1. Therefore, we conclude that, for αi and αj in Γ, αi 6= ηαj
for any η ∈GF(q).)
Partition the nonzero elements of GF(qm) into n disjoint subsets as follows:
{α0, βα0, . . . , βq−2α0},
{α1, βα1, . . . , βq−2α1},
{α2, βα2, . . . , βq−2α2},...
{αn−1, βαn−1, . . . , βq−2αn−1}.
Each set consists of q−1 nonzero elements of GF(qm+1) and each element is a multiple
of the first element. No element in one set can be a product of an element of GF(q)
and an element from a different set. We can represent each set by its first element as
follows:
(αi) , {αi, βαi, . . . , βq−2αi}, (2.11)
with 0 ≤ i < n. For any element αj in GF(qm+1), if αj = βkαi with 0 ≤ i < n, then
αj is represented by αi. If each element in GF(qm+1) is represented by an (m + 1)-
tuple over GF(q), (αi) consists of q − 1 nonzero (m + 1)-tuples over GF(q), each is a
multiple of the (m + 1)-tuple representation of αi. It follows from the definition of a
point of PG(m,q) given above that (αi) is point in PG(m,q). Therefore,
(α0), (α1), . . . , (αn−1)
form all the points of PG(m,q), and the number of points in PG(m,q) is n which is
given by (2.9).
18
Note that, if the 0-element of GF(qm) is added to the set (αi), we obtain a set
{0, αi, βαi, . . . , βq−2αi} of q elements. This set of q elements, viewed as (m+1)-tuples
over GF(q), is a one-dimensional subspace of the vector space Vm+1 of all the (m+1)-
tuples over GF(q). Hence, it is a line in the (m + 1)-dimensional Euclidean geometry
EG(m+1,q) over GF(q), which passes through the origin of EG(m+1,q). Therefore,
we may regard a point (αi) of PG(m,q) as a projection of a line of EG(m + 1,q)
passing through the origin of EG(m + 1,q).
For 0 ≤ µ < m, let (αj0), (αj1), . . . , (αjµ) be µ + 1 linearly independent points in
PG(m,µ). Then, a µ-flat in PG(m,µ) consists of points of the following form:
(δ0αj0 + δ1α
j1 + · · · + δµαjµ), (2.12)
where δk ∈GF(q) and not all δk’s are zero with 0 ≤ k ≤ µ. We denote this µ-flat with
{(δ0αj0 + δ1αj1 + · · · + δµαjµ)}. (2.13)
If we allow δk’s in (2.13) to be any element in GF(q) without restriction, this
results in qµ+1 points in the (m + 1)-dimensional Euclidean geometry EG(m + 1,q)
over GF(q), which form a (µ+1)-flat in EG(m+1,q). Therefore, we may regard that
a µ-flat in the m-dimensional projective geometry PG(m,q) over GF(q) is a projection
of a (µ + 1)-flat of the (m + 1)-dimensional Euclidean geometry EG(m + 1,q) over
GF(q).
Because the µ-flats of PG(m,q) are obtained from the (µ+1)-flats of EG(m+1,q)
passing through the origin, the µ-flats in PG(m,q) do not have parallel structure.
19
Chapter 3
Linear Block Codes
There are two structurally different types of codes, block codes and convolutional
codes. Both types of codes have been widely used for error control in communication
and/or storage systems. This chapter gives an introduction to linear block codes,
and two important classes of linear block codes, quasi-cyclic codes and low-density
parity-check codes.
3.1 Basic Concepts of Linear Block Codes
We assume that the output of an information source is a continuous sequence of
symbols over GF(q), called an information sequence. The symbols in an information
sequence are commonly called information symbols. In block coding, an information
sequence is segmented into message blocks of fixed length, and each message block
consists of k information symbols. There are qk distinct messages. At the channel en-
coder, each input message u = (u0, u1, . . . , uk−1) of k information symbols is encoded
into a longer sequence v = (v0, v1, . . . , vn−1) of n symbols with n > k, according to
certain encoding rules. This longer sequence v is called the codeword of the message
u. The symbols in a codeword are called code symbols. Since there are qk distinct
messages, there are qk codewords, one for each distinct message. This set of qk code-
20
words is said to form an (n,k) block code, denoted by C. For a block code to be
useful, the qk codewords for the qk distinct messages must be distinct. The n − k
symbols added to each input message by the channel encoder are called redundant
symbols. These redundant symbols carry no new information and their main function
is to provide the code with the capability of detecting and correcting transmission
errors caused by the channel noise or interferences. The ratio R , k/n is called the
code rate, which is interpreted as the average number of information symbols carried
by each code symbol.
To be implemented in a practical manner, a block code is desirable to be linear.
Definition 3.1. A q-ary block code of length n with qk codewords is called a q-ary
(n,k) linear block code if and only if its qk codewords form a k-dimensional subspace
of the vector space Vn of all the n-tuples over GF(q).
Since a q-ary (n,k) linear block code C is a k-dimensional subspace of the vector
space of all the n-tuples over GF(q), there exist k linearly independent codewords,
g0,g1, . . . ,gk−1, in C such that every codeword v in C is a linear combination of these
k linearly independent codewords. These k linearly independent codewords in C form
a basis BC of C. Using this basis, the codeword v = (v0, v1, . . . , vn−1) for the message
u = (u0, u1, . . . , uk−1) is given by the following linear combination of g0,g1, . . . ,gk−1,
with the k message symbols of u as the coefficients:
v = u0g0 + u1g1 + · · · + uk−1gk−1. (3.1)
We may arrange the k linearly independent codewords, g0,g1, . . . ,gk−1, of C as rows
21
of a k × n matrix over GF(q) as follows:
G =
g0
g1
...
gk−1
=
g0,0 g0,1 · · · g0,n−1g1,0 g1,1 · · · g1,n−1...
.... . .
...
gk−1,0 gk−1,1 · · · gk−1,n−1
. (3.2)
Then, the codeword v for message u given by (3.1) can be expressed as the matrix
product of u and G as follows:
v = u · G. (3.3)
Therefore, the codeword v for a message u is simply a linear combination of the rows
of matrix G with the information symbols in the message u as the coefficients. The
matrix G is called a generator matrix of the q-ary (n,k) linear block code C. Since
C is spanned by the rows of G, it is called the row space of G. In general, an (n,k)
linear block code has more than one basis. Any choice of a basis of C gives a generator
matrix of C. Obviously, the rank of a generator matrix of a linear block code C is
equal to the dimension of C.
Since a q-ary (n,k) linear block code C is a k-dimensional subspace of the vector
space Vn of all the n-tuples over GF(q), its null (or dual) space, denoted Cd, is an
(n − k)-dimensional subspace of Vn that is given by the following set of n-tuples in
Vn:
Cd = {w ∈ Vn : 〈w,v〉 = 0 for all v ∈ C}, (3.4)
where 〈w,v〉 denotes the inner product of w and v. The subspace Cd may be regarded
as a q-ary (n,n − k) linear block code, and is called the dual code of C. Let BCd be
a basis of Cd. Then, BCd consists of n − k linearly independent codewords in Cd. Let
h0,h1, . . . ,hn−k−1 be the n − k linearly codewords in BCd . Then, every codeword in
Cd is a linear combination of these n−k linearly independent codewords in BCd . Form
22
the following (n − k) × n matrix over GF(q):
H =
h0
h1
...
hn−k−1
=
h0,0 h0,1 · · · h0,n−1h1,0 h1,1 · · · h1,n−1...
.... . .
...
hn−k−1,0 hn−k−1,1 · · · hn−k−1,n−1
. (3.5)
The matrix H is a generator matrix of the dual code Cd of the q-ary (n,k) linear
block code C. It follows from (3.3), (3.4), and (3.5) that G · HT = O, where O is a
k× (n−k) zero matrix. Furthermore, C is also uniquely specified by the matrix H as
follows: an n-tuple v ∈ Vn is a codeword in C if and only if v · HT = 0 (the all-zero
(n − k)-tuple), i.e.,
C = {v ∈ Vn : v · HT = 0}. (3.6)
The matrix H is called a parity-check matrix of C, and C is said to be the null
space of H. Therefore, a linear block code is uniquely specified by two matrices, a
generator matrix and a parity-check matrix. In general, encoding of a linear block
code is based on a generator matrix of the code using (3.3) and decoding is based on
a parity-check matrix of the code).
Let v = (v0, v1, . . . , vn−1) be an n-tuple over GF(q). The Hamming weight (or
simply weight) of v, denoted w(v), is defined as the number of nonzero components
in v. The smallest weight of a nonzero codeword in C, denoted wmin(C), is called the
minimum weight of C, which is mathematically given as follows:
wmin(C) = min{w(v) : v ∈ C,v 6= 0}. (3.7)
Let v and w be two n-tuples over GF(q). The Hamming distance (or simply
distance) between v and w, denoted by d(v,w), is defined as the number of places
where v and w differ.
23
In practical systems, codes are constructed from the extension fields of the binary
field GF(2), i.e., q = 2b. It follows from the definition of Hamming distance between
two n-tuples and Hamming weight of an n-tuple that, for v and w over GF(2b), the
Hamming distance between v and w is equal to the Hamming weight of the vector
sum of v and w, i.e., d(v,w) = w(v + w).
The minimum distance of an (n,k) linear block code C, denoted by dmin(C), is
defined as the smallest Hamming distance between two different codewords in C, i.e.,
dmin(C) = min{d(v,w) : v,w ∈ C,v 6= w}. (3.8)
We can prove that, for a 2b-ary linear block code C, the minimum distance dmin(C) is
equal to the minimum weight wmin(C). Therefore, for a 2b-ary linear block code, to
determine its minimum distance is equivalent to determine its minimum weight.
3.2 Quasi-Cyclic Codes
Let t and b be two positive integers. Consider a tb-tuple over GF(q),
v = (v0,v1, . . . ,vt−1), (3.9)
which consists of t sections of b symbols each. For 0 ≤ j < t, the jth section of v is
a b-tuple over GF(q),
vj = (vj,0, vj,1, . . . , vj,b−1). (3.10)
Let v(1)j be the b-tuple over GF(q) obtained by cyclically shifting each component of
vj one place to the right. We call v(1)j the (right) cyclic-shift of vj. Let
v(1) = (v(1)0 ,v
(1)1 , . . . ,v
(1)t−1). (3.11)
24
The tb-tuple v(1) is called the t-sectionized cyclic-shift of v.
Definition 3.2. Let b, k, and t be positive integers such that k < tb. A q-ary (tb,k)
linear block code Cqc is called a quasi-cyclic (QC) code if the following conditions hold:
1) each codeword in Cqc consists of t sections of b symbols each; 2) every t-sectionized
cyclic-shift of a codeword in Cqc is also a codeword in Cqc. Such a QC code is called
a t-section QC code.
If t = 1, Cqc is a cyclic code of length b. Therefore, cyclic codes form a subclass
of QC codes. For k = cb with 1 ≤ c < t, the generator matrix Gqc of a q-ary (tb,cb)
QC code consists of a c × t array of b × b circulants over GF(q). A b × b circulant is
a b× b matrix for which each row is the right cyclic-shift of the row above it and the
first row is the right cyclic-shift of the last row. For a circulant, each column is the
downward cyclic-shift of the column on its left and the first column is the downward
cyclic-shift of the last column. The top row (or the leftmost column) of a circulant
is called the generator of the circulant. The set of columns of a circulant, read from
bottom to top (or from top to bottom), is the same as the set of rows of the circulant,
read from left to right (or from right to left). Therefore, the rows and columns of a
circulant have the same weight ω, which is defined as the weight of the circulant. If
ω = 1, the circulant is a permutation matrix, called a circulant permutation matrix.
A b × b zero matrix may be regarded as a (trivial) circulant.
In construction, a QC code Cqc is specified by a parity-check matrix which is a
(t − c) × t array of b × b circulants over GF(q) of the following form:
Hqc =
A0,0 A0,1 · · · A0,t−1A1,0 A1,1 · · · A1,t−1
......
. . ....
At−c−1,0 At−c−1,1 · · · At−c−1,t−1
. (3.12)
It is a (t− c)b× tb matrix over GF(q). The code Cqc is given by the null space of Hqc.
25
Encoding of a QC code in systematic circular form can be implemented using sim-
ple shift-registers with linear complexity [27]. A binary QC-LDPC code can be en-
coded with simple cyclic-shift-register/adder/accumulator (CSRAA) units, in which
each adder is an EXCLUSIVE-OR gate (or a binary adder) and a cyclic-shift-register
(or an accumulator) consists of a sequence of flip-flops. The complexity of the en-
coder is linearly proportional to the number of parity-check bits of the code. For
a q-ary QC code with q = 2b, similar CSRAA circuits with some modifications can
be used for encoding. With each symbol of GF(2b) represented by an b-tuple over
GF(2), an adder in a CSRAA circuit is an b-bit-wide binary adder (consisting of b
EXCLUSIVE-OR gates) to add two symbols in GF(2b), and a cyclic-shift-register (or
accumulator) consists of a sequence of b-bit-wide flip-flops (b flip-flops arranged in a
column per stage to store a symbol from GF(2b)).
3.3 Low-Density Parity-Check Codes
Low-density parity-check (LDPC) codes form a class of Shannon limit (or channel ca-
pacity) [39] approaching codes. LDPC codes were first discovered by Gallager [13, 14]
in the early 1960’s. Ignored for almost 20 years, Tanner [44] provided a new interpre-
tation of LDPC codes from a graphical point of view, called Tanner graph. LDPC
codes were rediscovered and further generalized in the late 1990’s and early 2000’s
[5, 23, 30, 32, 37, 38]. It has been shown that well designed LDPC codes decoded
with iterative decoding based on belief propagation [35], such as the sum-product al-
gorithm (SPA) [6, 13, 23, 24, 30, 37], achieve performance close to the Shannon limit.
Ever since their rediscovery, design, construction, decoding, efficient encoding, perfor-
mance analysis, and applications of these codes in digital communication and storage
systems have become focal points of research. Various methods, pseudo-random,
algebraic, and combinatorial, for constructing these codes have been proposed and
26
devised.
Compared with turbo codes, LDPC codes have some advantages: 1) they do not
require long interleavers to achieve good error performance; 2) they have better block
error performance; 3) their error floor occurs at a much lower error rate; 4) their
decoding is fully parallelizable instead of trellis-based.
This section gives a brief introduction to LDPC codes. One practically important
subclass of LDPC codes, quasi-cyclic (QC)-LDPC codes, is discussed. Several most
commonly used decoding algorithms for LDPC codes are explained in detail.
3.3.1 Definition of LDPC Codes
Let GF(q) be a finite field with q elements, where q is a power of a prime. A q-ary
regular LDPC code C is given by the null space over GF(q) of a sparse parity-check
matrix H over GF(q) which has the following structural properties:
1. Each row has weight (number of nonzero elements) ρ;
2. Each column has weight γ.
We further impose the following additional structural property which is enforced in
almost all constructions of LDPC codes:
3. No two rows (or two columns) have more than one place where they both have
nonzero components.
Such a parity-check matrix H is said to be (γ,ρ)-regular low-density parity-check
matrix and the code C given by its null space over GF(q) is called a (γ,ρ)-regular
q-ary LDPC code. Structural property 3 is a constraint on the rows and columns of
the parity-check matrix H and is referred as to the row-column (RC)-constraint.
Consider a q-ary LDPC code of length n specified by a J×n parity-check matrix H
over GF(q). Let h0,h1, . . . ,hJ−1 denote the rows of H, where hj = (hj,0, hj,1, . . . , hj,n−1)
27
for 0 ≤ j < J . Given a codeword v = (v0, v1, . . . , vn−1), the inner product of v and
hj operated over GF(q),
cj = v · hTj =n−1∑
l=0
vlhj,l = 0 (3.13)
gives a parity-check sum (or equation) for 0 ≤ j < J . There are J such parity-check
sums specified by the J rows of H. A code symbol vl is said to be checked by the
parity-check equation cj if and only if hj,l 6= 0. For a (γ,ρ)-regular q-ary LDPC
code, the RC-constraint ensures that there are γ parity-check sums orthogonal on
each code symbol [28]. Therefore, the minimum distance of the (γ,ρ)-regular LDPC
code is at least γ + 1 [23, 28]. For small γ, the lower bound γ + 1 on the minimum
distance of C may be very loose. If the columns and/or rows of H have varying (or
multiple) weights, the null space over GF(q) of H gives a irregular q-ary LDPC code
with minimum distance at least γmin + 1, where γmin is the minimum column weight
of the parity-check matrix H.
If q = 2, a q-ary LDPC code is called a binary LDPC code. On the other hand,
q-ary LDPC codes with q > 2 are also called non-binary LDPC codes.
Although a great deal of research effort has been expended in studying and con-
structing LDPC codes, most of this research has been focused only on binary LDPC
codes, and very little has been done in the design and construction of non-binary
LDPC codes. Non-binary LDPC codes were first investigated by Davey and MacKay
in 1998 [8]. Recently, some research effort has been expended in studying and con-
structing of non-binary LDPC codes [2, 36, 40, 49, 53]. Research results are encour-
aging. Good non-binary LDPC codes have been constructed [21, 40, 49, 51, 52, 53].
3.3.2 Graphical Representation of LDPC Codes
An LDPC code can be represented by a Tanner graph [44], which displays incidence
relationship between the code symbols and the parity-check sums which check on the
28
code symbols.
Given a J ×n parity-check matrix H of an LDPC code, we can construct a graph
G which consists of two sets of vertices, V1 and V2. The first set V1 consists of n
vertices which represent the n code symbols of the code. These vertices, denoted by
v0, v1, . . . , vn−1, are called variable nodes. The second set V2 consists of J vertices
which represent the J parity-check sums, c0, c1, . . . , cJ−1, given by (3.13) which the
code symbols must satisfy. These vertices are called check nodes. A variable node vl
is connected to a check node cj by an edge, denoted by (vl, cj), if and only if the code
symbol vl is checked by the parity-check sum cj. Obviously, G is a bipartite graph,
because there are no two connected variable nodes and no two connected check nodes
in G. The variable nodes and check nodes in the Tanner graph of a code correspond
to the columns and rows of the code’s parity-check matrix H, respectively, and an
edge in the graph corresponds to a nonzero component in H. The degree of a node
in G is defined as the number of edges which are incident at it. Hence, the degree of
a variable node equals the weight of the corresponding column of H, and the degree
of a check node equals the weight of the corresponding row of H.
It is convenient to specify the degree distributions of the variable nodes and the
check nodes in a Tanner graph by degree distribution polynomials [5, 37, 38], denoted
by γ(X) and ρ(X), respectively:
γ(X) ,dv
∑
i=2
γiXi−1, (3.14)
where γi is the fraction of all edges emanating from degree-i variable nodes and dv is
the maximum variable node degree;
ρ(X) ,dc
∑
i=2
ρiXi−1, (3.15)
where ρi is the fraction of all edges connected to degree-i check nodes and dc denotes
29
the maximum check node degree. Note that γ(1) = ρ(1) = 1.
In a graph, a cycle is defined as a sequence of connected edges which starts from
and ends at the same node and satisfies the condition that no other node appears
more than once. The number of the edges on a cycle is called the length of the cycle.
The girth of a graph is the length of the shortest cycle in the graph. Because a Tanner
graph is bipartite, the cycles in a Tanner graph must have even lengths. If the parity-
check matrix of a linear block code satisfies the RC-constraint, its associated Tanner
graph does not contain cycles of length 4. Hence, the Tanner graph of an LDPC has
a girth of at least 6.
Example 3.1. Consider a binary (7,3) linear block code specified by the following
parity-check matrix over GF(2):
H =
1 1 0 1 0 0 0
0 1 1 0 1 0 0
0 0 1 1 0 1 0
0 0 0 1 1 0 1
1 0 0 0 1 1 0
0 1 0 0 0 1 1
. (3.16)
The Tanner graph of this code is shown in Figure 3.1. The matrix H has two column
weights of 2 and 3, and one row weight of 3. It can be verified that H satisfies the
RC-constraint. Hence, the code is an irregular binary LDPC code, whose Tanner
graph has a girth of at least 6. A cycle of length 6, (v0 − c0 − v3 − c3 − v4 − c4 − v0),
is demonstrated in Figure 3.1. Moreover, the LDPC code has degree distribution
polynomials γ(X) = 0.333X + 0.667X2 and ρ(X) = X2. 44
30
v0 v1 v2 v3 v4 v5 v6
c0 c1 c2 c3 c4 c5
Figure 3.1: The Tanner graph of the (7,3) linear block code in Example 3.1.
3.3.3 Quasi-Cyclic LDPC Codes
Based on the method of construction, LDPC codes can be classified into two cate-
gories: 1) random codes generated by computer search based on certain design guide-
lines and required properties of their Tanner graphs [30, 37]; 2) structured codes con-
structed based on algebraic and combinatorial methods [1, 4, 10, 19, 23, 42, 43, 45].
Quasi-cyclic (QC)-LDPC codes form an important subclass of structured LDPC
codes.
A QC-LDPC code is given by the null space of a c× t array of b× b circulants as
follows:
Hqc =
A0,0 A0,1 · · · A0,t−1A1,0 A1,1 · · · A1,t−1
......
. . ....
Ac−1,0 Ac−1,1 · · · Ac−1,t−1
. (3.17)
The weight of each circulant Ai,j is small compared with its size b, and Hqc satisfies
the RC-constraint. If all the circulants in Hqc have the same weight ω, Hqc has
constant column weight cω and constant row weight tω. Under such condition, Hqc
specifies a regular QC-LDPC code Cqc. The RC-constraint on Hqc ensures that there
31
are cω parity-check sums orthogonal on every code symbol and hence the minimum
distance of Cqc is at least cω+1 [28]. If the weight distribution of the circulants results
in multiple column weights and/or multiple row weights in Hqc, Cqc is an irregular
QC-LDPC code.
3.3.4 Decoding Algorithms of LDPC Codes
A binary LDPC code can be decoded using various algorithms. There are several
well-known decoding algorithms: majority-logic (MLG) decoding, bit-flipping (BF)
decoding, weighted MLG decoding, weighted BF decoding, a posteriori probability
(APP) decoding, and iterative decoding based on belief propagation (IDBP) (com-
monly known as sum-product algorithm (SPA)) [28]. The first two are hard-decision
decoding, the last two are soft-decision decoding, and the third and the fourth are in
between.
All the above algorithms are designed for decoding binary LDPC codes. Recently,
more and more non-binary LDPC codes are emerging. In 1998, Davey and MacKay
[8] generalized the SPA for decoding binary LDPC codes to decode q-ary LDPC
codes. We refer to this generalized SPA for decoding q-ary LDPC codes as the q-ary
SPA (QSPA). To reduce decoding computational complexity, MacKay and Davey also
devised a Fast Fourier Transform based QSPA, called FFT-QSPA, in 2000 [31]. Their
work on FFT-QSPA was recently further improved by Declercq and Fossorier [9]. In
this section, the QSPA and the FFT-QSPA are described in detail for q-ary LDPC
codes where q = 2b.
The QSPA is a message passing algorithm working on Tanner graph. It is a
symbol-by-symbol soft-in/soft-out decoding algorithm. The QSPA iteratively sends
updated reliabilities of each symbol forward and backward between variable nodes
and check nodes in the Tanner graph of a q-ary LDPC code until a certain stopping
criterion is satisfied. In general, the QSPA is suboptimal unless the code has a cycle-
32
free Tanner graph. Hard decisions are made at the end of decoding. When the QSPA
decoding produces a non-codeword, a decoding failure occurs.
For q = 2b, we consider a q-ary LDPC code C of length n specified by a J × n
parity-check matrix H over GF(q). Let h0,h1, . . . ,hJ−1 be the J rows of H, where
hj = (hj,0, hj,1, . . . , hj,n−1). For 0 ≤ j < J and 0 ≤ l < n, define the index sets as
follows:
Jl = {j : hj,l 6= 0, 0 ≤ j < J}; (3.18)
Lj = {l : hj,l 6= 0, 0 ≤ l < n}. (3.19)
The index set Jl is defined as the set of parity-check sums in which the lth code
symbol participates and the index set Lj is the set of code symbols which participate
in the jth parity-check sum.
Consider a codeword v = (v0, v1, . . . , vn−1) in C. Let s be the transmitted sequence
through a channel and r be the received sequence. For 0 ≤ l < n, the implementation
of the QSPA is based on the computation of the marginal a posteriori probabilities,
P (vl|r). Let pxl be the prior probability of the symbol vl being equal to x for each
x ∈GF(q).
At the ith iteration, for 0 ≤ j < J and 0 ≤ l < n, define the following two quanti-
ties with each nonzero entry in the parity-check matrix H over GF(q) for x ∈GF(q).
• qx,(i)j,l : the probability that vl = x, given the information obtained via the parity-
check sums Jl\j.
• σx,(i)j,l : the probability of the parity-check sum cj being satisfied if vl = x and
the other symbols in Lj have a separable distribution {qvl′ ,(i)j,l′ : l′ ∈ Lj\l}.
Then, the QSPA can be described as
• Initialization: Set i = 0 and the maximum number of iterations to Imax. Set
qx,(0)j,l = p
xl .
33
• Step 1 (Updating σx,(i)j,l ): For 0 ≤ j < J and 0 ≤ l < n,
σx,(i)j,l =
∑
v′:v′
l=x
P (cj = 0|v′) ·∏
l′∈Lj\l
qv′
l′,(i)
j,l′
, (3.20)
where P (cj = 0|v′) ∈ {0, 1} according to whether or not v′ satisfies the jth
parity-check sum.
• Step 2 (Updating qx,(i)j,l ): For 0 ≤ j < J , 0 ≤ l < n, and x ∈GF(q), compute
qx,(i+1)j,l = α
(i+1)j,l p
xl
∏
j′∈Jl\j
σx,(i)j′,l , (3.21)
where α(i+1)j,l is chosen such that
∑q−1x=0 q
x,(i+1)j,l = 1. Make a tentative hard-
decision z(i) = (z(i)0 , z
(i)1 , . . . , z
(i)n−1), where
z(i)l = arg max
xpxl
∏
j′∈Jl
σx,(i)j′,l . (3.22)
If z(i) ·HT = 0 or Imax is reached, go to Step 3. Otherwise, i := i + 1 and go to
Step 1.
• Step 3 (Termination): Output z(i) as the decoded codeword and stop the de-
coding process.
Obviously, the decoding complexity of a q-ary LDPC code becomes unaffordable
rapidly as q increases. Therefore, a modified decoding algorithm using Fast Fourier
Transform (FFT) is proposed for q-ary LDPC codes. It reduces the decoding com-
plexity from q2 to q log2 q for each nonzero entry in the parity-check matrix H of
a q-ary LDPC code. This modified decoding algorithm is called the Fast Fourier
Transform based QSPA (FFT-QSPA).
The main improvement of the FFT-QSPA is to simplify updating σx,(i)j,l , which is
34
described in detail as follows.
A decoded sequence z(i) satisfies the jth parity-check sum if and only if
∑
l′∈Lj
hj,l′z(i)l′ = 0. (3.23)
Let z̃(i)j,l = hj,lz
(i)l . Associate each nonzero entry hj,l with two new quantities q̃
x,(i)j,l and
σ̃x,(i)j,l , both of which indicate the probability of z̃
(i)j,l being x. For example, if x̃ = hj,lx,
q̃x̃,(i)j,l = q
x,(i)j,l and σ̃
x̃,(i)j,l = σ
x,(i)j,l . Then,
z̃(i)j,l =
∑
l′∈Lj\l
z̃(i)j,l′ . (3.24)
Define two probability mass function vectors as follows:
q̃(i)j,l = (q̃
0,(i)j,l , q̃
1,(i)j,l , . . . , q̃
q−1,(i)j,l ) (3.25)
and
σ̃(i)j,l = (σ̃
0,(i)j,l , σ̃
1,(i)j,l , . . . , σ̃
q−1,(i)j,l ). (3.26)
The convolution in GF(q) of two probability mass function vectors u and v is given
as w = u⊗v, where wx = ∑x=x1+x2 ux1vx2 . Therefore, the probability mass function
vector σ̃(i)j,l can be updated as
σ̃(i)j,l =
⊗
l′∈Lj\l
q̃(i)j,l′ . (3.27)
FFT is performed to compute σ̃(i)j,l efficiently as follows:
σ̃(i)j,l = FFT −1
∏
l′∈Lj\l
FFT (q̃(i)j,l′)
, (3.28)
35
where∏
is term-by-term product. Then, σ(i)j,l can be recovered from σ̃
(i)j,l .
The q-point radix-2 Fourier transform of a probability mass function vector u,
where q = 2b, is given as
v = FFT (u) = u ×0 F ×1 F · · · ×b−1 F, (3.29)
where F is a 2 × 2 matrix given by
F =
1 1
1 −1
. (3.30)
Therefore, w = u ×k F is calculated as follows:
w[x0···xk−10xk+1···xb−1] = u[x0···xk−10xk+1···xb−1] + u[x0···xk−11xk+1···xb−1], (3.31)
w[x0···xk−11xk+1···xb−1] = u[x0···xk−10xk+1···xb−1] − u[x0···xk−11xk+1···xb−1], (3.32)
where [x0x1 · · ·xb−1] is the binary representation of the element x ∈GF(q), u[x0x1···xb−1] =
P (u = x), and w[x0x1···xb−1] = P (w = x). In each layer, the FFT computes the sum
and difference of the probabilities of two field elements differing from each other by
only one bit location.
The transform matrix F−1 of radix-2 inverse Fourier transform is
F−1 =1
2
1 1
1 −1
, (3.33)
and the inverse Fourier transform of v is given as
u = FFT −1(v) = v ×0 F−1 ×1 F−1 · · · ×b−1 F−1. (3.34)
Note that u = FFT −1(FFT (u)).
36
Finally, we summarize the check-node updates based on FFT in three steps:
1. Compute q̃(i)j,l from q
(i)j,l according to q̃
x̃,(i)j,l = q
x,(i)j,l if x̃ = hj,lx;
2. Compute σ̃(i)j,l = FFT −1
(
∏
l′∈Lj\lFFT (q̃(i)j,l′)
)
;
3. Compute σ(i)j,l from σ̃
(i)j,l according to σ
x,(i)j,l = σ̃
x̃,(i)j,l if x̃ = hj,lx.
For decoding binary LDPC codes, i.e., q = 2, the FFT-QSPA becomes the SPA
[6, 13, 23, 24, 30, 37]. Because q0,(i)j,l + q
1,(i)j,l = 1, the FFT used in updating σ
0,(i)j,l and
σ1,(i)j,l is degraded as follows:
σ0,(i)j,l =
1
2
1 +∏
l′∈Lj\l
(
q0,(i)j,l′ − q
1,(i)j,l′
)
, (3.35)
σ1,(i)j,l =
1
2
1 −∏
l′∈Lj\l
(
q0,(i)j,l′ − q
1,(i)j,l′
)
. (3.36)
The SPA can also be implemented in terms of log-likelihood ratio (LLR). By
making some approximation to reduce the complexity, the LLR-based SPA can be
simplified to the min-sum algorithm [12].
3.4 Non-Binary LDPC Codes for Correcting Bursts
of Symbol Erasures
A q-ary erasure channel is a channel over which a transmitted symbol, from an alpha-
bet of size q, is either received correctly or erased, i.e., received as an erasure, denoted
by “?”. Here, we consider the alphabet of input symbols of the channel to be the
finite field GF(q). In this case, the alphabet of channel output symbols is the union
of GF(q) and {?}, i.e., GF(q)∪{?}. There are two basic types of erasure channels, one
over which symbol erasures occur at random with the same erasure probability and
37
the other over which symbol erasures cluster into bursts. The former type is called a
random erasure channel (REC) and the latter type is called a burst erasure channel
(BUEC).
Suppose a codeword v = (v0, v1, . . . , vn−1) from a q-ary (n,k) linear code C is
transmitted and r = (r0, r1, . . . , rn−1) is the corresponding received sequence over
GF(q)∪{?}. Let E = {j0, j1, . . . , je−1} be the set of positions in r where the trans-
mitted symbols are erased. The set E displays the pattern of erased symbols in r and
is called an erasure pattern. Define Ec = {0, 1, . . . , n − 1}\E . Then, Ec is the set
of positions in r where the transmitted symbols are correctly received. Decoding r
is to determine the values of the transmitted symbol vj for each j in E . An erasure
pattern E is said to recoverable (or correctable) if each erased symbol in E can be
uniquely determined. Let H be an J × n parity-check matrix for the code C and
hi = (hi,0, hi,1, . . . , hi,n−1) denote the ith row of H, where 0 ≤ i < J . The received
symbol rj is said to be checked by hi, if hi,j 6= 0. In this case, if rj =? (an erased
symbol) and all the other received symbols checked by hi are not erasures, then, since
v is in the null space of H, and in particular orthogonal to hi, i.e., the inner product
〈hi,v〉 is zero, vj can be determined from
vj = −h−1i,jn−1∑
k=0,k 6=j
rkhi,k, (3.37)
where h−1i,j denotes the inverse of hi,j. Once the symbol vj is recovered, the index j
is deleted from the erasure pattern E . The procedure can be repeated to recover all
transmitted symbols that are erased by the channel as long as the erasure pattern E
does not include a subset S such that every row hi in H, for 0 ≤ i < m, checks no
erased symbol with an index in S or at least two erased symbols with indices in S.
Such a set S is called a stopping set [34]. Basically, an erasure pattern E is recoverable
if, for any index j ∈ E , there is a row hi in H that checks only the erased symbol at
38
position j but not erased symbols at the other positions in E .
An erasure pattern E is called an erasure-burst of length b if the erased symbols
are confined to b consecutive positions, the first and last of which are erased symbols.
An erasure-burst pattern may contain some right and some left consecutive positions
of the received sequence r. This type of erasure-burst is called an end-around erasure-
burst. A q-ary (n,k) code is called a B-erasure-burst correction code if it is capable
of correcting any erasure-burst of length B or less with a specific algorithm, but not
all the erasure-bursts of length B + 1. Theoretically, a q-ary (n,k) code is capable
of correcting any erasure-burst of length up to n − k (the number of parity-check
symbols), which is the absolute limit on the erasure-burst correction capability of
an (n,k) code. However, a practical decoder may not be able to achieve this limit.
The ratio η = B/(n − k) is a measure of the effectiveness of a q-ary (n,k) code for
correcting erasure-bursts with a specific decoding algorithm. It is called the erasure-
burst correction efficiency of the code.
In the following, we define a specific structure of a parity-check matrix H of an
(n,k) linear code C that determines the erasure-burst correction capability of C.
Let x = (x0, x1, . . . , xn−1) be a nonzero n-tuple over GF(q). The first (or the
left-most) nonzero component of x is called the leading nonzero component of x and
the last (or the right-most) nonzero component of x is called the trailing nonzero
component of x. If x has only one nonzero component, the leading and trailing
nonzero components of x are the same. A zero-span of x is defined as a sequence
of consecutive zeros between two nonzero components. The zeros to the right of
the trailing nonzero component with the zeros to the left of the leading nonzero
component also form a zero-span, called the end-around zero-span. The number of
zeros in a zero-span is called the length of the zero-span.
Consider a (γ,ρ)-regular LDPC code C given by the null space of an RC-constrained
J×n sparse parity-check matrix H with constant column weight γ. Label the columns
39
of H from 0 to n − 1. For 0 ≤ j < n, there are γ rows of H, each having a nonzero
component in the jth column of H. For each of these γ rows, we find its zero-span
starting from the (j + 1)th column to the next nonzero component in the row and
compute its length. If the nonzero component of a row at the position j is the trail-
ing nonzero component of the row, we determine its end-around zero-span and its
length. Among the zero-spans of the γ rows with a nonzero component in the jth
column of H, a zero-span of maximum length is called a zero-covering-span of the
jth column of H. Let σj be the length of the zero-covering-span of the jth column
of H. The sequence of integers, (σ0, σ1, . . . , σn−1) is called the length profile of the
column zero-covering-spans of H. A column zero-covering-span of minimum length
is called the zero-covering-span of the parity-check matrix H. The length of the
zero-covering-span of H is given by σ = min{σj : 0 ≤ j < n}. In the following, we
present an algorithm for correcting erasure-bursts based on the length profile of the
column zero-covering-spans of the parity-check matrix H of code C. We show that
any erasure-burst of length σ + 1 or less can be recovered.
Suppose j is the starting position of an erasure-burst E of length at most σj + 1.
Then, there is a row hi = (hi,0, hi,1, . . . , hi,n−1) in H for which the jth component hi,j
is nonzero and followed by a zero-span of length σj. Since the erasure-burst starts at
position j and has length at most σj+1, hi checks only the erased symbol at position j
but not the erased symbols at the other positions. Then, the value of the transmitted
symbol vj at the position j can be uniquely determined from (3.37). Replacing the
erased symbol by its value results in a shorter erasure-burst pattern E (1) = E\{j}.
Determine the starting position, say l, of the shorter erasure-burst E (1). We repeat
the same process to determine the value of the erased symbol vl from (3.37). The
procedure can be repeated until all erased symbols are determined. It is clear from
the definition of σ that if the length of an erasure-burst pattern E is σ +1 or less, the
above recursive decoding process can determine the values of all the erased symbols
40
in E no matter where E begins, including the end-around case. An algorithm for the
above recursive decoding process can be formulated as follows:
1. If there are erasures in the received sequence r, determine the starting position
of the erasure-burst in r, say position j, and go to Step 2. If there is no erasure
in r, stop decoding.
2. Determine the length of the erasure-burst, say b. If b ≤ σj + 1, go to Step 3,
otherwise stop decoding.
3. Determine the value of the erased symbol at position j and go to Step 1.
From the above, it is clear that, for a (γ,ρ)-regular LDPC code (or any linear block
code) given by the null space of a parity-check matrix H with a zero-covering-span
of length σ, its erasure-burst correction capability is at least σ + 1, i.e., any erasure-
burst of length σ + 1 or less is guaranteed to be recoverable. Binary LDPC codes for
correcting erasure-bursts were investigated earlier in [16, 25, 41, 47] and the concept
of zero-covering span of a parity-check matrix was first introduced in [25, 26, 40, 41].
41
Chapter 4
A General Construction of
QC-LDPC Codes and Two Design
Techniques
This chapter gives a general method for constructing non-binary QC-LDPC codes by
dispersing elements of a finite field GF(q) into special circulant permutation matrices
over GF(q) and dispersing matrices over GF(q) which satisfy two constraints on rows
into arrays of special circulant permutation matrices over GF(q). We show that, for
any given field, a family of non-binary QC-LDPC codes can be constructed.
4.1 Special Vector Representations of Finite Field
Elements
Consider the finite field GF(q), where q is a power of a prime. Let α as a primitive
element of GF(q). Then, the powers of α, α−∞ , 0, α0 = 1, α, . . . , αq−2, give all
the elements of GF(q) and αq−1 = 1. For each nonzero element αi in GF(q) with
42
0 ≤ i < q − 1, form a (q − 1)-tuple over GF(q),
z(αi) = (z0, z1, . . . , zq−2), (4.1)
whose components correspond to the q − 1 nonzero elements of GF(q), where the ith
component zi = αi and all the other components are equal to zero. Hence, z(αi) is
a (q − 1)-tuple over GF(q) with a single nonzero component, i.e., the weight of z(αi)
is one. This unit-weight (q − 1)-tuple over GF(q) is called the q-ary location-vector
of the field element αi. The single nonzero components of the q-ary location-vectors
of two different nonzero elements of GF(q) are at two different locations. The q-
ary location-vector of the 0-element of GF(q) is defined as the all-zero (q − 1)-tuple,
z(0) = (0, 0, . . . , 0).
Let δ be a nonzero element of GF(q). Then, the q-ary location-vector z(αδ) of the
field element αδ is the right cyclic-shift (one place to the right) of the location-vector
z(δ) of δ multiplied by α. Form a (q − 1) × (q − 1) matrix A over GF(q) with the
q-ary location-vectors of δ, αδ, . . . , αq−2δ as rows:
A =
z(δ)
z(αδ)
...
z(αq−2δ)
. (4.2)
The matrix A is a special type of circulant permutation matrix for which each row
is the right cyclic-shift of the row above it multiplied by α and the first row is the
right cyclic-shift of the last row multiplied by α. Such a matrix is called a q-ary
α-multiplied circulant permutation matrix (CPM). Since A is obtained by dispersing
(or expanding) δ horizontally and vertically, A is referred to as the two-dimensional
(q − 1)-fold dispersion of δ (simply dispersion of δ). It is clear that the dispersion
43
of the 0-element is a (q − 1) × (q − 1) zero matrix. The dispersions of two different
nonzero elements in GF(q) result in two different α-multiplied (q−1)×(q−1) CPM’s.
4.2 A General Construction of QC-LDPC Codes
by Dispersing Base Matrices
Code construction begins with an m × n matrix over GF(q),
W =
w0
w1
...
wm−1
=
w0,0 w0,1 · · · w0,n−1w1,0 w1,1 · · · w1,n−1
......
. . ....
wm−1,0 wm−1,1 · · · wm−1,n−1
, (4.3)
whose rows satisfy the following two constraints: 1) for 0 ≤ i < m, 0 ≤ k, l < q − 1,
and k 6= l, αkwi and αlwi differ in at least n−1 places; 2) for 0 ≤ i, j < m, i 6= j, and
0 ≤ k, l < q − 1, αkwi and αlwj differ in at least n − 1 places. The two constraints
on the rows of W are called the α-multiplied row-constraints 1 and 2. The first α-
multiplied row-constraint implies that each row of W has at most one 0-component
of GF(q). Suppose wi has two zero components at positions s and t. Then, both
αkwi and αlwi have zero components at positions s and t. In this case, α
kwi and
αlwi differ in at most q − 2 positions, which violates the α-multiplied row-constraint
1. If k = l = 0, then αk = αl = 1. It follows from the α-multiplied row-constraint 2
that any two different rows, wi and wj, of W differ in at least n − 1 places.
Dispersing each nonzero entry of W into an α-multiplied (q − 1) × (q − 1) CPM
and each 0-entry into a (q − 1) × (q − 1) zero matrix, we obtain the following m × n
44
array of α-multiplied (q − 1) × (q − 1) CPM’s and zero matrices:
H =
A0,0 A0,1 · · · A0,n−1A1,0 A1,1 · · · A1,n−1
......
. . ....
Am−1,0 Am−1,1 · · · Am−1,n−1
. (4.4)
This array is an m(q − 1) × n(q − 1) matrix over GF(q). The array H is called the
array dispersion of W, and the matrix W is called the base matrix. The α-multiplied
row-constraint 1 on the base matrix W ensures that each row of the array dispersion
H of W contains at most one (q − 1)× (q − 1) zero matrix and no four zero matrices
are at the four corners of a rectangle in the array H. The α-multiplied row-constraints
1 and 2 ensure that H, as an m(q − 1) × n(q − 1) matrix over GF(q), satisfies the
RC-constraint. This is proved in Lemma 4.1.
Lemma 4.1. If the base matrix W satisfies the α-multiplied row-constraints 1 and
2, then H satisfies the RC-constraint.
Proof. Suppose H does not satisfy the RC-constraint.
Since H given by (4.4) is an array of α-multiplied CPM’s, there are integers, i, j,
s, t, k, and l, such that 0 ≤ i, j < m, 0 ≤ s, t < n, 0 ≤ k, l < q − 1, s 6= t, and if
i = j then k 6= l, for which the following is true: the kth and the lth rows of Ai,s and
Aj,s are identical, i.e., z(αkwi,s) = z(α
lwj,s), and the kth and the lth rows of Ai,t and
Aj,t are identical, i.e., z(αkwi,t) = z(α
lwj,t). Since distinct elements in GF(q) have
distinct location-vectors, it follows that αkwi,s = αlwj,s and α
kwi,t = αlwj,t. These
two equalities violate the α-multiplied row-constraint 1 if i = j and the α-multiplied
row-constraint 2 if i 6= j.
This proves the lemma.
For any pair (γ,ρ) of integers with 1 ≤ γ ≤ m and 1 ≤ ρ ≤ n, let H(γ, ρ) be a
45
γ × ρ subarray of H. The array H(γ, ρ) is a γ(q − 1) × ρ(q − 1) matrix over GF(q).
Since H satisfies the RC-constraint, H(γ, ρ) also satisfies the RC-constraint. The null
space over GF(q) of H(γ, ρ) gives a q-ary QC-LDPC code Cqc of length ρ(q − 1) with
rate at least (ρ − γ)/ρ. If H(γ, ρ) does not contain zero matrices, it has constant
column and row weights γ and ρ, respectively. If H(γ, ρ) contains zero matrices, it
may not have constant column or row weights. Hence, the null space of H(γ, ρ) gives
an irregular QC-LDPC code.
The above (q − 1)-fold dispersion of a matrix W over a finite field GF(q) which
satisfies the two α-multiplied row-constraints gives a method for constructing QC-
LDPC codes. For any given finite field GF(q), a family of QC-LDPC codes with
various lengths, rates, and minimum distances can be constructed. In the next four
chapters, we will present various specific methods for constructing base matrices for
dispersion and several classes of q-ary QC-LDPC codes.
4.3 Construction of QC-LDPC Codes by Array
Masking
In the previous section, we have presented RC-constrained arrays of α-multiplied
CPM’s over finite fields for constructing non-binary QC-LDPC codes. Although these
arrays are highly structured, their constituent α-multiplied CPM’s are densely packed.
The density of such an array or its subarrays can be reduced by replacing a set of α-
multiplied CPM’s with zero matrices, which is referred to as array masking. Masking
an array of α-multiplied CPM’s results in a sparser array of α-multiplied CPM’s and
zero matrices whose associated Tanner graph has fewer edges and consequently has
fewer short cycles and possibly larger girth. As a result, the performance of the
code given by the sparser array may be improved and the decoding computational
complexity is reduced.
46
Let H(γ, ρ) = [Ai,j] be a γ × ρ subarray of the RC-constrained array H of α-
multiplied CPM’s over GF(q) given by (4.4). Masking H(γ, ρ) is to replace a set
of α-multiplied CPM’s by a set of zero matrices. The masking operation can be
mathematically formulated as a special matrix product. Let Z(γ, ρ) = [zi,j] be a γ×ρ
matrix over GF(2). Define the following product:
M(γ, ρ) = Z(γ, ρ) ~ H(γ, ρ) = [zi,jAi,j], (4.5)
where
zi,jAi,j =
Ai,j, if zi,j = 1;
O, if zi,j = 0.
(4.6)
Here, O is a (q−1)×(q−1) zero matrix. In this matrix product operation, a set of α-
multiplied CPM’s are masked by the 0-entries of Z(γ, ρ). We call Z(γ, ρ) the masking
matrix, H(γ, ρ) the base array, and M(γ, ρ) the masked array. We avoid masking
zero matrices (if any) in H(γ, ρ). The distribution of the α-multiplied CPM’s in the
masked array M(γ, ρ) is identical to to the distribution of 1-entries in the masking
matrix Z(γ, ρ). Since the base array H(γ, ρ) satisfies the RC-constraint, it is clear that
the masked array M(γ, ρ) also satisfies the RC-constraint regardless of the masking
matrix. Hence, the Tanner graph of M(γ, ρ) has a girth of at least 6. The concept of
masking was recently introduced in [26, 28, 46] for constructing binary LDPC codes.
The distribution of cycles in the associated Tanner graph of the masked array
M(γ, ρ) significantly depends on the distribution of cycles in the associated Tanner
graph of the masking matrix Z(γ, ρ). A masking matrix with small number of short
cycles results in a masked array with small number of short cycles. Short cycles
generally limit the performance of an LDPC code with iterative decoding based on
belief propagation. In construction of LDPC codes, it is always desired to avoid short
cycles in their Tanner graphs, especially cycles of length 4. In [28] and [46], it has
47
been shown that, if the girth of the associated Tanner graph of the masking matrix
Z(γ, ρ) is λ, the girth of the associated Tanner graph of the masked array M(γ, ρ) is at
least λ. Therefore, using masking technique to construct an LDPC code based on an
array of α-multiplied CPM’s, it is desirable to construct a masking matrix such that
its associated Tanner graph has a girth as large as possible and the number of short
cycles contained in the Tanner graph is as small as possible. Since the associated
Tanner graph of the base array H(γ, ρ) already has a girth at least 6 (free of cycles
of length 4), the masking matrix Z(γ, ρ) should be constructed to minimize or reduce
the number of cycles of length 6 in the associated Tanner graph of the masked array
M(γ, ρ), even if it is not possible to construct Z(γ, ρ) with a girth greater than 6.
If Z(γ, ρ) is regular, the null space of M(γ, ρ) gives a regular code. Otherwise,
it gives an irregular code. Masking matrices can be constructed algebraically or by
computer search. A special type of masking matrices is the circular type. A circular
masking matrix consists of a row of k (k ≥ 1) sparse circulants over GF(2) in the
following form:
Z(γ, kγ) =
[
G0 G1 · · · Gk−1]
, (4.7)
where, for 0 ≤ j < k, Gj is a γ×γ circulant with both column and row weight