CN105049061A - 基于超前计算的高维基极化码译码器和极化码译码方法 - Google Patents
基于超前计算的高维基极化码译码器和极化码译码方法 Download PDFInfo
- Publication number
- CN105049061A CN105049061A CN201510208465.0A CN201510208465A CN105049061A CN 105049061 A CN105049061 A CN 105049061A CN 201510208465 A CN201510208465 A CN 201510208465A CN 105049061 A CN105049061 A CN 105049061A
- Authority
- CN
- China
- Prior art keywords
- selector
- input
- node
- output
- check
- 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.)
- Granted
Links
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
Abstract
本发明提出一种基于超前计算的高维基极化码译码器和极化码译码方法。包括:控制模块,用于向处理器模块发出控制信号,向内存单元发送地址信号;内存单元,用于根据所述地址信号向处理器模块发送输入数据;理器模块,包括多个节点处理器,每个节点处理器,用于根据控制信号,对内存模块发送来的K个输入数据执行极化码译码处理,其中利用高维基译码算法将极化码译码过程中的k级译码合并为一次迭代,其中k=log2K,而且在每一级的校验节点上基于超前计算方式计算全部可能输出结果以供后续译码过程选择,并且将译码结果发送到内存单元。
Description
技术领域
本发明属于信道编码技术领域,特别是一种基于超前计算的高维基极化码译码器和极化码译码方法。
背景技术
极化码(PolarCodes)是2009年由E.Arikan提出的一种被严格证明可以达到信道容量的构造性的信道编码方法。图1是使用极化码译码的基本结构框图;图2是信道极化的基本结构组成示意图。在进行极化编码之前,首先要对N=2n个独立的二进制输入信道(或先后N次反复使用同一个信道,即一个信道的N个可用时隙),再利用信道极化的基本单元对二进制输入离散信道反复进行极化,上式中,n为自然数。最基本的信道极化操作是对两个相同的未经极化的信道W:x→y进行单步极化;其中,x是信道输入符号的集合,对于二进制输入信道,x的取值范围为{0,1};y是信道输出符号的集合。如图2所示,该极化信道的输入比特分别标记为u1和u2,这两个输入比特通过一个模二加法器输出得到x1,同时将u2直接赋值给x2,也即x2=u2,式中为模二加运算。把x1和x2分别送入未经极化信道W,其输出为y1和y2。从该信道极化基本单元的输入(u1和u2)和两个信道的输出(y1和y1)看,原本独立的两个未经极化的信道W被合并成一个两输入两输出的向量信道W2:x2→y2,其中,运算为笛卡尔积。该向量信道包含两个子信道(输入为u1输出为y1和y2)和(输入为u2输出为y1和y2),这两个子信道即是两个极化信道。经过该单步极化过程,从信道容量上看 其中I(·)表示求信道容量的函数。也就是说:单步极化后,在和容量保持不变的情况下,相比原本未经极化的信道,极化后的信道容量发生了偏离:一个增加,一个减少。如果对两组已经完成一次极化操作的信道,再在两组互相独立的转移概率相同的极化信道之间,分别进行单步极化操作,该偏离会更加明显,这一组单步极化操作被称为第二层极化操作,而前一组单步极化操作则称为第一层极化操作。每多做一层极化操作,需要的信道数就会比原先多一倍。因此,对N=2n个信道进行完全的极化,共需要n层极化操作,且每一层的极化操作包括了N次单步极化操作。如不加特殊说明,“对N个信道进行极化操作”是指完全极化。
理论上已证明,对接近无穷多个信道进行极化操作后,会出现一部分信道的容量为1(即通过其传输的比特肯定会被正确接收),其余信道容量为0(即完全无法在其上可靠地传输比特)的现象,而容量为1的信道占全部信道的比例正好为原二进制输入离散信道的容量。参见图3,介绍一个实用的信道极化装置的递归结构:长度N(对N个信道进行极化)的信道极化装置可以用长度为N/2的信道极化装置作递归操作来表示,递归过程中的最小单元(即当N=2时)就是图2所示的基本单元。图3中的信道极化装置中有一个长度为N的比特反转交织器,其功能是:先将输入端的十进制序号i按二进制表示为(bn-1bn-2...b0),其中,n=log2N,再将该二进制序列反序而得到(b0b1...bn-1),最后重新按十进制表示成πi,并作为输入序号i对应的输出序号。比特反转交织器的作用是将输入端序号为i的比特映射到序号πi处。根据编码速率(R)对N个信道进行极化,并选取其中容量最大的K个信道(或者等价地,选取可靠性最高的K个信道;可靠性度量是采用密度进化(DensityEvolution)工具或者计算巴塔恰里亚(Bhattacharyya)参数得到的数值),以承载用于传输消息的比特,称该部分比特为信息比特,并称该部分信道为信息信道(其中.为向下取整运算),其余未被选中的信道则传输一个约定的比特序列,称其为固定比特序列,并称该部分信道为固定信道(若信道对称则可简单地传输全零序列),从而形成一个从承载信息的K个比特到最终送入信道的N个比特的映射关系,这样的一种映射关系即为极化码,码长(编码后得到的二进制信号所包含的比特数)等于信道极化装置的长度N。由信息比特和固定比特组成的、送入信道极化装置的二进制信号序列(u1...uN)为编码码块,该编码码快的顺序与其送入的极化信道的序号一致,即ui送入时),其中序号i是1到N的自然数,坪f表示将N个信道W极化后得到的序号为i的极化信道。编码码块经过信道极化装置后,得到的信号序列(x1...xN),再通过N个独立信道W传输后,接收到的信号序列为(y1...yN)。译码器的任务就是根据接收信号序列(y1...yN)得到发送比特序列(u1...uN)的一组比特估计值极化码可以使用串行抵消译码方法:对编码码块中的每个比特按序号i顺序地从1到N依次进行判决,还可以将串行抵消译码方法描述为一个码树上的搜索过程(参见图4所示的一个简单范例)。串行抵消译码是在码树上逐步扩展,每次从两条候选路径中选择其中概率值相对较大的一条,并在那一条路径的基础上继续进行下一步的路径扩展。
串行抵消译码算法:参见图5(图中以码长等于8为例),最右侧的(λ0...λ7)为解调之后得到的信道软信息值,最左侧的(L0...L7)则为每一个码字对应的软信息值。图中每一个圆都代表一个节点处理器,用于更新节点信息。节点上的序号代表该各个节点之间执行的先后顺序。从第一个节点开始,各个节点按照序号被激活,同时,根据每个节点的输入和节点更新算法,计算出相应的软信息值并送入下一个节点处理器。每一个节点在整个译码过程中只被激活一次。对于校验节点(图中的白色节点)的软信息更新,为了简化硬件实现,用最小和操作来近似计算所需的软信息值,具体计算公式为Lf=sign(La)sign(Lb)min(|La|,|Lb|),其中,Lf为节点处理器输出值,La和Lb为节点处理器输入值;sign(·)表示求符号操作,min(·)表示求括号内所有数的最小值操作,|·|表示求绝对值操作。对于变量节点,计算公式为其中,Lg为节点处理器输出值,La和Lb为节点处理器输入值;为译完码字的部分模二加的结果。
对于串行抵消译码方法的改进,一方面是通过对计算码树中节点内部的操作进行优化,比如简化串行抵消译码算法,该算法提出了将码树上的信息位和固定位分别进行合并,省去了许多无需计算节点消耗的计算量。另一方面,在译码器的硬件实现上,不断有低消耗高吞吐率的结构被提出。极化码译码的基本硬件译码器实现有蝶型、管道型、线型三种基本结构。蝶形即对最基本的串行抵消译码器进行实现,码树上每一次计算都分配一个节点计算器和寄存器。这种结构中,一共需要2N-2个节点寄存器和节点计算器。以码长等于8为例,其基本结构与最基本的译码算法图(图5)相同,图中每个圆都代表一个处理器和相应的寄存器。从图5中可以得到对于译码器的第i级,最多只有2i个节点同时进行运算。据此,管道型结构译码器将每一级中的剩余2i个节点去除,在很大程度上节省了译码器的资源消耗情况。该译码器虽然在译码时钟方面较蝶形译码器没有减少,但在译码器的资源利用率上有较大的改进。由于在整个译码过程中,最多只有第n级需要N/2个节点处理器,所以译码器可以继续改进,将所有的译码在一个线型排列的N/2个节点处理器中进行,称为线型译码结构。这种译码器结构进一步减少了资源消耗,同时提升了译码器的资源利用率。
当然,也有很多设计者考虑到吞吐率的重要性,利用大量的硬件资源以取得比较可观的吞吐率,这也是当前极化码译码器设计的一个方向。超前计算和并行计算是这类译码器中非常常见的提高吞吐率方法。超前计算方法是利用极化码变量节点的输出结果可变性比较小来提高运算速度。根据前面提到的变量节点计算公式:该节点输出只取决于的大小,由于为二进制数,也就是说变量节点的输出最多只有两种可能。超前计算技术的主要思路则是提前将两种可能全部算好并储存在寄存器中,当得到时直接从寄存器中选取出相应的结果即可,参见图6,利用这种方法的译码器虽然在吞吐率上有较大改观,但是在变量节点上需要付出传统译码器多一倍的硬件资源。并行计算方法则是利用极化码编码原理,将整个译码器拆分成两个并行计算的子译码器,从而将吞吐率提高一倍。但相比传统的极化码译码器,这些译码器的硬件资源的增长也是巨大的。
总之,现有技术的缺点是:当前的极化码译码器在吞吐率和硬件资源消耗上没有一个比较好的折衷。因此,如何对这些译码器进行改进,设计出一种新的译码结构,让其在吞吐率可观的情况下硬件资源消耗的增加也在可接受范围之内就成了业内人士关注的一个重要课题。
发明内容
有鉴于现有技术的缺点,本发明将高维基的思想运用到极化码译码器的设计中。本发明实施方式提出一种基于超前计算的高维基极化码译码器和极化码译码方法,利用少量硬件资源为代价,在译码器吞吐率上取得可观的改进。
本发明实施方式的技术方案如下:
一种基于超前计算的高维基极化码译码器,包括:
控制模块,用于向处理器模块发出控制信号,向内存单元发送地址信号;
内存单元,用于根据所述地址信号向处理器模块发送输入数据;
处理器模块,包括多个节点处理器,每个节点处理器获取的输入数据个数为K,输出数据个数为1,其中K为高维基的维数;
每个节点处理器,用于根据控制信号,对内存模块发送来的K个输入数据执行极化码译码处理,其中利用高维基译码算法将极化码译码过程中的k级译码合并为一次迭代,其中k=log2K,而且在每一级的校验节点上基于超前计算方式计算全部可能输出结果以供后续译码过程选择,并且将译码结果发送到内存单元。
一种基于超前计算的高维基极化码译码方法,包括:
控制模块向处理器模块发出控制信号,向内存单元发送地址信号;
内存单元根据所述地址信号向处理器模块发送输入数据;处理器模块包括多个节点处理器,每个节点处理器获取的输入数据个数为K,输出数据个数为1,其中K为高维基的维数;
每个节点处理器根据控制信号对内存模块发送来的K个输入数据执行极化码译码处理,其中利用高维基译码算法将极化码译码过程中的k级译码合并为一次迭代,其中k=log2K,而且在每一级的校验节点上基于超前计算方式计算全部可能输出结果以供后续译码过程选择,并且将译码结果发送到内存单元。
从上述技术方案可以看出,本发明提供了一种高维基的极化码译码器设计。本发明中的译码器结构是一种全新的译码结构,该结构利用少量硬件资源为代价,在译码器吞吐率上取得可观的改进。同时,本发明操作简单,通用性好,具有较好的实用化前景。
附图说明
图1是使用极化码译码的基本结构框图。
图2是信道极化的基本结构组成示意图。
图3是长度为N的信道极化装置的递归结构示意图,其中递归的最小单元(即N=1时)为图2所示的基本单元。
图4是一个码长N=4的极化码的码树示意图。图中指使了一条串行抵消译码得到的路径,其对应的比特估计序列为(0110)。
图5是一个码长N=8的极化码串行抵消译码算法实现图。
图6是极化码超前计算方法的基本原理。
图7是基二极化码向基四极化码转化过程的理论推导示意图。
图8是基于超前计算的基四极化码译码器的实现架构图。
图9是基于超前计算的高维基极化码译码器操作步骤流程图。
图10是基于超前计算的高维基极化码译码器的实现架构图。
图11是基于超前计算的基八极化码译码器中节点处理器的一种实现结构图。
图12是基于超前计算的高维基极化码译码器的硬件设计概述图。
图13是内存模块和处理器模块之间数据缓存器的硬件设计概述图。
图14是基于超前计算的基四极化码译码器操作步骤流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。
本发明提出一种基于超前计算的高维基极化码译码器,包括:控制模块,用于向处理器模块发出控制信号,向内存单元发送地址信号;内存单元,用于根据所述地址信号向处理器模块发送输入数据;处理器模块,包括多个节点处理器,每个节点处理器获取的输入数据个数为K,输出数据个数为1,其中K为高维基的维数;每个节点处理器,用于根据控制信号,对内存模块发送来的K个输入数据执行极化码译码处理,其中利用高维基译码算法将极化码译码过程中的k级译码合并为一次迭代,其中k=log2K,而且在每一级的校验节点上基于超前计算方式计算全部可能输出结果以供后续译码过程选择,并且将译码结果发送到内存单元。
在一个实施方式中,该高维基极化码译码器还包括:部分和更新模块,用于接收处理器模块产生的译码结果,利用部分和更新算法更新部分和序列,并将更新后的部分和序列返回给处理器模块。
在一个实施方式中,该高维基极化码译码器还包括分别与处理器模块和内存单元相连接的双缓存模块,用于在处理器模块的数据处理速度与内存单元的数据输出速度之间达到匹配。
在一个实施方式中,所述每个节点处理器,用于执行:
(1)、迭代译码过程:该过程包括:按照每个时钟周期所产生的所述控制信号和所述地址信号,从内存单元中读取出需要进行处理的LLR值,从部分和更新模块中取出部分和序列,将处理结果数据LLR值存入内存单元对应的区域,完成一级迭代过程;重复n/k次,完成一次完整的迭代,以求出一个码字的估计LLR值,n为码长;
(2)、译码判决过程:将上述迭代译码过程得到的一个码字的估计LLR值进行硬判决,得到对该码字的一个估计值,该估计值即为译码结果。
在一个实施方式中,高维基极化码译码器优选为基四极化码译码;所述输入数据为4个,分别为第一输入数据、第二输入数据、第三输入数据和第四输入数据;
节点处理器包括第一级和第二级;
第一级包括:第一选择器、第二选择器、第一校验节点、第一变量节点,第二校验节点和第二变量节点、第三选择器和第四选择器,其中第一选择器的输入连接到第一输入数据;第一选择器的输出连接第二校验节点的输入和第二变量节点的输入;第二选择器的输入连接到第二输入数据,第二选择器的输出连接到第二校验节点的输入和第二变量节点的输入;第一校验节点的输入连接到第三数据和第四数据;第一变量节点的输入连接到第三数据和第四数据;第一校验节点的输出连接到第三选择器的输入;第一变量节点的输出连接到第三选择器的输入;第二校验节点的输出连接到第四选择器的输入;第二变量节点的输出连接到第四选择器的输入;
第二级包括:第三校验节点、第五选择器、超前计算单元和第六选择器,其中第三校验节点的输入连接到第三选择器的输出和第四选择器的输出;第六选择器的输入连接到第五校验节点的输出和第五选择器的输出;超前计算单元的输入连接到第二选择器的输出和第四选择器的输出;超前计算单元的输出连接到第五选择器的输入。
在一个实施方式中,超前计算单元包括:连接到第二选择器的输出和第四选择器的输出的第一加法变量节点;连接到第二选择器的输出和第四选择器的输出的第一减法变量节点;与第一加法变量节点连接的第一寄存器;与第一减法变量节点连接的第二寄存器。
本发明提供了一种基于超前计算的高维基极化码译码方法。该方法包括:在极化码译码码树上,将两级或者更多级码树合并成一级(由于极化码的构造特性,只能将大小为2的整数次幂的级数合并为一级进行计算),减少极化码译码迭代的次数;同时在每一级的校验节点上利用超前计算方法以提高译码器整体吞吐率。在整体译码流程中,本发明所用的架构是半并行译码架构。该方法的译码性能和传统的基二SC(Radix-2-SC,下简称R2-SC)译码没有实质差别,下面参见图7和图8,以基四SC(Radix-4-SC,下简称R4-SC)译码方法为例介绍高维基极化码译码算法(Radix-K-SC,下简称RK-SC。其中K为SC译码的维数,就是将R2-SC译码的k级译码流程合并为一级,k=log2K)的理论依据:
在极化码的译码过程中,可以将每一级上的节点分为校验节点和变量节点,分别对应于图8中的校验处理器(F)和变量节点器(G)。在校验节点上对输入的两个对数似然比(Log-LikelihoodRatio,简称LLR,在图中用L表示)进行的操作为Lf=sign(La)sign(Lb)min(|La|,|Lb|),简记为Lf=F(La,Lb);在变量节点上对输入的两个LLR进行的操作为简记为Lg=G(La,Lb)。将译码流程中两级合并成一级,就可以得到一个如图8中左下角的节点处理单元结构。该节点处理单元有四个输入,分别记为La,Lb,Lc,Ld。根据简单推导,可以求出基四极化码译码算法中迭代计算的公式:
L1=F(F1,F2)=F(F(La,Lb),F(Lc,Ld));
L2=G(F1,F2)=G(F(La,Lb),F(Lc,Ld));
L3=F(G1,G2)=F(G(La,Lb),G(Lc,Ld));
L4=G(G1,G2)=G(G(La,Lb),G(Lc,Ld));
如图7所示,公式中,L1,L2,L3,L4为节点处理单元的四种输出可能。这样一来,节点处理器的种类也由R2-SC的变量处理器和校验处理器两种,变为了R4-SC中L1,L2,L3,L4四种。同样的每个节点处理单元的输入也从从R2-SC的2个变成了4个。这里,我们定义L2和L1互为对偶节点,同理L4也和L3互为对偶节点。同时,译码级数也将减少到原来的一半。
仔细观察译码过程可以得到:在第一种节点(L1)得到输入信息值而被激活的时候,由于第二种节点(L2)与第一种节点(L1)的操作在很大一部分程度上是相同的(即上述公式中F(La,Lb),F(Lc,Ld)部分,图7中用虚线方框标记),我们就利用前面提到的超前计算方法,在计算L1的同时,将第L2最外层的变量节点(G)的两种输出可能结果全部算出并储存,等到下一次需要计算L2节点输出时,只需通过选择器来选择已储存的两种输出中正确的一个即可。同理,L3和L4的计算也如此。这就是基于超前计算的R4-SC译码算法。经过软件仿真统计,超前计算R4-SC的译码性能和R2-SC完全一致,这和理论推导也是相符的,验证了超前计算R4-SC的理论可实现性。
根据上述理论可以设计出如图8所示的基四极化码的硬件框图,图中简要介绍了每个节点处理单元的实现架构图。图中以码长N=16为例,设计了基四极化码的硬件结构图。译码流程分为两级,每一个节点处理器都有4个输入和一个输出。左上角的Dec(Decide)单元为硬判决单元,将译码器输出的比特似然比转化为判决结果(01比特)。左下角即基四译码器每个节点处理单元的基本结构,其中Pi,j表示译码过程中第i级第j个节点处理单元,这些节点单元可由校验处理器和变量处理器组成。相对应的,Ri,j表示第i级第j个寄存器。F为校验处理器,G为变量处理器;为部分和序列,con为控制信号,如果没有特殊说明,文中所有配图都沿用这个表示方法。虚框内为超前计算的实现方法。两个+∞的输入用于码长不是4的整数幂(即码长为2的奇数次幂)的情况,需要在最后一级将输出补满。
在硬件实现方面,申请人也设计了简单易懂、便于实现的硬件结构。下面参见图12介绍高维基极化码译码器的算法实现图。高维基极化码译码器主要包括以下几个部分:
(1)控制模块:
(11)控制模块主要功能:
根据系统时钟和复位信号,在正常译码周期内(复位信号为0的情况下),每一个时钟周期产生一组控制信号和一对地址信号,将控制信号传输给节点处理器模块,用于处理器中运算选择;将这一对(两个)地址信号传输给内存模块,分别用于内存模块读取该时钟内处理需要的LLR值和写入该时钟内处理完的的LLR值。
(12)模块的输入输出信号介绍:
时钟信号(系统输入):译码器的总时钟信号,给译码器的计算打节拍的“节拍器”;复位信号(系统输入):该信号有效时表示译码器终止译码,该模块所有输出信号为0;控制信号(输出至处理器模块):控制译码器译码流程,功能如下文;地址信号(输出至内存模块):由控制信号产生的两个地址信号,分别为读地址和写地址,这两个地址信号用于控制内存模块的数据读写。
(13)模块硬件结构和实现方法
该模块的输入信号为系统时钟信号和复位信号,输出信号为控制信号和地址信号。该模块的主要结构是一个有限状态机,每个时钟周期都会得到一组不同的控制信号。地址信号可以由控制信号通过简单的逻辑组合单元处理得到。
(2)处理器模块:
(21)模块主要功能:在一个时钟周期内,根据控制模块产生的读地址信号在内存模块中读取出的处理器模块需要的LLR值、从部分和模块中读取出部分和序列,根据控制模块产生的控制信号决定如何对这些输入数据进行迭代计算;根据控制模块产生的写地址信号将计算的结果输出给内存模块。
(22)模块的输入输出端口
时钟信号(系统输入):译码器的总时钟信号,控制处理器模块每个时钟迭代计算一次;复位信号(系统输入):该信号有效时表示译码器终止译码,该模块所有输出信号为0;控制信号(由控制模块输入):根据上述介绍的三个控制信号,可以得知当前译码状态所处的层级、子信道和并行次数,从而得知应该对输入数据做何处理、是否需要对部分和进行更新等。
处理器输入LLR数据(由内存模块输入):内存模块提供的当前译码器需要进行处理的数据;处理器输出LLR数据(输出至内存模块):处理器对输入数据进行相应处理之后,需要将数据存入内存模块,用于后续迭代;译码结果(输出至部分和模块):译码结果需要输出给部分和模块用于部分和更新;部分和序列(从部分和模块输入):部分和序列为处理器模块中变量处理单元的输入。
(23)模块硬件结构和实现方法
处理器模块式极化码译码器中比较容易实现的模块。节点处理器模块由P个并行的相同的节点处理单元组成,每个节点处理单元中有校验处理器、变量处理器以及数据选择器。节点处理器模块非常易于实现,变量处理器由加法器组成;校验处理器由比较器构成。再加上选择器和必要的组合逻辑单元即可得到节点处理器模块,其内部的分布和布局布线由图10和图8左下角的处理器内部结构图可得知。
(3)内存模块
(31)模块主要功能:内存模块用于储存迭代中产生的、后续迭代需要使用到的中间数据。在每个时钟周期内,内存模块根据控制模块产生的读地址信号,将该周期处理器模块需要的待处理数据从内存模块中读取出并输出至处理器模块;并根据写地址信号将该周期内处理器处理完的数据写入内存模块,完成译码器中间变量储存的功能。
(32)模块输入输出信号
时钟信号(系统输入):译码器的总时钟信号,控制内存模块每个时钟读写数据一次;复位信号(系统输入):该信号有效时表示译码器终止译码,该模块所有输出信号为0;地址信号(控制模块输入):地址信号一共有两个:读地址信号和写地址信号,根据读地址信号,内存模块取出相应的数据,送到内存单元的输出数据总线上;根据写地址数据和内存单元输入数据总线上的输入,将这些数据存入内存模块对应区域以保存。
内存模块输入数据(从处理器模块读入):这些数据是当前时钟周期处理器模块处理完需要保存并用于后续迭代的数据,也就是该时钟周期的处理器输出数据。
内存模块输出数据(输出至处理器模块):这些数据是当前时钟周期处理器模块需要处理的数据,也就是该时钟周期的处理器输入数据。
(33)模块硬件结构和实现方法
内存模块:该模块用8块随机存储器(block_ram)组成,每块block_ram对应节点处理器模块中的一个子节点处理器模块,并负责对应子节点处理器模块的数据储存与读取。每一块block_ram的数据深度为N/4(N为码长),数据宽度为预先设定的译码器的量化比特数Q。
(4)部分和更新模块
(41)模块主要功能:每个时钟周期内,将处理器模块最终产生的一个码字的判决结果接收,依据控制信号更新部分和序列,并将这个更新完的部分和序列返回给处理器模块,以用于后续迭代计算中变量处理器计算使用。
(42)模块输入输出信号
时钟信号(系统输入):只有在时钟上沿才能对部分和进行更新;复位信号(系统输入):该信号有效时表示译码器终止译码,该模块所有输出信号为0;控制信号(有控制模块输入):根据控制信号决定是否需要对部分和进行更新,应该如何更新;部分和序列(输出至处理器模块):用于处理器模块中的LLR迭代计算;译码结果(由处理器模块输入):用于部分和更新。
(43)模块硬件结构和实现方法
部分和更新子模块的实现比较简单,可由长度比较低的部分和更新方法递归得到长度比较大的部分和更新方法。比如长度为256的部分和的更新模块可以由两个长度为128的部分和更新模块构成,这也正是极化码编码器的构造,由于编码生成矩阵的相邻行有一定的规律可循,可以用移位寄存器实现编码过程
(5)读取速率匹配设计——双缓存器(Buffer)结构。
在基于高维基高维基极化码的硬件设计中有一个比较棘手的问题:block_ram的读取速度为每个时钟周期只能读取一个数据,而处理器每个时钟周期需要处理的数据总数为4P(以基4极化码算法为例)个,如果按照block_ram的读取速度,则在很大一部分时间之内处理器模块中的节点处理器都是出于空闲状态,这样既浪费了资源又降低了吞吐率。所以本发明中设计了一组双Buffer来使处理器处理数据的速度和内存单元输出的速度达到匹配,下面结合图13介绍其主要设计方法:
以目前主流的半并行极化码译码器(基4)设计来举例,假设处理器模块中节点处理器的个数为P个,这样每一次全并行操作需要输入4P个LLR值,对一个缓存器(Buffer)来讲是很难实现这么多数据同时进出的,所以本发明中我们设计了8组双Buffer结构(一共16个Buffer,其中8个当前时钟周期的读写操作,8个用于下一个周期的读写操作,每8个节点处理器共用一个Buffer,即每个Buffer里面存有4P/2=P/2个LLR输入值)。我们设计双Buffer的目的就是为了让某一时钟周期,处理器在处理一个Buffer中的数据并将其输出储存到这个缓存器中的时候,另一个缓存器可以将上一个时钟周期处理完的数据读取并储存到内存模块,同时将下一个时钟周期处理器需要的输入提前存入第二个缓存器,这样就省去了读取、保存数据所消耗的实践。以下我们以第N和第N+1个时钟周期为例,简要介绍双Buffer的操作原理。
我们将一组双Buffer中的两个缓存器分别命名为X缓存器和Y缓存器。当第N个时钟周期来临时,处理器读取上一个时钟周期已经储存在Y缓存器中的P/2个LLR值,于此同时,内存模块根据地址信息先将X缓存器中第N-1个周期计算完的LLR值存入内存,并开始往X缓存器中存储下一个时钟周期(N+1时钟周期)需要进行处理的P/2个LLR值;在第N个时钟周期进行过程中,处理器单元迭代处理完的输出LLR值存入Y缓存器(覆盖原来存储在里面的该时钟周期的输入LLR值)。当第N+1个时钟周期来临时,处理器模块读取X缓存器在第N个时钟周期存储好的LLR值进行计算;同时内存模块读取Y缓存器中存储的第N个时钟周期的输出结果存入内存单元,并往Y缓存器中存入第N+2个时钟周期需要计算的P/2个LLR值。如此往复进行,直到译码结束。
为了让高维基极化码译码器的译码原理和结构特点更加易懂,下面我们介绍如何根据理论推导和基四极化码译码器来设计基八极化码译码器的硬件架构。基八极化码译码,按照前面对高维基极化码的定义,顾名思义,就是将基二极化码译码过程中三级译码合并为一级,每个节点处理器有8个LLR输入和1个LLR输出。由于每个节点处理单元中有3级极化码译码,那么理论上可以再3级上都进行超前计算方法的实现。所以一共有3种基八实现方法:只在处理单元内第3级用超前计算的基八译码器、在处理单元内第2、3级用超前计算的基八译码器、处理单元内每一个变量处理器都用超前计算的基八译码器。当然,三种方法所需要的硬件资源开销和所能达到的吞吐率也是不一样的。随着使用超前计算的级数的增加,必然会引起硬件资源开销的增加。
按照上面的推导方法,我们可以进一步将高维基极化码译码算法的维数提升至16维甚至更高。按照上面的设计方法,基16极化码译码器的架构则可以有4种,它们之间的吞吐率和硬件资源开销将各不相同,与基八译码器的三种架构类似,这四种译码器中吞吐率较高的译码器硬件开销也相对较大。所以可以根据设计者的实际需要,在硬件资源开销和吞吐率两个指标上采取合适的取舍,设计符合需要的高维基极化码译码算法。这也体现了高维基极化码译码器设计的灵活性。
与现有技术相比较,本发明方法的创新优点是:本发明通过将极化码译码中两级或以上译码流程合并成一级,减少了译码过程中迭代的级数,优化了极化码译码的内部结构。同时,将该译码方法和超前计算方法相结合,能在极化码译码器的吞吐率和硬件资源消耗上有一个比较好的折衷。使得译码器在硬件资源消耗较小的代价下获得较大的吞吐率增益。另外,本发明是对极化码译码器节点进行合并和优化,并不影响极化码的总体译码流程,操作简单,实现方便,具有很好的通用性,该方法能与蝶型译码结构、管道型译码结构、线型译码结构、并行译码结构以及极化码的列表串行抵消译码算法相结合以进一步改善译码器性能。因此本发明适用于实际通信系统,具有很好的推广前景。
本发明基于高维基的极化码译码方法的具体操作内容是:在对接收到的信息进行串行抵消译码(SC译码)算法时,将接收信息分组,每K(K为2的整数次幂,也就是高维基的维数)个信息值为一组,并将这些信息以组的形式送入SC译码器。在一次译码算法中每个处理节点能将K个输入信息值进行相应计算得到一个输出信息值(这些信息值即为LLR值)。之后将本级迭代的输出信息值每K个一组送入下一级(一次迭代中有log2N级迭代,N为码长)迭代算法,直到最后得到一个最终的信息值,这个即为该次完整迭代得到的关于某一个码字的对数似然比。将这个似然比进行硬判决,得到译码码字,并将这个判决码字重新送入译码器参加部分和更新,准备进行下一次迭代。进过N次迭代之后,所有码字都已全部译码成功,译码算法结束。
一、首先,结合图9和图10介绍基于超前计算的高维基(Radix-K)极化码的译码操作步骤。
(11)步骤1,译码参数准备。确定用于译码的极化码码长N、采用的半并行译码器中处理器模块的节点处理单元的个数P、选择的高维基译码算法的基数K和译码器的量化比特数Q。根据P确定译码器中需要实现的节点处理单元的个数;根据N和K确定需要用与储存迭代中生成的LLR值以及用于存储部分和序列的存储空间大小;Q决定了在译码器中将LLR值量化成多少比特的二进制数。同时将从信道接收到的N个信道信息值储存在内存的相应位置,用于送入译码算法。其中N、P和K都必须为自然数且为2的整数次幂,Q为自然数。
(12)步骤2,信道信息接收与储存(译码数据准备)。将编码完、经过仿真信道处理得到的信道接收信息值存入译码器中内存模块的初始值部分,准备用于接下来的节点处理器模块迭代使用。
(13)步骤3,迭代译码。该步骤的基本操作是:按照每个时钟周期控制模块产生的控制信息和地址信息,从内存单元中读取出需要进行处理的输入数据(LLR值),从部分和模块中取出部分和序列的相对应部分,送入处理器单元,经过处理器单元处理之后,将处理结果数据(LLR值)存入内存单元对应的区域,完成一级迭代过程。重复操作这个过程n/k次,完成一次完整的迭代,求出一个码字的估计LLR值。这部分内容主要在处理器模块内实现,用到的中间数据(LLR值)从内存模块中读取,部分和值从部分和序列中读取。具体操作步骤如下:
(131)由于当前译码器的类型为Radix-K极化码译码器,所以每个处理单元需要的输入数据都是K个。根据控制模块产生的地址信息,从内存模块中取出对应的若干组LLR值(每组为K个LLR,由于不同阶段极化码译码器并行处理数据的个数不同,所以这里最多需要P组LLR值,最少需要1组LLR值)。
(132)取出数据之后,将这些LLR值送入处理器模块,根据控制模块产生的控制信号对这P组LLR值图10相应的节点处理单元中迭代计算。
(133)保存处理完数据并决定译码器下一步骤,将处理器模块的输出结果根据控制模块产生的地址信号存入内存模块的相应区域,用作后续迭代使用。此时需要对输出数据的个数进行分类:如果输出数据大于K个,表明该码字的一次完整迭代还没有完成,则回到(131)继续该码字的下一级迭代;如果输出数据为1个,则执行(134);否则,如果输出数据个数为为I0(0<I0≤K/2,且I0为2的整数次幂)个,那么执行(135)。
(134)若步骤(133)中最终的输出只有1个,则说明需要译码的极化码码长为K的整数次幂,那么该输出则为所需译码码字的LLR值,直接进入步骤4;
(135)若步骤(133)中最终的输出为I0(0<I0≤K/2,且I0为2的整数次幂)个,则说明需要译码的极化码码长为2的整数次幂但不是K的整数次幂,那么需要进行输入补齐操作。如图10中左下角的节点处理单元中所示,将剩余的K-I0个输入用∞替代,和(134)中得到的I0个输出结果组成最后一级的K个输入,根据控制信号对K个输入值进行相应计算并最终得到当前译码码字的LLR值,进入步骤4。
(14)步骤4:译码判决。将步骤3中得到的某一码字的LLR值送入判决单元进行硬判决,得到对该子信道码字的一个估计值(即译码结果)。
(15)步骤5:部分和更新。处理器模块将步骤4得到的硬判决结果输出给部分和模块,部分和模块根据控制信息,按照译码算法对储存在寄存器中的部分和序列进行更新。并将更新完的部分和序列返回译码器,用于后续译码使用。
(16)步骤6,迭代译码。重复步骤3,并重复步骤3-6,对下一个码字进行迭代计算并判决译码。如果所有码字都已得到判决结果,则译码算法结束。
二、为了使本发明的架构特点和实施方式更加清晰,下面参照图8和图14,以待译码码长为N的基四(Radix-4)极化码为例,介绍基于超前计算的基四极化码的译码步骤:
(21)步骤1,译码准备:确定用于译码的极化码码长N、采用的半并行译码器中节点处理器的个数P、译码过程中量化比特数Q和选择的高维基译码算法的基数K=4。根据P确定译码器中需要设置的节点处理器的个数;根据N和K确定需要用与储存迭代中生成的LLR值以及用于存储部分和序列的存储空间大小。同时将从信道接收到的N个信道信息值储存在内存的相应位置,用于送入译码算法。其中N和P都必须为自然数且为2的整数次幂,Q为自然数。
(22)步骤2,信道信息接收与储存:将编码完经过仿真信道得到的信道信息值存入内存模块的初始值部分,准备用于接下来的译码器迭代使用。
(23)步骤3,迭代译码:按照每个时钟周期控制模块产生的控制信息和地址信息,从内存单元中读取出需要进行处理的数据(LLR值),从部分和模块中取出部分和序列的相对应部分,送入处理器单元,经过处理器单元处理之后,将处理结果数据(LLR值)存入内存单元对应的区域,完成一级迭代过程。重复操作这个过程2次,完成一次码字的依次完整的迭代,求出一个码字的估计LLR值。这部分内容主要在处理器模块内实现,用到的中间数据(LLR值)从内存模块中读取,部分和值从部分和模块中读取。具体操作步骤如下:
(231)从内存模块中读取数据,由于当前译码器的类型为Radix-4极化码译码器,所以每个处理单元需要的输入数据都是4个。根据地址信息,从内存模块中取出对应的若干组LLR值(每组为4个LLR值,由于不同阶段极化码译码器并行处理数据的个数不同,所以这里最多需要P组4个LLR值,最少需要1组4个数据)。
(232)取出数据之后,将这些LLR值送入处理器模块,根据控制模块产生的控制信息对这4个输入值进行相对应的计算(具体4种不同的计算方法为发明内容中的4个公式)。
如果当前节点为L1(或者L3)节点,那么需要计算3个数值,即L1节点的输出(或者L3节点的输出)以及两个L2节点的输出(或者两个L4节点的输出),得到3个处理器输出结果。
如果当前节点为L2(或者L4)节点,那么只需从相应的内存单元中根据部分和序列选取正确的输出结果即可,此时处理器的输出结果为1个。
步骤(232)均在处理器模块中的一个节点处理单元中完成。
(233)保存处理完数据并决定译码器下一步骤,将处理器模块中所有节点处理单元处理完的之后的中间数值(每个节点处理单元都有1个或者3个)数根据控制模块产生的控制信号存入内存模块的相应模块,用作后续迭代使用。此时需要对处理器模块输出数据的个数进行分类:如果输出数据为4个,则表明该码字的一次完整迭代还没有完成,回到(231)继续迭代;如果输出数据为1个,则表明该码字的一次完整迭代已经完成,执行(234);否则,如果输出数据个数为2个,那么表明所处理的极化码码长不是四的整数次幂,那么执行(235)。
(234)若(233)中最终的输出只有1个,则说明需要译码的极化码码长为4的整数次幂,那么该输出则为所需译码码字的LLR值,直接进入步骤4;
(235)若(233)中最终的输出为2个,则说明需要译码的极化码码长为2的整数次幂但不是4的整数次幂,那么需要对最后一级迭代的节点处理单元进行输入补齐操作。如图14左下角的节点处理单元结构图所示,将剩余的2个输入用∞替代,和(233)中得到的2个输出结果一起组成最后一级的4个输入,根据节点位置对4个输入值进行相应计算并最终得到当前译码码字的LLR值,进入步骤4。
(14)步骤4:译码判决。当一个码字的LLR值求出以后,将上一步骤中得到的某一码字的LLR值送入判决单元进行硬判决,得到对该子信道码字的一个估计值(即该码字的译码结果)。
(15)步骤5:部分和更新。处理器模块将硬判决的结果输出给部分和模块,部分和模块根据控制信息,按照译码算法对部分和序列进行更新。并将这个部分和序列返回译码器,用于后续译码使用。
(16)步骤6,迭代译码。重复步骤6,对下一个码字进行迭代计算并判决译码。如果所有码字都已得到判决结果,则译码算法结束。
本发明的实施方式已经进行了多次试验实验,下面以K=4的基四译码器为例简要介绍实施情况。软件仿真方面,与理论推算相同,基于超前计算的基四极化码译码(LR4-SC)算法的译码性能和串行抵消(SC)算法的译码性能完全一致。硬件资源评估方面,LR4-SC译码器在寄存器数量和校验处理器数量上和SC译码器基本相同,在变量处理器上,LR4-SC译码器比SC译码器多33%,同时LR4-SC译码器在SC译码器的基础上提高了约33%的吞吐率。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于超前计算的高维基极化码译码器,其特征在于,包括:
控制模块,用于向处理器模块发出控制信号,向内存单元发送地址信号;
内存单元,用于根据所述地址信号向处理器模块发送输入数据;
处理器模块,包括多个节点处理器,每个节点处理器获取的输入数据个数为K,输出数据个数为1,其中K为高维基的维数;
每个节点处理器,用于根据控制信号,对内存模块发送来的K个输入数据执行极化码译码处理,其中利用高维基译码算法将极化码译码过程中的k级译码合并为一次迭代,其中k=log2K,而且在每一级的校验节点上基于超前计算方式计算全部可能输出结果以供后续译码过程选择,并且将译码结果发送到内存单元。
2.根据权利要求1所述的高维基极化码译码器,其特征在于,还包括:
部分和更新模块,用于接收处理器模块产生的译码结果,利用部分和更新算法更新部分和序列,并将更新后的部分和序列返回给处理器模块。
3.根据权利要求1所述的高维基极化码译码器,其特征在于,还包括分别与处理器模块和内存单元相连接的双缓存模块,用于在处理器模块的数据处理速度与内存单元的数据输出速度之间达到匹配。
4.根据权利要求2所述的高维基极化码译码器,其特征在于,所述每个节点处理器,用于执行:
(1)、迭代译码过程:该过程包括:按照每个时钟周期所产生的所述控制信号和所述地址信号,从内存单元中读取出需要进行处理的LLR值,从部分和更新模块中取出部分和序列,将处理结果数据LLR值存入内存单元对应的区域,完成一级迭代过程;重复n/k次,完成一次完整的迭代,以求出一个码字的估计LLR值,n为码长;
(2)、译码判决过程:将上述迭代译码过程得到的一个码字的估计LLR值进行硬判决,得到对该码字的一个估计值,该估计值即为译码结果。
5.根据权利要求1所述的高维基极化码译码器,其特征在于,所述高维基极化码译码器为基四极化码译码;所述输入数据为4个,分别为第一输入数据、第二输入数据、第三输入数据和第四输入数据;
所述节点处理器包括第一级和第二级;
第一级包括:第一选择器、第二选择器、第一校验节点、第一变量节点,第二校验节点和第二变量节点、第三选择器和第四选择器,其中第一选择器的输入连接到第一输入数据;第一选择器的输出连接第二校验节点的输入和第二变量节点的输入;第二选择器的输入连接到第二输入数据,第二选择器的输出连接到第二校验节点的输入和第二变量节点的输入;第一校验节点的输入连接到第三数据和第四数据;第一变量节点的输入连接到第三数据和第四数据;第一校验节点的输出连接到第三选择器的输入;第一变量节点的输出连接到第三选择器的输入;第二校验节点的输出连接到第四选择器的输入;第二变量节点的输出连接到第四选择器的输入;
第二级包括:第三校验节点、第五选择器、超前计算单元和第六选择器,其中第三校验节点的输入连接到第三选择器的输出和第四选择器的输出;第六选择器的输入连接到第五校验节点的输出和第五选择器的输出;超前计算单元的输入连接到第二选择器的输出和第四选择器的输出;超前计算单元的输出连接到第五选择器的输入。
6.根据权利要求5所述的高维基极化码译码器,其特征在于,所述超前计算单元包括:
连接到第二选择器的输出和第四选择器的输出的第一加法变量节点;
连接到第二选择器的输出和第四选择器的输出的第一减法变量节点;
与第一加法变量节点连接的第一寄存器;
与第一减法变量节点连接的第二寄存器。
7.一种基于超前计算的高维基极化码译码方法,其特征在于,包括:
控制模块向处理器模块发出控制信号,向内存单元发送地址信号;
内存单元根据所述地址信号向处理器模块发送输入数据;处理器模块包括多个节点处理器,每个节点处理器获取的输入数据个数为K,输出数据个数为1,其中K为高维基的维数;
每个节点处理器根据控制信号对内存模块发送来的K个输入数据执行极化码译码处理,其中利用高维基译码算法将极化码译码过程中的k级译码合并为一次迭代,其中k=log2K,而且在每一级的校验节点上基于超前计算方式计算全部可能输出结果以供后续译码过程选择,并且将译码结果发送到内存单元。
8.根据权利要求7所述的方法,其特征在于,所述每个节点处理器,用于执行:
(1)、迭代译码过程:该过程包括:按照每个时钟周期所产生的所述控制信号和所述地址信号,从内存单元中读取出需要进行处理的LLR值,从部分和更新模块中取出部分和序列,将处理结果数据LLR值存入内存单元对应的区域,完成一级迭代过程;重复n/k次,完成一次完整的迭代,以求出一个码字的估计LLR值,n为码长;
(2)、译码判决过程:将上述迭代译码过程得到的一个码字的估计LLR值进行硬判决,得到对该码字的一个估计值,该估计值即为译码结果。
9.根据权利要求7所述的方法,其特征在于,所述高维基极化码译码器为基四极化码译码;所述输入数据为4个,分别为第一输入数据、第二输入数据、第三输入数据和第四输入数据;
所述节点处理器包括第一级和第二级;
第一级包括:第一选择器、第二选择器、第一校验节点、第一变量节点,第二校验节点和第二变量节点、第三选择器和第四选择器,其中第一选择器的输入连接到第一输入数据;第一选择器的输出连接第二校验节点的输入和第二变量节点的输入;第二选择器的输入连接到第二输入数据,第二选择器的输出连接到第二校验节点的输入和第二变量节点的输入;第一校验节点的输入连接到第三数据和第四数据;第一变量节点的输入连接到第三数据和第四数据;第一校验节点的输出连接到第三选择器的输入;第一变量节点的输出连接到第三选择器的输入;第二校验节点的输出连接到第四选择器的输入;第二变量节点的输出连接到第四选择器的输入;
第二级包括:第三校验节点、第五选择器、超前计算单元和第六选择器,其中第三校验节点的输入连接到第三选择器的输出和第四选择器的输出;第六选择器的输入连接到第五校验节点的输出和第五选择器的输出;超前计算单元的输入连接到第二选择器的输出和第四选择器的输出;超前计算单元的输出连接到第五选择器的输入。
10.根据权利要求7所述的方法,其特征在于,该方法还包括:
接收处理器模块产生的译码结果,利用部分和更新算法更新部分和序列,并将更新后的部分和序列返回给处理器模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510208465.0A CN105049061B (zh) | 2015-04-28 | 2015-04-28 | 基于超前计算的高维基极化码译码器和极化码译码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510208465.0A CN105049061B (zh) | 2015-04-28 | 2015-04-28 | 基于超前计算的高维基极化码译码器和极化码译码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105049061A true CN105049061A (zh) | 2015-11-11 |
CN105049061B CN105049061B (zh) | 2018-06-01 |
Family
ID=54455298
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510208465.0A Active CN105049061B (zh) | 2015-04-28 | 2015-04-28 | 基于超前计算的高维基极化码译码器和极化码译码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105049061B (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105356891A (zh) * | 2015-11-26 | 2016-02-24 | 中国地质大学(武汉) | 一种高资源利用率的极性译码批处理方法 |
CN105515590A (zh) * | 2015-12-09 | 2016-04-20 | 东南大学 | 一种基于随机二进制数据流的有效低复杂度串行抵消列表极化码译码算法及其译码构架 |
WO2018027669A1 (en) * | 2016-08-10 | 2018-02-15 | Qualcomm Incorporated | Rate matching for block encoder |
WO2018032986A1 (en) * | 2016-08-19 | 2018-02-22 | Huawei Technologies Co., Ltd. | Reduced-stage polar decoding |
CN107846261A (zh) * | 2016-09-20 | 2018-03-27 | 三星电子株式会社 | 用于并行连续取消解码和连续取消列表解码的设备和方法 |
CN107911124A (zh) * | 2017-11-29 | 2018-04-13 | 哈尔滨工业大学 | 一种非递归的sc译码部分和确定方法及装置 |
WO2018161941A1 (zh) * | 2017-03-10 | 2018-09-13 | 华为技术有限公司 | 一种Polar码的速率匹配方法及装置 |
WO2018171516A1 (en) * | 2017-03-22 | 2018-09-27 | Huawei Technologies Co., Ltd. | Method and apparatus for error-correction encoding using a polar code |
CN108768586A (zh) * | 2017-03-25 | 2018-11-06 | 华为技术有限公司 | 一种速率匹配的方法和装置 |
CN110326221A (zh) * | 2017-02-24 | 2019-10-11 | 华为技术有限公司 | 一种用于为极化码生成有序序列的方法 |
CN110516332A (zh) * | 2019-08-15 | 2019-11-29 | 浪潮电子信息产业股份有限公司 | 并行计算结果的过滤方法及系统 |
CN110741558A (zh) * | 2017-06-15 | 2020-01-31 | 交流通讯有限公司 | 具有逻辑三维存储器的极化编码器、通信单元、集成电路及其方法 |
WO2020052537A1 (zh) * | 2018-09-14 | 2020-03-19 | 华为技术有限公司 | 极化码的译码方法及设备 |
CN111614362A (zh) * | 2020-06-10 | 2020-09-01 | 重庆邮电大学 | 一种基于均匀量化的极化码快速简化串行抵消译码算法 |
CN112104378A (zh) * | 2019-06-18 | 2020-12-18 | 大唐移动通信设备有限公司 | 一种极化码译码处理方法、装置及设备 |
CN114679242A (zh) * | 2016-04-08 | 2022-06-28 | 苹果公司 | 用于harq传输的极化码 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100074477A1 (en) * | 2006-09-29 | 2010-03-25 | Oki Elecric Industry Co., Ltd. | Personal authentication system and personal authentication method |
CN102122966A (zh) * | 2011-04-15 | 2011-07-13 | 北京邮电大学 | 基于信道极化的交错结构重复码的编码器及其编译码方法 |
CN102164025A (zh) * | 2011-04-15 | 2011-08-24 | 北京邮电大学 | 基于重复编码和信道极化的编码器及其编译码方法 |
CN102694625A (zh) * | 2012-06-15 | 2012-09-26 | 北京邮电大学 | 一种循环冗余校验辅助的极化码译码方法 |
US20140050410A1 (en) * | 2010-12-12 | 2014-02-20 | Chronos Vision Gmbh | Method and device for determining the torsional component of the eye position |
CN104079370A (zh) * | 2013-03-27 | 2014-10-01 | 华为技术有限公司 | 信道编译码方法及装置 |
CN104079382A (zh) * | 2014-07-25 | 2014-10-01 | 北京邮电大学 | 一种基于概率计算的极化码译码器和极化码译码方法 |
-
2015
- 2015-04-28 CN CN201510208465.0A patent/CN105049061B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100074477A1 (en) * | 2006-09-29 | 2010-03-25 | Oki Elecric Industry Co., Ltd. | Personal authentication system and personal authentication method |
US20140050410A1 (en) * | 2010-12-12 | 2014-02-20 | Chronos Vision Gmbh | Method and device for determining the torsional component of the eye position |
CN102122966A (zh) * | 2011-04-15 | 2011-07-13 | 北京邮电大学 | 基于信道极化的交错结构重复码的编码器及其编译码方法 |
CN102164025A (zh) * | 2011-04-15 | 2011-08-24 | 北京邮电大学 | 基于重复编码和信道极化的编码器及其编译码方法 |
CN102694625A (zh) * | 2012-06-15 | 2012-09-26 | 北京邮电大学 | 一种循环冗余校验辅助的极化码译码方法 |
CN104079370A (zh) * | 2013-03-27 | 2014-10-01 | 华为技术有限公司 | 信道编译码方法及装置 |
CN104079382A (zh) * | 2014-07-25 | 2014-10-01 | 北京邮电大学 | 一种基于概率计算的极化码译码器和极化码译码方法 |
Cited By (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105356891A (zh) * | 2015-11-26 | 2016-02-24 | 中国地质大学(武汉) | 一种高资源利用率的极性译码批处理方法 |
CN105356891B (zh) * | 2015-11-26 | 2018-11-27 | 中国地质大学(武汉) | 一种高资源利用率的极性译码批处理方法 |
CN105515590A (zh) * | 2015-12-09 | 2016-04-20 | 东南大学 | 一种基于随机二进制数据流的有效低复杂度串行抵消列表极化码译码算法及其译码构架 |
CN105515590B (zh) * | 2015-12-09 | 2019-01-25 | 东南大学 | 一种有效低复杂度串行抵消列表极化码译码方法 |
CN114679242A (zh) * | 2016-04-08 | 2022-06-28 | 苹果公司 | 用于harq传输的极化码 |
CN114679242B (zh) * | 2016-04-08 | 2024-02-02 | 苹果公司 | 用于harq传输的极化码 |
WO2018027669A1 (en) * | 2016-08-10 | 2018-02-15 | Qualcomm Incorporated | Rate matching for block encoder |
WO2018028294A1 (en) * | 2016-08-10 | 2018-02-15 | Qualcomm Incorporated | Rate matching for block encoding |
US11218177B2 (en) | 2016-08-10 | 2022-01-04 | Qualcomm Incorporated | Rate matching for block encoding |
CN109565287A (zh) * | 2016-08-19 | 2019-04-02 | 华为技术有限公司 | 降级极化解码 |
WO2018032986A1 (en) * | 2016-08-19 | 2018-02-22 | Huawei Technologies Co., Ltd. | Reduced-stage polar decoding |
US10447435B2 (en) | 2016-08-19 | 2019-10-15 | Huawei Technologies Co., Ltd. | Reduced-stage polar decoding |
CN107846261A (zh) * | 2016-09-20 | 2018-03-27 | 三星电子株式会社 | 用于并行连续取消解码和连续取消列表解码的设备和方法 |
CN107846261B (zh) * | 2016-09-20 | 2021-08-10 | 三星电子株式会社 | 用于并行连续取消解码和连续取消列表解码的设备和方法 |
CN110326221A (zh) * | 2017-02-24 | 2019-10-11 | 华为技术有限公司 | 一种用于为极化码生成有序序列的方法 |
US10985871B2 (en) | 2017-02-24 | 2021-04-20 | Huawei Technologies Co., Ltd. | Method to generate ordered sequence for polar codes |
WO2018161941A1 (zh) * | 2017-03-10 | 2018-09-13 | 华为技术有限公司 | 一种Polar码的速率匹配方法及装置 |
WO2018171516A1 (en) * | 2017-03-22 | 2018-09-27 | Huawei Technologies Co., Ltd. | Method and apparatus for error-correction encoding using a polar code |
US10651973B2 (en) | 2017-03-22 | 2020-05-12 | Huawei Technologies Co., Ltd. | Method and apparatus for error-correction encoding using a polar code |
CN108768586A (zh) * | 2017-03-25 | 2018-11-06 | 华为技术有限公司 | 一种速率匹配的方法和装置 |
US10440606B2 (en) | 2017-03-25 | 2019-10-08 | Huawei Technologies Co., Ltd. | Method and device for transmitting data |
US11700545B2 (en) | 2017-03-25 | 2023-07-11 | Huawei Technologies Co., Ltd. | Method and device for transmitting data |
US10567994B2 (en) | 2017-03-25 | 2020-02-18 | Huawei Technologies Co., Ltd. | Method and device for transmitting data |
US11432186B2 (en) | 2017-03-25 | 2022-08-30 | Huawei Technologies Co., Ltd. | Method and device for transmitting data with rate matching |
CN108768586B (zh) * | 2017-03-25 | 2019-07-12 | 华为技术有限公司 | 一种速率匹配的方法和装置 |
CN110741558B (zh) * | 2017-06-15 | 2023-08-01 | 交流通讯有限公司 | 具有逻辑三维存储器的极化编码器、通信单元、集成电路及其方法 |
CN110741558A (zh) * | 2017-06-15 | 2020-01-31 | 交流通讯有限公司 | 具有逻辑三维存储器的极化编码器、通信单元、集成电路及其方法 |
CN107911124B (zh) * | 2017-11-29 | 2021-04-02 | 哈尔滨工业大学 | 一种非递归的sc译码部分和确定方法及装置 |
CN107911124A (zh) * | 2017-11-29 | 2018-04-13 | 哈尔滨工业大学 | 一种非递归的sc译码部分和确定方法及装置 |
CN110912567A (zh) * | 2018-09-14 | 2020-03-24 | 华为技术有限公司 | 极化码的译码方法及设备 |
WO2020052537A1 (zh) * | 2018-09-14 | 2020-03-19 | 华为技术有限公司 | 极化码的译码方法及设备 |
CN112104378A (zh) * | 2019-06-18 | 2020-12-18 | 大唐移动通信设备有限公司 | 一种极化码译码处理方法、装置及设备 |
CN112104378B (zh) * | 2019-06-18 | 2024-01-26 | 大唐移动通信设备有限公司 | 一种极化码译码处理方法、装置及设备 |
CN110516332A (zh) * | 2019-08-15 | 2019-11-29 | 浪潮电子信息产业股份有限公司 | 并行计算结果的过滤方法及系统 |
US11886534B2 (en) | 2019-08-15 | 2024-01-30 | Inspur Electronic Information Industry Co., Ltd. | Filtering method and system of parallel computing results |
CN111614362A (zh) * | 2020-06-10 | 2020-09-01 | 重庆邮电大学 | 一种基于均匀量化的极化码快速简化串行抵消译码算法 |
Also Published As
Publication number | Publication date |
---|---|
CN105049061B (zh) | 2018-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105049061A (zh) | 基于超前计算的高维基极化码译码器和极化码译码方法 | |
CN104079382A (zh) | 一种基于概率计算的极化码译码器和极化码译码方法 | |
CN107423816B (zh) | 一种多计算精度神经网络处理方法和系统 | |
CN105912501B (zh) | 一种基于大规模粗粒度可重构处理器的sm4-128加密算法实现方法及系统 | |
CN101782893A (zh) | 可重构数据处理平台 | |
CN102377437B (zh) | 一种准循环低密度奇偶校验码编码方法和装置 | |
CN114830134A (zh) | 用于解码经编码数据的递归神经网络和系统 | |
CA2725136A1 (en) | Microprocessor techniques for real signal processing and updating | |
CN100542049C (zh) | 一种多码率的ldpc码的译码器装置及译码方法 | |
CN108462496B (zh) | 一种基于随机比特流更新的ldpc译码器 | |
CN104158549A (zh) | 一种极性码译码方法及译码装置 | |
CN101478313B (zh) | 一种ldpc译码器的最小值计算装置及其构造方法 | |
CN103166648B (zh) | 一种ldpc解码器及其实现方法 | |
CN111313912B (zh) | 一种ldpc码编码器及编码方法 | |
CN112232499A (zh) | 卷积神经网络加速器 | |
CN109672524A (zh) | 基于粗粒度可重构架构的sm3算法轮迭代系统及迭代方法 | |
CN112632465B (zh) | 基于fpga的实对称矩阵特征值分解的数据存储方法 | |
CN102201817A (zh) | 基于存储器折叠架构优化的低功耗ldpc译码器 | |
CN113988279A (zh) | 一种支持负值激励的存算阵列输出电流读出方法及系统 | |
Wang et al. | EERA-DNN: An energy-efficient reconfigurable architecture for DNNs with hybrid bit-width and logarithmic multiplier | |
Dai et al. | An energy-efficient bit-split-and-combination systolic accelerator for nas-based multi-precision convolution neural networks | |
KR20220131333A (ko) | 산술 논리 유닛 | |
CN113381769B (zh) | 一种基于fpga的译码器 | |
RU2795887C2 (ru) | Матрично-векторный умножитель с набором регистров для хранения векторов, содержащим многопортовую память | |
US20230161556A1 (en) | Memory device and operation method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |