On Convolutional Lattice Codes and Lattice Decoding Using Trellis Structure

Constructing hypercubic lattices from convolutional codes based on Constructions A and D is investigated in this paper and their error performance in a point-to-point communication system is studied. Moreover, analogous to Construction A/D, single/multilayer code lattices are proposed. As Construction D requires certain minimum Euclidean distance criteria, we propose methods to guarantee the distance requirements of Construction D, which results in a superior lattice construction compared with Construction A. Due to the key role of soft input soft out decoding algorithms in improving the performance of a code, lattice decoding based on the Bahl, Cocke, Jelinek and Raviv (BCJR) algorithm for lattices constructed from convolutional codes is also proposed in this paper. Moreover, as the BCJR algorithm requires knowledge of the statistical characteristics of modulo lattice additive noise (MLAN), the probability density function of MLAN is derived in closed form.


I. INTRODUCTION
Constructing lattices from Forward Error Correction (FEC) codes has been a rather active field of research in the past, and has led to, e.g., Constructions A, B, C, D and etc. [1], [2].In this paper we are also interested in lattice construction, and in particular, Construction A because of its simplicity and Construction D because of the potential performance of the resulting codes.For lattice construction, we use convolutional codes as the underlying FEC code because capacity approaching Turbo codes consist of two (or more) convolutional codes; therefore, constructing convolutional lattices is a major step forward towards constructing Turbo lattices.There has been, surprisingly, little work on exploitation of convolutional codes for constructing lattices reported in the literature.Although [3], [4] discusses lattices based on convolutional codes (indeed, Turbo codes), the transmitted signals are restricted to be binary which loses the freedom to arbitrarily specify the rate of the lattice code: in this paper we extend this to allow nonbinary transmission with arbitrary transmission rate; moreover, lattice decoding algorithms have not been discussed in [3], [4], whereas we propose adopting the trellis structure of the underlying convolutional code for lattice decoding and demonstrate superior performance using this approach.This provides the possibility of implementing computationally feasible lattice decoding methods for convolutional lattices.Note This work was supported in part by the European Commission FP7 contract no.318177 (DIWINE), and in part by the EPSRC under Grant EP/K040006 (NetCoM5G).M. M. Molu is with the 5G innovation Centre (5GIC) at the University of Surrey, UK.Email: m.molu@surrey.ac.uk.K. Cumanan, M. Bashar and A. Burr are with the department of Electronics, University of York, UK.Email: {kanapathippillai.cumanan,mb1465,alister.burr}york.ac.uk that universal lattice decoding methods commonly applied in the literature for practical communication systems (e.g.sphere decoding) have until now been relatively complex, and as a result are applicable only to lattices with very short dimension [5]- [8]; for instance, a lattice decoder was proposed in [7] with relatively reasonable complexity that was examined for lattices of dimension up to 32.Indeed this is a major drawback because the code length (lattice dimension) of real communication systems is much longer than 32.Consequently, the lattice decoding method proposed in this paper for decoding convolutional lattices is practically important due to its feasible complexity at high dimensions; furthermore, it will be observed in Sec IV-C that the proposed lattice decoding approach significantly outperforms existing lattice decoding algorithms.[9] also studies convolutional lattices, however, the proposed scheme is mostly "attractive for Inter Symbol Interference (ISI) channels".Decoding algorithms of other ISI channel, in particular, Faster Than Nyquist (FTN) signalling has been studied by the authors in [10], however note that [9] considers code filters combined with ISI filters which results in unification of equalization and decoding.In this paper we are not interested in ISI channels nor FTN signalling but we would like to construct lattices from convolutional codes that are proved to approach capacity when applied in Turbo codes.Moreover, [9] considers single layer lattices whereas we assume multilayer as well as single layer lattices.
An earlier version of this work was reported in [11], however, due to the superior performance of Construction D over Construction A, [11] is further extended in this paper and construction of convolutional lattices based on Construction D and multi layer Code Lattices are also investigated in this paper.Construction D relies on two characteristics of the underlying FEC codes: (i) the codes are nested as a chain of sub-codes and (ii) these sub-codes have larger Minimum Euclidean Distance (MED) than the parent code [1,Ch. 8].Convolutional codes do not readily fulfil such requirements, which may be one reason that convolutional codes have not so far been exploited in Construction D 1 .In this paper, we first propose constructing convolutional lattices based on Construction D by neglecting the MED criterion, and then introduce means of increasing the MED of nested convolutional codes by rearranging the input messages which guarantees to fulfil the MED criterion of the Construction D definition.
For the convolutional lattices based on Construction A/D (and also single/multi layer Code Lattices), Enc.

