The automatic digital modulation detection is a new technology which applied at the communication receiver to automatically recognize the modulation type of a received signal. In this work, we develop a new automatic modulation recognition system with machine learning that maintains a simple structure and provides higher accuracy. Different types of modulated signals simulated by using the OFDM (Orthogonal Frequency Division Multiplexing). The modulation techniques like QPSK, BPSK, 8PSK, and 16PSK are used for classification. There are three phases of our proposed work: feature extraction, features selection, and modulation classification. In the first step, the OFDM signal is simulated. We extract a total of twelve features from the simulated signal. The block diagram is as:
Following points are considered as the problem statement;
- The automatic digital modulation detection is necessary for the communication system as it allows the blind detection of modulation and lowers the circuitry cost of designing the different demodulators at the receiver. The Noise in the medium also keeps on changing the behavior of the modulated signal. The automatic modulation classification makes the communication receiver adaptive.
- The digital modulation detection work is based on various signal features that might not contribute towards classification accuracy and just increase the overhead. To get the optimal set of features which only contribute to accuracy, feature selection is an essential step.
In this phase, two types of feature sets are extracted and combined. These sets of features are spectral and statistical features. These features are considered from this research paper reference. Here is a list of features:
- Power spectral density of a signal
- The standard deviation of the absolute value-centered nonlinear component of the instantaneous phase
- The standard deviation of direct (non-absolute) value-centered nonlinear component of the instantaneous phase
- The standard deviation of the absolute value of the normalized instantaneous amplitude of the signal
- Mean value of the received signal strength on the basis of open distribution called cumulants.
- The variance of the simulated signal
- Kurtosis of the normalized centered instantaneous amplitude
- Kurtosis of the normalized centered instantaneous frequency
- 2nd, 3rd and 4th cumulants at zero lag
We used the Artificial Neural Network from the machine learning for the classification of automatic digital modulation. The
It is a mathematical model that provides the non-linear relationship between the system input and output. It also finds the pattern and trend in the complicated data which might be very tough by using another scheme. The training phase of the NN obtains the mathematical model of the problem. In the training phase, the system provided different patterns from a different dataset. The testing phase performs as a classifier in which the classifier performance calculated. The testing phase provides the classification accuracy of the model parameters. A general three-layered diagram of Neural network is
Once the features are extracted, we got an imbalance set of features with a different number of samples for each modulation technique. The bar plot to show the distribution of features
This imbalance causes the neural network to bias. So, we used the SMOTE method.
Another application of SMOTE for Age detection can be checked here.
The neural network toolbox requires a training dataset for training purposes so that it can get trained and learn the behavior of data. We don’t have a separate dataset for testing and training, so we divided the present dataset randomly in the 80/20 ratio to use 80% for network training and 20% for testing. MATLAB provides a neural network toolbox that can be used for several purposes and this trained network can be deployed as a standalone application or can generate a script for further use of modifications. We used this facility to speed up our work. A user interface of NN toolbox can be opened by using the command nnstart in MATLAB’s command window.
Since our work is recognizing the pattern of previous input and output, so we will use it in a pattern recognition app which lands to a page to choose the input data and target data. These datasets are picked from the workspace of MATLAB, so these must be there already. After choosing the data division for training and testing of network, the network is created which further leads to a page where the user can input the number of hidden neurons.
Then this network is trained for the loaded dataset and tested with the rest 20% of data. After training mean square error is generated and displayed on the user interface. Thus trained and tested NN by this toolbox can be converted in the form of MATLAB script which is requiring in our work.