本文主要是介绍5G NR学习理解系列——SSB块时频位置的初步理解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
5G NR学习理解系列——SSB块时频位置的初步理解
- 前言
- BlockPattern——Case A/B/C/D/E
- TransmittedBlocks
- Period
- NCRBSSB 和 KSSB
- 后记
前言
在前面的博文中,我们通过matlab生成了5G信源,但并没有对具体细节了解的更清楚。
%% Synchronization Signals Burst
ssburst = nrWavegenSSBurstConfig;
ssburst.BlockPattern = 'Case B';
ssburst.TransmittedBlocks = [1 0 0 0];
ssburst.Period = 20; %SSB的周期5ms, 10ms, 20ms
ssburst.NCRBSSB = 0;
ssburst.KSSB = 0;
ssburst.DataSource = 'MIB';
ssburst.DMRSTypeAPosition = 2;
ssburst.CellBarred = false;
ssburst.IntraFreqReselection = false;
ssburst.PDCCHConfigSIB1 = 0;
ssburst.SubcarrierSpacingCommon = 30;
ssburst.Enable = true; %使能SSB
ssburst.Power = 10; %SSB的功率cfgDLTM.SSBurst = ssburst;
下面,我们对上面一些名词进行理解。
BlockPattern——Case A/B/C/D/E
SSB的Case由Band决定,在38.104协议中规定。
那这样的话,实际上频点确定了,基本case就确定了。后面我们以N41频段(移动)或者N78(联电)作为举例说明。
N41频段 TDD制式 2496~2690MHz。如果是NR100M的话,SCS = 30KHz,那么按照下表的说明,则就是case C了
N78频段 TDD制式 3300~3800MHz。只有SCS = 30KHz的选项,那么按照下表的说明,则就是case C了。
TransmittedBlocks
好了,case的问题解决了,那么CASE对于SSB有什么内容上的差别呢
Case的内容影响SSB的个数和位置。
这里只列出SUB6G的几种case,毫米波暂时还比较遥远,就暂不考虑了。
以下是每种情况下的 SSB 传输示例。 为简单起见,我将 SSB 块的频域位置设置在系统带宽的底部,但实际上频域位置可以更改为其他位置(例如,系统带宽的中心频率)。 这些示例的主要目的是显示每个案例的时域位置(传输模式)。 在实际部署中,SSB 的频域位置很可能(但不一定)位于中心频率附近。
下面的示例显示了如何将上表与以下示例中显示的 SSB 传输图相关联。(N78频段)
在这种配置下,SSB的起始位置在第2、8、16、22、30、36、44、50个OFDM符号上面。
下面可以从时频图上来看各个SSB的位置以及数量
(NR100的RB数应该是273,我找到这个图是显示275,就近似着看好了)
SSB的起始位置为2、8、16、22、30、36、44、50红色字体
SSB其他位置为黑色字体,一个SSB块占用4个OFDM符号
总之,CASE的种类主要是影响SSB的时域位置,也就是说SSB块只能放到指定的位置。但对于上述这个例子来说是不是每次都必须连续出现8个SSB块呢
上面显示的 SSB 传输说明是传输所有 SSB 的情况,但不需要传输所有 SSB。 根据网络需求,它可以选择性地只传输少数 SSB,并通知 UE 哪些 SSB 被传输,哪些 SSB 不被传输。 该传输模式通过称为 ssb-PositionInBurst 的 RRC IE(信息元素)通知。
至于为什么要出现连续几个SSB的情况,我目前不是太清楚,只知道各个SSB代表了不同的波束方向。
i) 多个 SSB 以一定的间隔传输。
ii) 每个 SSB 都可以通过一个称为 SSB 索引的唯一编号来标识
iii) 每个 SSB 通过特定方向辐射的特定波束传输
iv) 多个 UE 位于 gNB 周围的不同位置。
v) UE 测量它检测到的每个 SSB 的信号强度一段时间(一个 SSB 集的周期)。
vi) 从测量结果中,UE 可以识别出信号强度最强的 SSB 索引。这个信号强度最强的 SSB 是 UE 1 的最佳波束。(例如,Beam #1 是最佳波束(UE1 和 Beam#7 选择的波束是 UE 2 的最佳波束)
总之,目前只要知道,在matlab中我们可以通过 TransmittedBlocks = [1 0 0 0 0 0 0 0 ];这个字段来控制对应位置的SSB是否存在就是了
Period
这个好理解,典型是20ms,也可以是5ms、10ms等等
NCRBSSB 和 KSSB
这个指示SSB的频域位置
想讲明白这个又涉及好几个概念。。。
PointA
OffsetToPointA
KSSB
GSCN
头都大了。。。
同时这是之前博文的一些疑问,我带着这些疑问来理解这些概念
设置为0的时候为-45.54MHz
设置为1的时候为-45.54MHz + 180K
设置为2的时候为-45.54MHz + 360K
为啥这里说For block pattern Case A, Case B and Case C, the unit of this property is expressed in terms of 15 kHz SCS,它这的意思是15kHz为1个单位吗?但实际上不是啊,不知道哪里没理解对
实际上 NCRBSSB就是OffsetToPointA的概念
Point A是作为RB网格的公共参考点。一个RB是12个子载波。注意:这边FR1频段中的子载波统一都看成15kHz来计算,并不是按照实际使用的情况来计算的。
这里就可以解释 为什么 前面matlab程序中的疑问 NCRBSSB 的单位为180KHz的疑问。
也就是说对于计算offsetToPointA和kSSB都是按照15kHz的子载波为基本单位来计算的
在频域上,NR中的SSB可以在传输载波的任何位置,SSB的子载波0的位置甚至不与物理资源块RB对齐。如上图所示, SSB的子载波0与CRB0的偏移等于offsetToPointA(单位:RB)+kSSB(单位:子载波).
FR1: SCS=15 kHz,
FR2: SCS由上层提供subCarrierSpacingCommon.
举例: FR1, offsetToPointA = 253, kSSB = 12, 则SSB子载波0与PointA的长度:
253 * 12 * 15 + 12 * 15 = 45720 kHz = 45.72 MHz.
还有一个问题,为什么当
ssburst.NCRBSSB = 0;
ssburst.KSSB = 0;
这两个参数都设置为0的时候。SSB的频点是-45.54M呢?也就是PointA的距离中心频点的带宽是怎么确定的?
我们设置的是NR100M,那么有效带宽为273RB = 98.28MHz。而SSB占用20RB = 7.2MHz
因此-98.28/2 + 7.2/2 = -45.54 也就是SSB的中心频点了。
后记
毕竟我不是专门从事NR系统专业或者专门从事协议的人员,搞清楚这些内容都花了不少时间,而且有可能中间有不对的地方。尽管FPGA实现可能都不需要太关注这些概念,但搞清楚上面这些概念对于我自己生成信源,了解SSB块时域和频域的具体位置还是很有帮助的。
希望能够继续坚持理解下去。非专业人士写这种文章真的太耗时间了,至少花了5个小时。。/(ㄒoㄒ)/~~
这篇关于5G NR学习理解系列——SSB块时频位置的初步理解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!