Introduction
The next-generation mobile communication systems are expected to support a wide range of vertical industries such as e-health, smart homes/cities, connected autonomous vehicles, and factories-of-future [1]–[5]. While this leads to ubiquitous, rapid, and intelligent data services, anytime and anywhere, the explosive growth of communication devices and applications arising from the 5G-and-beyond communication networks reinforces the need of a higher spectrum efficiency, reduced access latency, and more reliable data transmission.
Multiple access, as one of the core techniques of wireless communication, aims to enable two or more users to access the finite system resources simultaneously in an efficient manner. Legacy multiuser communication systems mostly rely on orthogonal multiple access (OMA) schemes where multiple users are mutually orthogonal in a certain domain. In the past cellular networks, there have been time division multiple access (TDMA), frequency division multiple access (FDMA), code division multiple access (CDMA), and orthogonal frequency-division multiple access (OFDMA) [6]. As an example, in TDMA, each user is given a distinct time slot, and no two users concurrently share the same time slot. In every OMA scheme, the number of users being simultaneously served is at most that of the orthogonal resources. Thus, the OMA techniques may not meet the stringent requirements of next-generation mobile applications.
In recent years, non-orthogonal multiple access (NOMA) has attracted tremendous research attention owing to its capability in supporting more concurrent communication links compared to OMA [7], [8]. In a NOMA system, two or more users are superimposed over an identical physical resource (e.g., power, frequency, time, or code) to provide an overloading factor larger than one. In general, there are two types of NOMA: power-domain NOMA (PD-NOMA) and code-domain NOMA (CD-NOMA). In PD-NOMA, multiple users communicating over the same frequency/time resources are separated by assigning them with different power levels [9], [10]. On the other hand, CD-NOMA may be regarded as an extension of CDMA where different users are allocated with distinctive codebooks/sequences. Unlike a traditional CDMA system in which matched filter based receiver is adopted, more advanced receivers may be employed in CD-NOMA.
In 2013, sparse code multiple access (SCMA) was proposed by H. Nikopour and H. Baligh as a disruptive CD-NOMA scheme [11]. Building upon the initial idea of low-density signature CDMA (LDS-CDMA) [12], several bits of every user are directly mapped to a sparse complex vector (codeword) which is drawn from its associated sparse codebook (CB) [13], [14]. Also, SCMA brings the “constellation shaping gain” that may not be admissible for LDS-CDMA.
A. Related Works
Two major research lines are associated with SCMA: CB design and multiuser detection (MUD). The goal of CB design is to design and optimize CBs with respect to certain wireless channels against a number of system performance measures such as bit/packet error rate, spectral efficiency, and peak-to-average power ratio (PAPR). After the first CB design work [15] in 2014, numerous research attempts have been made. New CBs are designed in [16] from
Thanks to the sparsity of the CBs, the multiuser signals can be efficiently detected and recovered with the aid of the message passing algorithm (MPA) [12] whose error rate performance approaches that of maximum a posteriori (MAP) detector. In MPA, the belief messages are passed along the edges of the factor graph that characterizes the sparse CBs of an SCMA system. It is shown in [22] that MPA works well even in an SCMA system with an overloading factor of three. In [23], a simpler MPA in the log-domain was introduced by simplifying the exponent and multiplication operations to maximization and addition operations, respectively. In [24], a partial marginalization based MPA was proposed for fixed low-complexity SCMA detection. [25] proposed a belief threshold-based MPA in which the belief message updates for every user are checked in every iteration, thus reducing the total number of computational operations when the number of iterations increases. In [26], a lookup table method was designed to simplify the function node update. In [27], a threshold-based edge selection and Gaussian approximation (ESGA) was proposed by applying partial Gaussian approximation dynamically for significant complexity reduction at the receiver.
B. Motivations and Contributions
Among many survey/tutorial papers on NOMA in the current literature, most of them focus on PD-NOMA [7], [28]–[35]. There is a clear paucity of comprehensive survey papers to SCMA for different levels of readers [36]–[38]. In [36], an overview of multi-dimensional constellations as well as their applications in CB design for uplink SCMA systems has been presented. A book chapter is reported in [37], where the basic principles of SCMA are briefly covered along with CB designing and MUD. An introduction to SCMA was given in [38], covering an overview survey of the CB design, detector designs, and some other aspects like resource allocation, practical implementations. However, to the best of our knowledge, a one-stop tutorial-level coverage of SCMA from encoding to decoding is still lacking.
Aiming for influencing both layman beginners and senior scholars and in order to further promote it to a broader community, we present a holistic and systematic introduction to SCMA covering the basic principles of encoding, CB design, and MUD, supplemented with various step-by-step examples, illustration figures, and mathematical expressions. In particular, we survey a series of advanced SCMA decoding techniques from both MPA and non-MPA aspects and outline a few promising directions for future research on SCMA. We hope that this disruptive CD-NOMA technique can attract more research attention and consequently stimulate new innovative wireless technologies via evolution and/or integration in the era of the 6G research.
C. Organization of This Work
The paper’s outline is as follows: Firstly, the SCMA system model is presented in Section II, where SCMA encoding and CB designing are discussed. SCMA decoding is discussed in Section III, which includes the MAP detection of SCMA, MPA detection, and MPA detection illustrated by an example of a
Notations: In this paper, x, x, X denote a scalar, vector and matrix, respectively. Symbols
System Model and SCMA Encoding
In this section, we discuss the basic principles of SCMA and the CB design, as it is one of the important issues of SCMA that affects the performance of the overall system.
A. System Model
Consider an uplink SCMA system in which
Let \begin{equation*} \textbf {y} = \sum _{j=1}^{J} \textbf {H}_{j} \textbf {x}_{j}^{m} + \textbf {n},\tag{1}\end{equation*}
\begin{equation*} y_{k}=\sum _{j \in \xi _{k}}^{} h_{k,j} x_{k,j}^{m} +n_{k},~\text {for}~k=1,2,\cdots , K,\tag{2}\end{equation*}
Example:
Let us consider
SCMA block encoding having4 \times 6 REs andK=4 users as shown in Fig. 1 with overloading factorJ=6 . The allotment of REs among users can be represented by a factor graph matrix, where each row corresponds to a RE, and each column corresponds to a user, respectively. The number of ones in a row is\lambda =J/K=1.5 , and the number of ones in a column isd_{f} .d_{v} denotes that user\textbf {F}_{kj}=1 has active transmission over thej th RE. For ak SCMA block, the factor graph matrix of order4 \times 6 corresponding to Fig. 1 is given below:4 \times 6 \begin{align*} \textbf {F}_{4 \times 6}= \begin{bmatrix} 1&1&1&0&0&0\\ 1&0&0&1&1&0\\ 0&1&0&1&0&1\\ 0&0&1&0&1&1\\ \end{bmatrix},\tag{3}\end{align*} View Source\begin{align*} \textbf {F}_{4 \times 6}= \begin{bmatrix} 1&1&1&0&0&0\\ 1&0&0&1&1&0\\ 0&1&0&1&0&1\\ 0&0&1&0&1&1\\ \end{bmatrix},\tag{3}\end{align*}
Note that the number of users superimposing over one RE is 3, i.e., \begin{equation*} y_{2} =h_{2,1} x_{2,1}+h_{2,4} x_{2,4} +h_{2,5} x_{2,5} +n_{2},\tag{4}\end{equation*}
B. SCMA Encoding and CB Design
The performance gain of SCMA over other NOMA schemes is strongly dependent on judiciously designed sparse CBs. The CB of each user has its own sparsity pattern. The SCMA CB design problem involves finding the optimum mapping matrix, \begin{equation*} \textbf {V}^{*}, \textbf {A}^{*} = \mathop {\arg \max }_{\textbf {V},\textbf {A}} D(S(\textbf {F},\textbf {A}; J,M,d_{v},K))\tag{5}\end{equation*}
\begin{equation*} \text {CB}_{j}=\textbf {V}_{j} \Delta _{j} \textbf {A}_{\text {MC}},~~\text {for}~j=1,2,\cdots ,J,\tag{6}\end{equation*}
\begin{align*} \textbf {V}_{1}=&\begin{bmatrix} 1 & 0\\ 0&1\\ 0 & 0\\ 0 &0\\ \end{bmatrix},~~\textbf {V}_{2} = \begin{bmatrix} 1 & 0\\ 0 & 0\\ 0 & 1\\ 0 & 0\\ \end{bmatrix},~\textbf {V}_{3} = \begin{bmatrix} 1 & 0\\ 0 & 0\\ 0 & 0\\ 0 & 1\\ \end{bmatrix}, \\ \textbf {V}_{4}=&\begin{bmatrix} 0 & 0\\ 1 & 0\\ 0&1\\ 0 &0\\ \end{bmatrix},~~\textbf {V}_{5} = \begin{bmatrix} 0 & 0\\ 1 & 0\\ 0 & 0\\ 0&1\\ \end{bmatrix},~\textbf {V}_{6} = \begin{bmatrix} 0&0\\ 0 & 0\\ 1 &0\\ 0&1\\ \end{bmatrix}.\end{align*}
1) KPIs
The KPIs of
Euclidean Distance: The minimum Euclidean distance between two multi-dimensional constellation points,
and\textbf {x}^{m} ,\textbf {x}^{m'} , is given as1\leq m < m'\leq M It is known that\begin{equation*} d_{E,min}= \text {min} \left \{{ \left \lVert{ \textbf {x}^{m} - \textbf {x}^{m'}}\right \rVert \vert 1\leq m < m'\leq M }\right \}.\end{equation*} View Source\begin{equation*} d_{E,min}= \text {min} \left \{{ \left \lVert{ \textbf {x}^{m} - \textbf {x}^{m'}}\right \rVert \vert 1\leq m < m'\leq M }\right \}.\end{equation*}
is a KPI for designing the constellations in the case of AWGN channels [50]–[52]. If each user observes the same channel coefficients over theird_{E,min} REs (dependent fading), the relative Euclidean distance between the constellation points remains the same. So, in this case,d_{v} is an important factor in the design process of constellation points.d_{E,min} Euclidean Kissing Number (
): It is defined as the average number of constellation pairs at distance\tau _{E} , and its value should be low for designing the constellation points in the case of dependent fading.d_{E,min} Product Distance: The minimum product distance between the constellation points is given as
where\begin{align*} d_{P,min}=&\text {min} \left\{{{\prod _{k \in \mathcal {K}_{mm'}}{ \vert {x}_{k}^{m} - {x}_{k}^{m'} } \vert }}\right\}, \\&\quad ~\text {for}~1\leq m < m'\leq M,\end{align*} View Source\begin{align*} d_{P,min}=&\text {min} \left\{{{\prod _{k \in \mathcal {K}_{mm'}}{ \vert {x}_{k}^{m} - {x}_{k}^{m'} } \vert }}\right\}, \\&\quad ~\text {for}~1\leq m < m'\leq M,\end{align*}
andx_{k}^{m} are thex_{k }^{m'} -th codeword elements ofk and\textbf {x}^{m} , and\textbf {x}^{m'} denotes the set of dimensions,\mathcal {K}_{mm'} , for whichk . It is shown that the minimum product distance of the constellation points should be maximized to have a positive impact on the performance of the SCMA system, especially when each user observes different channel coefficients over theirx_{k}^{m} \neq x_{k}^{m'} REs (independent fading) [50], [53], [54].d_{v} Product kissing number (
): It is defined as the number of constellation pairs at the minimum product distance. The product kissing number should be low to attain low error probability, especially in the case of independent fading [53].\tau _{P} Diversity (
): The diversity of the signal constellation is the minimum number of different components of any two distinct constellation points.L should be high to attain a low error probability in case of independent fading.L
2) Designing of Mother Constellation
The mother constellation matrix
In [15], a mother constellation was designed such that the real and imaginary parts are independent, while the complex dimensions are still dependent. A shuffling approach was used, which reduces the detection complexity from \begin{equation*} \mathbb {P}(\textbf {s}_{a}, \textbf {s}_{b} \vert \textbf {H})= Q \left({\sqrt {\frac { \left \lVert{ \textbf {H} (\textbf {s}_{a} -\textbf {s}_{b}) }\right \rVert ^{2}}{2N_{0}}}}\right)\tag{7}\end{equation*}
In some works, the approach was to solve the optimization problem defined in (5) to generate the CBs. The problem in (5) is usually NP-hard and is difficult to solve [49]. Thus, the optimization problem is reformulated and solved using different optimization techniques [45], [49], [57], [59]. In [60], CB design using maximum distance separable (MDS) codes was proposed which provides improved signal-space diversity. In [61], CB design based on Reinforcement Learning (RL) was proposed which are suitable for large-scale SCMA schemes. In [62], a novel CB optimization method, namely joint bare bones particle swarm optimization (JBBPSO) was proposed to maximize the average mutual information.
3) Constellation Operators
Once the mother constellation is designed, constellation operators,
Next, an example of SCMA CB design for
Step 1: Designing the mother constellation,
: The mother constellation is designed based on the four concentric rings star-QAM signaling constellation, as shown in Fig. 3.\textbf {A}_{MC} where\begin{equation*} |OA| = R_{1},~~|OB| = R_{2},~|OC| = R_{1}',~|OD| = R_{2}',\end{equation*} View Source\begin{equation*} |OA| = R_{1},~~|OB| = R_{2},~|OC| = R_{1}',~|OD| = R_{2}',\end{equation*}
and\alpha =\frac {R_{2}'}{R_{2}}=\frac {R_{1}'}{R_{1}} . Thus, the mother constellation,\beta =\frac {R_{2}'}{R_{1}'}=\frac {R_{2}}{R_{1}} , can be expressed as\textbf {A}_{MC} where\begin{align*} \textbf {A}_{MC}= \begin{bmatrix} \alpha R_{1} & R_{1} & -R_{1} & -\alpha R_{1}\\ -R_{2}& \alpha R_{2} & -\alpha R_{2} & R_{2}\\ \end{bmatrix} {.}\tag{8}\end{align*} View Source\begin{align*} \textbf {A}_{MC}= \begin{bmatrix} \alpha R_{1} & R_{1} & -R_{1} & -\alpha R_{1}\\ -R_{2}& \alpha R_{2} & -\alpha R_{2} & R_{2}\\ \end{bmatrix} {.}\tag{8}\end{align*}
, assuming each user’s CB energy is equal to one, and the value ofR_{1}= \sqrt {\frac {1}{2(\alpha ^{2}+\beta ^{2}+\alpha ^{2} \beta ^{2}+1 )}} [18].\alpha =3, \beta =1/0.62 Step 2: Constellation operators: The constellation operators for six users are as follows:
Traditionally,\begin{align*} \Delta _{1}=&\begin{bmatrix} e^{i \theta _{1}} & 0\\ 0& e^{i \theta _{2}}\\ \end{bmatrix},~~\Delta _{2} = \begin{bmatrix} 1 & 0\\ 0 & 1\\ \end{bmatrix}, \\ \Delta _{3}=&\begin{bmatrix} 0 & e^{i \theta _{3}}\\ e^{i \theta _{1}} & 0\\ \end{bmatrix},~~\Delta _{4} = \begin{bmatrix} 1 & 0\\ 0 & e^{i \theta _{2}}\\ \end{bmatrix}, \\ \Delta _{5}=&\begin{bmatrix} 0 & 1\\ 1 & 0\\ \end{bmatrix},~~\Delta _{6} = \begin{bmatrix} 1&0\\ 0 & e^{i \theta _{3}}\\ \end{bmatrix}.\end{align*} View Source\begin{align*} \Delta _{1}=&\begin{bmatrix} e^{i \theta _{1}} & 0\\ 0& e^{i \theta _{2}}\\ \end{bmatrix},~~\Delta _{2} = \begin{bmatrix} 1 & 0\\ 0 & 1\\ \end{bmatrix}, \\ \Delta _{3}=&\begin{bmatrix} 0 & e^{i \theta _{3}}\\ e^{i \theta _{1}} & 0\\ \end{bmatrix},~~\Delta _{4} = \begin{bmatrix} 1 & 0\\ 0 & e^{i \theta _{2}}\\ \end{bmatrix}, \\ \Delta _{5}=&\begin{bmatrix} 0 & 1\\ 1 & 0\\ \end{bmatrix},~~\Delta _{6} = \begin{bmatrix} 1&0\\ 0 & e^{i \theta _{3}}\\ \end{bmatrix}.\end{align*}
and\theta _{1}=0,\theta _{2}= \pi /3 . Then, the CB for first user is\theta _{3}= \frac {2 \pi }{3} , and similarly CB for other users can be generated using (6).\textbf {CB}_{1}=\textbf {V}_{1} \Delta _{1} \textbf {A}_{\text {MC}}
Decoding
The process of extracting data from the noise corrupted received signal is called decoding, and there are two types of decoding, namely hard and soft decoding. In some communication systems, conventional hard decoding is used, where each decision is taken at the receiver based on a certain threshold value. For instance, a simple hard decoding receiver decides that if the received value is greater than the threshold value, it will be decoded as 1, and 0 otherwise. However, it is not verified how close or far is the received value to the threshold before making the decision. An alternative approach is to obtain the estimated sequence and its reliability level, where the latter indicates the ‘confidence’ we have in that estimated sequence. Such a decoding approach is called soft decoding [66], [67]. In this way, more information can be extracted from the received data, and estimation/detection can be carried out in an iterative and improved manner.
A. Map Detection
The objective of an optimal detector is to minimize the probability of error \begin{equation*} \min P(e)= \min P(\textbf {b} \neq \hat {\textbf {b}}).\tag{9}\end{equation*}
\begin{equation*} P(e)= \int P(e \vert \textbf {y}) f(\textbf {y}) d\textbf {y},\tag{10}\end{equation*}
\begin{equation*} P(e \vert \textbf {y})=1-P(\textbf {b} \vert \textbf {y}),\tag{11}\end{equation*}
\begin{equation*} P( \textbf {b} \vert \textbf {y})= \frac {f(\textbf {y} \vert \textbf {b})P(\textbf {b})} {f (\textbf {y}) },\tag{12}\end{equation*}
\begin{equation*} P(\textbf {b} \vert \textbf {y}) \propto f(\textbf {y} \vert \textbf {b} ).\tag{13}\end{equation*}
Map Detection in SCMA:
For an SCMA decoder, given y and the channel matrix H at the receiver, the detected multiuser codeword \begin{equation*} \hat {\textbf {X}} = \mathop {\mathrm {argmax}} _{\textbf {x}_{j} \in \textbf {CB}_{j},\forall j} p(\textbf {X} \vert \textbf {y}),\tag{14}\end{equation*}
Example:
Let
be a function (also called a global function) of\mathcal {V}(\alpha _{1},\alpha _{2}, \cdots , \alpha _{j},\cdots , \alpha _{J}) number of variables, then the marginalized function with respect toJ variable is given as\alpha _{j} i.e., the summation with respect to all the variables except\begin{equation*} \mathcal {V}(\alpha _{j})\!= \!\sum _{\alpha _{1}} \cdots \sum _{\alpha _{j-1}} \sum _{\alpha _{j+1}} \cdots \sum _{\alpha _{J}} \mathcal {V}(\alpha _{1}, \cdots , \alpha _{J}),\tag{15}\end{equation*} View Source\begin{equation*} \mathcal {V}(\alpha _{j})\!= \!\sum _{\alpha _{1}} \cdots \sum _{\alpha _{j-1}} \sum _{\alpha _{j+1}} \cdots \sum _{\alpha _{J}} \mathcal {V}(\alpha _{1}, \cdots , \alpha _{J}),\tag{15}\end{equation*}
. It can be written in a more compact form as\alpha _{j} where\begin{equation*} \mathcal {V}(\alpha _{j})= \sum _{\sim \alpha _{j}} \mathcal {V}(\alpha _{1},\alpha _{2}, \cdots , \alpha _{j},\cdots , \alpha _{J}),\tag{16}\end{equation*} View Source\begin{equation*} \mathcal {V}(\alpha _{j})= \sum _{\sim \alpha _{j}} \mathcal {V}(\alpha _{1},\alpha _{2}, \cdots , \alpha _{j},\cdots , \alpha _{J}),\tag{16}\end{equation*}
denotes that the summation is performed with respect to all the variables of the global function except for\sim \alpha _{j} .\alpha _{j}




B. Factor Graphs
Different types of graphs are used to model problems in areas such as computer science, biology, physics, etc. A bipartite graph is widely known for modeling communication and signal processing problems. In this graph, total nodes can be divided into two sets, and no two nodes within a set are connected.
A factor graph is an undirected bipartite graph in which one set of nodes is called variable nodes (VNs), and the other is called function nodes (FNs). An edge is connected between a VN and a FN if that particular variable is an argument of that function. The factor graph shows how a global function can be represented in simpler local functions (denoted by FNs) and can also help in computing marginal distribution with respect to a single variable using MPA.
Factor graphs are also widely used to model several communication problems. Fig. 4 shows the factor graph of a communication channel [68].
Let \begin{equation*} f(\textbf {y} \vert \textbf {x})=\prod _{k=1}^{K} f(y_{k} \vert \textbf {x}).\tag{21}\end{equation*}
The factor graph corresponding to
Factor graph of the
C. Message Passing Algorithm
MPA is an algorithm to conduct inference from graphical models by passing belief messages between the nodes. The following example may help understand how inference can be obtained from a graph [66].
Example:
Fig. 6 (a) shows a group of students standing in a line. The objective is to count the total number of students and pass this information to each student. The constraint is that one student can communicate with a maximum of two neighboring students (front and back) at a time. To solve this problem, the approach proposed by MPA is that when one student receives a count from one side, he/she adds 1 to it (to indicate the student’s presence) and passes it to the other side. The algorithm starts from each end of the line where the counter starts from 1 and increases by 1 as the message passes through each student. Messages pass in both directions of the line. If a student receives a count of
from one side andn from another side, then the total students present arem (as shown in Fig. 6 (b)). In this way, every student obtains the information on the total number of students present in the line. Such problems can also be modelled with the help of a graph, where each node represents a student, and every connecting edge represents a communication link between them.n+m+1
Students counting using MPA. (a) Group counting of students. (b) Count at individual student.
Next, we discuss how messages are passed across a factor graph, and the resultant inference obtained using MPA. In SCMA systems, each VN denotes one data layer, and each FN denotes the likelihood function at the RE. Therefore, the total number of VNs equals the total number of layers/users, and the total FNs equals the total REs present. Consider a factor graph having
Let
Passing message from FN
to VNk :j where\begin{equation*} \eta _{k \rightarrow j}(\textbf {x}_{j}^{m}) = \sum _{\sim \textbf {x}_{j}} \left ({\psi _{k} \prod _{j' \in \xi _{k} \setminus \{j\}} \eta _{j' \rightarrow k}(\textbf {x}_{j'}^{m})}\right ),\tag{22}\end{equation*} View Source\begin{equation*} \eta _{k \rightarrow j}(\textbf {x}_{j}^{m}) = \sum _{\sim \textbf {x}_{j}} \left ({\psi _{k} \prod _{j' \in \xi _{k} \setminus \{j\}} \eta _{j' \rightarrow k}(\textbf {x}_{j'}^{m})}\right ),\tag{22}\end{equation*}
is the likelihood function associated with FN\psi _{k} andk denotes all the VNs ofj' \in \xi _{k} \setminus \{j\} except\xi _{k} th VN. Also,j denotes the message from the VN\eta _{j' \rightarrow k}(\textbf {x}_{j'}^{m}) to the FNj' corresponding to symbolk .\textbf {x}_{j'}^{m} \in \textbf {CB}_{j}, m=1,\cdots ,M Passing message from VN
to FNj :k where\begin{equation*} \eta _{j \rightarrow k}(\textbf {x}_{j}^{m}) =\prod _{k' \in \zeta _{j} \setminus \{k\}} \eta _{k' \rightarrow j}(\textbf {x}_{j}^{m}),\tag{23}\end{equation*} View Source\begin{equation*} \eta _{j \rightarrow k}(\textbf {x}_{j}^{m}) =\prod _{k' \in \zeta _{j} \setminus \{k\}} \eta _{k' \rightarrow j}(\textbf {x}_{j}^{m}),\tag{23}\end{equation*}
denotes the FNs ink' \in \zeta _{j} \setminus \{k\} except the\zeta _{j} th FN. The message is normalized to ensure that the sum of all the probabilities is equal to one.k \begin{equation*} \eta _{j \rightarrow k}(\textbf {x}_{j}^{m}) =\frac {\prod _{k' \in \zeta _{j} \setminus \{k\}} \eta _{k' \rightarrow j}(\textbf {x}_{j}^{m})}{\sum _{\textbf {x}_{j}^{l} \in \textbf {CB}_{j}} \prod _{k' \in \zeta _{j} \setminus \{k\}} \eta _{k' \rightarrow j}(\textbf {x}_{j}^{l}) }.\tag{24}\end{equation*} View Source\begin{equation*} \eta _{j \rightarrow k}(\textbf {x}_{j}^{m}) =\frac {\prod _{k' \in \zeta _{j} \setminus \{k\}} \eta _{k' \rightarrow j}(\textbf {x}_{j}^{m})}{\sum _{\textbf {x}_{j}^{l} \in \textbf {CB}_{j}} \prod _{k' \in \zeta _{j} \setminus \{k\}} \eta _{k' \rightarrow j}(\textbf {x}_{j}^{l}) }.\tag{24}\end{equation*}
D. Illustration of MPA Decoding for 4 \times6
SCMA System
MPA is applied over the factor graph shown in Fig. 5 and messages are passed between the VNs and FNs in both the directions of the SCMA factor graph. It is noted that the factor graph of the SCMA system contains cycles in it. Thus messages are passed between the nodes for some iterations until the termination criteria is achieved. The objective is to detect the symbols transmitted by each user, i.e., compute (20) using MPA, and this can be carried out in the following steps:
Initialization.
Passing of messages between FNs and VNs.
Termination and selection of codewords.
Step 1: Initialization
Assuming received vector y and channel coefficient matrix H are known at receiver, firstly the likelihood ratio is computed at each FN. Let us assume a FN
where data of three users corresponding to setl superimpose. Therefore, the likelihood function at FN\xi _{l}=\{v_{1}.v_{2},v_{3}\} becomesl , where,\psi (y_{l} \vert \textbf {x}_{1},\textbf {x}_{2}, \textbf {x}_{3},N_{0}) are the codewords transmitted by users belonging to set\textbf {x}_{1},\textbf {x}_{2},\textbf {x}_{3} , respectively. Assume the set of codeword elements allotted to user\xi _{l} on REv is denoted asl . The likelihood function of FN\textbf {CB}_{l,v} is given asl Here,\begin{align*}&\hspace {-2pc}\psi (y_{l} \vert \textbf {x}_{1},\textbf {x}_{2},\textbf {x}_{3},N_{0} ) \\=&\exp \bigg (\frac {-1}{N_{0}} ||y_{l}-(h_{l1} x_{l,1} +h_{l2} x_{l,2} +h_{l3} x_{l,3} ||^{2} \bigg ), \\&\qquad \text {for}~{x}_{l,1} \in \textbf {CB}_{l,1}, {x}_{l,2} \in \textbf {CB}_{l,2}, {x}_{l,3} \in \textbf {CB}_{l,3}. \\\tag{25}\end{align*} View Source\begin{align*}&\hspace {-2pc}\psi (y_{l} \vert \textbf {x}_{1},\textbf {x}_{2},\textbf {x}_{3},N_{0} ) \\=&\exp \bigg (\frac {-1}{N_{0}} ||y_{l}-(h_{l1} x_{l,1} +h_{l2} x_{l,2} +h_{l3} x_{l,3} ||^{2} \bigg ), \\&\qquad \text {for}~{x}_{l,1} \in \textbf {CB}_{l,1}, {x}_{l,2} \in \textbf {CB}_{l,2}, {x}_{l,3} \in \textbf {CB}_{l,3}. \\\tag{25}\end{align*}
denotes the codeword element transmitted by thex_{l,v} th user on thev th RE. In total,l values are stored for functionK{M}^{d_{f}} . For an uncoded SCMA system, let us assume equal prior probability for each codeword, i.e.,f(y_{l} \vert \textbf {x}_{1},\textbf {x}_{2},\textbf {x}_{3},N_{0} ) =P(\textbf {x}_{1} ) =P(\textbf {x}_{2} ) =P(\textbf {x}_{3} ) . Therefore, the initial message passed from VN\frac {1}{M} to thev_{1},v_{2},v_{3} th FN isl \begin{equation*} \eta _{v_{1} \rightarrow l}^{\text {init}} (\textbf {x}_{1} )=\eta _{v_{2} \rightarrow l} ^{\text {init}} (\textbf {x}_{2} )=\eta _{v_{3} \rightarrow l}^{\text {init}} (\textbf {x}_{3} )=\frac {1}{M}.\tag{26}\end{equation*} View Source\begin{equation*} \eta _{v_{1} \rightarrow l}^{\text {init}} (\textbf {x}_{1} )=\eta _{v_{2} \rightarrow l} ^{\text {init}} (\textbf {x}_{2} )=\eta _{v_{3} \rightarrow l}^{\text {init}} (\textbf {x}_{3} )=\frac {1}{M}.\tag{26}\end{equation*}
Step 2: Passing of messages between FNs and VNs.
(i)
Message from FN to VN:
Let us assume
, where\xi _{l}=\{v_{1},v_{2},v_{3}\} denotes the three users connected to REv_{1},v_{2},v_{3} , respectively. To pass the message from the FN to one user, information received on the FN from the other two users may be regarded as extrinsic information, as shown in Fig. 7.l Message passed from FN
to VNl is given asv_{1} \begin{align*}&\hspace {-2pc}\eta _{l \rightarrow v_{1}} (\textbf {x}_{1}) \\=&\sum _{\textbf {x}_{2}\in \textbf {CB}_{2}} \sum _{\textbf {x}_{3}\in \textbf {CB}_{3}} \bigg (\psi (y_{l} \vert \textbf {x}_{1},\textbf {x}_{2},\textbf {x}_{3},N_{0} ) \\&\times \, \eta _{v_{2} \rightarrow l} (\textbf {x}_{2} ) \hspace {0.05cm} \eta _{v_{3} \rightarrow l} (\textbf {x}_{3})\bigg ) \hspace {0.25cm} \text {for}~\textbf {x}_{1} \in \textbf {CB}_{1}.\tag{27}\end{align*} View Source\begin{align*}&\hspace {-2pc}\eta _{l \rightarrow v_{1}} (\textbf {x}_{1}) \\=&\sum _{\textbf {x}_{2}\in \textbf {CB}_{2}} \sum _{\textbf {x}_{3}\in \textbf {CB}_{3}} \bigg (\psi (y_{l} \vert \textbf {x}_{1},\textbf {x}_{2},\textbf {x}_{3},N_{0} ) \\&\times \, \eta _{v_{2} \rightarrow l} (\textbf {x}_{2} ) \hspace {0.05cm} \eta _{v_{3} \rightarrow l} (\textbf {x}_{3})\bigg ) \hspace {0.25cm} \text {for}~\textbf {x}_{1} \in \textbf {CB}_{1}.\tag{27}\end{align*}
In (29), messages from the two VNs (i.e.,
and\eta _{v_{2} \rightarrow l} (\textbf {x}_{2} ) ) are multiplied with the local likelihood function of\eta _{v_{3} \rightarrow l} (\textbf {x}_{3} ) th FN and then marginalized with respect tol . Similarly, message passed from FNv_{1} to VNsl andv_{2} , respectively arev_{3} Message passing from FN\begin{align*}&\hspace {-2pc}\eta _{l \rightarrow v_{2}} (\textbf {x}_{2} ) \\=&\sum _{\textbf {x}_{1}\in \textbf {CB}_{1}} \sum _{\textbf {x}_{3}\in \textbf {CB}_{3}} \bigg (\psi (y_{l} \vert \textbf {x}_{1},\textbf {x}_{2},\textbf {x}_{3},N_{0} ) \\&\times \, \eta _{v_{1} \rightarrow l} (\textbf {x}_{1} ) \hspace {0.05cm} \eta _{v_{3} \rightarrow l} (\textbf {x}_{3})\bigg )~~\text {for}~\textbf {x}_{2} \in \textbf {CB}_{2}. \tag{28}\\&\hspace {-2pc}\eta _{l \rightarrow v_{3}} (\textbf {x}_{3} ) \\=&\sum _{\textbf {x}_{1}\in \textbf {CB}_{1}} \sum _{\textbf {x}_{2}\in \textbf {CB}_{2}} \bigg (\psi (y_{l} \vert \textbf {x}_{1},\textbf {x}_{2},\textbf {x}_{3},N_{0} ) \\&\times \, \eta _{v_{1} \rightarrow l} (\textbf {x}_{1} )\hspace {0.05cm} \eta _{v_{2} \rightarrow l} (\textbf {x}_{2})\bigg )\,~~\text {for}~\textbf {x}_{3} \in {\textbf {CB}_{3}}.\tag{29}\end{align*} View Source\begin{align*}&\hspace {-2pc}\eta _{l \rightarrow v_{2}} (\textbf {x}_{2} ) \\=&\sum _{\textbf {x}_{1}\in \textbf {CB}_{1}} \sum _{\textbf {x}_{3}\in \textbf {CB}_{3}} \bigg (\psi (y_{l} \vert \textbf {x}_{1},\textbf {x}_{2},\textbf {x}_{3},N_{0} ) \\&\times \, \eta _{v_{1} \rightarrow l} (\textbf {x}_{1} ) \hspace {0.05cm} \eta _{v_{3} \rightarrow l} (\textbf {x}_{3})\bigg )~~\text {for}~\textbf {x}_{2} \in \textbf {CB}_{2}. \tag{28}\\&\hspace {-2pc}\eta _{l \rightarrow v_{3}} (\textbf {x}_{3} ) \\=&\sum _{\textbf {x}_{1}\in \textbf {CB}_{1}} \sum _{\textbf {x}_{2}\in \textbf {CB}_{2}} \bigg (\psi (y_{l} \vert \textbf {x}_{1},\textbf {x}_{2},\textbf {x}_{3},N_{0} ) \\&\times \, \eta _{v_{1} \rightarrow l} (\textbf {x}_{1} )\hspace {0.05cm} \eta _{v_{2} \rightarrow l} (\textbf {x}_{2})\bigg )\,~~\text {for}~\textbf {x}_{3} \in {\textbf {CB}_{3}}.\tag{29}\end{align*}
to VNl is shown graphically in Fig. 7. The message transmitted from FNv_{3} to VNl indicates the guess of what signal is received at FNv for all possible values of VNl .v (ii)
Message from VN to FN:
Let us assume
, where\zeta _{v}=\{l_{1},l_{2}\} andl_{1} are the FNs connected to VNl_{2} .v Message sent from VN
to FNv andl_{1} , respectively are:l_{2} where\begin{align*} \eta _{v \rightarrow l_{1}}(\textbf {x}_{v})=&\text {normalize}(P_{a} (\textbf {x}_{v}) \hspace {0.1cm} \eta _{l_{2} \rightarrow v }(\textbf {x}_{v})) \\&\hspace {1cm}\text {for}~\textbf {x}_{v} \in \textbf {CB}_{v}, \tag{30}\\ \eta _{v \rightarrow l_{2}}(\textbf {x}_{v})=&\text {normalize}(P_{a} (\textbf {x}_{v}) \hspace {0.1cm} \eta _{l_{1} \rightarrow v} (\textbf {x}_{v}))\, \\&\hspace {1cm} \text {for}~\textbf {x}_{v} \in \textbf {CB}_{v},\tag{31}\end{align*} View Source\begin{align*} \eta _{v \rightarrow l_{1}}(\textbf {x}_{v})=&\text {normalize}(P_{a} (\textbf {x}_{v}) \hspace {0.1cm} \eta _{l_{2} \rightarrow v }(\textbf {x}_{v})) \\&\hspace {1cm}\text {for}~\textbf {x}_{v} \in \textbf {CB}_{v}, \tag{30}\\ \eta _{v \rightarrow l_{2}}(\textbf {x}_{v})=&\text {normalize}(P_{a} (\textbf {x}_{v}) \hspace {0.1cm} \eta _{l_{1} \rightarrow v} (\textbf {x}_{v}))\, \\&\hspace {1cm} \text {for}~\textbf {x}_{v} \in \textbf {CB}_{v},\tag{31}\end{align*}
denotes the prior probability of userP_{a} andv indicates the updates VN\eta _{l_{2} \rightarrow v} received from the FNv . Here, normalization is necessary to ensure that each belief falls in the range of [1]. The normalization is conducted similar to (24) and so, (32) can also be written asl_{2} The message from the VN\begin{align*} \eta _{v \rightarrow l_{1}}(\textbf {x}_{v})=&\frac { P_{a}(\textbf {x}_{v}) \eta _{l_{2} \rightarrow v}(\textbf {x}_{v})}{\sum _{\textbf {x}_{v}} \eta _{l_{2} \rightarrow v}(\textbf {x}_{v}) } \\&\text {for}~\textbf {x}_{v} \in \textbf {CB}_{v}.\tag{32}\end{align*} View Source\begin{align*} \eta _{v \rightarrow l_{1}}(\textbf {x}_{v})=&\frac { P_{a}(\textbf {x}_{v}) \eta _{l_{2} \rightarrow v}(\textbf {x}_{v})}{\sum _{\textbf {x}_{v}} \eta _{l_{2} \rightarrow v}(\textbf {x}_{v}) } \\&\text {for}~\textbf {x}_{v} \in \textbf {CB}_{v}.\tag{32}\end{align*}
to FNv is shown graphically in Fig. 8. Since the factor graph has cycles, the passing of messages between FNs to VNs is repeated for a few iterations. This continues until no considerable change is observed in the belief computed at each VN.l_{2} •
Step 3: Termination and selection of codewords.
After repeating Step 2 for
number of iterations, the final belief is computed at each VN, which is the product of the prior probability and messages from the neighboring FNs of each VN.N_{\text {t}} The probability for each codeword is calculated at each VN, and the codeword with the highest probability becomes the estimated codeword for that user. This is one method of estimating the transmitted symbol for each user. Another method is to compute bit LLR from\begin{align*} I_{v}(\textbf {x}_{v})=&P_{a}(\textbf {x}_{v}) \hspace {0.05cm} \eta _{l_{1} \rightarrow v} (\textbf {x}_{v}) \hspace {0.05cm} \eta _{l_{2} \rightarrow v} (\textbf {x}_{v}), \\&\qquad \text {for}~\textbf {x}_{v} \in \textbf {CB}_{v}.\tag{33}\end{align*} View Source\begin{align*} I_{v}(\textbf {x}_{v})=&P_{a}(\textbf {x}_{v}) \hspace {0.05cm} \eta _{l_{1} \rightarrow v} (\textbf {x}_{v}) \hspace {0.05cm} \eta _{l_{2} \rightarrow v} (\textbf {x}_{v}), \\&\qquad \text {for}~\textbf {x}_{v} \in \textbf {CB}_{v}.\tag{33}\end{align*}
. TheI_{v}(\textbf {x}_{v}) -th bit LLR for VNi is given asv In case of\begin{align*} \text {LLR} ({b_{v}^{i}})=&\log \frac {P(b_{v}^{i}=+1)}{P (b_{v}^{i}=-1)} \\=&\log \frac {\sum _{\textbf {x}_{v} \vert b_{v}^{i}=+1} I_{v}(\textbf {x}_{v})} {\sum _{\textbf {x}_{v} \vert b_{v}^{i}=-1} I_{v}(\textbf {x}_{v})}, \\&\hspace {2cm} \text {for}~i=1,\cdots ,B.\tag{34}\end{align*} View Source\begin{align*} \text {LLR} ({b_{v}^{i}})=&\log \frac {P(b_{v}^{i}=+1)}{P (b_{v}^{i}=-1)} \\=&\log \frac {\sum _{\textbf {x}_{v} \vert b_{v}^{i}=+1} I_{v}(\textbf {x}_{v})} {\sum _{\textbf {x}_{v} \vert b_{v}^{i}=-1} I_{v}(\textbf {x}_{v})}, \\&\hspace {2cm} \text {for}~i=1,\cdots ,B.\tag{34}\end{align*}
, there are two bits per symbol. LetM=4 denote the four codewords corresponding to four symbols\textbf {CB}_{v}=\{\textbf {x}_{v}^{1},\textbf {x}_{v}^{2},\textbf {x}_{v}^{3},\textbf {x}_{v}^{4}\} that can be sent by user\{s^{1},s^{2},s^{3},s^{4}\} . Using (35), final belief corresponding to each of the four codewords is calculated. Then, the LLR of the first bit is given asv The ratio of the belief computed corresponding to codewords\begin{align*} \text {LLR} (b_{v}^{1})=&\log \frac {P (b_{v}^{1}=+1)}{P (b_{v}^{1}=-1)} \\=&\log \frac { I_{v}(\textbf {x}_{v}^{1} )+I_{v}(\textbf {x}_{v}^{2})}{I_{v}(\textbf {x}_{v}^{3})+I_{v}(\textbf {x}_{v}^{4})}.\tag{35}\end{align*} View Source\begin{align*} \text {LLR} (b_{v}^{1})=&\log \frac {P (b_{v}^{1}=+1)}{P (b_{v}^{1}=-1)} \\=&\log \frac { I_{v}(\textbf {x}_{v}^{1} )+I_{v}(\textbf {x}_{v}^{2})}{I_{v}(\textbf {x}_{v}^{3})+I_{v}(\textbf {x}_{v}^{4})}.\tag{35}\end{align*}
and\textbf {x}_{v}^{1},\textbf {x}_{v}^{2} gives the bit LLR of the first bit. Consequently, if\textbf {x}_{v}^{3}, \textbf {x}_{v}^{4} or ifP(b_{v}^{1}=-1)>P(b_{v}^{1}=+1) , then ‘1’ is decoded for first bit of the symbol otherwise 0. Similarly, for the second bit, if\text {LLR}(b_{v}^{1}) < 0 , then ‘1’ is decoded for the second bit of the symbol. The bit LLR for the second bit is given as\text {LLR} (b_{v}^{2}) < 0 \begin{equation*} \text {LLR} (b_{v}^{2}) = \log \frac { I_{v}(\textbf {x}_{v}^{1} )+I_{v}(\textbf {x}_{v}^{3})}{I_{v}(\textbf {x}_{v}^{2})+I_{v}(\textbf {x}_{v}^{4})}.\tag{36}\end{equation*} View Source\begin{equation*} \text {LLR} (b_{v}^{2}) = \log \frac { I_{v}(\textbf {x}_{v}^{1} )+I_{v}(\textbf {x}_{v}^{3})}{I_{v}(\textbf {x}_{v}^{2})+I_{v}(\textbf {x}_{v}^{4})}.\tag{36}\end{equation*}
Advanced SCMA Decoding Techniques
In SCMA, MPA is an efficient decoding technique by exploiting the CBs sparsity. Using MPA, the receiver is able to attain near-optimum decoding performance with computation complexity
A. Discretized MPA (DMPA)
In standard MPA, the dominant complexity is incurred by updating the messages of FNs (i.e., Step 1 (a) of Algorithm 1), where the message from an FN to a VN is computed based on the messages coming from the other
In this work, Step 1 (a) of Algorithm 1 is proved to be equivalent to the convolution of \begin{equation*} \eta _{k \rightarrow j}(\textbf {x}_{j}^{m}) = g(y_{k}-x_{k,j}^{m}).\tag{37}\end{equation*}
Using the circular convolution theorem, the sampling sequence of \begin{align*}&\hspace {-0.5pc}g=\mathcal {F}^{-1}[\mathcal {F}(pad(f_{2}))\bullet \mathcal {F}(pad(f_{3}))\bullet \cdots \bullet \mathcal {F}(pad(f_{d_{f}})) \\&\qquad\qquad\qquad\qquad\qquad\qquad \bullet \mathcal {F}(pad(\mathcal {N}_{p})],\tag{38}\end{align*}
For every connected edge
, the discretized version of(j,k) and\eta (t) for\{f_{j}(t)\} are computed.m=1,\cdots , d_{f} -1 The discretized sequences are padded with zeros until they have length
, whereN is the size of FFT.N Compute
from (40).g The FN is updated using (39).
B. Sphere Decoded MPA
To simplify the conventional MPA, [72] proposed a logarithm domain MPA (Log-MPA) detector, which reduced the product operations involved without compromising the performance. To further simplify the detection, [73], [74] approximated the sum of exponential operations as a maximum operation, and it is called Max-Log-MPA. This reduces complexity but with slight performance degradation. Another way of reducing the MPA complexity is to restrict the search space around the received signal vector, and this is known as sphere decoded MPA (SD-MPA) [75]–[78].
An improved Log-MPA Region-Restricted detector (RRL detector) was proposed in [75] for SCMA downlink systems. In the case of a downlink system, the received signal at the \begin{equation*} y_{k}= h_{k} \sum _{j \in \xi _{k}} x_{k,j} + n_{k} \triangleq h_{k} z_{k} +n_{k},\tag{39}\end{equation*}
\begin{equation*} \eta _{k \rightarrow j} (\textbf {x}_{j} )= \underset {z_{k} \in \mathcal {S}: \textbf {x}_{j}} {F_{m}} \left ({ \sum _{ j' \in \xi _{k} \setminus j} \eta _{j' \rightarrow k} (\textbf {x}_{j'} ) + \mathcal {M}(z_{k}) }\right )\tag{40}\end{equation*}
\begin{align*} \mathcal {M}(z_{k})=&-\frac {1}{2 \sigma ^{2}} |y_{k}-h_{k} z_{k}|^{2}, \tag{41}\\[3pt] {F_{m}}\triangleq&\overset {\sim }{max}(\mathsf {s}_{n'}, max(\mathsf {s}_{n'-1},\cdots , max(\mathsf {s}_{2}, \mathsf {s}_{1}))), \\[3pt]&\qquad \text {for}~n'=M^{d_{f} -1},\tag{42}\\[3pt] \mathsf {s}_{n'}=&\sum _{ j' \in \xi _{k} \setminus j} \big (\mathcal {M}({z_{k}}) + \eta _{j' \rightarrow k} (\textbf {x}_{j'} ) \big ) \\[3pt]&\text {and},~\overset {\sim }{max}(a',b') \!=\! max (a',b')\!+\!C_{1} (a'\!-\!b'),\tag{43}\end{align*}
C. Scheduled MPA
In [26], MPA was simplified and optimized from two aspects. Firstly, a lookup table (LUT) was designed to approximate the correction function \begin{align*} \eta _{k \rightarrow j}(\textbf {x}_{j})=&\overset {\sim }{max}_{\sim \textbf {x}_{j}} \bigg (\psi _{k} + \sum \limits _{\substack {j'\in \xi _{k} \setminus \{j\} \\ {\pi }^{-1}(j') < v' }} \eta _{j' \rightarrow k}^{t}(\textbf {x}_{j}) \\&\qquad + \sum \limits _{\substack {j'\in \xi _{k} \setminus \{j\} \\ {\pi }^{-1}(j') > v' }} \eta _{j' \rightarrow k}^{t-1}(\textbf {x}_{j})\bigg ),~~\text {for}~\textbf {x}_{j} \in \textbf {CB}_{j},\tag{44}\end{align*}
D. PM MPA
The partial marginalization based MPA (PM-MPA) was introduced in [24]. The FNs and VNs are updated as in conventional MPA for
To improve the BER performance with same complexity, [81] introduced Improved PM-MPA in which the \begin{equation*} \textbf {L}_{j}= sort (\{I_{j}^{1},\cdots ,I_{j}^{M}\},~ {{\mathrm {`descend'}}}).\end{equation*}
\begin{equation*} \textsf {w}_{j}= \frac {\textbf {L}_{j} [{1}]}{\textbf {L}_{j}[{2}]}\end{equation*}
E. Extended Max-Log MPA
In [82], authors proposed extended max-log (EML) MPA, which jointly reduces the complexity for VNs and FNs update at the SCMA receiver. Due to the sparsity of \begin{equation*} f': \textbf {A}_{MC} \rightarrow GF(M).\tag{45}\end{equation*}
The main difference between MPA and EML-MPA is the initialization and FNs update. These two steps are as follows:
Initialize: The reliability of each constellation point at VNs is calculated as:
where\begin{equation*} RL_{j}(m)= \sum _{d=1}^{d_{v}} U_{dj} (m),~\text {for}~m=1,\cdots ,M,\tag{46}\end{equation*} View Source\begin{equation*} RL_{j}(m)= \sum _{d=1}^{d_{v}} U_{dj} (m),~\text {for}~m=1,\cdots ,M,\tag{46}\end{equation*}
is the maximum of the logarithm ofU_{dj} over the possible constellation points. The parameter\eta _{d\rightarrow j} denotes the reliability for each symbol. Based onRL_{j}(m) ,RL_{j} constellation points are chosen and initial messages are passed from thesem_{c} number of nodes.m_{c} FNs update: FNs are updated for only
constellation points withm_{c} .\left \lVert{ y_{k}- \sum _{j \in \xi _{k}} h_{k,j}x_{k,j}^{m}}\right \rVert ^{2},~\forall ~m \in m_{c}
In [82], the truncation parameter
F. Detection of Coded SCMA System
SCMA can be combined with channel decoders to improve transmission reliability, such as low-density parity-check (LDPC) codes, polar codes, and so on [84]–[88].
1) LDPC Coded SCMA System
One popular approach for multi-user detection is to attempt the removal of multi-user interference from each user’s received signal, among which parallel interference cancellation (PIC) is a promising candidate. In this, each user attempts to cancel its multi-user interference. As compared with the serial processing scheme, since the interference cancellation is performed in parallel for all users, the delay required to complete the operation decreases significantly [89].
In literature, a variety of sub-optimum algorithms have been proposed in the literature, to compute the extrinsic LLRs [90], [91]. In [86], a hardware feasible minimum mean-square error (MMSE) PIC algorithm is proposed for LDPC coded SCMA detection. At the transmitter, the message bits of all users are coded by the LDPC encoder, followed by the SCMA encoder. Initially, the a priori bit LLR values
Computation of Soft-Symbols: The algorithm starts by computing estimates of the transmitted symbols according to [92]
where\begin{equation*} \hat {x}_{k,j}= \sum _{a \in \textbf {CB}_{k,j}} P(x_{k,j} =a) a\tag{47}\end{equation*} View Source\begin{equation*} \hat {x}_{k,j}= \sum _{a \in \textbf {CB}_{k,j}} P(x_{k,j} =a) a\tag{47}\end{equation*}
is the probability of modulation symbolP(x_{k,j} =a)= \prod _{i=1}^{B} \frac {1}{2} (1+ 2a_{i}-1) \text {tanh} \left({\frac {1}{2} LV^{t,i}_{j \rightarrow k}}\right) anda is thea_{i} -th bit of symboli . The reliability of each soft-symbol is characterized by its variancea \begin{equation*} \varepsilon _{k,j}^{t}= E [\vert x_{k,j} - \hat {x}_{k,j} \vert ^{2}]\tag{48}\end{equation*} View Source\begin{equation*} \varepsilon _{k,j}^{t}= E [\vert x_{k,j} - \hat {x}_{k,j} \vert ^{2}]\tag{48}\end{equation*}
Parallel Interference Cancellation (PIC): Let
, where\textbf {h}_{\textbf {r}k}=[h_{k,j}] , denotes the channel vector for FNj \in \xi _{k} . To detect the symbol transmitted byk th user, interference from other users can be cancelled using previously computed soft-symbolsj (49), where\hat {x}_{j'} . Letj' \neq j , then each column of\textbf {G}_{\textbf {r}k}= \textbf {h}_{\textbf {r}k}^{\text {H}} \textbf {h}_{\textbf {r}k} can be given as\hat {Y}_{\textbf {r}k} \begin{equation*} \hat {y}_{\textbf {r}k,j}= \textbf {h}_{\textbf {r}k}^{\text {H}} y_{k}- \sum _{j' \in \xi _{k} \setminus j} \textbf {g}_{\textbf {r}k,j'} \hat {x}_{k,j'}^{t}\tag{49}\end{equation*} View Source\begin{equation*} \hat {y}_{\textbf {r}k,j}= \textbf {h}_{\textbf {r}k}^{\text {H}} y_{k}- \sum _{j' \in \xi _{k} \setminus j} \textbf {g}_{\textbf {r}k,j'} \hat {x}_{k,j'}^{t}\tag{49}\end{equation*}
MMSE Filtering and LLR Computation: To reduce the noise-plus-interference in (51), linear MMSE filters are used and using those, bit LLR from FN
to VNk is calculated. For the detailed MMSE-PIC algorithm, please refer [86], [93].j

2) Polar Coded SCMA
In practical scenarios, coded SCMA systems are employed to improve the quality of service (QoS). Recently, polar coded SCMA (PC-SCMA) has been studied, but the separate detection and decoding scheme does not give optimal performance. Thus, a joint iterative detection and decoding (JIDD) receiver was proposed for the uplink PC-SCMA system in [94]. SCMA detectors calculate the extrinsic messages of the SCMA codewords of all users, then the messages are demapped into a prior messages of each user’s polar decoder. After polar decoders return the extrinsic messages of each user’s polar codeword, they are remapped to a prior messages of the SCMA codewords, which will be passed to the SCMA detectors again. This happens in one iteration of JIDD and no inner iterations are needed for the SCMA detector and polar decoder. In the JIDD algorithm, the factor graphs of SCMA and polar encoder are combined to generate a joint factor graph of the PC-SCMA system. The detection algorithm for SCMA is MPA, and of polar code is soft cancellation (SCAN) algorithm [95]. The JIDD algorithm is discussed below:
FNs update process: The FNs are updated and pass the information to neighboring VNs (as shown in Step 1 (a) of Algorithm 1). Then, the bits extrinsic information in the form of LLR is calculated (as shown in Step 2 of Algorithm 1).
Priori information update process: In this process, the output extrinsic information of the FNs update process is passed to the polar decoder. Then, a priori information of the VNs is calculated based on the output extrinsic messages of the polar decoder. Each of the two adjacent columns of the polar code factor graph comprises
unit factor graphs, whereN/2 is the polar code length. The polar code factor graph with code lengthN is shown in Fig. 9(a), which is composed ofN = 8 + 1 = 4 columns,\text {log}_{2}(N) rows, and a unit factor graph is shown in Fig. 9(b). The factor graph has two associated left LLR (N=8 ) and right LLR messages (L_{s,t} ) at the node with theR_{s,t} th row index ands th column index. For initialization, the left messaget of theL_{0,t}^{j} th user is initialized with a prior information and the right messages are initialized as,j , whereR_{s,t}=0~\text {for}~t \in \mathcal {A}, R_{s,t}= \infty ~\text {for}~t \in \mathcal {A}^{c} is the set of information bits and\mathcal {A} is the set of frozen bits. The messages computed to be passed on a unit factor graph are [95]:\mathcal {A}^{c} where\begin{align*} L_{s+1,t_{2}}^{j}=&ms_{f}(R_{s+1,t_{3}}^{j}+L_{s,t_{1}}^{j},L_{s,t_{0}}^{j}) \\[3pt] L_{s+1,t_{3}}^{j}=&ms_{f}(R_{s+1,t_{2}}^{j},L_{s,t_{0}}^{j})+L_{s,t_{1}}^{j} \\[3pt] R_{s,t_{0}}^{j}=&ms_{f}(R_{s+1,t_{2}}^{j},R_{s+1,t_{3}}^{j}+L_{s,t_{1}}^{j}) \\[3pt] R_{s,t_{1}}^{j}=&R_{s+1,t_{3}}^{j}+ms_{f}(R_{s+1,t_{2}}^{j},L_{s,t_{0}}^{j})\tag{51}\end{align*} View Source\begin{align*} L_{s+1,t_{2}}^{j}=&ms_{f}(R_{s+1,t_{3}}^{j}+L_{s,t_{1}}^{j},L_{s,t_{0}}^{j}) \\[3pt] L_{s+1,t_{3}}^{j}=&ms_{f}(R_{s+1,t_{2}}^{j},L_{s,t_{0}}^{j})+L_{s,t_{1}}^{j} \\[3pt] R_{s,t_{0}}^{j}=&ms_{f}(R_{s+1,t_{2}}^{j},R_{s+1,t_{3}}^{j}+L_{s,t_{1}}^{j}) \\[3pt] R_{s,t_{1}}^{j}=&R_{s+1,t_{3}}^{j}+ms_{f}(R_{s+1,t_{2}}^{j},L_{s,t_{0}}^{j})\tag{51}\end{align*}
is called min-sum function. In Fig. 9(b),ms_{f}(a,b) \approx \text {sign}(a) \times \text {sign}(b) \times \text {min}(|a|,| b|) is denoted byms_{f} (L_{1},L_{2}) and is commonly referred to as boxplus operator and “equal to” sign in the box denotes the addition operation. Thus, in each iteration, left and right messages are updated. For detailed polar SCAN algorithm, please refer [95]. After one iteration of polar decoding, the output extrinsic information of the polar decoder is passed as a priori information to the SCMA detector.L_{1} \boxplus L_{2} VNs update process: In this, VNs update their information using a priori information and pass it to the neighboring FNs (similar to as shown in Step 1 (b) of Algorithm 1).
G. SIC-MPA
In [99], two successive interference cancellation (SIC) based receivers, namely SIC and joint SIC-MPA receivers, were proposed for SCMA systems. The complex symbols are divided into real and imaginary parts, and the system model is rewritten to make a simpler receiver design. SIC receiver consists of subtraction and deduction operations and thus, has lower complexity than MPA. However, the SIC receiver suffers from performance loss. In the joint SIC-MPA receiver, the output of SIC is sent to MPA to calculate LLR. Since SIC provides an initial value to MPA, this receiver converges faster, and provides better performance improvement of 0.5–1 dB with less complexity. However, the main trade-off is that specific CBs are required for this receiver, and the proposed decoding scheme cannot be used as it is in the generally used RF CBs.
H. Other Methods for SCMA Detection
The classical decoding algorithm for SCMA is MPA which provides ML-like performance with complexity
1) Expectation Propagation
The expectation propagation algorithm (EPA) is an approximate Bayesian inference method. EPA can be used for estimating posterior distributions with simple distributions through distribution projection [100], [101]. A low complexity iterative receiver based on EPA was proposed for uplink SCMA system in [102], [103]. With EPA, the decoding complexity reduces from exponential to linear, i.e., it is linearly proportional to the CB size
The projection of a distribution \begin{equation*} \text {Proj}_{\Phi }(p)= \mathop {\arg \min }_{ q \in \Phi } \text {KL}(p ||q),\end{equation*}
2) Deep Learning Based SCMA Detectors
Deep learning is a subclass of machine learning which has contributed to many aspects of wireless communication systems, such as channel estimation, signal detection, resource allocation, network security, etc [105], [106]. Recently, deep learning was applied for SCMA detection in which Deep Neural Networks (DNN) were trained to provide non-iterative decoding with much less complexity [19], [107]–[111]. In [110], DNN based SCMA decoder has
I. MIMO SCMA Detection
The spectral efficiency of an SCMA system can be further increased by integrating it with another key technique of the 5G wireless system, i.e., multiple-input multiple-output (MIMO). However, the detection complexity of standard MPA for the MIMO-SCMA increases exponentially with the number of antennas and accessed users. Some research works proposed MIMO-SCMA receivers to reduce the detection complexity [103], [113], [114], [116]–[120].
In [113], MPA detection based on QR decomposition was proposed for the uplink SCMA system with multiple antennas at the BS. Specifically, the number of FNs depends only on
Below are a few of the challenges of SCMA detection algorithms, along with opportunities to further improve the SCMA systems:
Complexity: SCMA may outperform other NOMA schemes, but the standard MPA decoding could be unaffordable in terms of complexity [121]. More research works are needed to further reduce the decoding complexity especially for large-sized SCMA systems.
Channel Estimation: Most of the aforementioned detection methods assume that the CSI is perfectly known; however, this assumption is not realistic. Few works studied a joint channel estimation and data decoding methods [97], [122]. The impact of CSI estimation errors to different detection methods remains largely unknown.
Synchronization: The SCMA detectors discussed above assume a perfect synchronization at the receiver. In practice, there may be performance degradation in presence of asynchronous transmission [123]. Thus, more robust detectors which can cope with synchronization errors are expected.
Adaptive SCMA: In most of the current SCMA systems, all the users are uniformly served, which may not be the optimal strategy. Practically, it is desirable that SCMA codebooks and detectors can be adapted to different users requirements. Some existing works on adaptive SCMA are proposed in [124], [125].
In addition to the above points, the SCMA detectors should also be designed for emerging wireless technologies, such as beamforming, massive number of antennas in MIMO, multi-user MIMO, reconfigurable intelligent surface (RIS), etc [126].
New Applications and Future Directions
This section presents a few promising directions for future SCMA research:
Grant Free SCMA: With the deployment of massive number of wireless devices in various vertical industries (such as factory automation, autonomous driving, smart health care, etc.), massive machine-type communication (mMTC) has been attracting tremendous research attention over the past years. With mMTC, one aims to achieve both massive connectivity and low latency. Legacy communication systems are highly inefficient due to the significant signaling overhead and long handshaking latency imposed by the grant based scheduling [127]. Grant-free access has been extensively studied to make a difference where the active users contend the shared resources by directly transmitting to the BS. For grant-free SCMA, the following two problems are worth a more profound investigation: active user identification and collision resolution.
In most of the works on SCMA, it is assumed that the channel state information (CSI) is known, and all the users transmit data simultaneously. However, this requires the BS to identify the active users before decoding. An efficient way for active user detection and channel estimation is to formulate the two problems jointly as a sparse signal recovery problem and then attack it by the compressed sensing theory.
A receiver that performs joint channel estimation, data decoding, and the detection of active users based on EP message passing was proposed in [122], [128], [129]. Also, a blind detection and compressive sensing based receiver was proposed in [130] for performing the joint activity and data detection. Grant-free SCMA allows users to transmit data in the preconfigured resources, which is called contention transmission unit (CTU), i.e., a combination of time, frequency, CB, and pilot. In [131], an acknowledgment feedback based user-to-CTU mapping was proposed for grant-free SCMA to decrease the collision probability.
SCMA for High Mobility Communications: With the rapid evolution in autonomous driving, the prevalent vision is that connected autonomous vehicles will be seen everywhere in the next decade [132]. Challenges may arise when a vehicle moves at a very high speed (e.g., 500 km/h or higher) and exchanges information with its surrounding vehicle or infrastructure using SCMA. In this case, innovative solutions are needed to maintain an excellent reception quality. One direction is to study the integration of SCMA with orthogonal-time-frequency-space (OTFS). OTFS is a 2D-modulation technique with the allocation of symbols on the delay-Doppler domain that shows superior performance in high mobility scenarios. It is expected that the OTFS-SCMA system will provide massive connectivity in the high-speed vehicle-to-everything (V2X) scenario. In [133], a multi-user OTFS system based on SCMA was proposed, and receivers were designed for both uplink and downlink systems.
SCMA for Visible Light Communications: Demands for data-intensive applications in future wireless applications have driven visible light communications (VLC) as a promising candidate to provide high-speed and secure indoor/outdoor wireless access across unlicensed spectrum [134]–[136]. SCMA has been employed to enhance the bandwidth efficiency in VLC systems. The VLC systems have the requirement of real and positive signal transmission. In [137]–[139], radio-frequency (RF) based multi-dimensional CBs have been used and made suitable changes so that they can be applied to the VLC system. The SCMA CBs have been designed specifically for VLC systems in [140]–[143].
SCMA with Reconfigurable Intelligent Surface: RISs have received significant attention from both academia and industry as it can smartly reconfigure the wireless propagation environment [144]. RIS improves the coverage performance of the wireless system by reflecting the incident signals after adjusting their phases and/or amplitudes in the desired direction [145]. The integration of RIS and SCMA was investigated in [146], [147] where RIS phase shifts are optimized, and a low-complexity decoder was designed to improve the system performance.
Conclusion
This paper has provided a systematic self-contained tutorial for SCMA, a disruptive code-domain NOMA scheme for enabling massive connectivity. SCMA uses carefully designed sparse CBs for significant constellation shaping gain and anti-interference capability compared to previously proposed code-domain NOMA techniques. Compared to the complex MAP decoding, iterative MPA gives rise to efficient MPA decoding with significantly reduced complexity. Thus, SCMA represents a promising solution for providing better quality of service to users (with the overloading factor greater than one), low latency and high spectral efficiency. It is anticipated that this paper will provide a quick and comprehensive understanding of SCMA to motivate more researchers/engineers toward this research topic.