Communications using Sparse Signals

Inspired by compressive sensing principles, we propose novel error control coding techniques for communication systems. The information bits are encoded in the support and the non-zero entries of a sparse signal. By selecting a dictionary matrix with suitable dimensions, the codeword for transmission is obtained by multiplying the dictionary matrix with the sparse signal. Specifically, the codewords are obtained from the sparse linear combinations of the columns of the dictionary matrix. At the decoder, we employ variations of greedy sparse signal recovery algorithms. Using Gold code sequences and mutually unbiased bases from quantum information theory as dictionary matrices, we study the block error rate (BLER) performance of the proposed scheme in the AWGN channel. Our results show that the proposed scheme has a comparable and competitive performance with respect to the several widely used linear codes, for very small to moderate block lengths. In addition, our coding scheme extends straightforwardly to multi-user scenarios such as multiple access channel, broadcast channel, and interference channel. In these multi-user channels, if the users are grouped such that they have similar channel gains and noise levels, the overall BLER performance of our proposed scheme will coincide with an equivalent single-user scenario.


I. INTRODUCTION
Shannon's seminal paper on information theory established the existence of information encoding and decoding techniques which guarantee almost error free communications across noisy channels [1]. Extensive work has been carried out to develop such efficient error control coding techniques for additive white Gaussian noise (AWGN) channels [2]. Linear codes such as convolutional codes, turbo codes and LDPC codes are widely used in various communication systems today. Maximum likelihood decoding in AWGN channels boils down to finding the codeword in the codebook which is closest to the received signal [3]. Hence the distance properties of the codewords in the codebook play an important role in the error performance of the coding scheme.
Code division multiple access (CDMA) is a communication technique developed for multi-user wireless systems [4]. Each user is given a specific code or a sequence from a large set of sequences. Users multiply their information bearing symbols with the sequences assigned to them in a spreading operation. The received signal is superposition of signals from all the users. When the receiver does despreading operation on the received signal using the sequence of a given user (which is equivalent to finding inner product), the interference from other users are suppressed to a large extent, if the correlation between the sequences is small. There is extensive literature on finding a large set of codes/sequences with good correlation properties. For instance, Gold codes [5] and Zadoff-Chu sequences [6], [7] are well-known for their correlation properties and widely used in wireless systems. In addition, quantum information theory also provides ways to construct a large set of sequences with small correlation among them. Such constructions are referred as mutually unbiased bases (MUB) [8] and symmetric, informationally complete, positive operator valued measure (SIC-POVM) [9]. SIC-POVM is closely related to construction of equi-angular lines.
Compressive sensing techniques address the problem of recovering a sparse signal from an under-determined system of noisy linear measurements [10]. Suppose x is an Ldimensional signal/vector with sparsity level K such that only K entries in x are non-zero. Using the sensing matrix A having size N × L with K < N < L, and the noisy linear measurement vector y = Ax + v, the goal is to recover the support and non-zero entries of the K-sparse signal x from y. There is extensive literature on the sparse signal recovery algorithms, such as greedy matching pursuit based algorithms [11], [12], convex programming based algorithms [13], [14], approximate message passing algorithms [15] and their deep networks based implementations [16]. The performance of the sparse signal recovery algorithms depend on the mutual coherence parameter of the sensing matrix [17], which is directly related to the correlation among its columns. Smaller the correlation among the columns of A, better is the sparse signal recovery performance.
There are inherent connections between error control codes, CDMA sequences and compressive sensing, as they all require small correlation among codewords/spreadingsequences/sensing-matrix-columns. There is a vast literature on connecting compressive sensing concepts with communication techniques. We have highlighted some of these works here. In [18], error control coding techniques have been developed for the case of sparse noise vector (which models impulse noise environments). Codes/sequences with small correlation have been used with sparse signal recovery techniques for a massive random access application in [19]. Techniques to compute the sparse Fourier transform using the parity check matrix of an LDPC code as the sensing matrix along with peeling decoder have been developed in [20]. Spatial modulation in multi-antenna systems encodes the information partially by activating a subset of antennas chosen from a large set [21]. Index modulation in OFDM systems encode information partially in choosing a subset of sub-carriers among the available sub-carriers to send the data symbols [22].
In this paper, we develop a new error control coding scheme using sequences with low correlation and compressive sensing concepts. We develop a subblock sparse coding (SSC) scheme where information bits are non-linearly encoded in a K-sparse signal x of length L, with the non-zero entries chosen from an M -ary constellation. The SSC scheme carries roughly K log L K bits in the support of x and K log M bits in the non-zero entries. The codeword s of length N to be transmitted across the channel is obtained by multiplying x with a dictionary matrix A (of size N × L). The columns of the dictionary matrix are chosen from the set of low correlation sequences from CDMA or quantum information theory. From the noisy observation y = s + v = Ax + v, we recover the sparse signal x (and hence the information bits) using a novel greedy match and decode (MAD) algorithm and its variations. With Gold codes from CDMA and mutually unbiased bases from quantum information theory as the dictionary matrices, the codeword error rate performance of the proposed SSC encoding scheme with MAD decoding in AWGN channel is comparable and competitive with the widely used binary linear codes for very small (N = 8) to moderate codeword lengths (N = 128). In addition, the proposed error control coding scheme extends easily to multi-user channels, such as multiple-access channel (MAC), broadcast channel (BC) and interference channels (IC). SSC scheme transmitting B bits to a single user using a K-sparse signal can be easily modified to transmit a total of B bits to P users with P ≤ K, in a MAC or BC or IC. In addition, the overall error performance in the multi-user channel will be same as that of an equivalent single user scenario.
While index modulation in OFDM and spatial modulation techniques encode information partially in choosing a subset from available sub-carriers/antennas, these techniques require an underlying error control coding scheme to ensure small probability of error. On the other hand, our SSC encoding and MAD decoding is a new error control scheme by itself.
Our work has connections to the work on non-linear codes by Kerdock and Preparata [23], [24]. Kerdock's work gave constructions for a large set of sequences with good distance/correlation properties and used them directly as codewords. Spherical codes [25] also aim at developing a large set of codewords with good distance properties. In our work, we generate codewords using sparse linear combinations of sequences with good correlation properties. Because of these linear combinations, the number of codewords in our SSC scheme is larger when compared to that of Kerdock codes and spherical codes of similar lengths. This increase in the number of codewords has two benefits, increase in the data rate and decrease in the overall energy per bit.
Our SSC encoding scheme has a non-linear component (mapping from bits to sparse signal) and a linear component (mapping from sparse signal to codeword). Due to the linear part, the recovery of sparse signal from the observation can be accomplished using simple decoding techniques. At the same time, the non-linear component in the encoding procedure enables direct extensions of the scheme to the multi-user channels.
The paper is organized as follows. In Section II, we describe the proposed sparse signal based encoding and decoding techniques. In Section III, we present the details of constructing dictionary matrices using Gold codes and complex mutually unbiased bases. In Section IV, we present simulation studies on the error performance of the proposed schemes in AWGN channel and compare with some of the existing error control codes. In Section V, we discuss the details of extending the proposed coding techniques to multi-user scenarios. In Section VI, we give concluding remarks and directions for future work.

