主要内容

HARQ-ACK检测一致性测试

这个例子展示了如何在TS36.104节8.2.4.1中定义的一致性测试条件下,使用LTE工具箱™测量物理上行共享通道(PUSCH)上混合自动重复请求ACK (HARQ-ACK)多路复用的错误检测概率和漏检概率。

简介

UCI (Uplink Control Information)可以在物理上行共享通道PUSCH (Physical Uplink Shared Channel)上携带,可能包含HARQ-ACK (Hybrid Automatic Repeat Request ACK)信息。本例使用LTE工具箱执行TS36.104节8.2.4.1中规定的"HARQ-ACK Multiplexed on PUSCH"一致性测试[1].

针对PUSCH上的HARQ-ACK多路复用,定义了两个性能要求:

  • ACK误检概率是当数据只发送在可以分配HARQ-ACK信息的符号上时检测到ACK的概率。

  • ACK漏检概率是在PUSCH资源上发送ACK时未检测到ACK的条件概率。

本例中实现的测试场景指定一层,一个发射天线,两个接收天线,正常循环前缀,ETU70通道,使用固定参考通道(FRC) A4-3。TS 36.104,第8.2.4.1节定义的目标[1]对于1.4 MHz带宽(6RB),在13.8 dB时,误检概率和漏检概率为1%。

测试在每个信噪比测试点上逐子帧运行。对于每个子帧,生成包含和不包含ACK信息的上行波形,通过衰落通道传递并解码HARQ-ACK。记录错误检测和漏检,并显示测试信噪比范围内的错误概率。

模拟配置

该示例在多个信噪比下执行1帧的模拟长度,其中包括所需的13.8 dB,在该13.8 dB下,根据TS36.104,表8.2.4.1-1将实现假检率和漏检率(每种情况下1%)的测试要求[1].大量的numSubframes应该用于产生有意义的吞吐量结果。SNRdB可以是值的数组或标量。

numSubframes = 10;%在每个信噪比下要模拟的帧数SNRdB = [4.8 7.8 10.8 13.8 16.8];%信噪比点来模拟

问题的配置

为了配置发送器,需要在结构中设置一些所需的参数字段frc,然后传递给lteRMCUL这将设置所有其他必需的参数字段。在这里,结构frc表示所需传输的完整配置。

frc。TotSubframes = 1;要生成的子帧总数的%frc。NCellID = 10;细胞标识frc。RC =“A4-3”% FRC数用A4-3的默认值填充FRC配置结构frc = lteRMCUL(frc);

传播信道模型配置

传播通道通过结构配置chcfg,根据测试要求设置。请注意,传播的采样率是由传输波形的采样率确定的,可以使用lteSCFDMAInfo

chcfg。NRxAnts = 2;%接收天线个数chcfg。DelayProfile =“ETU”%延迟配置文件chcfg。多普勒频率= 70;%多普勒频率chcfg。MIMOCorrelation =“低”% MIMO相关性chcfg。种子= 91;%沟道种子chcfg。NTerms = 16;衰落模型中使用的振荡器chcfg。ModelType =“GMEDS”瑞利衰落模型类型chcfg。InitPhase =“随机”%随机初始相chcfg。NormalizePathGains =“上”正常化延迟配置文件功率chcfg。NormalizeTxAnts =“上”用于发射天线归一化设置通道模型采样率info = lteSCFDMAInfo(frc);chcfg。SamplingRate = info.SamplingRate;

信道估计器配置

信道估计器使用该结构配置cec.ETU延迟配置文件导致信道随着时间快速变化。因此,使用9个资源元素(REs)的小导频平均窗口。解调参考信号(DRS)每个槽只包含在一个符号中,因此使用1 RE的时间平均窗口。当取平均值时,这将不包括来自相邻插槽的任何导频。

cec。PilotAverage =“UserDefined”飞行员平均类型cec。FreqWindow = 9;% REs中窗口平均频率cec。TimeWindow = 1;在REs中平均窗口时间%cec。InterpType =“立方”插补类型cec。参考=“天线”%信道估计参考

信噪比值的循环

循环用于运行一组信噪比点的模拟,由向量给出SNRdB

在SC-FDMA解调之前添加的噪声将被IFFT放大。放大是IFFT大小的平方根(美元$ N_ {\ mathrm {FFT}}).为保证加性噪声解调后功率归一化,达到期望的信噪比,将期望的噪声功率除以美元$ N_ {\ mathrm {FFT}}.此外,由于噪声的实部和虚部是分开产生的,然后才组合成复杂的加性高斯白噪声(AWGN),因此噪声的幅度必须按比例缩放1美元/ \√{2}$所以产生的噪声功率是1。

在每个信噪比测试点,计算误检和漏检的概率。这些概率是按以下步骤逐子帧计算的:

  • 创建发送波形:RMC (Uplink Reference Measurement Channel)工具lteRMCULTool用于在每个奇子帧中生成包含随机传输数据和HARQ-ACK位的上行链路波形。

  • 噪声信道建模:波形通过一个衰落通道和AWGN添加。

  • 执行同步和SC-FDMA解调:接收到的符号是同步的,以考虑实现延迟和信道延迟扩展的组合。符号然后被SC-FDMA解调。

  • 进行信道和噪声功率谱密度估计和均衡:估计信道功率谱密度和噪声功率谱密度,对接收到的PUSCH符号进行均衡处理。

  • 解码PUSCH:确定上行链路共享信道(UL-SCH)编码,并对PUSCH进行解码,恢复交叉的UL-SCH。

  • 恢复UCI ACK位:对PUSCH进行去交织,对HARQ-ACK信息进行解码,恢复UCI HARQ-ACK位,并根据传输子帧中是否编码了HARQ-ACK位来检测HARQ-ACK假检或漏检。

初始化模拟和分析中使用的变量pFalse = 0(大小(SNRdB));每个信噪比下的误检概率%pMissed = 0 (size(SNRdB));每个信噪比下漏检概率的%nSNR = 1:长度(SNRdB)初始化随机数生成器流rng (“默认”);提取信噪比进行测试信噪比= 10^(SNRdB(nSNR)/20);在SC-FDMA解调后,缩放噪声以保证预期的信噪比N = 1/(信噪比*根号(double(info.Nfft)))/根号(2.0);offsetUsed = 0;falseCount = 0;false测试= 0;missCount = 0;missTests = 0;subframeNo = 0:(numSubframes-1)正在更新子帧数frc。NSubframe = mod(subframeNo, 10);在每个奇数子帧上发送ACK如果(mod(subframeNo, 2)==0) ACK = [];false测试= false测试+ 1;其他的Ack = 1;missTests = missTests + 1;结束创建要传输的随机数据trblklen = frc.PUSCH.TrBlkSizes(frc.NSubframe+1);TRBLK = randi([0 1], trblklen, 1);发送一个附加25个样本的波形来覆盖从信道建模(a实现延迟与信道延迟扩展组合%)tx波形= [lteRMCULTool(frc, trblk, [], [], ACK);1) 0(25日);通过衰落信道模型传递波形chcfg。InitTime = subframeNo/1000;rx波形= lteFadingChannel(chcfg, tx波形);%添加噪音噪声= N*complex(randn(size(rx波形)),...randn(大小(rxWaveform)));rx波形= rx波形+噪声;%的同步offset = lteULFrameOffset(frc, frc. pusch, rx波形);如果(offset < 25) offset = offset;结束SC-FDMA解调rxSubframe = lteSCFDMADemodulate(frc,...rxWaveform (1 + offsetUsed:最终,:));信道估计[estChannelGrid, noiseEst] = lteULChannelEstimate(...frc frc。PUSCH, cec, rxSubframe);给定子帧的% PUSCH指数puschIndices = ltePUSCHIndices(frc,frc. pusch);最小均方误差(MMSE)均衡rxSymbols = lteEqualizeMMSE(rxSubframe(puschIndices),...estChannelGrid (puschIndices)、噪音);获取当前传输块和的UL-SCH编码信息% ACK,并将此信息与PUSCH / UL-SCH连接%的配置frc。PUSCH = lteULSCHInfo(frc, frc。PUSCH trblklen,...0,0,1,“chsconcat”);%执行解编码,解调和解扰上接收数据百分比rxEncodedBits = ltePUSCHDecode(frc, frc. rxEncodedBits = ltePUSCHDecode)PUSCH rxSymbols);% UL-SCH通道去交错[deinterleavedData, ccqi, cri, cack] =...lteULSCHDeinterleave (frc frc。PUSCH rxEncodedBits);HARQ-ACK解码rxACK = lteACKDecode(frc。PUSCH,平底靴);检测错误或遗漏的HARQ-ACK如果(isempty(ACK) && ~isempty(rxACK)) falseccount = falseCount + 1;结束如果(~isempty(ACK) && ~isequal(ACK,rxACK)) missCount = missCount + 1;结束结束计算错误或遗漏的HARQ-ACK概率pFalse(nSNR) = falseCount/false测试;pmiss (nSNR) = missCount/missTests;结束

分析

将模拟结果与标准使用中规定的目标性能进行对比hHARQACKResults.m

hHARQACKResults(SNRdB, pFalse, pMissed);

附录

这个例子使用了这个helper函数。

选定的参考书目

  1. 3GPP TS 36.104《基站(BS)无线电发射与接收》