该示例示出了如何生成同步信号块(SSB)并生成多个SSB以形成同步信号突发(SS突发)。形成同步信号块(主和次级同步信号,物理广播信道)的信道和信号被创建并映射到表示块的矩阵。最后,创建表示同步信号突发的矩阵,并且突发中的每个同步信号块被创建并映射到矩阵中。
第7.4.3.1节将同步信号/物理广播信道(SS/PBCH)块定义为240个子载波和4个OFDM符号,包含以下信道和信号:
主同步信号(PSS)
辅助同步信号(SSS)
物理广播频道(PBCH)
解调参考信号(PBCH DM-RS)
在其他文件中,例如TS 38.331,SS / PBCH被称为“同步信号块”或“SS块”。
创建一个表示SS / PBCH块的240×4矩阵:
ssblock = zeros([240 4])
ssblock =240×4.0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0⋮
为给定的单元格标识创建PSS:
ncellid = 17;pssSymbols = nrPSS (ncellid)
pssSymbols =127×1-1 -1 -1 -1 -1 -1 -1 1 1 1 1 -1⋮
这
变量pssSymbols
是包含PSS的127 BPSK符号的列载体。
创建PSS指数:
pssindices = nrpssindices;
的变量pssIndices
列向量的大小是否相同pssSymbols
。每个元素的值pssIndices
是对应符号在SS/PBCH块中位置的线性索引吗pssSymbols
应该映射。因此,可以使用线性索引来使用简单的MATLAB分配来执行对SS / PBCH块的PSS符号的映射,以选择SS / PBCH块矩阵的正确元素。请注意,将1的缩放因子适用于PSS符号,以表示
在TS 38.211章节7.4.3.1.1中:
ssblock(pssdisices) = 1 * pssSymbols;
绘制SS/PBCH块矩阵来表示PSS的位置:
显示亮度图像(abs (ssblock));caxis ([0 4]);轴xy;包含(OFDM符号的);ylabel(副载波的);标题(“包含PSS的SS/PBCH区块”);
为为PSS配置的相同的cell标识创建SSS:
sssSymbols = nrSSS (ncellid)
sssSymbols =127×1-1 1 -1 -1 -1 1 -1 1 -1 1⋮
创建SSS索引并将SSS符号映射到SS/PBCH块,遵循用于PSS的相同模式。注意,缩放因子2应用于SSS符号,以表示 在TS 38.211第7.4.3.1.2节中:
sssIndices = nrSSSIndices;SSBLOCK(SSSindices)= 2 * SSSSYMBOLS;
索引的默认形式是基于1的线性索引,适用于MATLAB矩阵的线性索引ssblock
如图所示。但是,NR标准文档使用基于0的编号来描述OFDM子载波和符号下标的OFDM资源。有效与NR标准的交叉检查,指数函数接受选项以允许选择索引样式(基于线性索引与下标)和基础(基于0的0个基于1的):
sssSubscripts = nrSSSIndices (“IndexStyle”那“下标”那“IndexBase”那基于“0”)
sssSubscripts =127年x3 uint32矩阵56 2 0 57 2 0 58 2 0 59 2 0 60 2 0 61 2 0 62 2 0 63 2 0 64 2 0 65 2 0⋮
从下标可以看出,SSS位于SS/PBCH块的OFDM符号2 (0-based)中,从子载波56 (0-based)开始。
再次绘制SS/PBCH块矩阵,显示PSS和SSS的位置:
显示亮度图像(abs (ssblock));caxis ([0 4]);轴xy;包含(OFDM符号的);ylabel(副载波的);标题(包含PSS和SSS的SS/PBCH区块);
PBCH携带一个长度为864位的码字,该码字是通过对主信息块(MIB)进行BCH编码产生的。有关BCH编码的更多信息,请参阅功能nrBCH
和nrBCHDecode
他们使用的用途NR Cell Search and MIB and SIB1 Recovery的例子。这里使用了一个由864位随机比特组成的PBCH码字:
= randi([0 1],864,1);
PBCH调制包括以下步骤,详见TS 38.211 Section 7.3.3:
加扰
调制
映射到物理资源
如TS 38.213第4.1节中的小区搜索过程中所述,在半帧上传输多个SS / PBCH块。每个SS / PBCH块被赋予索引
,在那里
为半帧内SS/PBCH块的数目。根据小区身份初始化PBCH的置乱序列ncellid.
,用于置乱PBCH码字的子序列取决于该值
如TS 38.211第7.3.3.1节所述,2或3个SS / PBCH块指数。在这个例子中,
使用。这个函数nrPBCH
在置乱序列中创建相应的子序列,置乱后进行QPSK调制:
v = 0;pbchSymbols = nrPBCH (cw、ncellid v)
pbchSymbols =432×1复杂-0.7071 + 0.7071i -0.7071 + 0.7071 -0.7071 i -0.7071 + 0.7071 -0.7071 i 0.7071 + 0.7071 + 0.7071i⋮
创建PBCH索引并将PBCH符号映射到SS/PBCH块。请注意,对PBCH符号应用3的比例因子来表示 在TS 38.211章节7.4.3.1.3中:
pbchIndices = nrPBCHIndices (ncellid);ssblock(pbchindices)= 3 * pbchsymbols;
再次绘制SS/PBCH块矩阵,显示PSS、SSS和PBCH的位置:
显示亮度图像(abs (ssblock));caxis ([0 4]);轴xy;包含(OFDM符号的);ylabel(副载波的);标题(SS/PBCH区块包含PSS、SSS和PBCH);
SS / PBCH块的最终组件是与PBCH相关联的DM-R.与PBCH类似,使用的DM-RS序列来自SS / PBCH块索引,并使用变量配置 在TS 38.211章节7.4.1.4.1中描述。在这里 使用:
ibar_ssb = 0;dmrssymbols = nrpbchdmrs(ncellid,ibar_ssb)
dmrssymbols =144×1复杂0.7071 - 0.7071i 0.7071 + 0.7071i -0.7071 + 0.7071i -0.7071 + 0.7071i 0.7071 - 0.7071i 0.7071 + 0.7071i 0.7071 - 0.7071i -0.7071 - 0.7071i -0.7071 - 0.7071i 0.7071 + 0.7071i⋮
请注意,TS 38.211第7.4.1.4.1节定义了中间变量 它的定义是相同的 之前描述的PBCH。
创建PBCH DM-RS索引,并将PBCH DM-RS符号映射到SS/PBCH块。请注意,对PBCH DM-RS符号应用4的比例因子来表示 在TS 38.211章节7.4.3.1.3中:
dmrsIndices = nrPBCHDMRSIndices (ncellid);SSBLOCK(DMRSindices)= 4 * DMRSSYMBOLS;
再次绘制SS/PBCH分块矩阵,显示PSS、SSS、PBCH和PBCH DM-RS的位置:
显示亮度图像(abs (ssblock));caxis ([0 4]);轴xy;包含(OFDM符号的);ylabel(副载波的);标题(包含PSS,SSS,PBCH和PBCH DM-RS'的SS / PBCH块);
通过创建更大的网格并将SS/PBCH块映射到适当的位置,每个SS/PBCH块根据位置具有正确的参数,可以生成由多个SS/PBCH块组成的SS突发。
在NR标准中,OFDM符号被分为插槽、子帧和帧。根据TS 38.211 Section 4.3.1的定义,一帧有10个子帧,每个子帧的持续时间固定为1ms。每个SS突发的持续时间为半帧,因此横跨5个子帧:
nSubframes = 5
nSubframes = 5
第4.3.2节定义每个槽位有14个OFDM符号(对于正常的循环前缀长度),这是固定的:
symbolsPerSlot = 14
symbolsPerSlot = 14
然而,每个子帧的槽数是变化的,是子载波间距的函数。随着子载波间距的增大,OFDM符号持续时间减小,因此可以将更多的OFDM符号拟合到1ms固定的子帧持续时间中。
有5个子载波间距配置 ,对应的子载波间距为 千赫。在这个例子中,我们将使用 ,对应30khz副载波间距:
mu = 1
mu = 1
每个子帧的插槽数为 ,作为将子载波间隔加倍的倍数OFDM符号持续时间。注意,NR中的时隙的定义与LTE不同:LTE中的子帧由2个符号(对于普通循环前缀)组成,而在NR中,使用LTE子载波间隔的子帧( , 15千赫)由14个符号的1个槽组成。
计算SS突发中OFDM符号的总数:
nSymbols = symbolsPerSlot * 2^mu * nSubframes
nSymbols = 140
为整个SS Burst创建一个空网格:
ssburst = 0 ([240 nSymbols]);
在SS突发内的SS/PBCH块的模式由TS 38.213中的细胞搜索过程间接指定,该过程描述了UE可以检测到SS/PBCH块的位置。Case A - Case E有5个块图案,它们有不同的子载波间距,适用于不同的载波频率。
为块模式案例B创建候选SS / PBCH块中的第一个符号的索引,其具有 块/破裂:
N = [0,1];firstSymbolIndex = [4;8;16;20] + 28 * n;firstSymbolIndex = firstSymbolIndex(:)。
firstSymbolIndex =1×8.48 16 20 32 36 44 48
现在可以创建一个循环,它会生成每个SS块,并将其分配到SS突发的适当位置。请注意以下事项:
代码重新使用此示例中早期创建的各种变量(PSS,SSS和4组索引)
PSS和SSS独立于SS/PBCH块索引,因此可以在循环之前映射到SS块中
PBCH索引和PBCH DM-RS索引独立于SS/PBCH块索引,因此不需要在循环中更新
那 和 是根据TS 38.211 7.3.3.1和7.4.1.4.1的规定设置的 。
每个通道/信号都进行了缩放,以便在最终的绘图中给它们不同的颜色
ssblock = zeros([240 4]);ssblock(pssindices)= psssymbols;SSBLOCK(SSSindices)= 2 * SSSSYMBOLS;为ssbindex = 1:长度(firstsymbolindex)i_ssb = mod(ssbindex - 1,8);ibar_ssb = i_ssb;v = i_ssb;pbchsymbols = nrpbch(cw,ncellid,v);ssblock(pbchindices)= 3 * pbchsymbols;dmrssymbols = nrpbchdmrs(ncellid,ibar_ssb);SSBLOCK(DMRSindices)= 4 * DMRSSYMBOLS;ssburst(:,firstsymbolindex(ssbindex)+(0:3))= ssblock;结束
最后,绘制SS突发内容:
显示亮度图像(abs (ssburst));caxis ([0 4]);轴xy;包含(OFDM符号的);ylabel(副载波的);标题(SS burst, block pattern Case B);