Automated RF Modulation Classification

Signal search and classification has many important applications in both commercial and government fields. Transmission monitoring, detection, and surveillance benefit from automated modulation classification; whereby "friendly" signals can be identified and securely received, and "hostile" signals can be located, identified, and/or jammed. In this research, an algorithm capable of automating the signal search and classification process is proposed. This project seeks to develop an algorithm in Matlab/Simulink to identify particular encoded waveform—specifically those of binary amplitude shift keying (ASK), frequency shift keying (FSK), and phase shift keying (PSK) modulation schemes. In brief, this software will provide the basis for modulation recognition for software defined radio platforms. The below algorithms/test data were designed/modified with Matlab/Simulink 2012b. An experienced programmer could easily implement these ideas into other software environments. 

Although much research has gone into this project, only one reference is listed below. More references/information can be posted by request.



Signal Detection

Signals are first detected by cross-correlation, pattern matching methods. A band-limited 10 KHz of noisy RF data is used for testing; it contains BASK, BPSK, and BFSK signals with varying degrees of noise and no distinct "channels" -- meaning, the carrier waves can emerge at any frequency within the given bandwidth. Each frame of time domain data is Fourier transformed to the frequency domain, and cross-correlated with a small "peak shaped" frame of data. The resulting cross-correlation creates a very readable plot.

Figure 1 shows a snapshot of this process. A frame of time-domain data (Figure 1 -- top) is Fourier transformed (Figure 1 -- middle) and cross-correlated with the "peak shaped" frame (Figure 1 -- bottom). Upon completion, a peak picking algorithm is employed and some simple "peak proximity" logic is used to estimate signal center frequencies. The center frequency "guesses" are shown as green asterisks (Figure 1 -- bottom). The PSK signal (middle peak) center frequency estimate is off by 10 Hz in this particular screenshot. The ASK (left) and FSK (right) center frequencies are accurate within +- 0.5 Hz.

Figure 1: Incoming data in the time-domain (top graph), a spectral representation of the data (middle graph) and the output of the cross-correlation pattern matching technique (lower graph). Spectral sensing algorithms estimate center frequencies (green asterisks). These particular signals are: ASK (2000 Hz), PSK (3990Hz) and FSK (5000 Hz).

Feature Extraction

Upon detection, the signals' spectral and temporal properties are extracted and analyzed. 

'Slicing' a candidate signal (bandpass filtering) from the spectral domain and graphing the imag{IFFT(slice)} over the real{IFFT(slice)} reveals interesting information about amplitude and phase. Figure 2 shows the absolute value of the inverse-FFT of 'slices' of various signals. The modulation schemes of these signals, when shown in this form, are recognizable, even to the human eye.

Binary ASK signals (upper plot) demonstrate square-wave transitions between magnitudes 0 and 1. Binary PSK signals (middle plot) characteristically exhibit sinusoidal perturbations with downward spikes during phase transitions. FSK signals (lowest plot) are characterized by fairly consistent amplitude. In this case, with reduced magnitudes. The magnitudes themselves, depend largely on the method of normalization and the observation window of the time-domain signals.

Figure 2: The absolute value of the inverse Fourier transform of candidate signals that have been bandpass filtered from the input data. ASK signals (top) are easily identifiable by large swings in magnitude. PSK signals (middle) are characterized by downward spikes and short oscillations during phase transitions. FSK signals (bottom) exhibit a fairly constant but smaller magnitude with occasional perturbations. 

For comparison, Figures 3-5 show instantaneous magnitudes from literature [1]:

Figure 3: Instantaneous amplitude of a binary ASK signal. Reprinted from [1].

Figure 3: Instantaneous amplitude of a binary ASK signal. Reprinted from [1].

Figure 4: Instantaneous amplitude of a binary PSK signal. Reprinted from [1].

Figure 4: Instantaneous amplitude of a binary PSK signal. Reprinted from [1].

Figure 5: Instantaneous amplitude of a binary FSK signal. Reprinted from [1].

Figure 5: Instantaneous amplitude of a binary FSK signal. Reprinted from [1].



To complete classification, variance of instantaneous amplitudes from these graphs are compared to thresholds over a given observation window. Threshold determinations are made through histogram analyses of instantaneous magnitude variances over a chosen interval for a large number of iterations and noise conditions. In the demo below, a GUI was created to display to the user what signals were found in the test data. The test data is shown simultaneously below the GUI. Colors are used to represent algorithm confidence. In the current algorithm version, "confidence" is simply based upon the number of similar classifications at a given frequency within a rolling observation space.


Demo Video (click to play):


Future Work:

This project  holds much room for improvement/expansion. A consideration of different types of noise would be valuable -- the above test-data was formed with additive white-noise only. A larger pool of real-life test-data would also help in performance evaluations. The above algorithm was tested with amateur radio recordings of downsampled CW and PSK31 signals and performed well under moderate noise -- this performance wasn't evaluated precisely but I may include it in a future update. It was also tested with "home-made" modulated data, which were designed to be configurable "on the fly" in Simulink.


[1] Elsayed Azzouz and Asoke Nandi, "Automatic Modulation Recognition of Communication Signals." Kluwer, 1996.