主要内容

Cell搜索,MIB和SIB1恢复

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

简介

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

  • 系统带宽

  • 系统帧数(SFN)

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

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

本例对MIB和SIB1 (SystemInformationBlockType1)进行解码。传输后者以指定其他系统信息的调度,以及单元标识的各个方面,如公共陆地移动网络(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),或传输单个传输块所需的时间,是40msec或4帧。BCH由4个部分传输,每个部分映射到帧的第一子帧(子帧0),根据信号条件,每个传输都可能是独立解码的。为了确保接收到子帧0,捕获应该至少有11个子帧长,以考虑捕获在子帧0期间启动的可能性。对于较差的信号条件,可能需要TTI的所有4部分,在这种情况下,捕获应该至少41个子帧长。类似的情况也适用于SIB1;它在每偶数帧的子帧5中传输,四个不同的冗余版本(rv)连续传输,给出80msec或8帧的总体周期。因此,需要21个子帧捕获以确保接收到SIB1的单个RV(在偶数帧的子帧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之前,终端不知道系统的全部带宽。主同步信号和从同步信号(PSS和SSS)以及PBCH(包含MIB)都位于系统带宽的中心72个子载波(6个资源块)中,使得终端可以在这个中心区域进行初始解调。因此,初始带宽设置为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;初始单元格搜索的采样率是用% lteOFDMInfo配置6个资源块。enb。CyclicPrefix设置%在调用lteOFDMInfo时临时抑制一个默认值%警告(它不影响采样率)。enb =结构;eNodeB配置结构enb。NDLRB = 6;%资源块数量ofdmInfo = lteOFDMInfo (setfield (enb“CyclicPrefix”“正常”));% #好< SFLD >如果(isempty (eNodeBOutput))流(\n接收到的信号不能为空。\n');返回结束显示接收信号频谱流('\n绘制接收信号频谱…\n');简介(awgn (eNodeBOutput, 100.0));如果(sr ~ = ofdmInfo.SamplingRate)如果(sr < ofdmInfo.SamplingRate) warning(接收到的信号采样率(%0.3fMs/s)低于单元搜索/ MIB解码所需的采样率(%0.3fMs/s);单元格搜索/ MIB解码可能失败。”1、sr / 1 e6 ofdmInfo.SamplingRate / e6);结束流(\n'从%0.3fMs/s重采样到%0.3fMs/s用于单元格搜索/ MIB解码…\n'1、sr / 1 e6 ofdmInfo.SamplingRate / e6);其他的流(' \ nResampling不是必需的;接收到的信号以单元搜索/ MIB解码所需的采样率(%0.3fMs/s)。\n'1、sr / e6);结束%下采样收到信号nSamples =装天花板(ofdmInfo.SamplingRate /轮(sr) *大小(eNodeBOutput, 1));nRxAnts = size(eNodeBOutput, 2);downsamples = 0 (nSamples, nRxAnts);i=1:nRxAnts downsampling (:,i) = resample(eNodeBOutput(:,i), ofdmInfo。SamplingRate圆(sr));结束
绘制接收信号频谱…从15.360Ms/s重采样到1.920Ms/s用于单元格搜索/ MIB解码…

单元格搜索,循环前缀长度和双工模式检测

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

流(“搜索…\ n \ nPerforming细胞”);为搜索设置双工模式和循环前缀长度组合;如果%如果在|enb|中配置了这些参数中的任何一个,则值为%被认为是正确的如果(~ isfield (enb“DuplexMode”))双工模式= {“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>) 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;绘制PSS/SSS相关性和阈值synchCorrPlot。YLimits = [0 max([corr{1};阈值)* 1.1);{1} synchCorrPlot ([corr阈值*的(大小{1})(corr)]);%执行定时同步流('帧开始的时间偏移:%d samples\n',抵消);downsampled = downsampled(1 +抵消:最终,);enb。NSubframe = 0;显示单元范围设置流('小区搜索后的小区范围设置:\n');disp (enb);
执行单元的搜索…计时偏移到帧开始:481采样单元格搜索后的单元格范围设置:NDLRB: 6 DuplexMode: 'FDD' CyclicPrefix: 'Normal' ncelllid: 17 NSubframe: 0

频率偏移估计与校正

在OFDM解调之前,必须去除任何显著的频率偏移。对I/Q波形中的频率偏移量进行估计和校正lteFrequencyOffset而且lteFrequencyCorrect.频率偏移是通过循环前缀的相关性来估计的,因此可以估计到子载波间距的+/-一半的偏移量,即+/- 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);down采样= lteFrequencyCorrect(enb, down采样,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 =“立方”% 2D插值类型cec。InterpWindow =“中心”插值窗口类型cec。InterpWinSize = 1;插值窗口大小%假设初始解码尝试有4个单元特定的参考信号;%确保所有单元特定参考的通道估计可用%的信号enb。CellRefP = 4;流(“执行OFDM解调。\ n \ n”);griddims = lteResourceGridSize (enb);%资源网格尺寸L = griddims (2);子帧中OFDM符号的数量OFDM解调信号rxgrid = lteOFDMDemodulate(enb, downsampling);如果(isempty (rxgrid))流('时间同步后,信号短于一个子帧,因此不再进行进一步的解调。\n');返回结束%执行通道估计[est, 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, pbchest] = 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)模4(它作为层(SFN/4)存储在MIB中)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' ncelllid: 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) warning(接收信号采样率(%0.3fMs/s)低于NDLRB=%d (%0.3fMs/s)的期望采样率;PDCCH搜索/ SIB1解码可能失败。sr / 1 e6, enb.NDLRB ofdmInfo.SamplingRate / 1 e6);结束流('从%0.3fMs/s重采样到%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 resampened (:,i) = resample(eNodeBOutput(:,i), ofdmInfo.)SamplingRate圆(sr));结束执行频率偏移估计和校正流(\n正在执行频率偏移估计…\n');delta_f = lteFrequencyOffset(enb,重采样);流(“频率偏移:% 0.3 fhz \ n”, delta_f);resampened = lteFrequencyCorrect(enb, resampened, delta_f);查找帧的开始流(\n执行时间偏移估计…\n');offset = lteDLFrameOffset(enb,重采样);流('帧开始的时间偏移:%d samples\n',抵消);对齐信号与帧的开始重新取样=重新取样(1 +抵消:最终,);% OFDM解调流(“\ nPerforming OFDM解调。\ n \ n”);rxgrid = lteOFDMDemodulate(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) > 0)“% s \ n”、分离器);流('帧%d\n'的SIB1解码,国防部(enb.NFrame, 1024));流(“% s \ n \ n”、分离器);以每组8帧的新帧作为SIB1重置HARQ缓冲区% info可能不同如果(mod (enb.NFrame 8) = = 0)流(“重置HARQ缓冲区。\ n \ n”);decState = [];结束提取当前子帧rxsubframe = rxgrid (::, 1: L);%执行通道估计[est,nest] = lteDLChannelEstimate(enb, cec, rxsubframe);PCFICH解调,CFI解码。CFI现在被解调了%解码使用类似的资源提取和解码函数%那些已经显示为BCH接收。lteExtractResources用于从接收的子帧中提取PCFICH对应的REs% rx子帧和通道估计测试。流(“解码CFI。\ n \ n”);pcfichIndices = ltePCFICHIndices (enb);获取PCFICH索引[pcfichRx, pcfichest] = lteExtractResources(pcfichinices, rxsubframe, hest);%解码PCFICHcfiBits = ltePCFICHDecode(enb, pcfichRx, pcfichest, nest);cfi = lteCFIDecode (cfiBits);%得到CFI如果(isfield (enb“CFI”&& cfi~=enb.CFI)释放(pdcchConstDiagram);结束enb。CFI = CFI;流('已解码CFI值:%d\n\n', enb.CFI);对于TDD, PDCCH必须盲地跨可能的值进行解码表6.9-1. TS36.211中的PHICH配置因子m_i(0,1,2)。通过配置TDD可以实现m_i = 0、1和2的值%上行-下行配置分别为1、6和0。如果(strcmpi (enb。DuplexMode,“TDD”tddConfigs = [1 6 0];其他的tddConfigs = 0;%不用于软驱,仅用于控制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, pdcchest] = lteExtractResources(pdcchIndices, rxsubframe, hest);解码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);在PDCCH中搜索DCI结束%如果DCI已解码,继续解码PDSCH / DL-SCHI = 1: null (alldci) dci = alldci{I};流('带有SI-RNTI的DCI消息:\n');disp (dci);从DCI获取PDSCH配置[pdsch, trblklen] = hPDSCHConfiguration(enb, dci, pdch . 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, pdschest, nest);%解码DL-SCH软缓冲输入/输出HARQ组合如果~ isempty (decState)流(“与之前的传输重组。\n\n”);结束[sib1, crc, decState] = lteDLSCHDecode(enb, pdsch, trblklen, dlschBits, decState);%计算PDSCH EVMencoded = 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 . currentaxis . xlim = [0 size(hest,2)+1];channelfigure . currentaxis . ylim = [0 size(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 PDCCH搜索SI-RNTI…DCI消息with SI-RNTI: DCIFormat: 'Format1A' CIF: 0 AllocationType: 0 Allocation: [1x1 struct] ModCoding: 6 HARQNo: 0 NewData: 0 RV: 1 TPCPUCCH: 0 TDDIndex: 0 SRSRequest: 0 HARQACKResOffset: 0 PDSCH设置后DCI解码:RNTI: 65535 PRBSet: [8x1 uint64] NLayers: 2 CSI: 'On' Modulation: {'QPSK'} RV: 1 TxScheme: 'TxDiversity' NTurboDecIts: 5 decoding SIB1…PDSCH RMS EVM: 27.072% PDSCH Peak EVM: 75.981% SIB1 CRC: 0 SIB1恢复成功。

附录

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

Baidu
map