5G NR学习理解系列——SSB块时频位置的初步理解_ssb频域位置_十年老鸟的博客-程序员秘密

技术标签: 5G NR  NR学习  

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

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


前言

在前面的博文中,我们通过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ㄒ)/~~

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/gzy0506/article/details/123752606

智能推荐

error C2664: “wsprintfW”: 不能将参数 1 从“char [32]”转换为“LPWSTR” 1>_JackPai的博客-程序员秘密

在VS2010的环境中出现这个问题解决方法: 菜单栏 项目-“XX(项目名)属性”-“配置属性”-“常规”里面有“字符集”内容改成“使用多字节字符集”基本都可以解决

利用mmap /dev/mem 读写Linux内存_jalen_king的博客-程序员秘密

使用 hexedit /dev/mem 可以显示所有物理内存中的信息。 运用mmap将/dev/mem map出来,然后直接对其读写可以实现用户空间的内核操作。以下是我写的一个sample[cpp] view plaincopy#include  #include  #include  #include  #include

Web安全—远程命令/代码执行(RCE)_web远程命令执行_the zl的博客-程序员秘密

远程代码/命令执行(RCE)提要:RCE(remote command/code execute)远程命令/代码执行,开发人员在开发相关命令功能时,没有对用户输入的数据进行过滤,验证等操作,导致攻击者输入的恶意字符被代入后端服务器执行,从而产生危害应用服务器的后果。漏洞简介:RCE属于服务端漏洞,可以归于"命令执行漏洞"这一分类中远程命令执行漏洞:适用于前端给用户提供了一个ping或其他操作的界面,如果后端未对输入的字符做限制,那么用户便可以通过输入地址&ipconfig来实现命令注入。举

安装程序在计算机中识别出下列大容量存储设备_weixin_33681778的博客-程序员秘密

今天使用USB安装2003 在一台lenovo笔记本发现提示安装程序在计算机中识别出下列大容量存储设备解决方案:BIOS 硬盘更改为兼容or ide即可 转载于:https://blog.51cto.com/vn98z/905299...

sql语句小练习_weixin_30678349的博客-程序员秘密

1、用一条SQL 语句 查询出每门课都大于80 分的学生姓名name kecheng fenshu张三 语文 81张三 数学 75李四 语文 76李四 数学 90王五 语文 81王五 数学 100王五 英语 90A:select distinct name from table where name not in (select distinct name fr...

随便推点

easyui dialog 引入jsp页面赋值_weixin_34198583的博客-程序员秘密

2019独角兽企业重金招聘Python工程师标准>>> ...

k8s主节点更换证书后,从节点使用kubectl get pods命令报Config not found: /etc/kubernetes/admin.conf_k8s admin.conf_starlsy的博客-程序员秘密

k8s主节点更换证书后,从节点使用kubectl get pods命令报Config not found: /etc/kubernetes/admin.conf:解决:1.替换config文件更换主节点的证书后,将主节点”.kube/config“文件复制到从节点相应位置2.复制admin.conf文件由于报错是找不到admin.conf文件,所以从主节点复制该文件到从节点3.新增环境变量echo "export KUBECONFIG=/etc/kubernetes/admin.conf"

logistic回归 java_【JAVA实现】用Logistic回归进行分类_TKSJ的博客-程序员秘密

package logistic;import java.util.List;public class Horse {private List attributes;private String label;public List getAttributes() {return attributes;}public void setAttributes(List attributes) {this...

将阿里云ECS自建Redis数据导入到阿里云云数据库Redis_weixin_34121282的博客-程序员秘密

使用AOF文件进行迁移用户可以使用 redis-cli 工具,通过AOF文件将自建Redis迁移到云数据库Redis版。redis-cli 是 Redis 原生的命令行工具。云数据库 Redis 版支持通过 redis-cli 将已有的 Redis 数据导入到云数据库 Redis 版里,实现数据的无缝迁移。另外您也可以通过DTS 导入数据。注意事项由于云数据库 Redis 版...

IOS开发之实现App消息推送(最新)_朱梁瑜的博客-程序员秘密

最近在研究ios的推送问题,遇到了一些问题,最终整理了一下。放在这里和大家分享APNS的推送机制首先我们看一下苹果官方给出的对ios推送机制的解释。如下图 Provider就是我们自己程序的后台服务器,APNS是Apple Push Notification Service的缩写,也就是苹果的推送服务器。上图可以分为三个阶段:第一阶段:应

Python之多线程爬虫抓取网页图片的示例代码_网络爬虫爬取图片代码_程序员arlly的博客-程序员秘密

本篇文章主要介绍了Python之多线程爬虫抓取网页图片的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧目标嗯,我们知道搜索或浏览网站时会有很多精美、漂亮的图片。我们下载的时候,得鼠标一个个下载,而且还翻页。那么,有没有一种方法,可以使用非人工方式自动识别并下载图片。美美哒。那么请使用python语言,构建一个抓取和下载网页图片的爬虫。当然为了提高效...

推荐文章

热门文章

相关标签