1.软件版本
matlaba
2.部分核心代码
clear variables;close all;load('TrainingData.mat');load('ValidationData.mat');%% Define training parametersMiniBatchSize = 1000;MaxEpochs = 100;InputSize = 2*NumOFDMsym*NumSC;NumHiddenUnits = 16;NumClass = length(Label);Layers = [ ...sequenceInputLayer(InputSize)lstmLayer(NumHiddenUnits,'OutputMode','last')fullyConnectedLayer(NumClass)softmaxLayerclassificationLayer];Options = trainingOptions('adam',...'InitialLearnRate',0.01,...'ValidationData',{XValid,YValid}, ...'ExecutionEnvironment','auto', ...'GradientThreshold',1, ...'LearnRateDropFactor',0.1,...'MaxEpochs',MaxEpochs, ...'MiniBatchSize',MiniBatchSize, ...'Shuffle','every-epoch', ...'Verbose',0,...'Plots','training-progress');%% Train DNNNet = trainNetwork(XTrain,YTrain,Layers,Options);save('TrainedNet','Net','MiniBatchSize');
3.操作步骤与仿真结论
4.参考文献
[1]刘步花, 丁丹, 杨柳. 基于DNN的OFDM系统非线性失真补偿[J]. 现代电子技术, , 44(5):4.D236