A. Sparse Coding
Consider a dictionary matrix A of size N ×L, with L ≥ N . The codewords for messages are obtained using sparse linear combinations of columns of the matrix A. We discuss the details of sparse encoding procedure below.
1) Encoding Procedure: Fix the sparsity level as K with K ≤ N . Choose a subset S ⊂ {1, · · · , L} of size |S| = K. Let us denote S = {α 1 , · · · , α K } with 1 ≤ α k ≤ L. Let Q = {β 1 , · · · , β K } be an ordered set of K symbols chosen (allowing repetitions) from a M −ary constellation, with alphabet set B = {b 1 , · · · , b M }. Denoting i th column of A by a i , a codeword of length N is obtained as Consider the sparse vector x of length L, with its i th entry given as Now, the codeword in (1) can be represented as The information is encoded in the support set S of the sparse signal x and its non-zero entries given by the set Q. Let C denote the set of all possible codewords of the form (3), with a fixed sparsity level K. Total number of codewords we can generate is |C| = M K × L K . The total number of bits that can be transmitted in a block of N channel uses is In this paper, base of log(·) is 2, unless specified explicitly otherwise. We define the code rate of the encoding scheme in units of bits per real dimension (bpd) as the number of bits transmitted per real dimension utilized. If A is a real matrix and the modulation symbols in Q are chosen from a real constellation (such as PAM, BPSK), the code rate in bpd is N b N . On the other hand, if A is a complex matrix and/or the constellation symbols are complex, the code rate in bpd is N b 2N . In our encoding process, we also allow the special case of M = 1, for which β k = +1, ∀k. The average energy per bit of our sparse encoding scheme can be given This proposed coding scheme is a non-linear code and can be considered as a generalization of orthogonal FSK. Note that, with the special case of A being a DFT matrix and setting K = 1 and M = 1, our encoding process leads to an orthogonal FSK scheme. An interesting analogy is that the columns of the dictionary matrix can be compared to the words in a dictionary of a language. With this analogy, codewords are equivalent to sentences in a language, as they are obtained by using sparse combinations of words and different codewords/sentences convey different messages.
2) Decoding Procedure: The received signal is modeled as where v is additive noise. Information bits can be retrieved by recovering the sparse signal x from the observation y. Sparse signal recovery can be done using greedy techniques [11], [26], [27] or convex programming based techniques [13]. In this paper, we consider a simple greedy algorithm which we refer as match and decode (MAD) described in Algorithm 1. MAD algorithm takes the dictionary matrix A, the observation y, sparsity level K as inputs and produce an estimatex (K) of the sparse signal x. It is ensured that the estimatex (K) (of size L) has exactly K non-zero entries from the constellation set B. Any sparse signalx (of size L) with at most K non-zero entries from set B can also be given as partial information to the MAD algorithm. If no partial information is available,x is set as 0.
We note that, the correlation of residual with the columns of dictionary matrix in (6) needs to be computed only for one iteration. For the subsequent iterations, from (8), we have the recursion, r (t+1) , a i = r (t) , a i − bm aî, a i , where bm andî denote the symbol and the active column detected in the previous iteration. We can store the symmetric gram matrix A * A, to get the values of aî, a i needed in the recursion.
Intuitively, the first iteration of MAD algorithm is the most error prone, since it faces the interference from all the undetected columns. To improve on MAD performance, we consider a variation, referred as parallel MAD. In the first iteration, we choose T candidates for the active column, by taking the top T metrics (7), and perform MAD decoding for each of these T candidates, resulting in T different estimates for the sparse signal. Among these T estimates, we select the one with the smallest Euclidean distance to the observation, inspired by the decoder for white Gaussian noise. The mathematical details are described in Algorithm 2 for completeness.
Main computationally intensive step in MAD (and parallel MAD) is computing the correlation between the observation and the columns of dictionary matrix in (6), which amounts to computing the matrix multiplication A * y. Depending on the choice of A, efficient matrix multiplication techniques may be developed.
3) Performance Guarantees: With s being the transmit codeword andŝ being the codeword recovered by the decoding Algorithm 1 Match and Decode Algorithm 1: Input: Get the observarion y, dictionary matrix A, sparsity level K and any partially recovered sparse signalx. 2: Initialize: Let the ordered setsŜ andQ denote the the support and the corresponding non-zero entries of partial information vectorx. Ifx = 0,Ŝ andQ are empty sets. Initialize the iteration counter t = |Ŝ|, the residual r (t) = y − Ax and the estimatex (t) =x. 3: Match: Correlate the residual with the columns of the dictionary matrix and the constellation symbols as given below.
(Here e n denotes n th standard basis). Update the residual and increment the counter t = t + 1. 6: Stopping condition: If t < K, repeat the above steps Match, Decode and Update. Else go to Step Ouptut. 7: Output: Recovered sparse signal isx (K) and the recovered codewordŝ = Ax (K) .
Algorithm 2 Parallel Match and Decode Algorithm 1: Given the dictionary matrix A and the observation vector y, compute c i = y, a i , i = 1, · · · , L and p i,m = Real{c i b * m } − |bm| 2 2 , b m ∈ B. 2: Initialize parallel path index n = 1; Initialize D = ∅. 3: Choose a candidate for active column and the corresponding non-zero entry: (î n ,m n ) = arg max (i / ∈D,m) p i,m . 4: Run MAD algorithm with inputs (A, y, K) and prior information on sparse signalx = bm n eî n . Denote the recovered sparse signal output of MAD asx n . 5: Update D = D ∪î n and n = n + 1; If n ≤ T , go back to Step 3. 6: Final outputx = arg minx n;1≤n≤T y − Ax n . algorithm, the event {s =ŝ} results in a block error (at least one of the bits in the block is decoded in error). The mutual coherence of the dictionary matrix A defined below, plays an important role in the recovery performance of MAD algorithm. Lemma 1: In the absence of noise (v = 0), and for the case of M = 1, MAD algorithm recover the codeword perfectly, if K < 1 2 (µ −1 + 1).
Proof: This result has already been established for orthogonal matching pursuit (OMP) algorithm in [27]. We note that MAD differs from OMP in certain aspects. For the M = 1 case, MAD algorithm sets the non-zero entries as unity. This is better than OMP, which uses least squares estimates for the non-zero entries in each iteration. In computing the residual, MAD subtracts out the detected columns from the observation. This is better than OMP, which projects the observation onto the orthogonal complement of the detected columns, possibly reducing the signal component from yet-tobe-detected columns. Hence, MAD recovery will be at least as good as OMP recovery, when v = 0 and M = 1.
The exact support recovery performance of OMP in the presence of bounded noise and Gaussian noise are characterized in [26]. The same results hold true for MAD algorithm as well, when M = 1. When M > 1, the error event can also happen due to incorrect decoding of the modulation symbols in the constellation. Characterizing that error event will depend on the exact constellation shape and this analysis can be carried out in a future work.

