主要内容

小区搜索,MIB和SIB1恢复

这个例子展示了如何使用LTE工具箱™完全同步,解调和解码一个实时的eNodeB信号。在用户设备(UE)能够与网络通信之前,它必须执行cell搜索和选择程序,并获取初始系统信息。这包括获取槽和帧同步,找出单元身份和解码主信息块(MIB)和系统信息块(sib)。这个例子演示了这个过程,并对MIB和SIB1(系统信息块的第一个)进行解码。要解码MIB和SIB1,需要一个全面的接收器,能够解调和解码大多数下行信道和信号。

介绍

为了与网络通信,UE必须获得一些基本系统信息。这是由MIB和SIB携带的。MIB承载最重要的系统信息:

  • 系统带宽

  • 系统机架号(SFN)

  • Physical Hybrid Automatic Repeat Request (HARQ) Indicator Channel (PHICH)配置

MIB在BCH (Broadcast Channel)映射到PBCH (Physical Broadcast Channel)上。这是用一个固定的编码和调制方案传输的,可以在初始小区搜索程序后解码。有了从MIB中获得的信息,终端现在可以解码控制格式指示器(CFI),它表示物理下行控制通道(PDCCH)的长度。这允许对PDCCH进行解码,并搜索下行控制信息(DCI)消息。用系统信息无线网络临时标识符(SI-RNTI)掩码的DCI消息CRC表示在同一子帧中携带SIB。sib在广播控制信道(BCCH)逻辑信道中传输。一般情况下,bch报文在下行共享通道(DL-SCH)上传输,在物理下行共享通道(PDSCH)上传输。PDSCH传输的格式和资源分配由PDCCH上的DCI消息表示。

本示例对MIB和SystemInformationBlockType1 (SIB1)进行解码。后者的传输是为了指定其他系统信息的调度,以及小区身份的各个方面,如公共陆地移动网络(PLMN)身份。虽然SIB1是在固定的时间计划中传输的,但是携带SIB1的PDSCH的资源分配是动态的,并在相关的DCI消息中表示。

负载和过程I/Q波形

MATLAB®可用于使用仪器控制工具箱™从各种仪器获取I / Q数据。在该示例中,使用具有两个发射天线的eNodeB的单个天线I / Q捕获。捕获在15.36毫班/秒时进行,足以将所有有效的eNodeB带宽进行正确样本,最高可达10 MHz:1.4 MHz,3 MHz,5 MHz,10 MHz。捕获的数据存储在文件eNodeBoutput.mat中。

或者,可以使用LTE工具箱生成一个合适的LTE信号。这可以通过变量来控制loadfromfile.

loadFromFile = 1;%设置为0以在本地生成eNodeB输出

MIB对应一个BCH传输块。BCH传输时间间隔(TTI),即传输单个传输块所需的时间,为40毫秒或4帧。BCH分4部分传输,每个部分映射到一帧的第一个子帧(子帧0),根据信号条件,每次传输都有可能是独立可解码的。为了确保接收到子帧0,捕获应该至少有11个子帧长,以考虑在子帧0期间开始捕获的可能性。对于信号条件差的情况,可能需要TTI的所有4个部分,在这种情况下,捕获应该至少41个子帧长。SIB1的情况也类似;它在每一帧的子帧5中传输,四个不同的冗余版本(rv)被连续传输,总周期为80毫秒或8帧。因此,要保证对SIB1的单个RV的接收,需要捕获21个子帧(在偶数帧的子帧5中),但如果信号条件是所有RV都需要合并,则需要捕获多达81个子帧。

如果loadFromFile负载eNodeBOutput.mat%负载eNodeB输出的I/Q捕获eNodeBOutput = (eNodeBOutput) / 32768年翻一番;%缩放样本sr = 15.36 e6;载样取样率%别的rmc = lteRMCDL (“R.3”);% #好< UNRCH >rmc.ncellid = 17;rmc.totsubframes = 41;rmc.pdsch.rnti = 61;% SIB参数rmc.sib.enable =.“上”;rmc.sib.dcormat =“Format1A”;rmc.sib.allocationtype = 0;rmc.sib.vrbstart = 8;rmc.sib.vrblength = 8;rmc.sib.gap = 0;% SIB数据字段填充随机位,这不是一个有效的SIB%的消息rmc.SIB.Data = randi([0 1],176,1);[eNodeBOutput ~,信息]= lteRMCDLTool (rmc中,[1,0,0,1]);sr = info.SamplingRate;%生成样本的采样率结尾

