CN101595644A - 使用信道码解码的设备和方法 - Google Patents
使用信道码解码的设备和方法 Download PDFInfo
- Publication number
- CN101595644A CN101595644A CNA2006800498330A CN200680049833A CN101595644A CN 101595644 A CN101595644 A CN 101595644A CN A2006800498330 A CNA2006800498330 A CN A2006800498330A CN 200680049833 A CN200680049833 A CN 200680049833A CN 101595644 A CN101595644 A CN 101595644A
- Authority
- CN
- China
- Prior art keywords
- matrix
- value
- parity matrix
- row
- decoding
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3746—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/118—Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
- H03M13/1185—Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure wherein the parity-check matrix comprises a part with a double-diagonal
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6502—Reduction of hardware complexity or efficient processing
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Error Detection And Correction (AREA)
Abstract
公开了一种使用信道码或LDPC码和奇偶校验矩阵用于解码和编码的设备和方法。使用信道码用于解码的多个方法之一包括步骤:自发送方接收低密度奇偶校验(LDPC)编码的信号;通过调节奇偶校验矩阵的行或列的顺序生成奇偶校验矩阵,该奇偶校验矩阵包括多个组,所述组由多个列组成,至少一个组包括每个元素均为零(0)的至少一个行;以及使用所生成的奇偶校验矩阵针对每个组对接收的信号迭代解码。
Description
技术领域
本发明涉及一种编码和解码方法,更具体地,涉及一种用于对低密度奇偶校验(LDPC)码编码和解码的方法和设备,其中降低了硬件复杂度并且提高了编码和解码的性能。
背景技术
使用LDPC码的编码方法近来已受到关注。LDPC码具有奇偶校验矩阵H,其大部分元素是“0”,并且LDPC码是Gallager在1962年提出的,作为低密度线性分块码。然而,在LDPC码被提出时,由于其复杂性,技术上不能实现。当LDPC码在1995年被重新发现并且证实了其出色的性能时,对其进行了活跃地研究。(参考文献:[1]Robert G.Gallager,“Low-Density Parity-Check Codes”,The MIT Press,September 15,1963.[2]D.J.C.Mackay,Good error-correcting codesbased on very sparse matrices,IEEE Trans.Inform.Theory,IT-45,pp.399-431(1999))
下文将描述使用LDPC码的编码方法。在通常的LDPC编码方法中,由LDPC奇偶校验矩阵H引入生成矩阵G以编码信息比特。为了引入生成矩阵G,通过LDPC奇偶校验矩阵H的高斯消去法获得[PT:I]。假设信息比特的数目是k并且码字的比特大小是n,矩阵P具有行大小k和列大小n-k,并且矩阵I是行大小为k并且列大小为k的单位矩阵。假设矩阵H被表示为[PT:I],则矩阵G变为[I:P]。假设指出待编码的k比特的信息比特的信息矩阵是x(具有行大小1和列大小k的矩阵),则编码的码字c如下。
c=xG=[x:xP]
下文将描述使用LDPC码的解码方法。在接收终端的解码模块中,使用cHT=0来由码字c获得信息比特x,其中码字c源自发送终端的解码。换言之,假设接收的码字是c′,计算c′HT的值。结果,如果得到c′HT的值是0,则c′的开始的k个比特被确定为解码的信息比特。如果得到c′HT的值不是0,则使用通过图的和积算法、置信传播算法等等,找到使c′HT满足0的c′,以便于恢复x。
图1示出了在使用LDPC码的解码过程中使用的二部图。参考图1,应当注意如何将多变量全局函数分解为局部函数的积。二部图包括用于奇偶校验的校验节点和表示信息字码元或者码字码元的变量节点。使用二部图上的解码算法的解码过程包括如下三个单元处理步骤:
1)第一步骤:更新从校验节点到变量节点的概率值(校验-至-变量:βi,j):βi,j是从第i个校验节点到第j个变量节点更新的概率值;
2)第二步骤:更新从变量节点到校验节点的概率值(变量-至-校验:αi,j):αi,j是从第i个变量节点到第j个校验节点更新的概率值;以及
3)第三步骤:通过变量节点的概率确定解码值。
接收方中的使用LDPC码的解码过程包括:如果在第一步骤和第二步骤之后,在第三步骤中满足c·HT=0,则将通过式c·HT=0获得的值确定为解码的值;以及如果不满足c·HT=0,则迭代第一步骤和第二步骤,直至满足给定的结束条件。第一步骤和第二步骤中的概率值更新过程以如下方式执行,每个更新过程被迭代属于奇偶校验矩阵的每一行或列的“1”的数目那么多次。由于在第一步骤和第二步骤中的更新过程被迭代,因此提高了校验节点和变量节点之间的概率值的可靠性,结果,概率值逼近于要获得的码字的真实值。在该情况中,可以使用对数来表示接收的信息的特定比特“0”的概率p0和其特定比特“1”的概率p1之间的比。该比被称为对数似然比(LLR),其由下式1表述。
[式1]
LLR=Λ(p0,p1)=ln(p0/p1)
例如,如果使用对数似然比将第一步骤和第二步骤应用于公知的置信传播算法,则可以获得下式2和3。换言之,两个输入消息(Λ1,Λ2)意味着,式2中的CHK(Λ1,Λ2)是从校验节点到变量节点更新的概率值,而式3中的VAR(Λ1,Λ2)是从变量节点到校验节点更新的概率值。
[式2]
CHK(Λ1,Λ2)=ln(cosh((Λ1+Λ2)/2))-ln(cosh((Λ1-Λ2)/2))
=2tanh-1(tanh(Λ1/2)·tanh(Λ2/2))
[式3]
VAR(Λ1,Λ2)=Λ1+Λ2
如上文所述,尽管通过BP算法可以获得适当的性能,但是如果原样地使用ln(cosh())函数或者tanh()函数,则引起了与复杂计算相关的问题。因此,在实际的算法中,使用查找表存储ln(cosh())函数或者tanh()函数的值,并且随后在下一次计算过程中读出所需的值。作为在不使用查找表的情况下减少所需存储器的方法,存在一种最小和算法,其是代表性的逼近函数。最小和算法使用函数ln(cosh(x))在x>>1的范围中收敛到|x|-ln2的性质,获得下式4。
[式4]
CHK(Λ1,Λ2)≈|(Λ1+Λ2)/2|-|(Λ1-Λ2)/2)|
=sgn(Λ1)sgn(Λ2)min(|Λ1|,|Λ2|)
由于根据式4的最小和算法需要简单的比较计算和消息码校验计算,因此不需要用于计算的查找表,并且可以执行非常快速的计算。图2示出了理想函数值和通过传统的最小和算法获得的函数值之间的比较结果。
多种方法用于实现使用前述的LDPC码的解码器。这些方法的示例包括,使用逼近式和使用存储器上的查找表。如果使用查找表来实现解码器,则出现需要较多的存储器以获得较精确的逼近值的问题。
在传统的最小和算法的情况中,其在不使用查找表的情况下逼近线性函数,|x|-ln2被用于整个范围,由此可以在1<<|x|的范围中获得逼近值。然而,出现了问题:如果|x|的值接近1或者在1的范围内,则出现了相当大的误差,如图2所示。
图3~图5示出了可以解决上文的问题的另一传统技术。该传统技术由本发明的申请人提交并注册到韩国知识产权局(韩国专利申请No.10-2002-0034987)。
参考图3~图5,整个变量范围被分为多个范围,由此可以针对每个范围选择能够逼近非线性函数的线性函数,以便于获得函数值,由此可以解决传统技术的问题,即当|x|的值接近1或者在1的范围内时出现相当大的误差的问题。在图3~图5中,在变量的绝对值是大的范围中使用线性函数|x|-ln2,而在其他的范围中,使用其常数值或斜率不为1的线性函数作为用于逼近非线性函数的线性函数。
在图4中,在|x|<1.185的范围内使用线性函数0.40625|x|。在图6中,在0.404<|x|<1.602的范围中使用线性函数0.71875(|x|-0.404)+0.398。因此,这些线性函数逼近原始的非线性函数ln(cosh(x)),由此可以减小相对于原始函数的最大误差。在该情况中,尽管相比于最小和算法可以获得更好的性能,但是由于斜率不是1,因此在获得函数值的过程中需要乘法。出于该原因,出现了问题:增加了复杂度和计算量。
同时,对于近来的LDPC编码,通常使用一种利用奇偶校验矩阵H而不用生成矩阵G来对输入数据编码的方法。因此,如上文所述,在利用LDPC码的编码方法中奇偶校验矩阵H可能是最重要的因素。由于奇偶校验矩阵H具有大于1000×2000的大小,因此出现了问题:在编码和解码过程中奇偶校验矩阵H需要大量的计算,随之而来的是其应用时的复杂度,并且需要多的存储区域。
发明内容
因此,本发明涉及一种用于对低密度奇偶校验(LDPC)码编码和解码的方法和设备,其中使用易于并行处理解码的奇偶校验矩阵来对LDPC码编码和解码。
本发明的额外的优点、目的和特征的一部分将在下面的描述中阐述,并且其一部分在本领域的普通技术人员仔细查看下文内容之后将是显而易见的,或者可以通过本发明的实践来学习。本发明的目的和其他优点可以通过在说明书及其权利要求以及附图中特别指出的结构实现或达成。
为了实现这些目的和其他优点并且根据本发明的目标,如此处实施并广泛描述的,根据本发明的一种使用信道码对信号解码的方法包括步骤:从发送方接收通过低密度奇偶校验(LDPC)码编码的信号,通过调节奇偶校验矩阵的行或列的顺序生成奇偶校验矩阵,该奇偶校验矩阵包括多个组,所述组由多个列组成,至少一个组包括每个元素均为零(0)的至少一个行,使用生成的奇偶校验矩阵对于每个组迭代解码接收的信号。
在本发明的另一方面中,一种使用信道码对信号解码的设备包括:接收模块,其从发送方接收通过LDPC码编码的信号;奇偶校验矩阵生成模块,其通过调节奇偶校验矩阵的行或列的顺序生成奇偶校验矩阵,该奇偶校验矩阵包括多个组,所述组由多个列组成,至少一个组包括每个元素均为零(0)的至少一个行;解码模块,其使用生成的奇偶校验矩阵对于每个组迭代解码接收的信号。
在本发明的另一方面中,在用于信道编码和解码的奇偶校验矩阵中,其用于发送信号的LDPC编码和接收的信号的LDPC解码,该奇偶校验矩阵包括多个组,所述组由至少两个列组成,并且该奇偶校验矩阵是通过调节先前设定的奇偶校验矩阵的行或列的顺序生成的,其中至少一个组包括每个元素均为零(0)的至少一个行。
在本发明的另一方面中,一种使用信道码对数据编码的方法包括步骤:通过调节奇偶校验矩阵的行或列的顺序生成奇偶校验矩阵,该奇偶校验矩阵包括多个组,所述组由多个列组成,至少一个组包括每个元素均为零(0)的至少一个行,使用所生成的奇偶校验矩阵对要发送的数据编码,以及将编码的信号发送到接收方。
在本发明的另一方面中,一种用于编码信道码的设备包括:奇偶校验矩阵生成模块,其通过调节奇偶校验矩阵的行或列的顺序生成奇偶校验矩阵,该奇偶校验矩阵包括多个组,所述组由多个列组成,至少一个组包括每个元素均为零(0)的至少一个行;编码模块,其使用所生成的奇偶校验矩阵对要发送的数据进行LDPC编码;和发送模块,其将编码的信号发送到接收方。
本发明的另一实施例公开了一种在|x|>>1以外的范围的精确的逼近方法,用于改善最小和算法的性能劣化。换言之,根据本发明的另一实施例,在其中函数值经过线性范围的|x|>>1的范围内使用最小和算法或者其相似方法,而如果|x|值接近1或者在1之内,则使用更精确的逼近函数或值,由此获得改善的性能。在|x|>>1以外的范围内,其中由|x|-ln2或者其相似的值可以获得准确值,需要额外的线性函数以用于逼近。对于通过额外的线性函数的在|x|>>1以外的范围的逼近,斜率可以不等于1。考虑到由于函数计算的复杂度而需要逼近,考虑到其应用,应提供尽可能简单的额外的函数。因此,优选地,需要额外的函数的数目应是较小的,额外的函数的应用应是简单的,并且即使在量化的情况下也应较少出现性能劣化。
在本发明的另一方面中,在对LDPC码解码的方法中,其包括更新概率值以对通过LDPC码编码的数据解码,该方法包括步骤:通过计算两个输入消息获取变量值;使用关于每个范围的线性函数,根据每个变量值所属的范围的线性函数计算每个变量值的函数值,所述线性函数被选择用于逼近特定的非线性函数,每个范围是通过将整个变量范围分为三个或更多个部分获得的;以及使用计算的函数值更新概率值,其中在对应于|x|<a的特定范围中的线性函数是b|x|+d(b和d是常数)并且b是2的整数次幂(2m,m是整数)。
在本发明的另一方面中,一种用于对通过LDPC码编码的数据解码的设备包括:获取装置,通过计算两个输入消息获取变量值;计算装置,其使用关于每个范围的线性函数,其被选择用于逼近特定的非线性函数,根据每个变量值所属的范围的线性函数计算每个变量值的函数值,每个范围是通过将整个变量范围分为三个或更多个部分获得的;和概率值更新装置,其使用计算的函数值更新概率值,其中在对应于|x|<a的特定范围中的线性函数是b|x|+d(b和d是常数)并且b是2的整数次幂(2m,m是整数)。
在本发明的优选实施例中,在|x|≥a的范围中的线性函数是|x|-c(a和c是非零常数),并且c是这样的数,在使用n比特量化时,其是在可由n比特表示的数值中最接近ln2的数值。优选地,d是这样的数,在使用n比特量化时,其是可由n比特表示的数值中最接近非线性函数的函数值的数值。
如上文所述,使用图1中示出的二部图上的解码算法的解码过程包括:第一步骤,更新从校验节点到变量节点的概率值;第二步骤,更新从变量节点到校验节点的概率值;和第三步骤,通过变量节点的概率确定解码值。而且,如果在第一和第二步骤之后,在第三步骤中满足c·HT=0,则由式c·HT=0获得的值被确定为解码的值,而如果不满足c·HT=0,则迭代第一步骤和第二步骤,直至满足给定的结束条件。
应当理解,本发明的前面的一般描述和后面的详细描述是示例性的和解释性的,用于提供如权利要求所述的本发明的进一步的解释。
附图说明
所包括的附图用于提供对本发明的进一步的理解并且并入本申请书构成其一部分,附图示出了本发明的实施例,并且连同说明书一起用于解释本发明的原理。在附图中:
图1通过二部图示出了奇偶校验矩阵;
图2示出了理想函数值和由传统的最小和算法获得的函数值之间的比较结果;
图3~图5示出了根据传统技术的用于计算函数值的方法;
图6A示出了根据本发明的技术特征的示例,其应用于移动通信系统;
图6B示出了根据本发明的技术特征的示例,其应用于编码设备;
图7示出了基矩阵,其包括多个尺寸(dimension)为z×z的置换矩阵或者零矩阵;
图8示出了根据本发明的用于以恒定的间隔使基置换矩阵的所有行(或列)变换的方法;
图9示出了以组为单位划分的奇偶校验矩阵的示例;
图10示出了使用基矩阵的通常的奇偶校验矩阵的示例;
图11示出了根据本发明一个实施例的使用基矩阵的奇偶校验矩阵的示例;
图12示出了使用基矩阵的通常的奇偶校验矩阵的示例;
图13示出了根据本发明一个实施例的分为四组的奇偶校验矩阵的示例;
图14示出了分为六组的通常的奇偶校验矩阵的示例;
图15示出了根据本发明一个实施例的分为六组的奇偶校验矩阵的示例;
图16是示出了根据本发明的LDPC解码器的示例的框图;
图17示出了根据本发明一个实施例的改善的性能;
图18示出了根据本发明一个实施例的另一改善的性能;
图19示出了本发明的另一优选实施例;
图20示出了本发明的另一优选实施例;
图21是示出了根据本发明优选实施例的用于对LDPC码解码的设备的示意图;以及
图22是在码速率是1/2并且码长度是576比特的相同的条件下的性能曲线。
具体设施方式
下面将详细参考根据本发明的优选实施例的使用低密度奇偶校验(LDPC)码的编码方法,附图中示出了其示例。图6A示出了根据本发明的技术特征的示例,其应用于移动通信系统。对于本领域的技术人员显而易见的是,下面描述的实施例仅是示例性的,用于描述本发明的特征,并且本发明的技术特征可应用于需要编码或解码的所有领域。
在图6A中,发射机10和接收机30通过无线信道20执行通信。在发射机10中,由数据源11输出的k比特源数据“u”通过LDPC编码器13的LDPC编码变为n比特的码字“c”。码字“c”由调制器15无线调制,通过天线17发送,并且通过无线信道20由接收机30的天线31接收。接收机30经历相对于发射机10的处理步骤的反向处理步骤。换言之,在接收机30中,接收的数据由解调器33解调并且由LDPC解码器35解码以最终获得源数据“u”。显而易见的是,前面提及的数据发送和接收处理步骤已在描述本发明的特征所需的最小范围内进行了描述,并且对于数据传输,还需要其他多种处理步骤。
图6B示出了根据本发明的LDPC编码模块。被LDPC编码模块13使用来对输入源数据编码的奇偶校验矩阵“H”具有(n-k)×n的尺寸。在该情况中,“k”表示输入到LDPC编码模块13的源数据的长度(比特)并且“n”表示编码的码字“c”的长度(比特)。如图7中所示,奇偶校验矩阵“H”包括尺寸为z×z的多个置换矩阵或零矩阵。在图7中,“Pi,j”表示尺寸为z×z的置换矩阵或零矩阵。
通过根据特定的规则变换至少一个基置换矩阵,形成多个置换矩阵。优选地,基置换矩阵是单位矩阵。包括至少一个基置换矩阵的多个置换矩阵优选地具有权重为“1”的行和列。换言之,优选的是,所述多个置换矩阵的每个行仅一个元素及其每个列仅一个元素是“1”,并且其他元素均为“0”。
在一个实施例中,用于以恒定的间隔变换基置换矩阵的所有行(或列)的方法被视为用以通过变换至少一个基置换矩阵形成多个置换矩阵的特定的规则。图8示出了该方法的示例。参考图8,通过使图8A的基置换矩阵的每行向下变换5行(即,ns=5)(或者通过使每列向右变换3列),形成了图8B的置换矩阵。在该方法中,利用相对于尺寸为z×z的基置换矩阵变换的行(或列)的间隔,可以形成数目为z-1个置换矩阵,由此形成了总数为z个置换矩阵,其包括该基置换矩阵。给定基置换矩阵,包括该基置换矩阵的数目为z个置换矩阵中的每个置换矩阵均可由单个整数表示。例如,每个置换矩阵可以通过如下方式由单个整数表示,基置换矩阵由“0”表示,通过使基置换矩阵的每行变换1行而获得的置换矩阵由“1”表示,通过使基置换矩阵的每行变换2行而获得的置换矩阵由“2”表示,如此等等。
如上文所述,由基置换矩阵形成的多个置换矩阵中的每个置换矩阵的类型可以根据变换的行(或列)的数目简单地由单个整数表示。显而易见,由单个整数表示多个置换矩阵的类型的方法仅是说明性的并且每个置换矩阵的类型可以通过其他方法表示。
根据本发明,至少一个基置换矩阵和通过使该至少一个基置换矩阵的每一行(或列)变换特定间隔而形成的多个置换矩阵的类型存储在基矩阵Hb中,并且然后,每当发送方或接收方处需要编码或解码时,使用该至少一个基置换矩阵和基矩阵Hb生成奇偶校验矩阵H,由此使用生成的奇偶校验矩阵H执行编码和解码。如图6B中示出的,根据本发明一个实施例的LDPC编码器包括存储器模块131、奇偶校验矩阵生成模块132、和编码模块134。存储器模块131存储基置换矩阵和基矩阵。奇偶校验矩阵生成模块132使用存储器模块131中存储的基置换矩阵和基矩阵生成奇偶校验矩阵。编码模块134使用奇偶校验矩阵生成模块132生成的奇偶校验矩阵对输入源数据编码。对于本领域的技术人员显而易见的是,奇偶校验矩阵生成模块132和编码模块134可以根据其功能在软件或硬件中实现。
当将基矩阵Hb视为具有被分为两个部分Hd和Hp的[Hd|Hp]的形式时,理想的是,分块双对角矩阵用于Hp部分。然而,本发明不限于该矩阵形式。分块双对角矩阵是这样的矩阵,其中主对角线和主对角线下面或上面的对角线的所有元素是单位矩阵并且其他元素是零矩阵。如果Hp部分具有分块双对角矩阵的形式,则Hp部分具有权重1的列。为了避免这种情况,优选的,使用单位矩阵替换一个或两个零矩阵。
下面将描述使用前述基矩阵Hb对LDPC码解码的方法。尽管为了便于描述,将基于基矩阵Hb描述用于对LDPC码解码的方法,但是根据本发明的解码不限于该基矩阵。换言之,奇偶校验矩阵可以不是由基矩阵生成的,而是通过被包括在解码器内部或外部的特定模块或算法获取的。因此,在生成奇偶校验矩阵方面没有限制。
典型地,对LDPC码解码的传统方法是通过迭代二部图上的校验节点和变量节点之间的概率值更新过程来执行的,以提高概率值的可靠性,该二部图是奇偶校验矩阵的另一种表示。用于使用二部图对LDPC码解码的方法基于更新的概率值确定码字,该二部图是奇偶校验矩阵的另一种表示。因此,概率值更新过程直接影响解码器的性能。
可靠性更新过程可被视为主要分为校验-至-变量节点概率值更新过程和二进制-至-校验节点概率值更新过程。当执行任一校验-至-变量节点概率值更新或二进制-至-校验节点概率值更新时,奇偶校验矩阵的给定元素的概率值被使用相同列或行中的其他元素的概率值进行更新。此时,将根据概率值已被更新的次数,向解码器提供更加可靠的结果(即,更加积极的影响)。
现将描述一种对LDPC码解码的方法,其对解码器施加更加积极的影响。在本发明的一个实施例中,对用于解码LDPC码的方法使用shuffled解码,其对解码器施加积极影响。对于shuffled解码,用于对LDPC码编码和解码的奇偶校验矩阵H的列被分为数个组,由此可以执行迭代解码。通过与用于LDPC码的通常解码相同的方式,可以通过二部图上的校验节点和变量节点之间的概率值更新来执行shuffled解码。然而,shuffled解码的特征在于,在执行校验-至-变量节点概率值更新时,针对划分的组的单元执行概率值更新。
在对于一个组已经通过计算更新了概率值之后执行下一组的概率值更新计算的情况中,利用通过一个组计算的概率值更新下一组的概率值,由此将更加可靠的概率值用于解码,即,概率值更新。换言之,在校验-至-变量节点概率值更新过程中,先前已更新的概率值不是不变地使用的,而是针对每个组进行更新的。如果以这样的方式迭代概率值更新,则将更加可靠的概率值用于下一概率值更新。这增加了校验节点和变量节点之间的概率值的可靠性,由此改善了解码器的性能。图9示出了针对每个组划分的奇偶校验矩阵的示例。图9中示出的矩阵是用于说明shuffled解码的基矩阵的示例,其中“-1”表示零矩阵并且大于“0”的整数表示变换次数。
shuffled解码具有前述的优点,但是考虑到实际上的实现方案,可能需要比基于传统算法的LDPC解码器多得多的计算。考虑到算法,根据传统的LDPC解码算法的解码器具有与用于shuffled解码的解码器相同的计算量。然而,传统的LDPC解码器可以使用具有减少计算量的形式的算法,而用于shuffled解码的解码器,考虑到其特性,不能使用具有减少计算量的形式的算法,并且出于该原因,可能需要相对更多的计算量。下面将说明一种标准置信传播(BP)算法,其是用于对LDPC码解码的算法之一。
初始化:设定i=1,最大迭代次数为IMAX。对于每个m、n,设定
步骤1:
a)水平步骤,对于1≤n≤N并且每个m∈M(n),处理
b)垂直步骤,对于1≤n≤N并且每个m∈M(n),处理
步骤2:硬判决并且停止标准测试
a)创建 由此如果 则 并且如果 则
b)如果 或者达到了最大迭代次数IMAX,则停止解码迭代并且转到步骤3。否则,设定i:=i+1并且转到步骤1。
上述的算法包括:对迭代解码进行变量设定的初始化步骤,包括校验节点更新步骤(水平步骤)和变量节点更新步骤(垂直步骤)的概率值更新步骤(步骤1),基于更新的概率值的硬判决步骤(步骤2);和判决值的输出步骤(步骤3)。下面的公式用于上述的算法。
H:奇偶校验矩阵
M(n)={m|Hmn=1}:连接到第n个变量节点的校验节点的和
N(m)={n|Hmn=1}:连接到第m个校验节点的变量节点的和
zmn (i):通过第i次迭代从第n个变量节点连接到第m个校验节点的对数似然比(LLR)值
zn (i):通过第i次迭代的第n个变量节点的后(posterior)LLR值
εmn (i):通过第i次迭代从第m个校验节点到第n个变量节点更新的LLR值
τmn (i):用于计算通过第i次迭代从第m个校验节点到第n个变量节点更新的LLR值的伪变量
m:奇偶校验矩阵的校验节点索引(即,m表示行编号)
n:奇偶校验矩阵的变量节点索引(即,j表示列编号)
在通过前述的LDPC解码算法解码接收的信号的情况下,为了在概率值更新步骤(步骤1)的校验节点更新步骤(水平步骤)中获得τmn (i),应获得诸如 的计算。在解码器的实际实现方案中,不是在每次执行校验节点更新时计算,而是使用先前计算的值来减少其计算。由于包括指数计算(index calculation)和积计算,其计算相对多于概率值更新的任何其他计算,因此如果使用先前计算的值处理则可以相当大地减少计算量。
尽管用于shuffled解码的解码器可以使用前述的方法减少计算量,但是由于其内在特性,其计算量可以与奇偶校验矩阵的组的数目成比例地增加。用于shuffled解码的解码器的解码复杂度XSD,即计算复杂度,可以表示如下。
XBP<=XSD<=gXBP
换言之,用于shuffled解码的解码器的解码复杂度XSD变得比传统解码方法的解码复杂度XBP更加复杂。在最差情况中,可能出现的问题在于解码复杂度XSD与组数目g成比例地线性增加。
本发明的一个实施例提出了一种奇偶校验矩阵的设计方法,其降低了解码复杂度。由于shuffled解码在执行校验节点更新时首先和迭代地对可靠的解码消息值解码,因此可以获得解码准确性。然而,考虑到计算的复杂度,shuffled解码具有复杂度增加的问题。在本发明的一个实施例中,提供了奇偶校验矩阵和使用该奇偶校验矩阵的解码方法,以减少计算复杂度。
下面,将参考图10和11通过相互比较来描述使用通常的奇偶校验矩阵执行shuffled解码的情况和使用根据本发明一个实施例的奇偶校验矩阵执行shuffled解码的情况。
图10示出了使用基矩阵的通常的奇偶校验矩阵的示例。在图10中,“-1”表示零矩阵,大于“0”的整数表示变换次数,由索引0~23来划分每个基矩阵的每列。图11示出了根据本发明一个实施例的使用基矩阵的奇偶校验矩阵的示例。在图11中,“-1”表示零矩阵,大于“0”的整数表示变换次数。图11中示出的奇偶校验矩阵被分为四个组,并且根据该实施例的解码器顺序地和迭代地针对四个组中的每个组解码接收的信号。图11中的阴影部分由大于“0”的整数表示,并且表示权重(行或列的权重)至少为1的置换矩阵。没有阴影的其他部分由“-1”表示并且表示零矩阵。因此,没有阴影的其他部分表示不存在权重的区域。在本发明的一个实施例中,提供了LDPC解码方法,其保持对应于通常的shuffled解码的性能并且利用图11的形式的奇偶校验矩阵使计算量最小化。如果使用图11的奇偶校验矩阵执行解码,则不是阴影的部分数目相比于图10的奇偶校验矩阵极大的增加,降低了计算的复杂度。
如果如上文所述实际实现该shuffled解码器,那么不是在每当执行校验节点更新时计算诸如的计算式,其需要复杂计算,而是使用利用先前的计算值的算法。如果shuffled解码器使用减少了计算量的算法,则shuffled解码器使用图10中示出的通常的奇偶校验矩阵对接收的信号解码增加了计算量。例如,如果图10的奇偶校验矩阵被分为四个组,则很少存在这样的部分,在所述部分中在四个组内部的行中仅存在零矩阵。因此,如果使用图10的奇偶校验矩阵更新对于接收的信号的概率值,则每当对每个组执行校验节点更新时应重新计算然而,如果使用根据本发明一个实施例的图11的奇偶校验矩阵来对接收的信号解码,则存在多个这样的部分,在所述部分中在特定组内部的行中仅存在零矩阵。因此,如果使用图11的奇偶校验矩阵更新对于接收的信号的概率值,则在行中仅存在零矩阵的部分中不存在权重,由此没有必要重新计算
图11的奇偶校验矩阵在行中包括特定数目的零矩阵。而且,优选地,根据用于shuffled解码而划分的每个组的大小,确定行中形成的零矩阵的数目。例如,图11的奇偶校验矩阵分为相同大小的四个组,其中一个组包括具有对应于6的大小的行(然而,大小是可根据构成图11的基矩阵的每个置换矩阵的大小而变的)。因此,行中连续形成的零矩阵的数目优选是6。
如图11中示出的奇偶校验矩阵可以通过多种方法生成。例如,根据该实施例的奇偶校验矩阵可以通过在解码器内部或外部提供的存储器设备中存储的信息以图11的形式生成。可替换地,根据该实施例的奇偶校验矩阵可以使用图10的通常的奇偶校验矩阵生成。下面将描述使用通常的奇偶校验矩阵生成根据该实施例的奇偶校验矩阵的方法的示例。图10中示出的奇偶校验矩阵的列的索引可以按照0->2->4->6->8->10->1->3->5->7->9->11->12->13->14->15->16->17->18->19->20->21->22->23的顺序调节,以获得图11的奇偶校验矩阵。因此,使用图10的奇偶校验矩阵的编码器所生成的信号可由使用图11的奇偶校验矩阵的解码器接收。通过使用图10的奇偶校验矩阵执行的LDPC编码而生成的码字不同于通过使用图11的奇偶校验矩阵执行的LDPC编码生成的码字。因此,为了对使用图10的奇偶校验矩阵的编码器中所生成的信号解码,利用使用图11的奇偶校验矩阵的解码器对该信号解码,并且解码的结果应根据调节列顺序的规则进行重新调节。
图12~图15示出了使用通常的奇偶校验矩阵和根据本发明实施例的奇偶校验矩阵对接收的信号解码时的计算复杂度的差别。下面将参考附图描述根据本发明一个实施例的奇偶校验矩阵的计算复杂度。
在图12中,通常的奇偶校验矩阵被分为四个组。图12示出了使用基矩阵的通常的奇偶校验矩阵的示例。参考图12,阴影部分表示,在分为四个部分的每个组中的行中,存在至少一个具有权重的分量。没有阴影的其他的部分表示,在分为四个部分的每个组中的行中,存在至少一个不具有权重(即仅具有零矩阵)的分量。如果图12的奇偶校验矩阵被分为四个组,所述组就具有六个行分量,则在每个组中的行中仅存在一个对应于零矩阵的部分。如果具有六个分量的单个行被称为集合,则一个组包括八个集合,而整个奇偶校验矩阵包括三十二个集合。如上文所述,由于shuffled解码针对每个组执行校验节点更新,因此如果使用图12的奇偶校验矩阵对接收的信号解码,则对于总共三十二个集合中的三十一个集合需要诸如的复杂计算。
图13示出了根据本发明一个实施例的奇偶校验矩阵的示例,其被分为四个组。参考图13,阴影部分表示,在分为四个部分的每个组中的行中,存在至少一个具有权重的分量。没有阴影的其他的部分表示,在分为四个部分的每个组中的行中,存在至少一个不具有权重(即仅具有零矩阵)的分量。如果图13的奇偶校验矩阵被分为四个组,所述组具有六个行分量;则存在七个这样的部分,在所述部分中每个矩阵的分量对应于每个组中的行中的零矩阵。因此,如果使用图13的奇偶校验矩阵对接收的信号解码,则对于总共三十二个集合中的二十五个集合需要诸如的复杂计算。结果,应当注意,基于根据本发明一个实施例的奇偶校验矩阵的解码比基于图12的通常的奇偶校验矩阵的解码更加有利。
图14是分为六个组的通常的奇偶校验矩阵的示例。参考图14,阴影部分表示,在分为六个部分的每个组中的行中,存在至少一个具有权重的分量。没有阴影的其他的部分表示,在分为四个部分的每个组中的行中,存在至少一个不具有权重(即仅具有零矩阵)的分量。如果图14的奇偶校验矩阵被分为六个组,所述组具有四个行分量,则在每个组中的行中仅存在五个对应于零矩阵的部分。如果具有四个分量的单个行被称为集合,则一个组包括八个集合,而整个奇偶校验矩阵包括四十八个集合。如上文所述,由于shuffled解码针对每个组执行校验节点更新,因此如果使用图14的奇偶校验矩阵对接收的信号解码,则对于总共四十八个集合中的四十三个集合需要诸如的复杂计算。
图15示出了根据本发明一个实施例的奇偶校验矩阵的示例,其被分为六个组。参考图15,阴影部分表示,在分为六个部分的每个组中的行中,存在至少一个具有权重的分量。没有阴影的其他的部分表示,在分为六个部分的每个组中的行中,存在至少一个不具有权重(即仅具有零矩阵)的分量。如果图15的奇偶校验矩阵被分为六个组,所述组具有四个行分量,则存在二十一个这样的部分,在所述部分中每个矩阵的分量对应于每个组中的行中的零矩阵。因此,如果使用图15的奇偶校验矩阵对接收的信号解码,则对于总共四十八个集合中的二十七个集合需要诸如的复杂计算。结果,应当注意,基于根据本发明一个实施例的奇偶校验矩阵的解码比基于图14的通常的奇偶校验矩阵的解码更加有利。
下面将描述利用本发明中提出的使用多种基矩阵对LDPC码解码的LDPC解码器。图16是示出了根据本发明的LDPC解码器的示例的框图。LDPC解码器1000包括校验节点更新单元(CNU)模块1100、控制模块1200、变量节点更新单元(VNU)模块1300、和存储器模块1400。CNU模块1100执行校验节点的概率值更新(即,执行校验节点更新),并且包括至少一个CNU 1110。CNU 1110是执行校验节点的概率值更新(校验节点更新)的处理单元。控制模块1200包括控制单元1210、CNU路由网络1220、VNC路由网络1230、奇偶校验矩阵索引存储单元1240、和硬判决单元1250。控制单元1210控制解码器1000的每个单元的操作。CNU路由网络1220根据奇偶校验矩阵的结构控制CNU模块1100和存储器模块1400。VNU路由网络1230控制VNU模块1100和存储器模块1400。奇偶校验矩阵索引存储单元1240存储奇偶校验矩阵的结构信息。硬判决单元1250使用更新的概率值确定解码值并且校验所确定的解码值。VNU模块1100执行变量节点的概率值的更新(即执行变量节点更新),并且包括至少一个VNU 1310。VNU 1310是执行变量节点的概率值更新(变量节点更新)的处理单元。由控制模块1200控制的CNU 1110和VNU 1310计算和更新矩阵H的非零元素的概率值。计算的概率值存储在存储器模块1400中。存储器模块1400包括R存储器1410、接收的对数似然比(LLR)存储器1420、和Q存储器1430。R存储器1410存储为校验-至-变量节点概率值更新而计算的概率值。接收的LLR存储器1420存储为变量-至-校验节点概率值更新而计算的概率值(例如,通过无线信道接收的LLR值)。Q存储器1430存储为变量-至-校验节点概率值更新而计算的概率值。
下文将更加详细地描述每个单元。接收的LLR存储器1420存储待解码的接收的信号的概率值,例如,接收的信号的码字的LLR值。R存储器1410存储特定校验节点处的概率值更新(校验节点更新)的结果,而Q存储器1430存储特定变量节点处的概率值更新(变量节点更新)的结果。控制单元1210控制每个单元的操作顺序及其操作时序。奇偶校验矩阵索引存储单元1240存储奇偶校验矩阵的权重的位置信息等等。CNU路由网络1220自奇偶校验矩阵索引存储单元1240获取奇偶校验矩阵的信息,并且适当地将CNU 1110连接到存储器模块1400的存储器。VNU路由网络1230自奇偶校验矩阵索引存储单元1240获取奇偶校验矩阵的信息,并且适当地将VNU 1310连接到存储器模块1400的存储器。硬判决单元1250是使用Q存储器1430确定解码值c’并且校验确定的解码值c’的单元。如果解码值c’满足校验式c′HT=0,则硬判决单元1250输出解码值c’作为真值。相反地,如果解码值c’不满足上述的校验式,则硬判决单元1250将所述解码迭代直至特定的最大次数。
图16的解码器1000可以使用奇偶校验矩阵索引存储单元1240或者分立的存储器(未示出)中存储的奇偶校验矩阵来对接收的信号解码,或者可以使用利用基矩阵和基置换矩阵生成的奇偶校验矩阵来对接收的信号解码。在使用基矩阵和基置换矩阵生成奇偶校验矩阵的情况中,解码器1000优选包括存储单元(未示出)和奇偶校验矩阵生成器(未示出),其中存储单元存储基矩阵和基置换矩阵,并且奇偶校验矩阵生成器使用该基矩阵和基置换矩阵生成奇偶校验矩阵。此外,图16的解码器1000可以通过调节奇偶校验矩阵的行或列的顺序生成新的奇偶校验矩阵。在该情况中,解码器1000优选包括奇偶校验矩阵调节器(未示出),其调节奇偶校验矩阵的行或列的顺序。
图17示出了根据本发明一个实施例的改善的性能。如图17中所示,应当注意,使用被分为六组的奇偶校验矩阵执行解码的shuffled解码具有比传统的LDPC解码算法更加出色的性能。还应当注意,通过增加行中的包括零矩阵的集合而执行的shuffled解码具有比传统的LDPC解码算法更加出色的性能。而且,应当注意,在根据本发明一个实施例通过利用增加行中的包括零矩阵的集合来执行的shuffled解码而获得的性能与通过在不调节零矩阵的位置情况下进行shuffled解码而获得的性能之间不存在特别的差别。因此,如果使用根据本发明的一个实施例的奇偶校验矩阵执行解码,可以在保持出色的性能的同时降低计算复杂度。
图18示出了根据本发明一个实施例的另一改善的性能。参考图18,shuffled_group表示划分奇偶校验矩阵的组的数目,迭代次数表示用于LDPC解码的迭代次数。图18中示出的结果指出了码速率是2/3。如果使用根据本发明实施例的奇偶校验矩阵执行shuffled解码,则随着shuffled_group的数的增加,可以改善性能,如图18所示。
图19示出了根据本发明优选实施例的用于对LDPC码解码的方法。参考图19,非线性函数ln(cosh(x))的整个变量范围被分为四个范围,用于执行二进制-至-校验节点概率值更新,其中关于每个范围的不同的线性函数逼近该非线性函数。换言之,在图19中,在|x|≥1.375的范围内的线性函数y=|x|-0.6875和|x|<1.375范围内的线性函数y=0.5|x|逼近该非线性函数ln(cosh(x))。
如上文参考传统技术描述的,需要根据斜率的乘法,以计算非线性范围(图4中|x|<1.185的范围和图5中|0.404|<|x|<1.602的范围)内的函数值。在该情况中,在乘法或除法过程中可以仅通过简单的变换来计算其绝对值可由2的整数次幂表示的数值。因此,如果通过其斜率的绝对值可由2的整数次幂表示的线性函数的组合逼近非线性函数ln(cosh(x)),则可以以显著低于其斜率的绝对值不能由2的整数次幂表示的逼近函数的复杂度来执行计算。考虑到函数ln(cosh(x))的特性,通过具有0或2的整数次幂的斜率的逼近函数,可以获得出色的解码性能。
0.5(=2-1)对变量值的乘法结果与变量值向右变换1比特而获得的结果相同,并且0.6875和1.375可通过少量的比特量化,诸如0.1011(2)和1.0110(2),由此可以低复杂度地执行逼近。优选使用如下的可通过少量的比特相互组合的数值作为用于逼近的常数值。在下文中,比特表示的下列每个数值是用于表示其量化数值所需的最少比特。
0.5(2-1)=0.1(2) -1比特
0.25(2-2)=0.01(2) -2比特
0.125(2-3)=0.001(2) -3比特
0.0625(2-4)=0.0001(2) -4比特
0.03125(2-5)=0.00001(2) -5比特
...
而且,尽管根据传统技术,非线性函数ln(cosh(x))在线性范围|x|>>1中逼近线性函数y=|x|-ln2,但是根据用于量化常数值ln2的比特,为了计算简单,优选使用最接近常数值ln2的数值。例如,如果使用4个比特量化小数点后的数值,则利用在可由4个比特表示的数值中最接近ln2(=0.693147)的0.6875将该常数值逼近为y=|x|-0.6875。
如果输入两个消息值Λ1、Λ2,则分别获得对应于两个消息值之间的和的1/2和差的1/2的值。对应于两个消息值之间的和的1/2的值等于(Λ1+Λ2)/2,而对应于两个消息值之间的差的1/2的值等于(Λ1-Λ2)/2。所获得的两个值用作变量值“x”,由此使用根据每个变量值所属的范围而对每个范围给出的线性函数来计算函数值。换言之,在图19中,如果每个变量值的绝对值小于1.375,则通过计算y=0.5|x|计算函数值。相反地,如果每个变量值的绝对值大于1.375,则通过计算y=|x|-0.6875来计算函数值。这可由下式表示。
[式5]
ln(cosh(x))≈|x|-0.6875,|x|≥1.375
≈0.5|x|,|x|<1.375
如果获得了如上计算的两个函数值之间的差,则由式4获得校验函数值CHK(Λ1,Λ2),并且获得的值CHK(Λ1,Λ2)最终变为从校验节点到变量节点更新的概率值。
如果输入消息值大于三,则如上文针对第一和第二消息值获得的函数值CHK(Λ1,Λ2)被视为一个消息值,并且针对第三消息值Λ3和CHK(Λ1,Λ2)循环迭代上述的过程。例如,如果存在四个输入消息值,则使用式5的逼近式将第一和第二输入消息应用于校验函数CHK(Λ1,Λ2)以获得第一输出值。然后,使用式5的逼近式将第三输入消息值Λ3和第一输出值CHK(Λ1,Λ2)应用于CHK[Λ3,CHK(Λ1,Λ2)]以获得第二输出值。最后,将第四输入消息值Λ4和第二输出值CHK[Λ3,CHK(Λ1,Λ2)]应用于校验函数CHK{Λ4,CHK[Λ3,CHK(Λ1,Λ2)]}以获得第三输出值。
图20示出了本发明的另一优选实施例。参考图20,非线性函数ln(cosh(x))的整个变量范围被分为五个范围,其中关于每个范围的不同的线性函数逼近该非线性函数。参考图20,当小数点后面的数值由4个比特量化时,在线性范围|x|≥1.125中逼近的线性函数的常数值等于最接近ln2的0.6875,并且在非线性范围|x|<1.125中逼近的线性函数的斜率等于2的整数次幂(2-1)或0。根据图20的实施例逼近的线性函数可由下式表示。
[式6]
ln(cosh(x))≈|x|-0.6875,|x|≥1.125
≈0.5|x|-0.125,0.25<|x|<1.125
≈0,|x|≤0.25
在图20的实施例中,当输入两个消息值Λ1、Λ2或者三个或者更多个消息值时,通过与图19的实施例中描述的几乎相同的方式执行概率值更新程序,不同之处在于划分的范围的数目和针对每个范围逼近的线性函数。因此,将省略对根据图20的实施例的概率值更新过程的详细描述。
图21是示出了根据本发明优选实施例的用于对LDPC码解码的设备的示意图。该设备包括变量值获取模块100、函数值计算模块200和概率值更新模块300。变量值获取模块100计算两个输入消息以获取变量值。函数值计算模块200使用被选择用于逼近特定的非线性函数的关于每个范围的线性函数,来根据每个变量值所属范围的线性函数计算每个变量值的函数值,其中每个范围是通过将整个变量范围分为三个或更多个部分获得的,并且对应于|x|<a的特定范围中的线性函数是b|x|+d(b和d是常数)并且b是2的整数次幂(2m,m是整数)。概率值更新模块300使用计算的函数值更新概率值。解码设备的这些模块的功能如通过本发明优选实施例描述的,并且显而易见,这些模块可由软件、硬件或者其组合实现。而且,尽管在图21中各个模块被示出为物理上相互分立,但是它们可以通过软件、硬件或者其组合在单个模块中实现。
根据本发明,相比于传统的LDPC编码的奇偶校验矩阵,解码复杂度最大降低范围可以为40%,而不降低性能。
而且,根据本发明,相比于传统算法,可以降低计算复杂度,并且同时可以获得出色的性能。换言之,如果使用本发明提出的斜率和常数值逼近线性函数,则可以极大地减少计算量,即复杂度。
图22是在相同的条件下,即码速率是1/2并且码长度是576比特的条件下的性能曲线。参考图22,将使用理想函数ln(cosh(x))的解码器的性能、使用本发明提出的逼近函数的解码器的性能、和使用最小和算法的解码器的性能相互比较。应当注意,如果使用本发明提出的方法,则可以获得与使用理想函数获得的性能几乎相似的性能。
对于本领域的技术人员显而易见的是,本发明可以以其他的特定形式实施而不偏离本发明的精神和基本特征。因此,上文的实施例在所有方面应被视为说明性的而非限制性的。本发明的范围应通过所附权利要求的合理解释而确定,并且在本发明的等效范围内的所有变化应被涵盖在本发明范围内。
工业适用性
本发明的技术特征可以应用于需要信号编码或解码的通信系统,诸如移动通信系统或者无线互联网系统。
Claims (32)
1.一种使用信道码对信号解码的方法,包括步骤:
从发送方接收通过低密度奇偶校验(LDPC)码编码的信号;
通过调节奇偶校验矩阵的行或列的顺序生成奇偶校验矩阵,所述奇偶校验矩阵包括多个组,所述组由多个列组成,至少一个组包括每个元素均为零(0)的至少一个行;以及
使用生成的奇偶校验矩阵对于每个组迭代解码接收的信号。
2.如权利要求1所述的方法,其中迭代解码接收的信号的步骤包括:
使用所述奇偶校验矩阵对于每个组计算接收的信号的概率值;以及
使用计算的概率值确定解码值。
3.如权利要求2所述的方法,其中迭代解码接收的信号的步骤进一步包括:
校验所确定的解码值是否是准确接收的值。
4.如权利要求1所述的方法,其中所述奇偶校验矩阵包括多个置换矩阵和多个零矩阵,其通过在特定方向上以特定间隔变换矩阵块而形成,所述矩阵块由先前设定的基置换矩阵的至少一个行或列组成。
5.一种使用信道码对信号解码的设备,包括:
接收模块,其从发送方接收通过LDPC码编码的信号;
奇偶校验矩阵生成模块,其通过调节奇偶校验矩阵的行或列的顺序生成奇偶校验矩阵,所述奇偶校验矩阵包括多个组,所述组由多个列组成,至少一个组包括每个元素均为零(0)的至少一个行;和
解码模块,其使用所生成的奇偶校验矩阵对于每个组迭代解码接收的信号。
6.如权利要求5所述的设备,其中所述解码模块包括:
至少一个校验节点更新单元,其使用所述奇偶校验矩阵对于每个组执行所述接收的信号的校验节点更新;
至少一个变量节点更新单元,其使用所述奇偶校验矩阵执行所述接收的信号的变量节点更新;和
解码值确定模块,其使用更新的结果值确定解码值。
7.如权利要求6所述的设备,其中所述解码模块进一步包括:
校验模块,其校验所确定的解码值是否是准确接收的值。
8.如权利要求5所述的设备,其中所述奇偶校验矩阵包括多个置换矩阵和多个零矩阵,其通过在特定方向上以特定间隔变换矩阵块而形成,所述矩阵块由先前设定的基置换矩阵的至少一个行或列组成。
9.一种用于信道编码和解码的奇偶校验矩阵,其用于发送信号的LDPC编码和接收的信号的LDPC解码,该奇偶校验矩阵包括多个组,所述组由至少两个列组成,该奇偶校验矩阵是通过调节先前设定的奇偶校验矩阵的行或列的顺序生成的,其中至少一个组包括每个元素均为零(0)的至少一个行。
10.如权利要求9所述的奇偶校验矩阵,其中所述奇偶校验矩阵包括多个置换矩阵和多个零矩阵,其通过在特定方向上以特定间隔变换矩阵块而形成,所述矩阵块由先前设定的基置换矩阵的至少一个行或列组成。
11.如权利要求10所述的奇偶校验矩阵,其中所述奇偶校验矩阵具有[Hd|Hp]的形式,其中Hp是分块双对角矩阵,其中Hd包括至少一个组,所述组具有每个元素均为零(0)的至少一个行。
12.一种使用LDPC码对数据编码的方法,包括步骤:
通过调节奇偶校验矩阵的行或列的顺序生成奇偶校验矩阵,所述奇偶校验矩阵包括多个组,所述组由多个列组成,至少一个组包括每个元素均为零(0)的至少一个行;
使用所生成的奇偶校验矩阵对要发送的数据编码;以及
将编码的数据发送到接收方。
13.如权利要求12所述的方法,其中所述奇偶校验矩阵包括多个置换矩阵和多个零矩阵,其通过在特定方向上以特定间隔变换矩阵块而形成,所述矩阵块由先前设定的基置换矩阵的至少一个行或列组成。
14.一种使用信道码对数据编码的设备,包括:
奇偶校验矩阵生成模块,其通过调节奇偶校验矩阵的行或列的顺序生成奇偶校验矩阵,所述奇偶校验矩阵包括多个组,所述组由多个列组成,至少一个组包括每个元素均为零(0)的至少一个行;
编码模块,其使用所生成的奇偶校验矩阵对要发送的数据编码;和
发送模块,其将编码的数据发送到接收方。
15.如权利要求14所述的设备,其中所述奇偶校验矩阵包括多个置换矩阵和多个零矩阵,其通过在特定方向上以特定间隔变换矩阵块而形成,所述矩阵块由先前设定的基置换矩阵的至少一个行或列组成。
16.一种利用LDPC码解码的方法,其包括更新概率值以对通过LDPC码编码的数据解码,所述方法包括:
通过计算两个输入消息值获取变量值;
使用关于每个范围的线性函数,根据每个变量值所属的范围的线性函数计算每个变量值的函数值,所述线性函数被选择用于逼近特定的非线性函数,每个范围是通过将整个变量范围分为三个或更多个部分而获得的;以及
使用所计算的函数值更新概率值,
其中在对应于|x|<a的特定范围中的线性函数是b|x|+d(b和d是常数)并且b是2的整数次幂(2m,m是整数)。
17.如权利要求16所述的方法,其中计算每个变量值的函数值的步骤包括:
将所述两个输入消息值之间的和与差除以2。
18.如权利要求17所述的方法,其中所述特定的非线性函数是ln(cosh(x)),其中x是变量值。
19.如权利要求16~18中的任何一项所述的方法,其中在|x|≥a的范围中的线性函数是|x|-c,其中a和c是非零常数。
20.如权利要求19所述的方法,其中c是这样的数,当使用n个比特用于量化时,其是在可由n个比特表示的数中最接近ln2的数。
21.如权利要求16所述的方法,其中d是这样的数,当使用n个比特用于量化时,其是在可由n个比特表示的数中最接近所述非线性函数的函数值的数。
22.如权利要求16所述的方法,其中d是零(0)。
23.如权利要求16所述的方法,其中在概率值更新步骤中更新的概率值是函数值之间的差。
24.如权利要求23所述的方法,进一步包括:
使用新的输入消息和作为单个消息的更新的概率值执行各步骤。
25.一种用于对通过LDPC码编码的数据解码的设备,包括:
获取装置,通过计算两个输入消息值获取变量值;
计算装置,其使用关于每个范围的线性函数,根据每个变量值所属的范围的线性函数计算每个变量值的函数值,所述线性函数被选择用于逼近特定的非线性函数,每个范围是通过将整个变量范围分为三个或更多个部分而获得的;和
概率值更新装置,其使用所计算的函数值更新概率值,
其中在对应于|x|<a的特定范围中的线性函数是b|x|+d(b和d是常数)并且b是2的整数次幂(2m,m是整数)。
26.如权利要求25所述的设备,其中计算每个变量值的步骤包括:
将所述两个输入消息值之间的和与差的绝对值除以2。
27.如权利要求26所述的设备,其中所述特定的非线性函数是ln(cosh(x)),其中x是变量值。
28.如权利要求25~27中的任何一项所述的设备,其中在|x|≥a的范围中的线性函数是|x|-c,其中a和c是非零常数。
29.如权利要求28所述的设备,其中c是这样的数,当使用n个比特用于量化时,其是在可由n个比特表示的数中最接近ln2的数。
30.如权利要求25所述的设备,其中d是这样的数,当使用n个比特用于量化时,其是在可由n个比特表示的数中最接近所述非线性函数的函数值的数。
31.如权利要求25所述的设备,其中d是零(0)。
32.如权利要求30所述的方法,其中通过所述概率值更新装置更新的概率值是所述函数值之间的差。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020050130569 | 2005-12-27 | ||
KR1020050130569A KR101147768B1 (ko) | 2005-12-27 | 2005-12-27 | 채널 코드를 이용한 복호화 방법 및 장치 |
KR10-2005-0130569 | 2005-12-27 | ||
KR1020050135352A KR101208505B1 (ko) | 2005-12-30 | 2005-12-30 | Ldpc 코드에 의한 복호화 방법 및 그 장치 |
KR1020050135352 | 2005-12-30 | ||
KR10-2005-0135352 | 2005-12-30 | ||
PCT/KR2006/005763 WO2007075043A2 (en) | 2005-12-27 | 2006-12-27 | Methods and apparatuses for decoding or encoding using channel code or ldpc |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101595644A true CN101595644A (zh) | 2009-12-02 |
CN101595644B CN101595644B (zh) | 2013-05-01 |
Family
ID=38504550
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800498330A Expired - Fee Related CN101595644B (zh) | 2005-12-27 | 2006-12-27 | 使用信道码解码的设备和方法 |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR101147768B1 (zh) |
CN (1) | CN101595644B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104220990A (zh) * | 2012-03-28 | 2014-12-17 | 英特尔公司 | 在纠错期间保存计算资源 |
CN107565978A (zh) * | 2017-08-30 | 2018-01-09 | 桂林电子科技大学 | 基于Tanner图边调度策略的BP译码方法 |
CN109067410A (zh) * | 2018-09-04 | 2018-12-21 | 中国科学院计算技术研究所 | 一种确定bp译码迭代更新函数的方法及译码方法 |
CN110383727A (zh) * | 2017-03-09 | 2019-10-25 | Lg电子株式会社 | 用于ldpc码的分层解码方法及其装置 |
CN113595559A (zh) * | 2016-12-20 | 2021-11-02 | 三星电子株式会社 | 用于通信系统中的信道编码/解码的装置和方法 |
WO2022194170A1 (zh) * | 2021-03-18 | 2022-09-22 | 华为技术有限公司 | 用于编解码的方法、设备和系统 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100058260A (ko) * | 2008-11-24 | 2010-06-03 | 삼성전자주식회사 | 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 채널부호/복호 장치 및 방법 |
KR101644656B1 (ko) | 2009-11-02 | 2016-08-10 | 삼성전자주식회사 | 선형 블록 부호를 사용하는 통신 시스템에서 패리티 검사 행렬을 생성하는 방법과 이를 이용한 채널 부호화/복호화 장치 및 방법 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040033554A (ko) * | 2002-10-15 | 2004-04-28 | 삼성전자주식회사 | 에러 정정 부호화 장치 및 그 방법 |
KR100632268B1 (ko) * | 2003-12-24 | 2006-10-11 | 한국전자통신연구원 | Ldpc 부호 부호화 및 복호화 방법, 및 ldpc패러티 검사 행렬 형성 방법. |
-
2005
- 2005-12-27 KR KR1020050130569A patent/KR101147768B1/ko not_active IP Right Cessation
-
2006
- 2006-12-27 CN CN2006800498330A patent/CN101595644B/zh not_active Expired - Fee Related
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104220990A (zh) * | 2012-03-28 | 2014-12-17 | 英特尔公司 | 在纠错期间保存计算资源 |
CN104220990B (zh) * | 2012-03-28 | 2017-04-12 | 英特尔公司 | 对信道上的编码数据进行解码的方法和系统 |
CN113595559A (zh) * | 2016-12-20 | 2021-11-02 | 三星电子株式会社 | 用于通信系统中的信道编码/解码的装置和方法 |
CN110383727A (zh) * | 2017-03-09 | 2019-10-25 | Lg电子株式会社 | 用于ldpc码的分层解码方法及其装置 |
US11206042B2 (en) | 2017-03-09 | 2021-12-21 | Lg Electronics Inc. | Layered decoding method for LDPC code and device therefor |
CN110383727B (zh) * | 2017-03-09 | 2022-01-11 | Lg电子株式会社 | 用于ldpc码的分层解码方法及其装置 |
CN107565978A (zh) * | 2017-08-30 | 2018-01-09 | 桂林电子科技大学 | 基于Tanner图边调度策略的BP译码方法 |
CN107565978B (zh) * | 2017-08-30 | 2020-10-16 | 桂林电子科技大学 | 基于Tanner图边调度策略的BP译码方法 |
CN109067410A (zh) * | 2018-09-04 | 2018-12-21 | 中国科学院计算技术研究所 | 一种确定bp译码迭代更新函数的方法及译码方法 |
CN109067410B (zh) * | 2018-09-04 | 2020-09-29 | 中国科学院计算技术研究所 | 一种确定bp译码迭代更新函数的方法及译码方法 |
WO2022194170A1 (zh) * | 2021-03-18 | 2022-09-22 | 华为技术有限公司 | 用于编解码的方法、设备和系统 |
Also Published As
Publication number | Publication date |
---|---|
KR20070068675A (ko) | 2007-07-02 |
KR101147768B1 (ko) | 2012-05-25 |
CN101595644B (zh) | 2013-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8438459B2 (en) | Apparatus and method for decoding using channel code | |
US8151161B2 (en) | Apparatus and method for decoding using channel code | |
CN101595644B (zh) | 使用信道码解码的设备和方法 | |
CN101032082B (zh) | 编码和解码数据的方法和设备 | |
US8010869B2 (en) | Method and device for controlling the decoding of a LDPC encoded codeword, in particular for DVB-S2 LDPC encoded codewords | |
US8103935B2 (en) | Test matrix generating method, encoding method, decoding method, communication apparatus, communication system, encoder and decoder | |
US8347170B2 (en) | Method and apparatus for performing decoding using LDPC code | |
CN101079639B (zh) | 基于节点存储器的低密度奇偶校验解码装置和方法 | |
US10637510B2 (en) | Methods and devices for error correcting codes decoding | |
CN101764620B (zh) | 用于使用信道代码解码的装置和方法 | |
US7450033B2 (en) | Apparatus and method for receiving signal in a communication system | |
US8190977B2 (en) | Decoder of error correction codes | |
CN100566182C (zh) | 解码ldpc编码信号的加速消息传递解码器和方法 | |
CN105556851A (zh) | 用于从值的集合中识别第一极值和第二极值的方法及装置 | |
KR20150076583A (ko) | 비이진 패리티 검사 부호의 복호 방법 및 장치 | |
CN112889221B (zh) | 用于非二进制码的消息传递解码的校验节点处理单元中的偏移值确定 | |
JP5523064B2 (ja) | 復号装置及び方法 | |
US11476870B2 (en) | Variable node processing methods and devices for message-passing decoding of non-binary codes | |
US11245421B2 (en) | Check node processing methods and devices with insertion sort | |
KR20190000768A (ko) | 통신 또는 방송 시스템에서 채널 부호화/복호화 방법 및 장치 | |
KR101208505B1 (ko) | Ldpc 코드에 의한 복호화 방법 및 그 장치 | |
KR20200136340A (ko) | 길이가 16200이며, 부호율이 4/15인 ldpc 부호화기 및 이를 이용한 ldpc 부호화 방법 | |
KR20200136344A (ko) | 길이가 64800이며, 부호율이 3/15인 ldpc 부호화기 및 이를 이용한 ldpc 부호화 방법 |
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 |
Granted publication date: 20130501 Termination date: 20161227 |
|
CF01 | Termination of patent right due to non-payment of annual fee |