一种LDPC级联码的编码方法、译码方法及其译码器转让专利

申请号 : CN200810056049.3

文献号 : CN100583653C

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王达管武董明科金野项海格

申请人 : 北京大学

摘要 :

本发明公开了一种LDPC级联码的设计方案,是以LDPC码为水平码、SPC码为垂直码的LDPC-SPC乘积码,所述SPC码码字的每一个比特通过n个LDPC码码字在相应位置的比特偶校验得到。该方案能够克服LDPC码的误码平层,并且比BCH码级联方法有更高的灵活性以及更大的编码增益。本发明同时给出了LDPC-SPC乘积码的编码方法和两种译码方法(硬判决方法和软判决迭代方法),并提供了相应的译码器。本发明提出的LDPC-SPC乘积码能够以非常小的冗余代价取得较大的编码增益,是一种适用于对延时不敏感的业务的信道编码方案。

权利要求 :

1.一种LDPC级联码的编码方法,包括以下步骤:

1)使信息比特流成帧;

2)将每n个信息帧在相应位置的比特做模2和,其中n为正整数,得到第n+1个冗余 帧,为 c n + 1 j = Σ k = 1 n c k j mod 2 , j = 1,2 , · · · , N , 其中N为信息帧长度,为正整数;

3)将这n+1个信息帧依次经过LDPC码编码得到n+1个LDPC码码字,其中第n+1个 LDPC码码字为冗余码字,将该冗余码字命名为SPC码,则所得到的LDPC级联码 为LDPC-SPC乘积码,有: c SPC j + c LDPC 1 j + c LDPC 2 j + c LDPC 3 j + · · · + c LDPC n j mod 2 = 0 其中cSPC j为SPC码字的第j个比特,分别为前n个LDPC码字的第j 个比特。

2.根据权利要求1所述的编码方法,其特征在于:所述n的取值为50到400。

3.权利要求1中所述的LDPC-SPC乘积码的译码方法,包括如下步骤:

1)将每n+1个LDPC码码字依次进行LDPC码译码,其中的第n+1个LDPC码码字为 SPC码码字,得到n+1个LDPC码译码的硬判决结果;

2)统计出n+1个LDPC码中的错误图样,根据下列a)~c)的情况进行处理:

a)如果n+1个LDPC码码字中没有码字译码失败,译码结束;

b)如果n+1个LDPC码码字中超过1个码字译码失败,译码结束;

c)如果n+1个LDPC码码字中只有一个码字译码失败,则又分两种情况:

i.如果错误的码字是SPC码,直接删除该码字,输出前n个正确的LDPC码, 译码结束;

ii.如果错误的码字是前n个LDPC码中的一个,则进入步骤3);

3)删除错误的LDPC码字,将其余的n个正确的LDPC码字在列方向上逐比特进行模 2和,所得结果为恢复出的正确码字,输出恢复后的正确码字,译码结束。

4.权利要求1中所述的LDPC-SPC乘积码的译码方法,包括如下步骤:

1)将每n+1个LDPC码码字依次进行LDPC码译码,其中的第n+1个LDPC码码字为 SPC码码字,得到n+1个LDPC码译码的硬判决结果和每个比特的置信度信息Li j,其中i从1到n+1,j从1到N,N为LDPC码的码长, L LDPC n + 1 j = L SPC j ; 并且设定译 码的最大迭代次数T;

2)统计出n+1个LDPC码中的错误图样,根据下列a)~c)的情况进行处理:

a)如果n+1个LDPC码码字中没有码字译码失败,译码结束;

b)如果n+1个LDPC码码字中只有一个码字译码失败,则又分两种情况:

i.如果错误的码字是SPC码,直接删除该码字,输出前n个正确的LDPC码, 译码结束;

ii.如果错误的码字是前n个LDPC码中的一个,则删除该错误码字,然后将其 余的n个正确的LDPC码字在列方向上逐比特进行模2和,所得结果为恢复 出的正确码字,输出恢复后的正确码字,译码结束;

c)如果n+1个LDPC码码字中有2个或2个以上的码字发生错误,则转入步骤3) 进行迭代纵向译码,当迭代次数达到T时译码结束;

3)分别计算错误码字每个比特的外信息 e i k j = 2 arctanh ( Π t = 1 , t i k n + 1 tanh ( L t j 2 ) ) , 其中ik表示n+1 个码字中的第k个错误码字,k为正整数,j表示第k个错误码字中的第j个比特;

4)更新错误码字每个比特的置信度 L i k j = L i k j + e i k j ;

5)将更新过置信度的错误码字依次进行LDPC码译码,然后返回步骤2)。

5.根据权利要求4所述的译码方法,其特征在于:所述步骤3)中令译码成功的码字的置 信度Li j的大小为 | L i j | = , 符号为 sgn ( L i j ) = sgn ( L i j ) , 其中j=1,2,…,N,则错误码字每 个比特的外信息的大小为 | e i k j | = max ( min t = 1 t i n + 1 ( | L t j | ) - 0.2,0 ) , 符号为 sgn ( e i k j ) = Π t = 1 , t i n + 1 sgn ( L t j ) , 其中j=1,2,…,N。

6.一种译码器,用于对权利要求1中所述的LDPC-SPC乘积码进行译码,包括LDPC码 译码模块、第一存储模块、错误码字统计模块以及硬判决恢复模块四个部分,其中:

LDPC码译码模块对每n+1个LDPC码码字依次进行译码,其中的第n+1个LDPC 码码字为SPC码码字,输出n+1个LDPC码信息位的硬判决信息;

第一存储模块用于存储硬判决信息;

错误码字统计模块根据硬判决信息统计n+1个LDPC码中的错误码字,并决定 LDPC码字信息位的流向:如果n+1个LDPC码码字中只有一个码字译码失败且该码 字不是SPC码,则进入硬判决恢复模块,否则输出信息比特;

硬判决恢复模块删除错误的LDPC码字,然后将其余的n个正确的LDPC码字在 列方向上逐比特进行模2和,所得结果为恢复出的正确码字,输出恢复后的正确信息 比特。

7.根据权利要求6所述的译码器,其特征在于:所述第一存储模块为双端口RAM;所述 错误码字统计模块是一个起始值为0的计数器。