在解码MIB之前,UE不知道整个系统带宽。主次同步信号(PSS和SSS)和PBCH(包含MIB)都位于系统带宽的72个子载波(6个资源块)中,允许UE仅对该中心区域进行初始解调。因此带宽初始设置为6个资源块。相应的I/Q波形需要重新采样。在这个阶段,我们也显示输入信号的频谱eNodeBoutput.

%设置一些家政变量:命令窗口日志记录的%分隔符分隔符= repmat (“- - -”1、50);%的情节如果(~ ('Channelfigure''var') || ~isvalid(channelFigure))'可见的'“关闭”);结尾(简介、synchCorrPlot pdcchConstDiagram] =...hSIB1RecoveryExamplePlots (channelFigure sr);% PDSCH维生素pdschEVM = comm.EVM ();pdschEVM。MaximumEVMOutputPort = true;初始单元搜索的抽样率是用为6个资源块配置% lteOFDMInfo。enb。CyclicPrefix设置%在调用lteOFDMInfo时暂时抑制默认值%警告(不影响采样率)。enb =结构;% eNodeB配置结构enb。NDLRB = 6;%资源块数OFDMINFO = LTEOFDMINFO(SETFIELD(eNB,“CyclicPrefix”“正常”));% #好< SFLD >如果(isempty (eNodeBOutput))流(接收到的信号不能为空。);返回结尾%显示接收信号频谱流('\ npplotting接收信号谱... \ n');简介(awgn (eNodeBOutput, 100.0));如果(sr ~ = ofdmInfo.SamplingRate)如果(sr < ofdmInfo.SamplingRate)警告('接收信号采样率(%0.3fMs/s)低于cell搜索/ MIB解码所需的采样率(%0.3fMs/s);cell搜索/ MIB解码可能失败。1、sr / 1 e6 ofdmInfo.SamplingRate / e6);结尾流('\nResampling from %0.3fMs/s to %0.3fMs/s for cell search / MIB decoding…\n'1、sr / 1 e6 ofdmInfo.SamplingRate / e6);别的流(' \ nResampling不是必需的;收到的信号是用于小区搜索/ MIB解码的所需采样率(%0.3fms / s)。\ n'1、sr / e6);结尾% Downsample收到信号nSamples =装天花板(ofdmInfo.SamplingRate /轮(sr) *大小(eNodeBOutput, 1));nrxants = size(eNodeboutput,2);DownSampled = Zeros(nsamples,nrxants);为了i=1:nRxAnts downsampling (:,i) = resample(eNodeBOutput(:,i), ofdmInfo. .SamplingRate圆(sr));结尾
绘制接收的信号频谱...从15.360ms / s重新采样为1.920ms / s,用于小区搜索/ MIB解码......

Cell Search,循环前缀长度和双工模式检测

调用lteCellSearch获得细胞标识和定时偏移抵消到第一个帧头。对循环前缀长度和双工模式的每个组合重复进行单元搜索,相关性最强的组合允许识别这些参数。接收信号与检测细胞身份的PSS/SSS之间的相关性图被产生。PSS采用时域相关检测,SSS采用频域相关检测。在SSS检测之前,使用循环前缀相关进行频率偏移估计/校正。时域PSS检测对小的频偏具有鲁棒性,但较大的频偏会降低PSS的相关性。

