## 4 Simulation
### Kernel Selection and Complexity Reduction  
In this subsection, the performance of the SVM detector, using the kernel functions (10) and (11), introduced in Section 3, is compared. The 10-fold cross-validation sweep from the training samples was used to find the optimum parameters of C and \(\gamma\) for the RBF kernel. Figure 6 shows that the width \(\gamma\) has a more dominating effect on the error rate than the penalty parameter C.  
When \(\gamma\) is between 0.5 and 16, the SVM receiver has the best performance, regardless of the C parameter. A similar search was conducted for the linear kernel, but which only has the C parameter to adjust. Table 1 summaries the optimum SVM model obtained after the parameter search. Compared to the RBF kernel, the linear kernel has less SVs, which means the latter has a less computational complexity and thus would perform faster. In order to compare the BER performance fairly, both kernels used by the SVM detector were classifying exactly the same received signals.  
Figure 6: Cross-validation result of the SVM detector in RBF kernel.  
Figure 7 shows the BER performance of the SVM detector when employing different kernels. Although, the linear kernel is much simpler, its performance is slightly better than the RBF kernel. Therefore, we use a linear SVM kernel for the task. We train on a low SNR scenario (SNR = \(-\)7 dB in this case), proving that the SVM receiver does not need frequent re-training in different SNRs.  
We have analyzed the BER performance of the SVM detector with linear kernel which is superior to the RBF one. Nevertheless, the solution for such a problem is computationally complex by consuming a mass of energy. The complexity of training an SVM for binary classification is O(\(n^{2}\)), using the sequential minimal optimization [28]. However, the SVM detector should be analyzed for the testing stage only because the training time is very small compared with the actual testing time. A great amount of complexity can be reduced further if in the decision function given in (7) we use the linear kernel. The expression is simplified as follows:  
\[\begin{split} f(x)&=\sum\limits_{i=1}^{L}\alpha_{i }y_{i}K\big{(}\mathbf{x}_{i}\big{)}+b=\sum\limits_{i=1}^{L}\alpha_{i}y_{i}\big{(} x_{i}^{T}x\big{)}+b\\ &=\left[\sum\limits_{j=1}^{Z}y_{j}\alpha_{j}\bigg{(}\sum\limits_{ i=1}^{\pi}x_{j,j}x_{i}\bigg{)}\right]+b=\sum\limits_{i=1}^{\pi}x_{i}\bigg{(} \sum\limits_{j=1}^{Z}y_{i}\alpha_{i}x_{j,i}\bigg{)}+b\\ &=\sum\limits_{i=1}^{n}A_{i}x_{i}+b\end{split} \tag{25}\]  
\begin{table}
\begin{tabular}{c c c} \hline \multicolumn{3}{c}{**Selected Kernel**} \\ \hline  & RBF & Linear \\ C & 8 & 2 \\ \(\gamma\) & 8 & - \\ SVs & 462 & 381 \\ \hline \end{tabular}
\end{table}
Table 1: Comparison of SVM models.  
Figure 7: The BER performance of the SVM detector in different kernels. We use \(\lozenge\) for the SVM with RBF kernel and \(\Delta\) with linear kernel.  
where Z is the number of support vectors, the constants \(A_{i}=\sum\limits_{j=1}^{Z}y_{i}\alpha_{i}x_{j,i}\) and b can be pre-computed before the testing stage to save computation time and energy. Therefore, the complexity of the SVM detector is \(O(n)\).