当前位置: 编码机 >> 编码机优势 >> PolarLDPC等编码方案的时延和复
Polar码、LDPC码、Turbo码和(TB)卷积码被认为是NR的候选码。
Polar解码器被分类为SC(successive-cancellation)和(CA)-SCL(CRC-aidedsuccessive-cancellationlist)。两种类型的解码器共享相同的编码器。SC解码器可视为SCL解码器的特例。SC译码器比(CA)-SCL译码器复杂度低,性能差。
SC解码器和(CA)-SCL解码器之间的区别在于,(CA)-SCL解码器在每个信息比特级别(列表解码)保持给定数量的可能性(称为路径),而SC解码器在每个级别总是保持最可能的可能性。在连续消除结束时,SCL解码器有两种选择来从多个生存路径中确定最佳路径:CRC辅助选择或基于度量的选择。前者称为CA-SCL解码器,后者称为SCL解码器。显然,CRC校验阶段对于CA-SCL解码器的复杂度或时延都不在关键路径上。为了限制SCL算法的计算复杂度,可能性的数目被限制在一个最大值L之下,L表示为列表大小。在下文中,表示如下:
N–两个码字的幂的大小
R—码率
K——信息块大小
L–列表大小
复杂性和时延
一个(CA)-SCL译码器由两个核心部分组成:连续取消和路径选择。显然,在SC解码器中没有路径选择操作,在所有阶段只保留一条路径。
连续取消下的计算复杂性:
连续取消运算的计算复杂度又可分为f和g函数的计算(加法运算)和部分和的计算(1位异或运算)。在每条路径上,其计算复杂度如下所示:
f/g函数计算:O(N*log2(N))([4])
部分和计算:O(N-1)
单路SC解码器的总计算复杂度为:O(N*log2(N))+O(N-1)
路径选择下的计算复杂性:
SCL解码器需要对每个信息位即stage的路径树进行扩展和修剪。在每个信息阶段,L父节点将生成2*L子节点。解码器必须从这2*L子节点中选择最可靠的L节点。路径选择需要根据路径度量对这些2*L节点候选进行排序。
执行排序操作有几种方法。不同的排序算法具有不同的计算复杂度和时间复杂度(以及实现成本)。在此,使用一个快速分拣机,它要求平均O(2*L*log2(2*L))计算复杂度。
SCL解码器的总计算复杂度为O(L*N*log2(N))+O(L*(N-1))+K*O(2*L*log2(2*L))。
时延分析
在SCL解码器的实际实现中,将使用N=4解码器作为解码器的基本单元,并以最大并行方式部署它们。下图中的红色虚线是每条路径上的关键路径。有L条平行的关键路径。所有这些关键线路交叉的唯一节点是路径选择(RFAU,rank-flag-address-unit)。
在硬件实现中,除了路径选择外,关键路径上的每个步骤都可以在一个周期内完成。如果在路径选择中采用bitonicsorter和bi-group-ranker,如果它们是信息位,则L=32需要4个周期。N=4解码单元的总周期约为27个周期(TN4)。如果它们都是冻结位,那么这个N=4解码器的时延是11个周期。使用这个N=4解码单元来构建任何其他的代码大小。例如,N=8解码器构建为:
一个N=8解码器由2xN=4个解码器构成,额外4个步骤(周期),即TN8=2*TN4+4。同样,N=16解码器的阶段(周期)的数量为TN16=2*TN8+4。对于给定N,阶段数为TN=(N/4)*TN4+(N/4-1)*4。注意,这是最坏的情况,在这种情况下,所有的比特都被假定为信息位。对于N=和码率R=0.5(L=32),循环数可估计为:TN=R*(N/4)*27+(1-R)*(N/4)*11+(N/4-1)*4,总时延为个周期。可以将定时关闭到1GHz,即每循环1-ns。此时延足以支持NRURLLC的自包含低时延。
降低复杂性和时延的方法
有一些方法可以有效地降低计算复杂度和时延,而不会造成显著的性能损失。其中一些可以降低复杂性和时延;有些通过增加计算复杂度来减少时延。根据不同的场景和应用目标进行权衡。
选择性路径扩展
由于SCL解码器的复杂度和时延在很大程度上取决于分类器,因此选择路径扩展方法旨在减少排序的机会。减少的基础是一个信息位的可靠性已知并且彼此不同。对于可靠性指标较高的比特,不需要将路径从L扩展到2*L,而是保持最强路径。例如,在N=和K=的情况下,近75%的信息位可以被视为“良好”位,而不会降低BLER性能,因此在它们上面没有路径扩展和选择。因此,计算复杂度和时延都降低了:
复杂度:O(L*N*log2(N))+O(L*(N-1))+(1-0.75)*K*O(2*L*log2(2*L))
冻结-头-跳过Frozen-Header-Skipping
由于信息块的起始部分的可靠性度量远低于其余部分,因此这些位置通常被分配给冻结位,并且倾向于形成全冻结位报头。解码器可以直接跳过针对整个冻结报头的任何连续取消操作和路径选择操作。例如,N=和K=,这个冻结的头占用位。因此,降低了计算复杂度和延迟。
复杂度:O(L*0.*N*log2(N))+O(L*(0.*N-1))+(1-0.75)*K*O(2*L*log2(2*L))
其中0.=(1-/N)
BitonicSorter
如果设计目标是短时延,则可以有效地实现一些快速分类器。BitonicSorter就是其中之一:O(2*L*log2(2*L)^2)计算复杂度和O(log2(2*L)^2)时延。例如,当L=32时,与快速分类器相比,BitonicSorter的计算复杂度从O()增加到O(),而时延从O()减少到O(36)。
时延减少,但计算复杂度增加到:
复杂度:O(L*0.*N*log2(N))+O(L*(0.*N-1))+(1-0.75)*K*O(2*L*log2(2*L)^2)
Bi-Grouped-Ranker
需要强调的是,SCL解码器并不关心如何对2*L个节点进行排序,而是关心如何从2*L个候选节点(排序)中提取更可靠的L路径节点。从这个意义上说,一个完整的2*L分拣机是多余的。此外,一个完整的2*L分类器不会假设从父节点到其子节点的增量度量关系。
为了进一步减少时延,华为提出了一种Bi-Grouped-Ranker。该方法首先根据路径度量将父节点分为高可靠组(Hi-Group)和低可靠组(Lo-Group)。并将两个L-children-node组分别并行排序。然后从Hi-Group中选取给定数量(T)的最低可靠节点,从Lo-Group中选取相同数量的最高可靠节点,从中选取T个最可靠的条目,并将其推送到生存集。其优点之一是根据父节点的度量隐藏第一步排序操作的时延;另一种是Hi-Group和Lo-Group排序可以并行进行。
时延降低,计算复杂度略微降低至:
复杂的:O(L*0.*N*log2(N))+O(L*(0.*N-1))+(1-0.75)*K*[O(L*log2(L)^2)+2*O(L*log2(L)^2)+O(2*T*log2(2*T)^2)]
List-ReducedDecoder
由于可靠性度量不是均匀分布在整个块上,极化的一般趋势是在开始部分具有较低的可靠性,而在进一步部分具有较高的可靠性。这种极化随着码字长度的增加而变得越来越严重。为了利用这个特性,可以在一个块的中间插入几个CRC位,这样SCL解码器在解码一个块时就可以减少列表大小(L),而不会造成很大的性能损失。这对于较大的块长度特别有用。例如,在N=和K=的情况下,如果将L=32应用于信息块的前半部分并且将L=16应用于信息块的后半部分,则计算复杂度和时延被降低。
复杂度:O((0.5*L+0.5*L/2)*0.*N*log2(N))+O((0.5*L+0.5*L/2)*(0.*N-1))+(1-0.75)*K/2*[O(L*log2(L)^2)+2*O(L*log2(L)^2)+O(2*T*log2(2*T)^2)]+(1-0.75)*K/2*[O(L/2*log2(L/2)^2)+2*O(L/2*log2(L/2)^2)+O(2*T*log2(2*T)^2)]
复杂度降低方法的摘要如图3所示。从左到右的每个方法都是增量的,这意味着该方法从其左侧的上一个方法继承。计算考虑了码长N=,信息位K=,列表=32,选择性路径扩展的75%。
方案对比
eMBBCase:Polar、Turbo和LDPC
作为一个例子,考虑turbo和LDPC的码长N=,polar的码长N=。
Small-Block:PolarvsTBCC
作为一个例子,假设K=55,R=0.76,N=(极性母码),L=32,m=6,S=64
如果TBCC-LVA解码器和极性SCL解码器具有相同的列表大小,则SCL解码器的计算复杂度小于TBCC-LVA的15%。或者换句话说,对于给定的计算复杂度,LVA-4TBCC的复杂度与SCL=32解码器的复杂度相当。然而,SCL-32译码器比LVA-4TBCC译码器有超过1.0dB的增益。