热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

5G新空口关键技术之信道编码

信道编码概念  信道编码过程包括添加循环冗余校验码(CRC,CyclicRedundancyCheck)、码块分割(Code

信道编码
概念
  信道编码过程包括添加循环冗余校验码(CRC,Cyclic Redundancy Check)、码块分割(Code Block Segmentation)、纠错编码Forward Error CorrectingCoding)、速率适配(Rate Matching)、码块连接(Code Block Concatenation)、数据交织(Interleave)、数据加扰(Scrambling)等组成部分。其中纠错编码 最重要。纠错编码是通过尽可能小的冗余开销确保接收端能自动地纠正数据传输中所发生的差错。在同样的误码率下,所需要的开销越小,编码的效率也就越高。

Turbo、LDPC、Polar编码比较
  Turbo
  为了达到香农公式所定义的信道容量的极限,各种信道编码技术称为研究的热点。其中Turbo 码的性能优异,可以非常逼近香农理论的极限。在 3G 和 4G 中广泛使用。Turbo 码编码器基本原理如图1 所示。其编码器的结构包括两个并联的相同的递归系统卷积码编码器(Recursive Systematic Convolutional Code),二者之间用一个内部交织器(Interleaver)分隔。编码器 1 直接对信源的信息序列分组进行编码,编码器 2 为经过交织器交织后的信息序列分组进行编码。信息位一路直接进入复用器,另一路经两个编码器后得到两个信息冗余序列,再经恰当组合,在信息位后通过信道。
在这里插入图片描述
在这里插入图片描述
Turbo码解码的迭代次数越多,其解码的准确度也越高,但是在到达某个迭代次数的时候,误码率会趋于稳定。
  Turbo总结
  Turbo 码的编码相对简单,它在码长、码率的灵活度和码率兼容自适应重传等方面有一些优势。但是其解码器由于需要迭代解码,相对比较复杂,需要较大的计算能力,并且解码时由于迭代的需要会产生时延。所以对于实时性要求很高的场合,Turbo 码的直接应用会受到一定限制。此外,Turbo 码采用次优的译码算法,有一定的错误平层。Turbo 码比较适合码长较长的应用,但是码长越长,其解码的复杂度和时延也越大,这就限制了它的实用性。总的来说,Turbo 码性能优异,编码构造比较简单,但是它的解码复杂度较高。该码是3G 和 4G 商用的关键技术之一,它的研究和应用已经十分成熟。

  LDPC
   LDPC是一种具有稀疏校验矩阵的线性分组纠错码,其特点是它的奇偶校验矩阵(H 矩阵)具有低密度。由于它的 H 矩阵具有稀疏性,因此产生了较大的最小距离(dmin),同时也降低了解码的复杂性。该码的性能同样可以非常逼近香农极限。已有研究结果表明,实验中已找到的最好 LDPC 码的性能距香农理论限仅相差 0.0045dB。
  与Turbo相比,LDPC的优势
  (1)LDPC 码的解码可以采用基于稀疏矩阵的低复杂度并行迭代解码算法,运算量要低于 Turbo 码解码算法。并且由于结构并行的特点,在硬件实现上比较容易,解码时延小。因此更适合于高速率和大文件包的情况。
  (2)LDPC 码的码率可以任意构造,有更大的灵活性。
  (3)LDPC 码具有更低的错误平层,可以应用于有线通信、深空通信以及磁盘存储业等对误码率要求非常高的场合。
  目前,LDPC 码已应用于 802.11n、802.16e、DVB-S2 等通信系统中。在 3GPP R15 的讨论过程中,全球多家公司在统一的比较准则下达成共识,将 LDPC 码确定为 5G eMBB 场景数据信道的编码方案。
  Polar
  它是基于信道极化理论提出的一种线性分组码,是针对二元对称信道(BSC,Binary Symmetric Channel)的严格构造码。理论上,它在较低的解码复杂度下能够达到理想信道容量且无误码平层,而且码长越大,其优势就越明显。Polar 码是目前为止唯一能够达到香农极限的编码方法。
  Polar工作原理
  包括信道组合、信道分解和信道极化 3 部分,其中,信道组合和信道极化在编码时完成,信道分解在解码时完成。Polar 编码理论的核心是信道极化理论。其原理过程如图3所示,它的编码是通过以反复迭代的方式对信道进行线性的极化转换来实现的。
在这里插入图片描述
  Polar选择那部分趋于完全无噪声比特信道发送信源输出的信息比特,而在容量为0全噪声比特信道上发送冻结比特(已知比特,如0).通过这种编码构造方式,保证了信息集中在较好的比特信道中传输,从而降低了信息在信道传输过程中出现错误的可能性,保证了信息传输的正确性。Polar码就是以此种方式实现编码的。当编码长度 N 趋向无穷大时,Polar 码可以逼近理论信道容量.其编解码的复杂度正比于 N log N。
  Polar码的优势
  (1)相比 Turbo 码具有更高的增益,在相同误码率的前提下,实测 Polar码对信噪比的要求要比 Turbo 码低 0.5~1.2dB;
  (2)Polar 码没有误码平层,可靠性比 Turbo 码高,对于未来 5G URLLC 等应用场景(如远程医疗、自动驾驶、工业控制和无人驾驶等)能真正实现高可靠性;
   (3)Polar 码的编解码复杂度较低,可以通过采用基于 SC(SuccessiveCancellation)或 SCL(SC List)的解码方案,以较低的解码复杂度为代价,获得接近最大似然解码的性能。

  Polar码的劣势
  (1)它的最小汉明距离较小,可能在一定程度上影响解码性能。
  (2)SC 译码的时延较长,采用并行解码的方法则可以缓解此问题。
