# Efficient Massive MIMO Detection for M-QAM Symbols
## 3 Detector Based on Iterated BOXDCD with Negative Diagonal Loading Regularization
### Combination of Box-Constrained Minimization with the DCD Algorithm  
The box-constrained DCD (BOXDCD) algorithm, shown in Algorithm 1, is used to solve a \(K_{t}\times K_{t}\) complex-valued linear system (\(\mathbf{\mathrm{y}}=\mathbf{\mathrm{\hat{R}}}\cdot\mathbf{\mathrm{s}}\)). The matrix \(\mathbf{\mathrm{\hat{R}}}\) and vectors \(\mathbf{\mathrm{y}}\), \(\mathbf{\mathrm{\chi}}\) and \(\mathbf{s}\) are complex-valued. The matrix \(\tilde{\mathbf{R}}\) and vector \(\mathbf{y}\) are known, and the solution \(\mathbf{s}\) is unknown. The residual vector \(\boldsymbol{\chi}\) is represented by \(\boldsymbol{\chi}=\mathbf{y}-\tilde{\mathbf{R}}\mathbf{s}\), where \(\mathbf{s}\) is initialized to \(\mathbf{s}_{0}\). The vector \(\boldsymbol{\chi}\) element contains both real and imaginary parts, which are processed sequentially. The variable \(f\) determines whether a component is the real part (\(f=1\)) or the imaginary part (\(f=j\)). To apply the BOXDCD algorithm to solve a linear complex-valued system \(\mathbf{y}=\tilde{\mathbf{R}}\mathbf{s}\), we can reformulate it to an equivalent real-valued system by the following rule:  
\(\tilde{\mathbf{y}}=[\Re\{\mathbf{y}\},\Im\{\mathbf{y}\}]^{T}\in\mathbb{R}^{2K_ {t}}\), \(\tilde{\mathbf{s}}=[\Re\{\mathbf{s}\},\Im\{\mathbf{s}\}]^{T}\in\mathbb{R}^{2K _{t}}\) and \(\tilde{\mathbf{R}}=\left( \begin{array}{cc}\Re\{\tilde{\mathbf{R}}\}&-\Im\{ \tilde{\mathbf{R}}\}\\ \Im\{\tilde{\mathbf{R}}\}&\Re\{\tilde{\mathbf{R}}\}\end{array} \right)\in \mathbb{R}^{2K_{t}\times 2K_{t}}\). ```
Step Operation Input:\(M_{b},N_{u},\mathbf{s}_{0},\mathbf{y},\tilde{\mathbf{R}}\) Output:\(\mathbf{s},\boldsymbol{\chi}\) initialization \(\mathbf{s}=\mathbf{s}_{0},\boldsymbol{\chi}=\mathbf{y}-\tilde{\mathbf{R}} \mathbf{s}\), \(\lambda=\xi\), \(counter=0\), \(f=1\) for \(\delta=1,\ldots,M_{b}\) \(\lambda=\lambda/2\) \(g=0\)\(\dashrightarrow\) pass for \(n=1,\ldots,K_{t}\) ; \(\dashrightarrow\) iteration if \(f=1\), do\(\chi_{temp}=\Re(\chi_{n})\), else \(\chi_{temp}=\Im(\chi_{n})\) 1 if \(|\chi_{temp}|>(\lambda/2)\tilde{R}_{n,n}\)do \(s_{nt}=s_{n}+\text{sign}(\chi_{temp})f\lambda\) 1 if \(\Re(s_{nt})\leq\xi\) and \(\Im(s_{nt})\leq\xi\), then \(\boldsymbol{\chi}=\boldsymbol{\chi}-\text{sign}(\chi_{temp})f\lambda\tilde{ \mathbf{R}}_{\
eg t}\) \(K_{t}\) \(counter=counter+1\), \(g=1\) if \(counter=N_{u}\), algorithm exits if \(f=1\), do\(f=j\), goto step 3; else \(f=1\) if \(g=1\), goto step 2
```  
**Algorithm 1**BOXDCD algorithm (\(K_{t}\times K_{t}\) system). The BOXDCD algorithm updates the solution \(\mathbf{s}\) elements in the order \(n=1,2,\cdots,K_{t}\). The iteration \(counter\) is initialized to zero when the binary variable \(g\) is set to \(1\), which means that the current iteration is \"successful\". For \"successful\" iterations, the vectors \(\boldsymbol{\chi},s_{n}\) and index \(n\) are updated. \(M_{b}\) denotes the number of bits of \(\mathbf{s}\) within the range \([-\xi,\xi]\). The initial value of the step size \(\lambda\) is defined by the parameter \(\xi\). In each step size, the algorithm goes through all the elements of \(\mathbf{s}\) and repeats the process until \(|\chi_{temp}|\leq(\lambda/2)\tilde{R}_{n,n}\). The step size \(\lambda\) is reduced at step \(1\) and chosen as a power of two, which can be implemented as shift by bits. In each iteration, updating \(s_{n}\) at step \(4\) requires \(one\) addition and a bit shift. At step \(6\), updating \(\boldsymbol{\chi}\) requires \(K_{t}\) additions and bit-shift operations. The complexity load of the algorithm mainly depends on the number of successful update iterations. To limit the algorithm's complexity, the maximum number of successful update iterations \(N_{u}\) is established. In this paper, when the box-constrained DCD algorithm is used, we denote it as \(\text{BOXDCD}(\mathbf{s}_{0},\tilde{\mathbf{R}},\mathbf{y},N_{u},M_{b})\). The complexity of the BOXDCD algorithm for solving a system of equations varies depending on the system size, successful update iterations \(N_{u}\) and the conditioning of the channel matrix.