Dec.
Mod- The new lattice decoding algorithms we develop are based on ML/MAP decoders, and thus have similar complexity.However, throughout the paper it will be observed that on the point to point channel ML/MAP decoders outperform the corresponding lattice decoders in practice (i.e., in dimensions less than infinity [13]- [16]).This might raise the question of the benefits of lattice decoding as compared to pure ML/MAP decoding.Our motivation, however, extends beyond the pointto-point channel to relay communication systems [17], [18], and in particular, recently-proposed communication paradigms such as Compute and Forward (C&F) [19], which relies purely on the structure of the lattice, and hence requires practical implementation of lattice decoding for lattices with arbitrarily high dimension, for which direct ML/MAP decoding would be prohibitively complex.Here we study lattice encoding and decoding algorithms in a point to point communication system as a step towards their use in C&F decoders.This paper is organized as follows: In Section II a point-topoint system is introduced.In Sec III the statistical characteristics of MLAN are studied and in Sec IV convolutional lattices based on Construction A are proposed, along with the methods for lattice decoding.An example is presented in section V that exploits the proposed lattice encoding and decoding algorithms in a C&F scenario and the superiority of the proposed methods is discussed in terms of performance and complexity.Sec VI deals with convolutional lattices based on Construction D and their lattice decoding methods using the trellis structure of the underlying codes.Sec VII gives concluding remarks, including a discussion of further work required to apply the methods described to C&F, and to turbo lattices.

II. SYSTEM MODEL
A point-to-point communication system exploiting nested lattice codes according to [13], and illustrated by Fig. 1, is investigated in this paper: the transmitter employs a lattice encoder which maps a message t to a Euclidean codeword c to be sent to the destination, i.e., where u is a dithering signal, known to the transmitter and receiver, that is uniformly distributed in the Voronoi region of the coarse lattice.It should be noted that we assume hypercubic lattice in this paper (i.e., Λ = q N where q is the width of the hypercube per dimension and N is the dimension of the hypercube).G Λ is the generator matrix of the lattice code that is obtained from a feed forward convolutional encoder according to Construction A and D in this paper.Note that the code rate is specified by the shaping lattice, i.e., the number of the lattice points inside the Voronoi region of the shaping lattice as well as the rate of the underlying convolutional code.Assuming M to be the number of lattice points inside the shaping region, is defined as the code rate where N is the lattice dimension.
The signal received at the destination is corrupted by Additive White Gaussian Noise (AWGN) as that is multiplied by the α coefficient to implement Minimum Mean Square Error (MMSE) estimation and the dither u is also added to the received signal 2 , The signal y is then decoded by a lattice decoder and the transmitted message is recovered at the destination where Q(•) indicates a lattice quantizer/decoder and D maps a codeword to a message.Note that the [•]mod − Λ operation is a distributive operation and so one can rewrite (5) as which is equivalent to performing the modulo operation before lattice quantization.Indeed performing the modulo operation before or after lattice decoding/quantization does not affect the performance of the system and so a common trend in the literature is to apply existing lattice decoding algorithms, e.g., [20], [21], before the modulo operation since this leaves the structure of the lattice intact.However, we take a rather different approach and perform the modulo operation before lattice quantization as in (7).
) and modulo operation

III. STATISTICAL CHARACTERISTICS OF MODULO LATTICE ADDITIVE NOISE
Statistical description of the overall receiver noise plays a key role in the design and theoretical analysis of communication systems; for instance, soft decoding algorithms, e.g., the BCJR algorithm, rely on the distribution of the additive noise in the receiver, which is usually modelled by the Gaussian distribution in conventional communication systems.However, in modulo-lattice channels wherein the receiver employs the modulo − Λ operation before channel decoding, the additive noise is no longer Gaussian.Indeed, the additive noise lies inside the fundamental Voronoi region of the coarse lattice, and so, unlike the Gaussian noise, the modulo-Λ Gaussian noise domain doesn't range from −∞ to +∞ (i.e., n mod / ∈ (−∞, +∞)).Following Erez et al. in [13], we will use the notation of "MLAN" (Modulo-Lattice Additive Noise) in this paper.
Considering that we assume a lattice with hypercubic shaping region in this paper based on Construction A/D, the [•]mod − Λ operation for an N dimensional lattice can be performed independently per dimension and so in the rest of this section we concentrate on deriving the statistical description of the noise in a single dimension.As n is normally distributed with zero mean and σ 2 variance, αn is also distributed normally.Moreover, the random variable (1 − α)u is distributed uniformly in [−d, +d) where 2d is the length of shaping hypercube, centred in origin.Consequently, the overall noise is the modulo-Λ of sum of two random variables of which one is distributed normally and the other is distributed uniformly: where the pdf of N ′ is derived as with is the generalized error function.For a proof of (9), see Appendix A. Fig. 2 (black line) illustrates the pdf of N ′ that was derived in (9).A modulo-lattice operation is equivalent to mapping the area outside Voronoi region into inside the Voronoi region: for instance, in Fig. 2, the portion of the black curve in (d, 3d) will be mapped inside the (−d, d) region.It is clear from the figure that the portion of f N ′ (x) in (d, 3d) is equal to the green curve at (−d, d).Note that the green curve corresponds to the pdf of (1 − α)u + αn (as in ( 8)) where n follows the same distribution as in (8) and u is a random variable uniformly distributed in (−3d, −d).Indeed, the the pdf of modulo-lattice noise in (−d, d) is the sum of an infinite number of random variables with a pdf as in (37) with the centres located at 0, ±2d, ±4d, • • •.Consequently, the pdf of Z in (8) can be written as ). (10) Note that f Z (z) as derived in (10) will be used for lattice decoding of convolutional lattices using the BCJR algorithm in the following sections.
Truncation Error: Although the expression derived in (10) represents f Z (z) in closed-form, the infinite summation can be considered as a source of inconvenience in practice.Nevertheless, the infinite summation can be truncated with arbitrarily low truncation error.Note that lim i→∞ erf( z−2di+κ √ 2ασ , z−2di−κ √ 2ασ ) = 0, and so the significance of the expressions in (10) decreases as i increases.Fig. 3 illustrates f Z (z) for various values of σ using the closed-form expression of (10) truncated at i = ±2.The result of Monte Carlo simulations is also provided for comparison: it shows a perfect agreement between the theoretical plot and Monte Carlo simulations even for truncations as low as i = ±2.

