主要内容

光谱遥感雷达和无线通信的深度学习

这个例子展示了如何使用语义分割进行频谱感知神经网络训练与合成雷达和无线通信信号。经过训练的神经网络可以识别雷达和无线通信信号出现在相同的频谱。此外,占用带宽的网络可以识别接收到的信号。

介绍

由于增加要求更高的速度和更大的覆盖面,现代无线通信系统正朝着更高的频带带宽和更大的信号。这些更高的频段范围传统上所使用的雷达系统。因此,雷达系统和无线通信系统的频谱重叠,使频谱共享的必要性。这就要求未来的雷达和无线通信系统包括频谱感知检测占领空间,以避免冲突。这个例子展示了如何建模光谱传感系统。我们首先合成一个数据集,由雷达和无线通讯信号。这些数据用于训练和测试深度学习网络。然后训练网络用于识别信号和对应的占领了这些信号的带宽。

安装现场

考虑一个机场监视雷达位于原点的场景。雷达在2.8 GHz和使用反射器天线增益为32.8 dB。传输功率设置为25千瓦。

%设置波形fc = 2.8 e9;%中心频率(赫兹)fs = 61.44 e6;%采样频率(赫兹)脉冲重复频率= fs /装天花板(fs / 1050);%脉冲重复频率(赫兹)脉冲宽度= 1 e-06;% pulsewdith [s]wav = phased.RectangularWaveform (“SampleRate”fs,“脉冲宽度”脉冲宽度,脉冲重复频率的脉冲重复频率,“NumPulses”3);%安装天线rad = 2.5;%半径[m]flen = 2.5;%焦距[m]antele =设计(reflectorParabolic (“激励”角),fc);antele.Exciter.Tilt = 90;antele.Exciter。TiltAxis = (0 0 1);antele.Tilt = 90;antele。TiltAxis = (0 0 1);antele.Radius = rad;antele.FocalLength = flen;蚂蚁= phased.ConformalArray (“元素”,antele);%设置发射机和接收机power_ASR = 25000;% [W]传输能量gain_ASR = 32.8;%传输增益(dB)radartx = phased.Transmitter (“PeakPower”power_ASR,“获得”,gain_ASR);

自5 g LTE雷达信号出现在附近的机场,我们定义一组信号对这些无线标准使用5 g的工具箱和LTE工具箱。更多的细节如何生成这些类型的信号,请参考示例“频谱感应与深度学习识别5 g LTE信号”。

无线信号的增益和发射机的力量可能会改变从帧到帧。接收器是假定为随机放置在一个2公里x 2公里地区和配备各向同性天线。

rxpos_horiz_minmax = (-1000 - 1000);rxpos_vert_minmax = [0 2000];

该地区还包含许多散射使传播渠道在更具挑战性。在这个例子中,我们假设通道包含30散射,随机分布在该地区。您可以使用分阶段。ScatteringMIMOChannel模拟散射。

%定义雷达位置radartxpos = [0 0 15] ';radartxaxes = rotz (0);radarchan = phased.ScatteringMIMOChannel (“TransmitArray”蚂蚁,“ReceiveArray”phased.ConformalArray (“元素”phased.IsotropicAntennaElement),“CarrierFrequency”足球俱乐部,“SpecifyAtmosphere”,真的,“SampleRate”fs,“SimulateDirectPath”假的,“MaximumDelaySource”,“属性”,“MaximumDelay”,1“TransmitArrayMotionSource”,“属性”,“TransmitArrayPosition”radartxpos,“TransmitArrayOrientationAxes”radartxaxes,“ReceiveArrayMotionSource”,输入端口的,“ScattererSpecificationSource”,输入端口的);%定义无线发射机的位置commtxpos = (200 0 450) ';commtxaxes = rotz (0);commchan = phased.ScatteringMIMOChannel (“TransmitArray”phased.ConformalArray (“锥”10),“ReceiveArray”phased.ConformalArray (“元素”phased.IsotropicAntennaElement),“CarrierFrequency”足球俱乐部,“SpecifyAtmosphere”,真的,“SampleRate”fs,“SimulateDirectPath”假的,“MaximumDelaySource”,“属性”,“MaximumDelay”,1“TransmitArrayMotionSource”,“属性”,“TransmitArrayPosition”commtxpos,“TransmitArrayOrientationAxes”commtxaxes,“ReceiveArrayMotionSource”,输入端口的,“ScattererSpecificationSource”,输入端口的);

