d into k binary symbols, and similarly for the parity bits. At the receiving end, the block successively passes through the inner decoder and then the outer decoder. The corresponding code rate and minimum Hamming distance are given by R' = and d'min = dminDmin, meaning that both parameters are given by the products of their counterparts for each code. Since the code rates k/n and K/N are less than unity, the resulting code rate is substantially reduced. However, the error- correction capability w = {(dminDmin - 1)/2} is substantially increased, approximately as the square of that of the individual codes. Using for instance the concatenation of 11.4 Error-correction code types Input Output Figure 11.3 Two examples of rate 1/2 convolutional encoders: (a) systematic, with constraint length m = 2; (b) nonsystematic, with constraint length m = 4. two RS codes of the previous example, RS(255, 231), the code rate is 81% (bandwidth expansion factor 22%) while the correction capability is 71 bit errors, representing 31% of the initial message block length. Convolutional codes These are linear (n, k) block codes with rate R = k/n, using a transformation rule, which is a function of the m last transmitted bits. The number m is called the code's constraint length. The m - 1 input bits are memorized into shift registers, which are all initially set to zero. Two examples of rate 1/2 convolutional encoders are provided in Fig. 11.3. The first example corresponds to an encoder with constraint length m = 2. It outputs one bit, which is identical to the input and a second bit, which is the sum (modulo 2) of the last two input bits Xi-1). Because the input message is reproduced in the output, this convolutional code is said to be systematic. The second example in Fig. 11.3 corresponds to a nonsystematic, m = 4 convolutional code. Another possibility is to feedback the output of one or several shift registers to the encoder input. This is referred to as a recursive convolutional encoder. The code examples shown in Fig. 11.3 are sai