IV. CONSTRUCTING LATTICES FROM FORWARD ERROR CORRECTION CODES
Lattices with hypercubic Voronoi regions are particularly interesting because the mod-Λ operation in N dimensions can be performed independently in each dimension which results in considerable simplification of the problem.Since the complexity of specifying the Voronoi cell of a non-hypercubic lattice is unbounded in large dimensions [7], in a complexityperformance trade off, hypercubic lattices with lower complexity have been a potential candidate for practical purposes and so we focus on hypercubic lattices too."Construction A" and "Construction D" are two well known and widely adopted lattice constructions that have hypercubic Voronoi regions.We adopt them from [1] for constructing convolutional lattices.Moreover, single and multi-layer Code Lattices analogous with Construction A and D, respectively.It will be observed that Code Lattices outperform their counterparts with considerable difference.

A. Preliminaries: Block Convolutional Codes
Assume a block convolutional code with rate k/N ; the generator matrix of this block code is a k × N matrix that the rows of a generator matrix (i.e., basis vectors) are convolutional codewords generated by setting only one bit in the data vectors to one and the remaining bits to zero.For instance, let us assume that a codeword with length-N that is generated by a data-word as [1, 0, • • • , 0] is placed in the first row of the generator matrix as the first basis vector and similarly, the codeword that is generated by a data-word with a one in the i-th position is placed in the i-th row of the generator matrix.Consequently, one generator matrix of this (7, 5) block convolutional code, based on the explanation above is that will be used in next sections for constructing the lattices.
It should be noted that the block convolutional codes are terminated by fixed zero bits in this paper.

