## 3 Signal Demodulation
### PLS-Based Detection Method
#### 3.2.2 Demodulation with PLS Regression  
The symbol matrix to be demodulated \(\mathbf{X}_{in}\) is formed of the normalized received symbol \(\mathbf{\tilde{u^{\prime}}}_{m}\):  
\[\mathbf{\tilde{u^{\prime}}}_{m}=\frac{\mathbf{u}_{m}^{\prime}-\mu}{\sigma} \tag{19}\]  
where \(\mathbf{\tilde{u^{\prime}}}_{m}\) is the normalized received symbol sequence and is stored as the rows of \(\mathbf{X}_{in}\), \(\mu\) and \(\sigma\) are the mean and standard deviation of the training matrix \(\mathbf{X}_{train}\). We associate \(\mathbf{X}_{in}\) to the well-trained PLS model to compute the score matrix \(\mathbf{Y}_{out}\):  
\[\mathbf{Y}_{out}^{T}=\mathbf{X}_{in}\times\mathbf{W} \tag{20}\]  
The similarity score \(\mathbf{Y}_{out}(n,m)\) of \(\mathbf{u}_{m}^{\prime}\) related to the \(n\)-th symbol candidate \(\mathbf{u}_{n}\) is expected to be maximal if matched, otherwise 0. The index of the maximum of the score vector of \(\mathbf{u}_{m}^{\prime}\) (stored as the \(m\)-th column of \(\mathbf{Y}_{out}\)) is considered as the estimated class of this received symbol. ```
0: training matrix \(\mathbf{X}\), response variables \(\mathbf{Y}\), projection direction number \(k\)
0: regression coefficients \(\mathbf{W}\)
1: centering the data
2:for\(j=1,2,\ldots,k\)do
3:\(\mathbf{U}_{j}\leftarrow\text{first column of }\mathbf{



According to Algorithm 2, the proposed demodulation algorithm is lightweight and possesses high parallelism. From the view point of programming, the loop in Line 3 reshapes the input signal sequence \(\mathbf{s}^{\prime}\) without any computational operations. \(\mathit{PlsModel}()\) function is essentially a matrix multiplier. The loop of Line 8 is an ideal independent loop, whose iterations can be pipelined or parallelized completely without initiation interval. Hence, we optimized the original code for a multi-core CPU platform. Figure 5 shows the overall architecture of the optimized demodulation implementation. The CPU cores are interconnected with a shared bus. The first core of CPU masters the preprocessing, resampling, segmentation, reshaping tasks and PLS model. When these computations are finished, the score vectors stored in \(\mathbf{Y}_{out}\) are distributed to the other cores via a shared bus for ASCII mapping. The mapping task consists of \(findmax()\) and \(\mathit{MesGen}()\) functions. We parallelize them with the single instruction multiple data (SIMD) approach, which enables us to apply the same description code (thread function) to process different data in parallel. The thread functions formed of \(findmax()\) and \(\mathit{MesGen}()\) functions are distributed to the different CPU cores which share the memories and data bus. Since the data or operations are independent, all of the threads are able to execute simultaneously so that the running speed is accelerated. Figure 5: Architecture of the optimized demodulation implementation. ## 5 Experiments and Evaluations

The proposed method is evaluated with the simulation experiments. In order to obtain an unbiased result, all the used datasets are simulated with the data measured and recorded in the sea trail. The user-controlled parameters of the algorithm are optimized experimentally. The accurate and computational performance of the proposed method are evaluated by comparison with the two reference algorithms. ### Dataset

The experiments of this paper are conducted by using simulation data, which are generated via the replay simulation method presented in [52]:

\[\mathbf{s}(t)=\int_{\tau=0}^{T_{h}}\mathbf{h}(t,\tau)\cdot\mathbf{s}_{o}(t-\tau)d\tau+\mathbf{ s}_{n}(t) \tag{21}\]

where \(\mathbf{s}_{o}(t)\) is the transmitted signal, \(\mathbf{s}\) is the received signal, \(\mathbf{h}\) is the measured underwater sound channel response, \(T_{h}\) is the tap number of the channel response and \(\mathbf{s}_{n}\) is the ambient noise.