主要内容

单元搜索、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在映射到物理广播信道(PBCH)的广播信道(BCH)上承载。这是通过固定的编码和调制方案传输的,并且可以在初始小区搜索过程之后解码。利用从MIB获得的信息,UE现在可以解码控制格式指示符(CFI),其指示物理下行链路控制信道(PDCCH)长度。这允许解码PDCCH,并搜索下行链路控制信息(DCI)消息。用系统信息无线网络临时标识符(SI-RNTI)屏蔽的DCI消息CRC表示SIB在同一子帧中被携带。SIB在广播控制信道(BCCH)逻辑信道中传输。通常,BCCH消息在下行链路共享信道(DL-SCH)上承载,并在物理下行链路共享信道(PDSCH)上传输。PDSCH传输的格式和资源分配由PDCCH上的DCI消息指示。

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

负载和过程I/Q波形

MATLAB®可用于使用仪器控制工具箱从各种仪器中获取I/Q数据™. 在此示例中,使用具有两个发射天线的eNodeB的单天线I/Q捕获。捕获以15.36 Msamples/s的速度执行,这足以正确采样10 MHz以下的所有有效eNodeB带宽: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”);%#好的rmc.NCellID=17;rmc.TotSubframes=41;rmc.PDSCH.RNTI=61;% SIB参数rmc.SIB.Enable=“上”; rmc.SIB.DCIFormat=“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))channelFigure=figure(“可见”,“关”);终止(简介、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))fprintf(“\n收到的信号不能为空。\n”);返回终止%显示接收信号频谱流(“\n正在设置接收信号频谱…\n”);简介(awgn (eNodeBOutput, 100.0));如果(sr ~ = ofdmInfo.SamplingRate)如果(sr < ofdmInfo.SamplingRate)警告('接收信号采样率(%0.3fMs/s)低于cell搜索/ MIB解码所需的采样率(%0.3fMs/s);cell搜索/ MIB解码可能失败。,sr/1e6,ofdmInfo.SamplingRate/1e6);终止流(“\n正在从%0.3fMs/s重新采样到%0.3fMs/s以进行单元搜索/MIB解码…\n”,sr/1e6,ofdmInfo.SamplingRate/1e6);其他的流(“\n不需要重新采样;接收到的信号处于小区搜索/MIB解码所需的采样率(%0.3fMs/s)。\n1、sr / e6);终止% Downsample收到信号nSamples =装天花板(ofdmInfo.SamplingRate /轮(sr) *大小(eNodeBOutput, 1));nRxAnts = size(eNodeBOutput, 2);downsampling = 0 (nSamples, nRxAnts);对于i=1:nRxAnts downsampling (:,i) = resample(eNodeBOutput(:,i), ofdmInfo. .SamplingRate圆(sr));终止
绘制接收信号频谱。。。从15.360Ms/s重新采样到1.920Ms/s,用于小区搜索/MIB解码。。。

小区搜索、循环前缀长度和双工模式检测

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

流(“\n正在执行单元格搜索…\n”);%设置搜索的双工模式和循环前缀长度组合;如果%在| enb |中配置这些参数中的任何一个,则该值为%被认为是正确的如果(~ isfield (enb“双工模式”)) 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,offset,peak]=lteCellSearch(enb,下采样,searchalg);enb.NCellID=enb.NCellID(1);偏移量=偏移量(1);峰值=峰值(1);如果(峰值>峰值)enbMax=enb;offsetMax=偏移量;peakMax=峰值;终止终止终止%使用小区标识、循环前缀长度、双工模式和定时在单元格搜索期间给出最大相关性的偏移量enb = enbMax;抵消= offsetMax;%计算三个可能的主单元的相关性%的身份;建立了细胞同一性的相关性峰值%以上与其他两个相关的峰值进行比较%初级细胞的身份,以建立质量%的相关性。相关系数=细胞(1、3);idGroup =地板(enbMax.NCellID / 3);对于i=0:2 enb.NCellID=idGroup*3+mod(enbMax.NCellID+i,3);[~,corr{i+1}]=lteDLFrameOffset(enb,下采样);corr{i+1}=sum(corr{i+1},2);终止阈值=1.3*max([corr{2};corr{3}]);%根据经验得出的乘数为1.3如果{1} (max (corr) <阈值)警告(同步信号相关性弱;检测到的细胞身份可能不正确。”);终止%返回到最初检测到的单元标识enb。NCellID = enbMax.NCellID;%绘制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);;
执行单元的搜索…dllrb: 6 DuplexMode: 'FDD' CyclicPrefix: 'Normal' NCellID: 17 NSubframe: 0

频率偏移估计和校正

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

