一种QC-LDPC编码器及编码方法技术

技术编号:6437098 阅读:353 留言:0更新日期:2012-04-11 18:40
一种QC-LDPC编码器,其特征在于包括:工作控制模块、输入缓冲模块、生成矩阵存储模块、生成矩阵产生模块和CSRAA模块。同时本发明专利技术还提供了一种利用本编码器实现的编码方法。采用本发明专利技术可以灵活选择码长和码率,并产生一种译码门限低、错误平层低的QC-LDPC码。

【技术实现步骤摘要】

本专利技术涉及一种LDPC编码器及编码方法,特别是涉及一种可以产生译码门限低、错误平层低的准循环QC-LDPC编码器及编码方法。
技术介绍
随着深空通信、移动卫星通信等技术的不断发展,低信噪比通信成为通信技术发展的一个重要方向。为了能够可靠的进行通信,高增益的信道编码成为低信噪比通信系统不可或缺的一部分,而Turbo码和LDPC码便是高增益信道编码的典型代表。与Turbo码相比,LDPC码在运算速度、译码门限和错误平层方面都具有明显的优势,成为当前信道编码领域的研究热点。LDPC码是一种线性分组码,最早由Gallager于1962年提出,但受限于当时的硬件条件,没有引起足够的重视。经过数十年的沉寂,1996年,MacKay和Neal重新发现了它,并证明采用BP迭代译码,LDPC具有逼近Shannon限的性能。LDPC码的重新发现是继Turbo码后,在纠错编码领域又一重大进展。LDPC码的校验矩阵1元素的个数很少,因此可以说是一个非常稀疏的矩阵。如果LDPC码的校验矩阵的每一列和每一行都有相同的重量(即1的个数相同)称这种LDPC码是规则的,否则称为不规则LDPC码。对LDPC码编译码方面的研究大体上可以分为两部分的内容:一是校验矩阵的构造方法,另一方面是编译码方法。由于检验矩阵从根本上决定了所构造出的LDPC码的纠错性能,因而校验矩阵的构造方法就显得尤为重要。当校验矩阵对应的Tanner图中存在环路时,环路中码字比特传出去的消息又会回到它本身,这会影响码字比特的判断,从而损害纠错性能。但是,对于有限长度的LDPC码,环路是无法避免的。为了降低环路对纠错性能的影响,构造LDPC码校验矩阵时,应该使环路尽可能大。另外,校验矩阵中相同长度的环路对LDPC码纠错性能的影响是不同的。环路对纠错性能的影响,还与环路和周边节点的连通性有关。环路的连通性越好,对纠错能力的损害越小。因此,对于长度相同的环路,应该优先选择连通性好的。LDPC码的校验矩阵构造方法可以分为两类:一类是随机构造法,如Xiao-Yu Hu在“Progressive edge-growth Tanner graphs”,MacKay D J C在“Good error correcting codes based on very sparse matrices”,T.Tian等在“Selective avoidance of cycles in irregular LDPC code construction”中提出的均属于这类构造方法。这类方法构造的校验矩阵中0、1是随机分布的,因而使得编码和译码在实现时复杂度较高;另一类是结构化的构造法,如Y.Kou等在“Low-Density Parity-Check Codes Based on Finite Geometries:ARediscovery and New Results”中提出的构造方法,但是该方法的校验矩阵具有某种特殊结构,因此降低了编译码器的实现复杂度。目前实际应用中,大多是具有准循环结构的LDPC码。文献“Progressive edge-growth Tanner graphs”中提出了一种使局部围长尽可-->能大的校验矩阵构造方法,称为PEG算法。通过该算法构造的LDPC码具有很好的译码性能,但是该算法构造的校验矩阵是随机结构的。文献“Selective avoidance of cycles in irregular LDPC code construction”经过分析得出,环的连通性是影响LDPC码译码错误平层的关键,并提出了用ACE测度约束构造LDPC码的方法,但是文中给出的算法仍然是用于构造随机结构的LDPC码。几何、代数和组合构造方法是结构化构造法的一个重要分支,用该类方法可以构造出性能非常好的LDPC码,但是在码率和码长上往往无法灵活选择,使其应用受到限制。D.Divsalar等在文献“Construction of ProtographLDPC Codes with Linear Minimum Distance””中提出利用原模图构造LDPC码,所构造出的校验矩阵具有准循环结构,且译码性能优异,但是并没有给出具体的构造方法。在CCSDS 131.1-0-2标准中,近地通信所用的LDPC码是有限域代数方法构造的,而深空通信所用的LDPC码是由原模图构造出来的。
技术实现思路
本专利技术的技术解决问题是:克服现有技术的不足,提供了一种QC-LDPC编码器及编码方法。本专利技术克服了几何、代数和组合构造方法在码率和码长选择灵活度方面的不足,以及部分构造方法构造的QC-LDPC码译码门限高、错误平层高的问题。本专利技术可以在构造QC-LDPC码时灵活的选择码长和码率,既能用来构造非规则QC-LDPC码也能用来构造规则QC-LDPC码。本专利技术的技术解决方案是:一种QC-LDPC编码器,其特征在于包括:工作控制模块、输入缓冲模块、生成矩阵存储模块、生成矩阵产生模块和CSRAA模块;工作控制模块:在编码时对输入缓冲模块、生成矩阵存储模块和CSRAA模块进行控制;以输入时钟为节拍,控制输入缓冲模块读取输入的信息序列;以工作时钟为节拍,控制生成矩阵存储模块将生成矩阵输出到CSRAA模块,并控制CSRAA模块对信息序列进行校验位编码;接收CSRAA模块输出的校验位序列,并按照信息序列与校验位序列的顺序将编码序列输出;输入缓冲模块:读取输入的信息序列;对信息序列缓冲后,在进行校验位编码时将信息序列输出到CSRAA模块;在进行信息序列编码时,将信息序列输出到工作控制模块;生成矩阵产生模块:在编码前产生编码用的生成矩阵,调用预先存储的矩阵BaseMatrix,若BaseMatrix为有重边的矩阵,先进行L倍扩展以取消重边,并得到无重边矩阵HS1,其中L要大于等于有重边的矩阵中的最大重边数;若BaseMatrix为无重边的矩阵或经过L倍扩展后得到的矩阵HS1进行V倍扩展,得到QC-LDPC码的校验矩阵HS2,其中V根据输出的编码长度决定;将校验矩阵HS2转换为生成矩阵G后输出到生成矩阵存储模块;所述的L倍扩展,是将M*N的有重边矩阵BaseMatrix扩展为(M*L)*(N*L)的无重边矩阵HS1;对HS1赋初值,使HS1为全0的矩阵;以i代表行号,j代表列号,以寄存器cnt从1开始对扩展倍数进行累加计数,以i与j均等于1为起始点,对BaseMatrix按照从上到下从左到右的顺序搜寻BaseMatrix中的每个元素,并利用寄存器e对当前元素进行暂存;对e中的值进行判断,如果为BaseMatrix中列的首个非0元素,则找出HS1中-->第(i-1)*L+1到i*L行中行重最小的行,记行号为k,并对HS1中第k行,第(j-1)*L+cnt的元素赋值为1,然后对e中值减1继续判断是否为0,如果不为0,则对HS1从变量节点(j-1)*L+cnt开始进行Tanner图展开的操作,直到HS1的Tanner展开图中包含了(i-1)*L+1行到i*L行的全部校验节点或无法继续展开;若HS1中的从(i-1)*L行到i*L行的校验节点全部进入了HS1的Tanner展开图,则对HS1中以从(i-1)*L行到i*L本文档来自技高网
...

【技术保护点】
一种QC-LDPC编码器,其特征在于包括:工作控制模块、输入缓冲模块、生成矩阵存储模块、生成矩阵产生模块和CSRAA模块;工作控制模块:在编码时对输入缓冲模块、生成矩阵存储模块和CSRAA模块进行控制;以输入时钟为节拍,控制输入缓冲模块读取输入的信息序列;以工作时钟为节拍,控制生成矩阵存储模块将生成矩阵输出到CSRAA模块,并控制CSRAA模块对信息序列进行校验位编码;接收CSRAA模块输出的校验位序列,并按照信息序列与校验位序列的顺序将编码序列输出;输入缓冲模块:读取输入的信息序列;对信息序列缓冲后,在进行校验位编码时将信息序列输出到CSRAA模块;在进行信息序列编码时,将信息序列输出到工作控制模块;生成矩阵产生模块:在编码前产生编码用的生成矩阵,调用预先存储的矩阵BaseMatrix,若BaseMatrix为有重边的矩阵,先进行L倍扩展以取消重边,并得到无重边矩阵HS1,其中L要大于等于有重边的矩阵中的最大重边数;若BaseMatrix为无重边的矩阵或经过L倍扩展后得到的矩阵HS1进行V倍扩展,得到QC-LDPC码的校验矩阵HS2,其中V根据输出的编码长度决定;将校验矩阵HS2转换为生成矩阵G后输出到生成矩阵存储模块;所述的L倍扩展,是将M*N的有重边矩阵BaseMatrix扩展为(M*L)*(N*L)的无重边矩阵HS1;对HS1赋初值,使HS1为全0的矩阵;以i代表行号,j代表列号,以寄存器cnt从1开始对扩展倍数进行累加计数,以i与j均等于1为起始点,对BaseMatrix按照从上到下从左到右的顺序搜寻BaseMatrix中的每个元素,并利用寄存器e对当前元素进行暂存;对e中的值进行判断,如果为BaseMatrix中列的首个非0元素,则找出HS1中第(i-1)*L+1到i*L行中行重最小的行,记行号为k,并对HS1中第k行,第(j-1)*L+cnt的元素赋值为1,然后对e中值减1继续判断是否为0,如果不为0,则对HS1从变量节点(j-1)*L+cnt开始进行Tanner图展开的操作,直到HS1的Tanner展开图中包含了(i-1)*L+1行到i*L行的全部校验节点或无法继续展开;若HS1中的从(i-1)*L行到i*L行的校验节点全部进入了HS1的Tanner展开图,则对HS1中以从(i-1)*L行到i*L行中选择最后进入HS1的Tanner展开图的校验节点所代表的行为行号,以(j-1)*L+cnt为列号...

