主要内容

Cell Search, MIB和SIB1 Recovery

本示例展示了如何使用LTE工具箱™软件完全同步,解调和解码实时eNodeB信号。用户设备(UE)在与网络通信之前,必须经过小区搜索和选择程序,才能获得初始的系统信息。该过程包括获取槽位和帧同步,确定单元身份,解码MIB和系统信息块(sib)。这个示例演示了这个过程,并对MIB和SIB1(系统信息块中的第一个)进行解码。解码MIB和SIB1需要一个综合的,能够解调和解码大多数下行信道和信号。

介绍

为了与网络通信,终端必须获取一些基本的系统信息。它由MIB和sib承载。MIB承载了最重要的系统信息:

  • 系统带宽

  • 系统帧号(SFN)

  • 物理混合自动重复请求(HARQ)指示通道(PHICH)配置

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

本例对MIB和SystemInformationBlockType1 (SIB1)进行解码。后者的传输用于指定其他系统信息的调度,以及诸如公共陆地移动网络(PLMN)标识等小区标识的各个方面。虽然SIB1是按照固定的时间表传输的,但是承载SIB1的PDSCH的资源分配是动态的,并在相关的DCI消息中指出。

加载和处理I/Q波形

MATLAB®可用于使用Instrument Control Toolbox™从各种仪器获取I/Q数据。在本例中,使用带有两个发射天线的eNodeB的单天线I/Q捕获。捕获以15.36 Msamples/s的速度执行,这足以正确采样所有有效的endeb带宽高达10 MHz: 1.4 MHz, 3 MHz, 5 MHz, 10 MHz。捕获的数据存储在eNodeBOutput.mat文件中。

或者,可以使用LTE工具箱生成合适的LTE信号。这可以由变量控制loadFromFile

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

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

如果loadFromFile负载eNodeBOutput.mat% eNodeB输出的负载I/Q捕获eNodeBOutput = double(eNodeBOutput)/32768;%比例样本Sr = 15.36e6;%加载样本的采样率其他的rmc = lteRMCDL(“R.3”);% #好< UNRCH >rmc。ncelllid = 17;rmc。TotSubframes = 41;rmc.PDSCH.RNTI = 61;% SIB参数rmc.SIB.Enable =“上”;rmc.SIB.DCIFormat =“Format1A”;rmc.SIB.AllocationType = 0;rmc. sig . vrbstart = 8;rmc. sig . vrlength = 8;rmc.SIB.Gap = 0;% SIB数据字段填充随机位,这不是一个有效的SIB%的消息rmc.SIB.Data = randi([0 1], 1,176,1);[eNodeBOutput,~,info] = lteRMCDLTool(rmc,[1;0;0;1]);sr = info.SamplingRate;%生成样本的采样率结束

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

%设置一些内务变量:%分隔符用于命令窗口日志记录分离器=修复“- - -”1、50);%的情节如果(~ (“channelFigure”“var”) || ~isvalid(channelFigure))“可见”“关闭”);结束(简介、synchCorrPlot pdcchConstDiagram] =hSIB1RecoveryExamplePlots (channelFigure sr);% PDSCH evmpdschEVM = com . evm ();pdschEVM。MaximumEVMOutputPort = true;初始单元格搜索的采样率是使用% lteofdmino为6个资源块配置。enb。设置CyclicPrefix%暂时在调用lteOFDMInfo中抑制默认值%警告(不影响采样率)。Enb = struct;% eNodeB配置结构enb。NDLRB = 6;%资源块数ofdmInfo = lteOFDMInfo(setfield)“CyclicPrefix”“正常”));% #好< SFLD >如果(isempty (eNodeBOutput))流(\n接收到的信号不能为空。\n);返回;结束显示接收到的信号频谱流('绘制接收到的信号频谱…');简介(awgn (eNodeBOutput, 100.0));如果(sr ~ = ofdmInfo.SamplingRate)如果(sr < ofdmInfo.SamplingRate)警告(接收信号采样率(%0.3fMs/s)低于小区搜索/ MIB解码所需的采样率(%0.3fMs/s);小区搜索/ MIB解码可能失败。1、sr / 1 e6 ofdmInfo.SamplingRate / e6);结束流(\n从%0.3fMs/s重新采样到%0.3fMs/s用于小区搜索/ MIB解码…\n1、sr / 1 e6 ofdmInfo.SamplingRate / e6);其他的流(不需要重新采样;接收到的信号达到小区搜索/ MIB解码所需的采样率(%0.3fMs/s)。1、sr / e6);结束下采样接收信号nSamples = ceil(ofdmInfo.SamplingRate/round(sr)*size(eNodeBOutput,1));nRxAnts = size(eNodeBOutput, 2);downsampling = 0 (nSamples, nRxAnts);i=1:nRxAnts downsampling (:,i) = ressample (eNodeBOutput(:,i), ofdmInfo。SamplingRate圆(sr));结束
绘制接收信号频谱…从15.360Ms/s重采样到1.92 ms /s用于小区搜索/ MIB解码…

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

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

