main-content

## Über dieses Buch

This book provides a comprehensive explanation of forward error correction, which is a vital part of communication systems. The book is written in such a way to make the subject easy and understandable for the reader. The book starts with a review of linear algebra to provide a basis for the text. The author then goes on to cover linear block codes, syndrome error correction, cyclic codes, Galois fields, BCH codes, Reed Solomon codes, and convolutional codes. Examples are provided throughout the text.

## Inhaltsverzeichnis

### Chapter 1. Review of Linear Algebra

Abstract
In this chapter, we will review the fundamental concepts of linear algebra. We will give the definitions of group, field, vector space, basis, dimension, vector subspace, etc. Linear block codes are vector subspaces, and to understand the concept of subspaces, you need to know groups and fields. For this reason, to understand the concept of channel code construction, it is very critical to have sufficient knowledge of linear algebra. Especially, the topic of vector spaces should be comprehended very well for the understanding of linear block codes. Nonlinear codes are also available in the literature; however, they are not used in practical systems although they exist. Literature focuses on the design of linear codes rather than nonlinear codes. In this book, we will mainly study binary linear block codes. For this reason, our focus in this chapter will be on the vector spaces constructed with the elements of binary field.
Orhan Gazi

### Chapter 2. Linear Block Codes

Abstract
In this chapter, we will explain the construction of linear block codes. Since linear block codes are vector subspaces, we advise to the reader to study Chap. 1 before proceeding to Chap. 2. Without the knowledge of basic concepts of linear algebra, such as groups, fields, vector spaces, and subspaces, it is difficult to comprehend the philosophy behind the concept of linear block codes. We advise the reader to study the section related to the philosophy of channel encoding before studying the sections related to the encoding and decoding operations. We explain the purpose of channel encoding in Sect. 2.5. After introducing the construction of linear block codes, we explain the encoding operation and give some fundamental definitions such as minimum distance, generator matrix, and parity check matrix. In sequel, we explain equivalent codes, error detection and correction capability of linear block codes, and Hamming spheres.
Orhan Gazi

### Chapter 3. Syndrome Decoding and Some Important Linear Block Codes

Abstract
In this chapter, we will first explain the decoding of linear block codes using syndrome tables, then provide information about some well-known preliminary binary linear block codes. Syndrome decoding is a preliminary decoding approach; most of the modern decoding techniques do not employ syndrome decoding. However, to comprehend the decoding logic of linear block codes, it is essential to understand the syndrome decoding operation. For this purpose, we first explain the construction of standard arrays and decoding operation using standard arrays. Syndromes are nothing but concise representation of standard arrays. After standard arrays, we explain the syndrome decoding concept. Following the explanation of the syndrome decoding, we introduce some linear block codes well-known in the literature, such as Golay code, Reed-Muller codes, and Hamming codes, and discuss the error correction capability and decoding operations of these linear block codes. Non-systematic forms of the generator and parity check matrices of the Hamming codes are also explained.
Orhan Gazi

### Chapter 4. Cyclic Codes

Abstract
Cyclic codes are special type of linear block codes such that any cyclic shift of a code-word results in another code-word, and this property is called the cyclic property. Cyclic codes are easier to manipulate considering other linear block codes, and they are more preferred in practical communication systems considering the other linear block codes. Polynomials can be utilized for the characterization of cyclic codes, and this enables the cyclic codes to be analyzed analytically, and they can be constructed in an algebraic manner. For the design of a cyclic code, it is essential to determine the generator polynomial of the cyclic code. In this chapter, we will explain the construction of cyclic codes along with their encoding and decoding operations. For this purpose, we give information about determination of the generator polynomials of the cyclic codes and explain the systematic and non-systematic encoding of cyclic codes. In sequel, matrix representations of the generator and parity check polynomials of the cyclic codes are described.
Orhan Gazi

### Chapter 5. Galois Fields

Abstract
The algebraic code design is achieved using the Galois field. BCH and Reed-Solomon block codes, which are cyclic linear block codes, are designed in an algebraic manner, and their constructions are based on Galois fields. For this reason, it is very important to fully comprehend the topic of Galois fields before proceeding with the construction of algebraic codes, i.e., the codes designed in an algebraic manner. In this chapter, we first provide information about the finite fields and extension of finite fields, and for this purpose, we give the definitions of irreducible polynomials and primitive polynomials which are used for the construction of extended fields. In sequel, we provide information about conjugate classes employed for the construction of minimal polynomials which are utilized for the determination of the generator polynomials of the BCH and Reed-Solomon codes, and these codes are used in many practical communication and data storage devices.
Orhan Gazi

### Chapter 6. BCH Codes

Abstract
In this chapter, we will give information about Bose-Chaudhuri-Hocquenghem, i.e., BCH, and Reed-Solomon codes. These codes fall into the category of linear cyclic codes. BCH codes are binary cyclic codes, and on the other hand, Reed-Solomon codes are nonbinary cyclic codes. The generator polynomials of these cyclic codes are constructed using the minimal polynomials of the extended finite fields. For this reason, it is vital to have fundamental knowledge of extended finite fields to comprehend the topics presented. In this chapter, we first explain the construction of the generator polynomials of the BCH codes using minimal polynomials of the extended fields. Using the generator polynomials, generator and parity check matrices of the BCH codes can be obtained. Next, the syndrome decoding operation of the BCH codes using error location polynomial is explained by examples. Finally, we provide information about the PGZ algorithm used for the decoding of BCH codes.
Orhan Gazi

### Chapter 7. Reed-Solomon Codes

Abstract
In this chapter, we will give information about Reed-Solomon codes. These codes fall into the category of nonbinary cyclic codes. The generator polynomials of Reed-Solomon codes are constructed using the minimal polynomials of the extended finite fields. Reed-Solomon codes are effective for burst errors and they are used for erasure decoding. Reed-Solomon codes are used in some electronic devices such as CDs, DVDs, and Blu-ray, and they are also employed in communication technologies such as DSL, WiMAX, or RAID 6. Reed-Solomon codes are invented in 1960, and they are seen as nonbinary BCH codes. In this chapter, we first explain the construction of the generator polynomials of the Reed-Solomon codes using the minimal polynomials of the extended finite fields. Next, we provide information about the syndrome decoding of Reed-Solomon codes using error evaluator polynomial. In sequel, Berlekamp algorithm which is a low-complexity syndrome decoding algorithm used for the decoding of Reed-Solomon codes is explained.
Orhan Gazi

### Chapter 8. Convolutional Codes

Abstract
Channel codes can be divided into two main categories. One is the block codes, and the other is the convolutional codes. In the previous chapters, we studied the block codes in details. In this chapter, we will explain different types of error-correcting codes which are convolutional codes. Convolutional codes as their names imply are types of codes based on the convolutional operation. There are fundamental differences between convolutional and block codes. For block codes, we have definite code-word lengths; however, for convolutional codes, the length of the code-words is not a fixed number. Convolutional encoder circuits are constructed using memory elements such as flip-flops. In this chapter, we provide information about convolutional encoding and decoding operations. The impulse responses of the convolutional encoders are inspected in details. We also considered the generator and parity check matrices of the convolutional codes. The Viterbi decoding of convolutional codes is explained in a clear manner.
Orhan Gazi

### Backmatter

Weitere Informationen