LDPC Codes: Code Construction and Encoder Hardware ... · occasions. Many thanks to my friends and...

212
University of Patras School of Engineering Department of Electrical and Computer Engineer LDPC Codes: Code Construction and Encoder Hardware Implementation Κώδικες Πίνακα Ισοτιμίας Χαμηλής Πυκνότητας (LDPC): Κατασκευή κωδίκων και υλοποιήσεις κωδικοποιητών σε υλικό This dissertation is submitted for the degree of Doctor of Philosophy Ahmed S. Mahdi Supervisor: Assoc. Professor Vassilis Paliouras Dissertation Number: 328 June 2015

Transcript of LDPC Codes: Code Construction and Encoder Hardware ... · occasions. Many thanks to my friends and...

  • University of Patras

    School of Engineering

    Department of Electrical and Computer Engineer

    LDPC Codes: Code Construction and

    Encoder Hardware Implementation

    Κώδικες Πίνακα Ισοτιμίας Χαμηλής Πυκνότητας (LDPC):

    Κατασκευή κωδίκων και υλοποιήσεις κωδικοποιητών σε υλικό

    This dissertation is submitted for the degree of

    Doctor of Philosophy

    Ahmed S. Mahdi

    Supervisor: Assoc. Professor

    Vassilis Paliouras

    Dissertation Number: 328

    June 2015

  • ΠΙΣΤΟΠΟΙΗΣΗ

    Πιστοποιείται ότι η παρούσα διδακτορική διατριβή με τίτλο “LDPC Codes: Code

    Construction and Encoder Hardware Implementation”, (Κώδικες Πίνακα Ισοτι-

    μίας Χαμηλής Πυκνότητας (LDPC): Κατασκευή κωδίκων και υλοποιήσεις κωδικοποι-

    ητών σε υλικό) του Άχμεντ Μάχντι (Ahmed S. Mahdi), Διπλωματούχο Ηλεκτρο-

    λόγο Μηχανικό και Τεχνολογίας Η/Υ, παρουσιάστηκε δημοσίως στο τμήμα Ηλεκτρο-

    λόγων Μηχανικών και Τεχνολογίας Υπολογιστών του Πανεπιστημίου Πατρών στις

    05/06/2015, εξετάστηκε και εγκρίθηκε από την ακόλουθη Εξεταστική Επιτροπή:

    • Βασίλης Παλιουράς, Αναπληρωτής Καθηγητής, τμήμα Ηλεκτρολόγων Μηχανι-

    κών και Τεχνολογίας Υπολογιστών, Πανεπιστήμιο Πατρών.

    • Wonyong Sung, Professor, National Seoul University.

    • Αλέξιος Μπίρμπας, Καθηγητής, τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολο-

    γίας Υπολογιστών, Πανεπιστήμιο Πατρών.

    • Οδυσσέας Κουφοπαύλου, Καθηγητής, τμήμα Ηλεκτρολόγων Μηχανικών και Τε-

    χνολογίας Υπολογιστών, Πανεπιστήμιο Πατρών.

    • Κωνσταντίνος Μπερμπερίδης, Καθηγητής, τμήμα Μηχανικών Η/Υ και Πληρο-

    φορικής, Πανεπιστήμιο Πατρών.

    • Θάνος Στουραΐτης, Καθηγητής, τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολο-

    γίας Υπολογιστών, Πανεπιστήμιο Πατρών.

    • Μιχαήλ Μπίρμπας, Επίκουρος Καθηγητής, τμήμα Ηλεκτρολόγων Μηχανικών

    και Τεχνολογίας Υπολογιστών, Πανεπιστήμιο Πατρών.

    Πάτρα, 05/06/2015Ο Επιβλέπων Καθηγητής

    Βασίλης Παλιουράς

    Αναπληρωτής Καθηγητής

    Ο Προέδρος του Τμήματος

    Γαβριήλ Γιαννακόπουλος

    Καθηγητής

  • to my loving families in Palestine and Greece

  • Acknowledgements

    First and foremost, I am truly indebted and wish to express my gratitude to my

    supervisor Asocc. Professor Vassilis Paliouras for his inspiration, excellent guidance,

    continuing encouragement and unwavering confidence and support during every stage

    of this endeavour without which, it would not have been possible for me to complete

    this undertaking successfully. I also thank him for his insightful comments and

    suggestions which always helped me to improve my understanding. I express my

    deep gratitude to the members of the Advisory Committee, Prof. Wonyong Sung

    from the National Seoul University, and Prof. Alexis Birbas from the University of

    Patras, for their useful advices and support. Also I would like to express my heartfelt

    gratitude to my wife L. X. Angelou who kept me in focus and helped a lot on several

    occasions. Many thanks to my friends and colleagues at the VLSI Lab of Un. of

    Patras who have inspired me and particularly helped in the works of this thesis. My

    wholehearted gratitude to my father, my brothers and my friends for their constant

    love, encouragement, and support.

  • Contents

    Contents ix

    List of Figures xiii

    List of Tables xvii

    Nomenclature xviii

    1 Introduction 1

    1.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

    1.2 Thesis Contribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

    1.3 Thesis Outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

    2 Review of the state of the art 7

    2.1 Wireless communications and channel capacity . . . . . . . . . . . . . . 7

    2.2 Channel coding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

    2.2.1 Role of coding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

    2.2.2 Linear block codes . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

    2.3 Low Density Parity Check Codes . . . . . . . . . . . . . . . . . . . . . . . 11

    2.3.1 Tanner graph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

    2.3.2 The encoding process . . . . . . . . . . . . . . . . . . . . . . . . . . 14

    2.3.3 The decoding process . . . . . . . . . . . . . . . . . . . . . . . . . . 18

    2.3.4 Rate compatibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

    3 A Low Complexity - High Throughput QC-LDPC Encoder 23

    3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

    3.2 QC-LDPC encoding background . . . . . . . . . . . . . . . . . . . . . . . . 25

    3.2.1 LDPC encoding using PCM . . . . . . . . . . . . . . . . . . . . . . 25

    3.2.2 Code construction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

    3.3 Proposed encoder: memory compression scheme and hardware architecture 29

  • x Contents

    3.3.1 Serial encoder architecture . . . . . . . . . . . . . . . . . . . . . . . 31

    3.3.2 Shared serial encoder architecture . . . . . . . . . . . . . . . . . . 42

    3.3.3 Parallel encoder architecture . . . . . . . . . . . . . . . . . . . . . . 43

    3.4 Evaluation of the proposed encoders . . . . . . . . . . . . . . . . . . . . . 50

    3.4.1 Impact of LU decomposition of (HT2 )−1 . . . . . . . . . . . . . . . . 50

    3.4.2 Impact of multi-level memory compression . . . . . . . . . . . . . 52

    3.4.3 Impact of parallelism . . . . . . . . . . . . . . . . . . . . . . . . . . 54

    3.4.4 Joint consideration of LU decomposition and sub-expression shar-

    ing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

    3.5 Implementation Results and Comparisons to the state-of-the-art . . . . . 58

    4 Simplified QC-LDPC Codes for Low-Complexity Encoders 69

    4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

    4.2 Preliminaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

    4.3 LDPC Encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

    4.3.1 Structure of ML-QC-LDPC codes . . . . . . . . . . . . . . . . . . . 74

    4.4 The proposed matrix extension . . . . . . . . . . . . . . . . . . . . . . . . 78

    4.4.1 Structure of the inverse matrix . . . . . . . . . . . . . . . . . . . . 79

    4.4.2 Proposed Matrix Construction Method . . . . . . . . . . . . . . . . 81

    4.5 Complexity and BER performance . . . . . . . . . . . . . . . . . . . . . . 82

    5 On the Encoding Complexity of QC-LDPC Codes 87

    5.1 Preliminaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

    5.2 Review of Matrix inversion . . . . . . . . . . . . . . . . . . . . . . . . . . 90

    5.3 Proposed parity-check matrix construction . . . . . . . . . . . . . . . . . . 92

    5.3.1 Constraint-based base shift matrix H2bsh construction . . . . . . . 93

    5.3.2 Straightforward construction for polynomial-free inverted matrices 101

    5.4 Performance of the proposed construction method . . . . . . . . . . . . . 104

    6 Efficient Implementation of WiFi LDPC Encoder 113

    6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

    6.1.1 Common Sub-expression Sharing . . . . . . . . . . . . . . . . . . . 114

    6.2 A Single Encoding Procedure for Several LDPC Codes . . . . . . . . . . 115

    6.2.1 Common Encoder for Several LDPC codes . . . . . . . . . . . . . 115

    6.2.2 Illustrative encoding example of several LDPC codes . . . . . . . 118

    6.3 Common encoder components determination algorithm . . . . . . . . . . 123

    6.4 Encoder Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

  • Contents xi

    6.4.1 Encoder Interface Architecture . . . . . . . . . . . . . . . . . . . . 124

    6.4.2 Encoding Core Architecture . . . . . . . . . . . . . . . . . . . . . . 125

    6.5 Evaluation of the proposed architecture and comparison with prior art . 126

    7 Hardware-efficient rate-compatible QC-LDPC codes 131

    7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

    7.2 Review of Puncturing and Shortening . . . . . . . . . . . . . . . . . . . . 132

    7.3 Proposed Puncturing Scheme . . . . . . . . . . . . . . . . . . . . . . . . . 134

    7.3.1 MacKay Encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134

    7.3.2 Exploiting MacKay encoding to support rate adaptability . . . . . 136

    7.3.3 Proposed Matrix Puncturing Algorithm . . . . . . . . . . . . . . . 137

    7.3.4 Supported Code Rates . . . . . . . . . . . . . . . . . . . . . . . . . 137

    7.4 Proposed Extension to QC-LDPC Codes . . . . . . . . . . . . . . . . . . . 138

    7.4.1 QC-LDPC Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138

    7.4.2 Modified MacKay Encoding for QC-LDPC codes . . . . . . . . . . 139

    7.4.3 Matrix puncturing for QC-LDPC codes . . . . . . . . . . . . . . . 141

    7.5 Proposed Parity-Check Matrix Construction . . . . . . . . . . . . . . . . . 141

    7.6 Hardware Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

    7.6.1 Hardware Architecture of an RC Encoder . . . . . . . . . . . . . . 145

    7.6.2 Support of Rate Compatibility . . . . . . . . . . . . . . . . . . . . . 148

    7.6.3 Complexity of the RC Encoder . . . . . . . . . . . . . . . . . . . . 149

    7.7 Performance of Proposed System . . . . . . . . . . . . . . . . . . . . . . . 152

    7.7.1 BER performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

    7.7.2 Hardware Requirements of a RC QC-LDPC Encoder . . . . . . . 154

    7.7.3 Evaluation of the proposed RC-QC-LDPC encoder and the ob-

    tained BER performance . . . . . . . . . . . . . . . . . . . . . . . . 155

    8 Conclusions and future trends 159

    Bibliography 167

    Appendix A 181

  • List of Figures

    3.1 BER performance of codeA, (2016, 1512), and code1/2 (2016, 1008) using

    normalized min-sum decoder with normalization factor a = 0.75 and

    NOI = 10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

    3.2 Overview of the proposed hardware encoder architecture. . . . . . . . . . 30

    3.3 Compressed representation of HT1 . This organization allow better control

    than having different memories for each content, Index, Shifting factor

    or EOC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

    3.4 First-stage VMM Unit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

    3.5 Hierarchical compression of multi-level QC-LDPC codes. mbase is num-

    ber of rows of Hbase and EOCbase is the End-Of-Column flag. . . . . . . 34

    3.6 Architecture of index computation circuit for multi-level HT1 . . . . . . . 36

    3.7 The unique types of the nonzero sub-matrices in (HT2 )−1, L and U for z = 4. 38

    3.8 Compressed representation of matrix L. The occurrence of polynomial

    sub-matrices requires storing relative informations about them. A com-

    pressed representation of U has identical structure. . . . . . . . . . . . . 39

    3.9 VMM Unit of stages 2 and 3. The units which multiply the row vectors

    with L and U have identical structure. They differ only in the contents

    of the ROMs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

    3.10 Encoder architecture with one shared VMM unit. . . . . . . . . . . . . . 42

    3.11 A parallel implementation of the first step comprises identical instances

    of the same unit. Each instance accesses a ROM containing data re-

    quired by the particular instance only. Similarly for the second and

    third steps. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

    3.12 Organization of shared-parallel architecture. . . . . . . . . . . . . . . . . 45

    3.13 Shared parallel architecture. . . . . . . . . . . . . . . . . . . . . . . . . . . 48

    3.14 Full parallel core based on XOR logic. Inputs and outputs are stored in

    shift registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

  • xiv List of Figures

    3.15 Memory requirements vs. the code word length. Complexity remains

    linear even with the additive hardware required to implement encoders

    with larger extension factor z. . . . . . . . . . . . . . . . . . . . . . . . . 57

    3.16 BER performance of a (2304, 1728) recursively-constructed QC-LDPC

    code compared to the corresponding Wimax code using normalized min-

    sum decoder with normalization factor a = 0.75 and NOI = 10. . . . . . . 63

    4.1 Representation of Matrix H, where n is the number of H-columns. . . . 75

    4.2 Structure of H2bb and H−12bb

    of Wimax (′3/4A′) with 13 and 27 nonzero

    elements respectively. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

    4.3 BER performance of Wimax (′3/4A′) and various structurally randomly

    shifted PCMs. A zi

  • List of Figures xv

    5.8 BER performance of the modified (M) QC-LDPC codes vs. the original

    (O) corresponding codes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

    5.9 Decoding Average Number Of Iterations (ANOI) of the modified (M)

    QC-LDPC codes vs. the original (O) corresponding codes. . . . . . . . . 109

    5.10 BER performance of (2016, 1512) Wimax (′3/4A′) and various struc-

    turally randomly shifted ML-PCMs. A zi

  • xvi List of Figures

    7.4 Compressed representation of the contents of matrix C−1 which has x

    columns. T is the number of types τ. . . . . . . . . . . . . . . . . . . . . . 148

    7.5 Architecture of the proposed encoder. . . . . . . . . . . . . . . . . . . . . 149

    7.6 Encoding clock cycles as a function of code rate. . . . . . . . . . . . . . . 151

    7.7 RC Encoder energy consumption vs. the code rate. . . . . . . . . . . . . 152

    7.8 Decoding performance of puncturing schemes. . . . . . . . . . . . . . . . 153

    7.9 Decoding performance of Vellambi-Fekri puncturing scheme for a (2016, 1008)

    code constructed using PEG. . . . . . . . . . . . . . . . . . . . . . . . . . 154

    7.10 Constructing RC codes by extension of the parity-check matrix [109]. . 156

    7.11 BER performance of the RC codes of [109] with information block length

    of 1k . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

  • List of Tables

    3.1 Computation of p = s ·HT1·L ·U . . . . . . . . . . . . . . . . . . . . . . . . 30

    3.2 Shared VMM complexity . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

    3.3 Complexity comparison between various LDPC codes for H(504×2016) and

    code rate 0.75 based on z(2) = 4. An entry (a×b) means that multiplica-tion with the particular matrix requires a clock cycles, while (a×b) bitsof memory are required to store the matrix. Memory reduction shows

    the benefit of using L and U instead of (HT2 )−1. . . . . . . . . . . . . . . . 52

    3.4 Complexity comparison between serial and parallel architectures. . . . . 55

    3.5 Comparisons between the required XOR gates for multiplications by

    (HT2 )−1, L and U of codeA according to the adopted multiplication tech-

    nique. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

    3.6 Occupied slices and achieved frequency of serial architectures of various

    codewords lengths. z is the size of last extension step (second step). Cc

    is the number of required clock cycles, and IT and BT are the achieved

    Information and Block Throughput, respectively. . . . . . . . . . . . . . . 58

    3.7 Performance of fully parallel architecture. The computed throughput

    excludes loading and transmission time. . . . . . . . . . . . . . . . . . . . 59

    3.8 A view of the state of the art. . . . . . . . . . . . . . . . . . . . . . . . . . 59

    3.9 Throughput-to-Area Ratio (TAR) of the proposed architectures compared

    to the TAR of the corresponding architectures of prior art. . . . . . . . . 60

    4.1 Area complexity and critical path delay . . . . . . . . . . . . . . . . . . . . . . . 85

    5.1 Inverted matrix derivation using Gaussian Elimination. Executed oper-

    ations follow the pre-reported guidelines, and ri denotes the ith row of

    the corresponding matrix. . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

    5.2 Impact of the proposed method on area complexity. . . . . . . . . . . . . . 107

  • xviii List of Tables

    5.3 Impact of the proposed H2504×504 construction method for ML – QC-LDPC

    codes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

    6.1 WiFi encoding core hardware requirements. Shared (HT2

    )−1 indicates

    the XOR tree based on sub-expression sharing. . . . . . . . . . . . . . . . 128

    6.2 ASIC area requirements for two different CMOS technologies, and op-

    eration frequency for the proposed IEEE 802.11n/ac LDPC encoder. . . . 129

    7.1 FPGA Area Utilization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

  • Abstract

    B the key factor for development as a society, electronic communications have

    increasingly became more and more the center of our day to day life. Conse-

    quently, methods and techniques that ensure reliable, safe and fast transmission of

    information are becoming more and more essential. Digital Signal Processing, Infor-

    mation Theory and Error Correction Codes are the research areas that study how to

    achieve such a goal. Many error correction codes have been presented in the past

    but in recent years a class of codes has imposed itself as the best candidate to solve

    the problem, Low Density Parity Check (LDPC) Codes. LDPC codes are a class of

    codes that can achieve reliable communication while keeping the complexity of the

    encoder and decoder implementation controllable. The performances of LDPC codes

    have been shown to be very close to the theoretical limit that a code can reach in

    a given channel, the channel capacity. However, implementation of LDPC codes of

    very good performance and at the same time, very low complexity, remains a chal-

    lenge. There is always a need for smaller and faster communication devices with low

    power consumption and low cost, as a consequence, error correction modules must be

    improved to meet these specifications covering at the same time all required function-

    alities.

    This thesis investigates various aspects of LDPC code construction/implementation

    that can improve their performance and decrease their hardware implementation re-

    quirements. The main focus of the thesis is on code construction and encoder hard-

    ware implementation where either by adopting known code construction methods or by

    modifying them, known encoding algorithms or by modifying them, and by proposing

    new construction techniques, we always jointly consider the error-corrective capability

    of the constructed code and their complexity; since when real systems are designed,

    the choice of the code used cannot be based exclusively on the coding performances

    but also hardware requirements must be considered. Hence, it is important to de-

    velop codes that are capable of good performances without making the encoding and

    decoding processes intractable from an implementation point of view.

  • Περίληψη

    Τ τεχνολογικά επιτεύγματα του 20ου αιώνα συνέβαλαν σημαντικά στη βελτίω-

    ση της ποιότητας ζωής του ανθρώπου καθώς διευκόλυναν την εξυπηρέτηση

    των καθημερινών αναγκών του. ´Ενας από τους σημαντικότερους παράγοντες της

    καθημερινότητας είναι οι κάθε μορφής επικοινωνίες, οι οποίες έχουν παρουσιάσει

    εξαιρετική πρόοδο τις τελευταίες δεκαετίες. ´Ετσι λοιπόν, καθημερινά κάνουν την

    εμφάνιση τους ολοένα και νεότερες υπηρεσίες όσον αφορά τις επικοινωνίες, ενώ

    παράλληλα οι απαιτήσεις για γρήγορη, αδιάλειπτη και αξιόπιστη μετάδοση πλη-

    ροφορίας σε πραγματικό χρόνο συνεχίζουν να αυξάνονται. Αυτή η ϑεαματική και

    εξελισσόμενη πρόοδος στον τομέα των τηλεπικοινωνιών οφείλεται σε μεγάλο βαθ-

    μό στη συστηματική πρόοδο που παρουσιάζεται σχετικά με την απόδοση αλλά και

    στο χαμηλό κόστος των συσκευών και κυκλωμάτων που χρησιμοποιούνται. Αυτή

    η πρόοδος προκύπτει επίσης και από τις εξελίξεις που λαμβάνουν χώρα σε ϑεω-

    ρητικό επίπεδο. Ακρογωνιαίος λίθος των σύγχρονων τηλεπικοινωνιακών υποδομών

    ϑεωρείται η συνεργασία (συγχρονισμός) μεταξύ των διάφορων στοιχείων από τα ο-

    ποία αποτελείται ένα τηλεπικοινωνιακό σύστημα και των τεχνικών επεξεργασίας

    σημάτων. Η ανακάλυψη του τρανζίστορ κατέστησε πιο εύκολη την επεξεργασία της

    πληροφορίας, καθώς με τα Πολύ Μεγάλης Κλίμακας Ολοκληρωμένα (Very Large

    Scale Integrated, VLSI) κυκλώματα, η επεξεργασία των σημάτων γίνεται σχεδόν α-

    ποκλειστικά με ψηφιακό τρόπο.

    Στα ψηφιακά συστήματα, η πληροφορία κωδικοποιείται σε ακολουθίες από 0

    και 1, που αντιστοιχούν στις δύο δυνατές καταστάσεις των τρανζίστορ, on - off, τα

    οποία λειτουργούν ως διακόπτες. Το πλεονέκτημα αυτό έχει επιφέρει σημαντικές

    αλλαγές στον τρόπο επεξεργασίας της πληροφορίας. Η πληροφορία στη φύση πα-

  • xxii List of Tables

    ρουσιάζεται αποκλειατικά σε αναλογική μορφή, καθώς ο άνθρωπος μόνο αναλογικά

    σήματα μπορεί να αντιληφθεί. ´Ετσι λοιπόν, τα αναλογικά δεδομένα πρέπει να ψη-

    φιοποιηθούν, να μετατραπούν δηλαδή σε ακολουθίες από 0 και 1, ώστε ο δέκτης να

    μην είναι υποχρεωμένος να κάνει μία εκτίμηση των άπειρων τιμών ενός αναλογικού

    σήματος, αλλά απλά να πάρει μία απόφαση μεταξύ των δύο διακριτών τιμών για

    κάθε σήμα, 0 ή 1. Η διαδικασία αυτή καθιστά τα ψηφιακά σήματα πιο αξιόπιστα

    για τη μετάδοση πληροφορίας σε ένα ενθόρυβο περιβάλλον, καθώς μπορούν να ανι-

    χνεύονται σχεδόν τέλεια, όταν το επίπεδο του ϑορύβου δεν είναι ιδιαίτερα υψηλό,

    πράγμα που επιτρέπει την ανάκτηση των ψηφιακών στοιχείων, και μέσω των τεχνι-

    κών διόρθωσης λαθών είναι δυνατή η διόρθωση σφαλμάτων που συμβαίνουν κατά τη

    μετάδοση.

    Η ψηφιακή πληροφορία μπορεί να κωδικοποιηθεί με τέτοιο τρόπο ώστε να ει-

    σάγονται σε αυτήν επιπρόσθετα δυαδικά ψηφία που δε μεταφέρουν πληροφορία

    και ονομάζονται πλεονασμός (redundancy). Τα επιπρόσθετα ψηφία επιτρέπουν στον

    δέκτη να αναγνωρίσει τα σφάλματα που τυχόν προέκυψαν κατά τη μετάδοση. Η

    τεχνική αυτή ονομάζεται Κωδικοποίηση Ελέγχου Σφάλματος (Error Control Coding).

    ´Ενα ακόμα πλεονέκτημα της ψηφιακής επεξεργασίας της πληροφορίας είναι ο ευκο-

    λότερος σχεδιασμός των αλγορίθμων που απαιτούνται σε σχέση με τους αλγορίθμους

    επεξεργασίας αναλογικών σημάτων. Συνδυάζοντας λοιπόν τα παραπάνω, μπορο-

    ύμε να πούμε ότι το χαμηλό κόστος των VLSI, η εύκολη εφαρμογή των αλγορίθμων

    ψηφιακής επεξεργασίας σήματος σε αυτά, αλλά και η πληθώρα των τεχνικών ελέγ-

    χου και διόρθωσης σφάλματος, έχουν οδηγήσει σε πολλές πρακτικές εφαρμογές του

    ελέγχου λάθους. Αξιοσημείωτη επίδραση στην εξέλιξη και ανάπτυξη των τηλεπικοι-

    νωνιακών συστημάτων έχει διαδραματήσει η επιστήμη της Θεωρίας της Πληροφορίας

    της οποίας τα ϑεμέλια τοποθέτησε ο Claude Shannon το 1948 [121, 122]. Η ϑεωρία

    του C. Shannon αποδεικνύει ότι υπάρχει κατάλληλος κώδικας διόρθωσης λαθών για

    την αξιόπιστη μετάδοση της πληροφορίας μέσω ενός ενθόρυβου καναλιού, αρκεί ο

    ρυθμός μετάδοσης δεδομένων, rb ,να είναι μικρότερος από τη μέγιστη χωρητικότητα

    του διαύλου, C.

  • List of Tables xxiii

    Η ϑεωρία του Shannon έδωσε το έναυσμα για την αναζήτηση τεχνικών κωδι-

    κοποίησης/αποκωδικοποίησης, δηλαδή κωδίκων διόρθωσης σφαλμάτων (Error Cor-

    rection Codes), που να προσεγγίζουν τη μέγιστη χωρητικότητα του διαύλου. Μια

    πρώτη προσπάθεια προσέγγισης του ϑεωρητικού ορίου του Shannon έγινε στις αρ-

    χές της δεκαετίας του ´60 και συγκεκριμένα το 1963, από τον R. G. Gallager, ο

    οποίος παρουσίασε τους Κώδικες Χαμηλής Πυκνότητας Ελέγχου Ισοτιμίας (Low-

    Density Parity Check (LDPC) codes) [41]. Η κατηγορία αυτή κωδίκων βασίστηκε σε

    αλγορίθμους κωδικοποίησης/αποκωδικοποίησης των οποίων η πολυπλοκότητα ήταν

    ανώτερη των δυνατοτήτων των υπολογιστικών μηχανών της εποχής εκείνης και για

    το λόγο αυτό τέθηκαν στο περιθώριο μέχρι τις αρχές της δεκαετίας του ´90. Τότε

    έκαναν την εμφάνισή τους οι πρώτοι κώδικες των οποίων η απόδοση άγγιζε το όριο

    του Shannon [28].

    Το αντικείμενο και η συνεισφορά της διατριβής

    Η διατριβή επικεντρώνεται στην κατασκευή αποδοτικών κωδίκων LDPC και στη με-

    λέτη της κωδικοποίησης για κώδικες LDPC. Συγκεκριμένα, στην παρούσα διατριβή

    ακολουθείται μια σχεδιαστική μεθοδολογία βασισμένη στην από κοινού κατασκευή

    και υλοποίηση σε υλικό των κωδίκων LDPC και των κωδικοποιητών, αντίστοιχα.

    Στόχος είναι να αναπτυχθούν μεθοδολογίες κατασκευής κωδίκων LDPC με μεγάλη

    ικανότητα διόρθωσης λαθών, ιδιαίτερα σε χαμηλό BER , οι οποίοι να ικανοποιο-

    ύν προδιαγραφές συγκεκριμένων εφαρμογών [69], αλλά και να είναι κατάλληλοι για

    χρήση και σε άλλες εφαρμογές με παρόμοιες απαιτήσεις σε διορθωτική ικανότητα.

    Ταυτοχρόνως, υλοποιούνται σε υλικό διάφορες αρχιτεκτονικές κωδικοποιητών, οι

    οποίες επίσης ικανοποιούν ένα αρκετά μέγαλο εύρος από προδιαγραφές αρχιτεκτο-

    νικών, όπως υψηλό ρυθμό επεξεργασίας και μετάδοσης δεδομένων (Throughput rate),

    της τάξεως των πολλών Gbps, χαμηλή χρονική πολυπλοκότητα με μικρή επιφάνεια

    των κυκλωμάτων VLSI, χρήση μικρών μνημών και χαμηλή κατανάλωση ισχύος, αλλά

    και υποστήριξη κωδικοποίησης κωδίκων με πολλαπλούς ρυθμούς χρησιμοποιώντας

  • xxiv List of Tables

    είτε ένα μόνο κώδικα από τον οποίο παράγονται και άλλοι κώδικες με διαφορετικο-

    ύς ρυθμούς, είτε χρησιμοποιώντας πολλούς κώδικες, ο καθένας από τους οποίους

    υποστηρίζει ένα συγκεκριμένο ρυθμό.

    Στα πλαίσια της διατριβής, μελετούνται τα προβλήματα και η πολυπλοκότητα

    κωδικοποίησης κωδίκων LDPC μαζί με την διορθωτική ικανότητά τους. ´Εμφαση

    δίνεται στη κατασκευή και υλοποίηση των κωδίκων που ανήκουν στη κατηγορία

    των QC-LDPC [39]. Οι κώδικες αυτοί χρησιμοποιούνται σχεδόν σε όλα τα διεθνή

    πρωτόκολλα ψηφιακών τηλεπικοινωνιών IEEE Standards, όπως το δορυφορικό Dig-

    ital Video Broadcast (DVB) DVB-S2 [3], IEEE 802.3an (10GBASE-T) [5], IEEE 802.16

    (WiMAX) [4], IEEE 802.11n/ac (WiFi), αλλά και σε πολλές άλλες εφαρμογές.

    Για την κατασκευή αποδοτικών κωδίκων QC-LDPC με χαμηλό error-floor, υιοθε-

    τούνται οι κώδικες QC-LDPC με πολλαπλές επεκτάσεις Multi-level (ML) QC-LDPC

    codes [96]. Οι κώδικες αυτοί υπακούν στους ίδιους κανόνες κατασκευής κωδίκων

    με αυτούς των QC-LDPC με μία μόνο επέκταση· η κατασκευή ενός τέτοιου κώδικα

    ξεκινάει από ένα μικρό δυαδικό πίνακα βάσης με διαστάσεις mb × nb, με δεδομένη

    πυκνότητα (όριζεται από τον αριθμό των άσσων) και δεδομένη κατανομή αυτών

    των άσσων, δεδομένη μορφή του πίνακα και δεδομένο ρυθμό κώδικα. ´Ετσι, για

    την κατασκευή του επεκταμένου Πίνακα Ελέγχου Ισοτιμίας Hm×n, κάθε μηδέν του

    πίνακα βάσης αντικαθίσταται με ένα τετραγωνικό μηδενικό υποπίνακα, και κάθε

    άσσος αντικαθίσταται με ένα μοναδιαίο υποπίνακα (μη-μηδενικό) ολισθημένο με ένα

    τυχαίο συντελεστή ολίσθησης σ, όπου 0 6 σ < z, και z είναι το μέγεθος των τετρα-

    γωνικών μηδενικών και μη-μηδενικών υποπινάκων. Στην περίπτωση των κωδίκων

    ML-QC-LDPC, ο τελικός πίνακας H δημιουργείται επεκτείνοντας αναδρομικά τον

    ήδη επεκταμένο πίνακα χρησιμοποιώντας κατάλληλο z σε κάθε επέκταση, έτσι ώστε

    να επιτευχθεί ο επιθυμητός πίνακας H. Η διαδικασία αυτή περιγράφεται στη Κε-

    φάλαιο 3.2.2. Οι κώδικες ML-QC-LDPC που κατασκευάστηκαν δείχνουν να έχουν

    δυνατή διορθωτική ικανότητα με πολύ χαμηλό error-floor, πετυχαίνοντας BER της

    τάξης των 10−12 στα 4.5 db, για κωδική λέξη με μήκος 2016 και με ρυθμό κώδικα 3/4.

    Ο κώδικας αυτός, αλλά και οι υπόλοιποι κώδικες που κατασκευάστηκαν, έχουν για

  • List of Tables xxv

    πίνακες βάσης τους αντίστοιχους πίνακες βάσης του IEEE 802.16 (WiMAX), παρ´

    όλα αυτά, η διορθωτική ικανότητα των προτεινόμενων κωδίκων δείχνει να είναι αρ-

    κετά πιο δυνατή από τους αντίστοιχους κώδικες του IEEE 802.16 (WiMAX), όπως

    φαίνεται στο Σχήμα 3.1.

    Για την υλοποίηση του κωδικοποιητή, προτείνεται ο αλγόριθμος που περιγράφε-

    ται στη (3.3), όπου για τον υπολογισμό των ψηφίων ελέγχου p, ακολοθούνται δύο

    βήματα· το πρώτο εκτελεί πολλαπλασιασμό των ψηφίων πληροφορίας με τον πίνακα

    HT1 (υποπίνακα του H), παράγοντας ένα ενδιάμεσο διάνυσμα (p1), ενώ στο δεύτερο

    εκτελεί πολλαπλασιασμό του διανύσματος (p1) με τον πίνακα (HT2 )−1. Ο αλγόριθ-

    μος αυτός επιλέχθηκε για υλοποίηση και μελέτη καθώς είναι απλός στην υλοποίηση

    σε υλικό ακόμα και στη περίπτωση της παράλληλης αρχιτεκονικής, σε σχέση με

    τους άλλους αλγορίθμους κωδικοποίησης. Επίσης, η μελέτη του πίνακα (HT2 )−1 και

    η απλοποίηση των πράξεων με αυτόν τον πυκνό αντιστραμένο πίνακα, έτσι ώστε

    να μειωθεί η πυκνότητα του και να μειωθεί το αντίστοιχο απαιτούμενο υλικό, ϑα

    μπορούσαν να εφαρμοστούν αποδοτικά στην απλοποίηση των υπόλοιπων αλγορίθ-

    μων κωδικοποίησης και τις αντίστοιχες αρχιτεκτονικές που περιέχουν πράξεις με

    αντιστραμένους πίνακες.

    Οι τεχνικές που προτείνονται για την μείωση της υπολογιστικής πολυπλοκότητας

    του κωδικοποιητή περιγράφονται στο Κεφάλαιο 3, και συνοψίζονται ως εξής:

    * Αποθήκευση τις ϑέσεις των μη-μηδενικών υποπινάκων του πίνακα HT1 και των

    αντίστοιχων συντελεστών ολίσθησης. Στην περίπτωση των κωδίκων ML-QC-

    LDPC, αποθηκεύονται οι ϑέσεις των μη-μηδενικών στοιχείων του μικρού πίνακα

    βάσης του πίνακα HT1

    και τους αντίστοιχους συντελεστές ολίσθησης της κάθε

    επέκτασης, όπως φαίνεται στο Σχήμα 3.5.

    * Ο πολλαπλαιασμός με τον πίνακα HT1 εκτελείται χρησιμοποιώντας μια μονάδα

    κυκλικής ολίσθησης, η οποία εκτελεί την ολίσθηση σε ένα κύκλο ρολογιού

    μόνο, όπως φαίνεται στο Σχήμα 3.4.

    * Η αντιστροφή του πίνακα HT2 έχει ως αποτέλεσμα την αποδιαμόρφωση της

  • xxvi List of Tables

    δομής του αντιστραμένου πίνακα (HT2

    )−1 , αλλά και την αύξηση της πυκνότητάς

    του. Για τον δεύτερο βήμα του αλγορίθμου προτείνονται τα εξής:

    * Μείωση της πυκνότητάς του με την χρήση της παραγοντοποίησής του σε

    Κάτω (L) και Άνω (U) Τριγωνικούς Πίνακες (LU Decomposition).

    * Κατά τη μελέτη των πινάκων (HT2 )−1, L και U βρέθηκε ότι οι μη-μηδενικοί

    υποπίνακες είναι κυκλικοί υποπίνακες που περιέχουν ένα άσσο (μονα-

    διαίοι) ή παραπάνω (πολυώνυμα), ανά γραμμή (ή στήλη). Οι υποπίνακες

    αυτοί προκύπτουν από ένα μικρό σύνολο από κυκλικούς υποπίνακες που

    επαναλαμβάνονται με διαφορετικές ολισθήσεις. ´Ετσι, για την αποθήκευση

    των L και U, αποθηκεύεται η πρώτη γραμμή (ή στήλη) των υποπινάκων

    που ανήκουν στο μικρό συνόλο, και τους συντελεστές ολίσθησης που

    αντιστοιχούν στους υπόλοιπους υποπίνακες των L και U.

    * Ο πολλαπλασιαμός στο δεύτερο βήμα κωδικοποίησης χωρίζεται σε δύο

    στάδια· στο πρώτο πολλαπλασιάζεται το διάνυσμα (p1) με τον πίνακα L

    και στη συνέχεια, το αποτέλεσμα πολλαπλασιάζεται με τον πίνακα U.

    * Λόγω των πολυωνύμων, προτείνται κύκλωμα πολλαπλασιασμού διανύσμα-

    τος με πίνακα. Το κύκλωμα αυτό υλοποιείαι με πύλες AND και XOR, και

    ακολουθείται από μία μονάδα κυκλικής ολίσθησης. Η αποθήκευση των

    πινάκων L και U και οι πολλαπλασιασμοί μαζί τους περιφράφονται σχη-

    ματικά στο Σχήμα 3.9

    * Οι τρεις παραπάνω πολλαπλιασμοί μπορούν να υλοποιηθούν με ένα κύκλωμα

    όπου οι είσοδοί του ϑα ελέγχονται με πολυπλέκτες σύμφωνα με το εκτελε-

    σθέντα βήμα, όπως περιγράφεται στο Σχήμα 3.10.

    * Προτείνονται επίσης διάφορες παράλληλες αρχιτεκτονικές για αύξηση του ρυθ-

    μού επεξεργασίας, μία εκ των οποίων εκτελεί τους τρείς πολλαπλασισμούς

    σε ένα κύκλο ρολογιού χρησιμοποιώντας ένα δέντρο από πύλες XOR, Fully-

    Parallel, όπως φαίνεται στο Σχήμα 3.14. Ο αριθμός των XOR εξαρτάται από

  • List of Tables xxvii

    τον αριθμό των άσσων των εμπλεκομένων πινάκων.

    Στη συνέχεια της διατριβής, προτείνονται δύο τεχνικές μείωσης της πυκνότητας

    του πίνακα (HT2 )−1 αλλά και απλοποίησης της δομής του, με σκοπό την απλοποίηση

    της αρχιτεκτονικής του κωδικοποιητή και μείωση της πολυπλοκότητάς του. Οι τεχνι-

    κές αυτές εφαρμόζονται πάνω στον πίνακα βάσης που περιγράφει τους συντελεστές

    ολίσθησης του πίνακα H2 με σκοπό την εξάλειψη των πολυωνύμων που προκύπτουν

    κατά την αντιστροφή του πίνακα, έτσι ώστε οι υποπίνακες που ϑα προκύψουν να

    είναι όλοι μοναδιαίοι (ολισθημένοι) και ο αριθμός τους να είναι ίδιος με τον αριθμό

    των μη-μηδενικών στοιχείων του αντίστοιχου αντιστραμένου δυαδικού πίνακα βάσης

    του H2. Συγκεκριμένα:

    * Στην πρώτη τεχνική, δίνονται ίδιοι συντελεστές ολίσθησης σε όλα τα μη-

    μηδενικνά στοιχεία ανά γραμμή (ή στήλη) του πίνακα βάσης των συντελεστών

    ολίσθησης. Η τεχνική αυτή έχει ως αποτέλεσμα την απλοποίηση του πίνακα

    (HT2 )−1 και τη μείωση της πολυπλοκότητας πολλαπλασιασμού μαζί του, όπως

    περιγράφεται στο Κεφάλαιο 4. Μέχρι ένα σημείο, η διορθωτική ικανότητα του

    κώδικα που προκύπτει είναι ίδια με εκείνη του κώδικα, όπου οι συντελεστές

    ολίσθσης του ορίζονται εντελώς τυχαία, έχοντας ίδια καμπύλη του BER μέχρι

    το σημείο 10−8. Ωστόσο, παρουσιάζεται υποβάθμιση του BER κάτω από το

    σημείο 10−8 (περιοχή του error-floor) όπως φαίνεται στο Σχήμα 4.3. Η υποβάθ-

    μιση αυτή φαίνεται να οφείλεται στον περιορισμό της τυχαιότητας των τιμών

    που δίνονται στους συντελεστές ολίσθησης.

    * Στην δεύτερη τεχνική, γίνεται προσπάθεια αύξησης της τυχαίοτητας των συ-

    ντελεστών ολίσθησης του πίνακα H2, όπως περιγράφεται στο Κεφάλαιο 5.

    Προτείνεται μία μεθοδολογία κατασκευής του πίνακα βάσης που περιγράφει

    τους συντελεστές ολίσθησης· τα πολυώνυμα φαίνεται να προκύπτουν λόγω

    της πρόσθεσης μοναδιαίων ολισθημένων υποπινάκων, με διαφορετικούς συντε-

    λεστές ολίσθησης, κατά την αντιστροφή του πίνακα H2. Στη προτεινόμενη

    τεχνική, εντοπίζοται αυτοί οι συντελεστές που οδηγούν σε πολυώνυμα και

  • xxviii List of Tables

    τροποποιούνται κατάλληλα, έτσι ώστε κατά την αντιστροφή του H2, οποιοσ-

    δήποτε υποπίνακας που προκύπτει ϑα πρέπει να είναι είτε μηδενικός είτε

    μοναδιαίος (ολισθημένος). Για τη μελέτη της αντιστροφής του πίνακα και ε-

    ξάλλειψης των πολυωνύμων, χρησιμοποιείται η μέθοδος blockwise matrix in-

    version.

    * Η δεύτερη τεχνική παρέχει κώδικες με αρκετά βελτιωμένο BER στην περιοχή

    του error-floor σε σχέση με την πρώτη καθώς λίγοι είναι συντελεστές ολίσθησης

    που δεν ορίζονται εντελώς τυχαία, όπως φαίνεται στο Σχήμα 5.11.

    ´Ενα άλλο σημαντικό ϑέμα κωδικοποίησης που ερευνάται στη διατριβή είναι η

    κωδικοποίηση πολλαπλών κώδικων QC-LDPC με διαφορετικά ή ίδια μήκη λέξεων

    και ρυθμό κώδικα, όπως στην πείπτωση των κώδικων QC-LDPC του IEEE 802.11n/ac

    (WiFi), οι οποίοι αποτελούνται από 12 κώδικες (με τρία μήκη λέξεων, το καθένα

    με τέσσερις ρυθμούς κώδικα). Προτείνεται μία παράλληλη αρχιτεκτονική με δέντρο

    XOR, η οποία εκμεταλλεύεται την δομή των πινάκων βάσεων των 12 κωδίκων με

    σκοπό την υλοποίηση μιάς αρχιτεκτονικής χαμηλής πυκνότητας με ρυθμό δεδομένων

    της τάξεως των πολλών Gbps. Χρησιμοποιείται ο ίδιος αλγόριθμος με τα παραπάνω,

    πολλαπλασιασμός με HT1 και στη συνέχεια με (HT2 )−1. Η αρχικτεκτονική είναι βασι-

    σμένη στην λογική των κοινών εκφράσεων και οι πύλες XOR που χρησιμοποιούνται

    για τον πολλαπλασισμό με μία συγκεκεριμμένη στήλη ένος συγκεκριμμένου πίνακα,

    χρησιμοποιούνται για τον πολλαπλασιασμό με μία άλλη στήλη ιδίου ή διαφορετικού

    πίνακα. Η αρχιτεκτονική αυτή μπορεί να χρησιμοποιηθεί για την κωδικοποίηση κω-

    δίκων QC-LDPC άλλων πρωτοκόλλων που έχουν παρόμοια δομή. Η προτεινόμενη

    αυτή μέθοδος κωδικοποίησης περιγράφεται στο Κεφάλαιο 6.

    Επίσης, προτείνεται μία δεύτερη προσέγγιση για την κωδικοποίηση κωδίκων QC-

    LDPC με πολλαπλούς ρυθμούς κώδικα. Η μεθοδολογία που προτείνεται βασίζεται

    στον αλγόριθμο κωδικοποίησης του MacKay και την δομή του πίνακα ελέγχου ισοτι-

    μίας που προτείνει [88], τροποποιώντάς τους κατάλληλα για να υποστηρίζουν τους

    κώδικες QC-LDPC αλλά και για να υποστηρίζουν την παραγωγή και κωδικοποίηση

    κώδικες QC-LDPC με διαφορετικούς ρυθμούς κώδικα χρησιμοποιώντας ένα μόνο αρ-

  • List of Tables xxix

    χικό κώδικα, και όχι πολλούς κώδικες όπως στην περίπτωση του IEEE 802.11n/ac

    (WiFi). Η υποστήριξη των πολλαπλών ρυθμών κώδικα πραγματοποιείται με την α-

    φαίρεση ζεύγων από γραμμές και στήλες του πίνακα ελέγχου ισοτιμίας, διατηρώντας

    πάντα την αρχική δομή που προτείνει ο MacKay. Η μεθοδολογία αυτή εξασφαλίζει

    χαμηλή πολυπλοκότητα κωδικοποίησης με ανταγωνιστική ικανότητα διόρθωσης λα-

    ϑών του κώδικα σε σύγκριση με άλλες σχετικές μελέτες της βιβλιογραφίας, όπως

    περιγράφεται αναλυτικά στο Κεφάλαιο 7.

    Για την μέτρηση της πολυπλοκότητας των αρχιτεκτονικών που προτείνονται, αλ-

    λά και για τον χαρακτηρισμό των κωδίκων QC-LDPC που κατασκευάζονται, όπως

    περιγράφεται στη διατριβή, αναπτύχθηκε σε υλικό ένα μοντέλο ενός ψηφιακού τηλε-

    πικοινωνιακού συστήματος που αποτελείται από κωδικοποιητή, κανάλι Γκαουσια-

    νού ϑορύβου και τον αντίστοιχο αποκωδικοποιητή. Το σύστημα αυτό υλοποιήθηκε

    σε διάφορες συσκευές FPGA, και χρησιμοποιείται για εξομοιώσεις και μέτρηση την

    διορθωτική ικανότητα των κώδικων, ιδιαίτερα στη περιοχή του error-floor, σε μικρό

    χρονικό διάστημα.

  • Chapter 1

    Introduction

    1.1 Overview

    LDPC codes have been included in communication standards such us the 10GBASE-

    T (IEEE 802.3an-2006) for connections over twisted pair cables, DVB-S2 (EN

    302 307) for satellite transmission of digital television and in various wireless sce-

    narios: mobile communication WiMAX (IEEE 802.16e), WLANs (IEEE 802.11a) and

    others (IEEE 802.3an, IEEE 802.15.3c, IEEE 802.11n/ac). Furthermore, high-rate LDPC

    codes have been selected as the channel coding scheme for mmWave WPAN (IEEE

    802.15.3c).

    Quasi-Cyclic (QC) LDPC codes are the class considered in this research, their con-

    struction, performance evaluation and hardware implementation (in aspect of encoder)

    are all jointly examined. Although it has been shown that Multi-level or (recursively-

    constructed) QC-LDPC codes can be a strong candidate for real life application due

    to their good error-corrective capability and efficient decoder implementation, their

    encoder hardware implementation was neglected.

    This thesis introduces low-complexity high-throughput encoders for efficient codes,

    particularly for QC-LDPC codes with very low error floor. We investigate methods that

    reduce the high encoding complexity caused by multiplications by inverse matrices, an

    issue from which several encoding procedures suffer. The introduced techniques are

  • 2 Introduction

    shown to deliver codes that provide corrective capabilities that meet specifications of

    particular interest with very low cost.

    The main concept is that we jointly consider code construction, encoding method,

    and architecture to mitigate the BER-performance -– encoder complexity trade-off.

    First we start by reducing the complexity using a matrix decomposition to reduce

    the computational complexity attributed to multiplications by dense inverse matrices.

    Subsequently, we study the impact of shifting factors of the original matrix that affect

    both BER performance and the density of matrix inverse. In sequel, we introduce a

    high-speed area-efficient encoder architecture for several QC-LDPC codes, as the case

    of WiFi codes, fully exploiting parallelism. Motivated by the complexity of a Wifi

    encoder, we discuss rate-compatible QC-LDPC codes and introduce a technique to

    derive area-efficient encoders. The hardware implementation results are shown to be

    promising.

    1.2 Thesis Contribution

    This dissertation contributes to the area of digital signal processing and error correc-

    tion systems. Specifically, it introduces novel methods and techniques to the field of

    QC-LDPC code construction and low-complexity (low area complexity, low time com-

    plexity, low power consumption) encoder VLSI architectures, and innovative solutions

    that enable mobility quickly and cost-effectively.

    The primary objectives of this dissertation are:

    I- A construction of QC-LDPC codes of good error-correction capability, with im-

    proved gain at the error floor.

    II- Modifications of encoding algorithms to be suitable for QC-LDPC codes, based

    on LU matrix decomposition, common sub-expression sharing, combined with

    the support of rate-compatibility.

    III- A modification of QC-LDPC codes of certain international standards that re-

  • 1.3 Thesis Outline 3

    duces their encoder hardware requirements and computational complexity, while

    maintaining error-correction performance, based on the selection of certain QC-

    LDPC parameters through a proposed technique.

    IV- Efficient flexible encoding of LDPC codes of certain international standards..

    1.3 Thesis Outline

    The thesis is organized as follow.

    Chapter 2 reviews the state of the art regarding channel coding and forward error

    correction using Low-Density Parity-Check Codes. It introduces the prior encoding

    techniques and discusses the decoding process

    Chapter 3 introduces hardware architectures for encoding Quasi-Cyclic Low-Density

    Parity-Check (QC-LDPC) codes. The described encoders are based on appropriate

    factorization and subsequent compression of involved matrices by means of a novel

    technique, which exploits features of recursively-constructed QC-LDPC codes. The

    particular approach derives to linear encoding time complexity and requires a constant

    number of clock cycles for the computation of parity bits for all the constructed codes

    of various lengths that stem from a common base matrix. The proposed architectures

    are shown to efficiently support flexibility for the QC-LDPC code family.

    In Chapter 4, a new parity check matrix construction technique that simplifies the

    hardware encoders for Multi-Level - Quasi-Cyclic (ML-QC) LDPC codes is presented.

    The proposed construction method is based on semi-random - ML-QC extension and

    appropriately selects shifting factors to reduce the density of the inverted matrix used

    in several encoding algorithms. The construction method derives low-complexity en-

    coders with minimal degradation of error-correction performance, observable at low

    BER only. Furthermore a VLSI encoding architecture based on the suggested parity-

  • 4 Introduction

    check matrix (PCM) is also introduced. Experimental results show that the complex-

    ity of the proposed encoders depends on the density of the binary base matrix. A

    comparison with random QC codes reveals substantial complexity reduction without

    performance degradation for cases of practical interest. In fact a hardware complexity

    reduction by a factor of 7.5 is achieved, combined with the acceleration of the encoder,

    for certain cases. The construction method can be applied on both QC-LDPC codes

    and ML-QC LDPC codes.

    Chapter 5 discusses a generalized parity check matrix construction method that de-

    rives to same results with that ofChapter 4. The proposed construction method is

    based on a constraint selection of shifting factors, shown to reduce the density of

    an inverted matrix used in several encoding algorithms. The complexity of encoding

    schemes involving inverted matrices is largely affected by their density. Comparisons

    of the proposed parity check matrices with codes employed in international standards

    and with random QC-LDPC codes of comparable characteristics, demonstrate the low

    complexity of the corresponding hardware implementations and a BER performance

    equivalent to that of previous reported codes without increasing the decoding com-

    plexity.

    Chapter 6 describes an encoding method and a VLSI architecture suitable for en-

    coding of multiple different codes with different code rates and codeword lengths. The

    portions of the hardware resources that are configured to compute the parity bits for

    a particular one of the codes are commonly shared with portions of the hardware

    resources that are configured to compute the parity bits for another particular one of

    the codes. The encoding method, further comprising determining an arrangement for

    the hardware resources using common sub-expression solving techniques. The encoder

    perform padding in which bits are added to the message bits prior to computing the

    parity check bits. Also, it performs puncturing and repeating after computing the par-

    ity check bits. The padding, puncturing and repeating can be, for example, performed

    in accordance with IEEE 802.11n/ac standards. The encoder can be implemented in

  • 1.3 Thesis Outline 5

    hardware using field programmable gate arrays (FPGAs), application specific integrated

    circuits (ASICs) or other types of circuitry. Due to the implementation of multi-error

    correction codes using sub-expression sharing techniques and shared portions, area

    and time complexity of the particular encoder are shown to be very low compared to

    other related works, thus supporting multi-Gbps applications with very low area cost.

    Chapter 7 considers the hardware design of rate-compatible forward-error-correction

    systems based on QC-LDPC codes. Specifically, a modification of the MacKay encod-

    ing scheme is proposed that allows the support of QC codes. Furthermore a matrix

    puncturing scheme is introduced that exploits an also proposed parity-check matrix

    construction technique, and achieves code rate compatibility with low hardware com-

    plexity. By extending the linear-complexity MacKay encoding algorithm, the proposed

    encoding scheme derives a low-complexity hardware encoder architecture. Further-

    more the proposed matrix puncturing scheme avoids the noise introduced by con-

    ventional puncturing and therefore improves BER performance, especially for high

    puncturing rates, where only a few parity check symbols are transmitted. The impact

    on decoder hardware is also studied. A comparison with prior art in puncturing is

    offered, which shows superior performance of the proposed scheme in terms of coding

    gain with almost negligible hardware cost.

    Chapter 8 summarizes the thesis and presents the drown conclusions.

  • Chapter 2

    Review of the state of the art

    T fast-growing use of digital networks has led to the need for the design of new

    communication networks with higher capacity. The telecommunication industry

    is also changing, with a demand for a greater range of services, such as video confer-

    ences, or applications with multimedia content. The increased reliance on computer

    networking and the Internet has resulted in a wider demand for fast and efficient

    connectivity to be provided to any location, leading to a rise in the requirements for

    higher capacity and high reliability broadband wireless telecommunication systems.

    Broadband availability brings high performance connectivity to over a billion users

    worldwide, thus developing new wireless broadband standards and technologies that

    will rapidly span wireless coverage. Moreover, the huge uptake rate of mobile phone

    technology, WLAN (Wireless Local Area Network) and the exponential growth of

    Internet have resulted in an increased demand for new methods of obtaining high

    efficient wireless communication systems.

    2.1 Wireless communications and channel capacity

    Wireless communications supporting data exchange between people or devices is the

    communications frontier of the next century. Wireless networks will be used to con-

    nect together smartphones, tablets, laptop, and desktop computers anywhere – any

  • 8 Review of the state of the art

    time; this growing demand for wireless communication makes it important to de-

    termine the capacity limits of wireless channels. These capacity limits dictate the

    maximum data rates that can be achieved without any constraints on delay or com-

    plexity of the encoder and decoder, at the transmission and receiving sides, respec-

    tively. Channel capacity is the tightest upper bound on the rate of information that

    can be reliably transmitted over a communications channel. By the noisy-channel

    coding theorem, the channel capacity of a given channel is the limiting information

    rate (in units of information per unit time) that can be achieved with arbitrarily small

    error probability [121]. Information theory, based on the works of Claude E. Shannon,

    defines the notion of channel capacity and provides a mathematical model by which

    one can compute it [121, 122]. The key result states that the capacity of the channel,

    as defined above, is given by the maximum of the mutual information between the

    input and output of the channel, where the maximization is with respect to the input

    distribution. The Shannon theorem states that given a noisy channel with channel

    capacity C and information transmitted at a rate R, then if R < C there exist codes

    that allow the probability of error at the receiver to be made arbitrarily small. This

    means that, theoretically, it is possible to transmit information nearly without error

    at any rate below a limiting rate, C.

    2.2 Channel coding

    Simple schemes such as "send the message three times and use a best two out of three

    voting scheme if the copies differ" are inefficient error-correction methods, unable to

    asymptotically guarantee that a block of data can be communicated free of error.

    Advanced techniques such as Reed–Solomon codes and, more recently, Low-Density

    Parity-Check (LDPC) codes and turbo codes, come much closer to reaching the the-

    oretical Shannon limit, but at a cost of high computational complexity. Using these

    highly efficient codes, it is possible to reach very close to the Shannon limit. In fact,

    it has been shown that LDPC codes can reach within 0.0045 dB of the Shannon limit

  • 2.2 Channel coding 9

    (for very long block lengths) [28].

    In telecommunication, information theory, and coding theory, forward error cor-

    rection (FEC) or channel coding is a technique used for controlling errors in data

    transmission over unreliable or noisy communication channels. The central idea is

    the transmitter encodes its message in a redundant way by using an error-correcting

    code (ECC). The redundancy allows the receiver to detect a limited number of errors

    that may occur anywhere in the message, and often to correct these errors without

    retransmission. FEC gives the receiver the ability to correct errors without needing a

    reverse channel to request retransmission of data, but at the cost of a fixed, higher

    forward channel bandwidth. FEC is therefore applied in situations where retrans-

    missions are costly or impossible, such as one-way communication links and when

    transmitting to multiple receivers in multicast. FEC information is usually added

    to mass storage devices to enable recovery of corrupted data, and is widely used in

    modems.

    2.2.1 Role of coding

    The main reason to apply error correction coding in a telecommunication system is to

    reduce the probability of bit error. A coding scheme can be evaluated in many different

    ways from purely mathematical [139] to more implementation-oriented methods [114].

    Throughout this thesis the codes are evaluated using a performance prospective and

    hardware complexity. The performance of the code is measured as the probability of

    the decoder to select for the wrong codeword at a given level of noise. The level of

    noise is quantified by the signal-to-noise-ratio (SNR) often expressed in decibel (dB).

    The probability of having an error after the decision can be defined by the bit error

    rate (BER). The SNR is the ratio of the energy per bit generated by the source Eb

    over the noise spectral density N0. The bit error rate is the ratio of the number of

    erroneous decoded bits to the total number of bits transmitted. The block error rate is

    the ratio of the number of decoded messages that contain errors over the total number

    of codewords transmitted.

  • 10 Review of the state of the art

    For many codes, the error correction capability of a code does not come for free.

    This performance enhancement is paid for by increased complexity and, for block

    codes, convolutional codes, turbo codes, and LDPC, by either a decreased data rate

    or increase in signal bandwidth.

    2.2.2 Linear block codes

    Block coding is a type of error correction coding in which the digital data to be

    transmitted is broken into messages of fixed size. Prior to transmission, each message

    is encoded into a codeword (also referred to as a "block") by an encoder. Redun-

    dancy, referred to as parity data, is inserted during the encoding process so that the

    codewords are made larger than the messages. Each codeword includes both message

    bits and parity bits. Assume that the codewords each consist of n bits. Only certain

    patterns of n bits are valid codewords; the remaining patterns are invalid. The code-

    words are then transmitted, which may cause the codewords to become corrupted.

    Upon reception, a decoder attempts to infer the original messages from the received,

    and possibly corrupted, codewords.

    A binary block code generates a block of n coded bits from k information bits.

    We call this an (n, k) binary block code. The coded bits are also called codeword

    symbols. The rate of the code is Rc = k/n information bits per codeword symbol. If

    we assume that codeword symbols are transmitted across the channel at a rate of

    Rs symbols/second, then the information rate associated with an (n, k) block code is

    Rb = RcRs =knRs bits/second. Thus we see that block coding reduces the data rate

    compared to what we obtain with uncoded modulation by the code rate Rc. A block

    code is called a linear code when the mapping of the k information bits to the n

    codeword symbols is a linear mapping.

  • 2.3 Low Density Parity Check Codes 11

    2.3 Low Density Parity Check Codes

    LDPC codes were originally invented by Gallager in his 1961 Masters thesis [41].

    However, these codes were largely ignored until the introduction of turbo codes.

    Subsequent to the landmark paper on turbo codes in 1993 [13], LDPC codes were

    reinvented by Mackay and Neil [87] and by Wiberg [136] in 1996. Shortly thereafter it

    was recognized that these new code designs were actually reinventions of Gallager’s

    original work, and subsequently much work has been devoted to finding the capacity

    limits, encoder and decoder designs, and practical implementation of LDPC codes for

    different channels.

    LDPC codes are linear block codes with a particular structure for the parity check

    matrix H. Specifically, a (dv, dc) regular binary LDPC code has a parity check matrix

    H with dv ones in each column and dc ones in each row, where dv and dc are chosen

    as part of the codeword design and are small relative to the codeword length. Since

    the fraction of nonzero entries in H is small, the parity check matrix for the code has

    a low density, and hence the name low-density-parity-check codes.

    Provided that the codeword length is long, LDPC codes achieve performance close

    to the Shannon limit, in some cases surpassing the performance of parallel or serially

    concatenated codes [118]. The fundamental practical difference between turbo codes

    and LDPC codes is that turbo codes tend to have low encoding complexity (linear in

    blocklength) but high decoding complexity (due to their iterative nature and message

    passing). In contrast, LDPC codes tend to have relatively high encoding complex-

    ity (quadratic in blocklength) but low decoding complexity. In particular, like turbo

    codes, LDPC decoding uses iterative techniques, which are related to Pearl’s belief

    propagation commonly used by the artificial intelligence community [95]. However,

    the belief propagation corresponding to LDPC decoding is simpler than for turbo de-

    coding, thereby making the LDPC iterative decoder much simpler [76, 95]. In addition,

    the belief propagation decoding is parallelizable and can be closely approximated with

    very low complexity decoders [116]. Finally, a decoding algorithm for LDPC codes can

    detect when a correct codeword has been reached, which is not necessarily the case

  • 12 Review of the state of the art

    for turbo codes. Additional work in the area of LDPC codes includes finding capacity

    limits for these codes [116], determining effective code designs [28] and efficient en-

    coding and decoding algorithms [38, 116], and expanding the code designs to include

    nonregular [118] and nonbinary LDPC codes [30].

    Construction of efficient LDPC codes, in terms of error-correction capability and

    hardware implementation, will always be a hot research topic since they are employed

    in many telecommunication applications. There are many construction parameter such

    as the codeword length, degree distribution, the girth and the minimum distance of

    the code, and trapping and stopping sets [127] [79] [15] [100]. Furthermore, detailed

    studies on construction of low-density parity-check convolutional (LDPCC)codes have

    been proposed in [63] [102] aiming to improve the error-correction capability of those

    codes, an they have been shown to be capable of achieving capacity-approaching

    performance with iterative message-passing decoding [115].

    Protograph LDPC codes are shown to provide efficient BER performance [109]. A

    protograph contains a small number of variable and check nodes that are intercon-

    nected via edges where parallel edges are allowed in a protograph. A protograph code

    is an LDPC code built from the protograph via lifting, which is the process of copying

    the protograph repeatedly and permuting the edges corresponding the same node type

    across different copies to interconnect them [33]. Mitchell et al. have proposed an

    analytical method of constructing QC-LDPC codes based on pre-lifted protographs,

    investigating various parameter directly relevant to the decoding performance of the

    constructed codes, such as minimal distance and girth [101]. One of the successful

    examples of protographs is the AR4JA codes of [33], providing efficient BER perfor-

    mance in the waterfall and the error-floor regions, and the structure of these codes

    consists a strong base for constructing very BER efficient codes [130] [109].

    The introduction of FEC schemes increases the complexity of the transmitter and

    receiver; in particular the transmitting module has to determine the redundant bits

    (parity bits) applying algebraic operations over matrices of different sizes, while the

    receiving equipment has to take care of correcting the possible errors, tasks that can be

  • 2.3 Low Density Parity Check Codes 13

    computational demanding. For this reason, when real-world systems are designed, the

    choice of the code used cannot be based exclusively on the coding performance but also

    hardware requirements must be considered. Hence, it is important to develop codes

    that are capable of good performances without making the encoding and decoding

    processes intractable from an implementation point of view. For this reasons a class

    of LDPC codes called Quasi-Cyclic (QC) LDPC codes is considered. QC-LDPC codes

    have been proposed to reduce the implementation complexity, while obtaining a similar

    performance [16, 39]. The QC-LDPC codes consist of concatenated circulant sub-

    matrices. Each circulant sub-matrix is a square matrix for which every row is the

    cyclic shift of the previous row, and the first row is obtained by the cyclic shift of

    the last row. In this way, every column of each circulant sub-matrix is automatically

    the cyclic shift of the previous column, and the first column is obtained by the cyclic

    shift of the last column. QC-LDPC codes are codes that approach optimal decoding

    performances with an acceptable decoding computational cost. However, there are

    physical limits preventing the implementation of large block size LDPC codes. These

    limits are associated with the interconnects of the various modules of the decoder

    and the large memory that the algorithm requires. Furthermore, LDPC/QC-LDPC

    codes have been included in communication standards such us the 10GBASE-T (IEEE

    802.3an-2006) [5] for connections over twisted pair cables, DVB-S2 (EN 302 307) [3]

    for satellite transmission of digital television, WiMAX (IEEE 802.16e) [4], WLAN’s

    (IEEE 802.11a) [2]. Furthermore, high-rate LDPC codes have been selected as the

    channel coding scheme for mmWave WPAN (IEEE 802.15.3c) [6], and recently for the

    60 GHz gigbit link [69]

    2.3.1 Tanner graph

    LDPC codes can be represented by a bipartite graph, called the Tanner graph [127]. It

    provides a complete representation of the code and an aid in the description of the

    decoding algorithm. A bipartite graph is a graph whose nodes can be separated in

    two types, called check and variables nodes in the case of LDPC codes. The edges

  • 14 Review of the state of the art

    of the graph connect only two nodes of different types. The bipartite graph for an

    LDPC code can be derived from the H matrix by generating as many variable nodes

    vi as the columns of the matrix and as many check nodes c j as the rows of the

    matrix. A variable node vi is connected to a check node c j if and only if there is a

    nonzero element in h ji. The Tanner graph also offers a base to study various aspects

    that influence the performances of the LDPC codes. A cycle in Tanner graph occurs

    when a path that starts from a node ni ends at the same node ni, while the girth of

    the graph is the length of the smallest cycle in that graph. The girth is considered

    one of the important parameters of an LDPC code [86], it is commonly accepted that

    the presence of short cycles in the graph is one of the main parameters affecting the

    coding gain achievable by the LDPC code [61, 70, 74, 98, 134, 135].

    2.3.2 The encoding process

    The process of transmitting digital data can introduce errors into the data. As a result,

    the received data can be different from the transmitted data. Such errors are typically

    caused by noise that is present in the transmission channel. The amount of errors is

    generally related to the transmission signal strength in relation to the amount of noise

    present. Error correction coding is a technique by which redundancy is inserted into

    the data prior to transmission. Upon reception, this redundancy is used in an attempt

    to correct errors that were introduced during the transmission process. A generator

    matrix can be used during the encoding process to encode the messages into valid

    codewords. Upon reception, a parity check matrix can be used during the decoding

    process to generate an error vector, where the error vector indicates the presence of

    errors in the received codeword [104, 105].

    The generator matrix for LDPC codes is generally not sparse. This means that

    the encoding process for an LDPC code can have high complexity. In an effort to

    reduce encoding complexity, some encoding schemes use the parity check matrix to

    compute the codewords during the encoding process. This is possible because the

    parity check matrix is related to the generator matrix in that the parity check matrix

  • 2.3 Low Density Parity Check Codes 15

    for each particular LDPC code can be derived from the generator matrix for that

    code. The parity check matrix can be partitioned into sub-matrices. The parity bits for

    each codeword can be computed from the message bits using the sub-matrices [75, 117].

    Some LDPC encoders employ forward/backward substitution [51, 123]. This approach is

    used to avoid inversion of the parity check sub-matrix in an effort to reduce complexity

    of the encoding computations. However, parallelization of the backward substitution

    procedure introduces high complexity. Also, to implement the backward substitution

    procedure for LDPC codes having different of block lengths and code rates, at least

    the non-zero elements for multiple sub-matrices need to be stored (i.e. one per code

    length, per code rate), which requires large memories. In addition to the storage

    requirements, implementation of these procedures tends to require complex hardware.

    Many hardware architectures have been suggested for the implementation of flexi-

    ble high-speed LDPC decoders [52, 78, 94, 106]. By imposing certain restrictions in the

    structure of the parity check matrix (PCM), further hardware simplifications become

    possible. Following this approach, a special class of LDPC codes, called QC-LDPC

    codes, allows for efficient hardware implementations of encoding and decoding algo-

    rithms by exploiting the structure of the corresponding PCM, which is composed of

    circulant permutation matrices [24][126].

    Dense-matrix operations substantially increase the complexity of an LDPC encoder.

    Several approaches have been studied in the literature to reduce the particular com-

    plexity. Several authors have proposed encoders that directly multiply the information

    word with the generator matrix, or with the part of it which refers to the parity bits,

    in the case of systematic codes [82, 141]. Li et al. describe two techniques for the

    derivation of the generator matrix of a circulant PCM using either a single-step or a

    two-step procedure leading to single-step and two-step encoder architectures respec-

    tively [82]. The derivation of the generator matrix requires operations with the inverse

    of a submatrix of the PCM [82]. While submatrices of an LDPC PCM are necessar-

    ily sparse, their inverses can be dense. Dense-matrix operations can be avoided by

    exploiting certain properties that stem from a particular PCM structure. For example

  • 16 Review of the state of the art

    Kopparthi and Gruenbacher avoid the computation of a generator matrix by solving

    a suitably defined linear system of equations to compute the parity bits by resorting

    to forward substitution [75]. Their approach exploits the doubly diagonal structure of

    the IEEE 802.16e PCM submatrix which corresponds to the parity bits.

    Prominent among the encoder architectures are those based on the Richardson-

    Urbanke (RU) algorithm [117]. Richardson and Urbanke bring an LDPC PCM into an

    Almost Lower Triangular (ALT) format by executing row and column permutations

    thus maintaining the sparsity of the PCM. The derived ALT PCM is partitioned into

    six submatrices that participate in a series of operations to derive the parity bits. The

    complexity of the method is O(n+g2), where g is shown to be bounded by√

    n and is

    small for several good codes. Lee et al. [77] implement the RU algorithm in an FPGA.

    Multiplication by a small dense matrix is replaced by the solution of a system using

    forward substitution. An issue with the RU technique is that column permutations

    may be needed to guarantee the non-singularity of a particular submatrix whose

    inverse is required in the computation, thus resulting in a necessarily non-systematic

    encoder. To address this issue, Cohen and Parhi propose a hybrid encoder, which

    uses operations with the generator matrix to derive a subset of the parity bits, while

    the remainder of the parity bits are computed using the RU method [29]. Fewer et

    al. also implement the RU algorithm with partly parallel architecture and special

    matrix construction to increase encoding throughput [36]. Sun et al. exploit the dual

    diagonal structure of H2 submatrix of IEEE 802.11n standard to determine the parity

    check symbols using forward substitution [124].

    Forward or backward substitution to solve a system and therefore avoid a corre-

    sponding dense matrix operation is commonly used in several encoding techniques,

    including the RU method and the direct generator-based techniques. Specifically, mul-

    tiplication by inverses of sparse matrices, which may be dense, can by avoided by

    performing suitable forward/backward substitution, in the case that the corresponding

    multipliers are upper/lower triangular. He et al. exploit a special lower triangular

    structure of the PCM to define an architecture that performs a two-step encoding pro-

  • 2.3 Low Density Parity Check Codes 17

    cedure, based on the hardwired implementation of multiplication by small matrices

    and of forward substitution [51]. Furthermore, most encoder architectures can ben-

    efit from a PCM composed of circulants. In addition high throughput rates can be

    achieved by utilizing several instances of the encoders in parallel.

    Recently, a different approach to encoder complexity reduction has attracted some

    interest, namely the use of LU decomposition of the dense matrices into matrices of

    lower density. Several authors have investigated this approach, focusing mostly on

    the codes employed in China Multimedia Mobile Broadcasting (CMMB) [56, 123, 133].

    Such codes are highly structured and circulant but not QC. Also the application of

    LU decomposition has been studied for Irregular Repeat-Accumulate (IRA) codes [68].

    Research efforts toward this direction target the derivation of sparse L and U matri-

    ces [56].

    Neal introduced an encoding method with linear complexity, where LU decompo-

    sition is exploited to avoid the computational cost of multiplication by a dense inverse

    matrix [108]. This method is followed by Su et al. where LU decomposition is applied

    on H2 and forward/backward substitution is used to compute the parity bits [123].

    Their design takes 20% of the memory available in an Altera Stratix EP1S80B596C

    device codeword with length 1536 and code rate 1/2, achieving throughput of 31 Mbps.

    They use a four-step procedure to compute the parity check vector which means that

    it would be difficult to parallelize their encoder architecture using their index calcu-

    lator. Kaji studied the LU decomposition of H2 of PCMs of non-QC LDPC codes in

    comparison with the RU algorithm [68]. He has shown that LU decomposition of H2

    leads to less encoding complexity than the RU algorithm; however, his analysis does

    not deal with the structure of L−1 and U−1 in the case of QC-LDPC codes, where they

    could have less nonzero sub-matrices than (HT2 )−1. As these sub-matrices themselves

    could have different structure and density with regar