流(“搜索…\ n \ nPerforming细胞”);%设置双工模式和循环前缀长度组合进行搜索;如果%在| eNB |配置了这些参数中的任何一个那么值是%被认为是正确的如果(〜isfield(eNB,“DuplexMode”)) duplexModes = {'TDD'“FDD”};别的duplexmodes = {enb.duplexmode};结尾如果(〜isfield(eNB,“CyclicPrefix”)) cyclicPrefixes = {“正常”'延伸'};别的cyclicPrefixes = {enb.CyclicPrefix};结尾%跨双面模式和循环前缀长度执行小区搜索%组合,并记录相关性最大的组合;如果%多个单元搜索配置,此示例将解码第一个%(最强)检测到的细胞searchalg.maxcellcount = 1;searchalg.sssdetection ='postfft';peakMax =无穷;为了duplexMode = duplexModes为了cyclicprefix = cyclicprefixes enb.duplexmode = duplexmode {1};enb.cyclicprefix = cyclicprefix {1};[enb.ncellid,偏移,峰值] = LTECellSearch(eNB,DownSampled,SearchaL);eNB.ncellid = eNB.ncellid(1);offset =偏移(1);峰=峰(1);如果(peak>peakMax) enbMax = enb;offsetMax =抵消;peakMax =峰值;结尾结尾结尾%使用小区标识、循环前缀长度、双工模式和定时在单元格搜索期间给出最大相关性的偏移量enb = enbMax;抵消= offsetMax;%计算三个可能的主单元的相关性%的身份;建立了细胞同一性的相关性峰值%以上与其他两个相关的峰值进行比较%初级细胞的身份,以建立质量%的相关性。相关系数=细胞(1、3);idGroup =地板(enbMax.NCellID / 3);为了I = 0:2 enb。NCellID = idGroup*3 + mod(enbMax。NCellID +我,3);[~,corr{i+1}] = lteDLFrameOffset(enb, downsampling);corr {i + 1} =总和(corr {i + 1}, 2);结尾阈值= 1.3 * max([corr {2}; corr {3}]);经验获得的1.3%乘数如果{1} (max (corr) <阈值)警告('同步信号相关性弱;检测到的细胞标识可能是不正确的。);结尾%返回最初检测到的细胞标识enb。NCellID = enbMax.NCellID;%plot pss / sss相关性和阈值synchCorrPlot。YLimits = [0 max([corr{1};阈值)* 1.1);{1} synchCorrPlot ([corr阈值*的(大小{1})(corr)]);%执行定时同步流('定时偏移到帧开始:%d样本\ n',抵消);downsampled = downsampled(1 +抵消:最终,);enb。NSubframe = 0;显示单元格范围设置流(' cell -wide settings after cell search:\n');disp (enb);
执行小区搜索...时序偏移到帧启动:481示例单元格屏幕范围设置在单元格搜索之后:ndlrb:6 duplexmode:'fdd'cyclicprefix:'normal'ncellid:17 nsubframe:0

频率偏移估计和校正

在OFDM解调之前,必须去除任何显著的频率偏移。估计和校正I/Q波形中的频率偏移lteFrequencyOffsetlteFrequencyCorrect.通过循环前缀的相关性估计频率偏移,因此可以估计高达+/-半载波间隔的偏移I. +/- 7.5kHz。

流('\ n qualforming频率偏移估计... \ n');%对于TDD, TDDConfig和SSC默认为0。这些参数不是%在系统中建立,直到SIB1被解码,因此在这个阶段%值为0表示最保守的假设(最少的下行链路)%子帧和最短的特殊子帧)。如果(strcmpi (enb。DuplexMode,'TDD')))enb.tddconfig = 0;eNB.SSC = 0;结尾delta_f = lteFrequencyOffset(enb, downsampling);流('频率偏移:%0.3FHz \ n',delta_f);DownSampled = LtefRequencyCorrect(eNB,DownPled,Delta_F);
执行频率偏移估计...频率偏移:-14.902Hz

OFDM解调与信道估计

OFDM下采样I/Q波形被解调以产生资源网格rxgrid..这是用来执行信道估计。命令是频道估计,是噪声的估计(用于MMSE均衡)和cec为信道估计器配置。

对于信道估计,示例假设4个小区特定的参考信号。这意味着可以从所有可能的小区特定参考信号端口到每个接收器天线的信道估计。特定于小区的参考信号端口的真实数量尚不清楚。信道估计仅在第一子帧上执行,即使用第一个子帧lOFDM符号rxgrid.

在频率和时间上,采用保守的13 × 9导频平均窗,以减少信道估计过程中噪声对导频估计的影响。

通道估计器配置cec。PilotAverage ='用户自定义'%引航平均的类型cec。FreqWindow = 13;%频率窗口大小cec。TimeWindow = 9;%时间窗口大小cec.interptype =.'立方体'二维插值型cec。InterpWindow ='中心'插值窗口类型cec。InterpWinSize = 1;%插值窗口大小%假设初始解码尝试使用4个细胞特定的参考信号;%确保通道估计可用于所有特定单元格的参考%的信号enb.cellrefp.= 4; fprintf('执行OFDM解调... \ n \ n');griddims = lteResourceGridSize (enb);%资源网格维度L = griddims (2);%一帧OFDM符号数% OFDM解调信号rxgrid = lteofdm解调器(enb,下采样);如果(isempty (rxgrid))流('在定时同步后,信号短于一个子帧,因此不会执行进一步的解调。\ n');返回结尾执行信道估计[hest, nest] = lteDLChannelEstimate(enb, cec, rxgrid(:,1:L,:));
执行OFDM解调……

PBCH解调、BCH解码、MIB解析

