一种基于原模图的LDPC码校验矩阵的构造方法与流程

文档序号:13739000阅读:382来源:国知局

本发明涉及一种基于原模图的ldpc码校验矩阵的构造方法,属于信道编码校验矩阵的构造方法领域。



背景技术:

随着多媒体通信的广泛普及,更高的传输速度和可靠性为更多使用者所追求。1962年,gallager提出了低密度校验(ldpc)码,这是一种基于稀疏校验矩阵的线性分组码。在使用bp译码时,其性能逼近香农极限,并且实现复杂度较低,码长和码率能够灵活设计,误码性能优良,能实现全并行译码,已被应用于ieee802.16e(wimax),ieee802.11n(wi-fi)等许多标准中,是4g发展过程中的关键技术之一。美国jpt实验室在此基础上又提出了原模图ldpc码,这类码已成为dvb-s2和ccsds等通信标准中的信道编码方案。

模拟退火法(引自《analysisanddesignofprotographbasedldpccodesandensemblesthorpejeremy》中)可以提升原模图的性能,可以构造很多性能接近香农限的原模图,然而,一个性能好的原模图只能决定所扩展出来的原模图ldpc码的上限,但这并不代表其扩展得到的原模图ldpc码拥有良好的性能,其中,扩展算法对码的性能也起着至关重要的作用。它影响原模图ldpc码的纠错性能,除此之外,还直接决定了原模图ldpc码编译码硬件设施的复杂度。所以基于原模图的扩展算法成为众多研究者的热点之一。



技术实现要素:

为了获得低信噪比下更高的编码增益和更好的纠错性能,本发明提出了一种基于原模图的ldpc码校验矩阵的构造方法。本发明提出的这种针对二进制ldpc构造方法,尽可能避免小环、增大最小距离的上界,而且得到的校验矩阵具有准循环结构,另外具有优于ieee802.3中给定的参考ldpc(1723,2048)码的纠错性能。

本发明采用的技术方案如下:

一种基于原模图的ldpc码校验矩阵的构造方法,分为多边扩展变单边、获得初始移位指数矩阵及优化、确定校验矩阵三步,该构造方法具体步骤如下:

1)多边扩展变单边:

假设所用原模图矩阵p的维数为a行b列,其中最大的元素为max,则多边扩展变单边算法实施之后,将p扩展m倍得到f,即f=p·m,其维数为m×a行m×b列,其中m表示扩展倍数,m≥max;

多边扩展变单边算法:

初始化:原模图行扫描变量h=0;原模图列扫描变量l=0;扩展倍数扫描变量m=1;f初始化为全零矩阵,转到步骤(2);

(1)对原模图矩阵从第0行到第a-1行、从0列b-1列遍历,如果h=a-1、m≠m,则h=0、m=m+1,l不变,转到步骤(2);如果h=a-1、m=m、l≠b-1,则h=0、l=l+1、m=1,转到步骤(2);如果h≠a-1,则h=h+1,l、m不变,转到步骤(2);如果h=a-1、l=b-1、m=m,转到步骤(7);

(2)取原模图矩阵p的第h行第l列元素p[h][l],令w=p[h][l],若w=0,转到步骤(1);否则,转到步骤(3);

(3)在f行号为h×m~(h+1)×m-1的行中,挑一个行重最小的行,设行重最小的行号为x,则将f矩阵的第x行第l×m+m列的元素置1,即f[x][(l×m+m)]=1,转到步骤(4);

(4)w=w-1,若w=0,转到步骤(1);否则转到步骤(5);

(5)对f相应的tanner图以变量节点l×m+m为首,逐层扩展,当展开图中的校验节点不再增加或者展开图中已含有校验节点h×m~(h+1)×m-1时,则扩展停止,转到步骤(6);

(6)若扩展停止时,展开图中含有校验节点h×m~(h+1)m-1,那么在这些检验节点中挑一个最后加到展开图中并且行重最小的检验节点并设为z,与变量节点l×m+m连接,即f[z][(l×m+m)]=1,若有多个符合要求的校验节点行重相同,则从中随机挑选一个;若扩展停止时,展开图中不完全包含校验节点h×m~(h+1)m-1,在校验节点h×m~(h+1)m-1中,挑一个没加到展开图且行重最小的校验节点t,与变量节点l×m+m连接,即f[t][(l×m+m)]=1,转到步骤(4);

(7)获得f,算法毕;

2)获得初始移位指数矩阵及优化:

要进行进一步的扩展,必须寻找合适的维数为s×s的置换矩阵去替代矩阵f中的非0元素(全0阵代替0元素),找寻过程依据如下定理:

假定矩阵f中有一条长度为2d的环,环上非0元素对应的循环置换子矩阵(由单位阵循环移位若干位得到)的移位值为a1→a2→...→ak→...→a2d-1→a2d,若满足如下公式

