Data Transmission Using Convolutional Codes and Bi-directional Soft Output Viterbi Algorithm over the Two-User Binary Adder Channel

This article introduces and tests the use of the softoutput Viterbi algorithm in decoding pairs of messages encoded with convolutional encoders and sent through a two-user binary adder channel in the presence of additive white Gaussian noise. Curves relating bit error rate versus signal to noise ratio are presented for each user, for assessing the performance of distinct convolutional codes when each constituent encoder employs either a two-stage or a three-stage shift-register.


I. INTRODUCTION
T HIS paper is concerned with reliable data transmission through a particular multiuser channel, the two-user binary adder channel (2-BAC) introduced by Kasami and Lin [1].The 2-BAC is the simplest multiple access channel, operates with two-users sending binary messages simultaneously and is a memoryless channel.In the noiseless case the 2-BAC output consists of ternary symbols (0, 1, 2) resulting from the arithmetic addtion of pairs of binary (0, 1) input symbols, one from each user.In the noisy case the 2-BAC output is described by an associated probability density function [1].
The multiple access channel (MAC) has been an active research topic, addressed in many recent publications [2]- [5].For instance, in [6] Bose, Natarajan and Zhu have proposed a linear trellis based precoding technique for maximizing the multiuser multiple-input multiple-output (MIMO) capacity in a MAC with inter symbol interference (ISI).The authors' approach in [6] has enhanced the communication system throughput in MIMO multiple access ISI channels.By its turn, Zanko, Leshem and Zehavi [7] explore the problem of rate allocation for multicasting over slow Rayleigh fading channels using network coding, where the network is seen as a collection of Rayleigh fading MACs.Al-qudah and Bataineh [8] have addressed the Gaussian MAC in which two users may exchange their messages at first and then M. L. M. G. Alcoforado, L. Bulhões, A. V. de Andrade and F. Madeiro are with the Communications Group (GCOM), Telecommunications Laboratory (LABTEL), University of Pernambuco, Recife 50750-470, Brazil (e-mails: mlmga@poli.br;madeiro@poli.br).
V. C. da Rocha Jr. and F. Madeiro acknowledge partial support of this research by the Brazilian National Council for Scientific and Technological Development -CNPq under projects no.307467/2015-5 and no.310447/2014-3, respectively.
The Ad Hoc Associate Editor coordinating the review of this manuscript and approving it for publication was Prof. Renato Machado.
Digital Object Identifier:10.14209/jcis.2017.13 cooperatively transmit to their destination.In [9], the authors have provided deterministic solutions to the wake-up problem on a MAC with non-synchronized awakening and global clock.
In [10] Sharma and Portugheis have presented an extrinsic information transfer (EXIT) chart optimization of repeataccumulate codes for an N -frequency T -user MAC, which is a frequency selective fast fading channel with additive Gaussian noise (AWGN), where T users share one channel, which is divided into N sub-channels.In [11] the authors consider the design of irregular repeat-accumulate (IRA) codes for the 2-BAC constraining the number of inner decoder iterations and outer interference cancelation.In [12] the main result is a new outer bound on the zero-error capacity region that strictly improves upon the bound from Urbanke and Li [13].
A serially concatenated coding scheme is used in [14], employing a uniquely decodable pair of block codes and a pair of systematic product codes, where the decoder uses the maximum a posteriori (MAP) rule for estimating the most probable ternary sequence of a 2-BAC output.The papers [15], [16] and [17] deal with the use of the Bahl, Cocke, Jelinek and Raviv (BCJR) decoding algorithm to the 2-BAC, presenting a possibility of directly separating the binary data for each of the two users at the receiver.In [18] an application is described of the BCJR algorithm for decoding the output of the three-user binary adder channel (3-BAC), in the presence of AWGN.In [19] the authors propose a modified form of multi-fold turbo codes capable of providing unequal error protection and test images transmitted over a power-line 2-BAC.
It is worth mentioning that the MAC is a model that contemplates properties of a variety of network systems, such as local area Ethernet networks, satellite communication systems, Aloha multi-access systems and packet radio networks [9].
The symbol-by-symbol MAP decoding with the BCJR algorithm [20] is an optimal decoding method for minimizing the bit error probability of convolutional codes.However, unfortunately, the BCJR algorithm requires a large memory size as well as a large number of computations, which can make its hardware implementation less attractive.On the other hand, the maximum-likelihood (ML) trellis decoding of convolutional codes can be achieved by the Viterbi algorithm (VA) [21], where the decoder output is always selected as the code word with the largest value of the log-likelihood function.The soft-output Viterbi algorithm (SOVA) [22] processes the same operations as the VA, with additional real value additions and real value storages.Consequently, the SOVA can be implemented by simply complementing the VA procedure.The SOVA and the bi-directional SOVA [23], [24] are examples of decoding algorithms which can be viewed as sub-optimal reduced complexity versions of the BCJR algorithm.The bidirectional SOVA employs a backward SOVA decoding in addition to the forward one.The complexity only doubles that of the original one, with very limited additional delay for turbo decoding.The simulation results for a point to point system show that the bi-directional SOVA significantly outperforms the original SOVA for turbo decoding [23].
As aforementioned, the MAP algorithm was adapted for the two-user case [14]- [17] and three-user case [18] in the presence of AWGN.As far as we know there is not a similar construction using a reduced complexity decoder algorithm in the published literature.For this reason this paper contributes by exploring the use of the bi-directional soft-output Viterbi algorithm (SOVA) [23], [24], originally developed for point to point communication systems.The novelty in this paper is the theoretical development and the application of the bidirectional SOVA for decoding the output of the two-user communication system illustrated in Figure 1.The channel considered is the 2-BAC contaminated with AWGN.
The remaining parts of this paper are organized as follows.Section II describes the details of the communication system model employed in this paper and the process of construction of the two-user trellis, which proves useful for decoding.The mathematical details of the bidirectional SOVA for two-users are derived in Section III.Simulation results are presented in Section IV and finally the Section V is devoted to conclusions and comments on future work.