8.根据权利要求6所述的译码器,其特征在于:所述硬判决恢复模块主要由模2加法器 模块和第二存储模块两部分组成,其中模2加法器模块用于计算除了错误码字之外的n 个LDPC码字的信息位按位纵向的模2和,同时输出这n个正确的信息比特;第二存 储模块用于存储模2加法器的临时结果,即和下一帧做模2和的加数,并输出最终的 累加结果,即恢复出的正确信息比特。

9.一种译码器,用于对权利要求1中所述的LDPC-SPC乘积码进行译码,包括LDPC码 译码模块、第一存储模块、错误码字统计模块、SPC码软译码模块和硬判决恢复模块 五个部分,其中:LDPC码译码模块对每n+1个LDPC码码字依次进行译码,其中的第n+1个LDPC 码码字为SPC码码字,输出n+1个LDPC码信息位的软信息和硬判决信息,所述软信 息即每个比特的置信度Li j,其中i从1到n+1,j从1到N,N为LDPC码的码长;

第一存储模块用于存储LDPC码信息位的软信息和硬判决信息;

错误码字统计模块统计n+1个LDPC码中的错误码字,并决定LDPC码字信息位 的流向:如果n+1个LDPC码码字中只有一个码字译码失败且该码字不是SPC码,则 进入硬判决恢复模块;如果n+1个LDPC码码字中超过一个码字译码失败,则进入SPC 码软译码模块;如果没有码字错误或仅SPC码译码失败,则输出正确的信息比特;

硬判决恢复模块删除错误的LDPC码字,然后将其余的n个正确的LDPC码字在 列方向上逐比特进行模2和,所得结果为恢复出的正确码字,输出恢复后的正确信息比 特;

SPC码软译码模块对n+1个LDPC码中出现错误的码字保留其软信息,而正确码 字仅保留其硬判决信息,即符号位;然后分别计算错误码字每个比特的外信息 e i k j = 2 ar c tanh ( Π t = 1 , t i k n + 1 tanh ( L t j 2 ) ) , 其中ik表示n+1个码字中的第k个错误码字,k为正整数, j表示第k个错误码字中的第j个比特;得到的外信息作为LDPC码译码模块的先验信 息进行再次译码,即更新错误码字每个比特的置信度 L i k j = L i k j + e i k j , 再输入LDPC码译 码模块进行迭代译码,直至达到最大迭代次数或者所有码字检测正确。

10.根据权利要求9所述的译码器,其特征在于:所述硬判决恢复模块主要由模2加法器 模块和第二存储模块两部分组成,其中模2加法器模块用于计算除了错误码字之外的 n个LDPC码字的信息位按位纵向的模2和,同时输出这n个正确的信息比特;第二 存储模块用于存储模2加法器的临时结果,即和下一帧做模2和的加数,并输出最终 的累加结果,即恢复出的正确信息比特。

说明书 :

技术领域

本发明涉及一种信道编码技术,尤其是一种LDPC级联码的构造及译码方法,属于信 息技术领域。

背景技术

信道编码技术作为保证通信系统可靠传输的基本技术,在近十年来得到了飞速发展, 以Turbo码、LDPC码(低密度奇偶校验码)为代表的一大批性能能够逼近理论极限的信 道编码相继被发现并得到深入研究,其中LDPC码在近几年尤其得到了关注,该码因为具 有逼近香农极限的纠错性能和适于并行计算的简单译码算法,所以已经被许多通信标准采 纳,如DVB-S2、WiMAX等。这表明在未来一段相当长的时间里,LDPC码将成为通信系 统中的一种主流信道编码。
通过对Turbo码、LDPC码等近香农极限码的研究发现,与以往所有的信道编码不同, 近香农极限码的误码率曲线可以被分为瀑布(waterfall)区和平层(floor)区两个区域。 在瀑布区,近香农极限码的误比特率随着归一化信噪比的增加而快速下降,误比特率曲线 此时看上去几乎垂直于x轴。在平层区,近香农极限码的误比特率随归一化信噪比增加而 下降的速度相对于瀑布区明显放缓,甚至有可能不再下降,误比特率曲线此时看上去就像 一条平行于x轴的平台,误码平层(Error Floor)因此得名。
与Turbo码的误码平层主要由它的小重量码字导致不同,在加性高斯白噪声(Additive White Gaussian Noise,AWGN)信道下,LDPC码的误码平层主要是由其捕获集(trapping set)决定。当LDPC码的误码平层出现时,迭代译码算法收敛到一个与正确码字相近的“近 似码字”(near code word)上的概率也随之升高。该“近似码字”能够满足大部分的校验方 程约束。因此,LDPC码的误码平层现象具有以下两个特点,一是在LDPC码的码长较长, 例如达到数千比特长度时,其误码平层主要由“近似码字”决定,因为它们并不能满足所有 的校验关系,所以错误码字能够被译码器检测到;二是由于“近似码字”与正确码字非常相 近,每一个错误码字中的错误比特数目不会很多。
例如:长度为8064比特,1/2码率的LDPC码,其误码曲线如图1所示。该LDPC码 在归一化信噪比等于1.5dB时开始出现误码平层,为了对其误码平层进行分析,在归一化 信噪比分别为1.5dB和1.6dB时各自统计了200个错误的LDPC码码字。
统计结果表明,在两个归一化信噪比下,各自统计到的200个错误码字都不能满足H 矩阵的校验关系,因此都能够被LDPC译码器检测到,符合上面提到的特点一。其次,从 图2可以看到,在两个信噪比下,各自统计的200个错误码字中,尽管1.5dB时错误比特 数目超过10比特的码字个数略微多于1.6dB时的统计结果,但是在两个信噪比下,一个码 字有超过10比特发生错误的情况都不超过10%,最大错误比特数目也仅为25比特。错误 比特数目远远小于码长8064比特,这一统计结果很好的符合了上面提到的关于LDPC码 误码平层的第二个特点。有趣的是,从图2还可以发现,在译码器达到最大迭代次数,译 码失败时,有相当的比例的错误LDPC码字仅错误了1个比特。发生这种现象是因为错误 比特参与的校验方程通常包含了两个或更多的置信度软信息在0附近的比特。在和积算法 的每一次迭代过程中,这些置信度很低的比特的置信度软信息将会在0上下不断发生翻转, 使得LDPC译码器始终无法收敛到正确的码字。
在LDPC码出现误码平层时,为了分析是否有多个错误码字的错误比特发生在同一个 位置,在归一化信噪比分别为1.5dB和1.6dB时各自对错误比特的位置进行统计,从图3 中可以看到,在两个归一化信噪比下,绝大多数发生错误的比特位置都仅发生了一次错误, 发生两次及两次以上错误的比特位置仅占所有错误比特位置的20%。如果对每n个LDPC 码字进行一次统计,那么这n个LDPC码字中,发生了两次或两次以上错误的比特位置, 比例就更小。例如令n=100,如果每100个LDPC码码字内,错误了两个或两个以上的码 字,那么在这些错误码字中,发生了两次或两次以上错误的比特位置不到所有错误比特位 置的1%。也就是说100个LDPC码字内,很少有同一个比特位置出现两次或两次以上的 错误。
误码平层现象给许多要求误码性能很高的通信系统的实现带来了困扰。因此对于 LDPC码误码平层的研究一直是近年来信道编码领域的一个重要的研究方向。目前,克服 LDPC码误码平层的方法主要有三种,一种是代数的方法,主要通过构造具有很大的最小 码距的LDPC码来达到降低误码平层的目的,这种的缺点在于具有较大的最小码距的 LDPC码往往性能不够理想,能够构造的参数也不连续;第二种方法则是在LDPC码的构 造过程中采用ACE准则,这种方法虽然能够构造具有较低的译码门限,但是其降低误码 门限的效果比较有限;第三种方法就是将LDPC码与BCH码进行级联,这也是最常用的 方法。该方法以BCH为外码,LDPC为内码,待编码的信息码字先进入BCH编码器,生 成BCH编码码字,之后再进入LDPC编码器生成最终的编码输出码字。解码是编码的逆 过程,接收到的码字先进入LDPC解码器,解码出BCH码字,送入BCH解码器进行解码, 输出最终的解码结果。
大量的仿真结果表明,LDPC-BCH级联码能够有效地将LDPC码的误码平层降低到 10-11以下,可以满足绝大多数系统的需求。但这种方法有两个主要的缺点,一是冗余代价 较高,因为BCH码没有简单的软判决译码算法,通常只能采用硬判决算法,编码增益损 失很大;二是实际的通信系统往往具有许多不同的码率,这就要求BCH码为不同码率的 LDPC码提供不同的码长和不同的纠错能力,增加了级联码方案设计的难度和编译码系统 的复杂度。

