一种LDPC码的解码方法和解码装置与流程

文档序号:18560629发布日期:2019-08-30 23:14阅读:434来源:国知局
一种LDPC码的解码方法和解码装置与流程

本发明涉及通信和存储领域,尤其是一种解码方法和解码装置。



背景技术:

信道编码广泛应用于通信和存储系统,以处理由信道噪声或存储介质缺陷引起的数据错误。1953年,r.gallager发明了低密度奇偶校验码(ldpc),见学术论文“low-densityparity-checkcodes”(iretrans.inf.theory,vol.8,pp.21-28)。1997年,m.luby等人进一步发明了不规则ldpc码。后来,t.richardson等人发现不规则ldpc码的解码性能更优于规则的ldpc码,在码长较长时,其性能可接近香农极限,见学术论文“designofcapacity-approachingirregularlow-densityparity-checkcodes”(ieeetrans.inf.theory,vol.47,pp.619-637)。由于其突出的性能优势,近年来ldpc码已广泛应用于通信及存储设备中。

二进制ldpc码可以用一个维度为m×n的奇偶校验矩阵h来描述。它也可以用一个二分图来表示,其中有n个变量节点与码字中的符号对应,以及m个校验节点与奇偶校验方程相对应。每条边连接一个变量节点和一个校验节点,当且仅当该变量节点参与到与该校验节点对应的奇偶校验方程时。如果每个变量节点连接到dv个校验节点,且每个校验节点连接到dc个变量节点,则该ldpc码称为(dv,dc)-规则。对不规则ldpc码,我们用dv和dc分别表示变量节点和校验节点的最大度。

我们用表示与变量节点n相连接的所有校验节点的集合;用表示与校验节点m相连接的所有变量节点的集合;用表示从中扣除变量节点n的子集;用λnm表示从变量节点n发送到校验节点m的消息;用λmn表示从校验节点m发送到变量节点n的消息。

对数似然比(llr)是节点消息的一种表示形式。一个二进制随机变量x的llr定义为:这里p(x=x)表示x取值为x的概率。对两个相互独立的二进制随机变量x和y,所谓的“tanh规则”如下:

定义“框加函数”,f(a,b),为:

当a≥0且b≥0,它简化为

f(a,b)=min(a,b)+log(1+e-(a+b))-log(1+e-|a-b|).(2)

使用“框加算符”,方程1可重写为:

可以证明,框加算符具有如下性质:

方便起见,可用符号来表示基于框加算符的连续求和,简称为“框和”。这类似于用符号σ表示普通的连续求和。

著名的消息传递(bp)解码算法,在llr表示形式下,其基本过程可概括如下。

初始化:根据信道输出,给每个变量节点n设定一个初始的后验对数似然比(llr),ln。对每组满足hmn=1的(m,n),设定

λnm=ln,

λmn=0.

步骤1.(校验节点更新):对每个校验节点m,和与其连接的变量节点定义

则校验节点消息为:

其中smn是校验节点消息λmn的符号。定义

则方程3简化为

λmn=smn×δmn.(5)

其中δmn是λmn的幅度。

步骤2.(变量节点更新):对每个变量节点n,计算

并对每个与其连接的校验节点计算

步骤3.(硬判决):对码字做出如下硬判决,如果λn≥0则xn=0,反之则xn=1。如果则解码结束,并将作为输出结果;否则从步骤1开始重复迭代。如果该算法在给定的最大迭代次数,itmax,后仍然没有结束,则解码器终止解码并报告解码失败。

在硬件ldpc解码器中,通常将λn和λmn保存在存储器(memory)中,而λnm可根据方程7计算得到。bp算法的首要存储开销是λmn,其数量级为o(mdc)或o(ndv)。bp算法的首要计算开销是校验节点更新。在bp算法的每轮迭代中,校验节点更新步骤中框加函数的计算次数至少为2m(dc-1)。无论是在硬件实现还是软件实现中,大量计算框加函数的成本都是很高的。

在使用消息传递(bp)解码算法时,ldpc码的解码性能非常好。但是,bp算法的计算和存储开销非常大,尤其是在码长较长、码率较高的情况下。如何在尽量小的性能损失下,降低bp算法的开销是ldpc码实际应用中的一个重要问题。