总的来说,Polar 码较好地平衡了性能和复杂性,在中短码长的情形下比较有优势。它的码率调整机制颗粒度很精细,即它的信息块长度可以按比特增减。此外,它的复杂度、吞吐量、解码时延也都具有较好的指标。

  5G NR中的信道编码(R15)
  在 5G NR 中,信道编码的操作对象主要是传输信道(TrCH)和控制信息的数据块。3GPP 在 R15 中定义的各个传输信道和控制信息所采用的信道编码详细情况见表1 和表 2。
在这里插入图片描述
  5G NR 对数据信道采用的是 Quasi-Cyclic LDPC 码,并且为了在 HARQ 协议中使用而采用了速率匹配(Rate-Compatible)的结构。控制信息部分在有效载荷(Payload)大于 11bit 时采用了 Polar 码。当有效载荷小于等于 11bit 时,信道编码采用的是 Reed-Muller 码。

  传输信道编码
  传输信道编码的过程如下图4所示。
在这里插入图片描述
  添加 CRC 是通过在数据块后增加 CRC 校验码使得接收端能够检测出接收的数据是否有错。CRC 校验码块的大小取决于传输数据块的大小,对于大于 3824bit 的传输数据块,校验码采用了 24-bit CRC;对于小于等于 3824bit的传输数据块,采用的则是 16-bit CRC。在接收端,通过判断所接收数据是否有错误,再通过 HARQ 协议决定是否要求发送端重发数据。
  码块分割是把超过一定大小的传输数据块切割成若干较小的数据块,分开进行后续的纠错编码,分割后的数据块会分别计算并添加额外的 CRC 校验码。
  信道编码采用了 Quasi-cyclic LDPC 码。
  速率匹配的目的是把经过信道编码的比特数量通过调整,适配到对应的所分配的PDSCH 或 PUSCH 资源(所承载的比特数量)上。
  速率匹配输出的码块按顺序级联后即可进行调制进而经由发射机发送。

  控制信道编码
  上下行控制信道都采用了Polar码。
  上行
  上行控制信息UCI的整个信道编码过程如下图5所示。
在这里插入图片描述
  首先,对待传输的控制信息进行码块分割和添加码块 CRC 校验码。信道纠错编码采用了 Polar 码。速率匹配则把经过信道编码的数据从速率上匹配到所分配到的物理信道资源上。码块级联则把数据块按顺序连接起来,然后通过调制发送。
  下行
  下行控制信息(DCI)的整个信道编码过程如图 6 所示。
在这里插入图片描述
  首先,对待传输的控制信息添加 CRC 校验码。随后经过加扰,加扰序列采用的是终端无线网络临时识别号(RNTI,Radio Network Temporary Identity),这样做的目的是使得接收侧(终端)可以通过 CRC 校验码和加扰序列同时得知数据的正确性以及本终端是不是该信息的正确接收方,从而减少了需要通过PDCCH 发送的比特数。信道纠错编码采用了 Polar 码。速率匹配则把经过信道编码的数据从速率上匹配到所分配到的物理信道资源上,后续数据块即可按顺序进行 QPSK 调制进而由发射机发送。
参考文档


推荐阅读
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 带添加按钮的GridView,item的删除事件
    先上图片效果;gridView无数据时显示添加按钮,有数据时,第一格显示添加按钮,后面显示数据:布局文件:addr_manage.xml<?xmlve ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 使用圣杯布局模式实现网站首页的内容布局
    本文介绍了使用圣杯布局模式实现网站首页的内容布局的方法,包括HTML部分代码和实例。同时还提供了公司新闻、最新产品、关于我们、联系我们等页面的布局示例。商品展示区包括了车里子和农家生态土鸡蛋等产品的价格信息。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 怎么在PHP项目中实现一个HTTP断点续传功能发布时间:2021-01-1916:26:06来源:亿速云阅读:96作者:Le ... [详细]
  • 本文介绍了在处理不规则数据时如何使用Python自动提取文本中的时间日期,包括使用dateutil.parser模块统一日期字符串格式和使用datefinder模块提取日期。同时,还介绍了一段使用正则表达式的代码,可以支持中文日期和一些特殊的时间识别,例如'2012年12月12日'、'3小时前'、'在2012/12/13哈哈'等。 ... [详细]
  • Python爬虫中使用正则表达式的方法和注意事项
    本文介绍了在Python爬虫中使用正则表达式的方法和注意事项。首先解释了爬虫的四个主要步骤,并强调了正则表达式在数据处理中的重要性。然后详细介绍了正则表达式的概念和用法,包括检索、替换和过滤文本的功能。同时提到了re模块是Python内置的用于处理正则表达式的模块,并给出了使用正则表达式时需要注意的特殊字符转义和原始字符串的用法。通过本文的学习,读者可以掌握在Python爬虫中使用正则表达式的技巧和方法。 ... [详细]
  • 本文介绍了Oracle存储过程的基本语法和写法示例,同时还介绍了已命名的系统异常的产生原因。 ... [详细]
  • 本文整理了315道Python基础题目及答案,帮助读者检验学习成果。文章介绍了学习Python的途径、Python与其他编程语言的对比、解释型和编译型编程语言的简述、Python解释器的种类和特点、位和字节的关系、以及至少5个PEP8规范。对于想要检验自己学习成果的读者,这些题目将是一个不错的选择。请注意,答案在视频中,本文不提供答案。 ... [详细]
author-avatar
风之伤ASH
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有