# DMCNet-Pro: A Model-Driven Multi-Pilot Convolution Neural Network for MIMO-OFDM Receivers
## 3 The Structure of DMCNet
### Pilot Processing Network  
In [6], it is mentioned that pilot signals and data signals are processed using the same fully connected network. However, as explained in Section 2, the pilot signals and data signals are not symmetrical regarding their positions during communication, even though they are transmitted through the same channel. The pilot signals are typically shorter  
Figure 3: Denoising module structure. in length compared to the data signals, and the original sequence of the pilot signals is known, allowing for channel estimation. To handle the pilot signals more precisely, this paper introduces a separate pilot processing and analysis step. The pilot signals are first processed and analyzed independently before being merged and processed together with the data signals. To accomplish this, a pilot processing module is designed; the diagram of the pilot processing module is shown in Figure 4 and the pilot processing module's details are shown in Table 1.  
After denoising, the received signal with a length of 2048 is divided into data and pilot components, each with a length of 1024. For an 8-pilot link data scenario, this means that pilot data are inserted every 32 subcarriers, and the remaining subcarriers have null pilot data, which does not contain useful information and are outputted through the communication link. In the approach described in [6], regardless of the number of pilot signals, all the data are inputted to the input layer of the neural network and the output result is obtained through a fully connected network. However, in the context of this paper's research scenario, there are \begin{table}
\begin{tabular}{p{113.8 pt} p{56.9 pt} p{56.9 pt} p{56.9 pt}} \hline \hline  & **Module Type** & \
\begin{tabular}{c} **Output Shape** \\ **(8 Pilots)** \\ \end{tabular} &
\begin{tabular}{c} **Output Shape** \\ **(32 Pilots)** \\ \end{tabular} \\ \hline Input pilot & – & 1024 & 1024 \\ \hline Data extraction & – & 64 & 256 \\ \hline Full connection layer & full connection & 1024 & 2048 \\ \hline Reshape & reshape & [1, 256, 4] & [1, 256, 8] \\ \hline Convolution layer 0 & \(1\times 9\) & [1, 256, 8] & [1, 256, 16] \\ \hline Convolution layer 1 & \(1\times 9\) & [1, 256, 16] & 1, 256, 32] \\ \hline Convolution layer 2 & \(1\times 9\) & [1, 256, 32] & [1, 256, 32] \\ \hline Convolution layer 3 & \(1\times 9\) & [1, 256, 8] & [1, 256, 16] \\ \hline Convolution layer 4 & \(1\times 9\) & [1, 256, 8] & [1, 256, 16] \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Pilot processing module details. Figure 4: Pilot processing structure. more antennas and the number of OFDM subcarriers has doubled, resulting in the output data from the link increasing from 256 to 2048. Therefore, in this paper, some of the unused pilot positions are discarded. Since the data are shifted by half a pilot position, the model first extracts a set of pilot output data every 16 subcarriers. In the case of eight pilot signals, a total of \((256/16)\times 4=64\) floating point numbers are extracted, which represent the known pilot data through the channel link. The extracted pilot output data are initially processed through a residual module for information extraction. They are first dimensionally expanded using a fully connected network to the size of 1024 and then reshaped into a 1-row, 256-column dataset, with the third dimension of the tensor representing the number of channels. In the case of eight pilot signals, the reshaped tensor has a shape of (1, 256, 4). The dataset is then passed through a complex convolution with a size of \(1\times 9\) to expand the channels, resulting in an output size of (1, 256, 16). A residual network structure is used here, where the pilot data, after being dimensionally expanded and reshaped, are further processed through a residual module for purification. The residual module is similar to the one described in Section 3 and consists of three layers of complex convolution. The output of the third layer is added to the original input of the first layer.