The invention relates to a method and arrangement for enhancing a search through a trellis, in which at each stage of the trellis a certain set of state indexes of the stage are selected for continuation.
The channel used in telecommunications systems often causes interference to data transmission. Interference occurs in all kinds of systems, but especially in wireless telecommunications systems, the transmission path attenuates and distorts in many different ways the signal being transmitted. The multipath propagation of the signal, different fades and reflections, and other signals being transmitted on the same transmission path typically cause interference on the transmission path.
To reduce the impact of the interference, several coding methods have been developed to protect signals from interference and to correct erroneous bits. Convolutional coding is a widely used coding method. In convolutional coding, the signal to be transmitted that is made up of symbols is coded into code words that are based on the convolution of the symbols to be transmitted either with themselves or with another signal. The coding ratio and generator polynomials define the convolutional code. The coding ratio (k/n) refers to the number (n) of the produced coded symbols in relation to the number (k) of the symbols to be coded. The encoder is typically implemented by means of a shift register and xoring devices. The constraint length (K) of a code often refers to the length of the shift register. The encoder can be considered a state machine having 2K−1 states.
A receiver decodes the encoded signal that propagated through the channel. A convolutional code is usually decoded using a trellis whose nodes describe the states of the encoder used in coding the signal, and the paths between the nodes belonging to different stages of the trellis describe the allowed state transitions. A decoder tries to find out the consecutive states of the encoder, i.e. the transitions from one state to another. To find out the transitions, the decoder calculates metrics, of which there are two types: path metrics (or state metrics) and branch metrics. Path metrics represent the probability of the set of symbols in the received signal leading to the state described by the node in question. Branch metrics represent the probabilities of different transitions.
A convolutional code is usually decoded by means of the Viterbi algorithm. The Viterbi algorithm is a computationally demanding task. A general problem with the Viterbi algorithm is that when the constraint length is long (e.g. 9, as in WCDMA of the UMTS system), the Viterbi algorithm must search through 2(9−1), i.e. 256, states to decode one bit. Efficient signal processing algorithms are still being searched for wireless telecommunications systems in particular, in which the aim is to minimize the size and power consumption of subscriber terminals. A computationally efficient algorithm for speech or data decoding is the M algorithm that is a search algorithm simplified from the Viterbi algorithm. Using the M algorithm makes it possible to reduce the number of searched states, because only the M best paths are selected for continuation in the trellis stages instead of all paths. When a suitable value is selected for M, the performance of the decoder does not, however, degrade significantly. For instance, in the above-mentioned system, M can obtain the value 128, i.e. half of the possible paths are selected for continuation at each stage.
One problem with the use of the M algorithm is the selection of paths for continuation amongst all paths. Typically, the sorting of n elements requires n2/2 comparison operations, and this is a computationally demanding task. Let us assume that the decoding of one bit by DSP (digital signal processing) in WCDMA requires approximately 500 clock cycles when a full search algorithm is used. If the M algorithm is used, the number of states to be searched is smaller but correspondingly, sorting increases the complexity. When sorting 16 elements, 128 comparison operations are required. Thus using the M algorithm with the best 16 paths leads to almost the same complexity as a full search algorithm. If a 256-state code is used, a full sort requires n2/2, i.e. 32768 comparisons. A full search is too complex an operation to implement by the traditional methods.
One known solution for implementing the M algorithm is disclosed in publication S. J. Simmons: A Nonsorting VLSI structure for implementing the (M,L) algorithm, IEEE Journal on Selected Areas in Communications, Vol. 6, No. 3, April 1988, pages 538 to 546. The disclosed solution does not perform the actual sorting, but examines several different path metrics at the same time, starting from the most significant bit. While the different paths are examined, decisions are made on keeping or rejecting the routes. If the examined route is opposite to an already selected route, it is rejected. However, the solution disclosed in the publication works poorly in situations where the trellis is large, as in WCDMA of the UMTS system, for instance.
The trellis structure is used not only in the decoding of convolutional codes, but also in several other applications, such as channel equalization. The same above-mentioned problems also apply to these solutions, when the size of the trellis increases.
Thus, to minimize the size and power consumption of devices, more efficient methods than before are needed for searching through a trellis, methods that are fast and whose implementation as ASIC structures does not require much space.
It is an object of the invention to provide a method and an apparatus implementing the method in such a manner that a restricted trellis search is possible to perform more advantageously than before. This is achieved by a method for enhancing a search through a trellis, in which at each stage of the trellis a certain set of state indexes of the stage are selected for continuation. The method of the invention comprises the steps of dividing the state indexes being processed into more than one subset at each stage of the trellis, defining the path metrics of the state indexes in the subsets, selecting from each subset a predefined number of state indexes for continuation on the basis of the metrics.
The invention also relates to an arrangement for enhancing a search through a trellis in a detector that is arranged at each stage of the trellis to select a certain set of state indexes of the stage for continuation. In the arrangement of the invention, the detector is arranged when calculating each stage of the trellis to divide the state indexes being processed into more than one subset, to define the path metrics of the state indexes in the subsets, to select from each subset a predefined number of state indexes for continuation on the basis of the metrics.
Preferred embodiments of the invention are described in the dependent claims.
The invention is based on the idea that by dividing the state indexes being processed into subsets, it is possible to reduce substantially the number of necessary comparisons. For instance, for a 256-state code when using 32 subsets having 8 states in each, the number of comparisons required for sorting is 32*(8*8)/2, i.e. 1024. In comparison with the 32768 comparisons required in the prior art, the reduction is 32fold. In addition, because some preferred embodiments do not require a full sort, but only the definition of the best values in each subset, the number of computations can further be reduced.
The method and arrangement of the invention thus provide several advantages. Implementing preferred solutions of the invention in a receiver is simple. The M algorithm has not been utilized much in practice, because of its complexity. By means of the present solution, the M algorithm can be efficiently utilized. Because the solution examines fewer states than the Viterbi algorithm, less memory is required for calculating the paths. This results in savings in equipment costs. Further, the power consumption of the receiver decreases, because there is less computation and less memory space is needed. However, the solution provides a sufficient performance that in practice is equal to that of the earlier methods.
Especially in connection with high data rates, the present solution provides a significant benefit, because then the size of the trellis is typically large. Large trellises also need to be used for instance when several antennas, complex modulation methods and strong codes are used in transmission and reception. Decoding large trellises increases the number of required computations, and in such a situation, the present solution helps reduce the number of computations.
The solutions of the preferred embodiments can be utilized in all applications using a trellis. In addition to the above-mentioned decoding of convolutional coding, such applications include the decoding of other types of codes, equalization, multiuser decoding and speech recognition.
The invention will now be described in more detail by means of preferred embodiments, with reference to the attached drawings, in which
The method of the invention can be applied to any system having a trellis structure. One target of use is decoding, for instance the decoding of a convolutional code, block code, turbo code or space-time code. Other targets of use include equalization, speech recognition algorithms, source encoding, and trellis-coded quantization (TCQ). In the following, the invention is described by applying it to a digital cellular system, such as the GSM system or the UMTS system, in decoding a convolutional code, without limiting the invention to this, however.
With reference to
On the radio path 108, the signal is corrupted by the propagation channel. The receiver 102 comprises an antenna 214, with which it receives the signal that is taken to a demodulator 218 through radio frequency parts 216. The demodulated signal is taken to a detector 220, in which the signal is decoded, equalized and detected according to the preferred embodiments of the invention. From the detector, the signal 222 is taken on to other parts of the receiver.
Next, an example of using a trellis with a Viterbi decoder is described in more detail by means of
In the conventional Viterbi algorithm, all paths and nodes are checked. When using the M algorithm, only M paths are selected for continuation at each stage. If M equals the number of all states, then this is a plain Viterbi algorithm. The M algorithm is known per se to a person skilled in the art and is not described in more detail herein. Reference is made to publication Schlegel: Trellis coding, IEEE Press, ISBN: 0-7803-1052-7, pages 153 to 189.
Let us now examine a preferred embodiment of the invention by means of
In step 500 (corresponds to step 402 of
Let us next examine how the state indexes 400 being processed are divided into different subsets. In one embodiment, the division is performed randomly. However, so as to make the partial sort and the selection of a certain number of indexes occurring in the subsets as efficient as possible, the metrics of the state indexes should preferably differ from each other. If the state indexes differ from each other only a little, “good” and “bad” state indexes cannot very reliably be distinguished from each other. This is why some preferred embodiments of the invention use the following criteria when selecting state indexes for subsets.
Let us assume that herein S is the number of states in the used convolutional code. Let us mark with the letter D the maximum of all the least-weight paths from state 0 to state s, where s=0, 1, . . . , S−1. Let r be the received signal, i.e. the signal in the input of the decoder, and correspond to one channel symbol. Due to the linearity of the code, the difference between any two path metrics is smaller than or equal to
D·max|r|.
Herein, | | refers to an absolute value. The above value thus represents the highest difference between any two path metrics. One possible criterion in selecting state indexes for subsets is that first the shortest distances between the path metrics are defined for the state indexes to be put into each subset and then the state indexes are selected for the subsets in such a manner that the shortest unencoded distance between subsets is maximized.
A second possible criterion is to define the shortest distances between the path metrics for the state indexes to be put into each subset and to then select the state indexes for the subsets in such a manner that the sum of the smallest unencoded distances of the subsets is maximized.
Let Ds, s′ be the weight of the path which is the difference between the found paths that end in the states s and s′ with the smallest unencoded weight. In other words, it is the weight for the difference that is between the paths that end in the states s and s′ and branch off from each other at the earliest possible point when examined backward from the points s and s′.
The figure shows that Ds, s′ behaves fractally. The matrix of
In a preferred embodiment, the state indexes are selected for the subsets in such a manner that within each subset, the state indexes differ from each other by a value that is a power of two. Thus, if there are 256 states, for instance, then the states {i, i+32, i+64, i+96, i+128, i+192, i+224} are selected for state i.
Let us next examine an example that illustrates a simulation performed by means of a solution of a preferred embodiment. Let us assume that the coding ratio is 1/2, the length of the frame 300 bits, and that the channel has white Gaussian noise. The code comprises 256 states, and the value of M is half the number of states, i.e. 128. The number of subsets is 32, each having 8 elements. The states for a subset are selected according to the earlier paragraph, i.e. the states {i, i+32, i+64, i+96, i+128, i+192, i+224} are selected for state i. This means that the sum of Ds, s′ between all states of the subset obtains the value 240. The minimum value of Ds, s′ in the subset is 7, and the maximum is 10.
The above conditions produce the performance according to
Let us next examine some implementations with which a desired number of state indexes in a subset can be selected for continuation. Let us assume herein that 2M=S, i.e. half of the state indexes in each subset is always selected for continuation. This restriction is only selected to simplify the example and does not restrict the preferred embodiments in general.
First the inputs A, B, C and D of the multiplexers 812A to 812D are connected to the MAXMIN units, and the outputs of the latter are taken to the delay units 816A to 816D. The outputs of the delay units are taken back to the multiplexers 812A to 812D that during the next clock cycle connect these inputs to the MAXMIN units. The outputs of the delay units 816A and 816C provide the values 818, 820 selected for continuation. The consecutive MAXMIN units of
In the preferred embodiments of the invention, the detector of the receiver is thus arranged to divide the state indexes being processed into more than one subset, to define path metrics for the state indexes in the subsets and to select from each subset a predefined number of state indexes for continuation on the basis of the metrics. These operations can be performed in the detector either by program or as a hardware implementation. The connections and programming can preferably already be done when designing the detector for the receiver, because they usually need not be changed during use.
Even though the invention has been explained in the above with reference to examples in accordance with the accompanying drawings, it is apparent that the invention is not restricted to them but can be modified in many ways within the scope of the inventive idea disclosed in the attached claims.
Number | Date | Country | Kind |
---|---|---|---|
20012487 | Dec 2001 | FI | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/FI02/00955 | 11/27/2002 | WO |