-
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