流(\n正在执行单元格搜索…\n);%设置双工模式和循环前缀长度组合进行搜索;如果%在|enb|中配置了这些参数中的任何一个,则值为%假定是正确的如果(~ isfield (enb“DuplexMode”)) duplexModes = {“TDD”“FDD”};其他的= {enb.DuplexMode};结束如果(~ isfield (enb“CyclicPrefix”)) cyclicPrefixes = {“正常”“扩展”};其他的cyclicprefix = {enb.CyclicPrefix};结束%跨双工模式和循环前缀长度执行小区搜索%组合,记录相关性最大的组合;如果如果配置了多个单元搜索,本例将解码第一个%(最强)检测细胞searchalg。MaxCellCount = 1;searchalg。SSSDetection =“PostFFT”;peakMax = -Inf;duplexMode = duplexModescyclicPrefix = cyclicPrefixes enb。DuplexMode = DuplexMode {1};enb。CyclicPrefix = CyclicPrefix {1};[enb。ncelllid, offset, peak] = lteCellSearch(enb, downsampling, searchalg);enb。NCellID = enb.NCellID(1);Offset = Offset (1);Peak =峰值(1);如果(峰值>峰值max) enbMax = enb;offsetMax = offset;peakMax =峰值;结束结束结束使用小区标识、循环前缀长度、双工模式和定时在单元格搜索期间给出最大相关性的%偏移量enb = enbMax;offset = offsetMax;计算三个可能的主单元格的相关性%的身份;建立了细胞身份的相关峰%与其他两个的相关性峰值进行比较%原代细胞鉴定,以建立质量%的相关性。Corr = cell(1,3);idGroup = floor(enbMax.NCellID/3);I = 0:2。NCellID = idGroup*3 + mod(enbMax. 3)ncelllid + i,3);[~,corr{i+1}] = lteDLFrameOffset(enb, downsampling);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',抵消);downsampling = downsampling (1+offset:end,:);enb。NSubframe = 0;%显示单元格范围的设置流(“搜索单元格后的单元格范围设置:\n”);disp (enb);
执行小区搜索…单元格搜索后的单元格范围设置:NDLRB: 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.3fHz\n”, delta_f);downsampling = lteFrequencyCorrect(enb, downsampling, delta_f);
执行频率偏移估计…频率偏移:-14.902Hz

OFDM解调与信道估计

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

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

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

%信道估计器配置cec。PilotAverage =“UserDefined”;%先导平均类型cec。FreqWindow = 13;%频率窗口大小cec。TimeWindow = 9;%时间窗口大小cec。InterpType =“立方”;% 2D插值类型cec。InterpWindow =“中心”;%插值窗口类型cec。InterpWinSize = 1;%插值窗口大小%假设有4个cell特有的参考信号用于初始解码尝试;%确保信道估计可用于所有特定于小区的参考%的信号enb。CellRefP = 4;流(“正在进行OFDM解调…\n\n”);griddims = lteResourceGridSize(enb);%资源网格维度L = griddims(2);%子帧中OFDM符号的数目% OFDM解调信号rxgrid = lteofdmdemomodulation (enb, downsampling);如果(isempty (rxgrid))流(在时间同步后,信号短于一个子帧,因此不会进行进一步的解调。);返回;结束%执行信道估计[est, nest] = lteDLChannelEstimate(enb, cec, rxgrid(:,1:L,:));
进行OFDM解调…

