✅Author Introduction: A Matlab simulation developer passionate about research, improving both mindset and technology. For code acquisition, paper reproduction, and research simulation collaboration, feel free to contact.
🍎Personal Homepage: Matlab Research Studio
🍊Personal Motto: Seek knowledge through investigation.
For more complete Matlab codes and simulation customization, click below 👇
Intelligent Optimization Algorithms Neural Network Prediction Radar Communication Wireless Sensors Power Systems
Signal Processing Image Processing Path Planning Cellular Automata Unmanned Aerial Vehicles
🔥 Content Introduction
1 Generate waveforms for training
Generate 10,000 frames for each modulation type, with 80% for training, 10% for validation, and 10% for testing. We use training and validation frames during the network training phase. The final classification accuracy is obtained using the test frames. Each frame has a length of 1024 samples, with a sampling rate of 200 kHz. For digital modulation types, eight samples represent one symbol. The network makes each decision based on a single frame rather than multiple continuous frames (like video). Assume the center frequencies for digital and analog modulation types are 900 MHz and 100 MHz, respectively.
1.2 Waveform Generation
Create a loop that generates frames with channel fading for each modulation type and stores these frames along with their corresponding labels in frameStore. Remove a random number of samples from the beginning of each frame to eliminate transients and ensure that the frames have random starting points relative to the symbol boundaries.
Modulation Classification Using Deep Learning – Testing with SDR
Use the sdrTest function to test the performance of the trained network through wireless signals. To perform this test, you must have two ADALM-PLUTO radios and the Communications Toolbox Support Package for ADALM-PLUTO Radio. sdrTest uses the same modulation functions as those used when generating training signals and transmits using the ADALM-PLUTO radio. Capture the channel-degraded signal with another ADALM-PLUTO radio without simulating the channel. Use the trained network and the same classify function to predict the modulation type. The network achieves an overall accuracy of 99%, with the two radios fixed approximately 2 feet apart.
📣 Code Snippet
function modulator = getModulator(modType, sps, fs)%getModulator Modulation function selector% MOD = getModulator(TYPE,SPS,FS) returns the modulator function handle% MOD based on TYPE. SPS is the number of samples per symbol and FS is% the sample rate.
switch modType case "BPSK" modulator = @(x)bpskModulator(x,sps); case "QPSK" modulator = @(x)qpskModulator(x,sps); case "8PSK" modulator = @(x)psk8Modulator(x,sps); case "16QAM" modulator = @(x)qam16Modulator(x,sps); case "64QAM" modulator = @(x)qam64Modulator(x,sps); case "GFSK" modulator = @(x)gfskModulator(x,sps); case "CPFSK" modulator = @(x)cpfskModulator(x,sps); case "PAM4" modulator = @(x)pam4Modulator(x,sps); case "B-FM" modulator = @(x)bfmModulator(x, fs); case "DSB-AM" modulator = @(x)dsbamModulator(x, fs); case "SSB-AM" modulator = @(x)ssbamModulator(x, fs);endend
function src = getSource(modType, sps, spf, fs)%getSource Source selector for modulation types% SRC = getSource(TYPE,SPS,SPF,FS) returns the data source% for the modulation type TYPE, with the number of samples% per symbol SPS, the number of samples per frame SPF, and% the sampling frequency FS.
switch modType case {"BPSK","GFSK","CPFSK"} M = 2; src = @()randi([0 M-1],spf/sps,1); case {"QPSK","PAM4"} M = 4; src = @()randi([0 M-1],spf/sps,1); case "8PSK" M = 8; src = @()randi([0 M-1],spf/sps,1); case "16QAM" M = 16; src = @()randi([0 M-1],spf/sps,1); case "64QAM" M = 64; src = @()randi([0 M-1],spf/sps,1); case {"B-FM","DSB-AM","SSB-AM"} src = @()getAudio(spf,fs);endend
⛳️ Run Results
🔗 References
O’Shea, T. J., J. Corgan, and T. C. Clancy. “Convolutional Radio Modulation Recognition Networks.” Preprint, submitted June 10, 2016. https://arxiv.org/abs/1602.04105
O’Shea, T. J., T. Roy, and T. C. Clancy. “Over-the-Air Deep Learning Based Radio Signal Classification.” IEEE Journal of Selected Topics in Signal Processing. Vol. 12, Number 1, 2018, pp. 168–179.
Liu, X., D. Yang, and A. E. Gamal. “Deep Neural Network Architectures for Modulation Classification.” Preprint, submitted January 5, 2018. https://arxiv.org/abs/1712.00443v3
🎈 Part of the theoretical references are from network literature. If there is any infringement, please contact the author for deletion.
🎁 Follow me to receive a wealth of Matlab e-books and mathematical modeling materials.
👇 Private message for complete code and data acquisition, as well as customized simulation of papers and models.
1 Various intelligent optimization algorithm improvements and applications
Production scheduling, economic scheduling, assembly line scheduling, charging optimization, workshop scheduling, bus departure optimization, reservoir scheduling, three-dimensional packing, logistics site selection, cargo location optimization, public transport scheduling optimization, charging station layout optimization, workshop layout optimization, container ship loading optimization, pump combination optimization, medical resource allocation optimization, facility layout optimization, visual domain base station and drone site selection optimization, backpack problem, wind farm layout, time slot allocation optimization, optimal distributed generation unit allocation, multi-stage pipeline maintenance, factory-center-demand point three-level site selection problem, emergency life material distribution center site selection, base station site selection, road lamp pole layout, hub node deployment, transmission line typhoon monitoring device, container ship loading optimization, unit optimization, investment portfolio optimization, cloud server combination optimization, antenna linear array distribution optimization.
2 Machine learning and deep learning aspects
2.1 BP time series, regression prediction and classification
2.2 ENS voice neural network time series, regression prediction and classification
2.3 SVM/CNN-SVM/LSSVM/RVM support vector machine series time series, regression prediction and classification
2.4 CNN/TCN convolutional neural network series time series, regression prediction and classification
2.5 ELM/KELM/RELM/DELM extreme learning machine series time series, regression prediction and classification
2.6 GRU/Bi-GRU/CNN-GRU/CNN-BiGRU gated neural networks time series, regression prediction and classification
2.7 ELMAN recurrent neural network time series, regression prediction and classification
2.8 LSTM/BiLSTM/CNN-LSTM/CNN-BiLSTM long short-term memory neural network series time series, regression prediction and classification
2.9 RBF radial basis neural network time series, regression prediction and classification