II. TWO-USER COMMUNICATION SYSTEM
In Figure 1 consider that encoder 1 and encoder 2 are two rate k/n binary convolutional encoders, one for each user, where k and n are positive integers and k < n.For simplicity we assume each encoder has overall constraint length kν and can be implemented by k shift-registers, each of length ν.
. ., d t , . . ., d N } denote binary messages of length N from users 1 and 2, respectively, where u t = (u t , . . ., u t , . . ., d The encoder outputs from time 1 to N are represented as ) and w t = (w t , . . ., w ) denote the output sub-blocks associated with the information blocks u t and d t , respectively.
The {0, 1} binary elements in the code sequences v and w are conveniently mapped to {1, −1} and then combined in the 2-BAC to form the intermediate sequence t , . . ., x The sequence x is corrupted by AWGN, resulting in the received sequence r = r N 1 = {r 1 , r 2 , . . ., r t , . . ., r N }, where r t = (r t , . . ., r is a zero-mean Gaussian noise random variable with variance σ 2 .The noise samples are assumed to be statistically independent.
Since SOVA [22], [24] is a decoding algorithm based on trellis schemes, it is necessary to construct a two-user trellis [25], based on the individual trellis for each user.Each state in the two-user trellis corresponds to a pair of states, consisting of one state from each single-user trellis.Similarly, each transition branch in the two-user trellis corresponds to a pair of branches, consisting of one branch from each single-user trellis.

A. Example
Consider a trellis section having L 1 = 2 states with the label branches represented by u t /v t (0) v t (1) for user 1, as illustrated in Figure 2. Similarly, consider a trellis section having L 2 = 2 states with the label branches represented by d t /w t (0) w t (1) for user 2, as illustrated in Figure 3.The corresponding section for two-user trellis is represented in Figure 4, having L 1 L 2 = 4 states with the label branches given by (u t , d t )/x t (0) x t (1) .Consider the branch connecting state 0 to state 1 for user 1, labeled 1/11, and the branch connecting state 0 to state 0 for user 2, labeled 0/00, then the corresponding branch in the two-user trellis connects state 00 to state 10 and is labeled 10/00.

III. THE BI-DIRECTIONAL SOVA FOR TWO-USERS
This section introduces the theoretical development of the bi-directional SOVA for a system with two users, for the special case of the 2-BAC.It follows that the theoretical derivation of the bi-directional SOVA decoding algorithm for the 2-user case can be extended for t users in combination with the corresponding t-BAC trellis.
The bidirectional SOVA [22], [24], developed here for twousers, finds a pair of message sequences, u and d, for users 1 and 2, respectively, in the trellis diagram such that the word error probability, denoted by P E in (1), is minimized.
where the term r P (u, d|r)P (r)dr is the probability that a sequence pair is correct.In order to minimize P E in (1) it is necessary to maximize the a posteriori probability P (u, d|r).
Considering the 2-BAC with AWGN, using Bayes' rule and assuming that the signals are equally likely, it suffices for the receiver to maximize the conditional probability for the received sequence consisting of N sub-blocks r t , 1 ≤ t ≤ N , of length n each, given by Taking logarithms of both sides in (2) and simplifying the result, it follows that Therefore, the metric for the path w can be written as and ( 3) can be rewritten as Let c t 00 , c t 01 , c t 10 and c t 11 denote the minimum path metrics at depth t for all paths for which (u t = 0, d t = 0), (u t = 0, d t = 1), (u t = 1, d t = 0) and (u t = 1, d t = 1), respectively, considering codes of rate 1/n are employed.Because the user messages are equiprobable and the received vector r is fixed, Equation (3) implies that the logarithm of the a posteriori probabilities P (u t , d t |r) is proportional to their associated path metrics, i.e., log P (u t = 0, d t = 0|r) ∼ −c 00 t (7) log P (u t = 0, As for the case where there is only one-user, the bidirectional SOVA algorithm for two-users is based on the following three log-likelihood ratios, In view of ( 7), ( 8), ( 9) and ( 10), the log-likelihood ratios Λ 1 , Λ 2 and Λ 3 in ( 11), ( 12) and ( 13), respectively, can be conveniently computed in terms of their associated path metrics as follows For each depth in the two-user trellis, the values of Λ i , i = 1, 2, 3, are calculated so that the highest positive value determines the corresponding detected (u t , d t ) pair at depth t.If none of the Λ i is greater than or equal to zero, then the detected pair is (u t , d t ) = (0, 0).
Considering that S t is the trellis state at depth t, the bidirectional SOVA algorithm for two-users follows the same steps of the one-user algorithm [3][4] as described next.
→ Calculate all path metrics (c) entering each node at depth t.
→ Compare all path metrics entering the same node and the survivor node, which is the one that presents the smallest accumulated metric up to that point.
→ Store the survivor node and its metric at each iteration.→ Repeat step 1 until t = N .→ The survivor path at node S N is the maximum likelihood path and its metric is c N .
• Step 2: Backward Recursion.→ Set t = N , S N = 0 to start at the trellis end and at the null state.
→ Decrement t by 1. → Calculate all branch metrics entering each node at depth t.
→ Calculate all path metrics entering each node at depth t. → Compare all path metrics entering the same node and find the survivor path at each node.
→ Store the survivor path for each node.→ Repeat step 2 until t = 0.
→ At time instant t, identify the pair (u t , d t ), detected at Step 1.
→ Set c (ut,dt) t = c min → Find the c t values for the not detected pairs in the form: where ) is the forward path metrics at instant t − 1 and at node S i .• b t (S i , S j ) is the metric of the branch between nodes S i and S j from depth t − 1 to depth t. • c I t (S j ) is the backward path metric at depth t and at node S j .
→ Detect the input at time t as the highest positive Λ i .

