主要内容

딥러닝을사용한변조분류

이예제에서는변조분류를수행하는컨벌루션신경망(CNN)을사용하는방법을보여줍니다。여기서는채널이손상된합성파형을생성해봅니다。생성된파형을훈련데이터로사용하여변조분류를수행하는cnn을훈련시킵니다。그런다음소프트웨어정의무선통신(SDR)하드웨어와OTA신호를사용하여CNN을테스트합니다。

Cnn을사용하여변조유형예측하기

CNN은이예제의훈련된다음과같은8개의디지털변조유형과3개의아날로그변조유형을인식합니다。

  • Bpsk(이진위상편이변조)

  • Qpsk(직교위상편이변조)

  • 8psk(8진위상편이변조)

  • 16- qam(16진직교진폭변조)

  • 64- qam(64진직교진폭변조)

  • Pam4(4진펄스진폭변조)

  • Gfsk(가우스주파수편이변조)

  • Cpfsk(연속위상주파수편이변조)

  • B-fm(방송fm)

  • Dsb-am(양측파대진폭변조)

  • Ssb-am(단측파대진폭변조)

modulationTypes = categorical([“BPSK”“正交相移编码”“8相移键控”...“16 qam”“64 qam”“PAM4”“GFSK”“CPFSK”...“B-FM”“DSB-AM”“SSB-AM”]);

먼저사전훈련된신경망을불러옵니다。신경망훈련에대한자세한내용은CNN훈련시키기섹션을참조하십시오。

负载trainedModulationClassificationNetworktrainedNet
trainedNet = SeriesNetwork属性:Layers: [28×1 nnet.cnn.layer.Layer] InputNames:{'输入层'}OutputNames:{'输出'}

훈련된CNN은1024개의채널이손상된샘플을받아서각프레임의변조유형을예측합니다。라이시안다중경로페이딩,중심주파수와샘플링시간변동및AWGN으로손상된몇개의PAM4프레임을생성합니다。다음함수를사용해합성신호를생성하여cnn을테스트합니다。그런다음cnn을사용하여프레임의변조유형을예측합니다。

  • 兰迪:난수비트생성

  • pammod(通信工具箱)비트에대해pam4변조수행

  • rcosdesign(信号处理工具箱):제곱근올림코사펄스성형필터설계

  • 过滤器:기호펄스성형

  • comm.RicianChannel(通信工具箱):라이시다중경로채널적용

  • comm.PhaseFrequencyOffset(通信工具箱):클록오프셋으로클록오프셋으로한위상및/또는주파수편이적용

  • interp1:클록오프셋으로한시간변동적용

  • 情况下(通信工具箱): awgn추가

将随机数生成器设置为能够重新生成的已知状态%每次运行模拟时相同的帧rng (123456)%随机位D = randi([0 3], 1024, 1);% PAM4调制Syms = pammod(d,4);%平方根提升余弦过滤器filterCoeffs = rcosdesign(0.35,4,8);tx = filter(filterCoeffs,1,upsample(syms,8));%的通道信噪比= 30;maxOffset = 5;Fc = 902e6;Fs = 200e3;multipathChannel = comm. ricicianchannel (...“SampleRate”fs,...“PathDelays”, [0 1.8 3.4] / 200e3,...“AveragePathGains”, [0 -2 -10],...“KFactor”4...“MaximumDopplerShift”4);frequencyShifter = com . phasefrequencyoffset (...“SampleRate”fs);应用独立的多路径通道reset(multipathChannel) outMultipathChan = multipathChannel(tx);确定时钟偏移因子clockOffset = (rand() * 2*maxOffset) - maxOffset;C = 1 + clockOffset / 1e6;%添加频率偏移frequencyShifter。FrequencyOffset = -(C-1)*fc;outFreqShifter = frequencyShifter(outMultipathChan);%增加采样时间漂移T = (0:length(tx)-1)' / fs;newFs = fs * C;tp = (0:length(tx)-1)' / newFs;outTimeDrift = interp1(t, outFreqShifter, tp);%增加噪音rx = awgn(outTimeDrift,SNR,0);用于分类的帧生成unknownFrames = helperModClassGetNNFrames(rx);%的分类[prediction1,score1] = classification (trainedNet,unknownFrames);

분류기예측값을반환합니다。이것은경판정을나타냅니다。신경망이프레임을pam4프레임으로올바르게식별합니다。변조된신호생성에대한자세한내용은helperModClassGetModulator함수를참조하십시오。

