用于使用信道代码解码的装置和方法

文档序号:7538240阅读:242来源:国知局
专利名称:用于使用信道代码解码的装置和方法
技术领域
本发明涉及一种编码和解码方法,以及更加具体地,涉及一种使用低密度奇偶校验(LDPC)码的编码和解码方法和装置,其能够改进编码和解码性能,而不使用大的存储器容量以及还能够降低用于实现的硬件的复杂性。
背景技术
近年来,使用LDPC码的编码方法引起许多关注。1962年,Gallager提出LDPC码,由于奇偶校验矩阵H的大多数的元素是零,该LDPC码作为低密度线性分组码。由于LDPC码很复杂使得那时候的技术不能实现它们,LDPC码被忘记。在1995,再次认识了LDPC码并确认了其优良的性能。近年来,关于LDPC码已经进行了充分的研究(参考[1]Robert G.Gallager,“Low-Density Parity-Check Codes”,The MITPress,September 15,1963,和[2]D.J.C.Mackay,Good error-correctingcodes based on very sparse matrices,IEEE Trans Inform Theory,IT-45,pp.399-431(1999))。
由于LDPC码的奇偶校验矩阵中1的数目非常小,奇偶校验矩阵允许甚至对于很大的块大小通过迭代解码进行解码。这样,随着块大小增加,LDPC码的奇偶校验矩阵的性能接近香农信道容量限,如turbo码的一样。包括在奇偶校验矩阵的行或者列中的1的数目被称为加权。
能够使用(n-k)×n奇偶校验矩阵H描述LDPC码,通过公式1能够获得对应于奇偶校验矩阵H的生成矩阵G。

H×G=0在使用LDPC码的编码和解码方法中,发送侧能够根据公式2使用生成矩阵G编码输入数据,该生成矩阵G具有与奇偶校验矩阵的公式1的关系。
c=G×x,其中“c”表示代码字和且“x”表示信息比特。
现在将给出现有的使用H矩阵的解码方法的描述。
在接收侧的解码器必须从代码字c获得信息比特x,也就是说在发送侧的编码结果。解码器使用条件“Hc=0”确定该信息比特x。具体地说,当接收代码字c’时,计算值Hc’。如果Hc’的值是0,其确定代码字c’的第一k位是解码的信息比特。如果Hc’的值不是0,通过发现满足检验方程“Hc’=0”的代码字c’,使用基于曲线图的和-积算法,置信繁衍算法等重建信息比特x。根据信息比特和G矩阵,检验方程“Hc’=0”能够被转换为“c’HT=0”。这样,能够根据信息比特和G矩阵之间的关系改变检验方程。
图1示出了表示图1中的奇偶校验矩阵H的二分图,“CNU”代表检查节点单元且“VNU”代表变量(或者比特)节点单元。通过应用算法到二分图执行的解码过程能够被分为以下三个主处理。
1.检查-到-变量节点似然值更新。
2.变量-到-检查节点似然值更新。
3.基于变量(或者比特)节点似然的解码值确定。
在初始化步骤输入经信道接收的似然值,并随后执行第一处理以更新该检查节点。在完成第一处理之后,执行第二处理以执行变量-到-检查节点似然值更新。在完成第一和第二处理之后,使用经信道接收的似然值和通过第一和第二处理更新的似然值确定解码的值。
在解码过程中,如果在完成第一和第二处理之后的第三处理确定的解码值c’检验方程“Hc’=0”,确定该值c’是正确地接收的解码的值,否则,迭代第一和第二处理多达特定次数直到满足该检验方程。以和奇偶校验矩阵的每一行或列中包括的非零元素的数目(即,1的数目)相同的次数迭代第一和第二处理的似然值更新处理。也就是说,在奇偶校验矩阵H对应于其加权的位置执行第一处理的检查-到-变量更新和第二处理的变量-到-检查更新。因为迭代第一和第二处理,检查和变量节点的似然值的可靠性增加,由此接近获得的代码字的真实值。
近来的LDPC编码方法通常使用奇偶校验矩阵H而不是生成矩阵G编码数据。这样,如上所述,能够考虑奇偶校验矩阵H是使用LDPC码的编码方法的最重要的元素。由于奇偶校验矩阵H具有大约1000×2000或更多的大小,它在编码和解码处理中需要多个计算,实现复杂,且需要大的存储空间。

发明内容
在本发明的一个方面中,在这里提供了一种解码方法,包括从发送侧接收使用奇偶校验矩阵编码的信号;和使用奇偶校验矩阵解码接收的信号,其中,该奇偶校验矩阵包括多个层,且层的非零元素在列方向不重叠,且其中,每个层包括至少一个行。
在本发明的另一方面中,在这里提供了一种解码方法,包括接收使用奇偶校验矩阵编码的信号;和以不重叠的特定数目的层为单元使用奇偶校验矩阵解码接收的信号,该奇偶校验矩阵包括其非零元素在列方向不重叠的多个层,其中,每个层包括至少一个行。
在本发明的又一方面中,在这里提供了一种解码装置,其包括接收器模块,其接收使用奇偶校验矩阵编码的信号;存储器,其存储包括其非零元素在列方向不重叠的多个层的奇偶校验矩阵;和解码模块,其使用从存储器获得的奇偶校验矩阵的信息以不重叠的特定数目的层为单位解码接收的信号,其中,每个层包括至少一个行。