PBCH解调,BCH解码,MIB解析

现在,MIB连同在BCH CRC上作为掩码传输的特定于cell的参考信号端口的数量一起被解码。这个函数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,:), hest(:,1:L,:,:));%解码PBCH[bchBits, pbchSymbols, nfmod4, mib, enb.]CellRefP] = ltePBCHDecode(enb, pbchRx, pbchhst, nest);%解析MIB位enb = lteMIB(mib, enb);%合并函数ltePBCHDecode的nfmod4值输出,如%从MIB建立的NFrame值是系统帧号% (SFN)模4(在MIB中存储为floor(SFN/4))enb。NFrame = enb.NFrame+nfmod4;显示MIB解码后的单元格宽度设置流(' MIB解码后的小区范围设置:\n');disp (enb);如果(enb.CellRefP = = 0)流('MIB解码失败(enb.CellRefP=0).\n\n');返回;结束如果(enb.NDLRB = = 0)流('MIB解码失败(enb.NDLRB=0).\n\n');返回;结束
执行MIB解码…MIB解码后的单元范围设置: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);结束流(\n从%0.3fMs/s重新采样到%0.3fMs/s…\n1、sr / 1 e6 ofdmInfo.SamplingRate / e6);其他的流(不需要重新采样;接收到的信号在NDLRB=%d (%0.3fMs/s)的期望采样率下。1、enb.NDLRB sr / e6);结束nSamples = ceil(ofdmInfo.SamplingRate/round(sr)*size(eNodeBOutput,1));resampled = 0 (nSamples, nRxAnts);i = 1:nRxAnts resampled(:,i) = ressample (eNodeBOutput(:,i), ofdmInfo。SamplingRate圆(sr));结束执行频率偏移估计和校正流(“\n执行频率偏移估计…\n”);delta_f = lteFrequencyOffset(enb, ressampling);流(“频率偏移:%0.3fHz\n”, delta_f);resampled = lteFrequencyCorrect(enb, resampled, delta_f);找到帧的开头流(“正在执行时序偏移估计…\n”);offset = lteDLFrameOffset(enb, resampled);流('帧开始的定时偏移量:%d采样\n',抵消);将信号与帧的起始位置对齐Resampled = Resampled (1+offset:end,:);% OFDM解调流(“正在进行OFDM解调…\n\n”);rxgrid = lteofdm解调(enb,重采样);
重新开始接收,现在带宽(NDLRB=50)是已知的…不需要重新采样;接收到的信号处于NDLRB=50 (15.360Ms/s)所需的采样率。执行频率偏移估计…频率偏移:5.221Hz执行时序偏移估计…定时偏移到帧开始:3848采样执行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则终止如果(size(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) >) fprintf(“% s \ n”、分离器);流('帧%d\n的SIB1解码',国防部(enb.NFrame, 1024));流(“% s \ n \ n”、分离器);重置HARQ缓冲区,每8帧为SIB1% info可能不同如果(mod (enb.NFrame 8) = = 0)流(“重置HARQ缓冲区。\n\n”);decState = [];结束提取当前子帧rxsubframe = rxgrid(:,1:L,:);%执行信道估计[est,nest] = lteDLChannelEstimate(enb, cec, rxsubframe);% pcfi解调,CFI解码。CFI现在被解调并且%解码使用类似的资源提取和解码功能来%已显示用于BCH接收的内容。lteExtractResources用于从接收到的子帧中提取与PCFICH相对应的REs% rx子帧和信道估计测试。流(“解码CFI。\ n \ n”);pcfichinices = ltepcfichinices (enb);%获取PCFICH索引[pcfichRx, pcfichest] = lteExtractResources(pcfichIndices, rxsubframe, hest);解码PCFICHcfiBits = ltePCFICHDecode(enb, pcfichRx, pcfichest, nest);cfi = lteCFIDecode(cfiBits);%获得CFI如果(isfield (enb“CFI”) && cfi~=enb.CFI) release(pdcchConstDiagram);结束enb。CFI = CFI;流('已解码的CFI值:%d\n\n', enb.CFI);%对于TDD,必须对PDCCH的可能值进行盲解码在TS36.211表6.9-1中,PHICH配置因子m_i (0,1,2) %% m_i = 0,1和2可以通过配置TDD实现%上行-下行配置分别为1、6和0。如果(strcmpi (enb。DuplexMode,“TDD”tddConfigs = [1 60 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, pdcchHest] = lteExtractResources(pdcchIndices, rxsubframe, hest);解码PDCCH并绘制星座[dciBits, pdcchSymbols] = ltePDCCHDecode(enb, pdcchRx, pdcchHest, nest);pdcchConstDiagram (pdcchSymbols);% PDCCH盲搜索系统信息(SI)和DCI解码。LTE工具箱提供了全盲查找的PDCCH来查找%具有指定RNTI的任何DCI消息,在本例中为SI-RNTI。流(“PDCCH搜索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);%在PDCCH中搜索DCI结束%如果DCI已解码,则继续解码PDSCH / DL-SCHI = 1:num (alldci) dci = alldci{I};流('带有SI-RNTI的DCI消息:\n');disp (dci);%从DCI获取PDSCH配置[pdsch, trblklen] = hPDSCHConfiguration(enb, dci, pdsch . rnti);%如果创建了PDSCH配置,继续解码PDSCH% / dl-sch如果~ isempty (pdsch) pdsch。NTurboDecIts = 5;流(' DCI解码后的PDSCH设置:\n');disp (pdsch);% PDSCH解调和DL-SCH解码恢复SIB位。DCI消息现在被解析为给出的配置%对应的携带SIB1的PDSCH,则PDSCH为%解调,最后对接收到的比特进行DL-SCH解码%产生SIB1位。流(“解码SIB1。\ n \ n”);%获取PDSCH索引[pdschIndices, pdschindesinfo] = ltePDSCHIndices(enb, pdsch, pdsch. prbset);[pdschRx, pdschHest] = lteExtractResources(pdschIndices, rxsubframe, hest);%解码PDSCH[dlschBits,pdschSymbols] = ltePDSCHDecode(enb, pdschch, pdschRx, pdschHest, nest);解码DL-SCH与软缓冲输入/输出HARQ组合如果~ isempty (decState)流(“与之前的传输重新组合。\n\n”);结束[sib1, crc, decState] = lteDLSCHDecode(enb, pdsch, trblklen, dlschBits, decState);%计算PDSCH EVMrecoded = lteDLSCH(enb, pdsch, pdschIndicesInfo.)G, sib1);remod = ltePDSCH(enb, pdsch, recoded);[~,refSymbols] = ltePDSCHDecode(enb, pdsch, remod);[rmsevm,peakevm] = pdschEVM(refSymbols{1}, pdschSymbols{1});流('PDSCH RMS EVM: %0.3f%%\n', rmsevm);流('PDSCH峰值EVM: %0.3f%%\n\n', peakevm);流('SIB1 CRC: %d\n', crc);如果CRC == 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);channelFigure.CurrentAxes.XLim = [0 size(hest,2)+1];channelFigure.CurrentAxes.YLim = [0 size(hst,1)+1];跳过2帧并再次尝试SIB1解码,如果失败则终止剩下的帧数少于2帧。如果(大小(rxgrid, 2) > = (L * 20)) rxgrid (:, 1: (L * 20 ),:) = [];再移除2帧其他的Rxgrid = [];%剩余少于2帧结束enb。NFrame = mod(enb);NFrame + 2,1024);结束
-------------------------------------------------- SIB1解码帧406  -------------------------------------------------- 解码CFI……解码后的CFI值:2 PDCCH搜索SI-RNTI…DCI消息SI-RNTI: DCI格式:'Format1A' CIF: 0 AllocationType: 0 Allocation: [1x1 struct] ModCoding: 6 HARQNo: 0 NewData: 0 RV: 1 TPCPUCCH: 0 tddinindex: 0 SRSRequest: 0 harqackresofset: 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 Peak EVM: 75.981% SIB1 CRC: 0 SIB1恢复成功。

附录

本例使用这些辅助函数。