There are two structurally different types of codes, block and convolutional codes. Both types of codes have been widely used for error control in communication and/or storage systems. Block codes can be divided into two categories, linear and nonlinear block codes. Nonlinear block codes are never used in practical applications and not much investigated. This chapter gives an introduction to linear block codes. The coverage of this chapter includes (1) fundamental concepts and structures of linear block codes; (2) specifications of these codes in terms of their generator and parity-check matrices; (3) their error-correction capabilities; (4) several important classes of linear block codes; and (5) encoding of two special classes of linear block codes, namely cyclic and quasi-cyclic codes. In our presentation, no proofs or derivations are provided; only descriptions and constructions of codes are given. We will begin our introduction with linear block codes with symbols from the binary field GF(2). Linear block codes over nonbinary fields will be given at the end of this chapter.
There are many excellent texts on the subject of error-control coding theory [1–15], which have extensive coverage of linear block codes. For in-depth study of linear block codes, readers are referred to these texts.
Introduction to Linear Block Codes
We assume that the output of an information source is a continuous sequence of binary symbols over GF(2), called an information sequence.