附图中图1示出了表示奇偶校验矩阵H的二分图;图2A示出了本发明的技术特征应用于其的无线通信系统的实例;图2B示出了本发明的技术特征应用于其的编码装置的实例;图3示出了包括多个置换矩阵或者尺寸z×z的零矩阵的基矩阵;图4示出了根据本发明的基置换矩阵的每一行(或者列)怎样移动特定行数(或者列数);图5A-5F示出了根据本发明的实施例的基矩阵;图6示出了用于通过缩短3/4的码率的基矩阵的尺寸形成的1/2的码率的基矩阵;图7示出了根据本发明实施例的另一基矩阵;图8示出了当码率是3/4时的基矩阵的另一实例;图9示出了被划分为层的奇偶校验矩阵的实例;图10A示出了并行处理的概念;图10B示出了并行处理怎样导致存储器争用;图11示出了当码率是1/2时的基矩阵的另一实施例;图12示出了当码率是1/2时的基矩阵的另一实施例;图13A-13D示出了根据本发明能够并行处理的奇偶校验矩阵的实例;图14示出了当码率是2/3时的基矩阵的另一实施例;图15示出了通过置换在本发明中提出的基矩阵的行获得的基矩阵;图16是示出了根据本发明的实施例的LDPC解码器的框图;图17示出了根据本发明实施例的LDPC解码器的存储器结构;
图18示出了根据本发明实施例的LDPC解码器的硬件元件之间的连接的实例;图19A-19H示出了当执行LDPC解码时,从初始化步骤开始的解码过程的一个迭代;图20A-20H示出了当以并行处理方式执行LDPC解码时,从初始化步骤开始的解码过程的一个迭代。
具体实施例方式
现在将参考附图描述根据本发明的使用低密度奇偶校验(LDPC)码的编码方法的优选实施例。图2A是用于解释本发明的优选实施例的图。该图示出了本发明的技术特征应用于其的无线通信系统的实例。以下将要描述的实施例仅是示出了本发明的特征的实例,且对本领域技术人员显而易见本发明的技术特征能够应用于需要编码的所有领域。
在图2A中,发射机10通过无线信道20执行与接收器30的通信。在发射机10中,从数据源10输出的k比特元数据“u”被通过LDPC编码器13LDPC编码为n比特代码字“c”,代码字“c”被通过调制器15调制为无线数据,且通过天线17发送该无线数据。接收器30经无线信道20通过天线31接收该无线数据。随后该接收的数据经受在发射机10执行的反过程。具体地说,通过解调器33解调该接收的数据且随后通过LDPC解码器35将其LDPC解码为源数据“u”。该传输和接收过程仅被描述到解释本发明的特征需要的程度,且对本领域技术人员显而易见除了上述之外的各种处理是数据传输所需的。
LDPC编码器13使用以编码输入的源数据的奇偶校验矩阵“H”具有(n-k)×n的维度。这里,“k”表示输入到LDPC编码器13的元数据的长度(以比特为单位),且“n”表示编码的代码字“c”的长度(以比特为单位)。如图3所示,奇偶校验矩阵“H”包括多个置换矩阵或者维度z×z的零矩阵。就是说,图3中的“Pi,j”表示维度z×z的置换矩阵或零矩阵通过根据特定规则改变至少一个基置换矩阵形成多个置换矩阵。该基置换矩阵优选地是单位矩阵。多个置换矩阵的每一行和列的加权优选地是“1”。换言之,优选地,仅多个置换矩阵的每一排的一个元素和仅其每一列的一个元素是“1”,且其他元素都是“0”。
在优选实施例中,根据特定规则改变至少一个基置换矩阵以形成多个置换矩阵的方法可以包括其中将基置换矩阵的每一行(或者列)移动特定行数(或者列数)的方法。图4示出了该方法的实例。在该实例中,图4(b)的置换矩阵是通过将图4的基置换矩阵的每一行向下移动5行(即,ns=5)(或者通过将每一列向右移动3列)而形成的。在该方法中,能够通过将维度z×z的基置换矩阵移动不同行(或者列)形成z-1个置换矩阵,从而形成包括基置换矩阵的总共z个置换矩阵。给定基置换矩阵,包括基置换矩阵的z个置换矩阵的每一个能够由单一整数表示。例如,每个置换矩阵能够由单一整数以如下方式表示,即,基置换矩阵由“0”表示,由将基置换矩阵的每一行移动一行获得的置换矩阵由“1”表示,通过将基置换矩阵的每一行移动两行获得的置换矩阵由“2”表示,等等。如上所述,能够根据移动的行(或者列)的数目简单地由单一整数表示从基置换矩阵形成的多个置换矩阵的每一个的类型。由单一整数表示多个置换矩阵的类型的方法仅仅是说明性的,且当然,每一个置换矩阵可以由其他方法表示。
该实施例的一个特征是是以如下方式使用奇偶校验矩阵H执行编码或者解码,即,通过移动至少一个基置换矩阵的每一行(或者列)特定行数(或者列数)形成的至少一个基置换矩阵和多个置换矩阵的类型被记录在基矩阵Hb中,并随后,每次在发送或者接收侧需要编码或者解码,使用该至少一个基置换矩阵和基矩阵Hb产生奇偶校验矩阵H,并使用该产生的奇偶校验矩阵执行编码或者解码。在图2B中,根据本发明的使用LDPC码的编码器的优选实施例包括存储模块131,奇偶校验矩阵生成模块132,和编码模块134。存储模块131存储基置换矩阵和基矩阵。奇偶校验矩阵生成模块132使用存储在存储模块131中的基置换矩阵和基矩阵产生奇偶校验矩阵。编码模块134使用由奇偶校验矩阵生成模块132产生的奇偶校验矩阵编码输入的源数据。对本领域技术人员显而易见奇偶校验矩阵生成模块132和编码模块134能够根据它们的功能以软件或者硬件实现。
当基矩阵Hb被认为具有[Hd|Hp]的形式时,也就是说,被划分为两个部分Hd和Hp时,需要块双对角矩阵用于该Hp部分。然而,本发明不局限于该矩阵形式。块双对角矩阵是其中紧挨主对角线以下或者以上的对角线的全部元素是单位矩阵且剩余元素是零矩阵的矩阵。当Hp部分以块双对角矩阵的形式时,Hp部分具有加权为1的列。为避免此,优选地零矩阵的一个或两个被以单位矩阵代替。
通过组合基置换矩阵,每个通过将基置换矩阵的每一行移动特定行数形成的多个置换矩阵,和零矩阵形成基矩阵Hb的Hd部分。根据编码或者解码性能,优选地当通过组合三个类型的矩阵形成基矩阵Hb时考虑以下要求。
首先,基矩阵Hb中多个置换矩阵的任何两个类型的置换矩阵的数目之间的差值应该小于等于第一阈值。换言之,优选地基矩阵Hb中每一的置换矩阵的总数相等或者类似。第一阈值越小,其更为优选。然而,在3到7范围内的第一阈值的值是可容许的。
第二,优选地在奇偶校验矩阵H中不存在4-周期或者6-周期,或者最小化奇偶校验矩阵H中4-周期或者6-周期的数目。具体地,优选地奇偶校验矩阵H没有4-周期。也优选地,该奇偶校验矩阵H具有与预设第二阈值Cmax相比更少的6-周期。4-周期指示奇偶校验矩阵H的两个任意行在二个位置具有“1”。6-周期指示奇偶校验矩阵H的任意三个行中选择的任何一对行在相同的位置具有“1”。
第三,奇偶校验矩阵H的全部列加权和/或全部行加权应该具有规律性。使用z×z单位矩阵作为基置换矩阵使得可以给与奇偶校验矩阵H的全部行加权和/或全部列加权规律性。
第四,必须组合三个类型的矩阵以形成基矩阵Hb,以使得对于全部码率和全部代码字大小实现高编码和解码性能。由于可变码率和可变代码大小被应用于近来的移动通信系统,必须优化基矩阵Hb以在通过组合基置换矩阵,每个通过将基置换矩阵的每一行移动特定行数形成的多个置换矩阵和零矩阵形成基矩阵Hb时,对于全部码率和全部代码字大小实现高性能。
图5A-5F具有如上所述的特性的基矩阵Hb的优选实例。图5A到5F示出的实例是当码率是3/4时的基矩阵,其中“0”表示z×z维的单位矩阵,“-1”表示零矩阵,且“等于或者大于1的整数”表示通过将z×z维的单位矩阵的每一行移动作为整数的相同的行数形成的置换矩阵。
如图6所示,能够通过缩短当码率是3/4时的基矩阵的尺寸来形成当码率是1/2时的基矩阵Hb。
图7具有如上所述的特性的基矩阵Hb的另一实例。图7所示的实例是当码率是2/3时的基矩阵,其中“0”,“-1”,和“等于或者大于1的整数”表示与图5A-5F相同的含义。
基置换矩阵的维度“z”必须随代码字长度的变化而变化。考虑保存存储器资源,不希望对于基置换矩阵的全部维度形成基矩阵,并存储全部基矩阵并用于编码。从而,优选地仅存储用于具有最大维度Zmax的第一基置换矩阵的第一基矩阵,并每次需要编码或者解码时使用第一基矩阵产生具有不同维度z的第二基置换矩阵。
在这种情况下,第一基矩阵可以具有两个或更多类型的置换矩阵作为它的元素。地说,改变基置换矩阵的变化维度z的整个范围被分为两个或更多范围,且设置对于每个范围优化的置换矩阵类型。例如,当变化维度z的整个范围是10到96时,整个范围被分为10到53的范围和54到96的范围,其形成对于每个范围优化的第一基矩阵。不分开地存储用该方式形成的两个第一基矩阵。代之以,存储两个类型的值作为单一第一基矩阵的每一元素,由此增加编码或者解码性能以及保存存储器资源。
图8示出了其中码率是3/4的基矩阵的另一实例。图8所示的基矩阵的特征在于最小化4-周期和6-周期的数目,规律性被给予每一列加权,且通过移动基置换矩阵获得基矩阵的每一元素从而考虑全部码率和全部代码字大小实现高性能。模拟结果是图8的实例表现出和图5A-5F的实例几乎相同的性能,尽管图8的实例的尺寸被减小到图5A-5F的尺寸的1/4。
将描述用于使用从上述基矩阵Hb的奇偶校验矩阵H解码LDPC码的方法。典型地通过迭代在二分图(其是奇偶校验矩阵H的不同表达方式)上的检查和变量节点之间的似然值更新过程,执行该用于解码LDPC码的现有方法以改进似然值的可靠性。使用作为奇偶校验矩阵H的另一表达方式的二分图解码LDPC码的方法基于更新的似然值确定代码字。因此,该似然值更新过程对于解码器的性能具有直接影响。
可靠性更新过程能够被认为是被主要划分为检查-到-变量节点似然值更新处理和二进制-到-检查节点似然值更新处理。当执行检查-到-变量节点似然更新时,使用相同的行中的其他元素的似然值更新奇偶校验矩阵H的给定元素的似然值。此外,当执列变量-到-检查节点似然更新时,使用相同的列中的其他元素的似然值更新奇偶校验矩阵H的给定元素的似然值。
已经更新似然值的次数越大,解码器解码的结果越可靠(即,更积极的效果)。
现在将描述关于解码器施加更积极的效果的用于解码LDPC码的方法。在本发明的实施例中,当使用奇偶校验矩阵H解码LDPC编码的接收信号时,基于其中以层为单位解码接收信号的方法(在下文中,称为“分层解码”)执行解码,其中每个层是一组奇偶校验矩阵H的行。分层解码的特征在于,如果作为被认为被更新的给定元素,已经更新的值存在于相同的列中,当执行变量-到-检查节点似然值更新时,使用该已经更新的值更新给定元素的似然值。
分层解码是其中在编码和解码LDPC码时奇偶校验矩阵H的行被分为多个层并对于每个层迭代解码的方法。具体地说,当奇偶校验矩阵H的行被分为几个组时,每个组能够被认为是层。该层还可以单一行。
图9示出了被划分为层的基矩阵。示出的基矩阵是用于解释分层解码方法的实例。图9所示的数目是指示从基置换矩阵形成的多个置换矩阵的类型的移动数目。
在分层解码中,使用具有全部经过相同级别的更新过程的似然值执行奇偶校验矩阵H的相同行的可靠性更新。具体地说,在分层解码中,如现有的LDPC解码方法中一样执行检查-到-变量节点似然值更新过程。然而,分层解码的特征在于在变量-到-检查节点似然值更新过程中基于层更新似然值(即,用于更新奇偶校验矩阵H的列的似然值的过程),且使用包括在已经更新的层中的似然值更新包括在特定层中的似然值。基于层执行分层解码,且,当已经更新包括在奇偶校验矩阵H中的全部层的似然值时,认为完成LDPC解码的一个迭代。更具体地说,在分层解码方法中,当执行用于更新给定层的似然值的计算和随后执行用于更新下一层的似然值的计算时,给定层的计算结果(即,具有更新的可靠性的结果消息)用于下一层的计算,这允许更可靠的消息(即,更加更新的似然值)用于解码过程(即,似然值更新过程)。重复似然值更新过程保证更加可靠的消息用于解码过程。这增加在检查和变量节点之间的似然值的可靠性,由此改进解码器的性能。图9的矩阵是一般基矩阵。能够根据分层解码方法顺序地解码图9的矩阵的层,例如,按层1->层2->层3->层4->层5->层6->层7->层8的次序。
现在将描述本发明采用的并行处理基本概念和以并行处理方式执行分层解码的先决条件。
图10A示出了并行处理的概念。并行处理是其中由多个处理单元并行处理由单一单元处理的单一任务的方法。并行处理的优点在于与用于并行处理的处理块的数目成正比地降低执行单一处理需要的时间。然而,并行处理导致比如存储器争用和并行处理的数据之间的相关的问题。必须解决这些问题以根据本发明以并行处理方式执行分层解码。
现在将描述由用于分层解码的并行处理所引起的这种问题和的问题的解决方案。
图10B示出了并行处理怎样导致存储器争用。因为存储块由单一处理单元使用,串行处理方法不导致处理读取值或者存储处理结果的问题。然而,在其中多个处理单元同时工作的并行处理方法中,当两个或更多处理单元同时地访问相同的存储器位置时可能发生存储器争用。例如,当用于更新LDPC解码的似然值的单元同时地存取相同的存储器位置时可能发生存储器争用。
为应用并行处理方法到LDPC解码,不仅需要避免到存储块的并行存取的问题,还需要避免同时地处理的数据之间的相关。也就是说,当需要将多个处理块之一输出的值同时输入到另一处理块时,必须根据值之间的相关顺序地处理该值而不是同时地处理它们。
根据本发明的LDPC解码方法的实施例的特征在于,当奇偶校验矩阵H被分为层且以特定次序顺序地处理层时,以并行处理方式解码该层的特定层,而不导致比如存储器争用和并行处理的数据之间的相关的问题。本发明的实施例不向奇偶校验矩阵H提供特定层之间的重叠以允许并行处理特定层的数据处理。具体地说,在根据本发明实施例的奇偶校验矩阵H中,奇偶校验矩阵H中的特定层的非零元素位于在列方向的不同位置。换言之,其中存在加权的奇偶校验矩阵的特定层中的位置在列方向上不同。
如上所述,在解码LDPC码的现有的方法中,更新H矩阵的全部行的似然值且随后更新H矩阵的全部列的似然值。另一方面,在分层解码方法中,以预先地划分的行(层)的组为单位更新H矩阵的行的似然值。该解码方法使用已经更新的先前组的更加可靠的似然值,用于更新第二和随后的组的似然值的计算,由此改进解码性能。尽管具有该优点,由于不得不一次仅处理一层以避免比如存储器争用和在特定层中并行处理的数据之间的相关的问题,分层解码方法可能引起解码时延,这如上所述,由划分现有的奇偶校验矩阵为特定层和并行处理特定层的数据所引起。然而,如果设计奇偶校验矩阵以使得如在本发明的实施例中提出的,特定层中列加权出现的位置不重叠,能够同时地和并行处理多个层。
现在将描述怎样使用在特定层之间没有重叠的奇偶校验矩阵在特定层上以并行处理方式执行分层解码。
图11示出了当码率是1/2时的基矩阵的另一实施例。在本实施例中,使用图11的基矩阵产生的奇偶校验矩阵H的行被分组为层,每一层包括对应于基矩阵的基置换矩阵的尺寸的行。具体地说,在本实施例中,使用图11的基置换矩阵和基矩阵产生的奇偶校验矩阵H中的层包括和基置换矩阵的行的数目相同的行数。从而,包括在图11的基矩阵的单一层中的行的数目等于图11的基矩阵的基置换矩阵的行数。为有效率的并行处理提出图11的基矩阵。当在分层解码中基矩阵的行次序被调节为“1→7→2→8→3→9→4→10→5→11→6→12”时,基矩阵的任何两个相邻行的非零元素(例如,第一和第七行)在列方向不重叠。换言之,基矩阵中的任何两个相邻行(例如,第一和第七行)的具有大于“0”的移动数目的元素在列方向不重叠。例如,从图11可以看出,第八行的具有大于“0”的移动数目的元素在任何列中不与第二或者第三排的重叠。图11的基矩阵的单一排对应于使用图11的基矩阵产生的奇偶校验矩阵的单一层,且在产生的奇偶校验矩阵H的层中出现加权的位置在列方向不重叠。
图12示出了当码率是1/2时的基矩阵的另一实施例。为更加有效率的并行处理提出图12的基矩阵。设计图12的基矩阵以使得在一对行(1,7),(2,8),(3,9),(4,10),(5,11),和(6,12)的任何一个的两行中具有大于“0”的移动数目的元素在任何列中不重叠。图11和12的实施例的特点在于在用于分层解码的实现过程中实现有效率的并行处理。
现在描述根据本发明的另一实施例的怎样调整基矩阵的层的顺序以使得在特定层之间没有重叠,和随后以并行处理方式使用奇偶校验矩阵执行分层解码,其中使用调整后的基矩阵产生奇偶校验矩阵。
图13A示出了根据本发明的实施例的用于分层解码的基矩阵的实施例。在基矩阵中,“-1”表示零矩阵,且“#”表示通过移动基置换矩阵的每一行或列作为大于零的整数的相同的行数或者列数形成的置换矩阵。在一种实施例中,使用图13A的基矩阵产生的奇偶校验矩阵H的行被分组为层,每一层包括对应于基矩阵的基置换矩阵的尺寸的行。具体地说,包括在每一层中的行的数目等于图13A的基矩阵的基置换矩阵的行的数目。从而,使用基矩阵产生的奇偶校验矩阵的单一层对应于基矩阵的单一行。在下面,描述怎样通过调整基矩阵的行次序设计新的奇偶校验矩阵,以使得奇偶校验矩阵的相邻层中出现加权的位置不重叠。因为在基矩阵中存在双对角线,能够通过改变基矩阵的行的顺序设计根据本发明实施例的奇偶校验矩阵,而不影响LDPC解码的性能。图13B示出了通过改变图13A的基矩阵的行顺序,以使得基矩阵的特定行的具有大于“0”的移动数目的元素在列方向不重叠,即,以使得特定行的列加权等于或者小于“1”,而获得的基矩阵的实例。在图13B的实例中,层0和层3中出现列加权的位置在任何列中不重叠。图13C示出了图13B的被划分为层单元以允许并行处理的基矩阵。当使用基矩阵产生的奇偶校验矩阵H执行LDPC解码时,能够同时处理两层(例如,层0和层3),如图13B或者13C所示。具体地说,如图13D所示,能够和层3,1,7和5并行处理(即,同时地)层0,6,4和2。这样,根据本发明实施例的使用奇偶校验矩阵执行LDPC解码具有和当通过两个处理单元一次解码两个LDPC码时相同的优点,以及还降低解码时间多达50%。
图14示出了当码率是2/3时的基矩阵的另一实施例。在基矩阵中,“-1”表示零矩阵,且“整数”表示通过移动基置换矩阵的每一行或列作为等于或者大于“0”的整数的相同的行数或者列数形成的置换矩阵。图14的基矩阵中的“X”表示在0到95的范围内的整数,其优选地是86,89,或者95。最为优选地,该整数“X”是95。图14的基矩阵具有并行处理特征且提议其实现高性能。并行处理特征指示可以应用其中根据本发明以并行处理方式执行分层解码的解码方法。在一种实施例中,使用图13A的基矩阵产生的奇偶校验矩阵H的行被分组为层,每一层包括对应于基矩阵的基置换矩阵的尺寸的行。具体地说,包括在图14的基矩阵的每一层中的行的数目等于图14的基矩阵的基置换矩阵的行的数目。当通过索引″1″,″2″,″3″,″4″,″5″,″6″,″7″,和″8″识别基矩阵的行时,能够通过置换行形成基矩阵以使得基矩阵的任何两个相邻行的具有大于“0”的移动数目的元素不重叠。例如,从图15可以看出,第一行的具有大于“0”的移动数目的元素在任何列中不与第四排的重叠。图14的基矩阵的单一排对应于使用图14的基矩阵产生的奇偶校验矩阵的单一层,且在产生的奇偶校验矩阵H的层中出现加权的位置在列方向不重叠。图15示出了通过置换图14的基矩阵的行以满足上述要求而创建的基矩阵的多个实例之一。图15的基矩阵是其中行的索引的顺序转换为″1-4-7-2-5-8-3-6″的实例。在图15中,另外示出了第一行(即,″1-4-7-2-5-8-3-6-(1)″以使得便于比较基矩阵的第一行和最后的行,其索引排序是″1-4-7-2-5-8-3-6″。
通过置换图15所示的基矩阵的行形成的全部基矩阵定义和图14的基矩阵定义的相同的LDPC码。这样,即使使用通过置换行形成的基矩阵,可以以当使用图8的基矩阵时相同的性能执行解码和编码。在上述描述中,高性能指示,例如,更好的帧差错比率(FER)。具有相同的性能的解码指示表现出相同的解码性能的解码方法,且具有相同的性能的编码指示生成同样的代码字。
现在描述使用在本发明中提出的各种基矩阵执行LDPC解码的LDPC解码器。图16是示出了根据本发明的LDPC解码器的实施例的框图。LDPC解码器1000包括检查节点更新单元(CNU)块1100,控制块1200,变量节点更新单元(VNU)块1300,和存储块1400。CNU块1100执行检查节点的似然值的更新(即,执行检查节点更新)且包括至少一个CNU 1110。CNU 1110是执行检查节点更新的处理单元。控制块1200包括控制单元1210,CNU路由网络1220,VNU路由网络1230,奇偶校验矩阵索引存储单元1240,和硬判决单元1250。控制单元1210控制解码器1000的每一单元的工作。CNU路由网络1220根据奇偶校验矩阵的结构控制CNU块1100和存储块1400。VNU路由网络1230控制VNU块1100和存储块1400。奇偶校验矩阵索引存储单元1240存储关于奇偶校验矩阵H的结构的信息。硬判决单元1250使用更新的似然值确定解码的值并该确定的解码的值。变量节点更新单元(VNU)块1300执行变量节点的似然值的更新(即,执行变量节点更新)且包括至少一个VNU1310。VNU1310是执行变量节点更新的处理单元。由控制块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在特定节点存储似然值更新的结果“Rmj”,且Q-存储器1430在特定变量节点存储似然值更新的结果“L(qmj)”。控制单元1210控制单元的工作顺序和其工作时间。奇偶校验矩阵索引存储单元1240存储关于加权的位置等的信息。奇偶校验矩阵的CNU路由网络1220从奇偶校验矩阵索引存储单元1240获得关于奇偶校验矩阵的信息,且恰当地连接CNU 1110到存储块1400的存储器。VNU路由网络1230从奇偶校验矩阵索引存储单元1240获得关于奇偶校验矩阵的信息,且恰当地连接VNU1310到存储块1400的存储器。硬判决单元1250是使用Q-存储器1430确定解码的值c’,且检查该确定的解码值c’的单元。如果解码的值c’满足检验方程“Hc’=0”,硬判决单元1250输出解码的值c’作为真实值,且如果该解码的值c’不满足该检验方程,迭代该解码直到特定的最大次数。
图16的解码器1000能够使用存储在奇偶校验矩阵索引存储单元1240或者单独的存储器(未示出)中的奇偶校验矩阵,或者使用采用基矩阵和基置换矩阵产生的奇偶校验矩阵解码接收信号。在使用基矩阵和基置换矩阵产生奇偶校验矩阵的情况下,解码器1000优选地包括存储基矩阵和基置换矩阵的存储单元(未示出),和使用基矩阵和基置换矩阵产生奇偶校验矩阵的奇偶校验矩阵发生器(未示出)。图16的解码器1000能够通过调整奇偶校验矩阵的行的顺序(例如,层的顺序)产生新的奇偶校验矩阵。在这种情况下,解码器1000优选地包括调整奇偶校验矩阵的行的顺序的奇偶校验矩阵调节器(未示出)。
将描述LDPC解码器1000怎样工作。LDPC解码器1000能够使用作为LDPC解码算法的日志置信繁殖(BP)执行解码。解码器1000根据初始化步骤,检查节点更新步骤,变量节点更新步骤,和硬判决步骤工作。初始化步骤包括使用关于存储在奇偶校验矩阵索引存储单元1240中的奇偶校验矩阵的加权的信息,在接收LLR存储器1420中存储已经从发送侧发送的接收信号的似然值,并随后将存储在接收LLR存储器1420中的似然值在特定位置存储在Q-存储器1430中的步骤。检查节点更新步骤包括使用存储在Q-存储器1430中的似然值执行检查节点更新(即,检查-到-变量节点更新)的步骤和在R-存储器1410中存储检查节点更新的结果的步骤。变量节点更新步骤包括使用存储在Q-存储器1430中的似然值执行变量节点更新(即,变量-到-变量节点更新)的步骤和在R-存储器1430中存储变量节点更新的结果的步骤。硬判决步骤包括步骤使用存储在Q-存储器1430中的似然值临时地确定解码的值c’,检查该确定的解码值c’,如果解码的值c’是真实值则输出该解码的值c’,和如果解码值c’不是真实值则迭代检查节点更新步骤和节点更新步骤直到特定最大次数。
H=11101000011101001011001011010001]]>如果用于解码器1000的奇偶校验矩阵H等于公式3的,R-存储器1410和Q-存储器1430存储奇偶校验矩阵的非零元素(即,具有“1”的元素)的位置值。这样,R-存储器1410和Q-存储器1430如下存储位置值。
###-#----###-#--#-##--#-##-#---#]]>因为R-存储器1410和Q-存储器1430只须存储对应于非零元素的位置的值,它们能够以如图17所示的结构存储用于似然值更新的处理的结果。这样,LDPC解码所需的存储容量与H矩阵的加权成正比。图17所示的奇偶校验矩阵的加权的位置信息被存储在奇偶校验矩阵索引存储单元1240中。如上所述,解码器1000使用采用基矩阵和基置换矩阵产生的奇偶校验矩阵H执行解码处理,使用存储在特定存储器中的奇偶校验矩阵执行解码处理,或者使用通过任何其他方法产生的奇偶校验矩阵执行解码处理。在下面描述中的“奇偶校验矩阵”指示实际的奇偶校验矩阵而不是基矩阵。没有限制产生奇偶校验矩阵的方法,且可以使用基矩阵和基置换矩阵产生奇偶校验矩阵,或者可以通过获得存储在特定存储器或者外部设备中的奇偶校验矩阵而产生。
图18示出了在CNU,VNU,和使用公式3的H矩阵执行解码的解码器的存储器之间的连接实例。在图18的实例中,解码器包括4个CNU和8个VNU。图19A-19H示出了解码过程的一个迭代,在使用图18所示的解码器执行解码的情况中,从其中输入接收信号的似然值的初始化步骤开始。图19A-19H中R-存储器1410和Q-存储器1430中所示的坐标表示当存储器具有如图17所示的格式时的存储器地址。
图19A示出了LDPC解码中的初始化步骤。如图所示的元素表示H矩阵中的非零元素,且将从发送侧接收到似然值输入到对应于非零元素的存储器地址。
图19B-19E示出了检查-到-变量节点似然值更新。在特定位置的检查-到-变量节点更新是使用在特定行中的其他元素更新其在特定行中的元素的处理。图19F-19H示出了变量-到-检查节点似然值更新。在特定位置的似然值更新是使用在特定列中的其他元素更新其在特定列中的元素的处理。
完成直到图19C的处理的过程之后,参考Q-存储器1430临时地确定代码字且确定临时地确定的代码字c’是否满足检验方程“Hc’=0”。如果临时地确定的代码字c’不满足该检验方程,迭代图19B-19H的过程。当已经迭代该过程预定次数时,或者当获得满足该检验方程的代码字时终止该过程。
现在描述LDPC解码器1000怎样工作从而以并行处理方式执行分层解码。
根据本发明的实施例,LDPC解码器1000的CNU 1110和VNU1310通过如公式4表示的处理更新似然值。公式4是用于执行解码的一个迭代的公式。
对于行的子集k中的所有mL(qmj)=L(qj)-RmjAmjΣn∈N(m)n≠jψ(L(qmn))]]>smj=Πn∈N(m)n≠jSign(L(qmn))]]>Rmj=-smjψ(Amj)L(qj)=L(qmj)+Rmj下面是公式4中使用的变量的定义。
ψ(x)=log(|tanh(x2)|)]]>L(qmj)从第m变量节点到第j检查节点连接的对数似然比(LLR)值。
L(qj)第j变量节点的后验的LLR值。
Rmj从第j检查节点到第m变量节点连接的LLR值。
Amj用于从第j检查节点到第m变量节点连接的LLR值的计算的空变量。
Smj用于从第j检查节点到第m变量节点连接的LLR价值的符号的计算的空变量。
m奇偶校验矩阵的检查节点索引。
j奇偶校验矩阵的变量节点索引。
公式5是接收信号的LLR的实例,且公式6是根据本发明的实施例的解码器1000使用的奇偶校验矩阵H的实例。
LLR=[10.54 8.85 4.43 3.76 9.0 11.37 6.86 8.34 7.75 4.43 8.99 8.025.21 10.45 5.3 7.03 6.54 9.67 9.08 7.32 8.23 3.93 6.67 10.31][公式6] 公式6的矩阵是根据本发明实施例的解码器1000使用的奇偶校验矩阵H的实例。奇偶校验矩阵H的单一行表示单一层。每一层不与相邻层相重叠。优选地基于奇偶校验矩阵的结构确定解码器1000的CNU1110和VNU 1310各自的数目。并行处理不重叠的层。这样,CNU 1110的数目更加优选地等于包括在并行处理的每一层中的行的数目,且VNU 1310的数目更加优选地等于奇偶校验矩阵的列的数目。因此,使用公式6的解码器1000的CNU 1110的数目优选地是2,且VNU 1310的数目优选地是24。
图20A-20I示出了当根据本发明的LDPC解码方法执行解码时的解码过程的一个迭代在图20A-20I中,″Q″和″R″表示其中存储公式4的qmj且Rmj值的存储器的状态,且″###″表示还没有被设置为特定值的任意值。图20A-20I的Q-存储器1430和R-存储器1410能够仅存储对应于非零元素的位置的处理的值为图17所示的格式。
图20A示出了根据本发明的实施例的LDPC解码的初始化步骤。通过信道接收的似然值(例如,LLR值)被存储在接收LLR存储器1420中,且该接收的似然值被根据存储在奇偶校验矩阵索引存储单元1240中的奇偶校验矩阵H的加权的位置信息,而输入到Q-存储器1430。图20A示出了通过初始化步骤输入到Q存储器的似然值。
图20B示出了用于H矩阵的层0和层3的检查-到-变量节点似然值更新过程。CNU 1110对于H矩阵的层0和层3的检查-到-变量节点似然值更新执行处理。如上所述,CNU 1110的数目是2,且两个CNU1110对于层0和3执行检查节点更新过程。处理结果被存储在R-存储器1410中。
图20C示出了用于H矩阵的层0和层3的变量-到-检查节点似然值更新过程。在变量-到-检查节点似然值更新过程中,使用在相同的迭代过程中已经被更新的层的似然值更新当前层的似然值,这不同于现有的LDPC解码过程。因为层0和层3不重叠,它们没有比如由于并行处理的存储器争用或者并行处理的数据之间的相关的问题。这样,能够并行处理层0的变量-到-检查节点似然值更新处理和层3的变量-到-检查节点似然值更新处理。如上所述,解码器使用24个VNU 1310执行层0和层3的处理。图20C示出了层0和层3的变量-到-检查节点似然值更新的结果。此外,图20C示出了输入层6和层1的检查-到-变量节点似然值更新的似然值的设置步骤的结果。
图20D示出了H矩阵的层6和层1的检查-到-变量节点似然值更新过程,图20E示出了H矩阵的层6和层1的变量-到-检查节点似然值更新过程,图20F示出了H矩阵的层4和层7的检查-到-变量节点似然值更新过程,图20G示出了H矩阵的层4和层7的变量-到-检查节点似然值更新过程,图20H示出了H矩阵的层2和层5的检查-到-变量节点似然值更新过程,且图20I示出了H矩阵的层2和层5的变量-到-检查节点似然值更新过程。存储在Q-存储器1430中的值是通过一个迭代获得的处理的值。完成直到图20I的处理的过程之后,硬判决单元1250参考Q-存储器1430临时地确定代码字且确定临时地确定的代码字c’是否满足检验方程“Hc’=0”。如果临时地确定的代码字c’不满足该检验方程,解码器迭代图20B-20I的过程。如果已经迭代该过程最大次数,或者如果已经获得满足检验方程的代码字,终止该过程并输出代码字c’。
图20A-20I所示的解码方法和如图19A-19I所示的解码方法具有以下差别。在图19A-19I的解码方法中,根据奇偶校验矩阵H的尺寸,使用CNU和VNU的最大数执行一个检查节点更新过程和一个变量节点更新过程。另一方面,在图20A-20I的解码方法中,提供和没有数据相关性的层的数目(即,在奇偶校验矩阵中不重叠的层的数目)相同数目的CNU,并根据没有数据相关性的层的数目以并行处理方式执行检查节点更新过程。
在图19A-19I所示的解码方法中,使用接收信号的似然值初始化Q-存储器1430的全部区域。另一方面,在图20A-20I所示的解码方法中,初始化能够并行处理的层且层的结果值被用作下一层的初始值。
对本领域技术人员显而易见,本发明能够具体表现为其它特定形式而不脱离本发明的精神和基本特征。这样,在各个方面考虑上述实施例为说明性的而并非限制性的。本发明的保护范围应该由该附加的如权利要求的合理的解释确定,且所有在本发明的等效保护范围内的改变被包括在本发明的保护范围中。
工业实用性本发明能够被应用于需要编码和解码的通信系统。本发明还可以被应用于需要编码和解码的各种其他装置。
本发明提供使用LDPC码的编码和解码方法,其能够改进发送或者接收侧的数据编码或者解码性能。
权利要求
1.一种使用信道代码的解码方法,该方法包括从发送侧接收使用奇偶校验矩阵编码的信号;和使用奇偶校验矩阵解码接收的信号,其中,该奇偶校验矩阵包括多个层,且层的非零元素在列方向不重叠,且其中,每个层包括至少一个行。
2.如权利要求1的方法,其中,该奇偶校验矩阵是通过扩展其中相邻层不重叠的基矩阵产生的。
3.如权利要求1的方法,其中,该奇偶校验矩阵的相邻层的非零元素在列方向不重叠。
4.如权利要求1的方法.,其中,存在层的加权的奇偶校验矩阵的层中的位置在列方向上不同。
5.如权利要求1的方法,其中,调节奇偶校验矩阵的行的顺序以转换该奇偶校验矩阵为产生相同的代码字的不同奇偶校验矩阵。
6.一种使用信道代码的解码方法,该方法包括接收使用奇偶校验矩阵编码的信号;和以不重叠的特定数目的层为单位使用奇偶校验矩阵解码接收的信号,该奇偶校验矩阵包括其非零元素在列方向不重叠的多个层,其中,每个层包括至少一个行。
7.如权利要求6的方法,其中,该奇偶校验矩阵是通过扩展其中相邻层不重叠的基矩阵产生的。
8.如权利要求6的方法,进一步包括检查解码的代码字是否是正确的。
9.如权利要求6的方法,其中,该解码接收信号的步骤包括输入对应于接收信号的数据到特定层和更新输入到特定层的数据。
10.如权利要求9的方法,其中,该更新输入到特定层的数据的步骤包括对于特定层执行检查-到-变量节点数据更新处理;和对于特定层执行变量-到-检查节点数据更新处理。
11.如权利要求9的方法,其中,该输入数据是已经通过数据更新处理更新的数据。
12.如权利要求6的方法,其中,该奇偶校验矩阵的行的顺序被调节以转换该奇偶校验矩阵为产生相同的代码字的不同奇偶校验矩阵。
13.如权利要求6的方法,其中,该奇偶校验矩阵的行的顺序被调节以转换该奇偶校验矩阵为产生相同的代码字的不同奇偶校验矩阵。
14.一种使用信道代码的解码装置,该装置包括接收器模块,其接收使用奇偶校验矩阵编码的信号;存储器,其存储包括其非零元素在列方向不重叠的多个层的奇偶校验矩阵的信息;和解码模块,其使用从存储器获得的奇偶校验矩阵的信息以不重叠的特定数目的层为单位解码接收的信号,其中,每个层包括至少一个行。
15.如权利要求14的装置,其中,该奇偶校验矩阵是通过扩展其中相邻层不重叠的基矩阵产生的。
16.如权利要求14的装置,其中,该解码模块包括检查解码的代码字是否正确的检查模块。
17.如权利要求14的装置,其中,该解码模块包括至少一个检查节点更新单元,其更新输入到特定层的数据而且执行对应于接收信号的数据的检查-到-变量节点更新;和至少一个变量节点更新单元,其执行对应于已经被输入到特定层的接收信号的数据的变量-到-检查节点更新。
18.如权利要求17的装置,其中,该输入数据是已经通过检查节点更新单元或者变量节点更新单元更新的数据。
19.如权利要求17的装置,其中,基于包括在不重叠的层中的行的数目确定检查节点更新单元的数目。
20.如权利要求14的装置,其中,该奇偶校验矩阵的相邻层的非零元素在列方向不重叠。
21.如权利要求14的装置,其中,该奇偶校验矩阵的行的顺序被调节以转换该奇偶校验矩阵为产生相同的代码字的不同奇偶校验矩阵。
全文摘要
公开了一种编码和解码方法和装置。该方法和装置改进了编码和解码性能而不使用大存储器容量以及还降低用于实现的硬件的复杂性。根据该方法,从发送侧接收编码信号,并使用奇偶校验矩阵解码接收信号。奇偶校验矩阵包括其中特定数目的层的非零元素在列方向不重叠的层。
文档编号H03M13/05GK101080873SQ200580043118
公开日2007年11月28日 申请日期2005年12月22日 优先权日2004年12月22日
发明者赵基亨, 吴旼锡, 丁奎赫, 李荣燮 申请人:Lg电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1