## 3 Receiver
### OSIC-MMSE Sorted Detection  
The detection process consists of two stages. Firstly, the channel matrix \(\mathcal{G}\) undergoes a sorted QR decomposition. Then, utilizing this decomposition, the proposed OSIC-MMSE detector with low computational complexity is executed. To enhance the detection process based on the minimum mean square error (MMSE) criterion, QR decomposition is performed on the extended channel matrix \(\underline{\mathcal{G}}\). This extended channel matrix is defined as follows:  
\[\underline{\mathcal{G}}=\left[ \begin{array}{c}\mathbf{P}\mathcal{G}\\ \sigma_{\text{w}}\mathbf{1}\end{array} \right]=\underline{\mathbf{Q}}\, \underline{\mathbf{R}}=\left[ \begin{array}{c}\mathbf{Q}_{1}\\ \mathbf{Q}_{2}\end{array} \right]\underline{\mathbf{R}}=\left[ \begin{array}{c }\mathbf{Q}_{1}\mathbf{R}\\ \mathbf{Q}_{2}\mathbf{R}\end{array} \right]. \tag{27}\]In the context of this article, we consider a matrix \(\mathbf{Q}\) of dimensions \((N_{t}+N_{r})N_{d}\times N_{t}N_{d}\) consisting of orthonormal columns. This matrix is partitioned into two submatrices: \(\mathbf{Q}_{1}\), with dimensions \(N_{r}N_{d}\times N_{t}N_{d}\), and \(\mathbf{Q}_{2}\), with dimensions \(N_{r}N_{d}\times N_{t}N_{d}\). Additionally, we have a superior triangular matrix denoted as \(\mathbf{R}\) and a permutation matrix \(\mathbf{P}\) that reorders the columns based on the signal-to-interference ratio. To achieve this decomposition, we employ the method based on Givens unit rotations, as described in [25]. During the orthonormalization process for determining the \(\mathbf{Q}\) matrix, column permutations are performed to ensure that the resulting rows in the \(\underline{\mathbf{R}}\) matrix are ordered according to their signal-to-interference ratios. Utilizing unit rotations in the QR decomposition preserves the original energy of all elements in the initial \(\mathcal{G}\) matrix, allowing for a dynamic range of variables used in the process. This characteristic facilitates the implementation of this method in real-time devices using fixed-point arithmetic. In this article, we modify the algorithm proposed in [28] (see Algorithm 2) to incorporate the ordered successive interference cancellation (OSIC) process for detecting the IM scheme. Once the preprocessing of the received signal and the QR decomposition of the estimated channel matrix are completed, the subsequent step involves data detection. ```
Input:\(\mathcal{\tilde{U}}\), \(\mathbf{R}\), \(N_{B}\), \(N_{C}\), \(\Omega_{IM}\), \(\mathbf{P}\) Output:\(\mathbf{\hat{s}}\) for\(k=N_{B}-1:-1:0\)do \(ind=N_{p}N_{B}\);  Select the \(k\)-th submatrix \(\mathbf{R}_{B}\) from \(\mathbf{R}\);  Select the \(k\)-th subblock \(\mathcal{\tilde{U}}_{\mathcal{G}}\) from \(\mathcal{\tilde{U}}\);  Calculate the metric \(d_{B}^{2}=\left\|\mathcal{\tilde{U}}_{\mathcal{G}}-\mathbf{R}_{B}\mathcal{ \tilde{S}}_{\mathcal{B}}\right\|^{2}\), for all possible values of \(\mathcal{S}\in\mathbf{\Omega}_{IM}\);  Find the minimum value \(d_{B}^{2}\) with its corresponding position in matrix \(\mathbf{\Omega}_{IM}\),  and store the values in \(d_{B}\) and \(\mathbf{index}(k)\); \(\mathbf{\hat{s}}_{\mathcal{B}}=\mathbf{\Omega}_{IM}(\mathbf{index}(k))\); \(\mathcal{\tilde{U}}=\mathcal{\tilde{U}}-\mathbf{R}(:,ind-N_{C}+1:ind)\mathbf{ \hat{s}}_{\mathcal{B}}\);  end for  Permutate \(\mathbf{\hat{s}}\) according \(\mathbf{index}\); return\(\mathbf{\hat{s}}\)
```  
**Algorithm 2**Proposed OSIC algorithm. The OSIC algorithm, known for its effectiveness in cancelling inter-carrier interference (ICI), is suitable for our proposed model described in Equation (25). When combined with the aforementioned QR decomposition, it allows for suboptimal data detection with significantly reduced computational complexity.