一种基于极化码的bp译码方法、设备以及介质
技术领域
1.本发明涉及无线通信技术领域。更具体地,涉及一种基于极化码的bp译码方法、设备以及介质。
背景技术:2.2009年e.arikan提出了一种新型信道编码方式——polar码,即极化码。polar码是目前唯一一种被证明可以达到信道容量的信道编码,相较之传统的ldpc码,polar码具备更低的编译码复杂度,和更佳的编译码性能。因此,polar码具有极大的研究价值和实用价值,且在3gpp的会议中,已经确定了polar码作为5g中embb(增强移动宽带)场景的控制信道编码方案。可见,极化码的应用前景非常广泛,具备继续深入研究的潜力。
3.传统bp译码方法法可以在每一帧内部进行并行运算,空间复杂度较高,为了提高bp译码方法的实用性,众多学者从降低译码复杂度的角度对bp译码方法进一步作了优化。
4.有学者引入了提前停止机制[simsek c.,turk k.simplified early stopping criterion for belief-propagation polar code decoders[j].ieee communications letters,2016,20(8):1515
–
1518.],即每完成一次迭代,用提前停止条件进行判断,如果满足则不再进行下一次迭代,通过这种机制可以在达到相同性能的前提下降低迭代次数,从而降低译码方法的时间复杂度,但只是在高信噪比下译码迭代次数降低明显,低信噪比下迭代次数仍比较高,导致译码时延降低效果有限。lin jun等人为进一步提高译码吞吐率[lin j.,yan z.and wang z.efficient soft cancelation decoder architectures for polar codes[j].ieee transactions on very large scale integration(vlsi)systems,2017,25(1):87
–
99.],引入了特殊节点,对译码二叉树作了剪枝,可以有效降低译码时延,但牺牲了一定性能。
技术实现要素:[0005]
有鉴于此,本发明的第一个实施例提供一种基于极化码的bp译码方法,其特征在于,包括:
[0006]
s1:根据预设的因子图,对各层的左信息和右信息进行初始化;
[0007]
s2:靠近信道端的n-m层,从信道端向n-m层逐层更新计算左信息,完成一次遍历更新后,再从n-m层向信道端逐层更新计算右信息;
[0008]
s3:靠近译码端的m层各层分组按一定顺序递推并行更新计算组内每个节点的左信息和右信息;
[0009]
s4:重复s2和s3,直至译码迭代次数满足提前终止条件或达到所设置的最大次数,获取右信息矩阵中所存的b
λ=0
这一列的信息数据,即为译码器输出的软信息,根据b
λ=n-1
(i)+l
λ=n-1
(i)的值进行硬判决来判定第i个比特的译码结果。
[0010]
在一个具体实施例中,所述提前终止条件为:
[0011]
每完成一次迭代,如果译码结果的估值满足其中,为信道端的对数似
然比llr信息估值,g为根据极化码编码进行预设的生成矩阵,那么译码提前终止,输出译码结果反之,继续下一次迭代。
[0012]
在一个具体实施例中,所述s2包括:
[0013]
靠近信道端的n-m层,从信道端向n-m层逐层更新计算左信息,完成一次遍历更新后,再从n-m层向信道端逐层更新计算右信息:
[0014][0015][0016][0017][0018]
其中,和分别表示在第t次迭代过程中基于对数似然比(llr)的节点(i,j)的左信息和右信息,α为常数系数。
[0019]
在一个具体实施例中,所述s3包括:
[0020]
靠近译码端的m层各层分组按一定顺序递推并行更新计算,对组内节点左信息进行更新:
[0021]
φ为偶数
[0022]
φ为奇数
[0023]
对组内节点右信息进行更新:
[0024][0025][0026]
其中,φ表示节点所在的组号,ω表示组内的序号,
[0027]
在一个具体实施例中,所述s1包括:
[0028]
初始化左信息l
λ=0
为信道对数似然比信息;
[0029]
初始化右信息b
λ=n-1
,其中,信息位则初始化为0,冻结位初始化为无穷大,其余各层右信息b和左信息l均初始化为0。
[0030]
在一个具体实施例中,所述设定最大迭代次数通过人为设定或根据极化码的码长码率预先进行仿真实验获得。
[0031]
本发明的第二个实施例提供一种计算机设备,包括处理器及存储在存储有计算机程序的存储器,其特征在于,所述处理器执行所述程序时实现如第一个实施例所述的方法。
[0032]
本发明的第三个实施例提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如第一个实施例所述的方法。
[0033]
本发明的有益效果如下:
[0034]
本发明提供了一种基于极化码的bp译码方法、设备以及介质,通过使得靠近信道端的n-m层,从信道端向n-m层逐层更新计算左信息,完成一次遍历更新后,再从n-m层向信道端逐层更新计算右信息,而靠近译码端的m层各层分组按一定顺序递推并行更新计算组内每个节点的左信息和右信息,从而解决了极化码传统bp译码方法并行度高、空间复杂度
较大、达到较理想的性能所需迭代次数较高的问题,通过改变靠近译码端的几层节点计算更新时序,加快了bp译码方法的收敛速度,从而达到降低时延的目的,同时还可以节省存储器资源。
附图说明
[0035]
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0036]
图1示出根据本发明一个实施例的基于极化码的bp译码方法流程示意图;
[0037]
图2示出根据本发明一个实施例的预设的因子图示意图;
[0038]
图3示出根据本发明一个实施例的基于极化码的bp译码方法性能曲线示意图;
[0039]
图4示出本发明的另一个实施例的计算机设备的结构示意图。
具体实施方式
[0040]
为使本发明的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0041]
如图1所示,本发明的一个实施例提供一种基于极化码的bp译码方法,包括:
[0042]
s1:根据预设的因子图,对各层的左信息和右信息进行初始化;
[0043]
在一个具体实施例中,所述s1包括:
[0044]
初始化左信息l
λ=0
为信道对数似然比信息;
[0045]
初始化右信息b
λ=n-1
,其中,信息位则初始化为0,冻结位初始化为无穷大,其余各层右信息b和左信息l均初始化为0。
[0046]
s2:靠近信道端的n-m层,从信道端向n-m层逐层更新计算左信息,完成一次遍历更新后,再从n-m层向信道端逐层更新计算右信息;
[0047]
在一个具体实施例中,所述s2包括:
[0048]
靠近信道端的n-m层,从信道端向n-m层逐层更新计算左信息,完成一次遍历更新后,再从n-m层向信道端逐层更新计算右信息时:
[0049][0050][0051][0052][0053]
其中,和分别表示在第t次迭代过程中基于对数似然比(llr)的节点(i,j)的左信息和右信息,α为常数系数,本领域技术人员可根据实际情况进行具体的设置。
[0054]
s3:靠近译码端的m层按照新的节点计算时序,即各层分组按一定顺序递推并行更新计算组内每个节点的左信息和右信息;
[0055]
在本实施例中,靠近译码端的m层可以按照现有技术中极化码sc译码方法的节点
计算时序更新每个节点的左信息和右信息,即对于第i(1≤i≤m)层的节点,将2
i-1
个节点划分为一组,在一个时序周期内并行更新计算组内节点的左信息或右信息,例如在一个具体示例中,所述s3包括:
[0056]
靠近译码端的m层按照新的节点计算时序,即各层分组按一定顺序递推并行更新计算组内每个节点的左信息和右信息,在对组内节点左信息进行更新时:
[0057]
φ为偶数
[0058]
φ为奇数
[0059]
在对组内节点右信息进行更新时:
[0060][0061][0062]
其中,φ表示节点所在的组号,ω表示组内的序号,
[0063]
在本实施例中,通过使得靠近译码端的m层每个节点向左传输信息时,对左信息进行更新,从而保证了任意一次迭代中,冻结位的信息和来自信道的信息都穿过了整个因子图,加快收敛速度,从而降低迭代次数。
[0064]
在一个具体示例中,以图2所示的预设的因子图,且m=2为例,靠近译码端的m层中每个节点左信息l和右信息b的更新时序如下表所示:
[0065][0066]
对于这几层,左信息计算公式如下所示:
[0067]
φ为偶数
[0068]
φ为奇数
[0069]
右信息计算公式如下所示:
[0070][0071][0072]
其中,φ表示节点所在的组号,ω表示组内的序号,
[0073]
当信息完成从右到左,再从左到右更新的过程,即为完成了一次迭代,保证了任意一次迭代中,冻结位的信息和来自信道的信息都穿过了整个因子图,加快收敛速度,从而降低迭代次数。
[0074]
s4:重复s2和s3,直至译码迭代次数满足提前终止条件或达到所设置的最大次数,获取右信息矩阵中所存的b
λ=0
这一列的信息数据,即为译码器输出的软信息,根据b
λ=n-1
(i)+l
λ=n-1
(i)的值进行硬判决来判定第i个比特的译码结果。
[0075]
在本实施例中,通过改变靠近译码端的几层节点计算更新时序,加快了bp译码方法的收敛速度,解决了极化码传统bp译码方法并行度高、空间复杂度较大、达到较理想的性能所需迭代次数较高的问题,从而达到降低时延的目的,同时还可以节省存储器资源。
[0076]
在一个具体实施例中,所述设定最大迭代次数通过人为设定或根据极化码的码长码率预先进行仿真实验获得。
[0077]
本实施例中的设定最大迭代次数m的物理意义是:确定码长码率的极化码(极化码码长n=2n)在bp译码时达到一定译码性能通常所需的最大次数。设定最大迭代次数m的确定可依据经验进行人为设定,也可根据不同码长码率,通过大量的仿真实验来确定,从而能够避免无意义的计算,提高整体译码的效率。
[0078]
在一个具体实施例中,所述提前终止条件为:
[0079]
每完成一次迭代,如果译码结果的估值满足其中,为信道端的对数似然比llr信息估值,g为根据极化码编码进行预设的生成矩阵,那么译码提前终止,输出译码结果反之,继续下一次迭代。
[0080]
在本实施例中,通过每完成一次迭代,对译码结果的估值进行判断,如果满足判断条件则译码提前终止并输出译码结果,反之,继续下一次迭代,从而可靠、高效地减少了大部分冗余迭代,降低译码方法的时间复杂度,提高了极化码的bp译码的效率。
[0081]
在本发明中,从公式和时序表中不难看出,组号为偶数的右信息b在下一次迭代中计算左信息l不需要,会重新计算(可覆盖,不需要全存储);组号为奇数的右信息b在下一次迭代计算左信息l时会用到(不可覆盖)。因此我们假设有m层节点用新的时序更新,则如图1所示,每层l信息只开辟一号区域的存储空间即可,每层b信息开辟一号区域和二号区域的存储空间即可,那么左信息需要的存储量由原先的n(n+1)降为右信息需要的存储量由原先的n(n+1)降为
[0082]
在一个具体示例中,如图3所示,以(1024,512)的极化码为例,通过仿真不同层数用新的时序进行译码的误帧率性能曲线,例如分别仿真了3层、4层和5层采用本实施例所述
rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0093]
如图4所示,本发明的另一个实施例提供的一种计算机设备的结构示意图。图4显示的计算机设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
[0094]
如图4所示,计算机设备12以通用计算设备的形式表现。计算机设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
[0095]
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(isa)总线,微通道体系结构(mac)总线,增强型isa总线、视频电子标准协会(vesa)局域总线以及外围组件互连(pci)总线。
[0096]
计算机设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
[0097]
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(ram)30和/或高速缓存存储器32。计算机设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图4未显示,通常称为“硬盘驱动器”)。尽管图4中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如cd-rom,dvd-rom或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
[0098]
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
[0099]
计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机设备12交互的设备通信,和/或与使得该计算机设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图4所示,网络适配器20通过总线18与计算机设备12的其它模块通信。应当明白,尽管图4中未示出,可以结合计算机设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
[0100]
处理器单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的一种基于极化码的bp译码方法。
[0101]
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定,对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动,这里无法对所有的实施方式予以穷举,凡是属于本发明的技术方案所引伸出的显而易见的变化或变动仍处于本发明的保护范围之列。
技术特征:1.一种基于极化码的bp译码方法,其特征在于,包括:s1:根据预设的因子图,对各层的左信息和右信息进行初始化;s2:靠近信道端的n-m层,从信道端向n-m层逐层更新计算左信息,完成一次遍历更新后,再从n-m层向信道端逐层更新计算右信息;s3:靠近译码端的m层各层分组按一定顺序递推并行更新计算组内每个节点的左信息和右信息;s4:重复s2和s3,直至译码迭代次数满足提前终止条件或达到所设置的最大次数,获取右信息矩阵中所存的b
λ=0
这一列的信息数据,即为译码器输出的软信息,根据b
λ=n-1
(i)+l
λ=n-1
(i)的值进行硬判决来判定第i个比特的译码结果。2.根据权利要求1所述的方法,其特征在于,所述提前终止条件为:每完成一次迭代,如果译码结果的估值满足其中,为信道端的对数似然比llr信息估值,g为根据极化码编码进行预设的生成矩阵,那么译码提前终止,输出译码结果反之,继续下一次迭代。3.根据权利要求1所述的方法,其特征在于,所述s2包括:靠近信道端向n-m层逐层更新计算左信息,完成一次遍历更新后,再从n-m层向信道端逐层更新计算右信息:逐层更新计算右信息:逐层更新计算右信息:逐层更新计算右信息:其中,和分别表示在第t次迭代过程中基于对数似然比(llr)的节点(i,j)的左信息和右信息,α为常数系数。4.根据权利要求1所述的方法,其特征在于,所述s3包括:靠近译码端的m层各层分组按一定顺序递推并行更新计算,对组内节点左信息进行更新:φ为偶数φ为奇数对组内节点右信息进行更新:对组内节点右信息进行更新:其中,φ表示节点所在的组号,ω表示组内的序号,5.根据权利要求1所述的方法,其特征在于,所述s1包括:初始化左信息l
λ=0
为信道对数似然比信息;初始化右信息b
λ=n-1
,其中,信息位则初始化为0,冻结位初始化为无穷大,其余各层右信
息b和左信息l均初始化为0。6.根据权利要求1所述的方法,其特征在于,所述设定最大迭代次数通过人为设定或根据极化码的码长码率预先进行仿真实验获得。7.一种计算机设备,包括处理器及存储在存储有计算机程序的存储器,其特征在于,所述处理器执行所述程序时实现如权利要求1-6任一项所述的方法。8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一项所述的方法。
技术总结本发明的一个实施例公开了一种基于极化码的BP译码方法、设备以及介质,所述方法包括:S1:根据预设的因子图,对各层的左信息和右信息进行初始化;S2:靠近信道端的n-m层,从信道端向n-m层逐层更新计算左信息,完成一次遍历更新后,再从n-m层向信道端逐层更新计算右信息;S3:靠近译码端的m层各层分组按一定顺序递推并行更新计算组内每个节点的左信息和右信息;S4:重复S2和S3,直至译码迭代次数满足提前终止条件或达到所设置的最大次数,获取右信息矩阵中所存的B
技术研发人员:董心洁 王宇航
受保护的技术使用者:北京电子工程总体研究所
技术研发日:2022.06.24
技术公布日:2022/11/1