B. Subblock Sparse Coding
A drawback of the sparse coding scheme in Section II-A is that a large look-up table is needed to map the information bits to the sparse signals. In order to eliminate the look-up table, we propose a subblock sparse coding (SSC) scheme described below. In this scheme, we partition the dictionary matrix From a bit stream of length N b , we take the first K⌊log M ⌋ bits and obtain K modulation symbols Q = {β 1 , · · · , β K } from an M -ary constellation. Now, we segment the remaining bit stream into K strings with k th string b k having a length of ⌊log L k ⌋. Let N k denote the unsigned integer corresponding to the bit string b k . Now, from each subblock A k , we select the column indexed by the number N k + 1, for 1 ≤ k ≤ K. Note that, based on this procedure, the column indices chosen from the original matrix A is given by With support set S = {α 1 , · · · , α K } and the modulation symbols in Q, the codeword s is obtained as given in (1). By this subblock encoding procedure, we avoid the exhaustive look-up table needed to map the bits to the codewords. However, the dictionary matrix A needs to be stored. In addition, the number of bits transmitted in a block for SSC scheme will be less than that of sparse coding scheme discussed in Section II-A. For the SSC scheme, the MAD algorithm can be modified to discard the subblock corresponding to each detected column from the subsequent iterations.
With the aim of maximizing K k=1 ⌊log L k ⌋, we describe a procedure for truncating and partitioning a matrix withL columns into K subblocks (where K ≤L 2 ) with k th subblock having L k columns, such that each L k is a power of 2, and k L k = L ≤L. The algorithm has K iterations and the n th iteration with n ∈ {1, · · · , K}, involves partitioning the dictionary matrix into n subblocks, with lengths given by {L In the first iteration n = 1, we set L (1) 1 = 2 ⌊logL⌋ . In the iteration n, we make use of the subblock lengths obtained in the previous iteration, arranged in the ascending order such that L We compute the number of remaining columns from the iteration n − 1 as , then we create a new subblock of length L (n) n = 2 ⌊log r (n−1) ⌋ and retain all the previous subblocks so that L , we split the largest subblock from the previous iteration into two equal parts so that and the remaining subblocks are retained so that L n } in ascending order, for use in the subsequent iteration. At the end of iteration K, we get the required lengths for K subblocks. Using mathematical induction, we can argue that the above procedure is optimal in maximizing K k=1 ⌊log L k ⌋.

