HYBRID INTERLEAVER FOR TURBO CODES

Abstract: A turbo code encoder with a hybrid interleaver having two recursive systematic constituent code (RSC) encoders. The system encodes a finite sequence of informative bits without requiring a plurality of tail bits to flush the registers of each encoder to an all-zero state. The hybrid interleaver reduces the turbo code overhead by using only a single tail bit sequence. By using only a single m-bit tail, the hybrid interleaver improves bit error rate (BER).

Description: HYBRID INTERLEAVER FOR TURBO CODES BACKGROUND OF THE INVENTION Field of the Invention The present invention relates generally to processes that create time diversity in systems with high processing gain. More specifically, the invention relates to a system and method of turbo code interleaving mapping where the number of tail bits required to flush the storage registers of each constituent encoder to an all-zero state are reduced. Description of the Prior Art In many types of data communication systems, whether voice or non-voice, signal diversity or redundancy when transmitting information is shown to improve performance without compromising other aspects of the data transmission system. Two techniques that add time diversity are known as interleaving and forward error-correcting (FEC) coding. The process of interleaving is where the input data sequence is permuted or reordered into another sequence. For example: (01234567) <- (30671524) where the mathematical operator I N [J] transposes the original position of each bit or symbol of a finite input sequence to a new position J by operation of the interleaver I N . This reordering process that achieves time diversity is called interleaving and can be performed in a number of ways . Two methods of typical interleaving are known as block and random interleaving . At the transmission destination, the signal is again reordered, putting the data sequence back in the original order. The inverse process is called deinterleaving. The most recent advance in coding techniques which exhibit the best performance are turbo codes. A variety of turbo code interleaver designs exist and require less complexity when decoding. The three most popular are: 1) block interleavers; 2) pseudo-random interleavers; and 3) S-random interleavers. The best performing interleavers are the S-random interleavers. The S-random interleavers exploit the property of not mapping neighbor positions within a certain sequence length, to neighbor positions exhibiting the same length. This makes the sequence length as large as possible. All interleaver designs require a specific set of rules setting forth input sequence size and permutation. In conjunction with interleaving, FEC coding improves performance for signals that are coherently demodulated. FEC coding adds additional redundancy in the original data sequence. In communication systems that communicate over a spread spectrum air interface, redundancy is already present in the shared spectral transmission channel. A FEC encoder is a finite-state machine that relies upon nodes or states and delay registers. The predetermined transitions between the registers define a path from which a given data input may produce an output . A common way to illustrate the encoding and decoding technique for the convolutionally encoded data is the use of a trellis diagram which is known to those familiar with this art. A trellis diagram is an infinite replication of a state machine diagram and is shown in Figure 1. The decoding is typically performed using a maximum likelihood algorithm which relies upon the trellis structure and the path state or metric for each level and each selected node or state. Any code word of a convolutional code corresponds to the symbols along a path in the trellis diagram. At each state and at each level of the trellis an add-compare-select operation is performed to select the best path and state. The trellis is assembled over many received symbols . After a predefined number of symbols have been accumulated, the determination finds the trellis path with the smallest error. The final decision on all bits in the trellis is made via the encoders by forcing the encoder to return to an initial all-zero state. This is achieved by inserting zero tail bits at the end of the finite bit stream after encoding. This process is referred to as "tailing off." A process known as "chaining back" is performed starting at the last node, tracing the decision path back from the last decision to the first. This method of decoding determines which symbol was originally sent . The trellis structure introduces redundancy and accumulates past history. A prior art turbo encoder is shown in Figure 2. The encoder comprises first and second systematic recursive convolutional code (RCS) encoders coupled in parallel with a turbo code interleaver coupled prior to the second recursive convolutional encoder. The two recursive convolutional codes used in each encoder are known as the constituent codes. The first encoder reorders the input information bits x N in their original order while the second encoder reorders the input bits as permuted by the turbo code interleaver x N . The input information sequence x^is always transmitted through a channel. In dependence upon the data transmission rate, the outputs from both encoders may be "punctured" before transmission y N . Puncturing is a process where alternate outputs of the lower taps (first and second encoders p N ,p N ) are deleted from the output. This process establishes a code rate. The turbo code interleaver is a scrambler defined by a permutation of the sequence length with no repetitions. A complete sequence is input into the interleaver and output in a predefined order. A prior art tailing off process is shown and described in Figures 3 and 4. The tail bits for each encoder are obtained from register feedback from each respective encoder as shown in Figure 3. Since the register contents of each constituent encoder are different at the beginning of the tailing off operation, each encoder must be flushed separately. As described in Figure 4, each encoder (in Figure 3) is flushed independently and exclusive of each other after the information bits have been encoded. Each encoder derives and receives its own tail bits. Therefore, if m equals the number of states or register memory of an encoder, m tail bits are required for one encoder and 2m are required for both encoders. A prior art turbo code decoder is shown in Figure 5. On receiving the demodulated soft value signal y N , the soft-decision information for the systematic (information) and parity bits > Λ .from the first constituent encoder are input to a first constituent decoder. The first constituent decoder generates updated, soft-decision likelihood values L e (x N ) for the information bits that are input along with the information bits to a decoder interleaver. The input to a second constituent decoder includes the interleaved soft-valued sequences - I j τl s =t X jxf Q ϊlU Li e X j ) and the parity bits/> N from the second constituent encoder. The output of the second decoder improves on the soft-decision likelihood values derived from the output from the first constituent decoder and is fed back to the first constituent decoder after reordering in accordance with the turbo decoder interleaver as an iterative process . The output x e from the second constituent decoder is obtained after the decoding operation is completed. As discussed above, the use of a turbo code interleaver requires that coding be performed on a finite sequence length. To encode such a finite information sequence, it is necessary for both constituent RSC encoders in the turbo encoder to start and end in an all zero-state for trellis termination. However, due to the presence of the turbo interleaver, it is difficult to simultaneously force the two constituent encoders to terminate in an all zero-state with the same trellis bits. Most prior art turbo encoders have their information sequences terminated with a plurality of tail bits. Tail bits are considered a nuisance and as overhead of the turbo encoded sequence . Accordingly, there exists a need for a turbo code interleaver that does not require a plurality of tail bits to force each constituent encoder to an all-zero state. SUMMARY OF THE INVENTION The present invention relates to a turbo code hybrid interleaver having recursive systematic constituent encoders. The system and process encodes a finite frame of bits without requiring a plurality of tail bits to flush the registers of each encoder to an all-zero state. The hybrid interleaver reduces the turbo code overhead by using the same tail bits for both constituent encoders improving the performance of the best turbo interleaver. Accordingly, it is an object of the present invention to provide a system and method of interleaving that does not require a plurality tail bits to be part of the encoding process. It is a further object of the invention to eliminate the unnecessary overhead in the turbo code encoding sequence limiting the number of tail bits that terminate the encoding process to an all-zero state with a single m-bit tail where m is the number of storage registers in each constituent encoder. Other objects and advantages of the system and the method will become apparent to those skilled in the art after reading the detailed description of the preferred embodiment. BRIEF DESCRIPTION OF THE DRAWINGS Figure 1 is a prior art trellis diagram for a 4 state RSC encoder. Figure 2 is a system diagram of a prior art, turbo code encoder. Figure 3 is a system diagram of a prior art, four state encoder showing tailing off. Figure 4 is a flowchart of a prior art method of tailing off. Figure 5 is a system diagram of a prior art, turbo code decoder. Figure 6 is a system diagram of a turbo code encoder with a hybrid interleaver employing the system and method of the present invention. Figure 7 is a flowchart of the interleaver method embodying the present invention. Figure 8 is a 16 frame size interleaving sequence produced by the present invention for a 4 state turbo code encoder with S equal to 2 and L equal to . Figure 9 is the mapping of the interleaving sequence of Figure 8. Figure 10 is the 16 frame size interleaving sequence of Figure 8 verified. Figure 11 is a flowchart of the tailing off method embodying the present invention. Figure 12 is a flowchart of an alternative embodiment . DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS A turbo code encoder 17 with a hybrid interleaver 19 taught in accordance with the present invention as shown in Figure 6 terminates the first 21 and second 23 RCS constituent encoders to an all-zero state using a single tailing off bit operation 25. The present invention 17 exploits the cyclic property of each constituent encoder 21, 23 in conjunction with keeping the performance of the best turbo interleavers. The turbo code encoder 17 with hybrid interleaver 19 reduces additional tail bit overhead necessary for trellis termination of each constituent encoder 21, 23. Figures 6 and 7, describe the system and process of the hybrid turbo code interleaver 19. The process 51 begins (step 53) by receiving a sequence of input data 27 for encoding. The encoding sequence frame size N is chosen (step 55) . The state size and puncturing rate (code rate) are independent of the hybrid interleaver 19. The hybrid interleaver 19 generates the random integers I (k) for permutation (step 57). As shown in Figures 8 and 9, the generation of the random integer sequence is performed bit by bit for each frame 29 position 3l ! _ Ν . The generation of a random integer (step 57) denoted as I (k) is: \<I(k)≤ N Equation (1) where k = 1,2, ...,N for each mapped 33 position 35^ in the interleaver sequence. The current selection, I (k) must meet conditions A (step 59), B (step 63) and C (step 65) as follows. Condition A: l{k) - l(k - j)\> S Equation (2) where 0<j≤S Equation (3) and k-j≥ O. Equation (4) Condition A Equation (2) represents the properties of S-random interleavers. S is an arbitrary value. Condition B: \I(k) - I(k - n ■ L)\ ≠ j ■ L Equation (5) (step 63) where n and j are positive integers subject to: k-n-L≥ O; Equation (6) ; and n-L≤ S Equation (7) (step 61) L is determined by the constituent encoder used in the turbo code encoder. As an example, L=7 is used in an eight state turbo encoder. Condition C: k mod2 m - 1 = I(k) mod 2 m - 1 V k Equation (9) (step 65) where m is the size of memory in the constituent encoder. For 4 and 8 state encoders, m equals 2 and 3 respectively. The above steps are repeated until all of the integers, I (k) for k=l , 2 , . . . , N, (step 66) for the hybrid interleaver 19 are selected (step 67) and output (step 69) . An example of the above system and method is shown in Figures 8, 9 and 10. A sequence frame size of 16 using a 4 state turbo code encoder 17 with hybrid interleaver 19 with S equal to 2 and L equal to 4 is shown permuted in accordance with the teachings of the invention. The hybrid interleaver 19 satisfies Condi tions A and B . The hybrid interleaver 19 output 37 is verified in Figure 10 using Condi tion C such that after dividing the index of an input 27 information sequence by 2 m - 1 , the resulting remainder sequence 39A is equal to the corresponding remainder sequence 39B due to the interleaving mapping index 33. Once the turbo code hybrid interleaver 19 is specified 51, the information bits 27 are permuted according the hybrid interleaver 19 in order for the second 23 constituent encoder to receive the output 37. The process of the present invention that terminates the trellis using the same tail bits for the first 21 and second 23 constituent encoders is shown and described in Figures 6 and 11. As described above, the information bits are encoded by both encoders. The first 21 constituent encoder operates on the information bits 27 in their original order. The second 23 constituent encoder operates on the information bits 27 as permuted 37 according to the hybrid interleaver 19. The output from the first 21 and second 23 constituent encoders are punctured and multiplexed producing an output (see Figure 2) . The trellis termination process 81 using the same tail bits for both constituent encoders starts (step 83) with acknowledging that all of the information bits have been encoded by the first 21 and second 23 constituent encoders. At this time in the encoding process, the register contents of both encoders are the same. The first 21 and second 23 encoders switch inputs from the original information 27 and permuted 37 bit streams to feedback 41 from the first 21 encoder. The puncturing of the first 21 encoder output p —1 23 output p—2 N and the second N with the information output x N for the tailing off process is the same as during the encoding 21, 23 of the information bits 27, 37. After both switches 43, 45 transition, the first 21 encoder receives tail bits from its own register via the feedback 41 (step 85) . The tail bits to the second 23 encoder have not been interleaved by the hybrid interleaver 19 and are the same tail bits 41 for trellis termination as in the first 21 encoder (step 87) . For a M state encoder, log 2 M tail bits are required to flush all of the registers in the first 21 and second 23 encoders to an all-zero state. With L = log 2 M, Table 1 shows the required number of tail bits and the total number of tail coded symbols for a 4 and 8 state encoder. TABLE 1 For a 1/2 rate and 1/3 rate turbo code encoder with four (4) state constituent encoders, the present invention 17 eliminates 4 and 6 tail bits, respectively. For a 1/2 rate and 1/3 rate turbo code encoder with eight (8) state constituent encoders, the present invention 17 eliminates 6 and 9 tail bits, respectively, as compared to and required by the prior art . The turbo code encoder with the hybrid interleaver yields better performance than prior art S-random interleavers since the rules stated in Condi tion B avoids worst case low weight distribution of the turbo codes while Condi tion A retains the best characteristics. Since the hybrid interleaver 19 leads to the same trellis state sequences for both the first 21 and second 23 constituent decoders at the beginning of the tail part, the use of a single m-bit tail sequence to flush both the first 21 and second 23 encoders to an all-zero state is acceptable. The extrinsic information L e] including tail bits generated from the first constituent decoder are passed on to the second constituent decoder which increases to overall performance (see Figure 5) . As an example, if the original information sequence is x N = {1 01 1 01 0001 1 1 01 01}. The permuted information sequence according to the hybrid interleaver 19 is x' N = {0001011110101011}. The information sequence is encoded by the first 21 and second 23 constituent encoders. The first 21 constituent encoder operates on the input x in its original order, while the second 23 constituent encoder operates on the permuted x 1 interleaver 19 output . The trellis state sequence obtained from the first 21 encoder is {23331 000021 002331 0} . The trellis state sequence obtained from the second 23 encoder is {0002333331002333 0}. As shown above, the last two states (four bits) from each trellis state sequence are the same due to the hybrid interleaver 19. This allows the first 21 and the second 23 constituent encoders to receive the same tail bits leading to the reduced overhead of the turbo coding process. Condition C leads the trellis state of two constituent encoders to be the same after encoding information bits. This allows the same tail bits for both constituent encoders, resulting in the reduction of turbo-code overhead due to tail bits. In addition, using the same tail bits is desirable for an interative decoder as previously explained in which the interleaver design was based on a S-random interleaver. While the present invention improves turbo-code performance, its memory requirement is the same as for the S-random interleaver with the memory storage requirement proportional to the interleaver size. An alternative embodiment is described in Figure 12. Let D denote the information sequence of binary bits with block size N such that: D= {d d 2 ...,d N } where d k = ±\ Equation (10) Given a M-state turbo-coder where M is equal to 4 or 8 , we can partition the information sequence, D, into p-disjoint subsets, S, where p=M-l as follows: So = {d k , k mod p = 0} Equation (11) S t = {d k , k mod p = 1} Equation (12) S p -ι = {d k ,kmoάp= p- \) Equation (13) where p is set to be 3 and 7 for 4-state and 8-state turbo codes, respectively. The above partition method is similar to the above coset partitioning. The value of p for each state Turbo-code is specified. Each subset has the block size of |_N/pJ where N/pJ denotes the smallest integer value larger than or equal to N/p. Each subset is permuted by the use of any interleaver mapping. Then we combine all the individual subsets in order to obtain the entire interleaver output, denoted as J, as follows: Count=0, for k=l Block .size of subset for i= 1 : P if i=p J(count) = S 0 (k) else J (count) = Si (k) end if count = count + 1 if count =N exit end end where Si {k) is the k th interleaved output bit of the subset S x and S 0 (k) is the k th interleaved output bit of the subset S 0 . The above mentioned procedures including partition and combining subsets can be re-illustrated by using a block interleaver with |_Ν/pJ rows and p columns as follows: 1) The information bits are stored row-wise in the block interleaver as follows: Write > 2) Permute the bits within each column block according to the given interleaver type, which can be, in principle, one of any candidate interleavers. For example, applying conditions A and B to each column block; condition C is not necessary under these circumstances . 3) Read out the matrix row-by-row in order as shown below to drive the second constituent, whose input is the interleaved output sequence, to the same state as without interleaving the original information sequence. Read o λ While the present invention has been described in terms of the preferred embodiment, other variations which are in the scope of the invention as outlined in the claims below will be apparent to those skilled in the art.

