一种降低极化码译码时延的方法
技术领域
本发明属于信道编译码技术领域,具体涉及通信系统信道译码器中一种基于串行抵消列表译码的极化码低时延改进方法。
背景技术
极化码是一种新型编码方式,是目前唯一可理论证明在二进制离散无记忆信道下达到香农极限,并且具有可实用的线性复杂度编译码能力的信道编码技术,成为下一代通信系统(5G)中信道编码方案的强有力候选者。串行抵消(SC,Successive Cancellation)译码是一种低复杂度的译码方法,而串行抵消列表(SCL,Successive Cancellation List)译码方法能够实现更好的误码率性能。串行抵消译码是从译码树的根节点开始,通过递归计算的方式深入到叶节点,在叶节点进行判别。由于其串行抵消译码的特点,时延较长是该译码方法最迫切需要解决的问题。然而基于串行抵消列表的译码方法,与经典低时延置信传播(BP,Belief Propagation)译码方法相比,仍有较大差距,译码时延和运算复杂度均较高。
发明内容
为解决上述问题,本发明公开了一种有效降低串行抵消译码时延的方法,在遍历到译码树的某一节点时,运用极化码校验矩阵进行校验。如果校验成功,则直接进行门限判别译码后返回父节点,从而降低译码时延。
为了达到上述目的,本发明提供如下技术方案:
一种降低极化码译码时延的方法,包括如下步骤:
步骤1,计算对数似然比初始值
采用树形译码结构,对于一个码长为N,信息位长度为K的极化码,其译码树为深度为n=log2N的二叉树,采用基于串行抵消的译码方法从根节点开始递归遍历整个译码树,树节点之间传递待译符号的对数似然比LLR,LLR初始值通过如下方式计算得到:
其中,ui表示发送比特,L(ui)表示ui的对数似然比,yi为译码器接收到的待译码的符号,Pr(yi|ui)表示发送符号为ui时接收到符号yi的概率,Pr(yi|ui)从解调器的软判决信息中得到,译码开始时,由公式(1)计算接收符号的对数似然比并传递给根节点,激活根节点;
步骤2,递归遍历译码树
对于译码树上的一个节点v,其包含的叶节点的个数为Nv,该节点从父节点接收一个长度为Nv的LLR值序列,记为αv,由αv计算要传递给左子节点的LLR值序列αl:
αl[i]=sgn(αv[i])sgn(αv[i+Nv/2])min(|αv[i]|,|αv[i+Nv/2]}),0≤i<Nv/2(2)
其中,i是向量αv的位置索引,av[i]表示αv的第i个元素,
以递归的方式遍历左子节点,返回后从左子节点接收到长度为Nv/2的比特序列βl,然后计算要传递给右子节点的LLR值序列αr:
ar[i]=av[i+Nv/2]-(2βl[i]-1)av[i],0≤i<Nv/2 (3)
以递归的方式遍历右子节点,返回后从右子节点接收到长度为Nv的比特序列βr,然后计算要返回给父节点的比特序列βv:
步骤3,特殊节点译码
在步骤2递归遍历左右节点的过程中,当遇到特殊节点中的至少一种时,则不再向下递归而直接译码后返回父节点,所述特殊节点包括Rate-0节点、Rate-1节点、REP节点,SPC节点;
所述Rate-0节点包含的叶节点全是休眠位比特,所述Rate-1节点包含的叶节点全是信息位比特,所述REP节点包含的叶节点只有最后一位是信息位比特,所述SPC节点包含的叶节点只有第一位是休眠位比特;
Rate-0节点的译码策略如下:
βv[i]=0,0≤i<Nv (5)
Rate-0节点不分裂新的译码路径;
Rate-1节点的译码策略如下:
βv[i]=h(αv[i]),0≤i<Nv (6)
其中,
Rate-1节点分裂出4个译码路径,找到序列αv中绝对值最小的两个,记为αv[min1],αv[min 2],min1、min2为其分别在序列av中的位置索引,将βv[min 1]或βv[min 2]比特位反转;
REP节点的译码策略如下:
REP节点分裂出2个译码路径,βv分别为全0比特或者全1比特;
SPC节点的译码策略如下:
βv[i]=h(αv[i]),0≤i<Nv (9)
如果SPC节点的译码结果βv不满足奇偶校验,则找到序列αv中绝对值最小的,记为αv[min],min是其在序列αv中的索引,然后将βv[min]中的比特位反转,SPC节点分裂出4个译码路径,方法与Rate-1节点相同;
步骤4,利用校验矩阵降低译码时延
在步骤2递归遍历译码树节点的过程中,如果该节点不是步骤3中定义的特殊节点,对于列表中的每个存活路径,在利用公式(2)计算αl的同时,判断h(αv)ΗΤ=0(H矩阵校验)是否成立,h(·)为公式(7),H为极化码校验矩阵:
其中,N
v为该节点包含的叶节点的数量,()
T表示矩阵转置,
为码长为N
v的极化码生成矩阵,A为固定位索引集合,
是由A中索引指定的
的行构成的子矩阵;
所有路径都执行完H矩阵校验后,按照下式判断
其中,PMi是第i个路径的度量值,ZH为满足H矩阵校验的路径索引集合,L是列表大小,t是小于1的门限参数(t的取值用户可以根据实际情况自行确定)。
如果公式(12)成立,则对应每个译码路径,都有
βv[i]=h(αv[i]),0≤i<Nv (13)
译码路径分裂方法同第三步中的Rate-1节点相同,然后返回父节点;
如果公式(12)不成立,则继续执行步骤2中剩余步骤;
步骤5,根据循环冗余校验选择最终译码结果
如果译码树从根节点返回,对于列表中的第l个译码路径P
l,其返回的比特序列β
v记为β
v (l),则路径P
l的译码结果
为:
其中,G
n为码长为n的极化码生成矩阵,如果
满足循环冗余校验,则将
选为最终译码结果,如果所有存活路径的译码结果
均不满足循环冗余校验,则选择路径度量值PM最小的路径所得到的
作为最终译码结果,整个译码过程结束。
具体的,译码开始时,列表里只有一条译码路径,对于列表中的每条译码路径,都需要独立进行译码和路径分裂,分裂后产生的新路径添加到同一列表中,当列表中路径数量多于设定的最大值Lmax,则只保留PM值最大的Lmax个路径,所述PM为用于评价每条译码路径优劣的度量值,每次分裂后新产生的路径根据新产生的βv序列,更新每个路径的度量值PM:
其中,PMs为源路径的PM值,PMn为新路径的PM值。
作为优选,初始路径的PM值设为0。
与现有技术相比,本发明具有如下优点和有益效果:
本发明在极化码译码递归遍历译码树的过程中,利用极化码的校验矩阵进行校验,在校验成立时不再递归遍历子节点,从而有效降低译码时延。由于利用校验矩阵进行判定可以与其他步骤并发执行,不会增加额外的译码时延。本发明能够显著降低串行抵消方法的译码时延,与经典的低时延译码方法置信传播译码相比,时延特性可以逼近置信传播译码而误码率性能和计算复杂度显著优于置信传播译码,当信噪比越高时,本方法的译码时延降低越明显。
附图说明
图1为码长N=8,信息位长度K=4的一个极化码译码树实例。
图2为本发明提供的降低极化码译码时延的方法步骤流程图。
具体实施方式
以下将结合具体实施例对本发明提供的技术方案进行详细说明,应理解下述具体实施方式仅用于说明本发明而不用于限制本发明的范围。
本发明以终端接收设备为例来给出一种译码器实施例,硬件环境为NIC6000系列DSP芯片,用于说明基于串行抵消列表的降低极化码译码时延的方法。如图2所述,本发明方法包括如下步骤:
步骤1,计算对数似然比初始值。
本发明采用树形译码结构,对于一个码长为N,信息位长度为K的极化码,其译码树为深度为n=log2N的二叉树。图1给出了N=8、K=4一个译码树实例,图中白色叶节点表示休眠位比特,黑色叶节点表示信息位比特。基于串行抵消的译码方法从根节点开始递归遍历整个译码树。
译码时需要在节点之间传递待译符号的对数似然比(LLR,log-likelihoodratio),LLR初始值通过如下方式计算得到:
其中,ui表示发送比特,L(ui)表示ui的对数似然比,yi为译码器接收到的待译码的符号,Pr(yi|ui)表示发送符号为ui时,接收到符号yi的概率。Pr(yi|ui)可从解调器的软判决信息中得到。译码开始时,由公式(1)计算接收符号的对数似然比并传递给根节点,激活根节点。
步骤2,递归遍历译码树。
如图1所示,对于译码树上的一个节点v,其包含的叶节点的个数为Nv,该节点从父节点接收一个长度为Nv的LLR值序列,记为αv。然后由αv计算要传递给左子节点的LLR值序列αl:
αl[i]=sgn(αv[i])sgn(αv[i+Nv/2])min(|αv[i]|,|αv[i+Nv/2]|),0≤i<Nv/2(2)
其中,i是向量αv的位置索引,av[i]表示αv的第i个元素,
以递归的方式遍历左子节点,返回后从左子节点接收到长度为Nv/2的比特序列βl,然后计算要传递给右子节点的LLR值序列αr:
ar[i]=av[i+Nv/2]-(2βl[i]-1)av[i],0≤i<Nv/2 (3)
以递归的方式遍历右子节点,返回后从右子节点接收到长度为Nv的比特序列βr,然后计算要返回给父节点的比特序列βv:
步骤3,特殊节点译码。
在步骤2递归遍历左右节点的过程中,如果遇到以下几种类型的节点,则不再向下递归而直接译码后返回父节点。这几种节点类型分别是:若其包含的叶节点全是休眠位比特,则记为Rate-0节点;若其包含的叶节点全是信息位比特,则记为Rate-1节点;若其包含的叶节点只有最后一位是信息位比特,则记为REP(Repetition Nodes)节点;若其包含的叶节点只有第一位是休眠位比特,则记为SPC(Single Parity Check Nodes)节点。
本步骤中NV、αv、βv的定义同步骤1。以下是上述4种类型的节点相应的译码策略。
如果是Rate-0节点,则:
βv[i]=0,0≤i<Nv (5)
Rate-0节点不分裂新的译码路径。
如果是Rate-1节点,则:
βv[i]=h(αv[i]),0≤i<Nv (6)
其中,
Rate-1节点分裂出4个译码路径,找到序列αv中绝对值最小的两个,记为αv[min1],αv[min 2],min1、min2为其分别在序列av中的位置索引。αv向量中的数值的绝对值越小,βv中对应位置的比特译码置信度越低,即越容易发生错误判决。将βv[min 1]或βv[min 2]比特位反转,则可以有4种组合方式,即产生4个新的βv,分别对应于4个译码路径。把βv[min 1]和βv[min 2]两个比特的所有可能性都考虑进来,可以降低译码出错的概率。
如果是REP节点,则:
REP节点分裂出2个译码路径,βv分别为全0比特或者全1比特。
如果是SPC节点,则:
βv[i]=h(αv[i]),0≤i<Nv (9)
如果SPC节点的译码结果βv不满足奇偶校验,则找到序列αv中绝对值最小的,记为αv[min],min是其在序列αv中的索引,然后将βv[min]中的比特位反转;如果满足奇偶校验,则βv[min]不需要反转。SPC节点分裂出4个译码路径,方法与Rate-1节点相同,即找出αv中绝对值最小的两个。
译码开始时,列表里只有一条译码路径,每条译码路径都有一个评价路径优劣的度量值PM(Path Metric),初始路径的PM值设为0。每次分裂后新产生的路径根据新产生的βv序列,更新每个路径的度量值PM:
其中,PMs为源路径的PM值,PMn为新路径的PM值,|·|表示取绝对值符号。
对于列表中的每条译码路径,都需要独立进行译码和路径分裂,分裂后产生的新路径添加到同一列表中,如果列表中路径数量多于设定的最大值Lmax(Lmax取值为常整数,该取值可由运营商根据误码率要求情况自行确定,Lmax越大,误码率越低),则只保留PM值最大的Lmax个路径。
步骤4,利用校验矩阵降低译码时延。
在步骤2递归遍历译码树节点的过程中,如果该节点不是步骤3中定义的特殊节点。对于列表中的每个存活路径,在利用公式(2)计算αl的同时,判断h(αv)ΗΤ=0(H矩阵校验)是否成立,h(·)为公式(7),H为极化码校验矩阵:
其中,N
v为该节点包含的叶节点的数量,()
T表示矩阵转置,
为码长为N
v的极化码生成矩阵,A为固定位索引集合,
是由A中索引指定的
的行构成的子矩阵。
如果要求所有路径都满足H矩阵校验,条件过于苛刻。所以考虑到每个路径的优先级不同,按照下列方法判断
其中,PMi是第i个路径的度量值,ZH为满足H矩阵校验的路径索引集合,L是列表大小,t是小于1的门限参数(t的取值用户可以根据实际情况自行确定)。
如果公式(12)成立,则对应每个译码路径,都有
βv[i]=h(αv[i]),0≤i<Nv (13)
译码路径分裂方法同第三步中的Rate-1节点相同,即找出αv中绝对值最小的两个,然后反转对应的比特位,分裂出四个译码路径。然后返回父节点。
如果公式(12)不成立,则继续执行步骤2中剩余步骤。由于本方法采用的校验矩阵检测是与αl的计算同时进行的,校验矩阵检测不成立时也不会增加额外的计算时延。h(αv)ΗΤ=0成立时,不再往下递归遍历子节点,因而可以有效降低译码时延。
步骤5,根据循环冗余校验选择最终译码结果。
如果译码树从根节点返回,对于列表中的第l个译码路径P
l,其返回的比特序列β
v记为β
v (l),则路径P
l的译码结果
为:
其中,G
n为码长为n的极化码生成矩阵。如果
满足循环冗余校验,则将
选为最终译码结果。如果所有存活路径的译码结果
均不满足循环冗余校验,则选择路径度量值PM最小的路径所得到的
作为最终译码结果,整个译码过程结束。
本发明方案所公开的技术手段不仅限于上述实施方式所公开的技术手段,还包括由以上技术特征任意组合所组成的技术方案。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。