主要内容

用于LLR估计的神经网络的训练和测试

这个例子展示了如何生成信号和通道损伤来训练一个名为LLRNet的神经网络,以估计精确的日志似然比(LLR)。

大多数现代通信系统,如5G新无线电(NR)和卫星第二代数字视频广播(dvb . s. 2)使用前向纠错算法,得益于软解调比特值。这些系统使用LLR方法计算软比特值。LLR被定义为一个比特为0的概率与一个比特为1或的概率之比的对数

l 日志 ( P r ( c = 0 | 年代 ˆ P r ( c = 1 | 年代 ˆ , = 1 , , k

在哪里 年代 ˆ 是k位接收符号,和 c t h 符号的一点。假设加性高斯白噪声(AWGN)信道,LLR表达式的精确计算为

l 日志 ( 年代 c 0 经验值 ( - 年代 ˆ - 年代 2 2 σ 2 年代 c 1 经验值 ( - 年代 ˆ - 年代 2 2 σ 2

在哪里 σ 2 是噪声方差。指数和对数计算是非常昂贵的,特别是在嵌入式系统中。因此,大多数实际系统都使用最大对数近似。对于一个给定的数组 x ,最大对数近似为

日志 ( j 经验值 ( - x j 2 马克斯 j ( - x j 2

将这个替换到精确的LLR表达式中,就得到了最大-对数LLR近似[1]

l 1 σ 2 ( 最小值 年代 C 1 年代 ˆ - 年代 2 2 - 最小值 年代 C 0 年代 ˆ - 年代 2 2

LLRNet使用神经网络,在给定信噪比值的基带复接收符号下,估计精确的LLR值。具有少量隐含层的浅网络有可能在近似LLR算法相似的复杂度下估计精确LLR值[1]

比较精确LLR, Max-Log Approximate LLR和M-ary QAM的LLRNet

5G NR采用M-ary QAM调制。本节探讨了LLRNet在估计16-、64-和256-QAM调制的LLR值时的准确性。假设在AWGN信道条件下运行的M-ary QAM系统。即使信道是频率选择性的,但符号是均衡的,这个假设也是有效的。下图显示了以下三种算法的计算LLR值:

  • 确切的LLR

  • Max-log近似LLR

  • LLRNet

16-QAM LLR估计性能

为覆盖99.7%的符号值计算精确和近似LLR值( ± 3. σ )的可能接收符号。假设AWGN, 99.7% ( ± 3. σ )的接收信号将在范围内 ( 马克斯 年代 C ( R e ( 年代 + 3. σ 最小值 年代 C ( R e ( 年代 - 3. σ ] + ( 马克斯 年代 C ( ( 年代 + 3. σ 最小值 年代 C ( ( 年代 - 3. σ ] 。在此空间上生成均匀分布的I/Q符号并使用qamdemod函数计算精确LLR和近似LLR值。

M = 16;%调制顺序k = log2 (M);%位元/符号SNRValues = 5:5:5;在dB %numSymbols = 1 e4;numSNRValues =长度(SNRValues);symOrder = llrnetQAMSymbolMapping (M);const = qammod (symOrder 0:15, M,“UnitAveragePower”1);maxConstReal = max(真实(常量));maxConstImag = max(图像放大(常量));numBits = numSymbols * k;exactLLR = 0 (numBits numSNRValues);approxLLR = 0 (numBits numSNRValues);rxSym = 0 (numSymbols numSNRValues);snrIdx = 1:numSNRValues SNR = SNRValues(snrIdx);noiseVariance = 10 ^(信噪比/ 10);σ=√noiseVariance);maxReal = maxConstReal + 3*sigma;minReal = -maxReal;maxImag = maxConstImag + 3*sigma;minImag = -maxImag;r = (rand(numSymbols,1)*(maxReal-minReal)+minReal) +1我*(兰德(numSymbols, 1) * (maxImag-minImag) + minImag);rxSym (:, snrIdx) = r;exactLLR (:, snrIdx) = qamdemod (r, M, symOrder,“UnitAveragePower”, 1“OutputType”,“llr”,“NoiseVariance”, noiseVariance);approxLLR (:, snrIdx) = qamdemod (r, M, symOrder,“UnitAveragePower”, 1“OutputType”,“approxllr”,“NoiseVariance”, noiseVariance);结束

建立和训练神经网络

建立一个具有一个输入层、一个隐藏层和一个输出层的浅神经网络。向网络输入一个接收到的符号,并训练它估计精确的LLR值。由于网络期望真实的输入,创建一个两列向量,其中第一列是接收到的符号的真实值,第二列是接收到的符号的虚值。此外,输出必须是a k × N 向量, k 每个符号的比特数和 N 是符号的数量。

nnInput = 0 (numSymbols 2 numSNRValues);nnOutput = 0 (numSymbols k numSNRValues);snrIdx = 1:numSNRValues rxTemp = rxSym(:,snrIdx);rxTemp = [real(rxTemp) imag(rxTemp)];nnInput (:,:, snrIdx) = rxTemp;llrTemp = exactLLR (:, snrIdx);nnOutput(:,:,snrIdx) =重塑(llrTemp, k, numSymbols)';结束

对于16-QAM符号,隐藏层有8个神经元,输出层有4个神经元,对应于每个符号的比特数。的llrnetNeuralNetwork函数返回一个预先配置的神经网络。对神经网络进行三种不同SNR值的训练。使用精确的LLR值qamdemod函数为期望输出值。

hiddenLayerSize = 8;trainedNetworks =细胞(1、numSNRValues);snrIdx = 1: numSNRValues流('训练神经网络为SNR = %1.1fdB\n',SNRValues(snrIdx)) x = nnInput(:,:,snrIdx)';y = nnOutput (:,:, snrIdx) ';MSExactLLR =意味着(y(:)。^ 2);流('\tMean Square LLR = %1.2f\n'MSExactLLR)训练网络。如果可以的话,使用并行池。火车的三倍%,并选择最好的一个。mse =正;p=1:3 netTemp = llrnetNeuralNetwork(hiddenLayerSize);如果parallelComputingLicenseExists() [netTemp,tr] = train(netTemp,x,y,“useParallel”,“是的”);其他的[netTemp, tr] =火车(netTemp, x, y);结束%测试网络predictedLLRSNR = netTemp (x);mseTemp =执行(netTemp y predictedLLRSNR);流('\t\tTrial %d: MSE = %1.2e\n'、p mseTemp)如果mse > mseTemp mse = mseTemp;网= netTemp;结束结束%存储训练过的网络trainedNetworks {snrIdx} =净;流('\tBest MSE = %1.2e\n'mse)结束
训练神经网络的信噪比= -5.0dB
Mean Square LLR = 4.43
试验1:MSE = 7.44e-05试验2:MSE = 6.90e-05试验3:MSE = 6.81e-05
Best MSE = 6.81e-05
训练神经网络的SNR = 0.0dB
Mean Square LLR = 15.74
试验一:MSE = 1.86e-03试验二:MSE = 4.04e-04试验三:MSE = 9.05e-05
最佳MSE = 9.05e-05
训练SNR = 5.0dB的神经网络
Mean Square LLR = 60.01
试验1:MSE = 8.59e-03试验2:MSE = 2.19e-02试验3:MSE = 2.14e-02
最佳MSE = 8.59e-03

该网络的性能指标为均方误差(MSE)。最终的MSE值表明,神经网络收敛到一个MSE值,该值至少比均方精确LLR值小40 dB。注意,随着信噪比的增加,LLR值也会增加,这就导致了相对较高的MSE值。

结果16-QAM

将LLRNet的LLR估计值与精确LLR和近似LLR的估计值进行比较。模拟1e4 16-QAM符号,并使用所有三种方法计算LLR值。不要使用我们在前一节中生成的符号,以免给LLRNet不公平的优势,因为这些符号是用来训练LLRNet的。

numBits = numSymbols * k;d = randi([0 1], numBits, 1);txSym = qammod (d, M, symOrder,“InputType”,“一点”,“UnitAveragePower”1);exactLLR = 0 (numBits numSNRValues);approxLLR = 0 (numBits numSNRValues);predictedLLR = 0 (numBits numSNRValues);rxSym = 0(长度(txSym), numSNRValues);snrIdx = 1:numSNRValues SNR = SNRValues(snrIdx);(= 10 ^(信噪比/ 10);r = awgn (txSym,信噪比);rxSym (:, snrIdx) = r;exactLLR (:, snrIdx) = qamdemod (r, M, symOrder,“UnitAveragePower”, 1“OutputType”,“llr”,“NoiseVariance”(开关);approxLLR (:, snrIdx) = qamdemod (r, M, symOrder,“UnitAveragePower”, 1“OutputType”,“approxllr”,“NoiseVariance”(开关);网= trainedNetworks {snrIdx};X = [real(r) imag(r)]';tempLLR =净(x);predictedLLR(:,snrIdx) =重塑(tempLLR, numBits, 1);结束qam16Results。exactLLR = exactLLR; qam16Results.approxLLR = approxLLR; qam16Results.predictedLLR = predictedLLR; qam16Results.RxSymbols = rxSym; qam16Results.M = M; qam16Results.SNRValues = SNRValues; qam16Results.HiddenLayerSize = hiddenLayerSize; qam16Results.NumSymbols = numSymbols;

下图显示了精确LLR,最大-对数近似LLR,以及LLR值对奇数位接收符号实部的LLRNet估计。即使对于低信噪比值,LLRNet也会匹配精确的LLR值。

llrnetPlotLLR (qam16Results“16-QAM LLR比较”

64-QAM和256-QAM LLR估计性能

检查LLRNet是否可以估计高阶QAM的LLR值。对64-QAM和256-QAM重复对16-QAM所遵循的相同过程llrnetQAMLLRhelper函数。下图显示了精确LLR,最大-对数近似LLR,以及LLR值对奇数位接收符号实部的LLRNet估计。

trainNow =;如果trainNow% 64-QAM的参数simParams(1)。M = 64;% #好< UNRCH >simParams(1)。SNRValues = 0:5:10;simParams(1)。HiddenLayerSize = 16;simParams(1)。NumSymbols = 1e4; simParams(1).UseReLU = false;%参数256-QAMsimParams(2)。M = 256;simParams(2)。SNRValues = 0:10:20;simParams(2)。HiddenLayerSize = 32;simParams(2)。NumSymbols = 1e4; simParams(2).UseReLU = false; simResults = llrnetQAMLLR(simParams); llrnetPlotLLR(simResults(1),sprintf(“% d-QAM LLR比较”), simResults (1) . m) llrnetPlotLLR (simResults (2), sprintf (“% d-QAM LLR比较”), simResults (2) . m)其他的负载(“llrnetQAMPerformanceComparison.mat”,“simResults”p = 1:长度(simResults) llrnetPlotLLR (simResults (p), sprintf (“% d-QAM LLR比较”), simResults (p) . m)结束结束

DVB-S.2包错误率

DVB-S.2年代ystem uses a soft demodulator to generate inputs for the LDPC decoder. Simulate the packet error rate (PER) of a DVB-S.2 system with 16-APSK modulation and 2/3 LDPC code using exact LLR, approximate LLR, and LLRNet usingllrNetDVBS2PER函数。该函数使用comm.PSKDemodulator系统对象™和dvbsapskdemod函数来计算精确和近似的LLR值和comm.AWGNChannel系统对象来模拟信道。

simulateNow的值为true(或在下拉菜单中选择“模拟”)来运行PER模拟subsystemType,EsNoValues,numSymbols使用llrnetDVBS2PER函数。如果并行计算工具箱™安装时,此函数使用parfor命令并行运行模拟。在Intel®Xeon®W-2133 CPU @ 3.6GHz上运行运行Code on Parallel Pools(并行计算工具箱)大小为6,模拟时间约为40分钟。集simulateNow(或在下拉菜单中选择“Plot saved results”),加载的值的PER结果subsystemType=“16 apsk 2/3”,EsNoValues=8.6:0.1:8.9,numSymbols=10000

trainNow真正的(或在下拉菜单中选择“训练LLRNet”),为的每一个值训练LLR神经网络EsNoValues,为给定subsystemTypenumSymbols。如果并行计算工具箱安装时,火车函数可以用可选的名称-值对调用“useParallel”设置为“是的”并行运行模拟。在Intel Xeon W-2133 CPU @ 3.6GHz上运行一个运行Code on Parallel Pools(并行计算工具箱)6码,模拟大约需要21分钟。集trainNowfalse(或在下拉菜单中选择“使用保存的网络”)加载训练的LLR神经网络subsystemType=“16 apsk 2/3”,EsNoValues=8.6:0.1:8.9

有关DVB-S.2的更多信息PER模拟,参见DVB-S.2Link,包括Simulink中的LDPC编码的例子。有关培训网络的更多信息,请参阅llrnetTrainDVBS2LLRNetwork功能和[1]

simulateNow =;如果simulateNow subsystemType =“16 apsk 2/3”;% #好< UNRCH >EsNoValues = 8.6:0.1:8.9;在dB %numFrames = 10000;numErrors = 200;trainNow =;如果trainNow & & (~ strcmp (subsystemType,“16 apsk 2/3”) | | ~ isequal (EsNoValues, 8.6:0.1:9))%为每个EsNo值训练网络numTrainSymbols = 1 e4;hiddenLayerSize = 64;llrNets = llrnetTrainDVBS2LLRNetwork(subsystemType, EsNoValues, numTrainSymbols, hiddenLayerSize);其他的负载(“llrnetDVBS2Networks”,“llrNets”,“subsystemType”,“EsNoValues”);结束%用精确LLR、近似LLR和LLRNet模拟PER[perLLR, perApproxLLR perLLRNet] = llrnetDVBS2PER (subsystemType、EsNoValues llrNets, numFrames, numErrors);llrnetPlotLLRvsEsNo (perLLR、perApproxLLR perLLRNet、EsNoValues subsystemType)其他的负载(“llrnetDVBS2PERResults.mat”,“perApproxLLR”,“perLLR”,“perLLRNet”,“subsystemType”,“EsNoValues”);llrnetPlotLLRvsEsNo (perLLR、perApproxLLR perLLRNet、EsNoValues subsystemType)结束

结果表明,在不使用对数和指数等任何昂贵的运算的情况下,LLRNet的性能几乎与精确LLR相当。

进一步的探索

为DVB-S尝试不同的调制和编码方案。2系统。调制类型和编码率的完整列表在DVB-S.2Link,包括Simulink中的LDPC编码的例子。你也可以尝试不同大小的网络隐藏层,以减少操作的数量,并衡量与精确LLR相比的性能损失。

本例使用了这些辅助函数。检查这些文件,了解实现的细节。

参考文献

[1] O. Shental和J. Hoydis,““机器LLRning”:学习软解调”,2019 IEEE Globecom讲习班(GC Wkshps), Waikoloa, HI,美国,2019年,第1-7页。

相关的话题

Baidu
map