prediction1
prediction1 =7×1分类Pam4 Pam4 Pam4 Pam4 Pam4 Pam4 Pam4

분류기는각프레임에대해점수로구성된벡터도반환합니다。점수는각프레임이예측된변조유형을가질확률을나타냅니다。점수를플로팅합니다。

helperModClassPlotScores (score1 modulationTypes)

변조분류또는다른작업에CNN을사용할수있으려면먼저알려진(또는레이블이지정된)데이터를사용하여신경망을훈련시켜야합니다。이예제의첫번째부분에서는변조기,필터,채널손상과같은通信工具箱™기능을사용하여합성훈련데이터를생성하는방법을보여줍니다。두번째부분에서는변조분류작업을위해cnn을정의,훈련및테스트합니다。세번째부분에서는소프트웨어정의무선통신(SDR)플랫폼을사용하여OTA신호로신경망성능을테스트합니다。

훈련을위한파형생성

각변조유형에대해10000개의프레임을생성합니다。그중에서80%는훈련용으로,10%는검용으로,10%는테스트용으로사용됩니다。신경망훈련단계에서훈련프레임과검프레임을사용합니다。최종분류정확도는테스트프레임을사용하여획득합니다。각프레임의길이는1024개샘플이고샘플레이트는200kHz입니다。디지털변조유형의경우,8개의샘플이하나의기호를나타냅니다。이신경망은(비디오에서처럼)여러개의연속프레임이아닌단일프레임을기반으로각각의결정을내립니다。디지털변조유형의중심주파수는902 mhz이고아날로그변조유형의중심주파수는100 mhz라고가정합니다。

이예제를빠르게실행하려면훈련된신경망을사용하여적은수의훈련프레임을생성하십시오。신경망을사용중인컴퓨터에서훈련시키려면”列车网络现在“옵션을선택합니다(즉,trainNow로를如此설정)。

trainNow =如果numFramesPerModType = 10000;其他的numFramesPerModType = 200;结束percentTrainingSamples = 80;percentValidationSamples = 10;percentTestSamples = 10;SPS = 8;每个符号的样本百分比SPF = 1024;每帧样本百分比symbolsPerFrame = spf / sps;Fs = 200e3;抽样率%Fc = [902e6 100e6];%中心频率

채널손상만들기

다음을사용하여각프레임을채널에통과시킵니다。

  • 情况下

  • 라이시다중경로페이딩

  • 중심주파수오프셋과샘플링시간변동을유발하는클록오프셋

이예제의신경망은단일프레임을기반으로결정을내리므로각프레임은독립된채널을통과해야합니다。

情况下

채널은信噪比이30dB AWGN을더합니다。情况下(通信工具箱)함수를사용하여채널을구현합니다。

라이시다중경로

채널은comm.RicianChannel(通信工具箱)系统对象™를사용하여신호를라이시안다중경로페이딩채널에통과시킵니다。지연프로파일을[0 1.8 - 3.4]샘플로가정하고이에대응하는평균경로이득이[0 2 -10]dB라고가정합니다。4 K인자는이고최대도플러편이4赫兹로는,이는902 mhz로걷는속도와동일합니다。다음설정을사용하여채널을구현합니다。

클록오프셋

