CN1515080A - 使用数据存储或数据传输的低密度奇偶校验码的方法和编码装置 - Google Patents
使用数据存储或数据传输的低密度奇偶校验码的方法和编码装置 Download PDFInfo
- Publication number
- CN1515080A CN1515080A CNA02811566XA CN02811566A CN1515080A CN 1515080 A CN1515080 A CN 1515080A CN A02811566X A CNA02811566X A CN A02811566XA CN 02811566 A CN02811566 A CN 02811566A CN 1515080 A CN1515080 A CN 1515080A
- Authority
- CN
- China
- Prior art keywords
- matrix
- parity check
- row
- parity
- bibd
- 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/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/116—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
-
- 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
-
- 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
-
- 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/25—Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
- H03M13/255—Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM] with Low Density Parity Check [LDPC] codes
-
- 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/6561—Parallelized implementations
Abstract
一种为数据编码产生低密度奇偶校验码的方法包括:从对称不完全块设计(BIBD)构造奇偶校验矩阵H,其中定义矩阵H的多个B-集只有一个交点。然后,用所构造的奇偶校验矩阵H产生奇偶校验比特。
Description
相关申请的参照
本申请要求以下申请的优先权:美国临时申请号为60/296,223,提交于2001年6月6日且名为“METHOD AND CODING USING LOW DENSITY PARITY CHECK CODESFOR DATA STORAGE OR DATA TRANSMISSION”、以及美国临时申请号为60/314,987,提交于2001年8月24日,名为“A METHOD AND CODING MEANS USING ANTI-PASCHLDPC CODES”。
发明领域
本发明一般涉及数据存储和/或通信系统,尤其涉及使用低密度奇偶校验码(LDPC)的迭代软硬译码来改进比特差错率。
发明背景
维特比算法(VA)自六十年代中期被发明以来一直是通信和存储系统中非常有效的数据检测方法。软输出维特比算法(SOVA)是VA的改进,其中VA以格子结构给出了每一个传输比特的最可能路径序列和“后验”概率。本领域著名的BCJT(Bahl,Cocke,Jelinek和Raviv)算法也给出了类似的后验概率(软输出)。这些算法,当与卷积调制编码的软译码机制相结合,就形成了有效的迭代“turbo”译码机制。SOVA和BCJR都可以用在存在于很多通信与存储系统的局部响应(PR)信道中。尽管这些机制的比特差错率(BERs)接近最低记录水平,它们的应用复杂度和错综的延时带来了严重的问题。
据发现,在加性高斯噪声信道中长Gallager码可以取得几乎最优性能。在过去几年中,几个低密度奇偶校验码(LDPCs)已经被设计的性能很接近理论极限。而且,由于消息传递算法(MPA)的翻译通过图形模型传播,已经获得对迭代译码的重要了解。使用消息通过术语的的图形模型被引入。尽管有此重大进展,仍没有考虑编码复杂度的问题。尽管对高容量‘速率和误码性能的考虑重要,复杂度因素往往控制系统结构和设计考虑事项,特别在极高速应用中,诸如磁记录中。
本领域提出的迭代译码器有很高的复杂度,被认为不能在快于1Gbps状态下运行,1Gbps为现在磁记录读信道的一般速度。在随机编码中需要大量信息来确认奇偶校验矩阵中非零元素的位置,所提出机制的高复杂度是此事实的直接结果。过去几年中,LDPCs在磁记录方面的应用已成为一个活跃的研究领域。几项研究结果最近已发表,基于随机编码的几种机制也被提出。然而,这些机制没有提供足够的编码增益来调整所需的编码/译码复杂度的增加。
为磁记录设计码的第一困难是马率必须高(8/9或者更高),因为实际上不可能通过改良的适当复杂度的检测技术来补偿速率损失,特别是在高记录密度时。第二限制因素是热粗糙。例如当读头碰到盘上的灰尘微粒时,热粗糙发生。热粗糙能引起误码的突发,此误码具有即使通过强编码也无法纠正的长度,这种情况下,必须段重读。
处理热粗糙的常用方法是使用高速率误码事件检测与Reed-Solomon(RS)编码级联的块编码。另一种选择是用RS编码代替更长的迭代可译码编码,但是至今没有使用实际信道的产物被报道。
解决上述问题的方法是本领域内的重要改进。
发明摘要
本发明通过提供对要通过通信信道发送或要被记录在记录媒质上的数字信息编码的新颖的方法与装置,从而解决上述问题。该方法最好使用Kirkman编码来对用户比特编码。本发明也提供了用于对通过通信信道发送或被存储在记录媒质中的信息进行译码的方法和装置。
提供了在特定的Steiner(v,3,1)系统中使用对称不完全块设计(BIBD)的高速率可迭代译码的编码的组合构造。这种构造给出了奇偶校验矩阵,其列权重为3、最小周长为4、6或更高。这些系统是用循环差异系列Zv构造的,其中v≡1mod6,v为基本功率。这些编码的复杂度极低,基本上由块设计所依据的差异系列的大小来决定。还提出了一种使用新编码的循环结构的硬件有效编码算法。
除Zv之外的组也可以导致低复杂度应用。组的不同选择可以降低MPA内误码事件传播的效应。此问题的系统解决包括搜索所有的异构,并且由于这些组支持本地化的消息传递而去除具有固定点的组(差的交织器也可以产生同样的效果)。另一方面,由于具有小Pasch因子的组(即共享6点(等式)的4个集合块(bits))防止了本地消息传递,因此它们应该得到支持。
通过下面提出的结合附图的详细描述,表征本发明实施例的这些和各种其他特性及优点将变得更加明显。
附图简述
图1是根据本发明实施例的盘驱动器平面图。
图2是说明其中可实施本发明实施例的读信道结构的框图。
图3-1和3-2说明了用来描述本发明的等式(Equation)和伪码(Pseudocode)。
图3-3和3-4说明了用来描述本发明各方面的表格。
图4是Kirkman(7,3,1)系统的低密度奇偶校验(LDPC)码的二分图。
图5是Steiner系统码的码长对码率的曲线图。
图6是GF(6t+1)循环差异系列的图表描述。
图7是按照本发明某些实施例的低密度奇偶校验矩阵结构的图表说明。
图8是说明按照本发明一些实施例的编码器框图。
图9是说明按照本发明一些实施例的图8所示编码器第一部分的框图。
图10是说明按照本发明一些实施例的并-串编码器的框图。
图11是Kirkman(13,3,1)系统的奇偶校验矩阵。
图12是说明具有两个基块的LDPC码的编码器框图。
图13是说明具有三个基块的LDPC码的编码器框图。
图14是不同Kirkman LDPC码的比特差错率(BER)的曲线图。
优选实施例的详细描述
本发明包括结构良好的低密度奇偶校验码,以及用于对它们编码译码的方法和装置。这些码的奇偶校验矩阵完全由少数参数的集合所决定,并且会产生极低的复杂度。尽管二分图是体现消息-传递算法的有用工具,然而它们在编码设计中不那么便利。这里描述的结构完全是组合的。该结构与现有技术结构相比较简单,它以对称不完全块设计(BIBD)为基础。更具体地说,本发明的编码以Steiner三重系统和Zv组为基础,其中v是描述此码的奇偶校验方程的个数。BIBD用Netto的差异系列和Zv来构造,其中v是基本功率,而且示出这些编码的复杂度极低,并且基本上由块设计所基于的差异系列的大小来决定。还提出了使用循环结构的BIBD的硬件有效编码算法。
为了评估所提出编码的性能,考虑一系统,其中从使用在信道格子上运行的BCJT或SOVA的部分响应信道中提取软信息,然后把软信息从BCJT或SOVA向前和向后传送到消息传递算法(MPA)。使用此设置的动机是为了解译码方案中Steiner型编码的潜力,在运行速度超过1Gbps的读信道码片中具有较低的实现复杂度。尽管在对任何线性码编码和译码的文献中描述了一般方法和装置,然而当应用于当今VLSI技术水平的所提出的LDPC编码中时,它们不能在最有效长度码的硬件中实现。这里描述的方法和装置克服了这些限制。
图1是盘驱动100的平面图,该盘驱动包括具有基站102和顶盖104(为了清楚而去除顶盖部分104)的外壳。盘驱动100还包括安装在主轴马达上的磁盘组106(未示出)。磁盘组106包括多个独立盘107,它们安装在中轴线108周围共同旋转。每个盘107具有相关的产品头112,它携带一或多个用来与盘表面109通信的读写传感器(读写头)。每个产品头112由悬架118支撑,悬架118又连接在传动器部件122的轨道存取臂120上。传动器部件122根据受伺服控制电路控制的语音线圈马达124绕轴126旋转,从而使头部112在盘内径132和盘外径134之间的弧形路径130内移动。
图1还示出电路128,它代表与信道结构相关的电路,所述信道结构用于处理要被写入盘或者媒质表面的信号或要从中读取的信号。电路128所在的位置不需要在图1中示出,但是图1中示出的电路128的位置被提供作为讨论目的的例子。而且,盘驱动100往往代表可实现本发明方法和装置的各种数据存储装置。例如,在一实施例中,盘驱动100是使用垂直记录技术和组件的磁盘驱动。然而在另一实施例中,盘驱动100可以是其它类型的磁盘驱动,或者可是其它类型的盘驱动,诸如光盘驱动、磁光盘驱动等。这里所公开的方法和装置也可以用于其它数据存储装置,例如用于磁带存储装置。而且,本发明的方法和装置也可以用在除数据存储系统之外的环境中。例如,本发明方法和装置还可以用于通信系统中。接下来的讨论,尽管有时专门针对数据存储系统,适用于本发明所有这样的应用。
图2是说明用于实现本发明某些实施例中信道结构的电路128的框图,在此结构中数据头与记录媒质相互作用,例如在盘驱动或其它数据存储系统中。尽管在图2中以数据存储系统的上下文示出本发明的低密度奇偶校验码生成系统和方法,然而它们不限于用在数据存储装置中,而可以用在像通信系统这样的其它环境中。
如图2所示,信道结构可以包括多个不同的编码/译码电路,每个电路为不同的目的以不同的方式编码或译码数据。图2各块中所示的各种电路可以用集成电路、离散组件或者适当编程的处理电路来实现。为了讨论,图2中示出的各个块一般被称为存在电路。
如图2所示,要被记录在记录媒质109上的消息字的数据比特被提供给循环冗余码校验(CRC)编码器电路202,然后给RS纠错码(ECC)电路204。循环冗余码校验编码电路用本领域公知的编码技术类型对数据编码,以便使译码过程中误纠错最小。纠错码电路204将附加比特引入消息数据比特。附加比特提高了当已编码信号被记录信道引入的噪声破坏时系统恢复信号的能力。CRC编码器电路202和ECC编码器电路204的顺序不局限于图2所示的特定排列顺序。而且,图2所示的电路128包括RS ECC译码器电路218和CRC检验器电路220,以便可以对用头部112从媒质读回的数据进行译码和CRC检验。
内部子信道内有运行长度受限的(RLL)编码器206和译码器216,它们为本领域公知的类型。在其它实施例中,运行长度受限编码器206如果需要可以在RS ECC编码器前实现。类似的RLL译码器216的再定位也可以发生在其它实施例中。信道编码器电路208用按照下面详细描述的本发明产生的LDPC编码对数据进行编码。尽管图2的特定位置处示出了信道编码器电路208,在其它实施例中,它可以在RLL编码器电路206之前实现。
预编码电路210任选地包含在内部子信道中,可以用来实现码率为1/1的编码。一般地,预编码电路210用来消除灾难性误码事件并且/或者将数据从二进制转化为其它格式。前端和定时电路212对从头部读回的模拟信号进行滤波,并且将其转化为数字信号,为回读信号的采样提供定时。检测机制电路214将数字信号转化为二进制(即1和0的)信号。
1.方法的理论基础
对称不完全块设计(BIBD)是数对(V,B),其中V是v集,B是b个k子集的集合,称为块,V的每个元素包含在恰好r个块中,V的任何2-子集包含在恰好λ个块中。因为bk=vr,同时λ(v-1)=r(k-1),符号(v,k,λ)-BIBD用来表示具有v点、块大小为k且索引为λ的BIBD。块大小k=3的BIBD被称为“Steiner三重系统”。λ=1的Steiner三重系统被称为“Kirkman系统”。例如,块的集合B=(B1,B2,...,B7):B1={0,1,3},B2={1,2,4},B3={2,3,5},B4={3,4,6},B5={0,4,5},B6={1,5,6},B7={0,2,6},
是v=7且b=7的(7,3,1)Kirkman系统的例子。如这里所定义的,数对(V,B)的点块(point block)关联矩阵为v×b的矩阵A=(ai,j),其中如果B的第j块中出现V的第i个元素,则ai,j=1,否则ai,j=0。在这个例子中,系统的点块关联矩阵A在图3-1的等式(1)中示出。
每个块都与k个点相关,每个点都与r个块相关。如果b=v且r=k,则BIBD被称为对称的。k≥3的对称(v,k,λ)-BIBD和有限投影面在概念上等价。将点看作奇偶校验等式,将块看作线性块码,那么A定义了一个Gallager码的奇偶校验矩阵H。Gallager码在本领域内公知。行重为r,列重为k,码率为R=(b-rank(H))/b。
矩阵A的第一列与块B1相对应,因为它代表第一比特“连到”零校验点、第一校验点和第三校验点上。在上例中,矩阵A的第二到第七列与块B2到B7相对应,每个块中的数目都表示与比特相连的校验点数目。
已经示出,当用基于图形可信传播的迭代算法译码时,在加性白高斯噪声(AWGN)信道中,具有随机解析奇偶校验矩阵的长Gallager码(也称为低密度奇偶校验码)能接近于最优比特差错率(BER)。为了显示译码算法,把奇偶校验矩阵表示成有两种顶点的二分图,如本领域内公知。图4示出了Kirkman(7,3,1)系统的二分图示例,该系统的关联矩阵在上面给出。第一子集由比特组成(一般在图4的250处说明),第二子集是奇偶校验等式或点的集合(一般在图4的252处说明)。如果此比特包含在校验中,则比特和校验之间存在边缘。注意到在图4示出的二分图中,每比特有三个校验,如每比特与可用校验间的三个连接所说明的。转化为块设计术语,两个顶点集合为V和B,而如果a在Bi中,则点a和Bi之间存在一边缘。换句话说,H为点块关联矩阵A。
注意到使用投影几何学构造码会产生等效对称的BIBD。因为对于对称BIBD而言,奇偶校验次数等于比特数(b=v),码率非常低(略高于1/2)。因此,投影几何学对于高速率应用不是非常有用。因为本领域的技术人员可能更熟悉二分图术语,所以尝试在编码设计的每个步骤中强调两者的等效性。
注意到期望在尽量多的等式中“校验”每个比特,但由于译码算法的迭代特性,二分图不能包括短周期。换句话说,图形的“周长”(最短周期的长度)必须大。这两个要求是相互矛盾的,当目标为构造一个既短而且又高速率的码时,折衷特别困难。周长限制等效于V的每个t-元素子集包含在尽可能少的块中的限制。如果每个t-元素子集包含在恰好λ个块中,则优先的设计被称为“t-设计”。例如,5-设计的是扩展的三进制Golay码。然而,基于t-设计(t>2)的码率很低,因此分析被限于2-设计,即BIBD,或者尤其限于次数λ=1的设计。λ=1的限制意味着只有一个块包括相同的点对,或者相当于二分图中没有长度为四的周期。同样等效于限制:奇偶校验矩阵没有两列包含相同位置处的两个1。
根据r(k-1)=λ(v-1),且bk=vr,得出图3-1示出的等式(2)给出码率R。此等式也适用于一般的t-设计,t>1。图5画出对于基于BIBD(v,2,1)和BIBD(v,3,1)系统的编码的期望码长b相对于给定码率(R=(b-v)/b)的曲线。在实验中,k=3的码在某种程度上展现了较好的误码性能。而且,k=2的最大速率BIBD编码的构造价值不大。
从图5可以看出,速率R>0.9的短的无周期码长度b>500。周期长度分布很容易从关联矩阵中获得。“耦合”矩阵C=(cij)在这里被定义为C=ATA-diag(ATA)。元素cij给出了由块(比特)i和j共享的点(检验)的数目。Cl的元素ci,j l(l>1)给出了长度l的循环次数,其中包含了每个块(比特)j。diag(Cl)(l>1)给出“第l级耦合剖面图”。ci,j 2>0的块i被称为“紧密耦合”。对于(v,k,1)-BIBD设计而言,C=J-I,其中I是单位矩阵,J是b×b的全1矩阵。因为C是对称的,因此耦合剖面是均匀的。
码设计
上述讨论中已示出,Steiner系统的概念提供了一种不用短周期来涉及编码的工具。因为以这种方式构造的码是结构化的,因此它们能使自身以低复杂度实现。在这部分中,Steiner系统的简单构造可被定义为使用Abelian组的差异系列。
设定V为序号为v的Abelian加法组。那么如果当系列的同一元素中两个元素之差可以恰好用λ种方式表示V的每个非零元素,即,在bi,m-bi,n(1≤i≤k,1≤m,n≤k)之差中间发生λ次,则V的t个k-元素子集(Bi={bi,1,...,bi,k},1≤i≤t)形成(v,k,1)的“差系列”(DF)。在(v,k,1)DF中,λ等于1。集合Bi被称为“基块”。如果V与Zv(一组整数模数v)同构,那么(v,k,1)DF称为“循环差异系列”(CDF)。例如,块B1={0,1,3}是(7,3,1)CDF的基块。为了说明这点,可以创建差异Δi,j=(b1,i-b1,j)模7运算的阵列Δ=(Δi,j),如图3-1中等式(3)所示。
例如,根据上面所定义的B1={0,1,3},Δ1的第一行为0,6,4。第一个元素0被计算为0-0=0。第二个元素6,被计算为0-1=-1(为6模7的结果)。第三个元素4,被计算为0-3=-3(为4模7的结果)。
Δ1的第二行为1,0,5。第一个元素1,被计算为1-0=0。第二个元素0,被计算为1-1=0。第三个元素5,被计算为1-3=-2(为5模7的结果)。
Δ1的第三行为3,2,0。第一个元素3,被计算为3-0=3。第二个元素2,被计算为3-1=2。第三个元素0,被计算为3-3=0。在本发明的方法中,阵列应被设计为在任何矩阵中(例如Δ1中),所有非零元素都是唯一的(只发生一次)。
如从等式(3)中可见,Z7的每个非零元素在Δ1中只出现一次。也可以认为该组的行为是将B分成类或轨道。轨道集合代表基块的集合。给定基块Bj,1≤j≤t,包含Bj的轨道可以被计算为Bj={bj,1+g,...bj,k+g},其中g便利了V的每个元素。BIBD的构造通过为所有基块创建轨道来完成。例如,可以容易的证明(通过创建阵列Δ),块B1={0,1,4}和B2={0,2,7}是组V=Z13的(13,3,1)CDF的基块。图3-3的表1给出了两条轨道。
如果差异系列的个数为t,BIBD中的块的数目就为b=tv。图11示出与表1内的(13,3,1)BIBD对应的奇偶校验矩阵。此矩阵只包括列重为3的列。当然,由于我们的例子中组的次数小,所以码率低(R=1/2)。基于Zv的编码特别值得关注,因为它们概念上极其简单,并且具有硬件上可以简单实现的结构。同样注意到对于给定的限制(v,k,1),基于BIBD的结构使码率最大化,如使用图3-1的等式2可见。只要基块属于CDF,码率就独立于优先组,因此没有两条轨道会重叠。其它组可能导致相似或更好的编码,但在本申请中没有对它们进一步讨论。
循环差异系列的结构
一旦CDF已知就可以很直接构造BIBD设计。然而,寻找CDF是个更复杂的问题,只能为某些v、k和λ的值解决此问题。这部分中描述了CDF的结构。为了使讨论简单而使用Kirkman系统差异系列。这些差异系列由Netto在一个多世纪前构造。如果v一个质数且满足v≡1(模6),则Netto的结构可用。当v是一个质数的幂时,Zv是一个伽罗瓦域GF(v),我们可以定义这个域的乘法群Ψ。
设ω是乘法群的生成器(GF(v)中的基本元素)。将v写为v=6t+1,t≥1,且d为v-1的除数,用Ψd表示GF(6t+1)中ω的d次方的群,用ωtΨd表示ωi的d次方的陪集(co-set)。那么集合{ωiΨ2t|1≤i≤t}定义了Kirkman(6t+1,3,1)差异系列。所揭示的为结果后面的直觉,而不是证明的详细推导。
图6描述了GF(6t+1)。通过基本元素ω1=2产生群。ω的幂作为圆周上的点被示出(也由圆圈中的整数值标记)。因为ω的阶数为v-1=12,ω12=1。ω1的2t=4次方的群被示作星形装置(或者时钟指针)。两个3元集合B1={2,5,6}和B2={4,10,12}为Kirkman(13,3,1)系统的基块。B1和B2同等间隔地分布在圆周上,并且可以通过增加g∈{1,2,...,12}获得所有其它三元组,即通过逆时针旋转星形(时钟指针)并且读出被指针覆盖的元素来获得。作为说明,图3-3的表2中给出一些小质数的基块。
图3-4的表3和4给出了其它高速率(R>9/10)Kirkman编码的基块列表。它们用上述CDF来构造。注意到,最长码的编码率非常高,为R=0.962。可以组合包括不同比特群的两个或多个DF(譬如BIBD块)以创建长度为4096的码。
2.方法的描述
编码
如上所述,差异序列完全描述了奇偶校验矩阵中非零元素的位置。给定(v,k,1)CDF,Zv的t个k元子集,基块Bj={bj,1,...bj,k},1≤i≤t,奇偶校验矩阵可以被写成H=[H1H2...Ht]的形式,其中每个子矩阵都是v×v维。对于Kirkman码,对于所有的1≤i≤t,rank(Hi)=v,一般rank(Hi)≤v。假定码字c是长度为tv的列向量,并且使用条件Hc=0,我们得到图3-1所示等式(5)的关系式。在等式(5)中,m是(t-1)v个数据比特组成的列向量,p是v个奇偶校验比特组成的列向量。奇偶校验比特能从图3-1的等式(6)所示的表达式计算出。
将消息向量分解成t-1个v维的子向量,使m=[m(1)m(2)...m(t-1)]T,等式(6)变为图3-1所示的等式(7)。等式(7)产生编码过程的简单硬件实现。首先注意到,编码器可以在消息向量m(1),m(2),...,m(t-1)上独立工作以计算乘积βi=Hi×m(i)。这些运算的每一个都是矩阵-向量-乘法(MVM),并且能在本发明的实施例中通过称为编码器的MVM1的单元来执行,后有详细描述。等式6左侧现在为β1+β2+...+βt-1=β。当找到向量β时,按照图3-1的等式(8)计算奇偶校验比特。此运算也是MVM型的,并且在示例性实施例中通过称为编码器内MVM2的单元来执行。
使用MVM1和MVM2单元实现编码器有多种方式。这里,我们描述一些用于从循环子矩阵Hi(1≤i≤t)构造的奇偶校验矩阵H的编码器的具体实现。这样,在每个子矩阵Hi中,每列hj (i)是前一列的循环移位即
其中S是循环移动运算符且2≤j≤v。Hi的第一列在Bi给定的位置处由非零元素,由h(i)=(hi,1,hi,2,,hi,v)来表示。图7为奇偶校验矩阵H的结构图举例,此矩阵用来按照本发明创建新的LDPC码的。在图7说明的例子中,示出了二十七个(t=27)基块或子矩阵Hi的一些。基块302对应于H的子矩阵Hi,基块304和306对应于H的子矩阵H2和H27。注意到,在每一个基块或子矩阵中,第一列之后的每一列是循环的(即第一列的移位版)。
值得一提,在(v,k,1)CDF中,当v不是质数而是质数的幂时,Hi的列不是前一列的简单循环移位,不过它们能够生成为原始多项式P(x)的最大长度移位寄存器的连续状态。多项式ω的指数是GF(v)中的乘法群生成器,用来从基块生成差异集。当v是质数时,多项式为P(x)=1+xv-1。
图8是用来实施本发明的方法的串行编码器340的结构框图。编码器340包括上述MVM1单元345和MVM2单元360。编码器340的MVM1单元345包括只读存储器ROM 350、移位寄存器SR1(一般指定在352)、v与门354、v异或门356和存储寄存器MR1(一般指定在358)。只读存储器350存储奇偶校验矩阵H的基块Hi。然后基块顺序地装载进移位寄存器SR1以产生H的列。移位寄存器被示为独立块或者存储单元,指定为h1 (i)到hv (i)。在载入h(i)=(hi,1,hi,2,,hi,v)之后,该移位寄存器SR1的内容循环移位v次以产生子矩阵Hi的列。当在此移位寄存器中形成列hj (i)时,使用v与门354将此列与对应的数据比特mj (i)相乘,然后在异或门356内按分量地将结果加到存储寄存器MR1中存储的已累加的β值上。最后,在单元MVM2内通过已存储在存储寄存器MR1中的β列与Ht -1的相乘而产生奇偶校验比特。此编码过程可以由图3-2示出的伪码概括。
在子矩阵Hi上工作时,编码器340的单元MVM1在每个时钟周期执行下述操作:
1)使长度为v的向量比特移位(为了找到Hi的下一列);
2)v逻辑与操作(将消息比特mj (i)与hj (i)相乘);以及
3)v逻辑异或操作
矩阵Hi的逆是预先计算的,并被存储在单元MVM2中。周期矩阵的逆通常也是周期的,这意味着存储Ht -1所需的内存不是v2,与最初看上去的不同。存储Ht -1所需的存储器仅为v,这是因为只需存储Ht -1的一列。因此,编码器复杂度是奇偶校验比特数v的线性函数。
图9中示出了另一个MVM1的实现单元或者循环子矩阵Hi的电路345。在图9示出的MVM1单元或电路中,MVM1单元的反馈由当前子矩阵Hi的第一列规定,当我们将数据比特mj (i),1≤j≤v插入v中时确定。,图9中表明hi,1到hi,v的子矩阵Hi的第一列,使用v与门380与对应数据比特mj (i)相乘,然后再使用异或门381元件状地将结果加到存储寄存器中存储的β累加值上。
图10中示出了按照本发明的并串类型的编码器400。此实现使用t-1个具有图9示出的固定反馈的MVM1单元405。这样,每个MVM单元中只有少数几个对应于h(i)=(hi,1,hi,2,,hi,v)的非零值的乘数,而其它的都被删除。使用加法器410将MVM1单元405的输出加起来产生β(β1+β2+...+βt-1=β)的值。MVM2单元360以与上面讨论的相同的方式计算奇偶校验比特p。下面两个具体的例子将这种简化说明清楚:
基于Kirkman(13,3,1)系统的编码器:LDPC码的奇偶校验矩阵列重k=3,或者换言之每个码比特有三个正交奇偶位。图3-3示出的表1中列出了此系统的基块和轨道。图11示出的等式(9)给出了奇偶校验矩阵H。逆矩阵H2 -1第一列为h=(1,0,0,0,1,1,1,0,1,0,1,1,0)的循环行列式。H2 -1的另一列是第一列h的循环(向下)移位。图12示出了对应编码器的整个框图。
图12示出的编码器500包括MVM1单元505和MVM2单元510。MVM1单元505包括具有十三个存储单元515和多个加法器520的移位寄存器。存储单元515的个数与图11说明的矩阵H的每一列中元素个数相对应。加法器定位在十三个数据比特移位进入输入端525的寄存器之后,存储单元中包含的数据等于图11说明的矩阵H的第一个子矩阵H1(从左手起)的第一列与数据比特的乘积。
十三个数据比特移位进入MVM1单元505的移位寄存器之后,开关530关闭,存储单元515中的内容移位进入MVM2单元510中。很重要要提的是开关530不必代表物理开关,而可以代表将MVM1单元505和MVM2单元510隔离直至恰当时间的开关函数。MVM2单元510包括同样具有13个存储单元535和多个加法器540的移位寄存器。加法器540定位在十三个数据比特从MVM1单元505中移位进入输入端545的寄存器之后,存储单元中包含的数据等于图11说明的矩阵H的第二个子矩阵H2(从右手起逆数)的第一列与MVM1移位寄存器中的内容的乘积。然后编码数据可以MVM2单元510的移位寄存器中重新得到。
基于(v,2,1)-BIBD的编码器:LDPC码的奇偶校验矩阵列重k=2,因此每个码比特只有两个正交奇偶控制。例如,对于v=7可以使用基块{0,2}、{0,3}和{0,1},给出了奇偶校验矩阵H=[H1H2H3],其中H1、H2和H3如图3-2的等式(10)所示。看H的第一个子矩阵H1,第一列的第零个和第二个位置中的“1”对应于基块{0,2}。在子矩阵H2中,第零个和第三个位置中的“1”对应于基块{0,3}。在子矩阵H3中,第一列的第零个和第一个位置中的“1”对应于基块{0,1}。每个子矩阵中,所有列都是第一列的循环移位。
因为当k=2时H的行总是线性相关,为了编码可以检测一些行和列,用非相关的行构造新的奇偶校验矩阵。在此例中,我们删除等式(10)中H(3)的所有最后一行和最后一列。因此,为了象等式(5)-(8)描述的那样计算六个奇偶校验比特位,我们使用图3-2的等式(11)中示出的矩阵。
图13示出了这个例子的整个并串编码器600的框图。矩阵H中有三个基块,使用两个适当配置的MVM1单元605和610实现前两个基块。象前面的例子中此情况一样,MVM单元605和610具有移位寄存器,其中存储单元被加法器分开,这样定位可以将第一个和第二个数据块的输入数据比特与对应子矩阵或块H1和H2的第一列分别对应相乘。然后,单元MVM1和MVM2的移位寄存器的内容在加法器620处被加起来,通过单元MVM2 615(通过开关625)移位产生奇偶校验比特。单元MVM2 615被配置为将MVM1和MVM2单元的内容的逐位求和与第三个子矩阵H3的第一列的翻转相乘。
图9是说明按照本发明的不同Kirkman LDPC码的比特差错率(BER)曲线。
总之,本发明包括为编码数据产生低密度奇偶校验码的方法。在一些实施例中,此方法包括构造具有对称不完全块设计(BIBD)的奇偶校验矩阵H,其中定义矩阵的复数B-集只有一个交点。此方法也包括产生奇偶校验比特作为构造的奇偶校验矩阵H的函数。
构造奇偶校验矩阵也包括构造这样的奇偶校验矩阵H:对于奇偶校验矩阵H的每个v×v子矩阵,v是每个子矩阵的每行和列含有的比特数,子矩阵的每一列包括与子矩阵所有其它列相同数目的1。此外构造奇偶校验矩阵包括构造这样的奇偶校验矩阵H:对于奇偶校验矩阵每个H的每个v×v子矩阵,第一列之后的每一列都是第一列的循环移位。而且,奇偶校验矩阵H可被构造成:矩阵的每列含有与矩阵的所有其它列相同数目的1,奇偶校验矩阵中没有任何两列包含相同位置的1。奇偶校验矩阵H的BIBD为(V,B)对,其中V是v集,B是b个V的k子集的集合,每个k子集定义一个块,这样V的每个元素包含在恰好r个块中,V的任何2-子集包含在恰好λ个块中。在本发明的方法和装置的一些实施例中,λ等于1。(v,k,λ)-BIBD为具有v点、块大小为k且次数为λ的BIBD。在本发明中,构造奇偶校验矩阵还包括构造具有(v,k,λ)-BIBD的奇偶校验矩阵。例如,本发明包括构造具有(v,3,1)-BIBD或(v,2,1)-BIBD的奇偶校验矩阵的实施例。使用此处揭示的方法和装置时,k也可能为其它值。
本发明还包括编码器208、400、500和/或600,对具有低密度奇偶校验码的消息数据编码。编码器包括第一个矩阵向量乘法器(MVM),可以接收消息数据的v比特集,并且将此消息数据的v比特集与低密度奇偶校验矩阵H的第一个子矩阵的第一列相乘,矩阵H具有对称不完全块设计(BIBD),其中多个定义矩阵的复数B-集只有一个交点,第一个MVM产生第一个MVM输出作为乘法函数。编码器还包括第二个MVM360,510,和/或615,接收第一个MVM输出以及通过将第一个MVM的输出和低密度奇偶校验矩阵H的最后一个子矩阵的第一列翻转相乘产生奇偶校验比特。
在本发明的实施例中,第一个MVM包括多个第一个MVM单元345,405,505,605和/或610或者类似的,每个接收消息数据的不同v比特集以及将消息数据的对应接收v比特集与低密度奇偶校验矩阵H的多个子矩阵中不同的一个的第一列相乘。在这些实施例中,第一个MVM产生第一个MVM输出作为第一个MVM单元的每个复数乘法结果的组合函数。
应该理解即使本发明的多个实施例的众多特性和优点已经在上面描述中与本发明的多个实施例的机构和函数细节一起提到,但这种揭示只是示例性的,细节上可作改变,特别地在部件的结构和安排上,只要符合本发明的原理,附加要求书表达时所用术语的表示了改变的最大程度。例如,特殊元件根据LDPC码产生方法和电路的特殊应用而不同,同时不违背本发明的范围和思想的前提下实际保持相同的功能性。而且,尽管这里描述的实施例是用于盘驱动数据存储系统的LDPC码方法和电路,也推荐本领域的技术人员将本发明的思想用于其它系统,如磁带数据存储系统、光学存储系统和通信系统,同时不违背本发明的范围和思想。
Claims (18)
1.一种产生用于数据编码的低密度奇偶校验码的方法,其特征在于包括:
构造具有对称不完全块设计(BIBD)的奇偶校验矩阵H,其中定义矩阵的多个B-集合只有一个交点;以及
产生奇偶校验比特作为所构造奇偶校验矩阵H的函数。
2.如权利要求1所述的方法,其特征在于,所述构造奇偶校验矩阵还包括构造这样的奇偶校验矩阵H:对于奇偶校验矩阵H的每个v×v子矩阵(H1,H2,...Ht)而言,v是每个子矩阵的每行和每列内的比特数,子矩阵的每一列包含与子矩阵所有其它列相同数目的1。
3.如权利要求2所述的方法,其特征在于,所述构造奇偶校验矩阵还包括构造这样的奇偶校验矩阵H:对于奇偶校验矩阵H的每个v×v子矩阵(H1,H2,...Ht)而言,第一列之后的每列都是第一列的循环移位。
4.如权利要求3所述的方法,其特征在于,所述构造奇偶校验矩阵还包括构造这样的奇偶校验矩阵H:矩阵的每列都包含与矩阵所有其它列相同数目的1。
5.如权利要求4所述的方法,其特征在于,所述构造奇偶校验矩阵还包括构造这样的奇偶校验矩阵H:奇偶校验矩阵没有两列包含相同位置处的两个1。
6.如权利要求5所述的方法,其特征在于,所述构造奇偶校验矩阵还包括构造这样的奇偶校验矩阵H:BIBD为数对(V,B),其中V是v集,B是V的b个k子集的集合,每个k子集都定义一个块,使V的每个元素包含在恰好r个块中,V的任何2-子集都包含在恰好λ个块中,以及λ等于1。
7.如权利要求6所述的方法,其特征在于,(v,k,λ)-BIBD为具有v点、块大小为k且次数为λ的BIBD,而且所述构造奇偶校验矩阵还包括构造使其具有(v,k,λ)-BIBD的奇偶校验矩阵。
8.如权利要求6所述的方法,其特征在于,所述构造奇偶校验矩阵还包括构造使其具有(v,3,1)-BIBD的奇偶校验矩阵。
9.如权利要求6所述的方法,其特征在于,所述构造奇偶校验矩阵还包括构造使其具有(v,2,1)-BIBD的奇偶校验矩阵。
10.如权利要求7所述的方法,其特征在于,所述奇偶校验矩阵包括t个子矩阵[H1,H2,...Ht],其中m是由(t-1)v个数据比特组成的列向量,所述产生奇偶校验比特还包括用关系式[H1,H2,...Ht]×m=Ht×p产生由v个奇偶校验比特组成的列向量p。
11.一种用低密度奇偶校验码对消息数据编码的编码器(208,400,500,600),其特征在于包括:
第一矩阵向量乘法器(MVM)(345,405,505,605,610),用于接收消息数据的v比特集并且将消息数据的v比特集与低密度奇偶校验矩阵H的第一子矩阵的第一列相乘,矩阵H具有对称不完全块设计(BIBD),其中定义矩阵的多个B-集只有一个交点,第一MVM产生第一MVM输出作为乘法函数;以及
第二MVM(360,510,615),用于接收第一MVM输出并且通过将第一MVM的输出与低密度奇偶校验矩阵H的最后一个子矩阵第一列的逆相乘而产生奇偶校验比特。
12.如权利要求12所述的编码器,其特征在于,所述第一MVM包括多个第一MVM单元(345,405,505,605,610),每个都接收消息数据的不同v比特集并且将消息数据的相应接收到的v比特集与低密度奇偶校验矩阵H的多个子矩阵中不同一个的第一列相乘,第一MVM产生第一MVM输出作为多个第一MVM单元中每一个的乘法结果组合函数。
13.如权利要求11所述的编码器,其特征在于,对于奇偶校验矩阵H的每个v×v子矩阵而言,v是每个子矩阵的每行和每列内的比特数,子矩阵的每列包含与子矩阵所有其它列相同数目的1。
14.如权利要求13所述的编码器,其特征在于,对于奇偶校验矩阵H的每个v×v子矩阵而言,第一列之后的每列都是第一列的循环移位。
15.如权利要求14所述的编码器,其特征在于,奇偶校验矩阵H的每列含有与矩阵所有其它列相同数目的1。
16.如权利要求15所述的编码器,其特征在于,奇偶校验矩阵H中没有任何两列包含相同位置处的1。
17.如权利要求16所述的编码器,其特征在于,所述奇偶校验矩阵H是一个(v,k,λ)-BIBD,其中(v,k,λ)-BIBD是一个具有v点、块大小为k且次数为λ的BIBD,其中次数λ等于1。
18.一种用低密度奇偶校验码对数字信息进行编码的装置,其特征在于包括:
接收消息比特序列的输入端;以及
产生奇偶校验比特的装置,作为消息比特序列的函数并且作为奇偶校验矩阵H的函数,矩阵H具有对称不完全块设计(BIBD),其中定义矩阵H的多个B-集只有一个交点。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US29622301P | 2001-06-06 | 2001-06-06 | |
US60/296,223 | 2001-06-06 | ||
US31498701P | 2001-08-24 | 2001-08-24 | |
US60/314,987 | 2001-08-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1515080A true CN1515080A (zh) | 2004-07-21 |
CN1279699C CN1279699C (zh) | 2006-10-11 |
Family
ID=26969550
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN02811566.XA Expired - Fee Related CN1279699C (zh) | 2001-06-06 | 2002-03-08 | 使用数据存储或数据传输的低密度奇偶校验码的方法和编码装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7000168B2 (zh) |
CN (1) | CN1279699C (zh) |
AU (1) | AU2002248558A1 (zh) |
WO (1) | WO2002099976A2 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100490332C (zh) * | 2004-11-05 | 2009-05-20 | 中国科学技术大学 | 一种基于循环三维立方体网格图的低密度码的构造方法 |
CN1841334B (zh) * | 2005-03-31 | 2010-08-18 | 富士通株式会社 | 存储控制电路及存储控制电路中的地址错误检验方法 |
CN101405944B (zh) * | 2006-10-09 | 2011-08-24 | 华为技术有限公司 | 一种ldpc码的纠删译码方法及系统 |
CN108199722A (zh) * | 2018-01-10 | 2018-06-22 | 桂林电子科技大学 | 一种基于矩阵格的bibd-ldpc码构造方法 |
Families Citing this family (80)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4042841B2 (ja) * | 2002-03-29 | 2008-02-06 | 富士通株式会社 | 行列演算処理装置 |
US6920601B1 (en) | 2002-04-08 | 2005-07-19 | Sanera Systems Inc. | Error correction for data communication |
US6968491B1 (en) * | 2002-04-08 | 2005-11-22 | Sanera Systems Inc. | Generating a check matrix for error correction |
JP4005084B2 (ja) * | 2002-07-02 | 2007-11-07 | 三菱電機株式会社 | 検査行列生成方法および検査行列生成装置 |
DK2273683T3 (da) * | 2002-07-03 | 2013-09-16 | Dtvg Licensing Inc | Kodning af LDPC-koder |
KR100602027B1 (ko) | 2002-07-03 | 2006-07-19 | 휴우즈 일렉트로닉스 코오포레이션 | 저밀도 패리티 검사(ldpc) 부호를 이용한비트-인터리브형 부호화 변조 |
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 |
US7864869B2 (en) | 2002-07-26 | 2011-01-04 | Dtvg Licensing, Inc. | Satellite communication system utilizing low density parity check codes |
US20040019845A1 (en) * | 2002-07-26 | 2004-01-29 | Hughes Electronics | Method and system for generating low density parity check codes |
AU2003257184A1 (en) * | 2002-09-30 | 2004-04-23 | Seagate Technology Llc | Iterative equalization and iterative decoding of a reed-muller coded signal |
US7058873B2 (en) * | 2002-11-07 | 2006-06-06 | Carnegie Mellon University | Encoding method using a low density parity check code with a column weight of two |
EP1460765A1 (en) * | 2003-03-19 | 2004-09-22 | STMicroelectronics S.r.l. | Method for performing error corrections of digital information codified as a symbol sequence |
US7228485B1 (en) * | 2003-04-03 | 2007-06-05 | Marvell International Ltd. | Error correction using error detection codes |
US7627842B1 (en) * | 2003-06-03 | 2009-12-01 | Cadence Design Systems, Inc. | Method and system for verification of circuits with encoded signals |
US7103825B2 (en) * | 2003-08-19 | 2006-09-05 | Mitsubishi Electric Research Laboratories, Inc. | Decoding error-correcting codes based on finite geometries |
US7334181B2 (en) * | 2003-09-04 | 2008-02-19 | The Directv Group, Inc. | Method and system for providing short block length low density parity check (LDPC) codes |
JP2005093038A (ja) * | 2003-09-19 | 2005-04-07 | Fujitsu Ltd | 記録再生装置および記録再生回路 |
KR100955952B1 (ko) * | 2003-10-13 | 2010-05-19 | 삼성전자주식회사 | 무선 통신 시스템에서 리프팅 저밀도 패러티 검사 부호를이용한 시공간 부호화 방법 및 장치 |
KR100922956B1 (ko) * | 2003-10-14 | 2009-10-22 | 삼성전자주식회사 | 저밀도 패리티 검사 코드의 부호화 방법 |
US7376883B2 (en) * | 2003-10-27 | 2008-05-20 | The Directv Group, Inc. | Method and system for providing long and short block length low density parity check (LDPC) codes |
US7234098B2 (en) * | 2003-10-27 | 2007-06-19 | The Directv Group, Inc. | Method and apparatus for providing reduced memory low density parity check (LDPC) codes |
KR20050044963A (ko) * | 2003-11-08 | 2005-05-16 | 삼성전자주식회사 | q차 제곱 잉여류를 이용한 준순환 저밀도 패러티 검사부호 생성 방법 |
KR100975061B1 (ko) * | 2003-11-28 | 2010-08-11 | 삼성전자주식회사 | 저밀도 패리티 검사를 이용한 패리티 정보 생성 방법 |
US20050193320A1 (en) * | 2004-02-09 | 2005-09-01 | President And Fellows Of Harvard College | Methods and apparatus for improving performance of information coding schemes |
FR2871965B1 (fr) * | 2004-06-17 | 2006-09-01 | Turboconcept Soc Par Actions S | Procede et dispositif de decodage de codes correcteurs d'erreurs et systemes les mettant en oeuvre |
US7191386B2 (en) * | 2004-06-29 | 2007-03-13 | Seagate Technology Llc | Method and apparatus for additive trellis encoding |
JP4672015B2 (ja) * | 2004-07-27 | 2011-04-20 | エルジー エレクトロニクス インコーポレイティド | 低密度パリティ検査コードを用いた符号化及び復号化方法 |
KR100739684B1 (ko) | 2004-08-05 | 2007-07-13 | 삼성전자주식회사 | 저밀도 패리티 체크 행렬 생성 장치 및 방법 |
US7992066B2 (en) * | 2004-08-09 | 2011-08-02 | Lg Electronics Inc. | Method of encoding and decoding using low density parity check matrix |
CN101341659B (zh) | 2004-08-13 | 2012-12-12 | Dtvg许可公司 | 用于多输入多输出通道的低密度奇偶校验码的码设计与实现的改进 |
US7506238B2 (en) * | 2004-08-13 | 2009-03-17 | Texas Instruments Incorporated | Simplified LDPC encoding for digital communications |
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 |
US20080104474A1 (en) * | 2004-10-01 | 2008-05-01 | Joseph J Laks | Low Density Parity Check (Ldpc) Decoder |
US20060085720A1 (en) * | 2004-10-04 | 2006-04-20 | Hau Thien Tran | Message passing memory and barrel shifter arrangement in LDPC (Low Density Parity Check) decoder supporting multiple LDPC codes |
CN100550655C (zh) * | 2004-11-04 | 2009-10-14 | 中兴通讯股份有限公司 | 一种低密度奇偶校验码的编码器/译码器及其生成方法 |
KR100913876B1 (ko) * | 2004-12-01 | 2009-08-26 | 삼성전자주식회사 | 저밀도 패리티 검사 부호의 생성 방법 및 장치 |
US7617439B2 (en) * | 2005-01-10 | 2009-11-10 | Broadcom Corporation | Algebraic construction of LDPC (Low Density Parity Check) codes with corresponding parity check matrix having CSI (Cyclic Shifted Identity) sub-matrices |
US20070180344A1 (en) * | 2006-01-31 | 2007-08-02 | Jacobsen Eric A | Techniques for low density parity check for forward error correction in high-data rate transmission |
US8091009B2 (en) * | 2006-03-23 | 2012-01-03 | Broadcom Corporation | Symbol by symbol map detection for signals corrupted by colored and/or signal dependent noise |
US7397398B2 (en) * | 2006-05-09 | 2008-07-08 | Seagate Technology Llc | Modulation bit added to worst case codeword |
US7814398B2 (en) * | 2006-06-09 | 2010-10-12 | Seagate Technology Llc | Communication channel with Reed-Solomon encoding and single parity check |
US8069397B2 (en) * | 2006-07-10 | 2011-11-29 | Broadcom Corporation | Use of ECC with iterative decoding for iterative and non-iterative decoding in a read channel for a disk drive |
US7913149B2 (en) * | 2006-12-20 | 2011-03-22 | Lsi Corporation | Low complexity LDPC encoding algorithm |
US7904793B2 (en) * | 2007-03-29 | 2011-03-08 | Sandisk Corporation | Method for decoding data in non-volatile storage using reliability metrics based on multiple reads |
US7975209B2 (en) * | 2007-03-31 | 2011-07-05 | Sandisk Technologies Inc. | Non-volatile memory with guided simulated annealing error correction control |
US7966546B2 (en) * | 2007-03-31 | 2011-06-21 | Sandisk Technologies Inc. | Non-volatile memory with soft bit data transmission for error correction control |
US7971127B2 (en) * | 2007-03-31 | 2011-06-28 | Sandisk Technologies Inc. | Guided simulated annealing in non-volatile memory error correction control |
US7966550B2 (en) * | 2007-03-31 | 2011-06-21 | Sandisk Technologies Inc. | Soft bit data transmission for error correction control in non-volatile memory |
EP2147504A2 (en) * | 2007-04-13 | 2010-01-27 | University College Dublin | An encoding scheme, and a decoding scheme using a series of ldpc codes based on finite inversive spaces |
GB2455274B (en) * | 2007-07-27 | 2012-06-27 | Samsung Electronics Uk Ltd | Decoding apparatus and method |
US8196010B1 (en) | 2007-08-17 | 2012-06-05 | Marvell International, Ltd. | Generic encoder for low-density parity-check (LDPC) codes |
CN100589359C (zh) * | 2008-04-23 | 2010-02-10 | 中兴通讯股份有限公司 | 一种里德索罗蒙码的译码方法及装置 |
WO2010001565A1 (ja) * | 2008-07-04 | 2010-01-07 | 三菱電機株式会社 | 検査行列生成装置、検査行列生成方法、検査行列生成プログラム、送信装置、受信装置及び通信システム |
CN102130695B (zh) * | 2010-01-15 | 2013-06-12 | 中兴通讯股份有限公司 | 一种级联码的译码方法及装置 |
US8443257B1 (en) | 2010-02-01 | 2013-05-14 | Sk Hynix Memory Solutions Inc. | Rate-scalable, multistage quasi-cyclic LDPC coding |
US8448041B1 (en) * | 2010-02-01 | 2013-05-21 | Sk Hynix Memory Solutions Inc. | Multistage LDPC encoding |
US8572463B2 (en) * | 2010-02-01 | 2013-10-29 | Sk Hynix Memory Solutions Inc. | Quasi-cyclic LDPC encoding and decoding for non-integer multiples of circulant size |
KR101652452B1 (ko) * | 2010-03-02 | 2016-08-30 | 시게이트 테크놀로지 인터내셔날 | 디코더와 상기 디코더를 포함하는 장치들 |
US8504894B1 (en) | 2010-03-04 | 2013-08-06 | Sk Hynix Memory Solutions Inc. | Systematic encoding for non-full row rank, quasi-cyclic LDPC parity check matrices |
US9015549B2 (en) | 2011-04-26 | 2015-04-21 | Seagate Technology Llc | Iterating inner and outer codes for data recovery |
US10148285B1 (en) | 2012-07-25 | 2018-12-04 | Erich Schmitt | Abstraction and de-abstraction of a digital data stream |
US9104589B1 (en) * | 2013-10-16 | 2015-08-11 | L-3 Communications Corp. | Decoding vectors encoded with a linear block forward error correction code having a parity check matrix with multiple distinct pattern regions |
US10795858B1 (en) | 2014-02-18 | 2020-10-06 | Erich Schmitt | Universal abstraction and de-abstraction of a digital data stream |
US10404284B1 (en) | 2015-07-21 | 2019-09-03 | L-3 Communications Corp. | Parallel-to-parallel conversion and reordering of a block of data elements |
US10129178B1 (en) | 2015-12-02 | 2018-11-13 | L-3 Communications Corp. | Combining and processing as a whole portions of a ordered segment of data elements split between two communications channels |
CN105634861A (zh) * | 2015-12-23 | 2016-06-01 | 中国电子科技集团公司第四十一研究所 | 新型串行误码测试仪 |
US9841908B1 (en) | 2016-06-30 | 2017-12-12 | Western Digital Technologies, Inc. | Declustered array of storage devices with chunk groups and support for multiple erasure schemes |
US9886979B1 (en) * | 2016-12-30 | 2018-02-06 | Western Digital Technologies, Inc. | Implementing BER-list modulation code for hard disk drives |
CN107565977B (zh) * | 2017-08-23 | 2020-06-09 | 中国电子科技集团公司第五十四研究所 | 一种基于同构理论的规则准循环ldpc码构造方法 |
US10304550B1 (en) | 2017-11-29 | 2019-05-28 | Sandisk Technologies Llc | Sense amplifier with negative threshold sensing for non-volatile memory |
CN110022158B (zh) * | 2018-01-09 | 2021-04-09 | 华为技术有限公司 | 一种译码方法及装置 |
CN109412600A (zh) * | 2018-09-03 | 2019-03-01 | 何祥果 | 一种基于磁性特征的标识号编码方法 |
US10643695B1 (en) | 2019-01-10 | 2020-05-05 | Sandisk Technologies Llc | Concurrent multi-state program verify for non-volatile memory |
US11164652B2 (en) * | 2019-06-21 | 2021-11-02 | Micron Technology, Inc. | Two-layer code with low parity cost for memory sub-systems |
US11024392B1 (en) | 2019-12-23 | 2021-06-01 | Sandisk Technologies Llc | Sense amplifier for bidirectional sensing of memory cells of a non-volatile memory |
CN111740747B (zh) * | 2020-07-16 | 2023-10-31 | 周口师范学院 | 一种低秩循环矩阵的构造方法及其关联的多元ldpc码 |
US11296729B2 (en) | 2020-07-23 | 2022-04-05 | Micron Technology, Inc. | Data reliability for extreme temperature usage conditions in data storage |
CN111934692B (zh) * | 2020-08-20 | 2023-03-10 | 西安电子科技大学 | 基于bibd可变码率的量子ldpc码构造方法 |
US11762731B2 (en) | 2021-11-12 | 2023-09-19 | Seagate Technology Llc | Codeword redundancy |
Family Cites Families (11)
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 |
US5243698A (en) | 1982-11-26 | 1993-09-07 | Inmos Limited | Microcomputer |
FR2675971B1 (fr) | 1991-04-23 | 1993-08-06 | France Telecom | Procede de codage correcteur d'erreurs a au moins deux codages convolutifs systematiques en parallele, procede de decodage iteratif, module de decodage et decodeur correspondants. |
DE59610391D1 (de) | 1995-06-12 | 2003-06-05 | Siemens Ag | Verfahren und Codiereinrichtung zur gesicherten Übertragung von Daten mittels Mehrkomponenten-Codierung |
DE19526416A1 (de) | 1995-07-19 | 1997-01-23 | Siemens Ag | Verfahren und Anordnung zur Bestimmung eines adaptiven Abbruchkriteriums beim iterativen Decodieren multidimensional codierter Infomation |
US6023783A (en) | 1996-05-15 | 2000-02-08 | California Institute Of Technology | Hybrid concatenated codes and iterative decoding |
US6079028A (en) | 1997-04-23 | 2000-06-20 | Lucent Technologies Inc. | Fault tolerant architectures for continuous media servers |
EP0897223B1 (en) | 1997-08-14 | 2013-03-20 | Her Majesty The Queen In Right Of Canada as represented by the Minister of Industry | High-performance low-complexity error-correcting codes |
US6658621B1 (en) * | 2000-06-30 | 2003-12-02 | Intel Corporation | System and method for silent data corruption prevention due to next instruction pointer corruption by soft errors |
US6687872B2 (en) * | 2001-03-14 | 2004-02-03 | Hewlett-Packard Development Company, L.P. | Methods and systems of using result buffers in parity operations |
EP1407555A1 (en) * | 2001-05-09 | 2004-04-14 | Comtech Telecommunications Corp. | Low density parity check codes and low density turbo product codes |
-
2002
- 2002-03-08 US US10/093,926 patent/US7000168B2/en not_active Expired - Lifetime
- 2002-03-08 WO PCT/US2002/006897 patent/WO2002099976A2/en not_active Application Discontinuation
- 2002-03-08 CN CN02811566.XA patent/CN1279699C/zh not_active Expired - Fee Related
- 2002-03-08 AU AU2002248558A patent/AU2002248558A1/en not_active Abandoned
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100490332C (zh) * | 2004-11-05 | 2009-05-20 | 中国科学技术大学 | 一种基于循环三维立方体网格图的低密度码的构造方法 |
CN1841334B (zh) * | 2005-03-31 | 2010-08-18 | 富士通株式会社 | 存储控制电路及存储控制电路中的地址错误检验方法 |
CN101405944B (zh) * | 2006-10-09 | 2011-08-24 | 华为技术有限公司 | 一种ldpc码的纠删译码方法及系统 |
CN108199722A (zh) * | 2018-01-10 | 2018-06-22 | 桂林电子科技大学 | 一种基于矩阵格的bibd-ldpc码构造方法 |
CN108199722B (zh) * | 2018-01-10 | 2021-07-20 | 桂林电子科技大学 | 一种基于矩阵格的bibd-ldpc码构造方法 |
Also Published As
Publication number | Publication date |
---|---|
AU2002248558A1 (en) | 2002-12-16 |
US20020188906A1 (en) | 2002-12-12 |
WO2002099976A2 (en) | 2002-12-12 |
CN1279699C (zh) | 2006-10-11 |
WO2002099976A3 (en) | 2003-02-27 |
WO2002099976B1 (en) | 2004-04-08 |
US7000168B2 (en) | 2006-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1279699C (zh) | 使用数据存储或数据传输的低密度奇偶校验码的方法和编码装置 | |
EP0897223B1 (en) | High-performance low-complexity error-correcting codes | |
US7689888B2 (en) | Decoding apparatus and method and program | |
Wicker et al. | Reed-Solomon codes and their applications | |
US7584400B2 (en) | Clash-free irregular-repeat-accumulate code | |
US8566666B2 (en) | Min-sum based non-binary LDPC decoder | |
US8069390B2 (en) | Universal error control coding scheme for digital communication and data storage systems | |
Wicker et al. | Fundamentals of codes, graphs, and iterative decoding | |
WO2018142391A1 (en) | Device, system and method of implementing product error correction codes for fast encoding and decoding | |
US20070011565A1 (en) | Method and apparatus for low-density parity check encoding | |
US20060192691A1 (en) | Decoding apparatus, decoding method and program | |
JP4185167B2 (ja) | 積符号の反復復号化 | |
CN1770639A (zh) | 级联的迭代和代数编码 | |
WO2011121490A1 (en) | Two -level bch codes for solid state storage devices | |
US20110029835A1 (en) | Systems and Methods for Quasi-Cyclic LDPC Code Production and Decoding | |
EP2582053B1 (en) | Systems and methods for LDPC encoding with composite codewords and sub-codewords | |
US7296212B1 (en) | Multi-dimensional irregular array codes and methods for forward error correction, and apparatuses and systems employing such codes and methods | |
US8578241B2 (en) | Systems and methods for parity sharing data processing | |
US8468438B2 (en) | Method and apparatus for elementary updating a check node during decoding of a block encoded with a non-binary LDPC code | |
US6718502B1 (en) | Precoders for partial response channels | |
CN1656696A (zh) | 线性分组码的软解码 | |
CN1305220C (zh) | 用于抑制数字数据内低频含量的方法和装置 | |
CN1182657C (zh) | 用于降低乘积码译码所需存储量和复杂度的方法 | |
Baggen et al. | On diamond codes | |
Collins | Exploiting the cannibalistic traits of Reed-Solomon codes |
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 | ||
C56 | Change in the name or address of the patentee |
Owner name: SEAGATE TECHNOLOGY SCIENCE & TECHNOLOGY CO., LTD. Free format text: FORMER NAME OR ADDRESS: SEAGATE TECHNOLOGY LLC |
|
CP01 | Change in the name or title of a patent holder |
Address after: American California Patentee after: Seagate Technology LLC Address before: American California Patentee before: Seagate Technology, Inc. |
|
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20061011 Termination date: 20170308 |