一种译码方法中校验节点的更新方法及译码器与流程

文档序号:12613421阅读:504来源:国知局
一种译码方法中校验节点的更新方法及译码器与流程

本发明涉及通信技术领域,具体涉及一种译码方法中校验节点的更新方法及译码器。



背景技术:

信道编码是保证通信系统和存储系统可靠工作的关键技术。二进制低密度奇偶校验(LDPC)码是一类性能可逼近香农极限的线性纠错码。在过去的十余年里,二进制LDPC码得到快速的发展并广泛应用于通信和数据传输系统中。多进制LDPC码可以表现出比二进制LDPC码更好的纠错能力,更低的错误平层并高度适用于高阶调制。在无线通信、深空通信和数字存储系统中,多进制LDPC码都表现出了取代二进制LDPC码的巨大潜力。然而,多进制LDPC码的基于置信度传播(BP)译码算法的巨大复杂度一直阻碍其实际的应用。

多进制和积译码算法(QSPA)是最优的BP译码算法,但是其译码复杂度也最大。对于有限域GF(q)(q=2r)下的多进制LDPC码,QSPA算法在译码过程中,对每个码字符号需要存储和计算该符号全部q个域元素的置信度。校验节点的更新运算是基于dc个长度为q的置信度向量之间的卷积运算。每个校验节点运算需要dcq2数量级的计算量和计算复杂度。

因此,设计高效且译码复杂度低,设计结构简单的译码算法来推动多进制LDPC码在通信和存储系统中的广泛应用是亟待解决的问题。



技术实现要素:

为解决上述技术问题,本发明提供一种译码方法中校验节点的更新方法及译码器,实现有效地匹配计算效率,提高译码效率,降低在校验节点的计算复杂度。

为实现上述目的,本发明提供以下技术方案:

一方面,本发明提供了一种译码方法中校验节点的更新方法,包括:

用网格图表示输入校验节点的置信度向量;

将网格图中的节点划分为集合;

集合中的节点连接组成固定路径;

通过固定路径输出置信度向量。

进一步的,所述将网格图中的节点划分为集合的步骤,之前还包括:

按照网格图中每列第x个节点置信度值递增或递减的顺序对网格图中的每列进行排序。

进一步的,按照网格图中每列第二个节点置信度值递增或递减的顺序对网格图中的每列进行排序。

进一步的,所述将网格图中的节点划分为集合的步骤,具体包括:

在网格图中选取t行以及t行之前的所有节点组成集合1;

集合2的范围为:在网格图中t行之后,d行以及d行之前的,所述网格图中第r行置信度值的最小值和次小值所在列的节点,其中r>t;

集合3的范围为:在网格图中d行之后,e行以及e行之前的,所述网格图中第s行置信度值的最小值和次小值所在列的节点,其中s>d;

集合N的范围为:在网格图中f行之后,所述网格图中第v行置信度值的最小值和次小值所在列的节点,其中v>f。

进一步的,所述通过固定路径输出置信度向量的步骤,之前还包括:

将固定路径存储至所述网格图中的额外列中,通过额外列中的固定路径输出置信度向量。

进一步的,其特征在于,将网格图中第一行节点组成的固定路径、含有一个偏离网格图中第一行节点组成的固定路径的节点所组成的固定路径以及含有两个偏离网格图中第一行节点组成的固定路径的节点所组成的固定路径存储至网格图中的额外列中。

进一步的,所述通过额外列中的固定路径输出置信度向量的步骤,之后还包括:

将输出置信度向量的顺序调整为输入校验节点时的置信度向量的顺序。

另一方面,本发明提供了一种译码器,包括:

接收单元、初始化单元、变量节点更新单元、端口预调单元以及校验节点更新单元;

所述接收单元,用于向初始化单元输出符号信息向量;

所述初始化单元,用于将符号信息向量初始化并至二分图中,并将符号信息向量传递给校验节点更新单元;

所述校验节点更新单元,用于对输入校验节点的符号信息向量进行更新运算并传递给变量节点更新单元;

所述变量节点更新单元,用于接收校验节点更新单元输出的符号信息向量并进行变量节点更新计算,将计算结果传递给校验节点更新单元;

所述端口预调单元,用于根据输入校验节点更新单元的符号信息向量的顺序调整校验节点更新单元输出的符号信息向量的顺序。

进一步的,所述校验节点更新单元包括:

校验寄存器,用于存储输入的符号信息向量;

校验比较器,用于读取校验寄存器中输入的预设符号信息向量,选择符号信息向量中最可信和次可信的元素;

校验选择器,用于选择集合中的元素参与更新运算;

存储器,用于存储额外列中的校验值。

进一步的,所述端口预调单元包括:

端口预调缓存器,用于存储输入校验节点更新单元的符号信息向量;

端口预调比较器,用于读取校验寄存器中输入的预设符号信息向量,选择符号信息向量中最可信和次可信的元素;

端口预调选择器,用于对缓存器中存储的符号信息向量进行排序并输出至校验节点更新单元。

由上述技术方案可知,本发明所述的一种译码方法中校验节点的更新方法及译码器,实现了降低了译码算法的复杂度,降低了在校验节点的计算复杂度。同时选取固定的偏差路径、采用判决置信度可以在很小的译码性能损失下,提高译码吞吐量,减少硬件资源的消耗。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例一提供的一种译码方法中校验节点的更新方法的流程示意图;

图2是本发明实施例提供的划分集合数为4的网格图;

图3是本发明实施例二提供的一种译码方法中校验节点的更新方法的流程示意图;

图4是本发明实施例提供的校验矩阵示意图;

图5是本发明实施例提供的Tanner图;

图6是本发明实施例提供的划分集合数为2的网格图;

图7是本发明实施例三提供的一种译码器的结构示意图;

图8是本发明实施例提供的校验节点更新单元的结构示意图;

图9是本发明实施例提供的端口预调单元的结构示意图;

图10是本发明实施例提供的一种固定路径译码器中寄存器与比较器的连接电路示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

信道编码是保证通信系统和存储系统可靠工作的关键技术。二进制LDPC码得到快速的发展并广泛应用于通信和数据传输系统中。多进制LDPC码可以表现出比二进制LDPC码更好的纠错能力,更低的错误平层并高度适用于高阶调制。然而,多进制LDPC码的基于置信度传播(BP)译码算法的巨大复杂度一直阻碍其实际的应用。因此,设计高效且译码复杂度低,设计结构简单的译码算法来推动多进制LDPC码在通信和存储系统中的广泛应用是亟待解决的问题。为解决上述技术问题,本发明实施例提供一种译码方法中校验节点的更新方法及译码器。

本发明实施例一提供一种译码方法中校验节点的更新方法,参见图1,本发明的更新方法具体包括:

S101:用网格图表示输入校验节点的置信度向量;

在本步骤中,首先根据信道接收来的比特信息序列计算出每个码字符号的比特或者符号置信度向量,并用每个码字符号的置信度向量初始化变量节点传递给校验节点的边信息。然后进行码字判决,若是合法的码字或者达到最大迭代次数,则终止译码,输出译码结果,否则将置信度向量输入校验节点进行更新运算。

采用Rι,c和Rc,ι(0≤ι<ρ)分别表示一个校验节点的长度为nm输入置信度向量和输出置信度向量。Rsι,c和Rsc,ι分别存储Rι,c和Rc,ι中每个置信度对应的域元素。用一个网格图表示校验节点的每个输入向量,网格图中的每一列对应于一个输入置信度向量Rι,c和其对应的域元素向量Rsι,c

S102:将网格图中的节点划分为集合;

在本步骤中,将网格图中的所有列划分为N个集合。集合1(S0)包含前t行的所有节点,t<<nm。很明显,集合1包含了网格图中绝大多数的最可靠的节点。集合2(S1)包含第e1行中最小值和次小值所对应列的第t+1~d1个节点(t<e1<d1),集合3(S2)包含第e2行中最小值和次小值所对应列的第d1+1~d2个节点(d1<e2<d2),依次类推,集合N(SN-1)包含第eN-1行中最小值和次小值所对应列的第dN-2+1~nm个节点(dN-2<eN-1<nm)。参见图2,是一个行重为4的网格图,t的取值为3,N=4。

S103:集合中的节点连接组成固定路径;

在本步骤中,网格图中第一行节点的组合即为最可靠路径,即ML路径。在网格图中引进一个额外列ΔRs存储与最可靠路径相比最多只有两个位置偏差(偏差节点)的固定路径的校验值,这些偏差位置只能是N个集合中的元素,ΔR存储ΔRs中每个校验值的置信度。以t的取值为3,N=4为例:ΔRs和ΔR的更新如下:

其中e1'和e1”分别表示网格图中第e1行中最小值和次小值所对应的输入向量的序号,e2'和e2”分别表示网格图中第e2行中最小值和次小值所对应的输入向量的序号,e3'和e3”分别表示网格图中第e3行中最小值和次小值所对应的输入向量的序号。

S104:通过固定路径输出置信度向量。

在本步骤中,将固定路径存储至所述网格图中的额外列中,通过额外列中的固定路径输出置信度向量。将网格图中第一行节点组成的固定路径、含有一个偏离网格图中第一行节点组成的固定路径的节点所组成的固定路径以及含有两个偏离网格图中第一行节点组成的固定路径的节点所组成的固定路径存储至网格图中的额外列中。

所述校验节点输出置信度向量的固定路径为:

1、固定路径存储的置信度值小于集合N中第k行置信度值的最小值或次小值;其中,所述固定路径存储的置信度值为该固定路径中所有节点的置信度值的和;即:

设置标记向量以判断固定路径的可靠性。以t的取值为3,N=4为例:对于0≤k<4ρ+2d3-8,两个标记向量T和分别标志ΔR中每个置信度是否小于和

2、排除含有该输出的置信度向量中的偏差节点组成的固定路径;即:

通过在ΔRs和ΔR中去掉自己所在列中的节点,若某固定路径的偏差节点包含该输出向量对应的输入列中的节点,则舍弃该固定路径。对于偏差节点不位于集合N中次小值所在列固定路径,若T向量中对应的值为1,则舍弃该路径;对于偏差节点位于集合N中次小值所在列固定路径,若向量中对应的值为1,则舍弃该路径。

从上述描述可知,本发明所提供的一种译码方法中校验节点的更新方法,减少了排序运算,并降低了在校验节点的计算复杂度。同时可以并行地更新置信度信息,有效地匹配计算效率,提高译码效率。

本发明实施例二提供一种译码方法中校验节点的更新方法,参见图3,上述步骤S101之前,还包括如下步骤:

S100:按照网格图中每列第x个节点置信度值递增或递减的顺序对网格图中的每列进行排序。

上述步骤S104之后,还包括如下步骤:

S105:将输出置信度向量的顺序调整为输入校验节点时的置信度向量的顺序。

在本步骤中,将校验节点输出的置信度向量输入值变量节点,变量节点接收进行更新运算的置信度向量后,将置信度向量传递给校验节点;译码器对变量节点输出的码字进行判决;直至译码器译出合法的码字或者达到最大迭代次数,终止译码,输出译码结果。

本发明提出的校验节点更新方法是基于多进制LDPC码的校验矩阵Tanner图的信息传输迭代译码算法。Tanner图结构由多进制LDPC码的校验矩阵H决定,参见图4和图5,为一个LDPC码的校验矩阵和它对应的Tanner图。Tanner图由变量节点和校验节点以及连接这两种节点的边构成。变量节点(VN)和校验节点(CN)分别代表校验矩阵的每一列和每一行,如果在校验矩阵H中元素第i行第j列的元素是非零元素,那么就表示Tanner图中第i个CN与第j个VN相连。多进制LDPC码的基于Tanner图的信息传输迭代译码算法分为译码初始化和译码迭代两部分,迭代过程包括如下步骤:译码结果硬判决、校验节点更新、变量节点更新,直到译码成功或达到最大迭代次数时结束译码。

本发明的校验节点更新方法可以适用于任意概率译码器,本发明以多进制LDPC码为例对本发明的实施方式展开详细描述。本发明的译码过程中所有可靠性信息更新是在符号置信度形式下进行的,以下结合具体实例分别进行描述。

假设多进制LDPC码由在有限域GF(q)(q=2r)下大小为m×n,列重和行重分别为γ,ρ的奇偶校验矩阵H的零空间定义。用h0,h1,...,hm-1表示矩阵H的每一行,其中hi=(hi,0,hi,1,...,hi,n-1),0≤i<m。令c=(c0,c1,…,cn-1)是码字空间中的一个码,则c=(c0,c1,…,cn-1)是一个长度为n的GF(2r)下的向量,该码字向量可以用一个长度为nr的二进制向量等效表示。用cj(0≤j≤n-1)表示码字的第j个符号,用cj=(cj,0,cj,1,…,cj,r-1)表示第j个符号的二进制表示,cj,t表示第j个符号的第t位二进制位,值为0或1。当通信系统使用BPSK调制方式进行传输时,对码字二进制表示的每一比特做如下映射:0→+1V,1→-1V。经过二进制输入加性高斯白噪声(BI-AWGN)信道后,系统接收到的码字信息为y=(y0,y1,...,yn-1),其中yj=(yj,0,yj,1,...,yj,r-1)为第j个码字符号r个比特的对数似然比,0≤j≤n-1,0≤t≤r-1。z=(z0,z1,…,zn-1)为硬判决接收向量,其中zj=(zj,0,zj,1,...,zj,r-1)为第j个码字符号r个硬判决比特。