클록오프셋은송신기및수신기의내부클록소스간의부정확성으로,해발생합니다。클록오프셋은신호를기저대역으로낮게변환하는데사용되는중심주파수와디지털-아날로그변환기샘플링레이트가이상적인값과달라지는원인이됩니다。채널시뮬레이터는 C 1 + Δ 时钟 10 6 으로明文현되는클록오프셋明文자 C 를사용합니다。여기서 Δ 时钟 은클록오프셋입니다。각프레임에대해,채널은[ - 马克斯 Δ 时钟 马克斯 Δ 时钟 범위내에균일하게분포된값집합으로부터무작위 Δ 时钟 값을생성합니다。여기서 马克斯 Δ 时钟 은최대클록오프셋입니다。클록오프셋은ppm(百万分之一)단위로측정됩니다。이예제에서는최대클록오프셋이5ppm이라고가정하겠습니다。

maxDeltaOff = 5;deltaOff = (rand()*2*maxDeltaOff) - maxDeltaOff;C = 1 + (deltaOff/1e6);

주파수오프셋

클록오프셋,자 C 와중심주파수에기반해각프레임에주파수오프셋을적용합니다。comm.PhaseFrequencyOffset(通信工具箱)을사용하여채널을구현합니다。

샘플링레이트오프셋

클록오프셋,자 C 에기반해각프레임에샘플링레이트오프셋을적용합니다。새로운레이트 C × f 年代 로프레임을다시샘플링하려면interp1함수를사용해채널을구현하십시오。

결합된채널

프레임에세가지채널손상을모두적용하려면helperModClassTestChannel객체를사용하십시오。

channel = helperModClassTestChannel(...“SampleRate”fs,...“信噪比”信噪比,...“PathDelays”, [0 1.8 3.4] / fs,...“AveragePathGains”, [0 -2 -10],...“KFactor”4...“MaximumDopplerShift”4...“MaximumClockOffset”5,...“CenterFrequency”902 e6)
channel = helperModClassTestChannel with properties: SNR: 30 CenterFrequency: 902000000 SampleRate: 200000 pathdelay: [0 9.0000e-06 17000e -05] averagepath增益:[0 -2 -10]KFactor: 4 MaximumDopplerShift: 4 MaximumClockOffset: 5

信息객체함수를사용하여채널에대한기본정보를확bmp할수있습니다。

chInfo = info(channel)
chInfo =带有字段的结构:ChannelDelay: 6 MaximumFrequencyOffset: 4510 MaximumSampleRateOffset: 1

파형 생성

각변조유형에대해채널이손상된프레임을생성하고프레임과그에대응되는레이블을垫파일에저장하는루프를만듭니다。데이터를파일에저장하면이예제를실행할때마다데이터를생성할필데이터를파일에저장하면이예제를실행할때마다데이터를생성할필。또한데이터를보다효과적으로공유할수있습니다。

각프레임의시작부분에서무작위개수의샘플을제거하여과도(瞬态)를제거하고,프레임이기호경계에대해무작위시작점을갖는지확인합니다。

将随机数生成器设置为能够重新生成的已知状态%每次运行模拟时相同的帧rng(1235) tic numModulationTypes = length(modulationTypes);channelInfo = info(channel);transDelay = 50;dataDirectory = fullfile(tempdir,“ModClassDataFiles”);disp ("数据文件目录为"+ dataDirectory)
数据文件目录为C:\Users\kkearney\AppData\Local\Temp\ModClassDataFiles
fileNameRoot =“帧”检查数据文件是否存在dataFilesExist = false;如果存在(dataDirectory“dir”)文件= dir(fullfile(dataDirectory,sprintf(“% s *”, fileNameRoot)));如果length(files) == numModulationTypes*numFramesPerModType dataFilesExist = true;结束结束如果~ dataFilesExist disp (“生成数据并保存到数据文件中……”) [success,msg,msgID] = mkdir(dataDirectory);如果味精~成功错误(是否)结束modType = 1:numModulationTypes elapsedTime = seconds(toc);elapsedTime。格式=“hh: mm: ss”;流('%s ' -生成%s帧\n'...elapsedTime, modulationTypes(modType)) label = modulationTypes(modType);numSymbols = (numFramesPerModType / sps);dataSrc = helperModClassGetSource(modulationTypes(modType), sps, 2*spf, fs);modulator = helperModClassGetModulator(modulationTypes(modType), sps, fs);如果包含(char (modulationTypes (modType)) {“B-FM”“DSB-AM”“SSB-AM”})模拟调制类型使用100 MHz的中心频率。通道。CenterFrequency = 100e6;其他的数字调制类型使用中心频率902mhz通道。CenterFrequency = 902e6;结束p = 1: numFramesPerModType%生成随机数据x = dataSrc();%调节Y =调制器(x);通过独立的渠道rxSamples = channel(y);从开始删除瞬态,修剪到大小,并规范化。frame = helperModClassFrameGenerator(rxSamples, spf, spf, transDelay, sps);%保存数据文件文件名= fullfile(dataDirectory,...sprintf (“% s % s % 03 d”、fileNameRoot modulationTypes (modType)、p));保存(文件名,“帧”“标签”结束结束其他的disp (“数据文件存在。跳过数据生成。”结束
生成数据并保存在数据文件中…
00:00:00—生成BPSK帧00:00:01—生成QPSK帧00:00:03—生成8PSK帧00:00:04—生成16QAM帧00:00:06—生成64QAM帧00:00:07—生成PAM4帧00:00:09—生成GFSK帧00:00:10—生成CPFSK帧00:00:11—生成B-FM帧00:00:26—生成DSB-AM帧00:00:27—生成SSB-AM帧
绘制示例帧的实部和虚部的振幅。%对比样本数量helperModClassPlotTimeDomain (dataDirectory modulationTypes fs)

图中包含11个轴对象。标题为BPSK的axis对象1包含两个类型为line的对象。标题为QPSK的Axes对象2包含两个类型为line的对象。标题为8PSK的Axes对象3包含两个类型为line的对象。标题为16QAM的Axes对象4包含两个类型为line的对象。标题为64QAM的Axes对象5包含两个类型为line的对象。标题为PAM4的Axes对象6包含两个类型为line的对象。标题为GFSK的Axes对象7包含2个类型为line的对象。标题为CPFSK的Axes对象8包含两个类型为line的对象。标题为B-FM的Axes对象9包含两个类型为line的对象。 Axes object 10 with title DSB-AM contains 2 objects of type line. Axes object 11 with title SSB-AM contains 2 objects of type line.

绘制示例帧的光谱图helperModClassPlotSpectrogram (dataDirectory modulationTypes fs, sps)

图中包含11个轴对象。标题为BPSK的axis对象1包含一个类型为image的对象。标题为QPSK的Axes对象2包含一个类型为image的对象。标题为8PSK的Axes对象3包含一个image类型的对象。标题为16QAM的Axes对象4包含一个image类型的对象。标题为64QAM的Axes对象5包含一个image类型的对象。标题为PAM4的Axes对象6包含一个image类型的对象。标题为GFSK的Axes对象7包含一个类型为image的对象。标题为CPFSK的Axes对象8包含一个类型为image的对象。标题为B-FM的Axes对象9包含一个类型为image的对象。 Axes object 10 with title DSB-AM contains an object of type image. Axes object 11 with title SSB-AM contains an object of type image.

데이터저장소만들기

signalDatastore객체를사용하여,생성된복합파형을포함하는파일을관리합니다。데이터저장소는각개별파일은메모리에맞지만전체모음은메모리에맞지않을수있는경우특히유용합니다。

frameDS = signalDatastore(dataDirectory,“SignalVariableNames”,[“帧”“标签”]);

복소신호를실수형배열로변환하기

이예제의딥러닝신경망에는실수입력이필요하지만수신된신호는복소기저대역샘플을갖습니다。복소신호를실수값으로구성된4차원배열로변환하십시오。출력프레임은크기가1×spf×2×N입니다。여기서첫번째페이지(세번째차원)는동위상샘플이고두번째페이지는직교위상샘플입니다。컨벌루션필터의크기가1×spf인경우이방법은컨벌루션계층에서도와我问의정보가혼합되도록하여위상정보를보다잘사용합니다。자세한내용은helperModClassIQAsPages를참조하십시오。

frameDSTrans = transform(frameDS,@helperModClassIQAsPages);

훈련,검,테스트로분할하기

다음으로,프레임을훈련데이터,검데이터및테스트데이터로나눕니다。자세한내용은helperModClassSplitData를참조하십시오。

splitpercentage = [percentTrainingSamples,percentValidationSamples,percentTestSamples];[trainDSTrans,validDSTrans,testDSTrans] = helperModClassSplitData(frameDSTrans, splitpercentage);
使用“本地”配置文件启动并行池(parpool)…连接到并行池(工作人员数量:6)。

데이터를메모리로가져오기

신경망훈련은반복적,작업입니다。매회반복에서데이터저장소가파일에서데이터를읽어들이고데이터를변환한후에신경망계수를업데이트합니다。데이터가컴퓨터의메모리에들어갈경우파일의데이터를메모리로가져올때이반복된파일읽기및변환과정이필요없으므로훈련속도를더높일수있습니다。대신에,파일에서데이터를읽어들이고변환하는작업이한번만수행됩니다。디스크에저장된데이터파일을사용하여이신경망을훈련시킬경우약110분이걸리는반면,메모리내데이터를사용하여훈련시키면50분약정도걸립니다。

파일의모든데이터를메모리로가져옵니다。파일에는두변수框架标签이있으며,데이터저장소에대해를호출할때마다셀형배열이반환됩니다。이셀형배열에서첫번째이셀형배열에서첫번째框架이고두번째이고두번째标签입니다。变换함수helperModClassReadFramehelperModClassReadLabel을사용하여프레임과레이블을읽어들입니다。并行计算工具箱™라이선스가있는경우readall항목을真正的로 설정된“UseParallel”옵션세트와함께사용하여변환함수에대한병렬처리를활성화하십시오。readall함수는기본적으로첫번째차원에대해함수의출력값을결합하므로,프레임을셀형배열로반환하고네번째차원에대해수동으로결합합니다。

将训练和验证帧读入内存。pctExists = parallelComputingLicenseExists();trainFrames = transform(trainDSTrans, @helperModClassReadFrame);rxTrainFrames = readall(trainFrames,“UseParallel”, pctExists);rxTrainFrames = cat(4, rxTrainFrames{:});validFrames = transform(validDSTrans, @helperModClassReadFrame);rxValidFrames = readall(validFrames,“UseParallel”, pctExists);rxValidFrames = cat(4, rxValidFrames{:});将训练和验证标签读入记忆。trainLabels = transform(trainDSTrans, @helperModClassReadLabel);rxTrainLabels = readall(trainLabels,“UseParallel”, pctExists);validLabels = transform(validDSTrans, @helperModClassReadLabel);rxValidLabels = readall(validLabels,“UseParallel”, pctExists);

CNN훈련시키기

이예제에서는6개의컨벌루션계층과1개의완전연결계층으로구성된CNN을사용합니다。마지막계층을제외한각컨벌루션계층은뒤에배치정규화계층,ReLU(修正线性单元)활성화계층및최댓값풀링계층이옵니다。마지막컨벌루션계층에서최댓값풀링계층은평균값풀링계층으로대체됩니다。출력계층에는소프트맥스활성화가있습니다。신경망설계에대한내는딥러닝팁과딥러닝팁과항목을참조하십시오。

modClassNet = helperModClassCNN(modulationTypes,sps,spf);

다음으로,미니배치크기가256 dgdm솔버를사용하도록TrainingOptionsSGDM을구성합니다。时代횟수가크더라도추가적인훈련이점이창출되지않으므로최대时代횟수를12로설정합니다。기본적으로“ExecutionEnvironment”속성은“汽车”로설정되어있습니다。이 경우trainNetwork함수는GPU를사용할수있으면GPU를사용하고,그렇지않으면CPU를사용합니다。Gpu를사용하려면并行计算工具箱라이선스가있어야합니다。초기학습률을 2 x 10 - 2 으로설정합니다。纪元9회마다학습률을10배만큼줄입니다。“阴谋”를”训练进步”로설정하여훈련진행상황을플로팅합니다。NVIDIA®泰坦Xp GPU에서는이신경망을훈련시키는데25분약정도소요됩니다。

maxEpochs = 12;miniBatchSize = 256;options = helperModClassTrainingOptions(maxEpochs,miniBatchSize,...元素个数(rxTrainLabels)、rxValidFrames rxValidLabels);

신경망을훈련시키거나이미훈련된신경망을사용할수있습니다。기본적으로이예제에서는훈련된신경망을사용합니다。

如果trainNow == true elapsedTime = seconds(toc);elapsedTime。格式=“hh: mm: ss”;流('%s -训练网络\n'trainedNet = trainNetwork(rxTrainFrames,rxTrainLabels,modClassNet,options);其他的负载trainedModulationClassificationNetwork结束

훈련진행상황플롯에서볼수있듯이신경망은약12회의时代만에가95%넘는정확도로수렴됩니다。

테스트프레임에대한분류정확도를구하여훈련된신경망을평가합니다。결과를보면신경망이이파형그룹에대해약94%의정확도를달성함을알수있습니다。

elapsedTime = seconds(toc);elapsedTime。格式=“hh: mm: ss”;流('%s -对测试帧进行分类\n'elapsedTime)
00:02:22 -分类测试帧
将测试帧读入内存testFrames = transform(testDSTrans, @helperModClassReadFrame);rxTestFrames = readall(testFrames,“UseParallel”, pctExists);rxTestFrames = cat(4, rxTestFrames{:});将测试标签读入内存testLabels = transform(testDSTrans, @helperModClassReadLabel);rxTestLabels = readall(testLabels,“UseParallel”, pctExists);rxTestPred =分类(trainedNet,rxTestFrames);testAccuracy =平均值(rxTestPred == rxTestLabels);disp (“测试准确度:”+ testAccuracy*100 +“%”
测试准确度:94.5455%

테스트프레임에대해혼동행렬을플로팅합니다。행렬에서볼수있듯이이신경망은16-QAM프레임과64 - qam프레임을혼동합니다。각프레임에는128개의기호밖에없고16-QAM은64 - qam의부분집합이므로이는예상가능한문제입니다。신경망은QPSK프레임과8-psk프레임도혼동합니다。페이딩채널과주파수오프셋으로인해이들변조유형의성상도는위상을회전시키면유사하게보이기때문입니다。

图cm = confusichart (rxTestLabels, rxTestPred);厘米。Title =“测试数据混淆矩阵”;厘米。RowSummary =“row-normalized”;cm.Parent.Position = [cm.Parent.Position(1:2) 740 424];

图包含一个类型为confusimatrixchart的对象。类型为ConfusionMatrixChart的图表标题为测试数据的混淆矩阵。

Sdr을사용하여테스트하기

helperModClassSDRTest함수를사용하여,훈련된신경망의성능을ota신호로테스트합니다。이테스트를수행하려면송신및수신전용sdr이있어야합니다。2개의ADALM-PLUTO무선통신을사용할수도있고,송신용으로하나의ADALM-PLUTO무선통신을사용하고수신용으로하나의USRP®무선통신을사용할수도있습니다。安装模拟设备支持万博1manbetx包ADALM-PLUTO无线电模拟设备通信工具箱支持包ADALM-Pluto无万博1manbetx线电작업을수행해야합니다。Usrp®무선통신을사용하는경우,安装USRP无线电通信工具箱支持包万博1manbetx(USRP无线电通信工具箱支持包)万博1manbetx작업도수행해야합니다。helperModClassSDRTest함수는훈련신호를생성하는데사용되는것과동일한변조함수를사용하고,ADALM-PLUTO무선통신을사용하여이를송신합니다。채널을시뮬레이션하는대신,신호수신용으로구성된特别提款权(ADALM-PLUTO또는USRP®무선통신)을사용하여채널이손상된신호를캡처하십시오。앞에서변조유형을예측하는데사용된것과동일한分类함수를이용해훈련된신경망을사용합니다。다음코드를실행하면혼동행렬이생성되고테스트정확도가출력됩니다。

radioPlatform =“ADALM-PLUTO”开关radioPlatform情况下“ADALM-PLUTO”如果helperIsPlutoSDRInstalled() == true收音机= findPlutoRadio();如果length(收音机)>= 2 helperModClassSDRTest(收音机);其他的disp (“未找到选定的无线电。”跳过空中测试。”结束结束情况下“USRP B2xx”“USRP X3xx”“USRP N2xx”如果(helperIsUSRPInstalled() == true) && (helperIsPlutoSDRInstalled() == true) txRadio = findPlutoRadio();rxRadio = findsdru();开关radioPlatform情况下“USRP B2xx”idx = contains({rxRadio.)平台},{“B200”“B210”});情况下“USRP X3xx”idx = contains({rxRadio.)平台},{“×”“X310”});情况下“USRP N2xx”idx = contains({rxRadio.)平台},“N200 / N210 / USRP2”);结束rxRadio = rxRadio(idx);如果(length(txRadio) >= 1) && (length(rxRadio) >= 1) helperModClassSDRTest(rxRadio);其他的disp (“未找到选定的无线电。”跳过空中测试。”结束结束结束

약2피트만큼떨어진2개의고정ADALM-PLUTO무선통신을사용할경우,신경망은다음과같은혼동행렬과함께99%의전체적인정확도를달성합니다。결과는실험환경에따라달라집니다。

심층 탐구

필터개수나필터크기와같은하이퍼파라미터를최적화하거나계층을추가하거나다른활성화계층을사용하는등의방법으로신경망구조를최적화하여정확도를개선할수있습니다。

通信工具箱는이외에도많은변조유형과채널손상을제공합니다。자세한내용은调制(通信工具箱)传播和通道模型(通信工具箱)섹션을참조하십시오。LTE工具箱WLAN的工具箱5 g的工具箱를사용하여특정준신호를추가할수도있습니다。相控阵系统工具箱를사용하여레이다신호를추가할수도있습니다。

helperModClassGetModulator함수는변조된신호를생성하는데사용된matlab®함수를제공합니다。다음과같은함수와系统对象에서도더자세한내용을살펴볼수있습니다。

참고 문헌

  1. 奥谢,t。J。科根,t。c。克兰西。"卷积无线电调制识别网络"预印本,2016年6月10日提交。https://arxiv.org/abs/1602.04105

  2. 奥谢,t。J。t。罗伊和t。c。克兰西。"基于空中深度学习的无线电信号分类"IEEE信号处理专题选刊。2018年第1期,第12卷,第168-179页。

  3. 刘旭东,杨东,贾迈勒。调制分类的深度神经网络体系结构。预印本,2018年1月5日提交。https://arxiv.org/abs/1712.00443v3

참고 항목

|

관련 항목