# A low-complexity maximum likelihood decoder for tail-biting trellis

- Xiaotao Wang
^{1, 2}, - Hua Qian
^{1, 3, 4}Email author, - Kai Kang
^{1, 3, 4}and - Weidong Xiang
^{5}

**2013**:130

https://doi.org/10.1186/1687-1499-2013-130

© Wang et al.; licensee Springer. 2013

**Received: **16 August 2012

**Accepted: **3 May 2013

**Published: **17 May 2013

## Abstract

Tail-biting trellises are defined on a circular time axis and can have a smaller number of states than equivalent conventional trellises. Existing circular Viterbi algorithms (CVAs) on the tail-biting trellis are non-convergent and sub-optimal. In this study, we show that the net path metric of each tail-biting path is lower-bounded during the decoding process of the CVA. This property can be applied to remove unnecessary iterations of the CVA and results in a convergent maximum likelihood (ML) decoder. Simulation results show that the proposed algorithm exhibits higher decoding efficiency compared with other existing ML decoders.

## Keywords

## 1 Introduction

For linear block codes, conventional trellis and tail-biting trellis representations have gained a great deal of attention in the past decades[1–3]. Trellis representations not only reveal the code structure, but also lead to efficient trellis-based decoding algorithms[4–8]. For the same linear block codes, the number of states in its tail-biting trellis can be as low as the square root of the number of states in its minimal conventional trellis[1, 8], e.g., for the (24, 12) extended Golay code, the maximum number of states in its conventional trellis is 512[8], while the maximum number of states in its time-varying tail-biting trellis is only 16[1].

In addition, the tail-biting technique has been widely used in convolutional encoders to eliminate the rate loss caused by the known tail bits. For example, the Worldwide Interoperability for Microwave Access (WiMAX)[9] and Long Term Evolution[10] standards both adopted tail-biting convolutional codes in the control channel or broadcasting channel. Consequently, a maximum likelihood (ML) decoder with high decoding efficiency on tail-biting trellises is important and desirable for studying tail-biting codes.

Both the Viterbi algorithm and bidirectional efficient algorithm for searching code trees (BEAST) can achieve ML decoding on conventional trellises[8]. In the case of a tail-biting trellis, due to the lack of *a priori* knowledge about the starting state, the Viterbi and BEAST decoder have to perform an exhaustive search on tail-biting trellises to find the ML codeword. BEAST can be more efficient if applied to the conventional trellis obtained by reducing the tail-biting code generator matrix to the minimum span form[8].

Another kind of decoder, the two-phase ML decoder, has been proposed to reduce the decoding complexity for tail-biting trellises[5, 6]. This kind of algorithm performs Viterbi searches on tail-biting trellises in the first phase and records the accumulated path metric of each path at every section for the second phase. In the second phase, heuristic searches are performing based on the result obtained from the first phase. Since the two-phase decoder is based on two distinct algorithms, this makes it difficult for practical application.

The circular Viterbi algorithm (CVA)-based decoder greatly reduces the implementation complexity of a decoder for tail-biting trellises and provides near-optimal block error rate performance. However, the decoding process of the CVA is non-convergent and sub-optimal[4, 7]. In this paper, we introduce a CVA-based ML decoder for tail-biting trellises. In this algorithm, the lower bound of the net path metric of each tail-biting path can be obtained to exclude impossible starting state candidates, which leads to convergence of the CVA. In addition, the net path metric of survivor paths can be used to terminate redundant searches without performing a full Viterbi iteration.

The following parts of this article are organized as follows: In Section 2, a detailed description of the algorithm is presented. The performance of the proposed algorithm is demonstrated by simulations in Section 3. Section 4 concludes this paper.

## 2 Algorithm description

### 2.1 Variable definition

*L*sections, denote by

**S**

_{ l }the set of states at location

*l*, where 0≤

*l*≤

*L*. From the definition of tail-biting trellises, we have

**S**

_{0}≡

**S**

_{ L }. Any path that starts from and terminates at the same state forms a tail-biting path. All tail-biting paths that start from the same state construct a sub-tail-biting trellis of this state. In Figure1, the branches of thick solid lines form a tail-biting path of state ‘01,’ and all solid lines compose the sub-tail-biting trellis of state ‘01’.