B. Single Layer Convolutional Lattices: Construction A and Code Lattice
Construction A: Assume a (k, N, d) linear block code (block convolutional code in this paper) in For instance, assuming q = 2, any vector x with even entries, is congruent to the codeword c 0 = (0, • • • , 0).In other words, any vector x with even entries is (i) a lattice point and (ii) represents the codeword c 0 .In the following we discuss how the generator matrix of a convolutional lattice may be obtained from the generator matrix of the convolutional code.
Generator Matrix of Λ A : For a given block convolutional code with rate k/N , the generator matrix of the "Ndimensional" convolutional lattice Λ A constructed according to Construction A is where G c is the k × N generator matrix of the convolutional code (e.g., for a (7, 5) convolutional code G c is derived in (11)) and G is an (N − k) × N matrix with rows chosen from an N × N scaled identity matrix qI N ×N wherein the scaling parameter q is specified by the shaping lattice 3 .The matrix G must be chosen in a way that G Λ A is a full rank square matrix.Indeed, the role of G is to make where d C min is the minimum Hamming weight of the corresponding convolutional code.Note that for q < d C min , the error performance of the lattice is expected to be inferior to the error performance of the underlying block code because the performance of the lattice is bounded by the minimum Euclidean distance, which is smaller than the minimum Euclidean distance of the underlying convolutional code d Λ A min-u < d C min .Single Layer Code Lattice: The generator matrix of a block convolutional code G c (size k × N ) can also be considered as the generator matrix of a "k-dimensional" lattice, which is called "single layer Code Lattice" (Λ C ) in this paper.Note that although the dimension of the lattice is k, N coordinates are used to represent the lattice points in N dimensional space.The lattice points of Λ C can be generated using Z • G c where the size of Z is 1 × k.
Minimum Euclidean distance of d Λ C min-u is equal to the square of the Hamming distance of the underlying block convolutional code Remark 1: It can easily be observed that Λ C ⊆ Λ A and so, clearly, Indeed the extension of the Λ C lattice to Λ A is performed using sub-matrix G in (13).
For a better understanding the role of G in (13) (or equivalently, the extension of Λ C to Λ A ), a simple two dimensional example is provided in the following: one generator matrix of a two dimensional hexagonal lattice on the z = 0 plane is G Hex = 1 0 , nevertheless, the generator matrix of the lattice is not unique and, for instance, it can be represented by another generator matrix as that uses three coordinates on the x + y + z = 0 plane to represent a two dimensional lattice.The lattice generated by G Hex in ( 16) is indeed the generator matrix of the two dimensional lattice Λ C discussed above.In order to produce a lattice based on Construction A, one can concatenate, e.g., the row [0 0 2] with ( 16) and obtain Note that the third row in ( 17) copies the two dimensional hexagonal lattice to the third dimension parallel to x + y + z = 0 plane and generates the three dimensional Λ A lattice.It's worth to mention that, in this example, the d C min is the MED of the hexagonal lattice and so which is bounded by the MED of the code, hence, the error performance of G Hex in ( 16) and G Λ A in ( 17) are expected to be rather similar; however, for many advanced channel codes, the MED of the code is larger than q and so the error performance of the Λ C lattice is better than the error performance of Λ A lattice.This will be confirmed by simulation later in the paper.
Remark 2: A transmitter exploiting lattices (based on Construction A) as the channel code, generates only the lattice points inside the Voronoi region of the shaping lattice q N as follows: assuming that u 1×N is the data vector that represents M messages, one can write consequently, u = [u data u duplicate ] where u data is a 1 × k vector that is specified by the first row of (18); u duplicate is a 1 × (N − k) vector that does not carry any information.Note that the transmitter exploits [u • G Λ A ]mod − q N for assigning a lattice point to a message and so any value assigned to u duplicate will be discarded by [•]mod − q N operation.Note that one can also generate lattice points generated by so the lattice points inside q N hypercube are common lattice points between Λ A and Λ C .Note that it is important to distinguish between the two lattices because "lattice decoding" using Λ A or Λ C can lead to different error performance and so one should use appropriate lattice (the lattice with the larger minimum distance) for the purpose of lattice decoding.

C. Decoding Single Layer Convolutional Lattice Codes using Trellis Structure of the Code
Although lattice decoding (indeed lattice quantization) is usually considered to be less complex than ML decoding because of the structure of the lattice, a practical "universal lattice decoding" algorithm with reasonable complexity is still a hot research topic in the field.There are several lattice decoding algorithms proposed in the literature [1], [6], [7], Fig. 4. Trellis representation of (7, 5) convolutional lattice with q = 3. Input is in {0, 1, 2} and output is in {0, 1, 2 (or − 1)}.Green lines represents the transition corresponding to input 0, blue corresponds to input 1 and red for input equal to 2.
[22] , however, the algorithms are only applicable in very low dimensions; for example, in [7] it is clarified that the proposed algorithm has been examined for decoding lattices up to 32 dimensions.Considering that transmission rates close to capacity can be approached only by lattices with high dimension, the existing universal lattice decoding algorithms do not seem to be very appealing in practice.
Apart from the universal lattice decoders, several lattice decoding algorithms have been proposed for certain lattices obtained using particular FEC codes; for instance, lattice decoders based on the sum-product algorithm have been proposed in [23], [24] for Low Density Lattice Codes (LDLC).Likewise, in this paper, we are not interested in a universal lattice decoding algorithm for an arbitrary lattice but in lattice decoding of convolutional lattices that are obtained using convolutional codes.
Before we continue with lattice decoding of convolutional lattices, let us concentrate on ML/MAP decoding of convolutional lattices and notice that ML and MAP decoding algorithms with reasonable complexity exist (i.e., Viterbi and BCJR, respectively).
ML and MAP Decoding of Convolutional Lattices: For ML/MAP decoding of convolutional lattices, one can simply resort to the trellis structure of the corresponding convolutional code: for instance, assuming q = 2 and preserving the order of the basis vectors in the generator matrix of the lattice according to Section IV-A, the transmitted lattice points are exactly equal to the corresponding binary convolutional code and so one can easily employ the trellis structure of the convolutional code for Viterbi/BCJR decoding of the convolutional lattice.For shaping hypercubes q > 2, the trellis structure is not hard to derive.As an example, assume q = 3, and so, the lattice encoding is performed in F 3 .Assuming a shift register based convolutional encoder which performs operations in F 3 , the trellis structure is illustrated by Fig. 4 for a (7, 5) convolutional code where the green arrows represent transitions corresponding to input u i = 0, blue and red arrows show transitions corresponding to u i = 1 and u i = 2, respectively.Note that the overall number of the codewords inside the shaping hypercube is 3 k and so the code rate is It is important to clarify that using the trellis structure of the underlying convolutional code for ML/MAP decoding of the lattice, we use the Code Lattice (Λ C ) for decoding and not the Construction A lattice (Λ A ).Note that d Λ C min ≥ d Λ A min and consequently decoding on Λ C outperforms decoding on Λ A .
Lattice Decoding of Convolutional Lattices: As discussed earlier in ( 5) and (7), performing the modulo operation before or after lattice quantization will not affect the performance of the system; therefore, for the purpose of lattice decoding, we perform the modulo operation before lattice quantisation which consequently maps the entire space to the inside of the Voronoi region of the shaping lattice which includes only the lattice points that can actually be transmitted from the source.Therefore, one can exploit the trellis structure of the underlying convolutional lattice for lattice decoding (e.g., Viterbi or BCJR).Note that the only difference with the ML/MAP decoding discussed earlier is the [•]mod − q N operation and so we refer to this as "Lattice decoding using Viterbi/BCJR" algorithm (where the noise is MLAN) whereas ML/MAP decoding refers to conventional Viterbi/BCJR decoding algorithms without the [•]mod − q N operation (i.e., with Gaussian noise).Considering that the BCJR algorithm requires the statistical description of the overall noise, we exploit the pdf of MLAN derived in (10) for calculating the state transition probabilities of the BCJR algorithm.
Fig. 5 illustrates the Frame Error rate (FER) obtained using computer simulations for a (7, 5) convolutional lattices with q = 2 (i.e., F 2 ) on a lattice with dimension equal to 20.Assuming Gaussian noise and modulo operation before BCJR decoding (i.e., Lattice Decoding (LD) using BCJR algorithm), FER is shown by the bold line marked with (+); for comparison two universal lattice decoding algorithms from [5] and [6] are indicated with LD-Alg.I and LD-Alg.II, respectively.It is clear that the proposed BCJR based lattice decoding of convolutional lattices outperforms conventional lattice decoding methods with more than 1.5 dB difference.Note that in Fig. 5 we are forced to perform computer simulations in low dimension (20 dimension) because existing universal lattice decoders, i.e., LD-Alg.I and LD-Alg.II from [5] and [6], that are used as a benchmark for comparison, are practically feasible only in low dimensions.Fig. 5 also shows the BCJR decoding of the convolutional lattice (without performing modulo operation, say MAP decoding).Note that MAP decoding outperforms lattice decoding because of the poor error performance of lattice decoding 4 , however, clearly both the curves converge at high SNR, as expected.
In the following theorem, the advantage of Λ C over Λ A that leads to a superior error performance as illustrated in Fig. 5 is discussed.