minsum解码算法是bp算法的一种近似,见学术论文“reducedcomplexityiterativede-codingoflowdensityparitycheckcodesbasedonbeliefpropagation”(ieeecommun.lett.,vol.4,pp.62-64)。minsum解码算法大幅地降低了bp算法的计算和存储开销,也是目前通信和存储设备中的ldpc硬件解码器中采用的主流算法。

为了减少复杂度,minsum算法做了如下近似:

其中框和计算被min函数替代。当进行校验节点更新时,|λnm|的最小值和第二最小值,以及最小值节点的位置被计算出来,并保存到存储器用于后面计算λmn。因此,在minsum算法中,bp算法中框和计算引起的计算开销以及用来保存δmn的存储开销都被大幅的减少了。minsum算法通常可以通过加入一个乘积因子修正项来改善近似误差,提高解码性能,

或者加入一个偏移因子修正项,

λmn≈smn×max(δmn-β,0).(10)

但是,只有当除最小值以外的其它的|λn′m|都很大时,方程8中的minsum近似的误差才比较小。当信噪比较小,或者不规则ldpc码的dc较大时,|λn′m|中的多个值都可能比较小,这时即使是加入修正项后,minsum近似的误差可能很大。图1通过多个具有不同dv值的不规则ldpc码,(2304,1152),演示了minsum算法的解码性能下降的问题。其中,对该dv=16的ldpc码,在目标块误码率为10-3的情况下,minsum算法与bp算法的解码性能差异在信噪比上超过了0.4分贝。在给定信噪比为1.5分贝的情况下,minsum算法的块误码率比bp算法差了两个数量级。

由于bp算法的计算和存储开销太大,在ldpc码的硬件解码器中一般采用minsum算法。但是与基于bp算法的解码器相比,基于minsum算法的解码器有下列不足。

·基于minsum算法的解码器的解码性能较差。

即使在精调了乘积因子或偏移因子修正项参数后,典型情况下,minsum算法的解码性能与bp算法相比在给定的目标误码率下信噪比(snr)要差0.1分贝左右。对于一些不规则ldpc码,两者的性能差距甚至可以达到0.4分贝。

·基于minsum算法的解码器的吞吐率较差,尤其是当信噪比较小时或者不规则ldpc码的最大变量节点度dv较大时。



技术实现要素:

为了解决现有技术中存在的缺点,本发明实施例提供了一种新的解码方法和设备,相比bp算法可以大幅降低计算和存储开销,相比minsum算法可以改善解码性能并提高吞吐率。

根据一实施例,提供了一种解码方法。在本实施例中,所述方法包括:

步骤1.根据变量节点更新规则,计算变量节点消息和后验似然比或对数似然比,并对变量节点的取值做出硬判决;

步骤2.在每次迭代中,对每个校验节点,选择与其相连接的变量节点的第一子集,使用该子集中变量节点的消息计算校验节点消息的幅度,并忽略其它变量节点的消息;

步骤3.在每次迭代中,对每个校验节点,选择与其相连接的变量节点的第二子集,并为该子集的变量节点分别计算并保存校验节点消息的幅度的一个近似表示,对于其它全部相连接变量节点只计算并保存一个校验节点消息的幅度的一个近似表示;

步骤4.在每次迭代中,对每个检验节点,计算并保存全部校验节点消息的符号的一种表示;

步骤5.根据上述计算、保存的结果,对所有变量节点近似重建出对应的校验节点消息;

步骤6.对每个校验节点,根据变量节点的硬判决结果检查对应的奇偶校验方程是否满足;

步骤7.重复迭代以上步骤,直到所有奇偶校验方程都满足,或迭代次数达到设定的最大迭代次数;

步骤8.最后,输出变量节点的硬判决结果,和校验方程是否得到满足的结果。

所述实施例,第一个变量节点子集可以选择整数k个相连接变量节点,其变量节点消息的幅度相对较小;第二个变量节点子集中可以选择整数k0个相连接节点,其变量节点消息的幅度相对较小。

所述实施例,可以在计算校验节点消息时加入一乘积因子或/和偏移因子修正项,以改善解码性能。

根据又一实施例,提供了一种解码装置。所述解码装置包括:

一个或多个变量节点处理单元(vnu),每个vnu接收校验节点消息,计算出变量节点消息、后验似然比(lr)或对数似然比(llr)、并做出变量节点取值的硬判决;

一个或多个第一存储器,用于保存由vnu和信道得到的后验似然比或对数似然比;

一个或多个校验节点单元(cnu),每个cnu接收多个变量节点消息以及变量节点取值的硬判决结果,计算校验节点消息,并检查奇偶校验方程;

一个或多个第二存储器,用于保存校验节点消息的符号以及幅度的近似表示;

一个或多个重建单元(ru),每个ru使用之前计算、保存的校验节点消息的符号及幅度表示,近似重建出对所有相连接节点的校验节点消息;

以及输入输出模块、地址生成器模块和迭代控制模块。其中,每个校验节点单元包括:

一个消息选择器模块,选择第一变量节点子集的变量节点消息,

一个框和计算模块,选择第二变量节点子集,并使用来自第一变量节点子集的消息对第二子集中的每个节点计算并保存相应的校验节点消息的幅度的近似表示,对第二子集以外的其他全部相连接的节点计算一个校验节点消息幅度的近似表示;

一个符号计算模块,对所有相连接的变量节点计算出相应的校验节点消息的符号;以及

一个奇偶校验模块,根据变量节点取值的硬判决结果检查奇偶校验方程是否得到满足。

在本实施例中,所述解码装置k个相连接变量节点,其变量节点消息的幅度相对较小;第二个变量节点子集中可以选择整数k0个相连接节点,其变量节点消息的幅度相对较小。

在本实施例中,所述解码装置的校验节点单元可以包括一个修正项模块,对校验节点消息加入一可选的乘积因子或偏移因子修正项,以改善解码性能。

本发明的有益效果是,根据本发明提供的解码方法及解码装置,可以通过改变第一变量节点子集和第二变量节点子集的大小的配置,来灵活地调整解码性能以及计算和存储开销,从而可以根据应用需求在解码性能与计算和存储开销间取得平衡;在典型的配置下,可以以接近minsum算法的开销达到接近bp算法的性能;从而,在解码性能方面优于minsum算法,在开销方面优于bp算法。

附图说明

图1为bp算法和minsum算法对一系列不同最大列重值,dv,的不规则ldpc码,(2304,1152),在awgn信道中的块误码率(bler)解码性能对比图。

图2为基于bpsa-4-1方案的解码装置的内部结构示意图。

图3为基于bpsa-4-1方案的解码装置中的框和模块的一种实现方式的示意图。

图4为bp,minsum-norm,minsum-offset,bpsa-2-1,bpsa-3-1,bpsa-3-2,bpsa-4-1,和bpsa-4-2等不同解码算法的解码性能对比图,其中采用的是码率为0.5的不规则ldpc码,(2304,1152)和awgn信道。

图5为minsum-norm,minsum-offset,bpsa-2-1,bpsa-3-1,bpsa-3-2,bpsa-4-1,和bpsa-4-2等不同解码算法相对于bp解码算法的相对吞吐率对比图,其中采用的是码率为0.5的不规则ldpc码,(2304,1152)和awgn信道。

图6为bp,minsum-norm,minsum-offset,bpsa-2-1,bpsa-3-1,bpsa-3-2,bpsa-4-1和bpsa-4-2等不同解码算法的解码性能对比图,其中采用的是码率为0.872的不规则ldpc码,(18944,1152)和bsc信道。

图7为minsum-norm,minsum-offset,bpsa-2-1,bpsa-3-1,bpsa-4-1,bpsa-4-2,bpsa-8-1,bpsa-f-1和bpsa-f-2等不同解码算法相对于bp解码算法的相对吞吐率对比图,其中采用的是码率为0.872的不规则ldpc码,(18944,1152)和bsc信道。

具体实施方式

以下结合附图对本发明的原理和实施例进行描述。所述具体实施例仅用于解释本发明,而非限定本发明的范围。

为了解决bp算法和minsum算法各自的不足,发明人基于观察到的如下事实:

·大多数变量节点受到噪声的影响较小,其对数似然比消息的幅度较大;

