EXIT Chart Optimization of Repeat-Accumulate Codes for an N-Frequency T-User Multiple Access Channel with Noise

—In this paper we show how a graph-based system can be designed for an N-FSK T-user multiple access channel with noise. The channel is a frequency selective fast fading channel with additive white Gaussian Noise. The system does not know or attempt to determine the fading incurred at a given moment. The system is composed of a multiuser detector and T different Repeat-Accumulate (RA) decoders. The decoders are optimized as a set and consequently have the same parameters. A structural variation between the users’ encoders/decoders is sufﬁcient to allow for multiple access and channel error correction, while providing rates close to channel capacity.

each of the decoders node layers, resulting in a single curve for the whole decoder.Since all decoders share the same set of parameters, they can be optimized as single entity.Simulations for some proposed systems show that it is possible to achieve very low bit error probability at transmission rates close to the sum capacity, with rates equally distributed among users.
This paper is organized as follows: section II describes the system; section III describes how the MUD factor graph was obtained and how its EXIT charts were generated; section IV shows how the encoders were optimized and section V shows how they were constructed; section VI presents simulation results and in section VII final remarks close this paper.Some remarks about mathematical notation: P (•) is a probability mass function (p.m.f) and p(•) is a probability density function (p.d.f.).For both cases, function arguments are sufficient to identify them.Bold letters are vectors or matrices.

II. MULTIPLE ACCESS SYSTEM DESCRIPTION
The model of the multiuser system considered here is depicted in Fig. 1.
There are T users that share one frequency selective fast fading channel.The channel is divided into N = 2 K subchannels with bandwidth τ −1 each, where K is an integer.Fading in each of these subchannels is considered flat and independent from other subchannels.The frequency-time window of one subchannel during a duration of time τ is called a chip.
During a given time frame with duration (B/K)τ , each user independently chooses a set of I information bits.These bits are encoded into a block of B transmission bits using a systematic RA encoder.It is assumed that all users have encoders with the same design parameters but with different implementations.After bit interleaving, the B transmission bits per user are grouped into sets of K bits.The following describes how one set of K bits per user results in the signal received by the MUD.
At a given time instant, K bits {b j 0 , b j 1 , ..., b j K−1 } from the j th user are mapped into a message m j from a set of N possible messages {0, 1, ..., N −1}.With no loss of generality, the following mapping can be assumed: where the superscript j identifies the user.Let E t be the energy per transmitted bit.The message is converted into a signal with energy E c = E t log 2 N that is transmitted using the corresponding chip (subchannel).This is equivalent to an N-FSK modulation, with subcarriers frequencies at f 0 + n/τ , n = 0, 1, ..., N − 1.If the j th user is using the n th chip, its activity factor c j n is given by: Defining the two following basic orthogonal forms with duration τ : the signal s j (t) transmitted by the j th user is s j (t) and can be defined as follows: The signal from each user suffers Rayleigh fading α j n and uniformly distributed phase rotation θ j n , all of them statistically independent.There is also a white Gaussian noise component n(t) with density N 0 .The received signal associated to the n th chip can be written as: (5) Total energy per chip can be detected using a pair of matched filters, one for each basic orthogonal forms in eqs.3, resulting in the values X n and Y n : The output from the energy detector is given by: Defining c n = T j=1 c j n as the number of users that are transmitting in the n th chip, R n has the conditional distribution p(R n |c n ) given by: where d = N 0 /E c .Since the output R n depends exclusively on c n , the system can be seen as concatenation of a noiseless multiple access channel with N parallel noisy channels.The values of R n are used by the MUD to provide information about the T × I information bits.
In an FFH-CDMA system, a hopping code would be present after the symbol mapper [1] to allow multiple access.Each user would have a unique hopping sequence, which is added modulo M to the original transmitted symbol to generate a transmitted sequence with length L. In effect, this hopping code is equivalent to a repetition code, since that for every symbol to be transmitted, the M-FSK channel is used L times.
The model developed here was shown in [4] based on the work from [1] and [3].

III. ITERATIVE DETECTOR AND DECODER
The receiver performs iterative multiuser detection and decoding.Information is exchanged between a common multiuser detector (MUD) and T parallel channel decoders, one for each user, as shown in Fig. 2. Each decoder stops its processing when a valid codeword is found.The iterative process stops when all decoders have stopped or a fixed number of iterations has been reached (100 iterations in this case).