Theorem 1. Considering error rate as a performance benchmark, lattice decoding of single layer Code Lattice (Λ C ) outperforms lattice decoding of the corresponds Construction A lattice (Λ A ).
Proof: Comparing the lattice decoders in Fig. 5 puts forward the question of why the proposed lattice decoder outperforms existing universal lattice decoders?There are indeed two main reasons for this that are explained in the following: • The proposed lattice decoding using the BCJR algorithm is performed over the Code Lattice (Λ C ) whereas lattice decoding using universal lattice decoders proposed by [5], [6]   decoders that perform decoding on Λ A lattice.Note that universal lattice decoding algorithms proposed, e.g., in [5]- [7] require generator matrix in square form and so we are forced to use the Λ A lattice with square generator matrix for decoding.
• In a Λ A lattice which is generated from a k ×N convolutional code, the dimension of the lattice increases from k to N (using G sub-matrix in ( 13)) and consequently the number of adjacent lattice points that can erroneously be decoded increases.
As discussed in earlier sections, considering that a lattice decoder is, in general, outperformed by an ML decoder, application of lattice decoders in practice does not seem to be a justifiable choice in point-to-point communication systems, however, the idea of obtaining convolutional lattices, in this paper, was initially motivated by C&F relaying [19].In order to validate the usefulness of lattice decoding, the next section, we consider a C&F relaying where lattice decoding is the method of choice due to its manageable complexity in practical systems.