发明内容

针对LDPC码的上述现状,为了更好的降低LDPC码的误码平层,改善LDPC码的误 码性能,本发明提出了一种新的更好的LDPC级联码方案,并给出了其编译码方案。具体 的编码方案如下:
1.初始化:信息比特流成帧;
2.将每n个信息帧在相应位置的比特做模2和,其中,n为正整数,可以根据实际 需要选定。即第n+1个冗余帧为 c n + 1 j = Σ k = 1 n c k j mod 2 , j = 1,2 , · · · , N , 其中N为信息帧 长度,为正整数;
3.将这n+1个信息帧依次通过LDPC码编码器,得到n+1个LDPC码码字,其中第 n+1个LDPC码码字为冗余码字,在本发明中把这一冗余码字命名为单奇偶校验 (single parity check,SPC)码,由于LDPC码是一种线性分组码,所以SPC码码 字的每一个比特相当于通过n个LDPC码码字在相应位置的比特偶校验得到,如 果令SPC码字的第j个比特为cSPC j,n个LDPC码字中第i个码字的第j个比特为 则有:
c SPC j + c LDP C 1 j + c LDPC 2 j + c LDP C 3 j + · · · c LDPC n j mod 2 = 0
编码后的码字图样如图4所示,从图中可以看出本发明提出的LDPC级联码方案是以 LDPC码为水平码,SPC码为垂直码的LDPC-SPC乘积码方案。从编码过程中可以看出, SPC码码字也是符合同一个H矩阵约束的LDPC码码字。如果LDPC码的码率为R,那么 得到的LDPC-SPC乘积码码率为n·R/(n+1),其中n为正整数。
理论上n可以取1到正无穷中的任意一个正整数。但是,由于LDPC-SPC乘积码的编 码是在LDPC码的基础上又加上一个SPC冗余码字,其带来的归一化信噪比损失为 当n取值较小时,带来的编码冗余较大,信噪比损失较大,不利于改善LDPC 误码性能;但n取值很大时,虽然带来的编码冗余可以忽略,但是n个LDPC码字中可能 出现的错误码字的数目也相应增多,这使得译码方法复杂度增大。本发明通过大量的仿真 结果得出,n取50到400之间的数值将是一个合理的选择,此时的编码冗余也可以忽略不 计,译码方法的复杂度并不大。当然,也可以根据实际需要增大或减小n的取值。
通过背景技术中的分析可以知道,当LDPC码的误码平层出现时,几乎所有的错误码 字都是能够被检测到的。利用LDPC码的这一检错特性,本发明给出LDPC-SPC乘积码的 两种译码方法:硬判决方法和软判决迭代方法。
LDPC-SPC乘积码的硬判决译码方法包括如下步骤:
1.初始化:将每n个LDPC码码字与1个SPC码码字依次通过LDPC码译码器进行 译码,即令第i个LDPC码字进入LDPC码译码器进行译码,其中i从1到 n+1循环, C LDPC n + 1 = C SPC , 得到n+1个LDPC码译码的硬判决结果;
2.根据LDPC码译码器能够检错的特性,可以统计出n+1个LDPC码中的多种错误 图样,具体处理如下:
a)如果n+1个LDPC码码字中没有码字译码失败,译码结束;
b)如果n+1个LDPC码码字中超过1个码字译码失败,译码结束;
c)如果n+1个LDPC码码字中只有一个码字译码失败,又可以分为两种情况:
i.如果错误的码字是SPC码,由于SPC码是冗余校验码字,所以可以直接 删除,输出前n个正确的LDPC码,译码结束;
ii.如果错误的码字是前n个LDPC码中的一个,则进入步骤3。
3.根据SPC码字的偶检验关系,恢复出正确码字,具体处理步骤如下:
3-1删除错误的LDPC码字;
3-2将其余的n个正确的LDPC码字在列方向上逐比特进行模2和,所得结果为恢 复出的正确码字;
3-3输出恢复后的正确码字。
其中,步骤3-2的证明如下:
由于 c SPC j + c LDP C 1 j + c LDPC 2 j + c LDP C 3 j + · · · + c LDP C n j mod 2 = 0 , 则错误码字的第j个比特 c Error j = c SPC j + c LDP C 1 j + c LDP C 2 j + c LDP C 3 j + · · · + c Error - 1 j + c Error + 1 j + · · · + c LDP C n j mod 2 , c Error j = Σ k = 1 k Error n = 1 c LDP C k j mod 2 . 得证。
通过上述步骤不难发现,LDPC-SPC乘积码硬判决译码方法只能纠正每n+1个LDPC 码字仅出现一个错误码字的情况,因此其译码性能与LDPC码的误码字率相关,可以通过 计算估计得到。设级联之前每一个LDPC码码字的错误概率为P,级联后,只有当n个LDPC 码码字中错且仅错一个码字,并且SPC码字正确时,硬判决方法才能纠正错误,这一条件 发生的概率为P1=nP(1-P)n,因此级联后LDPC码的误码字率P′=P-P1/n=P-P(1-P)n 如果将(1-P)n展开,就可以得到 P = P - P ( 1 - nP + C n 2 P 2 + · · · ) . 当n远小于1/P时,级 联码译码后的LDPC码误码字率P′≈nP2。由于发生误码平层时,LDPC码的误码字率和 误比特率随归一化信噪比变化的幅度非常小,因此当n固定以后级联后的LDPC码的误码 字率P′相比于级联前的误码字率P可以认为是按照比例nP缩小。因为硬判决方法的性能 不受每个错误码字的错误比特数的影响,所以可以近似地认为乘积编码的误比特率也是仅 进行LDPC编码的误比特率p按照比例nP缩小。利用上述估计方法能够较精确的估计仿 真结果,从而节省大量的仿真时间。
硬判决方法是一种具有极低复杂度的译码方法,能够帮助出现误码平层的LDPC码降 低误码平层。但当n个LDPC码字与1个SPC码码字中出现2个或2个以上的错误码字时, 硬判决方法是无法对其进行纠正的,这也就限制了其对LDPC码性能的进一步改善,下面 给出的软判决迭代译码方法可以对上述误码图样进行纠正,从而更大限度的提高LDPC码 的误码性能。
根据背景技术中对误码平层的分析结果可知,当LDPC码误码平层出现时,n个LDPC 码字与1个SPC码码字中出现2个或2个以上的错误码字时,大多数的错误比特并未发生 在同一位置,因此如图5所示的错误图案会以很大的概率发生,即在级联码的每一个纵向 的校验关系中,绝大多数的校验方程仅包含了一个错误比特。虽然在理论上,通过其余的 正确比特就能够恢复出错误比特,但是由于LDPC码译码器无法判断错误码字中正确比特 的位置,因此本发明给出一种软判决迭代译码方法。利用该方法,纵向校验方程中各个比 特将自身的置信度软信息作为外信息提供给别的LDPC码码字中的比特,并将得到的外信 息提供给自己所属的LDPC码译码器,以帮助译码器顺利收敛到正确的码字。
LDPC-SPC乘积码的软判决迭代译码方法的具体步骤如下:
1.初始化:将每n个LDPC码码字与1个SPC码码字依次通过LDPC码译码器进行 译码,得到n+1个LDPC码译码的硬判决结果和每个比特的置信度信息Li j,其中 Li j示第i个码字的第j个比特的置信度信息,i从1到n+1,j从1到N,N为 LDPC码的码长, L LDP C n + 1 j = L SPC j , 并且设软判决译码最大迭代次数为T;
2.根据LDPC码译码器能够检错的特性,可以统计出n+1个LDPC码中的多种错误 图样,具体处理如下:
a)如果n+1个LDPC码码字中没有码字译码失败,译码结束;
b)如果n+1个LDPC码码字中只有一个码字译码失败,又可以分为两种情况:
i.如果错误的码字是SPC码,由于SPC码是冗余校验码字,所以可以直接 删除,输出前n个正确的LDPC码,译码结束;
ii.如果错误的码字是前n个LDPC码中的一个,则进行与硬判决译码相类似 的方法:
第一,删除错误的LDPC码字;
第二,将其余的n个正确的LDPC码字在列方向上逐比特进行模2和,所 得结果为恢复出的正确码字;
第三,输出恢复后的正确码字,译码结束;
c)如果n+1个LDPC码码字中有2个或2个以上的码字发生错误,则进行纵向 译码;
i.如果已经达到软判决译码最大迭代次数T,则译码结束。
ii.如果没有达到软判决译码最大迭代次数T,则转到步骤3。
3.根据纵向偶校验关系,分别计算错误码字每个比特的外信息: e i k j = 2 ar c tanh ( Π t = 1 , t i k n + 1 tanh ( L t j 2 ) ) , ik表示n+1个码字中的第k个错误码字,k为正整 数,j表示第k个错误码字中的第j个比特;
4.更新错误码字的每个比特的置信度 L i k j = L i k j + e i k j , 其中ik表示n+1个码字中的第k 个错误码字,k为正整数,j表示第k个错误码字中的第j个比特;
5.将更新过置信度的错误码字依次送入LDPC码译码器,进行译码,然后返回步骤 2。
LDPC-SPC乘积码的软判决迭代译码方法流程图如图6所示。
步骤3是LDPC-SPC乘积码的软判决迭代译码方法的核心步骤。其中,通过纵向校验 关系,错误码字每个比特的外信息的计算公式 e i j = 2 ar c tanh ( Π t = 1 , t i n + 1 tanh ( L t j 2 ) ) 的证明如下:
设包括SPC码码字在内的n+1个LDPC码码字经过LDPC码译码器之后,第i个LDPC 码字中的第j个比特的置信度为Li j,令参与第j个纵向的校验关系的n+1个比特的置信度 软信息分别为K1 j,L2 j,…,Ln+1 j,其中 L i j = log p ( c i j = 0 ) p ( c i j = 1 ) , p ( c i j = 0 ) 表示第i个LDPC码码字的 第j个比特等于0的概率, p ( c i j = 1 ) 表示该比特等于1的概率,1≤i≤n+1。
由于 c SPC j + c LDP C 1 j + c LDPC 2 j + c LDP C 3 j + · · · + c LDP C n j mod 2 = 0 , 令S=0表示该偶校验关系,则 译码输出的第j个校验关系中的第i个比特的软信息为:
Ls i j = log p ( c i j = 0 | S = 0 ) p ( c i j = 1 | S = 0 )
其中,
p ( c i j = 0 | S = 0 ) = p ( S = 0 | c i j = 0 ) p ( S = 0 ) · p ( c i j = 0 )
p ( c i j = 1 | S = 0 ) = p ( S = 0 | c i j = 1 ) p ( S = 0 ) · p ( c i j = 1 )
因此 Ls i j = log p ( S = 0 | c i j = 0 ) · p ( c i j = 0 ) p ( S = 0 | c i j = 1 ) · p ( c i j = 1 ) = log p ( S = 0 | c i j = 0 ) p ( S = 0 | c i j = 1 ) + L i j ;
p ( S = 0 | c i j = 0 ) = p ( S = 0 ) , p ( S = 0 | c i j = 1 ) = p ( S = 1 ) 其中S′表示除第i个比特之外 其余n个比特的校验和,通过上述化简可得:
Ls i j = log p ( S = 0 ) p ( S = 1 ) + L i j
c i j = 0 映射为 u i j = 1 , c i j = 1 映射为 u i j = - 1 ,
p ( S = 0 ) = p ( Π k = 1 k i n + 1 u k j = 1 ) , p ( S = 1 ) = p ( Π k = 1 k i n + 1 u k j = - 1 )
由于所有的比特来自于不同的LDPC码,各个比特相对独立,因此有:
p ( Π k = 1 k i n + 1 u k j = 1 ) = 1 + Π k = 1 k i n + 1 ( p ( u k j = 1 ) - p ( u k j = - 1 ) )
p ( Π k = 1 k i n + 1 u k j = - 1 ) = 1 - Π k = 1 k i n + 1 ( p ( u k j = 1 ) - p ( u k j = - 1 ) )
Ls i j = log p ( S = 0 ) p ( S = 1 ) + L i j = log 1 + Π k = 1 k i n + 1 ( p ( u k j = 1 ) - p ( u k j = - 1 ) ) 1 - Π k = 1 k i n + 1 ( p ( u k j = 1 ) - p ( u k j = - 1 ) ) + L i j
所以有 Ls i j = 2 ar c tanh ( Π t = 1 , t i n + 1 tanh ( L t j 2 ) ) + L i j , 即对于每个比特,SPC码的纵向校验关系给 出的外信息为 2 ar c tanh ( Π t = 1 , t i n + 1 tanh ( L t j 2 ) ) , 公式得证。
本发明还给出了软判决迭代译码方法的改进方法。迭代译码方法的主要目的就是通过 迭代使得每一个比特不断地从外部获得能够帮助其进行判决的置信度软信息。上面给出的 软判决迭代方法中,每一个LDPC码码字的比特,都通过纵向的SPC校验关系,从其余的 LDPC码码字获得了新的外信息,进而帮助LDPC码译码器收敛到正确的码字。由于n+1 个LDPC码码字中,并不是所有的码字都译码失败。通过LDPC码的检错能力,可以确知 n+1个码字中哪些码字成功地收敛到了正确的码字。利用这一确知的信息,可以对软判决 迭代译码方法进行改进。
改进译码方法的主要思路是,利用LDPC码译码器的检错能力,将判断为译码成功的 LDPC码码字的每个比特的置信度提高到最大,以提高错误码字每个比特能够得到的置信 度,加快迭代译码的收敛。即如果第i个码字符合校验方程约束,令第i个LDPC码字中 的第j个比特的置信度Li j的大小为 | L i j | = , 符号为 sgn ( L i j ) = sgn ( L i j ) , 其中j=1,2,…,N, N是LDPC码的码长;
不难发现,LDPC-SPC码软判决迭代方法相当于在水平和垂直方向交替进行和积算法 译码。因此与和积算法类似,纵方向的校验关系外信息计算公式 2 arctanh ( Π t = 1 , t i n + 1 tanh ( L t j 2 ) ) 可 以进行与和积算法类似的简化。本发明采用了性能较好的offset-min-sum算法(Chen Jinghu; R.M.Tanner;C.Jones,“Improved min-sum decoding algorithms for irregular LDPC codes,”In Proc.ISIT’05.Massachusetts:MIT Press,pp.449-453,2005)作为纵向方法的简化方法, 其中offset值根据大量仿真结果并结合经验选择为0.2,则纵向校验关系的外信息的大小 为 | e i k j | = max ( min t = 1 t i n + 1 ( | L t j | ) - 0.2,0 ) , 符号为 sgn = ( e i k j ) = Π t = 1 , t i n + 1 sgn ( L t j ) , 其中j=1,2,…,N,N是LDPC 码的码长,ik表示n+1个码字中的第k个错误码字,Li j为第i个LDPC码字中的第j个比 特的置信度;
由于每一个正确码字的比特置信度的绝对值都被置为无穷大,因此在计算纵向软信息 时,只需要比较错误码字中相应位置的比特置信度的绝对值大小,正确的码字则只参与相 应位置比特的置信度软信息的符号运算。相比于前面所述的软判决迭代方法,改进的软判 决迭代译码方法复杂度大为降低。改进后的软判决迭代译码方法与前面所述的软判决迭代 方法只是第三步的处理方法不同,其他步骤一样,方法中的步骤3具体处理方法如下:
1).如果第i个码字符合LDPC码校验方程约束,则第i个LDPC码字中的第j个比特 的置信度Li j的大小为 L i j = , 符号为 sgn ( L i j ) = sgn ( L i j ) , 其中j=1,2,…,N,N是 LDPC码的码长;
2).根据纵向校验关系,分别计算错误码字每个比特的外信息其大小为 | e i k j | = max ( min t = 1 t i n + 1 ( | L t j | ) - 0.2,0 ) , 符号为 sgn ( e i k j ) = Π t = 1 , t i n + 1 sgn ( L t j ) , 其中j=1,2,…,N,N 是LDPC码的码长,ik表示n+1个码字中的第k个错误码字,Li j为第i个LDPC 码字中的第j个比特的置信度。
本发明的另一个目的在于提供了与上述方法相适应的LDPC-SPC乘积码的译码器。根 据LDPC-SPC乘积码的编码结构并结合上述方法,本发明给出了硬判决译码器和软判决迭 代译码器,分别适用于LDPC-SPC乘积码的硬判决译码方法和软判决迭代译码方法,下面 分别予以介绍:
硬判决译码器结构示意图如图7所示。硬判决译码器包括:LDPC码译码模块、第一 存储模块、错误码字统计模块以及硬判决恢复模块四个部分。其中,LDPC码译码模块用 于实现LDPC码字的译码,输出LDPC码信息位的硬判决信息,即对每n+1个LDPC码码 字依次进行译码,其中的第n+1个LDPC码码字为SPC码码字,输出n+1个LDPC码信 息位的硬判决信息;第一存储模块用于存储LDPC码信息位的硬判决信息,一般使用双端 口RAM,大小可根据实际需要来定;错误码字统计模块根据硬判决信息统计n+1个LDPC 码中的错误码字,通常由一个计数器组成,起始值为0,并由它决定LDPC码字信息位的 流向,具体流向如图7所示,如果n+1个LDPC码码字中只有一个码字译码失败且该码字 不是SPC码,则进入硬判决恢复模块,否则输出信息比特,译码结束;硬判决恢复模块删 除错误的LDPC码字,然后将其余的n个正确的LDPC码字在列方向上逐比特进行模2和, 恢复出正确码字,输出恢复后的正确信息比特,译码结束。
硬判决恢复模块结构可如图8所示,它主要分为模2加法器模块和第二存储模块两个 部分。其中,模2加法器实现两个不带符号位的二进制数的模2和,用于计算除了错误码 字之外的n个LDPC码字的信息位按位纵向的模2和,并同时输出这n个正确的信息比特; 第二存储模块为一个双口RAM,大小为LDPC码字信息比特的大小,用于存储模2加法 器的临时结果,即和下一帧做模2和的加数,并输出最终的累加结果,即恢复出的正确信 息比特。
软判决迭代译码器结构示意图如图9所示。软判决迭代译码器包括:LDPC码译码模 块、第一存储模块、错误码字统计模块、SPC码软译码模块和硬判决恢复模块五个部分。 其中,LDPC码译码模块用于实现LDPC码字的译码,输出的LDPC码信息位的软信息和 硬判决信息,即对每n+1个LDPC码码字依次进行译码,其中的第n+1个LDPC码码字为 SPC码码字,输出n+1个LDPC码信息位的软信息和硬判决信息,所述软信息即每个比特 的置信度Li j,其中i从1到n+1,j从1到N,N为LDPC码的码长。第一存储模块用于存 储LDPC码信息位的软信息和硬判决信息,一般使用双口RAM,大小可根据实际需要来 定。错误码字统计模块统计n+1个LDPC码中的错误码字,通常由一个计数器组成,起始 值为0,并由它决定LDPC码字信息位的流向,具体流向如图9所示,如果n+1个LDPC 码码字中只有一个码字译码失败且该码字不是SPC码,则进入硬判决恢复模块;如果n+1 个LDPC码码字中超过一个码字译码失败,则进入SPC码软译码模块;如果没有码字错误 或仅SPC码译码失败,则输出正确的信息比特。SPC码软译码模块,用于计算错误码字的 外信息,应用上述的软判决迭代译码方法或其改进方法进行译码,对n+1个LDPC码中出 现错误的码字保留其软信息,而正确码字仅保留其硬判决信息,即符号位,然后分别计算 错误码字每个比特的外信息 e i k j = 2 arctanh ( Π t = 1 , t i k n + 1 tanh ( L t j 2 ) ) , 其中ik表示n+1个码字中的第k 个错误码字,k为正整数,j表示第k个错误码字中的第j个比特,得到的外信息作为LDPC 码译码模块的先验信息进行再次译码,即更新错误码字每个比特的置信度 L i k j = L i k j + e i k j , 再 输入LDPC码译码模块进行迭代译码,直至达到最大迭代次数或者所有码字检测正确。硬 判决恢复模块,当n个LDPC码中有且仅有一个码字发生错误,且该错误码字不是SPC码 时,用类似于硬判决译码的方法恢复这一个错误码字,即删除错误的LDPC码字,然后将 其余的n个正确的LDPC码字在列方向上逐比特进行模2和,所得结果为恢复出的正确码 字,输出恢复后的正确信息比特。该译码器具体的工作流程是:
接收端首先对n+1个LDPC码依次进行译码,如果发现没有码字错误,则所有比特顺 序输出;如果发现有且仅有一个码字发生错误,则n+1个LDPC码被存储下来,通过硬判 决恢复错误码字;如果发现2个或2个以上的码字发生错误,那么n+1个LDPC码中出现 错误的码字保留LDPC码译码模块输出的软信息,正确码字仅保留硬判决信息,即符号位, 通过SPC码软译码模块进行译码,得到的外信息作为LDPC码译码模块的先验信息进行再 次译码,直至达到最大迭代次数或者所有码字检测正确。
与硬判决译码器相同,软判决迭代译码器中的硬判决恢复模块主要由模2加法器模块 和第二存储模块两部分组成,其中模2加法器模块用于计算除了错误码字之外的n个LDPC 码字的信息位按位纵向的模2和,同时输出这n个正确的信息比特;第二存储模块用于存 储模2加法器的临时结果,即和下一帧做模2和的加数,并输出最终的累加结果,即恢复 出的正确信息比特。
本发明的技术效果在于以下几个方面:
第一,提出了LDPC-SPC乘积码设计方案,该方案能够克服LDPC码的误码平层,并 且比BCH码级联方法有更高的灵活性以及更大的编码增益,这主要是由于BCH码需要为 不同码率的LDPC码提供不同的码长和不同的纠错能力,增加了级联码方案设计的难度和 编译码系统的复杂度,而LDPC-SPC乘积码不用考虑这个问题;同时BCH码需要付出的 编码冗余较大,而LDPC-SPC乘积码的编码冗余等价为归一化信噪比损失后只有 101 g ( n n + 1 ) dB , 当n取较大值时,编码冗余可以忽略不计。
第二,给出了LDPC-SPC级联码的硬判决译码方法,这是一种具有极低复杂度的译码 方法,能够帮助出现误码平层的LDPC码降低误码平层。
第三,对LDPC-SPC级联码的硬判决方法进行了分析,并给出了硬判决方法的误比特 率估计方法,估计结果与仿真结果的比较如图10所示,从图中可以看出该估计能够精确 的符合仿真结果,从而节省大量的仿真时间。
第四,给出了LDPC-SPC级联码的一种软判决迭代译码方法,并对其进行了简化,仿 真结果如图13所示,从图13中可以看出在该软判决译码方法下,与硬判决相比,LDPC-SPC 级联码能够获得更加明显的编码增益,更加有效的降低LDPC码误码平层。
所以,本发明提出的LDPC-SPC乘积码能够以非常小的冗余代价取得较大的编码增益, 是一种适用于对延时不敏感的业务的信道编码方案。

