A construction of UD k-ary multi-user codes from (2^m(k-1)+1)-ary codes for MAAC

In this paper, we proposed a construction of a UD k-ary T-user coding scheme for MAAC. We first give a construction of k-ary T^f+g-user UD code from a k-ary T^f-user UD code and a k^±-ary T^g-user difference set with its two component sets D^+ and D^- a priori. Based on the k^±-ary T^g-user difference set constructed from a (2k-1)-ary UD code, we recursively construct a UD k-ary T-user codes with code length of 2^m from initial multi-user codes of k-ary, 2(k-1)+1-ary, ..., (2^m(k-1)+1)-ary. Introducing multi-user codes with higer-ary makes the total rate of generated code A higher than that of conventional code.

Authors

• 8 publications
• 4 publications
• 34 publications
• 2 publications
08/19/2021

A construction of maximally recoverable codes

We construct a family of linear maximally recoverable codes with localit...
09/25/2019

Multiple-Rate Channel Codes in GF(p^n^2)

A code C(n, k, d) defined over GF(q^n) is conventionally designed to enc...
12/17/2015

Unsupervised Feature Construction for Improving Data Representation and Semantics

Feature-based format is the main data representation format used by mach...
05/01/2022

QC-LDPC Codes from Difference Matrices and Difference Covering Arrays

We give a framework for generalizing LDPC code constructions that use Tr...
01/22/2020

Construction of Rate (n-1)/n Non-Binary LDPC Convolutional Codes via Difference Triangle Sets

This paper provides a construction of non-binary LDPC convolutional code...
01/05/2018

Bayesian calibration of a numerical code for prediction

Field experiments are often difficult and expensive to make. To bypass t...
01/10/2020

Searching a Database of Source Codes Using Contextualized Code Search

We assume a database containing a large set of program source codes and ...
This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.

I Introduction

In a multiple access communication system, independent sources transmit data over a common channel. A central problem in multi-user coding for the multiple-access communications system is to assign constituent codes () to senders so that they can communicate simultaneously with a common receiver through a multiple-access adder channel(MAAC), even in the presence of noise. The collection of constituent codes is the -user -ary code, denoted by .

The -user -ary code is said to be uniquely decodable (UD) if all sums consisting of one codeword from each constitute code are distinct. Most extensively investigated UD multiuser codes for the MAAC are binary [1] [2] [3] [4]. Lindström, Martirosyan, and Khachatryan gave the multiuser UD codes, where each constituent code consists of only two codewords, one of them being zero [1] [2]. Chang and Weldon’s construction also focused on the symmetric case of each constituent code with two codewords [3].

By distributing those codewords of [2] or [3] among as few users as possible, affine multiuser codes are proposed[4] [5] to achieve higher total rate for a fixed number of users. Each constituent code Hughes and Cooper’s code [4] consist of codewords and Martirosyan’s code [5] is free of that constraints and achieves the higher total rate for a fixed number of users than those of [2] [3].

Multiuser -ary () UD codes was originally studied by Jevtić [6] and was then generalized to the case of arbitrary code length in [7]. By extension of Hughes and Cooper’s idea [4] to -ary, a mixed-rate multiuser -ary code was given in [10] and achieves the higher total rate for a fixed number of users than that of [6] [7].

On the other hand, error-correcting multi-user codes are also studied for noisy MAAC [3][8][9][11]. They usually construct the error-correcting codes from the UD codes.

In this paper, we proposed a construction of a UD -ary -user coding scheme for MAAC. We first give a construction of -ary -user UD code from a -ary -user UD code and a -ary -user difference set with its two component sets and a priori. Based on the -ary -user difference set constructed from a -ary UD code, we recursively construct a UD -ary -user codes with code length of from initial multi-user codes of -ary, -ary, …, -ary. Introducing multi-user codes with higer-ary makes the total rate of generated code higher than that of conventional code.

Ii Preliminary

Ii-a T-user k-ary MAAC

Let for a given positive integer not less than . Denote the th user’s input, the output of the noiseless MAAC

at each time epoch is given by

 Y=n∑j=1Uj,

