The automatic 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 that maintains a simple structure and provides higher accuracy. Different types of modulated signal 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: features 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 modulation detection is necessary for the communication system as allows the blind detection of modulation and lower the circuitry cost of designing the different demodulators at 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 automatic modulation detection work is based on various signal features which 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 set 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.
- Variance of 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 Artifical Neural Network for classification of automatic digital modulation. The
It is a mathematical model which 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.
Neural network toolbox requires a training dataset for training purpose 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 80/20 ratio to use 80% for network training and 20% for testing. MATLAB provides a neural network toolbox which 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 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, 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.