5G NR学习理解系列——SSB块时频位置的初步理解

2023-10-08 20:30

本文主要是介绍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块时频位置的初步理解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/167801

相关文章

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx

Java springBoot初步使用websocket的代码示例

《JavaspringBoot初步使用websocket的代码示例》:本文主要介绍JavaspringBoot初步使用websocket的相关资料,WebSocket是一种实现实时双向通信的协... 目录一、什么是websocket二、依赖坐标地址1.springBoot父级依赖2.springBoot依赖

4G/5G全网通! FiberHome烽火5G CPE Air路由器拆机评测

《4G/5G全网通!FiberHome烽火5GCPEAir路由器拆机评测》烽火5GCPE已经使用一段时间了,很多朋友想要知道这款路由器怎么样?今天我们就来看看拆机测评... 我想大家都听说过、了解过5G。 5G是具有高速率、低时延和大连接特点的新一代宽带移动通信技术,5G通讯设施是实现人机物互联的网络基础设

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

深入理解Apache Airflow 调度器(最新推荐)

《深入理解ApacheAirflow调度器(最新推荐)》ApacheAirflow调度器是数据管道管理系统的关键组件,负责编排dag中任务的执行,通过理解调度器的角色和工作方式,正确配置调度器,并... 目录什么是Airflow 调度器?Airflow 调度器工作机制配置Airflow调度器调优及优化建议最

一文带你理解Python中import机制与importlib的妙用

《一文带你理解Python中import机制与importlib的妙用》在Python编程的世界里,import语句是开发者最常用的工具之一,它就像一把钥匙,打开了通往各种功能和库的大门,下面就跟随小... 目录一、python import机制概述1.1 import语句的基本用法1.2 模块缓存机制1.

深入理解C语言的void*

《深入理解C语言的void*》本文主要介绍了C语言的void*,包括它的任意性、编译器对void*的类型检查以及需要显式类型转换的规则,具有一定的参考价值,感兴趣的可以了解一下... 目录一、void* 的类型任意性二、编译器对 void* 的类型检查三、需要显式类型转换占用的字节四、总结一、void* 的

深入理解Redis大key的危害及解决方案

《深入理解Redis大key的危害及解决方案》本文主要介绍了深入理解Redis大key的危害及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 目录一、背景二、什么是大key三、大key评价标准四、大key 产生的原因与场景五、大key影响与危

深入理解C++ 空类大小

《深入理解C++空类大小》本文主要介绍了C++空类大小,规定空类大小为1字节,主要是为了保证对象的唯一性和可区分性,满足数组元素地址连续的要求,下面就来了解一下... 目录1. 保证对象的唯一性和可区分性2. 满足数组元素地址连续的要求3. 与C++的对象模型和内存管理机制相适配查看类对象内存在C++中,规

如何用Java结合经纬度位置计算目标点的日出日落时间详解

《如何用Java结合经纬度位置计算目标点的日出日落时间详解》这篇文章主详细讲解了如何基于目标点的经纬度计算日出日落时间,提供了在线API和Java库两种计算方法,并通过实际案例展示了其应用,需要的朋友... 目录前言一、应用示例1、天安门升旗时间2、湖南省日出日落信息二、Java日出日落计算1、在线API2