其中,r为使得上式成立的最小正整数,ak为第k个移位值,mod为取余操作符,s为循环置换子矩阵的维数,那么置换后的校验矩阵中形成的环长至少为2dr,所以要精心挑选移位值使得满足上式成立的最小整数r尽可能大;

获得初始化移位矩阵:

初始化:设移位指数矩阵为c[a×m][b×m],初始值全部为r;行扫描变量row=0,列扫描变量col=0,转到步骤②;

①分别对row从0到a×m-1、对col从0到b×m-1进行遍历,如果row≠a×m-1,则row自加1,转到步骤②;如果row=a×m-1,col≠b×m-1,则row=0,col自加1,转到②;如果row=a×m-1,col=b×m-1,则算法结束,获得移位指数矩阵c;

②v=f[row][col],如果v等于0,转到步骤①;否则,转到步骤③;

③如果v是此列的第一个非0值,则给c[row][col]在0~r-1中任意赋值后转到步骤①;否则,value=0,转到步骤④;

④c[row][col]=value,在移位指数矩阵c(把r看成0,把非0值及当前值看成1)中,找寻从第row行第col列的位置开始的最小环(可以设定l来截止环的寻找,即当找寻的所有路径长度超过l时,停止寻找),若路径长度超过l,或者展开图停止时,没有发现环的存在,则给c[row][col]在0~r-1中任意赋值,转到第步骤①;否则转到步骤⑤;

⑤对于每个最小环(最小环可能不止一个),由公式(1),计算准循环扩展之后的最小环长,又称围长,并从中挑选出围长最小的值,赋给数组g中序号为value的元素,若value≠r-1,value=value+1,转到步骤④;否则转到步骤⑥;

⑥选取数组g中最大值元素的序号,赋给c[row][col];如果数组g中不止存在一个最大值,则从这些最大值对应的序号中随机挑选一个,赋给c[row][col],转到步骤①;

用移位指数矩阵中的元素e作为循环置换矩阵的移位值,然后用此循环置换矩阵去替代

f中与e的位置相同的元素,对f中所有元素都替换之后,便得到初始校验矩阵

其中,表示用r×r的循环置换矩阵替代f中的元素,进行r倍循环扩展,ri,j(1≤i≤a,1≤j≤b)表示对应于原模图矩阵中第i行第j列元素经过两步扩展后得到的矩阵;

为了提高最小距离dmin的上界,提出如下设计准则,根据设计准则,进行置换矩阵的筛选;

设计准则:

若不存在任何一对ri,j(1≤i≤a,1≤j≤b)强不可交换,则所得到的校验矩阵所对应的码的最小距离dmin≤(a+1)!,为了突破这个上界,我们必须确保至少有一对ri,j(1≤i≤a,1≤j≤b)强不可交换,所谓强不可交换是指ri,j×rn,y和rn,y×ri,j不相等且没有任何一列相等,其中,1≤i,n≤a,1≤j,y≤b,i≠n,j≠y;

若不存在任何一对强不可交换,由于部分移位值的寻找存在随机性,则重新进行移位指数矩阵的寻找,直至至少有一对ri,j(1≤i≤a,1≤j≤b)强不可交换;

3)当至少有一对ri,j(1≤i≤a,1≤j≤b)强不可交换时,停止寻找,此时所得到的维数为a×m×r行b×m×r列的矩阵,即为所要构造的校验矩阵h。

本发明方法的优点如下:

1.本发明可以从任一原模图进行扩展,适用范围广;

2.本发明构造的校验矩阵具有准循环结构,可以实现部分并行译码,硬件实现简单;

3.本发明构造的校验矩阵尤其在高信噪比下具有更好的纠错效果。

具体实施方式

下面结合实施例对本发明作进一步说明,但不限于此:

实施例:

一种基于原模图的ldpc码校验矩阵的构造方法,分为多边扩展变单边、获得初始移位指数矩阵及优化、确定校验矩阵三步,该构造方法具体步骤如下:

1)多边扩展变单边:

假设所用原模图矩阵p的维数为a行b列,其中最大的元素为max,则多边扩展变单边算法实施之后,将p扩展m倍得到f,即f=p·m,其维数为m×a行m×b列,其中m表示扩展倍数,m≥max;

多边扩展变单边算法:

初始化:原模图行扫描变量h=0;原模图列扫描变量l=0;扩展倍数扫描变量m=1;f初始化为全零矩阵,转到步骤(2);

(1)对原模图矩阵从第0行到第a-1行、从0列b-1列遍历,如果h=a-1、m≠m,则h=0、m=m+1,l不变,转到步骤(2);如果h=a-1、m=m、l≠b-1,则h=0、l=l+1、m=1,转到步骤(2);如果h≠a-1,则h=h+1,l、m不变,转到步骤(2);如果h=a-1、l=b-1、m=m,转到步骤(7);

(2)取原模图矩阵p的第h行第l列元素p[h][l],令w=p[h][l],若w=0,转到步骤(1);否则,转到步骤(3);

