主要内容

设计一个深层神经网络检测WLAN路由器模拟与模拟数据

这个例子展示了如何设计一个无线电频率(RF)指纹卷积神经网络(CNN)和模拟数据。你训练的CNN模拟无线局域网(WLAN)信标帧从已知和未知路由器射频指纹识别。然后比较收到的媒体访问控制(MAC)地址信号和射频指纹CNN检测WLAN路由器检测到的模仿者。

为更多的信息关于如何测试设计神经网络与信号捕获的wi - fi路由器®,看到测试一个深神经网络获取的数据来检测WLAN路由器扮演的例子。

使用射频指纹检测路由器的模拟

路由器模拟是一种攻击一个WLAN网络恶意代理试图扮演一个合法的路由器和网络用户连接到它。安全标识解决方案基于简单的数字标识符,如MAC地金宝搏官方网站址,IP地址,名称,没有有效地检测这样的攻击。这些标识符很容易欺骗。因此,一个更安全的解决方案使用其他信息,如射频无线电的签名,除了这些简单的数字标识符。

一对无线收发两用机创造了一个独特的射频信号在接收机通道的组合和射频损伤。射频指纹识别就是区分发射无线电的过程在一个共享频谱通过这些签名。在[1],作者设计了一个深度学习(DL)网络,使用原始基带同步/正交(智商)样品和标识无线发送。网络可以识别传输无线电射频损伤是显性的或通道配置文件在操作期间保持不变。大多数WLAN网络固定路由器创建一个静态信道配置文件时,接收机的位置也是固定的。在这种情况下,深入学习网络可以识别路由器模仿者通过比较接收到的信号的射频指纹和MAC地址对已知的路由器。

这个例子模拟WLAN系统与几个固定的路由器和一个固定的观察者使用WLAN工具箱™和训练一个神经网络(NN)与模拟数据使用深度学习工具箱™。

系统描述

假设一个室内空间与一些可信的路由器与已知的MAC地址,我们将称之为路由器。同时,假设未知的路由器可以进入观察区,其中一些可能是路由器模仿者。类“未知”代表任何传输设备,不包含在已知的设置。下图显示了一个场景,有三个已知的路由器。观察者收集non-high吞吐量(non-HT)信标信号从这些路由器和使用(遗留)培训领域(L-LTF)来识别射频指纹。L-LTF传输信号是相同的所有路由器,使该算法避免任何数据依赖性。由于路由器和观察者是固定的,射频指纹(多路径通道配置文件和射频损伤)RF1, RF2, RF3不变化。未知的路由器数据是一组随机射频指纹,也不同于已知的路由器。

下面的图显示了一个用户连接到一个路由器和一个移动热点。培训之后,观察者接收信标帧和解码的MAC地址。另外,观察者提取L-LTF信号,并使用这个信号的射频指纹分类信标帧的来源。如果MAC地址和射频指纹匹配,如路由器1的情况下,路由器2,和Router3,那么观察者声明源作为一个“已知”路由器。如果没有灯塔的MAC地址的数据库和射频指纹不匹配的任何已知的路由器,在移动热点的情况下,那么观察者声明源作为一个“未知”路由器。

下面的图显示了一个路由器冒名顶替者。一个路由器冒名顶替者(又名邪恶的双胞胎)可以复制一个已知的路由器的MAC地址和发送信标帧。然后,黑客可以堵塞原来的路由器,迫使用户连接到邪恶的双胞胎。观察者接收到信标帧的邪恶的双胞胎也和解码的MAC地址。解码MAC地址匹配一个已知的路由器的MAC地址,但射频指纹不匹配。《观察家报》宣称源作为一个路由器冒名顶替者。

设置系统参数

生成一个数据集的每个路由器5000 Non-HT WLAN信标帧。对已知的路由器使用MAC地址标签;剩下的标签为“未知”。一个神经网络训练分类已知路由器以及发现任何未知的。将数据集分为训练、验证和测试,分裂的比率是80%,10%,和10%,分别。考虑一个20 dB的信噪比,在5 GHz乐队。模拟设备的数量设置为4,但可以修改通过选择一个不同的值numKnownRouters。设置未知的路由器的数量超过已知的代表数据集的可变性未知路由器射频指纹。