where summation is over the real numbers. Clearly, each output symbol of the channel is an integer from set . Symbol and block synchronization are assumed and all of the users are always active.

A noisy MAAC is regarded as a noiseless MAAC cascaded with a discrete memoryless channel [3]. The discrete memoryless channel is -ary-input and

-ary-output, and is completely described by transition probabilities for all the possible input-output pairs

, .

Ii-B T-user code

Let be a -user -ary code for MAAC composed of constituent codes , . The rate of is , where is the cardinality of . The total rate of is .

The weight of an integer

-vector (a row vector with length

) is defined as , where summation is over the real numbers. The distance between two vectors and is defined as , where the minus sign “” denotes componentwise real-number subtraction.

Definition 1

[3] For any positive integer , a -user -ary code over with code length is -decodable, if for any two distinct -ary -vectors and , ,

 d(T∑j=1uj,T∑j=1u′j)≥δ. (1)

A -user -decodable -ary code with code length is referred to as an -code. A -decodable code is capable of correcting or fewer errors [3], where is the greatest integer less than or equal to . On the other hand, the -decodable code is used for detecting or fewer errors.

An -code is said to be uniquely decodable (UD), and is used for the noiseless MAAC such that the decoder is able to uniquely resolve any possible received word into the transmitted codewords, one from each of the users.

Lemma 1

A -user -ary code is UD, if for any two -ary -vectors and , ,

 T∑j=1(uj−u′j)=% \boldmath0n

implies

 (u1−u′1,u2−u′2,…,uT−u′T)=\boldmath0nT.

Ii-C Td-subset difference set

Let . Denoted by an code with . Given vector , we obtain two vectors and in the following manner. Let be the th element in , and , be the th element in , , respectively. We can always put

 d+jm=djm,d−jm=0,if~{% }~{}djm≥0d+jm=0,d−jm=|djm|,if~{}~{}djm<0. (2)

Let

 D+j={\boldmathd+j|\boldmathd+j subject to (???),% \boldmathdj∈Dj}D−j={\boldmathd−j|\boldmathd−j subject to (???),\boldmathdj∈Dj}. (3)

We obtain and . Note that both of sets are over .

Since , for convenience we refer to the -code as -subset -decodable difference set over , denoted by . Except for the domain of the set, the definition of -subset difference set is almost same as that in Definition 1. In this paper, we focus on the code over . To avoid confusion, we call as a set over , not a code. The difference set over plays an important role in our coding scheme.

Iii Uniquely Decodable Multi-User Codes

Iii-a Tf+g-User UD Code

First, we give a construction of -user UD code from a -user UD code and a -user difference set.

Let and be nonnegtive integers. Without loss of generality, we assume . Let

 Af={A1,A2,…,ATf},Aj ⊂Kf

be -code, and

 Dg={D1,D2,…,DTg},Dj ⊂Kg

be -difference set, respectively. When and are given a priori, a -user code

 Cf+g△=Ω(Af,Dg)={C1,C2,…,CTf+Tg} (4)

 Ci = {\boldmathui=(\boldmatha,% \boldmatha(g)) | \boldmatha=(\boldmatha(g),% \boldmatha⟨f−g⟩)∈Ai} i=1,2,…,Tf Ci+Tf = {\boldmathui+Tf=(\boldmathd+[f],\boldmathd−) | \boldmathd+[f]=(\boldmathd+,\boldmath0f−g),\boldmathd+∈D+i,\boldmathd−∈D−i,} i=1,2,…,Tg.

The notations in the above equations are defined as follows:

• is the first components of vector , and is the last components of , i.e.,

• is an -vector whose first components are the vector , and whose last components are , i.e.,

Theorem 1

If the -ary code and the difference set over are UD, then of (4) is a -code.

Proof: Clearly, has code length , and is -ary. The number of users in are .

Let us prove that is UD. Let

 \boldmathui ∈ Ci,i=1,…,Tf \boldmathui+Tf ∈ Ci+Tf,i=1,…,Tg

By Lemma 1, we will show that

 Tf+Tg∑i=1(\boldmathui−% \boldmathu′i)=\boldmath0f+g (5)