A. Multiuser detector
For an iterative system, a multiuser detector should be able to use a priori information about all input bits and the energy detectors' output to generate a posteriori extrinsic information about the bits.This can be done by applying the sum product algorithm [6] over a factor graph that relates the bit probabilities to the received values.The statistical relationship between the set of bits and the received set of signals R n can be done by a joint p.
Using the Iverson's bracket [7], the deterministic relationships can be converted into conditional p.m.f.'s as follows: Representing the variables as circles and local functions as squares, the resulting factor graph is shown in Fig. 3.The graph can be decomposed in smaller graphs representing each user, the multiple access noiseless channel and the N parallel noisy channels, as indicated.The same graph can be used in other situations such as Pulse Position Modulation(PPM) with few adaptations.

B. Message generation
Each node generates outgoing messages by applying the sum product algorithm to the incoming messages to calculate marginal probabilities.
All variable nodes in the detector's factor graph have at most two connections.Since a message being sent trough a branch depends exclusively on incoming messages from other branches, this means that no calculation is needed at variable nodes.
Function nodes generate messages using equations 1,2, and 8 to 10.The messages are detailed below.The subscript i such as P (•) i indicates an incoming message, while the subscript o indicates an outgoing message.
1) P (m j |b j 0 , b j 1 , ..., b j K−1 ) node: Let ǫ(•) be the function that maps the K bits per user into a N -ary message and ǫ −1 k (•) be the inverse function relative to the k-th bit.Choice of ǫ(•) is not critical to bit error probability because all signals are pairwise orthogonal.There is a single combination of bits that generate a given message, resulting that the calculation of P (m j = n) is simply the product of the probabilities that the bits assume the values that generate m j = n: Since half of the possible values of m j are generated by the same value of b j k , calculation of P (b j k ) is given by: It is practical at this node to use and generate the ratios P (c j n = 1)/P (c j n = 0) and P (m j = n)/P (m j = n) because it simplifies the calculations, even at the cost of requiring the conversion of these ratios to and from the nominal values of P (c j n ) and P (m j ).Using these ratios results in the following equations for the outgoing messages at this node: . . .

N noisy channels
Noiseless MAC Fig. 3. Factor graph for the multiuser detector.
3) P (c n |c j 0 , c j 1 , ..., c j N −1 ) node: The messages to be calculated can be simply written as: The values P (c n ) are available at the correct branch.It is necessary to calculate the values of P ( T l=1 c j n = ζ).This can be done by representing the probabilities P (c j n ) as polynomial such as P (c j n = 0) + P (c j n = 1)D, where D is a dummy variable.Using this representation, the probabilities can be calculated by the multiplication of these polynomial: the coefficient associated to the degree D ζ represents the probability that the sum of the multiplied variables is equal to ζ.
where the a priori binomial distribution for c n is used: C. EXIT analysis system can be analyzed using EXIT charts [5].The analysis will be performed for the multiuser detector/T parallel decoders interface.
1) Multiuser detector: EXIT curves for the MUD can be obtained by simulation.Since there is interference between users, transmitted bits should be randomly generated for all users.From a set of random bits, values for R n can be randomly generated using the equations from section II.Input messages containing a priori information about the transmitted bits should be feed to the multiuser detector at the corresponding nodes.These messages are generated using a Gaussian distribution with mean and variance relating to the amount of information to be provided as indicated by the J(•) function and its inverse [5].Since the graph has cycles, there is no natural stopping criteria.It is shown in figure 4 that 5 internal iterations are sufficient to provide a stable EXIT curve for the detector, where an internal iteration happens when all nodes from left to right and back to left, according to Fig. 3, generate new messages.
One interpretation to the EXIT charts area theorem [8] is that the area under the detector's EXIT curve is equivalent to channel capacity when using an erasure channel.For other channels this property is an approximation.Table I compares the under the found curves and normalized (by K) channel capacity [4].The table shows results for one and ten iterations.For N = 16, the area for ten iterations is a better approximation for the normalized capacity.This is also valid in general for N = 4 and 8. Based on these results, a schedule where the multiuser detector performs first some inner iterations was chosen.
2) Systematic Repeat Accumulate Decoder: The equivalent graph for a systematic RA decoder can be considered as a concatenation of three layers as seen in Fig. 2 Since all codes have by project the same degree distributions, all decoders have the same EXIT curve and can be treated as a single entity to be optimized.In [9], EXIT charts for RA codes were optimized considering the interface between the VND and the CND layers.To do so the CND and ACC were combined and provided a single EXIT curve.A more suitable approach to the problem studied here is to combine the EXIT curves from the VND, CND and ACC layers so that the decoder as a whole has a single EXIT curve.Let I AB (•) be the EXIT function that indicates how much information is transmitted from layer A to layer B, where A and B can assume the values of V (VND), C (CND), A (ACC) and D (MUD).To combine the curves of the VND and CND layers is to find the point (I a , I b ) such that I V C (I a ) = I b and I CV (I b , I AC ) = I a , that is, a stability point in the EXIT curves of these layers, given that the accumulator is providing I AC of information.The amount of information to be returned to the accumulator is I CA (I b , I AC ), which is in fact only a function of I AC .The same procedure can be done to combine this curve with the accumulator's EXIT curve to obtain I AD (I DA ).The curves I V C (I CV ), I CV (I V C , I AC ) and I CA (I V C ) can be numerically obtained using equations from [9].The curves I AC (I DA ) and I AD (I DA , I CA ) can be obtained by solving a nonlinear system of equations [10].