III. DICTIONARY MATRIX CONSTRUCTION
The choice of the dictionary matrix A plays a vital role in the block error performance. It is desirable that the dictionary matrix has a large number of columns (as the number of information bits increases with L, for fixed N and K) with small correlation among the columns (for good sparse signal recovery performance). In this paper, we consider dictionary matrix constructions using Gold code sequences from CDMA literature and mutually unbiased bases from quantum information theory.

A. Gold Codes
Gold codes are binary sequences with alphabets {±1}. Considering lengths of the form N = 2 n − 1, where n is any positive integer, there are 2 n + 1 Gold sequences. By considering all the circular shifts of these sequences, we get 2 2n − 1 sequences. When dictionary matrix columns are constructed with these 2 2n − 1 sequences normalized to unit norm, the resulting mutual coherence µ is given by [5], We note that odd value of n leads to relatively smaller mutual coherence. We can add any column of the identity matrix to the Gold code dictionary matrix, to get a total of L = 2 2n columns (which is a power of 2), with the mutual coherence same as (11). Storing such a dictionary matrix will require N (N + 1) 2 bits. For N = 127, this Gold code dictionary matrix size is approximately 2.1 MB.

B. Mutually Unbiased Bases
Two orthonormal bases U 1 and U 2 of the N -dimensional inner product space C N are called mutually unbiased if and only if | x, y | = 1 √ N for any x ∈ U 1 and y ∈ U 2 . A set of m orthonormal bases of C N is called mutually unbiased if all bases in the set are pairwise mutually unbiased. Let Q(N ) denote the maximum number of orthonormal bases of C N , which are pairwise mutually unbiased. In [8], it has been shown that Q(N ) ≤ N (excluding the standard basis), with equality if N is a prime power. Explicit constructions are also given in [8] for getting N MUB in N -dimensional complex vector space C N , if N is a prime power.
If N is a power of 2, the N MUB unitary matrices {U 1 , · · · , U N } have the following properties.
• The entries in all the N unitary matrices belong to the set This follows from the construction of MUB given in [8]. Storing all these N unitary matrices will require 2N 3 bits. For N = 128, this storage requirement is approximately 4.2 MB. • For N up to 256, we find that the inner products We conjecture that this property holds true when N is any power of 2.
We construct dictionary matrix using N MUB as A = [U 1 · · · U N ]. In this case, L = N 2 and the corresponding mutual coherence µ is 1 √ N . In addition, when N is a power of 2, we can always split A into K subblocks with size of each subblock L k being a power of 2 and each L k ≥ N 2 2K . When the entries in A belong to {+1, −1, +j, −j} except for a common scaling factor of 1 √ N , the inner products a i , y needed in the MAD algorithm involve only additions (no multiplications).

