极化码的译码方法及装置与流程

文档序号:16847640发布日期:2019-02-12 22:27阅读:266来源:国知局
极化码的译码方法及装置与流程

本申请涉及译码技术领域,特别涉及一种极化码的译码方法及装置。



背景技术:

极化(英文:polar)码是一种编码方式,发送端通过该编码方式对待发送信息进行编码生成比特序列,每个比特序列包括n个比特,该n个比特中的每个比特对应一个信道,发送端将每个比特分别输入到每个比特对应的信道上,接收端可从这n个信道上接收n个信号,对该n个信号进行译码,以译码出该比特序列。

接收端从这n个信道上接收到n个信号后,可以利用串行抵消列表(successivecancellationlist,scl)译码算法对这n个信号进行译码,然而目前利用scl译码算法译码耗时较长,导致译码效率低下。



技术实现要素:

为了解决现有技术中译码效率低下的问题,本发明实施例提供了一种极化码的译码方法及装置。所述技术方案如下:

根据本公开实施例的第一方面,提供了一种极化码的译码方法,所述方法包括:接收端通过无线信道接收极化码的待译码比特序列;在译码树中建立该待译码比序列中第f个比特对应的多个第f层子节点时,将各个第f层子节点包括的路径度量pm值分别输入至第一排序网络和第二排序网络,每个第f层子节点包括的pm值包括m位二进制数据,由第一排序网络根据每个pm值中的m位二进制数据对输入的所有pm值进行排序,由第二排序网络根据每个pm值中的部分二进制数据对输入的所有pm值进行排序,f和m均为大于1的整数;在第二排序网络输出最大的l个pm值后,在这l个pm值对应的每个第f层子节点下建立两个子节点得到多个第f+1层子节点,每个第f+1层子节点包括第f+1个比特的取值和pm值;在第一排序网络输出l个pm值时,比较第二排序网络输出的l个pm值与第一排序网络输出的l个pm是否相同;若相同,则保持已建立的多个第f+1层子节点,该已建立的多个第f+1层子节点能够用于获得待译码比特序列中前f+1个比特的译码结果。

相比于现有技术中在第一排序网络完成排序后输出最大的l个pm值对应的每个第f层子节点下建立第f+1层子节点,本申请中第二排序网络仅根据pm值中的部分二进制数据对所有第f层子节点的pm值进行排序,第二排序网络在第一排序网络之前先输出排序结果;在第一排序网络输出排序结果之前,就可在第二排序网络输出的最大的l个pm值对应的每个第f层子节点下建立第f+1层子节点;在第一排序网络输出l个pm值时与第一排序网络输出的l个pm是否相同时,保持已建立的第f+1层中的多个第f+1层子节点,减小了译码时长,解决了译码效率低下的问题,达到了提高译码效率的效果。

在第一方面的一种可能的实现方式中,f=k+n×x,n=0、1、2……,x为译码树中相邻的需要排序的两层子节点的层数差,k为译码树中需要排序的最小层数,k可以满足log2l<k≤log2l*2x,l为第一排序网络或第二排序网络输出的排序结果包括的pm值数目。

在第一方面的一种可能的实现方式中,在建立完第f+1层子节点后,若第一排序网络未输出最大的l个pm值时,在每个第f+1层子节点下建立两上第f+2层子节点,得到多个第f+2层子节点;若第一排序网络还未输出最大的l个pm值,则重复上述过程,即在每个第f+2层子节点下建立两上第f+3层子节点,得到多个第f+3层子节点,直至第一排序网络输出最大的l个pm值时为止。

在第一方面的一种可能的实现方式中,在第二排序网络输出的l个pm值与第一排序网络输出的l个pm值相同时,在译码树中已建立的每个第f+i层子节点下建立两个子节点得到多个第f+i+1层子节点,i=1、2……x-1,每个第f+i+1层子节点包括第f+i+1个比特的取值和该第f+i+1层子节点的pm值,直至完成第f+x层的子节点的建立为止。

本申请中第二排序网络仅根据pm值中的部分二进制数据对所有第f层子节点的pm值进行排序,第二排序网络在第一排序网络之前先输出排序结果;在第一排序网络输出排序结果之前,就可在第二排序网络输出的最大的l个pm值对应的每个第f层子节点下继续建立子节点;若第二排序网络输出的l个pm值与第一排序网络输出的l个pm相同,在译码树中保持已建立的子节点,减小了译码时长,并在已建立的每个第f+i层子节点下建立两个子节点,得到多个第f+i+1层子节点,解决了译码效率低下的问题,达到了提高译码效率的效果。

在第一方面的一种可能的实现方式中,输入至第一排序网络、第二排序网络的每个pm值均包括m位二进制数据,第一排序网络根据输入的每个pm值中的m位二进制数据对输入的所有pm值进行排序,第一排序网络输出的l个最大pm值是准确的;若第二排序网络输出的l个pm值与第一排序网络输出的l个pm值不相同,则表明第二排序网络输出的l个最大pm值是不准确的,此时需要重新建立第f+1层、第f+2、第f+i层的子节点,i=1、2……x-1,也即在第一排序网络输出的l个pm值中的每个pm值对应的第f层子节点下建立两个子节点得到第f+1层子节点,在重新建立的第f+1层的各个子节点下,重新建立第f+2层、第f+3层、第f+i层的子节点。

在第一方面的一种可能的实现方式中,第二排序网络根据输入的每个pm值中的m个最高位的二进制数据对输入的所述每个pm值进行排序,m为小于m的整数。

