一、仿真原理
研究将CNN神经网络应用于射频信号的特征识别。基于lora信号,添加射频特征,比如频偏,相位噪声,IQ不平衡等,经过瑞利信道,在接收到采集射频数据,打上标签,作为训练数据合测试数据,加入CNN模型,进行训练和验证
二、参数设置
信号参数
% 设置设备数量和数据样本
numDevices = 10;
numSignals = 20;
numTxAntennas = 4;
numRxAntennas = 4;
SNR = 0;
LoRaBandwidth = 125e3;
LoRaSpreadingFactor = 7;
fs = 1/LoRaBandwidth*2^LoRaSpreadingFactor;
numSymbols = 20;
% 噪声和失真参数
% 扩大噪声和失真参数的范围
phaseNoise = [-60, -50, -40, -30, -20, -10, 0, 10, 20, 30];
frequencyOffset = [-20, -16, -12, -8, -4, 0, 4, 8, 12, 16,20];
iqGainImbalance = [0.05, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55];
iqPhaseImbalance = [0.05, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55];
realDCOffset = [0.05, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55];
imaginaryDCOffset = [0.05, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55];
设置10台被测设备,每台被测设备又自己不同的射频特征(频偏,相位噪声,IQ不平衡),平台设备发送20个信号,每个信号包含10个符号,每个符号128个码片。所以,CNN输入是一个10*20*20*128的复数集,其中10个符号*128个码片构成一个二维数据,输入给CNN。因为是复数,所以可以拆分成2*20*128的3维数据输入CNN
CNN参数
numClasses = numDevices; % 假设您有十个不同的设备类别
layers = [
imageInputLayer([size(trainData, 1), size(trainData, 2), size(trainData, 3)])
convolution2dLayer(3, 100, 'Padding', 'same')
batchNormalizationLayer
reluLayer
convolution2dLayer(5, 50, 'Padding', 'same')
batchNormalizationLayer
reluLayer
maxPooling2dLayer(1, 'Stride', 1)
convolution2dLayer(5, 50, 'Padding', 'same')
batchNormalizationLayer
reluLayer
dropoutLayer(0.5) % 添加 Dropout 层,0.5 是丢弃率,可调整
fullyConnectedLayer(numClasses) % 将 numClasses 设置为 10
softmaxLayer
classificationLayer];
% 分析网络以获取各层的输出大小
analyzeNetwork(layers);
options = trainingOptions('sgdm',... % 将 'adam' 修改为 'gd'
'MaxEpochs', 30,...
'MiniBatchSize', 16,...
'Plots', 'training-progress',...
'ValidationData', {valData, valLabels},...
'ValidationFrequency', 40,...
'OutputFcn', @(info)plotTrainingProgress(info),...
'InitialLearnRate', 0.001,...
'ExecutionEnvironment', 'cpu');
三、训练和测试结果
四、思考
训练模型是收敛的,在0db下仍然又90%的预测准确率,同时分辨率也很高,20hz的频偏也能轻松分辨。可以达到实际系统中频偏估计的精度要求了。如果应用到实际通信系统中的频偏估计,面临的挑战是,实际系统中的信号更加复杂,SNR将是时变的,因此需要更丰富的训练数据。第二,CNN计算本身也是很复杂的。其他的应用考虑,比如可以做信号制式的识别,协议参数的识别
源码请通过文首链接下载!!!!!创作不易,请留下一个赞赞!!十分感谢!!