implies

 (\boldmathu1−\boldmathu′1,…,\boldmathuTf−\boldmathu′Tf, \boldmathuTf+1−\boldmathu′Tf+1,…,\boldmathuTf+Tg−\boldmathu′Tf+Tg) =\boldmath0(f+g)(Tf+Tg). (6)

We have that

 Tf+Tg∑i=1(\boldmathui−\boldmathu′i) = Tf∑i=1((\boldmathai,\boldmatha(g)i)−(\boldmatha′i,\boldmatha′(g)i)) +Tf+Tg∑i=Tf+1((\boldmathd+[f]i,\boldmathd−i)−(\boldmathd′+[f]i,% \boldmathd′−i)) △= (\boldmaths1,\boldmaths2). (8)

with

 \boldmaths1 = Tf∑i=1(\boldmathai−\boldmatha′i)+Tf+Tg∑i=Tf+1(\boldmathd+[f]i−\boldmathd′+[f]i) (9) \boldmaths2 = Tf∑i=1(\boldmatha(g)i−\boldmatha′(g)i)+Tf+Tg∑i=Tf+1(% \boldmathd−i−\boldmathd′−i) (10)

Restricting the -vector of (9) to its first components, we have

 \boldmaths(g)1=Tf∑i=1(% \boldmatha(g)i−\boldmatha′(g)i)+Tf+Tg∑i=Tf+1(\boldmathd+i−\boldmathd′+i). (11)

