本发明涉及到多进制LDPC编码方法及编码器,尤其涉及多进制LDPC采用查表法实现伽罗华域乘法运算的编码方法及其编码器。
背景技术:
LDPC(低密度奇偶校验)码是由Gallager在1962年首次提出来,但由于当时硬件条件限制,一直被忽略,直到1996年MacKay和Neal等人对它进行重新研究,发现其具有逼近香浓限的优异性能,才重新被人们认识。研究表明LDPC码在码长较长时,译码性能优于Turbo码;多进制LDPC码在纠错能力、抗突发错误能力、对高速传输系统的适应性方面优于2进制LDPC码。
目前针对多进制LDPC编码的算法主要有直接编码算法、近似下三角编码算法、准循环RA结构编码算法。直接编码算法原理简单,计算复杂度较高,但对校验矩阵无要求,适用于校验矩阵维度较小的多进制LDPC码;近似下三角编码算法,也叫做RU编码算法,该算法要求校验矩阵具有下三角或可化简为下三角构造,算法复杂度有所减小,但该种结构的码在性能上会有损失;准循环RA结构编码算法利用校验矩阵的准循环结构,进行迭代计算,该算法计算复杂度进一步降低,但要求对校验矩阵具有准循环结构。
近似下三角编码算法和准循环RA结构编码算法要求校验矩阵具有某种特殊的结构,并不适用于所有的校验矩阵。本发明的应用背景校验矩阵为64进制,维度为44*88的普通稀疏矩阵,并不具有下三角或准循环结构,因此近似下三角编码算法和准循环RA结构编码算法均不适用。
技术实现要素:
有鉴于此,本发明的目的在于避免上述背景技术中的不足而提供一种应用于普通稀疏矩阵结构的多进制LDPC编码算法。本发明基于直接编码算法,提出一种利用查表法计算伽罗华域乘法运算的方法,有效降低了直接编码算法的计算复杂度,提高了编码效率。对于64进制44*88的校验矩阵,编码器硬件资源占用为:逻辑单元(ALUT):1763、寄存器(Registers):5173、存储单元(Block Memory Bits):10736,吞吐量可达bits,其中为系统工作时钟。有效解决了普通矩阵结构的多进制LDPC编码问题。
本发明的目的是这样实现的,一种多进制LDPC编码方法,其特征在于:将接收到的待编码信息与提前计算好的校验矩阵变换结果在伽罗华域相乘,伽罗华域的乘法运算采用查表法(不同进制的乘法运算对应的查找表不同,需计算得出),将乘法运算的结果按比特作异或处理(即伽罗华域加法运算),得到的结果即为编码后的校验位,与待编码信息组合即得到编码后的信息比特。具体包括以下步骤:
(1)存储模块接收并存储待编码的信息,将待编码信息分别发送至伽罗华域乘法器和组合模块;其中,待编码信息的存储以q比特为单位,2q表示伽罗华域对应的进制,q为正整数;
(2)校验矩阵模块设定校验矩阵,对校验矩阵进行变换得到变换后的校验矩阵,将变换后的校验矩阵每一行的值存入一个存储单元,将所有存储单元中的值发送至伽罗华域乘法器;
(3)伽罗华域乘法器每次提取每个存储单元中相同列数的一个值,将提取值与待编码信息在伽罗华域采用查表法进行乘法运算,得到乘法运算的结果并输出至伽罗华域加法器;
(4)伽罗华域加法器将乘法运算的结果在伽罗华域采用按位异或的方法相加,将相加的结果输出至组合模块;
(5)组合模块将相加的结果与待编码信息组合,得到编码后的信息。
其中,步骤(2)中校验矩阵为HM*N=[H1M*MH2M(N-M)」;变换后的校验矩阵为H1M*MT*(H2M*(N-M)T-1);其中,M,N均为正整数。
其中,步骤(3)中采用查表法进行乘法运算具体为:
设计两个查找表,查找表深度均为2q-1,第一查找表以矢量表示减一为地址,对应的幂次为数据;第二查找表以幂次为地址,对应的矢量表示为数据;当xm或hmn为0时,乘法运算结果直接置零;当xm和hmn不为0时,将xm和hmn分别减一后作为地址,通过第一查找表查找xm和hmn分别减一后的地址所对应的幂次,将两个幂次模2q-1加,相加的结果作为地址;通过第二查找表查找相加的结果的地址所对应的矢量表示,矢量表示结果即为伽罗华域两数相乘的结果;其中,2q表示伽罗华域对应的进制,xm表示第m个待编码信息,hmn表示校验矩阵模块中第m个存储单元中第n个元素;m,n均为正整数。
一种多进制LDPC编码器,其特征在于,包括存储模块、校验矩阵模块、伽罗华域乘法器、伽罗华域加法器、组合模块和控制模块;
存储模块用于接收待编码信息,并在控制模块的作用下以q比特为单位存储待编码信息,将待编码信息分别发送至伽罗华域乘法器和组合模块;其中,2q表示伽罗华域对应的进制,q为正整数;
校验矩阵模块用于设定校验矩阵,对校验矩阵进行变换得到变换后的校验矩阵,将变换后的校验矩阵每一行的值存入一个存储单元;并在控制模块的作用下将各个存储单元中的值发送至伽罗华域乘法器;所述的校验矩阵模块包括包括多个存储单元;
伽罗华域乘法器用于每次提取各个存储单元中相同列数的一个值,将提取值与待编码信息在伽罗华域采用查表法进行乘法运算,得到乘法运算的结果输出至伽罗华域加法器;
伽罗华域加法器用于将乘法运算的结果在伽罗华域采用按位异或的方法相加,将相加的结果输出至组合模块;
组合模块用于在控制模块的作用下将相加的结果与待编码信息组合,输出编码后的信息;
控制模块用于控制存储模块中输入数据的存储、校验矩阵模块输入伽罗华域乘法器的数据以及编码信息的输出。
其中,校验矩阵模块中的校验矩阵为HM*N=[H1M*MH2M(N-M)」;变换后的校验矩阵为H1M*MT*(H2M*(N-M)T-1);其中,M,N均为正整数。
其中,伽罗华域乘法器模块包括第一查找表、第二查找表、模2q-1加模块;xm或hmn为0时,乘法运算结果直接置零;xm和hmn不为0时,将xm和hmn分别减一后作为地址输入第一查找表,第一查找表查找xm和hmn分别减一后的地址所对应的幂次,将查找得到的两个幂次分别输出至模2q-1加模块;模2q-1加模块将两个幂次模2q-1加,将相加的结果作为地址输出至第二查找表;第二查找表查找相加结果的地址所对应的矢量表示,矢量表示结果即为伽罗华域两数相乘的结果,将两数相乘的结果输出;其中,2q表示伽罗华域对应的进制,xm表示第m个待编码信息,hmn表示校验矩阵模块中第m个存储单元中第n个元素。
本发明相比背景技术有如下优点:
(i)本发明提出的多进制LDPC编码方法,利用查表法实现伽罗华域乘法运算,编码器具有吞吐量大,资源消耗小的优点,具有新颖性和创造性的特点。
(ii)本发明提出的多进制LDPC编码器,利用LDPC编码的性质,提前将大部分的矩阵运算计算好,并将结果存入存储模块中,节省大量的计算资源,具有实用性强的特点。
(iii)本发明提出的多进制LDPC编码方法,对校验矩阵无要求,无需对校验矩阵做特殊设计,具有适应能力强的特点。
附图说明
图1是本发明的多进制LDPC编码方法的流程图;
图2是本发明的多进制LDPC编码器实现框图;
图3是本发明的伽罗华域乘法器实现框图。
具体实施方式
下面结合具体实施步骤和附图对本发明做进一步的描述:
本发明的编码器实现框图如图2所示,包括存储模块、校验矩阵模块、伽罗华域乘法器、伽罗华域加法器、组合模块和控制模块;算法的实现必须考虑资源的消耗,为保证计算的及时性,同时减小资源占用,编码器将提前计算好的变换矩阵存储模块的形式存入程序中;按照本框图实现的多进制LDPC编码模块,只需7个系统时钟周期即可得出第一个校验位计算结果,再经过个系统时钟周期就可以完成整个编码运算。
存储模块用于接收待编码信息,并在控制模块的作用下以q比特为单位存储待编码信息,将待编码信息分别发送至伽罗华域乘法器和组合模块;其中,2q表示伽罗华域对应的进制,q为正整数;
校验矩阵模块用于设定校验矩阵HM*N=[H1M*MH2M(N-M)」,对校验矩阵进行变换得到变换后的校验矩阵H1M*MT*(H2M*(N-M)T-1);其中,M,N均为正整数,将变换后的校验矩阵每一行的值存入一个存储单元;并在控制模块的作用下将各个存储单元中的值发送至伽罗华域乘法器;所述的校验矩阵模块包括包括多个存储单元;
伽罗华域乘法器用于每次提取各个存储单元中相同列数的一个值,将提取值与待编码信息在伽罗华域采用查表法进行乘法运算,得到乘法运算的结果输出至伽罗华域加法器;
伽罗华域加法器用于将乘法运算的结果在伽罗华域采用按位异或的方法相加,将相加的结果输出至组合模块;
组合模块用于在控制模块的作用下将相加的结果与待编码信息组合,输出编码后的信息;
控制模块用于控制存储模块中输入数据的存储、校验矩阵模块输入伽罗华域乘法器的数据以及编码信息的输出。
其中,伽罗华域乘法器包括第一查找表、第二查找表、模2q-1加模块;xm或hmn为0时,乘法运算结果直接置零;xm和hmn不为0时,将xm和hmn分别减一后作为地址输入第一查找表,第一查找表查找xm和hmn分别减一后的地址所对应的幂次,将查找得到的两个幂次分别输出至模2q-1加模块;模2q-1加模块将两个幂次模2q-1加,将相加的结果作为地址输出至第二查找表;第二查找表查找相加结果的地址所对应的矢量表示,矢量表示结果即为伽罗华域两数相乘的结果,将两数相乘的结果输出;其中,2q表示伽罗华域对应的进制,xm表示第m个待编码信息,hmn表示校验矩阵模块中第m个存储单元中第n个元素。
本发明的一种多进制LDPC编码方法的流程图如图1所示,这种编码方法具体包括步骤:
(1)存储模块接收并存储待编码的信息,将待编码信息分别发送至伽罗华域乘法器和组合模块;其中,待编码信息的存储以q比特为单位,2q表示伽罗华域对应的进制,q为正整数;
(2)校验矩阵模块设定校验矩阵HM*N=[H1M*MH2M(N-M)」,对校验矩阵进行变换得到变换后的校验矩阵,将变换后的校验矩阵每一行的值存入一个存储单元,将所有存储单元中的值发送至伽罗华域乘法器;变换后的校验矩阵为H1M*MT*(H2M*(N-M)T-1);其中,M,N均为正整数。
(3)伽罗华域乘法器每次提取每个存储单元中相同列数的一个值,将提取值与待编码信息在伽罗华域采用查表法进行乘法运算,得到乘法运算的结果并输出至伽罗华域加法器;
伽罗华域元素可以由本原元素表示和矢量表示域元素间的乘法运算以本原元素的形式进行,乘法运算为本原元素的幂次模()加;多进制LDPC编码器的设计只针对特定的进制,因此本发明中伽罗华域的乘法运算采用查表法,具体实现如图3所示,设计两个查找表,查找表深度均为2q-1,第一查找表以矢量表示减一为地址,对应的幂次为数据;第二查找表以幂次为地址,对应的矢量表示为数据;当xm或hmn为0时,乘法运算结果直接置零;当xm和hmn不为0时,将xm和hmn分别减一后作为地址,通过第一查找表查找xm和hmn分别减一后的地址所对应的幂次,将两个幂次模2q-1加,相加的结果作为地址;通过第二查找表查找相加的结果的地址所对应的矢量表示,矢量表示结果即为伽罗华域两数相乘的结果;其中,2q表示伽罗华域对应的进制,xm表示第m个待编码信息,hmn表示校验矩阵模块中第m个存储单元中第n个元素;m,n均为正整数。
本原为0的情况需特殊考虑,在任何一个乘数为0的情况下,计算结果直接置0;伽罗华域乘法器只需6个时钟周期即可完成。
(4)伽罗华域加法器将乘法运算的结果在伽罗华域采用按位异或的方法相加,将相加的结果输出至组合模块;
(5)组合模块将相加的结果与待编码信息组合,得到编码后的信息。
在待编码信息输入编码计算模块后,只需要7个时钟周期(6个时钟周期完成伽罗华域乘法运算,1个时钟周期完成伽罗华域加法运算)即可完成1个校验信息的计算;对应图2中组合模块。
图2中各个模块之间的输入输出关系由控制模块控制,控制模块控制输入数据的存储,存储模块及变换后矩阵模块输入伽罗华域乘法器模块的数据,以及组合后编码信息的输出。
除上述实施步骤外,本发明还可以有其他实施方式。凡采用等同替换或等效变换形式的技术方案,均落在本发明要求的保护范围。