A. Example
Considering the trellises shown in Figure 2 and Figure 3, respectively, as the descriptors of the decoders for users 1 e 2, respectively and that r = {2.55,0.44, 0.45, −0.35, 0.03, −0.10} is the sequence received; the null state as both the initial and final state for both users, the resultant two-user trellis returned by the Viterbi algorithm is shown in Figure 5, with branch metrics presented.Following the algorithm steps described earlier, the decoder calculates the detected inputs û = {1, 1, 0} and d = {1, 0, 1}.For each transition in the trellis the metrics of the paths are calculated according to Equation (5).

IV. SIMULATION RESULTS
We considered for the computer simulations two cases with data transmission over a 2-BAC channel in the presence of AWGN, as illustrated in Figure 1, with messages of length N = 100, 000 bits.For both cases each encoder has code rate 1/2 and the overall sum rate is 1.The encoders for case 1 have polynomial generator matrices for user 1 and user 2, given by G , respectively.The encoders for case 2 have polynomial generator matrices for user 1 and user 2, given by Curves for user 1 relating bit error probability (P e ) and signal to noise ratio (SNR) for case 1 (solid line) and case 2 (dotted line) are illustrated in Figure 6.Similarly, curves for user 2 relating P e and SNR for case 1 (solid line) and case 2 (dotted line) are illustrated in Figure 7.It is observed that case 2 shows a significant performance improvement with respect to case 1, with a gain greater than 2 dB for a bit error probability of approximately 5 × 10 −4 , for both users.
For comparison purposes we refer to Figure 6 presented here and Figure 6 presented in [15] (where turbo decoding is not employed), and notice that the proposed decoding system using the bi-directional SOVA shows gains around 1 dB for P e at 10 −2 with respect to the coding system proposed in [15], where both schemes have the same overall coding rate of 0.67.

V. CONCLUSION AND FUTURE PERSPECTIVES
This paper introduces the use of bidirectional SOVA for the 2-BAC with AWGN.By using bidirectional SOVA for two-users it is possible to separate the binary data for each user at the receiver, while minimizing the sequence error probability.The bidirectional SOVA algorithm is applied to the received sequence r using the corresponding 2-BAC trellis.The choice of the convolutional encoder pairs directly affects the performance of the system as we could observe with the curves presented by combining different convolutional encoders with two-stage and three-stage shift-registers.For the specific construction considered here, the use of identical error-correcting codes for both users is forbidden because the equality Λ 1 (u t , d t ) = Λ 3 (u t , d t ), i.e., P{u t = 1, d t = 0|r} = P{u t = 0, d t = 1|r} will always occur, thus not removing ambiguity.This equality occurs because of a symmetry condition caused by using identical codes for both users, as pointed in [16].Although iterative decoding has not been used in this paper, the current results are very promising since the curves obtained for SNR up to 3.5 dB, using the bidirectional SOVA and overall sum rate 1, are similar to the ones presented in [17], obtained with iterative decoding with one iteration and overall sum rate 2/3.For future work the choice of   the convolutional encoder pairs should be explored and we suggest replacing the convolutional encoders 1 and 2 for two turbo encoders [26] combining the theoretical development for SOVA presented here with iterative decoding for the 2-BAC.

Fig. 5 :• Transition 3 :
Fig. 5: Two user trellis with each branch metric from the example.