CN108306652A - 一种低复杂度极化码ca-scl译码器 - Google Patents
一种低复杂度极化码ca-scl译码器 Download PDFInfo
- Publication number
- CN108306652A CN108306652A CN201710233709.XA CN201710233709A CN108306652A CN 108306652 A CN108306652 A CN 108306652A CN 201710233709 A CN201710233709 A CN 201710233709A CN 108306652 A CN108306652 A CN 108306652A
- Authority
- CN
- China
- Prior art keywords
- module
- llr
- calcu
- metric
- paths
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000010287 polarization Effects 0.000 title claims abstract description 15
- 238000004364 calculation method Methods 0.000 claims abstract description 42
- 238000000034 method Methods 0.000 claims abstract description 27
- 238000003860 storage Methods 0.000 claims description 16
- 238000005259 measurement Methods 0.000 claims description 6
- 239000000284 extract Substances 0.000 claims description 3
- 238000004422 calculation algorithm Methods 0.000 description 26
- 230000015654 memory Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 6
- 238000011160 research Methods 0.000 description 6
- 238000012163 sequencing technique Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 241000169170 Boreogadus saida Species 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 238000012937 correction Methods 0.000 description 2
- 238000013139 quantization Methods 0.000 description 2
- 210000000712 G cell Anatomy 0.000 description 1
- 101150069124 RAN1 gene Proteins 0.000 description 1
- 101100355633 Salmo salar ran gene Proteins 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 239000010931 gold Substances 0.000 description 1
- 229910052737 gold Inorganic materials 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0057—Block codes
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明公开了一种低复杂度极化码CA‑SCL译码器,其包括控制模块、用于计算待译码数据的各个层LLR值的LLR_Calcu模块和根据LLR来对各个路径的度量值进行计算的Metric_Calcu模块,所述LLR_Calcu模块在计算过程中,对所有g节点的计算结果均进行除以2处理;所述LLR_Calcu模块和Metric_Calcu模块之间连接有用于对LLR进行修正的Correct模块,所述Correct模块根据LLR_Calcu模块计算过程来修正LLR_Calcu模块输出的LLR,并将修正后的LLR传送给Metric_Calcu模块。相比现有技术,本译码器的所有LLR共用一个RAM,因此复杂度低。
Description
技术领域
本发明涉及CA-SCL译码器领域,尤其涉及一种低复杂度极化码CA-SCL译码器。
背景技术
2008年在国际信息论ISIT会议上,Arikan首次提出了信道极化的概念,基于该理论,他给出了人类已知的第一种能够被严格证明达到信道容量的信道编码方法,并命名为极化码(Polar Code)。极化码是一种新兴的信道编码技术,具有明确而简单的编码及译码算法,目前已成为学术界和工业界的一个研究热点。
极化码最初的译码算法是Arikan提出的连续删除(Success Cancellation,SC)译码算法,但是SC译码算法容易受到错误传播(error propagation)的影响,导致极化码在中短码长下的性能不如Turbo码和LDPC码,因此学者们尝试将其他信道编码中高效的译码算法引入到极化码中,出现了极化码的置信传播(Belief Propagation,BP)译码算法、线性规划(Linear Programming,LP)译码算法、BCJR译码算法等。虽然这些译码算法可以取得一定的编码增益,但是算法的译码复杂度太大。一些针对SC译码算法的改进算法,如基于列表的连续删除(Success Cancellation List,SCL)译码算法、基于堆栈的连续删除(SuccessCancellation Stack,SCS)译码算法、混合连续删除(Success Cancellation Hybrid,SCH)译码算法、CRC辅助的SCL译码(CRC-Aided SCL,CA-SCL)算法等的提出,进一步提升了极化码在中短码长下的译码性能。通过近年来信道编码学者的不懈努力,当前极化码所能达到的纠错性能超过目前广泛使用的Turbo码和LDPC码。
由于极化码可达信道容量的优越性能、编译码复杂度低,所以成为了5G信道编码的主要候选技术。2016年11月18日,在美国内华达州里诺举办的3GPP RAN1#87次会议上,经过与会公司代表多轮技术讨论,国际移动通信标准化组织3GPP最终确定了5G eMBB场景的信道编码技术方案,其中:极化码作为控制信道的编码方案;LDPC码作为数据信道的编码方案。极化码成为5G信道编码技术的标准之一,必将开启极化码应用与理论研究的新篇章。
目前,极化码的大部分研究成果集中在理论研究和应用仿真方面,而关于极化码硬件实现方面的研究则相对较少。CA-SCL译码算法在列表长度L较大时可以获得超过Turbo码和LDPC码的译码性能,但是当列表长度L较大时,CA-SCL译码算法的复杂度和译码时延也会随之线性增加,相应的CA-SCL译码器的硬件实现也会变得复杂。因此,研究高性能、低复杂度的CA-SCL译码器具有重大的理论意义与应用价值。
在译码器中,首先需要计算个层的LLR,在计算LLR的过程中,由于g节点的计算由加(减)法构成,因此就存在溢出的可能,随着计算层数的增加,LLR的位宽会变得越来越大。进而导致不同层的LLR不能共存于同一RAM中,使得译码器结构变得复杂。
发明内容
为了克服现有技术的不足,本发明的目的之一在于提供能够使LLR使得所有的LLR共用一个RAM,从而降低结构复杂度的译码器。
本发明的目的之一采用如下技术方案实现:
一种低复杂度极化码CA-SCL译码器,包括:控制模块、用于计算待译码数据的各个层LLR值的LLR_Calcu模块和根据LLR来对各个路径的度量值进行计算的Metric_Calcu模块,所述LLR_Calcu模块在计算过程中,对所有g节点的计算结果均进行除以2处理;所述LLR_Calcu模块和Metric_Calcu模块之间连接有用于对LLR进行修正的Correct模块,所述Correct模块根据LLR_Calcu模块计算过程中IDX为1的层的数量来修正LLR_Calcu模块输出的LLR,并将修正后的LLR传送给Metric_Calcu模块。
进一步的,还包括用于存储LLR值的地址索引的LLR_Index RAM模块和用于存储LLR的LLR_MID RAM模块,所述LLR地址索引模块记录不同i条路径的不同n层的LLR在RAM中的存储位置,所述LLR_Calcu模块根据LLR_MID RAM模块的索引从LLR_MID RAM模块提取LLR。
进一步的,还包括根据Metric_Calcu模块计算出的度量值对各个路径进行排序的Metric_Sort模块,LLR地址索引模块根据Metric_Sort模块的排序结果更新记录每条路径的LLR所在RAM地址的索引表
进一步的,所述Metric_Calcu模块根据计算出的度量值对各个路径进行预排序,并将预排序结果传送至Metric_Sort模块进行排序。
进一步的,所述预排序的方法是:设有L条路径,每一路径对应有两个子路径,则路径i分支出来的两个子路径中度量值大的放在第i个位置,度量值小的放在第i+L个位置。
进一步的,还包括用于存储部分和数据的u_feedback RAM模块、用于存储部分和数据的存储路径的U_mem RAM模块、对u_feedback RAM模块和U_mem RAM模块的数据和路径进行更新和复制的U_Copy模块、用于对路径进行恢复的Path_recover模块,所述译码器译码结束后,所述Path_recover模块通过U_Copy模块从u_feedback RAM模块和U_mem RAM模块中获取数据以还原路径。
相比现有技术,本发明的有益效果在于:
采用对g节点的计算结果均执行除以2处理,在顶层LLR与度量值计算中间添加一个Correct模块来还原真正的LLR值,消除计算结果与实际输入数据的不同(计算得到的顶层LLR值与原值相差2n倍,n为经过的g结点的层数,即IDX中1的个数),这样就能将所有LLR值都控制在8位精度,使得所有的LLR共用一个RAM,进而降低了译码器的复杂度。
附图说明
图1为本发明所提供的CA-SCL译码器总体架构示意图
图2为本发明所提供的CA-SCL译码器的译码处理过程示意图
图3为本发明所提供的LLR存储和索引架构示意图
图4为本发明所提供的量化译码方案的性能仿真图
图5为本发明所提供的n=8的u_feedback计算架构示意图
图6为本发明所提供的u_feedback更新步骤示意图
图7为本发明所提供的LLR_Calcu模块示意图
图8为本发明所提供的Metric_Calcu模块示意图
图9为本发明所提供的路径度量值排序算法示意图
图10为本发明所提供的Metric_Sort模块示意图
图11为本发明所提供的LLR地址索引模块示意图
图12为本发明所提供的U_Copy模块的示意图
图13为本发明所提供的Path_recover流程图
图14为本发明所提供的CRC串行逆序译码模块示意图
图15为本发明所提供的Control Unit的状态机示意图
具体实施方式
下面,结合附图以及具体实施方式,对本发明做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例。本实施例中涉及的常用科技术语包括:(1)CA-SCL译码算法:CRC辅助的SCL译码算法;(2)Control Unit:控制模块;(3)LLR_Calcu模块:LLR值计算模块;(4)Correct模块:LLR值修正模块;(5)Metric_Calcu模块:路径度量值计算模块;(6)Metric_Sort模块:路径度量值排序模块;(7)U_Copy模块:路径更新和复制模块;(8)LUMX模块:多路选择器模块;(9)Path_recover模块:路径恢复模块;(10)u_feedback RAM:部分和存储器;(11)U_mem RAM:路径存储器;(12)ID:地址;(13)Input RAM:输入存储器;(14)LLR_MID RAM:内部LLR值存储器;(15)Bit_location ROM:码字位置存储器;(16)data_compare:数据比较器;(17)LLR_IndexRAM模块:LLR地址索引模块。
本发明以码长N=1024,码率R=1/2,列表长度L=32的极化码为实施例对本发明所提供的一种低复杂度极化码CA-SCL译码算法的硬件实现方法进行详细的说明。
如图1所示,本发明提供的低复杂度极化码CA-SCL译码器主要包括Control Unit,LLR_Calcu模块,Correct模块,Metric_Calcu模块,Metric_Sort模块,U_Copy模块,LLR地址索引模块,LUMX模块,Path_recover模块,CRC校验模块,ROM和RAM模块。
如图2所示,本发明所提供的CA-SCL译码器的译码处理过程为:来自信道的数据先被缓存在Input RAM中,候选路径存储在U_mem RAM中。LLR_Calcu从Input RAM里面取出底层LLR数据计算出下一层LLR值,将这些中间层的LLR值存储在LLR_MID RAM中,要计算下一层LLR时才从LLR_MID RAM中取出这些中间值,重复这一过程直到计算出顶层LLR。当计算得到顶层LLR值后送入Metric_Calcu模块,由Metric_Calcu模块计算出L条路径两条子路径的路径度量值。得到2L条路径的度量值之后送入Metric_Sort模块,由Metric_Sort模块对度量值进行排序,得到排序结果和路径索引结果,并将结果返回给Metric_Calcu和输出。U_Copy模块根据排序的结果更新u_feedback RAM和U_mem RAM。同时,LLR地址索引模块则根据排序结果更新记录每条路径LLR所在RAM地址的索引表(索引表中的数据即LLR_MID RAM的地址)。当整个译码过程结束后,Path_recover根据排序结果从U_mem RAM中还原出L条路径,而CRC校验模块则从L条候选路径中选择出通过CRC校验的路径并输出最终的译码结果。
译码器接收到添加噪声后的数据,将数据转换成底层LLR,进入译码的状态循环。首先计算的是各层的LLR。LLR的计算共分为n层(n=log2N),每层都有数量不等的计算单元,第i层的计算单元个数为2n-i个。每个计算单元包含了f单元和g单元,IDX是一个用来控制第n层的计算单元的种类的寄存器,当IDX(i)=0,代表i层是f计算单元,当IDX(i)=1,代表i层是g计算单元。f单元和g单元的计算公式如下:
f(L1,L2)=sign(L1·L2)·min(|L1|,|L2|)
g(L1,L2,u)=(-1)uL1+L2
初始状态下,计算从底层(n=0的层)开始,此时,对于所有的层号i,IDX(i)均为0。而对于一般状态下,计算从前一次计算时的IDX从顶层下来第一个IDX(i)=0的层开始。假设i为令IDX(i)=0的最大值,则令IDX(i)=1,IDX(i+1)=0,IDX(i+2)=0,···,IDX(n)=0。如:当IDX=1110101011(最左端为i=10),则下一次的LLR计算将从第一个为0的层也就是第7层开始。令IDX(7)=1,即用g单元计算出第7层的LLR值,然后再从第8层到第10层依次用f单元计算出各层的LLR值,最终得到顶层的LLR值。
LLR的中间值需要保存,我们采用的存储架构如图3所示,定义一个长度为N-1的数组,按照从底层到顶层的顺序存放各层的LLR值。其中,第i层第j个计算单元的地址为N-2(n -i+1)+j。
在译码过程中由于需要同时保存多条路径,在L=32的情况下,最多需要32个用来存储LLR值的存储器。由于不同路径之间的一些LLR值是可以共用的,因此,在存储架构上添加一个LLR值的索引表,用来表示第i条路径第n层的LLR值在RAM中的存储位置。在计算各层LLR值的过程中,采用第i条路径的结果存储在第i块RAM中,同时将LLR索引表里面相应层的索引改到第i条路径即可。通过这种处理方式,简化了LLR值的计算过程,并缩减了后面复制过程所需要的时间。
在计算LLR的过程中,由于g节点的计算由加(减)法构成,因此就存在溢出的可能。对此,采用对g节点计算结果均除以2的方式,将LLR值的位宽控制在8位的范围内,在取整方式上采用往绝对值较大的方向取整,这样做的目的是为了防止符号位的丢失。
gold(L1,L2,u)=(-1)uL1+L2
量化译码方案的性能仿真图如图4所示,结果表明,该方法可以成功地将中间LLR的值控制在8位的精度,并且性能并没有多少损失。
当计算单元为g单元时,需要用到u_feedback的信息。u_feedback的存储结构与LLR的存储结构类似且每个g单元所需要的u_feedback信息就存储在u_feedback RAM的相同的地址位置。同样的,u_feedback也采用了同样的索引表用以减少后面的复制。
在u_feedback的计算结构中,数据的流动方向与LLR的计算结构是相反的。每得到一个新的码字,将从顶层到底层更新u_feedback的信息。计算原则如下:
(1)新生成的码字先存入顶层,即图5中的u单元。
(2)判断当前层的IDX值,如果IDX值为0,将当前层的u_feedback数据存入下一层的f单元,如果IDX值为1,则将当前层的u_feedback数据存入下一层的g单元,并取出f中的u_feedback数据与当前层的u_feedback数据相加后继续存入f单元。然后以规则(2)继续计算下一层的u_feedback。需要说明的是,这里的f与g单元仅有存储功能,并没有计算功能。
同样的,由于不同路径的u_feedback存在很多共用的块,而且有一些路径的u_feedback还来不及用就已被删除了,所以利用索引表实现lazy-copy可以有效的减少复制的次数,从而减少计算的时间。实现u_feedback的lazy-copy可以分为三步,根据排序的结果得到被删除的和需要复制的路径,然后先对这些路径占用的存储单元进行释放处理,最后再对前32条路径进行u_feedback的计算。
统计复制和删除的路径可以同时进行,分别对前32条和后32条路径进行统计,一旦出现同一路径的两条子路径都在前32条或者后32条,即标记该路径被复制或者删除。在确定被删除和复制的路径后,首先释放被删除路径占用的存储。然后将需要复制的路径用到的存储占用数加1。最后,开始更新前32条路径,首先将新生成的码字存入顶层,因为顶层永远不会有路径占用,所以直接把第i块存储空间分配给第i条路径,然后根据u_feedback的计算结构更新u_feedback的值。第一个IDX值为0的层前面的层在后面的计算中都不会被用到,而计算第一个IDX值为0的层的下一层时,根据u_feedback的计算特点,可以肯定该层不会有路径占用,因此也直接采用将第i块存储空间分配给第i条路径。
图7所示为LLR_Calcu模块,由控制单元和计算单元组成。llr_control负责数据的地址控制和读取正确的索引信息,并根据IDX信号控制处理单元的计算状态。LMUXL为32个32选1的选择器并联形成的排序器。LLR值输入LMUXL模块后会根据索引值进行重新排序,然后将排序后的结果输入到处理单元中。处理单元计算出下一层的LLR后,输出到LLR_MIDRAM中进行存储。
图8所示为Metric_Calcu模块,主要功能是计算当前候选路径的路径度量值,并对两条候选路径进行初步排序,按度量值的大小顺序输出路径度量值及其对应的候选比特。路径度量值(Path Metric,PM)定义为该条路径所对应的译码序列的概率值,在计算时一般采用其对数形式:
其中,l∈{0,1,…,L-1},i∈{0,1,…,N-1}。
路径度量值可以通过如下所示的迭代公式计算得到:
图8中的Bit_location ROM用于存放信息比特和固定比特的位置信息,由一个位宽为1bit,深度为1024的ROM组成。Sel_ctl模块用于生成控制信号,输入为Last_LLR的符号位和当前比特的位置信息。ABS模块用于对LLR值取绝对值,由于有可能会发生溢出所以用溢出标志位作为控制信号,一旦发生溢出则将计算结果设为最大值12’hFFF。每次计算出候选比特为0和1时所对应的路径度量值后,用数据选择器输出较大值和较小值以及它们所对应的候选比特。
Metric_Sort模块负责对32条路径经过路径扩展得到的64条子路径的度量值进行排序,得到排序结果和路径索引。图9所示为64个数据排序运算框图。Phase_1中P1_Data1_1就相当于中的Path11,P1_Data1_2则相当于Path12,以此类推。根据度量值的数值关系,在Phase_1阶段将64个度量值分成8段,每段8个数据,并行对每段的8个数据进行排序,由数据关系可知排好序后第一段的前4个数据即为64个数据中最大的4个数据。在Phase_2阶段,将Phase_1中第一段的后4位数据与Phase_1第二段的前4位数据拼成新的一段,以此类推,对这8个数据排序又可得到4位最大的数据,到此64个数据的前8位最大数据已得到,一直迭代直到64个数据完全排好序。
按照图9的并行冒泡算法提出如图10的度量值排序结构。利用两个8bits 64数据的存储器A、B,两个位宽为6bits的64数据存储器C、D和一个8数据降序电路组成。其中,MUX1为8bits 128数据输入8bits 64数据输出的选择器,MUX2为8bits 64数据输入8bits 128数据输出的选择器。在开始排序时,将数据导入到存储器A中存储,存储器C中存储的是0~63顺序排列的索引值。
在Phase_1阶段,将存储器A中的数据通过MUX1导入到data_compare中,并通过MUX2将数据导入到存储器B对应位置处存储。与此同时,通过逻辑复制以同样的地址映射方式将存储器C中的数据复制到存储器D对应的位置中。此时,存储器B中最高处的4个数即为最大的4个数,D中最上面的4个数就是最大的4个数所对应的索引值。
在Phase_2阶段,将存储器B中的数据通过MUX1输出至data_compare中,并通过MUX2将数据导入到存储器A中对应位置,排序得到第5~8位最大数据。以此类推,最终将在Phase_15阶段完成整个度量值的排序过程,并在存储器B中获得64个降序排列的数据,在存储器D中得到对应的索引地址。
图11为LLR地址索引模块结构图,包括LLR索引表RAM和LLR索引重排模块(LMUXL模块)。Metric_sort模块将64条路径按照路径度量值的大小排序后输出前32条路径的ID给本模块,本模块根据这些路径ID对LLR索引表RAM进行修改,主要包括复制、替换等操作。在计算LLR时译码器会从本模块的LLR索引表RAM中读取数据作为LLR的地址。LLR索引表RAM是一个位宽为5*32,深度为10的双口RAM。其中,5代表LLR地址的位宽,32代表路径数,10代表LLR分为10层。LLR索引表RAM的读写地址由外部的地址生成器统一管理。
U_Copy模块根据Metric_Sort模块的输出对复制删除的路径进行统计,然后对u_feedback和U_mem模块进行更新。U_Copy模块的主要功能为控制,采用状态机的方式实现,可以分为Populate,Umem_update和ufeedback_update三个模块。Populate负责统计被删除和需要复制的路径。Umem_update实现对路径的更新,而ufeedback_update实现对u_feedback信息的更新。U_Copy模块的状态机如图12所示。
Path_recover模块将32条路径从排序结果中提取出来,这样使得在译码过程中不再需要对路径进行保存和复制。Path_recover流程图如图13所示。初始状态下,设置索引号为0~31的32条空路径,每条路径按照自己的索引,从最后一位比特的位置读取排序结果,提取相应的码字,然后再根据排序的结果,更新下一次要读的索引,然后重复上述步骤一直读到第一位信息比特。
由于译码算法的原因译出来的信息比特为逆序的排序,逆序的CRC校验码在逆序的信息比特序列前面,且序列为串行输出,故CRC译码模块采用了串行逆序译码的结构,与并行译码相比节省了资源占用且解码所需时间不会受到影响。CRC串行译码模块如图14所示,使用了24个寄存器,用于存储CRC校验码。译码开始后,前24个时钟用于输入CRC校验码,并按顺序将24位CRC校验码存储在24个寄存器中,然后从第25个时钟开始就按照图14所示的数据流向计算,加法器是根据生成多项式生成的。
图15所示是Control Unit的状态机。Control Unit的大部分功能均与控制、决策有关,是整个译码系统的控制单元,包括控制数据流的输入和LLR计算状态的控制。控制模块的功能主要包括以下几个方面:(1)产生IDX信号,控制LLR的计算状态;(2)控制LLR的使能,产生LLR计算过程中需要的读写地址;(3)接收其它模块的状态信号,如llr_done,sort_done等;(4)输出IDX信号的第一个值为0的层的索引。
通过验证,本发明所提供的一种低复杂度极化码CA-SCL译码算法的硬件实现方法在300MHz的时钟频率下,可以获得3.25Mbps的吞吐率,同时,平均译码时延仅为0.157ms。CA-SCL译码器最终综合资源(5SGXEA7N2F45C2芯片)使用情况如下表所示。
主要综合资源 | 消耗资源数 |
ALUTs | 12,052 |
Registers | 10,044 |
Block memory | 337,216 |
通过CA-SCL译码器的硬件资源使用情况可以看出,本发明所提供的CA-SCL译码算法的硬件实现方法可以有效的降低极化码CA-SCL译码器硬件实现的复杂度,节省存储空间,提高译码效率,为极化码在实际数字通信系统的应用提供了很大的便利。
上述实施方式仅为本发明的优选实施方式,不能以此来限定本发明保护的范围,本领域的技术人员在本发明的基础上所做的任何非实质性的变化及替换均属于本发明所要求保护的范围。
Claims (6)
1.一种低复杂度极化码CA-SCL译码器,其特征在于,包括:控制模块、用于计算待译码数据的各个层LLR值的LLR_Calcu模块和根据LLR来对各个路径的度量值进行计算的Metric_Calcu模块,所述LLR_Calcu模块在计算过程中,对所有g节点的计算结果均进行除以2处理;所述LLR_Calcu模块和Metric_Calcu模块之间连接有用于对LLR进行修正的Correct模块,所述Correct模块根据LLR_Calcu模块计算过程中IDX为1的层的数量来修正LLR_Calcu模块输出的LLR,并将修正后的LLR传送给Metric_Calcu模块。
2.如权利要求1所述的一种低复杂度极化码CA-SCL译码器,其特征在于,还包括用于存储LLR值的地址索引的LLR_Index RAM模块和用于存储LLR的LLR_MID RAM模块,所述LLR地址索引模块记录不同i条路径的不同n层的LLR在RAM中的存储位置,所述LLR_Calcu模块根据LLR_MID RAM模块的索引从LLR_MID RAM模块提取LLR。
3.如权利要求2所述的一种低复杂度极化码CA-SCL译码器,其特征在于,还包括根据Metric_Calcu模块计算出的度量值对各个路径进行排序的Metric_Sort模块,LLR地址索引模块根据Metric_Sort模块的排序结果更新记录每条路径的LLR所在RAM地址的索引表。
4.如权利要求1所述的一种低复杂度极化码CA-SCL译码器,其特征在于,所述Metric_Calcu模块根据计算出的度量值对各个路径进行预排序,并将预排序结果传送至Metric_Sort模块进行排序。
5.如权利要求4所述的一种低复杂度极化码CA-SCL译码器,其特征在于,所述预排序的方法是:设有L条路径,每一路径对应有两个子路径,则路径i分支出来的两个子路径中度量值大的放在第i个位置,度量值小的放在第i+L个位置。
6.如权利要求1所述的一种低复杂度极化码CA-SCL译码器,其特征在于,还包括用于存储部分和数据的u_feedback RAM模块、用于存储部分和数据的存储路径的U_mem RAM模块、对u_feedback RAM模块和U_mem RAM模块的数据和路径进行更新和复制的U_Copy模块、用于对路径进行恢复的Path_recover模块,所述译码器译码结束后,所述Path_recover模块通过U_Copy模块从u_feedback RAM模块和U_mem RAM模块中获取数据以还原路径。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710233709.XA CN108306652A (zh) | 2017-04-11 | 2017-04-11 | 一种低复杂度极化码ca-scl译码器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710233709.XA CN108306652A (zh) | 2017-04-11 | 2017-04-11 | 一种低复杂度极化码ca-scl译码器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108306652A true CN108306652A (zh) | 2018-07-20 |
Family
ID=62872227
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710233709.XA Pending CN108306652A (zh) | 2017-04-11 | 2017-04-11 | 一种低复杂度极化码ca-scl译码器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108306652A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108988993A (zh) * | 2018-08-31 | 2018-12-11 | 北京邮电大学 | 一种降低极化码盲检测虚警率的方法、装置及移动终端 |
CN109872066A (zh) * | 2019-02-19 | 2019-06-11 | 北京天诚同创电气有限公司 | 污水处理厂的系统复杂性度量方法和装置 |
CN110166058A (zh) * | 2019-05-22 | 2019-08-23 | 北京理工大学 | 极化码ca-scl译码器、方法及噪声功率获取方法 |
CN110601700A (zh) * | 2019-08-09 | 2019-12-20 | 中国地质大学(武汉) | 一种适用于极化码串行抵消列表译码算法的硬件排序器 |
CN112434483A (zh) * | 2020-12-18 | 2021-03-02 | 国微集团(深圳)有限公司 | 数据传输系统的生成方法和数据传输系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2802080A1 (en) * | 2012-01-20 | 2014-11-12 | Huawei Technologies Co., Ltd. | Decoding method and decoding apparatus for polar code concatenated with cyclic redundancy check |
CN104918063A (zh) * | 2015-06-01 | 2015-09-16 | 中国农业大学 | 一种基于Polar码技术的可抗差错图像传输方法 |
CN105227189A (zh) * | 2015-09-24 | 2016-01-06 | 电子科技大学 | 分段crc辅助的极化码编译码方法 |
CN106301387A (zh) * | 2016-08-15 | 2017-01-04 | 东南大学 | 一种分布式排序方法以及采用该方法构成crc辅助极化码连续消除列表译码器的方法 |
-
2017
- 2017-04-11 CN CN201710233709.XA patent/CN108306652A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2802080A1 (en) * | 2012-01-20 | 2014-11-12 | Huawei Technologies Co., Ltd. | Decoding method and decoding apparatus for polar code concatenated with cyclic redundancy check |
CN104918063A (zh) * | 2015-06-01 | 2015-09-16 | 中国农业大学 | 一种基于Polar码技术的可抗差错图像传输方法 |
CN105227189A (zh) * | 2015-09-24 | 2016-01-06 | 电子科技大学 | 分段crc辅助的极化码编译码方法 |
CN106301387A (zh) * | 2016-08-15 | 2017-01-04 | 东南大学 | 一种分布式排序方法以及采用该方法构成crc辅助极化码连续消除列表译码器的方法 |
Non-Patent Citations (2)
Title |
---|
ANDREAS BURG等: "LLR-Based Successive Cancellation List Decoding of Polar Codes", 《IEEE TRANSACTIONS ON SIGNAL PROCESSING》 * |
WARREN J. GROSS等: "Hardware Architecture for List Successive Cancellation Decoding of Polar Codes", 《IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108988993A (zh) * | 2018-08-31 | 2018-12-11 | 北京邮电大学 | 一种降低极化码盲检测虚警率的方法、装置及移动终端 |
CN108988993B (zh) * | 2018-08-31 | 2020-03-20 | 北京邮电大学 | 一种降低极化码盲检测虚警率的方法、装置及移动终端 |
CN109872066A (zh) * | 2019-02-19 | 2019-06-11 | 北京天诚同创电气有限公司 | 污水处理厂的系统复杂性度量方法和装置 |
CN109872066B (zh) * | 2019-02-19 | 2024-02-02 | 北京天诚同创电气有限公司 | 污水处理厂的系统复杂性度量方法和装置 |
CN110166058A (zh) * | 2019-05-22 | 2019-08-23 | 北京理工大学 | 极化码ca-scl译码器、方法及噪声功率获取方法 |
CN110166058B (zh) * | 2019-05-22 | 2020-04-14 | 北京理工大学 | 极化码ca-scl译码器、方法及噪声功率获取方法 |
CN110601700A (zh) * | 2019-08-09 | 2019-12-20 | 中国地质大学(武汉) | 一种适用于极化码串行抵消列表译码算法的硬件排序器 |
CN110601700B (zh) * | 2019-08-09 | 2021-05-04 | 中国地质大学(武汉) | 一种适用于极化码串行抵消列表译码算法的硬件排序器 |
CN112434483A (zh) * | 2020-12-18 | 2021-03-02 | 国微集团(深圳)有限公司 | 数据传输系统的生成方法和数据传输系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108306652A (zh) | 一种低复杂度极化码ca-scl译码器 | |
CN107040262B (zh) | 一种计算polar码SCL+CRC译码的List预测值的方法 | |
CN110278002B (zh) | 基于比特翻转的极化码置信传播列表译码方法 | |
WO2017054164A1 (zh) | 极化码的编译码方法及其装置 | |
US6526538B1 (en) | Turbo product code decoder | |
US7631241B2 (en) | Apparatus and method for decoding low density parity check codes | |
US10425107B2 (en) | Partial sum computation for polar code decoding | |
KR20130029080A (ko) | 소거 없는 플래시 메모리의 다중 프로그래밍 | |
CN107124187B (zh) | 一种应用于闪存的基于等差校验矩阵的ldpc码译码器 | |
WO2020108586A1 (zh) | 一种极化码译码方法及装置、多级译码器、存储介质 | |
CN110661533B (zh) | 优化译码器存储极化码译码性能的方法 | |
CN111786683B (zh) | 一种低复杂度的极化码多码块译码器 | |
CN111224680A (zh) | 一种低延时高可靠的极化码快速译码方法和译码器 | |
KR102355082B1 (ko) | 채널 편파 코드의 연속 제거 리스트 디코딩을 위한 효율적인 생존 메모리 아키텍처 | |
CN111294061B (zh) | 一种原始比特错误率感知的译码软判决延迟降低方法 | |
JP2022124682A (ja) | メモリシステム | |
CN106856406B (zh) | 一种译码方法中校验节点的更新方法及译码器 | |
CN108599776B (zh) | 一种改进的列表串行抵消极化码译码方法 | |
CN111130567A (zh) | 添加噪声扰动和比特翻转的极化码置信传播列表译码方法 | |
CN108092744B (zh) | 极化码码重分布的计算方法 | |
CN111384970A (zh) | 一种译码方法、装置及通信设备 | |
CN101478312A (zh) | 一种ldpc译码器及其实现译码的方法 | |
CN111541457B (zh) | 一种低时延低复杂度极化码串行抵消列表译码方法 | |
CN111431543B (zh) | 可变码长可变码率qc-ldpc译码方法及装置 | |
US11323139B2 (en) | Apparatuses and methods for mapping frozen sets between polar codes and product codes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
AD01 | Patent right deemed abandoned | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20210319 |