CN101796488A - 奇偶校验矩阵的产生 - Google Patents

奇偶校验矩阵的产生 Download PDF

Info

Publication number
CN101796488A
CN101796488A CN200880105326A CN200880105326A CN101796488A CN 101796488 A CN101796488 A CN 101796488A CN 200880105326 A CN200880105326 A CN 200880105326A CN 200880105326 A CN200880105326 A CN 200880105326A CN 101796488 A CN101796488 A CN 101796488A
Authority
CN
China
Prior art keywords
matrix
row
vector
circuit
submatrix
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.)
Pending
Application number
CN200880105326A
Other languages
English (en)
Inventor
P·麦克沃伊
J·温努斯
T·赫尔利
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Technology from Ideas Ltd
Original Assignee
Technology from Ideas Ltd
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 Technology from Ideas Ltd filed Critical Technology from Ideas Ltd
Publication of CN101796488A publication Critical patent/CN101796488A/zh
Pending 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/033Theoretical methods to calculate these checking 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/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/65Purpose and implementation aspects
    • H03M13/6522Intended application, e.g. transmission or communication standard
    • H03M13/6527IEEE 802.11 [WLAN]

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)
  • Detection And Correction Of Errors (AREA)

Abstract

电路进行逐行矩阵生成,用于对数据块进行编码和解码。它们进行高性能低密度奇偶校验(LDPC)矩阵的快速代数生成,这种矩阵适用于很宽范围的错误校正编码和解码(ECC)应用中。电路运行基于数学周期环法,该方法能够基于用户定义的性能要求从单个初始参数集产生任何大小的矩阵。用于生成奇偶校验矩阵(H)的主要步骤为:选择RG矩阵结构,选择群环元,通过行填充方案为RG矩阵产生子矩阵,通过循环布置子矩阵产生RG矩阵,以及通过从RG矩阵删除适当选择的列产生奇偶校验矩阵,以实现期望的性能,然后转置矩阵。一种电路通过如下步骤进行数据编码或解码:接收从先前产生的奇偶校验矩阵H的行矢量计算出的起始矢量,对所述矢量进行循环移位以产生奇偶校验矩阵H的期望输出行,根据RG矩阵结构和所选行重新布置矢量的操作次序,对要编码信息上的矢量进行操作。

Description

