 less common until recently, but the most recent block codes, that is, Turbo and LDPC (see the Turbo and LDPC Codes section) usually use soft-decision decoding. Some codes, such as Reed-Solomon codes (see the Reed-Solomon Codes section), can handle erasures (i.e., digits that the receiver can detect and flag as erroneous) as well as unknown errors; this is an additional form of soft-decision decoding. Hard-Decision Decoding of Linear Block Codes For hard-decision decoding, the detection and correction of errors is based on the syn- drome. For (n, k) linear block codes. The (n - k)-bit syndrome of valid codewords is 0 as in equation 4.7. =cH =0 (4.7) If the syndrome of the received codeword, r, is 0, the decoder assumes that it is correct and the output dataword is extracted directly from it (very easily, for a systematic code). A nonzero syndrome is a certain indication of errors. If the transmitted codeword, c, is corrupted by the (modulo-2) addition of the n-bit error pattern, e, sor=c+e. The syndrome is given by equation 4.8 s=(c+e)HT=eH (4.8) which is a function only of the error pattern, e. There are only 2(n-k) - 1 different nonzero syndromes, but there are 2n - 1 different error patterns, SO every syndrome (including 0) can be generated by many different error patterns. However, as mentioned before, error patterns with small numbers of errors are more likely than those with larger numbers of errors, SO the most likely cause of a given nonzero syndrome is the corresponding error pattern with the fewest 1s. This is why the decoder assumes no errors if the syndrome is 0. One way to implement the decoder is to store in a lookup table (called the standard array) the chosen error pattern for each syndrome. The decoder then calculates the syn- drome, reads the corresponding error pattern from the table, and subtracts it (using bit-by- bit XOR) from the received codeword. Finally, the output dataword is extracted from the corrected codeword. Block Coding Types of Block Code The most important linear block codes no