Keywords

1 Introduction

With the development of the Internet of things and mobile communication system, the demand for larger capacity, higher transmission rate, ultra-high-density throughput and large-scale application scenarios has also increased dramatically [1]. The research of the fifth-generation (5G) mobile communication technology has become an inevitable trend [2]. The development trend of 5G technology includes continuous wide area coverage, low delay and high reliability, hot spot and high capacity coverage, low power consumption and large connection [3, 4]. Therefore, 5G can solve many problems of network demand of mobile devices at this stage. Sparse code multiple access (SCMA) is a non-orthogonal multiplexing technology proposed by Huawei in 2014. It is one of the key technologies of 5G. SCMA is evolved from low-density spread spectrum multiple access (LDS-MA) [5], which has good flexibility and strain capacity, and can obtain additional SNR gain.

The SCMA system integrates quadrature amplitude modulation (QAM) and sparse spread spectrum [6], which can directly map binary data stream to multi-dimensional code word in complex domain, so it can solve the overload caused by large-scale connection [7]. The sender of SCMA system uses message passing algorithm (MPA) to detect multiple users. Multiple data layers from users are orthogonally superposed in the same time-frequency resource block for transmission [8]. The receiver separates multiple data layers of the same time-frequency resource block through the MPA decoder. In reference [9], a message delivery algorithm based on logarithmic domain is proposed. In reference [10], an uplink scheme SCMA system based on serial message passing algorithm (S-MPA) is proposed. In reference [11], an improved maximum logarithm message passing algorithm (Max-log-MPA) multiuser detection algorithm is proposed. Compared with the original MPA algorithm, the above algorithm has improved the bit error ratio, but the SCMA system still has a high bit error ratio.

In order to solve the problem of user data loss caused by logarithm operation in Max-log-MPA algorithm and part of information loss caused by the combination of user node message update and resource node update in S-MPA, a maximum logarithm message passing algorithm based on serial (S-Max-log-MPA) is proposed in the paper. The algorithm transforms the exponential (EXP) operation in the original MPA into the multiplication operation and the maximum operation in the log domain and then integrates the user node message update into the resource node message update. During the iterative update process, the information of user node is updated and transferred to the next node immediately, and then the information of resource node is updated immediately. In this way, this can reduce the storage of intermediate variables in the transmission process and also reduce the loss of user information, so improve the bit error ratio (BER) performance of the system.

2 SCMA System

In the SCMA uplink system, assuming that J user information shares K (J > K) time-frequency resource blocks, the system overload rate is: λ = J/K, and the communication model is shown in Fig. 1. After source coding and channel coding, user information \(u_{j} \left( {u_{1} ,u_{2} , \ldots ,u_{J} } \right)\) obtains binary bit data stream \(b_{j} \left( {b_{1} ,b_{2} , \ldots ,b_{J} } \right)\), which is then mapped to n-dimensional codeword x = f (bj) in codebook by SCMA encoder. Because of the sparsity of SCMA, the mapping process of SCMA can be defined as: \(f:B^{{\log_{2} M}} \to \chi\), where M is the codebook size, B is the set of binary numbers, and \(\chi\) is the user codebook.

Fig. 1
figure 1

Uplink SCMA communication system model

If \(y_{j} = \left[ {y_{1} ,y_{2} , \ldots ,y_{K} } \right]^{\text{T}}\) is the signal received on K resource blocks, then

$$y = \sum\limits_{j = 1}^{J} {{\text{diag}}\left( {h_{j} } \right)x_{j} + n}$$
(1)

Because the channels of each layer of the upper link are different, the channel factor is \(h_{j} \left( {h_{1} ,h_{2} , \ldots ,h_{J} } \right)\), \(x_{j} = \left[ {x_{1,j} ,x_{2,j} , \ldots ,x_{K,j} } \right]^{\text{T}}\) represents the k-dimension SCMA codeword of the j-th user, and \(n_{j} = \left[ {n_{1} ,n_{2} , \ldots ,n_{K} } \right]^{\text{T}}\) is the white Gaussian noise vector added to the channel with distribution N(0, σ2I).

Assuming that six users share four time-frequency resource blocks, the system overload rate is 150%. The user information is mapped to the codewords on the SCMA codebook. Each user has a unique codebook, as shown in Fig. 2.

Fig. 2
figure 2

SCMA coding principle

3 S-MPA Algorithm

S-MPA algorithm is based on the original MPA algorithm, which uses the serial resource node update, and integrates the user node message update with the resource node message update in each iteration. The updated information can be delivered in time, which reduces the storage space of intermediate variables and improves the convergence speed of messages. The updating process of S-MPA algorithm can be divided into three steps.

Step 1: initialize the conditional probability of the S-MPA algorithm.