奇偶校验矩阵的产生
技术领域
本发明涉及用于错误校正编码的群环型低密度奇偶校验(LDPC)矩阵的产生。
背景技术
错误校正码用于保护数据,以免在通过噪声信道通信或在数据存储介质上存储期间发生错误。近年来发现,当在充分大的数据块上操作时,诸如“涡轮码”(turbo code)和“低密度奇偶校验(LDPC)码”的迭代解码的码可以非常接近可靠通信的基本极限(所谓的“shannon极限”)工作。不过,由于它们的编码和解码复杂性较大,妨碍了这些码,尤其是LDPC码的更广展开。此外,由利用伪随机方法产生的大矩阵表示最有效的LDPC码。不能通过代数方式重新生成这种矩阵,因此需要大量的存储器来存储它们。因此,需要利用完全确定性的矩阵产生方法为较小数据块(适用于无线通信)减小LDPC编码的复杂性并提高码性能。
对于诸如移动装置的低功率装置而言,大的伪随机矩阵常常不实用,在低功率装置中,处理功率和存储器要求显著影响电池功率和成本。因此,用于这种装置的方法曾使用卷积码来编码(例如在电信标准GSM和3G中),因为它们需要较小的处理功率并可以在ASIC上实现,而不需要DSP。
WO2006/117769描述了一种产生码矩阵的方法,其中,有群和环的选择、形成群环RG、从RG中选择元并产生编码和解码矩阵。问题在于,群环是矩阵的无穷集,必需要从其中选择适当的元。对于如何选择对其期望用途具有特定的性质的元,没有给出指导。
而且,已经采用非群环方法来产生LDPC奇偶校验矩阵,例如,如US2007/0033480和WO2004/019268中所述。
本发明目的在于为产生LDPC奇偶校验矩阵实现改进的性能和存储器组织。
发明内容
根据本发明,提供了一种由电子或光学电路的数据处理器执行的方法,用于产生群环奇偶校验矩阵H以进行错误校正编码,该方法包括如下步骤:
(a)选择包含子矩阵的适当群环矩阵(group-ring matrix)结构;
(b)通过选择适当的环和适当的组元(group element)来为每个所述子矩阵提供起始矢量;
(c)根据行填充方案利用每个矢量填充所述子矩阵;
(d)利用所述子矩阵填充所述群环矩阵结构,以提供群环矩阵RG;以及
(e)转置所述RG矩阵以生成奇偶矩阵H,
其中,所述方法包括另一步骤(f),从所述矩阵RG删除列,删除的列的数量由比率的期望值决定,所述比率是数据输入与数据输出的目标比。
优选地,在所述步骤(a)中,所述RG矩阵在每行和每列中具有N个正方形子矩阵,N为整数,优选N为2的幂。
优选地,在所述步骤(a)中,所述RG矩阵结构使得所述RG矩阵大小等于码字长度。而且,步骤(b)中所有所述子矩阵上的元的数量优选提供低密度奇偶校验(LDPC)矩阵。
在一个实施例中,在所述步骤(b)中,在单个矢量之内或在矢量之间,元之间的差异决不重复,并且优选地,在所述步骤(b)中,在单个矢量之内或在矢量之间,元之间的由矢量长度n减去差异所定义的循环间距决不重复。
在一个实施例中,在所述步骤(b)中,矢量的数量等于所述码字长度除以子矩阵的数量,并且在所述步骤(b)中,以伪随机方式执行构成所述矢量的群环元的选择。
在一个实施例中,在所述步骤(b)中,在从包含0和n-1的0到n-1的给定子矩阵的索引范围之内选择矢量元,其中n被定义为码大小除以N。
在一个实施例中,所述步骤(b)包括将所述矢量变换成二进制形式,其中每个元定义了n元行矢量中1的位置。
优选地,所述步骤(c)包括利用线性循环操作填充子矩阵,其中利用前一行填充子矩阵的各行,其中位置向前或向后循环整数,并且优选地所述步骤(c)包括填充子矩阵,其中利用前一行填充子矩阵的各行,其中位置向前或向后循环由方程动态确定的整数值。
在一个实施例中,连同步骤(a)、(b)、(c)和(d)一起来执行所述步骤(f),以便通过确保所述RG矩阵没有任何零权重列或行且实现由低列权重值附近密集分布而偶尔有高权重值构成的目标列权重分布,来实现良好的距离。
优选地,所述步骤(d)包括对所述子矩阵进行循环布置,并且借助与生成矢量所用规则相符的代数模式来确定在所述步骤(f)中选择要删除哪些列。
在一个实施例中,连同步骤(a)、(b)、(c)、(d)和(e)一起来执行所述步骤(f),以便确保所述RG矩阵是可逆的,并且所述奇偶校验矩阵没有任何零权重列或行,且优选地执行步骤(f)以去除或最小化诸如6周期和8周期的与奇偶和数据位相关的环的短周期。
在一个实施例中,步骤(f)包括如下子步骤:
(i)确定要取用的具有非零支持的组元差集以校验群环码,
(ii)选择所述校验码的组元,使得所述差集不包含重复元,
(iii)使用其带有非零支持的组元具有无重复(组)元的差集的群环元,以及
(iv)通过确定要删除所述矩阵的对应于所述群环元的哪些行来选择比率。
在另一方面中,本发明提供了一种适于在上述任何方法中产生用于错误校正编码的奇偶校验矩阵H的电子或光学电路。
在另一方面中,本发明提供了一种用于数据编码或解码的方法,所述方法包括如下步骤:
(i)接收利用由任何上述方法产生的奇偶校验矩阵H的行矢量计算出的起始矢量;
(ii)对所述矢量进行循环移位以产生所述奇偶校验矩阵H的期望输出行;
(iii)根据所述RG矩阵结构和所选行重新布置所述矢量的操作次序;
(iv)对要编码信息上的矢量进行操作;以及
(v)针对所述奇偶校验矩阵H的下一行重复步骤(ii)到(iv)。
在一个实施例中,对于步骤(ii),每次到达被删除列时所述电路都增加额外的循环移位,从而基于下一未删除列生成行。在一个实施例中,对于步骤(i)和(ii),将矢量转换至计数器,每个计数器存储矢量元的位置。
在一个实施例中,计数器直接跟踪每个1的位置且所述计数器的块大小是2的整数次幂,因为二进制计数器在每次循环结束会自动对它们重置。在一个实施例中,通过对应于下一期望行的期望移位对所述计数器进行递增或递减。
在一个实施例中,步骤(ii)是由移位寄存器执行的。
在另一方面中,本发明提供了一种适于编码或解码的电子或光学电路,所述电路适于在从奇偶校验矩阵的行矢量接收起始矢量之后执行上述任何方法的步骤。
本发明还提供了一种产生前向错误校正数据流的通信装置,所述装置包括任何上述电路。
在另一方面中,本发明提供了一种利用LDPC群环奇偶校验矩阵对数据编码或解码的方法,所述方法提供减小的存储器存储复杂性,其中原模图条目(protograph entry)的对角线矩阵元是前一行的循环移位,所述对角线矩阵元存储于相邻存储器地址之内,允许可变节点和校验节点过程访问数量减少的更大存储器。在一个实施例中,DPC编码器或解码器矢量串行架构电路适于执行这种方法。
在另一方面中,并行架构电路在每个周期中对整行或整列的原模图条目进行操作,并且优选地所述电路适于执行所述方法,其中所述电路在每个周期中对多个整行或整列的原模图条目进行操作。在另一方面中,所述电路适于利用矩阵的环循环性质定义层,或将扩展矩阵中的行映射到层上,然后将来自一层的校验/可变更新应用于接下来的层,从而使用分层置信传播(Layered Belief Propagation),以实现增强的解码器收敛时间。
本发明还提供了一种计算机可读存储器,用于存储程序,当在数字处理器上执行时,该程序用于执行上述任何方法。
附图说明
从以下对本发明的一些实施例的描述将更清楚地理解本发明,该描述仅以举例方式参考附图给出,附图中:
图1是示出了本发明的编码和解码电路运行的示意图;
图2(a)是示出了四群环(RG)元矢量的示意图,图2(b)是示出了利用矢量产生RG矩阵的流程图;
图3示出了将RG矩阵转换成奇偶校验矩阵;
图4示出了利用相同起始矢量产生的两个不同RG矩阵;
图5是示出了性能比较的一组曲线图;
图6示出了两个RG矩阵和对应的奇偶校验矩阵;
图7是示出了性能比较的一组曲线图;
图8示出了行填充模式;
图9示出了针对矩阵特征的柱状图;
图10是一组性能比较的曲线图;
图11示出了两种不同的行填充模式;
图12示出了RG矩阵和三个对应的奇偶校验矩阵;
图13示出了针对矩阵特征的柱状图;
图14是示出了性能比较的一组曲线图;
图15示出了另一行填充模式;
图16和17是串联(in-line)LDPC矩阵产生期间的RG矩阵示意图;
图18是用于串联矩阵产生的硬件电路的方框图;
图19是示出了用于该硬件的备选移位寄存器布置的方框图;
图20到23是在各实施例中本发明的电路的硬件图示;以及
图24到27是示出了本发明获得的益处的曲线图。
具体实施方式
参考图1,本发明的电路执行逐行矩阵产生,用于在调制之前对数据块进行编码。本发明的另一电路在接收机中,执行逐行矩阵产生,用于解码。
该电路进行高性能低密度奇偶校验(LDPC)矩阵的快速代数产生,这种矩阵适用于很宽范围的错误校正编码和解码(ECC)应用中。电路运行基于数学周期环法(mathematical cyclic ring method),该方法能够基于用户定义的性能要求从单个初始参数集产生任何大小的矩阵。
不需要提前产生和存储奇偶校验矩阵。如图1所示,仅需要提供初始参数。电路操作基于群环数学,于是适于很宽范围的实施体系结构,包括串行、管道化(pipelined)串行、矢量串行和部分并行。在这些体系结构中,该技术对于矢量串行和部分并行实施尤其有益。
在产生能够用于数据编码和解码的奇偶校验矩阵的过程中有五个主要步骤:
—选择RG矩阵结构--选择能够提供期望性能的适当结构。
—选择群环元—选择适当的环(例如伽罗华域2(二进制数))并选择根据方案选择的适当组元。
—子矩阵产生_—通过一些适当的行填充方案为RG矩阵产生子矩阵。这种行填充方案优选为线性的和循环的。
—产生RG矩阵—通过子矩阵的循环布置产生RG矩阵。
—产生奇偶校验矩阵—通过从RG矩阵删除适当选择的列产生奇偶校验矩阵,以实现期望的性能,然后转置矩阵。
在使用奇偶校验矩阵H(被转换为相应的发生器/编码矩阵)对数据编码时,希望编码数据(由消息位和奇偶校验位构成)在传输或储藏期间能够抵抗错误。通常将这种错误的水平表达为给定信噪比下的误码率(BER)。编码矩阵越好,对于给定信噪比来说BER越好,可用于实现相同BER的信噪比越低。对于大部分应用而言,需要最小的BER,例如,对于无线电信应用而言,为10-6
可以用Tanner曲线图表达作为每个线性块码的LDPC码,Tanner曲线图示出了所谓“位节点”(对应于LDPC矩阵列)和“校验节点”(对应于LDPC矩阵行)之间的相互关系。
为了实现低的BER,希望在奇偶校验位和数据(例如消息)位之间有良好的“交叉连接”,从而可以校正错误。这意味着应当将每个奇偶校验节点连接到多个位节点,由于多个校验位包含关于受错误影响的数据位的信息,允许校正错误。类似地,可以通过到多个数据位的链接校正校验位的错误。在校验节点和位节点仅在小周期中链接在一起时,发生短环,例如“4周期”,从而增大了不能校正错误的可能性。应当使Tanner曲线图上这种链接密集分布的奇偶校验和位节点的短环最小化,已经通过我们用于选择群环元的机制实现了这种目的。事实上,在本发明中仔细选择群环元能够完全避开4周期环(仅将2个校验节点和2个位节点链接在一起的环)。此外,删除适当的列能够通过消除包含这些环的列组合最小化或消除6和8周期环。
常常将码校正大量错误的能力作为码距离加以测量。该距离是两个码字不同的最小数量位置(位)的测量结果。两个码字不同的位置越多,任何错误仍将留下仅能校正成单个码字的消息的可能性越大。如果发生太多错误或存在低距离,那么可能无法校正错误。
没有模式和分布式列和行权重(奇偶矩阵的任何给定列或行中非零元的数量)的不规则矩阵可能具有更高的距离。可以利用针对子矩阵的更复杂填充模式产生这种不规则矩阵。
需要仔细地将这种过程与列删除和群环元选择过程耦合,以确保得到的奇偶校验矩阵不包含任何零权重列或行并确保RG矩阵是可逆的。对于每个子矩阵还可能有不同的行填充模式。
利用本发明产生的奇偶校验矩阵是完全确定性的,可以基于非常少的初始参数逐线地(line-by-line)迅速产生。此外,在用于所谓的“阶梯结构”中时,可以将它们容易地用于在线性时间中对数据进行快速和简单编码。矩阵的代数特征与“阶梯”组合导致与灵活的编码速率选择相结合的快速编码和解码速度,保存随机奇偶校验矩阵所需的索引存储器得到相当大减少。实现这些改善,同时保持解码性能接近利用随机奇偶校验矩阵实现的性能。可以证明这种矩阵对于便携式电池操作的无线装置或其他装置尤其有用,在所述其他装置中,希望以低复杂性错误校正精细地选择接近Shannon极限的编码速率和操作。
范例
参考图1和2,选择大小为4的RG矩阵结构,码大小为204。然后选择由四个矢量V1,V2、V3和V4表示的群环元。
RG矩阵大小:N=4
码(码字)大小:nc=204;子矩阵大小:n=nc/N=204/4=51;
V1=[3] V2=[16,21] V3=[33] V4=[0,18,40]。
然后通过如下一组动作转换V1到VN矢量:
a)在每个矢量中用n替换0(如果V(i)=0→V(i)=n)
b)从n减去每个矢量(V=n-V;)
计算如下:
n=51;
V1=51-V1=51-[3]=[48];
V2=51-[16,21]=[35,30];
V3=51-V3=51-[33]=[18];
V4=51-V4=51-[51,18,40]=[0,33,11];
//在V4中,(在减法之前)已经用51替换了0
如果从1开始做索引(例如,如在MATLAB中那样),应当向每个元增加值1。
在这种情况下:V1=[49],V2=[36,31],V3=[19],V4=[1,34,12]
以上动作是为了使产生过程与群环理论中使用的标记法一致。
接下来,具体参考图1,通过以下动作将矢量转换成二进制形式,其中V1到VN中的每个元分别定义V1_binary、V2_binary...中n元行矢量中“1”的位置:
a)将所有矢量初始化为包含n个零的行(V_binary=zeros(1,n);)
b)在V1到VN中的元定义的位置输入1(V_binary(V(i))=1;)
具体参考图2,使用四个矢量V1-V4(给予总附图标记1)通过相关矢量的循环移位产生N个正方形循环子矩阵2:A、B、C和D。
系统然后通过循环布置以上子矩阵来产生RG矩阵3,例如:
RG = A B C D D A B C C D A B B C D A
具体参考图3,通过以下动作,系统然后基于具有列删除4和转置5的RG矩阵3产生奇偶校验矩阵H6:
a)检查矩阵RG是否可逆
—如果不可逆,选择起始矢量的另一组合
b)从RG删除(选择)适当列,以实现期望的码率
c)转置矩阵
奇偶校验矩阵的大小为(nc-k)×nc,其中nc-码字大小,k-消息大小(速率=k/nc)。
对于速率=1/2,k=nc/2,那么必需要从RG删除一半的列
在这里,我们(从第一列开始)每隔一个删除一列,接下来对矩阵进行转置。
总之,该系统:
1)从选择RG矩阵结构和群环元开始
2)生成对应的二进制矢量
3)利用这些矢量产生正方形子矩阵
4)通过适当布置子矩阵产生矩阵RG
5)从RG删除列
6)对矩阵进行转置
在上述范例之后,以下内容更一般地描述本发明。
RG矩阵最简单的结构是按下列方式由2个不同正方形矩阵A和B构成的2×2结构:
A B B A
RG矩阵的大小(行或列长度)等于码字长度nc。因此,对于2×2矩阵结构而言,子矩阵A和B将具有nc/2的大小。
对于伪随机起始矢量产生过程而言,使用4×4结构或更大结构常常是有益的,这是为了在整个RG矩阵上更均匀地散布比特。原则上,对于二进制码而言,RG矩阵的行(列)中的子矩阵数量是2的整数次幂。因此,以下结构是可能的:2×2、4×4、8×8、16×16等。在每种情况下,都将以循环方式布置子矩阵。通常,可以将该方法用于更高伽罗华域上的码。RG矩阵中不同数量的子矩阵和子矩阵的不同布置也是可能的。从解码器中硬件并行性的角度讲,比将L×L矩阵降低到2×2矩阵更重要的是可以将2×2矩阵扩展到L×L矩阵,其中L>>2。
以下范例示出了4×4和8×8RG矩阵的结构:
4×4-4个正方形子矩阵,每个子矩阵大小为nc/4;
A B C D D A B C C D A B B C D A
8×8-8个正方形子矩阵,每个子矩阵大小为nc/8;
A B C D E F G H H A B C D E F G G H A B C D E F F G H A B C D E E F G H A B C D D E F G H A B C C D E F G H A B B C D E F G H A
原则上,通常可以将任何RG矩阵结构简化成2×2结构而不损失任何性能。例如,由以下大小为96的4×4结构矢量表示的码:
V1=(9,15,19) V2=(3,20) V3=(22) V4=(12)(RG4x4)
可以简化成由2个矢量表示的2×2结构:
V1=(3,20,33,39,43) V2=(12,46)(RG2x2)
RG4×4和RG2×2的第一行是相同的——两矩阵之间的差异在于填充如下行的方法,如图4所示。图5示出了基于RG4×4和RG2×2矩阵生成的大小=96,速率=1/2的码的性能比较(高斯信道,BPSK调制)。
对于二进制码(伽罗华域2)而言,起始矢量定义了RG矩阵中包括的每个子矩阵的第一行中具有值“1”的位的位置。然后,通过初始行的循环移位(依次向右或向左移动一位)或交替操作来生成每个子矩阵的后续行。类似的原理还适用于更高伽罗华域之内的码。
通过具有如下约束的伪随机方式进行构成矢量的群环元的选择:
—在从0到n-1(包含0和n-1)的给定子矩阵的索引范围之内选择元,其中n被定义为码大小除以N
—每个方块(子矩阵)中元之间的差异(间距)和循环差异(n减去间距)决不重复
—在另一个块中决不重复一个块中元之间的差异和循环差异
—决不重复一个矢量和后一矢量中元之间的差异和循环差异
—应当保持元的总数较小,以便使奇偶校验矩阵稀疏(低密度)
避免重复元之间的差异与避免对应码中的4周期直接相关。以下范例示出了这如何能够影响到码性能。
考虑由如下矢量表达的与先前所述相同的码:
V1=(9,15,19) V2=(3,20) V3=(22) V4=(12) (码1)
码1是根据上文列出的约束设计的。
相反,非常类似的码(通过改变V1中的1元和V2中的1元构造):
V1=(9,15,21) V2(14,20) V3=(22) V4=(12) (码2)
包含元之间的差异重复,即:
15-9=6(V1中)和21-15=6(V1中)和20-14=6(V2中)
这些重复导致显著的性能劣化。
图6示出了代表那些码连同对应的奇偶校验矩阵H的RG矩阵的结构(H—通过从RG每隔一列删除一列生成—对于码率=1/2,并随后进行矩阵转置),图7—它们在具有BPSK调制的高斯信道上的性能。
通过从RG删除(选择)若干列并随后进行矩阵转置从RG矩阵生成奇偶校验矩阵H。码率由从RG删除(选择)的列数决定的奇偶校验矩阵形状定义。通常,H矩阵的大小为(nc-k)×nc,其中nc为码字长度(对应于RG的大小),k为消息(数据块)长度。因此,为了获得H而要从RG删除的列数等于消息位的数量。码率定义为k/nc。于是,对于1/2的码率,必需要从RG删除一半的列;类似地,对于1/3的码大小,必需要删除三分之一的列,等等。在所有情况下,在完成删除之后都必需要对这种矩阵进行转置。
通常用模式定义为了生成奇偶校验矩阵应选择从RG删除哪些列。例如,对于码率为1/2的码而言,必需要删除一半的列。在这里,最简单而最明显的模式是每隔一列删除一列。这样生成的矩阵H具有均匀的行权重分布和2个列权重的交替值。通过选择不同的模式,能够在列权重分布中引入更多变化并改善码性能。通常通过如下删除模式将增强性能:该模式产生不包含零或一的权重以及若干权重2(如果发生任何权重2的话)的列权重分布。权重分布还需要考虑到编码中应用的任何其他结构,例如阶梯模式。分布模式还需要包含一些高度权重值以使码距离最大化。好的分布模式包含较低值附近的密集分布,高权重数较少。最大列权重还将影响硬件实现,获得性能和实现之间的平衡。
在这里,像在起始矢量选择的情况中那样,删除模式还可以与避免LDPC码中的短周期相关。假设已经在矢量选择过程中删除了所有4周期,还可以通过适当选择列删除模式去除6周期、8周期等来优化码。备选方案是在逻辑上分析RG矩阵,计算短周期的位置,删除那些列,并重复操作直到实现期望比率为止,并将删除的列转换成模式。必需要认真确保删除列不会引起破坏一开始选择矢量所依据的规则。通常,起始矢量选择和列删除模式的选择都应当并行得到优化。对一个码性能有正面影响的模式可能会在另一个码中导致性能劣化。必需要避免会导致列权重等于0的模式,因为它们不形成有效码。
图8示出了基于上述码1生成的两个奇偶校验矩阵的结构。码1a与图6中所示的码1相同,是以标准方式生成的——从第一列开始,从RG中每隔一列删除一列(被删除列的次序:1,3,5,7,9,11,13,15,17……95)。相反,码1b是利用不同的列删除模式生成的:在RG中留下前三个相邻列而删除后三个相邻列(例如:4,5,6,10,11,12,16,17,18……96)。在两种情况下,在删除之后都可以进行矩阵转置。图9比较了针对这些矩阵计算的列和行权重分布。显然,码1b具有更多样的列权重分布,在高斯信道上表现出更好的性能(图10)。对于码1a和码1b而言行权重都是恒定的,这是奇偶校验矩阵产生方法的直接结果。使行权重分布多样化的一种方法是如下所述改变RG中的行填充模式。
改变RG中的行填充模式还可以通过使矩阵更加不规则来改善码性能。标准的循环行填充总是会生成具有规则行权重的矩阵,而列权重可能随着列删除模式而变化。为了也向行权重分布引入不规则性,行填充模式必需与标准的循环模式不同。
例如,利用大于一的增量的循环模式是可能的,并能够产生良好的行分布模式。可以如图11所示,在子矩阵A中从第1行开始,在子矩阵B中从第2行开始,在C中从第3行开始,在D中从第4行开始,每隔三行输入“0”而非“1”来实现4×4RG矩阵中其他这样的非标准行填充。
很多不同的行填充模式是可能的。通常,应当避免导致列权重或行权重等于0的模式(除非在后续列删除阶段中删除了该行)以及其他生成不可逆RG矩阵的模式。应当与起始矢量选择和列删除模式并行优化行填充模式。例如,在使用模式1时,先前描述的码1不形成有效码,因为其获得不可逆RG矩阵。于是,为了生成有效码,必需要选择一组不同的矢量,例如:
码3;使用模式1:
V1=(19) V2=(10,15) V3=(3,5,12,13) V4=(4,8)
在图12中,连同表示三个比率=1/2的码的对应奇偶校验矩阵一起示出了基于码3和模式1形成的RG矩阵。通过从RG每隔一列删除一列(如先前在码1a中那样)形成码3a,利用相当于先前为码1b使用的列删除模式的模式生成码3b(前三个相邻列保留在RG中,删除后三个相邻列,等等),同时通过删除以下列生成码3c:1,3,4,8,等……(每8列重复一次)。图13示出了为码3a、码3b和码3c计算的列和行权重分布。显然,即使对于标准列删除模式(码3a)而言,模式1也会产生不规则的列和行权重分布。如预期那样,将非标准行填充模式与非标准列删除模式组合在权重分布上引入更多变化(码3b和码3c)。不过在这里,尽管码3c的性能比码3a的性能更好,但码3b(列删除模式与先前用于码1b的相同)性能比码3a差。这与先前针对码1a和码1b所述的情形相反,进一步证明,为了使误码率最小化,应当同时优化所有参数(起始矢量、列删除模式和行填充模式)。在这种情况下,如图14所示,已经为了获得最佳性能优化了码3c。
在实践中,有很多种不同的行填充模式可用于填充RG矩阵,图15中示出了一些备选范例。在每个子矩阵中模式可以相同或不同——主要约束条件为:RG矩阵必需要在GF(2)中是可逆的,且奇偶校验矩阵H应没有权重为0的列或行。尽管在行填充模式方面有灵活性,但在确保奇偶校验矩阵过去的列删除不违反关于选择适当起始矢量的规则和关于列权重分布的规则方面这仍然是不确定的。
数学基础
下文描述本发明优点的数学基础。
避免短周期
这一部分给出如何在校验矩阵曲线图中避免短周期的方法。给出数学证明。
具体而言,根据其表达式中出现的组元为群环元u给出了充要条件,使其对应矩阵U在其曲线图中没有短周期。这些条件还决定着从u构造的群环矩阵U中何时何处会发生短周期,并能够在从U构造码时避免这些短周期。
应当指出,从单元导出的构造码的方法在选择群环RG中哪个模块W方面具有完全的自由。这一部分确定通常哪里会发生短周期,从而可以选择模块W以避免这些短周期。模块W的选择决定了发生器和校验矩阵。
通常:
令RG表示环R上组G的群环。假设u∈RG要产生或校验码。令G由G={g1,g2,…gn}来列出。
令RG中, u = Σ i = 1 n a i g i .
对于具有非零系数的u中发生每一(不同)成对gi,gj,形成(组)差异gigj -1,gjgi -1。那么u的差集DS(u)由所有这种差异构成。于是:
DS ( u ) = { g i g j - 1 , g j g i - 1 | i ≠ j , α i ≠ 0 , α j ≠ 0 } .
注意,u的差集由组元构成。
定理1.1当且仅当DS(u)没有重复的(组)元时,矩阵U在其曲线图中才没有短周期。
证明:U的行依次对应于ugi,i=1,……n,
那么U具有4周期
Figure GPA00001039812500151
对于一些i≠j,一些k≠1,ugi和ugj中的系数gm,gl为非零。
Figure GPA00001039812500152
ugi=...+αgk+βgl+...
ugj=...+αlgklgl+...
Figure GPA00001039812500153
u = . . . + αg k g i - 1 + βg l g i - 1 + . . .
u = . . . + α l g k g i - 1 + β l g l g i - 1 + . . .
Figure GPA00001039812500156
DS(u)既包含gkgi -1gigl -1=gkgl -1又包含gkgj -1gl -1=gkgl -1。当且仅当DS(u)具有重复元时才发生这种情况。
重复的元:
现在假设u使得CD(u)具有重复元。
因此,u=...+αmgmrgrpgpqgq+...,其中显示的αi非零,因此
Figure GPA00001039812500157
显示出了导致短周期的元,注意,元gm、gr、gp、gq未必是G的清单那种次序。
由于我们对元的曲线图感兴趣,由此对非零系数感兴趣,因此用系数1取代非零系数。于是写出u=...+gm+gr+gp+gq+...,从而
Figure GPA00001039812500158
包括以下情形:一个p、q可以是m、r之一,在这种情况下,在u的表达式中不应列出它。
那么
ug m - 1 g p = . . . + g p + g r g m - 1 g p + . . . = . . . + g p + g q + . . .
ug p - 1 g m = . . . + g m + g q g p - 1 g m = . . . + g m + g r + . . .
(注意 ug m - 1 g p = ug r - 1 g q ug p - 1 g m = ug q - 1 g r )。
于是,为了避免短周期,如果使用第一行,不使用由U中的gm -1gp或gp -1gm行确定的行,或者一般地,如果出现gi行,则不能出现gigm -1gp和gigp -1gm行。
类似地,在CD(u)具有重复元时,通过在U中避免特定列,能够生成没有短周期的矩阵。
特殊情形:
令S={i1,i2,…,ir}为一组非负不相等的整数,n为整数,对于所有j=1,2,…,r,n>ij.
那么S mod n的循环差集被定义为DS(n)={ij-ik mod n|i≤j,k≤r,j≠k}。这是可能有重复元的集合。
例如,如果S={1,3,7}且n=12,那么DS(12)={2,6,4,10,6,8}。
如果|S|=r那么|DS(n)|=r(r-1)。
考虑群环RCn,其中Cn是由g产生的。假设
Figure GPA00001039812500161
其中aij≠0。设置S={i1,i2,…,ir}并通过说CD(u)=DS(n)定义循环差集mod u的n。
注意,这一差集是在上文“通常”部分中定义的差集中的群环元的幂集(在将幂写为非负形式时)。
令U为u的RG矩阵;U取决于Cn的元的列表,我们选择自然列表。
定理1.2当且仅当CD(u)没有重复元时,U才在其曲线图中没有4周期。
证明:该定理的证明是从定理1.1得出的。
令G=Cn×Cm为分别由g,h产生的循环组Cn,Cm的直接积。
我们列出G的元:1,g,g2,...,gn-1,h,hg,hg2,...,hgn-1,...,hm-1,hm-1g,…,hm-1gn-1
利用该列表写出RG的元,于是假设u=α0+h(α1)+…+hm-1αm-1在RG中,其中每个αi∈Cn
将S设置成由α0、α1,…,αm-1中出现的所有幂构成的集合,定义CD(u)=DS(n)。
然后可以用定理1.1来证明如下定理:
定理1.3当且仅当CD(u)没有重复元时,U才没有4周期。
(特殊情形中的)重复的元:
我们可能有CD(u)具有重复元的系统。
假设u=…+gm+gr+gp+gq+…,因此m-r=p-1 mod n。失去一般性,假设p>m。
包括以下情形:一个p、q可以是m、n之一,在这种情况下,在u的表达式中不应列出它。
那么,在p>m的情况下,ugp-m=…+gp+gr+p-m+…=…+gp+gq+…,且对于n>n+m-p>0,un+m-p=…+gm+gq+m-p=gm+gr
(注意,m-p=r-q mod n,因此ugp-m=ugq-r=ugn+q-r且ugn+m-p=ugn+r-q=ugr-q)
于是,为了避免短周期,如果使用第一行,则不使用U中的p-m行或n+m-p行,或一般地,如果出现i行,那么必需不出现i+p-m或i+n+p-m行。
改善距离:
然后考虑两个元u,v∈Z2Cn使得uv=0且秩u+秩v=n。令U,V分别为对应于u,v的对应n×n矩阵。
于是,当且仅当yv=0时,C={αu|α∈Z2Cn,}且y∈C。
现在假设y=∑aigi为C中的一般元。我们感兴趣的是短y会怎么样。更精确地,supp(y)是非零ai∈y的数量。于是C的距离=miny∈Csupp(y)。
将v带入形式
Figure GPA00001039812500171
我们正在处理Z2,因此每个系数为0或1。
那么当且仅当yv=0时y∈C。于是,通过考察yv中的gk,k=0,1,…,n-1,我们看出,当且仅当如下方程成立时,y∈C:
α i 1 + α i 2 + . . . + α i r = 0
α i 1 + 1 + α i 2 + 1 + . . . + α i r + 1 = 0
.        .        .        .        .        .
.        .        .        .        .        .
.        .        .        .        .        .
α i 1 + n - 1 + α i 2 + n - 1 + . . . + α i r + n - 1 = 0
其中充分条件被解释为mod n。我们对这个方程的非零解感兴趣。如预期那样获得的矩阵为循环矩阵。我们将其简单地写成:
i1       +i2       +...    +ir       =    0
i1+1     +(i2+1)   +...    +(ir+1)   =    0
.        .         .       .         .     .
.        .         .       .         .     .
.        .         .       .         .     .
(i1+n-1) +(i2+n-1) +...    +(ir+n-1) =    0
注意,在该阵列/矩阵中每个非零元出现同样的次数。
如果第一列中有s个非零值,那么在所有列中有s个非零值。
考虑最短距离,我们可以假设在最短非零字中系数α0是非零的。
现在假设我们有从单元导出的码C=Wu,其中在群环RG中uv=1。令G=g1,g2,...,gn,假设由
Figure GPA00001039812500181
产生W作为模块。那么,当且仅当yv中每个
Figure GPA00001039812500182
的系数全为零时,y∈C。
然后将y写成一般形式啊啊a1g1+a2g2+…+αngn并考虑yv。根据yv中不在S中的G中每个元的系数全为零的事实,得到变量为αi的r个齐次方程的方程组。
于是,对应于G-S中的每个元,得到方程。
通过考虑yv中每个gik∈S的系数导出每个齐次方程。
码距离是该方程组的最短非零解。
然后假设最短距离为s,并在{ali1,ai2,...,ais}非零且所有其他aj都为零时出现。
这些非零系数出现在方程组中。
观察出现这些非零解的方程,通过仔细选择从S删除一些gk。我们获得具有一个额外方程的新方程组。该新方程组包括旧方程组,因此该方程组的任何解都是新方程组的解,是旧方程组的解,因此新方程组的距离至少与旧方程组的距离一样大。
然后可以重新考虑旧方程,以查看哪里出现{ali1,ai2,...,ais}。可以消除这些中任一个都不出现的任何方程,这导致向S增加额外的元。
串联(逐行)LDPC矩阵产生
产生LDPC矩阵的代数方法的一个关键优点是其能够产生需求的LDPC矩阵,甚至需求的特定行或列。在常规编码操作中,将编码矩阵乘以大小正确的要编码信息块,并发送或存储所得的数据。可以逐线地实施这种矩阵操作,于是大大减少了所需存储器或数据寄存器的量。如下所述,可以将本发明应用于这种逐线地实施。
在编码过程中,首先通过适当的矩阵变换,例如高斯消元法,从对应的LDPC/奇偶校验矩阵(大小为(nc-k)×n)获得发生器/编码矩阵(大小为nc×k,其中nc为码字大小,k为数据块大小)。然后将发生器矩阵乘以每个要编码的数据块,获得包含数据位和奇偶校验位的码字。在矩阵乘法过程中,以正比于(nc-k)2的处理成本依次将发生器矩阵的每行乘以数据块。可以利用所谓的“阶梯结构”减少这一计算成本(如D.J.C MacKay“Information theory,inference and learning algorithms”中所述,Cambridge University Press,2003)。在这种情况下,不需要矩阵变换,因为可以将LDPC矩阵直接用于以(nc-k)量级的成本对数据进行编码。在标准编码技术和利用“阶梯”方式的方法中,逐线产生奇偶校验(或发生器)矩阵都是有利的,因为这样不需要一直在存储器中存储整个矩阵。“阶梯”方法给我们带来的另一优点是编码快速(在线性时间中)且执行过程所需的处理能力少。于是,下文描述了适于快速、有存储器效率和功率效率的错误校正编码的LDPC矩阵逐线产生过程的硬件实施。
奇偶校验矩阵H的行等价于从RG矩阵选择的列。因此需要使用为了产生适当LDPC矩阵而选择的参数来产生RG矩阵的期望列,并因此产生奇偶校验矩阵的期望行。
参考图16和17,考虑简单的范例,其中利用以下参数产生大小为48×48的RG矩阵:
4×4子矩阵形式
循环填充行
不删除列(为简单起见)
矢量:V1=[4,9];V2=[5];V3=[1,7];V4[11];
可以容易找到定义1在RG的列(等价于H中的行)中位置的四个新矢量:VA,VB,VC、VD
总的公式为:如果V(i)≈1那么Vx(i)=code_size/4-V(i)+2
否则Vx(i)=1
因此,VA=[48/4-4+2,48/4-9+2]=[10,5]=[5,10];
VB=[48/4-5+2]=[9];
VC=[1,48/4-7+2]=[1,7];
VD=[48/4-11+2]=[3];
现在,可以从以下新定义的矢量开始串行(inline)矩阵产生过程:
VA=[5,10];VB=[9];VC=[1,7];VD=[3];
它们定义了1在奇偶校验矩阵H的行中的位置。
首先,将矢量变换成它们的二进制形式,其中:
VA_binary=[000010000100]  VB_binary=[000000001000]
VC_binary=[100000100000]  VD_binary=[001000000000]
因此如下给出LDPC奇偶校验矩阵第一行(等价于RG矩阵中的第一列):
[VA_binary,VD_binary,VC_binary,VB_binary]
[000010000100001000000000100000100000000000001000]
通过每个块之内定义的矢量行移位形成奇偶校验矩阵的下一行。在该范例中,利用循环移位,其看起来如下:
[000001000010000100000000010000010000000000000100]
然后,
[000000100001000010000000001000001000000000000010]
等等。
继续进行循环移位,直到到达子矩阵块的结尾。然后,需要根据所选的结构改变矢量的布置。在这种情况下,它将变为:
[VB_binary,VA_binary,VD_binary,VC_binary]
根据这一原理产生每一后继行,直到已用完整个矩阵为止,然后重复所有步骤。
在所有情况下,在转置之前都从RG矩阵删除一些列,以产生期望码率和性能。可以为串行实施应用与用于选择要删除哪列的相同方程或方法。实现这一目的的有效方法是在每次到达被删除列时增加额外的循环移位(或无论使用哪种行填充方法),于是基于下一未删除列产生行。
硬件
通过产生奇偶校验矩阵H,可以选择最佳起始矢量供硬件电路使用,以进行编码和/或解码而无需存储或产生矩阵。矩阵无需由电路产生,可以基于先前产生和测试的矩阵在制造或初始化时编写进来。
图18示出了利用4个移位寄存器存储1的位置的电路。电路部件为:
11,对二进制矢量进行连续循环移位的移位寄存器,受计数器控制。
12,向计数器输入关于码大小和速率的信息。
13,计数器控制块的布置(基于码大小和当前行号)。
14,输出是奇偶校验矩阵H的当前行。
这种实施与可用的任何LDPC产生参数兼容。
在另一个实施例中,更紧凑的电路具有直接跟踪每个1的位置的单个位计数器。由于LDPC矩阵具有稀疏特征,这比使用移位寄存器需要显著少的存储器和更少的处理能力。在块的大小是2的整数次幂时这尤其方便,因为二进制计数器在每次循环结束会自动对它们重置。
备选方法将是使用等于子矩阵块长度的单个移位寄存器(或跟踪单个块中1的计数器)并针对每个块对系统进行循环操作。这种方法会包含对列号或行号保持跟踪的额外寄存器(计数器),并会如图19所示逐块地产生期望的行。
LDPC的硬件实现
存储器组织
在常规LDPC编码和解码中,一个问题是用于校验节点和可变节点处理所需的存储器寻址很复杂。
还知道,在单个时钟周期之内同时执行多个行和列操作。
图20和21示出了这种并行硬件体系结构的现有技术。图20的布置同时在整行或列上工作。图21的布置同时在原模图的多行和多列上工作。与串行实施相比,这带来吞吐量的大幅度增长或延迟的减少。然而,这样做的代价是存储器寻址要复杂得多。在本发明中,这种复杂性得到显著减少。
本发明的奇偶校验矩阵比以前的方法具有更多结构。其具有额外的性质,即原模图的行m是行m-1的循环移位。这对导出低复杂性解码器体系机构具有重要启示。在非环体系结构中,主要问题之一是确保在独立存储器指导VNU和CNU处理器执行的并行读取和写入。这是环原模图的自然性质。实际上,这意味着图21所示的体系结构中的存储器组织从M/R×N/R个独立存储器的阵列减少到N/R的阵列。这具有两个效果:(a)显著减轻了ASIC的路由拥塞,(b)更少的更大存储器比很多小存储器更是面积有效。
考虑以下3×3范例。
RG T = A 00 T C 01 T B 02 T B 10 T A 11 T C 12 T C 20 T B 21 T A 22 T
如前面所述并如图21所示,传统的同时在多个行和列上工作的并行架构具有多达N×M个存储器。这没有利用如下事实:所有Axx都是在同一地址被访问的,且通过每个VNU和每个CNU对集合{A’,B’,C’}寻址。可以通过将所有A、B和C一起存储在宽存储器中并利用如下文针对本发明的并行结构所示的线路分布到原始存储器阵列位置来减少存储器碎片。
图22示出了用于群环并行架构的存储器组织,其中,1个校验节点处理器/可变节点处理器在一个周期之内在来自原模图的整个行或列上工作。
图23示出了用于群环并行架构的存储器组织,其中M/R个校验节点处理器和N/R个可变节点处理器在一个周期之内同时在来自原模图的多个整个行或列上工作。
例如,图23中所示的架构会使用3个物理存储器,读取和写入9个字的矢量。例如,在同一地址存储A00、A11和A22,并形成3个字宽的数据总线。这允许由3个物理存储器供应每周期9个消息。这将这种架构存储器组织的存储器复杂性降低到类似于简单得多的矢量串行架构的水平。
将环状结构应用到矢量串行架构实现并行性增大整数R倍,R为扩展大小。实际上,存储器宽度增大到k×R个消息,允许同时处理k个对角原模图条目。在极限情况下,随着k->N,然后在单次循环中处理整个对角线。
尽管802.11n原模图不是环形循环行列式,如果我们假设它是的,那么可以找到用于两个环增强的存储器体系结构。对于图23的体系结构,注意,可以将其划分成由2个对角线构成的阶梯,剩余的12×12原模图具有12个对角线。这些一起提供了多达8个列条目。在下表中,在前两列中示出了现有技术的性能,在第三和第四列中示出了本发明的性能。
  体系结构   宽度(消息)   条目   数量
  现有技术矢量串行   81   88   1
  现有技术并行   1   81   88
  本发明的矢量串行   81xk   88/k   1
  本发明的并行   8   81   14