IV. SIMULATION RESULTS
We study the performance of the block error rate (BLER), also referred as codeword error rate, for the proposed encoding and decoding schemes in additive white Gaussian noise channels. For the complex MUB dictionary matrix, the non-zero entries of the sparse signal are chosen from QPSK constellation. For real Gold code dictionary matrix, we consider BPSK constellation. When the non-zero entries in the K-sparse signal x are uncorrelated, it easily follows that, the expected energy of the codeword s = Ax is E s = K, when the columns of dictionary matrix are of unit norm. Energy per bit E b is obtained by dividing E s by the total number of bits conveyed by the sparse signal x. With N0 2 denoting the variance of the Gaussian noise per real dimension, we plot the BLER versus E b /N 0 of the proposed schemes.

A. Study of Proposed Schemes
In this section, we study various combinations of the proposed encoding and decoding schemes to understand their impact on the performance. In this subsection, we restrict our attention to complex MUB dictionary matrix with N = 64.
In Fig. 1, we compare the performance of sparse coding (SC) scheme and the subblock sparse coding scheme, with MAD decoding. Since SC scheme allows all the L K possibilities for the support set, the number of bits N b per block of SC scheme will be larger than SSC scheme. Specifically, with complex MUB dictionary matrix of length N = 64, for sparsity levels K = 1, 3, 5, the values of N b for SC scheme are, respectively, 14, 39, 63 and the corresponding values for SSC scheme are 14, 37, 58. Hence, when E b /N 0 of the two schemes are same, SSC scheme has a larger value for noise variance parameter N 0 . On the other hand, the MAD decoder faces a larger search space to detect each active column of SC scheme, while in SSC scheme, once an active column is detected, the entire subblock can be removed from subsequent iterations. These two effects counteract each other and we find that the BLER versus E b /N 0 performance of both SC and SSC schemes are quite close to each other. But SC scheme has higher code rates at the expense of extensive look up table needed to map the information bits to the (support of the) sparse signal.
In Fig. 2, we compare the performance of sparse coding scheme with MAD decoder and OMP algorithm [27]. In the OMP algorithm, in each iteration, after an active column is identified based on the magnitude of correlation with the residual, the least squares estimates of the non-zero entries are quantized to the nearest constellation points. On the other hand, MAD decoder utilizes the finite alphabet size of the non-zero entries by jointly decoding the active column and the corresponding constellation point. In addition, the OMP approach of projecting the residuals onto the orthogonal complement of the detected columns in each iteration leads to reduction of signal components from the yet-to-be detected active columns. On the other hand, MAD simply subtracts out the detected columns without affecting the yet-to-be detected active columns. Due to these reasons, the proposed MAD decoder provides better performance, when compared to the OMP algorithm.  In Fig. 3, we compare the performance of MAD and parallel MAD decoding for SSC scheme. The probability of selecting a wrong column in the first iteration of MAD decoding increases with sparsity level K due to interference from K −1 remaining columns, especially when K is close to 1 2µ . Parallel MAD overcomes this problem by selecting T candidates for the active column in the first iteration and subsequently running T parallel MAD decoders. In all our simulations, we set the value of T equal to the sparsity level K. The results show significant gains of parallel MAD over MAD when K = 5 with complex MUB dictionary matrix of size N = 64.
We consider introducing random phases to the columns of the complex MUB dictionary matrix based on the following   reasoning. With i being an index of one of the active columns from the sparse signal support set S, consider the inner product y, a i = β i + k∈S,k =i β k a k , a i + v, a i . MAD decoder is prone to error when the net interference from other active columns has high magnitude. For the complex MUB dictionary matrix with N = 64, the inner product between any two nonorthogonal columns belong to the set { +1 Due to this property, there are many possible support sets S, for which the interference terms can add coherently to result in a high magnitude. To overcome this problem, we introduce a random phase to each column of the dictionary matrix to minimize the constructive addition of interfering terms. Specifically, the random phase dictionary matrix is obtained as AΦ where A is the original (zero phase) MUB dictionary matrix and Φ is a diagonal matrix with random diagonal entries exp{jθ i }, with θ i 's being i.i.d. uniform over [0, 2π]. In Fig. 4, the comparison shows that random phase matrix has gains over zero phase matrix, when the sparsity leve K is close to 1 2µ . In fact, in Figures 1 and 3, the plots corresponding to K = 5 involve random phase MUB matrix.

B. Comparison with Existing Error Control Codes
In this subsection, we study the performance of SSC scheme with parallel MAD decoding for various code rates and also compare with some of the existing error control codes. In the conventional error control coding terminology, an (n, k) coding scheme takes k information bits and maps it into a (real) codeword of length n, with the ratio k n being referred as the code rate of the scheme. Hence, the SSC scheme can be compared directly with conventional error control coding schemes with identical code rates (measured in bits per real dimension). To match with the conventional notation, we denote the SSC scheme conveying N b bits using real dictionary matrix with column length N as an (N, N b ) coding scheme, while with complex dictionary matrix, we have (2N, N b ) scheme. In Fig. 5, we compare the performance of complex MUB dictionary matrices with various values of N and K, while setting the code rate (bits per real dimension) approximately equal to half. We see that, for low E b /N 0 values, smaller N performs better. On the other hand, when small BLER is desired, larger block lengths are better. Here random phase is introduced when K ≥ 1 2µ . In Fig. 6, we study the performance of Gold code dictionary matrix with N = 127 for various values of code rates, by varying the sparsity level K.
We present performance comparison with some of the existing error control coding schemes with code rates close to half, for very small block lengths in Fig. 7, and moderate block lengths in Fig. 8. In Fig. 7, the BLER performance of  (20, 11) Golay based code and (20, 11) Reed Muller (RM) code used in the LTE standard are taken from the plots given in [28]. We compare these codes with our (16,8) and (32,18) SSC schemes (complex MUB dictionary matrix with K = 1 and K = 2 respectively). We find that our schemes perform better than the RM code used in the LTE standard. In Fig. 8, using the plots given in [29], we compare the performance of our (127, 63) SSC scheme (Gold code dictionary matrix with K = 5) with some of the existing (128, 64) error control codes: tail biting convolutional code (TBCC) with constraint length 14, binary LDPC codes used in the CCSDS standard, LDPC codes (base graph 2) from 5G-NR standard and Turbo code with 16 states. More details about these existing codes are given in [29]. Our proposed scheme performs comparable to the binary LDPC code from the CCSDS standard.

V. APPLICATION IN MULTI-USER SCENARIOS
In this Section, we discuss on how the SSC encoding and MAD decoding scheme can be used in multi-user scenarios. First, we note that linear codes are naturally unsuited for multi-user scenarios. To illustrate this, consider the simple case of two users who employ the same linear code. If s 1 is the codeword sent by the user-1 and s 2 is the codeword sent by the user-2, then their algebraic sum s 1 + s 2 is another valid codeword for both users. This makes it impossible to recover the individual codewords from the superposition. In order to overcome this problem, power-domain non-orthogonal multiple access (NOMA) techniques in the literature [30] focus on grouping the users such that user-2 has much smaller channel gain than user-1. In this case, the superposition can be represented as s 1 + hs 2 with |h| ≪ 1, facilitating successive interference cancellation based decoding [30]. With this grouping, the data rate for user-2 will be very small compared to that of user-1. On the other hand, the SSC encoding technique in Section II-B provides a straightforward way to communicate in multi-user scenarios.

A. Encoding for Multiple Users
Using the SSC scheme with sparsity level K described in Section II-B, we can support P -user multiple access channel, or P -user broadcast channel or P -user interference channel [31], [32], for any P ≤ K. First, we illustrate how the SSC scheme can be employed to generate the codeword of each user based on the user's information bits. As before, we partition the dictionary matrix A into K subblocks, with subblock A k having L k number of columns. These K subblocks are divided among P users, with A i = {A i,1 , · · · , A i,Ki } ⊂ {A 1 , · · · , A K } denoting the ordered set of K i subblocks assigned to user-i. Note that The codeword for user-i is obtained as where symbols {β i,1 , · · · , β i,Ki } are chosen from M i -ary constellation and the column a i,k is chosen from the subblock A i,k for 1 ≤ k ≤ K i . Denoting the number of columns in A i,k as L i,k , the total number of bits that can be conveyed for user-i is Now, we will see how these codewords can be used in MAC, BC and IC.

1) Multiple Access Channel:
Multiple access channel is equivalent to an uplink scenario in a cellular network, where P users are sending their data to a single receiver. In the MAC, the encoding is done independently by each user, which coincides with the SSC based procedure in (12). The observation at the receiver is The decoding is done jointly at the receiver, which can be done using the MAD algorithm (and parallel MAD), which recovers the support of the active columns {a i,k } and the corresponding modulation symbols β i,k for each user, using the received signal y in (15). If all the users employ the same constellation with M i = M, ∀i, then the superposition of codewords from P users in (15) will have identical structure to the codeword generated based on the SSC encoding procedure (with sparsity level K = i K i ) from Section II-B. As a result, the total number of bits of all the users P i=1 N bi (from (13)) will be equal to N b from (10). In addition, the overall BLER performance of this MAC channel (probability that all the bits of all the users are decoded correctly with respect to the overall energy spent per bit) will coincide with the performance of the corresponding single user case. Note that, the performance of this single user case in AWGN has already been studied in Section IV. Now, considering the case where user-i has channel gain h i , the received signal is where g i denotes the transmit gain (power control) employed by user-i. If the gains g i are chosen such that h i g i = 1, ∀i, then the AWGN performance of the above MAC model (16)  2) Broadcast Channel: Broadcast channel is similar to the downlink scenario in a cellular network, where the base station transmits respective information messages to P users. Here, encoding is done jointly at the base station and the decoding is done by each user separately. It is well known that for degraded broadcast channel (for instance, Gaussian broadcast channel), superposition coding is optimal [31], [32]. Once the codebooks of all the users are designed (jointly), superposition coding simply chooses the codeword for p th user from his codebook using his information bits (and independent of the other users' codewords) and then transmits the sum of the codewords of all the users. The SSC encoding procedure in (12) can mimic the superposition coding, in a straightforward way. Once the dictionary matrix is chosen, subblocks are segmented and allotted among the users, the codeword for each user can be obtained based on his own information bits as given by (12), and the transmitter sends the sum of all the users' codewords as Note that the above sum (17) resembles the codeword generation of single user scenario Section II-B. Received signal at the user-i is given by where n i is the noise at the user-i, with variance σ 2 i . MAD decoding from Section II-B can be employed by each user, which recovers the active columns present in s and the corresponding modulation symbols. Hence, in this approach, each user recovers the information sent to other users in addition to his own information. The user with the highest noise variance (arg max i σ 2 i ) will have the worst error performance (assuming the noise distributions are same except for the variance). On the other hand, if all the users have same noise variance, the performance (the probability that all the users received all their bits correctly) will coincide with the corresponding single user scenario (with the same noise variance). If the users' channel quality is asymmetric, and there is private information for good channel quality users (which the low channel quality users should not be able to decode), then developing sparse coding based techniques is an open problem.
3) Interference Channel: In the interference channel, there are P transmitters and P receivers. Each transmitter sends information to a corresponding intended receiver. With i th transmitter generating codeword as in (12), the received signal at the i th receiver is given by where h i,j denotes the channel gain from j th transmitter to the i th receiver. Without loss of generality, we have taken h i,i = 1. MAD decoding employed at the i th receiver recovers the codewords of all the transmitters. Again, if |h i,j | = 1, ∀i, j, and the noise statistics are identical across all the receivers, then the decoding performance (successful recovery of all the codewords) of all the receivers will coincide with the corresponding single user case. In the strong interference |h i,j | ≫ 1 regime [31], [32], MAD decoding can be modified to first decode the messages of all the interfering users (by restricting the correlations to the subblocks of interfering users), cancel the interference, and then proceed to find the active columns in the subblocks of the intended user. In the weak interference |h i,j | ≫ 1 regime [31], [32], MAD decoder can first find the message of the intended user directly by restricting the correlations to the subblocks of the intended user. Detailed study of the SSC-MAD based techniques in the strong and weak interference regimes can be explored in a future work. Let us illustrate the gains of using our SSC schemes in multi-user channels when compared to using conventional error control codes in orthogonal multiple access fashion. Using the (20, 11) Golay based code (which gives the best performance among very short length codes from Fig. 7) in orthogonal multiple access, each user gets a code rate of 11/20 and achieves individual BLER of 10 −4 at E b /N 0 of around 5.5 dB. Using our (127, 63) SSC scheme (Gold code dictionary matrix with K = 5) shown in Fig. 8, we can transmit a total of 63 bits using 127 real dimensions to (up to) 5 different users in MAC or BC or IC. If all the receivers in the multiuser channel have the same AWGN variance, our scheme will get an overall (accounting all the users together) code rate of 63/127 and achieve overall BLER of 10 −4 at overall E b /N 0 of 5 dB. Hence, our scheme used in multi-user channels gives 0.5 dB gain over one of the best codes for very short block lengths.