IV. CODE OPTIMIZATION
For given values of T , N and E t /N 0 , the MUD's EXIT curve can be determined, named I M U D (•).The encoder/decoder is optimized by fitting the decoders EXIT curve, named I COD (•), to the MUD's EXIT curve by adjusting the parameters d v (•) and d c (•). Since, by project, all users have encoders/decoders with the same set of parameters and all decoders operate in parallel, it can be assumed that all decoders will provide the same amount of information about the transmitted bits given an amount of a priori information.Thus, the combined decoders are seen as a single decoder whose curve should be fitted to the MUD's EXIT curve.
Ideally I COD (•) and I M U D (•) should match at all points, that is, I COD (I M U D (x)) = x, 0 < x < 1.The optimization problem can be seen as a minimization of the area between the curves or as a maximization of the code rate, given the constraint that the decoder's EXIT curve should remain below the MUD's EXIT curve, that is: No analytical expression was found for the area between the curves as a function of N, T, E t /N 0 the code parameters.On the other side, code rate, partial derivatives in relation to the values of d v (•) and d c (•) and Hessian matrix have closed forms, favoring the option of maximizing code rate.To do so requires to check if constraint 19 is satisfied.This can be done either by comparing approximations of I COD (•) and I M U D (•) or more easily by checking if constraint 19 is satisfied by a finite number of values of 0 < x < 1.This method allows that well know non-linear optimization algorithms to be used.Since no proof that the code rate is a concave function of d v (•) and d c (•) is provided, the solution is at best a local maximum.
To simplify the optimization process, the values of g such that d v (g) > 0 were limited to 3, 4 and 6 and values of h such that d c (h) > 0 were limited to 1, 2, 3 and 12.This was done because these were the values the solution most usually adopted when g and h could be freely chosen between 1 and 12 in preliminary optimizations.Results for some combinations of N , T are shown in Tab.II, where (E t /N 0 ) p = 5dB by project.Curve fittings results are shown in Tab.II and graphically depicted in Figs. 5 to 8.