附图说明

图1是(8064,4032)LDPC码的误码性能曲线;
图2是(8064,4032)LDPC码误码平层在归一化信噪比分别为1.5dB(I)和1.6dB (II)下所统计的200个错误码字的错误比特数目分布图;
图3是(8064,4032)LDPC码在归一化信噪比分别为1.5dB和1.6dB下的错误比特 位置统计图;
图4是本发明的LDPC-SPC乘积码的码字图样;
图5是本发明LDPC-SPC乘积码的错误比特位置关系示意图;
图6是本发明LDPC-SPC乘积码的软判决迭代译码方法流程图;
图7是本发明硬判决译码器的结构示意图;
图8是本发明实施例2的硬判决译码器中硬判决恢复模块的结构框图;
图9是本发明软判决迭代译码器的结构示意图;
图10是n=100时LDPC-SPC码硬判决译码方法误码率与估计结果的比较图;
图11是本发明实施例1中LDPC-SPC乘积码编码流程图;
图12是本发明实施例1中n=200时LDPC-SPC码硬判决译码方法的误比特性能仿真 结果图;
图13是本发明实施例1中n=200时LDPC-SPC码软判决迭代译码方法与LDPC-BCH 码误比特性能的对比仿真结果图。

具体实施方式

下面通过实施例,结合附图进一步说明本发明,但不以任何方式限制本发明的范围。 实施例1:构造LDPC-SPC乘积码,并对其进行译码
以下具体描述利用本发明所述的方法,用长度为8064比特,码率为1/2的LDPC码构 造了LDPC-SPC乘积码,并对其进行译码的过程,译码方法包括硬判决译码方法和软判决 迭代译码方法:
本实施例取n=200,即每200个LDPC码插入一个冗余的SPC码字。
编码流程图如图11所示,具体步骤如下:
1.初始化:信息比特流成帧,帧长为4032比特;
2.将200个信息帧依次通过SPC码编码器,SPC码编码器将每个信息帧在相应位置
的比特做模2和,在n=200个信息帧之后输出结果,即SPC码中的信息位, c SPC j = Σ k = 1 n c LD PC k j mod 2 , 其中j从1到4032;
3.将200个信息帧和1个SPC信息帧依次通过LDPC码编码器,得到n+1=201个 LDPC码码字,其中第n+1个LDPC码码字为冗余的SPC码码字;
4.按顺序输出编码后的码字。
在接收端进行译码,如接收端采用硬判决译码,该方法的步骤如下:
1.初始化:将200个LDPC码码字与1个SPC码码字依次通过LDPC码译码模块进 行译码,即令第i个LDPC码字进入LDPC码译码模块进行译码,其中i从 1到201, C LDPC 201 = C SPC , 得到201个LDPC码译码的硬判决结果;
2.根据LDPC码译码模块能够检错的特性,可以统计出201个LDPC码中的多种错 误图样,具体处理步骤如下:
a)如果201个LDPC码码字中没有码字译码失败,译码结束;
b)如果201个LDPC码码字中超过1个码字译码失败,译码结束;
c)如果201个LDPC码码字中只有一个码字译码失败,又可以分为两种情况:
i.如果错误的码字是SPC码,由于SPC码是冗余校验码字,所以可以直接 删除,输出前n个正确的LDPC码,译码结束;
ii.如果错误的码字是LDPC码,则进入步骤3。
3.根据SPC码字的偶检验关系,恢复出正确码字,具体处理步骤如下:
3-1删除错误的LDPC码字;
3-2将其余的200个正确的LDPC码字在列方向上逐比特进行模2和,所得结果 为恢复出的正确码字;
3-3输出恢复后的正确码字。
如果接收端采用软判决迭代译码,其流程图如图8所示,在本实施例中采用发明内容 中所述的改进的软判决迭代译码方法,取软判决最大迭代译码次数T=5,具体步骤如下:
1.初始化:将200个LDPC码码字与1个SPC码码字依次通过LDPC码译码模块进 行译码,得到第i个码字的第j个比特的置信度信息Li j,其中i从1到201,
L LDPC 201 j = L SPC j ;
2.根据LDPC码译码模块能够检错的特性,统计错误码字:
a)如果201个LDPC码码字中没有码字译码失败,译码结束,输出正确的LDPC 码;
b)如果201个LDPC码码字中只有一个码字译码失败,又可以分为两种情况:
i.如果错误的码字是SPC码,由于SPC码是冗余校验码字,所以可以直 接删除,输出前200个正确的LDPC码,译码结束;
ii.如果错误的码字是LDPC码,则进行与硬判决译码相类似的方法:
第一,删除错误的LDPC码字;
第二,将其余的200个正确的LDPC码字在列方向上逐比特进行模2 和,所得结果为恢复出的正确码字;
第三,输出恢复后的正确码字,译码结束;
c)如果201个LDPC码码字中有2个或2个以上的码字发生错误,则进行纵向译 码;
i.如果已经达到软判决译码最大迭代次数,即t>T=5,则译码结束;
ii.如果没有达到软判决译码最大迭代次数,即t≤T=5,则转到步骤3;
3.纵向译码:如果第i个码字符合校验方程约束,令第i个LDPC码字每一个比特的 置信度Li j的大小为 | L i j | = , 符号为 sgn ( L i j ) = sgn ( L i j ) , 其中j=1,2,…,4032。
4.根据纵向校验关系,分别计算错误码字每个比特的外信息其大小为 | e i k j | = max ( min t = 1 t i n + 1 ( | L t j | ) - 0.2,0 ) , 符号为 sgn = ( e i k j ) = Π t = 1 , t i n + 1 sgn ( L t j ) , 其中j=1,2,…,4032, ik表示201个码字中的第k个错误码字,Li j为第i个LDPC码字中的第j个比特的 置信度;
5.更新错误码字的比特置信度 L i k j = L i k j + e i k j , 其中j=1,2,…,4032,ik表示201个码字
中的第k个错误码字,k为正整数;
6.将更新过置信度之后的错误码字依次送入LDPC码译码器,进行译码,然后返回 步骤2。
本实施例对上述构造的LDPC-SPC乘积码在BIAWGN信道下进行了LDPC-SPC级联 码的误码性能仿真,其中为了加快仿真速度,LDPC码的译码方法采用了适于硬件实现的 offset-min-sum算法(Chen Jinghu;R.M.Tanner;C.Jones,“Improved min-sum decoding algorithms for irregular LDPC codes,”In Proc.ISIT’05.Massachusetts:MIT Press,pp.449 -453,2005),其中offset值选择为0.2,最大迭代次数选择为37次以适应LDPC码译码 器的实际参数。当错误的LDPC码码字数目超过50的时候,仿真停止。
本实施例还选择了纠错能力t=10的GF(212)上的BCH码进行误比特性能的对比仿 真。GF(212)上的最小多项式如下所示。如果BCH码的纠错能力为t,那么该BCH码的 生成多项式就等于前t个最小多项式的乘积。例如t=2时,BCH码的生成多项式为 g(x)=g1(x)g2(x)。其中,纠错能力t=10的选择,是基于前面对LDPC码误码平层特点的分 析,得出的在出现误码平层时,LDPC错误码字中错误比特数大部分都在10比特以下,超 过10比特的情况一般不超过10%。
最小多项式
g1(x)=1+x+x4+x6+x12
g2(x)=1+x+x3+x4+x6+x10+x12
g3(x)=1+x2+x3+x6+x12
g4(x)=1+x+x3+x5+x6+x10+x12
g5(x)=1+x2+x4+x5+x6+x7+x8+x9+x12
g6(x)=1+x+x2+x5+x7+x8+x9+x11+x12
g7(x)=1+x+x3+x6+x8+x10+x12
g8(x)=1+x+x2+x3+x4+x5+x9+x10+x12
g9(x)=1+x+x3+x4+x6+x8+x10+x11+x12
g10(x)=1+x+x2+x5+x10+x11+x12
采用硬判决译码方法得到的仿真结果如图12所示,从图中可以看出本实施例所构造 的LDPC-SPC乘积码采用硬判决译码方法能够降低LDPC码的误码平层。
采用软判决迭代译码方法得到的仿真结果如图13所示,从图13的曲线可以看出本实 施例所构造的LDPC-SPC乘积码采用软判决迭代方法除了能够克服LDPC码的误码平层之 外,还能够取得非常明显的编码增益。在误码率为10-7时,乘积码相比LDPC码取得了大 约0.3dB的性能优势,并优于LDPC-BCH级联码0.4dB以上。
实施例2:译码器
本实施例仅给出实施例1所构造的LDPC-SPC乘积码的硬判决译码器的实现方案。硬 判决译码器的实现框图如图7所示,它可以被划分为LDPC译码模块、第一存储模块、错 误码字统计模块以及硬判决恢复模块四个部分。
其中,LDPC码译码模块用于实现LDPC码字的译码,在本实施例中不做赘述,只是 用于得到LDPC码信息位的软信息和硬判决信息,在本实施例中硬判决译码方法只需要 LDPC码信息位的硬判决信息;第一存储模块需要201个大小为4032bits的双端口RAM, 用于存储LDPC码信息位的硬判决信息;错误码字统计模块由一个计数器组成,起始值为 0,最大值为201,并由它决定LDPC码字信息位的流向:
1.如果201个LDPC码码字中没有码字译码失败,译码结束,输出正确的信息比特;
2.如果201个LDPC码码字中有2个或2个以上的码字译码失败,译码结束;
3.如果201个LDPC码码字中只有一个码字译码失败,又可以分为两种情况:
i.如果错误的码字是SPC码,由于SPC码是冗余校验码字,所以可以直接 删除,输出前n个正确的LDPC码,译码结束;
ii.如果错误的码字是LDPC码,则进入硬判决恢复模块。
硬判决恢复模块结构框图如图8所示,它主要分为模2加法器模块和第二存储模块两 个部分。其中,模2加法器需要大小为4032bits按位模2和加法器,用于计算除了错误码 字之外的200个信息位按位纵向的模2和,并同时输出这200个正确的信息比特;第二存 储模块需要大小为4032bits的双端口RAM,用于存储模2加法器的临时结果,即和下一帧 做模2和的加数,并在n=200之后输出最终的累加结果,即恢复出的正确信息比特。
尽管为说明目的公开了本发明的具体实施例和附图,其目的在于帮助理解本发明的内 容并据以实施,但是本领域的技术人员可以理解:在不脱离本发明及所附的权利要求的精 神和范围内,各种替换、变化和修改都是可能的。因此,本发明不应局限于最佳实施例和 附图所公开的内容。