Thus

 \boldmaths(g)1−\boldmaths2 = Tf+Tg∑i=Tf+1((\boldmathd+i−\boldmathd−i)−((\boldmathd′+i−% \boldmathd′−i)) (12) = Tf+Tg∑i=Tf+1(\boldmathdi−% \boldmathd′i)

By assumption of (5), it holds

 \boldmaths1=\boldmath0f,\boldmaths2=\boldmath0g.

Then we have that

 \boldmath0g=Tf+Tg∑i=Tf+1(% \boldmathdi−\boldmathd′i) (13)

Since is UD by assumption, Lemma 1 implies

 (\boldmathdTf+1−\boldmathd′Tf+1,…,\boldmathdTf+Tg−\boldmathd′Tf+Tg,)=\boldmath0gTg.

Thus

 (\boldmathuTf+1−\boldmathu′Tf+1,…,\boldmathuTf+Tg−\boldmathu′Tf+Tg)=\boldmath02gTg.

From (9) we have

 Tf∑i=1(\boldmathai−\boldmatha′i)=\boldmath0f

for which it similarly follows that

 (\boldmatha1−\boldmatha′1,…,% \boldmathaTf−\boldmatha′Tf)=\boldmath0% fTf.

That is

 (\boldmathu1−\boldmathu′1,…,% \boldmathuTf−\boldmathu′Tf)=\boldmath0% 2fTf.

The proof of this lemma is completed.

By our notation, the number of users of is represented by , since its code length is . Thus, the relationship between , and is

 Tf+g=Tf+Tg. (14)

The total rate of code is

 R(Ω(Af,Dg))=ff+gR(Af)+gf+gR(Dg). (15)

where and .

Note that when , set is empty set. In this case, .

Iii-B UD Code with Code Length n=2m

Based on the construction of (4), we give a recursive construction of -ary multiuser code with code length of .

For any positive integers and , let

 kj = 2j(k−1)+1 (16) ℓj = ⌊log2(kj−1)⌋ \boldmathaj = (20,21,⋯,2ℓj−1),

where Code is recursively constructed as follows.

For step , the initial codes are defined as

 A(20,kj)={A1 = {\boldmathb[\boldmathaTj] | \boldmathb∈{0,1}ℓj}, A2 = {0,kj−1}}. j=0,1,…,m.

Successively for steps , using operation defined in (4), we have

 A(2i,kj) = Ω(A(2i−1,kj),A(2i−1,kj+1)−(kj−1)12i−1) (18) j=0,1,…,m−i

Therefore, from equation (18), we can obtain at step . Fig. 1 shows the recursive construction procedure to get code . From the initial 2-user code , , by steps recursion, the code is obtained.

Theorem 2

Given positive integers and , multi-user code is an -code with the number of users and the total rate as

 T(A(2m,k)) = 2m+1 (19) R(A(2m,k)) = m/2+(1+⌊log2(k−1)⌋). (20)

Proof: Let be the number of users of code for all . First, we want to show

 T(2m=2m,k0=k)=2m+1. (21)

All the initial codes of (III-B) have two users, i.e.,

 T(1,kj)=2,j=0,1,…,m.

From (14), we have

 T(2i,kj) = T(2i−1,kj)+T(2i−1,kj+1) = m∑p=0(mp)T(2i−m,kj+p).

When and , it follows that

 T(2i=m,k0=k)=m∑p=0(mp)T(1,kp)=2m+1.

This verifies (21).

Next, let’s show sum rate of (20). For compact notation, let be the sum rate of code . From Theorem 1 and (15), we have

 R(2i,kj)=12(R(2i−1,kj)+R(2i−1,kj+1)).

By recursion, we have

 R(2i,kj) = 12mm∑p=0(mp)R(2i−m,kj+p).

When and , it follows that

 R(2i=m,k0=k) = 12mm∑p=0(mp)R(1,kp)

where

 R(1,kp) = 1+ℓp=1+⌊log2(2p(k−1))⌋ = p+1+⌊log2(k−1)⌋.

Finally, we have

 R(nm=2m,k0=k) = 12mm∑i=0(mi)(i+1+⌊log2(k−1)⌋) = 12mm∑i=0i(mi)+(1+⌊log2(k−1)⌋)12mm∑i=0(mi) = m/2+(1+⌊log2((k−1)).

Therefore we verify (20).

Finally, we show code is UD by recursion. The initial 2-user code , , of (III-B) is UD. Assume that , , is UD. Thus set (see (18)) is UD. By Theorem 1, code is UD. This confirms is UD, and completes the proof.

Remark 1

Note that equations of (19) and (20) are the number of users and the total code of -ary UD codes with . When , viewed as a specific case . The number of users and total rate become

 T(A(2m,2)) = 2m+1−1 R(A(2m,2)) = m/2+1.

They are as same as that of the code of Construction 2 of [4], Hughes and Cooper give a construction of binary() multi-user code.

Remark 2

The construction of (4) have a similar architecture as that the construction of in [13]. The equation of in [13] can be viewed as a specific case of that .

Example 1

In this example, we give the recursive construction of .

For , the codes are used to be initialized. When , it follows and . Using equation (III-B), we have the ternary code

 A(1,3)={A(1,3)1={0,1},A(1,3)2={0,2}}.

Similarly, we have the -ary code

 A(1,5)={A(1,5)1={0,1,2,3},A(1,5)2={0,4}}.

and the -ary code

 A(1,9)={A(1,9)1={0,1,2,3,4,5,6,7},A(1,9)2={0,8}}.

Successively, at step , we construct code

 A(2,3)=Ω(A(1,3),A(1,5)−(3−1)120)

with constituent codes

 A(2,3)1 = {00,11}, A(2,3)2 = {00,22}, A(2,3)3 = {02,01,00,10}, A(2,3)4 = {02,20}

and

 A(2,5)=Ω(A(1,5),A(1,±9)−(5−1)120)

with constituent codes

 A(2,5)1 = {00,11,22,33}, A(2,5)2 = {00,44}, A(2,5)3 = {04,03,02,01,00,10,20,30}, A(2,5)4 = {04,40}

At step , we obtain the code

 A(4,3)=Ω(A(2,3),A(2,5)−(3−1)121)

with constituent codes

 A(4,3)1 = {0000,1111}, A(4,3)2 = {0000,2222}, A(4,3)3 = {0202,0101,0000,1010}, A(4,3)4 = {0202,2020} A(4,3)5 = {0022,0011,0000,1100}, A(4,3)6 = {0022,2200}, A(4,3)7 = {0220,0120,0020,0021, 0022,0012,0002,1002}, A(4,3)8 =