主要内容

5 g NR开环检测测试

这个例子展示了如何建模的物理随机接入信道(开环)错过了检测一致性测试,定义在TS 38.141 - 11]。你可以学习如何测量开环的正确检测概率序言的先兆信号。

介绍

开环是一个上行传输所使用的用户设备(UE)与gNodeB启动同步。TS 38.141 - 1节8.4.1.5定义开环检测的概率要大于或等于99%,为一组特定的SNR值开环配置和传播条件。有几个检测错误情况下:

  • 检测错误的序言

  • 不检测序言

  • 检测正确的序言,但错误的时间估计

TS 38.141 - 1,一个正确的检测是实现当时机抵消最强的路径的估计误差小于给定的时间误差公差表8.4.1.1-1。通道传播条件tdlc300 - 100和开环序言格式0,时间误差公差是2.55微秒。

在这个例子中,一个是开波形配置,并通过适当的渠道。在接收端,该示例执行开环检测和计算的开环检测概率。示例8.4.1.5-1认为TS 38.141 - 1中定义的参数表和表A.6-1。这些都是:正常模式(即。,unrestricted set), 2 receive antennas, TDLC300-100 channel, normal cyclic prefix, burst format 0, SNR -6.0 dB. If you change the PRACH configuration to use one of the other PRACH preamble formats listed in Table A.6-1, you need to update the values of the time error tolerance and the SNR, according to TS 38.141-1 Table 8.4.1.1-1 and Tables 8.4.1.5-1 to 8.4.1.5-3, respectively.

模拟配置

这个例子认为10子帧数量的信噪比。您应该使用大量的numSubframes产生有意义的结果。你可以设置SNRdB数组的值或一个标量。一个解释信噪比的定义,这个示例使用看看信噪比的定义中使用链接模拟。表8.4.1.5-1 TS 38.141 - 1指定频率偏移量foffset在发射机和接收机之间建模。

numSubframes = 10;% 1毫秒数子帧来模拟在每个信噪比SNRdB = [-21、-16、-11、6、1];在dB %信噪比范围foffset = 400.0;%在赫兹频率偏移timeErrorTolerance = 2.55;%在微秒时间误差公差

载波配置

使用nrCarrierConfig配置对象航空公司指定承运人的设置。示例认为承运人以一副载波间距15 kHz和5 MHz带宽。承运人跨越25资源块,根据表5.3.2-1 TS 38.104 [2]。

载体= nrCarrierConfig;母舰。SubcarrierSpacing = 15;母舰。NSizeGrid = 25;

开环结构

表A.6-1 TS 38.141 - 1指定开环的开环配置用于检测一致性测试。

设置开环配置使用nrPRACHConfig配置对象开环据表A.6-1和部分8.4.1.4.2 TS 38.141 - 1。

%设置开环配置开环= nrPRACHConfig;开环。FrequencyRange =“FR1”;%频率范围开环。DuplexMode =“FDD”;%频分双工(FDD)开环。ConfigurationIndex = 27个;% 0配置指数格式开环。SubcarrierSpacing = 1.25;%副载波间距开环。SequenceIndex = 22;%逻辑序列索引开环。PreambleIndex = 32;%序言指数开环。RestrictedSet =“UnrestrictedSet”;%正常模式开环。FrequencyStart = 0;%的频率位置%定义的价值ZeroCorrelationZone表存储在使用nc% nrPRACHConfig对象开关prach.Format情况下{' 0 ',' 1 ',' 2 '}ncsTable = nrPRACHConfig.Tables.NCSFormat012;ncsTableCol =(字符串(ncsTable.Properties.VariableNames) = = prach.RestrictedSet);情况下“3”ncsTable = nrPRACHConfig.Tables.NCSFormat3;ncsTableCol =(字符串(ncsTable.Properties.VariableNames) = = prach.RestrictedSet);否则ncsTable = nrPRACHConfig.Tables.NCSFormatABC;ncsTableCol =包含(string (ncsTable.Properties.VariableNames) num2str (prach.LRA));结束nc = 13;zeroCorrelationZone = ncsTable.ZeroCorrelationZone (ncsTable {:, ncsTableCol} = = nc);开环。ZeroCorrelationZone = ZeroCorrelationZone;%循环移位指数%计算OFDM-related这种开环配置的信息窗口= [];ofdmInfo = nrPRACHOFDMInfo(载体、开环“窗口”,窗口);

传播通道配置

使用nrTDLChannel对象配置抽头延迟线(TDL)传播信道模型通道如表8.4.1.1-1 TS 38.141 - 1中描述。