V. APPLICATION OF CONVOLUTIONAL LATTICES IN COMPUTE AND FORWARD
In this section, we use C&F relaying to validate the usefulness of the proposed lattice decoder by comparing the complexity of the proposed lattice decoder with an ML/MAP decoder.Assume a C&F relaying systems wherein multiple source nodes transmit their data simultaneously towards a relay node.For instance, Fig. 6 illustrates the Multiple Access Channel (MAC) phase of a relaying system wherein the source nodes employ convolutional lattice codes as the FEC code.The relay node performs channel decoding (whether ML or lattice decoding); upon decoding the resultant lattice point in the relay, [•]mod − q N operation is performed as network coding and a new lattice point is then sent to the intended destination nodes (see e.g., [19] for detailed description about C&F).Assuming the source nodes to apply the same convolutional codes, the complexity of the relay node employing the proposed lattice decoder is considerably lower than the complexity of the equivalent ML/MAP decoder.Let us define the complexity of the proposed lattice decoder for convolutional lattices as the number of trellis states C = q T −1 trellis states (20) where C is the measure of complexity and T is the constraint length of corresponding convolutional code; note that the complexity of the lattice decoder is independent of the number of the source nodes whereas assuming M source nodes, the complexity of ML/MAP decoder is C = q M (T −1) trellis states.Consequently, as illustrated by Fig. 7, the complexity of the ML decoder is indeed much more than the lattice decoder.
As an example to evaluate the error performance of a C&F system, in Fig. 6, assume a relaying system with two transmit nodes that both exploit convolutional lattice of dimension 1000 based on (7, 5) code and shaping lattice of q = 3 (i.e., hypercube of 3 1000 that results in rate 1  2 log 2 3).The channel corresponding to first user is set to one (h 1 = 1) and various values are assumed for the second user's channel as h 2 = 1, 1.2 and 1.4.Fig. 8 shows the FER of this C&F system with proposed lattice decoding used in the relay node: as expected, the self-noise (see, e.g., [18] or [19] for more discussion about the self-noise) degrades the performance of the system due to non-integer values of h 2 , however, from a complexity point of view, the proposed lattice decoder using BCJR algorithm performs decoding with only 3 2 = 9 trellis states that can be implemented on a real hardware, whereas an ML/MAP decoder will have 3 2×2 = 81 trellis states.This demonstrates the advantage of the proposed lattice decoder in certain communication systems like C&F.Note that since the complexity of an ML/MAP decoder grows exponentially with the number of the users, practical implementation of it is indeed impossible with moderate and large number of users.

Lattices based on Construction D (Λ D
) and what we refer to as "multilayer Code Lattices (Λ C ) 5 " are the two lattice constructions discussed in this section.However, before we continue with the definition of Construction D and the construction of lattices from convolutional codes exploiting the Construction D template, we would like to focus also on conventional multilevel coding [25] techniques which are referred to as Construction by Code Formula (CCF).This is discussed in the next subsection.Note that we are interested in CCF because both CCF and Construction D are usually regarded equivalent in the literature (e.g., see [26]- [28]).

A. Multilevel Codes or Construction by Code Formula
Assume a family of a binary linear codes in which Frame Error Rate for a C&F system with two transmit nodes exploiting (7, 5) convolutional lattice with q = 3, h 1 = 1 and various values for h 2 .
with C i as a [k i , N, d i ] linear block code.A code based on CCF will be defined as where where x ∈ C i .For instance, assuming a = 3, one can write R Ci .The desired aspects of CCF, among the others, is that encoding (and decoding) C CCF can be performed using the conventional encoding (and decoding) methods used for the underlying code C i .For instance, one can use Viterbi or BCJR algorithm for decoding a convolutional C CCF , wherein the receiver decodes the inner layer C a first and exploits it as a priori knowledge passed to the decoder which decodes the layer corresponding to C a−1 .This multistage decoding algorithm continues until all the layers are decoded.Note that multilevel codes and multi-stage decoding algorithms are extensively studied in the literature (see, e.g., [25]) and so we will adopt them in the following for encoding and decoding lattices based on Construction D.
In the following, taken from [1], we will define Construction D and will explain, using a counterexample, that Construction D and CCF can be different.