·对大多数变量节点,λn和λnm随着解码迭代过程快速增大;以及

·当|λn′m|>>1时,

提出了一种新的ldpc码的解码方法。该解码方法同时具备接近bp算法的解码性能和接近minsum算法的计算和存储开销。

此解码方法是bp算法的一种近似,主要对校验节点更新规则即前述bp算法的步骤1做出近似处理。在新的解码方法中,在每次迭代中的步骤1,选择的包含k个变量节点的子集对该子集中的变量节点,其变量节点消息的幅度|λnm|相对较小。令中的变量节点消息的幅度相对较大。应用方程11中的近似,对所有中的n-k个变量节点,忽略相应的|λnm|,则校验节点更新规则中方程4简化为

在k=dc的情况下,因此

定义

对于的变量节点,校验节点消息的幅度,每次迭代中只需计算并保存一次。因此,变量节点更新规则中的计算和存储开销得到大幅降低。

用于计算δmn的子集的选择具有一定的灵活性。一些λnm的幅度较大的节点可以被加入到该子集或从该子集删除,只要其对于解码性能和开销的影响可以接受。在更一般性的情况下,对于中的每个变量节点n,可以选择一个λn′m的子集用于计算δmn,其中而忽略其余的λn″m对δmn的贡献,其中在对解码性能没有大的影响的前提下,子集还是存在一定的灵活选择的空间。这为优化硬件解码器的面积和时序提供了一定的空间。

在本发明的优选实施例中,子集包括了k个变量节点,其消息的幅度,|λnm|,均小于其余节点,即,

在本发明的一些实施例中,方程14中的条件可以适当放松,只要对性能的影响是可接受的。

为了进一步降低计算和存储开销,可以只计算和保存的一个子集。令其中k0∈[0,k],则得到下面的近似

因此,只需要计算并保存k0+1个幅度,和子集中的k0个变量节点的相对位置。当k0=0时,解码性能极差,后续讨论将不考虑这种情况。

在本发明的优选实施例中,子集包含了k0个变量节点,其消息的幅度,|λnm|,均小于其余节点。在不大影响解码性能的前提下,子集的选择存在一定的灵活性。

以上所述解码方法,在llr表示形式下,其基本过程可概括如下:

初始化:根据信道输出,给每个变量节点n设定一个初始的后验对数似然比(llr),ln。对每组满足hmn=1的(m,n),设定

λnm=ln,

λmn=0.

步骤1.(校验节点更新):对每个校验节点m,适当选择包含k个相连接的变量节点第一子集和包含k0个相连接的变量节点第二子集并对与其连接的变量节点计算相应的校验节点消息λmn,

步骤2.(变量节点更新):对每个变量节点n,计算

并对每个与其连接的校验节点计算

λnm=λn-λmn.(18)

步骤3.(硬判决):对码字做出如下硬判决,如果λn≥0则xn=0,反之则xn=1。如果则解码结束,并将作为输出结果;否则从步骤1开始重复迭代。如果该算法在给定的最大迭代次数,itmax,后仍然没有结束,则解码器终止解码并报告解码失败。

在一些实施例中,为了改善解码性能,公式16中可以加入一项可选的乘积因子修正项,

类似地,公式16中可以加入一项可选的偏移因子修正项

α和β参数的值可以根据密度演化(de)方法或蒙特卡罗仿真来优化以得到更好的解码性能。

在一些实施例中,以上解码方法可以结合采用不同的调度方法,即变量节点和校验节点的更新次序,包括但不限于洪水式、纵向分层式和横向分层式。

上述解码方法可以一般性的命名为“子集近似的消息传递算法”,简称为bpsa算法。对于k=2,3,4,且k0=1的特定配置,后续分别称之为bpsa-2-1,bpsa-3-1,或bpsa-4-1。对于k≥dc,且k0=1或k0=2的特定配置,后续分别称之为bpsa-f-1或bpsa-f-2。

bp算法的首要计算和存储开销是由校验节点更新规则引起。bpsa大幅降低了bp算法校验节点更新规则的计算和存储开销。在k0=1时,校验节点的计算开销得到减小的比例系数为

而存储开销减小的比例系数为

