本发明涉及通信技术领域,特别是涉及一种极化码译码方法及装置。
背景技术:
极化码(polarcode)作为目前唯一可理论证明达到香农极限,并且具有可实用的线性复杂度编译码能力的信道编码技术,成为下一代通信系统5g中信道编码方案的强有力候选者。
发送端将极化码编码的码字向接收端发送,由于传输的过程中会收到噪声等干扰,接收端接收到的码字并不等同于发送端发送的极化码。因此,需要对接收端的码字进行译码,得到原始的极化码。
现有的极化码译码方法大致分为两种,一种是引入循环冗余校验(cyclicredundancycheck,crc)的串行抵消列表(serialcancellationlistdecodin,scl)译码算法,然而当列表不够大时,该算法不能达到最大似然译码(maximumlikelihood,ml)的性能。另一种是球译码(spheredecoding,sd),球译码可以达到ml性能,但球译码具有较高的复杂度,在实际的通信系统中很难应用。
技术实现要素:
本发明实施例的目的在于提供一种极化码译码方法及装置,以实现以较低的计算复杂度达到极化码的最大似然译码的性能。具体技术方案如下:
为实现上述目的,本发明实施例提供了一种极化码译码方法,所述方法包括:
对接收的码字序列进行串行抵消列表译码;
判断所述串行抵消列表译码的译码结果是否通过循环冗余校验;
若未通过循环冗余校验,则基于所述串行抵消列表译码的译码结果确定球译码初始半径;
基于所述球译码初始半径,对接收的码字序列进行球译码,得到球译码的译码结果。
可选的,所述串行抵消列表译码的最大列表数为lmax,所述基于所述串行抵消列表译码的译码结果确定球译码初始半径的步骤,包括:
确定所述串行抵消列表译码的译码结果中包含的lmax条译码路径
基于所述lmax条译码路径
基于循环冗余校验的编码规则,对所述lmax个译码消息序列
基于编码序列
基于所述译码信息序列
可选的,所述基于所述译码信息序列
基于如下公式,确定所述球译码初始半径r:
其中,y表示接收的码字序列,1n表示全1向量,b表示比特置换矩阵,g表示极化码的生成矩阵。
可选的,若所述串行抵消列表译码的译码结果通过循环冗余校验,则在通过循环冗余校验的译码路径中选取译码可靠度最高的译码路径,作为极化码译码结果。
为实现上述目的,本发明实施例提供了一种极化码译码装置,所述装置包括:
第一译码模块,用于对接收的码字序列进行串行抵消列表译码;
判断模块,用于判断所述串行抵消列表译码的译码结果是否通过循环冗余校验;
确定模块,用于若未通过循环冗余校验,则基于所述串行抵消列表译码的译码结果确定球译码初始半径;
第二译码模块,用于基于所述球译码初始半径,对接收的码字序列进行球译码,得到球译码的译码结果。
可选的,所述串行抵消列表译码的最大列表数为lmax,所述确定模块,具体用于:
确定所述串行抵消列表译码的译码结果中包含的lmax条译码路径
基于所述lmax条译码路径
基于循环冗余校验的编码规则,对所述lmax个译码消息序列
基于编码序列
基于所述译码信息序列
可选的,所述确定模块,具体用于:
基于如下公式,确定所述球译码初始半径r:
其中,y表示接收的码字序列,1n表示全1向量,b表示比特置换矩阵,g表示极化码的生成矩阵。
可选的,所述装置还包括选择模块,
所述选择模块,用于若所述串行抵消列表译码的译码结果通过循环冗余校验,则在通过循环冗余校验的译码路径中选取译码可靠度最高的译码路径,作为极化码译码结果。
为实现上述目的,本发明实施例还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一方法步骤。
为实现上述目的,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一方法步骤。
可见,应用本发明实施例提供的极化码译码方法及装置,对接收的码字序列进行串行抵消列表译码;判断所述串行抵消列表译码的译码结果是否通过循环冗余校验;若未通过循环冗余校验,则基于所述串行抵消列表译码的译码结果确定球译码初始半径;基于所述球译码初始半径,对接收的码字序列进行球译码,得到球译码的译码结果。当串行抵消列表译码的译码结果无法通过循环冗余校验时,可以基于串行抵消列表译码的译码结果确定球译码的初始半径,相比于现有的直接采用球译码时,需要预设较大的初始半径的方法,能够显著降低计算复杂度。此外,本发明实施例提供的串行抵消列表译码与球译码相结合的译码方法,能够达到极化码的最大似然译码的性能。
当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的极化码译码方法的一种流程图;
图2为本发明实施例提供的极化码译码方法的另一种流程图;
图3为本发明实施例提供的不同码率下的误码率的一种仿真示意图;
图4为本发明实施例提供的不同码率下的计算复杂度的一种仿真示意图;
图5为本发明实施例提供的极化码译码装置的一种结构示意图;
图6为本发明实施例提供的电子设备的一种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种极化码译码方法、装置,该方法可以应用于基于极化码编码的通信系统中的接收端。
为了便于理解,先对本发明的应用场景简要介绍。在基于极化码编码的通信系统中,发送端进行极化码编码,将极化码发送至接收端,由于传输过程中噪声的影响,接收端接收到的是受到噪声影响的极化码,接收端需要进行译码,以还原出发送端发送的极化码。本发明实施例提供的极化码译码方法即可应用于接收端。
在极化码编码过程中,会预先设置以下参数:消息序列b,信息位集合
设发送端将极化码调制后发送的序列为x,接收端接收到的序列为y=x+n,其中,n表示信号传输中收到的噪声序列。则接收端可以采用本发明实施例提供的极化码译码方法,基于接收的序列y,译码得到发送序列x。
参见图1,图1为本发明实施例提供的极化码译码方法的一种流程图,可以包括以下步骤:
s101:对接收的码字序列进行串行抵消列表译码。
本发明实施例中,接收端可以对接收的码字序列先进行串行抵消列表译码,其中,串行抵消列表译码是一种现有的极化码译码方法。
串行抵消列表译码过程中,能够根据预设的列表数得到相同数目的译码路径。每个译码路径都可以看作是一个译码结果。
s102:判断串行抵消列表译码的译码结果是否通过循环冗余校验,若不通过,则执行步骤s103。
本发明实施例中,可以预先设置串行抵消列表译码的最大列表数,记为lmax,则可以得到lmax个译码路径。可以针对每个译码路径进行循环冗余校验。本领域技术人员容易理解的,若通过循环冗余校验,则该译码结果是可用的。若未通过循环冗余校验,则该译码结果是不可用的。
s103:基于所述串行抵消列表译码的译码结果确定球译码初始半径。
本发明实施例中,若lmax个译码路径均无法通过循环冗余校验,可以进一步采用球译码的方法继续完成译码过程。可以基于串行抵消列表译码的译码结果,确定球译码的初始半径。
在本发明的一种实施例中,步骤s103具体可以包括以下细化步骤:
s1031:确定串行抵消列表译码的译码结果中包含的lmax条译码路径
由于最大列表数为lmax,因此串行抵消列表译码的译码结果可以包含lmax条译码路径
s1032:基于所述lmax条译码路径
其中,基于译码路径
s1033:基于循环冗余校验的编码规则,对所述lmax个译码消息序列
本发明实施例中,根据译码路径
s1034:基于编码序列
本发明实施例中,由于编码序列
本领域技术人员应当理解,译码信息序列
s1035:基于所述译码信息序列
本发明实施例中,可以基于译码信息序列
在本发明的一种实施例中,可以基于如下公式,确定球译码的初始半径r:
其中,y表示接收的码字序列,
本领域技术人员能够理解,比特置换矩阵b和极化码的生成矩阵g是极化码通信系统中发送端和接收端均已知的,比特置换矩阵b和生成矩阵g在发送端用于极化码的编码,在接收端用于极化码的解码。
其中,
s104:基于球译码初始半径,对接收的码字序列进行球译码,得到球译码的译码结果。
确定球译码初始半径后,可以基于对接收的码字序列进行球译码,得到球译码的译码结果。球译码的译码结果也即极化码译码的最终结果。
球译码属于极化码译码中的现有技术,能够达到最大似然译码的性能。本发明实施例中,可以根据串行抵消列表译码的译码结果确定球译码的初始半径,相比于现有的直接采用球译码时,需要预设较大的初始半径的方法,能够显著降低计算复杂度。
可见,应用本发明实施例提供的极化码译码方法,对接收的码字序列进行串行抵消列表译码;判断所述串行抵消列表译码的译码结果是否通过循环冗余校验;若未通过循环冗余校验,则基于所述串行抵消列表译码的译码结果确定球译码初始半径;基于所述球译码初始半径,对接收的码字序列进行球译码,得到球译码的译码结果。当串行抵消列表译码的译码结果无法通过循环冗余校验时,可以基于串行抵消列表译码的译码结果确定球译码的初始半径,相比于现有的直接采用球译码时,需要预设较大的初始半径的方法,能够显著降低计算复杂度。此外,本发明实施例提供的串行抵消列表译码与球译码相结合的译码方法,能够达到极化码的最大似然译码的性能。
在本发明的一种实施例中,当所述串行抵消列表译码的译码结果中存在能够通过循环冗余校验的译码路径,则可以在能够通过循环冗余校验的译码路径中,选取译码可靠度最高的译码路径,作为极化码的译码结果。
在这种情况下,无需再确定球译码的初始半径,也无法再进行球译码过程。
为了便于理解,下面结合图2对本发明的另一种实施例进行介绍,图2为本发明实施例提供的极化码译码方法的另一种流程图。
s201:初始化列表大小l为1,设最大列表大小为lmax。
s202:对接收的码字序列y进行列表大小为l的串行抵消列表译码,设l个译码路径分别为
s203:判断上述l个译码路径中是否有通过循环冗余校验的译码路径。是则执行步骤s204,否则执行步骤s205。
s204:在通过循环冗余校验的译码路径中选取译码可靠度最高的译码路径,作为极化码译码结果。
s205:判断当前l是否大于最大列表数lmax,若不大于,则执行s206,若大于则执行s207。
s206:将l赋值为当前值的二倍,并返回步骤s202。
s207:基于所述串行抵消列表译码的译码结果确定球译码初始半径。
s208:基于球译码初始半径,对接收的码字序列进行球译码,得到球译码的译码结果。
其中,s207-s208与图1所示实施例中的s103-s104相同,在此不赘述。
下面结合仿真实验图进行进一步说明。
参见图3,图3为本发明实施例提供的不同码率下的误码率的一种仿真示意图。图3中横坐标表示符号信噪比,纵坐标表示误码率。其中,空心圆圈之间的连线表示串行抵消列表译码,空心三角形之间的连线表示球译码,叉号表示本发明实施例提供的混合译码,虚线表示有限码长仙农限,r表示码率,如图3所示,在三种不同码率下,本发明实施例提供的混合译码方法都逼近于球译码的译码性能,即逼近极化码的最大似然译码性能。同时,当码率为1/3时,本发明实施例提供的混合译码方法与有限码长仙农限性能一致;当码率为1/2和2/3时,本发明实施例提供的混合译码方法能够在中低信噪比区间逼近有限码长仙农限。且在误码率为10-3时,本发明实施例提供的混合译码方法相比于有限码长仙农限,在码率为1/2和2/3时,分别仅有0.08db和0.23db的性能差距。
参见图4,图4为本发明实施例提供的不同码率下的误码率的计算复杂度的一种仿真示意图。图4中横坐标表示符号信噪比,纵坐标表示平均节点访问量,平均节点访问量能够表示计算复杂度。和图3相同的,空心圆圈之间的连线表示串行抵消列表译码,空心三角形之间的连线表示球译码,叉号表示本发明实施例提供的混合译码,r表示码率。如图4所示,本发明实施例提供的混合译码方法的计算复杂度在串行抵消列表译码算法和球译码之间,且随着信噪比的增加,本发明实施例提供的混合译码方法的计算复杂度逐渐逼近于串行抵消列表译码算法的计算复杂度,相比于球译码,能够改善两个量级的计算复杂度。
可见,本发明实施例提供的混合译码算法,相比于直接采用球译码,需要预设较大的初始半径的方法,能够显著降低计算复杂度。此外,相比于串行抵消列表译码算法,能够达到极化码的最大似然译码的性能。
基于相同的发明构思,根据上述极化码译码方法实施例,本发明实施例还提供了一种极化码译码装置,参见图5,可以包括以下模块:
第一译码模块501,用于对接收的码字序列进行串行抵消列表译码;
判断模块502,用于判断串行抵消列表译码的译码结果是否通过循环冗余校验;
确定模块503,用于若未通过循环冗余校验,则基于所述串行抵消列表译码的译码结果确定球译码初始半径;
第二译码模块504,用于基于所述球译码初始半径,对接收的码字序列进行球译码,得到球译码的译码结果。
在本发明的一种实施例中,所述串行抵消列表译码的最大列表数为lmax,所述确定模块503,具体可以用于:
确定所述串行抵消列表译码的译码结果中包含的lmax条译码路径
基于所述lmax条译码路径
基于循环冗余校验的编码规则,对所述lmax个译码消息序列
基于编码序列
基于所述译码信息序列
在本发明的一种实施例中,确定模块503,具体可以用于:
基于如下公式,确定所述球译码初始半径r:
其中,y表示接收的码字序列,1n表示全1向量,b表示比特置换矩阵,g表示极化码的生成矩阵。
在本发明的一种实施例中,在图5所示装置的基础上,还可以包括:选择模块,选择模块用于:若所述串行抵消列表译码的译码结果通过循环冗余校验,则在通过循环冗余校验的译码路径中选取译码可靠度最高的译码路径,作为极化码译码结果。
可见,应用本发明实施例提供的极化码译码装置,对接收的码字序列进行串行抵消列表译码;判断所述串行抵消列表译码的译码结果是否通过循环冗余校验;若未通过循环冗余校验,则基于所述串行抵消列表译码的译码结果确定球译码初始半径;基于所述球译码初始半径,对接收的码字序列进行球译码,得到球译码的译码结果。当串行抵消列表译码的译码结果无法通过循环冗余校验时,可以基于串行抵消列表译码的译码结果确定球译码的初始半径,相比于现有的直接采用球译码时,需要预设较大的初始半径的方法,能够显著降低计算复杂度。此外,本发明实施例提供的串行抵消列表译码与球译码相结合的译码方法,能够达到极化码的最大似然译码的性能。
基于相同的发明构思,根据上述极化码译码方法实施例,本发明实施例还提供了一种电子设备,如图6所示,包括处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信,
存储器603,用于存放计算机程序;
处理器601,用于执行存储器603上所存放的程序时,实现如下步骤:
对接收的码字序列进行串行抵消列表译码;
判断所述串行抵消列表译码的译码结果是否通过循环冗余校验;
若未通过循环冗余校验,则基于所述串行抵消列表译码的译码结果确定球译码初始半径;
基于所述球译码初始半径,对接收的码字序列进行球译码,得到球译码的译码结果。
上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
应用本发明实施例提供的电子设备,对接收的码字序列进行串行抵消列表译码;判断所述串行抵消列表译码的译码结果是否通过循环冗余校验;若未通过循环冗余校验,则基于所述串行抵消列表译码的译码结果确定球译码初始半径;基于所述球译码初始半径,对接收的码字序列进行球译码,得到球译码的译码结果。当串行抵消列表译码的译码结果无法通过循环冗余校验时,可以基于串行抵消列表译码的译码结果确定球译码的初始半径,相比于现有的直接采用球译码时,需要预设较大的初始半径的方法,能够显著降低计算复杂度。此外,本发明实施例提供的串行抵消列表译码与球译码相结合的译码方法,能够达到极化码的最大似然译码的性能。
基于相同的发明构思,根据上述极化码译码方法实施例,在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述图1-4所示的任一极化码译码方法步骤。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于极化码译码装置实施例、电子设备实施例以及计算机存储介质实施例而言,由于其基本相似于极化码译码方法实施例,所以描述的比较简单,相关之处参见极化码译码方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。