频道= nrTDLChannel;通道。DelayProfile =“TDL-C”;%延迟概要通道。DelaySpread = 300 e-9;%延迟传播在几秒钟内通道。MaximumDopplerShift = 100.0;%最大赫兹的多普勒频移通道。SampleRate = ofdmInfo.SampleRate;在赫兹%输入信号采样率通道。MIMOCorrelation =“低”;% MIMO相关通道。TransmissionDirection =“上行”;%上行传输通道。NumTransmitAntennas = 1;%的发送天线数量通道。NumReceiveAntennas = 2;%的接收天线通道。NormalizePathGains = true;%正常化延迟概要文件的权力通道。种子= 42;%通道种子。改变这种对不同通道实现通道。NormalizeChannelOutputs = true;%接收天线的正常化

循环对信噪比的值

使用一个循环运行的仿真组信噪比点的向量SNRdB。信噪比的信噪比向量配置是一个范围分包括一个指向-6.0 dB,信噪比的测试要求是开检出率(99%)是为序言格式实现0,如表8.4.1.5-1在TS 38.141 - 1中讨论。

hNRPRACHWaveformGenerator生成一个输出信号归一化到相同的传输能量的一个上行数据传输在5 g的工具箱™。因此,相同的归一化必须发生在噪声添加到开环。噪声添加OFDM解调之前将由传输线的放大因子的大小等于根号传输线(美元N_ {FFT} $)。确保噪声增加的力量解调后规范化,从而达到所需的信噪比,所需的噪声功率除以美元N_ {FFT} $。此外,作为噪声的实部和虚部分别创建之前组合成复杂的加性高斯白噪声,噪声幅值比例1 / \ sqrt2美元所以生成的噪声功率是1。

在每一个信噪比测试点,计算概率检测子帧的子帧的基础上使用这些步骤:

  • 开环传输:使用hNRPRACHWaveformGenerator生成一个开环波形。将开环前言中定义的时间偏移量与图8.4.1.4.2-2 TS 38.141 - 1。设定一个时间抵消基础值50%的循环变化的数量是开一代。这抵消增加对于每一个序言,添加一个步骤0.1微秒的价值,直到最后的测试范围,为开环0.9微秒序言格式0。这种模式然后重复。

  • 噪声信道建模:通过波形通过TDL渠道并添加加性高斯白噪声。添加额外的样品的波形覆盖的范围延误预计从信道建模(的组合实现延迟和通道延迟传播)。这个实现延迟然后删除,以确保实现延迟被解释为一个实际的时间偏移的序言探测器。

  • 频率偏移的应用:应用接收到的波形的频率偏移所定义的规范。

  • 开环检测:进行开环检测使用hPRACHDetect所有细胞中指数(0 - 63)。使用返回的开环检测指数和抵消hPRACHDetect确定一个检测根据约束讨论的是成功的介绍部分。