现在解码MIB以及作为BCH CRC上作为掩模发送的小区特定参考信号端口的数量。功能ltePBCHDecode建立帧计时模4并将其返回nfmod4参数。它还以vector形式返回MIB位mib以及分配到的特定于特定于特定的参考信号端口的真实数量enb.cellrefp.在此函数调用的输出。如果特定于单元格的参考信号端口的数量被解码为enb.cellrefp = 0.,表示解码BCH失败。功能LTEMIB.用于解析位向量mib并将相关字段添加到配置结构中eNB..MIB解码后,检测到的带宽显示在enb。NDLRB

%解码MIB从第一个中提取PBCH对应的资源元素(REs)%子帧横跨所有接收天线和信道估计流(“执行MIB解码…\ n”);pbchIndices = ltePBCHIndices (enb);[pbchRx, pbchHest] = lteExtractResources(...pbchIndices rxgrid (::, 1: L),命令(:,:,1:L:));%解码PBCH[bchBits, pbchSymbols, nfmod4, mib, enb.]CellRefP] = ltePBCHDecode (...enb, pbchRx, pbchest, nest);%解析MIB位eNB = LTEMIB(MIB,eNB);%从函数LTEPBCHDECODE中加入NFMOD4值输出,如%从MIB中建立的NFrame值就是系统帧号% (SFN) modulo 4(在MIB中存储为floor(SFN/4))enb。NFrame = enb.NFrame + nfmod4;% MIB解码后显示单元宽设置流('MIB解码后的单元格设置:\ n');disp (enb);如果(enb.cellrefp == 0)fprintf('MIB解码失败(enb.CellRefP=0).\n\n');返回结尾如果(enb.NDLRB = = 0)流('MIB解码失败(enb.NDLRB=0).\n\n');返回结尾
执行MIB解码... MIB解码后的单元格设置:NDLRB:50双工示波器:'FDD'CyclicPrefix:'Normal'NCellID:17 Nsubframe:0 CellRefp:2 Phichduration:'正常'NG:406

全带宽OFDM解调

现在是已知信号带宽,信号重新采样到LTE工具箱用于该带宽的标称采样率(参见lteOFDMModulate详情)。对重采样信号进行频偏估计和校正。然后进行定时同步和OFDM解调。