在第一方面的一种可能的实现方式中,m和m具有以下数值关系:m=m-log2l。

在第一方面的一种可能的实现方式中,在将每个第f层子节点包括的路径度量pm值分别输入到第一排序网络和第二排序网络之前,该方法还包括:获取用于传输待译码比特序列的无线信道的误码率,根据误码率调整m的取值。

信道的误码率越低,信道的信道质量越好,所有第f层子节点中l个最大pm值与其他pm值之间的数值差异越大,此时减小m的取值,使得第二排序网路完成排序的时间减小,且第二排序网络输出的排序结果的正确率仍然较高。反之,信道的误码率越高,信道的信道质量越差,所有第f层子节点中l个最大pm值与其他pm值之间的数值差异越小,增大m的取值,保证第二排序网络输出的排序结果的正确率较高。

在第一方面的一种可能的实现方式中,在将每个第f层子节点包括的路径度量pm值分别输入到第一排序网络和第二排序网络之前,该方法还包括:测量用于传输待译码比特序列的无线信道的质量得到信道质量参数,根据信道质量参数调整m的取值。

信道的信道质量越好,所有第f层子节点中l个最大pm值与其他pm值之间的数值差异越大,此时减小m的取值,使得第二排序网路完成排序的时间减小,且第二排序网络输出的排序结果的正确率仍然较高。反之,信道的信道质量越差,增大m的取值,保证第二排序网络输出的排序结果的正确率较高。

在第一方面的一种可能的实现方式中,待译码比特序列包括n个待译码比特,该方法还包括,在译码树中建立多个第n层子节点时,根据每个第n层子节点,通过第一排序网络和第二排序网络获取待译码比特序列中n个待译码比特的译码结果。

在第一方面的一种可能的实现方式中,将每个第n层子节点包括的pm值分别输入到第一排序网络和第二排序网络;获取第二排序网络输出的第一最大pm值,获取第一最大pm值对应第n层子节点与根节点之间的路径上的每个节点包括的比特的第一取值,得到n个比特的取值;获取第一排序网络输出的第二最大pm值,在第二最大pm值对应的第n层子节点与第一最大pm值对应的第n层子节点相同时,则表明第一最大pm值对应第n层子节点与根节点之间的路径上的每个节点包括的比特的取值为待译码比特序列的正确译码结果,此时将获取到的n个比特的第一取值确定为待译码序列中n个待译码比特的译码结果。

通过在第一排序网络完成排序之前,第二排序网络完成排序后,根据第二排序网络输出的第一最大pm值对待译码序列进行译码;在第一排序网络输出的第二最大pm值对应的第n层子节点与第一最大pm值对应的第n层子节点相同时,则表明根据第一最大pm值对待译码序列进行译码所得到n个比特的第一取值是n个待译码比特的译码结果,不再需要根据第二最大pm值对待译码序列进行译码。

在第一方面的一种可能的实现方式中,在第二最大pm值对应的第n层子节点与第一最大pm值对应的第n层子节点不同时,则表明第一最大pm值并不是所有第n层子节点包括的pm值中最大的,第一最大pm值对应第n层子节点与该译码树的根节点之间的路径上的包括的n个比特的第一取值全部为正确译码结果的可能性不是最高的,根据第一最大pm值对待译码序列进行译码的译码结果是错误的,此时需要根据第一排序网络输出的第二最大pm值重新对待译码序列进行译码以获得正确的译码结果。也即,获取第二最大pm值对应的第n层子节点与根节点之间的路径上的每个节点包括的比特的取值得到n个比特的第二取值,将获取的n个比特的第二取值确定为中n个待译码比特的译码结果。

根据本公开实施例的第二方面,提供了一种极化码的译码装置,该装置包括至少一个单元,该至少一个单元用于实现上述第一方面或第一方面中任意一种可能的实现方式所提供的极化码的译码方法。

根据本公开实施例的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现第一方面以及第一方面任可能的实现方式。

附图说明

图1是本发明一个实施例所涉及的通信系统的结构示意图;

图2是本发明一个实施例中提供的接收端的结构示意图;

图3-1是本发明一个实施例中提供的极化码的译码方法的方法流程图;

图3-2是本发明一个实施例中提供的一种译码树的示意图;

图3-3是本发明一个实施例中提供的比较器的结构示意图;

图3-4是本发明一个实施例中提供的排序网络的结构示意图;

图4是本发明一个实施例中提供的从第n层子节点中选择最大pm值对应的第n层子节点,根据最大pm值对应的第n层子节点进行译码的流程图;

图5是本发明一个实施例中提供的另一种译码树的示意图;

图6是本发明一个实施例中提供的接收端的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

在本发明的一个实施例提供的方法中,各步骤的执行主体可以是通信系统中信息的接收端,该通信系统中还应当包括发送该信息的发送端。举例来讲,请参见图1,该通信系统中的发送端可以为基站110,该通信系统中的接收端可以为移动终端120。

发送端与接收端间存在n条信道,这n条信道是逻辑信道,并非实际信道,为相同且相互独立的二进制离散无记忆信道(binary-discretememorylesschannel,b-dmc),且这n条信道以迭代的方式反复进行合并和拆分。这n条信道对应n个信息比特长度,即极化码的长度。发送端在需要向接收端发送信息时,对该信息进行极化码编码生成比特序列。发送端生成的每个比特序列的长度为n,也即,每个比特序列由n个比特组成。而且,每个比特的取值为0或1,n通常为预设的正整数,即对应之前所述的n个信道。

