es. Error correction Hamming codes As we have seen in Section 11.2, these are linear block codes of the form (n, ,k) = (2" - 1,n - m), with m > 3. The minimum distance of a Hamming code was shown to be dmin = 3, giving a correction capability of one-bit error. Hadamard codes These are linear block codes of the form (n,k) = (2m, m -1), whose 2m+1 codewords are generated by Hadamard matrices.4 It is left as an exercise to verify this statement and property. The minimum distance is dmin = n/2 = 2m-1 yielding a correction capability of {(2m-1 1)/2} or 3-7 bit errors for m = 4 5. Cyclic redundancy check (CRC) codes This is the generic name given to any cyclic code used for error detection. Most data packet or framing standards include a "CRC" trailer field, which ensures error correction for the packet or frame payload. Binary CRC codes (n, k) can detect error bursts of length < n - k, as well as various other error-burst patterns, such as combinations of errors up to a maximum of dmin - 1. CRC codes can correct all error patterns of odd Hamming weight (odd numbers of bit errors) when the generator polynomial has an even number of nonzero coefficients. Golay code This can be viewed equivalently as a (23, 12) linear block code, or a (23, 12) cyclic code. In the last case, the code is generated by either of the two polynomials By definition, a Hadamard matrix Mn is an nxn binary matrix (n = 2m), in which each row is different from all the others by exactly n/2 positions. One row must contain only 0 bits, thus all other rows have n/2 zeros and n/2 ones. The smallest Hadamard matrix (out of four possibilities) is: M3=(9) A property of the Hadamard matrices is that it is possible to construct M2n from Mn, as follows: where Mn is the complementary matrix of Mn (meaning that all bits values are switched). Thus, for M4 we obtain: The key property is that the rows of Mn and Mn form a complete set of 2n codewords, which correspond to a linear block code (n, k) of length n = 2m with k=m+1 and minimum distance dmin = n / 2 = 2 m 