第j个码字符号的符号置信度向量可以通过一个长度q的对数似然比向量来计算:

其中,Pr(cj=al|yj)是第j个码字符号cj取域元素al∈GF(q)的后验概率,因此,Lj[0]=0,且Lj[l]越小,cj=al越可靠。

对每个码字的q-符号置信度向量只截取LLR最小的前nm个域元素及其对应的LLR值,即得到截取的信道输出的码字符号置信度向量:

Y=[Y0,Y1,...,Yn-1]

其中对应的域元素向量为Yj,t=Lj(SYj,t),0≤j<n,0≤t<nm。定义变量节点节点j传递给CN节点i的边信息为:及对应的域元素向量:使用信道输出的码字符号信息分别初始化Uj→i和SUj→i

Uj→i,l=Yj,l

SUj→i,l=SYj→i,l

其中0≤j<n,0≤j<m,0≤l<nm

以一个校验节点的更新为例,校验节点更新运算规则如下:

Step1:Rι,c和Rc,ι(0≤ι<ρ)分别表示一个CN的长度为nm输入置信度向量和输出置信度向量。Rsι,c和Rsc,ι分别存储Rι,c和Rc,ι中每个置信度对应的域元素。用一个网格图表示CN的每个输入向量,网格图中的每一列对应于一个输入置信度向量Rι,c和其对应的域元素向量Rsι,c。将网格图中的每一列按照其第二个元素置信度值的从小到大往右排序。排序后网格图中第二行元素的大小关系如下:R0,c[1]≤R1,c[1]≤…≤Rρ-1,c[1]。将网格图中的所有列划分为两个集合。集合1(S0)包含前t行的所有节点,t<<nm。很明显,集合1包含了网格图中绝大多数的最可靠的节点。集合2(S1)只包含第nm/2行中最小值和次小值所对应列的节点(这两列各自的前t个节点除外)。参见图6所示,是一个行重为4的网格图,t的取值为3。

Step2:计算固定偏差路径。网格图中第一行元素的组合即为最可靠路径,即ML路径。在网格图中引进一个额外列ΔRs存储最可靠路径最多只有两个位置偏差的固定路径的校验值,这些偏差位置只能是集合1或者集合2中的元素,如图6所示。ΔR存储ΔRs中每个校验值的置信度。ΔRs和ΔR的更新如下:

其中i'和i'‘’分别表示网格图中第行中最小值和次小值所对应的输入向量的序号。

Step3:设置标记向量以判断固定路径的可靠性。对于0≤k<4ρ+2nm-8,两个标记向量T和分别标志ΔR中每个置信度是否小于和

Step4:并行地更新CN的输出向量。通过在ΔRs和ΔR中去掉自己所在列中的元素,CN的ρ个输出向量Rsc,ι和Rc,ι的更新如下:

Rc,ι[d]=ΔR[k],

其中0≤ι<ρ,0≤d<nm,k的取值范围由不同的情况决定。对于ι=0,如果i′≠0,k的取值范围是

{k:T[k]=1}∩{k=0or1<k≤ρor2ρ≤k<3ρ-2ork>3ρ-2},

否则,

对于1≤ι<ρ,如果ι≠i′,k的取值范围是

{k:T[k]=1}∩{0≤k≤2ρ-1ork≥3ρ-2}∩{k≠ι+1andk≠ρ+ιandk≠3ρ+ι-2},

否则,

CN更新计算完成后再将对应输出向量的顺序调整回原顺序,并将置信度向量传递给相邻的VN,进行VN更新计算。

从上述描述可知,本发明提供一种译码方法中校验节点的更新方法,根据网格图上不同偏差路径的置信度差异的不同,将所述网格图节点划分成两个集合,以集合为单位选取固定偏差路径进行译码过程中的计算。

本发明实施例三提供一种译码器,参见图7,本发明的译码器具体包括:

接收单元、初始化单元、变量节点更新单元、端口预调单元以及校验节点更新单元;

所述接收单元,用于向初始化单元输出符号信息向量;

所述初始化单元,用于将符号信息向量初始化并至二分图中,并将符号信息向量传递给校验节点更新单元;

