# Deep-Learning-Based Recovery of Frequency-Hopping Sequences for Anti-Jamming Applications
## 3 Proposed FH Sequence Recovery Method
### Designed Network Structure  
The designed CNN-GRU network structure is composed of a SE-ResNet network and a GRU network, as shown in Figure 3. The SE-ResNet module is composed of a ResNet followed by an SE module, which is used to extract the high-dimensional features of the time-frequency diagram of the received signal. The GRU module jointly derives the frequency-hopping sequence value of the current frequency-hopping cycle according to the currently extracted features and the previous memory. Figure 3: Structure diagram of CNN-GRU. Figure 2: Structure diagram of frequency-hopping sequence classification. 1. SE-ResNet structure The structure of SE-ResNet is shown in Figure 4. The left side of the dotted line is ResNet, which is mainly composed of three groups of residual modules. The first group adopts the identity shortcut mapping, and the latter two groups adopt the linear projection method, i.e., using the convolution kernel of size 1*1 to downsample the feature map. In Figure 4, \"7*7 conv_64,/2\" of Conv_1 indicates that the convolution kernel size is 7*7, the number is 64, and the stride is 2 (the default is 1). \"Maxpool,/2\" in Pool_1 indicates that the pooling method is maximum pooling, and the stride of the pooling core is 2. At the same time, a batch normalization (BN) layer is added after each convolutional layer, and the output of the convolutional layer is normalized so that the input of each layer maintains the same distribution. In this way, the requirements for the initialization of network parameters can be reduced, the difficulty of network training can be reduced, and the convergence speed of the network can be accelerated. The right side of the dotted line is the SE module, where \(I_{H}\), \(I_{W}\), and \(I_{D}\) are the height, width, and number of channels of the input data, respectively, the pooling method is average pooling, FC is the fully connected layer, ReLU and Sigmoid are activation functions, D is the dimension reduction factor, and the dimension reduction factor is 16. The SE module uses two fully connected layers to achieve dimensionality reduction operations, which reduces the number of parameters and calculations. After the output of ResNet passes through the SE module, a set of weights corresponding to the output channels is obtained, which is used to perform weighted calculations on each channel, so as to realize the key information in the prominent features, suppress the useless information, and enhance the expressive ability of the model. Finally, a global pooling layer is used at the output to replace the fully connected layer to avoid feature loss. This fully convolutional network-like structure can use the deconvolution layer to upsample the feature map of the last convolutional layer to achieve the same size as the input, so more feature information can be preserved by using this method. At the same time, the amount of network parameters can be further reduced, and the training difficulty and computing time of the network can be reduced. 1. Gated recurrent unit SE-ResNet is used to process the time-frequency diagram of the received signal, and the network can extract the high-dimensional features of the signal through training. At the  
Figure 4: Structure diagram of SE-ResNet. same time, because the frequency of the frequency-hopping signal or jamming has different characteristics with time, we use GRU to learn the information in the time dimension of the high-dimensional features of the signal. The specific structure of the GRU is shown in Figure 5.  
The forward propagation mathematical expression of GRU is  
\[\left\{ \begin{array}{l}r_{t}=\sigma(\mathbf{W}_{ir}x_{t}+b_{ir}+\mathbf{W}_{hr}h_{t-1}+ b_{hr})\\ z_{t}=\sigma(\mathbf{W}_{iz}x_{t}+b_{iz}+\mathbf{W}_{hz}h_{t-1}+b_{hz})\\ \widetilde{h}_{t}=\tanh(\mathbf{W}_{in}x_{t}+b_{in}+r_{t}\times(\mathbf{W}_{hn}h_{t-1}+ b_{hn}))\\ h_{t}=(1-z_{t})\times\widetilde{h}_{t}+z_{t}h_{t-1}\end{array} \right.