主要内容

Cell Search, MIB and SIB1 Recovery

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

介绍

为了与网络通信,终端必须获取一些基本的系统信息。这是由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 Msamples/s进行,这足以正确地采样所有有效的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.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))“可见”“关闭”);结束(简介、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))流(接收到的信号不能为空。);返回结束%显示接收信号频谱流(绘制接收信号频谱…);简介(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不是必需的;接收到的信号以期望的采样率进行cell搜索/ MIB解码(%0.3fMs/s)。1、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));结束
绘制接收信号频谱…cell search / MIB decoding从15.360Ms/s重采样到1.920Ms/s…

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 = duplexModescyclicPrefix = cyclicPrefixes enb。DuplexMode = DuplexMode {1};enb。CyclicPrefix = CyclicPrefix {1};[enb。NCellID, offset, peak] = lteCellSearch(enb, downsampling, searchalg);enb。NCellID = enb.NCellID (1);抵消=抵消(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);结束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 = lteFrequencyOffset(enb, downsampling);流(“频率偏移:% 0.3 fhz \ n”, delta_f);downsampled = lteFrequencyCorrect(enb, downsampled, delta_f); / /采样
执行频率偏移估计…频率偏移:-14.902赫兹

OFDM解调与信道估计

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

对于信道估计,本例假设有4个特定于小区的参考信号。这意味着从所有可能的蜂窝特定参考信号端口到每个接收器天线的信道估计是可用的。细胞特定参考信号端口的真实数量还不知道。信道估计仅对第一个子帧进行,即使用第一个子帧lOFDM符号rxgrid

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

通道估计器配置cec。PilotAverage =“UserDefined”%引航平均的类型cec。FreqWindow = 13;频率窗口大小cec。TimeWindow = 9;%时间窗口大小cec。InterpType =“立方”二维插值型cec。InterpWindow =“中心”插值窗口类型cec。InterpWinSize = 1;插值窗口大小%假设初始解码尝试使用4个细胞特定的参考信号;%确保通道估计可用于所有特定单元格的参考%的信号enb。CellRefP = 4;流(“执行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上作为掩码传输的蜂窝特定参考信号端口的数量一起被解码。这个函数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解码后的Cell-wide设置:\n');disp (enb);如果(enb.CellRefP = = 0)流('MIB解码失败(enb.CellRefP=0).\n\n');返回结束如果(enb.NDLRB = = 0)流('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'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 resampled(:,i) = resample(eNodeBOutput(:,i), ofdmInfo. .SamplingRate圆(sr));结束%进行频率偏差估计和校正流('\n '执行频率偏移估计…\n');delta_f = lteFrequencyOffset(enb, resampled); / /重新采样流(“频率偏移:% 0.3 fhz \ n”, delta_f);resampled = lteFrequencyCorrect(enb, resampled, delta_f);找到帧的开始流('\n '执行定时偏移估计…\n');offset = lteDLFrameOffset(enb, resampled);流('帧开始的时间偏移:%d采样\n',抵消);%将信号与帧的开始对齐重新取样=重新取样(1 +抵消:最终,);% OFDM解调流(“\ nPerforming 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”、分离器);流('SIB1解码帧%d\n',国防部(enb.NFrame, 1024));流(“% s \ n \ n”、分离器);%重置HARQ缓冲区,每增加一组8帧作为SIB1% 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, pcfichest] = lteExtractResources(pcfichIndices, rxsubframe, hest);%解码PCFICHcfiBits = ltePCFICHDecode(enb, pcfichRx, pcfichest, nest);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 =结构(“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-SCHI = 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,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);如果fprintf == 0 (“成功SIB1复苏。\ n \ n”);其他的流(“SIB1解码失败。\ n \ n”);结束其他的%表示从DCI创建PDSCH配置%消息失败流(“从DCI消息创建PDSCH配置失败。\n\n”);结束结束如果(元素个数(alldci) = = 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 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恢复成功。

附录

这个例子使用了这些辅助函数。