生成的训练数据

生成训练数据,定义数据文件夹和类名称仅供噪声数据,LTE数据,5 g NR数据和雷达数据。因为我们正在寻找波形类型和占用带宽,下面的helper函数生成一个谱图。

%生成的数据的数量numTrainingData = 500;图象尺寸= (256 - 256);%定义数据目录一会= [“噪音”“LTE”“NR”“雷达”];pixelLabelID = [0 1 2 3];useDownloadedDataSet = true;saveFolder = tempdir;trainingFolder = fullfile (saveFolder,“RadarCommTrainData”);如果~ useDownloadedDataSet%生成数据helperGenerateRadarCommData (fs, wav, radartx、radarchan commchan, rxpos_horiz_minmax, rxpos_vert_minmax, numTrainingData, trainingFolder,图象尺寸);其他的dataURL =“https://ssd.mathworks.com/金宝appsupportfiles/phased/data/RadarCommSpectrumSensingData.zip”;zipFile = fullfile (saveFolder,“RadarCommSpectrumSensingData.zip”);如果~存在(zipFile“文件”)websave (zipFile dataURL);%解压数据解压缩(zipFile saveFolder)结束结束

负荷训练数据

使用imageDatastore函数加载训练图像和雷达和无线通信信号的谱图。的imageDatastore功能使您能够有效地从磁盘加载大量的图像。光谱图图片存储在. png文件。

%的数据trainingFolder = fullfile (saveFolder,“RadarCommTrainData”);imd = imageDatastore (trainingFolder,“IncludeSubfolders”假的,“FileExtensions”,“使用”);

为每个信号,标签被占领的带宽使用pixelLabelDatastore(计算机视觉工具箱)函数加载谱图像素标签图像数据。光谱图中的每个像素图像被贴上“雷达”之一,“NR”、“LTE”或“噪声”类别。一个像素标签数据存储封装了像素标签数据和标签ID到一个类名称映射。像素标签存储在.hdf文件。

%的标签pixelLabelID pxdsTruth = pixelLabelDatastore (trainingFolder,一会,“IncludeSubfolders”假的,“FileExtensions”,“.hdf”);

统计分析数据集

看到类标签的训练数据集的分布,使用countEachLabel(计算机视觉工具箱)函数来计算像素的数量的类标签,和情节类的像素数量。