$$I_{{c_{k} \to u_{j} }}^{0} \left( {x_{j} } \right) = \frac{1}{M},j = 1,2, \ldots ,J$$
(2)

where ck represents the function node, and \(I_{{c_{k} \to u_{j} }}^{0} \left( {x_{j} } \right)\) represents the information of variable node uj sent by function node ck during the initial iteration.

The probability \(Q^{t} \left( {x_{j} } \right)\) (t = 1, 2, 3, …, tmax) of codeword combination on time-frequency resource block K is:

$$Q^{t} \left( {x_{j} } \right) = \exp \left( { - \frac{1}{{N_{0,k} }}\left\| {y_{k} - \sum\limits_{{v \in \xi_{k} }} {h_{k,v} x_{k,v} } } \right\|^{2} } \right)$$
(3)

where \(v \ne j\), \(v \in \xi_{k}\), \(j \in \xi_{k}\), \(y_{k} \left( {k = 1, 2, 3, \ldots ,K} \right)\) represents the received signal, N0, k represents the noise power on the time-frequency resource block K, \(\xi_{k}\) represents the set of users allocated on the time-frequency resource block, \(h_{k,v}\) represents the channel coefficient of the v-th user on the k-th resource block, and \(x_{k,v}\) represents the codeword of the v-th user on the k-th resource block.

Step 2: the S-MPA algorithm first updates the resource nodes.

$$I_{{c_{k} \to u_{j} }}^{t} \left( {x_{j} } \right) = \sum\limits_{{ \sim x_{j} }} {\left[ {Q^{t} \left( {x_{j} } \right) \times \prod\limits_{{m \in {{\xi_{k} } \mathord{\left/ {\vphantom {{\xi_{k} } j}} \right. \kern-0pt} j}}} {I_{{c_{m} \to u_{k} }}^{t} \left( {x_{j} } \right)} \times \prod\limits_{{m \in {{\xi_{k} } \mathord{\left/ {\vphantom {{\xi_{k} } j}} \right. \kern-0pt} j}}} {I_{{c_{m} \to u_{k} }}^{t - 1} \left( {x_{j} } \right)} } \right]}$$
(4)

Among them, \(\sim x_{j}\) represents the edge probability of symbol xj, and \({{\xi_{k} } \mathord{\left/ {\vphantom {{\xi_{k} } j}} \right. \kern-0pt} j}\) represents the set of all variable nodes except the j-th user connected with function node ck.

Then, update the user variable node.

$$I_{{c_{k} \to u_{j} }}^{t} \left( {x_{j} } \right) = {\text{normalize}}\left[ {ap_{v} \left( {x_{j} } \right) \times \prod\limits_{{m \in {{\xi_{k} } \mathord{\left/ {\vphantom {{\xi_{k} } j}} \right. \kern-0pt} j}}} {I_{{c_{m} \to u_{k} }}^{t - 1} \left( {x_{j} } \right)} } \right]$$
(5)

Among them, \(ap_{v} \left( {x_{j} } \right)\) represents the prior probability of user J code word, and \({\text{normalize}}\left( {x_{j} } \right)\) represents normalization processing.

Step 3: decision processing of S-MPA algorithm.

First, the probability of codeword \(x_{j,m}\) transmitted by user variable node j is estimated, \(m = 1,2, \ldots M\).

$$Q\left( {x_{j,m} } \right) = ap_{v} \left( {x_{j,m} } \right) \times \prod\limits_{{m \in {{\xi_{k} } \mathord{\left/ {\vphantom {{\xi_{k} } j}} \right. \kern-0pt} j}}} {I_{{c_{m} \to u_{k} }} \left( {x_{j} } \right)}$$
(6)

where \(Q\left( {x_{j,m} } \right)\) represents the probability of codeword; \(x_{j,m}\) transmitted by user variable node j.

Then, the log likelihood ratio (LLR) of each coding bit is calculated to determine the user:

$${\text{LLR}}_{j,x} = \log \left[ {\frac{{P\left( {b_{i} = 0} \right)}}{{P\left( {b_{i} = 1} \right)}}} \right] = \log \left[ {\frac{{\sum\nolimits_{{m:b_{m,i} = 0}} {Q\left( {x_{j,m} } \right)} }}{{\sum\nolimits_{{m:b_{m,i} = 1}} {Q\left( {x_{j,m} } \right)} }}} \right]$$
(7)

where \(P\left( {b_{i} = 0} \right)\) represents the probability of the variable node to be decoded, and \(P\left( {b_{i} = 1} \right)\) represents the probability of the variable node to be decoded.

4 S-Max-Log-MPA Algorithm

Because of the large amount of operation of exponential operation (EXP) and the large space occupied in the process of message iterative updating, and the node message updating and resource node message updating are carried out respectively, the performance of multi-user checking algorithm is high. The Max-log-MPA algorithm will make part of the information lost, which leads to the poor bit error ratio performance. In this paper, the S-Max-log-MPA algorithm is based on the idea of adding the S-MPA algorithm to the max log MPA algorithm. Firstly, using the MPA algorithm of sum product operation [12], the index operation of the original MPA algorithm is reduced to the maximum value and addition operation, which greatly reduces the space occupied by the operation. In addition, the node message update and the resource node message update are combined. In each iteration, the updated message is immediately delivered to the next node, and the latter node immediately updates the resource node’s message, which can reduce the loss of user information and the space occupied by intermediate variables. Therefore, the S-Max-log-MPA algorithm can effectively reduce the bit error ratio of the detection algorithm.

Step (4) of the message update process of S-Max-log-MPA algorithm can be modified as follows:

$$\begin{aligned} I_{{c_{k} \to u_{j} }}^{t} \left( {x_{j} } \right) & = 2 \times \frac{1}{{\sqrt {2\pi } \delta }} \times \mathop {\hbox{max} }\limits_{{ \sim x_{j} }} \left\{ { - \frac{1}{{2\delta^{2} }}\left\| {y_{k} - \sum\limits_{{v \in \xi_{k} }} {h_{k,v} x_{k,v} } } \right\|^{2} } \right. \\ & \quad + \left. {\prod\limits_{{m \in {{\xi_{k} } \mathord{\left/ {\vphantom {{\xi_{k} } j}} \right. \kern-0pt} j}}} {I_{{c_{m} \to u_{k} }}^{t} \left( {x_{j} } \right)} + \prod\limits_{{m \in {{\xi_{k} } \mathord{\left/ {\vphantom {{\xi_{k} } j}} \right. \kern-0pt} j}}} {I_{{c_{m} \to u_{k} }}^{t - 1} \left( {x_{j} } \right)} } \right\} \\ \end{aligned}$$
(8)

5 Analysis of BER Performance

The BER performance of the system is an important index to measure the accuracy of message transmission in communication system. Max-log-MPA algorithm uses sum product operation, which reduces the index operation of the original MPA algorithm to the maximum value and addition operation. But it will cause some information loss and poor performance of system bit error ratio. Because the S-MPA algorithm does not judge the stability of user information, some user information is wrongly transmitted. In this algorithm, the index operation is reduced to the maximum value and the addition operation, and then the user node information update is integrated into the resource node information update, which can reduce the loss of user information and improve the accuracy of user information transmission.

6 Analysis of Simulation Results

The simulation parameters are as follows: The number of multiple users is 6, the time-frequency resource block is 4, the nonzero element is 1000, the overload factor is 150%, the channel is the Gaussian white noise (AWGN) channel, and the codebook is the four-dimensional codebook published by Huawei [13].

Figure 3 shows the average EBR performance comparison between the S-Max-log-MPA algorithm and the Max-log-MPA algorithm with the increase of SNR when the maximum number of iterations is tmax = 3. It can be seen from Fig. 3 that the average BER of S-Max-log-MPA algorithm is better than that of Max-log-MPA algorithm, When Eb/No = 0 dB, BER performance of S-Max-log-MPA algorithm is slightly higher than that of Max-log-MPA algorithm by 6.03%. When Eb/No = 14 dB, BER performance of S-Max-log-MPA algorithm is slightly higher than that of Max-log-MPA algorithm by 0.967%.

Fig. 3
figure 3

Comparison of average BER performance of two algorithms when tmax = 3

Figure 4 shows the comparison of the average EBR performance of S-Max-log-MPA algorithm and Max-log-MPA algorithm with the increase of SNR when the maximum number of iterations is tmax = 5. According to the comparison between Figs. 4 and 3, as the number of iterations increases, the closer the average bit error rate of the two algorithms is, the better. But in general, the average bit error rate of S-Max-log-MPA algorithm is still better than that of Max-log-MPA algorithm. When Eb/No = 0 dB, BER performance of S-Max-log-MPA algorithm is slightly higher than that of Max-log-MPA algorithm by 5.56%. When Eb/No = 14 dB, BER performance of S-Max-log-MPA algorithm is slightly higher than that of Max-log-MPA algorithm by 0.683%.

Fig. 4
figure 4

Comparison of average BER performance of two algorithms when tmax = 5

7 Conclusion

The S-Max-log-MPA algorithm in this paper is based on the idea of adding the S-MPA algorithm to the Max-log-MPA algorithm. It combines the advantages of the two algorithms and can effectively solve the problem of high bit error ratio caused by information loss caused by Max-log-MPA algorithm and S-MPA algorithm. From the simulation results, we can see that with the increase of the number of iterations, the BER performance of this algorithm is better.