流('重新启动接收,现在带宽(NDLRB=%d)已知…\n', enb.NDLRB);%重新采样,现在我们知道了真正的带宽ofdmInfo = lteOFDMInfo (enb);如果(sr ~ = ofdmInfo.SamplingRate)如果(sr < ofdmInfo.SamplingRate)警告('接收信号采样率(%0.3fMs/s)低于NDLRB=%d (%0.3fMs/s)的期望采样率;PDCCH搜索/ SIB1解码可能失败。”sr / 1 e6, enb.NDLRB ofdmInfo.SamplingRate / 1 e6);结尾流('\nResampling from %0.3fMs/s to %0.3fMs/s…\n'1、sr / 1 e6 ofdmInfo.SamplingRate / e6);别的流(' \ nResampling不是必需的;接收信号在NDLRB=%d (%0.3fMs/s)的期望采样率下。\n'1、enb.NDLRB sr / e6);结尾nSamples =装天花板(ofdmInfo.SamplingRate /轮(sr) *大小(eNodeBOutput, 1));resampled = 0 (nSamples, nRxAnts);为了i = 1:nrxants重新采样(:,i)=重组(eNodeboutput(:,i),Ofdminfo.samplingRate,Round(SR));结尾%进行频率偏差估计和校正流('\ n qualforming频率偏移估计... \ n');delta_f = lteFrequencyOffset(enb, resampled); / /重新采样流('频率偏移:%0.3FHz \ n',delta_f);重新采样= ltefrequencycorect(eNB,重新采样,delta_f);找到帧的开始流('\ nuperforming定时偏移估计... \ n');offset = lteDLFrameOffset(enb, resampled);流('定时偏移到帧开始:%d样本\ n',抵消);用帧的开始%对准信号重新取样=重新取样(1 +抵消:最终,);%OFDM解调流('\ n ofdming ofdm解调... \ n \ n');rxgrid = lteofdm解调器(enb,重采样);
重新启动接收,现在带宽(NDLRB=50)是已知的…重采样不需要;当NDLRB=50 (15.360Ms/s)时,接收到的信号具有理想的采样率。执行频率偏移估计…频率偏移:5.221Hz执行定时偏移估计…执行OFDM解调…

SIB1解码

在本节中执行以下步骤:

  • 物理控制格式指示器通道(PCFICH)解调,CFI解码

  • PDCCH解码

  • 盲目PDCCH搜索

  • SIB位恢复:PDSCH解调和DL-SCH解码

  • DL-SCH HARQ状态的缓冲和重置

恢复后,SIB CRC应为0。

对于接收信号中携带SIB1的每一个子帧,在循环中执行这些解码步骤。如上所述,SIB1在每一偶数帧的子帧5中传输,因此首先检查输入信号,以确定至少有一次SIB1出现。对于每个SIB1子帧,绘制信道估计幅度响应图,如图所示为接收的PDCCH星座。

%检查此帧包含SIB1,如果未提供1帧,则提供了我们%有足够的数据,否则终止。如果(mod (enb.NFrame, 2) ~ = 0)如果(大小(rxgrid, 2) > = (L * 10)) rxgrid (:, 1: (L * 10 ),:) = [];流('跳过帧%d(奇数帧号不包含sib1)。\ n \ n',enb.nframe);别的rxgrid = [];结尾enb。NFrame = enb。NFrame + 1;结尾%推进到子帧5,或者如果我们有少于5个子帧终止如果(大小(rxgrid, 2) > = (L * 5)) rxgrid (:, 1: (L * 5 ),:) = [];%删除子帧0到4别的rxgrid = [];结尾enb。NSubframe = 5;如果(isempty (rxgrid))流('接收的信号不包含携带SIB1的子帧' \n\n');结尾%重置HARQ缓冲区decState = [];%当我们有更多的数据剩余,尝试解码SIB1(size(rxgrid,2) > 0) fprintf('%s \ n'、分离器);流('SIB1解码帧%d\n',国防部(enb.NFrame, 1024));流(“% s \ n \ n”、分离器);%将HARQ缓冲区重置为SIB1的每个新的8帧% info可能不同如果(mod (enb.NFrame 8) = = 0)流('重置HARQ缓冲区。\ n \ n');decState = [];结尾%提取电流子帧rxsubframe = rxgrid (::, 1: L);执行信道估计[hest,nest] = lteDLChannelEstimate(enb, cec, rxsubframe);% PCFICH解调,CFI解码。CFI现在被解调使用类似的资源提取和解码功能进行解码对于BCH接收而显示的%。lteextractresources用于%从接收的子帧的PCFICH对应的%提取物% rxsubframe和channel estimate hest。流(“解码CFI。\ n \ n”);pcfichIndices = ltePCFICHIndices (enb);%获得PCFICH指数[pcfichRx, pcfichest] = lteExtractResources(pcfichIndices, rxsubframe, hest);%解码PCFICHcfibits = ltepcfichdecode(eNB,pcfichrx,pcfichhest,巢);CFI = LTECFIDECODE(CFIBITS);%获得CFI.如果(ISFIELD(eNB,“CFI”) && cfi~=enb.CFI)释放(pdcchConstDiagram);结尾enb。CFI = CFI;流('Decoded CFI值:%d\n\n', enb.CFI);%对于TDD,必须盲译码PDCCH的可能值% the PHICH configuration factor m_i (0,1,2) in TS36.211% m_i = 0,1和2的值可以通过配置TDD来实现%上行-下行配置分别为1、6和0。如果(strcmpi (enb。DuplexMode,'TDD'tddConfigs = [1 6 0];别的tddconfigs = 0;%不用于FDD,只用于控制while循环结尾alldci = {};(isempty(alldci)&&〜isempty(tddconfigs))%配置TDD上下行配置如果(strcmpi (enb。DuplexMode,'TDD')))enb.tddconfig = tddconfigs(1);结尾tddConfigs (1) = [];%PDCCH解调。PDCCH现在解调和解码%使用类似的资源提取和解码功能%显示为BCH和CFI接收pdcchindices = ltepdcchindices(eNB);%获得PDCCH指数[pdcchRx, pdcchhst] = lteExtractResources(pdcchIndices, rxsubframe, hst); / /输出译码PDCCH并绘制星座图[dciBits, pdcchSymbols] = ltePDCCHDecode(enb, pdcchRx, pdcchest, nest);pdcchConstDiagram (pdcchSymbols);% PDCCH盲搜索系统信息(SI)和DCI解码。LTE工具箱提供了PDCCH的完全盲搜索来查找具有指定RNTI的任何DCI消息,在这种情况下,SI-RNTI。流(' pdch search for SI-RNTI…\n\n');pdcch = struct('rnti', 65535);pdcch。ControlChannelType =“PDCCH”;pdcch。EnableCarrierIndication =“关闭”;pdcch。SearchSpace =“普通”;pdcch。EnableMultipleCSIRequest =“关闭”;pdcch.enablesrsrequest =“关闭”;pdcch。NTxAnts = 1;alldci = ltePDCCHSearch(enb, pdcch, dciBits); / /查询所有数据%在pcch中搜索DCI结尾%如果解码DCI,则继续解码PDSCH / DL-SCH为了I = 1:numel(alldci) dci = alldci{I};流('DCI消息与SI-RNTI:\ n');disp (dci);%从DCI获取PDSCH配置[PDSCH,TRBLKLEN] = HPDSCHCONFIGURATION(eNB,DCI,PDCCH.rnti);%如果已创建PDSCH配置,则继续解码PDSCH%/ DL-SCH如果~ isempty (pdsch) pdsch。NTurboDecIts = 5;流('DCI解码后的PDSCH设置:\ n');disp (pdsch);% PDSCH解调和DL-SCH译码恢复SIB位。%现在解析DCI消息以给出配置%PDSCH携带SIB1,PDSCH是%解调,最后对接收的比特进行DL-SCH解码%来生成SIB1位。流('解码sib1 ... \ n \ n');%获取PDSCH索引[pdschindices,pdschindicsinfo] = ltepdschindices(eNB,pdsch,pdsch.prbset);[pdschrx,pdschhest] = lteextractresources(pdschindices,rxsubframe,hest);%解码PDSCH.[dlschBits,pdschSymbols] = ltePDSCHDecode(enb, pdsch, pdschRx, pdschHest, nest); / /将pdsch解码解码DL-SCH与软缓冲输入/输出HARQ结合如果~ isempty (decState)流(“与之前的传输重组。”);结尾[sib1, crc, decState] = lteDLSCHDecode(enb, pdsch, trblklen, dlschBits, decState);%计算PDSCH EVMencoded = lteDLSCH(enb, pdsch, pdschIndicesInfo. txt)。G, sib1);redd = ltePDSCH(enb, pdsch, recoded); / /重新编码[~,refSymbols] = ltePDSCHDecode(enb, pdsch, remod);[rmsevm,peakevm] = pdschEVM(refSymbols{1}, pdschSymbols{1});流('PDSCH RMS EVM:%0.3F %% \ n', rmsevm);流('PDSCH Peak EVM: %0.3f%%\n\n', peakevm);流(“SIB1 CRC: % d \ n”, crc);如果fprintf == 0 (“成功SIB1复苏。\ n \ n”);别的流(“SIB1解码失败。\ n \ n”);结尾别的%表示从DCI创建PDSCH配置%消息失败流(“从DCI消息创建PDSCH配置失败。\n\n”);结尾结尾如果(NUMER(ALLDCI)== 0)% DCI解码失败流(“DCI解码失败。\ n \ n”);结尾%更新信道估计图图(ChannFeigure);冲浪(ABS(hest(::,1,1))));hsib1recoveryexampleplots(ChannFogigure);ChannelFigure.currentaxes.xlim = [0大小(hest,2)+1];channelfigure.currentaxes.ylim = [0大小(hest,1)+1];%跳过2帧并再次尝试SIB1解码,或者如果我们终止%剩余少于2帧。如果(大小(rxgrid,2)> =(l * 20))rxgrid(:,1:(l * 20),:) = [];%删除了2个框架别的rxgrid = [];%少于2帧结尾enb。NFrame =国防部(enb。NFrame + 2, 1024);结尾
-------------------------------------------------- SIB1解码帧406  -------------------------------------------------- 解码CFI……解码的CFI值:2 pdch搜索SI-RNTI…DCI SI-RNTI消息:DCIFormat:“Format1A”CIF: 0 AllocationType: 0配置:[1 x1 struct] ModCoding: 6 HARQNo: 0 NewData: 0房车:1 TPCPUCCH: 0 TDDIndex: 0 SRSRequest: 0 HARQACKResOffset: 0 DCI解码后PDSCH设置:RNTI: 65535 PRBSet: x1 uint64 [8] NLayers: 2 CSI:”“调制:{“正交相移编码”}房车:1 TxScheme:“TxDiversity”NTurboDecIts:5解码SIB1……PDSCH RMS EVM: 27.072% PDSCH Peak EVM: 75.981% SIB1 CRC: 0 SIB1恢复成功。

附录

此示例使用这些辅助功能。