PDSCH 处理流程整理-程序员宅基地

技术标签: 5g  

PDSCH 处理流程:


一、传输块CRC附加

(一) 步骤

通过循环冗余校验(CRC)在每个传输块上提供错误检测。
整个传输块用于计算CRC奇偶校验比特。传送到层1的传输块比特记为a0,a1,a2,a3,…,aA−1,奇偶校验比特记为p0,p1,p2,p3,…,pL−1,其中A是有效载荷的大小,L是校验比特的位数。最低阶信息位a0a0被映射到传输块的最有效位。
奇偶校验位根据协议所述规则计算并附加到DL-SCH传输块。当A>3824时,设置L为24比特,并使用生成多项式gCRC24A(D);否则,设置L为16比特,并使用生成多项式gCRCl6(D)附加之后的比特记为b0,b1,b2,b3,…,bB−1,其中B=A+L。

(二)流程图

https://img2020.cnblogs.com/blog/1912556/202003/1912556-20200318174646596-1107611003.png

二.LDPC 位图选择

LDPC 位图选择基于传输块大小A和码率R.

http://www.sharetechnote.com/html/5G/image/NR_PDSCH_LDPC_basegraph_selection_02.png

 

If I represent this as areas in coordinate, it would become as follows.

http://www.sharetechnote.com/html/5G/image/NR_PDSCH_LDPC_basegraph_selection_03.png

三.码块分割及CRC附加

(一)步骤

码块分割的输入比特序列记为b0,b1,b2,b3,…,bB−1,其中B>0。如果B大于最大码块长度Kcb,则需要进行码块分割,并对分割后得到的各个码块添加24比特CRC校验序列。
码块分割的输出比特记为cr0,cr1,cr2,cr3,…,cr(Kr−1),其中0≤r<C表示码块编号,Kr=K 表示每个码块中的比特数。

1.确定最大码块长度Kcb

  • 对于LDPC base graph type 1 ,最大码块长度为:Kcb=8448
  • 对于LDPC base graph type 2,最大码块长度为:Kcb=3840

2.确定码块数C

  • 当B≤Kcb 时,不需要进行码块分割,即码块数C=1 ,码块长度B′=B ,不添加CRC,L=0 。
  • 当B超过Kcb时,需要进行码块分割,码块数C=⌈B/(Kcb−L)⌉,(5G NR规定采用等长分割),分割之后总的传输块长度为B′=B+C⋅L,L=24。

3.确定每个码块中的比特数K

  • K′=B′/C;
  • 对于BG1,Kb=22;对于BG2,需要根据BB的大小决定:当B>640时,Kb=10;当B>560时,Kb=9;当B>192时,Kb=8;否则,Kb=6 。然后,根据表5.3.2-1找到最小的Z值(用Zc表示),使其满足Kb⋅Zc≥K′,并令K=22Zc(对于BG1),或者K=10Zc(对于BG2)。

4.计算码块分割及CRC添加后的比特序列Crk

  • 当不分割时,不添加CRC。
  • 当码块数C>1时,输入序列根据码块数进行等长分割,每段根据生成多项式gCRC24B(D)计算CRC校验序列,并分别附加在各段之后。
  • 最后在剩余的位置插入填充比特crk=<NULL>。

(二)流程图

http://www.sharetechnote.com/html/5G/image/NR_PDSCH_CodeBlockSegmentation_01.png

四、LDPC编码

(一)步骤

码块被传送到信道编码模块。码块中的比特记为Cr0,Cr1,Cr2,Cr3,…,Cr(Kr−1) ,其中r表示码块编号,Kr表示码块r中的比特数。码块总数记为C,每个码块单独进行LDPC编码。
编码后的比特记为dr0,dr1,dr2,dr3,…,dr(Nr−1)。

(二)流程图

伪代码如下:

输入:in-待编码的码块段;bgn-基图编号(1或2)

输出:out-LDPC编码后的结果

1)根据bgn取值和输入码块段长度确定Zc,根据bgn及Zc确定编码后的输出比特长度N;

2)将输入中由-1表示的每个填充位替换为0;

3)编码生成完整的LDPC码字

根据Zc的值确定索引值setIdx,38.212表5.3.2-1;

根据bgn和setIdx确定校验矩阵V,38.212表5.3.2-2和表5.3.2-3;

根据V矩阵和ZC计算移位矩阵P,P=mod(V, ZC);

for每个码块段:

       计算校验比特位;

       生成完整LDPC码字

end for

4)将每个填充位再次替换为-1;

5)截断前2*Zc个比特,得到最后输出结果out。

五.速率匹配

(一)步骤

每个码块编码后的比特记为dr0,dr1,dr2,dr3,…,dr(Nr−1) ,被传送到速率匹配模块,其中r表示码块编号,Nr表示码块r中编码后的比特数。码块总数记为C,每个码块单独进行速率匹配,设置ILBRM=1。
速率匹配后的比特记为fr0,fr1,fr2,fr3,…,fr(Er−1),其中Er 表示码块r速率匹配后的比特数。

(二)流程图

http://www.sharetechnote.com/html/5G/image/NR_PDSCH_RateMatching_01.png

六.码块连接

(一)步骤

码块连接模块的输入比特序列是序列fr0,fr1,fr2,fr3,…,fr(Er−1),r=0,…,C−1,其中ErEr表示第r个码块速率匹配后的比特数。码块连接模块的输出比特序列是序列g0,g1,g2,g3,…,gG−1,其中G表示用于传输的编码比特的总数。
码块连接就是按顺序连接不同码块速率匹配的输出。

http://www.sharetechnote.com/html/5G/image/NR_PDSCH_Codeblock_Concatenation_01.png

七.加扰

(一)步骤

最多可以传输两个码字 q∈{0,1}q∈{0,1} 。在单码字传输的情况下,q=0q=0 。
对于每个码字 qq ,UE应假设比特块 b(q)(0),…,b(q)(M(q)bit−1)  在调制之前被加扰,M(q)bit是在物理信道中传输的码字 q 的比特数量,根据如下公式产生一个加扰比特块 b~(q)(0),…,b~(q)(M(q)bit−1) :

b˜(q)(i)=(b(q)(i)+c(q)(i))mod2

式中,加扰序列 c(q)(i) 由5.2.1节给出。加扰序列生成器应按照如下公式初始化:

cinit =nRNTI⋅215+q⋅214+nID

式中,

  • nID∈{0,1,…,1023}等于高层参数dataScramblingIdentityPDSCH(如果配置),并且RNTI等于C-RNTI、MCS-C-RNTI或CS-RNTI,并且在公共搜索空间中不使用DCI格式1_0调度传输,
  • 否则,nID=NcellID

    (二)流程图

https://img2020.cnblogs.com/blog/1912556/202003/1912556-20200321112928803-1486999151.png

八.调制

(一)步骤

对于每个码字qUE应假设加扰比特块b~(q)(0),…,b~(q)(M(q)bit−1)使用下表中的一种调制格式进行调制,产生一个复数值调制符号块d(q)(0),…,d(q)(M(q)symb−1)

支持的调制格式

调制格式

阶数

QPSK

2

16QAM

4

64QAM

6

256QAM

8

(二)流程图

https://img2020.cnblogs.com/blog/1912556/202003/1912556-20200323101247854-1668053200.png

九.层映射

(一)步骤

应假设根据下表将要发送的每个码字的复数值调制符号映射到一个或多个层上。码字 q 的复数值调制符号 d(q)(0),…,d(q)(M(q)symb−1)应映射到层 x(i)=[x(0)(i)…x(ν−1)(i)]T上,i=0,1,…,Mlayersymb−1,式中 v是层数,Mlayersymb 是每层调制符号数。

空分复用的码字-层映射

http://www.sharetechnote.com/html/5G/image/NR_PDSCH_LayerMapping_02.png

(二)流程图

https://img2020.cnblogs.com/blog/1912556/202003/1912556-20200323162223938-2034742043.png

https://img2020.cnblogs.com/blog/1912556/202003/1912556-20200323162439450-1392092352.png

http://www.sharetechnote.com/html/5G/image/NR_PDSCH_LayerMapping_04.png

http://www.sharetechnote.com/html/5G/image/NR_PDSCH_LayerMapping_05.png

十.天线端口映射

数据路径通过层映射过程,来自每个层的数据将映射到每个天线端口。未应用CSI时,数据映射到物理天线端口,如下所示。

 

http://www.sharetechnote.com/html/5G/image/NR_PDSCH_AntennaPortMapping_01.png

 当应用CSI时,来自层映射器的数据首先映射到每个CSI天线端口,如下所示

http://www.sharetechnote.com/html/5G/image/NR_PDSCH_AntennaPortMapping_CSI_01.png

The determination of W(i) from reportQuantity of CSI-ReportConfig can be summarized as shown below.

reportQuantity

W(i) determination criterial

cri-RI-PMI-CQI or cri-RI-LI-PMI-CQI

PMI Report from UE

cri-RI-CQI

The process described in 38.214-5.2.1.4.2

cri-RI-i1-CQI

i1 Report from UE

 参考链接:ShareTechnote

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

智能推荐

8连接路径_path("keys")-程序员宅基地

文章浏览阅读927次。文章目录8.1检查8.1.1初步检查8.5建立连接路径8.5.1 sort_inner_and_outer生成连接路径时所使用的算法—动态规划和遗传,动态规划推进到join_ search_one_ level遗传算法推进到merge clump,物理优化的部分从这两个函数开始就进入到了建立连接路径的阶段 连接路径指的是物理连接路径,也就是通过这种路径来实现逻辑连接操作建..._path("keys")

