LDPC码由于可以达到更高的译码吞吐量和更低的译码时延,可以更好适应高数据速率业务的传输,从而替代LTE的Turbo码,被采纳为5G NR数据的编码方案。

1. 基图 (BG, Base Graph)

  • 5G NR采用QC-LDPC码,BG是整个LDPC码设计的核心。BG是LDPC码**PCM(Parity-Check Matrix, 校验矩阵)**设计的前提,也决定了LDPC码的宏观特性和整体性能。在5G NR中,为适应不同通信场景的需求,LDPC码必须能够灵活地支持不同的码长和码率。同时,为提高通信可靠度,IR-HARQ 也是LDPC码必须支持的一项特性。

  • 在采纳LDPC码作为数据编码方案的同时,3GPP 会议也同期确定通过对一个高码率PCM进行下行角的码字扩展,以支持IR-HARQ和速率匹配。后续会议上,各公司同意把5G NR LDPC码PCM做如图的划分。

    [A B]对应RL-LDPC码中的Hcore,是高码率部分;[D E]对应Hext,是扩展部分。Hcore的维度较低,可以通过密度演进和计算机辅助的方法设计比较好的稀疏矩阵。基于Hcore,扩展生成Hext。Hext每增加一行,H就会多一列。

  • 子矩阵A对应系统比特;子矩阵C为全零矩阵;子矩阵E是单位矩阵;子矩阵B是方阵,对应校验比特。B中有一列列重为3,有一列列重可能为1。如果有列重为1的列,该列中元素“1”出现在最后一行,其余的列中首列列重为3.其后的列具有双对角结构。如果没有列重为1的列,则首列列重为3,其后的列具有双对角结构。双对角这种类似RA ( Repeat and Accumulate)码的结构,可以有效降低错误平层,同时保持较低的编译码复杂度。

  • 考虑到SGNR场景的多样性,各厂商建议设计多个BG,以覆盖不同的码长和码率。在评估这些方案过程中,BLER是评判矩阵好坏的主要标准。但是考虑引入过多BG带来的复杂度和译码延迟,最终确定的BG数量为2

    BG1 的大小是46x68,Hcore的大小为4x26,Hext的大小为42x26。支持的最低码率为1/3。主要用于对吞吐要求较高、码车较高、码长较长的场景。

    BG2 的大小为42x52,Hcore的大小为4x14, Hext的大小为38x14。主要用于对吞吐量要求不高,码率较低,码长较短的场景。

    • 通过进一步对比各个厂商所提矩阵的BLER,最终决定采用2个独立的BG。标准确定的BG2稍显特殊,可以通过删除Hcore中的部分列,实现BG大小随着信息块大小的变化而变化。具体来说,当信息块小于等于192时,Hore 的列数为10;当信息块大于192且小于560时, Hcore的列数为12;当信息块大于 560小于等于640 时,Hcore 的列数为13;当信息块大于640时,Hcore 的列数为14。

    • 5G NR LDPC码BG中前两列属于大列重,所谓大列重就是指这两列中1的数量明显大于其他列。这样做的好处是在译码过程中加强消息流动,增加校验方程之间的消息传递效率。右下角是对角阵,支持IR-HARQ,每次重传只需要发送更多的校验比特即可。

2. PCM

  • 一个QC-LDPC 码由BG相应的移位因子Z构成,即PCM定义:BG中的1替换为大小为ZxZ的循环移位矩阵,BG中的0被替换为ZxZ的全零矩阵。

    循环移位矩阵的移位值Pij,表示BG中第(i,j )个非0元素对应的移位矩阵为ZxZ往右移位Pij次,它由Pij=mod(Vij, Z)计算得到,其中Vij是BG中第 (i, j)个非“0”元素位置对应的整数,mod(x,y)表示x对y取余。

  • 为了支持不同的信息块长度,同时考虑描述复杂度和性能的折中,5G NR定义了8组扩展因子Z,即Z=ax2^j,其中a∈{2,3,5,7,9,11,13,15},j=0, 1…5。Z的取值是2≤Z≤384内的正整数。这些值分为8个集合,每个集合对应一个a。对于每个a,5G NR基于每个BG定义了一个PCM,对应这个集合中最大的Z。BG1和BG2分别对应8套PCM。

