# Novel Sparse-Coded Ambient Backscatter Communication for Massive IoT Connectivity
## 3 Sparse-Coded Load Modulation
(**a**) \(K_{1}=2,M=4\); (**b**) \(K_{1}=2,M=8\); (**c**) \(K_{1}=3,M=16\). terms of \(n_{1}\) and \(n_{2}\), should be modified in terms of \(n_{1},n_{2},\cdots,n_{K_{1}}\). In addition, information projection and expansion in MPA, as summarized in Table 1, should be extended to higher-order modulation by increasing the range of the indicator parameter as \(\Lambda(\widetilde{k},n)\in\{1,\cdots,K_{1}\}\). It is noted that \(K_{1}=2\) is a common assumption in sparse coding for low-complexity modulation and detection [32; 33; 34; 35; 39])  
```
1:input the number of time slots \(K\) and the modulation order \(M\)
2:obtain the symbol mapping \(\mathbf{b}^{\star}(m)=\psi_{M}(\mathbf{d}^{\star}(m)),\quad m\in\{1,\cdots,M\}\) from (11)
3:for\(m\in\{1,\cdots,M\}\)do
4:initialize\(n=1\)
5:for\(n_{1}=1:K-1\)do
6:for\(n_{2}=1:K-n_{1}\)do
7:for\(k=1:K\)do
8:if\(k=n_{1}\)then
9:\(\widetilde{b}_{k,n}(m)=b_{1}^{\star}(m),\quad\widetilde{g}_{k,n}=1\)\(\triangleright\) first non-zero element
10:elseif\(k=n_{1}+n_{2}\)then
11:\(\widetilde{b}_{k,n}(m)=b_{2}^{\star}(m),\quad\widetilde{g}_{k,n}=1\)\(\triangleright\) second non-zero element
12:else
13:\(\widetilde{b}_{k,n}(m)=0,\quad\widetilde{g}_{k,n}=0\)\(\triangleright\) zero element
14:endif
15:endfor
16:\(n\gets n+1\)
17:endfor
18:endfor
19:endfor
20:obtain \(\widetilde{\mathbf{G}}=\{\widetilde{g}_{k,n}\}\), \(\mathbf{B}(m)=\{\widetilde{b}_{k,n}(m)\}\)\(\triangleright\) one-way factor graph, codebook
21:generate \(\widetilde{\mathbf{G}}^{+}=\widetilde{\mathbf{G}}\otimes\mathbf{1}_{L}\), \(\mathbf{B}^{+}(m)=\mathbf{B}(m)\otimes\mathbf{1}_{L}\)
22:generate \(\widetilde{\mathbf{G}}^{-}=[(\mathbf{I}_{K}^{+}+(\mathbf{I}_{K}^{-})^{K-1}) \widetilde{\mathbf{G}}]\otimes[\mathbf{1}_{L}^{T}\,\mathbf{0}_{L-\bar{L}}^{T} ]^{T}\), \(\mathbf{B}^{-}(m)=[(\mathbf{I}_{K}^{+}+(\mathbf{I}_{K}^{-})^{K-1})\mathbf{B} (m)]\otimes[\mathbf{1}_{L}^{T}\,\mathbf{0}_{L-\bar{L}}^{T}]^{T}\)
23:output the codebooks \(\{\mathbf{B}^{+}(m),\mathbf{B}^{-}(m)\}_{m\in\{1,\cdots,M\}}\) and the factor graphs \(\widetilde{\mathbf{G}}^{+},\widetilde{\mathbf{G}}^{-}\)
```  
**Algorithm 1** Sparse-coded backscatter modulation algorithm (SC-BMA)  
\begin{table}
\begin{tabular}{c c c} \hline \hline \(M\) & \(\Lambda(\widetilde{k},n)\) & **Projected Information from VN \(n\)** to FN \(\widetilde{k}\) \\ \hline \multirow{3}{*}{4} & 1 & \(\mathrm{I}_{n\rightarrow\widetilde{k}}(1)=\mathrm{I}_{n\rightarrow\widetilde{k}}( 1),\quad\mathrm{I}_{n\rightarrow\widetilde{k}}(2)=\mathrm{\widetilde{n}ax} \left(\mathrm{I}_{n\rightarrow\  
Note that, in AmBC, to conserve energy as well as increase SNR for RF tags, \(K\)-length codewords are spanned on \(L\) samples, generating \(\widetilde{K}=KL\)-length codewords. In addition, ambient backscatter signal experiences DBC in contrast to the one-way Rayleigh channel in conventional sparse coding. Based on these observations, we introduce dyadic factor graph extending one-way factor graph \(\widetilde{\mathbf{G}}\) as shown in Figure 6. The dyadic (two-way) factor graph has two kinds of nodes, namely, variable node (VN) representing codeword of tag \(n\in\{1,\cdots,N\}\) and function node (FN) representing received signal at sample \(\widetilde{k}\in\{1,\cdots,\widetilde{K}\}\). Due to ISI among backscatter signals, the dyadic factor graph is composed of the forward factor graph \(\widetilde{\mathbf{G}}^{+}=\{\widetilde{g}^{+}_{\widetilde{k},n}\}\in\mathcal{ B}^{\widetilde{K}\times N}\) and the backward factor graph \(\widetilde{\mathbf{G}}^{-}=\{\widetilde{g}^{-}_{\widetilde{k},n}\}\in\mathcal{ B}^{\widetilde{K}\times N}\) representing interference symbols. Here, we use the superscript \(\{\cdot\}^{-}\) to represent the signals related to ISI and the superscript \(\{\cdot\}^{+}\) vice versa. The backward factor graph has \(K\widetilde{L}\) non-zero rows which are circular-shifted from the forward factor graph, and sparse matrix under the condition \(\widetilde{L}<L\), stating that symbols are only interfered by neighboring symbols [23].