Claims: What is claimed is: 1. A turbo code encoder for encoding sets of input bits comprising: a first RCS constituent encoder having a multi-state register for encoding input bit sets; an interleaver for reordering input bits within sets; a second RCS constituent encoder having a multi-state register for encoding interleaver reordered input bit sets; and said interleaver being configured such that the respective registers of said first and second RCS constituents encoders contain the same value after encoding the same set of input bits. 2. A turbo code encoder of claim 1 further comprising: a tail bit generator which generates a set of tail bits for each set of encoded input bits which reset the registers of both said first and second RCS constituent encoders. 3. A turbo code encoder of claim 2 wherein said tail bit generator generates said tail bit sets upon content of said first encoder register. 4. A turbo code encoder of claim 1 for encoding sets of N input bits where N is a positive integer wherein said interleaver: generates random integers I (k) of the set of input bits (k) for k from 1 to N such that a) I k ) — I (k - j ) \ > S , where S is an arbitrary value and j is a positive integer, < j≤S and k-j≥O ; b) If n • L > S , where L is dependent upon the number of encoder register states and n is a positive integer subject to k-ll-L≥O, then, proceed to step d; l(k) - l(k - n • L) ≠ j • L , if not true, repeat steps a-c; d) verifying each random integer using it mod 2'" -1 = l(k) mod 2 m -1 , where 2 m is the number of register states of said encoders, if not true, repeat steps a-d; e) incrementing the integer bit count k; and f) k = N + 1 , if not true, repeat step a-f . 5. A turbo code encoder of claim 1 for encoding sets of N input bits where N is a positive integer, d is an input bit of a set and all d=±l, wherein said interleaver comprises: means for arranging said input bit sets for an M state turbo coder into p disjoint subsets where p-M -1 such that each disjoint subset, S it of size b where i is an integer from 0 to p-1 and b is the smallest integer value larger than or equal to N/p means for combining subsets S i , to form a block of b rows and p columns where ]c is an integer from 1 to ib such that each element of a subset is in the same column; means for reordering the set of input bits within said columns; and means for outputting said rows after said column reordering to produce an interleaver reordered input bit set. 6. A method of encoding sets of input bits comprising the steps of: encoding a set of input bits using a first RCS constituent encoder having a multi-state register for encoding the input bits; selectively reordering the set of input bits using an interleaver; and encoding the reordered set of input bits using a second RCS constituent encoder having a multi-state register such that the reordered selection of the input bits causes said second RCS constituent encoder register to contain the same value as said first RCS constituent encoder register upon completion of encoding the set of input bits. 7. A method of turbo encoding of claim 6 further comprising the step of generating a set of tail bits for each set of encoded input bits and applying said tail bit set to reset the registers of both said first and second RCS constituent encoders. 8. A method of turbo encoding according to claim 6 wherein said selective reordering comprises the steps of: a) receiving a plurality of N information bits where N is a positive integer; b) defining the hybrid interleaver frame size N; c) generating random integers I (k) for k from 1 to N that satisfy the conditions: 1) I k ) - l (k - jj\ > S , where S is an arbitrary value and j is a positive integer, 0< j ≤ S and k - j ≥ O ; 2) If n • L > S , where L is dependent upon the number of encoder register states and n is a positive integer subject to k — n ■ L 0 then, proceed to step 4; l{k ) - I {k - n • L)\ ≠ j • L , where if not true, repeat steps 1-3; 4) verifying each random integer using k mod 2'" -1 = l (k ) m od 2'" -1 , where 2 m is the number of register states of one of said encoders, if not true, repeat steps 1-4; 5) incrementing the integer bit count k; and 6) k = N + 1 , if not true, repeat step c) ; and d) outputting permuted interleaver data sequence for encoding. 9. The turbo code encoder according to claim 7 further comprises the steps of: a) acknowledging that encoding by a first constituent encoder and a second constituent encoder is complete; b) switching inputs to said first and second encoder from an information bit stream and a permuted bit stream respectively to common feedback from said first constituent encoder last stage; and c) incrementing the number of tail bits received from said feedback wherein said number of tail bits must be greater than the number of registers used in said first constituent encoder, if not, repeat steps b - c . 10. A method of encoding sets of N input bits according to claim 6, where N is a positive integer, d is an input bit of a set and all d=±l, wherein said selective reordering further comprises the steps of: arranging said input bit sets for an M state turbo coder into p disjoint subsets where p=M -1 such that each disjoint subset, S i t of size b where i is an integer from 0 to p-1 and b is the smallest integer value larger than or equal to N/p S t = {d k \, k mod p - i} , ■ combining subsets S i( to form a block of b rows and p columns where k is an integer from 1 to b such that each element of a subset is in the same column; reordering the subset elements within each column; and outputting said rows after said column reordering to produce an interleaver reordered input bit set. 11. A turbo code encoder for encoding sets of N input bits where N is a positive integer, d is an input bit of a set and all d=±l comprising: a first RCS constituent encoder having a multi-state register for encoding input bit sets; means for arranging said input bit sets for an M state turbo coder into p disjoint subsets where p=M -1 such that each disjoint subset, S i , of size b where i is an integer from 0 to p-1 and b is the smallest integer value larger than or equal to N/p 5,. = {d k \, k mod p = i] ; means for combining subsets S i , to form a block of b rows and p columns where k is an integer from 1 to b such that each element of a subset is in the same column; an interleaver for reordering the input bits within said columns; means for outputting said rows after said column interleaving to produce an interleaver reordered input bit set; a second RCS constituent encoder having a multi-state register for encoding interleaver reordered input bit sets whereby the respective registers of said first and second RCS constituents encoders contain the same value after encoding the same set of input bits.

Inventors: SHIN SUNG-HYUK, SHIN, SUNG-HYUK
Applicants: INTERDIGITAL TECH CORP, SHIN SUNG HYUK, INTERDIGITAL TECHNOLOGY CORPORATION, SHIN, SUNG-HYUK
Application year: 1999
Main classification: H03M13
IPC codes: G06F11, H03M13, H04L1