5G NR CSI Report中关于codebook/PMI的理解(1)

article/2025/11/11 10:17:24

笔者在微信公众号GiveMe5G定期发布学习文章(更多更及时),欢迎订阅和分享,文章下方有二维码。

本文主要讨论PDSCH codebook,介绍NR下行数据传输precoding的特点,以及Type I和Type II codebook是什么。

gNB是如何做下行Precoding的?

关于NR下行传输方案,38214目前只定义了一种,称为“Transmission scheme 1”。这种方案的一个最大特点就是gNB将数据和DMRS一同预编码,之后通过无线信道,发送给终端。如下图,从终端的角度来看,可以通过DMRS的解调,反推出信道矩阵H’(H’=W*H),然后就可以用这个推导出来的信道矩阵再去解数据,因此预编码矩阵对终端来说是透明的。利用这一原理,不论gNB下行使用什么预编码矩阵,原则上说gNB都无需通知终端,终端也可以成功解出数据。


那问题来了,既然这样为什么还要配置codebook?为什么还要终端上报PMI表明自己喜欢的预编码矩阵呢?答案是基站利用终端对信道的测量和上报为基站调度提供参考信息,记住“参考”二字。Codebook,很明显它是一本book,这个book里面主要的内容就是PMI index和precoding matrix,每个PMI和预编码矩阵一一对应。终端上报PMI,将自己认为最合适的预编码矩阵index发送给gNB做参考,gNB可以使用终端的建议,也可以不使用,因为基站会站在一个更全局的网络来做一个最优的选择,不但要考虑目标终端的解调性能,还要考虑这个小区内其他用户的感受。现实中,gNB确定下行预编码矩阵主要通过两个途径,一个是PMI的反馈,另一个是gNB通过SRS上行参考信号的测量(利用TDD系统的信道互异性)。

Codebook的分类

38214定义了两种codebook:
TypeI codebook: 主要用于SU-MIMO,可以提供比较高阶的空间复用,单用户最多可以支持到8个layer。这种场景相对简单,预编码矩阵主要目的focus在使得接收端可以得到比较高的能量。而潜在的layer之间的干扰,主要由接收机的多天线来解决。TypeI codebook又可以分为single pnnel和multiple panel两种类型。
TypeII codebook: 主要用于MU-MIMO场景,由于要在同一时频资源上同时调度多个用户,每个用户限制最多支持到2个layer。这个场景比较复杂,因为gNb选择预编码矩阵不仅要考虑接收端能获得较高的能量,还要考虑同一时频资源上对其它用户的干扰。因此此种PMI反馈的开销相对于TypeI要大得多。

TypeI Single-Panel Codebook

在正式描述开始之前,我们先来看一些术语,否则你将彻底迷失在38214 PMI那一章节的非人类描述中,而丧失继续了解它的乐趣,哈哈,开个玩笑。


这是一个single panel的示意图,N1代表水平方向天线数目,N2代表垂直方向天线数目,因此,这个panel上的双极化天线数量为N1 N2,而CSI-RS的天线端口数量为2N1N2。

这幅图是在上一幅图的基础上做了扩展(引用于3GPP R1-1612661),引入了O1和O2两个参数。试想我们要在空间中实现很多个beam或者方向,怎样做的呢?在原有N1N2个天线的panel上,继续做进一步的精细化划分,这里面有一个DFT oversample的概念,将水平方向划分为N1O1份,把水平方向划分为N2*O2份,这样就可以得到颗粒度更小的beam,实现更好的方向性。O1和O2的值越大,beam的精度越高。

Type1 Single-Panel 的预编码矩阵W可以表示成W1*W2。其中W1主要用于反映了信道的wideband特性,包含了beam选择的信息。W2则用于反映信道的窄带特性,主要包含两个极化方向的co-phasing信息,有时也会携带beam选择信息。


从上述公式可以看出,W1中的Matrix B其实可以看成是L个beam的方向,对角线上2个B的这种矩阵结构,是双极化天线的体现。
对于layer=1和2的情况,W1矩阵可能定义1个beam或者4个neighbor beam。如果是4个neighbor beam,那么W2携带的信息会选择其中一个beam作为数据传输使用的beam,此外W2会携带两个极化方向的co-phasing 信息。如果W1矩阵只定义了一个beam,那么W2只携带双极化co-phasing信息。
对于layer R>2的情况,W1会定义R/2个正交的beam,R/2个beam辅以每个beam2个极化方向被用于R个layer的数据传输,W2携带双极化co-phasing信息。TypeI Single-Panel支持单用户最多8个layer。