V. ENCODER AND DECODER CONSTRUCTION
The systematic RA encoder and decoder can be described by how the nodes from the VND layer are connected to the CND layer since the connections between the CND and accumulator are always sequential: the first check node is the first input to the accumulator and so on.Let B be the length of a codeword   and I be the number of information bits per codeword.Since the code is systematic, VND has I variable nodes and CND has B −I check nodes.The accumulator also has length B −I since the systematic bits do not pass through it.Given the degree distributions d v (g) and d c (h) the number of branches that connect the VND and CND layers is ideally: However, optimum degree distributions might not result in an integer value for ρ.To guarantee this condition, each term of the addition is rounded to the closest integer.Since the number of branches that leave the VND layer should be the same number of branches that reach the CND layer, both additions of eq.20 must sum to the same value.In case it does not due to the rounding performed, branches are randomly added to nodes of the appropriate layer until this condition is satisfied.
Branches are indexed from 1 to ρ. Variable nodes from VND are connected to the branches in a sequential order.The branch permutation function Π(i) = i ′ , i, i ′ = 1, 2, ..., ρ, is a random sequence of integers and indicate that the i th connection of the CND is connected to the i ′th branch as shown in Fig. 9.If all users shared the same permutation function Π(•), it would be impossible to determine which user is transmitting which codeword.By using different branch permutation functions for each user, different encoders for the same set of parameters can be obtained.This way each user uses a different set of all 2 B possible codewords.Using random branch permutation functions, the probability that the same codeword belongs to the codebook of at least two users is 2 I−B .This probability 1 becomes very small for large values of B while maintaining code rate.Care should be taken so that there is no more than one connection between a node from VND and a node from CND so as not to allow small cycles in the graph which are detrimental to system performance.The function Π(•) can also be used to implement the decoding algorithm by using vectors to store the messages exchanged between the layers.The VND layer reads/writes in these vectors sequentially and the CND layer reads/writes in these vectors according to Π(•).

VI. RESULTS
Bit error rate (BER) simulation results for the codes presented in Tab.II are shown in Figs. 10 to 13. Enough bits were transmitted so as to assure that the values are within 2% of the correct value with 96% reliability.Since there is interference, information bits were randomly generated and encoded to obtain the values of R n .The permutation functions Π(•) were randomly obtained and exchanged every 10 transmission words.For all systems, transmission block length varies from 10 3 to 10 5 bits.System rates are compared to channel sum capacity in Tab.III.The table shows the system rate; channel capacity at project (E t /N 0 ) p = 5dB; the value of (E t /N 0 ) * such that channel capacity is equal to system rate; the operation value (E t /N 0 ) o such that BER is lower than 10 −5 .For comparison reasons, the value (E t /N 0 ) s indicates how much should this 1 With guaranteed exception of the all zero codeword.ratio be to allow the same sum rate when single user detection is employed.The project distance can be seen as the difference ∆ p = (E t /N 0 ) p − (E t /N 0 ) * .This value could be improved (reduced) by a better project, which could be obtained by relaxing the constrains imposed in the optimization process or by using another class of codes.System performance could potentially improve if the random branch permutation function Π(•) is replaced by an optimized permutator.The value ∆ c = (E t /N o ) o − (E t /N o ) * indicates how far the system is operating from capacity.Systems 1 and 2 work at less then 3dB from capacity.Systems 2 and 4 work with rates that are only possible due do multiuser detection.To the authors' knowledge these are the first results of capacity approaching codes for a multiple access channel with frequency selective fast fading and non-coherent detection.Even under this conditions, it was possible to achieve rates close to channel capacity without the need of a hopping access code.It is important to note that the results presented in [11] and [12] are for a binary input multiple access channel with coherent detection and only Gaussian noise.

VII. CONCLUSION
In this work an efficient system for transmission in a frequency selective fast fading channel was presented.The system proposed is a simplification of a FFH-CDMA system because the hopping access code is eliminated.Regular channel coding is sufficient to allow multiple access with rates close to channel capacity.Given that RA codes were to be employed, the choice of which RA code to use was done using EXIT charts.A multiuser detector, suitable for other situations such as PPM, was modeled and analyzed using a factor graph.The channel model, combined with non coherent detection, makes this system suitable for situations where the channel cannot be estimated.

1 Fig. 2 .
Fig. 2. Iterative receiver with details of decoder layers for the first user.
d.f p(R, b) or its extended version p(R, c, c j , m, b).The variables R and c are N -dimensional vectors containing all values of R n and c n respectively.The variable c j is a N × T matrix containing the values of c j n .The variable m is a T dimensional vector containing the values of m j .The variable b is a K × T matrix with the values of b j i .Variable indexes relate to matrix or vector indexes according to the dimensions involved.The extended version p(R, c, c j , m, b) can be factored as: p(R, c, c j , m, b) = p(R|c)P (c|c j )P (c j |m)P (m|b)P (b)