Equation 14.27. tematic, and can be used for error detection or correction. However, They are therefore examples of maximum-distance-separable there are many good block codes which can be used for error codes. detection with simple encoding and decoding, so when only error detection is required, block codes are almost always used. (14.27) By contrast with the analysis and design of block codes, much less mathematical analysis is needed for convolutional codes, and some For decoding RS codes, both Peterson's method and the Berle- of the best codes are found by computer search. A rigorous mathe- kamp/Massey algorithm can be used. The latter is also known as the matical treatment is however available in Forney (1970). Tables of FSR synthesis algorithm, because it is equivalent to the generation good convolutional codes for various values of k, n, and L are 14/10 Coding input outputs S n = stores Figure 14.4 Two commonly used representations for convolutional coders, for the example of a binary rate 1/2 constraint length 4 code available in reference books, together with measures of their perfor- be described using a trellis diagram, as shown in Figure 14.5. In this, mance, such as their coding gain at different output BERs. the possible states of the coder are represented as M(L-1)k nodes in a vertical column, and the state-to-state transitions at each time-step 14.6.1 Convolutional coding are represented by a rightwards step of one column. From each node at time-step i there are M Superscript(k) branches to successor states at time-step A convolutional coder takes M-ary input digits in groups of k at each i + 1. In a worthwhile code no two different patterns of input digits time-step and produces groups of n output digits. Since the input and give the same transitions. output data rates are k and n digits per time-step, the code is known as a rate k/n code. The coder contains k parallel shift registers of 14.6.2 Viterbi decoding maximum length L 1, where L is known as the constraint length of the code. Two common p