B. Construction D
Assume a family of a binary linear codes in which with C i as a [k i , N, d i ] linear block code where 6 Alternatively, one can write which ψ i (x) = x 2 i−1 where x ∈ C i .A lattice based on Construction D contains all vectors of the form where α (j) k ∈ {0, 1}.Consequently, Λ D is an N dimensional lattice with hypercube fundamental Voronoi region.Assuming C D to be a code consisting of all lattice points inside the (−1, 1] N hypercube of Λ D lattice, any point/vector Note that as both the CCF and Construction D are defined based on the ψ(•) function, they are usually considered to be equivalent in the literature (e.g., see [26]- [28]), however, in order to disprove this conjecture, a counterexample is provided in the following which shows that CCF does not necessarily result in a lattice construction.
Counterexample: Assume two nested binary codes  The generator matrix of Construction D is7 with which, the lattice points inside the 2 4 hypercube are Careful comparison of ( 26) and ( 28) reveals that the two last rows in ( 26) and ( 28) are different and so, one can easily conclude that CCF and Construction D are not necessarily equivalent.Furthermore, although [1.5 1.5 1 1] and [0 1.5 1.5 0] are points of C CCF in (26) (the last vectors in row six and seven), their mod-2 sum does not belong to C CCF in (26) and so, clearly, in this example, the CCF does not generate lattice points.In general, the CCF does not necessarily generate a lattice, however, for the particular case of convolutional codes, we introduce an approach with which lattice points of Construction D are generated using CCF.
Note that on the one hand we are interested in constructing a lattice from (convolutional) codes based on Construction D and, on the other hand, we would like to make Construction D and CCF equivalent because then we can exploit existing and practically feasible decoding algorithms of CCF for decoding convolutional lattices that are constructed based on Construction D, else, as discussed in the context of construction A, universal lattice decoders are not interesting from a practical point of view at high dimensions.
In the following, we focus on deriving the generator matrix of a lattice constructed from convolutional codes according to Construction D and its equivalent CCF.For this, we first neglect the minimum distance criterion of Construction D definition in the following (i.e., the d i ≥ 4 i /γ criterion); later on, we will discuss methods for ensuring the minimum distance criterion is fulfilled which indeed can improve the performance of the code 8 .a) No Minimum Distance Criterion: The generator matrix of the convolutional lattice will be obtained as follows: the first k a basis vectors9 multiplied by 1/2 a−1 form the first k a rows of the generator matrix; the rows from k a + 1 to k a−1 are obtained by multiplying the k a + 1 to k a−1 rows of the convolutional code generator matrix G c to 1/2 a−2 .Similarly one can obtain all the rows of the generator matrix of the lattice using the ψ(•) mapping that corresponds to the associated convolutional code.The remaining (N − k) rows are chosen from the rows of a 2I N ×N matrix in such a way that the generator matrix of the lattice has rank N .
In the following, the generator matrix of a convolutional lattice based on Construction D is further discussed using an example.
Example 1: Assume three (7, 5) convolutional codes as and let G Ci be the generator matrix of a (7, 5) convolutional code as derived in (11).Note that since we assume nested codes, we mean that all C 1 , C 2 and C 3 contain equal length codewords (and data words) and so it implies that the data words of the sub-codes are zero padded (ZP) to make the length of the data vectors of the sub-codes equal to the length of the data vector of the parent code C 1 .For instance assume k 3 = 1, k 2 = 2, k 1 = 4; therefore, the generator matrix of the the three nested codes is as follows: where b i is the i-th row of (11).The generator matrix of the lattice constructed according to Construction D is Note that the coefficient 1  4 for b 1 , the coefficient 1 2 for b 2 and 1 for b 3 and b 4 represent the ψ i (•) function in (24) and G contributes the (2Z) N part of (24).All the lattice points inside the (−1, 1] N hypercube are the codewords of the Construction D convolutional lattice, and are obtained using the [u • G Λ D ] mod − 2 N operation where u ∈ Z.
In order to take advantage of decoding algorithms of CCF, in the following, a method is introduced by which Construction D and CCF are equivalent.
however, set the data bits corresponding to the basis vectors indicated by the red color to zero, i.e., Consequently, d eq • G TX-eq Λ D mod − 2 will generate the same lattice points inside the 2 4 hypercube that will be generated by Note that the upper sub-matrix in (31) corresponds to C 3 , the sub-matrix in the middle corresponds to C 2 and the bottom one corresponds to C 1 ; hence, instead of using matrix multiplication for generating lattice points (codewords), one can use conventional shift register based encoders according to Fig. 9 in the transmitter where Consequently, mod − 2 and Fig. 9 will generate the same lattice points inside the 2 4 hypercube.
b) Ensuring Minimum Distance Criterion: So far, we have relaxed the minimum distance criterion of the original definition of Construction D. The relaxation of the minimum distance criterion was, in part, to focus on constructing lattices using conventional convolutional codes; however, the literature usually ignores the minimum distance criterion(e.g., see [3], [23], [29]) because it is hard to find nested codes that fulfil this criterion.In particular, in the case of convolutional codes, the minimum distance of a code is fixed; for instance, it is well known that the minimum distance of the (7, 5) convolutional code that was used in the above example is equal to five.
In the previous part, we applied a naive method of zero padding to have data words of equal length in all convolutional codes (e.g., see (33)), however, one can perform repetition of the uncoded data bits instead of simply zero padding which indeed can result in increasing the minimum distance of the code.
For clarity of explanation, let us begin with the same (7, 5) convolutional code with the generator matrix derived in (11).Note that ( 11) is only one of the generator matrices of the (7, 5) code; each basis vector in (11) can be replaced by another basis vector.For instance, the basis vector in the first row of ( 11 Note that the repeating pattern depends on the convolutional code, however, for the particular example of the (7, 5) convolutional code, repeating [d i 00] along the data word, instead of zero padding, will generate codewords with maximum MED.

C. Decoding Multilayer Convolutional Lattice Codes
One obvious way of lattice decoding convolutional lattices obtained using Construction D is to employ the well known universal lattice decoders in combination with the original generator matrix of Λ D as obtained, e.g., in (30).However, as observed in Section IV-C, the performance will be poor due to the edge lattice points and the MED of the lattice which is upper bounded by 2. Another solution is to decode the lattice in k dimensions instead of N and obtain better performance; Proof: The proof of single layer convolutional lattices in theorem 1 proves the corollary 1 too.
Note that, in the following, lattice decoding is performed over Λ C (rather than Λ D ).However, we use the term "Construction D" to refer to multilayer convolutional lattices.Considering that lattice codes based on Construction D, as described in the previous subsection, are indeed multilevel convolutional codes [25] and so one can apply multi-stage trellis decoding algorithms for ML, MAP or lattice decoding (similar to Construction A in Section IV-B ).The multistage decoding is started by decoding the inner code with the largest minimum distance C a ; the decoded layer is then fed to the higher layer C a−1 and is used as a priori information for decoding the data of the corresponding layer.The process is continued to until decoding C 1 .Note that any known decoding algorithms, e.g.Viterbi or BCJR, can be applied for decoding the layers (we are interested in BCJR decoding in this paper as it is a SISO decoder).The BCJR decoder for multi-stage decoding is slightly different than the Conventional BCJR decoder because the state transition probabilities depend on the a priori information of the other layers too.A priori information can be hard information plugged from inner layers to upper layers or soft information that only passes the probability of the data corresponding to the other layers; by exchanging soft information among the layers, iterative decoding of the layers is also possible that indeed offers higher performance gains.
Example 2: A design methodology of a two layer lattice based on construction D from (7, 5) convolutional codes is explained in this example.Assume that the nested codes are defined as F N 2 ⊇ C 1 ⊇ C 2 where the dimension N = 300, C 1 and C 2 together participate in encoding 150 bits (i.e, number of messages M = 2 150 ).Moreover, assume C 2 participates in encoding 10 bits and C 1 encodes 140 bits.In the following we will describe obtaining the generator matrix of the lattice based on Construction D where the minimum Euclidean distance

Lattice Generator Matrix
One lattice based on construction D will be obtained as follows: • Inner layer: the inner code C 2 carries only 10 data bits in inner layer of a codeword of length 300 that is generated from a data word of length 150 (because it is based on a (7, 5) convolutional code); consequently, each data bit in inner layer can be represented by 15 "virtual" data bits that can be arranged in the desired arrangement in order to achieve the desired MED.As there are 10 data bits to be encoded in the inner layer, and there are only 10 basis vectors that need to be specified; we propose b 1 = ⊕r i where i ∈ {1, 4, 7, 10, 13} and r i specifies the rows of the generator matrix of (7, 5) code that was derived in (11) Construction D using CCF: The equivalent shift register based encoder consists of two conventional convolutional encoders where 140 data bits are encoded by C 1 and 10 data bits by C 2 ; moreover, the data of C 2 are repeated in the corresponding positions to generate a "virtual" data word of length 150.Fig. 10 illustrates BER of the convolutional lattice in Example 2: Overall BER is shown by black solid line marked with (x).The BER of the outer layer is nearly equal to the overall BER because the performance of the code is bounded by the MED of the outer layer (note that minimum Euclidean distance of the outer layer is smaller than minimum Euclidean distance of the inner layer).Clearly, due to the large minimum Euclidean distance of inner layer, its BER is much lower.
It was claimed earlier (without proof) that neglecting MED criterion of the definition of Construction D will degrade the error performance of the overall system; in order to validate this, we have provided another simulation in Fig. 11 where C 2 is a [10,300,12].The minimum Euclidean distance is 12 (d C2 min = 12) which is smaller than the minimum Euclidean distance of the C 2 in the above example.As expected, the BER of both layers is degraded when compared with Fig. 10.

VII. CONCLUSION AND FUTURE WORK
Constructing convolutional lattices based on Construction A/D is proposed in this paper.Also, lattice decoding using trellis structure of the underlying convolutional code is discussed.Unlike the existing lattice decoding algorithm the proposed method is practically feasible with reasonable complexity at arbitrarily high dimensions.Moreover, the performance of the proposed lattice decoder is found to be superior, since decoding is performed at lower dimension compared to the dimension of Construction A/D.Furthermore, the statistical characteristics of MLAN are derived in this paper, and are exploited by the BCJR decoder.

APPENDIX A DISTRIBUTION OF N ′
Assume T is a normally distributed random variable with mean equal to µ = a+b 2 and variance equal to α 2 σ 2 , i.e., f T (t) = 1 √ 2πασ e − (t−µ) 2 2α 2 σ 2 .Also, assume V is a random variable according to a uniform distribution in the (η b , η a ) interval, i.e., and so, the pdf of W = T + V is with η i = i(1 − α).Proof: Assuming W = T + V , the pdf of W is the convolution of the pdf of T and V , i.e., f W (w) = f T (t) * f V (v).By resorting to the definition of the convolution operator, one can write x 0 e −t 2 dt and µ = a+b 2 , after some manipulation, (36) can easily be simplified according to

Fig. 7 .
Fig. 7. Complexity of ML and Lattice decoding for various values of constraint length T and assuming five users (M = 5).