# A Survey of Applications of Deep Learning in Radio Signal Modulation Recognition
## 5 Radio Modulation Recognition Model Based on CNN  
### Modulation Recognition of Radio Signals by CNN  
As one of the representative methods of DL, CNN has excellent performance in many fields. We mentioned some radio modulation recognition methods based on CNN in Section 2. They can produce good results. However, we can find that the accuracy of modulation recognition experiments using the dataset mentioned in the third part is not very high. Therefore, we have carried out relevant experiments in this aspect and achieved a satisfactory result. The general framework of the radio signal AMR method based on CNN is shown in Figure 6. The specific steps are described as follows. Firstly, divide the dataset into training set and test set in the ratio of 1:1. This method uses raw IQ data. Secondly, the training set data are preprocessed and input into the neural network. Thirdly, the neural network is used to train the training set data iteratively many times and the network parameters are constantly updated, so that the modulation recognition effect of the network is the best. Then, the trained neural network is used to test the test set data. Finally, the modulation recognition results predicted by the neural network are output. \begin{table}
\begin{tabular}{c c} \hline \hline
**Dataset** & **HisarMod2019.1** \\ \hline Number of modulation mode & 26 \\ \hline \multirow{6}{*}{Modulation mode} & Analog modulation: AM-DSB, AM-SC, AM-USB, AM-LSB, FM, PM. \\  & FSK modulation: 2 FSK, 4 FSK, 8 FSK, 16 FSK. \\ \cline{1-1}  & PAM modulation: 4 PAM, 8 PAM, 16 PAM. \\ \cline{1-1}  & PSK modulation: BPSK, QPSK, BPSK, 16 PSK, 32 PSK, 64 FSK. \\ \cline{1-1}  & QAM modulation: 4 QAM, 8 QAM, 16 QAM, 32 QAM, 64 QAM, 128 QAM, 256 QAM. \\ \hline Format of each sample & \(2\times 1024\) \\ \hline Number of samples & 780,000 \\ \hline Number of signals each modulation type & 1500 \\ \hline SNR (dB) & \(-20\):2:18 \\ \hline \hline \end{tabular}
\end{table} 
Table 10: Description of display parameters for HisarMod2019.1 dataset. The experiment we have carried out is based on CNN radio signal modulation recognition. The dataset used is the open source dataset RadioML2016.04c mentioned in Section 4. During training, the dataset is divided into 50% training set and 50% test set. Keras framework is used in the experiment. TensorFlow acts as the back end. Training is accelerated by GPU. Batch_size is set to 1024 by default during training. Dropout is 0.5. The training is conducted by using the categorical_crossentropy function and Adam solution. We designed a simple CNN network framework to verify the effectiveness of CNN for AMC. Many existing references are mainly based on this simple framework and add some additional modules to improve the performance. The implementation process of this CNN based on AMC is shown in Figure 7. Firstly, the signal is input into the network and four convolution layers are used to process the signal and automatically learn the characteristics of the signal. At the same time, in order to prevent overfitting, we use dropout after each convolution layer. Finally, the signal modulation recognition result is output through the fully connected layer and Softmax activation function. The network structure of CNN is adopted in the experiment. The network model structure is shown in Figure 8 and Table 11. There are six layers in the network, including four convolution layers and two dense layers. Reshape the input from [N, 2, 128] to [N, 1, 2, 128], where N is samples/ batch_size. At a time, one matrix with size \(2\times 128\) will enter the network. The input layer is followed by four convolution layers. All four layers use ReLU as the activation function. These four layers are preceded by zero padding with symmetric width pad. This zero padding uses the 2D input zero padding and the padding is set to (0, 2). Channels_first is used for ordering the dimensions in the inputs (batch_size, channels, height, width). The first, second and third Conv/ReLU layers have 256 output filters and \(1\times 3\) filter size.