CN1781254A - 使用多级置换来执行低密度奇偶校验码操作的方法和设备 - Google Patents

使用多级置换来执行低密度奇偶校验码操作的方法和设备 Download PDF

Info

Publication number
CN1781254A
CN1781254A CNA2004800112035A CN200480011203A CN1781254A CN 1781254 A CN1781254 A CN 1781254A CN A2004800112035 A CNA2004800112035 A CN A2004800112035A CN 200480011203 A CN200480011203 A CN 200480011203A CN 1781254 A CN1781254 A CN 1781254A
Authority
CN
China
Prior art keywords
displacer
ldpc
vector
vectors
sign indicating
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
Application number
CNA2004800112035A
Other languages
English (en)
Other versions
CN1781254B (zh
Inventor
汤姆·理查森
Original Assignee
Flarion Technologies Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Flarion Technologies Inc filed Critical Flarion Technologies Inc
Publication of CN1781254A publication Critical patent/CN1781254A/zh
Application granted granted Critical
Publication of CN1781254B publication Critical patent/CN1781254B/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/11Error 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/27Coding, 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 using interleaving techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/63Joint error correction and other techniques
    • H03M13/635Error control coding in combination with rate matching
    • H03M13/6356Error control coding in combination with rate matching by repetition or insertion of dummy data, i.e. rate reduction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/63Joint error correction and other techniques
    • H03M13/635Error control coding in combination with rate matching
    • H03M13/6362Error control coding in combination with rate matching by puncturing

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

本发明的方法和设备可用于实施一种通信系统,在这个系统中可以使用不同的并行等级来实施使用相同LDPC码的不同设备。通过使用新型的LDPC码分类,可以使并行性出现这种差别。并且通过在本发明的不同实施例中使用因子分解置换器(706),可以在使用这里论述的LDPC码分类的时候相对容易地实施那些在编码器和解码器中具有不同并行等级的LDPC设备。因子分解置换器(706)可以作为可控多级交换设备来实现,其中所述设备可以对在存储器(702)与Z元素矢量处理器(710)之间传递的Z元素矢量不执行连续的重新排序操作,也可以执行一个连续的重新排序操作,还可以执行多个连续的重新排序操作,并且针对单个矢量所进行的交换受控于(718)所实施的码的图形结构(720)。

Description

使用多级置换来执行低密度 奇偶校验码操作的方法和设备
相关申请
本申请要求2003年2月26日提交的美国临时专利申请60/450,245以及2003年3月3日提交的美国临时专利申请60/451,555的优先权,所述申请在此引入作为参考。
背景技术
几乎任何形式的电子通信和存储系统都会用到纠错码。纠错码是通过在数据流中引入冗余量来对这些系统中的信息传输所固有的不可靠性进行补偿的。纠错处理的数学基础是由香农建立的。香农研究出了信道的数学概念,在该概念中,通信系统中的信号失真是作为随机过程模拟的。香农取得的最主要的成果是噪声信道定理,该定理定义了信道容量,该容量是一个对可以通过信道可靠传递信息的最大速率做出限定的参量。这个容量即为通常所说的香农容量。要想以趋近于该容量的速率进行可靠传输,那么就必需用到纠错码。因此,纠错码被设计成在尽可能趋近该容量的同时实现足够的可靠性。实施纠错码的复杂性则是在纠错码的实际应用中出现的附加因素。在纠错编码系统方面取得的最新进展源于Turbo码的发明以及后续关于低密度奇偶校验(LDPC)码的重新发现和发展,这些进展提供了可以非常趋近香农容量并且复杂性适宜的编码系统。
LDPC码可以很好地用二分图来加以表示,这种二分图通常也称为Tanner图,参见图1中的图示100,其中有一组节点与码字比特相对应,这组节点即为变量节点102,而另一组节点则与用于规定编码的奇偶校验约束集合相对应,这组节点是约束节点106,有时也将其称为校验节点。图中的边线104将变量节点与约束节点相连。如果变量节点和约束节点是通过图中边线相连的,则判定所述变量节点与约束节点相邻。通常,假设一对节点最多只通过一条边线相连。此外,LDPC码也可以用奇偶校验矩阵等价表示。在图2中给出了这样一个实例,其中当且仅当Hx=0时,所指示的矢量x 204才是码字,H202是奇偶校验矩阵。
每一个变量节点都与码字的一个比特相关联。在某些情况下,某些比特有可能经过凿孔或是已知的。在特定的编码结构中,经过凿孔的比特有可能会合乎需要,并且在提升(lifting)中(参见下文),经过凿孔的比特以及已知比特都可用于获取分组(block)长度,其中所述分组长度并不是提升的倍数。经过凿孔的比特以及已知比特是排除在所传送的码字之外的。
对每一个约束节点来说,当且仅当与约束节点相邻的比特(借助的是其与变量节点的关联性)总和以2为模的结果是0、也就是包含了偶数个比特时,与变量节点序列逐一关联的比特序列才是编码中的码字。
用于解码LDPC码字的解码器和解码算法根据输入消息而在节点上执行计算,以便在图形内部沿着边线交换消息以及更新消息,由此执行操作。这种算法通常称为消息传递算法。图形中的每一个变量节点一开始都具有一个名为“接收值”的软比特,举例来说,这个软比特表示的是例如通过观察通信信道所确定的相关比特值估计。非常理想的是,关于单独比特的估计在统计上是独立的。但在实践中则有可能并且通常会违反这一理想情况。
对诸如变量节点或约束节点这类节点而言,与该节点相连的边线数目也称为节点的度。对常规图形或编码来说,所有变量节点都具有相同的度,假设为j,并且所有约束节点同样具有相同的度,假设为k。在这种情况下,我们假定这个编码是一个(j,k)规则节点(regularnode)。并且这些节点即为Gallager(1961)最初考虑的节点。与“规则”节点相反,对不规则的节点来说,其约束节点和/或变量节点则具有不同的度。例如,某些变量节点可以具有大小为4的度,另外一些节点具有大小为3的度,此外还有一些节点具有大小为2的度。
虽然表示和/或实施不规则节点有可能更为复杂,但是正如已经显示的那样,在与规则的LDPC码进行比较的时候,不规则的LDPC码可以提供更优秀的纠错/检错性能。
虽然作为编码或解码操作的一部分并使用多个并行处理部件处理数据集合来实施LDPC编码器和解码器的操作已被证实是非常有用和可靠的,但在已知的实施方式中,解码器中使用的并行处理部件的数目通常与编码器中使用的并行处理部件的数目相同。因此,在具有多个设备、例如基站和/或卫星这类与多个移动设备进行交互的集中式设备的系统中,系统中各个设备的LDPC编码器和解码器通常具有相同的并行等级。
在集中式设备服务于多个移动设备的情况下,假设在编码器/解码器内部采用实时操作和相同的并行等级,那么集中式设备必须以高出单个设备数倍的速率来进行操作,以保持与所服务的不同移动设备相关联的编码/解码。
从实施角度来看,如果系统中的不同LDPC编码器/解码器具有不同的并行等级,那么将是非常有益的。这种方法允许特定设备中的编码器和/或解码器的并行等级与设备所传送/接收的数据量相匹配。通过将这个特定设备中的并行量减至最小,可以将实施成本降至最低。
与使用了只包含少量节点并用差错弹性(error resiliency)表示的较小的码相比,使用包含很多节点的大型码可以提供很多优点,其中所述大型码与大型图形结构对应。为了使用较小的图形来实现较大的图形结构,可以为较小图形结构的拷贝施加不同的置换,并且这些拷贝可以连接在一起,以便产生较大的图形结构。在编码/解码操作中,这种置换操作可以由交换设备实施,在这里将所述交换设备称为置换器,当元素在存储器与并行执行LDPC操作的矢量处理单元之间传递时,该置换器将会对这些元素施加置换操作,其中举例来说,对编码操作而言,所述元素是将要编码的比特,对解码操作而言,所述元素则是消息。
然而不幸的是,很多LDPC码并不适用于那些允许在编码器和解码器中提供多个不同的并行等级的实施方式。此外,虽然与循环移位相类似的单独简单置换操作适合实施适于与很多LDPC码结合使用的置换器,其中所述LDPC码可以通过使用从较小图形中产生的大型图形来表示,但是这种单独置换操作并不适合实施那些通过使用不同并行等级而被实现的LDPC码。
依据以上论述可以了解,目前需要的是用于实施LDPC编码器/解码器的码、方法和设备,其中所述码、方法和设备允许在使用了相同的码的不同设备中具有不同的并行等级,其中这些设备使用了LDPC图形结构之类的相同的码来执行LDPC编码和/或LDPC解码操作。此外还需要一种通过使用全新的改进型置换器来实施这种编码器/解码器的实用方法,其中所述置换器不但允许设备使用从较小图形中导出的相对较大的码,而且还允许在不同的设备中实施不同的并行等级。
发明内容
本发明的方法可用于实现这样一个通信系统,在该系统中,使用相同的LDPC码的不同设备可以实现不同的并行等级。为了获取高等级的差错弹性,通常使用的是相对较长的码字。例如,对使用本发明的LDPC码执行编码操作所产生的单个码字而言,该码字可以包括总数为T的比特,其中T可以是数百或是数千比特。应该理解的是,为了对本发明进行说明,可以将所要编码的比特和/或与接收码字相对应的比特排列在LZ元素矢量中,其中Z是大于1的正整数。每一个Z元素矢量都包括Z个元素,并且可以从存储器中读出所述矢量。然后,从存储器中读出的矢量是通过并行使用Z个处理单元而被处理的。对现有系统来说,该系统在使用特定LDPC码(图形结构)来对码字进行编码的编码器以及实施相同LDPC码的解码器中并行使用了相同数量的Z个处理部件,与之相反,本发明允许在使用相同的码的编码器和解码器中具有不同的并行等级。在某些实施例中,对使用了特定的码的设备中的编码器而言,与实施相同的码的解码器相比,该编码器是用不同数量的并行处理单元实现的。编码通常不像解码那样需要大量处理器,因此在某些实施例中,在单个设备内部,解码器中并行使用的处理部件的数量不同于编码器中使用的处理部件数量,其中编码器通常具有较少的并行工作的处理部件。
在系统内部,不同设备有可能要实时编码不同的数据量。设想一个服务于四个无线终端的基站。假设每一个无线终端发射并接收相同的数据量,那么与任何一个单独无线终端的数据相比,基站必须对4倍之多的数据进行编码和解码。在某些实施例中,与基站或卫星所服务的单个无线终端相比,服务于多个节点的基站或卫星是用更多并行处理单元实现的。在依照本发明所实施的某些系统中,在系统内部使用了相同编码的不同无线终端是结合不同数量的并行处理部件实现的,由此可以反映每一个设备所要编码和解码的不同数据量。通过使用下文中论述的LDPC码的新颖分类,可以在并行性中实现这种区别。在使用这里论述的LDPC码分类中的码时,如果在本发明的不同实施例中使用因子分解置换器,那么将会更易于实现那些在编码器和解码器中具有不同并行等级的LDPC设备。
附图说明
图1是显示作为二分(Tanner)图的LDPC码的图示。
图2是显示使用了奇偶校验矩阵的LDPC码的图示。
图3是描述Tanner图上的示范性提升的图示。
图4是与图3的Tanner图示相对应的奇偶校验矩阵。
图5显示的是图2矩阵的示范性提升形式,其中Z提升值=3并且所使用的置换是循环置换。
图6是使用了依照本发明的方法并且依照本发明实施的示范性通信系统的图示。
图7是可以用于执行依照本发明的LDPC操作的示范性系统的图示。
图8是可以用于执行依照本发明的LDPC操作的另一个示范性系统的图示。
图9~11是在图7所示系统之类的系统的某个部分使用本发明的方法的实例,其中所述实例可用于描述本发明的不同示范性方法的步骤,并且这些方法使用了因子分解置换器(factorable permuter)来执行LDPC操作。
图12描述的是包含了XOR电路及累加器之类的存储设备并且可以在依照本发明的并行式LDPC处理器模块中使用的处理部件。
具体实施方式
图6描述的是示范性通信系统600,该系统包括基站602、第一无线终端632以及第二无线终端662。第一和第二无线终端632、622经由无线链路630、660与基站602进行通信。每一个设备602、632、662都包含了依照本发明实施的编码器604、634、664以及解码器606、636、666。每一个设备的编码器和解码器都耦合到一个无线收发信机(发射机/接收机)608、638、668,设备彼此则经由所述无线收发信机来进行通信。每一个设备602、632、662还包括CPU 613、643、673以及一组保存在存储器615、645、675中的控制程序。当CPU 613、643、673执行这些控制程序时,该控制程序会对设备进行控制,从而执行不同的通信操作。在某些实施例中,程序615、645、675包含了编码器程序和/或解码器程序,这些程序使用了依照本发明的一个或多个编码来执行包含了可分解因子的置换操作的编码和/或解码操作。在图6所示的特定实例中,不同的编码和解码操作是在硬件中执行的。根据本发明的新颖的LPDC编码和解码方法,具有相同的常规结构的设备同样可用于编码或解码操作。可以了解的是,对基站编码器604和解码器606来说,这些设备的基本结构包含了因子分解置换器612、622,其中该置换器用于耦合到存储器610、620,该存储器则用于保存那些由并行式LDPC处理模块614、624处理的元素矢量,其中所述并行式LDPC处理模块包含了多个处理部件(616,618)(624,628),这些部件则以并行方式执行奇偶校验操作。并行式LDPC处理模块614为每一个可以从存储器610中读出的矢量包了含一个处理部件。相应地,在处理Z元素矢量(具有Z个元素的矢量)时,模块614将会包含Z个处理部件616、618。对编码器604来说,Z=Me。
在编码器模块614中,处理部件数量Me可以不同于解码器处理模块624中的处理部件数量Md。换句话说,即使编码器和解码器使用相同的码,所述编码器和解码器也还是可以使用具有不同Z元素数量的矢量,并且由此可以具有不同的并行等级。编码器604与解码器606的不同之处在于:编码器读取和处理的矢量通常包含的是单独比特元素,例如即将编码的信息值。对解码器来说,保存在存储器中并且传递到处理模块624的矢量元素通常包含的是那些各自包括多个比特的元素,其中举例来说,这些元素可以是与正在解码的接收码字的某些部分相对应的消息。
在处理部件(616,618)和(624,628)所执行的处理操作方面,编码器604和解码器606同样存在差别。对编码器604而言,每一个处理器通常会结合一个存储值来执行逻辑XOR运算,然后则使用XOR运算结果来替换这个存储值。因此,处理部件616、618可以用XOR电路以及充当累加器的存储部件来实现。图12描述了一个可以在依照本发明的并行式LDPC处理器模块中使用的处理部件,该部件包含了XOR电路以及累加器之类的存储设备。
在正被执行的码(图形结构)所确定的处理中的某一点,在编码器的处理器616、618中保持的结果将会存入存储器610。处理部件626、628则执行变量节点和/或校验节点的处理操作。虽然这些操作通常包含了XOR和累加运算,但是这其中往往还会涉及与每一个处理部件626、628所处理的多比特消息相关的附加处理,由此使得解码操作比编码操作更为复杂。
这里引入作为参考的某些专利申请详细论述了实施并行式LPCD处理模块部件616、618、626、628的不同方法。
依照本发明,因子分解置换器612、622对由置换器612、622处理的至少某些矢量执行统一置换操作(不改变),或是执行作为两个置换操作乘积的置换操作。因此,因子分解置换器既可以在不对矢量中的元素进行重新排序的情况下传递矢量,也可以通过执行两个连续的置换操作来对矢量中的元素重新排序,这其中输出的是元素顺序重排的矢量,并且所述重新排序是组合两个置换操作的结果。在下文中将会参考附图来对示范性的置换操作进行详细论述。
在某些实施例中,可分解因子的置换是作为多级交换操作执行的。在第一级交换中,在所处理的矢量内部例如是通过使用第一循环移位以及移动矢量中n个大小相等的部分而对元素进行重新排序的,其中所述大小相等的部分即为元素子集。然后,在n个大小相等的部分内部而不是各个部分之间将会使用第二置换变序部件来对所处理的矢量元素执行进一步置换。在这里将会为n个大小相等的部分执行相同的第二置换,由此在各个部分中产生相同的元素位置变化。在下文中给出了等价的描述。具有Z个元素的矢量由第一分区分为Z/n个大小相等的部分,并由第二分区分成n个大小相等的部分。这种处理是以这样一种方式完成的,其中对第一分区中的Z/n个大小相等的部分来说,每一个部分都只包含一个与第二分区中的n个部分中的各个部分共有的元素。然后,上述第一置换会对第一分区所定义的Z/n个部分内部的元素重新排序,但是并不会改变第一分区,其中每一个重新排序操作都是相同的。第二置换则对第二分区所定义的n个分区内部的元素重新排序,但是同样不会改变第二分区,并且其中每一个重新排序操作都是相同的。
在本发明的某些实施例中,因子分解置换器612将两个循环置换相乘,这就是通常所述的循环移位。虽然单独的循环移位不能分解因子,但是两个循环移位的乘积则可以分解因子,这是因为可以将其分解成两个产生该乘积的循环移位。举一个具体的例子,假设Z=4。依照循环移位,矢量(v0,v1,v2,v3)将会重新排序成(v0+k,v1+k,v2+k,v3+k),其中k是处于[0,3]的整数,并且所述加法是以4为模的。根据大小为2的两个循环移位的乘积,矢量(v0,v1,v2,v3)将会重新排序成(v0+2k+j,v1+2k-j,v2+2k+j,v3+2k-j),其中k是处于[0,1]的整数,j也是处于[0,1]的整数,并且所有运算都是以4为模的。对两个循环移位的乘积来说,第一分区是{v0,v1}{v2,v3},第二分区则是{v0,v2}{v1,v3}。第一置换是通过选择j来确定的,第二置换则是通过选择k来决定的。如下所述,所执行的特定重新排序是正在执行的编码的函数,并且在这里还对即将处理的矢量元素进行指示,使之指向与图形中定义了所执行编码的特定节点相对应的处理部件,由此有效使用重新排序来连接图形中的不同节点。
无线终端的编码器和解码器分别与参考基站编码器604和解码器606所描述的编码器及解码器相类似,但是无线终端的编码器和解码器可以实现不同的并行等级。编码器634、664以及解码器636、666各自包含一个存储器640、670、650、680,这些存储器分别是通过因子分解置换器642、672、652、682耦合到并行式LDPC处理模块644、674、654、684的。
在多种其他的LDPC编码专利和申请的环境中可以更好地评定和理解本发明的方法和设备。在这里包含的这些申请中描述的不同部件,例如执行LDPC操作的处理部件,可以用于实现示范性系统中描述的并行矢量处理器。这里引入的不同申请还论述了如何根据用于提供LDPC码(图形)信息的存储信息来实施那些用于执行置换操作存储器存取和交换操作。虽然所描述的码和置换操作与本申请中描述的操作存在差别,但是在这里可以根据所保存的LPDC码信息并以相同或相似的方式来控制存储器的存取和交换控制操作。相应地,在这里将会对这种控制技术进行详细论述。此外,由于在所引入的申请中详细描述了这些处理部件,例如变量节点和校验节点处理部件,因此在本申请中只对这些部件的实施方式和功能进行简要论述。
在这里特别引入了以下四篇相关申请作为参考,并且这些申请将被视为是本申请的一部分:在2001年10月10日提交并且在2003年10月14日以专利号6,633,856发布的名为“METHODS ANDAPPARATUS FOR DECODING LDPC CODES”美国专利申请09/975,331;在2002年4月4日提交并且在2003年1月30日以美国公开申请号US-2003-0023917-A1发布的名为“NODE PROCESSORSFOR USE IN PARITY CHECK DECODERS”的美国专利申请10/117,264;在2002年12月18日提交的名为“METHODS ANDAPPARATUS FOR ENCODING LDPC CODES”的PCT申请PCT/US02/40573;以及在2001年6月15日提交的名为“METHODSAND APPARATUS FOR PERFORMING LDPC CODE ENCODINGAND DECODING”的美国临时申请60/298,480。
图7和8描述的是可用于执行依照本发明的LDPC操作的示范性系统700、800,所述操作可以是依赖于所处理的数据的编码或解码LDPC操作,其中举例来说,所述数据可以是接收到的码字(意味着解码操作),也可以是用于产生码字的信息(意味着编码操作)。
系统700、800各自包含了存储器702、802,地址生成器716、816,地址生成器和置换器控制器718、818,所存储的LDPC码(图形)信息720、820,Z元素并行式LDPC处理模块710、810,以及因子分解置换器706、806。所要处理的信息通过存储器输入端存入存储器702、802,以便进行处理。对编码而言,当处理结束时,其结果将从存储器702、802中读出。在进行处理的同时,Z元素矢量会在地址生成器和置换器控制器718、818的控制下被读出和写入到存储器中。地址生成器和置换器控制器718、818使用LDPC码(图形)信息720、820以及关于所实施的并行等级的信息来控制地址生成器716、816,以便产生用于读和/或写操作的地址,其中关于所实施的并行等级的信息可以是并行处理的元素Z数量,与此同时,该控制器还对因子分解置换器706、806进行控制,以便执行矢量元素重新排序这种交换操作,该操作被用于实现那些具体实施的图形结构,其中所述图形结构与所执行的编码是对应的。地址生成器和置换器控制器718、818还产生控制信号,该信号经由地址生成器716、816传递到存储器702、802,以便在指定时刻指示执行读取还是写入。由此,地址生成器和置换器控制器718、818不但对因子分解置换器706、806所执行的交换进行控制,而且还对何时从存储器702、802中读取所要处理的矢量以及何时将模块710、810产生的处理结果写入存储器702、802进行控制。
图7和图8实施例之间的主要区别在于:在并行式LDPC处理模块710中包含的处理部件712、714处理矢量元素之前,系统700中的因子分解置换器706会对输入矢量704执行重新排序操作,以便产生重新排序的矢量708。而处理结果,例如Z元素矢量则保存在存储器702中。对图8的实施例来说,因子分解置换器806是对处理部件812、814产生的Z元素矢量804执行重新排序。在模块710、810执行处理之前还是在处理之后执行重新排序在很大程度上仅仅是一种设计选择。
现在将对“提升”进行描述,以便能够了解本发明不同实施例中使用的新颖编码以及使用这种LDPC码所产生的新颖的码字。“提升”或LDPC码的矢量化大体上如下文所述。我们以图1和2中关于小型LDPC码的Tanner图或奇偶校验矩阵表示为开始。首先,我们将会从奇偶校验矩阵的角度来对提升进行描述。在Z提升中,奇偶校验矩阵中的每一个项都由Z×Z的矩阵所取代。H中的0项将会变成0Z×Z矩阵,并且H中的1将会变成置换矩阵,其中该矩阵通常属于某群组。图5显示了矩阵502,它是图2矩阵的提升形式,其中Z=3并且所使用的置换是循环置换。在Tanner图上可以如下插入提升。Tanner图中的每一个节点都被Z个等价节点所取代,由此形成一个节点束,此外,每一条边线也被Z边线束所取代。假设为束中的每一个元素提供范围在0,……,Z-1之中的索引。Z边线束则将变量节点束与约束节点束相连。如果每一个连接都是通过连接节点以及相同索引的边线来完成的,那么该结构实际上是原始图中的Z个并行拷贝。在与图1和图2中的基本实例相对应的图3的图示300中描述了这种结构。并且在图4中的图示400显示了这个与图3中的图形相对应的奇偶校验矩阵。举例来说,如果置换约束端的连接,也就是将索引为j的边线连接到索引为π(j)的约束节点,其中π表示的是0,…,Z-1上的一种置换,例如循环置换,那么最终得到的图形可以是全部相连的,并且可以将其视为是提升图形。应该指出的是,预计图形可以在一对节点之间具有多个边线,而经过提升的图形则不需要具有。此外,举例来说,如果与多个边线中的若干边线相关联的置换是完全不同的,那么经过提升的图形将不具有相应的多个边线。
在名为“Methods and apparatus for decoding LDPC codes”的美国专利申请09/975,331中描述了一种支持矢量化(或提升)LDPC码的架构,其中所述申请在此引入作为参考。这种架构支持为种类很多的LDPC类型码提供高效高速解码。所支持的码则是经过提升或是矢量化的LDPC码。在申请09/975,331中建议循环置换使用一种简单和理想的置换分类。使用这些置换会在码上引入群组结构,由此实现有效的并行编码和解码,其中举例来说,所述并行性涉及的是对循环结构顺序的提升大小进行扩缩。
此外还存在这样的情况,其中较为理想的是具有指定码,该码可以视为是不仅具有一种大小,而且可以具有两种或更多大小的提升,由此可以在使用相同码的编码器/解码器中促进实现不同并行等级的可能性。本发明的现实化和最终的码结构提供了有效的编码器和/解码器实施方式,其中所述实施方式可以使用相同的LDPC码而具有不同的并行等级。编码器、解码器、码字以及经过编码的数据都使用了本发明的编码结构或者是通过使用本发明的编码结构产生的,并且它们同样被视为是本发明的特征。
接下来我们对下文中用于说明本发明的实例进行研究。我们希望在数字信号处理器(DSP)中进行编码,由此可以实现16倍的并行性(提升),但是我们希望产生一个具有4倍并行性的小型解码器。举例来说,具有16倍并行性的DSP可以在为四个移动设备提供服务的基站中使用,其中每一个移动设备大致以1/4的基站编码器工作的数据速率来接收数据。这种系统中的每一个移动设备都可以使用相同的码作为编码器,但是所述移动设备是依照本发明实施的,其中具有四倍并行性的解码器将会反映这样一个事实,那就是移动设备大约具有4倍之多的时间来处理相同的数据量。假设基站为三个移动设备提供服务,例如大致以1/4的编码器数据速率工作的第一和第二移动设备,以及以1/2的编码器数据速率工作的第三移动设备,在前两个移动设备中,使用了4倍并行性的解码器可以与第三移动设备中使用的八倍并行性结合使用,其中所述第三移动设备支持以1/2的编码器速率来进行解码。
本发明中支持不同的编码器和解码器的并行等级的方法也可以用在多种其他应用中。并且在下文中给出了另一个实例。我们希望为需要很大并行性的高速应用设计码。在进行ASIC实施之前,我们会在FPGA(浮点门阵列)平台上仿真所述码。FPGA不支持应用所需要的并行性,因此我们无法对用于最终应用的确切码进行仿真。在第一种情况中,较为理想的是具有一个可以视为是4倍提升和16倍提升的码。在第二种情况中,我们可能希望得到这样一个码,所述码同时是64倍提升和256倍提升。第三种情况是需要硬件编码器的高速应用。由于硬件编码器通常比解码器的运行速度更快,因此我们希望能够降低编码器中的并行性(门计数)并且在与解码器速度更紧密匹配的低速上运行码。第四种情况是需要以不同吞吐量实施的标准码,其中举例来说,所述不同吞吐量可以是不同的速度。第五种情况是软件实施方式:码结构可以匹配于典型微处理器中固有的并行性。本发明实现了上述情况,同时保持了一定等级的置换复杂性,其中该复杂性接近于循环置换所需要的复杂性。此外,相对于码描述而言还有可能减小复杂性:如果码具有比实施方式更高的并行性(在乘积中具有另一个因子),那么可以使用附加结构来产生更简洁的码描述。这样则顾及了简化消息传递控制。在矢量-LDPC架构中,这样将会极大地实现多级或乘积提升的益处。
申请人相信在可用的LDPC文献中尚未提出本发明的不同实施例中使用的支持单个码的不同的并行等级的LDPC码结构。发明人还意识到,在本发明不同实施例中使用的LDPC码分类尤其可以在V-LDPC(矢量-LDPC)架构环境中提供实施方面的益处,其中所述架构会在其他LDPC码上形成本发明的其中一个基础。
匹配提升(Matched Lifting)
在描述乘积提升之前,为了简化描述,我们首先将对具有附加数学结构的常规提升分类进行描述。我们注意到,由循环群组进行的提升将会落入这个分类。
当提升中使用的群组顺序(元素数目)与提升大小Z相等的时候,这时将会产生一个方便使用的数学结构。我们将这种提升称为匹配提升。在匹配提升中,在长度为Z的提升和二进制矢量所使用的Z×Z置换矩阵的GF[2]上的总和可以使用一个环的元素来确定。这个环的元素可以方便地表示为长度为Z的二进制矢量,其中加法是以2为模的逐位加法,并且乘法是从群组结构中产生的。结果,通过使用环的元素来替换预计奇偶校验矩阵中的各个元素,可以形成一个经过提升的奇偶校验矩阵。通过使用环中的元素来替换每一个比特,可以提升预计图形中的二进制码字。总的码则仍旧是二进制的,但是该码将被表示成比环上的码小Z倍。在这里可以显示,在全部经过提升的奇偶校验矩阵上进行的二进制矩阵运算可以模拟成环上的运算。这样则极大地简化了编码器提取。此外,该数学结构还确保了可以在环中执行编码。
我们现在将会给出匹配提升的数学结构。
假设我们具有一个阶数为Z并且元素为g1,…gz的群组g,作为约定,g1是单位元素。当且仅当gigk=gj的时候,该群组可以通过设定πi(k)=j并且使用置换pi,…pZ来表示。相应地,我们可以使用Z×Z的置换矩阵G1,…GZ来表示该群组,其中对k=1,…Z来说, G π i ( k ) , k j = 1 , 并且所有其他项都是0。
在给出了这样一个群组的情况下,我们将会定义一个环,其中该环的元素是长度为Z的二进制矢量。并且二进制矢量u=(u1,..uZ)可以用子集G来标识,也可以等价地使用形式总和
Figure A20048001120300182
来标识。在这里,ui=1表示gi是子集中的一个元素,ui=0则表示gi不是子集中的元素。通过gi与Gi的对应关系,我们可以将总和解释成是矩阵和 M ( u ) : = Σ i = 1 z u i G i , 其中加法是以2为模的,也就是说,所述加法是在GF[2]上进行的。这样一来,M(u)是GF[2]上的矩阵。应该指出的,这个总和是可逆的,也就是说,
Figure A20048001120300192
将会唯一确定u。
在给出了两个二进制矢量u和v的情况下,它们的乘积w:=uv是由M(w)=M(u)M(v)唯一给出的。此外还应该指出,如果我们将v解释成是GF[2]上的列矢量,那么w=M(u)v。
既然我们已经为二进制矢量定义了乘法,那么我们也就定义了一个用R表示的环。R的一元元素则是那些二进制矢量表示只具有一个1和Z-1个0的元素。
再次对图5所示的提升加以考虑。现在,图中右侧的矩阵可以解释成是R中元素的矩阵,其中R是大小为K(在本实例中,K=3)的循环置换所引入的环。并且所述码仍旧是奇偶校验等式Hx=0的解集,但是H的元素以及x的元素都属于R:因此,码字是R上的长度为K的矢量。每一个元素都可以解释成是长度为Z的二进制矢量,因此码字是长度为ZK的二进制矢量。J×K的奇偶校验矩阵则包含了环中的元素,但是也可以将其解释成是大小为ZJ×ZK的二进制矩阵。
识别匹配提升码中的码字
当且仅当每一个矢量xu=(x1u,…xku)都是每一个元素u∈R的码字时,码字x=(x1,…xk)才是R上的码字。这个条件表征了匹配提升的码字。因此,基于乘积提升(参见下文)的LDPC系统可以通过这样一个事实依据来识别,那就是在与乘积环元素以逐个元素的方式相乘的情况下,经过恰当分区的码将会是不变的。
匹配提升的编码
匹配提升的形式方法可以简化我们对于LDPC码之类的编码技术的理解,并且可以产生一个简化的编码处理。
为了构造一个用于常规LDPC码的编码器,其中第一个步骤是找出H的行和列的置换,这样一来,依靠重新排序,我们可以写出:
H = T A B E C D
其中T是txt的上三角形,E是gxt,A是txg,C是gxg,B是tx(n-m)。D是gx(n-m)并且t+g=m。此外,gxg矩阵φ:=ET-1A+C是可逆的(在这里我们假设H是全行秩(full row rank))。
编码则是以如下方式进行的。在给出了信息比特xS的情况下,我们可以使用倒转代换来为y求解
        [T A B][y 0 xs]T=0
接下来我们将会为xp2求解
φ x p 2 = E C D y 0 x s T
对这个步骤来说,矩阵φ-1是预先计算的。最后,我们可以使用倒转代换来为xp1求解
T A B x p 1 x p 2 x s T = 0
矢量[xp1 xp2 xs]T则构成了码字。
编码提升图形的思想是在预计的奇偶校验矩阵上执行近似的上三角测量,然后则通过在R上解译矩阵操作来执行编码。在实际设置中,如果提升大小足够大,那么我们可以在不使性能产生可辨别的损失的情况下迫使g=1。并且在这种情况下,矩阵ET1A+C及其倒置矩阵是R的元素。在提升过程也就是R上,其中有必要对ET1A+C的可逆性进行检查。这与经过提升的二进制矩阵的可逆性是对应的,但是未必与预计矩阵的可逆性相对应。如果存在多条边线,那么在形成对角线矩阵T时,较为优选的是对角线项是单独的边线,由此在提升中产生一元元素。
环中的一元元素(矢量表示中只具有一个非零项的元素)在环中执行的乘法可以直接在作为交换机的硬件中实施。在美国专利申请09/975,331以及美国临时专利申请60/404,810中描述的交换路由机制即为示范性机制,并且这些机制可以用于执行一元乘法。由非一元元素执行的乘法是通过多次使用交换以及将结果相加(在环上)来实现的。这种处理对应于将R的任意元素的乘法分解成一元乘法之和。借助这种方法,可以将可分解因子的置换用在本发明的不同实施例中。
乘积提升
乘积提升是通过为提升选择一个乘积群组来实现的。乘积提升可以等价地视为是多维提升。因此,假设提升匹配,那么环R将会是一个乘积环。设想一个希望得到大小为64的提升的实例。假设预计码的大小是P,也就是具有P个变量节点。我们可以为提升选择大小为64的循环群组。并且依照本发明的替换群组则是大小为16的循环群组与大小为4的循环群组的乘积。这个群组可以如下表示。设想使用了配对(a,b)的标引L=0,…,63,其中a=0,…15,b=0,…,3,而可逆映射L=4a+b。这个乘积群组的一个元素是配对(c,d),其中c=0,…15,d=0,…3。(c,d)施加给(a,b)的作用是将配对(a,b)置换成(a+c mod 16,d+b mod 4)。并且这个群组的阶数同样是64。然而,最终得到提升图形可以解释成是将大小为4P的码提升16,也可以解释成是将大小为16P的码提升4,还可以解释成是将大小为P的码提升64。因此,依照本发明,结合了并行度4、16或64的实施方式是同时得到支持的。对于需要并行度为64的高速解码并且在数字信号处理器上执行相对简单的编码的实施方式来说,这种处理是非常理想的,其中Z=16的表示更为便利。乘积提升所提供的优点是在编码器以及硬件实施方式的环境中实现的。使用乘积提升所增加的价值是本发明的一个特征。而对循环群组这类并非乘积的群组而言,它们提供的提升顾及了任何大小的提升,但是并未提供乘积提升的灵活性。
本发明所涉及的码集合属于这样一种情况,其中提升群组g是乘积群组,在这种情况下,最终得到的环将是一个乘积环。在我们的构造中,在所述环上,并行度实际上是一致的。当我们具有乘积环时,这时将会存在子环,由此我们可以对这些环执行并行化,以便能够选择指定码的并行度。
在已有文献中出现的是这样的情况,其中g是循环群组或是有限域的乘法群组。这些情况并不是乘积群组,因此我们给出的结构并未得到预期。此外,这种结构的优点只在考虑到如我们所公开的并行架构的时候才会非常明显。
示范性用途
现在将参考图9来描述由本发明的码以及上述乘积提升特征所实现的因子分解置换器706的用途。图9显示了系统700中的一部分,其中包括存储器702、因子分解置换器706以及并行式Z元素LDPC处理器模块710。存储器702包括L个Z元素矢量。每一个Z元素矢量都包括元素1~Z。为了对本发明加以说明,在存储器702中,每一个Z元素矢量的顶部都用A标记,而底部则用B标记。对编码操作来说,Z元素矢量中的各个元素通常是一个比特,例如即将编码的信息比特。接收码字可以包括总数为T的比特,其中T/L=Z。码字中的实际比特数目可以填补,此外对经过凿孔的码来说,某些比特可以丢弃,以便产生T/L以及整数值。对解码操作来说,每一个Z元素矢量中的元素通常都是多比特消息。
在步骤903,将会按照地址生成器确定的顺序而从存储器702中读出一个Z元素矢量,以便执行信息720所标识的码,其中所述地址生成器是在控制器718的指引下工作的。如步骤904所示,所读取的Z元素矢量704中的某个元素将被提供到因子分解置换器706的输入,该置换器将会在控制器718的指引下执行置换操作(对矢量元素进行重新排序)。因子分解置换器706是作为两级交换设备,也就是、即第一和第二交换设备902、904而被实施的,其中所述设备执行的是第一和第二交换步骤,并且所述步骤在这里同样是用参考数字902、904标引的。第一级包括对完整矢量704进行操作的第一交换电路902。在本实例中,交换器902执行的是第一循环旋转R,该旋转会使元素输入矢量704移动S1=Z/n(在本实例中,n=2)或S1=0个位置。因此,如果S1=Z/2,那么位置A和B将会调换,如果S1=0,那么位置A和B是不会调换的。在图9、10和11的实例中,n=2。箭头911表示的是将第一置换(重新排序操作)结果分成数量为n的相等部分,其中n是整数并且Z>n>1,而这些部分是不会被R改变的。在步骤907和909,第一相等部分913以及第二相等部分906将会经历相同的置换Q。这个第二置换操作将会导致在这个部分中对每一个相等部分904、906进行重新排序。R和Q的重新排序既可以是单位重新排序(例如移动0或Z)也可以是移动一定的量,其中所述移动将会导致元素顺序发生实际变化。通过将第一重新排序操作与第二重新排序操作Q的组合,可以在因子分解的输入矢量Z上产生置换。在将置换操作Q应用于n个大小相等的部分的情况下,置换操作R和置换操作Q的顺序是毫无关系的,这是因为无论以何种顺序来执行操作,重新排序操作的组合都会产生相同的结果。
对应用于各个部分913、906的置换操作Q所产生的经过重新排序的Z元素矢量来说,该矢量中的各个元素将被提供到并行Z元素LDPC处理器模块710中不同的相应处理部件712、711、713或714。作为因子分解置换器706与用于确定Z元素矢量读取顺序的寻址控制相结合的操作结果,用码信息720标识的码可以通过一种相对直接的方式来加以实施。
通过使用因子分解置换器706,可以支持那些不能用单个简单循环移位支持的码结构。如上所述,这些码具有允许用于相同码的解码器和编码器具有不同并行等级的优点。
图10描述了这样一个实例,其中置换器706执行的第一置换操作可以是单位(I)置换,也可以是矢量704的上部和下部A、B的翻转(F)。箭头1002表示的是读取Z元素矢量704并且使用置换器706来对其进行处理的步骤。在步骤交换步骤902,如果第一置换是单位置换,那么所遵循的将会是第一处理路径1004。应该指出的是,这个结果在矢量904以及矢量704中都是相同的。步骤1007表示的是将置换Q应用于矢量904顶部A,而步骤1009表示的则是将Q置换应用于矢量904的底部B。
在步骤902中,如果R是翻转操作,那么处理将会沿着路径1005进行,其中最终得到的Z元素矢量906包含了处于顶部的B以及处于底部的A。然后,在步骤1007’以及步骤1009’,第二置换Q将被用于这些部分的每一个部分。
图11是另一个关于如何使用因子分解置换器706而对Z元素矢量704执行两个连续置换操作R和Q的更详细的实例。在图11的实例中,从存储器702中读出的Z元素矢量704包括大小为z/2的第一部分A1100,它具有处于位置1的元素Y1102。此外,矢量704还包括第二部分B1105,所述部分包含了元素X1106,并且该元素位于矢量位置Z/2+1中的部分B的开端。步骤902表示将第一置换R应用于矢量704,以便产生Z元素矢量704’。在这个实例中,R是翻转,也就是将大小为Z/2的第一循环移位应用于矢量704。这个第一循环旋转将会导致部分B1105移动到Z元素矢量704’的顶端,而部分A1101则会移动到Z元素矢量704’的底部。这种处理的结果是改变了矢量元素的顺序,由此元素X1106现在将会处于第一位置,而元素Y1102则处于第(Z/2+1)位置。对第二置换应用而言,其中Z元素矢量704’将会分离成部分1105以及部分1101,这两个部分即为n(在本实例中,n=2)个偶数大小的中间矢量704部分,然后,这些中间矢量704将会在步骤904和906中分别进行第二置换Q。在本实例中,Q是大小为一个位置的循环移位。并且该置换将会导致元素X1106移动到Z元素输出矢量704的第一部分1105’内部的第Z/2个位置。此外,该置换还导致元素Y1102移动到第Z个位置,由此使之成为矢量704”中的最后一个元素以及第二部分1101’中的最后一个元素。应该指出的是,由因子分解置换器706执行的多级重新排序处理将会对Z元素输入矢量704进行重新排序,而这是使用单独的循环移位所无法实现的。这种新颖的重新排序方法允许实施那些无法用只能执行单独循环移位的置换器实现的码。
在经过置换的矢量704”中,第一到第Z个元素中的每一个都被提供给模块710的第一到第Z个并行处理部件712、711、713、714中的一个不同部件。在某些实施例中,并行处理部件所产生的处理结果可以写回到存储器702中,作为选择,所述处理结果也可以在控制器718的控制下写入到其他存储器中,以便进行更进一步的处理。
虽然在这里详细描述了706中的操作,但是应该理解,图8所示的置换器806是以相同方式工作的,只不过在图8的置换器中,输入矢量是从处理器的并行式LDPC处理中而不是从存储器中获取的,并且结果将会写入到存储器802中。
图10的实例使用了具有两个因子G=G2xGZ/2的乘积。群组G2则包含了以如下方式根据{0,1}定义的两个元素F(翻转)和I(单位)。
F(0)=1,F(1)=0;
1(0)=0,1(1)=1;
我们假设在图10的处理中实施的是长度为L的循环。
此外,本发明还涉及存储器702之类的机器可读介质上保存的新颖数据结构,例如码字,其中在某些实施例中,所述机器可读介质可用于存储一个或多个码字,并且这些码字是由使用了本发明的多种码中的一种的编码器以及实施本发明的编码方法的编码器从输入数据中产生的。
特别地,本发明的某些实施例涉及的是:
一种通信设备中的机器可读存储介质,包括:
数据结构,该数据结构的形式是NxZ个比特的阵列y,其中N和Z是正整数,所述数据结构则是如下产生的:
对编码器电路进行操作,以便接收输入u,其中所述u是一个K×Z比特的阵列,K是一个正整数;以及
对所述编码器电路进行操作以便依照等式y=uG来计算y,
其中
y是N×Z个比特的阵列,N和Z是正整数;
u是K×Z个比特的阵列,K是正整数;
G是K×N个元素矩阵的阵列,其中G的每一个元素是Z个比特的矢量,并且其中
y=(y1,y2,…,yN),其中yi是一个Z比特矢量,i则是[1,N]中的整数;
u=(u1,u2,…,uK),其中ui是一个Z比特矢量,i则是[1,K]中的整数;
G = G 1,1 G 1,2 · · · G 1 , N G 2,1 G 2 , 2 · · · G 2 , N · · · · · · · · · · · · G K - 1,1 G K - 1,2 · · · G K - 1 , N G K , 1 G K , 2 · · · G K , N
其中Gi,j是一个Z比特矢量,并且i是[1,K]中的整数;j是[1,N]中的整数,此外,
y i = Σ j = 1 j = K v i , j ,
其中对每一个处于[1,N]中的整数i以及每一个处于[1,K]中的整数j来说,vi,j=ujGi,j是一个Z比特矢量,并且∑j=1 j=kui,j表示的是对Z比特矢量vi,1,vi,2,…,vi,K进行的逐个分量的XOR运算,由此形成Z比特矢量yi,并且其中
ujGi,j
表示的是两个Z比特矢量uj和Gi,j的乘积,而两个Z比特矢量的乘积则是如下定义的:
对任何Z比特矢量a=(a1,a2,…,aZ)以及任何Z比特矢量b=(b1,b2,…bZ)来说,它们的乘积ab是一个如下定义的Z比特矢量d=(d1,d2,…,dZ)
d k = Σ { ( i , j ) : g i * g j = g k } a i b j
其中所述运算都是二进制运算,这意味着aibj是比特ai与bj的逻辑AND(与)运算,并且求和则表示的是逻辑XOR(异或)运算,此外
g={g1,g2,…,gZ},*
是一个阶数为Z的可以分解因子的群组,其中阶数为Z的群组g是连带了群组运算*的Z个不同元素的集合{g1,g2,…gZ},该运算是在为每一个配对(i,j)定义了处于[1,Z]中的唯一整数k的情况下将g×g转变成g的映射,由此gi*gk=gk,其中i和j是处于[1,Z]中的整数,此外,该映射是结合的,这意味着对所有处于[1,Z]中的整数i,j,k来说,
(gi*gj)*gk=gi*(gj*gk)
此外在这个群组还存在单位元素,这意味着对处于[1,Z]中的某些整数i*以及处于[1,Z]中的所有的j来说,我们可以得到
g i * * g j = g j * g i * = g j
每一个元素都具有一个反数,这意味着对处于[1,Z]中的每一个整数j来说,在[1,Z]中存在一个整数K,该整数会使
g j * g k = g k * g j = g i * ,
其中gi *是上述单位元素,并且
阶数为Z的可分解因子的群组是一个阶数为Z的群组
g={g1,g2,...,gZ},*,它可以分解成以下这两个阶数分别是ZA和ZB的群组
A = { A 1 , A 2 , · · · , A Z A } , * A
B = { B 1 , B 2 , · · · , B Z B } , * B ,
并且这两个阶数分别满足1<ZA,ZB<Z以及ZAZB=Z,对群组运算*A和*B来说,所述因子分解包括使用唯一的有序整数配对(iA,iB)来标识[1,Z]中的各个整数i,其中iA是[1,ZA]中的整数,iB是[1,ZA]中的整数,这样一来,
当且仅当 A i A * A A j A = A k A 以及 B i B * B B j B = B k B 时,
gi*gj=gk
其中依据上述标识方式,i是用配对(iA,iB)标识的,j是用配对(jA,jB)标识的,k是用(kA,kB)标识的,并且i,j,k是[1,N]中的整数,(iA,iB)、(jA,jB)、(kA,kB)的每一个是第一元素处于[1,ZA]之中以及第二元素处于[1,ZB]之中的有序整数配对。
上述方法可以在计算机系统中执行,所述计算机系统包含了耦合在一起的存储器、CPU以及一个或多个输入和/或输出设备。存储器包括依照本发明执行的程序。在执行程序时,该程序使CPU依照本发明来接收、处理和输出数据。
作为选择,本发明的步骤也可以使用专用硬件来实现,例如电路和/或硬件与软件组合。

Claims (16)

1.一种用于执行LDPC处理操作的设备,该设备包括:
存储器,用于保存多个Z元素矢量,其中每一个Z元素矢量包括Z个元素,并且每一个元素包括至少一个将处理的比特;
并行式LDPC处理模块,所述模块包括Z个处理部件,这些处理部件被设置成以并行方式工作;以及
可控因子分解置换器,用于将所述存储器耦合到所述并行式LDPC处理模块,所述可控因子分解置换器包括交换电路,所述交换电路响应于控制信号而对经过所述因子分解置换器的Z元素矢量执行因子分解置换操作,所述因子分解置换操作包括第一和第二置换操作,这些操作会对矢量元素实施第一和第二重新排序,所述第一和第二重新排序操作是在大小为Z/n的n个大小相等的矢量部分上执行的,所述第一置换操作改变至少两个大小相等的矢量部分的顺序,所述第二置换操作是在每一个大小为Z/n的部分上执行的,由此改变每一个所述大小为Z/n的部分中的元素排序,其中n是大于1并且小于Z的整数。
2.权利要求1的设备,其中所述因子分解置换器包括用于执行所述第一重新排序的第一交换电路以及用于执行所述第二重新排序的第二交换电路,其中所述第一和第二交换电路是串联排列的。
3.权利要求1的设备,其中所述数字n是2的整数倍数。
4.权利要求1的设备,其中第一置换操作可以在所述第二置换操作之后执行,或者所述第二置换操作可以在所述第一置换操作之后执行。
5.权利要求2的设备,还包括:
一组保存的LDPC码信息,所述信息定义至少一部分将被执行的LDPC码;以及
置换器控制器,该置换器控制器对所述保存的LDPC码信息做出响应,从而对所述因子分解置换器进行控制,以便依照将被执行的至少部分LDPC码来对矢量元素进行重新排序。
6.权利要求2的设备,
还包括与所述存储器相耦合的地址生成器,以及
其中置换器控制器还会作为地址生成控制器控制器来进行操作,所述置换器控制器在不同的时间点对所述地址生成器提供的地址选择进行控制,以便对存储器的存取操作以及因子分解置换器的重新排序操作进行协调。
7.权利要求1的设备,其中所述第一和第二重新排序操作是循环移位操作。
8.权利要求2的设备,其中在所述并行式LDPC处理模块中,Z个处理部件中的每一个包括XOR电路以及累加器。
9.权利要求2的设备,其中在所述并行式LDPC处理模块中,Z个处理部件中的每一个是变量节点和校验节点处理器中的一个。
10.一种用于执行LDPC处理操作的方法,所述处理操作是编码和解码操作中的一个,该方法包括:
按顺序经由置换器来传递多个Z元素矢量中的每一个,其中所述置换器位于存储器与Z元素矢量处理器单元之间,所述存储器用于保存所述多个Z元素矢量,所述处理器单元包括Z个处理部件,每一个Z元素矢量包括Z个元素,并且Z是大于2的整数值;以及
对所述置换器进行控制,以便对在所述存储器与所述矢量处理单元之间传递的至少一个Z元素矢量执行因子分解置换操作,由此对所述至少一个Z元素矢量中的元素进行重新排序,所述执行因子分解置换操作的步骤包括:
对所述至少一个Z元素矢量内部的多个大小相等的第一子集执行第一重新排序操作,以便改变所述Z元素矢量内部所述至少一个Z元素矢量的大小相等的第一子集的顺序;以及对所述至少一个Z元素矢量内部的多个大小相等的第一子集的每一个的内容执行第二重新排序操作,以便改变所述多个大小相等的第一子集的每一个中的至少一些元素的顺序,为每一个所述大小相等的第一子集执行相同的第二重新排序操作,以便在每一个所述大小相等的第一子集内部对元素顺序产生相同的改变。
11.权利要求10的方法,其中所述第一重新排序操作是所述Z元素矢量内部的子集的循环移位。
12.权利要求10的方法,其中所述第一和第二重新排序操作是按顺序执行的,并且所述第二重新排序操作是在所述第一重新排序操作之前执行的。
13.权利要求11的方法,其中所述多个大小相等的子集中的每一个包括n个子集,所述子集的每一个包括Z/n个元素,其中n是正整数,Z/n是正整数,并且Z>n>1。
14.权利要求11的方法,还包括:
对所述置换器进行操作,以便在不对至少一些Z比特矢量的内容进行重新排序的情况下传递所述矢量。
15.权利要求14的方法,还包括:
对所述置换器进行操作,以便执行第一循环重新排序,从而对至少一些矢量中的一些元素的顺序进行重排,但是不对所述至少一些矢量执行第二重新排序操作。
16.权利要求15的方法,还包括:
对所述控制器进行操作,以便从定义至少一部分正在使用的LDPC编码的信息中确定应用于正在经由所述置换器传递的Z矢量的特定重新排序。
CN2004800112035A 2003-02-26 2004-02-26 使用多级置换来执行低密度奇偶校验码操作的方法和设备 Expired - Lifetime CN1781254B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US45024503P 2003-02-26 2003-02-26
US60/450,245 2003-02-26
PCT/US2004/005783 WO2004077733A2 (en) 2003-02-26 2004-02-26 Method and apparatus for performing low-density parity-check (ldpc) code operations using a multi-level permutation

Publications (2)

Publication Number Publication Date
CN1781254A true CN1781254A (zh) 2006-05-31
CN1781254B CN1781254B (zh) 2012-03-14

Family

ID=32927623

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2004800112035A Expired - Lifetime CN1781254B (zh) 2003-02-26 2004-02-26 使用多级置换来执行低密度奇偶校验码操作的方法和设备

Country Status (6)

Country Link
EP (1) EP1597828B1 (zh)
JP (1) JP4339886B2 (zh)
KR (1) KR101058324B1 (zh)
CN (1) CN1781254B (zh)
CA (1) CA2516716C (zh)
WO (1) WO2004077733A2 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104467872A (zh) * 2009-11-13 2015-03-25 松下电器(美国)知识产权公司 编码方法以及解码器
CN107977283A (zh) * 2016-10-24 2018-05-01 爱思开海力士有限公司 具有ldpc解码器的存储器系统及其操作方法
CN109379087A (zh) * 2018-10-24 2019-02-22 江苏华存电子科技有限公司 Ldpc根据闪存组件错误率调变核编译码速率的方法

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7577207B2 (en) 2002-07-03 2009-08-18 Dtvg Licensing, Inc. Bit labeling for amplitude phase shift constellation used with low density parity check (LDPC) codes
US7020829B2 (en) 2002-07-03 2006-03-28 Hughes Electronics Corporation Method and system for decoding low density parity check (LDPC) codes
US20040019845A1 (en) 2002-07-26 2004-01-29 Hughes Electronics Method and system for generating low density parity check codes
US7864869B2 (en) 2002-07-26 2011-01-04 Dtvg Licensing, Inc. Satellite communication system utilizing low density parity check codes
KR100922956B1 (ko) 2003-10-14 2009-10-22 삼성전자주식회사 저밀도 패리티 검사 코드의 부호화 방법
CA2577291C (en) * 2004-08-13 2015-05-19 The Directv Group, Inc. Code design and implementation improvements for low density parity check codes for multiple-input multiple-output channels
CN101341659B (zh) 2004-08-13 2012-12-12 Dtvg许可公司 用于多输入多输出通道的低密度奇偶校验码的码设计与实现的改进
KR101065693B1 (ko) * 2004-09-17 2011-09-19 엘지전자 주식회사 Ldpc 코드를 이용한 부호화, 복호화 방법 및 부호화또는 복호화를 위한 ldpc 코드 생성 방법
IE20050277A1 (en) * 2005-05-04 2006-11-29 Nat Univ Ireland Method and apparatus for generating error-correcting and error-detecting codes using zero-divisors and units in group rings
WO2007064325A1 (en) * 2005-12-01 2007-06-07 Thomson Licensing Apparatus and method for decoding low density parity check coded signals
TW201334425A (zh) * 2007-01-24 2013-08-16 Qualcomm Inc 可變大小之封包的低密度同位檢查編碼與解碼
US8261155B2 (en) * 2007-03-09 2012-09-04 Qualcomm Incorporated Methods and apparatus for encoding and decoding low density parity check (LDPC) codes
CN100583649C (zh) 2007-07-23 2010-01-20 华为技术有限公司 矢量编/解码方法、装置及流媒体播放器
US8612823B2 (en) 2008-10-17 2013-12-17 Intel Corporation Encoding of LDPC codes using sub-matrices of a low density parity check matrix
KR101824227B1 (ko) 2009-08-07 2018-02-05 삼성전자주식회사 메모리 시스템 및 그것의 프로그램 방법
KR101840252B1 (ko) * 2012-03-12 2018-03-20 에스케이하이닉스 주식회사 저밀도 패리티 검사 부호용 장치
EP3496277A1 (en) 2017-12-07 2019-06-12 Xieon Networks S.à r.l. Parallel encoding method and system for protograph-based ldpc codes with hierarchical lifting stages

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4295218A (en) * 1979-06-25 1981-10-13 Regents Of The University Of California Error-correcting coding system
US6073250A (en) * 1997-11-06 2000-06-06 Luby; Michael G. Loss resilient decoding technique
US6339834B1 (en) * 1998-05-28 2002-01-15 Her Majesty The Queen In Right Of Canada, As Represented By The Minister Of Industry Through The Communication Research Centre Interleaving with golden section increments
FR2799592B1 (fr) 1999-10-12 2003-09-26 Thomson Csf Procede de construction et de codage simple et systematique de codes ldpc
US6633856B2 (en) * 2001-06-15 2003-10-14 Flarion Technologies, Inc. Methods and apparatus for decoding LDPC codes
US7178080B2 (en) * 2002-08-15 2007-02-13 Texas Instruments Incorporated Hardware-efficient low density parity check code for digital communications
US6961888B2 (en) * 2002-08-20 2005-11-01 Flarion Technologies, Inc. Methods and apparatus for encoding LDPC codes
JP4062435B2 (ja) * 2002-12-03 2008-03-19 日本電気株式会社 誤り訂正符号復号装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104467872A (zh) * 2009-11-13 2015-03-25 松下电器(美国)知识产权公司 编码方法以及解码器
CN107977283A (zh) * 2016-10-24 2018-05-01 爱思开海力士有限公司 具有ldpc解码器的存储器系统及其操作方法
CN107977283B (zh) * 2016-10-24 2021-05-25 爱思开海力士有限公司 具有ldpc解码器的存储器系统及其操作方法
CN109379087A (zh) * 2018-10-24 2019-02-22 江苏华存电子科技有限公司 Ldpc根据闪存组件错误率调变核编译码速率的方法
CN109379087B (zh) * 2018-10-24 2022-03-29 江苏华存电子科技有限公司 Ldpc根据闪存组件错误率调变核编译码速率的方法

Also Published As

Publication number Publication date
CA2516716C (en) 2012-08-14
JP4339886B2 (ja) 2009-10-07
JP2006519560A (ja) 2006-08-24
KR101058324B1 (ko) 2011-08-22
CN1781254B (zh) 2012-03-14
WO2004077733A2 (en) 2004-09-10
EP1597828B1 (en) 2020-10-07
EP1597828A4 (en) 2006-05-24
CA2516716A1 (en) 2004-09-10
EP1597828A2 (en) 2005-11-23
KR20060008864A (ko) 2006-01-27
WO2004077733A3 (en) 2004-10-21

Similar Documents

Publication Publication Date Title
CN1781254A (zh) 使用多级置换来执行低密度奇偶校验码操作的方法和设备
CN1255761C (zh) 用于对ldpc代码解码的方法和设备
CN101449463B (zh) Ldpc解码方法和装置
CN101005334B (zh) 一种低密度奇偶校验码的混合自动请求重传包生成方法
US8266512B2 (en) Method and apparatus for signal transmission/reception in a communication system using an HARQ scheme
CN110114978B (zh) 高效可解码qc-ldpc码
CN101689867B (zh) 校验矩阵生成装置、校验矩阵生成方法、编码器、发送装置、解码器以及接收装置
CN101080873A (zh) 用于使用信道代码解码的装置和方法
CN1947368A (zh) 对具有可变块长度的块低密度奇偶校验码编码/解码的设备和方法
CN101080872A (zh) 利用向量行分组的结构化ldpc设计
CN101079639A (zh) 基于节点存储器的低密度奇偶校验解码装置和方法
CN1783730A (zh) 生成低密度奇偶校验码的方法与装置
CN1717871A (zh) 连锁反应码的系统编码和解码
US20040187129A1 (en) Method and apparatus for performing low-density parity-check (LDPC) code operations using a multi-level permutation
CN1499731A (zh) 低密度奇偶校验码解码装置和方法
AU2010200856A1 (en) LDPC encoding methods and apparatus
CN101076946A (zh) 无线通信系统中使用低密度奇偶校验码编码和解码数据的方法和装置
JP2008503975A (ja) Ldpcコードを用いた可変コードレート適応符号化及び復号化方法
CN1714512A (zh) 速率兼容的低密度奇偶校验(ldpc)码
WO2007088870A1 (ja) 検査行列生成方法、符号化方法、復号方法、通信装置、符号化器および復号器
CN1993917A (zh) 编码/译码具有可变块长度的块低密奇偶校验码的装置和方法
CN1943119A (zh) 再发送控制方法以及通信装置
US20070202889A1 (en) Method for puncturing a low density parity check code
CN102696175B (zh) 在使用线性分组码的通信系统中产生奇偶校验矩阵的装置和方法、发送/接收装置以及使用其的方法
CN1886898A (zh) 使用基于子码元的代码来保护数据不被删除

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: QUALCOMM FLARION TECHNOLOGIES INC.

Free format text: FORMER OWNER: FLARION TECHNOLOGIES INC.

Effective date: 20060721

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20060721

Address after: American California

Applicant after: FLARION TECHNOLOGIES, Inc.

Address before: American New Jersey

Applicant before: FLARION TECHNOLOGIES, Inc.

REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1090187

Country of ref document: HK

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20081212

Address after: American California

Applicant after: Qualcomm Inc.

Address before: American California

Applicant before: Flarion Technologies, Inc.

ASS Succession or assignment of patent right

Owner name: QUALCOMM INC.

Free format text: FORMER OWNER: QUALCOMM FLARION TECHNOLOGIES INC.

Effective date: 20081212

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1090187

Country of ref document: HK

CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20120314