3. TBS

  • 数据信道的资源调度非常灵活,信道编码模块需要根据待编码的信息块长度和编码长度(或码率),构造编码参数。待编码长度即传输块大小(TBS,Transmission Block Size)。若存在分段,则分段后的每段长度为码块大小(CBS,Code Block Size),而编码长度则根据基站调度的可用资源(排除预留给参考信号、控制信息等的资源)进行计算。收发两端得到的TBS和编码码长需要一致,否则接收端的解码很可能失败

  • 基站通过信令告知终端TBS是最直接的一种实现方式, 然面由于TBS的可能取值较多,会导致大量的信令开销。另一种方式为,收发两端根据调度信息,采用相同的步骤计算TBS,这种方式以少量的运算代价,节省不必要的信令开销。

  • 与LTE采用查表的方式不同,5G NR中采用查表和公式两种方式计算TBS。5G NR中TBS的设计有以下考虑。

    ① 与TBS对应的实际码率不能严重偏离名义码率(MCS中预定义的码率)。

    ② 实现每个TBS的**调制编码方案(MCS, Modultion Coding Scheme)**尽可能多,以支持更灵活的调度。

    非均匀的TBS颗粒度(对较小的TBS,颗粒度较细;对较大的TBS,颗粒度较粗)。

    ④ 考虑两个BG的切换条件和两个BG的不同分段条件

    ⑤ 支持等长分段(TBS为分段数的倍数)。

    ⑥ CBS按字节对齐(CBS为8的倍数)。

    ⑦ 较低的描述复杂度。

    TBS的设计思路是将上述需求解耦,并将计算过程分为多个步骤,每个步骤满足对应的需求。例如:

    通过引入临时信息比特数Ninto的计算来满足需求(1);

    对临时信息比特数进行量化,使多种调度配置和MCS组合映射为同一个TBS,满足需求(2);

    通过对临时信息比特数进行数值大小相关的量化,满足需求(3) ;

    对较小的数值采用查表的方式进行精细的量化,而对较大的数值采用公式上的量化,满足需求(7);

    对量化后的结果分情况进行取整处理,满足需求(4)一(6) 。

  • 5G NR规定TBS计算的主要过程如下:

    根据分配的资源数(包括时频资源PRB和数据流数)、MCS确定的调制阶数码率计算一个临时的信息比特数Ninfo,并据此判断是基于查表还是公式计算TBS。

    具体来说, 当 Ninfo ≤ 3824 时,先对Ninfo进行量化得到Ninfo‘,然后查表找出最接近且不大于Ninfo’的值作为TBS。 当Ninfo ≤ 3824时,先对Ninfo进行量化得到Ninfo‘,再采用公式计算TBS。

4. HARQ和速率匹配

  • HARQ是提升系统吞吐量的一项关键技术,而5G NR系统中LDPC码的RL结构,可以增量生成校验比特,很好地支持IR-HARQ和不同的传输码率。另一方面,QC-LDPC码离散的移位因子大小等也对信息块大小和码长的支持提出一些限制, 需要通过额外的填充和打孔等实现速率匹配。

  • 对速率匹配得到的编码比特进行交织后再调制,即比特交织编码调制是保证LDPC 码在高阶调制和衰落信道下性能稳定的另一个基本保障。

  • 与LTE Turbo码类似,5GNR通过循环缓存实现HARQ和速率匹配:将编码比特存储在循环缓存中,每次传输时根据冗余版本从循环缓存中顺序读取,实现速率匹配。

    另外,LDPC码支持有限缓存速率匹配(LBRM,Limited Buffer Rate Matching)。对于初传需要打掉的大列重对应的2Z个系统比特,标准规定不进入循环缓存,即永远不会传输。对于每次传输,速率匹配的读取位置由冗余版本rv决定,且是移位因子Z的整数倍。

    由图可知,各个冗余版本并不是均匀分布的,标准中把rv=3进行了一定的移动使其更加靠近循环缓存的末尾,以使得rv0和rv3都可以独立译码。速率匹配后的编码比特经过交织后进入调制模块,标准规定的交织方式实现了rv0系统比特优先的排序。