VI. CONCLUDING REMARKS
In this Section, we present the limitations of the proposed encoding techniques, various directions for future work and give final remarks on our work.

A. Limitations of the Sparse Coding Techniques
1) The SSC-MAD scheme can have non-zero probability of error, even in the absence of noise. This is because, each active column interferes with the other active columns, causing the MAD decoder to select an inactive column. Even when K < 1 2 (µ −1 + 1), MAD decoder can make error in decoding the constellation symbols {β i } for M > 1, which in turn causes error in recovering the support set S.
2) SSC scheme can have a large alphabet size. When the block size N is a power of 2, the complex MUB matrices have alphabet size of 4, as noted in Section III. With sparsity level K encoding and M -ary constellation symbols, the alphabet size of SSC codeword (1) can be up to 4KM . On the other hand, the binary linear codes have alphabet size of 2. However, alphabet size may not be a major issue in OFDM based communication systems. Even when the input is binary, the output of the FFT block in OFDM transmitter resembles Gaussian symbols (for large FFT sizes) [33].
3) From Lemma 1, we infer that the sparsity level should be of the order of 1 µ for good recovery performance. With block length N , the mutual coherence of MUB and Gold code dictionary matrices are of the order of 1 √ N . With the sparsity level K = γ √ N for some fixed γ, the bits per dimension of the SSC and SC schemes (N b /N ) converge to 0 as N → ∞. Hence, our sparse coding based schemes are not suitable for large block lengths with high code rates.

B. Directions for Future Work
1) MAD decoding involves computation of inner products of the observation vector with all the columns of dictionary matrix. Efficient ways to compute these inner products for MUB and Gold code dictionary matrices can be explored in future.
2) Sufficient conditions for successful support recovery for OMP algorithm in the presence of noise, exist in the literature [26]. Some of these conditions can be modified to give bounds on the error performance of MAD algorithm, especially, when the constellation size M = 1. On the other hand, obtaining tight bounds on the probability of block error for MAD decoder in Gaussian noise is a challenging problem, especially, for the constellation size M > 1.
3) The SSC scheme has a penalty in the total number of bits N b transmitted in a block (10) when compared to the sparse coding scheme (4), for K > 1. Other simple and efficient ways to map the information bits to the support set which give higher number of bits than SSC scheme can be developed in a future work. 4) MAD algorithm is inspired by the matching pursuit based sparse signal recovery algorithms. There are also convex programming based algorithms for sparse signal recovery, such as ℓ 1 norm minimization [13] and dantzig selector [14]. To solve these convex programs, there are several iterative techniques available in the literature, such as ISTA [34], FISTA [35] and AMP [15]. We can study the decoding performance of the SSC scheme with these other sparse signal recovery algorithms. In addition, using the deep unfolding principle, some of the iterative sparse signal recovery algorithms such as AMP, have been implemented using deep learning architectures [16]. Such deep learning architectures can be employed at the receiver to decode the SSC scheme. 5) As discussed in Section V, there are several avenues for further investigation of sparse coding based techniques in multi-user scenarios, especially, when there is asymmetry in the channel conditions, power constraints and rate requirements among users. 6) We can explore other options for the dictionary matrix construction. There are constructions available in the literature for real MUB matrices under some conditions on the block length N [36], which give a real (binary) dictionary matrix with N 2 2 columns and mutual coherence 1 √ N . Real MUB occupies only half the number of real dimensions for the same block length N when compared to the complex MUB. So real MUB will achieve the same code rate (bpd) using a smaller sparsity level K and hence its BLER performance will be better than the corresponding complex MUB. There are also approximate MUB [37] constructions, which can give dictionary matrix with more than N 2 columns at the expense of mutual coherence being higher than 1 √ N . Other quantum designs such as SIC-POVM, approximate SIC-POVM and Zadoff-Chu sequences from CDMA can also be used for obtaining the dictionary matrix. 7) Extensions of SSC encoder and MAD decoder for frequency selective channels and single/multi-user MIMO channels can be explored in future. 8) Applicability of sparse coding based techniques for the storage systems can be explored in a future work. Note that, with MUB dictionary matrix and sparsity level K = 1, the alphabets of the codewords are from a (rotated) QPSK constellation and hence can be represented using 2 bits. However, the sparse coding alphabet size increases with K, making it unsuitable for storage when K is large. 9) Communications with sparse signal based encoding and matching/correlation based decoding is very simple and intuitive. Using this sparse signal based communication to model/understand some of the naturally occurring communications, for instance, communications based on neurological signals, can be explored in a future work.

C. Final Remarks
We proposed SSC encoding scheme and MAD decoding scheme for communications, inspired by sparse signal processing. Our proposed technique is a non-linear coding scheme, whose implementation is easy to understand. With MUB and Gold code dictionary matrices, the proposed scheme gives competitive performance when compared to some of the commonly used linear codes, for small block lengths and low code rates. Unlike linear codes, our proposed sparse coding based techniques extend neatly to multi-user scenarios. Our schemes can be straightforwardly used in applications where there are several users with small number of information bits to transmit-to and/or receive-from. Such applications can include communicating control information to/from several users in a cellular network or in a vehicular communication system or communications in internet of things (IoT) applications.