分层置信传播
考虑分层置信传播(LBP)的应用,这种应用的本质是奇偶矩阵由多层构成,且在下一个中使用对一个层的校验/可变更新。因此,外在信息改善了每层而不是通过迭代。对于具有很多层的矩阵,收敛时间得到显著改善。群环矩阵具有自然分层,其中每个组行为一层。群环矢量串行架构未充分利用LBP,因为它依赖于每个时钟周期对若干层的部分处理。图22中的群环体系结构通过一次处理多层之内的一个扩展矩阵行而充分利用了LBP。图23中的群环体系结构能够映射到LBP上,但仅仅是通过将层重定义为扩展矩阵中的行。
本发明的存储器组织和寻址优点是容易在硬件中执行,并在减少ASIC路由拥塞方面具有很大优点。在需要大的块大小或非常高吞吐量的系统中这是尤其相关的。该技术还适于作为自适应编码技术,允许可变的码率和块大小。
简化的存储器寻址提供了编码器/解码器所需硅面积的显著减小(因为路由拥塞减轻了)。对硅面积影响的大小主要取决于块大小,对于802.11n可以从20-50%变化,对于大块大小系统,为80-95%。尽管这在本质上不会显著提高体系架构的延迟或吞吐量(throughput),但其对于非常高吞吐量的系统可能有很大好处。
体系结构的延迟和吞吐量主要由解码中所需的迭代次数决定,如下所述,本发明相对于当前的802.11n和802.16e标准实现了10-20%的增强。这直接转换成20%的更高吞吐量和20%的更低延迟,或者期望性能所需的硅面积进一步减小。
模拟基准检查
下面的图24和25示出了利用本发明迅速产生并通过基于MATLAB的模拟测试的两个LDPC码的误码率性能。编码器是来自MATLAB电信工具箱的标准LDPC编码器,解码器是来自MATLAB电信工具箱的标准迭代LDPC解码器(消息传递算法)。最后189个(802.11n)和336个(802.16e)列包含与IEEE矩阵中相同的“阶梯”结构。利用代数算法产生其余部分,该算法采用15个(802.11n)和17个(802.16e)初始参数作为输入,并能够逐线重新生成矩阵,而无需在存储器中存储整个结构。图26和27利用本发明和最新标准产生的码针对802.11n情况和802.16e情况示出了迭代与噪声水平的关系。
小块LDPC增强的性能
尽管大块LDPC ECC的性能可以接近Shannon极限,但小块大小的LDPC没有同样的性能。不过,对于小块大小而言,本发明相对于当前的LDPC实施提供了显著的BER性能增强(在基准检查中达到1dB):
可以将所实现的增强的性能用于实现以下任何益处:
—将发射机功率减小1dB,并实现相同的链路性能和范围,但电池寿命更长,大约有25%的改进。
—保持迭代相同并实现更长的范围和更鲁棒的短范围。
—减少迭代以实现与现有方案相同的BER曲线。这种新体系结构能够有更高的总吞吐量。
—减少迭代并取消一些并行性(门电路更少),使得时钟周期中的总解码时间与现有方案相同。这种新的体系结构具有更低的硅面积和成本。
要认识到,本发明为部署LDPC ECC的应用提供了显著的设计优点,包括:
—与已知的802.11n和802.16e标准相比有极好的LDPC BER性能。
—能够迅速设计和产生高性能LDPC矩阵,以实现预定义的性质:码大小、码率和目标误码率(BER)性能。
—使得能够在串行、矢量串行或部分并行架构中硬件实现,允许针对大范围应用调节该技术,同时与现有循环LDPC方法相比实现了存储器寻址需求和路由复杂性的减少。
—实现动态和自适应编码,或者仅仅是码率或码字长度,或者可能是完全自适应的。
—LDPC矩阵结构能够通过分层置信传播进行解码。
由于迭代需求更低,因此编码延迟低,吞吐量高。
该LDPC矩阵产生技术的设计优点提供了以下重要的商业优点:
—能够迅速开发适当的高性能硬件LDPC方案,减少上市的时间。
—相对于已知的LDPC方案存储器存储、路由复杂性、处理和功率预算更有效率。
—根据具体应用的要求精细调谐ECC方案,可能成为完全自适应的编码系统。
—以一小部分成本在迄今仍在LDPC范围之外的应用中实现LDPC的性能。
可以将本发明并入可能嵌入编码和解码电路中的通信(接收机和发射机)和存储装置和设备中。将本发明并入这种装置和系统的可能方法包括诸如专用集成电路(ASIC)、现场可编程门阵列(FGPA)、数字信号处理器(DSP)的处理器方法以及基于存储器或软件的实施等。
多种应用可能受益于本发明,例如(但不限于):
(a)无线网络,包括诸如蓝牙的个域网、诸如Wi-Fi的局域网、诸如Wi-Max的城域网;路边网络(roadside network);数字无线电网络、卫星网络。
(b)高速有线网络,例如吉比特以太网。
(c)磁存储和光存储。
本发明不限于所述实施例或应用,而是可以在构造和细节方面有变化。例如,在另一个实施例中,如果一些前述操作的数学方法使转置成为多余的,则不执行转置。可以应用本发明以产生更大矩阵的块,例如在编码中使用阶梯结构的情况。用于实施本发明的电路可以是专用硬件或被编程来实现利用存储器方法的通用处理器。还可以将本发明应用于全息摄影存储器。

