## 3 The Proposed Scheme
### System Architecture
Then, the data symbol can be roughly compensated within the compensation module using the traditional least-square (LS) solution, shown as follows:  
\[\overset{-}{\mathbf{X}}=\hat{\mathbf{h}}^{-1}\mathbf{Y}_{d}. \tag{12}\]  
After that, we feed \(\mathbf{X}\in\mathbb{R}^{\mathcal{M}}\) into \(\mathcal{S}2\) for further refining the results of (12) while recovering the original symbols. Assume that \(\mathcal{S}2\) employs FC-DNN and contains \(\mathcal{L}_{2}\) layers. As for the first layer of \(\mathcal{S}2\), let \(\mathcal{D}_{1}^{\mathcal{S}2}\) denote the number of neurons, \(\mathbf{t}_{1}^{\mathcal{S}2}\in\mathbb{R}^{\mathcal{M}}\) is the layer input, and \(\mathbf{W}_{1}^{\mathcal{S}2}\in\mathbb{R}^{\mathcal{D}_{1}^{\mathcal{S}2} \times\mathcal{M}}\) and \(\mathbf{b}_{1}^{\mathcal{S}2}\in\mathbb{R}^{\mathcal{D}_{1}^{\mathcal{S}2}}\) are the weight matrix and bias vector, respectively. Then, the corresponding output \(\mathbf{h}_{1}^{\mathcal{S}2}\) can be similarly calculated using (11) and then passed through the normalization layer to keep the same distribution for the input of each sub-layer block. For simplicity, the Batch normalization is adopted and the outputs can be expressed as follows  
\[\left(\mathbf{h}_{1}^{\mathcal{S}2}\right)_{BN}=\alpha_{1}^{\mathcal{S}2}\frac {\mathbf{h}_{1}^{\mathcal{S}2}-\mathbb{E}\left\{\mathbf{h}_{1}^{\mathcal{S}2} \right\}}{\sqrt{\alpha_{\mathbf{h}_{1}^{\mathcal{S}2}}^{2}+\epsilon}}+\beta_{1} ^{\mathcal{S}2}, \tag{13}\]  
where \((\cdot)_{BN}\) denotes the Batch normalization function, and \(\alpha_{1}^{\mathcal{S}2}\) and \(\beta_{1}^{\mathcal{S}2}\) are the scaling and shift factors, respectively. In order to prevent the denominator from being zero, a constant \(\epsilon\) approaching zero is always added in the denominator term. Then, the \(\left(\mathbf{h}_{1}^{\mathcal{S}2}\right)_{BN}\) is fed into \(\rho_{RL}(\cdot)\) to make the data features nonlinear. However, the logistic _Sigmoid_ function \(\rho_{sig}(\cdot)\) is employed as the activation function for the last dense layer. The reason is that the main goal of \(\mathcal{S}2\) is to recover the original binary data; nevertheless, the logistic _Sigmoid_ activation functions is very convenient for mapping the input values to the \([0,1]\) range. Finally, the output of the last dense layer can be expressed by the following:  
\[\hat{\mathbf{t}}=\rho_{sig}\Big{\{}\Big{(}\mathbf{W}_{\mathcal{C}2}^{\mathcal{ S}2}\mathbf{t}_{\mathcal{C}2}^{\mathcal{S}2}+\mathbf{b}_{\mathcal{S}2}^{\mathcal{S} 2}\Big{)}_{BN}\Big{\}}, \tag{14}\]  
where \(\hat{\mathbf{t}}\in\mathbb{R}^{\mathcal{P}}\) is the bit vector, \(\mathcal{P}=(N-1)\log_{2}(\mathcal{Q})\), and \(\mathcal{Q}\) denotes the modulation level. However, the output of the _Sigmoid_ fluctuates in a certain range due to the influence of noise. In order to refine the coarse output, \(\hat{\mathbf{t}}\) is sent into the refine layer to further improve the demodulation performance of original data. The refined bit stream \(\hat{\mathbf{t}}_{0}\) can be obtained as follows:  
\[\hat{\mathbf{t}}_{0}=\frac{sgn\left(\hat{\mathbf{t}}-\frac{1}{2}\right)+\left| sgn\left(\hat{\mathbf{t}}-\frac{1}{2}\right)\right|}{2}, \tag{15}\]where \(sgn(\cdot)\) is the _Signum_ function. Finally, the overall channel impairment can be mitigated and the original information can be recovered to the binary stream directly using the proposed \(\mathcal{S}1\) and \(\mathcal{S}2\). As aforementioned, the proposed scheme combines the conventional signal processing algorithm and the DL approach together, which can achieve a relatively robust recovery performance under various scenarios.