# Convolutional Neural Network (CNN)-Based Frame Synchronization Method
## 3 Proposed CNN-Based Frame Synchronizer
\begin{table}
\begin{tabular}{c c c} \hline \hline
**Layers** & **Function \& Parameters** & **Values** \\ \hline Input layer & Input size & \(100\times 100\times 1\) \\ \hline \multirow{6}{*}{Convolutional layer 1} & Number of filters & 64 \\ \cline{2-3}  & Filter size and stride & \((3\times 3)\), (1,1) \\ \cline{2-3}  & Activation function & ReLU \\ \cline{2-3}  & Pooling & Max pooling (size: \(2\times 2\), stride: 2,2) \\ \cline{2-3}  & Number of parameters & Weight: \(3\times 3\times 1\times 64\) \\ \cline{2-3}  & Number of parameters & Bias: \(1\times 1\times 64\) \\ \cline{2-3}  & Total: 640 \\ \hline \multirow{6}{*}{Convolutional layer 2} & Number of filters & 128 \\ \cline{2-3}  & Filter size and stride & \((3\times 3)\), (1,1) \\ \cline{2-3}  & Activation function & ReLU \\ \cline{2-3}  & Pooling & Max pooling (size: \(2\times 2\), stride: 2,2) \\ \cline{2-3}  & Number of parameters & Weight: \(3\times 3\times 64\times 128\) \\ \cline{2-3}  & Number of parameters & Bias: \(1\times 1\times 128\) \\ \cline{2-3}  & Total: 73,856 \\ \hline \multirow{6}{*}{Convolutional layer 3} & Number of filters & 256 \\ \cline{2-3}  & Filter size and stride & \((3\times 3)\), (1,1) \\ \cline{2-3}  & Activation function & ReLU \\ \cline{2-3}  & Pooling & Max pooling (size: \(2\times 2\), stride: 2,2) \\ \cline{2-3}  & Number of parameters & Weight: \(3\times 3\times 128\times 256\) \\ \cline{2-3}  & Number of parameters & Bias: \(1\times 1\times 256\) \\ \cline{2-3}  & Total: 295,168 \\ \hline \multirow{6}{*}{Fully connected layer 1} & Output size & 512 \\ \cline{2-3}  & Activation function & ReLU \\ \cline{2-3}  & Number of parameters & Weight: \(512\times 13\times 13\times 256\) \\ \cline{2-3}  & Number of parameters & Bias: \(512\times 1\) \\ \cline{2-3}  & Total: 22,151,680 \\ \hline \multirow{6}{*}{Fully connected layer 2} & Output size & 10,000 \\ \cline{2-3}  & Activation function & ReLU \\ \cline{2-3}  & Activation function & ReLU \\ \cline{2-3}  & Number of parameters & Weight: \(10,000\times 512\) \\ \cline{2-3}  & Number of parameters & Bias: \(10,000\times 1\) \\ \cline{2-3}  & Total: 5,130,000 \\ \hline Number of total parameters & 27,651,344 \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Proposed CNN and its parameters. image as depicted in Figure 5b, in which the bright and dark colors indicate large and small values of \(y[n]\), respectively. Thus, we can interpret that the lightest part of the image implies a packet arrival instance of the conventional correlation-based synchronization method. Here, we have to note that the estimated arrival time \(\hat{n}_{0}\) from the designed CNN could be different from \(\hat{n}_{0}\) obtained from the maximum correlation-based method. This will be shown in the next section. The 2D-training signals are then provided to the designed CNN classifier. The structure of the proposed CNN regressor is shown in Figure 5c-g. The input is \(100\times 100\) 2D-training signal and it passes through three convolutional layers (panels (c-e)) and one fully connected layer (panel (f)). The final output in panel (g) is \(1\times 10,000\) one-hot vector and \"\(1\)\" indicates the packet arrival instance. The convolutional filter size is \(3\times 3\), and the number of filters (or channels) at each of the three convolutional layers is 64, 128, and 256, respectively. Using the sufficient number of training signals and their labels, the CNN parameters are updated to minimize the difference the CNN regressor output and the label. In a label vector, only one element has a value of one and the others have zeros, where the position of element 1 indicates the packet arrival time, i.e., \(\hat{n}_{0}\) in (h), which is the output of the CNN block.