【技术特征摘要】
1.一种QC-LDPC编码器,其特征在于包括:工作控制模块、输入缓冲模块、生成矩阵存储模块、生成矩阵产生模块和CSRAA模块;工作控制模块:在编码时对输入缓冲模块、生成矩阵存储模块和CSRAA模块进行控制;以输入时钟为节拍,控制输入缓冲模块读取输入的信息序列;以工作时钟为节拍,控制生成矩阵存储模块将生成矩阵输出到CSRAA模块,并控制CSRAA模块对信息序列进行校验位编码;接收CSRAA模块输出的校验位序列,并按照信息序列与校验位序列的顺序将编码序列输出;输入缓冲模块:读取输入的信息序列;对信息序列缓冲后,在进行校验位编码时将信息序列输出到CSRAA模块;在进行信息序列编码时,将信息序列输出到工作控制模块;生成矩阵产生模块:在编码前产生编码用的生成矩阵,调用预先存储的矩阵BaseMatrix,若BaseMatrix为有重边的矩阵,先进行L倍扩展以取消重边,并得到无重边矩阵HS1,其中L要大于等于有重边的矩阵中的最大重边数;若BaseMatrix为无重边的矩阵或经过L倍扩展后得到的矩阵HS1进行V倍扩展,得到QC-LDPC码的校验矩阵HS2,其中V根据输出的编码长度决定;将校验矩阵HS2转换为生成矩阵G后输出到生成矩阵存储模块;所述的L倍扩展,是将M*N的有重边矩阵BaseMatrix扩展为(M*L)*(N*L)的无重边矩阵HS1;对HS1赋初值,使HS1为全0的矩阵;以i代表行号,j代表列号,以寄存器cnt从1开始对扩展倍数进行累加计数,以i与j均等于1为起始点,对BaseMatrix按照从上到下从左到右的顺序搜寻BaseMatrix中的每个元素,并利用寄存器e对当前元素进行暂存;对e中的值进行判断,如果为BaseMatrix中列的首个非0元素,则找出HS1中第(i-1)*L+1到i*L行中行重最小的行,记行号为k,并对HS1中第k行,第(j-1)*L+cnt的元素赋值为1,然后对e中值减1继续判断是否为0,如果不为0,则对HS1从变量节点(j-1)*L+cnt开始进行Tanner图展开的操作,直到HS1的Tanner展开图中包含了(i-1)*L+1行到i*L行的全部校验节点或无法继续展开;若HS1中的从(i-1)*L行到i*L行的校验节点全部进入了HS1的Tanner展开图,则对HS1中以从(i-1)*L行到i*L行中选择最后进入HS1的Tanner展开图的校验节点所代表的行为行号,以(j-1)*L+cnt为列号的元素赋值为1;若HS1中的从(i-1)*L行到i*L行的校验节点未全部进入了HS1的Tanner展开图,则对HS1中以HS1中选择未进入HS1的Tanner展开图的校验节点中行重最小的行为行号,以(j-1)*L+cnt为列号的元素赋值为1;再此对e中值减1判断是否为0,如果不为0,则重新对HS1中从变量接点(j-1)*L+cnt开始进行Tanner图展开操作;如果非BaseMatrix中列的首个非0元素,对HS1从变量节点(j-1)*L+cnt开始进行Tanner图展开的操作,直到HS1中包含了(i-1)*L行到i*L行的全部校验节点或无法继续展开,然后在HS1第(i-1)*L+1行到第i*L行中选择未进行Tanner图展开操作或最后进行Tanner图展开操作的校验节点中行重最小的校验节点,对以行重值为行,以(j-1)*L+cnt列的元素值赋值为1,并利用寄存器e对当前元素进行暂存,循环进行Tanner图展开操作直到对e中值减1后为0;所述的变量节点与每一列相对应;所述的校验节点与每一行相对应;所述的Tanner图为与矩阵对应图表示;所述的V倍扩展,是将输入的(M*L)*(N*L)的无重边矩阵HS1扩展为(M*L*V)*(N*L*V)的校验矩阵HS2或将输入的M*N的无重边矩阵BaseMatrix扩展为(M*V)*(N*V)的校验矩阵HS2;对HS2赋初值,使HS2为所有元素都等于-1的矩阵;以i代表行号,j代表列号,以i与j均等于1为起始点,对输入矩阵按照从上到下从左到右的顺序搜索;若为输入矩阵每列的首个非零元素,对HS2中对当前i行和j列对应的元素赋予0到V-1中的一个随机值,所述的随机值用于表示一个V*V的置换矩阵的偏移量,所述的置换矩阵为单位矩阵根据偏移量的循环移位后得到的矩阵;对于非列中的首个非零元素,在HS2中对当前i行和j列的对应的元素赋0到V-1中的一个随机值,再搜索不同偏移量下HS2中所有以变量节点j为起点和终点的环路,选择环路中的最小环长和最小ACE测度均为最大时的偏移量给HS2中当前行和j列的元素赋值;搜索完成后,将HS2中的-1元素用V*V的零矩阵替换,非-1元素用V*V的置换矩阵替换,产生校验矩阵HS2;生成矩阵存储模块:存储由生成矩阵产生模块产生的生成矩阵并在工作控制模块控制下在编码时将生成矩阵输...

【专利技术属性】
技术研发人员:龚险峰杨磊陶孝锋邱乐德
申请(专利权)人:西安空间无线电技术研究所
类型:发明
国别省市:87[中国|西安]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1