文档

同步信号块和脉冲

本示例演示了如何生成一个同步信号块(SSB),并生成多个SSB形成一个同步信号突发(SS burst)。创建形成同步信号块的通道和信号(主、次同步信号、物理广播通道),并将其映射到表示该块的矩阵中。最后建立一个表示同步信号突发的矩阵,生成突发中的每个同步信号块,并将其映射到矩阵中。

SS / PBCH块

TS 38.211章节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 = 0 ([240 4])
ssblock =240×40 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 0 0 0 0 0

主同步信号(PSS)

为给定的单元标识创建PSS:

Ncellid = 17;pssSymbols = nrPSS(ncelllid)
pssSymbols =127×1-1 -1 -1 -1 1 1 1 1 1

变量pssSymbols是包含PSS的127个BPSK符号的列向量。

创建PSS索引:

pssIndices = nrPSSIndices;

的变量pssIndices列向量的大小是否等于pssSymbols.的每个元素中的值pssIndices是对应符号所在的SS/PBCH块中位置的线性索引pssSymbols应该映射。因此,PSS符号到SS/PBCH块的映射可以通过一个简单的MATLAB赋值来执行,使用线性索引来选择SS/PBCH块矩阵的正确元素。注意,PSS符号的比例因子为1,表示 β PSS TS 38.211章节7.4.3.1.1:

ssblock(pssIndices) = 1 * pssSymbols;

绘制SS/PBCH块矩阵以显示PSS的位置:

显示亮度图像(abs (ssblock));caxis ([0 4]);轴xy;包含(OFDM符号的);ylabel (副载波的);标题(“含有PSS的SS/PBCH块”);

二次同步信号(SSS)

为PSS配置的相同单元标识创建SSS:

sssSymbols = nrSSS(ncelllid)
sssSymbols =127×1-1 1 -1 -1 1 -1 1 1 1 1 1

创建SSS索引并将SSS符号映射到SS/PBCH块,遵循用于PSS的相同模式。注意,SSS符号的比例因子为2,表示 β 瑞士 TS 38.211第7.4.3.1.2节:

sssIndices = nrSSSIndices;ssblock(sssIndices) = 2 * sssSymbols;

索引的默认形式是基于1的线性索引,适用于MATLAB矩阵的线性索引,如ssblock如前所述。然而,NR标准文档根据OFDM子载波和符号下标描述OFDM资源,使用基于0的编号。为了方便与NR标准交叉检查,索引函数接受选项,允许选择索引样式(线性索引vs下标)和基数(基于0 vs基于1):