A conventional CVA-based decoder performs Viterbi iterations around the tail-biting trellis to find the optimal tail-biting path. This algorithm takes advantage of the circular property of tail-biting trellises and employs the path metrics accumulated in the ending states of the trellis to initialize the path metrics in the starting states for a new iteration until a predefined termination condition is fulfilled. In the following parts, we elaborate the decoding process of CVA on tail-biting convolutional codes. The decoding process for general tail-biting trellises can be similarly obtained.

For tail-biting convolutional codes of rate *b*/*c*, the length of information bits is *b* *L* and the length of the corresponding codeword is *c* *L*. Binary code bits${v}_{l}^{\left(j\right)}\in \{0,1\}$ are mapped to${x}_{l}^{\left(j\right)}=\left(1-2{v}_{l}^{\left(j\right)}\right)\sqrt{{E}_{s}}$ with binary phase-shift keying (BPSK) modulation, where 0≤*j*≤*c*−1 and 0≤*l*≤*L*−1. Without loss of generality, signal energy *E*_{
s
} is normalized to 1. After passing through an additive white Gaussian noise (AWGN) channel with a double-sided noise power spectrum density of *N*_{0}/2, the corresponding received symbols are${r}_{l}^{\left(j\right)}$. The log-likelihood ratio of${r}_{l}^{\left(j\right)}$ is given by$\Lambda \left({r}_{l}^{\left(j\right)}\right)=4{r}_{l}^{\left(j\right)}/{N}_{0}$, where for *l*≥*L*,${x}_{l}^{\left(j\right)}={x}_{{\left(l\right)}_{L}}^{\left(j\right)}$,$\Lambda \left({r}_{l}^{\left(j\right)}\right)=\Lambda \left({r}_{{\left(l\right)}_{L}}^{\left(j\right)}\right)$, and (*l*)_{
L
} = *l* mod *L*.

*s*at location

*l*in the

*i*th iteration is

The term$\left|\Lambda \left({r}_{k}^{\left(j\right)}\right)\right|$ can be ignored in the third line of (3) since it is independent of specific codewords **x** and consequently is a constant for all paths on the tail-biting trellis.

*P*

^{ i }(

*β*

^{ i }(

*s*),

*s*) the survivor path that connects state

*β*

^{ i }(

*s*) of

**S**

_{0}with state

*s*of

**S**

_{ l }in the

*i*th iteration. The corresponding net path metric of

*P*

^{ i }(

*β*

^{ i }(

*s*),

*s*) can be derived from (1) and (3):

Since the initial path metrics${M}_{0}^{i+1}\left({s}^{\prime}\right)$ are different from${M}_{0}^{i}\left({s}^{\prime}\right)$ for each state *s*^{′}∈*S*_{0}, different survivor paths can be obtained in each iteration. Denote by${\overline{P}}^{i}$ the ML path obtained in the *i* th iteration, where the ML path obtained from the first iteration has the least net path metric among all possible survivor paths[4]. Similarly, the ML tail-biting path obtained in the *i* th iteration is denoted by${\stackrel{~}{P}}^{i}$, which has the net path metric of${\stackrel{~}{M}}^{i}$. Among the set of tail-biting paths$\left\{\right({\stackrel{~}{P}}^{i}(s,s)$,${\stackrel{~}{M}}^{i}(s,s))$ ∣ ∀*s*∈**S**_{0}, *i*≥1}, the optimal tail-biting path and its net path metric are denoted by${\stackrel{~}{P}}^{\mathrm{O}}$ and${\stackrel{~}{M}}^{\mathrm{O}}$, respectively.

### 2.2 Lower bounds of the net path metrics

A conventional CVA-based decoder is non-convergent, and consequently, it cannot guarantee that the tail-biting path obtained is optimal when the decoding process is terminated[4, 7]. In order to design a convergent ML decoder on tail-biting trellises, further information needs to be obtained from the decoding process of CVA. Based on the characteristics of CVA, we can derive a lower bound of the net path metric of each tail-biting path. This observation is summarized in Lemma 1

#### Lemma 1.

*s*, and the corresponding net path metric is$\stackrel{~}{M}(s,s)$, where

*s*∈

**S**

_{0}. Define

*B*(

*s*) as

then we have$B\left(s\right)\phantom{\rule{1em}{0ex}}\le \phantom{\rule{1em}{0ex}}\stackrel{~}{M}(s,s)$, i.e., *B*(*s*) is the lower bound of the metrics of all paths on the sub-tail-biting trellis of state *s*.

#### Proof

*l*=0 and duplicated on the time axis head-tail. Conventional CVA then becomes a general Viterbi decoder composed of several length

*L*decoding sections, where the Viterbi algorithm searches on the duplicated trellis by recording and repeating the received symbols. Consequently, combining (1) and (3), we find that the survivor path

*P*

^{ i }(

*β*

^{ i }(

*s*),

*s*) has the minimum accumulated path metric${M}_{l}^{i}\left(s\right)$ among all possible paths

*P*

^{ i }(

*s*

^{∗},

*s*), where

*s*

^{∗},

*β*

^{ i }(

*s*)∈

**S**

_{0},

*s*∈

**S**

_{ l }, and 0≤

*l*≤

*L*−1. Consequently, we have

*l*≤

*L*−1, we know that for any

*s*∈

**S**

_{ L }, (6) also holds. Then for the ML tail-biting path,$\stackrel{~}{P}(s,s)$, on the sub-tail-biting trellis of state

*s*, from (6), we have

Since$\stackrel{~}{P}(s,s)$ is the ML tail-biting path on the sub-tail-biting trellis of state *s*, from (3) and (8), we come to the conclusion that *B*(*s*) is a lower bound of the metrics of all paths on the sub-tail-biting trellis of state *s*. □

The lower bound *B*(*s*) defined in Lemma 1 is updated as iterations continue, and a more precise estimation of *B*(*s*) can be obtained if more iterations are performed on the tail-biting trellis. According to (8), the maximal value of *B*(*s*) is$\stackrel{~}{M}(s,s)$.

Based on Lemma 1, we can reduce the decoding complexity of CVA on the tail-biting trellis by removing redundant computations and iterations during the decoding process and control the convergence of CVA. The improvements of the proposed decoder can be summarized into the following two aspects.

*M*net

*i*(

*β*

^{ i }(

*s*),

*s*) of survivor path

*P*

^{ i }(

*β*

^{ i }(

*s*),

*s*) is not less than${\stackrel{~}{M}}^{\mathrm{O}}$, where${\stackrel{~}{M}}^{\mathrm{O}}$ is the optimal tail-biting path obtained in the first

*i*−1 iterations and

*s*∈

**S**

_{ l }, all searches that follow state

*s*can be terminated (refer to Figure2). In this case, the net path metric of any survivor path that starts from state

*β*

^{ i }(

*s*) and passes through state

*s*is not less than${\stackrel{~}{M}}^{\mathrm{O}}$.

*i*th iteration of the CVA, i.e.,

After the *i* th iteration, (${\stackrel{~}{P}}^{\mathrm{O}}$,${\stackrel{~}{M}}^{\mathrm{O}}$) and *B*(*s*) will be updated with (${\stackrel{~}{P}}^{i}$,${\stackrel{~}{M}}^{i}$) and *B*^{
i
}(*s*), where (${\stackrel{~}{P}}^{i}$,${\stackrel{~}{M}}^{i}$) is the best tail-biting path and its metric obtained in the *i* th iteration, and *B*^{
i
}(*s*) is the lower bound of the metrics of all paths on the sub-tail-biting trellis of state *s* obtained in the *i* th iteration. For$\forall \phantom{\rule{1em}{0ex}}s\in {\mathbf{S}}_{\mathrm{C}}^{i}$, if$B\left(s\right)\ge {\stackrel{~}{M}}^{\mathrm{O}}$, then from Lemma 1, we have$\stackrel{~}{M}(s,s)\ge {\stackrel{~}{M}}^{\mathrm{O}}$. This indicates that the ML tail-biting path on the sub-tail-biting trellis of state *s* is not better than${\stackrel{~}{P}}^{\mathrm{O}}$. State *s* can be excluded from the set${\mathbf{S}}_{\mathrm{C}}^{i+1}$. As iterations continue, the search space on the tail-biting trellis shrinks and the decoder will converge to the global optimal solution eventually.

### 2.3 CVA-based ML decoder on tail-biting trellis

We summarize the above decoding process as follows: In the algorithm description, the operator ‘ ←’ denotes value assignment from the right-hand side to the left-hand side, and the operator ‘=’ denotes logic comparison between two operands.

From the description above, we find that the decoding process can only be terminated when${\mathbf{S}}_{\mathrm{C}}^{i+1}=\varnothing $ in step 2.4. The number of entries in${\mathbf{S}}_{\mathrm{C}}^{1}$ is finite, and as iterations continue, the size of${\mathbf{S}}_{\mathrm{C}}^{i}$ will reduce to zero.

Firstly, state *s* with bound$B\left(s\right)>{\stackrel{~}{M}}^{\mathrm{O}}$ is deleted from${\mathbf{S}}_{\mathrm{C}}^{i}$ in step 2.3 since the ML tail-biting path on the sub-tail biting trellis of state *s* is not better than${\stackrel{~}{P}}^{\mathrm{O}}$.

Secondly, after the (*i*+1)th iteration, if no state has been deleted from${\mathbf{S}}_{\mathrm{C}}^{i+1}$, i.e.,$\forall \phantom{\rule{1em}{0ex}}s\in {\mathbf{S}}_{\mathrm{C}}^{i+1}$,$B\left(s\right)<{\stackrel{~}{M}}^{\mathrm{O}}$, then equation${\mathbf{S}}_{\mathrm{C}}^{i+1}={\mathbf{S}}_{\mathrm{C}}^{i+2}$ holds and the Viterbi algorithm will be performed on the sub-tail-biting trellis of state *s*^{
‡
} in step 2.4, where${s}^{\u2021}\in {\mathbf{S}}_{\mathrm{C}}^{i+1}$. If$\stackrel{~}{M}({s}^{\u2021},{s}^{\u2021})<{\stackrel{~}{M}}^{\mathrm{O}}$,${\stackrel{~}{P}}^{\mathrm{O}}$ will be updated with$\stackrel{~}{P}({s}^{\u2021},{s}^{\u2021})$; else, if$\stackrel{~}{M}({s}^{\u2021},{s}^{\u2021})\ge {\stackrel{~}{M}}^{\mathrm{O}}$, this indicates that$\stackrel{~}{P}({s}^{\u2021},{s}^{\u2021})$ is not better than${\stackrel{~}{P}}^{\mathrm{O}}$. Then state *s*^{
‡
} can be deleted from${\mathbf{S}}_{\mathrm{C}}^{i+1}$ since the ML tail-biting path on its sub-tail-biting trellis has been found.

Thirdly, after the *i* th iteration, if$\stackrel{~}{M}({s}^{\prime},{s}^{\prime})<{\stackrel{~}{M}}^{\mathrm{O}}$,${\stackrel{~}{P}}^{\mathrm{O}}$ will be updated with$\stackrel{~}{P}({s}^{\prime},{s}^{\prime})$, where${s}^{\prime}\in {\mathbf{S}}_{\mathrm{C}}^{i}$. Since$B\left({s}^{\prime}\right)=\underset{i\ge 1}{\text{max}}\left\{{M}_{L}^{i}\right({s}^{\prime})-{M}_{0}^{i}({s}^{\prime}\left)\right\}\le \stackrel{~}{M}({s}^{\prime},{s}^{\prime})$, *B*(*s*^{′}) will be updated with$\stackrel{~}{M}({s}^{\prime},{s}^{\prime})$ in step 2.3, and then state *s*^{′} will be deleted from${\mathbf{S}}_{\mathrm{C}}^{i}$ since the equality in$B\left(s\right)\ge {\stackrel{~}{M}}^{\mathrm{O}}$ holds.

All survivor starting state candidates in${\mathbf{S}}_{\mathrm{C}}^{1}$ will be deleted eventually, and${\mathbf{S}}_{\mathrm{C}}^{i}$ will be empty in a finite number of iterations. When${\mathbf{S}}_{\mathrm{C}}^{i}$ is empty, the decoder converges to the global optimal solution that has been recorded in${\stackrel{~}{P}}^{\mathrm{O}}$. In summary, the algorithm presented above is a convergent ML decoder on tail-biting trellises. We call this a bounded CVA (B-CVA) ML decoder.

The following example is used to explain the decoding process of the B-CVA.

#### Example 1

The tail-biting convolutional code that is represented by the tail-biting trellis in Figure1 is selected in this example. The information sequence is {01011100}, and the corresponding codeword is {(00), (11), (10), (00), (01), (10), (01), (11)}. After passing through the AWGN channel where the signal-to-noise ratio (SNR) is *E*_{
b
}/*N*_{0}=0 dB, the received sequence (for one realization) is {(1.144, 0.458), (−0.986, −1.234), (0.291, 1.364), (0.472, 0.350), (1.578, −1.594), (0.050, −0.399), (2.260, 0.359), (−1.501, 0.234)}. For convenience, states {00, 01, 10, 11} are represented by {0, 1, 2, 3}. For the first iteration, set${\mathbf{S}}_{\mathrm{C}}^{1}=\{0,1,2,3\}$ and the four survivor paths are shown on Figure2a. We find that there is a tail-biting path *P*^{1}(0,0) with net path metric${M}_{\text{net}}^{1}(0,0)=1.333$. Then (${\stackrel{~}{P}}^{\mathrm{O}}$,${\stackrel{~}{M}}^{\mathrm{O}}$) are updated with (*P*^{1}(0,0),${M}_{\text{net}}^{1}(0,0)$). The bounds of each terminal state are updated to *B*(0)=1.333, *B*(1)=0.291, *B*(2)=1.868, and *B*(3)=2.026. Since only$B\left(1\right)<{\stackrel{~}{M}}^{\mathrm{O}}$, according to step 2.3 of the B-CVA,${\mathbf{S}}_{\mathrm{C}}^{2}=\left\{1\right\}$. The decoding process of the second iteration is illustrated in Figure2b, c, d, e. We find that with the control on the decoding process of the CVA, the second iteration terminates at section *l*=4; and at each section, searches after state *s*^{′} that has${M}_{\text{net}}^{2}(1,{s}^{\prime})\ge {\stackrel{~}{M}}^{\mathrm{O}}$ are terminated. The state *s*^{′} corresponds to the circle with left incident branch on the trellis in Figure2b, c, d, e. The decoding result is the codeword associated with the tail-biting path${\stackrel{~}{P}}^{\mathrm{O}}$. In the first iteration, there are 64 real additions and 32 logical comparisons; and in the second iteration, the numbers of real additions and logical comparisons corresponding to each step are {(4, 2), (4, 2), (8, 4), (6, 4)}. In summary, the decoding complexity of B-CVA is denoted by 86 real additions and 44 logical comparisons. As is shown in Appendix 1: decoding process of the two-phase ML decoder, the decoding complexity of the two-phase decoder is denoted by 100 real additions and 101 logical comparisons.

## 3 Simulation results

In order to show the decoding efficiency, we compare the proposed B-CVA ML decoder with other widely cited tail-biting ML decoders in three aspects: the number of real additions, the number of logical comparisons, and average memory space consumption during the decoding process. The codewords are modulated to BPSK symbols and then passed through an AWGN channel. The results shown in the tables and figures are obtained by observing at least 100 block error events.

The conventional BEAST ML decoder should perform decoding on each sub-tail-biting trellis independently and consecutively to find the ML tail-biting path[8]. To improve its efficiency, we use the upper-bounding technique on the thresholds used by BEAST. During the consecutive decoding process, the metric of the optimal tail-biting path obtained on the first *i* sub-tail-biting trellises are used to upper-bound the thresholds that will be used for decoding the remaining |**S**_{0}|−*i* sub-tail-biting trellises, where |**S**_{0}| denotes the size of set **S**_{0}. With this upper-bounding technique, redundant searches can be terminated timely or reduced through the whole decoding process. For convenience, we call the BEAST decoder with this upper-bounding technique an advanced-BEAST ML decoder, which should be more efficient than the original BEAST decoder in[8]. Results presented in Appendix 4 are used to demonstrate this point.

**BLER performance of WAVA and ML decoders for (64, 32) tail-biting convolutional codes over the AWGN channel**

SNR | |||||
---|---|---|---|---|---|

BLER performance | 0.0 dB | 1.0 dB | 2.0 dB | 3.0 dB | 4.0 dB |

WAVA | 3.95×10 | 1.49×10 | 2.80×10 | 2.70×10 | 1.06×10 |

ML decoders | 3.80×10 | 1.48×10 | 2.66×10 | 2.50×10 | 0.96×10 |

*B*(

*s*) of every state in

**S**

_{0}. The memory space required by the two-phase decoder is about 2∼12 times more than that required by the B-CVA or BEAST decoders. This is due to the fact that the two-phase decoder has to store path metrics of all survivor paths obtained in the first phase and has to maintain the open stack and close table during the second phase.

**BLER performance of WAVA and ML decoders for (80, 40) tail-biting convolutional code over the AWGN channel**

SNR | |||||
---|---|---|---|---|---|

BLER performance | 1.0 dB | 2.0 dB | 3.0 dB | 4.0 dB | 5.0 dB |

WAVA | 1.60×10 | 3.16×10 | 3.10×10 | 1.45×10 | 3.50×10 |

ML decoders | 1.59×10 | 3.05×10 | 3.10×10 | 1.44×10 | 3.50×10 |

## 4 Conclusion

We propose a convergent CVA-based ML decoder for tail-biting trellises. The proposed algorithm takes advantage of the lower bound of the net path metric of the tail-biting path to control the decoding process of CVA. Simulation results show that, on tail-biting trellises, the B-CVA decoder exhibits high decoding efficiency while requiring relatively small memory space during the decoding process. These advantages make it attractive to practical applications.

## Appendices

### Appendix 1: decoding process of the two-phase ML decoder

*s*∈

**S**

_{ l }and 0≤

*l*≤

*L*; the decoding complexity of the first phase is the same as that of the B-CVA, which contains 64 real additions and 32 logical comparisons; (2) in the second phase, heuristic searches are performed on the sub-tail-biting trellis of state 01; in each step, the heuristic search is performed following the top path in the open stack. There are 3 real additions and 4 logical comparisons for updating the values of the

*g*-function,

*h*-function, and

*f*-function. The two successors will be saved in an open stack if the values of their

*f*-functions are less than${\stackrel{~}{M}}^{1}$. Meanwhile, the starting state, terminal state, and current section

*l*of the top path will be saved in the close table. Then, the top path of the open stack will be compared with each entry of the close table in three aspects: starting state, terminal state, and current location. With six heuristic searching steps, the decoding process is stopped. The decoding complexity in summary is denoted by 100 real additions and 105 logical comparisons. We have ignored the complexity of sorting the open stack according to ascending order of their

*f*-function values. The open stack and the corresponding close table obtained in each step are shown in Table3, where Open stack = {(starting state, current state,

*l*-section,

*f*-function)}, Close table = {(starting state, current state,

*l*-section)}, and Complexity = {(the number of real additions, the number of logical comparisons)}.

**Updates of the open stack and close table during heuristic searches of the two-phase ML decoder**

Step | Open stack | Close table | Complexity |
---|---|---|---|

1 | {(1, 1, 0, 0.291)} |
| {(6, 4)} |

2 | {(1, 2, 1, 0.291)} | {(1, 1, 0)} | {(6, 7)} |

3 | {(1, 3, 2, 0.986), (1, 1, 2, 1.234)} | {(1, 1, 0), (1, 2, 1)} | {(6, 10)} |

4 | {(1, 1, 2, 1.234), (1, 3, 3, 1.277)} | {(1, 1, 0), (1, 2, 1), (1, 3, 2)} | {(6, 13)} |

5 | {(1, 2, 3, 1.234), (1, 3, 3, 1.277)} | {(1, 1, 0), (1, 2, 1), (1, 3, 2), (1, 1, 2)} | {(6, 16)} |

6 | {(1, 3, 3, 1.277)} | {(1, 1, 0), (1, 2, 1), (1, 3, 2), (1, 1, 2), (1, 2, 3)} | {(6, 19)} |

### Appendix 2: improvements of the BEAST ML decoder with upper-bounding technique

**Average numbers of real additions and logical comparisons in decoding the (80, 40) code used in WiMAX**

SNR | |||||||||
---|---|---|---|---|---|---|---|---|---|

Decoding complexity | 0.0 dB | 1.0 dB | 2.0 dB | 3.0 dB | 4.0 dB | 5.0 dB | 6.0 dB | 7.0 dB | |

Additions | 10,307 | 10,083 | 9,989 | 9,583 | 9,288 | 9,222 | 9,013 | 8,999 | |

BEAST | Comparisons | 20,613 | 20,167 | 19,978 | 19,165 | 18,576 | 18,443 | 18,026 | 17,998 |

Additions | 5,248 | 4,395 | 3,793 | 3,411 | 3,218 | 3,048 | 2,996 | 2,930 | |

Advanced BEAST | Comparisons | 10,497 | 8,790 | 7,585 | 6,821 | 6,436 | 6,096 | 5,993 | 5,860 |

## Declarations

### Acknowledgements

This work was supported in part by the Hundred Talents Program of the Chinese Academy of Sciences, the Shanghai Pujiang Talent Program No. 11PJ1408700, the National Science and Technology Major Project No. 2011ZX03003-003-04, the International Science and Technology Cooperation Program of Shanghai Municipality No. 11220705400, and the Science and Technology Commission Foundation of Shanghai No. 12511503400.

## Authors’ Affiliations

## References

- Calderbank A, Forney G, Vardy A: Minimal tailbiting trellises: Golay code and more.
*IEEE Trans. Inf. Theory*1999, 45(5):1435-1455. 10.1109/18.771145View ArticleGoogle Scholar - Stahl P, Anderson J, Johannesson R: Optimal and near-optimal encoders for short and moderate-length tailbiting trellises.
*IEEE Trans. Inf. Theory*1999, 45(7):2562-2571. 10.1109/18.796408MathSciNetView ArticleGoogle Scholar - Gluesing-Luerssen H, Weaver E: Linear tail-biting trellises: characteristic generators and the BCJR-construction.
*IEEE Trans. Inf. Theory*2011, 57(2):738-751.MathSciNetView ArticleGoogle Scholar - Wang X, Qian H, Xu J, Yang Y, Wang F: An efficient CVA-based decoding algorithm for tail-biting codes. In IEEE Global Telecommunications Conference. Houston; 5–9 Dec 2011:1-5.Google Scholar
- Shankar P, Kumar P, Sasidharan K, Rajan B, Madhu A: Efficient convergent maximum likelihood decoding on tail-biting (2007). . Accessed 10 Aug 2007 http://arxiv.org/pdf/cs/0601023v1.pdf
- Pai H, Han Y, Wu T, Chen P, Shieh S: Low-complexity ML decoding for convolutional tail-biting codes.
*IEEE Commun. Lett*2008, 12(12):883-885.View ArticleGoogle Scholar - Shao R, Lin S, Fossorier M: Two decoding algorithms for tailbiting codes.
*IEEE Trans. Commun.*2003, 51(10):1658-1665. 10.1109/TCOMM.2003.818084View ArticleGoogle Scholar - Bocharova IE, Johannesson R, Kudryashov BD, Loncar M: BEAST decoding for block codes.
*Europ. Trans. Telecomm.*2004, 15: 297-305. 10.1002/ett.979View ArticleGoogle Scholar - IEEE:
*IEEE Std 802.16–2009, IEEE Standard for, Local and Metropolitan Area Networks Part 16: Air Interface for Broadband Wireless Access Systems*. Piscataway: IEEE; 2009.Google Scholar - 3rd Generation Partnership Project:
*3GPP TS 36.212, Technical Specification, Group Radio Access Network; Evolved Universal Terrestrial Radio Access (E-UTRA); Multiplexing and Channel Coding (Release 8)*. Sophia Antipolis: ETSI; 2007.Google Scholar

## Copyright

This article is published under license to BioMed Central Ltd. This is an Open Access article distributed under the terms of the Creative Commons Attribution License (http://creativecommons.org/licenses/by/2.0), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.