Claims (46)

1.一种由电子或光学电路的数据处理器执行的方法,用于产生群环奇偶校验矩阵H以进行错误校正编码,所述方法包括如下步骤:
(a)选择包含子矩阵的适当群环矩阵结构;
(b)通过选择适当的环和适当的组元来为每个所述子矩阵提供起始矢量;
(c)根据行填充方案利用每个矢量填充所述子矩阵;
(d)利用所述子矩阵填充所述群环矩阵结构,以提供群环矩阵RG;以及
(e)转置所述RG矩阵以生成所述奇偶矩阵H,
其中,所述方法包括另一步骤(f),从所述矩阵RG删除列,删除的列数由比率的期望值决定,所述比率是数据输入与数据输出的目标比。
2.根据权利要求1所述的方法,其中,在所述步骤(a)中,所述RG矩阵在每行和每列中具有N个正方形子矩阵,N为整数。
3.根据权利要求2所述的方法,其中,N为2的幂。
4.根据权利要求1到3中任一项所述的方法,其中,在所述步骤(a)中,所述RG矩阵结构使得所述RG矩阵大小等于码字长度。
5.根据权利要求1到4中任一项所述的方法,其中,步骤(b)中的所有所述子矩阵上的元的数量提供了低密度奇偶校验(LDPC)矩阵。
6.根据权利要求1到5中任一项所述的方法,其中,在所述步骤(b)中,在单个矢量之内或在矢量之间,元之间的差异决不重复。
7.根据前述任一项权利要求所述的方法,其中,在所述步骤(b)中,在单个矢量之内或在矢量之间,元之间的由矢量长度n减去差异所定义的循环间距决不重复。
8.根据前述任一项权利要求所述的方法,其中,在所述步骤(b)中,矢量的数量等于所述码字长度除以子矩阵数量。
9.根据前述任一项权利要求所述的方法,其中,在所述步骤(b)中,以伪随机方式执行构成所述矢量的群环元的选择。
10.根据前述任一项权利要求所述的方法,其中,在所述步骤(b)中,在从包含0和n-1的0到n-1的给定子矩阵的索引范围之内选择矢量元,其中n被定义为码大小除以N。
11.根据前述任一项权利要求所述的方法,其中,所述步骤(b)包括将所述矢量变换成二进制形式,在所述二进制形式中每个元定义了n元行矢量中1的位置。
12.根据前述任一项权利要求所述的方法,其中,所述步骤(c)包括利用线性循环操作填充子矩阵,其中,利用前一行填充子矩阵的各行,其中位置向前或向后循环整数。
13.根据权利要求1到11中任一项所述的方法,其中,所述步骤(c)包括填充所述子矩阵,其中利用前一行填充子矩阵的各行,其中位置向前或向后循环由方程动态确定的整数值。
14.根据前述任一项权利要求所述的方法,其中,连同步骤(a)、(b)、(c)和(d)一起来执行所述步骤(f),以便通过确保所述RG矩阵没有任何零权重列或行且实现由低列权重值附近密集分布而偶尔有高权重值构成的目标列权重分布,来实现良好的距离。
15.根据前述任一项权利要求所述的方法,其中,所述步骤(d)包括对所述子矩阵进行循环布置。
16.根据前述任一项权利要求所述的方法,其中,借助与生成矢量所用规则相符的代数模式来确定在所述步骤(f)中选择要删除哪些列。
17.根据权利要求16所述的方法,其中,连同步骤(a)、(b)、(c)、(d)和(e)一起来执行所述步骤(f),以便确保所述RG矩阵是可逆的,并且所述奇偶校验矩阵没有任何零权重列或行。
18.根据前述任一项权利要求所述的方法,其中,执行步骤(f)以去除或最小化诸如6周期和8周期的与奇偶和数据位相关的环的短周期。
19.根据权利要求16到18中任一项所述的方法,其中,步骤(f)包括如下子步骤:
(i)确定要取用的具有非零支持的组元差集以校验群环码,
(ii)选择所述校验码的组元,使得所述差集不包含重复元,
(iii)使用其带有非零支持的组元具有无重复(组)元的差集的群环元,以及
(iv)通过确定要删除所述矩阵的对应于所述群环元的哪些行来选择比率。
20.一种适于在包括如下步骤的方法中产生用于错误校正编码的奇偶校验矩阵H的电子或光学电路:
(a)选择包含子矩阵的适当群环矩阵结构;
(b)通过选择适当的环和适当的组元来为每个所述子矩阵提供起始矢量;
(c)根据行填充方案利用每个矢量填充所述子矩阵;
(d)利用所述子矩阵填充所述群环矩阵结构,以提供群环矩阵RG;以及
(e)转置所述RG矩阵以生成奇偶矩阵H,
其中,所述方法包括另一步骤(f),从所述矩阵RG删除列,删除的列数由比率的期望值决定,所述比率是数据输入与数据输出的目标比。
21.根据权利要求20所述的电路,其中,所述电路包括用于为步骤(c)进行二进制矢量连续循环移位的移位寄存器以及控制所述移位寄存器工作的计数器。
22.根据权利要求20或21所述的电路,其中,所述电路包括对二进制矢量的非零元位置进行跟踪的计数器,且所述处理器适于使计数器递增以生成每个下一行。
23.根据权利要求22所述的电路,其中,所述电路适于以非线性方式使所述计数器递增。
24.根据权利要求23所述的电路,其中,所述电路适于使所述计数器递减。
25.根据权利要求22到24中任一项所述的电路,其中,所述矩阵H的大小是2的整数N次幂,所述计数器具有类似位的大小。
26.根据权利要求20到25中任一项所述的电路,其中,所述电路适于执行步骤(b),使得在单个矢量之内或在矢量之间元之间的差异决不重复。
27.根据权利要求20到26中任一项所述的电路,其中,所述电路适于执行步骤(b),使得在单个矢量之内或在矢量之间元之间的由矢量长度n减去差异所定义的循环间距决不重复。
28.一种用于数据编码或解码的方法,所述方法包括如下步骤:
(i)接收利用由根据权利要求1到19中任一项所述的方法产生的奇偶校验矩阵H的行矢量计算出的起始矢量;
(ii)对所述矢量进行循环移位以产生所述奇偶校验矩阵H的期望输出行;
(iii)根据RG矩阵结构和所选行重新布置所述矢量的操作次序;
(iv)对要编码信息上的矢量进行操作;以及
(v)针对所述奇偶校验矩阵H的下一行重复步骤(ii)到(iv)。
29.根据权利要求28所述的方法,其中,对于步骤(ii),每次到达被删除列时所述电路都增加额外的循环移位,从而基于下一未删除列生成行。
30.根据权利要求28或29所述的方法,其中,对于步骤(i)和(ii),将矢量转换至计数器,每个计数器存储矢量元的位置。
31.根据权利要求30所述的方法,其中,计数器直接跟踪每个1的位置且所述计数器的块大小是2的整数次幂,因为二进制计数器在每次循环结束会自动对它们重置。
32.根据权利要求30或31所述的方法,其中,通过对应于下一期望行的期望移位对所述计数器进行递增或递减。
33.根据权利要求28或29所述的方法,其中,步骤(ii)是由移位寄存器执行的。
34.一种用于编码或解码的电子或光学电路,所述电路适于执行如下步骤:
(i)接收利用由根据权利要求1到19中任一项所述的方法产生的奇偶校验矩阵H的行矢量计算出的起始矢量;
(ii)对所述矢量进行循环移位以产生所述奇偶校验矩阵H的期望输出行;
(iii)根据RG矩阵结构和所选行重新布置所述矢量的操作次序;
(iv)对要编码的信息上的所述矢量进行操作;以及
(v)针对所述奇偶校验矩阵H的下一期望行重复步骤(ii)到(iv)。
35.根据权利要求34所述的电路,其中,对于步骤(ii),每次到达被删除列时所述电路适于增加额外的循环移位,从而基于下一未删除列生成行。
36.根据权利要求34或35所述的电路,其中,所述电路包括计数器并适于通过将矢量转换至计数器值来执行步骤(i)和(ii),每个计数器值存储矢量元的位置。
37.根据权利要求36所述的电路,其中,所述电路包括计数器,所述计数器适于直接跟踪每个1的位置且所述计数器块的大小是2的整数次幂,因为二进制计数器在每次循环结束会自动对它们重置。
38.根据权利要求36或37所述的电路,其中,通过对应于所述下一期望行的期望移位对所述计数器进行递增或递减。
39.根据权利要求34或35所述的电路,其中,所述电路包括移位寄存器且步骤(ii)是由所述移位寄存器执行的。
40.一种用于产生前向错误校正数据流的通信装置,所述装置包括根据权利要求20到27或34到39中任一项所述的用于编码或解码的电路。
41.一种利用LDPC群环奇偶校验矩阵进行数据编码或解码的方法,所述方法提供减小的存储器存储复杂性,其中原模图条目的对角线矩阵元是前一行的循环移位,所述对角线矩阵元存储于相邻存储器地址之内,允许可变节点和校验节点过程访问数量减少的更大存储器。
42.一种适于执行根据权利要求41所述方法的LDPC编码器或解码器矢量串行架构电路。
43.一种适于执行根据权利要求41所述的方法的LDPC编码器或解码器并行架构电路,其中,所述电路在每个周期中对整行或整列的原模图条目进行操作。
44.一种适于执行根据权利要求41所述的方法的LDPC编码器或解码器并行架构电路,其中,所述电路在每个周期中对多个整行或整列的原模图条目进行操作。
45.根据权利要求43或44所述的电路,适于利用矩阵的环循环性质定义层,或将扩展矩阵中的行映射到所述层上,然后将来自一层的校验/可变更新应用于后续层,从而使用分层置信传播,以实现增强的解码器收敛时间。
46.一种用于存储程序的计算机可读存储器,当在数字处理器上执行所述程序时,所述程序用于执行根据权利要求1到19、28到33或41中任一项所述的方法。
CN200880105326A 2007-07-02 2008-07-01 奇偶校验矩阵的产生 Pending CN101796488A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US92953307P 2007-07-02 2007-07-02
US60/929,533 2007-07-02
PCT/IE2008/000071 WO2009004601A2 (en) 2007-07-02 2008-07-01 Generation of parity-check matrices