sssSubscripts = nrSSSIndices(“IndexStyle”“下标”“IndexBase”基于“0”
sssSubscripts =127x3 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 0

从下标可以看出,SSS位于SS/PBCH块的OFDM符号2(基于0的)中,从子载波56(基于0的)开始。

再次绘制SS/PBCH块矩阵,以显示PSS和SSS的位置:

显示亮度图像(abs (ssblock));caxis ([0 4]);轴xy;包含(OFDM符号的);ylabel (副载波的);标题(“包含PSS和SSS的SS/PBCH块”);

实体广播频道(PBCH)

PBCH携带长度为864位的码字,是通过对主信息块(MIB)执行BCH编码创建的。有关BCH编码的更多信息,请参阅函数nrBCH而且nrBCHDecode以及它们在NR同步步骤的例子。这里使用了一个由864位随机组成的PBCH码字:

Cw = randi([0 1],864,1);

PBCH调制由TS 38.211节7.3.3所述的以下步骤组成:

  • 加扰

  • 调制

  • 映射到物理资源

置乱调制

多个SS/PBCH块跨半帧传输,如TS 38.213章节4.1单元搜索过程中所述。给每个SS/PBCH块一个索引 0 ... l - 1 ,在那里 l 为半帧中SS/PBCH块数。根据小区标识初始化PBCH的置乱序列ncellid,用于打乱PBCH码字的子序列取决于该值 v , SS/PBCH块索引的2或3个lsb,如TS 38.211节7.3.3.1所述。在这个例子中, v 0 使用。这个函数nrPBCH创建置乱序列的适当子序列,执行置乱,然后执行QPSK调制:

V = 0;pbchSymbols = nrPBCH(cw, ncelllid,v)
pbchSymbols =432×1复杂-0.7071 + 0.7071我-0.7071 + 0.7071我-0.7071 + 0.7071 -0.7071 - 0.7071 0.7071 -0.7071 + 0.7071 + 0.7071我-0.7071 + 0.7071我0.7071 - 0.7071 0.7071 + 0.7071我⋮0.7071 + 0.7071

映射到资源元素

创建PBCH索引并将PBCH符号映射到SS/PBCH块。注意,对PBCH符号应用了3的比例因子,以表示 β PBCH TS 38.211第7.4.3.1.3节:

pbchIndices = nrPBCHIndices(ncelllid);ssblock(pbchIndices) = 3 * pbchSymbols;

再次绘制SS/PBCH块矩阵,以显示PSS、SSS和PBCH的位置:

显示亮度图像(abs (ssblock));caxis ([0 4]);轴xy;包含(OFDM符号的);ylabel (副载波的);标题(“包含PSS, SSS和PBCH的SS/PBCH块”);

解调参考信号(PBCH DM-RS)

SS/PBCH块的最后一个组成部分是与PBCH相关联的DM-RS。与PBCH类似,使用的DM-RS序列源自SS/PBCH块索引,并使用变量进行配置 单边带 TS 38.211节7.4.1.4.1所述。在这里 单边带 0 使用:

ibar_SSB = 0;dmrsSymbols = nrPBCHDMRS(ncellid,ibar_SSB)
dmrsSymbols =144×1复杂0.7071 -0.7071 i 0.7071 + 0.7071i -0.7071 + 0.7071i 0.7071 -0.7071 i 0.7071 -0.7071 i 0.7071 -0.7071 i 0.7071 -0.7071 i -0.7071 -0.7071 i 0.7071 + 0.7071i

注意TS 38.211节7.4.1.4.1定义了一个中间变量 单边带 哪一个的定义是相同的 v 前面为PBCH所描述的。

创建PBCH DM-RS索引并将PBCH DM-RS符号映射到SS/PBCH块。注意,PBCH DM-RS符号的比例因子为4,表示 β PBCH DM - RS TS 38.211第7.4.3.1.3节:

dmrsIndices = nrPBCHDMRSIndices(ncelllid);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爆发

由多个SS/PBCH块组成的SS突发可以通过创建一个更大的网格并将SS/PBCH块映射到适当的位置来生成,每个SS/PBCH块根据位置具有正确的参数。

创建SS突发网格

在NR标准中,OFDM符号被分组为槽、子帧和帧。根据TS 38.211章节4.3.1的定义,一帧中有10个子帧,每个子帧有固定的持续时间1ms。每个SS爆发的持续时间为半帧,因此跨越5个子帧:

nSubframes = 5
nSubframes = 5

TS 38.211章节4.3.2定义每个槽位有14个OFDM符号(用于正常循环前缀长度),这是固定的:

symbolsPerSlot = 14
symbolsPerSlot = 14

然而,每个子帧的槽数是变化的,是子载波间距的函数。随着子载波间距的增大,OFDM符号持续时间减小,因此可以在1ms的固定子帧持续时间内拟合更多的OFDM符号。

有5个副载波间距配置 μ 0 4 ,对应的子载波间距为 15 2 μ kHz。在这个例子中,我们将使用 μ 1 ,对应30 kHz副载波间距:

= 1
= 1

每个子帧的槽数为 2 μ ,因为加倍的子载波间距使OFDM符号的持续时间减半。注意NR中插槽的定义不同于LTE: LTE中的子帧由2个包含7个符号的插槽(用于正常循环前缀)组成,而NR中使用LTE子载波间距( μ 0 , 15 kHz)由14个符号的1个槽组成。

计算SS突发中OFDM符号的总数:

nSymbols = symbolsPerSlot * 2^mu * nSubframes
nSymbols = 140

为整个SS爆发创建一个空网格:

ssburst = 0 ([240 nSymbols])
ssburst =240×1400 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 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 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 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 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 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 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 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 00 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 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 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 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 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 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 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 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 0⋮

定义SS块模式

SS突发中的SS/PBCH块的模式由TS 38.213中的单元搜索程序间接指定,该程序描述了UE可能检测到SS/PBCH块的位置。有Case A - Case E 5种分组模式,具有不同的子载波间距,适用于不同的载波频率。

为块模式Case B创建候选SS/PBCH块中第一个符号的索引 l 8 每次爆发的方块:

N = [0,1];firstSymbolIndex = [4];8;16;20] + 28*n;firstSymbolIndex = firstSymbolIndex(:)。'
firstSymbolIndex =1×848 16 20 32 36 44 48

创建SS突发内容

现在可以创建一个循环,生成每个SS块,并将其分配到SS爆发的适当位置。注意以下几点:

  • 代码重用本例前面创建的各种变量(PSS、SSS和4组索引)

  • PSS和SSS独立于SS/PBCH块索引,因此可以在循环之前映射到SS块

  • PBCH索引和PBCH DM-RS索引独立于SS/PBCH块索引,因此不需要在循环中更新

  • 单边带 单边带 而且 v 根据TS 38.211第7.3.3.1节和7.4.1.4.1节的规则设置 l 8

  • 每个通道/信号都被缩放了,以便在最终的图中赋予它们不同的颜色

Ssblock = 0 ([240 4]);ssblock(pssIndices) = pssSymbols;ssblock(sssIndices) = 2 * sssSymbols;1:length(firstSymbolIndex) i_SSB = mod(ssbIndex,8);ibar_SSB = i_SSB;v = i_SSB;pbchSymbols = nrPBCH(cw, ncelllid,v);ssblock(pbchIndices) = 3 * pbchSymbols;dmrsSymbols = nrPBCHDMRS(ncelllid,ibar_SSB);ssblock(dmrsIndices) = 4 * dmrsSymbols;ssburst(:,firstSymbolIndex(ssbIndex) + (0:3)) = ssblock;结束

最后,绘制出SS爆发的内容:

显示亮度图像(abs (ssburst));caxis ([0 4]);轴xy;包含(OFDM符号的);ylabel (副载波的);标题('SS爆裂,方块模式B案例');

另请参阅

功能

相关的话题