We use cookies to distinguish you from other users and to provide you with a better experience on our websites. Close this message to accept cookies or find out how to manage your cookie settings.
To save content items to your account,
please confirm that you agree to abide by our usage policies.
If this is the first time you use this feature, you will be asked to authorise Cambridge Core to connect with your account.
Find out more about saving content to .
To save content items to your Kindle, first ensure [email protected]
is added to your Approved Personal Document E-mail List under your Personal Document Settings
on the Manage Your Content and Devices page of your Amazon account. Then enter the ‘name’ part
of your Kindle email address below.
Find out more about saving to your Kindle.
Note you can select to save to either the @free.kindle.com or @kindle.com variations.
‘@free.kindle.com’ emails are free but can only be saved to your device when it is connected to wi-fi.
‘@kindle.com’ emails can be delivered even when you are not connected to wi-fi, but note that service fees apply.
Using easy-to-follow mathematics, this textbook provides comprehensive coverage of block codes and techniques for reliable communications and data storage. It covers major code designs and constructions from geometric, algebraic, and graph-theoretic points of view, decoding algorithms, error control additive white Gaussian noise (AWGN) and erasure, and dataless recovery. It simplifies a highly mathematical subject to a level that can be understood and applied with a minimum background in mathematics, provides step-by-step explanation of all covered topics, both fundamental and advanced, and includes plenty of practical illustrative examples to assist understanding. Numerous homework problems are included to strengthen student comprehension of new and abstract concepts, and a solutions manual is available online for instructors. Modern developments, including polar codes, are also covered. An essential textbook for senior undergraduates and graduates taking introductory coding courses, students taking advanced full-year graduate coding courses, and professionals working on coding for communications and data storage.
In general, LDPC codes are classified into two categories based on their construction methods: algebraic methods and graphical methods. LDPC codes constructed based on finite geometries and finite fields are classified as algebraic LDPC codes, such as the cyclic and quasi-cyclic LDPC codes presented into .
Cyclic codes form an important subclass of linear block codes. These codes are attractive for two reasons: first, encoding and syndrome computation can be implemented easily by using simple shift-registers with linear feedback connections, namely, linear feedback shift-registers (LFSRs); and second, because they have considerable inherent algebraic structure, it is possible to devise various practical algorithms for decoding them. Cyclic codes have been widely used in communication and storage systems for error control. They are particularly efficient for error detection.
Finite fields have been applied to construct error-correcting codes for reliable information transmission and data storage [–] since the late 1950s. These codes are commonly called algebraic codes, which have nice structures and large minimum distances. The most well-known classical algebraic codes are BCH and RS codes presented inandwhich can be decoded with the elegant hard-decision Berlekamp–Massey iterative algorithm.
Polar codes, discovered by Arikan [] in 2009, form a class of codes which provably achieve the capacity for a wide range of channels. Construction, encoding, and decoding of these codes are based on the phenomenon of channel polarization. In this chapter, we introduce polar codes from an algebraic point of view.
Apart from the construction of BCH, RS, finite-geometry, and RM codes based on finite fields and finite geometries, there are other methods (or techniques) for constructing long powerful codes from good short codes.
Besides Euclidean and projective geometries, there are other types of finite geometries. One such type is known as partial geometries. Akin to Euclidean and projective geometries, partial geometries can be used to construct LDPC codes whose Tanner graphs have similar structural properties as those of Euclidean- and projective-geometry LDPC codes.
Bose–Chaudhuri–Hocquenghem (BCH) codes form a large class of cyclic codes for correcting multiple random errors. This class of codes was first discovered by Hocquenghem in 1959 [] and independently by Bose and Chaudhuri in 1960 []. The first algorithm for decoding binary BCH codes was devised by Peterson in 1960 [].
Reed–Muller (RM) codes form a class of multiple error-correcting codes. These codes were first discovered by Muller in 1954 []. In the same year, Reed devised a simple method for decoding these codes [].
As presented in , there are two categories of error-correcting codes, block codes and convolutional codes. This chapter gives an introduction to linear block codes, a subclass of block codes. The coverage of this chapter includes: (1) fundamental concepts and structures of linear block codes; (2) generation of these codes in terms of their generator and parity-check matrices; (3) their error detection and correction capabilities; and (4) general decoding of these codes. We will begin the introduction of linear block codes with symbols from the binary field GF(2). Linear block codes over nonbinary fields, which have similar structures and properties to those over the binary field GF(2), will be briefly discussed at the end of this chapter.