(3)在f行号为h×m~(h+1)×m-1的行中,挑一个行重最小的行,设行重最小的行号为x,则将f矩阵的第x行第l×m+m列的元素置1,即f[x][(l×m+m)]=1,转到步骤(4);

(4)w=w-1,若w=0,转到步骤(1);否则转到步骤(5);

(5)对f相应的tanner图以变量节点l×m+m为首,逐层扩展,当展开图中的校验节点不再增加或者展开图中已含有校验节点h×m~(h+1)×m-1时,则扩展停止,转到步骤(6);

(6)若扩展停止时,展开图中含有校验节点h×m~(h+1)m-1,那么在这些检验节点中挑一个最后加到展开图中并且行重最小的检验节点并设为z,与变量节点l×m+m连接,即f[z][(l×m+m)]=1,若有多个符合要求的校验节点行重相同,则从中随机挑选一个;若扩展停止时,展开图中不完全包含校验节点h×m~(h+1)m-1,在校验节点h×m~(h+1)m-1中,挑一个没加到展开图且行重最小的校验节点t,与变量节点l×m+m连接,即f[t][(l×m+m)]=1,转到步骤(4);

(7)获得f,算法毕;

2)获得初始移位指数矩阵及优化:

要进行进一步的扩展,必须寻找合适的维数为s×s的置换矩阵去替代矩阵f中的非0元素(全0阵代替0元素),找寻过程依据如下定理:

假定矩阵f中有一条长度为2d的环,环上非0元素对应的循环置换子矩阵(由单位阵循环移位若干位得到)的移位值为a1→a2→...→ak→...→a2d-1→a2d,若满足如下公式

其中,r为使得上式成立的最小正整数,ak为第k个移位值,mod为取余操作符,s为循环置换子矩阵的维数,那么置换后的校验矩阵中形成的环长至少为2dr,所以要精心挑选移位值使得满足上式成立的最小整数r尽可能大;

获得初始化移位矩阵:

初始化:设移位指数矩阵为c[a×m][b×m],初始值全部为r;行扫描变量row=0,列扫描变量col=0,转到步骤②;

①分别对row从0到a×m-1、对col从0到b×m-1进行遍历,如果row≠a×m-1,则row自加1,转到步骤②;如果row=a×m-1,col≠b×m-1,则row=0,col自加1,转到②;如果row=a×m-1,col=b×m-1,则算法结束,获得移位指数矩阵c;

②v=f[row][col],如果v等于0,转到步骤①;否则,转到步骤③;

③如果v是此列的第一个非0值,则给c[row][col]在0~r-1中任意赋值后转到步骤①;否则,value=0,转到步骤④;

④c[row][col]=value,在移位指数矩阵c(把r看成0,把非0值及当前值看成1)中,找寻从第row行第col列的位置开始的最小环(可以设定l来截止环的寻找,即当找寻的所有路径长度超过l时,停止寻找),若路径长度超过l,或者展开图停止时,没有发现环的存在,则给c[row][col]在0~r-1中任意赋值,转到第步骤①;否则转到步骤⑤;

⑤对于每个最小环(最小环可能不止一个),由公式(1),计算准循环扩展之后的最小环长,又称围长,并从中挑选出围长最小的值,赋给数组g中序号为value的元素,若value≠r-1,value=value+1,转到步骤④;否则转到步骤⑥;

⑥选取数组g中最大值元素的序号,赋给c[row][col];如果数组g中不止存在一个最大值,则从这些最大值对应的序号中随机挑选一个,赋给c[row][col],转到步骤①;

用移位指数矩阵中的元素e作为循环置换矩阵的移位值,然后用此循环置换矩阵去替代

f中与e的位置相同的元素,对f中所有元素都替换之后,便得到初始校验矩阵

其中,表示用r×r的循环置换矩阵替代f中的元素,进行r倍循环扩展,ri,j(1≤i≤a,1≤j≤b)表示对应于原模图矩阵中第i行第j列元素经过两步扩展后得到的矩阵;

为了提高最小距离dmin的上界,提出如下设计准则,根据设计准则,进行置换矩阵的筛选;

设计准则:

若不存在任何一对ri,j(1≤i≤a,1≤j≤b)强不可交换,则所得到的校验矩阵所对应的码的最小距离dmin≤(a+1)!,为了突破这个上界,我们必须确保至少有一对ri,j(1≤i≤a,1≤j≤b)强不可交换,所谓强不可交换是指ri,j×rn,y和rn,y×ri,j不相等且没有任何一列相等,其中,1≤i,n≤a,1≤j,y≤b,i≠n,j≠y;

若不存在任何一对强不可交换,由于部分移位值的寻找存在随机性,则重新进行移位指数矩阵的寻找,直至至少有一对ri,j(1≤i≤a,1≤j≤b)强不可交换;

3)当至少有一对ri,j(1≤i≤a,1≤j≤b)强不可交换时,停止寻找,此时所得到的维数为a×m×r行b×m×r列的矩阵,即为所要构造的校验矩阵h。

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