# Precoded Generalized Spatial Modulation for Downlink MIMO Transmissions in Beyond 5G Networks
## 3 Transmitter and Receiver Structure
### Receiver Design
\begin{table}
\begin{tabular}{l l} \hline \hline
1: & **Input**\(\mathbf{u}^{0}\), \(\mathbf{w}^{0}\), \(\mathbf{x}^{0}\), \(\mathbf{z}^{0}\), \(\hat{\mathbf{H}}_{k}\), \(\mathbf{y}_{k}\), \(\rho_{x}\), \(\rho_{z}\), \(Q\) \\
2: & \(f_{\text{best}}=\infty\). \\
3: & \(\Phi\leftarrow\left(\hat{\mathbf{H}}_{k}{}^{H}\hat{\mathbf{H}}_{k}+(\rho_{x}+ \rho_{z})\mathbf{I}_{N_{s}}\right)^{-1}\). \\
4: & **for**\(t=0\), \(1\), \(\ldots\), \(Q\)-\(1\) **do** \\
5: & \(\mathbf{s}_{k}{}^{\left(t+1\right)}\leftarrow\Phi\left(\hat{\mathbf{H}}_{k}{}^ {H}\mathbf{y}_{k}+\rho_{x}(\mathbf{x}^{\left(t\right)}-\mathbf{u}^{\left(t \right)})+\rho_{z}(\mathbf{z}^{\left(t\right)}-\mathbf{w}^{\left(t\right)})\right)\). \\
6: & \(\mathbf{x}^{\left(t+1\right)}\leftarrow\prod_{D}\left(\mathbf{s}_{k}{}^{ \left(t+1\right)}\right)\). \\
7: & \(\mathbf{z}^{\left(t+1\right)}\leftarrow\prod_{\mathcal{A}_{0}{}^{N_{0}}} \left(\mathbf{s}_{k}{}^{\left(t+1\right)}+\mathbf{w}^{\left(t\right)}\right)\). \\
8: & \(l\leftarrow\text{supp}\left(\mathbf{x}^{\left(t+1\right)}\right)\). \\
9: & \(\mathbf{\hat{s}}_{l}^{\text{\emph{candidate}}}\gets 0\), \(\mathbf{\hat{s}}_{l}^{\text{\emph{candidate}}}\leftarrow\prod_{\mathcal{A}_{0}{}^ {N_{0}}}\left(\mathbf{s}_{l}{}^{\text{\emph{($t+1$)}}}\right)\) \\
10: & **if**\(f(\mathbf{s}^{\text{\emph{candidate}}})<f_{\text{best}}\) **then** \\
11: & \(\mathbf{\hat{s}}_{k,\overline{l}}\gets 0\), \(\mathbf{\hat{s}}_{k,l}\leftarrow\mathbf{\hat{s}}_{l}{}^{\text{\emph{candidate}}}\). \\
12: & \(f_{\text{best}}=f(\mathbf{s}^{\text{\emph{candidate}}})\). \\
13: & **end if** \\
14: & \(\mathbf{u}^{\left(t+1\right)}\leftarrow\mathbf{u}^{\left(t\right)}+\mathbf{s}_{ k}{}^{\left(t+1\right)}-\mathbf{x}^{\left(t+1\right)}\). \\
15: & \(\mathbf{w}^{\left(t+1\right)}\leftarrow\mathbf{w}^{\left(t\right)}+\mathbf{s}_{ k}{}^{\left(t+1\right)}-\mathbf{u}^{\left(t+1\right)}\). \\
16: & **end for**. \\
17: & **Output:**\(\mathbf{\hat{s}}_{k}\) \\ \hline \hline \end{tabular}
\end{table} 
Table 2: Iterative GSM detection algorithm for each user \(k\). magnitude elements whose indices also match a valid antenna combination, whereas \(\prod_{\mathcal{A}_{0}N_{x}}{(. )}\) can be computed as simple rounding of each component to the closest element in \(\mathcal{A}_{0}\). Although heuristic-based approaches as the one adopted in the proposed GSM detector can reach a solution faster, it may not be the optimal one. Therefore, it is not guaranteed that the algorithm will converge to the optimal solution of the original MLD problem (which is nonconvex). To increase the chances of finding an optimal solution and to improve the performance of the GSM detector, we present several different strategies. The first method is the simplest and consists of restarting the algorithm multiple times by using different initializations [32] for the variables \(\mathbf{u}^{0}\), \(\mathbf{w}^{0}\), \(\mathbf{x}^{u(0)}\), \(\mathbf{z}^{0}\) required by the algorithm. Another improvement strategy that we propose relies on checking at the end of the algorithm if any of the P neighboring candidates result in an improvement of \(f(\hat{\mathbf{s}}^{candidate})\). These P neighbors can be selected amongst those with the closest supports using the algorithm presented in Table 3. A last possible refinement method that we consider consists of re-solving the MLD problem with the support set fixed according to the candidate point \(\hat{\mathbf{s}}_{k}\) generated by the main algorithm. In this case, the resulting formulation becomes a conventional MIMO detection problem which can also be approximated by a simple projected MMSE estimate, i.e., as  
\[\hat{\mathbf{s}}_{l}{}^{candidate}=\prod_{\mathcal{A}^{\text{TNa}}}\Bigl{(} \Bigl{(}\hat{\mathbf{H}}_{k,l}{}^{H}\hat{\mathbf{H}}_{k,l}+2\sigma^{2}\mathbf{ I}_{N_{a}}\Bigr{)}^{-1}\hat{\mathbf{H}}_{k,l}\mathbf{y}_{k}\Bigr{)}. \tag{11}\]  
We refer to this third approach as the MMSE polishing step.