台= countEachLabel (pxdsTruth);频率= tbl.PixelCount /笔(tbl.PixelCount);图酒吧(1:元素个数(类名),频率)
警告:MATLAB禁用一些高级图形渲染功能,切换到软件OpenGL。的更多信息,请点击< a href = " matlab: opengl(问题)" > < / >。
网格xticks(1:元素个数(类名)xticklabels (tbl.Name) xtickangle (45) ylabel (“频率”)

准备培训,验证集和测试集

深层神经网络使用80%的单一信号图像数据集的训练和20%的图像进行验证。的helperSpecSensePartitionData随机函数将图像和像素标签数据分为训练集和验证集。

[imdsTrain, pxdsTrain imdsVal pxdsVal] = helperRadarCommPartitionData (imd, pxdsTruth 20 [80]);cdsTrain = pixelLabelImageDatastore (imdsTrain pxdsTrain,“OutputSize”、图象尺寸);cdsVal = pixelLabelImageDatastore (imdsVal pxdsVal,“OutputSize”、图象尺寸);

深层神经网络训练

使用deeplabv3plusLayers(计算机视觉工具箱)函数创建一个语义神经网络分割。选择resnet50(深度学习工具箱)为基础网络和指定输入图像大小(数量的像素用于表示时间和频率轴)和类的数量。如果深度学习工具箱™模型ResNet-50网络金宝app支持包没有安装,那么函数提供了一个链接到需要在插件浏览器支持包。安装支持包,单击该链接,然后单金宝app击安装。通过输入检查安装是否成功resnet50在命令行中。如果所需的支持包安装,那么函数返金宝app回DAGNetwork(深度学习工具箱)对象。

baseNetwork =“resnet50”;lgraph = deeplabv3plusLayers(图象尺寸,元素个数(类名),baseNetwork);

平衡类使用类权重

改善训练在训练集不平衡类时,您可以使用类加权平衡类。与早些时候使用像素标签数量计算countEachLabel函数和计算中值频率类权重。

imageFreq =(资源。PixelCount。/ tbl.ImagePixelCount;classWeights =值(imageFreq)。/ imageFreq;

使用指定的类权重pixelClassificationLayer(计算机视觉工具箱)

pxLayer = pixelClassificationLayer (“名字”,“标签”,“类”tbl.Name,“ClassWeights”,classWeights);lgraph = replaceLayer (lgraph,“分类”,pxLayer);

选择培训选项

配置培训使用trainingOptions(深度学习工具箱)函数来指定随机梯度下降法与动量(个)优化算法和hyper-parameters用于个。从网络获得最佳性能,您可以使用实验管理器(深度学习工具箱)优化培训方案。

选择= trainingOptions (“个”,MiniBatchSize = 40,MaxEpochs = 40,LearnRateSchedule =“分段”,InitialLearnRate = 0.02,LearnRateDropPeriod = 10,LearnRateDropFactor = 0.1,ValidationData = cdsVal,ValidationPatience = 5,洗牌=“every-epoch”,情节=“训练进步”,ExecutionEnvironment =“汽车”);

列车网络利用训练数据存储相结合,cdsTrain。合并后的训练数据存储包含单一信号帧和真正的像素标签。培训进度的一个例子是如下图所示。

radarCommDLTraining.PNG

如果你想训练网络,集trainNow真正的。否则,这个例子将加载一个pre-trained网络。

trainNow = false;如果trainNow[净,trainInfo] = trainNetwork (cdsTrain lgraph,选择);% #好< UNRCH >其他的负载(fullfile (saveFolder“helperRadarCommTrainedNet.mat”),“净”);结束

测试合成信号

测试网络信号识别性能使用信号包含5 g NR, LTE和雷达信号。使用semanticseg(计算机视觉工具箱)函数来获得光谱图图像的像素估计在测试数据集,使用evaluateSemanticSegmentation(计算机视觉工具箱)函数来计算各种指标来评估语义分割结果的质量。

%生成测试数据numTestData = 100;testFolder = fullfile (saveFolder,“RadarCommTestData”);如果~ useDownloadedDataSet helperGenerateRadarCommData (fs, wav, radartx、radarchan commchan, rxpos_horiz_minmax, rxpos_vert_minmax, numTestData, testFolder,图象尺寸);结束
%准备和测试的测试数据imd = imageDatastore (testFolder,“IncludeSubfolders”假的,“FileExtensions”,“使用”);pxdsResults = semanticseg (imd,净,“WriteLocation”saveFolder,“ExecutionEnvironment”,“汽车”);
运行的语义分割网络- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * 588张图片处理。
% Prep地面实况测试标签pixelLabelID pxdsTruth = pixelLabelDatastore (testFolder,一会,“IncludeSubfolders”假的,“FileExtensions”,“.hdf”);指标= evaluateSemanticSegmentation (pxdsResults pxdsTruth);
评估语义分割结果- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *选定指标:全球准确性、类准确性,借据,加权借据,BF的分数。* 588(加工)图像。*完成……完成了。*数据集指标:GlobalAccuracy MeanAccuracy MeanIoU WeightedIoU _______ MeanBFScore * * *…………0.9035 0.91356 0.73372 0.83048南

               

情节的规范化混淆矩阵测试框架。

厘米= confusionchart (metrics.ConfusionMatrix.Variables,一会,正常化=“row-normalized”);厘米。Title =规范化的混淆矩阵的;

情节每张图象的直方图相交在联盟(借据)。对于每个类,借据是正确分类像素总数的比例地面实况,并预测像素的类。

imageIoU = metrics.ImageMetrics.MeanIoU;网格图直方图(imageIoU)包含(“借据”)ylabel (的帧数的)标题(“框架意味着借据”)

识别雷达、5 g NR和LTE信号声谱图

可视化得到光谱,真正的标签,并预测142年图像索引标签。我们可以看到,网络正确挑选了雷达信号从无线communicatino信号。

imgIdx = 142;imgIdx rcvdSpectrogram = readimage (imd);trueLabels = readimage (pxdsTruth imgIdx);predictedLabels = readimage (pxdsResults imgIdx);图helperSpecSenseDisplayResults (rcvdSpectrogram trueLabels predictedLabels,一会,fs, 0,1 /脉冲重复频率)


               

结论

经过训练的网络可以分辨雷达和无线通信信号。网络可能无法正确识别每一个捕获信号。在这种情况下,提高了训练数据生成更具代表性合成的信号或捕获无线信号,包括这些训练集。