# Fast Scalable Architecture of a Near-ML Detector for a MIMO-QSM Receiver
## 3 Low Complexity Detection Algorithm  
In recent works, some low complexity algorithms have been presented for MIMO, SM, and QSM signal detection [10; 13; 19]. In the works presented by [14; 16], optimization algorithms and trigonometric functions were required in the receiver to detect the most likely antenna combinations. After the antenna indices were detected, a reduced ML detector was utilized to identify the transmitted symbols in the MIMO-QSM system. However, these schemes demand many hardware implementation resources. Other detection techniques for MIMO-SM-QSM were reported in [15; 19; 20]. These detectors were based on tree search and spherical detection. These algorithms had an excellent BER performance, and their detection complexity in terms of flops were relatively simple for hardware implementation in FPGA. In this section, a modified low complexity Near-ML detector for MIMO-QSM signals is presented. The proposed detector is based on a tree search and a spherical algorithm [20; 21]. The ML solution to (6) may be expressed as a tree search: each branch in this tree was assigned a distance metric where the symbols with the smallest overall distance were selected as possible optimum solutions [22] in each level of the tree. To carry out this process, an adaptive \(M\)-algorithm based on a breadth first sorted tree search was used. The proposed algorithm reduced the search complexity by storing only, at maximum, the best \(L\) branches at a time [23] in each level of the tree. Henceforth, a small \(L\) resulted in low complexity and relatively sub-optimal performance. As \(L\) increased, the complexity of the detector in terms of flops also increased, and the performance of the algorithm approached the ML solution. The decision metrics \(\mathbf{d}_{1}\) and \(d_{T}\), required in the Near-ML proposal detector for the MIMO-QSM scheme can be established as follows:  
\[\mathbf{d}_{1}=\parallel\mathbf{y}-\mathbf{h}^{(\hat{\ell}_{R})}\cdot\mathbf{ s}_{R}\parallel_{F}^{2}, \tag{7}\]  
\[d_{T}=\parallel\mathbf{y}-\mathbf{h}^{(\hat{\ell}_{R})}\cdot\mathbf{s}_{R}^{( I)}-\mathbf{h}^{(\hat{\ell}_{\Im})}\cdot\mathbf{s}_{\Im}^{(m)}\parallel_{F}^{2}. \tag{8}\]  
We denote the \(l^{\text{th}}\) and \(m^{\text{th}}\) element in the vectors \(\mathbf{s}_{\Re}\) and \(\mathbf{s}_{\Im}\) by \(\mathbf{s}_{\Re}^{(l)}\) and \(\mathbf{s}_{\Im}^{(m)}\), respectively. The goal of the decoder is to find the optimum solution to the ML criterion in (6), using the distances calculated in (7) and (8). For the case of the distance \(\mathbf{d}_{1}\), it is a vector of distances calculated for each valid combination between the \(\hat{\ell}_{\Re}^{\text{th}}\) transmitter antenna \(\mathbf{h}^{(\hat{\ell}_{\Re})}\) and each element of the vector \(\mathbf{s}_{\Re}\). The decoding procedure was split into two parts. First, a pre-ordering with \(\mathbf{s}_{\Re}\) was carried out; specifically, the distance of (7) was calculated, and symbols were re-ordered in ascending order. In this way, a set of \(N_{\Re}=q_{\Re}n_{T}\) tuples was obtained, each tuple \(\left(\hat{\ell}_{\Re}^{(l)},\hat{s}_{\Re}^{(l)}\right)\) being formed of a combination of the Tx antenna index \(\hat{\ell}_{\Re}\in\{1,\cdots,n_{T}\}\) and the Tx symbol \(\hat{s}_{\Re}^{(l)}\). This part is summarized in Algorithm 1. The second part corresponds to an optimized detector based on the detector for SM signals published in [21]. Since the first part of the Near-ML algorithm estimated the real part of the transmitted QSM symbol, \(\left(\hat{\ell}_{\Re}^{(l)},\hat{s}_{\Re}^{(l)}\right)\), the second part considered that only one Tx antenna was active, which corresponded to the imaginary part of the QSM transmitted symbol \(\left(\hat{\ell}_{\Im}^{(m)},\hat{s}_{\Im}^{(m)}\right)\).