TURBO CODES   (Cont)

 

 


Figure 2. Recursive Systematic Convolutional (RSC) encoder

     The most common form of convolutional encoder is the nonrecursive nonsystematic convolutional encoder, such as the one shown in figure 1. This type of encoder cannot be used as the constituent encoder for a turbo code simply because it is not systematic -- that is one of the outputs is not the input itself. Use of a nonrecursive systematic convolutional encoder is also unacceptable because of the poor distance properties of the resulting code . This encoder can be modified in such a way that it becomes systematic and retains its distance properties. The modification involves feeding back one of the outputs . The resulting encoder is systematic and recursive since the state of the internal shift register depends on past outputs. Such an encoder is called a Recursive Systematic Convolutional (RSC) encoder as shown in Figure 2.

      A convolutional encoder may be used to generate a block code if the internal state of the encoder is known at the beginning and end of the code word. The usual convention is
to initialize the encoder to the all-zeros state and then encode the data. After the k data bits are encoded, a number of tail bits are encoded in order to force the encoder back to the all-zeros state. The number of tail bits required to bring the encoder back to the all-zeros state is the memory order m of the convolutional encoder.
A tail of m zeros will bring a nonrecursive convolutional encoder back to the all-zeros state. Due to the presence of feedback, a tail of zeros will usually not bring a recursive convolutional encoder back to the all-zeros state. The tail required to bring a recursive convolutional encoder back to the all-zeros state can be found by solving a state-variable equation at the feedback element. For our example in figure 4, the state equation at the feedback element is:

ak = dk (mod-2 add)ak_1 (mod-2 add)ak_2 --------------------------(3)
Solving this equation for dk yields:

dk = ak (mod-2 add)ak_1 (mod-2 add)ak_2 ------------------------- (4)

Since we want to bring the encoder back to the all-zeros state, we set ak in the above to zero and thus:

dk = ak_1 (mod-2 add)ak_2 -------------------------------------(5)

And this is the input to the encoder required to force the encoder into the all-zeros state.

next >>

     

Home | Error Correcting Codes | Block Codes | Convolution Codes | Turbo Codes | References
________________________________________________________________________________________________
For comments and suggestions
contact the Webmaster