US 20070162837 A1 Abstract An arrangement and method for decoding a convolutionally encoded codeword employs a window sliding over the codeword. Path metrics are computed simultaneously forwards and backwards in the sliding window. A decoding result is computed in a synthesis unit on the basis of the path metrics. The sliding window is divided into four parts. Path metrics are computed in the forward direction in the first part of the sliding window and stored in a four-part memory. Path metrics are computed in the backward direction in two other parts of the sliding window in such a way that the input of the computation units comes from the four-part memory; the computed metrics are applied to the synthesis unit; and a decoding result is computed.
Claims(5) 1. A method comprising:
decoding a convolutionally encoded codeword by means of a window sliding over the codeword, which method comprises computation of path metrics simultaneously forwards and backwards in the sliding window, the method further comprising:
a) using a four-part sliding window comprising four successive parts;
b) computing path metrics in the forward direction only in a first part of the four successive parts of the sliding window and storing path metrics in a four-part memory;
c) computing path metrics in the backward direction only in two other parts of the sliding window in such a way that an input for a computation unit comes from the four-part memory;
d) taking the computed metrics to a synthesis unit and computing a decoding result;
e) moving the sliding window one part forwards; and
f) repeating the preceding steps a) to e).
2. A method according to 3. A method according to 4. A method according to 5. A method according to Description The disclosed embodiments relate to a method and an arrangement for decoding a convolutionally encoded codeword. The transmission channel used for data transmission in telecommunication systems frequently causes disturbance for data transmission. Disturbance occurs in all kinds of systems, but in wireless telecommunication systems, in particular, the transmission path attenuates and distorts the signal to be transmitted in many ways. Disturbance on the transmission path is typically caused by multi-path propagation of a signal, different kinds of fading and reflection and also by signals transmitted on the same transmission path. In order to reduce the effect of the disturbance, various encoding methods have been provided, the purpose of which is to protect the signal against disturbance and to eliminate errors caused by the disturbance in a signal. One efficient encoding method is convolutional encoding. In convolutional encoding the signal to be transmitted, consisting of symbols, is encoded into codewords by convolving the symbols to be transmitted with polynomials of a code. The convolutional code is defined by a coding rate and coding polynomials. The coding rate (k/n) refers to the number of the encoded symbols (n) in relation to the number of the symbols to be encoded (k). The encoder is often implemented by means of shift registers. The constraint length K of the code often refers to the length of the shift register. The encoder may be regarded as a state machine with 2 One encoding method further developed from the convolutional encoding method is a parallel concatenated convolutional code PCCC, which is called a turbo code. One way to form a PCCC code is to use two recursive systematic convolutional encoders and an interleaver. The convolutional encoders may be similar or different. The resulting code comprises a systematic part, which directly corresponds to the symbols at the input of the encoder, and two parity parts, which form the outputs of the parallel convolutional encoders. The function of the receiver is thus to decode the encoded signal, which has propagated over the transmission path and has often been distorted in many ways. The convolutional code is generally decoded by means of a trellis corresponding to the state machine of the encoder. The trellis expresses the states of the encoder and the transitions between the states with the required codewords. The purpose of the decoder is thus to determine the sequential states, i.e. the transitions, of the encoder from one state to another. In order to determine the transitions in the decoder, branch metrics are used, which illustrate the probabilities of different transitions. The branch metrics are proportional to the logarithms of the transition probabilities. Hence, the sums of the metrics correspond to the sums of the probabilities. Small metrics correspond to a high probability. In connection with turbo codes, in particular, iterative decoding methods are applied, which use soft bit decisions. A soft decision comprises a bit decision and a probability that the decision is correct. These methods are usually based on the known Maximum A Posteriori (MAP) algorithm, which functions by means of symbols. The original MAP algorithm, disclosed in connection with turbo codes in publication Berrou, Glavieux, Thitimajshima: The use of both the MAP and the MaxLogMap involves an extensive memory requirement. In iterative computation, data is taken from the preceding iteration to the next iteration round in the form of an extrinsic weight coefficient. In order to compute the weight coefficient, one must know the values of the path metrics in the trellis, computed both forwards and backwards. In both directions, the current values of the path metrics are computed on the basis of the preceding values, and the computation goes in opposite directions along the received signal. This means that the metrics of one direction of travel should be stored in a memory to await the computation going in the opposite direction. For example, if the number of the original uncoded bits is N=5,000 and an eight-state code is used, the amount of the available memory should be 8*N, i.e. 4,000 units, and assuming that the word width is 16 bits, the memory requirement would be 80 kB, which is a large amount, implemented by means of today's techniques. The exemplary numerical values used herein correspond to parameters of novel telecommunication systems. The memory requirement can be reduced by using what is known as the sliding window principle. Here, for example, the metrics to be computed forwards are computed as a continuous function, whereas the metrics going backwards are computed inside the window sliding over the received signal to be transmitted. The problem relating to this is that at the end of the window (seen from the direction of forward-going computation), the values of the metrics to be computed backwards are not known. However, this problem is eliminated by the well known feature of path metrics, according to which, irrespective of the values used at the beginning, the numerical values converge into the correct values after path metrics have been computed for a while. “Learning” period computation must therefore be performed at the beginning; in other words, there is a warm-up period, after which the correct values are found. The length of the learning period depends on the constraint length of the code. It is well known that a good result is achieved if the learning period is about five times the constraint length of the code. Solutions of this kind utilizing the sliding window technique are disclosed in the above-mentioned publication by S. Benedefto et al. and in U.S. Pat. No. 5,933,462, for example. The amount of required memory may thus be reduced. However, there are still other drawbacks in the solutions disclosed. The solutions require a relatively complex control system and multi-port memory elements from which several memory locations can be read simultaneously. An object of the invention is thus to implement a method and an arrangement implementing the method for advantageously decoding a convolutional code. This is achieved by a method of decoding a convolutionally encoded codeword by means of a window sliding over the codeword, which method comprises computation of path metrics simultaneously forwards and backwards in the sliding window and computation of a decoding result in a synthesis unit on the basis of the path metrics. In the method according to the invention, a) a four-part sliding window is used; b) path metrics are computed in the forward direction in the first part of the sliding window, and the path metrics are stored in a four-part memory; c) the path metrics are computed in the backward direction in two other parts of the sliding window in such a way that the input of the computation units comes from the four-part memory; d) the metrics computed are applied to a synthesis unit, and a decoding result is computed; e) the sliding window is moved one part forwards; and f steps a) to e) are repeated. The invention also relates to an arrangement for decoding a convolutionally encoded codeword over the codeword by means of a sliding window, which arrangement comprises a first memory for storing the codeword; first, second and third computation means for computing path metrics forwards and backwards; a synthesis unit for computing a decoding result on the basis of the path metrics; and a second memory element for temporary storage of the path metrics. In the arrangement according to the invention, the first computation means are arranged to read codeword symbols from the first memory, to compute path metrics in the forward direction in the first part of the four-part sliding window of a given length and to store the path metrics in the second memory; the output of the second memory is connected to the inputs of the second and third computation means; the second and third computation means are arranged to compute path metrics in the backward direction in two other parts of the sliding window; the outputs of the second and third computation means and the output of the second memory are functionally connected to the input of the synthesis unit; and the arrangement comprises control means, which are arranged to move the sliding window one part forwards, until the end of the codeword is reached. Preferred embodiments of the invention are disclosed in the dependent claims. A sliding window is thus applied in a solution according to the invention. Thanks to this, the amount of the required memory is small. In solutions according to preferred embodiments of the invention, the sliding window is divided into four parts and moved forwards by a quarter step. The computed forward-going path metrics are stored into the four-part memory, the storing always going in the same direction, and the input data of the backward-going path metrics is read from the four-part memory, always going in the same direction, yet in the direction opposite to the direction of storing the forward-going metrics. The solution first applies computation of forward-going metrics to the received signal and only after this computation of backward-going metrics. A solution utilizing a four-part window is preferable in the sense that it is easy to control the writing and reading in the memory, because there is no need to change writing and reading directions when the window moves. Another significant advantage is that the signal memory does not have to be a double-port memory, because the signal is read once per sample during one round. This is done when the forward-going metrics are being computed. The backward-computing metrics units read data stored by the forward-going metrics unit from the auxiliary memory. The invention will now be described in more detail in connection with preferred embodiments, with reference to the attached drawings, of which With reference to On the radio channel In practice, the interleavers MaxLogMap computation performed in the decoder units comprises three main parts: forward-going computation of path metrics, backward-going computation of path metrics, and combination of the path metrics computed forwards and backwards in order to compute a new extrinsic weight coefficient and a soft decision. The new extrinsic coefficient is applied to the next iteration round to serve as an input parameter, and a hard bit decision is made from the sign of the soft decision. Let us now study an example of decoder operation. It is to be noted that, as is obvious to a person skilled in the art, the arithmetical operations presented only represent one way to implement the desired computation. The solution according to the invention may also be applied in other decoding computation methods. For example, various correction terms may be used. Let us consider path metrics of state s of α The branch metrics of the allowed state transition between the states of the encoder and between state s′ of time k and state s of time k+1 are denoted by y k(S′,s), and they may be given a numerical value in connection with MaxLogMap in the case of one parity as follows:
The path metrics going forwards are computed by the formula
That is, the value of the path metrics α The backward-going path metrics β -
- β
_{N}(0)=10000 and β_{N}(s)=−β_{N}(0), when s=1, 2, 3, 4, 5, 6, and 7; and - β
_{k}(S′)=max (β_{k+1}(S)+γ_{k}(s′,s)) when k=N−1, N−2, . . . ,**1**,**0**.
- β
Here, too, but backwards, the value of the path metrics β The parity part of branch metrics Y where y The weight coefficient O where the greatest sum is selected as the weight coefficient O where the greatest sum is selected as the weight coefficient γ The new extrinsic weight coefficient uE and the weight coefficient B where E Let us now consider a solution according to a preferred embodiment of the invention for performing decoding in a decoder unit according to The unit computing forwards continuously performs computation at the beginning of the sliding window, while, taking turns, one of the units computing backwards performs the learning period, i.e. the warm-up period, and the other performs useful computation. The backward-computing units use the values in the memory element as their input. The reading directions of the memory element always stay the same. The method is illustrated by The systematic samples S The forward-going computation unit (F) the number of the part of the second memory in use is (k div Here, a div b refers to the integer part of quotient a/b. The number of a cell of this part of the second memory to store output records at time k is (k modulo One memory cell comprises the following information: the forward-going path metrics, the intrinsic weight coefficient, the numerical value of the parity and the address of the memory location from where the extrinsic weight coefficient was retrieved: -
- α
_{k}(O), α_{k}(**1**), α_{k}(**2**), α_{k}(**3**), α_{k}(**4**), α_{k}(**5**), α_{k}(**6**), α_{k}(**7**) (path metrics) - (S
_{k}+E_{k}) (intrinsic weight coefficient (sum as computed)) - P
_{k }(parity) - index (k or the k
^{th }element of the interleaver)
- α
Simultaneously with the forward-going computation of path metrics, the second backward-going computation unit of path metrics performs the learning period. If (k div -
- ((k div
**32**)+3) modulo**4**of the second memory - from the memory location
**31**—(k modulo**32**).
- ((k div
The backward-going path metric values which have been computed during the learning period are not utilized, but the aim is to store the path metric values corresponding to the last index of the period to be used as an estimate of the correct values for the path metrics. This can be implemented in such a way, for example, that the utilization of the path metrics begins at the last numerical values. Further, simultaneously with the preceding functions, the second backward-going computation of path metrics, which is B -
- ((k div
**32**)+1) modulo**4**of the second memory
- ((k div
from the memory location There are no activities in the part of the second memory of number ((k div Computation of backward-going path metrics is re-initialized after each period of 64, whereby it is in the warm-up mode during the next 32 samples, in other words it is performing the learning period, after which it begins to produce usable data for computation of a new extrinsic weight coefficient, a soft decision or a hard At the initial situation, the first useful learning period starts at time k=64, and the next starting times of the learning period are k=64+n*32, n=0, 1, 2, 3, . . . Unit B
The above Table 1 illustrates the use of the parts of the second memory by means of a state machine during decoding. The left column illustrates the different states of the state machine in binary form. The above states are defined by the equation
Columns M The unit computing forwards in state The unit computing forwards in state The unit computing forwards in state The unit computing forwards in state When an example of a general situation is studied, the length of the quarter window is denoted by L and the length of the learning period by W. These may be of different lengths, for example L=2*W, whereby the size of the parts of the memory is doubled but the number of the learning periods to be performed is reduced. However, L≧W. As regards the implementation, powers of two are preferable, because then the computation of the required control information is simple, for example L=W=32 or L=64 and W=32. Thus, it is marked -
- L=length of the quarter window
- W=length of the learning period
- N=number of the bits to be decoded, k=0, 1, 2, . . . , N−1
The forward-going path metrics are written together with other data in the record in the part number -
- (k div L) modulo
**4**of the second memory using the address k modulo L.
- (k div L) modulo
The learning period is performed by B -
- (k div L+3) modulo
**4**and the addresses L−1—(k modulo L).
- (k div L+3) modulo
Correspondingly, the learning period is performed by B Useful backward-going path metrics are produced by B -
- (k div L+1) modulo
**4**and addresses L−1—(k modulo L).
- (k div L+1) modulo
When the symbols to be decoded run out, the decoding must be stopped in a controlled manner, depending on the termination used in connection with the encoding. Let us consider, by way of example, stopping of conventional termination in a case where L=W=32. This takes place in such a way that the forward-computing unit stops its operation when k=N, but the backward-going units continue their operation, until k=K=N+31−[(N−1) modulo 32]. After this, another backward-going unit, for example B Termination in connection with what is called cyclic termination takes place as above, except that the initial values that the learning period gave at the beginning of the block in state 01 are set as the initial values of B When there is no termination at all, the stopping takes place in connection with conventional termination, but values favouring all path metrics equally are set as the initial values of B While the invention has been described above with reference to the example according to the attached drawings, it is obvious that it is not limited thereto but may be modified in many ways within the inventive idea defined by the attached claims. Referenced by
Classifications
Legal Events
Rotate |