发送端在发送一个比特序列时,将该比特序列中的每个比特分别输入至每个比特对应的信道上,使接收端可从这n个信道上接收n个信号。这n个信号为接收端中的待译码比特序列,接收端对这n个信号进行译码,以获得发送端在这n个信道上发送的比特序列,也即,获得该待译码比特序列的译码结果。

其中,接收端对这n个信号进行译码可通过如图3-1所示的步骤实现,后面对此具体展开。

请参考图2,其示出了本发明一个示例性实施例提供的通信系统所涉及的接收端的结构示意图,该接收端包括:处理器21、网络接口22、存储器23。

处理器21包括一个或者一个以上处理核心,处理器21通过运行软件程序以及模块,从而执行各种功能应用以及数据处理。

网络接口22可以为多个,其中一部分网络接口22可用于与其他设备进行通信,具体用于通过无线信道接收极化码的待译码比特序列。

存储器23与处理器21相连,比如,存储器23可以通过总线与处理器21相连;存储器23可用于存储所述软件程序以及模块。

存储器23可以存储至少一个功能所需的应用程序模块24,应用程序模块24可以包含排序模块241和建立模块242等。处理器31通过运行排序模块241和建立模块242以执行图3-1中接收端执行的相应步骤,具体参见对图3-1的描述。可以理解,应用程序模块24也可以被其他软件程序模块,如驱动程序模块代替。

存储器23可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(英文:staticrandomaccessmemory,sram),电可擦除可编程只读存储器(英文:electricallyerasableprogrammableread-onlymemory,eeprom),可擦除可编程只读存储器(英文:erasableprogrammablereadonlymemory,eprom),可编程只读存储器(英文:programmablereadonlymemory,prom),只读存储器(英文:readonlymemoryimage,rom),磁存储器,快闪存储器,磁盘或光盘。

可选的,在建立待译码比特序列中的第f个比特在译码树中对应的多个第f层子节点时,处理器21可以通过运行存储器23中的排序模块241对每个第f层子节点包括的路径度量(pathmetric,pm)值进行排序或通过第一排序网络25和第二排序网络26对每个第f层子节点包括的pm值进行排序并输出排序结果;再根据排序结果,通过运行存储器23中的建立模块242建立多个第f+1层子节点。

其中,f=k+n×x,n=1、2……,x为译码树中相邻的需要排序的两层子节点的层数差,k为译码树中需要排序的最小层数,且k可以满足log2l<k≤log2l*2x,l为第一排序网络25或第二排序网络26输出的排序结果包括的pm值数目。

需要说明的是,每个子节点的pm值用于指示该子节点与译码树的根节点之间的路径为正确路径的可能性,也即,该路径上的每个节点包括的比特的取值全部正确的可能性。而且,在译码树中每个第f层子节点的pm值总和为1。

可选的,存储器23中的排序模块可以采用软件方式实现,而第一排序网络25和第二排序网络26可以采用硬件方式实现,第一排序网络25、第二排序网络26均为包括多个比较器的硬件电路。

其中,第一排序网络25具备l×2x个输入接口,处理器21可向这l×2x个输入接口输入每个第f层子节点包括的pm值,输入的每个pm值包括m位二进制数据。由第一排序网络25根据输入的pm值的m位二进制数据对输入的所有pm值进行排序,以及输出最大的l个pm值。

第二排序网络26具备l×2x个输入接口,处理器可向这l×2x个输入接口输入每个第f层子节点包括的pm值,输入的每个pm值包括m位二进制数据。由第二排序网络26根据输入的pm值的m位二进制数据中部分二进制数对输入至第二排序网络26的所有pm值据进行排序,以及输出最大的l个pm值。

可选的,第一排序网络25和第二排序网络26共用l×2x个输入接口。

本领域技术人员可以理解,图2中所示出的接收端的结构并不构成对接收端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

请参见图3-1所示,其示出了本发明一个实施例中提供的极化码的译码方法的方法流程图,该方法可应用于通信系统中的接收端,该方法可以包括:

步骤301,接收端根据n个信道中每个信道的信号,确定每个信道的信号的对数似然比。接收端可通过无线信道接收极化码的待译码比特序列。对于接收端从每个信道上接收到的信号,接收端可根据从该信道上接收到的信号,计算出该信号被正确判为0的概率以及被正确判为1的概率;以及利用该被正确判为0的概率除以该被正确判为1的概率得到该信号的似然比;取该似然比的自然对数得到该信号的对数似然比。

由上述内容可知,当某一信道上信号被正确判为0的概率大于正确判为1的概率时,该信号的似然比大于1,得到该信号的对数似然比大于0;当某一信道上信号被正确判为0的概率小于正确判为1的概率时,该信号的似然比小于1,该信号的对数似然比小于0。

步骤302,接收端根据这n个信号的对数似然比,计算待译码比特序列中第1个比特的对数似然比。

其中,根据这n个信号的对数似然比计算第1个比特的对数似然比的实现方式,可参照scl译码算法中对数似然比的计算方式,具体可参照参考文献【1】中scl译码算法,此处不再赘述。参考文献【1】为a.balatsoukas-stimming,m.bastaniparizi,anda.burg,“llr-basedsuccessivecancellationlistdecodingofpolarcodes,”ieeetrans.signalprocess.,vol.63,no.19,pp.5165–5179,oct2015。