Publications (1)

Publication Number Publication Date
CN101796488A true CN101796488A (zh) 2010-08-04

Family

ID=40226613

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200880105326A Pending CN101796488A (zh) 2007-07-02 2008-07-01 奇偶校验矩阵的产生

Country Status (7)

Country Link
US (1) US20090019333A1 (zh)
EP (1) EP2176758B1 (zh)
JP (1) JP2010532129A (zh)
CN (1) CN101796488A (zh)
AT (1) ATE487982T1 (zh)
DE (1) DE602008003456D1 (zh)
WO (1) WO2009004601A2 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106126187A (zh) * 2016-06-20 2016-11-16 符建 一种基于正交伪随机相位编码的光场并行计算装置及方法
CN106899310A (zh) * 2017-02-23 2017-06-27 重庆邮电大学 一种利用完备差集构造原模图qc‑ldpc码的方法
WO2023174027A1 (zh) * 2022-03-14 2023-09-21 华为技术有限公司 一种网络编码方法以及装置

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8423871B2 (en) * 2007-07-13 2013-04-16 Panasonic Corporation Transmitting device and transmitting method
US8219873B1 (en) 2008-10-20 2012-07-10 Link—A—Media Devices Corporation LDPC selective decoding scheduling using a cost function
US8397125B2 (en) * 2008-12-31 2013-03-12 Stmicroelectronics, Inc. Encoding apparatus, system, and method using low density parity check (LDPC) codes
US8196012B2 (en) * 2009-10-05 2012-06-05 The Hong Kong Polytechnic University Method and system for encoding and decoding low-density-parity-check (LDPC) codes
WO2011099281A1 (ja) * 2010-02-10 2011-08-18 パナソニック株式会社 送信装置、受信装置、送信方法及び受信方法
WO2011126578A1 (en) * 2010-04-09 2011-10-13 Link_A_Media Devices Corporation Implementation of ldpc selective decoding scheduling
WO2012039798A2 (en) * 2010-06-15 2012-03-29 California Institute Of Technology Rate-compatible protograph ldpc codes
US8918694B2 (en) 2011-02-28 2014-12-23 Clariphy Communications, Inc. Non-concatenated FEC codes for ultra-high speed optical transport networks
US10103751B2 (en) * 2011-02-28 2018-10-16 Inphi Corporation Non-concatenated FEC codes for ultra-high speed optical transport networks
US10063262B2 (en) * 2011-02-28 2018-08-28 Inphi Corporation Non-concatenated FEC codes for ultra-high speed optical transport networks
US8832520B2 (en) 2011-11-29 2014-09-09 California Institute Of Technology High order modulation protograph codes
US8914706B2 (en) 2011-12-30 2014-12-16 Streamscale, Inc. Using parity data for concurrent data authentication, correction, compression, and encryption
US8683296B2 (en) 2011-12-30 2014-03-25 Streamscale, Inc. Accelerated erasure coding system and method
US9100052B2 (en) * 2013-02-01 2015-08-04 Samsung Electronics Co., Ltd. QC-LDPC convolutional codes enabling low power trellis-based decoders
US9804925B1 (en) 2014-02-25 2017-10-31 Google Inc. Data reconstruction in distributed storage systems
US10367525B2 (en) * 2015-05-29 2019-07-30 National Instruments Corporation Incremental loop modification for LDPC encoding
US10110256B2 (en) * 2016-09-16 2018-10-23 Micron Technology, Inc. Apparatuses and methods for staircase code encoding and decoding for storage devices
US10929226B1 (en) * 2017-11-21 2021-02-23 Pure Storage, Inc. Providing for increased flexibility for large scale parity
US11424766B1 (en) 2020-01-31 2022-08-23 Marvell Asia Pte Ltd. Method and device for energy-efficient decoders
CN112054809A (zh) * 2020-08-28 2020-12-08 杭州华澜微电子股份有限公司 改进的tpc纠错算法和装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6633856B2 (en) * 2001-06-15 2003-10-14 Flarion Technologies, Inc. Methods and apparatus for decoding LDPC codes
CA2536259C (en) 2002-08-20 2011-05-24 Flarion Technologies, Inc. Methods and apparatus for encoding ldpc codes
US7617441B2 (en) 2005-07-18 2009-11-10 Broadcom Corporation Efficient construction of LDPC (Low Density Parity Check) codes with corresponding parity check matrix having CSI (Cyclic Shifted Identity) sub-matrices
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
US7644335B2 (en) * 2005-06-10 2010-01-05 Qualcomm Incorporated In-place transformations with applications to encoding and decoding various classes of codes

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106126187A (zh) * 2016-06-20 2016-11-16 符建 一种基于正交伪随机相位编码的光场并行计算装置及方法
CN106126187B (zh) * 2016-06-20 2019-02-22 符建 一种基于正交伪随机相位编码的光场并行计算装置及方法
CN106899310A (zh) * 2017-02-23 2017-06-27 重庆邮电大学 一种利用完备差集构造原模图qc‑ldpc码的方法
WO2023174027A1 (zh) * 2022-03-14 2023-09-21 华为技术有限公司 一种网络编码方法以及装置

Also Published As

Publication number Publication date
WO2009004601A3 (en) 2009-06-25
WO2009004601A9 (en) 2010-03-25
ATE487982T1 (de) 2010-11-15
EP2176758B1 (en) 2010-11-10
EP2176758A2 (en) 2010-04-21
US20090019333A1 (en) 2009-01-15
DE602008003456D1 (de) 2010-12-23
JP2010532129A (ja) 2010-09-30
WO2009004601A2 (en) 2009-01-08

Similar Documents

Publication Publication Date Title
CN101796488A (zh) 奇偶校验矩阵的产生
CN101924565B (zh) Ldpc编码器、解码器、系统及方法
KR100996029B1 (ko) 저밀도 패리티 검사 코드의 부호화 장치 및 방법
CN101141133B (zh) 一种结构化低密度校验码的编码方法
JP5551209B2 (ja) 可変サイズのパケットのldpc符号化及び復号化
CN1983823B (zh) 编码器、解码器、以及编码和解码的方法
CN102638274B (zh) 利用向量行分组的结构化ldpc设计操作发送器的设备及方法
CN101567697B (zh) 一种速率兼容的低密度奇偶校验码编码方法和编码器
US20110289375A1 (en) Method for constructing an ldpc code, transmitter, and receiver
WO2007088870A1 (ja) 検査行列生成方法、符号化方法、復号方法、通信装置、符号化器および復号器
KR20080033381A (ko) 검사 행렬 생성 방법, 부호화 방법, 복호 방법, 통신 장치,통신 시스템, 부호화기 및 복호기
CN107370490A (zh) 结构化ldpc的编码、译码方法及装置
CN102075198A (zh) 准循环低密度奇偶校验卷积码编译码系统及其编译码方法
CN101159435B (zh) 基于移位矩阵分级扩展的低密度校验码校验矩阵构造方法
KR102303379B1 (ko) 준-순환 저밀도 패리티 체크를 위한 설계 방법 및 장치
CN101373976A (zh) 生成ldpc校验矩阵的方法和设备
CN103199877B (zh) 一种结构化ldpc卷积码构造编码方法
KR100918741B1 (ko) 이동 통신 시스템에서 채널 부호화 장치 및 방법
KR101216075B1 (ko) 채널 코드를 이용한 복호화 및 복호화 장치
CN101465655B (zh) 极短码长低密度奇偶校验码的编码方法
CN1753315A (zh) 一种低密度奇偶校验码的编码方法
CN1973440A (zh) Ldpc编码器、解码器、系统及方法
CN101577554B (zh) 多码长多码率的低密度奇偶校验码的编码方法
CN105871385B (zh) 一种ldpc卷积码构造方法
CN107947802A (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
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20100804