Many communication systems incorporate the use of a turbo code. When performing encoding of an input sequence within such turbo encoders, it is oftentimes desirable to ensure that the beginning and/or at least the ending state of the encoder is at a known state.
Some means by which an encoder can be returned to a known state at the end of encoding an input sequence include: (1) adding 2m bits outside of the interleaver of the turbo encoder for a constituent convolutional encoder having 2̂m states (where m is an integer), and (2) the means as provided in commonly assigned U.S. Pat. No. 7,085,985, entitled “Close two constituent trellis of a turbo encoder within the interleave block”.
For a given input sequence, when both the first and last state of the encoder is the same, this can referred to as tail-biting. Also, with respect to decoding of turbo coded signals, forward and backward turbo decoding approaches rely on the known initial and final states of the encoder when encoding the input sequence that generates the turbo coded signal.
Tail-biting termination, which gives equal states at the beginning and the end of encoding of an input sequence, serves this purpose. A means is presented herein to perform tail-biting termination of an encoder without adding any extra terminating symbols (or bits).
While some approaches can provide for tail-biting for one particular type of turbo code having a particular input sequence block size, these approaches do provide for any means by which various block sizes can be accommodated without a nearly complete re-hauling and design to enable tail-biting. In other words, these approaches simply cannot accommodate an arbitrary number of information bits within the input sequence.
In certain applications, such as the LTE encoder, it would desirable to support arbitrary number of information bits from a consecutive range of integers (e.g. Rel.6 supports the size from 40 to 5114). As pointed out in R1-062157 [1], Rel.6 turbo encoder [2] can not provide tail-biting state for 1/7 of all of the possible information sequences.
Herein, it is first shown that all turbo codes have a similar problem. A detailed analysis is provided herein for selecting a tail-biting encoder from among all possible 8 states turbo codes. Then, a novel approach is presented which can accommodate all possible information sequences and provide for tail-biting termination with at most one extra symbol (or bit) that is passed through the interleaved block of the turbo encoder.
While there are many potential applications that can employ turbo codes, means are presented herein that can be applied to the 3GPP channel code to support an arbitrary number of information bits. Some examples of the number of bits that can be supported using the various aspects of the invention presented herein are 40 to 5114 for WCDMA and HSDPA and more for LTE.
Additional information regarding the UTRA-UTRAN Long Term Evolution (LTE) and 3GPP System Architecture Evolution (SAE) can be found at the following Internet web site:
www.3gpp.org
In one proposed implementation therein, the current channel coding uses an 8 state turbo code with 6 termination bits added, and these 6 termination bits are not passed through the interleave of the turbo encoder. To save the rate loss and to improve the performance, a tail-biting recursive convolutional encoder would be better to be used as the constituent encoders of the turbo encoder.
However, many in the art operate on the supposition that it is not possible for a recursive convolutional encoder to have tail-biting state for an arbitrary number of information bits.
Herein, a novel means is presented by which tail-biting can be performed for a recursive convolutional encoder to support any number of information bits. The overhead of this novel means is either no additional symbols (or bits) to be padded to the input sequence, or at most only one dummy symbol (or bit) to be padded to the input sequence. Moreover, the added one bit is also interleaved. Using this means, there is no performance loss when compared to other approaches.
The goal of digital communications systems is to transmit digital data from one location, or subsystem, to another either error free or with an acceptably low error rate. As shown in
Referring to
To reduce transmission errors that may undesirably be incurred within a communication system, error correction and channel coding schemes are often employed. Generally, these error correction and channel coding schemes involve the use of an encoder at the transmitter and a decoder at the receiver.
The other device 290 to which the communication device 210 is coupled via the communication channel 299 can be another communication device 292, a storage media 294 (e.g., such as within the context of a hard disk drive (HDD)), or any other type of device that is capable to receive and/or transmit signals. In some embodiments, the communication channel 299 is a bi-directional communication channel that is operable to perform transmission of a first signal during a first time and receiving of a second signal during a second time. If desired, full duplex communication may also be employed, in which each of the communication device 210 and the device 290 can be transmitted and/or receiving from one another simultaneously.
The encoder 221 of the communication device 210 includes a turbo encoder and a processing module 230. The processing module 230 may also be coupled to a memory 240 to store operational instructions that enable to the processing module 230 to perform certain functions. Generally speaking, based on a particular input sequence, the processing module 230 is operable to perform the determination of which state the turbo encoder should begin in to support tail-biting when encoding that input sequence.
It is also noted that the processing module 230 can be implemented strictly as circuitry. Alternatively, the processing module 230 can be implemented strictly in software such as can be employed within a digital signal processor (DSP) or similar type device. In even another embodiment, the processing module 230 can be implemented as a combination of hardware and software as well without departing from the scope and spirit of the invention.
In even other embodiments, the processing module 230 can be implemented using a shared processing device, individual processing devices, or a plurality of processing devices. Such a processing device may be a microprocessor, micro-controller, digital signal processor, microcomputer, central processing unit, field programmable gate array, programmable logic device, state machine, logic circuitry, analog circuitry, digital circuitry, and/or any device that manipulates signals (analog and/or digital) based on operational instructions. The processing module 230 can be coupled to the memory 240 that is operable to store operational instructions that enable to processing module 230 to perform the determination of the appropriate state to be employed when beginning to encode an input sequence to ensure tail-biting operation b the turbo encoder 220.
Such a memory 240 may be a single memory device or a plurality of memory devices. Such a memory 240 may be a read-only memory, random access memory, volatile memory, non-volatile memory, static memory, dynamic memory, flash memory, and/or any device that stores digital information. Note that when the processing module 230 implements one or more of its functions via a state machine, analog circuitry, digital circuitry, and/or logic circuitry, the memory storing the corresponding operational instructions is embedded with the circuitry comprising the state machine, analog circuitry, digital circuitry, and/or logic circuitry.
Within the encoder 221, the turbo encoder 220 is operable to receive an input sequence and to encode either (1) the input sequence, or the input sequence and at most one zero valued symbol (or bit) that is padded to the input sequence.
Based on the input sequence, the processing module 230 is operable to determine a starting state of the turbo encoder 220, and to provide the starting state to the turbo encoder 220, so that the starting state of the turbo encoder 220 before encoding a first symbol of the input sequence is same as an ending state of the turbo encoder upon encoding either a final symbol of the input sequence or the at most one zero valued symbol when padded to the input sequence.
Referring to
The buffer 310 is operable to receive the input sequence that is to be encoded. The turbo encoder 320 is operable to receive the input sequence from the buffer 310 and to encode the input sequence. Based on the input sequence, the processing module 330 is operable to determine a state of the turbo encoder 320 and at most one symbol to be padded to the input sequence such that the state of the turbo encoder 320 before encoding a first symbol of the input sequence is same as the state of the turbo encoder upon encoding a final symbol of the input sequence or the at most one symbol that has been padded to the input sequence. In other words, the turbo encoder 320 is operable to receive the input sequence from the buffer 310 and to encode either (1) the input sequence as indicated by reference numeral 301, or the input sequence and at most one zero valued symbol (or bit) that is padded to the input sequence as indicated by the reference numeral 302. When at most one zero valued symbol (or bit) is padded to the input sequence, the “modified” input sequence can be referred to as an extended input sequence 302.
The buffer 310 is operable to provide the input sequence to the turbo encoder 320 when the processing module determines the state, and the turbo encoder 320 is in the state that is determined by the processing module before encoding the first symbol of the input sequence and after encoding the final symbol of the input sequence or the at most one symbol that has been padded to the input sequence. If desired, the puncturing module 350 is operable to puncture one or more bits of an encoded sequence that is output from the turbo encoder 303.
Referring to
The input sequence 401 is provided to the first constituent encoder 411 and to the interleaver (π) 410. The output of the first constituent encoder 411 is shown as c1421. The output of the interleaver (π) 410 is then provided to the second constituent encoder 412, whose output is shown as c2422. Each of c1421 and c2422 is provided to the puncturing module 431 where none, one or more bits of c1421 and/or c2422 is punctured thereby generating the outputs c′1431 and c′2432. Information bits, shown as u 401 at the top of the diagram, can also be employed as output from the communication device 400.
The performance curve in
The definition of state-space realization of convolutional encoder is employed herein as described in [4-6]. With this realization a necessary and sufficient condition of a tail-biting minimal encoder, a novel means is presented herein to accommodate an information sequence of any arbitrary size.
Consider a rate k0/n0 convolutional encoder of degree m, let the input sequence be as follows:
u=(u0, . . . , uN-1) where ui=(ui,k
Moreover, let St=(Sm-1(t), . . . , S0(t)) be the encoding state at time t. Then there exits m×m matrix A, m×k0 matrix B, k0×m matrix C, and k0×n0 matrix D, which is called state-space realization of the encoder, such that
S
t
T=(Sm-1(t), . . . ,S0(t))T=A(Sm-1(t−1), . . . , S0(t−1))T+ButT=ASt-1T+Bu (EQ-1)
and xtT=CSt-1T+DuTT. The generate matrix of this convolutional encoder is
C(A, B, C, D)=G(x)=D+C(x−1Im−A)−1B (EQ-2)
In [7], a sufficient condition is given for an encoder being tail-biting for any information sequence with a given block size. In the following, we prove this condition is necessary for an encoder with minimal degree (i.e. the number of states cannot be reduced).
Theorem 1 Let the matrices (A,B,C,D) be the state-space realization of a convolutional encoder with minimal degree m. This encoder is tail-biting for any information sequence of block size N≧m if and only if AN+Im is invertible.
Proof Let u=(u0, . . . ,uN-1) be any information sequence of size N. Let (Sm-1(N), . . . , S0(N))T be the final state of the encoding with the given information sequence, than by (EQ-1) we have
Thus, the encoding is tail-biting for the given sequence if and only if (S0(N), . . . , Sm-1(N)=(S0(0), . . . , Sm-1(0)). This implies that the encoding is tail-biting for a given sequence if and only if there is a solution to the system of linear equations
where Im is m×m binary identity matrix. On the other hand, by [6], degree m is minimal if and only if the m matrices B,AB, . . . ,Am−1B are linear independent. This implies that
can run over entire space {0,1}m when N≧m with all possible input sequences of size N. This implies (EQ-3) has a solution for all possible information sequences if and only if AN+Im is invertible.
Nonexistence of Tail-Biting States for Any Turbo Code
Theorem 2 Given any turbo encoder E with minimal degree of constituent encoders, there exists a positive integer P such that, E gives no tail-biting termination for some information sequences of size tP (t>0).
Proof. Let (A, B, C, D) be the state-space realization of one of the convolutional encoders of the given turbo code with 2m states. Since there are finite number of m×m binary matrices there exist two positive integers, u and v, such that Au=Av. Suppose u<v. then we have Au(A(v−u)+Im)=0. Let P=v−u, we have
a) Both Au and AP+Im is non-invertible
b) Au invertible but AP+Im=0 (i.e., non-invertible)
c) AP+Im invertible but Au=0. This implies G(x)=D+B(x−1Im−A)−1C is a polynomial matrix [8]. Thus the encoder is non-recursive. This contradicts to the very definition of a turbo code [9].
Therefore, AP+Im must be non-invertible. Moreover, for any integer t>0, suppose
A
tP
+I
m=(AP+Im)(A(t−1)PA(t−2)P+ . . . +Im).
is invertible. Then there exists and m×m matrix V such that
(AP+I)(t−1)P+A(t−2)P+ . . . +Im)V=Im
That is to say AP+Im is invertible, which contradicts the previous conclusion. Therefore, AtP+Im is also non-invertible. Thus by Theorem 1, the turbo encoder does not give tail-biting termination for some information sequence of size tP.
Based on Theorem 2 there is no need to choose other turbo code for tail-biting purpose.
8 States (m=3) Turbo Codes
In this section we investigate all possible degree 3 convolutional encoders for turbo code and try to find which one is best for tail-biting. Let us recall the definition of similarity of two m×m matrices. Two m×m matrices A1 and A2 are said similar if there exists a invertible matrix S such that A1=SA2S−1. It is easy to prove that code with state-space realization (A,B,C,D) and (SAS−1,SB,CS−1,D) have the same encoder matrix G(x) (also see [10]). The set of all 3×3 binary matrices can be partitioned into several classes such that every class contains all similar matrices. Those classes also can be divided to 3 big categories, namely: (1) classes with nilpotent matrix, (2) classes with non-invertible and non-nilpotent, and (3) classes with invertible matrices. In fact, there are 14 classes. Therefore, we only need to consider 14 matrices that are representative of each class.
(1) Nilpotent (3 Representatives)
Obviously, these matrices are none recursive and will not be considered as a constituent encoder of turbo code
(2) Non-Invertible and Non-Nilpotent (5 Representatives)
Encoder with these 4 state matrices will give a disconnected memory. The encoder with disconnected memory will not give the best d2 needed by turbo codes [10].
Since A83+I3 is non-invertible, according to Theorem 1 the encoder (A,B,C,D) either is not minimal degree or it is not tail-biting for some information sequences. For examples, a) take B=[1 1 1]T, we have BA=[0 1 0]T and BA2=[1 0 1]T. Then (EQ-3) has no solution for many information sequences of size >2; b) take B=[1 1 0]T, then the encoder can be reduced to a degree 2 encoder (A′,B′,C′,D) with
(3) Invertible (6 Representatives)
A9=I3 which gives a disconnected memory encoder.
The encoders with these matrices have disconnected memory.
The turbo code of Rel.6 uses convolutional encoder with A13 as a state matrix. Further more we have
Moreover, we have
Furthermore, we can have the following proposition.
Proposition 1 Let A=A13 or A14. Then for any positive integer n=7q+i, 0≦i≦6,
We may extend Proposition 1 to the following.
Proposition 2 Let m=2,3,4,5,6. There exists an m×m binary matrix A such that A2
New Tail-Biting Termination Method for Arbitrary Information Length
Proposed Tail-Biting Termination for Arbitrary Number of Information Symbols
This novel approach of performing tail-biting is based on Proposition 1. In the following we only give the method for m=3 since the most likely 3GPP LTE will adapt 8 states turbo code. For the case m=2 and m>3 the method is similar.
Let (A,B,C,D) be state space realization of the 8 states convolutional encoder with A being similar to either A13 or A14 listed in the last section.
(1) Pre-compute the followings states for i=1,2,3,4,5,6
(2) Pre-store the above 42 index-state pairs as a look-up-table L(i,b(2))=Si,b, where b=1,2,3,4,5,6,7 and b(2) is the 3 bits binary representation of b. Moreover, let L(i,0)=0 state.
(3) Tail-biting encoding method for information block size=k. Let u0,u1, . . . ,uk-1 be the information symbols (or bits).
The novel tail-biting termination approach provided herein offers significant improvement over previous approaches. This novel means provides for more flexibility that other means. For example, any block size or any sized input sequence (i.e., any number of information symbols or bits in the input sequence) can benefit from the tail-biting termination approach provided herein. In addition, the novel approach presented herein has less overhead that other approaches. At most 1 symbol (or 1 bit) overhead may be required. In most cases, there is no overhead at all as no extra symbols (or bits) are required to ensure the tail-biting termination. Also, the novel means provided herein has relatively better throughput/data rate than those approaches which merely adding 2m overhead termination symbols (or bits) for a 2m (i.e., 2̂m) state convolutional code such as that used in 3GPP Rel.6 turbo codes and other turbo codes. The approach of merely adding 2m overhead termination symbols (or bits) reduces throughput and data rate. The novel approach presented herein also has relatively better performance that other approaches. In this novel approach presented herein, all the bits (including the at most one symbol (or bit) that may be padded to the input sequence) are interleaved within the turbo encoding. Compared to other approaches, such as those that employ the 2m overhead termination symbols or bits (e.g., the 6 termination symbols or bits required in an 8 state encoder, 3 6 termination symbols or bits to each of the constituent encoders), those 2m overhead termination symbols or bits are not interleaved. In the novel approach presented herein, all of the symbols or bits of the input sequence (including the at most one symbol (or bit) that may be padded to the input sequence) undergo the interleaving.
Above, it is shown that no prior art approach can provide complete operation of tail-biting for all constituent encoders (e.g., as employed within a turbo encoder) for all information sequence sizes.
Herein, a novel approach is made for tail-biting termination for all possible sizes of input sequence that may be provided to a turbo encoder. In one instance, this can be applied to all input sequence sizes that may be employed for 3GPP LTE turbo coding. In addition, only at most 1 overhead symbol or bit may be required to be padded to the input sequence to achieve the tail-biting functionality. Other prior art approaches, need at least 2m symbols or bits when operating using a turbo encoder whose constituent encoders have 2m (i.e., 2̂m) states.
For one illustrative example, when considering the 3GPP LTE turbo coding, then according to this novel means presented herein, at most one dummy symbol or bit is added to 1/7 of all possible input sequence sizes. In that application (3GPP LTE turbo coding), there is no extra symbol or bit (i.e., no padding at all) that needs to be added to the other 6/7 input sequence sizes. This novel approach allows tail-biting termination for input sequences that include information block sizes of any arbitrary size. The novel tail-biting approach presented herein can be used for a turbo coding system that support an arbitrary information bits within its input sequence. In fact, this novel approach presented herein can be applied to all communication system as it can support an arbitrary number of information bits. For example, the turbo coding such as that being designed for 3GPP LTE, in which various sized input sequence sizes should be supported, can benefit significantly from this novel approach's ability to accommodate any input sequence size.
Moreover, the novel means presented herein introduces no performance as compared to the undesirable loss introduced within those prior art approaches than implement the termination outside of the interleaver of the turbo encoder (i.e., in those prior art approaches, the at least 2m symbols or bits employed for termination do not pass through the interleaver of the turbo encoder).
The present invention has also been described above with the aid of method steps illustrating the performance of specified functions and relationships thereof. The boundaries and sequence of these functional building blocks and method steps have been arbitrarily defined herein for convenience of description. Alternate boundaries and sequences can be defined so long as the specified functions and relationships are appropriately performed. Any such alternate boundaries or sequences are thus within the scope and spirit of the claimed invention.
The present invention has been described above with the aid of functional building blocks illustrating the performance of certain significant functions. The boundaries of these functional building blocks have been arbitrarily defined for convenience of description. Alternate boundaries could be defined as long as the certain significant functions are appropriately performed. Similarly, flow diagram blocks may also have been arbitrarily defined herein to illustrate certain significant functionality. To the extent used, the flow diagram block boundaries and sequence could have been defined otherwise and still perform the certain significant functionality. Such alternate definitions of both functional building blocks and flow diagram blocks and sequences are thus within the scope and spirit of the claimed invention.
One of average skill in the art will also recognize that the functional building blocks, and other illustrative blocks, modules and components herein, can be implemented as illustrated or by discrete components, application specific integrated circuits, processors executing appropriate software and the like or any combination thereof.
Moreover, although described in detail for purposes of clarity and understanding by way of the aforementioned embodiments, the present invention is not limited to such embodiments. It will be obvious to one of average skill in the art that various changes and modifications may be practiced within the spirit and scope of the invention, as limited only by the scope of the appended claims.
The present U.S. Utility Patent Application claims priority pursuant to 35 U.S.C. § 119(e) to the following U.S. Provisional Patent Application which is hereby incorporated herein by reference in its entirety and made part of the present U.S. Utility Patent Application for all purposes: 1. U.S. Provisional Application Ser. No. 60/847,773, entitled “Tail-biting turbo code for arbitrary number of information bits,” (Attorney Docket No. BP5739), filed Sep. 28, 2006, pending.
Number | Date | Country | |
---|---|---|---|
60847773 | Sep 2006 | US |