Mathematics for Engineers

The effect of errors is to decrease the information each message carries. If the source rate is lower than the channel rate, redundant coding can be used to protect against their negative effect. We consider here a source of maximum entropy, that is, a source for which all symbols are equally likely. To protect it from errors, we send additional symbols, called control symbols this introduces some redundancy.
The number of available sequences (words) will be increased, but only a limited number of them will be meaningful (the codewords). An appropriate decoding algorithm allows the receiver to distinguish the right words from the erroneous ones (error-detection) and possibly to correct them (error-correction).
We can distinguish three main classes of coding:
algebraic coding;
convolutional coding;
composite coding.
This highly structured mathematical approach has lead to two types of code: group codes and cyclic codes. These are called block codes, as they operate on strings which are blocks of n symbols. Hamming codes belong to this category [HAM 50], work which forms the basis of numerous fundamental results, as do the more recent Reed-Solomon codes.
Group codes are built on a vector space over a finite field. By definition, this is a group (hence the name). We develop these properties later on (the reader is prompted to refer to the Appendix for this section).
Vectorial representation. The n symbols of the string (a word) are...