Coding Theory: A First Course

We saw in Chapter 1 that the purpose of channel coding is to introduce redundancy to information messages so that errors that occur in the transmission can be detected or even corrected. In this chapter, we formalize and discuss the notions of error-detection and error-correction. We also introduce some well known decoding rules, i.e., methods that retrieve the original message sent by detecting and correcting the errors that have occurred in the transmission.
We begin with some basic definitions.
Let A = { a 1 , a 2 , ,a q} be a set of size q, which we refer to as a code alphabet and whose elements are called code symbols.
A q-ary word of length n over A is a sequence w = w 1 w 2 w n with each w i ? A for all i. Equivalently, w may also be regarded as the vector ( w 1 , ,w n).
A q-ary block code of length n over A is a nonempty set C of q-ary words having the same length n.
An element of C is called a codeword in C.
The number of codewords in C, denoted by C, is called the size of C.
The ( information) rate of a code