The present invention relates to a Viterbi decoder with differential processing, consisting of separate data processing for output decoding and for local cyclic state metric update, i.e. a differential locally updating Viterbi decoder.
Viterbi decoders are employed in several modern telecommunication systems as a part of their forward error control mechanisms. Viterbi decoders are used in wireless local area, networks, digital cellular phones, satellite communication, digital video broadcasting and digital wireless receivers. They are also employed in ultra-wideband (UWB) systems ideally suited for short-range and high-speed data transmission.
A Viterbi decoder usually consists of many arithmetic computation blocks, which are connected together in an upper hierarchy level. In each block the typical functional units are branch metric calculation unit, add-compare-select unit and path memory unit. The branch metric calculation unit calculates the likelihoods of all the possible codewords for the received channel output sequence. The add-compare-select unit updates the probabilities of the state transitions according to the new branch metrics, compares the two competitive probabilities (i.e. paths) of each block and selects the most probable path. The probabilities of different states and transitions between the states are memorized into the path memory.
In a Viterbi decoder network the transitions between the states as a function of time are described with the aid of a trellis diagram. The states in a trellis diagram represent the memory content of the encoder. The encoder is a finite state machine and its code rate is defined as the number of input bits to output bits. The constraint length of the encoder is a measure of the memory within a code. The encoded codewords are produced by modulo-two adders. In the encoding phase it is usually assumed that the encoder is initially loaded into the zero-state. Depending on the first input bit, there are two possible states in the encoder after one clock cycle. Each of these states has again two possible state transitions. The trellis diagram is expanded until it reaches its overall size (the maximum number of states), determined by the number of memory elements in the encoder. After a fixed number of bits the most probable path through the trellis diagram is determined by the Viterbi algorithm.
The Viterbi algorithm determines the maximum likelihood path through the trellis diagram for a received noisy bit stream. The maximum likelihood path is characterized with the aid of a branch metric and a path metric. The branch metrics represent the probabilities of receiving the signal for the encoder output sequence. The branch metrics accumulated through the state transitions construct a path metric. The path metrics from the initial state to the current state are stored as state metrics of the decoder. After the trellis diagram is expanded into the maximum number of states, there are two competing paths entering each state, from which the decoder discards the path more distant from the observation. The retained path is stored into the path memory as a survivor metric. After a fixed number of input bits the maximum likelihood path is traced back from the final stage to the initial stage with the aid of the contents of the path memory. Because of the trace-back procedure the selection of a suitable path memory structure requires a trade-off between speed and performance.
Elimination of a speed-performance trade-off in path memory design requires decoding on other basis than the survivor memory. The path memory unit is also the only digital computation block in the decoder utilizing analogue processing techniques, whereas an analogue to digital converter is used together with digital Viterbi decoders.
In modern high-speed applications, an analogue Viterbi decoder eliminates the need for a high-speed and power consuming analogue-to-digital converter due to the analogue characteristics of the received noisy sequence. Since the path memory unit is the only digital building block in many Viterbi decoder realizations utilizing analogue processing techniques, a pure analogue Viterbi decoder can be constructed if the requirement for the digital path memory unit can be avoided.
Some analogue implementations for avoiding the speed bottlenecks of the digital Viterbi decoder together with the exclusion of the analogue-to-digital converter from the decoder front end have been described. In M. H. Shakiba, D. A. Johns, K. W. Martin ‘An integrated 200-MHz 3.3-V BiCMOS class-IV partial response analog Viterbi decoder’, IEEE journal of solid-state circuits, vol. 33, January 1998 an analogue Viterbi decoder with a digital register-exchange path memory was proposed. It was shown that this prior art can be realized by utilizing a few simple analogue building blocks. The robustness of this prior art to the various fabrication imperfections was also verified by simulations.
In an article by K. He, G. Cauwenberghs, ‘Integrated 64-state parallel analog Viterbi decoder’, proceedings of the IEEE international symposium on circuits and systems, May 2000 a mixed-signal architecture for state-parallel Viterbi decoder, including analogue Add-Compare-Select module and digital path memory, was proposed. The second prior art used a (177,133) convolutional code with a code rate of one half and constraint length of seven. Parallel state metric calculation enables the convolutional codes with constraint lengths up to seven to be used, which increases the coding gain of the Viterbi decoder as compared to convolutional codes with smaller constraint lengths. In the second prior art, branch metric calculation, path metric accumulation, comparison and selection are included in the Add-Compare-Select module. The second prior art does not eliminate all the challenges of the Viterbi decoder design for high-speed applications: it utilizes trace-back digital path memory for storing the survivor path information. Furthermore, the path memory is also applied for generating the decoded output by tracing back the optimal path through the trellis diagram according to the contents of the path memory.
In an article by A. Demosthenous, J. Taylor, ‘A 100-Mb/s 2.8-V current-mode analog Viterbi decoder’, IEEE journal of solid-state circuits, vol. 37, no. 7, July 2002 the first current-mode analogue Viterbi decoder is described. The third prior art realized an analogue Viterbi decoder with a few simple building blocks. In the third prior art, a technique for relaxing the main source of cumulative analogue errors is proposed. This prior art is not well suited for convolutional codes with large constraint lengths because it utilizes a register-exchange digital path memory, which is known to be complicated to design for larger codes. The third prior art proposed a 4-state hybrid Viterbi decoder with a constraint length of three and the area of the digital memory is about two thirds of the analogue Viterbi decoder core.
In a mixed-mode Viterbi decoder consisting of an analogue processing core and a digital path memory the high-speed operation requires a register-exchange type path memory structure. For larger convolutional codes a reasonable coding gain is conventionally achieved by a trace-back type of path memory, which is less complicated to design and requires considerably less area. This trade-off between speed and performance can be avoided if a pure analogue Viterbi decoder is designed, where the need for the digital memory is eliminated. In U.S. Pat. No. 6,968,495, ‘Super high-speed Viterbi decoder using circularly connected 2-dimensional analog processing cell array’, the path memory is excluded and the decoding is accomplished by circulating data around the networks. This fourth prior art employs a two-phase Viterbi decoding scheme. First the accumulated error metrics are calculated by forward processing. Second, decoding is performed by applying a negative triggering wave, which propagates through the network, and monitoring the voltage level simultaneously at the output. This approach complicates the hardware realization of the Viterbi decoder, since the triggering wave takes time K stages to propagate, if the constraint length of the convolutional code is denoted by K.
In an article by A. Demosthenous, C. Verdier, J. Taylor, ‘A new architecture for low power analogue convolutional decoders’, proceedings of the IEEE international symposium on circuits and systems, vol. 1, 1997 a modified feedback decoding algorithm is presented, where the path memory of the Viterbi decoder is excluded by distributing the trellis network into two sub-trellises to model two competing paths (two competing codewords). In this fifth prior art the decision on the maximum likelihood path is made by comparing the minimum values of the two sub-trellises after their expansion into the maximum number of states. The fifth prior art utilizes a symbol storage block to recover the state metrics for consecutive decoding stages and the state metrics. In the fifth prior art the path metrics are reseted to zero after each decoding cycle and the employed decoding depth is several times the constraint length of the convolutional code. Therefore, this approach is not suitable for convolutional codes with large constraint lengths at high data rates. This limits the number of applications, since better error correcting capability can be achieved by applying convolutional codes with larger constraint lengths. Moreover, this prior art is not suitable in modern wireless communication systems, where data rates up to hundreds of megabits are required.
It is an objective of the present invention to overcome or at least mitigate the disadvantages of the prior art. The present invention provides a differential, locally cyclic updating Viterbi decoder that enables the trace-back memory to be excluded, while maintaining the high-speed operation. The purpose of the invention presented here is to enable convolutional codes with larger constraint lengths than in the fifth prior art to be used.
Another purpose of the invention presented here is to achieve higher decoding speed than in the fifth prior art with the aid of local cyclic state metric update. The updating procedure enables a decoding depth of one to be used after the initial loading period, i.e. after the state metrics for all the states have been calculated. The decoder structure presented here is based on consecutive trellis diagram distributing and uniting procedure, which is used for determining the decoded output and for local state metric update between the decoding cycles. According to the present invention the same hardware can be recursively used for the trellis diagram uniting and distributing procedure at consecutive decoding cycles.
Since the state metrics tend to grow monotonically with time the state metrics are reseted to zero between the decoding cycles in the fifth prior art. To overcome this limitation, a path metric renormalization technique based on averaging the path metrics was proposed in the third prior art. To keep the metrics in an appropriate range for the local state metric update, the invention presented here also utilizes a bounding procedure. This procedure can be made also on other basis than the renormalization tehnique presented in the third prior art, e.g. global minimum subtraction and state metric downscaling.
Referring to J. Maunu, M. Laiho, A. Paasio, ‘A differential approach to analog Viterbi decoding’, proceedings of the 49th IEEE Midwest symposium on circuits and systems, the decoding speed of the trellis diagram distribution based decoding proposed in the fifth prior art can be increased by using decoding depth that is equal to one after a trellis diagram expansion into its whole size. In the present invention a local cyclic updating procedure is introduced for this purpose.
In the present invention, the example convolutional codes with a code rate of one half are considered, but the method presented here is applicable also for the codes with other code rates. The state relations of an example convolutional code are illustrated in
The maximum likelihood path through the trellis diagram is the one that has the largest log-likelihood function:
where Cm is the encoder output sequence corresponding to path m and Y is the received analogue signal. The components on the summation are accumulated on the individual paths as branch metrics. For a Gaussian channel the maximum likelihood path is the one with minimum Euclidean distance. In high-speed applications, convolutional codes with one bit redundancy (R=½) are most widely used. The branch metric (BM) calculation for a convolutional code with R=½ can be presented as: BM=(Y1−C1)2+(Y2−C2)2, where Y1 and Y2 are the received output signals and C1 and C2 are the particular codewords associated within a branch.
The branch metrics accumulated along a path construct a path metric. The maximum likelihood path from the initial state to the current state is stored as a state metric. After the trellis diagram has expanded into its overall size, there are two competing paths entering each state. From them, the decoder selects the one, which is closest to the received signal and discards the other. The path metric (PM) update or add-compare-select operation for each state can be described as:
where j denotes the current state and i denotes the set of states, from which the paths are connected to the current state according to the trellis diagram.
In
In
The present invention utilizes distributed trellis diagram to produce the decoded output and reunited trellis diagram for the local state metric update. After the initialization phase, the decoded output is produced on every decoding cycle, since the value of the previous maximum likelihood path is subtracted from the path metrics and the metrics are further downscaled. The differential decoding procedure with a local state metric update is shown in
For a better understanding of the present invention and in order to show how the same may be carried into effect reference will now be made, by way of example, to the accompanying drawings, in which:
The differential Viterbi decoder described in the present invention consists of two sub-trellises.
The differential Viterbi decoder utilizes a distributed trellis diagram to produce the decoded output and reunited trellis diagram for the local state metric update. In an example embodiment, the functional procedure of the present invention has four different phases described in
The third phase of the operation of the present invention is shown in
The fourth operation phase of the inventive concept of the present invention is shown in
Flowchart of
on step 901, a signal (digital or analogue) corresponding the transmitted two-bit signal sequence, is received at the decoder input;
on step 902, the received signal is compared with all the possible codeword's and the results are denoted as branch metrics;
on step 903, it is checked, whether the current decoding cycle is the first one;
on step 904 the trellis diagram is distributed into the two sub-trellises according to the polarity of the first input bit similarly as presented in the fifth prior art;
on step 905 the branch metrics are summed with the previously calculated metrics, which are also called the state metrics, and the results are labelled as path metrics;
when the number of current decoding cycle n is smaller than the constraint length of the convolutional code K on step 906, the two sub-trellises are expanded on step 907 until all the states of the two sub-trellises are filled with the corresponding state metrics;
since the new branch metrics are summed with the previous state metrics on step 905, the path metrics tend to grow monotonically with time. In the fifth prior art by Demosthenous et. al this path metric overflow is avoided by resetting all the path metrics into zero between the consecutive decoding cycles. This method requires the decoding depth (i.e. the number of decoding cycles) of several times to the constraint length of the convolutional code to be used for decoding a single output bit. Therefore, the method presented in the fifth prior art is limited to convolutional codes with smaller constraint lengths and to moderate data rates. In order to enable codes with larger constraint lengths to be used with higher data rates a path metric renormalization procedure presented in the third prior art or other bounding procedure for the path metrics is required. In an example bounding procedure on step 908 of the method presented here, the global minimum (i.e. maximum likelihood) metric determined on the previous decoding cycle, is subtracted from the path metrics. The path metrics are further downscaled by a proper downscaling ratio. The subtraction and downscaling operations on step 908, keep the path metrics within a pre-specified range and enable the local state metric update accomplished on steps 910, 913 and 914;
on step 909 the maximum likelihood path is determined for both of the sub-trellises by selecting the paths with the largest log-likelihood functions;
on step 910 the two sub-trellises are locally reunited into a single trellis in such a way that there are two competing paths entering each state. The less probable paths are discarded and the remaining paths are labelled as survivor paths for each state;
on step 911, the global minimum metric is determined from the maximum likelihood paths selected on step 909. At the next decoding cycle, this metric is subtracted from the path metrics on step 908;
on step 912 the maximum likelihood paths for the two sub-trellises selected on step 909 are compared and the decoded output of ‘0’ or ‘1’ is produced depending on, whether the maximum likelihood path is in the upper or in the lower sub-trellis network;
on step 913 the survivor metrics determined on step 909 are temporarily memorized, until they are read out at the next decoding cycle;
on step 914 the trellis diagram is redistributed into the two sub-trellis networks so that the upper network consists of the even states and corresponds the next input bit of ‘0’, whereas the lower network consists of the odd states and corresponds the next input bit of ‘1’;
at the next decoding cycle the decoder performs all the steps presented in the flowchart, and on step 905 adds the new branch metrics to the previously calculated state metrics, which were locally updated on steps 909, 911 and 912 at the previous decoding cycle.
since separate data processing is applied for the steps 909, 911-912 and for the steps 910, 913-914, the decoding is differential and since the two sub-trellis networks are reunited on step 910 during the state metric update and redistributed again on step 914, the decoder is locally updating. The local state metric update is possible, since the path metric overflow is avoided by a bounding procedure, e.g. path metric downscaling and subtracting the global minimum metric determined on step 911 at the next decoding cycle on step 908.
Number | Date | Country | Kind |
---|---|---|---|
20070423 | May 2007 | FI | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/FI2008/000056 | 5/7/2008 | WO | 00 | 11/27/2009 |