CN100583653C - 一种ldpc级联码的编码方法、译码方法及其译码器 - Google Patents
一种ldpc级联码的编码方法、译码方法及其译码器 Download PDFInfo
- Publication number
- CN100583653C CN100583653C CN200810056049A CN200810056049A CN100583653C CN 100583653 C CN100583653 C CN 100583653C CN 200810056049 A CN200810056049 A CN 200810056049A CN 200810056049 A CN200810056049 A CN 200810056049A CN 100583653 C CN100583653 C CN 100583653C
- Authority
- CN
- China
- Prior art keywords
- code word
- ldpc
- sign indicating
- indicating number
- code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Error Detection And Correction (AREA)
Abstract
本发明公开了一种LDPC级联码的设计方案,是以LDPC码为水平码、SPC码为垂直码的LDPC-SPC乘积码,所述SPC码码字的每一个比特通过n个LDPC码码字在相应位置的比特偶校验得到。该方案能够克服LDPC码的误码平层,并且比BCH码级联方法有更高的灵活性以及更大的编码增益。本发明同时给出了LDPC-SPC乘积码的编码方法和两种译码方法(硬判决方法和软判决迭代方法),并提供了相应的译码器。本发明提出的LDPC-SPC乘积码能够以非常小的冗余代价取得较大的编码增益,是一种适用于对延时不敏感的业务的信道编码方案。
Description
技术领域
本发明涉及一种信道编码技术,尤其是一种LDPC级联码的构造及译码方法,属于信息技术领域。
背景技术
信道编码技术作为保证通信***可靠传输的基本技术,在近十年来得到了飞速发展,以Turbo码、LDPC码(低密度奇偶校验码)为代表的一大批性能能够逼近理论极限的信道编码相继被发现并得到深入研究,其中LDPC码在近几年尤其得到了关注,该码因为具有逼近香农极限的纠错性能和适于并行计算的简单译码算法,所以已经被许多通信标准采纳,如DVB-S2、WiMAX等。这表明在未来一段相当长的时间里,LDPC码将成为通信***中的一种主流信道编码。
通过对Turbo码、LDPC码等近香农极限码的研究发现,与以往所有的信道编码不同,近香农极限码的误码率曲线可以被分为瀑布(waterfall)区和平层(floor)区两个区域。在瀑布区,近香农极限码的误比特率随着归一化信噪比的增加而快速下降,误比特率曲线此时看上去几乎垂直于x轴。在平层区,近香农极限码的误比特率随归一化信噪比增加而下降的速度相对于瀑布区明显放缓,甚至有可能不再下降,误比特率曲线此时看上去就像一条平行于x轴的平台,误码平层(Error Floor)因此得名。
与Turbo码的误码平层主要由它的小重量码字导致不同,在加性高斯白噪声(AdditiveWhite Gaussian Noise,AWGN)信道下,LDPC码的误码平层主要是由其捕获集(trappingset)决定。当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个冗余帧为 其中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个比特为则有:
编码后的码字图样如图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循环, 得到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的证明如下:
由于 则错误码字的第j个比特 即 得证。
通过上述步骤不难发现,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展开,就可以得到 当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码的码长, 并且设软判决译码最大迭代次数为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.根据纵向偶校验关系,分别计算错误码字每个比特的外信息: ik表示n+1个码字中的第k个错误码字,k为正整数,j表示第k个错误码字中的第j个比特;
4.更新错误码字的每个比特的置信度 其中ik表示n+1个码字中的第k个错误码字,k为正整数,j表示第k个错误码字中的第j个比特;
5.将更新过置信度的错误码字依次送入LDPC码译码器,进行译码,然后返回步骤2。
LDPC-SPC乘积码的软判决迭代译码方法流程图如图6所示。
步骤3是LDPC-SPC乘积码的软判决迭代译码方法的核心步骤。其中,通过纵向校验关系,错误码字每个比特的外信息的计算公式 的证明如下:
设包括SPC码码字在内的n+1个LDPC码码字经过LDPC码译码器之后,第i个LDPC码字中的第j个比特的置信度为Li j,令参与第j个纵向的校验关系的n+1个比特的置信度软信息分别为K1 j,L2 j,…,Ln+1 j,其中 表示第i个LDPC码码字的第j个比特等于0的概率, 表示该比特等于1的概率,1≤i≤n+1。
由于 令S=0表示该偶校验关系,则译码输出的第j个校验关系中的第i个比特的软信息为:
其中,
因此
又 其中S′表示除第i个比特之外其余n个比特的校验和,通过上述化简可得:
将 映射为 映射为 则
由于所有的比特来自于不同的LDPC码,各个比特相对独立,因此有:
则
所以有 即对于每个比特,SPC码的纵向校验关系给出的外信息为 公式得证。
本发明还给出了软判决迭代译码方法的改进方法。迭代译码方法的主要目的就是通过迭代使得每一个比特不断地从外部获得能够帮助其进行判决的置信度软信息。上面给出的软判决迭代方法中,每一个LDPC码码字的比特,都通过纵向的SPC校验关系,从其余的LDPC码码字获得了新的外信息,进而帮助LDPC码译码器收敛到正确的码字。由于n+1个LDPC码码字中,并不是所有的码字都译码失败。通过LDPC码的检错能力,可以确知n+1个码字中哪些码字成功地收敛到了正确的码字。利用这一确知的信息,可以对软判决迭代译码方法进行改进。
改进译码方法的主要思路是,利用LDPC码译码器的检错能力,将判断为译码成功的LDPC码码字的每个比特的置信度提高到最大,以提高错误码字每个比特能够得到的置信度,加快迭代译码的收敛。即如果第i个码字符合校验方程约束,令第i个LDPC码字中的第j个比特的置信度Li j的大小为 符号为 其中j=1,2,…,N,N是LDPC码的码长;
不难发现,LDPC-SPC码软判决迭代方法相当于在水平和垂直方向交替进行和积算法译码。因此与和积算法类似,纵方向的校验关系外信息计算公式 可以进行与和积算法类似的简化。本发明采用了性能较好的offset-min-sum算法(Chen Jinghu;R.M.Tanner;C.Jones,“Improved min-sum decoding algorithms for irregular LDPC codes,”InProc.ISIT’05.Massachusetts:MIT Press,pp.449-453,2005)作为纵向方法的简化方法,其中offset值根据大量仿真结果并结合经验选择为0.2,则纵向校验关系的外信息的大小为 符号为 其中j=1,2,…,N,N是LDPC码的码长,ik表示n+1个码字中的第k个错误码字,Li j为第i个LDPC码字中的第j个比特的置信度;
由于每一个正确码字的比特置信度的绝对值都被置为无穷大,因此在计算纵向软信息时,只需要比较错误码字中相应位置的比特置信度的绝对值大小,正确的码字则只参与相应位置比特的置信度软信息的符号运算。相比于前面所述的软判决迭代方法,改进的软判决迭代译码方法复杂度大为降低。改进后的软判决迭代译码方法与前面所述的软判决迭代方法只是第三步的处理方法不同,其他步骤一样,方法中的步骤3具体处理方法如下:
1).如果第i个码字符合LDPC码校验方程约束,则第i个LDPC码字中的第j个比特的置信度Li j的大小为 符号为 其中j=1,2,…,N,N是LDPC码的码长;
2).根据纵向校验关系,分别计算错误码字每个比特的外信息其大小为 符号为 其中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码中出现错误的码字保留其软信息,而正确码字仅保留其硬判决信息,即符号位,然后分别计算错误码字每个比特的外信息 其中ik表示n+1个码字中的第k个错误码字,k为正整数,j表示第k个错误码字中的第j个比特,得到的外信息作为LDPC码译码模块的先验信息进行再次译码,即更新错误码字每个比特的置信度 再输入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乘积码的编码冗余等价为归一化信噪比损失后只有 当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码中的信息位, 其中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, 得到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,
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的大小为 符号为 其中j=1,2,…,4032。
5.更新错误码字的比特置信度 其中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 decodingalgorithms 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之后输出最终的累加结果,即恢复出的正确信息比特。
尽管为说明目的公开了本发明的具体实施例和附图,其目的在于帮助理解本发明的内容并据以实施,但是本领域的技术人员可以理解:在不脱离本发明及所附的权利要求的精神和范围内,各种替换、变化和修改都是可能的。因此,本发明不应局限于最佳实施例和附图所公开的内容。
Claims (10)
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码的码长, 并且设定译码的最大迭代次数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)分别计算错误码字每个比特的外信息 其中ik表示n+1个码字中的第k个错误码字,k为正整数,j表示第k个错误码字中的第j个比特;
4)更新错误码字每个比特的置信度
5)将更新过置信度的错误码字依次进行LDPC码译码,然后返回步骤2)。
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码中出现错误的码字保留其软信息,而正确码字仅保留其硬判决信息,即符号位;然后分别计算错误码字每个比特的外信息 其中ik表示n+1个码字中的第k个错误码字,k为正整数,j表示第k个错误码字中的第j个比特;得到的外信息作为LDPC码译码模块的先验信息进行再次译码,即更新错误码字每个比特的置信度 再输入LDPC码译码模块进行迭代译码,直至达到最大迭代次数或者所***字检测正确。
10.根据权利要求9所述的译码器,其特征在于:所述硬判决恢复模块主要由模2加法器模块和第二存储模块两部分组成,其中模2加法器模块用于计算除了错误码字之外的n个LDPC码字的信息位按位纵向的模2和,同时输出这n个正确的信息比特;第二存储模块用于存储模2加法器的临时结果,即和下一帧做模2和的加数,并输出最终的累加结果,即恢复出的正确信息比特。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810056049A CN100583653C (zh) | 2008-01-11 | 2008-01-11 | 一种ldpc级联码的编码方法、译码方法及其译码器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810056049A CN100583653C (zh) | 2008-01-11 | 2008-01-11 | 一种ldpc级联码的编码方法、译码方法及其译码器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101217284A CN101217284A (zh) | 2008-07-09 |
CN100583653C true CN100583653C (zh) | 2010-01-20 |
Family
ID=39623657
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810056049A Expired - Fee Related CN100583653C (zh) | 2008-01-11 | 2008-01-11 | 一种ldpc级联码的编码方法、译码方法及其译码器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100583653C (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101345607B (zh) * | 2008-08-14 | 2012-07-25 | 西安电子科技大学 | 多维交叉并行级联单奇偶校验码的编、译码方法 |
CN101867379B (zh) * | 2010-06-24 | 2012-09-19 | 东南大学 | 一种循环冗余校验辅助的卷积码译码方法 |
CN102142929B (zh) * | 2010-11-25 | 2013-08-28 | 华为技术有限公司 | 前向纠错方法、装置及*** |
CN102394722A (zh) * | 2011-10-27 | 2012-03-28 | 优能通信科技(杭州)有限公司 | Dmr中的vbptc码在4fsk调制方式下的一种软译码方法 |
CN102523070B (zh) * | 2011-11-22 | 2014-10-08 | 航天恒星科技有限公司 | 一种应用于卫星通信的通用软件译码数据分配方法 |
CN103269229B (zh) * | 2013-05-24 | 2016-05-04 | 上海交通大学 | 一种ldpc-rs二维乘积码的混合迭代译码方法 |
CN104601180B (zh) * | 2015-02-11 | 2017-05-24 | 东南大学 | 一种基于扩展汉明码的二维乘积码编码装置及编码方法 |
CN104883194B (zh) * | 2015-05-27 | 2018-09-11 | 北京邮电大学 | 一种rs-ldpc二维乘积码的h矩阵构造方法及其滑动截断译码方法 |
CN106301389B (zh) * | 2015-06-05 | 2019-09-20 | 华为技术有限公司 | 译码方法和设备 |
CN106533618A (zh) * | 2016-10-26 | 2017-03-22 | 哈尔滨工业大学深圳研究生院 | 基于LDPC编译码的空间DTN 网络Bundle前向纠错方法 |
CN106788458B (zh) * | 2016-12-02 | 2020-05-12 | 天津大学 | 面向***删节与替代错误的硬判决导向前后向估计方法 |
CN106685431B (zh) * | 2016-12-05 | 2019-10-18 | 华南理工大学 | 基于Nand Flash的LDPC获取软信息译码方法及编译码器 |
WO2018218466A1 (zh) | 2017-05-28 | 2018-12-06 | 华为技术有限公司 | 信息处理的方法和通信装置 |
CN110870207B (zh) * | 2017-06-03 | 2022-05-10 | 华为技术有限公司 | 信息处理的方法和通信装置 |
CN109257136A (zh) * | 2017-07-12 | 2019-01-22 | 中国科学院大学 | 联合信源信道与安全的jpeg2000算术码的双向编译码方法 |
CN107682113B (zh) * | 2017-08-29 | 2020-08-14 | 西安空间无线电技术研究所 | 一种级联ldpc码在atm交换网络中的编译码方法 |
CN110661534B (zh) * | 2018-06-29 | 2024-06-18 | 中兴通讯股份有限公司 | 一种提高Turbo译码性能的方法、装置及计算机设备 |
CN111510286B (zh) * | 2020-03-17 | 2022-12-09 | 哈尔滨工业大学 | 一种量子密钥分发***的误码协商方法 |
CN115378582B (zh) * | 2022-07-20 | 2024-05-10 | 中国电子科技集团公司第三十研究所 | 一种连续变量量子密钥分发残余误码消除的方法与*** |
CN116192661B (zh) * | 2023-04-26 | 2023-09-29 | 苏州联讯仪器股份有限公司 | 通信模块的稳定性评估方法、装置、设备及可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1513259A2 (en) * | 2003-09-04 | 2005-03-09 | The Directv Group, Inc. | Method and apparatus for encoding short block length low density parity check (LPDC) codes for broadband satellite applications |
CN1301012C (zh) * | 2003-12-03 | 2007-02-14 | 北京泰美世纪科技有限公司 | 一种基于ldpc的成帧方法 |
-
2008
- 2008-01-11 CN CN200810056049A patent/CN100583653C/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1513259A2 (en) * | 2003-09-04 | 2005-03-09 | The Directv Group, Inc. | Method and apparatus for encoding short block length low density parity check (LPDC) codes for broadband satellite applications |
CN1301012C (zh) * | 2003-12-03 | 2007-02-14 | 北京泰美世纪科技有限公司 | 一种基于ldpc的成帧方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101217284A (zh) | 2008-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100583653C (zh) | 一种ldpc级联码的编码方法、译码方法及其译码器 | |
CN101156321B (zh) | Ldpc编码码字、特别是dvb-s2 ldpc编码码字的解码控制方法和设备 | |
CN110098838B (zh) | Ldpc-rs乘积码的纠错纠删迭代译码方法 | |
US7516389B2 (en) | Concatenated iterative and algebraic coding | |
CN101039119B (zh) | 编码与解码的方法及*** | |
US10992416B2 (en) | Forward error correction with compression coding | |
US7831884B2 (en) | Method of correcting message errors using cyclic redundancy checks | |
CN103888148A (zh) | 一种动态阈值比特翻转的ldpc码硬判决译码方法 | |
CN102611463B (zh) | 多进制低密度奇偶校验码的级联编译码***及方法 | |
CN101814975A (zh) | 多级解码器和符号块解码方法 | |
US20100146372A1 (en) | Decoding of serial concatenated codes using erasure patterns | |
CN101494462A (zh) | Rs乘积码级联卷积码***的迭代译码方法 | |
CN104883194B (zh) | 一种rs-ldpc二维乘积码的h矩阵构造方法及其滑动截断译码方法 | |
US8347191B1 (en) | Method and system for soft decision decoding of information blocks | |
CN105634506A (zh) | 基于移位搜索算法的平方剩余码的软判决译码方法 | |
EP1901435A1 (en) | An interleaving scheme for an LDPC coded 32APSK system | |
US8019020B1 (en) | Binary decoding for correlated input information | |
US11050440B2 (en) | Encoder, decoder, encoding method and decoding method based on low-density parity-check code | |
CN112332866B (zh) | 一种基于dvb-s与dvb-s2信号的级联码参数识别方法 | |
Hussein et al. | Comparisons of soft decision decoding algorithms based LDPC wireless communication system | |
RU2667370C1 (ru) | Способ декодирования линейного каскадного кода | |
Wang et al. | Partial product-LDPC codes without rate loss | |
Changuel et al. | Iterative decoding of product codes over binary erasure channel | |
Djordjevic | Advanced Coding and Coded Modulation Techniques | |
Kyzy et al. | Design of Majority Decoded Codes and Decoding Algorithm Based on Error Propagation Analysis |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100120 Termination date: 20160111 |