TypeI Multi-Panel

与single panel相比,多了一个参数Ng,Ng用来表示有多少个Panel。原则上multi-panel的W矩阵是继承single panel设计的,考虑到不同panel之间的相关性,W2还需要携带panel之间的co-phasing信息。TypeI Multi-Panel最多支持4layer。


目前我看到的现网log主要是在使用TypeI single panel的场景,对于TypeI multi panel和TypeII,没有实际分析经验,暂不详细讨论了,以免水平有限误导大家。
下一篇文章,会结合协议和log详细解释下Type I single panel codebook及相应的PMI反馈。


笔者在微信公众号GiveMe5G定期发布学习文章,公众号会发布的更多更及时,欢迎订阅和分享,下方就是二维码!
最后还请大家多多转发和分享下我的公众号,帮我推广一下,在此谢过大家!



http://chatgpt.dhexx.cn/article/ooCqpOa3.shtml

相关文章

【Stata】CGSS数据清理:Codebook速成法

对数据使用者来说,了解一个调查数据基本情况的常见途径就是查看该数据的codebook。 对数据所有者/提供方来说,制作一份详细的codebook是其数据管理工作中不可或缺的一环。 2016年上半年CGSS项目组把CGSS2003年到CGSS2013年期间的8年年度数据合并成一个…

CodeBook算法

年份论文题目作者论文内容2004Background modeling and subtraction by codebook constructionK. Kim, T. Chalidabhongse, D. Harwood, and L. Davis提出了CodeBook算法2005Real-time foreground–background segmentation using codebook modelK. Kim, T. Chalidabhongse, D.…

图像处理之前景检测(三)之码本(codebook)(主要为代码升级)

图像处理之前景检测(三)之码本(codebook) CodeBook算法的基本思想是得到每个像素的时间序列模型。这种模型能很好地处理时间起伏,缺点是需要消耗大量的内存。CodeBook算法为当前图像的每一个像素建立一个CodeBook(CB)结…

RIDCP: Revitalizing Real Image Dehazing via High-Quality Codebook Priors(CVPR2023)论文记录

通过高质量码本先验重塑真实图像去雾(CVPR2023) RIDCP: Revitalizing Real Image Dehazing via High-Quality Codebook Priors通过高质量码本先验重塑真实图像去雾(CVPR2023)摘要一、数据合成流程二、VQGAN 预训练:构建…

【AI人工智能绘画 CV】Towards Robust Blind Face Restoration with Codebook Lookup Transformer

Towards Robust Blind Face Restoration with Codebook Lookup Transformer (NeurIPS 2022) 使用 Codebook Lookup Transformer 实现稳健的盲脸修复 Blind face restoration is a highly ill-posed problem that often requires auxiliary guidance to 1) improve the mapping…

2021-11-10-Codebook理解

《Deep Visual-Semantic Quantization for Efficient Image Retrieval》中提到的codebook是什么意思? Specifically, each image embedding zn is quantized using a set of M codebooks C [C1, . . . , CM ], each codebook Cm contains K codewords Cm [Cm1, .…

《学习openCV》例程解析 ex_9_3(codeBook模型实现背景减除)

56帧时 63帧时 /** 比平均背景法性能更加良好的方法,codeBook模型实现背景减除 核心代码详细解析和实现 by zcube */ /************************************************************************/ /* A few more thoughts on codebook models In general, the codebook met…

“Requesting Java AST from selection“. ‘boolean com.ibm.icu.text.UTF16.isSurrogate(char)‘

记录一次问题。自从安装了spring tool(sts)插件后,在使用eclipse过程中总是弹出An internal error occurred during: "Requesting Java AST from selection". boolean com.ibm.icu.text.UTF16.isSurrogate(char)这种错误&#xff0…

详解Unicode与UTF-8、UTF-16、UTF-32.

计算机起源于美国,上个世纪,他们对英语字符与二进制位之间的关系做了统一规定,并制定了一套字符编码规则,这套编码规则被称为ASCII编码 ASCII 编码一共定义了128个字符的编码规则,用七位二进制表示 ( 0x00 - 0x7F ), …

解决eclipse boolean com.ibm.icu.text.UTF16.isSurrogate(char)

window > preferences > java > Editor > mark occurrences and desable : mark occurrences ...

字符集编码 Unicode UTF8 UTF16 UTF32 和BOM(Byte Order Mark)

BOM(Byte Order Mark) 在分析unicode之前,先把bom(byte order mark)说一下。 bom是unicode字符顺序的标识符号,一般以魔数(magic code)的形式出现在以Unicode字符编码的文件的开始的头部,作为该文件的编码标识。 来举个很简单的例子,在windows下新建一个文本文件,并另…

utf8与utf16转换

1.UTF8与UTF16编码转换 std::string ConvertFromUtf16ToUtf8(const std::wstring& wstr) {std::string convertedString;int requiredSize WideCharToMultiByte(CP_UTF8, 0, wstr.c_str(), -1, 0, 0, 0, 0);if(requiredSize > 0){std::vector<char> buffer(requ…

探究乱码问题的本源:GBK,UTF8,UTF16,UTF8BOM,ASN1之间的关联

文章目录 前言一、字符集和字符编码的区别和联系二、字符集编码的发展1.单字节2.双字节3.多字节(UNICODE字符集)&#xff08;1&#xff09;UTF-8&#xff08;2&#xff09;UTF-16&#xff08;3&#xff09;UTF-32&#xff08;4&#xff09;UTF BOM 三、不同编码方式的对比分析四…

oracle字符集utf16,oracle字符集AL16UTF16改为ZHS16GBK

AL16UTF16一个汉字占3个字节 ZHS16GBK一个汉字占2个字节 sql> conn / as sysdba; sql> shutdown immediate; database closed. database dismounted. oracle instance shut down. sql> startup mount; oracle instance started. total system global area 135337420 …

字符编码的概念(UTF-8、UTF-16、UTF-32都是什么鬼)

字符集为每个字符分配了一个唯一的编号&#xff0c;通过这个编号就能找到对应的字符。在编程过程中我们经常会使用字符&#xff0c;而使用字符的前提就是把字符放入内存中&#xff0c;毫无疑问&#xff0c;放入内存中的仅仅是字符的编号&#xff0c;而不是真正的字符实体。 这就…

UTF-8 与 UTF-16编码详解

目录 一、UTF-8编码 1、UTF-8介绍 2、UTF-8是如何编码的&#xff1f; 3、上述Unicode码点值范围中十进制值127、2047、65535、2097151这几个临界值是怎么来的呢&#xff1f; 二、UTF-16编码 1、UTF-16介绍 2、UTF-16编码方式 1&#xff09;设计思路 2&#xff09;具体…

了解一下UTF-16

1)先啰嗦一下 UTF-16是一种编码格式。啥是编码格式&#xff1f;就是怎么存储&#xff0c;也就是存储的方式。 存储啥&#xff1f;存二进制数字。为啥要存二进制数字&#xff1f; 因为Unicode字符集里面把二进制数字和字符一一对应了&#xff0c;存二进制数字就相当于存了二进制…

字符编码--UTF-16

2019独角兽企业重金招聘Python工程师标准>>> 第4节 UTF-16 UTF-16是Unicode字符编码五层次模型的第三层&#xff1a;字符编码表&#xff08;Character Encoding Form&#xff0c;也称为"storage format"&#xff09;的一种实现方式。即把Unicode字符集的抽…

蔡勒公式、三角函数

1.蔡勒公式 2.三角函数

蔡勒(Zeller)公式及其推导:快速将任意日期转换为星期数

0. 本文的初衷及蔡勒公式的用处 前一段时间&#xff0c;我在准备北邮计算机考研复试的时候&#xff0c;做了几道与日期计算相关的题目&#xff0c;在这个过程中我接触到了蔡勒公式。先简单的介绍一下蔡勒公式是干什么用的。 我们有时候会遇到这样的问题&#xff1a;看到一个日期…