%初始化变量存储在每个信噪比检测概率pDetection = 0(大小(SNRdB));%得到的最大数量样品推迟了一个通道多路%的组件。这是最大的通道路径的计算%的延迟和实现延迟通道过滤器。这个例子%需要这种冲洗通道滤波器获得接收到的信号。channelInfo =信息(渠道);maxChDelay =装天花板(max (channelInfo.PathDelays * channel.SampleRate)) + channelInfo.ChannelFilterDelay;%的总数是开槽的模拟numPRACHSlots =地板(numSubframes / prach.SubframesPerPRACHSlot);%存储配置参数需要生成开波形waveconfig。NumSubframes = prach.SubframesPerPRACHSlot;waveconfig。窗口=窗口;waveconfig。运营商=载体;waveconfig.PRACH。配置=开环;%的临时变量‘prach_init’,‘waveconfig_init’,‘ofdmInfo_init’,%和“channelInfo_init”是用来创建临时变量%‘开’,‘waveconfig’,‘ofdmInfo’,‘channelInfo信噪比内循环%创建独立的并行仿真实例prach_init =开环;waveconfig_init = waveconfig;ofdmInfo_init = ofdmInfo;channelInfo_init = channelInfo;snrIdx = 1:元素个数(SNRdB)%的评论进行并行计算% parfor snrIdx = 1:元素个数为并行计算(SNRdB) %取消%减少总模拟时间,你可以执行这个循环%并行使用并行计算工具箱。注释掉”的%声明和取消“parfor”声明。如果并行计算%的工具箱(TM)没有安装,“parfor”默认为正常”的声明%设置随机数发生器设置为默认值rng (“默认”);%初始化变量的信噪比,需要初始化%的变量在使用并行计算工具箱开环= prach_init;waveconfig = waveconfig_init;ofdmInfo = ofdmInfo_init;channelInfo = channelInfo_init;%复位频道,这样每个信噪比点会经历相同的%通道实现重置(渠道);%正常化噪声功率占采样率,这是一个%传输线大小的函数用于OFDM调制。信噪比的定义% /载波资源元素对于每一个接收天线。信噪比= 10 ^ (SNRdB (snrIdx) / 10);carrierOFDMInfo = nrOFDMInfo(载体);N0 = 1 /√(2.0 * channel.NumReceiveAntennas *双(carrierOFDMInfo.Nfft) *信噪比);%检测序言计数detectedCount = 0;%为每个开槽循环numActivePRACHSlots = 0;nSlot = 0: numPRACHSlots-1开环。NPRACHSlot = nSlot;%为当前生成开波形槽waveconfig.PRACH.Config。NPRACHSlot = nSlot;[波形,~,winfo] = hNRPRACHWaveformGenerator (waveconfig);%跳过这个位置,如果是开是不活跃的如果(isempty (winfo.WaveformResources.PRACH))继续;结束numActivePRACHSlots = numActivePRACHSlots + 1;%设置是开在微秒时间抵消/ TS 38.141 - 1图% 8.4.1.4.2-2和图8.4.1.4.2-3如果prach.LRA = = 839%长序言,如图8.4.1.4.2-2值baseOffset = ((winfo.WaveformResources.PRACH.Resources.PRACHSymbolsInfo.NumCyclicShifts / 2) / prach.LRA) / prach.SubcarrierSpacing * 1 e3;%(微秒)timingOffset = baseOffset +国防部(nSlot 10) / 10;%(微秒)其他的如图8.4.1.4.2-3 %短暂的序言,值baseOffset = 0;%(微秒)timingOffset = baseOffset +国防部(nSlot 9) / 10;%(微秒)结束sampleDelay =修复(timingOffset / 1 e6 * ofdmInfo.SampleRate);%产生传输波形(sampleDelay txwave = [0, 1);波形(1:(end-sampleDelay)));%通过通道模型传递数据。附加零结束的时候%传播波形冲洗频道内容。这些零%考虑推迟引入的通道。这是一个组合%的多路延迟和实现延迟。这个值可能变化百分比取决于采样率,延迟和延迟%的传播rxwave =通道([txwave;0 (maxChDelay、尺寸(txwave 2))));%添加噪声噪音= N0 *复杂(randn(大小(rxwave)), randn(大小(rxwave)));rxwave = rxwave +噪声;%去除信道建模的实现延迟rxwave = rxwave ((channelInfo。ChannelFilterDelay + 1):最终,);%应用频率偏移t =((0:大小(rxwave, 1) 1) / channel.SampleRate)。”;rxwave = rxwave。* repmat (exp(1 * 2 *π* foffset * t), 1,大小(rxwave, 2));%所有细胞中开环检测指标(检测、补偿)= hPRACHDetect(载体,开环,rxwave (0:63)。');%测试中检测如果(长度(发现)= = 1)%检查正确的序言如果(= = prach.PreambleIndex检测)%计算定时估计误差trueOffset = timingOffset / 1 e6;% (s)measuredOffset =补偿(1)/ channel.SampleRate;timingerror = abs (measuredOffset-trueOffset);%测试可接受的计时误差如果(timingerror < = timeErrorTolerance / 1 e6) detectedCount = detectedCount + 1;%检测序言其他的disp (“定时误差”);结束其他的disp (“检测到错误的序言”);结束其他的disp (“检测到多个或零前言”);结束结束% nSlot循环%计算最终的检测概率的信噪比pDetection (snrIdx) = detectedCount / numActivePRACHSlots;结束%的信噪比循环
检测到多个或零前言发现多个或零前言发现多个或零前言检测到错误的序言发现多个或零前言发现多个或零前言发现多个或零前言检测到错误的序言发现多个或零前言发现多个或零前言发现多个或零前言

结果

结束时信噪比循环,示例图每个信噪比的检测概率计算值对目标的概率。

%的阴谋探测概率情节(SNRdB pDetection,“这”,“线宽”2,“MarkerSize”7);标题([的探测概率的num2str (numSubframes)“子帧(年代)]);包含(“SNRdB”);ylabel (“探测概率”);网格;持有;%绘制目标概率图(-6.0,0.99,“处方”,“线宽”2,“MarkerSize”7);传奇(的仿真结果,“目标99%概率”,“位置”,“东南”);minP = 0;如果(~ isnan (min (pDetection))) minP = min (pDetection);结束轴([SNRdB (1) -0.1 SNRdB(结束)+ 0.1 minp - 0.05 - 1.05))

附录

这个示例使用这些辅助函数:

引用

  1. 3 gpp TS 38.141 - 1。“NR;基站(BS)一致性测试。第1部分:进行一致性测试。”第三代合作伙伴项目;技术规范集团无线接入网络

  2. 3 gpp TS 38.104。“NR;基站(BS)无线电发射和接受。”第三代合作伙伴项目;技术规范集团无线接入网络

另请参阅

功能

对象

相关的话题