5G NR LDPC码(2)—— 5G NR中的LDPC码标准化内容相关推荐

  1. docker保护python源码_Tensorflow在Docker中运行和源码编译

    本文分享在在Docker中运行Tensorflow和进行源码编译的方法和步骤,包括:编译.构建docker镜像.创建和运行Docker容器.部署完的容器可以通过Jupyter Notebook进行访问 ...

  2. 微信扫码 android sdk,H5中js-sdk扫码功能,Android手机微信中无法调用扫码?

    我的H5对接微信JS-SDK中的扫码功能,发现在Android手机微信中无法调用扫码功能,在苹果手机微信中可以使用. 报如下错误: errMsg:scanQRCode:permissi on deni ...

  3. 在计算机领域中 ascii码,在计算机领域中,ascii码用一个字节来干什么

    在计算机领域中,ASCII码用一个字节来表示一个字符,存入1024个字符需要的字节数是1KB.字节通常简写为"B",1KB等于1024B:一个字节来表示一个字符,存入1024个字符 ...

  4. linux top 源码,在Linux系统中下载源码包安装Topgrade的方法,附Topgrade选项说明

    本文介绍在Linux操作系统中下载源码包安装Topgrade的方法,即下载topgrade-v2.3.0-x86_64-unknown-linux-gnu.tar.gz包并进行安装,经测试,在Ubun ...

  5. wcdma码片速率_WCDMA中3.84M码片速率的由来

    wcdma 频率规划 根据工信部规定,中国联通可用的频段是 1940MHz-1955MHz( 上行 ) 2130MHz -2145MHz( 下行 ) 上下行各 15MHz . WCDMA 的频点称为 ...

  6. EAN-13码、ISBN码、身份证号中较验码的生成算法

  7. HashMap中的Hash码怎么计算,为什么要这样做?

    HashMap面试系列(1) Q:HashMap中的Hash码如何计算?为什么要这么做? 注意:HashCode()是对象的Hash码,和HashMap中的Hash码不是同一个东西 1.8版本如下 s ...

  8. wcdma码片速率_WCDMA中码片速率、符号速率、bit速率 WCDMA常用概念

    比特(Bit),符号(Symbol) ,码片(Chip) 经过信源编码的含有信息的数据称为"比特" 经过信道编码和交织后的数据称为"符号" 经过最终扩频得到的数 ...

  9. [4G/5G/6G专题基础-158]: 5G VoNR(Voice over NR)与VoLTE共同组成5G三大语音方案

    目录 第1章 语音方案概述 1.1 VoLTE概述 1.2 5G VoNR概述 第2章 5G  VoNR网络架构 2.1 基本原则 2.2 NSA VoLTE方案 2.3 SA  EPS Fallba ...

  10. 【5G/4G】加/解密+完整性保护/校验算法源码详解

    文章目录 加/解密+完整性保护/校验算法源码详解 一.加解密算法 二.完整性保护/校验算法 本人就职于国际知名终端厂商,负责modem芯片研发. 在5G早期负责终端数据业务层.核心网相关的开发工作,目 ...

最新文章

  1. PMP认证_计算题公式
  2. 如何查询电脑的文件系统的分类是哪一种?
  3. TCP/IP / 如何进行堵塞控制?
  4. 一个torch版本报错
  5. koa --- 使用koa-multer和element-ui组件上传头像
  6. mysql 5.6 gtid 主从_MySQL5.6基于GTID的主从复制
  7. python中for循环-python中关于for循环的碎碎念
  8. java web 数据库操作_Java Web----Java Web的数据库操作(二)
  9. python嵌套循环优化_减少循环嵌套,提升代码运行速度!你不知道的3个实用Python函数...
  10. PAT-Travel Plan (30)-Dijkstra和SPFA
  11. UVA11988 Broken Keyboard (a.k.a. Beiju Text)【输入输出+水题】
  12. bearer token头_接口认证方式:Bearer Token
  13. 世界各国和地区名称代码(GB/T 2659-2000)
  14. 前端js常用剪贴板(复制粘贴)操作和应用,以及navigator.clipboard新粘贴板API使用
  15. 什么是抗攻击服务器?抗攻击服务器是如何防御攻击的?
  16. 计算机网络Mac地质实验eNSP,eNSP实验(二)MAC帧分析 广播风暴
  17. canvas-樱花飘落
  18. 展望下未来的计算机400字,展望未来作文400字
  19. 平板酷派Ultranote X15概述
  20. 利用python库twilio来免费发送短信

热门文章

  1. WWDC20 Session 清单(06-23)
  2. 网易云信携手神州信息,共同打造广东华兴银行线上视频平台
  3. java usb摄像头_Android中多USB摄像头解决方案——UVCCamera源码分析(一)
  4. 人物关系 人脸识别_用 NetworkX + Gephi + Nebula Graph 分析权力的游戏人物关系(上篇)...
  5. redhatEL7下的dns服务搭建以及ddns配置
  6. 采坑系列:Waves MaxxAudio Pro无法正常启动,插入耳机窗口闪过,耳机没声音
  7. web前端开发规范项目流程总结
  8. 机器学习(二):k近邻法(kNN)
  9. 2020 对自己好一点之新 Mac Book Pro 环境的安装
  10. python - 文件操作函数练习