• 沒有找到結果。

Chapter 2 Turbo Code

2.2 Turbo Encoder

2.2.1 Turbo Encoder Process

The turbo decoder consists of two parallel Recursive Symmetric Code (RSC) encoders, an interleaver and a puncture device (see Fig. 2-2). The interleaver is used for permuting the information uk, which is an influencing factor in the performance of Turbo code. The information u={u1,u2,…,uN} are transmitted through two identical structure RSC encoder, where encoder structure depends on the definition of code generator polynomial.

For the two RSC encoders, the information directly sending into upper RSC encoder produce upper encoded codeword {Xs, Xp-siso1}; the lower encoded codeword {Xp-siso2} is obtained from the permuting information bits uInt passing through the lower RSC encoder. The outputs Xs is identical to information bits u, referred to as the systematic bits. The second output Xp-siso1 denotes the parity check bits, which will be used for the even sub-iteration of MAP decoding. Similarly, the other parity check bits Xp-siso2 will also be used to odd sub-iteration of MAP decoding. Finally, the puncturing block could support various code rates by multiplexing the encoded codeword sequence to obtain effective bandwidth utilization.

Fig. 2-2 Turbo encoder diagram

2.2.2 Recursive Systematic Convolution (RSC)

Good turbo codes have been constructed using short constraint length and infinite impulse response (IIR) convolutional codes instead of the more familiar finite impulse response (FIR) convolutional codes. The major reason for above finding is that the impulse response for IIR structure has more long free distance relative to FIR structure, resulting the more better performance for the IIR encoder structure [6].

Furthermore, several articles in [7] shown that the constituent convolution codes with primitive feedback polynomials can achieve larger minimum distance than applying other polynomials. As a result, the IIR encoder structure with primitive feedback polynomials is always employed for the constituent encoder of Turbo code.

These IIR convolutional codes are also referred to as recursive convolutional codes, because previously encoded information bits are fed back to the input of constituent encoder. For instance, the generator polynomial G(D) form for constituent encoder shown in Fig. 2-3 is

with the constraint length v=5 (constraint length v = memory order q + 1), where Pb

indicates feedback polynomial (1+D3+D4), which fed previously encoder back to mix with new information sequence. PFi is forward polynomial corresponding to i-th output of encoder, here (1+D+D3+D4), (1+D2+D4) and (1+D+ D2+D3+D4) for1≤ ≤i 3.

The constituent encoder total has 2v-1 distinct state, where each state expresses the temporal value of register components. When input sequence is fed, the temporal value of register components are affected by the input sequence and feedback information, leading to the change of register components. For previously example, let the all register values to be zeros, the update register values update into “1000”(called as S8) if

the high level of input information bit is sent. On the other hand, the current state remains to hold the all-zero state. Furthermore, the results for each state changing with all possible input patterns can be shown in Fig. 2-3 for the trellis expression, and the corresponding output encoded bits can look up in Table 2-1.

Fig. 2-3 Block diagram of the RSC

Fig.2-4 Trellis expression the relationship of current states and next states with different input sequence

Table 2-1 The Output encoded sequence with different input information corresponding to each state

2.2.3 Trellis-Termination

Trellis termination process is to drive the encoder to the all-zero state at the end of the block. In generally, the beginning of state is assumed as all-zero states for constituent encoder.

z Both encoders terminated with individual tail symbols

The ending of state, due to employing the MAP algorithm for Turbo decoding, usually is known as all zero state (non-zeros state also can be assume) to perform feedback recursively decoding. Here, a tail bits driven from any probably state (2q numbers) to any target state no longer than q bits when the recursive convolutional encoder consists of q registers.

Due to the excursiveness property of encoder, the required M tail bits cannot be

“predetermined”. Thus, first, we observe the register values relationship with feedback

and input information as

(2.2) Register 1 = feedback information input information⊕

1

where ⊕ symbols the modulo-2 addition.

Except from the first register value, the others register value are obtained from the previously register. However, there is no input sequence required to be encoded when performing termination for turbo encoder. Therefore, the simplest obtaining zero value for register is to use previously feedback information for performing self-cancellation.

Furthermore, the other register values also obtain zero values by one after another when the first register has been zero value. The whole termination process can be expressed as follows

(2.6) Terminated _ Register 1 = feedback information feedback information = '0'⊕

Compared to the case where none of trellis is terminated, the minimum distance here is increased from terminated bit. However, this trellis-termination method probably yield low minimum distance codeword because both trellis are terminated independently [8]. Assuming the use of rate-1/2 convolutional encoder, the overall code rate isRc =K / 3

(

K+2q1+2q2 , where q1 and q2 indicate the memory order of first and second constituent encoder, respectively. It is observed that this type of termination is the reduction in code rate, especially for short interleaver.

z Only first encoder terminated

A common trellis termination method found in the literature is to terminate ENC1 and to leave ENC2 unterminated. The v1 tail bits makes that only the ending stage of ENC1 is fed back all zero state after encoding K information symbols. Note that these tail bits are included in the sequence, thus, the interleaver size is K+q1. The interleaved sequence, of length being K+q1, is fed to ENC2 which starts encoding in the all-zero state and is left unterminated in an unknown state.

The minimum distance is guaranteed to be caused by an input sequence of weight greater than or equal to 2. A good spread interleaver, it is unlikely that both nonzero symbols in the un-interelaved input sequence are interleaved to positions near the encoded of the interleaved input sequence. Based on above reasons, most small distances are eliminated [9]. Assuming the use of rate-1/2 convolutional encoder, the overall code rate isRc=K/ 3

(

K q+ 1

)

2.2.4 Puncturing

Puncturing is the process which removes certain bits from the codeword. The purpose of puncturing is to increase the overall code rate for Turbo code. In general, the common operation of puncturing is to remove the parity check bits from the first and second encoders periodically.

However, a significantly improved puncturing approach has been presented by [10].

This type of puncturing probably could obtain a longer minimum distance if a small number of systematic bits are punctured. It is well known that the minimum distance is caused by input sequence with low input weight. This means that the puncturing systematic bits are increased without or with a small loss in the contribution of systematic part to the overall minimum distance. Further, increasing the number of

puncturing systematic bits means that fewer number of parity check bits are punctured.

This results in an improvement in the distance properties because the minimum distance is mainly dominated by the contribution of parity check bits, especially for well designed interelavers.

相關文件