当第1个比特的对数似然比大于0时,第1个比特的取值正确判为0的概率大于正确判为1的概率;当第1个比特的对数似然比小于0时,第1个比特正确判为0的概率小于正确判为1的概率。

另外,待译码比特序列中的任一比特的对数似然比大于0时,该比特正确判为0的概率大于正确判为1的概率;该比特的对数似然比小于0时,该比特正确判为0的概率小于正确判为1的概率,在本文中后续出现类似内容不再一一说明。

步骤303,接收端建立译码树的根节点,根据第1个比特的对数似然比在该根节点下建立两个子节点得到两个第1层子节点,其中一个第1层子节点包括第1个比特的取值1以及该第1层子节点的pm值,其中的另一个第1层子节点包括第1个比特的取值0以及该另一个第1层子节点的pm值。

本步骤的实现可以为:接收端建立译码树的根节点,在该根节点下建立两个子节点得到两个第1层子节点,其中一个第1层子节点包括第1个比特的取值1,另一个第1层子节点包括第1个比特的取值0;利用第1个比特的对数似然比计算每个第1层子节点的pm值,在每个第一层子节点中添加每个第一层子节点的pm值。

其中,计算每个第1层子节点的pm值可通过以下方式实现:如果则该第1层子节点的pm值等于0,否则该第1层子节点的pm值=[α1|。其中,α1为第1个比特的对数似然比,u1为该第1层子节点中包括的第1个比特的取值;α1大于0时,sgn(α1)=1;α1小于0时,sgn(α1)=-1;α1等于0时,sgn(α1)=0。

也就是说,若一个第1层子节点中包括的第1个比特的取值为0,α1大于0,则该第1层子节点中pm值=0。若第1个比特的取值为1,α1小于0,则该第1层子节点中pm值=0。若第1个比特的取值为1、α1大于0,或,第1个比特的取值为0、α1小于0,则该第1层子节点中pm值=|α1|。每个第1层子节点中包括的pm值用于指示该第一层子节点中包括的第1个比特的取值正确的可能性。

举例来讲,请参见图3-2,接收端在译码树中建立根节点,在根节点下建立两个子节点得到两个第1层子节点,分别为第1层子节点a11和第1层子节点a12,a11中包括第1个比特的取值0以及pm值b11,a12中包括第1个比特的取值1以及pm值b12。

步骤304,接收端分别在每个第k-1层子节点下建立两个子节点得到第k层子节点,每个第k层子节点包括第k个比特的取值以及该第k层子节点的pm值,k=2、3……、k-1、k,k为预设的整数。

其中,log2l<k≤log2l*2x

本步骤的实现可以为:接收端在任一第k-1层子节点下建立两个第k层子节点,其中一个第k层子节点包括第k个比特的取值1,另一个第k层子节点包括第k个比特的取值0;对于每个第k层子节点,根据该第k层子节点的父节点与根节点之间的路径上的每个节点包括的比特的取值以及n个信号的对数似然比,计算该第k个比特的一个对数似然比,根据该对数似然比、该第k层子节点包括的第k个比特的取值、该第k层子节点的父节点的pm值计算该第k层子节点的pm值,该第k层子节点的pm值用于指示该第k层子节点与译码树的根节点之间的路径上的每个节点包括的比特的取值全部正确的概率。通过执行本步骤能够完成第2、3……、k-1、k层子节点的建立。

以k为2来举例说明,仍旧参见图3-2,接收端在第1层子节点a11下建立两个第2层子节点,分别为第2层子节点a21、第2层子节点a22,a21中包括第2个比特的取值0以及pm值b21,a21中包括第2个比特的取值1以及pm值b22;接收端在第1层子节点a12下建立两个第2层子节点,分别为第2层子节点a23、第2层子节点a24,a23中包括第2个比特的取值0以及pm值b23,a24中包括第2个比特的取值1以及pm值b24。

其中,对于任一个第k层子节点,接收端计算该第k层子节点的pm值可通过以下两个步骤实现:

步骤s1,获取该第k层子节点的父节点(一个第k-1层子节点),根据该第k-1层子节点与根节点间路径上每个节点包括的比特的取值以及n个信号的对数似然比,计算该第k个比特的一个对数似然比。

本步骤的实现可参照scl译码算法中对数似然比的计算方式,具体可参照参考文献【1】中scl译码算法。举例来讲,仍旧参见图3-2,接收端在第1层子节点a11下建立两个第2层子节点,分别为第2层子节点a21、第2层子节点a22;接收端在第1层子节点a12下建立两个第2层子节点,分别为第2层子节点a23、第2层子节点a24。接收端在计算a21、a22对应的第2个比特的对数似然比时,根据a11中第1个比特的取值0以及这n个信号的对数似然比计算a21、a22对应的第2个比特的对数似然比,该计算可参照scl译码算法中对数似然比的计算方式。接收端在计算a23、a24对应的第2个比特的对数似然比时,根据a11中第1个比特的取值1以及这n个信号的对数似然比计算a23、a24对应的第2个比特的对数似然比。

步骤s2,根据该对数似然比以及该第k-1层子节点的pm值,计算该第k层子节点的pm值。

其中,计算第k层子节点的pm值可通过以下方式实现:如果则该k层子节点的pm值=pmk-1,否则,该k层子节点的pm值=pmk-1+|αk|。其中,uk该第1层子节点中包括的第k个比特的取值;αk为该第k层子节点的该对数似然比;pmk-1表示该第k-1层子节点的pm值,pm0=0。

也就是说,若uk的取值为0,αk大于0,则该k层子节点的pm值=pmk-1。若uk的取值为1,αk小于0,则该k层子节点的pm值=pmk-1。若uk的取值为0,αk小于0,则该k层子节点的pm值=pmk-1+|αk|。若uk的取值为1,αk大于0,则该k层子节点的pm值=pmk-1+|αk|

本步骤中描述的是如何计算第2层至第k层中任一子节点的pm值的方式,本文中计算译码树的第k+1层至第n层中任一子节点的pm值的方式均可参照本步骤中的实现方式,在本文中后续出现类似内容不再一一说明。

在本实施例中,当接收端建立完待译码比特序列中的第k个比特对应的第k层子节点时,可以执行如下步骤305的操作。

步骤305,接收端将每个第k层子节点包括的m位宽的pm值分别输入到第一排序网络和第二排序网络,由第一排序网络根据输入的每个pm值的m位二进制数据对输入的所有pm值进行排序,由第二排序网络根据输入的每个pm值中的部分二进制数据对输入的所有pm值进行排序。

一般来讲,接收端中计算出的每个第k层子节点的pm值均是二进制,并且是小于1的小数。接收端通常需要将每个pm值处理成正整数,且处理后的pm值的位宽为m,即该pm值包括m位置二进制数据,再将处理后的pm值输入至第一排序网络和第二排序网络进行比较。

接收端在将每个pm值处理成正整数时,可将每个pm值放大预定倍数,再对放大后的每个pm值进行取整得到处理后的pm值。

例如,可将pm值扩大100倍,对扩大100倍后的数值进行取整,将取整后的pm数值的位宽调整为m,得到处理后的pm值。举例来讲,某一pm值为0.0001010001111010(该pm值被转换成十进制时为0.08),m为10,则将其扩大100倍后得到的二进制为100(转换成十进制时为8),由于需要将pm值处理成位宽为m的二进制,因此在二进制100添加7个0,得到处理后的pm值0000000100。

在本实施例中,第一排序网络和第二排序网络同时对所有第k层子节点的pm值进行排序,但第一排序网络根据输入的每个pm值中的m位二进制数据对输入的每个pm值进行排序并输出最大的l个pm值,第二排序网络根据输入的每个pm值中的部分二进制数据进行排序并输出最大的l个pm值,所以第二排序网络排序所需要的时间小于第一排序网络所需要的时间。

其中,第一排序网络可对输入的每个pm值进行从大到小排序,从排序后的pm值中选择前l个pm值输出,输出的l个pm值就是最大的l个pm值。或者,可选的,第一排序网络对输入的每个pm值进行从小到大排序,从排序后的pm值中选择排序在最后的l个pm值输出,输出的l个pm值就是最大的l个pm值。

可选的,第二排序网络可以根据输入的每个pm值中最高的m位二进制数据进行排序,m小于m,第二排序网络排序所需要的时间小于第一排序网络所需要的时间之间,例如第二排序网络排序所需要的时间与第一排序网络所需要的时间之间的比值等于m与m的比值。

其中,第二排序网络可对输入的每个pm值进行从大到小排序,从排序后的pm值中选择前l个pm值输出,输出的l个pm值就是第二排序网络中输入的最大的l个pm值。可选的,第二排序网络对输入的每个pm值进行从小到大排序,从排序后的pm值中选择排序在最后的l个pm值输出,输出的l个pm值就是pm值最大的l个pm值。

本实施例中,排序网络(包括第一排序网络和第二排序网络)都具备l×2x个输入接口,每个输入接口可输入一个位宽为m的pm值,l、x均为预设的正整数。也就是说,排序网络最多可对l×2x个pm值进行排序。其中,l为排序网络输出的pm值的数量,x为译码树中相邻的需要排序的两层子节点的层数差。可选地,任一排序网络可以是软件模块,由处理器执行。或者任一排序网络可以是硬件,如包括晶体管、逻辑电路或逻辑门。

在一种实施例中,排序网络是硬件电路,包括多个数字比较器,每个数字比较器能比较两个pm值的大小。如图3-3所示,每个数字比较器包括两个输入接口(接口i1和接口i2)和两个输出接口(接口o1和接口o2),每个数字比较器的真值表可如表1或表2所示。如表1和表2所示,比较器从i1和i2输入两个pm值后,比较该两个pm值大小,然后从o1输出较大的pm值,从o2输出较小的pm值。

表1

表2

本实施例以排序网络为双调(英文:bitonic)排序网络、具备16个输入接口来举例说明排序网络的工作原理,请参见图3-4,该第一排序网络包括16个输入接口(i1-i16)。该第一排序网络包括10级比较层,第1至7层组中每一层组均包括8个数字比较器,第8、9、10层中每一层组均包括4个数字比较器。每一层中每个数字比较器都能对其中输入的两个pm值进行比较,该排序网络通过如图3-3所示的利用这些数字比较器将这些pm值两两进行比较,使按由大到小的顺序排序在第一的pm值在o1输出,排序在第a个pm值在oa输出,该排序网络中包括8个输出口(o1-o8)。也就是说,接收端向该bitonic排序网络输入16个pm值,该排序网络最终仅输出pm值最高的8个pm值。

在实际实现时,排序网络具备l个输出接口,该l个输出接口输出pm值最高的l个pm值。

需要说明的一点是,第一排序网络和第二排序网络均属于上文所提及的排序网络,且第一排序网络和第二排序网络的电路结构可完成一致,第一排序网络与第二排序网络的区别在于:第一排序网络中每个数字比较器(称为精确数字比较器)在将其中输入的两个pm值进行比较时,根据这两个pm值的所有二进制数据进行比较;而第二排序网络中每个数字比较器(称为模糊数字比较器)在将其中输入的两个pm值进行比较时,仅根据最高的m位二进制数据(第m位至第m-m位二进制数据)进行比较,m小于m,使得模糊数字比较器完成一次比较所耗费的时长低于精确数字比较器完成一次比较所耗费的时长。一般来讲,模糊数字比较器完成一次比较所耗费的时长与精确数字比较器完成一次比较所耗费的时长的比值,等于

例如,m为4,m为10时,输入模糊比较器的两个pm值为分别为0000000100和0011110000,则模糊比较器仅根据pm值0000000100的最高4位0000与pm值0011110000的最高4位0011,来确定这两个pm值之间的大小关系。

可选的,第一排序网络的l×2x个输入接口也是第二排序网络的输入接口。接收端将需要进行排序的多个pm值在这l×2x个输入接口中输入,由第一排序网络和第二排序网络同时开始对这些pm值进行排序,并且第二排序网络先完成这些pm值的排序。

需要说明的是,对于同一层的各子节点的pm值来讲,其中大部分pm值都比较小,仅存在小部分的pm值明显高于该大部分pm值,可见该小部分的pm值转换成二进制时最高几位的取值与该大部分pm值转换成二进制时最高几位的取值存在明显差异。因此,第二排序网络在对被输入至第二排序网络的pm值进行排序时,仅根据最高m位的二进制数据进行排序,确定出最大的l个pm值的正确率较高。并且,m的取值越大,第二排序网络输出的结果的正确率较高,排序耗费的时长也越长。

另外,用于传输该待译码序列的信道的信道质量越好,该译码树的同一层的各子节点的pm值中,仅存在小部分的pm值与该大部分pm值间的差值越大,m的取值可更小,且能够保证第二排序网络输出的结果的正确率。

一般来讲,接收端在执行步骤305之前,先确定m的取值,接收端确定m的取值可通过以下三种实现方式:

第一种,m为小于m的正整数,m=m-log2l。

第二种,接收端获取用于传输待译码比特序列的信道的误码率,根据该误码率调整m的取值,其中m的初始值可以等于m-log2l。

接收端可根据已经译码出的比特序列计算该信道的误码率,根据该误码率调整m的取值。一般来讲,误码率越高,m的取值越高。

第三种,测量用于传输待译码比特序列的信道的质量,得到信道质量参数,根据该信道质量参数调整m的取值,其中m的初始值可以等于m-log2l。

一般来讲,信道质量越好,m的取值越小。

由于模糊数字比较器完成一次比较所耗费的时长低于精确数字比较器完成一次比较所耗费的时长,使得第二排序网络先完成排序输出最大的l个pm值,接收端先获取到第二排序网络输出的l个pm值,然后执行步骤306。

步骤306,接收端获取第二排序网络输出的最大的l个pm值,在该l个pm值中的每个pm值对应的第k层子节点下建立两个子节点得到第k+1层子节点,每个第k+1层子节点包括该待译码比特序列中的第k+1个比特的取值和pm值。

在本步骤中,接收端从第k层子节点中确定该l个pm值中的每个pm值对应的第k层子节点,总共确定出l个第k层子节点,分别在该l个第k层子节点中的每个第k层子节点下建立两个子节点,得到2l个第k+1层子节点。

其中,建立第k+1层子节点的实现过程参照步骤304中建立第k层子节点实现过程,此处不再赘述,在本文中后续出现类似内容也不再一一说明。

在建立完第k+1层子节点后,接收端如果获取到第一排序网络输出的l个pm值,则执行步骤307或步骤308的操作,如果还未获取到第一排序网络输出的l个pm值,则在获取到第一排序网络输出的l个pm值之前,接收端会继续建立第k+2层子点、第k+3层子节点……,直至获取到第一排序网络输出的l个pm值时,执行步骤307或步骤308的操作。

步骤307,接收端在第二排序网络输出的l个pm值与第一排序网络输出的l个pm值相同时,分别在已建立的每个第k+i层子节点下建立两个子节点得到第k+i+1层子节点,每个第k+i+1层子节点包括该待译码比特序列中的第k+i+1个比特的取值和pm值,i=1、2……x-1。

由于第二排序网络输出的l个pm值所需要的时间大于第一排序网络输出的l个pm值所需要的时间,在接收端在获取到第二排序网络输出的l个pm值时,已建立完第k+i层的子节点。在第二排序网络输出的l个pm值与第一排序网络输出的l个pm值相同时,表明接收端无论根据第一排序网络的输出结果,还是根据第二排序网络的输出结果,从第k层子节点中确定的l个第k层子节点均相同,以及在该l个第k层节点的基础上建立的第k+1层子节点至第k+i层子节点均相同。因而,可以继续在已建立的第k+i层子节点基础上建立第k+i+1层子节点,直至建立到第k+x层子节点时,执行步骤309的操作。

步骤308,接收端在第二排序网络输出的l个pm值与第一排序网络输出的l个pm值不相同时,在第一排序网络输出的l个最大pm值中的每个pm值对应的第k层子节点下建立第k+1层子节点。

在第二排序网络输出的l个pm值与第一排序网络输出的l个pm值不相同时,表明第二排序网络输出的l个最大的pm值有误,因此将已建立的第k+1层子节点至第k+i层子节点丢弃。

接收端重新从第k层子节点中确定第一排序网络输出的该l个pm值中的每个pm值对应的第k层子节点,确定出l个第k层子节点,分别在该l个第k层子节点基础上建立2l个第k+1层子节点。并继续建立第k+2层子节点、第k+3层子节点,直至建立完第k+x层子节点时,执行步骤309的操作。

其中,接收端在本步骤中建立的每个子节点实现方式,均可参照步骤304中在每个第k-1层子节点下建立第k层子节点的方式,此处不再赘述,本文中后续出现类似内容也不再一一说明。

步骤309,接收端将每个第f层子节点包括的m位宽的pm值分别输入到第一排序网络和第二排序网络,f=k+n×x,n=1、2……。

第一排序网络和第二排序网络分别对每个第f层子节点包括的pm值进行排序,详细过程可以参见步骤305中的相关说明,在此不再详细说明。

步骤310,接收端获取第二排序网络输出的最大的l个pm值,在该l个pm值中的每个pm值对应的第f层子节点下建立两个子节点得到第f+1层子节点。

在建立完第f+1层子节点后,接收端如果获取到第一排序网络输出的l个pm值,则执行步骤311或步骤312的操作,如果还未获取到第一排序网络输出的l个pm值,则在获取到第一排序网络输出的l个pm值之前,接收端会继续建立第f+2层子点、第f+3层子节点、第f+i层子节点,i=4、5、……、x-1,直至获取到第一排序网络输出的l个pm值时,执行步骤311或312的操作。

步骤311,在第二排序网络输出的l个pm值与第一排序网络输出的l个pm值相同时,接收端分别在已建立的每个第f+i层子节点下建立两个子节点得到第f+i+1层子节点,i=1、2……x-1,每个第f+i+1层子节点包括第f+i+1个比特的取值和pm值。

接收端建立完第f+i+1层子节点后,继续建立第f+i+2层子节点,直至建立完第f+x层子节点后,令f=f+x,返回执行步骤309的操作,或者,接收端建立完待译码序列中的第n个比特对应的第n层子节点时,执行步骤313。

步骤312,在第二排序网络输出的l个pm值与第一排序网络输出的l个pm值不相同时,接收端重新在第一排序网络输出的l个pm值中的每个pm值对应的第f层子节点下建立两个子节点得到两个第f+1层子节点,以取代已建立的所述多个第f+1层子节点。

接收端在重新建立完第f+1层子节点的基础上,继续建立第f+2层子节点,直至建立完第f+x层子节点后,f=f+x,返回执行步骤309的操作,或者,接收端建立完待译码序列中的第n个比特对应的第n层子节点时,执行步骤313。

步骤313,接收端从第n层子节点中选择最大pm值对应的第n层子节点,获取该选择的第n层子节点至根节点之间的路径上的每个子节点包括的比特的取值,得到待译码序列中n个待译码比特的译码结果。

本步骤可通过如图4所示的几个步骤实现:

步骤3131,接收端在建立出译码树中的第n层子节点时,将每个第n层子节点包括的m位宽的pm值分别输入到第一排序网络和第二排序网络,获取第二排序网络输出的第一最大pm值。

接收端获取第二排序网络输出的最大的pm值得到第一最大pm值。举例来讲,如图3-4所示,接收端获取第二排序网络中输出接口o1输出的pm值得到第一最大pm值。

步骤3132,接收端获取该第一最大pm值对应第n层子节点与该译码树的根节点之间的路径上的每个节点包括的比特的取值,得到n个比特的第一取值。

由于第一最大pm值是第n层子节点中pm值最大的,也即,第一最大pm值对应第n层子节点与该译码树的根节点之间的路径上的每个节点包括的比特的取值全部正确的可能性也是最高的。因此,接收端可获取该第一最大pm值对应第n层子节点与该译码树的根节点之间的路径上的每个节点包括的比特的取值得到n个比特的第一取值,该n个比特的第一取值可能为待译码序列中n个待译码比特的正确译码结果。

为了进一步确定该n个比特的第一取值是否为n个待译码比特的正确译码结果,接收端还需等待第一排序网络输出的第二最大pm值,确定第二最大pm值对应的第n层子节点与第一最大pm值对应的第n层子节点是否相同。若相同,则说明步骤3132中获取到的n个比特的第一取值为正确译码结果,执行步骤3133,否则,执行步骤3134。

由于本申请中一个比特序列n的取值较大,可能是1024等其他较大的数值,此处难以用示出包括1024层子节点的译码树,根据该译码树说明如何对待译码比特序列进行译码。此处仅以n的取值为3来示例性说明如何进行译码,但是此说明并不对本申请构成限定。请参见图5,该译码树包括3层子节点,第二排序网络输出的第一最大pm值对应的第3层子节点为a31,则获取根节点与a31间路径上所有子节点(包括a31、a21、a11)包括的比特的取值,a11中包括的第1个比特的取值0为第1个比特的译码结果,a21中包括的第2个比特的取值为第2个比特的译码结果,a31中包括的第3个比特的取值为第3个比特的译码结果,每个比特的译码结果组成了待译码比特序列的译码结果。

步骤3133,接收端获取第一排序网络输出的第二最大pm值,在第二最大pm值对应的第n层子节点与第一最大pm值对应的第n层子节点相同时,将已获取的n个比特的第一取值确定为待译码比特序列中n个待译码比特的译码结果。

步骤3134,接收端获取第一排序网络输出的第二最大pm值,在第二最大pm值对应的第n层子节点与第一最大pm值对应的第n层子节点不同时,获取第二最大pm值对应的第n层子节点与根节点之间的路径上的每个节点包括的比特的取值得到n个比特的第二取值,将该n个比特的第二取值确定为待译码比特序列中n个待译码比特的译码结果。

综上所述,本发明的一个实施例提供的极化码的译码方法,通过在译码树中建立第f个比特对应的第f层子节点时,将各个第f层子节点包括pm值同时分别输入第一排序网络和第二排序网络,每个第f层子节点包括pm值的位宽为m,由第一排序网络根据每个pm值中的m位二进制数据对输入的所有pm值进行排序,由第二排序网络根据每个pm值中的部分二进制数据对输入的所有pm值进行排序,m为大于1的整数;在第二排序网络输出最大的l个pm值时,在这l个pm值对应的每个第f层子节点下建立两个子节点得到第f+1层子节点,每个第f+1层子节点包括第f+1个比特的取值和该第f+1层子节点的pm值;在第一排序网络输出l个pm值时,比较第二排序网络输出的l个pm值与第一排序网络输出的l个pm是否相同;若相同,则在译码树中已建立的每个第f+i层子节点下建立两个子节点得到第f+i+1层子节点,i=1、2……x-1,每个第f+i+1层子节点包括第f+i+1个比特的取值和该第f+i+1层子节点的pm值。本申请中第二排序网络仅根据pm值中的部分二进制数据对所有第f层子节点的pm值进行排序,第二排序网络在第一排序网络之前先输出排序结果;在第一排序网络输出排序结果之前,就可在第二排序网络输出的最大的l个pm值对应的每个第f层子节点下继续建立子节点;若第二排序网络输出的l个pm值与第一排序网络输出的l个pm相同,在译码树中已建立的每个第f+i层子节点下建立两个子节点得到第f+i+1层子节点,减小了译码时长,解决了译码效率低下的问题,达到了提高译码效率的效果。

请参考图6,其示出了本发明的一个示例性实施例提供的通信系统中接收端60的结构示意图,该接收端60可以为如图1所示实施例中提及的接收端,该接收端60包括:用于通过无线信道接收极化码的待译码比特序列的接收单元610、排序单元620、建立单元630。

排序单元620,用于实现上述步骤305、步骤309中至少一个步骤。

建立单元630,用于实现上述步骤301至步骤304、步骤306至步骤308、步骤310至步骤312中至少一个步骤。

在一种可能的实现方式中,图6中的任一个或多个单元可以是硬件模块,如硬件电路,包括但不限于逻辑电路、晶体管等。

可选的,该排序单元620可以是图2所述实施例中存储在存储器中的排序模块241,可以被如图2所示的处理器21执行,以实现上述步骤305、步骤309中至少一个步骤。或者,该排序单元620可以为图2所述实施例或图3-1所述实施例中的第一排序网络和第二排序网络,通过第一排序网络和第二排序网络实现上述305、步骤309中至少一个步骤。

当该排序单元620为第一排序网络和第二排序网络,该排序单元620的详细结构可以如图3-4所示,关于图3-4的说明可以参见上述实施例中内容,在此不再详细说明。

可选的,该建立单元630可以是图2所述实施例中存储在存储器中的建立模块242,可以被如图2所示的处理器21执行,以实现上述步骤301至步骤304、步骤306至步骤308、步骤310至步骤312中至少一个步骤。或者建立单元630也可以是硬件,如电路。

可选的,接收端60还包括调整单元和/或译码单元,调整单元和/或译码单元可由如图2所示的处理器21执行,也可以是硬件,如电路。

调整单元,用于获取用于传输待译码比特序列的无线信道的误码率,根据误码率调整m的取值,或者,用于测量用于传输待译码比特序列的无线信道的质量得到信道质量参数,根据信道质量参数调整m的取值。

译码单元,用于在建立出所述译码树中的多个第n层子节点时,根据每个第n层子节点,通过所述第一排序网络和所述第二排序网络获取所述n个待译码比特的译码结果。

译码单元,用于在建立出译码树中的多个第n层子节点时,根据每个第n层子节点,通过第一排序网络和第二排序网络获取n个待译码比特的译码结果。

该译码单元,还用于:将每个第n层子节点包括的m位宽的pm值分别输入到第一排序网络和第二排序网络;获取第二排序网络输出的第一最大pm值,以及获取第一最大pm值对应第n层子节点与译码树的根节点之间的路径上的每个节点包括的比特的取值,得到n个比特的第一取值;获取第一排序网络输出的第二最大pm值,在第二最大pm值对应的第n层子节点与第一最大pm值对应的第n层子节点相同时,将所述获取的n个比特的第一取值确定为所述n个待译码比特的译码结果。

该译码单元,还用于在第二最大pm值对应的第n层子节点与第一最大pm值对应的第n层子节点不同时,获取第二最大pm值对应的第n层子节点与根节点之间的路径上的每个节点包括的比特的取值得到n个比特的第二取值,将所述n个比特的第二取值确定为所述n个待译码比特的译码结果。

相关细节可结合参考上述方法实施例。

需要说明的是:上述实施例提供的极化码的译码装置在进行译码时,仅以上述各程序模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的程序模块完成,即将接收端的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的译码装置与极化码的译码方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1