基于模板匹配的数字识别_基于模板匹配的数字电表数字识别-程序员宅基地

文章浏览阅读6.9k次,点赞5次,收藏35次。基于模板匹配的数字识别,将标准的8*16像素的数字0123456789读取,二值化,对每个数字进行等分区域分割,统计每个区域内的黑色像素点的个数,即为特征初值。采用欧式距离的模板匹配法。z//基于模板匹配的数字识别#include#include#include#include #includeusing namespace std; int main()_基于模板匹配的数字电表数字识别

Python代码的编写运行方式介绍_python安装好后怎么写代码-程序员宅基地

文章浏览阅读7.2k次,点赞11次,收藏74次。Python代码的编写运行方式详解_python安装好后怎么写代码

VS Code使用code runner插件无法识别gcc编译C语言程序_vscode无法识别gcc-程序员宅基地

文章浏览阅读1.2k次。VS Code配置Code runner_vscode无法识别gcc

Unity3D中使用mesh collider和box collider的区别-程序员宅基地

文章浏览阅读1.5w次,点赞10次,收藏14次。Unity3D中使用mesh collider和box collider的区别踩坑过程记录。设备是HTC的VIVE 和 Unity 5.xCPU: Intel Xeon Silver 4116 * 2GPU: NVIDIA Quadro P6000RAM: 64GB这个问题是在解决项目卡顿问题的同时出现的:最近在用U3D做一个VR项目,需求是要给网格加碰撞体以实现获取手柄射线与..._mesh collider和box collider

关于jar包后台运行及端口占用问题_centos启动jar包不显示端口占用-程序员宅基地

文章浏览阅读4.7k次。问题场景问题一:后端项目jar包打包上传运行,终端上正常,终端退出后,项目未能运行。问题二:第二次上传jar包并运行时提示该端口被占用。解决方法问题一:使用nohub命令启动jar包。nohup java -jar 1.0.0.jar &问题二:由于两次使用的同一个端口,先查找到当前端口正在运行的进程的进程号。netstat -lnp|grep 端口号然后用杀掉进程..._centos启动jar包不显示端口占用

随便推点

解决微信小程序 picker 模式日期,设置默认当前时间_"picker mode=\"date"-程序员宅基地

文章浏览阅读6.9k次,点赞3次,收藏11次。wxml文件<picker mode="date" value="{{currentDate}}" start="2021-01-01" end="2021-12-31" bindchange="bindDateChange"> <view class="picker"> 日期选择: {{currentDate}} </view></picker>js文件const util = require('../../utils/util')_"picker mode=\"date"

区块链概述-程序员宅基地

文章浏览阅读1.9k次,点赞36次,收藏29次。对区块链的简介

使用Gitlab 搭建私有镜像仓库(外置Nginx)_docker gitlab 使用外部nginx-程序员宅基地

文章浏览阅读1.2k次。为了让团队尽快使用Gitlab的CI进行工作,必须做好Gitlab的初始化工作,大家都知道拉取镜像由于某些原因,会比较慢,因此构建自己的私有镜像仓库就成为了关键的一步。当然私有镜像仓库的搭建有很多种方式,这里直接使用Gitlab提供的镜像仓库功能。一揽子解决方案比较香。gitlab真的越来越好用了,有了这个镜像仓,也没必要再使用三方的镜像仓库了。Devops 真好用!_docker gitlab 使用外部nginx

python之uWSGI和WSGI-程序员宅基地

文章浏览阅读130次。WSGI协议首先弄清下面几个概念:WSGI:全称是Web Server Gateway Interface,WSGI不是服务器,python模块,框架,API或者任何软件,只是一种规范,描述web server如何与web application通信的规范。server和application的规范在PEP 3333中有具体描述。要实现WSGI协议,必须同时实现web server和..._python uwsgi 和pywsgi

Java---简单易懂的KNN算法_jf.knn-%; 9 &-程序员宅基地

文章浏览阅读399次。一,简单介绍KNN算法---就是获取临近点,范围内,哪一种点最多(例如:红点:6,黑点:2,未知点肯定是红点),就是属于最多一方定义样本,拥有四个样本,已知A区两点分别(2,5)和(1,4),B区(8,1)和(9,2),求灰点(4,3)属于哪一区?代码定义实体类/** * 定义数据和数据类型 * @author peng * */ private s..._jf.knn-%; 9 &

最新版ffmpeg 提取视频关键帧_从视频中获取flag-程序员宅基地

文章浏览阅读8.9k次,点赞2次,收藏9次。对于ffmpeg的配置请看我的上篇博客:http://blog.csdn.net/kuaile123/article/details/11367309所用视频为 flv格式的,用的vs2010,电脑为64位,下面的也是64位,别下错了。因为ffmpeg的函数和版本有关系,这里记录下我所用的整合的版本,是昨天下的最新版的,需要请下载http://download.csdn.n_从视频中获取flag