## 3 Proposed System and Methodology
### Signal Denoising  
The data denoising phase of our approach is based on particular artificial neural network layered architectures known as Denoising Autoencoders (DAE) [59], which are typically used to reconstruct data from a corrupted input. In standard Autoencoders (AE), the input is received under the form of examples, and AE is trained to reconstruct them, while the DAEs input comes under the form of noisy examples, and the objective for DAE is to reconstruct their original non-noisy form (both non-noisy and noisy examples are provided to the DAE). In radio wireless communication, examples can be obtained either by measuring the target output \(T(s_{nm})\) and the input \(R(s_{nm})\) in a physical environment or from a radio simulation environment, or by artificially corrupting non-noisy data. Autoencoders (AEs) are DL models used for self-supervised learning of an encoding of the input data. The input data instance can be an image or any other signal. The input is fed to the AE in the form of a 1D or a multidimensional array (e.g., a 2D image) typically flattened into a 1D form. Hereafter, we denote this array by \(x=(x_{1},\ldots,x_{k},\ldots,x_{K})\) (where \(K\) is the total number of elements in the flattened array). AEs learn to encode an input data set in a compact representation that preserves the statistical correlation properties of the original distribution of inputs most relevant for the reconstruction. The AE architecture consists of one or more encoding layers and of as many decoding layers. A special role is assigned to the central (hidden) layer, called _code layer_. The main role of the encoding layers is to map the input vector \(x\) into the hidden representation \(y=f_{\theta}(x)\); when there is a single encoding layer, \(f\) is defined by the following matrix equation:  
\[f_{\theta}(x)=\sigma(Wx+b) \tag{3}\]  
where \(\theta\) is a shorthand for \((W,b)\) and represents the set of parameters defining \(W\) and \(b\), \(W\) is the weight matrix, and \(b\) is the offset vector, while \(\sigma\) defined as a nonlinear function acting on the matrix elements and can be a Rectified Linear Unit (ReLU) function or a sigmoid function. With more encoding layers, the computation is iterated from one layer to the next. The mapped representation \(y\) is decoded to get the reconstruction matrix \(z\). The size of matrix \(z\) is the size of the input \(x\). The reconstructed matrix \(z=g_{\theta^{\prime}}(y)\) with a single decoding layer, is defined as  
\[g_{\theta^{\prime}}(y)=\sigma(W^{\prime}y+b^{\prime}) \tag{4}\]  
With more decoding layers, the computation is iterated from one layer to the next. The value of the parameters \(W\), \(W^{\prime}\), \(b\), and \(b^{\prime}\) is passed to a loss function during the learning process. The parameter values can be optimized by minimizing the loss function. There are different loss functions which can be selected to train the AE parameters: usually for binary data, the loss function is the binary cross entropy (BCE), which is typically used for binary classification. \[BCE=-\sum_{k=1}^{K}[x_{k}log(z_{k})+(1-x_{k})log(1-z_{k})] \tag{5}\]  
where \(K\) is the total number of input array elements. Mean Square Error (MSE) is also a common loss function that is always non-negative:  
\[MSE=\frac{1}{K}\sum_{k=1}^{K}||(x_{k}-z_{k})||^{2} \tag{6}\]  
We used the MSE as a loss function for the reconstruction error in our DAE, because it is known to work better with the DAE in image reconstruction. In our model, the MSE loss function is minimized by the _Adaptive Gradient Descent_ (AGD). DAEs use a noisy input \(\hat{x}\
eq x\) and are trained to produce encodings that restore the properties of the original non-noisy input. In our case, the noisy input is \(\hat{x}=R(s_{nm})\), the real valued spectrogram of the received signal, while the target output is \(x=T(s_{nm}))\) the real valued spectrogram of the transmitted signal.