numKnownRouters = 4;numUnknownRouters = 10;numTotalRouters = numKnownRouters + numUnknownRouters;信噪比= 20;% dBchannelNumber = 153;% WLAN通道数量channelBand = 5;% GHzframeLength = 160;% L-LTF序列长度的样品

默认情况下,这个示例下载训练数据和训练网络//www.tatmou.com/金宝appsupportfiles/spc/RFFingerprinting/RFFingerprintingSimulatedData.tar.gz。如果你没有一个互联网连接,您可以下载的文件在电脑上手动连接到互联网和保存到当前示例文件相同的目录中。

快速运行这个例子,请下载pretrained网络并生成少量的框架,例如10。培训网络在你的电脑,选择“现在列车网络”选项(即集trainNow为true)。生成5000帧的数据大约需要50分钟在Intel®CPU @ 3.6 GHz Xeon®w - 2133和64 MB内存。培训这个网络需要大约5分钟的NVIDIA GPU®泰坦Xp。培训一个CPU可能导致很长的训练时间。

trainNow =;如果trainNow numTotalFramesPerRouter = 5000;% #好< UNRCH >其他的numTotalFramesPerRouter = 10;rfFingerprintingDownloadData (“模拟”)结束
开始下载的数据文件://www.tatmou.com/supportfiles/spc/RFFingerpri金宝appnting/RFFingerprintingSimulatedData.tar.gz下载和提取文件完成
numTrainingFramesPerRouter = numTotalFramesPerRouter * 0.8;numValidationFramesPerRouter = numTotalFramesPerRouter * 0.1;numTestFramesPerRouter = numTotalFramesPerRouter * 0.1;

生成WLAN波形

802.11 wi - fi路由器实现/ g / n /交流协议传输5 GHz乐队的信标帧广播他们的存在和功能使用OFDM non-HT格式。信标帧包含两个主要部分:序言(同步)和有效载荷(数据)。中有两个部分:短期培训与长期培训。在这个例子中,载荷包含相同的比特除了每个路由器的MAC地址。CNN使用L-LTF序言作为培训单元的一部分。重用L-LTF信号的射频指纹识别提供了一种overhead-free指纹识别解决方案。使用wlanMACFrameConfig(WLAN工具箱),wlanMACFrame(WLAN工具箱),wlanNonHTConfig(WLAN工具箱),wlanWaveformGenerator(WLAN工具箱)函数来生成WLAN信标帧。

%创建信标肋骨配置对象frameBodyConfig = wlanMACManagementConfig;%创建信标帧配置对象beaconFrameConfig = wlanMACFrameConfig (“FrameType”,“灯塔”,“ManagementConfig”,frameBodyConfig);%生成信标帧比特[~,mpduLength] = wlanMACFrame (beaconFrameConfig,“OutputFormat”,“位”);%创建一个wlanNONHTConfig对象,使用20 MHz带宽和MCS 1nonHTConfig = wlanNonHTConfig (“ChannelBandwidth”,“CBW20”,“主持人”,1“PSDULength”,mpduLength);

rfFingerprintingNonHTFrontEnd对象执行前端处理包括提取L-LTF信号。对象配置了一个通道处理non-HT 20赫兹的带宽信号。

rxFrontEnd = rfFingerprintingNonHTFrontEnd (“ChannelBandwidth”,“CBW20”);fc = wlanChannelFrequency (channelNumber channelBand);fs = wlanSampleRate (nonHTConfig);

设置通道和射频损伤

每一帧通过一个通道

  • 瑞利多径衰落

  • 无线电障碍,如相位噪声、频率偏移和直流偏置

  • 情况下

瑞利多径和AWGN

通道传递的信号通过瑞利多径衰落信道使用comm.RayleighChannel系统对象™。假设一个延迟的[0 1.8 - 3.4]样本对应的平均路径获得0 2 -10 dB。由于信道是静态的,设置最大的多普勒频移为零,确保不会改变为同一广播频道。实现多路径通道与这些设置。添加噪声使用情况下函数,

multipathChannel = comm.RayleighChannel (“SampleRate”fs,“PathDelays”[0,1.8 - 3.4)/ fs,“AveragePathGains”(0 -10),“MaximumDopplerShift”,0);

无线电障碍

射频损伤,及其相应的值的范围:

  • 相位噪声[0.01,0.3]rms(度)

  • 频率偏移(4,4)ppm

  • 直流偏置(-50、-32):dBc

看到helperRFImpairments函数射频损伤模拟的更多细节。这个函数使用comm.PhaseFrequencyOffsetcomm.PhaseNoise系统对象。

phaseNoiseRange = [0.01, 0.3];freqOffsetRange = (4, 4);dcOffsetRange = (-50、-32);rng (123456)%解决随机发生器%将随机缺陷分配给每个模拟无线电在前面%定义范围radioImpairments = repmat (结构(“PhaseNoise”0,“DCOffset”0,“FrequencyOffset”0),numTotalRouters, 1);routerIdx = 1: numTotalRouters radioImpairments (routerIdx)。PhaseNoise =兰特* (phaseNoiseRange (2) -phaseNoiseRange (1) + phaseNoiseRange (1);radioImpairments (routerIdx)。DCOffset =兰特* (dcOffsetRange (2) -dcOffsetRange (1) + dcOffsetRange (1);radioImpairments (routerIdx)。FrequencyOffset =fc / 1 e6 *(兰德* (freqOffsetRange (2) -freqOffsetRange (1) + freqOffsetRange (1));结束

通道障碍并生成数据帧申请培训

应用前面定义的射频和通道障碍。重置每个电台的通道对象生成一个独立的通道。使用rfFingerprintingNonHTFrontEnd函数来处理接收到的帧。最后,从每一个提取L-LTF WLAN传输框架。收到L-LTF信号分割成训练,验证集和测试集。

%创建变量,存储训练、验证和测试%的数据集xTrainingFrames = 0 (frameLength, numTrainingFramesPerRouter * numTotalRouters);xValFrames = 0 (frameLength, numValidationFramesPerRouter * numTotalRouters);xTestFrames = 0 (frameLength, numTestFramesPerRouter * numTotalRouters);%索引向量训练集,验证集和测试数据单位trainingIndices = 1: numTrainingFramesPerRouter;validationIndices = 1: numValidationFramesPerRouter;testIndices = 1: numTestFramesPerRouter;抽搐generatedMACAddresses =字符串(numTotalRouters, 1);rxLLTF = 0 (frameLength numTotalFramesPerRouter);%接收L-LTF序列routerIdx = 1: numTotalRouters%生成一个12位数的随机十六进制数的MAC地址%的路由器。设置所有未知的路由器的MAC地址%的“AAAAAAAAAAAA”。如果(routerIdx < = numKnownRouters) generatedMACAddresses (routerIdx) =字符串(dec2hex (bi2de (randi ([0 1] 12 4))) ');其他的generatedMACAddresses (routerIdx) =“AAAAAAAAAAAA”;结束elapsedTime =秒(toc);elapsedTime。格式=“hh: mm: ss”;流(' % s -路由器生成帧与MAC地址% d % s \ n”,elapsedTime、routerIdx generatedMACAddresses (routerIdx))%设置MAC地址到wlanFrameConfig对象beaconFrameConfig。Address2 = generatedMACAddresses (routerIdx);%生成信标帧比特灯塔= wlanMACFrame (beaconFrameConfig,“OutputFormat”,“位”);txWaveform = wlanWaveformGenerator(信标,nonHTConfig);txWaveform = helperNormalizeFramePower (txWaveform);%添加0占通道延迟txWaveform = [txWaveform;0 (160 1)];% #好< AGROW >%重置multipathChannel对象生成一个新的静态通道重置(multipathChannel) frameCount = 0;frameCount < numTotalFramesPerRouter rxMultipath = multipathChannel (txWaveform);rxImpairment = helperRFImpairments (rxMultipath radioImpairments (routerIdx), fs);rxSig = awgn (rxImpairment、信噪比、0);%检测无线局域网数据包并返回收到L-LTF信号使用% rfFingerprintingNonHTFrontEnd对象(有效,~,~,~,~,LLTF] = rxFrontEnd (rxSig);%保存成功收到L-LTF信号如果有效frameCount = frameCount + 1;rxLLTF (:, frameCount) = LLTF;结束如果国防部(frameCount 500) = = 0 elapsedTime =秒(toc);elapsedTime。格式=“hh: mm: ss”;流(' % s - \ n % d / % d帧生成的,frameCount elapsedTime, numTotalFramesPerRouter)结束结束rxLLTF = rxLLTF (:, randperm (numTotalFramesPerRouter));%将数据分为训练、验证和测试xTrainingFrames (:, trainingIndices + (routerIdx-1) * numTrainingFramesPerRouter)= rxLLTF (:, trainingIndices);xValFrames (:, validationIndices + (routerIdx-1) * numValidationFramesPerRouter)= rxLLTF (:, validationIndices + numTrainingFramesPerRouter);xTestFrames (:, testIndices + (routerIdx-1) * numTestFramesPerRouter)= rxLLTF (: testIndices + numTrainingFramesPerRouter + numValidationFramesPerRouter);结束
就是——为路由器生成帧1与MAC地址4 da3ee3c8968就是——为路由器2与MAC地址生成帧B1077CFE3777就是——为路由器生成帧3 MAC地址DB28133A97BF就是路由器4 -生成帧与MAC地址B8AF375DAC0F 00:00:01 -路由器生成帧5与MAC地址AAAAAAAAAAAA 00:00:01——为路由器生成框架6 MAC地址AAAAAAAAAAAA 00:00:01——为路由器生成帧7 MAC地址AAAAAAAAAAAA 00:00:01 -路由器生成帧8与MAC地址AAAAAAAAAAAA 00:00:02——为路由器9与MAC地址生成帧AAAAAAAAAAAA 00:00:02 - 10为路由器生成帧与MAC地址AAAAAAAAAAAA 00:00:02——为路由器生成帧11 MAC地址AAAAAAAAAAAA 00:00:02——为路由器生成帧12与MAC地址AAAAAAAAAAAA 00:00:02 - 13为路由器生成帧MAC地址AAAAAAAAAAAA 00:00:02——生成帧与MAC地址AAAAAAAAAAAA路由器14
%标签接收帧。标签第一numKnownRouters MAC%的地址。标签的其他“未知”。标签= generatedMACAddresses;标签(generatedMACAddresses = = generatedMACAddresses (numTotalRouters)) =“未知”;yTrain = repelem(标签,numTrainingFramesPerRouter);yVal = repelem(标签,numValidationFramesPerRouter);欧美= repelem(标签,numTestFramesPerRouter);

创建实值输入矩阵

深度学习模型只适用于实数。因此,我和Q分成两个单独的列。然后,数据重新排列成一个frameLength X 2 X 1 X numFrames数组,根据深度学习工具箱。此外,训练集是打乱,标签变量保存为分类变量。

%重新排列数据集到一个列向量xTrainingFrames = xTrainingFrames (:);xValFrames = xValFrames (:);xTestFrames = xTestFrames (:);% I和Q之间的分离xTrainingFrames =[真实(xTrainingFrames),图像放大(xTrainingFrames)];xValFrames =[真实(xValFrames),图像放大(xValFrames)];xTestFrames =[真实(xTestFrames),图像放大(xTestFrames)];%重塑训练数据到一个frameLength x 2 x 1 x% numTrainingFramesPerRouter * numTotalRouters矩阵xTrainingFrames =交换(重塑(xTrainingFrames [frameLength numTrainingFramesPerRouter * numTotalRouters 2,1)),(1 2 3 4));%洗牌数据vr = randperm (numTotalRouters * numTrainingFramesPerRouter);xTrainingFrames = xTrainingFrames (::,:, vr);%创建标签向量和洗牌yTrain =分类(yTrain (vr));%重塑验证数据到一个frameLength x 2 x 1 x% numValidationFramesPerRouter * numTotalRouters矩阵xValFrames =交换(重塑(xValFrames [frameLength numValidationFramesPerRouter * numTotalRouters 2,1)),(1 2 3 4));%创建标签向量yVal =分类(yVal);%重塑测试数据集到numTestFramesPerRouter * numTotalRouter矩阵xTestFrames =交换(重塑(xTestFrames [frameLength numTestFramesPerRouter * numTotalRouters 2,1)),(1 2 3 4));% #好< NASGU >%创建标签向量欧美=分类(欧美);% #好< NASGU >

训练神经网络

这个示例使用神经网络(NN)体系结构包括两个卷积和三个完全连接层。这个设计背后的直觉是,第一层将在我学习独立特性,问:注意过滤器的大小是1 x7。然后,下一层将使用一个过滤器的大小2 x7提取特征结合我和一起问。最后,最后三个完全连接层行为作为分类器使用提取的特性在前一层[1]

poolSize = 1 [2];strideSize = 1 [2];层= [imageInputLayer ([frameLength 2 1],“归一化”,“没有”,“名字”,输入层的1)convolution2dLayer([7], 50岁,“填充”(1 0),“名字”,“CNN1”)batchNormalizationLayer (“名字”,“BN1”)leakyReluLayer (“名字”,“LeakyReLu1”)maxPooling2dLayer (poolSize“步”strideSize,“名字”,“MaxPool1”)convolution2dLayer(2[7], 50岁,“填充”(1 0),“名字”,“CNN2”)batchNormalizationLayer (“名字”,“BN2”)leakyReluLayer (“名字”,“LeakyReLu2”)maxPooling2dLayer (poolSize“步”strideSize,“名字”,“MaxPool2”)fullyConnectedLayer (256,“名字”,“FC1”)leakyReluLayer (“名字”,“LeakyReLu3”)dropoutLayer (0.5,“名字”,“DropOut1”)fullyConnectedLayer (80,“名字”,“取得”)leakyReluLayer (“名字”,“LeakyReLu4”)dropoutLayer (0.5,“名字”,“DropOut2”)fullyConnectedLayer (numKnownRouters + 1,“名字”,“一个FC3”文件)softmaxLayer (“名字”,“SoftMax”)classificationLayer (“名字”,“输出”)]
层= 18×1层阵列层:输入层的图像输入160×2×1图片2的CNN1卷积50 7×1旋转步[1]和填充[1 1 0 0]3“BN1”批量标准化批量标准化4“LeakyReLu1”漏ReLU漏ReLU规模0.01 5“MaxPool1”马克斯池2×1马克斯池步(2 - 1)和填充[0 0 0 0]6‘CNN2卷积50 7×2旋转步[1]和填充[1 1 0 0]7“BN2”批量标准化批量标准化8“LeakyReLu2”漏ReLU漏ReLU规模0.01 9“MaxPool2”马克斯池2×1马克斯池步(2 - 1)和填充[0 0 0 0]10“FC1”完全连接256完全连接层11的LeakyReLu3漏ReLU漏ReLU规模0.01 12“DropOut1”辍学50%辍学13 FC2的完全连接80完全连接层14“LeakyReLu4”漏ReLU漏ReLU规模0.01 15“DropOut2”辍学50% 16岁辍学的一个FC3的文件完全连接5完全连接层17‘SoftMax SoftMax SoftMax crossentropyex 18“输出”分类输出

配置培训选项使用亚当优化器mini-batch大小为256。默认情况下,“ExecutionEnvironment”设置为“自动”,它使用一个GPU培训是可用的。否则,trainNetwork(深度学习工具箱)使用一个CPU进行训练。显式地设置执行环境,设定ExecutionEnvironment“之一”cpu”、“gpu”、“multi-gpu”,或“平行”。选择“cpu“可能导致很长的训练时间。

如果trainNow miniBatchSize = 256;% #好< UNRCH >%培训选项选择= trainingOptions (“亚当”,“MaxEpochs”,100,“ValidationData”{xValFrames, yVal},“ValidationFrequency”、地板(numTrainingFramesPerRouter * numTotalRouters / miniBatchSize / 3),“详细”假的,“L2Regularization”,0.0001,“InitialLearnRate”,0.0001,“MiniBatchSize”miniBatchSize,“ValidationPatience”3,“阴谋”,“训练进步”,“洗牌”,“every-epoch”);%训练网络simNet = trainNetwork (xTrainingFrames、yTrain层,选择);其他的%负载训练网络(simNet), (xTestFrames和测试数据集%欧美)和使用MACAddresses (generatedMACAddresses)负载(“rfFingerprintingSimulatedDataTrainedNN.mat”,“generatedMACAddresses”,“simNet”,“xTestFrames”,“次”)结束

培训的情节进展显示,网络收敛在大约2时代几乎100%的准确率。

分类测试框架和计算神经网络的最终精度。

%获得xTestFrames预测类yTestPred =分类(simNet xTestFrames);%计算测试精度testAccuracy =意味着(欧美= = yTestPred);disp (“测试精度:“+ testAccuracy * 100 +“%”)
测试精度:100%

情节的混淆矩阵测试框架。如前所述,完美实现分类精度与合成数据集。

图厘米= confusionchart(欧美,yTestPred);厘米。Title =测试数据的混淆矩阵的;厘米。RowSummary =“row-normalized”;

检测路由器冒名顶替者

生成信标帧与已知的MAC地址和一个未知的MAC地址。生成一个新的套射频损伤和多路径通道。自障碍都是新的,这些帧的射频指纹应该归类为“未知”。与已知的MAC地址帧代表路由器模仿者而帧与未知的MAC地址只是未知的路由器。

framesPerRouter = 4;knownMACAddresses = generatedMACAddresses (1: numKnownRouters);%将随机缺陷分配给每个模拟无线电在前面%定义范围routerIdx = 1: numTotalRouters radioImpairments (routerIdx)。PhaseNoise =rand*( phaseNoiseRange(2)-phaseNoiseRange(1) ) + phaseNoiseRange(1); radioImpairments(routerIdx).DCOffset = rand*( dcOffsetRange(2)-dcOffsetRange(1) ) + dcOffsetRange(1); radioImpairments(routerIdx).FrequencyOffset = fc/1e6*(rand*( freqOffsetRange(2)-freqOffsetRange(1) ) + freqOffsetRange(1));结束%重置multipathChannel对象生成一个新的静态通道重置(multipathChannel)%所有已知的路由器和一个未知数macIndex = 1:(numKnownRouters + 1) beaconFrameConfig。Address2 = generatedMACAddresses (macIndex);%生成信标帧比特灯塔= wlanMACFrame (beaconFrameConfig,“OutputFormat”,“位”);txWaveform = wlanWaveformGenerator(信标,nonHTConfig);txWaveform = helperNormalizeFramePower (txWaveform);%添加0占通道延迟txWaveform = [txWaveform;0 (160 1)];% #好< AGROW >%创建一个看不见的多路径通道。换句话说,创建一个看不见的%射频指纹。重置(multipathChannel) frameCount = 0;frameCount < framesPerRouter rxMultipath = multipathChannel (txWaveform);rxImpairment = helperRFImpairments (rxMultipath radioImpairments (routerIdx), fs);rxSig = awgn (rxImpairment、信噪比、0);%检测无线局域网数据包并返回收到L-LTF信号使用% rfFingerprintingNonHTFrontEnd对象[payloadFull, cfgNonHT rxNonHTData,成龙,noiseVar, LLTF] =rxFrontEnd (rxSig);如果payloadFull frameCount = frameCount + 1;recBits = wlanNonHTDataRecover (rxNonHTData,陈,noiseVar cfgNonHT,“EqualizationMethod”,“ZF”);%解码和评估恢复部分mpduCfg = wlanMPDUDecode (recBits cfgNonHT);%分开我对神经网络和Q和重塑LLTF =[真实(LLTF),图像放大(LLTF)];LLTF =排列(重塑(LLTF frameLength, [], 2, - 1), (1 2 3 4));ypred =分类(simNet LLTF);如果金额(包含(knownMACAddresses mpduCfg.Address2)) ~ = 0如果分类(convertCharsToStrings (mpduCfg.Address2)) ~ = ypred disp (strcat (“MAC地址”mpduCfg.Address2,“指纹不匹配,路由器发现冒名顶替者”))其他的disp (strcat (“MAC地址”mpduCfg.Address2,“众所周知,指纹匹配”))结束其他的disp (strcat (“MAC地址”mpduCfg.Address2,“不认识,未知设备”))结束结束%重置multipathChannel对象生成一个新的静态通道重置(multipathChannel)结束结束
MAC地址09 c551658660,指纹不匹配,路由器冒名顶替者检测MAC地址09 c551658660,指纹不匹配,路由器冒名顶替者检测MAC地址09 c551658660,指纹不匹配,路由器冒名顶替者检测MAC地址09 c551658660,指纹不匹配,路由器冒名顶替者检测MAC地址CDECF20C29CA,指纹不匹配,路由器冒名顶替者检测MAC地址CDECF20C29CA,指纹不匹配,路由器冒名顶替者检测MAC地址CDECF20C29CA,指纹不匹配,路由器冒名顶替者检测MAC地址CDECF20C29CA,指纹不匹配,路由器冒名顶替者检测MAC地址DF56A9E15405,指纹不匹配,路由器冒名顶替者检测MAC地址DF56A9E15405,指纹不匹配,路由器冒名顶替者检测MAC地址DF56A9E15405,指纹不匹配,路由器冒名顶替者检测MAC地址DF56A9E15405,指纹不匹配,路由器冒名顶替者检测MAC地址EDC4537D86B1,指纹不匹配,路由器冒名顶替者检测MAC地址EDC4537D86B1,指纹不匹配,路由器冒名顶替者检测MAC地址EDC4537D86B1,指纹不匹配,路由器冒名顶替者检测MAC地址EDC4537D86B1,指纹不匹配,路由器发现冒名顶替者
MAC地址AAAAAAAAAAAA并不认可,不能识别未知设备的MAC地址AAAAAAAAAAAA,未知设备的MAC地址AAAAAAAAAAAA并不认可,不能识别未知设备的MAC地址AAAAAAAAAAAA,未知的设备

进一步的探索

您可以测试系统在不同频道和射频损伤通过修改

  • 多路径配置文件(PathDelaysAveragePathGains瑞利信道对象的属性),

  • (输入信噪比的信道噪声水平情况下功能),

  • 射频损伤(phaseNoiseRange,freqOffsetRange,dcOffsetRange变量)。

您还可以修改神经网络结构通过改变

  • 卷积层参数(过滤器的大小,数量的过滤器,填充),

  • 完全连接层的数量,

  • 卷积的层数。

附录:辅助函数

函数[impairedSig] = helperRFImpairments(团体、radioImpairments fs)% helperRFImpairments应用射频损伤% IMPAIREDSIG = helperRFImpairments(团体、RADIOIMPAIRMENTS FS)返回信号%团体后应用RADIOIMPAIRMENTS定义的损伤在采样率FS %结构。%应用频率偏移fOff = comm.PhaseFrequencyOffset (“FrequencyOffset”radioImpairments.FrequencyOffset,“SampleRate”fs);%应用相位噪声phaseNoise = helperGetPhaseNoise (radioImpairments);phNoise = comm.PhaseNoise (“水平”phaseNoise,“FrequencyOffset”、abs (radioImpairments.FrequencyOffset));impFOff = fOff(团体);impPhNoise = phNoise (impFOff);%应用直流偏置impairedSig = impPhNoise + 10 ^ (radioImpairments.DCOffset / 10);结束函数[phaseNoise] = helperGetPhaseNoise (radioImpairments)% helperGetPhaseNoise得到相位噪声值负载(“Mrms.mat”,mrm的,见这种情况称之为‘多年并的,“十一”);(~,irm) = min (abs (radioImpairments。PhaseNoise - mrm));[~,iFreqOffset] = min (abs (xI - abs (radioImpairments.FrequencyOffset)));见这种情况称之为phaseNoise = abs(多年并(irm, iFreqOffset));结束

选定的参考书目

[1]k . Sankhe m . Belgiovine f .周s Riyaz埃尼迪斯和k . Chowdhury“甲骨文:优化无线电通过卷积神经网络分类,“2019年IEEE INFOCOM IEEE计算机通讯大会上,巴黎,法国,2019年,页370 - 378。

相关的话题