比如,在k=3,且k0=1时,对于dc=8的ldpc码,计算和存储开销减小的比例系数分别为θc≈85%和θm≈75%;对于dc=40的ldpc码,分别为θc≈97%和θm≈95%。

一般而言,对较大的k和k0,解码性能更好,但是相应的开销更大。对于给定的ldpc码,根据具体应用对解码性能和开销的要求,可以灵活调整k,k0,α和β等参数,使得bpsa的解码性能与bp算法极其接近,优于minsum算法。

本发明的又一实施例是基于bpsa算法的解码装置。

图2为基于bpsa-4-1配置的解码装置的一种实施例的内部结构示意图。该解码装置包含一个或多个第一存储器(200)(λ-存储器)用来保存每个变量节点的后验对数似然比(llr)的一个表示。该解码装置还包含一个或多个第二存储器(202)(λ-存储器)用来保存每个校验节点对数似然比(llr)消息的一个表示。在bpsa-4-1中,根据公式12和15,每个校验节点的消息λmn可以用其符号smn,最小变量节点消息幅度的变量节点位置,n1,以及两个校验节点消息幅度,来表示。该解码装置进一步包括一个或多个变量节点处理单元(210)来处理变量节点更新规则。该解码装置进一步包括一个或多个校验节点处理单元(220)来处理校验节点更新规则。该解码装置进一步包括一个或多个λ-重建模块(230),根据公式16,使用符号,smn,幅度,以及最小变量消息幅度节点位置,n1,来重建校验节点消息该解码装置还包括i/o控制模块(240)、地址生成器(244)和迭代控制模块(242)等模块,对解码过程中的数据输入输出、存储器地址以及迭代过程等进行控制。

每次迭代中,变量节点处理单元(210)从第一存储器(200)中读取根据公式7,使用计算得到λnm,进一步使用计算得到并将保存到第一存储器(200)。每个校验节点处理单元(220)计算校验节点消息的符号,smn,两个幅度,以及最小变量消息幅度节点的位置,并将结果保存到第二存储器(202)。

每个校验节点处理单元(220)包括一个消息选择器(222),一个框和计算模块(224),一个修正项处理模块(226),一个符号计算模块(228),和一个奇偶校验模块(229)。消息选择器(222)选择变量节点消息幅度,|λnm|,的一个子集,并确定所选变量节点的相对位置。框和计算模块(224)根据公式12计算出|λnm|的两个框和。修正项处理模块(226)根据公式19或20进行乘积因子或偏移因子修正。符号计算模块(228)计算smn。奇偶校验模块(229)根据变量节点硬判决的结果,xn,检查奇偶校验方程是否满足。

在bpsa-4-1配置方案中,消息选择器(222)选择出最小的4个|λnm|,并且确定与最小变量节点消息幅度相应的变量节点的位置,n1。其一种具体实现方式为:把输入的变量节点消息的幅度按照每4个一组分组,记录每个消息幅度对应的节点位置,并把每组按幅度大小顺序排序,不足4个的以∞补足;然后按照二分法递归使用一8选4模块最终得到一个大小为4的消息幅度的子集。该8选4模块从输入的两组排好序的变量节点消息的幅度中通过比较大小,选择其中4个最小的,并按大小顺序输出。

当dc较大时,消息选择器(222)的计算开销会比较大。在bpsa-4-1配置方案的一些简化实施例中,消息选择器(222)可以把输入的变量节点消息的幅度等分为两组,从每组选择出两个最小的消息幅度,从而得到一个大小为4的消息幅度的子集。

图3为基于bpsa-4-1配置的解码装置的框和计算模块(224)的一个示例实现。使用4个最小的|λmn|和三个框加模块(310),计算得到

图2中的示例架构可以很容易修改而适用于其它配置的bpsa解码器。

在基于bp算法的硬件解码器中,首要的开销是校验节点消息的计算和保存。当参数k和k0较小时,bpsa大幅降低了bp中的开销,总体与minsum接近。在bpsa的实际实现中,框加函数中用到的log(1+ex)和log(1-ex)函数可以通过查找表或分段线性函数来近似计算,从而避免直接计算exp和log等函数。这样,bpsa中少数几个框加操作的计算开销几乎可以忽略不计。