流('\n '执行频率偏移估计…\n');%对于TDD,TDDConfig和SSC默认为0。这些参数不适用%在系统中建立,直到SIB1被解码,因此在这个阶段%值为0表示最保守的假设(最少的下行链路)%子帧和最短的特殊子帧)。如果(strcmpi (enb。DuplexMode,“TDD”))enb.TDDConfig=0;enb.SSC=0;终止delta_f=LTE频率偏移(enb,下采样);fprintf(“频率偏移:% 0.3 fhz \ n”, delta_f);downsampled = lteFrequencyCorrect(enb, downsampled, 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。InterpWinSize = 1;插值窗口大小%假设初始解码尝试使用4个细胞特定的参考信号;%确保信道估计值可用于所有特定于小区的参考%信号enb.CellRefP=4;fprintf(“执行OFDM解调。\ n \ n”);griddims = lteResourceGridSize (enb);%资源网格维度L=griddims(2);%子帧中的OFDM符号数%OFDM解调信号rxgrid = lteofdm解调器(enb,下采样);如果(isempty (rxgrid))流('在定时同步后,信号小于一个子帧,因此不会执行进一步的解调');返回终止执行信道估计[hest, nest] = lteDLChannelEstimate(enb, cec, rxgrid(:,1:L,:));
执行OFDM解调……

PBCH解调、BCH解码、MIB解析

MIB现在与作为BCH CRC上的掩码传输的小区特定参考信号端口数一起解码LTEPBCDECODE建立帧定时模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解码后的Cell-wide设置:\n')(九); disp(enb);;如果(enb.CellRefP = = 0)流('MIB解码失败(enb.CellRefP=0).\n\n');返回终止如果(enb.NDLRB==0)fprintf('MIB解码失败(enb.NDLRB=0)。\n\n');返回终止
执行MIB解码…MIB解码后的Cell-wide设置:NDLRB: 50 DuplexMode: 'FDD' CyclicPrefix: 'Normal' NCellID: 17 NSubframe: 0 CellRefP: 2 PHICHDuration: 'Normal' Ng: 'One' NFrame: 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',sr/1e6,ofdmInfo.SamplingRate/1e6);其他的流(“\n不需要重新采样;接收到的信号为NDLRB=%d(%0.3fMs/s)的所需采样率。\n”,enb.NDLRB,sr/1e6);终止nSamples =装天花板(ofdmInfo.SamplingRate /轮(sr) *大小(eNodeBOutput, 1));resampled = 0 (nSamples, nRxAnts);对于i = 1:nRxAnts resampled(:,i) = resample(eNodeBOutput(:,i), ofdmInfo. .SamplingRate圆(sr));终止%进行频率偏差估计和校正流('\n '执行频率偏移估计…\n');delta_f = lteFrequencyOffset(enb, resampled); / /重新采样流(“频率偏移:% 0.3 fhz \ n”,delta_f);重采样=LTE频率正确(enb,重采样,delta_f);找到帧的开始流(“\n正在执行定时偏移估计…\n”);offset = lteDLFrameOffset(enb, resampled);流('帧开始的时间偏移:%d个样本\n',抵消);%将信号与帧的开始对齐重新取样=重新取样(1 +抵消:最终,);%正交频分复用解调流(“\n正在执行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星座。

% Check this frame contains SIB1, if not advance by 1 frame provided we . %检查这个帧包含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”,分隔符);fprintf('SIB1解码帧%d\n',国防部(enb.NFrame, 1024));流(“% s \ n \ n”、分离器);%使用每一组新的8帧作为SIB1重置HARQ缓冲区% 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的REs% rxsubframe和channel estimate hest。流(“解码CFI。\ n \ n”);pcfichIndices = ltePCFICHIndices (enb);%获取PCFICH指数[pcfichRx,pcfichHest]=lteExtractResources(pcfichIndices,rxsubframe,hest);%解码PCFICHcfiBits=ltePCFICHDecode(enb、pcfichRx、pcfichHest、nest);cfi=lteCFIDecode(cfiBits);%得到CFI如果(伊斯菲尔德(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。流('PDCCH搜索SI-RNTI…\n\n');pdcch =结构(“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};流('带有SI-RNTI的DCI消息:\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,pdschIndicesInfo]=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);如果crc==0 fprintf(“成功SIB1复苏。\ n \ n”);其他的流(“SIB1解码失败。\ n \ n”);终止其他的%表示从DCI创建PDSCH配置%消息失败流(“从DCI消息创建PDSCH配置失败。\n\n”);终止终止如果(numel(所有DCI)==0)%指示DCI解码失败流(“DCI解码失败。\ n \ n”);终止%更新信道估计图图(channelFigure);冲浪(abs(命令(:,:,1,1)));hSIB1RecoveryExamplePlots (channelFigure);channelfigel . currentaxis . xlim = [0 size(hst,2)+1];channelfigel . currentaxis . ylim = [0 size(hst,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 PDCCH搜索SI-RNTI…DCI消息,其中SI-RNTI:DCIFormat:'Format1A'CIF:0分配类型:0分配:[1x1结构]ModCoding:6 HARQNo:0新数据:0 RV:1 TPCPUCCH:0 TDDIndex:0 SRS请求:0 HARQACKResOffset:0 DCI解码后的PDSCH设置:RNTI:65535 PRBSet:[8x1 uint64]NLayers:2 CSI:“On”调制:{'QPSK'}RV:1 TxScheme:“TxDiversity”NTurboDecIts:5解码SIB1…PDSCH RMS EVM:27.072%PDSCH峰值EVM:75.981%SIB1 CRC:0成功SIB1恢复。

附录

本例使用这些辅助函数。