## 4 Low Complexity Non-Linear Detection
### Two Approaches for Non-Linear Data Detection
#### 4.2.2 Near ML Detection
Exploiting the \(\mathbf{\mathbf{R}}\) matrix structure, the estimation of the last level \([\mathbf{\chi}]_{N_{D}}\) does not depend on the symbols \([\mathbf{\chi}]_{j}\), for \(1\leq j\leq N_{D}-1\). An exhaustive search is done of \([\mathbf{\chi}]_{N_{D}}\), the distances are calculated using Equation (47) for the \(N_{c}\) constellation points, such that \([\mathbf{\chi}]_{N_{D}}^{(\mathbf{\beta})}\in\Omega\) for \(1\leq\beta\leq N_{c}\). It is defined \(\mathbf{d}(\beta)=\mathbf{d}([\mathbf{\chi}]_{N_{D}}^{(\mathbf{\beta})})=\Big{\|}[\bm {\hat{v}}]_{N_{D}}-[\mathbf{R}]_{N_{D},N_{D}}[\mathbf{\chi}]_{N_{D}}^{\beta}\Big{\|} ^{2}\). The vector elements \(\mathbf{d}(\beta)\) are arranged in ascending order and stored in the vector \(\mathbf{dist}=\Big{\{}[\mathbf{d}]_{1}\leq\beta\leq N_{c}\). \([\mathbf{d}]_{2}\leq\cdots[\mathbf{d}]_{N_{C}}\Big{\}}\), where the smallest subindex corresponds to the least vector distance \(\mathbf{d}(\beta)\), which corresponds to the ordered set of symbols \(\mathbf{pos}=\Big{\{}\boldsymbol{\chi}_{N_{D}}^{(1)}\quad\boldsymbol{\chi}_{N_ {D}}^{(2)}\quad\cdots\quad\boldsymbol{\chi}_{N_{D}}^{(N_{C})}\Big{\}}\) in \(\mathbf{d}(\beta)\) terms. The smallest super index in \(\boldsymbol{\chi}_{N_{D}}^{(\beta)}\) indicates the constellation symbol \(\Omega\) with the least distance in \(\mathbf{d}(\beta)\). The symbol search process is continued \(\big{\{}\boldsymbol{\hat{\chi}}_{1},\cdots,\boldsymbol{\hat{\chi}}_{N_{D}-1} \big{\}}\) using the QRD-M algorithm described previously assuming that \([\boldsymbol{\chi}]_{N_{D}}=\boldsymbol{\chi}_{N_{D}}^{(1)}\). The search result is stored in the vector \(\boldsymbol{\hat{\chi}}^{(1)}=\big{\{}\boldsymbol{\chi}_{1}^{(1)},\cdots, \boldsymbol{\chi}_{N_{D}}^{(1)}\big{\}}\), with a distance calculated using Equation (44), \(d^{(1)}=\sum_{j=1}^{N_{D}}\left\|[\hat{\mathbf{v}}]_{j}-\sum_{i=j}^{N_{D}}[ \mathbf{R}]_{j,i}[\boldsymbol{\hat{\chi}}^{(1)}]_{i}\right\|^{2}\), where the super indexes of \(d^{(1)}\) and \(\boldsymbol{\hat{\chi}}^{(1)}\) correspond to the assumption \([\boldsymbol{\chi}]_{N_{D}}=\boldsymbol{\chi}_{N_{D}}^{(1)}\). A new search is run in the tree and \([\boldsymbol{\chi}]_{N_{D}}=\boldsymbol{\chi}_{N_{D}}^{(2)}\) is established only if it meets the following condition: \([\mathbf{d}]_{2}<d^{(1)}\) (the first phase demonstrates that \(d^{(\beta^{*})}=d^{(1)}\)). In case it is not met the significant condition that this search has an initial distance greater than \(d^{(\beta^{*})}\). The complexity of the optimal vector search for \(\boldsymbol{\hat{\chi}}\) in the tree can be reduced further by calculating the partial distance metric to the \(n\)-th level defined in Equation (47) \(d_{n}^{(\beta)}=\Big{\{}\sum_{j=n}^{N_{D}}\left\|[\hat{\mathbf{v}}]_{j}-\sum_ {i=j}^{N_{D}}[\mathbf{R}]_{j,i}[\boldsymbol{\chi}]_{i}\right\|^{2}\Big{\}}\). Additionally, if \(d_{n}^{(\beta)}\geq d^{(\beta^{*})}\) is met, the search is cancelled at that level and restarted with the next phase assuming that \([\boldsymbol{\chi}]_{N_{D}}=\boldsymbol{\chi}_{N_{D}}^{(\beta+1)}\). The algorithm finalizes the \(\boldsymbol{\hat{\chi}}\) optimal vector search process when \(d^{(\beta^{*})}\leq[\mathbf{d}]_{\beta}\). A complete description of the Near ML V2V algorithm that includes the previously described procedure is presented in Algorithm 1. Figure 4: The tree-structured ML solution search. Figure 5: The tree-structured Near ML search proposed.