在基于minsum算法的ldpc硬件解码器中,对于每个校验节点m,λmn的最小幅度,和第二最小幅度,最小幅度变量节点n1的相对位置,以及校验节点消息的符号smn需要计算并保存到存储器。类似地,对k0=1的bpsa算法,只需要计算并保存符号smn,两个幅度以及λnm幅度最小的变量节点n1的相对位置。这种情况下,bpsa的计算和存储开销与minsum相当。

表1对比了采用不同技术方案的校验节点消息的存储开销以及框加函数的计算开销。其中,q是llr消息的量化表示的比特数,为表示变量节点相对位置的比特数。bpsa-2-1,bpsa-3-1,和bpsa-4-1方案的存储开销与minsum相同。由于少数几个框加函数的计算开销可忽略不计,k0=1且k较小时,bpsa方案的计算开销与minsum相当。

表1:校验节点更新规则的开销对比

发明人实现了bpsa解码器,并通过蒙特卡罗仿真验证了其解码性能。图4为bpsa解码器与bp解码器、minsum解码器的块误码率性能的对比结果,其中使用了不规则ldpc码,(2304,1152),dc=9,码率为0.5,信道为awgn类型。其中,minsum解码器和bpsa解码器中的修正项参数α和β都做了精调以达到最佳的解码性能。所有的bpsa解码器,包括最简单的bpsa-2-1,其解码性能在块误码率(bler)指标上都优于minsum解码器。除bpsa-2-1外,其余bpsa解码器的块误码率性能几乎与bp解码器相同。对这个ldpc码,带乘积因子修正项的minsum-norm解码器的性能很差。在目标块误码率为10-1的情况下,带乘积因子修正项的minsum-norm解码器的性能下降从信噪比的角度达到了0.4分贝,而带偏移修正项的minsum-offset解码器性能下降约为0.13分贝。

ldpc解码器的另外一个重要的性能指标是吞吐率。ldpc解码器的吞吐率(t)与平均迭代次数(avgiter),和块误码率(bler)之间的关系如下

其中t0是一个与系统相关的常数。

图5对比了minsum和bpsa解码器相对bp解码器的相对吞吐率,其中采用的ldpc码与图4相同。简单起见,这里假定系统相关常数t0相同。在信噪比为0.5分贝时,带乘积因子修正的minsum-norm解码器的吞吐率只有bp解码器的9%,而带偏移因子修正的minsum-offset解码器的吞吐率也只有bp解码器的24%。在信噪比为1分贝时,两种minsum解码器的吞吐率也不到bp解码器的50%。即使当信噪比为2分贝时,两种minsum解码器的吞吐率也低于bp解码器的90%。相比之下,bpsa解码器的吞吐率要比minsum解码器好很多。bpsa-4-1,bpsa-3-2,或bpsa-4-2解码器的吞吐率几乎与bp解码器相同,甚至更好。特别是bpsa-4-2的吞吐率,在信噪比从0.5分贝一直到2分贝,都不少于bp解码器的99%。值得指出的是,假定硬件功率接近,则吞吐率方面的改善也意味着能效方面的改善。

存储设备中通常会更关心高码率ldpc码和二进制对称信道(bsc)模型。图6为bp,minsum,和bpsa三类解码器对码率为0.872,dc=43的不规则ldpc码,(18944,16512),在bsc信道中的解码性能对比。同样的,所有bpsa解码器的性能均优于minsum解码器。除最简单的bpsa-2-1外,其它几种bpsa解码器的性能几乎与bp解码器相同。图7为相对吞吐率的对比图。bpsa解码器相比minsum解码器的优势在吞吐率指标上特别明显。在图中所示的bsc交叉概率的全部范围中,bpsa-8-1解码器的吞吐率不少于bp解码器的95%,而bpsa-f-2解码器的吞吐率不少于bp解码器的98%。相比之下,minsum解码器的吞吐率要差很多,尤其是当bsc交叉概率较大时。

总之,基于bpsa算法的解码器的性能接近基于bp算法的解码器,优于基于minsum算法的解码器。当k和k0较小时,其开销与基于minsum算法的解码器相当,远低于bp算法。bpsa的两个配置参数k和k0可根据具体应用的性能和成本要求灵活调整。

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