Signal Detection Using Deep Learning - Part II

Signal Detection Using Deep Learning - Part II

In the previous post, Signal Detection Using Deep Learning - Part I, we introduced basic methods for detecting signals corrupted by noise. The motivation for these posts is that there are many resources for learning how to use Deep Learning to process imagery. However, few resources exist to demonstrate how to process data from other sensors such as acoustic, seismic, radio, or radar. In this part II of our introduction, we will introduce multi-signal detection utilizing a Convolutional Neural Network (CNN) to process Radio Frequency (RF) signals. If you are interested in more hands-on examples, please see our tutorial and lab on the NVIDIA qwicklabs site at

Introduction to multi-signal detection

In our part I blog post on signal detection we introduced the concept of detecting a specific signal when monitoring radio frequency (RF) signals, or similar signals from sensors such as biomedical, temperature, etc. This is a challenging problem when the signal-of-interest is degraded by noise. Traditional signal detection methods use a range of techniques such as energy detection, “matched filtering”, or other correlation-based processing techniques. We walked you through a simple approach using a Convolutional Neural Network (CNN) to tackle the traditional signal processing problem of detecting chirp signals embedded in noise.

In this post we show you how to extend this technique to detect multiple signal types. For an example, we will demonstrate the detection of both a chirp and a frequency hopped signal corrupted by noise and co-channel interference.

Modifications to the neural network

In order to detect multiple signal types, we need to modify our neural network model from the previous post. It turns out that this is fairly easy. By changing the output layer of the network to use the Softmax function we allow for multiple outputs (and associated probabilities). At the basic level, the multi-signal detection problem is similar to digit recognition. In fact, we will demonstrate that it is possible to train the published LaNet model to do multi-signal detection.

From Digit Detection to Signal Detection

We used the NVIDIA Digits application to train a LaNet model using a simulated dataset generated using Matlab code. Three signal types were simulated, each one corrupted by varying levels of AWG noise. The output consists of three classifications: (1)chirp - linear frequency modulated signal, (2)hop - frequency hopped signal and, (3) other - tone and/or PSK signals.

Fig1. Spectrogram for frequency hopped signal. (grayscale)
Fig1. Spectrogram for chirp signal. (grayscale)
Fig1. Spectrogram for "other" type signal. (grayscale)
Fig1. Example multi-signal spectrogram containing all three signal types. (grayscale)

Issues with this approach

Obviously this approach has some flaws and will not be the robust enough for most real applications. Without more thought put into the development of the network, this network model will tend to emphasize one signal disproportionately over the others. This is not unexpected when you consider how a basic CNN works. Even with its flaws, slowly working through how to change a basic model (e.g., LaNet) for different applications and outcomes can help you understand how to move from classification involving two signal types to classification involving multiple signal types. If you are interested in learning how to apply more advanced deep learning methods to real signal detection and modulation recognition applications, contact us at KickView to discuss our technology. We also provide custom tutorials and enjoy sharing our passion for machine learning and multi-sensor analytics.