所述校验节点更新单元,用于对输入校验节点的符号信息向量进行更新运算并传递给变量节点更新单元;

所述变量节点更新单元,用于接收校验节点更新单元输出的符号信息向量并进行变量节点更新计算,将计算结果传递给校验节点更新单元;

所述端口预调单元,用于根据输入校验节点更新单元的符号信息向量的顺序调整校验节点更新单元输出的符号信息向量的顺序。

在具体实施时,校验节点更新单元首先对所有输入信息向量选取固定路径构造出一个辅助信息向量,辅助信息向量中每个元素对应一条路径,输出信息向量中元素的计算为辅助信息向量中的元素减去各端口对应路径上的输入元素。变量节点更新单元将计算结果传递给校验节点再次进行码字判决,如此反复迭代直到译出正确码字或直到达到最大迭代次数为止。

所述校验节点更新单元包括:

校验寄存器,用于存储输入的符号信息向量;

校验比较器,用于读取校验寄存器中输入的预设符号信息向量,选择符号信息向量中最可信和次可信的元素;

校验选择器,用于选择集合中的元素参与更新运算;

存储器,用于存储额外列中的校验值。

在具体实施时,参见图8,校验节点更新单元(CNU)的硬件电路结构图,四个端口的输入信息向量首先分别缓存至四组寄存器中,并按顺序计算额外信息向量中各元素。当预设偏差元素输入时,比较器读入这四个数据,找到最可信及次可信的元素和它们对应的端口,控制各端口的二选一数据选择器选择集合1中的元素或集合2中的元素参与运算。同时最可信及次可信元素还控制输出缓存的写使能,根据与最可信及次可信元素比较结果判断输出路径是否保留,若输出路径的置信度小于最可信及次可信元素,则保留,否则舍弃。

所述端口预调单元包括:

端口预调缓存器,用于存储输入校验节点更新单元的符号信息向量;

端口预调比较器,用于读取校验寄存器中输入的预设符号信息向量,选择符号信息向量中最可信和次可信的元素;

端口预调选择器,用于对缓存器中存储的符号信息向量进行排序并输出至校验节点更新单元。

在具体实施时,在信息向量输入至校验节点更新单元(CNU)进行计算前,需要根据每个信息向量第二个元素的大小将端口顺序进行调整,CNU计算完成后再将端口调整回原顺序。因此本发明设计了端口预调单元,参见图9,首先对输入信息向量进行缓存,比较器根据偏差为1的元素找到拥有最可信元素和次可信元素的两个端口,左侧两个数据选择器为dc选一多路选择器,与所有缓存器的输出相连,分别选通拥有最可信元素的信息向量和拥有次可信元素的信息向量,其余数据选择器为三选一多路选择器,与原端口0、原端口1及原对应端口相连,原端口拥有最可信元素的选择器选通原端口0的信息向量,原端口拥有次可信元素的选择器选通原端口1的信息向量,其余选择器选通原端口数据。随着行重的增加,只需增加若干缓存器和占用资源较少的三选一多路选择器,不会造成硬件资源占用的大幅增加。

在CNU中,比较结果只在选择网格图集合2中的元素及输出时对计算过程进行了控制,距预设偏差元素输入有一定的时间间隔;而对于端口预调单元,由于当一个校验节点的输入数据全部输入CNU模块后,端口预调电路可以立即读入下一个校验节点的输入数据并对端口顺序进行调整,比较器的时延只对每次迭代第一个校验节点的计算时延有影响。采用了图10所示的并行输入串行比较的方式,比较器接收到开始信号后对所有输入数据进行缓存,首先比较前两个端口的数据大小,存为最小值和次小值,接下来将第三个端口的数据与当前最小值和次小值进行比较,并根据结果更新最小值和次小值,同时将第三端口之后其他端口的数据全部移至前一端口数据寄存器,继续将第三端口寄存器的数据与当前最小值和次小值进行比较,直至比较完所有端口数据。从输入到输出比较结果一共需要ρ个时钟周期,当行重增加时,只需相应增加端口缓存寄存器,而比较逻辑电路不需要增加,可以在满足时序要求的情况下减少硬件资源的占用。

通过上述描述可知,通过本发明提供的固定路径译码器降低了译码复杂度,尤其降低了在校验节点的计算复杂度。同时本发明选取固定的偏差路径、采用合适的判决置信度可以在很小的译码性能损失,提高译码吞吐量,减少硬件资源的消耗。

以上实施例仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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