背景技术
在数字通信系统中,使用信道编码方法,可以有效地解决数据传输和存储中的可靠性问题。在当前已有的信道编码方法中,低密度奇偶校验码(Low-Density Parity-Check code,以下简称LDPC码)编码具有最为强大的纠错能力,这是目前已知最接近香农限(信道容量)的编码方法,具有很强的应用前景。
LDPC码是一种随机分组码,没有特定的生成多项式和校验多项式。LDPC码采用超稀疏随机矩阵作为校验矩阵。一个LDPC码由该校验矩阵进行定义。当校验矩阵确定后,对应确定一种LDPC码,同时也确定了该LDPC码的编码方法。LDPC码的编码方法具体阐述如下:
设超稀疏随机矩阵H为LDPC码的校验矩阵(定义H为:M×N维二进制超稀疏随机矩阵,M为LDPC校验序列的长度,N为LDPC码序列的长度),输入的信息序列S为I0,I1,…,IK-1,通过校验矩阵计算得到校验序列P为P0,P1,…,PM-1最终形成LDPC码序列C:
C=(v0,v1,…vN-1)=(I0,I1,…,IK-1,P0,P1,…,PM-1),
式中,K为LDPC码序列中信息序列的长度。
在分组码中,校验矩阵与LDPC码序列的关系可以表示为:
H·CT=0 (1)
即是
令HM×N=[H1,H2],其中H1为M×K维矩阵,H2为M×M维矩阵,
则
上式中,T为转置符号,-1为求逆符号。由式(3)可知,当超稀疏随机校验矩阵H确定时,对于任意的信息序列I0,I1,…,IK-1,可得到对应的校验序列P0,P1,…,PM-1,从而得到对应的LDPC码字。因此,校验矩阵一旦确定,对应的LDPC编码方法随即确定。由此可以得出,校验矩阵的设计就是LDPC编码方法的设计。
目前,在LDPC校验矩阵的设计过程中,面临很多挑战。这是因为LDPC码是一种随机码,其校验矩阵中非零元素的位置是按照一定规律随机生成。其非零元素的随机性直接决定了编码方法的复杂度以及误码性能。在设计过程中,如果校验矩阵设计得非常规则,则对应的编码方法实现简单,但带来的缺点是误码性能会变得很差;如果校验矩阵中非零元素的位置设计得随机性高,则误码性能可大大提高,但对应的编码方法的实现复杂度必然很高。因此,如何设计LDPC码的超稀疏校验矩阵,使得对应的编码方法在保证误码性能的同时,实现复杂度低,这是一个值得深入研究的问题。
现有的LDPC校验矩阵构造方法有两类。第一类方法基于完全随机构造的校验矩阵。该校验矩阵可采用RU算法进行编码为:首先对该校验矩阵进行行列位置交换(可保持矩阵的稀疏性),经行列交换后的校验矩阵如图1所示。该矩阵为(N-K)×N维,使用该矩阵能对长度为K的信息序列进行编码,产生长度为N-K的校验序列,最终生成码长为N的码字。经行列变换后校验矩阵分为6个子矩阵,其中(N-K-g)×(N-K-g)维的子矩阵T具有下三角形式(即上三角全为0)。利用此校验矩阵进行编码如下:
首先,接收来自信息源的信息序列S,其中S长度为K;
其次,利用图2的校验矩阵对信息序列S进行编码以求得校验序列P1和P2,其中校验序列P1和P2长度分别为g和N-K-g;
校验序列P1、P2计算公式如下:
Φ=-ET-1B+D,|Φ|=0 (4)
其中|Φ|为行列式计算;
最后,将信息序列S和生成的校验序列P1、P2合成码字C=(S,P1,P2)输出。
该LDPC编码方法充分保留了LDPC校验矩阵的随机特性,能有效地保障误码性能,其缺点是实现复杂度高。在硬件实现的过程中,运算复杂,不利于推广使用。
另一类方法是基于半随机构造的校验矩阵。本申请人提出的一种非规则低密度奇偶校验码的系统码设计方法及通信系统(中国专利号:CN100364237C),在该专利中公开了这种校验矩阵的构造方法。通过该方法构造的校验矩阵具有优良的特性,在对应的编码方法实现复杂度和误码性能两方面都能达到很好的效果,其校验矩阵H的结构如图2所示。该矩阵为(N-K)×N维,使用该矩阵能对长度为K的信息序列S进行编码,产生长度为N-K的校验序列P,最终生成码长为N的码字C。该校验矩阵由两个子矩阵A、B组成,其中A子阵是由一基矩阵扩展而成的(N-K)×K维超稀疏矩阵,B子阵为具有类似双对角线形式的(N-K)×(N-K)维矩阵。
利用该校验矩阵的编码方法简述如下:
首先,接收来自信息源的信息序列S,其中S长度为K;
其次,按照计算公式对信息序列S进行编码以求得校验序列P,其中校验序列P长度为N-K。
其计算公式如下:
最后,将信息序列S和生成的校验比特P合成码字C=(S,P)输出。
由于矩阵A是一个超稀疏矩阵,且E-1是一个下三角矩阵,与矩阵的乘积可以通过一个简单的卷积电路通过时分复用的方式即可实现。因此,整个编码过程复杂度非常低,非常有利于超大规模集成电路(VLSL)的实现。
使用该专利提出的方法,能得到在各种码长以及各种码率下具有优良的结构特性的校验矩阵,根据这些校验矩阵进行编码,编码方法简单,复杂度低,且具有良好的误码性能。但是,这类编码方法对校验矩阵的设计提出了更为苛刻的要求,即要求对校验矩阵中的A子阵进行细致优化设计,在规则结构和非零元素随机分布之间取得折衷,达到保证误码性能的同时,编码方法实现复杂度低的效果。
发明内容
本发明的目的是提出一种低密度奇偶校验码的低复杂度编码方法,以克服已有技术实现复杂度高的缺点,使误码性能优异,同时降低编码的复杂度。
本发明提出的低密度奇偶校验码的低复杂度编码方法,用于将长度为KC比特的信息序列编码成为长度为NC比特的码序列,其特征在于该编码方法包括以下步骤:
(1)对长度为K
C比特的信息序列进行预处理,若K
C>2032,将K
C个信息比特分成t组,使得
为向下取整,其中t-1组信息比特长为
一组信息比特长为
满足
在长为
的信息比特组后面填充
个0,长为
的信息比特组后面填充
个0,使得每个信息序列长度为2032比特;
若KC<2032,则在序列后面填充2032-KC个0,使得信息序列长度为2032比特;
(2)建立一个校验矩阵H:
其中,
A
508×2032由基矩阵A
b扩展得到,扩展系数L为127,基矩阵
A
b中每一个零元素扩展为127×127维全零阵,非零元素利用迦罗华域GF(2
7)扩展为127×127维非零子阵,扩展时对应的偏置因子和跳转因子如下表所示:
上述表格中,第一个元素为偏置因子,第二个元素为跳转因子,斜线表示该位置没有偏置及跳转因子,在基矩阵Ab中对应零元素;
(3)根据上述长度为2032比特的信息序列S=(I0,I1,…,I2031)和校验矩阵H,计算校验序列P=(P0,P1,…,P507):
计算公式为:
..
..
..
..
..
..
……
..
..
..
(4)将上述信息序列S和校验序列P合成,得到码长为2540比特、码率为4/5的码序列C,C=(S,P);
(5)在上述码长为2540比特、码率为4/5的码序列C中,删除上述填充的值为0的信息比特,若KC>2032,将进行删除处理后的t组码序列再进行叠加,得到一个码长为508t+KC比特的码序列,若KC<2032,删除处理后得到一个码长为508+KC比特的码序列;
(6)对上述删除叠加操作后得到的码序列进行处理,若KC>2032,判断NC与508t+KC的大小:当NC>508t+KC时,在上述码长为508t+KC的码序列中选取NC-KC-508t个校验比特,并在所述码长为508t+KC的码序列后填充选取的校验比特,得到码长为NC的码序列;当NC<508t+KC时,在上述码长为508t+KC的码序列中选取508t+KC-NC个校验比特并删除,得到码长为NC的码序列;
若KC<2032,判断NC与508+KC的大小:当NC>508+KC时,在上述码长为508+KC的码序列中选取NC-KC-508个校验比特,并在所述码长为508+KC的码序列后填充选取的校验比特,得到码长为NC的码序列;当NC<508+KC时,在上述码长为508+KC的码序列中选取508+KC-NC个校验比特并删除,得到码长为NC的码序列。
上述方法中,还可以包括:将得到的码长为N
C的码序列
进行交织,得到码长为N
C,排列顺序为
的低密度校验码。
本发明提出的低密度奇偶校验码的低复杂度编码方法,其优点是与基于完全随机构造校验矩阵的编码方法相比,本发明方法在误码性能上没有损失,甚至在局部点上误码性能更为优越。同时,与已有的基于完全随机构造矩阵的编码方法相比,本方法的实现复杂度非常低,非常有利于硬件实现,具有很强的应用前景。
具体实施方式
本发明提出的高码率、低密度奇偶校验码的低复杂度编码方法,其流程框图如图3所示,以码长2540比特、码率为4/5的低密度奇偶校验码为核心,将长度为KC比特的信息序列编码成为长度为NC比特的码序列,包括以下步骤:
(1)对长度为K
C比特的信息序列进行预处理,若K
C>2032,将K
C个信息比特分成t组,使得
为向下取整,其中t-1组信息比特长为
一组信息比特长为
满足
在长为
的信息比特组后面填充
个0,长为
的信息比特组后面填充
个0,使得每个信息序列长度为2032比特;然后,对每个长度为2032比特的序列进行编码;
除本发明中描述的信息序列分组方法外,还有多种方法可以用来对信息序列进行分组,如将KC个信息比特分成t组,使每组的信息比特长度分别为W1,W2,…,Wt,其中W1,W2,…,Wt满足如下条件:
0<W1,W2,…,Wt≤2032
W=(W1+W2+…+Wt)/t
Sn 2=[(W-W1)2+(W-W2)2+…+(W-Wt)2]/t
Sn取最小值;
(2)建立一个超稀疏半随机校验矩阵H:
其中,
A
508×2032由基矩阵A
b扩展而来,扩展系数L为127,基矩阵
A
b中每一个零元素扩展为127×127维全零阵,非零元素的扩展基于以下原理。
设α为伽罗华域GF(2m)中的一个本原元素,并且扩展系数L=2m-1(m为素数),那么域GF(2m)中的所有元素可以表示成为0=α∞,1=α0,α1,α2,…,αL-1。此外,由于m为素数,由伽罗华域的有关定理可知,对于满足0<i<L,0≤j<L两个整数i,j,序列αi·(αj)0,αi·(αj)1,…,αi·(αj)L-1组成了域GF(2m)的所有非零元素。若m次不可约多项式f(x)是GF(2)上的一个本原多项式,设f(α)=0,则用这个关系可以构造GF(2m),其中域元素序列αi·(αj)0,αi·(αj)1,…,αi·(αj)L-1所对应的值序列f(αi·(αj)0),f(αi·(αj)1),…,f(αi·(αj)L-1)则为正整数序列1,2,…,L的一个伪随机交织,记作(f(αi),f(αj)),称f(αi)为偏置因子,f(αj)为跳转因子。利用伪随机交织序列f(αi·(αj)0),f(αi·(αj)1),…,f(αi·(αj)L-1),以L-1为非零元素的行号,f(αi·(αj)L-1)-1为非零元素的列号,可以得到一个L×L维的扩展矩阵。
由此,对应于Ab中的每一个非零元素,一旦获知其对应的偏置因子和跳转因子,则可获得一个L×L维的扩展矩阵,而对于Ab中的零元素则直接扩为L×L维全零阵。因此,矩阵A由其基矩阵Ab以及基矩阵中的每个非零元素所对应的偏置因子和跳转因子完全确定。
本发明中对应的基矩阵Ab共有56个非零元素,因而对应有56组偏置因子和跳转因子如表1所示,其中每组因子对应一个127×127维子阵。
表1
在表格中,第一个元素为偏置因子,第二个元素为跳转因子,斜线表示该位置没有偏置及跳转因子,在基矩阵Ab中对应零元素。
本发明中f(α)=1+α3+α7,本原元α=2,m=7,L=127。
(3)利用上述508×2540维的校验矩阵H对长度为2032比特的信息序列S=(I0,I1,…,I2031)进行编码,得到长度为508比特的校验序列P=(P0,P1,…,P507),将信息序列S和生成的校验序列P合成,得到长度为2540比特的码序列C,其中C=(S,P),具体过程为:
由于在分组码中,校验矩阵H与LDPC码序列C的关系可以表示为:
H·CT=0
故
(6)
其中
由公式(6)可知,如果能获得A508×2032,便可对应得到508个校验比特,而矩阵A508×2032由表l完全确定。
举例说明,在表1中,第0行第0列为52,29,即基矩阵Ab中第0行第0列的非零元素在扩展时对应的偏置因子为52,跳转因子为29。
由于在迦罗华域GF(2m)中,每个元素都可以采用本原元α的幂及其线性和α0,α1,α2,…,αm-1的形式表示。根据生成多项式f(α),每个元素都采用如下符号表示:
n(α0,α1,α2,…,αn-1)
其中整数n代表αn,二进制m维向量(α0,α1,α2,…,αm-1)代表
αn=α0+α1α+…+αm-1αm-1
由于f(α)=1+α3+α7,α=2,则根据迦罗华域的表可知:
偏置因子
跳转因子
其中下标d为十进制表示,下标n为迦罗华域元素表示。
因此可知i00=86,j00=46,其中i00对应于基矩阵Ab中第0行第0列的偏置因子,j00对应于基矩阵Ab中第0行第0列的跳转因子。
根据迦罗华域的表,可把域元素序列 所对应的值序列 依次求出,如:
……
这里用到了迦罗华域GF(2m)的一条性质:若m次不可约多项式f(x)是GF(2)上的一个本原多项式,设f(α)=0,则 由于,本发明涉及迦罗华域GF(27),即m为7,因此α127=1。
利用 可得到Ab中第0行第0列的非零元素所扩展成的127×127维矩阵,其中第0行的非零元素位置为第51列,第1行的非零元素位置为第31列,……,第126行的非零元素位置为第107列。
因此在阵A508×2032中,第0行第51列,第1行第31列,……,第126行第107列有非零元素。
同理,表1中第0行第2列为60,75,即基矩阵Ab中第0行第2列的非零元素在扩展时对应的偏置因子为60,跳转因子为75。
根据迦罗华域的表可知:
偏置因子
跳转因子
其中下表d为十进制表示,下标n为迦罗华域元素表示。
因此可知i02=95,j02=50。
根据迦罗华域的表,可把域元素序列 所对应的值序列 依次求出,如:
……
利用 可得到Ab中第0行第2列的非零元素所扩展成的127×127维方阵,其中第0行的非零元素位置为第59列,第1行的非零元素位置为第87列,……,第126行的非零元素位置为73列。
由于基矩阵Ab中第0行第0列为非零元素,对应扩展为一个127×127维的方阵,而第0行第1列的零元素扩展为一个127×127维的全零阵。由此,Ab中第0行第2列的非零元素扩展成的127×127维方阵,在矩阵A508×2032中的列位置需要在原基础上加上254的偏移量。因此在阵A508×2032中在第0行第313列,第1行第341列,……,第126行第327列有非零元素。
依次类推,由表1,可将一个4×16维的矩阵中的每一个元素都扩展为一个127×127维矩阵,最终得到一个508×2032维的矩阵A508×2032,再根据公式6,即可求出508个校验比特的值。
进一步说明如下:
在确定508×2032维矩阵A508×2032后,结合校验矩阵
可知校验矩阵的第0行在第51列,第313列,第410列,第582列,第776列,第974列,第1035列,第1177列,第1284列,第1446列,第1612列,第1701列,第1857列,第2016列和第2032列的位置值为1,由公式(6)
v51+v313+v410+v582+v776+v974+v1035+v1177+v1284+v1446+v1612+v1701+v1857+v2016+v2032=0
即
I51+I313+I410+I582+I776+I974+I1035+I1177+I1284+I1446+I1612+I1701+I1857+I2016+p0=0
由此
校验矩阵在第一行里,第31列,第341列,第469列,第604列,第868列,第972列,第1071列,第1258列,第1351列,第1402列,第1642列,第1717列,第1856列,第1929列,第2032列和第2033列的位置值为1,由公式(6)
v31+v341+v469+v604+v868+v972+v1071+v1258+v1351+v1402+v1642+v1717+v1856+v1929+v2032+v2033=0
即
I31+I341+I469+I604+I568+I972+I1071+I1258+I1351+I1402+I1642+I1717+I1856+I1929+p0+p1=0
由此
同理可依次得出p2、p3、...、p507的计算公式,如下所示。
..
..
..
..
..
..
……
..
..
..
由式(7),可以计算出码长为2540比特,码率为4/5的LDPC编码的校验序列P=(P0,P1,…,P507)。
当计算校验比特值p127n(n=0,1,2,3)时,根据所述公式,将存储的信息序列中对应的信息比特读取出来进行模二加法运算,即得到所求的校验比特值p127n;
计算其余校验比特值时,根据所述公式,将存储的信息序列中对应的信息比特读取出来进行模二加法运算,然后与该校验比特的前一校验比特值进行模二加,运算结果为该校验比特值;
(4)将信息序列S和计算得到的校验序列P合成,最后得到码长为2540比特、码率为4/5的码序列C,C=(S,P);
(5)在上述码长为2540比特、码率为4/5的码序列C中,删除上述填充的值为0的信息比特,若K
C>2032,把上述得到的t组码长为2540比特的码序列中,在每个码序列的信息序列S里填充的0删除,得到t-1组码长为
的码序列,一组码长为
的码序列,然后进行叠加,得到一个码长为508t+K
C比特的码序列;若K
C<2032,把上述得到的码长为2540比特的码序列中,信息序列S的后2032-K
C个比特删除,得到一个码长为508+K
C的码序列;
(6)对上述删除叠加操作后得到的码序列进行处理,若KC>2032,判断NC与508t+KC的大小:当NC>508t+KC时,在上述码长为508t+KC的码序列中选取NC-KC-508t个校验比特,并在所述码长为508t+KC的码序列后填充选取的校验比特,得到码长为NC的码序列;当NC<508t+KC时,在上述码长为508t+KC的码序列中选取508t+KC-NC个校验比特并删除,得到码长为NC的码序列;
若KC<2032,判断NC与508+KC的大小:当NC>508+KC时,在上述码长为508+KC的码序列中选取NC-KC-508个校验比特,并在所述码长为508+KC的码序列后填充选取的校验比特,得到码长为NC的码序列;当NC<508+KC时,在上述码长为508+KC的码序列中选取508+KC-NC个校验比特并删除,得到码长为NC的码序列。
将得到的码长为N
C的码序列
进行交织,得到码长同样为N
C,排列顺序为
的低密度奇偶校验码,具有与原码序列同样的特性,因此也属于本发明的保护范围。
如表2所示,与已有的基于完全随机构造校验矩阵的编码方法相比,由本发明提出的编码方法所得到的码序列其误码性能没有损失,在局部点上性能更为优越。
表2
Eb/No |
本方法所得LDPC码 |
方法一所得LDPC码 |
3.639 |
1.526e-007 |
6.594e-007 |
3.473 |
2.854e-006 |
7.515e-006 |
3.311 |
1.572e-005 |
2.093e-005 |
3.152 |
1.135e-004 |
1.422e-004 |
2.995 |
6.627e-004 |
6.479e-004 |
2.690 |
6.850e-003 |
6.909e-003 |
2.396 |
2.340e-002 |
2.311e-002 |
2.111 |
3.776e-002 |
3.732e-002 |
同时,基于完全随机构造矩阵的编码方法,由式(4),可得该方法复杂度如表3、4所示,其中表3为基于完全随机构造矩阵的编码方法中P1的计算,表4为基于完全随机构造矩阵的编码方法中P2的计算。
表3
表4
而本方法计算P的实现复杂度如表5所示:
表5
对比可知,本方法的实现复杂度非常低,非常有利于硬件实现,具有很强的应用前景。