algebraic constructions of high performance and efficiently encodable non-binary quasi-cyclic ldpc...

142
Algebraic Constructions of High Performance and Efficiently Encodable Non-Binary Quasi-Cyclic LDPC Codes By Bo Zhou B.S.E.E. (Shanghai Jiaotong University, Shanghai, P.R. China) 2001 M.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 Charge 2008 i

Upload: others

Post on 24-Oct-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

  • 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