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

相关文章

深入理解C++ 空类大小

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

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

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

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

认识、理解、分类——acm之搜索

普通搜索方法有两种:1、广度优先搜索;2、深度优先搜索; 更多搜索方法: 3、双向广度优先搜索; 4、启发式搜索(包括A*算法等); 搜索通常会用到的知识点:状态压缩(位压缩,利用hash思想压缩)。

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl