CN111786683B - 一种低复杂度的极化码多码块译码器 - Google Patents

一种低复杂度的极化码多码块译码器 Download PDF

Info

Publication number
CN111786683B
CN111786683B CN202010471715.0A CN202010471715A CN111786683B CN 111786683 B CN111786683 B CN 111786683B CN 202010471715 A CN202010471715 A CN 202010471715A CN 111786683 B CN111786683 B CN 111786683B
Authority
CN
China
Prior art keywords
path
unit
module
paths
sorting
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.)
Active
Application number
CN202010471715.0A
Other languages
English (en)
Other versions
CN111786683A (zh
Inventor
王闻今
房天昊
侯宏卫
吴体昊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Southeast University
Original Assignee
Southeast University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Southeast University filed Critical Southeast University
Priority to CN202010471715.0A priority Critical patent/CN111786683B/zh
Publication of CN111786683A publication Critical patent/CN111786683A/zh
Application granted granted Critical
Publication of CN111786683B publication Critical patent/CN111786683B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes

Landscapes

  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)

Abstract

本发明公开了一种低复杂度的极化码多码块译码器,主要包括:用于获取基础信息查找表模块,用于更新对数似然比LLR的LLR计算模块,用于***子路径,并得到保留路径的路径修剪模块,用于更新部分和至相应层的部分和更新模块和进行循环冗余校验码CRC校验并选择输出结果的CRC校验模块;本发明基于FSL算法并结合5G中的分布式CRC特性实现了极化码译码器硬件结构,并且译码器实现过程中采用对路径度量值进行不完全排序、多码块顺序译码、路径索引存储、并行计算校验和等手段,有效降低了译码时延,提高了吞吐量;能够适用于实际的5G***中,具有较强的工程实用性。

Description

一种低复杂度的极化码多码块译码器
技术领域
本发明属于信道译码领域,尤其涉及一种基于翻转校正子列表(FSL,FlippedSyndrome List)译码算法的极化码低复杂度译码器。
背景技术
极化码由Arikan教授率先提出。其充分利用了信道极化现象,利用可靠信道传输信息比特,其他信道传输冻结比特,从而成为唯一一种被严格证明在二进制离散无记忆信道中可以达到香农极限的信道编码方式,因此吸引了大量的关注和研究,成为了学术界和工业界的研究热点。2016年11月18日,在美国内华达州里诺召开的3GPP RAN1#87次会议,确定了极化码作为5G增强移动宽带(eMBB,Enhanced Mobile Broadband)场景下控制信道编码方案。
Arikan在论文中首先提出了串行消除(SC,Successive Cancellation)译码算法,该译码算法具有较低的复杂度,但是因为前后信息位的关系比较大,会导致错误传播,使得误码率性能下降。针对这一问题,提出了串行消除列表(SCL,Successive CancellationList)译码算法和CRC辅助的SCL(CA-SCL,Cyclic Redundancy Check-Aided SCL)。SCL算法在计算过程中保留L条可能的路径,并计算其路径度量值(PM,Path Metrics),最终选择PM值最小的路径作为输出路径。CA-SCL算法通过添加CRC校验,可以在额外开销不大的情况下有效降低误码率。虽然两种方法都降低了误码率,但是提高了复杂度。注意到在译码二叉树中,存在一些特殊节点。对这些特殊节点进行处理,可以降低译码复杂度。根据这一思路,提出了简化串行消除列表(SSCL,Simplified Successive Cancellation List)算法、快速简化串行消除列表(Fast-SSCL,Fast Simplified Successive Cancellation List)算法等新的算法,但这些算法对译码树中的特殊节点优化不完全,根据这些算法设计的译码器具有译码时延高、吞吐量低等缺点。
发明内容
发明目的:本发明的目的是提出一种基于FSL算法的、低延时、高吞吐量的、适用于5G***的极化码译码结构。
技术方案:为实现上述发明目的,本发明采用的技术方案为:
一种低复杂度的极化码多码块译码器,包括:查找表模块、对数似然比计算模块、路径修剪模块、部分和更新模块以及循环冗余校验码校验模块;
所述查找表模块,用于给其他四个模块提供译码过程中需要用到的已知信息;
所述对数似然比计算模块,用于根据部分和更新模块输入的路径索引和存储器中的对数似然比更新节点对数似然比;
所述路径修剪模块,用于根据节点对数似然比绝对值的排序索引和硬判决结果计算各条子路径的部分和,然后和硬判决结果以及节点对数似然比绝对值计算路径度量值,最后对路径度量值采用流水线排序,排序算法采用结合双调排序和奇偶排序的混合排序算法,在最后一阶排序中采用不完全排序,并产生硬判决层新的路径索引,同时送入部分和更新模块和循环冗余校验码校验模块;
所述部分和更新模块,用于根据硬判决层路径索引更新译码树各层路径索引,然后更新部分和,并将新的路径索引送入对数似然比计算模块;
所述循环冗余校验码校验模块,用于根据路径索引和校验矩阵对每个节点并行计算校验和并选择路径输出解交织后的信息。
进一步地,所述查找表模块包括一个存储节点信息位分布情况的存储器和一个存储译码树开始更新层数的存储器;在译码开始后,查找表模块根据当前译码节点,将相应节点的数据从存储器中取出送入其余四个模块进行译码。
进一步地,所述对数似然比计算模块包括对数似然比存储单元、路径重排单元和对数似然比计算单元;所述存储单元用于存储所有路径的对数似然比;所述路径重排单元用于对存储器中取出的多条路径的对数似然比进行重新排列;所述对数似然比计算单元用于更新对数似然比,并写回存储单元。
进一步地,所述路径修剪模块包括硬判决单元、绝对值计算与排序单元、路径数更新单元、部分和计算单元、路径度量值计算单元和路径度量值排序单元;所述硬判决单元用于对输入的对数似然比进行硬判决;所述绝对值计算与排序单元用于对输入的对数似然比求绝对值,然后对绝对值升序排列;所述路径数更新单元用于计算路径***后需要保留的路径数量;所述部分和计算单元用于计算子路径的部分和,每次同时计算4个子路径的部分和;所述路径度量值计算单元用于计算子路径的路径度量值;所述路径度量值排序单元用于进行流水线排序,每次对部分路径度量值进行排序,直到最后只需选出路径度量值最小的L条子路径,而无需对这L条子路径进行排序,排序时根据路径度量值的排序索引对部分和以及原始路径索引进行排序;其中L为保留的最大路径数
进一步地,所述部分和更新模块包括控制单元、路径索引更新单元、部分和存储单元以及部分和更新单元;所述控制单元用于产生不同存储器的读写使能信号以及读写地址;所述路径索引更新单元用于根据硬判决层的路径索引更新译码树各层的路径索引;所述部分和存储单元用于存储所有路径的部分和;所述部分和更新单元用于将存储单元中的部分和读出,根据路径索引进行重新排列,得到结果后写回部分和存储单元中。
进一步地,所述循环冗余校验码校验模块包括校验矩阵生成单元,数据存储单元,校验和计算单元和路径选择输出单元;所述校验矩阵生成单元用于生成校验矩阵并根据交织图样对其进行行交换;所述数据存储单元用于存储、读取包含信息位的节点的路径索引以及信息比特的比特估计值;所述校验和计算单元用于根据校验矩阵计算校验和;所述路径选择输出单元用于根据校验和以及存储器中的路径索引,选择相应路径的比特估计值,解交织后输出。
进一步地,在除查找表模块外的四个模块中存储了路径索引,避免对大量数据的复制,首先路径修剪模块产生译码树硬判决层的路径索引,然后送入循环冗余校验码校验模块计算校验和,同时将路径修剪模块产生的路径索引送入部分和更新模块计算各层路径索引,最后部分和更新模块将相应层的路径索引送入对数似然比计算模块。
进一步地,在除查找表模块外的每一个模块中采用多码块译码,对每一个码块顺序进行计算,先计算第一个码块,再计算第二个码块,直至最后一个码块计算完成后,将所***块的数据送入下一个模块计算。
有益效果:与现有技术相比,本发明具有如下优点:
1、本发明使用了FSL算法,该译码算法利用校正子和差错图样,对所有节点进行了优化,降低了译码时延。同时,在查找表中预先存储校正子和差错图样的方法也有利于硬件结构的实现。
2、本发明采对路径度量值进行不完全排序,即只排序得到L个最小的路径度量值,而不去进一步对这L个路径度量值进行排序,降低了排序的时延。另一方面,采用了多码块顺序译码,每个模块从接收到开始信号到真正开始计算会有一定的延时,那么对于每个模块,多个码块只需等待一次从接收开始信号到开始计算的时延即可,从而降低了译码时延。
3、本发明的除查找表模块外的其余四个模块均存储了路径索引,在计算前利用该索引进行路径重排,从而避免了路径***时复杂的复制操作。
4、本发明结合5G标准提出的分布式CRC,设计了相应的校验模块,能够有效地计算校验和并输出结果,具有较强的工程实用意义。另一方面,在计算校验和时采用校验矩阵计算,可以对一个节点的信息比特并行计算校验和,降低了译码时延。
附图说明
图1为FSL译码算法的译码蝶形图和译码树的融合图。
图2为本发明实施例的多码块译码器总体结构示意图。
图3为本发明实施例中对数似然比计算模块的结构示意图。
图4为本发明实施例中对数似然比在存储器中的存储结构。
图5为本发明实施例中路径修剪模块的结构示意图。
图6为本发明实施例中混合排序算法示意图。
图7为本发明实施例中路径度量值流水线排序过程示意图。
图8为本发明实施例中部分和更新模块的结构示意图。
图9为本发明实施例中循环冗余校验码校验模块的结构示意图。
具体实施方式
以下结合附图和具体实施例对本发明作进一步的描述,这些实施例仅用于说明本发明,并不是对本发明保护范围的限制。
图1给出了FSL算法译码树和译码蝶形图的融合图,即在译码蝶形图的基础上标注相应译码树的节点。图1中的一个黑色的小圆圈代表一个比特,每个比特都包含一个对数似然比(LLR,Log-Likelihood Ratio)和一个部分和(Patial Sum),在图中分别用αs,
Figure BDA0002514489680000041
表示。图中的每一列代表译码蝶形图或译码树中的一层。因此,对于一个码长为N的极化码,译码蝶形图(译码树)中共有1+log2N层,每层共有N个比特。在第s层中,2s个比特构成一个节点,即图1中的一个大圆(椭圆)为一个节点。根据叶子结点的信息位的个数,可以将图1中的节点分为以下几类:
(1)零码率(R0,Rate-0)节点:叶子节点内全部为冻结比特的节点。
(2)重复(Rep,Repetition)节点:叶子节点内只有一个信息比特的节点。
(3)单极性校验(SPC,Single Parity Check)节点:叶子节点内只有一个冻结比特的节点。
(4)全码率(R1,Rate-1)节点:叶子节点内全部为信息比特的节点。
(5)一般(Gen,General)节点:除上述四种节点外的其他节点。
需要注意的是,在s=1层,SPC节点和Rep节点相同。在译码树中,对数似然比从父节点传递到两个子节点,部分和从两个子节点传递到父节点。例如在图1中,利用s=3层圈出的节点的对数似然比可以计算得到s=2层圈出的两个节点的对数似然比,利用s=2层圈出的两个节点的部分和可以计算得到s=3层圈出的节点的部分和,因此对数似然比和部分和的传递方向相反,相应的计算公式分别在对数似然比计算模块和部分和更新模块中给出。FSL算法利用公式计算出s=d层(成为硬判决层)的对数似然比,然后可以直接得到s=0层的比特判决值。对于每一个路径,均存在图1中的一个译码树,且各条路径***前的内容相同。例如,若图1中在计算s=3层圈出的节点时进行***,则不同路径的译码树在该节点之前,即s=4层到信道端的节点的对数似然比相同,s=0层到s=3层的节点部分和相同。
如图2所示,本发明实施例提供的低复杂度多码块极化码译码器主要包括查找表模块(LTU,Lookup Table Unit),对数似然比计算模块(LCU,Log-Likelihood RatioCalculation Unit),路径修剪模块(PPU,Path Prunning Unit),部分和更新模块(PSU,Patial Sum Update Unit)和循环冗余校验码校验模块(CCU,CRC Check Unit)。其中,LTU用于在存储器中存储译码中需要用到的节点信息位分布、译码树开始更新深度等信息,并将其从存储器读出送入其他模块。
查找表模块的作用是在译码前在存储器中存储译码过程中需要的已知信息。该模块中包括两个存储器,分别存储节点信息位的分布(即该节点的各个比特是否为信息比特),以及对数似然比开始更新的层数(即从哪层的节点开始往下传递对数似然比)。两个存储器的组织方式相同,即存储器的第i层存储了需要译码硬判决层的节点的信息位分布情况以及要得到这个节点的对数似然比需要从哪层开始更新。需要注意的是,存储LLR开始更新层数的存储器从硬判决层第2个节点LLR开始更新的层数开始存储,第一个节点开始更新的层数在复位时给出。这是因为第i个节点部分和结束更新的层数(即部分和更新到哪层就不能继续往下更新)即为第i+1个节点LLR开始更新的层数。
对数似然比计算模块的作用为计算得到第d层某个节点的对数似然比,其中第d层是硬判决层。对于第s层第i个比特对应的LLR,当(i mod 2s+1)<2s时,其计算方法为
Figure BDA0002514489680000061
Figure BDA0002514489680000062
Figure BDA0002514489680000063
其中,αs,i
Figure BDA0002514489680000064
分别为第s层第i个比特对应的LLR和部分和。利用式(1)(2)(3)一直到计算出s=d层的LLR为止。LCU模块包括存储LLR的RAM、路径重排和计算单元三部分,模块图在图3中给出。在译码开始之前,信道输入的LLR分别写入上分支和下分支的LLR存储器中。其中,对于第s层的一个节点,该层一个节点包含2s个比特,前2s-1个比特称为上分支,另一半被称为下分支。译码开始后,首先从存储器中取出相应的LLR,然后送入路径重排单元重排,最后经过计算单元更新后将结果继续写入存储器中。
在LCU模块中,LLR采用10比特量化,其中最高位为符号位,其余9位为整数部分。当计算LLR时,由于在LLR更新的过程中存在加法和减法运算,因此就存在溢出的可能。对此,采用限幅的方式解决此问题。当计算结果出现溢出时,根据结果的正负性,将结果分别设置为511或-512。
在图4给出了N=1024,L=8时LLR在RAM中的存储结构。根据译码树不同的层数,将RAM分成几个部分,每一部分均存储该层一个节点的LLR,并按顺序存储了8个码块的LLR。例如图4中地址为0-31的部分存储第一个码块第10层(信道端)的LLR,地址32-63存储第二个码块第10层的LLR,地址256-271存储第一个码块第9层的LLR。其中,节点上分支的LLR写入上分支存储器,下分支的LLR写入下分支存储器。在宽度方面,同时存储该码块L条路径的值,每条路径包括16个LLR,因此在该模块中,可以同时处理16·L个LLR。
为了避免在路径***时对LLR进行直接复制,采用保存路径索引的方式。从RAM中读出LLR后,当需要用式(1)计算LLR时,路径重排单元根据PSU模块传入的路径索引,将读出的L条路径的LLR进行重新排列,得到正确顺序后送入计算单元进行更新,并将计算后的结果按照路径重排前的顺序写回RAM。例如第2条路径的索引为3(索引从0开始),则将该条路径排为第4条路径(最开始的是第1条路径)去计算LLR,然后将结果作为第2条路径写回RAM中。当需要用式(2)计算LLR时,直接利用RAM读出的路径顺序计算,不需要经过路径重排。
在LCU模块计算部分,并行计算所有LLR。在每个计算单元中,均包含一个g单元和一个f单元,其中g单元完成式(2)的功能,f单元完成式(1)的功能,最后选择输出一个单元的结果输出。假设从第d+2层的LLR计算出第d层的LLR,那么先计算出第一个码块第d+1层的LLR,再计算第二个码块第d+1层的LLR,直到所***块第d+1层的LLR均计算完成,再计算第一个码块第d层的LLR,接着是第二个码块第d层的LLR,直到所***块第d层的LLR均计算完成。
路径修剪模块的作用为子路径***,包括计算子路径的部分和和路径度量值等,并保留路径度量值最小的L路径。PPU模块图在图5中给出,共包括硬判决单元、绝对值计算与排序单元、路径数更新单元、部分和计算单元、路径度量值计算单元和路径度量值排序单元。
路径度量值采用14比特量化。因为路径度量值不可能为负数,所以14位全部为整数部分。对于路径度量值计算过程中的溢出现象,同样采用限幅操作,将路径度量值设为16383。
硬判决单元对输入的节点LLR进行硬判决,计算方法为
Figure BDA0002514489680000071
其中,
Figure BDA0002514489680000072
为该节点的LLR(即该节点所有比特的LLR构成的向量),
Figure BDA0002514489680000073
为该节点的硬判决结果(即该节点所有比特的硬判决结果构成的向量)。因为LLR为有符号数,取其最高位即可得到硬判决结果。对于每一个码块,同时对L条路径进行硬判决。当第一个码块完成硬判决后,对第二个码块进行硬判决,直到所***块均完成硬判决。
路径数更新单元根据路径***前的路径数和节点的信息位数目,计算出路径***后需要保留的路径数目。因为保留的路径数目只能取到几种确定的情况,因此可以通过查找表得到***后需要保留的路径。
绝对值计算与排序单元首先对输入的节点LLR计算绝对值,然后对LLR的绝对值进行升序排序。在计算绝对值和对绝对值排序时,先处理第一个码块的L个LLR,再处理第二个码块,直至最后一个码块计算完成。在处理每个码块时,对L条路径同时进行计算。
双调排序和奇偶排序是两种并行排序算法。双调排序时延较低,但是资源消耗较多,奇偶排序则相反。为了结合两者的优点,采用了混合排序算法,先利用奇偶排序算法进行部分排序,最后利用双调排序算法进行最后排序,图6给出了16个数据的排序流程。在进行升序排列时,需要依次将图中虚线连起来的两个数据进行升序排列。利用图6中的相应流程进行,实现了L条路径的节点LLR的绝对值排序。
前面三个单元是并行计算的,将结果进行时序调整,即可送入部分和计算单元计算各条子路径的部分和。整个部分和计算单元分为四部分,其中部分和计算1适用于采用穷举法的节点,即R0节点、Rep节点和部分采用穷举法得到的子路径更少的Gen节点。该部分内部存储了相应的差错图样,当需要时直接输出差错图样作为部分和;部分和计算2适用于需要计算校正子的节点,即其中Gen节点。该部分内部存储了相应的校正子和差错图样,首先对硬判决结果
Figure BDA0002514489680000087
最不可靠的(LLR绝对值越小该比特越不可靠)T个比特进行比特反转得到
Figure BDA0002514489680000081
然后根据
Figure BDA0002514489680000082
计算得到校正子δ,其中
Figure BDA0002514489680000083
为译码节点内所有比特索引的集合,H为
Figure BDA0002514489680000084
第i列构成的矩阵,
Figure BDA0002514489680000085
为F的d次直积(Kronecker Product),
Figure BDA0002514489680000086
为极化核,i为该节点中冻结比特的索引。最后,通过查找校正子表,得到该校正子对应的差错图样e,和硬判决结果做模二加即可得到部分和;部分和计算3适用于SPC和R1节点,通过硬判决结果和预先存储的差错图样进行异或,可以得到部分和。为了考虑资源情况,这里不采用并行生成所有子路径的部分和的方法,而是设置并行度为32(8条路径,每条路径同时产生4条子路径),即对于每个码块,每次同时产生32条子路径。另一方面,在产生的所有子路径中,并非所有子路径都是有效子路径,部分和有效信号部分用于标记各条子路径是否有效,对于无效子路径,在路径度量值计算单元将其路径度量值设为最大值,以保证在路径修剪过程中不会选择非法子路径保留。在计算完第一个码块的全部部分和后,计算第二个码块的全部部分和,直到所***块的部分和都计算完毕。
路径度量值的计算方法为
Figure BDA0002514489680000091
其中,B=2d为第d层一个节点内的比特个数,
Figure BDA0002514489680000092
为译码节点内所有比特的索引集合,PMi+B-1是计算完第i+B-1个比特的部分和后得到的路径度量值,βd,j是第d层第j个比特的硬判决结果,αd,j
Figure BDA0002514489680000093
分别为第d层第j个比特的对数似然比和部分和。该单元同时计算32条子路径的路径度量值。在该单元中,还需要产生原始的路径索引,即重排后不改变路径顺序的索引,然后送入PM值排序单元得到实际的路径索引。在PM值计算部分的输出,需要对信号的格式进行重新组织。以L=8为例,对于输出的PM值、部分和以及路径索引(用X代替三种值),X[0][0:7]表示八条路径的第一条子路径的值;X[0][8:15]表示八条路径的第二条子路径的值;X[1][0:7]表示八条路径的第三条子路径的值;X[1][8:15]表示八条路径的第四条子路径的值。计算完第一个码块所有子路径的路径度量值后,计算第二个码块所有子路径的路径度量值,直到计算完所***块的全部路径度量值。
排序单元采用和LLR绝对值排序相同的混合排序算法,排序过程采用流水线排序,在图7中给出了L=8时的排序流程图。在第一阶排序,一共有4个时钟共128条子路径等待排序。对每一个时钟内的前16个子路径的PM值和后16个子路径的PM值分别排序,得到前16条子路径中PM值最小的8条子路径以及后16条子路径中最小的8条,然后将第1、2个时钟的排序结果重新组合,第3、4个时钟的排序结果重新组合,得到2个时钟共64条子路径,将结果送入第二阶排序。第二阶排序对每个时钟内的前16条子路径和后16条子路径分别排序,得到前16条子路径中PM值最小的8条子路径以及后16条子路径中最小的8条,并将两个时钟内的排序结果重新组合,得到1个时钟共32条子路径,将结果送入第三阶排序。第三阶排序对该时钟内前16条子路径和后16条子路径分别排序,得到前16条子路径中PM值最小的8条子路径以及后16条子路径中最小的8条,将其组合成一个时钟内的16条子路径,并将结果送入第四阶排序。第四阶排序对这16条子路径进行排序,得到PM值最小的8条路径作为最终排序结果。在第四阶排序时,只需选出PM值最小的8条路径而无需对这些路径进行排序。控制模块需要根据待排序的子路径的数量决定从哪一阶开始排序。在进行排序的过程中,子路径部分和与路径索引也要按照对应的PM值的排序索引进行排序,得到8条最优子路径的部分和与路径索引。此外,当不需要剪枝时,可以不进行排序,直接选择相应的子路径输出;当***前路径数小于8时,有几条路径实际为同一条路径,其***出来的子路径实际上也相同。因此在排序之前需要从相同的子路径中选出一条设为有效子路径,保留其原有的PM值,其余无效子路径的PM值设为最大值使其无法排入前8。当第一个码块完成排序后,对第二个码块进行排序,直到所***块均完成排序。
部分和更新模块根据第d层节点的部分和,更新译码树中其他层的节点的部分和,对于第s层第i个比特对应的部分和,当(i mod 2s+1)<2s时,其计算方法为
Figure BDA0002514489680000101
Figure BDA0002514489680000102
其中,
Figure BDA0002514489680000103
为第s层第i个比特对应的部分和。PSU模块包括存储部分和的RAM、RAM控制单元、路径索引更新单元和部分和更新单元四部分,相应的模块图在图8中给出。
在PSU模块中,每一层均有一个RAM用于存放该层中一个节点的部分和。每个RAM的结构参考图4中LLR在RAM中某一阶的存放结构,在宽度方面,同时存储L条路径的值,每条路径存储16个部分和;在深度方面,存储完第一个码块前16个部分和后,继续存储接下来的16个部分和,直至该码块在该节点的所有部分和全部存储完成,然后存储第二个码块的部分和,直至所***块的部分和全部存储完成。而路径索引存储器的每一层对应译码树中的一层,存储了该层的L个路径索引,第一个码块的各层索引存储完后,存储第二个码块的各层索引,直至所***块的索引均存入存储器中。
RAM控制单元根据部分和停止更新的层数,控制对各个RAM的读写地址和读写使能。路径索引更新单元从索引存储器中读出各层的路径索引,并根据输入的第d层路径索引更新各层的路径索引,将结果送入部分和更新单元进行路径重排,同时写回存储器中。最后选择相应层的路径索引,送入LCU模块进行路径重排。
在部分和开始计算之前,先从部分和存储器中将更新过程需要用到的各层的部分和读出,并根据该层的路径索引进行路径重排。接着将输入的第一个码块的第d层部分和送入计算单元写入该层的部分和存储器,同时和该层RAM中读出的部分和一起更新出第d+1层的节点部分和。将计算结果写入第d+1层的部分和存储器,同时将其送入下一个单元,和RAM中读出的第d+1层的部分和一起更新出第d+2层的节点部分和,重复这一过程,直到更新出所需的所有层的部分和。在第一个码块的部分和更新完成后,按照同样的流程去更新其他码块的部分和,直到所***块的部分和都计算完成。在计算过程中,L条路径并行计算,同时计算16×L个部分和。
CRC校验模块的作用为对节点部分和进行重编码,然后计算L条路径的部分和,并在所有节点译码完成后选择通过CRC校验的、路径度量值最小的路径的译码比经过最后解交织得到信息向量。该模块的框图如图9所示,包括校验矩阵生成单元,数据存储单元,校验和计算单元以及路径选择输出单元。
在计算校验和之前,首先要进行重编码,即根据输入的节点的部分和
Figure BDA0002514489680000111
(一个节点内所有比特的部分和构成的向量)计算该节点的译码比特
Figure BDA0002514489680000112
(一个节点所有译码比特构成的向量),计算方法为
Figure BDA0002514489680000113
其中
Figure BDA0002514489680000114
Figure BDA0002514489680000115
为直积(KroneckerProduct)。CRC校验和的计算方法为
Figure BDA0002514489680000116
其中,
Figure BDA0002514489680000117
为信息比特(含校验比特)构成的向量,H为利用交织图样对校验矩阵进行行交换得到的矩阵。根据矩阵的乘法,上式可以写为
Figure BDA0002514489680000118
其中,K为码字中信息比特的数目,ui为第i个信息比特,hi为矩阵H的第i行。当每完成一个节点的译码,都可以利用式(10)依次计算各个码块的校验和,直到所有节点译码完成后可以得到所***块最终的校验和。对于每一个节点,可以并行的选择节点内每一个比特对应的ui×hi的内容,即若比特值为1,则选择输出校验矩阵中的对应行,若比特值为0,则选择输出全0,当并行得到节点内所有比特对应的ui×hi后,对其进行异或,可以得到该节点校验和的更新值。接着利用路径修剪模块输入的路径索引,对L条路径已有的校验和进行路径重排,再将路径重排后的校验和与校验和的更新值进行异或,得到新的校验和,并将结果按照重排前的顺序重新存储。当所有节点均计算完成后,即可得到最终L条路径的校验和。
当校验和计算完成后,即可选择路径输出。在索引存储器中存储了每个非R0节点的路径索引,部分和存储器中存储了重编码后信息比特,每个节点顺序存储各个码块的路径索引或信息比特,在宽度方面,同时存储L条路径的索引或部分和。
最优路径为校验和为0且路径度量值最小的路径,路径输出单元首先根据输入的最优路径索引选择信息比特输出,同时选择路径索引存储器中下一个节点的索引,接着利用该索引去选择下一个节点的信息比特输出以及之后节点的索引,依次重复,直到所有信息比特全部读取完成。这里注意的是,读取的顺序与写入顺序相反,即若写RAM从地址0开始写入,那么读取时地址0最后读取。对于(56,512)极化码,最后一个节点为R1节点,倒数第二个节点为SPC节点。开始路径选择时,首先选择最优路径索引ibest,将信息比特存储器中第ibest条路径的最后8个比特(R1节点,RAM地址48-55)输出,得到第49-56个比特。接着在索引RAM中选择最后面(RAM地址15)第ibest条路径对应的索引,作为接下来的路径索引i1。选择比特RAM中后面接着第i1条路径的7个比特(SPC节点,RAM地址41-47)输出,得到第42-48个比特,然后从索引RAM中选择倒数第二行第i1条路径对应的索引,作为接下来的路径索引i2,重复这一过程,直至得到所有的译码比特。最后,利用交织图样对译码比特进行解交织,得到最终的传输数据的估计。第一个码块得到输出的信息向量后,对第二个码块进行计算,直至得到所***块的传输数据的估计。

Claims (8)

1.一种低复杂度的极化码多码块译码器,其特征在于,包括:查找表模块、对数似然比计算模块、路径修剪模块、部分和更新模块以及循环冗余校验码校验模块;
所述查找表模块,用于给其他四个模块提供译码过程中需要用到的已知信息;
所述对数似然比计算模块,用于根据部分和更新模块输入的路径索引和存储器中的对数似然比更新节点对数似然比;
所述路径修剪模块,用于根据节点对数似然比绝对值的排序索引和硬判决结果计算各条子路径的部分和,然后和硬判决结果以及节点对数似然比绝对值计算路径度量值,最后对路径度量值采用流水线排序,排序算法采用结合双调排序和奇偶排序的混合排序算法,在最后一阶排序中采用不完全排序,并产生硬判决层新的路径索引,同时送入部分和更新模块和循环冗余校验码校验模块;
所述部分和更新模块,用于根据硬判决层路径索引更新译码树各层路径索引,然后更新部分和,并将新的路径索引送入对数似然比计算模块;
所述循环冗余校验码校验模块,用于根据路径索引和校验矩阵对每个节点并行计算校验和并选择路径输出解交织后的信息。
2.根据权利要求1所述的一种低复杂度的极化码多码块译码器,其特征在于,所述查找表模块包括一个存储节点信息位分布情况的存储器和一个存储译码树开始更新层数的存储器;在译码开始后,查找表模块根据当前译码节点,将相应节点的数据从存储器中取出送入其余四个模块进行译码。
3.根据权利要求1所述的一种低复杂度的极化码多码块译码器,其特征在于,所述对数似然比计算模块包括对数似然比存储单元、路径重排单元和对数似然比计算单元;所述存储单元用于存储所有路径的对数似然比;所述路径重排单元用于对存储器中取出的多条路径的对数似然比进行重新排列;所述对数似然比计算单元用于更新对数似然比,并写回存储单元。
4.根据权利要求1所述的一种低复杂度的极化码多码块译码器,其特征在于,所述路径修剪模块包括硬判决单元、绝对值计算与排序单元、路径数更新单元、部分和计算单元、路径度量值计算单元和路径度量值排序单元;所述硬判决单元用于对输入的对数似然比进行硬判决;所述绝对值计算与排序单元用于对输入的对数似然比求绝对值,然后对绝对值升序排列;所述路径数更新单元用于计算路径***后需要保留的路径数量;所述部分和计算单元用于计算子路径的部分和,每次同时计算4个子路径的部分和;所述路径度量值计算单元用于计算子路径的路径度量值;所述路径度量值排序单元用于进行流水线排序,每次对部分路径度量值进行排序,直到最后只需选出路径度量值最小的L条子路径,而无需对这L条子路径进行排序,排序时根据路径度量值的排序索引对部分和以及原始路径索引进行排序;其中L为保留的最大路径数。
5.根据权利要求1所述的一种低复杂度的极化码多码块译码器,其特征在于,所述部分和更新模块包括控制单元、路径索引更新单元、部分和存储单元以及部分和更新单元;所述控制单元用于产生不同存储器的读写使能信号以及读写地址;所述路径索引更新单元用于根据硬判决层的路径索引更新译码树各层的路径索引;所述部分和存储单元用于存储所有路径的部分和;所述部分和更新单元用于将存储单元中的部分和读出,根据路径索引进行重新排列,得到结果后写回部分和存储单元中。
6.根据权利要求1所述的一种低复杂度的极化码多码块译码器,其特征在于,所述循环冗余校验码校验模块包括校验矩阵生成单元,数据存储单元,校验和计算单元和路径选择输出单元;所述校验矩阵生成单元用于生成校验矩阵并根据交织图样对其进行行交换;所述数据存储单元用于存储、读取包含信息位的节点的路径索引以及信息比特的比特估计值;所述校验和计算单元用于根据校验矩阵计算校验和;所述路径选择输出单元用于根据校验和以及存储器中的路径索引,选择相应路径的比特估计值,解交织后输出。
7.根据权利要求1所述的一种低复杂度的极化码多码块译码器,其特征在于,在除查找表模块外的四个模块中存储了路径索引,避免对大量数据的复制,首先路径修剪模块产生译码树硬判决层的路径索引,然后送入循环冗余校验码校验模块计算校验和,同时将路径修剪模块产生的路径索引送入部分和更新模块计算各层路径索引,最后部分和更新模块将相应层的路径索引送入对数似然比计算模块。
8.根据权利要求1所述的一种低复杂度的极化码多码块译码器,其特征在于,在除查找表模块外的每一个模块中采用多码块译码,对每一个码块顺序进行计算,先计算第一个码块,再计算第二个码块,直至最后一个码块计算完成后,将所***块的数据送入下一个模块计算。
CN202010471715.0A 2020-05-29 2020-05-29 一种低复杂度的极化码多码块译码器 Active CN111786683B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010471715.0A CN111786683B (zh) 2020-05-29 2020-05-29 一种低复杂度的极化码多码块译码器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010471715.0A CN111786683B (zh) 2020-05-29 2020-05-29 一种低复杂度的极化码多码块译码器

Publications (2)

Publication Number Publication Date
CN111786683A CN111786683A (zh) 2020-10-16
CN111786683B true CN111786683B (zh) 2022-11-08

Family

ID=72754484

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010471715.0A Active CN111786683B (zh) 2020-05-29 2020-05-29 一种低复杂度的极化码多码块译码器

Country Status (1)

Country Link
CN (1) CN111786683B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112821896A (zh) * 2020-12-31 2021-05-18 西安万宏电子科技有限公司 一种基于预处理和简化存储的极化码译码器、译码方法、电子设备及计算机可读存储介质
CN114553372B (zh) * 2022-02-11 2024-05-03 Oppo广东移动通信有限公司 数字信号的译码方法、装置、电子设备
CN115296676B (zh) * 2022-08-04 2023-10-10 南京濠暻通讯科技有限公司 一种提升Polar译码LLR运算性能的方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106877884B (zh) * 2017-02-01 2020-04-28 东南大学 一种减少译码路径***的极化码译码方法
CN107248866B (zh) * 2017-05-31 2020-10-27 东南大学 一种降低极化码译码时延的方法
CN108847850A (zh) * 2018-06-13 2018-11-20 电子科技大学 一种基于crc-sscl的分段极化码编译码方法

Also Published As

Publication number Publication date
CN111786683A (zh) 2020-10-16

Similar Documents

Publication Publication Date Title
CN111786683B (zh) 一种低复杂度的极化码多码块译码器
KR100703271B1 (ko) 통합노드 프로세싱을 이용한 저밀도 패리티 검사 코드복호 방법 및 장치
US8495453B1 (en) Circulant processing scheduler for layered LDPC decoder
CN106888026B (zh) 基于lsc-crc译码的分段极化码编译码方法及***
CN100364237C (zh) 非规则低密度奇偶校验码的***码设计方法及其通信***
CN1953336B (zh) 在低密度奇偶校验解码器中更新校验节点的方法
CN111224680B (zh) 一种低延时高可靠的极化码快速译码方法和译码器
CN110661533B (zh) 优化译码器存储极化码译码性能的方法
Jayasooriya et al. Analysis and design of Raptor codes using a multi-edge framework
CN102340320A (zh) 卷积Turbo码双向并行译码方法
CN112104412B (zh) 一种适用于低轨卫星宽带通信的加速器
CN111654291B (zh) 一种基于比特翻转的极化码快速串行抵消列表译码算法
CN100593911C (zh) 一种对通信***中接收到的层数据进行解码的方法和***
Cao et al. Using list decoding to improve the finite-length performance of sparse regression codes
CN109245775B (zh) 一种译码器及其实现译码的方法
US11323139B2 (en) Apparatuses and methods for mapping frozen sets between polar codes and product codes
Zhao et al. Fast list decoding of PAC codes with sequence repetition nodes
US20140032997A1 (en) Qpp interleaver/de-interleaver for turbo codes
CN112104379B (zh) 一种基于关键集的极化码置信度传播动态翻转译码方法
Xia et al. High throughput polar decoding using two-staged adaptive successive cancellation list decoding
CN112534724A (zh) 用于解码极化码和乘积码的解码器和方法
Wang et al. Adaptive fast simplified successive cancellation list polar decoding based on path selecting
CN116073952B (zh) 一种基于MaPU架构的快速并行卷积编译码方法、***、设备及介质
CN110190925B (zh) 一种数据处理方法及装置
CN117254880A (zh) 通过调度器对s极化ecc吞吐量的加速

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
GR01 Patent grant
GR01 Patent grant