CN101432968A - Ldpc编码方法和装置 - Google Patents
Ldpc编码方法和装置 Download PDFInfo
- Publication number
- CN101432968A CN101432968A CNA2005800315941A CN200580031594A CN101432968A CN 101432968 A CN101432968 A CN 101432968A CN A2005800315941 A CNA2005800315941 A CN A2005800315941A CN 200580031594 A CN200580031594 A CN 200580031594A CN 101432968 A CN101432968 A CN 101432968A
- Authority
- CN
- China
- Prior art keywords
- module
- encoder
- code
- memory
- command
- 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
- 238000000034 method Methods 0.000 title claims abstract description 89
- 238000003860 storage Methods 0.000 claims abstract description 44
- 230000008569 process Effects 0.000 claims abstract description 8
- 239000013598 vector Substances 0.000 claims description 50
- 230000004044 response Effects 0.000 claims description 7
- 230000006870 function Effects 0.000 claims description 5
- 230000014759 maintenance of location Effects 0.000 claims 1
- 230000008859 change Effects 0.000 abstract description 8
- 239000011159 matrix material Substances 0.000 description 45
- 239000000047 product Substances 0.000 description 19
- 238000004891 communication Methods 0.000 description 11
- 238000006073 displacement reaction Methods 0.000 description 7
- 125000004122 cyclic group Chemical group 0.000 description 5
- 238000013500 data storage Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000001737 promoting effect Effects 0.000 description 4
- YTAHJIFKAKIKAV-XNMGPUDCSA-N [(1R)-3-morpholin-4-yl-1-phenylpropyl] N-[(3S)-2-oxo-5-phenyl-1,3-dihydro-1,4-benzodiazepin-3-yl]carbamate Chemical compound O=C1[C@H](N=C(C2=C(N1)C=CC=C2)C1=CC=CC=C1)NC(O[C@H](CCN1CCOCC1)C1=CC=CC=C1)=O YTAHJIFKAKIKAV-XNMGPUDCSA-N 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 239000006227 byproduct Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000004148 unit process Methods 0.000 description 1
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/65—Purpose and implementation aspects
- H03M13/6508—Flexibility, adaptability, parametrability and configurability of the implementation
-
- 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
-
- 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
-
- 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/61—Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
- H03M13/611—Specific encoding aspects, e.g. encoding by means of decoding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/116—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
Abstract
描述了灵活并相对硬件高效的LDPC编码器。利用小于用于控制编码过程的码结构的全部并行度的并行度级别来实现所述编码器。每个用于描述码结构的相对简单微码命令能被存储并被执行多次以完成对码字的编码。使用相同组微码指令能支持不同的码字长度,但取决于所选将被使用的提升因子,码被实现的次数不同。在不需要改变储存的码描述信息的情况下,仅通过改变用于控制编码过程的码提升因子,所述LDPC编码器能在编码不同长度的码字间切换。当编码比最大可支持码字长度短的码字时,一些块存储单元和/或寄存器可以不使用。
Description
技术领域
本发明涉及为了利于错误检测和/或纠正的目的,用于编码数据的方法和装置,例如,通过使用诸如低密度奇偶校验(LDPC)码的奇偶校验码。
背景技术
在通信和数据存储系统中,纠错码是普遍存在的。通过在数据流中引入冗余,纠错码补偿在这些系统中信息传递的固有不可靠性。近来在已知为低密度奇偶校验(LDPC)码的码类中产生了相当大的兴趣。可证明LDPC码是好码。在各种信道上,已经证实LDPC码真正接近于信道容量—由克劳德.香农创建的传输上限。
通常由称作Tanner图的二分图来表示LDPC码,其中,一组节点,即变量节点,对应于码字的比特,并且另一组节点,即约束节点,有时也称为校验节点,对应于一组用于定义码的奇偶校验约束。图中的边将变量节点连接到约束节点。如果变量节点与约束节点由图中的边连接,那么它们被称作邻居。
当且仅当对于每个约束节点,与约束(经由与这些比特相关联的变量节点)相邻的比特的模二和为零时,即,它们包括偶数个一时,那么与变量节点一一相关联的比特序列是码的码字。
图1示出了示例性二分图100,其确定示例性的长为十以及二分之一速率的(3,6)规则LDPC码。长度十表明存在十个变量节点V1-V10,每个由码字X1-X10的一个比特标识。在图1中,通过参考数字102标识该组变量节点V1-V10。二分之一速率表明存在变量节点一半的校验节点,例如,存在通过参考数字106标识的五个校验节点C1-C5。二分之一速率进一步表明五个约束是线性独立的。示例性二分图100包括边104,其中,示例性(3,6)规则LDPC码具有连接到每个变量节点的3条边和连接到每个约束节点的6条边以及任意两个节点之间的最多一条边。
尽管图1说明了与长为10的码相关联的图,但是能理解,表示长为1000的码字的图将复杂100倍。
LDPC码Tanner图表示的替代是诸如图2的图200中示出的奇偶校验矩阵表示。在这种码表示中,通常称为奇偶校验矩阵的矩阵H202包括相应的边连接、变量节点以及约束节点信息。在矩阵H202中,每列对应于变量节点之一,而每行对应于约束节点之一。因为在示例性码中存在10个变量节点和5个约束节点,因此矩阵H202包括10列及5行。如果在图中出现边,即,如果两个节点是邻居,那么将对应于特定变量节点和特定约束节点的矩阵202中的项设置为1,否则,设置为0。例如,因为由边将变量节点V1连到约束节点C1,因此,将一设置在矩阵202的最左上角。然而,变量节点V5没有连到约束节点C1,因此将0设置在矩阵202的第一行的第五个位置,这表明没有连接对应的可变及约束节点。我们说,如果H202的行在GF[2]上是线性独立的向量,那么约束是线性独立的,其中GF[2]是二进制伽罗瓦域。
在矩阵表示的情况下,将被发送的码字X能表示为向量204,向量204包括将被处理的码字的比特X1-Xn。当且仅当矩阵202与矩阵204的乘积等于零时,即:HX=0,比特序列X1-Xn是一个码字。
编码LDPC码指的是从一组信息比特中产生码字的过程。通过预处理LDPC图表示或矩阵表示,在实际编码前能确定对应于信息比特的一组变量节点。
为了建立通用LDPC码的编码器,第一步是要找到H的行和列的置换(permutation),因此,相当于重排序,我们能把m×n矩阵H划分成如下的子矩阵
其中,T是t×t上三角子矩阵,即,在主对角线以下的所有项都是零,E是g×t子矩阵,A是t×g,C是g×g,B是g×(n-m),D是g×(n-m)并且t+g=m。此外,g×g矩阵φ:=ET-1A+C是可逆的(我们这里假设H是行满秩)。
然后如下继续编码。给定信息比特xs,为了编码码字 使用回代,对于y,我们首先解
[T A B][y 0 xs]T=0
对于这步,预先计算矩阵φ-1。最后,使用回代,对于解
向量 组成码字。
尽管编码效率和高数据率是重要的,但对于在例如消费设备的广泛设备范围中使用的实用性的编码系统,编码器能够以合理的成本实现是重要的。因此,例如在硬件成本方面,高效地实现用于错误纠正和/或检测目的的编码方案的能力,是重要的考虑。
考虑上述的讨论,应该理解,存在针对用于实现LDPC码高效体系结构的编码器装置和方法的需要。允许重用相同硬件以编码不同长度码字的装置和方法将是有益的和期望的。这是因为它将允许在编码器使用期间更大的灵活性,并且允许使用不同尺寸码字来编码不同组数据,因此在不需要多个编码器支持这样灵活性的情况下,允许为特定的编码应用,例如,通信会话或数据存储应用,来选择码字尺寸。
发明内容
本发明针对编码方法和装置,例如,用于实现低密度奇偶校验(LDPC)编码器的方法和装置。本发明的各个实施例针对允许使用单个编码器来编码不同长度码字的特别灵活的编码器。这允许本发明的LDPC编码器在编码用于例如第一通信应用或数据存储应用这样的第一应用的第一长度码字,和编码用于第二应用的第二长度码字之间切换。实际上,使用相同硬件能支持很多种码字长度,该相同硬件允许通过对编码器中使用的码字描述的简单修改来改变码字长度。在相对简单的微码中可以反映码字描述,该微码被执行来满足特定应用的需要。
本发明的编码器能储存对应于不同码结构的多组微码。当选择码结构以用于编码时,就选择相应的微码,并且生成对应于所选码结构的特定长度的码字。对于给定的码结构,通过选择不同的码提升因子,可以生成不同长度的码字。使用比最大可支持码提升因子小的码提升因子,通常会导致在编码器存储器中没有使用一些存储单元,例如块存储单元。通常由最大可支持码字尺寸确定在存储器中提供的块存储单元的数量。
本发明的编码器能在不同的提升因子间切换,因此,这允许编码器在生成不同长度的码字间切换。因此,本发明的编码器能用于生成很适合于特定应用的长度的码字,并且不受硬件产生单一长度码字的约束。然而,在许多情况下,最大可支持码字长度取决于在编码期间可用于存储比特块的存储器量。
对于包括(N×L)比特整数倍直到最大值K倍的不同尺寸的码字,最大可支持码字尺寸可以是K×N×L比特,其中K、N和L都是正整数。
本发明的编码器特别适合编码依据用于定义码并拥有特定分层结构的LDPC图生成的码字,其中,在很大程度上,整个LDPC图看起来是由多个副本组成,例如Z个较小的图组成。Z个图副本可以是,但不需要是相同的。为了解释本发明的目的,我们将把所述较小的图称为投影图,把全图称为提升图,并把Z称为提升因子。因此,投影图用作生成或描述较大提升图的基础,其中,提升图描述了用于控制编码的码结构。
考虑通过1,...,j,...Z来索引投影LDPC图,其中j是用作投影图索引的整数,并且z是用于定义提升图的投影图总数。在通过简单地复制投影图Z次来生成提升图的严格并行图中,图j中的变量节点仅连接到图j中的约束节点。即,在用于形成较大提升图的投影图的边之间,不存在相互影响。
本发明的编码器不受限制于此。根据本发明,可能取一条向量边,其包括每条边来自Z个图副本的每一个的对应边,并允许在Z条边内的置换,例如,我们准许置换对应于该待置换向量边内的边的约束节点,例如,重排序。
我们把置换限制在标记为Ψ的Z×Z置换矩阵集合(通常是群)空间内。因此,这里将使用Ψ来指通常是置换矩阵群的置换矩阵集合。我们假设Ψ中置换的逆还在Ψ中。通常能使用各种准则来选择Ψ集合。上面结构的主要目的之一是要简化解码器和编码器的硬件实现。因此,把Ψ限制为能在硬件中高效实现的置换是有益的,例如,在交换网中。
根据本发明,并且在各个实施例中,LDPC编码过程被展开为矩阵加法及乘法操作的有序序列,该LDPC编码过程可以转化为一系列命令。为了描述的方便,我们把示例性图G的这一系列编码命令标记为G的编码微码。然后,使用本发明的编码器,通过顺序执行G的微码来完成实际编码,该编码器根据在预先装载了例如将被编码的比特这样的信息比特的物理存储器上的微码,执行各种操作。每个命令包括操作符op和存储单元指示符。根据操作符op,编码器控制逻辑读出位于由存储单元指示符确定的存储器中的比特单元,并把它累加到寄存器,或者把寄存器值写到存储单元a并把寄存器值复位为零。微码的尺寸,即,其内的命令数,至少等于图G中的边数;通常,他们大致相同。
考虑具有提升因子Z的提升LDPC图。给定将用于形成较大图的小的、投影的图,例如,投影图,通过用Z×Z矩阵替代H中的每个元素,我们能形成Z倍大的LDPC图。用标记为0的零矩阵替代H中的元素0。用来自Ψ的矩阵替代H中的每个元素1。在这种方式下,我们将LDPC图“提升”到Z倍大。表示的复杂度大致包括指定置换矩阵所需要的比特数,|EH|log|Ψ|加上表示H所需要的复杂度,其中|EH|标记H中一(1)的数量,并且|Ψ|标记Ψ中不同置换数。例如,如果Ψ是循环置换的空间,那么|Ψ|=Z。实际上,我们可以有,例如,对于n≈1000,Z=16,其中n是码字块长度。下面示出了提升小奇偶校验矩阵H的例子,其中,利用投影图来替换H中每个是一的元素,来产生在右面示出的较大的投影矩阵H。
在矩阵H中,σii=1,...,16是这里示出的从变量节点侧索引的Ψ的元素(矩阵)。
让我们回忆,当且仅当Hx=0时,向量x是码字。在提升矩阵表示中,把x看作GF(2^Z)中元素的向量,替代二进制元素的向量,其中GF(2^Z)是2^Z个元素的伽罗瓦域。就此而论,可以模仿作为在背景部分展开的矩阵-向量乘法和向量加法的编码过程:投影图中的矩阵中的每个非零元素1由它的相应Z×Z置换矩阵替代;向量中的每个比特由Z比特向量替代。
使用G作为投影图的LDPC图的编码过程大部分被指定为上述用于投影图的编码过程的提升。这通过将原始算法中的比特操作替换为提升算法中的比特向量操作来完成。在编码处理中的一个或多个点,在从存储器读出后,Z比特向量经受置换操作,例如,重排序操作。重排序操作可以是旋转操作,或简称旋转。这些旋转操作通常对应于与向量边相关联的旋转,该向量边互连投影图的Z个副本以形成单个大图。因此,在提升的微码中,每个命令包括操作符op、旋转数r、以及存储单元指示符。
提升投影图的微码在很大程度上指定了用于提升图的编码。一个例外是,在投影图中存在矩阵求逆,即用于计算矩阵φ-1。在这样的情况下,该求逆不直接提升到提升图中的矩阵求逆。而是,在Z×Z置换矩阵的环中完成矩阵求逆,并且对应的编码命令产生一组指定矩阵求逆的新命令。在那些命令中,在适当的LDPC表示预处理之后,需要的旋转是显然的。
因此,根据本发明用于描述提示图的微码尺寸大致等于投影图中边的数量加上通常很小的指定求逆的附加命令的数量。因此,对于相同块长度,增加提升因子通常会减少编码微码的尺寸。对于大的块长度,这可以显著节省微码描述存储器,例如,相对小的存储器可用于存储描述将用于编码的大图的信息。
在实际通信或数据存储系统中,通常要求编码器的吞吐量匹配解码器的吞吐量。对于具有提升因子Z的提升图,对编码器和解码器实现硬件并行度Z,通常产生的编码器吞吐量比为了匹配解码器吞吐量所需的编码器吞吐量高,因为解码器需要多几个的迭代来收敛,例如,完成码字的解码。
基于发明者提供的这个启示,应该理解,在给定时间周期处理的码字数量方面,期望编码器使用比解码器小的实现并行度,并达到相同吞吐量,利用本发明这是可能的。
对于另一个实例,在描述大图时使用大的提升因子Z实现上面提到的节省存储器的好处的情况下,使用实现并行度Z引起高的并行单元数,生成过度的吞吐量。
给定硬件复杂度正比于实现并行度N而图描述复杂度正比于提升因子Z的事实下,期望当使用以大提升因子Z描述的提升图时,由实现并行度得到的吞吐量匹配需求,但不过度。
本发明的各种特征针对使用描述具有提升因子Z的提升图的微码,实现具有实现并行度N的向量LDPC编码器的方法和装置,其中,N是Z的除数。选择实现并行度N以匹配所需吞吐量,因此使用最小硬件复杂性。
此外,根据本发明,具有实现并行度N的向量LDPC编码器能够根据描述具有提升因子Z的提升图的相同微码,生成例如编码数据,以产生对应于一类具有相同速率但不同块尺寸的LDPC码的码字。特别地,作为实例,假定Z可用因子分解为K1×K2×N,并且投影图具有n个变量节点,则新颖编码器可以生成不同码字尺寸N×n,K2×N×n以及K1×K2×N×n的三个不同码。
因此,使用本发明编码器的设备能,并且经常,根据应用,在使用存储的微码中描述的不同图进行编码之间切换,使得生成的码字是适于特定应用的块尺寸。例如,可以生成用于无线通信的第一尺寸的码字,而且可以生成用于光纤通信目的的第二尺寸的码字。
附图说明
图1说明了长度为十的示例性规则LDPC码的二分图表示。
图2是图1中以图说明的码的矩阵表示。
图3说明了根据本发明实现的示例性编码器,并且也说明了根据本发明的编码方法生成的编码器内的各种信号和信息的流程。
图4说明了例如移动节点的设备,其使用根据本发明实现的可编程LDPC编码器。
图5包含图5A和图5B的结合,是运行根据本发明实现的示例性通信设备以执行根据本发明的编码和解码的示例性方法的流程图。
具体实施方式
本发明针对用于实现LDPC编码器的方法和装置。本发明的各个实施例针对LDPC编码器和编码方法,该LDPC编码器和编码方法能以硬件高效的方式实现,同时关于能在编码期间使用的码结构和生成的码字尺寸相对灵活。
图3说明了根据本发明实现的示例性的LDPC编码器300。编码器包括图3中所示的耦合在一起的存储器模块302、控制模块312、基于码提升(lifting)的块选择模块310、N元素可控制置换器304、N元素向量累加器模块306以及可控制存储设备308。注意,在本应用中术语置换器和变换器被交替使用来指相同的事物。以下将会详细地描述LDPC编码器300的各个单元和它们的功能。
如上所讨论,使用不同的码描述和/或对于相同的码描述使用由不同提升因子指示的不同码字长度,本发明的编码器300能支持不同的码。存储器模块302包括一组K×N×L存储单元(318、320、322),其中,K×N×L是最大可支持的码字尺寸。输入301允许将被编码的数据写入所述存储器。一旦编码完成时,输出303允许储存在存储器314中的码字被读出。存储器模块302还包括用于储存临时值的一组K×N×1个存储单元(319、321、323)。其他实施例可以不需要和不使用临时存储值。使用存储器314也能支持较小尺寸的码字。将存储器314中的存储单元排列成用于储存码字值的K个N×L块Blk1 318、Blk 2320、Blk K 322,以及用于储存临时值的K个N×1块Blk1 319、Blk 2321、Blk K 323。K×N×L个存储单元中的每个存储单元通常是1比特。K×N×1个存储单元中的每个存储单元通常也是1比特。存储器寻址逻辑316控制从存储器314的存储单元读以及向存储器314的存储单元写,该存储器寻址逻辑316响应于其他存储器组件生成的各种输入生成存储器访问信号324(地址和读/写信号)。通常一次从存储器模块314中读或写N个比特。N比特宽总线340将存储器模块302的N比特宽读输出耦合到N元素可控制置换器304的N比特宽输入,其中,在通过N比特宽总线342将比特提供给N元素向量累加器306前,N元素可控制置换器304能重排序比特。N元素可控制置换器304接收重排序控制信号r2 373,其是根据所储存的码描述信息,例如,诸如微码的控制码,生成的。在比特被提供给N元素向量累加器模块306前,如果需要,信号r2 373控制对从存储器获得的N个比特将要执行什么样的比特重排序。
N元素向量累加器模块306包括并行排列的N个累加器电路。N个累加器电路中的每个生成来自N元素可控制置换器304的N个输入比特中的一个以及对应的从可控制存储设备308读出的N个比特中的一个的一比特模二和。这是执行XOR操作有效的方法。因此,每个累加器电路执行一个XOR操作。在这种方式中,N元素向量累加器306并行地生成N个累加值。由累加器模块306生成的N个值通过N比特宽总线344被并行地提供给可控制存储设备308。可控制存储设备308包括输入MUX 328、输出MUX 308、以及一组K个N比特寄存器326。当读/写控制信号350指示向量累加器模块的输出将要被储存到可控制存储设备308时,由块选择控制信号360控制输入MUX 328,以确定将N比特块写入到K个N比特寄存器332、334、336中的哪一个。输出MUX 330耦合到N比特宽总线346,并且当读/写控制信号350指示将要执行读操作时,输出MUX 330输出由块选择控制信号360指示的N比特块。将从可控制存储设备308读出的每组N个比特提供给存储器模块302和N元素向量累加器模块306的第二个输入。例如由存储的码描述确定的,在累加器操作序列结束时将N比特写到存储器。
控制模块312负责根据特定码描述生成多种控制信号,所述特定码描述存储在编码器描述信息模块372中、被选择在特定时间点使用,例如,诸如微码的控制码。在可编程的实施例中,例如,经由输入371,从设备主存储器,能将码描述信息装载到所存储编码器描述信息模块372。在预装载和使用单一码描述的实施例中,例如,对于对应于相同码结构的不同长度的码字,可以忽略输入371。由外环计数器374生成的控制信号375来驱动由编码器描述信息模块372产生的信号的生成。由内环计数器370生成的内环控制信号377来驱动外环计数器374。内环计数器370根据码提升因子控制信号SK 348生成第二选择模块控制信号356以及内环控制信号377,其中,码提升因子控制信号SK 348作为控制值被提供给内环计数器370。码提升因子控制信号用于指定将要生成的码字的长度,并采取从1到K的值,其中K指示在存储器314中的N×L比特块的总数。因此,通过使用不同的码提升因子,可以生成不同尺寸的码字,其中每个不同可支持的码字尺寸将会是N×L的整数倍。在SK<K的情况下,通常不使用存储器314中的一个或多个块以及寄存器组326中的一个或多个寄存器。
所存储编码器描述信息模块372包括例如微码的控制码。当响应于外环控制信号375执行该码时,这个码生成由在微码的执行行中包含的op值指定的读/写信号350。将信号350提供给存储器模块302和可控制存储设备308。所存储编码器描述信息模块372也生成:当要执行读/写操作时提供给存储器模块302的存储器地址控制信号352、提供给基于码提升的块选择模块310的第一选择模块控制信号r1 354、以及提供给可控制置换器304以控制对从存储器模块302读出值的重排序的重排序控制信号r2 373。
基于码提升的块选择模块310接收来自所存储编码器描述信息模块372的第一选择模块控制信号r1 354和由内环计数器370生成的第二选择模块控制信号356。基于码提升的块选择模块310生成提供给存储器寻址逻辑316的块地址选择信号358,以指示将在特定时间点访问的存储器314的特定块。基于码提升的块选择模块310也生成块选择控制信号360,其用于控制哪个信息块,例如,哪个寄存器332、334、336比特将在特定时间点在可控制存储设备308中被访问。
由公共时钟信号驱动编码器300的各个组件,因此,各种操作和计数器370、374的递增以同步的方式工作。
在多个处理相互作用后,作为在所存储编码器描述信息模块372指导下执行的编码器处理操作以及存储器访问操作的结果,最初存储在存储器模块314中的一组信息比特将被变换为码字。这个码字可以被读出,并且例如,被发送或存储。
为了获得高错误复原级别,通常使用相对长的码字。例如,通过执行编码操作生成的单个码字可以包括总共T个比特,其中T可以是几百个或甚至几千个比特。为了解释本发明的目的,应该理解将被编码的比特可以被排列成K×N×L比特向量,其中,N是正整数,并且K是大于1的正整数。从存储器中读取每个N比特向量。然后能够并行地使用N个处理单元处理从存储器中读出的向量。现有系统在编码器中使用实现并行度N等于Z,该编码器使用具有提升因子Z的特定提升LDPC码来编码码字,与现有系统相比,本发明允许编码器中的并行度级别不同于总的所支持的提升因子Z。更特别地,Z=K×N,其中K是大于1的整数。因此,根据本发明,在各种实现中,并行度N的级别低于提升因子Z。此外,在一些实施例中,可以使用相同的码描述信息组能生成不同尺寸的码字。通过选择小于最大可支持提升因子控制值K的码提升因子控制值SK,对于给定实现可以创建小于最大码字尺寸(L×K×N)的码字。不同尺寸的码字将会是N×L比特的倍数。
2004年2月26日提交的、名为“METHOD AND APPARATUSFOR PERFORMING LOW-DENSITY PARITY-CHECK(LDPC)CODEOPERATIONS USING A MULTI-LEVEL PERMUTATION”的美国专利申请S.N.10/788,115以及相应的具有相同标题和提交日期的PCT申请PCT/US2004/005783,在此被明确地引入作为参考。这些专利申请描述了LDPC码的乘积提升方法。这些乘积提升方法将在提升中使用的Z×Z置换矩阵群限定为能被分解成为子群的直接乘积的群。例如,我们假设Ψ是三个子群的直接乘积,即,Ψ=Ψ1×Ψ2×Ψ3。Ψ的维数等于Ψi维数的乘积,其中Ψi是Ki×Ki置换矩阵群。因此,大的提升可以作为多个小的顺序提升来实现。假设群Ψi的维数等于该群内矩阵的维数,因此,Z=K1×K2×K3,其中,K1,K2,K3分别是Ψ1,Ψ2,Ψ3的维数。
根据本发明,我们将提升群Ψ限定为乘积提升群。如上面提到的,乘积提升能等同地被看作多维提升。因此,本发明的当前编码器300使用的提升能作为多维提升实现。假设投影码的尺寸是P,即,具有P个变量节点。可以选择用于提升的尺寸为64的循环群。根据本发明,备选是尺寸为16的循环群和尺寸为4的循环群的乘积(注意16×4=64)。这个群能由以下表示。使用对(a,b),a=0,…,15并且b=0,…,3,通过可逆映射L=4a+b,考虑索引L=0,…,63。这个乘积群的一个元素是一对(c,d),c=0,…,15并且d=0,…,3。(c,d)对(a,b)的作用是把对(a,b)置换为(a+c模16,d+b模4)。这个群也具有阶64。然而,得到的提升图能被解释为尺寸为4P的码乘以16、或尺寸为16P的码乘以4、或尺寸为P的码乘以64的提升。
在本发明的编码器和硬件实现的上下文中,实现由乘积提升提供的各种优点。在编码器中通过使用乘积提升增加的值是本发明许多特征之一。由不是乘积的群的提升,例如,由循环群的提升,允许任意尺寸的提升,但不能提供乘积提升的灵活性。
名为“METHOD AND APPARATUS FOR PERFORMINGLOW-DENSITY PARITY-CHECK(LDPC)CODE OPERATIONSUSING A MULTI-LEVEL PERMUTATION”的美国专利申请S.N.10/788,115描述了乘积提升图和使用这些图的可能益处。
通过描述使用提升因子Z=K×N的新颖编码器300,本发明扩展了在该申请中描述的一些基本概念。本发明的各个特征针对用于以灵活但相对硬件高效的方式,利用实现并行度N来对图编码的方法和装置。当N是固定的时,K能被用作提升控制因子,并能指示将要生成的码字的尺寸。
我们假定具有提升因子Z=K×N的提升LDPC图。提升群Ψ是乘积提升群Ψ=Ψ1×Ψ2,其中K是群Ψ1的维数,并且N是群Ψ2的维数。我们能生成具有提升因子Z的提升图的微码,微码是一系列命令,其中每个命令包含操作符op、旋转数r、以及存储单元a。使用并行度Z实现的编码器300用以下方式执行每个命令:如果op指示读,那么控制器在存储单元a处从存储器读Z比特向量,用量r对其重排序,并将重排序的值累加到Z比特寄存器;如果op指示写,那么控制器将Z比特寄存器的值写入存储器的存储单元a处。并且通过执行整个系列的命令完成编码。
执行的微码可以存储在编码器描述信息模块372中,除了存储要被使用的微码外,编码器描述信息模块372还负责访问并执行包含在微码中的指令。
使用并行度N,即,N个并行处理单元,而不是并行度Z=K×N,能获得执行例如本发明命令的微码指令的相同结果。然而,在我们的N并行实现中,我们执行相同的基本命令K次,每次完成处理Z个比特工作的1/K。
为了更好地理解本发明的编码过程,让我们首先考虑一个命令,该命令从存储单元a中读出Z比特向量,并且通过量r重排序,并且然后将重排序的值累加到Z比特寄存器。我们写出原始数据向量d=(d1,d2,...dk),每个dj是N比特向量,其中j是用作索引的整数值。给定提升群是乘积提升Ψ=Ψ1×Ψ2,其中Ψ1具有维数K并且Ψ2具有维数N,让我们写出重排序量r=(r1,r2),其中r1是群Ψ1中的重排序量,例如循环旋转量,并且r2是群Ψ2中的重排序量,例如循环旋转量。我们使用标记Ψ1(d,r)来表示通过量r对群Ψ1中的向量d(K个元素)的重排序,以及使用标记Ψ2(d,r)来表示通过量r对群Ψ2中的向量d(N个元素)的重排序。也能把重排序认为是位置置换,因此,在最初位置j中的元素dj转到在重排序数据中标记为Ψ1,r(j)的新位置。那么能将重排序认为是2级重排序过程。第一级在群Ψ2中对N个(1比特)元素重排序来生成向量d’=(Ψ2(d1,r2),Ψ2(d2,r2),...,Ψ2(dk,r2))。然后第二级在群Ψ1中对K个(N比特)元素重排序来生成向量d”=Ψ1(d’,r1)。然后将重排序的数据d”累加到Z比特寄存器。如以下将要讨论的,在图3的实现中,Z比特寄存器是作为一组K个N比特寄存器332、334、336实现的。
我们现在描述如何将上述提及的使用并行度Z的读-重排序-累加的单个步骤分解成为使用并行度N的读-重排序-累加的K个步骤,以实现诸如LDPC编码器300的LDPC编码器。它是由编码器300使用的一系列这样的K个步骤。假设我们有K个寄存器332、334、336并假设将存储单元a处的Z比特向量d物理排列为K个N比特向量(d1,d2,...dK),其中N比特向量dj存储在块j中的单元a处。如果在步骤j,我们在由a和j确定的地址读出数据dj,并例如使用N元素可控制置换器304,通过群Ψ2中的量r2重排序读出的数据,生成Ψ2(d1,r2)。然后,我们将重排序的数据累加到这K个寄存器332、334、336的第(j)个寄存器中。这完成了第j步。通过运行j=1,...,k,我们获得与利用Z比特向量操作执行命令相同的结果,但是利用较低的编码器并行度N达到这个结果,其中,N<Z。
实际上以非常简单的方式,根据本发明,把Z比特寄存器写到存储单元a并复位Z比特寄存器的命令也能被分解为K步。在步骤j,我们将K个N比特寄存器332、334、336的第j个寄存器写到由j和存储单元a确定的存储单元,并且复位该寄存器332、334或336。通过运行j=1,...,k,我们获得与利用Z比特向量操作执行命令相同的结果。
以上讨论在原理上描述了我们如何使用并行度N来实现对应于提升因子Z的微码,例如,储存在编码器描述信息模块372中的微码。
参考图3,我们现在将更加详细地描述用于实现K步编码过程的示例性编码器300,当使用Z>N的提升因子Z时,所述K步编码过程允许并行度N。
在图300中,控制模块312通过内环计数器370来控制执行命令的步骤数。在每个步骤,计数器370增加1并且在达到由码提升因子控制信号348确定的最大计数时复位。每次内环计数器370到达最大值时,它触发外环计数器374增加1。通过访问所存储编码器描述信息模块372,外环计数器374确定当前所执行的编码命令。所存储编码器描述信息模块372以依据该命令生成的各种信号的形式输出该命令,该命令将被应用于由外环计数器374确定的存储单元。命令包含操作符op、重排序量r、以及存储单元a。操作op指定对存储器模块302的读/写信号350,存储单元a确定耦合到存储器模块302的存储器地址控制信号352,并且重排序量r分成两部分(r1,r2),每部分分别指定在群Ψ1和Ψ2中的重排序元素。将信号r1 354提供给用于生成块地址选择信号358的基于码提升的块选择模块310,该块地址选择信号358用于控制访问存储器模块302中的哪个存储块,同时将信号r2 373提供给置换器304,以控制对从存储器302中读出块的N个元素的置换。
为了接收信号r1 354,基于码提升的块选择模块310具有第一选择模块控制信号354,其耦合到来自所述控制模块312的命令中的重排序量r的r1部分。由控制模块312的内环计数器370生成的第二选择控制信号356驱动,并由控制信号r1 354控制,基于码提升的块选择模块310输出取值从1到K的块地址选择信号358,以及取值 的块选择控制信号360。
存储器模块302具有耦合到所存储编码器描述信息的操作符op输出的用于接收读/写信号350的输入,以及用于接收存储器地址控制信号352的另一个输入,存储器地址控制信号352对应于在特定时间点被执行的存储在模块372中的微码指令中包含的存储单元a。
存储器模块302包括存储器314,其排列成K×(N×L)个1比特存储单元318、320、322以及K×(N×1)个1比特存储单元319、321、323。为了方便,我们把具有K块(N×L)个1比特单元的存储单元标识为用于码字存储的块1,...,K,并且我们把具有K块(N×1)个1比特单元的存储单元标识为用于值的临时存储的块1,...,K。在作为存储地址控制信号a 352和块地址选择信号k 358的函数的存储单元处访问存储器314。存储器寻址逻辑模块316实现这样的函数。给定(a,k),根据读/写信号350指示应该执行读还是写操作,存储器模块302在第k个块中的单元a上读或写N比特向量。
存储器模块302的读出操作输出从存储器314中读出的N比特向量340。将这N比特向量馈入到N元素可控制置换器模块304。模块304实现群Ψ2中的重排序;它的重排序控制信号耦合到所存储编码器描述信息模块372的r2信号输出。r2信号导出自重排序数r,从在特定时间点执行的来自信息模块372的微码命令获得在该特定时间点使用的重排序量r。
置换器模块304的重排序N比特向量输出耦合到N元素向量累加器模块306的第一个N比特向量输入342。累加器模块306的第二个N比特向量输入346是从包括K个N比特寄存器332、334、336的可控制存储设备模块308馈入的。向量累加器模块306生成作为两个N比特向量输入的XOR和的N比特向量输出。在各个实施例中,使用并行排列的N个XOR电路实现向量累加器模块306,其中,每个XOR电路耦合到一个不同加法器,该加法器用于将由N个XOR电路的特定一个产生的XOR操作结果与最近生成的XOR结果相加。将累加器模块的N比特宽输出耦合到可控制存储设备模块308的输入344。
可控制存储设备模块308包括K个寄存器,每个寄存器存储N个比特。耦合到基于码提升的块选择模块310的块选择控制信号360确定在特定时间点要访问K个寄存器中的哪一个。耦合到来自控制模块312的命令中包含的操作符op的读/写控制信号350确定访问模式,例如,读或写访问模式。假定块选择控制信号360指示j。如果控制信号是读,则来自可控制存储设备模块308的N比特输出向量取第j个寄存器的值,并将来自N元素向量累加器模块306的累加值写到第j个寄存器。换句话说,将来自N元素可控制置换器模块304的重排序值累加到由块选择控制信号360指示的第j个寄存器。如果读/写控制信号350是写,输出向量再次假设第j个寄存器的值,并且我们然后复位第j个寄存器为零。
概括地,给定具有提升因子Z=K×N的提升图的微码,本发明的各个实施例针对执行N比特向量操作的编码器。每个N比特向量操作包括微码中的命令的执行,该微码描述用于编码的码结构。为了实现包括Z比特的码字的编码,在顺序的K个步骤中实现每个N比特命令,该K个步骤由部分所存储微码命令信息和一个或多个计数器控制。
在本发明的各个实施例中,所提出的编码器能生成不同的码,这些码共享与投影图相同的速率,但具有不同码字长度。这通过使用选择的提升因子控制值SK作为对于每个命令执行的步骤数来完成,SK是K的除数而不是K本身。更特别地,在乘积提升中的群Ψ1是两个群的直接乘积Ψ1=Ψ11×Ψ12,并且SK是矩阵Ψ12维数,并且J是Ψ11的维数,因此,K=J×SK。作为特殊情况,Ψ11可能是单一元素1的群以及Ψ12是Ψ1,因此SK=K并且J=1。无论如何,在提升图中,如果我们忽略提升图内的Ψ11分量,则我们有具有提升因子Z/J=SK×N的提升图。不同的理解方法是我们采用原始图并将它投影到提升群Ψ11上,因此,在奇偶校验矩阵中,指示Z×Z置换矩阵的每个非零项现在被投影到Z/J×Z/J置换矩阵。这样,根据群论的基本原理,即使对于矩阵逆φ-1,在较大图中的与矩阵乘法相同的解码过程序列对于投影图仍然成立。
因此,描述具有提升因子Z的较大图的微码也是描述具有提升因子Z/J=SK×N的投影图的微码。与以上提及的关于Z的情况相同的推理路线,通过按照由存储在所存储编码器描述信息模块372中的部分命令信息控制的顺序,在SK个步骤中执行微码内的每个命令,我们能使用具有N比特向量操作的相同编码器来编码具有提升因子SK×N的码。
如果Ψ1仍然能写为两个其他群的直接乘积Ψ1=Ψ11′×Ψ2′那么存在共用相同微码的不同块长度的其他码,其是本发明的各个实现中的情况。根据本发明,通过指定相应的SK,具有并行度N的相同编码器能编码具有提升因子Z/J′的码,其中,J′是Ψ11′的维数。Ψ1中更多的附加结构可以导致更多的不同块长度的码可在相同编码器硬件上编码。因此,通过依据群结构控制SK,编码器能生成具有不同块长度的一类LDPC码。
在图300中,能通过码提升因子控制信号348指定选择的码提升因子,由于该选择的码提升因子将控制生成的码字的长度,因而能作为码字长度选择信号。信号348被提供给内环计数器370并确定内环计数器370的最大计数。
本发明编码器的灵活性和它能通过使用控制码实现的方便性,将由于以下的控制码实例而显而易见。以下的码可作为码描述信息,码描述信息被存储在所存储编码器描述信息模块372中,并被执行,例如,每次一行,以实现编码操作。
以下包含表1A与1B组合的表1列出了与具有最大提升因子Z=64的码结构对应的例如微码的示例性控制码的指令。在实例中,对于其中N=16,K=4以及L=10的情况设计码。Z=K×N,并且因此Z=64=4×16。最大可支持码字长度将是K×N×L,其在这个实例中是640。由具有4个校验节点和10个变量节点的码来描述投影图。当由最大提升因子Z提升时,这将导致具有256(64×4)个校验节点和640(64×10)个变量节点的码结构。将硬件设计为在并行度N的级别操作,其中N=16。在这个实施例中用于指定码字长度的提升因子控制信号SK能够是K的任何除数,其中如上提到K是4(K=Z/N=64/16),即,最大可支持提升因子控制值。因此,通过选择不同的提升因子控制信号以控制表1的微码的重复数,编码对应于3个不同长度的码字是可能的,例如,当SK=1时,码字长度将等于(1×16×10)160比特,当SK=2时,码字长度将等于(2×16×10)320比特,并且当SK=K=4时,码字长度将等于(4×16×10)640比特。在表1中示出的微码中,在op列中,1用于指示读指令而0用于指示写指令。控制值r1和r2都存储在值r中。从值r中确定r1为当r被N除时的整除结果。即,r1=r除以N。通过取r/N的模数从值r中确定r2。在这个实例中N=16。考虑例如第一个指令1 43 4。这个指令应该解释为读(op=1)指令,r1=(r除以N)=(43除以16)=2,而r2=(r模N)=(43模16)=11。控制值a由表直接提供,并且在第一个指令的情况下是4。当控制值在0,...,L-1的范围内时,例如,对于该示例性微码为0...9,被访问的存储器用于码字存储,例如,访问K个块318、320、322中的一个。当控制值在0,...,L-1的范围外时,例如,对于该示例性微码为10,被访问的存储器用于值的临时存储,例如,访问K个块319、321、323中的一个。
(开始)
op | r | a |
1 | 43 | 4 |
1 | 5 | 5 |
1 | 6 | 7 |
1 | 44 | 8 |
1 | 36 | 3 |
0 | 0 | 2 |
1 | 10 | 4 |
1 | 30 | 5 |
1 | 47 | 6 |
1 | 9 | 7 |
1 | 17 | 3 |
0 | 0 | 1 |
1 | 25 | 5 |
1 | 32 | 6 |
1 | 58 | 8 |
1 | 45 | 9 |
1 | 16 | 2 |
0 | 0 | 0 |
1 | 42 | 4 |
1 | 17 | 8 |
1 | 62 | 9 |
1 | 6 | 0 |
1 | 38 | 1 |
0 | 0 | 10 |
1 | 17 | 10 |
1 | 19 | 10 |
1 | 21 | 10 |
1 | 29 | 10 |
1 | 31 | 10 |
表格1A
(继续)
op | r | a |
1 | 49 | 10 |
1 | 50 | 10 |
1 | 51 | 10 |
1 | 52 | 10 |
1 | 53 | 10 |
1 | 54 | 10 |
1 | 55 | 10 |
1 | 56 | 10 |
1 | 58 | 10 |
1 | 63 | 10 |
0 | 0 | 3 |
1 | 43 | 4 |
1 | 5 | 5 |
1 | 6 | 7 |
1 | 44 | 8 |
1 | 36 | 3 |
0 | 0 | 2 |
1 | 10 | 4 |
1 | 30 | 5 |
1 | 47 | 6 |
1 | 9 | 7 |
1 | 17 | 3 |
0 | 0 | 1 |
1 | 25 | 5 |
1 | 32 | 6 |
1 | 58 | 8 |
1 | 45 | 9 |
1 | 16 | 2 |
0 | 0 | 0 |
表格1B
本发明的方法和装置能用于实现广泛的各种设备,包括,例如,无线终端、基站、数据存储设备以及可能使用编码和/或解码数据以防止和/或纠正错误的其他类型设备。
图4是根据使用本发明方法的LDPC编码器/解码器设备实现的例如移动节点的示例性无线终端(WT)1000的图。示例性WT 1000包括接收机1002、接收机天线1004、可编程LDPC解码器1006、发射机1008、发射机天线1010、可编程LDPC编码器1012、处理器1014、用户I/O设备1015以及存储器1016。经由总线1018将可编程LDPC解码器1006、可编程LDPC编码器1012(其能使用图3的编码器300实现)、处理器1014、用户I/O设备1015以及存储器1016耦合到一起,各种元件可以通过总线1018相互交换数据和信息。
将接收机1002耦合到接收机天线1004,经由接收机天线1004,WT 1000可以接收来自其他设备的信号,例如,来自基站的已编码下行链路信号。接收机1002也耦合到可编程LDPC解码器1006,其可以根据本发明解码所接收的下行链路信号。除了例如LDPC编码数据之外,接收的信号还可以包括例如控制信息的信号,该信号用于指示用于编码正被接收的数据的LDPC码结构和/或包括在接收数据中的码字的码字长度。接收的数据可以包括对应于不同应用的码字。根据本发明,解码器可以从解码对应于第一个码结构和码字长度的数据切换到解码对应于第二个码结构和第二个码字长度的数据。第一个和第二个码字结构可以不同,响应于包含在接收信息中的信息,用例如微码形式的控制码这样的适当码结构信息装载解码器。通常不使用LDPC码来编码控制信息,以便于控制信息的快速检测和解释。第一个和第二个码字长度也可以不同。在一些情况下,第一个和第二个码结构是相同的,但是对应于不同应用的数据的码字长度可以是不同的。在这样的情况下,不需要更新码结构信息来解码不同尺寸的码字,并且,随着接收数据的码字长度改变,仅需要将例如提升因子信息的码字长度信息提供给解码器。可以将码字长度信息指定为正在使用的码结构的码提升因子。如以下将要讨论的,例如控制码的码结构信息能用于控制可编程LDPC解码器,而码字长度信息能用于设置码字长度,用于解码目的。这样的信息经由总线1018能从存储器1016传送到解码器1006。
将发射机1008耦合到发射机天线1010,WT 1000可以通过发射机天线1010向基站发射包括已编码的上行链路信号的上行链路信号。将发射机1008耦合到可编程LDPC编码器1012,可编程LDPC编码器1012在传输前编码各种上行链路信号,例如,对应于不同应用的数据信号。给编码器装载对应于不同码结构的不同组码描述信息,例如,诸如微码的不同组控制码。另外,将用于控制由编码器1012生成的码字的长度的码字长度信息,例如,以码提升因子信息的形式,提供给编码器1012。可以从接收的信息中获得选择码字结构和/或码字长度的信息,例如,编码器可以使用与用于解码的相同码字结构和码字长度来编码由应用生成的数据,该相同码字结构和码字长度被用于解码为该生成数据的特定应用接收的数据。因此,可以编程编码器,以匹配由与无线终端相互作用的另一个设备使用的编码结构和码字长度。或者,设备用户可以指定使用特定的码字结构和/或码字长度,或者这样的信息可由通信程序或存储在无线终端中的其他程序指定。
经由总线1018,能将码结构信息和/或码字长度信息从存储器1016传送到可编程LDPC编码器1012。例如键盘、扬声器、传声器、显示器等的用户I/O设备1015提供接口,以使用户输入数据和信息,例如,将被编码并传送到另一个WT的数据和信息,以及使用户输出和/或显示接收的数据/信息,例如,来自同等节点的已经被解码的接收数据和信息。用户I/O设备1015提供接口,以允许用户选择和/或指定将由可编程LDPC解码器1006和/或可编程LDPC编码器1012使用的与一组数据相关联的码、码长度指示符、和/或多组码描述信息。
处理器1014,例如CPU,执行程序并使用存储器1016中的数据/信息,以控制无线终端1000的操作并实现本发明的方法。
存储器1016包括编码器码描述信息组1026、1028的群1025,以及解码器码描述信息组1030、1032的群1029。每个编码器码描述信息组1026、1028包括反映将被用于对数据编码的码的码结构的控制码,例如微码。每组信息1026、1028对应不同的码结构。编码器码描述信息能被装载到可编程LDPC编码器1012的编码器控制模块,并例如作为存储的编码器描述信息,用于控制数据的编码。类似地,每个解码器码描述信息组1030、1032包括反映将被用于对数据解码的码的码结构的控制码,例如微码。每组解码器码描述信息1030、1032对应不同码结构。解码器码描述信息能被装载到可编程LDPC解码器1006的控制模块,并例如作为存储的解码器描述信息,用于控制数据的解码。
存储器1016包括通信程序1020、编码器码和码字长度选择程序1022、以及解码器码和码字长度选择程序1024。通信程序1020可以控制与其他无线设备通常的通信和相互作用。当使用LDPC码编码和/或解码数据时,对于给定应用实现的通信程序可以指定将用于特定通信应用的码结构和和/或码字长度。编码器码和码字选择程序1022负责选择将用于特定应用的码结构以及因此相应的编码器码描述信息1026、1028。基于从通信程序1020接收的信息、经由接收机1002或从用户输入接收的信息来作出这个选择。如果编码器码和码字长度选择程序1022还没有被配置为根据选择的码和码字长度执行编码,那么它负责用选择的码描述信息装载可编程LDPC编码器1012,并负责将例如选择的码提升因子的信息提供给可编程编码器1012。如果解码器码和码字长度选择程序1024还没有被配置为根据选择的码和码字长度执行解码,那么它负责用选择的码描述信息装载可编程LDPC解码器1006,并负责将例如选择的码提升因子的信息提供给可编程解码器1006。
除了以上讨论的涉及编码和解码的程序和信息外,存储器1016还可用于存储接收的解码器信息1038,例如,由指示将用于解码的码结构和码字长度的解码器码和码字长度选择程序1024使用的接收信息。另外,接收的编码器信息1044,例如,由指示将用于编码的码结构和码字长度的编码器码和码字长度选择程序1022使用的接收的信息,可存储在存储器1016中。涉及解码的用户输入信息1036以及涉及编码的用户输入信息1042也存储在存储器1016中。这样的信息与解码器信息1038和编码器信息1044相同或类似,但是它经由用户I/O设备1015而不是经由接收机1002从用户获得。
对于能够并且在一些实施例中用作可编程LDPC解码器1006的示例性可编程LDPC解码器的详细讨论,见具有2005年7月21日的提交日期、发明者名字为Tom Richardson、Hui Jin和VladimirNovichkov、名为“LDPC DECODING METHODS AND APPARATUS”的美国专利申请S.N.10/895,645,在此被明确地引入作为参考。为了提供背景信息的目的,美国专利NO.6,633,856也明确地引入作为参考。
使用上述讨论的程序和存储的编码器/解码器信息,根据例如用户信息或经由接收机1002接收的信息这样的接收信息,为了编码和解码目的,无线终端能在使用不同码结构和码字长度间切换。也可由在特定时间点执行的特定通信程序1020来触发编码器/解码器改变。因此,利用通过码更新的使用而容易被修改的单个一组硬件,本发明在LDPC码的编码和解码中允许很大的灵活性,该码更新对应于不同码结构和/或码字长度控制参数的改变。
涉及本发明依赖的LDPC码结构的各个概念在2003年7月11日提交的,名为“MEHTOD AND APPARATUS FOR ENCODING LDPCCODES”的美国专利申请S.N.10/618,325中描述和讨论,并在此被明确地引入作为参考。当按照引入的专利申请中提供的讨论来看时,能获得对本发明的方法和装置的技术和好处的更好评价。
包括图5A和图5B组合的图5是操作根据本发明实现的例如WT1000的示例性通信设备以执行根据本发明的编码和解码的示例性方法的流程图1100。操作在步骤1102开始,在其中WT 1000接通电源并初始化。操作从步骤1102继续进行到步骤1104、1106、以及步骤1108。
在步骤1104,操作WT 1000接收编码/解码信息和/或从接收的数据生成控制信息。可以经由通过接收机1002处理的接收信号和/或经由用户I/O设备1015接收的用户输入来接收编码/解码信息,例如,用于可编程LDPC编码器1012和/或可编程LDPC解码器的控制信息。另外,处理接收的编码数据以生成控制信息。例如,使用不同的码结构信息和/或不同码字长度能执行解码的多次尝试。一旦成功解码,在一些实施例中生成控制信息,该控制信息指示将用于解码到来数据以及在一些实施例中编码输出数据的码结构和/或码字长度。经由连接节点A 1110,操作从步骤1104继续进行到步骤1112。在步骤1112,操作WT 1000以确定接收的编码/解码控制信息的类型。基于步骤1112的确定,操作继续进行到步骤1114、1116、1118或1120。
如果在步骤1112确定控制信息的类型是编码器码结构信息,则操作继续进行到步骤1114。在步骤1114,操作WT 1000来用一组码描述信息,例如对应于由控制信息指示的码结构信息的控制码,装载编码器1012。操作从步骤1114继续进行到连接节点B1122。
如果在步骤1112确定信息的类型是编码器码字长度信息,则操作继续进行到步骤1116。在步骤1116,操作WT 1000将对应于由控制信息指示的码字长度的码字长度指示符,例如选择的提升因子,提供给编码器1012。操作从步骤1116继续进行到连接节点B 1122。
如果在步骤1112确定控制信息的类型是解码器码结构信息,则操作继续进行到步骤1118。在步骤1118,操作WT 1000来用一组码描述信息,例如对应于由控制信息指示的码结构的控制码,装载解码器1006。操作从步骤1118继续进行到连接节点B 1122。
如果在步骤1112确定信息的类型是解码器码字长度信息,则操作继续进行到步骤1120。在步骤1120,操作WT 1000将对应于指示码字长度的码字长度指示符,例如选择的提升因子,提供给解码器1006。操作从步骤1120继续进行到连接节点B 1122。
操作从连接节点B 1122返回到步骤1104,其中,WT 1104等待接收其他编码/解码信息,例如,完成可编程解码器1006和/或可编程编码器1012的配置的信息,和/或改变解码器1006和/或编码器1012的选择的设置的信息,例如,码字长度设置。
在步骤1106,操作包括先前配置的可编程解码器1006的WT1000,通过接收机1002接收将被解码的数据,例如,来自WT 1000的同等节点的已编码用户数据。将接收的数据转发给解码器1006。操作从步骤1106继续进行到步骤1124。在步骤1124,依据在解码器1006中的所存储码描述信息和已经被提供给解码器的码字长度指示符信息,操作解码器1006以解码数据。操作从步骤1124继续进行到步骤1106,在步骤1106中接收将被解码的附加数据。
在步骤1108,操作包括先前配置的可编程编码器1012的WT1000,通过用户I/O设备1015接收将被编码的数据,例如,来自WT1000用户的将要被编码并被传送给WT 1000的同等节点的输入数据。将接收的数据转发给编码器1012。操作从步骤1108继续进行到步骤1126。在步骤1126,依据所存储码描述信息和被提供给编码器的码字长度指示符信息,操作编码器1012以编码数据。操作从步骤1126继续进行到步骤1108,在步骤1108中接收将被编码的附加数据。
在时间上,随着被装载到编码器1012和解码器1006的、对应于例如选择的提升因子这样的码字长度信息的控制信息改变,码字长度将会改变。因此,随着无线终端从对应于第一个设备和/或应用而接收数据切换到对应于第二个设备和/或应用而处理数据,码字长度能,并且在各个实现中将改变。另外,在时间上随着无线终端与不同的设备相互作用和/或实现不同的应用,能改变由编码器1012和/或解码器1006使用的码结构信息。因此,在第一个时间点,编码器和解码器可以处理对应第一个长度和/或码结构的码字,并且在另一个时间处理对应于第二个长度和/或码结构的码字。在其他的时间点,本发明的可编程LDPC编码器1012和解码器1006可以使用其他的码结构和/或码字长度。各个可支持的码字长度通常将会达到由编码器1012和解码器1006中可用存储器量和/或可用寄存器数量和尺寸确定的最大尺寸。
以下的专利申请和专利提供关于编码和/或解码LDPC码的信息,并在此被明确地引入作为参考。2004年2月26日提交的美国专利申请S.N.10/788,115;2002年4月4日提交的美国专利申请S.N.10/177,264;美国专利申请S.N.10/618,325以及美国专利6,633,856。
关于本发明的方法和装置的众多改变是可能的。因此,用于实现本发明的模块可以作为软件、硬件、或软件及硬件的组合实现。例如,可以用硬件和/或软件实现本发明的各种特征。例如,本发明的一些方面可以实现为处理器执行的程序指令。或者,或另外,本发明的一些方面可以实现为例如,诸如ASIC的集成电路。本发明的装置针对软件、硬件和/或软件与硬件的组合。设想了包括用于控制机器来实现根据本发明的一个或多个方法步骤的指令的机器可读媒介,其被认为在本发明的一些实施例的范围内。
本发明尤其针对能用于控制处理器以执行根据本发明的编码和/或解码的软件。本发明的方法和装置能用于OFDM通信系统以及包括CDMA系统的其他类型通信系统。
Claims (51)
1、一种低密度奇偶校验(LDPC)编码器,包括:
存储器模块,其至少包括N×L×K个存储单元,其中N和L都是正整数并且K是>1的整数;
可控制置换器,其耦合到所述存储器模块,对至少N个元素执行元素重排序操作;
向量累加器模块,其包括N个并行排列的累加器,所述向量累加器模块包括:
i)至少N个比特宽的第一输入端,其对应于所述可控制置换器的输出端;
ii)至少N个比特宽的第二输入端,以及
iii)至少N个比特宽的向量累加器输出端;
包括N×K个存储单元的可控制存储设备,所述可控制存储设备包括:块选择控制信号输入端,其用于接收指示一个块的信号,该块包括将被访问的至少N个存储单元;以及至少N个比特宽的存储设备输出端,其用于输出从所述存储设备读出的值;以及
块选择模块,其耦合到所述可控制存储设备,用于向所述可控制存储设备提供块选择控制信号。
2、如权利要求1所述的编码器,所述编码器进一步包括:
控制模块,其用于根据将被执行的编码操作来生成第一选择模块控制信号,所述第一选择模块控制信号作为第一控制信号输入被提供给所述块选择模块。
3、如权利要求2所述的编码器,
其中,所述块选择模块根据码提升因子生成所述块选择控制信号;并且
其中,所述控制模块进一步生成重排序控制信号,该重排序控制信号被提供给所述置换器模块的重排序控制输入端。
4、如权利要求2所述的编码器,进一步包括:
至少N个比特宽的总线,其用于将所述存储器模块耦合到所述可控制置换器。
5、如权利要求3所述的编码器,其中,所述块选择模块进一步包括块地址选择输出端,该块地址选择输出端耦合到所述存储器模块的相应输入端。
6、如权利要求3所述的编码器,其中,所述块选择模块进一步包括第二选择模块控制输入端,其用于接收指示将被使用的码提升因子的信号。
7、如权利要求6所述的编码器,其中,所述控制模块进一步生成被提供给所述存储器模块的存储器地址控制信号。
8、如权利要求7所述的编码器,其中,所述存储器模块包括寻址逻辑,其用于根据所述存储器地址控制信号和所述块地址选择信号生成存储器访问信号。
9、如权利要求8所述的编码器,
其中,所述可控制存储设备进一步包括读/写控制输入端;并且
其中,所述控制模块进一步包括读/写控制信号输出端,该读/写控制信号输出端耦合到所述可控制存储设备的所述读/写控制输入端。
10、如权利要求1所述的编码器,其中,所述可控制存储设备的所述存储设备输出端耦合到所述向量累加器模块的所述第二输入端以及所述存储器模块的输入端。
11、如权利要求9所述的编码器,其中,所述读/写控制信号输出端进一步耦合到所述存储器模块的相应输入端。
12、如权利要求7所述的编码器,其中,所述存储器地址控制信号是大于0并且小于L+1的整数值,并且在编码操作期间通过每个所表示的整数值1到L来循环,其中L是正整数。
13、如权利要求6所述的编码器,其中,将被使用的所述码提升因子是用户选择的控制值SK,其是K的因子。
14、如权利要求13所述的编码器,其中,当所述码提升因子SK小于K时,在编码期间,所述存储器模块中的N×L×(K-SK)个存储单元没有被使用。
15、如权利要求13所述的编码器,其中,当所述码提升因子SK小于K时,在编码期间,所述可控制存储设备中的所述N×K个存储单元的一部分没有被使用。
16、如权利要求1所述的编码器,
其中,在所述存储器模块中的所述N×L×K个存储单元中的每一个均是一比特存储单元;并且
其中,在所述可控制存储设备中的所述N×K个存储单元中的每一个均是一比特存储单元。
17、如权利要求1所述的编码器,其中,所述控制模块包括一组微码指令,其描述将被用于对数据编码的码结构,每个微码指令对应于一个码结构,该码结构被执行K次以编码具有总长K×L×N比特的码字。
18、一种执行低密度奇偶校验(LDPC)编码处理的方法,包括:
提供编码器,包括:
存储器模块,其包括N×L×K个存储单元,其中N和L都是正整数并且K是>1的整数;
可控制置换器,其耦合到所述存储器模块,用于对至少N个元素执行元素重排序操作;
向量累加器模块,其包括N个并行排列的累加器,所述向量累加器模块包括:
i)至少N个比特宽的第一输入端,其对应于所述可控制置换器的输出端;
ii)至少N个比特宽的第二输入端,以及
iii)至少N个比特宽的向量累加器输出端;
包括N×K个存储单元的可控制存储设备,所述可控制存储设备包括:块选择控制信号输入端,用于接收指示一个块的信号,该块包括将被访问的至少N个存储单元;以及至少N个比特宽的存储设备输出端,用于输出从所述存储设备读出的值;
基于码提升的块选择模块,其耦合到所述可控制存储设备,用于向所述可控制存储设备提供块选择控制信号;
根据存储的码描述和用于控制编码操作定时的时钟信号,生成第一选择模块控制信号;
将所述第一选择模块控制信号提供给所述基于码提升的块选择模块;以及
操作所述基于码提升的块选择模块,来根据所述第一选择模块控制信号,选择在所述可控制存储设备中将被访问的存储单元块。
19、如权利要求18所述的方法,进一步包括:
生成重排序控制信号;
将所述重排序信号提供给所述置换器模块;以及
操作所述置换器模块,以根据所述提供的重排序控制信号,执行消息重排序操作。
20、如权利要求19所述的方法,进一步包括:
操作所述基于码提升的块选择模块,以根据存储的码描述信息生成块地址选择信号;以及
将所述块地址选择信号提供给所述存储器模块,以用于确定将被访问的一组存储单元。
21、如权利要求19所述的方法,进一步包括:
操作所述基于码提升的块选择模块,以接收指示将被使用的码提升因子的信号。
22、如权利要求21所述的方法,进一步包括:
操作所述控制模块,以生成用于确定将被访问的所述一组存储单元的存储器地址控制信号;以及
将所述存储器地址控制信号提供给所述存储器模块。
23、如权利要求22所述的方法,其中,所述存储器模块包括寻址模块,所述方法进一步包括:
操作所述地址模块,以根据所述存储器地址控制信号和所述块地址选择信号生成存储器访问信号,所述存储器访问信号控制在一个时间点访问哪个特定存储单元块。
24、如权利要求23所述的方法,进一步包括:
操作所述控制模块,以生成读/写控制信号,该读/写控制信号用于控制一个可控制存储访问操作是读还是写访问操作;以及
将所述生成的读/写控制信号提供给所述可控制存储设备。
25、如权利要求22所述的编码器,其中,所述存储器地址控制信号是大于0并且小于L+1的整数值,所述方法进一步包括:
当编码一组比特时,通过每个表示的整数值1到L来循环。
26、如权利要求21所述的方法,其中,将被使用的所述码提升因子是用户选择的值SK,其是K的因子。
27、如权利要求26所述的方法,进一步包括:
当所述码提升因子SK是小于K的整数时,在编码期间,所述存储器模块中的所述N×L×K个存储单元中的一部分没有被使用。
28、如权利要求27所述的方法,其中,所述存储器模块中的所述N×L×K个存储单元中的每一个均是一比特存储单元,并且其中,所述N×L×K个存储单元中的一部分没有被使用包括K-SK个存储单元没有被使用。
29、如权利要求26所述的方法,进一步包括:
当所述码提升因子SK小于K时,在编码期间,所述可控制存储设备中的所述N×K个存储单元中的一部分没有被使用。
30、如权利要求29所述的方法,其中,所述可控制存储设备中的所述N×K个存储单元中的每一个均是一比特存储单元,并且其中,在编码期间所述可控制存储设备中的所述N×K个存储单元中的一部分没有被使用包括K-SK个存储单元没有被使用。
31、一种使用LDPC编码器对信息进行编码的方法,所述方法包括:
接收第一码字长度信息,其指示将被生成的码字的长度;
将所述码字长度信息提供给LDPC编码器的控制输入端;
操作所述LDPC编码器,以接收将被编码的数据;以及
操作所述LDPC编码器,以根据接收的数据生成码字,该码字具有所述指示的将被生成的码字的长度。
32、如权利要求31所述的方法,进一步包括:
接收第二码字长度信息,其指示将被生成的附加码字的长度,所述附加码字的长度是与对应于所述第一码字长度信息的第一比特数不同的第二比特数。
33、如权利要求32所述的方法,其中,所述第一码字长度信息是第一选择的码提升因子信号。
34、如权利要求31所述的方法,进一步包括:
将第一组码结构描述信息存储到所述编码器的一个模块中;以及
使用所述存储的第一组码描述信息来执行LDPC编码操作。
35、如权利要求34所述的方法,进一步包括:
将第二组码结构描述信息存储到所述编码器的所述模块中,所述第二组码结构描述信息对应的LDPC码具有与所述第一组码结构信息对应的码结构不同的结构。
36、如权利要求35所述的方法,进一步包括:
当与第一设备通信时,使用所述第一组码结构信息来编码数据;以及
当与第二设备通信时,使用所述第二组码结构信息来编码数据。
37、如权利要求36所述的方法,其中,在与使用所述第二组码结构信息不同的时间点使用所述第一组码结构信息。
38、如权利要求34所述的方法,其中,存储第一组码描述信息的所述步骤是对接收到一个信号的响应,该信号指示对应于所述第一组码描述信息的码字将被使用。
39、如权利要求34所述的方法,其中,存储第一组码描述信息的所述步骤是对接收到一个信号的响应,该信号包括的码字是依据对应于所述第一组码描述信息的码结构进行编码的。
40、如权利要求34所述的方法,其中,所述第一组码描述信息包括编码器控制指令。
41、如权利要求40所述的方法,其中,每个编码器控制指令包括读和写操作指示符之一。
42、如权利要求41所述的方法,其中,每个编码器控制指令进一步包括旋转控制信息。
43、如权利要求41所述的方法,其中,每个编码器控制指令进一步包括存储器地址信息。
44、一种实现可编程LDPC编码器系统的方法,所述方法包括步骤:
在第一时间周期期间,将第一组码结构描述信息存储到LDPC编码器的一个模块中,所述第一组码结构描述信息对应于第一LDPC码结构;
操作所述LDPC编码器,以使用所述存储的第一组码描述信息执行LDPC编码操作;
在第二时间周期期间,将第二组码结构描述信息存储到LDPC编码器的所述模块中,所述第二组码结构描述信息对应于第二LDPC码结构;以及
操作所述编码器,以使用所述存储的第二组码描述信息执行LDPC编码操作。
45、如权利要求44所述的方法,其中,在不同的时间周期期间使用所述第一和第二组存储的码结构描述信息来执行编码操作。
46、如权利要求44所述的方法,其中,存储第一组码描述信息的所述步骤是对接收到一个信号的响应,该信号指示对应于所述第一组码描述信息的码字将被使用。
47、如权利要求44所述的方法,其中,存储第一组码描述信息的所述步骤是对接收到一个信号的响应,该信号包括依据对应于所述第一组码描述信息的码结构进行编码的码字。
48、如权利要求44所述的方法,其中,所述第一组码描述信息包括编码器控制指令。
49、如权利要求48所述的方法,其中,每个编码器控制指令包括读和写操作指示符之一。
50、如权利要求49所述的方法,其中,每个编码器控制指令进一步包括旋转控制信息。
51、如权利要求50所述的方法,其中,每个编码器控制指令进一步包括存储器地址信息。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/895,547 | 2004-07-21 | ||
US10/895,547 US7346832B2 (en) | 2004-07-21 | 2004-07-21 | LDPC encoding methods and apparatus |
PCT/US2005/025752 WO2006014742A2 (en) | 2004-07-21 | 2005-07-20 | Ldpc encoding methods and apparatus |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010102612108A Division CN101917199B (zh) | 2004-07-21 | 2005-07-20 | Ldpc编码方法 |
CN2010102612184A Division CN101917200B (zh) | 2004-07-21 | 2005-07-20 | Ldpc编码方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101432968A true CN101432968A (zh) | 2009-05-13 |
CN101432968B CN101432968B (zh) | 2012-01-11 |
Family
ID=35658679
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010102612108A Active CN101917199B (zh) | 2004-07-21 | 2005-07-20 | Ldpc编码方法 |
CN2005800315941A Active CN101432968B (zh) | 2004-07-21 | 2005-07-20 | Ldpc编码方法和装置 |
CN2010102612184A Active CN101917200B (zh) | 2004-07-21 | 2005-07-20 | Ldpc编码方法和装置 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010102612108A Active CN101917199B (zh) | 2004-07-21 | 2005-07-20 | Ldpc编码方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010102612184A Active CN101917200B (zh) | 2004-07-21 | 2005-07-20 | Ldpc编码方法和装置 |
Country Status (12)
Country | Link |
---|---|
US (2) | US7346832B2 (zh) |
EP (1) | EP1787397B1 (zh) |
KR (2) | KR100905814B1 (zh) |
CN (3) | CN101917199B (zh) |
AU (3) | AU2005269729B2 (zh) |
CA (2) | CA2577793C (zh) |
NO (1) | NO20070970L (zh) |
NZ (1) | NZ553354A (zh) |
RU (1) | RU2395902C2 (zh) |
UA (1) | UA91513C2 (zh) |
WO (1) | WO2006014742A2 (zh) |
ZA (1) | ZA200701497B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104981978A (zh) * | 2013-02-13 | 2015-10-14 | 高通股份有限公司 | 使用准循环构造和穿孔以实现高速率、高并行性和低差错本底的ldpc设计 |
CN105429645A (zh) * | 2014-09-17 | 2016-03-23 | 上海数字电视国家工程研究中心有限公司 | 针对低码率ldpc码的校验矩阵、ldpc码字及编码方法 |
CN105811997A (zh) * | 2011-01-18 | 2016-07-27 | 三星电子株式会社 | 用于在通信/广播系统中发送和接收数据的设备和方法 |
CN110024295A (zh) * | 2016-11-14 | 2019-07-16 | 华为技术有限公司 | 可变长度准循环低密度奇偶校验qc-ldpc码的编、解码方法和装置 |
CN113014270A (zh) * | 2021-02-22 | 2021-06-22 | 上海大学 | 码长可配置的部分折叠极化码译码器 |
CN113300717A (zh) * | 2021-05-19 | 2021-08-24 | 西南交通大学 | 一种基于码率自适应的高效化ldpc编码器电路 |
Families Citing this family (138)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7346832B2 (en) * | 2004-07-21 | 2008-03-18 | Qualcomm Incorporated | LDPC encoding methods and apparatus |
EP1800405B1 (en) * | 2004-09-17 | 2014-03-12 | LG Electronics Inc. | Encoding and decoding of ldpc codes using structured parity check matrices |
US7900127B2 (en) * | 2005-01-10 | 2011-03-01 | Broadcom Corporation | LDPC (Low Density Parity Check) codes with corresponding parity check matrices selectively constructed with CSI (Cyclic Shifted Identity) and null sub-matrices |
KR101102396B1 (ko) * | 2006-02-08 | 2012-01-05 | 엘지전자 주식회사 | 이동통신 시스템에서의 코드워드 크기 정합 방법 및 송신장치 |
US7801200B2 (en) * | 2006-07-31 | 2010-09-21 | Agere Systems Inc. | Systems and methods for code dependency reduction |
US7779331B2 (en) * | 2006-07-31 | 2010-08-17 | Agere Systems Inc. | Systems and methods for tri-column code based error reduction |
US7802163B2 (en) * | 2006-07-31 | 2010-09-21 | Agere Systems Inc. | Systems and methods for code based error reduction |
US20080059869A1 (en) * | 2006-09-01 | 2008-03-06 | The Regents Of The University Of California | Low cost, high performance error detection and correction |
US20080155148A1 (en) * | 2006-10-26 | 2008-06-26 | Ozgur Oyman | Cooperative communication of data |
US7971125B2 (en) * | 2007-01-08 | 2011-06-28 | Agere Systems Inc. | Systems and methods for prioritizing error correction data |
TW200838159A (en) | 2007-01-24 | 2008-09-16 | Qualcomm Inc | LDPC encoding and decoding of packets of variable sizes |
US8359522B2 (en) | 2007-05-01 | 2013-01-22 | Texas A&M University System | Low density parity check decoder for regular LDPC codes |
US8196002B2 (en) * | 2007-06-01 | 2012-06-05 | Agere Systems Inc. | Systems and methods for joint LDPC encoding and decoding |
US7930621B2 (en) * | 2007-06-01 | 2011-04-19 | Agere Systems Inc. | Systems and methods for LDPC decoding with post processing |
EP2179509A4 (en) * | 2007-09-28 | 2011-05-18 | Agere Systems Inc | SYSTEMS AND METHOD FOR DATA PROCESSING WITH REDUCED COMPLEXITY |
US8473824B1 (en) * | 2008-09-08 | 2013-06-25 | Marvell International Ltd. | Quasi-cyclic low-density parity-check (QC-LDPC) encoder |
US8095859B1 (en) * | 2008-01-09 | 2012-01-10 | L-3 Communications, Corp. | Encoder for low-density parity check codes |
US8161348B2 (en) * | 2008-02-05 | 2012-04-17 | Agere Systems Inc. | Systems and methods for low cost LDPC decoding |
US8245104B2 (en) * | 2008-05-02 | 2012-08-14 | Lsi Corporation | Systems and methods for queue based data detection and decoding |
WO2009142620A1 (en) * | 2008-05-19 | 2009-11-26 | Agere Systems Inc. | Systems and methods for mitigating latency in a data detector feedback loop |
US8166364B2 (en) * | 2008-08-04 | 2012-04-24 | Seagate Technology Llc | Low density parity check decoder using multiple variable node degree distribution codes |
US8660220B2 (en) * | 2008-09-05 | 2014-02-25 | Lsi Corporation | Reduced frequency data processing using a matched filter set front end |
US8245120B2 (en) * | 2008-09-17 | 2012-08-14 | Lsi Corporation | Power reduced queue based data detection and decoding systems and methods for using such |
US8261166B2 (en) * | 2008-09-17 | 2012-09-04 | Seagate Technology Llc | Node processor for use with low density parity check decoder using multiple variable node degree distribution codes |
US8321752B1 (en) * | 2008-11-12 | 2012-11-27 | Marvell International Ltd. | Integrated 2-level low density parity check (LDPC) codes |
EP2347416A4 (en) * | 2008-11-20 | 2012-05-30 | Lsi Corp | SYSTEMS AND METHOD FOR NOISE-REDUCED DATA DETECTION |
US7990642B2 (en) * | 2009-04-17 | 2011-08-02 | Lsi Corporation | Systems and methods for storage channel testing |
US8443267B2 (en) * | 2009-04-28 | 2013-05-14 | Lsi Corporation | Systems and methods for hard decision assisted decoding |
US8250434B2 (en) * | 2009-06-18 | 2012-08-21 | Lsi Corporation | Systems and methods for codec usage control during storage pre-read |
US8352841B2 (en) * | 2009-06-24 | 2013-01-08 | Lsi Corporation | Systems and methods for out of order Y-sample memory management |
US8458553B2 (en) | 2009-07-28 | 2013-06-04 | Lsi Corporation | Systems and methods for utilizing circulant parity in a data processing system |
US8312343B2 (en) * | 2009-07-28 | 2012-11-13 | Lsi Corporation | Systems and methods for re-using decoding parity in a detector circuit |
US8250431B2 (en) * | 2009-07-30 | 2012-08-21 | Lsi Corporation | Systems and methods for phase dependent data detection in iterative decoding |
US8321746B2 (en) | 2009-07-30 | 2012-11-27 | Lsi Corporation | Systems and methods for quasi-cyclic LDPC code production and decoding |
US8266505B2 (en) | 2009-08-12 | 2012-09-11 | Lsi Corporation | Systems and methods for retimed virtual data processing |
US8176404B2 (en) * | 2009-09-09 | 2012-05-08 | Lsi Corporation | Systems and methods for stepped data retry in a storage system |
US8880976B2 (en) * | 2009-09-25 | 2014-11-04 | Stmicroelectronics, Inc. | Method and apparatus for encoding LBA information into the parity of a LDPC system |
US8688873B2 (en) | 2009-12-31 | 2014-04-01 | Lsi Corporation | Systems and methods for monitoring out of order data decoding |
US8578253B2 (en) | 2010-01-04 | 2013-11-05 | Lsi Corporation | Systems and methods for updating detector parameters in a data processing circuit |
US8683306B2 (en) * | 2010-01-04 | 2014-03-25 | Lsi Corporation | Systems and methods for data detection including dynamic scaling |
US8743936B2 (en) * | 2010-01-05 | 2014-06-03 | Lsi Corporation | Systems and methods for determining noise components in a signal set |
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 |
US8443257B1 (en) | 2010-02-01 | 2013-05-14 | Sk Hynix Memory Solutions Inc. | Rate-scalable, multistage quasi-cyclic LDPC coding |
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 |
CN101800627B (zh) * | 2010-03-16 | 2012-12-05 | 北京海格神舟通信科技有限公司 | 一种多码率兼容的高速ldpc编码器的硬件实现 |
US8161351B2 (en) | 2010-03-30 | 2012-04-17 | Lsi Corporation | Systems and methods for efficient data storage |
US9343082B2 (en) | 2010-03-30 | 2016-05-17 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Systems and methods for detecting head contact |
US8418019B2 (en) | 2010-04-19 | 2013-04-09 | Lsi Corporation | Systems and methods for dynamic scaling in a data decoding system |
US8527831B2 (en) | 2010-04-26 | 2013-09-03 | Lsi Corporation | Systems and methods for low density parity check data decoding |
US8443249B2 (en) | 2010-04-26 | 2013-05-14 | Lsi Corporation | Systems and methods for low density parity check data encoding |
US8381071B1 (en) | 2010-05-21 | 2013-02-19 | Lsi Corporation | Systems and methods for decoder sharing between data sets |
US8381074B1 (en) | 2010-05-21 | 2013-02-19 | Lsi Corporation | Systems and methods for utilizing a centralized queue based data processing circuit |
US8208213B2 (en) | 2010-06-02 | 2012-06-26 | Lsi Corporation | Systems and methods for hybrid algorithm gain adaptation |
US8979860B2 (en) | 2010-06-24 | 2015-03-17 | DePuy Synthes Products. LLC | Enhanced cage insertion device |
US8379498B2 (en) | 2010-09-13 | 2013-02-19 | Lsi Corporation | Systems and methods for track to track phase alignment |
US8295001B2 (en) | 2010-09-21 | 2012-10-23 | Lsi Corporation | Systems and methods for low latency noise cancellation |
US9219469B2 (en) | 2010-09-21 | 2015-12-22 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Systems and methods for filter constraint estimation |
US8443250B2 (en) | 2010-10-11 | 2013-05-14 | Lsi Corporation | Systems and methods for error correction using irregular low density parity check codes |
US8560930B2 (en) | 2010-10-11 | 2013-10-15 | Lsi Corporation | Systems and methods for multi-level quasi-cyclic low density parity check codes |
US8385014B2 (en) | 2010-10-11 | 2013-02-26 | Lsi Corporation | Systems and methods for identifying potential media failure |
US8661071B2 (en) | 2010-10-11 | 2014-02-25 | Lsi Corporation | Systems and methods for partially conditioned noise predictive equalization |
US8750447B2 (en) | 2010-11-02 | 2014-06-10 | Lsi Corporation | Systems and methods for variable thresholding in a pattern detector |
US8667039B2 (en) | 2010-11-17 | 2014-03-04 | Lsi Corporation | Systems and methods for variance dependent normalization for branch metric calculation |
US8566379B2 (en) | 2010-11-17 | 2013-10-22 | Lsi Corporation | Systems and methods for self tuning target adaptation |
US8908814B2 (en) | 2011-01-07 | 2014-12-09 | Marvell World Trade Ltd. | Low latency SIMD architecture for iterative decoders |
US8810940B2 (en) | 2011-02-07 | 2014-08-19 | Lsi Corporation | Systems and methods for off track error recovery |
US8699167B2 (en) | 2011-02-16 | 2014-04-15 | Lsi Corporation | Systems and methods for data detection using distance based tuning |
US8446683B2 (en) | 2011-02-22 | 2013-05-21 | Lsi Corporation | Systems and methods for data pre-coding calibration |
US8693120B2 (en) | 2011-03-17 | 2014-04-08 | Lsi Corporation | Systems and methods for sample averaging in data processing |
US8854753B2 (en) | 2011-03-17 | 2014-10-07 | Lsi Corporation | Systems and methods for auto scaling in a data processing system |
US8887034B2 (en) | 2011-04-15 | 2014-11-11 | Lsi Corporation | Systems and methods for short media defect detection |
US8670955B2 (en) | 2011-04-15 | 2014-03-11 | Lsi Corporation | Systems and methods for reliability assisted noise predictive filtering |
US8611033B2 (en) | 2011-04-15 | 2013-12-17 | Lsi Corporation | Systems and methods for selective decoder input data processing |
US8566665B2 (en) | 2011-06-24 | 2013-10-22 | Lsi Corporation | Systems and methods for error correction using low density parity check codes using multiple layer check equations |
US8560929B2 (en) | 2011-06-24 | 2013-10-15 | Lsi Corporation | Systems and methods for non-binary decoding |
US8499231B2 (en) | 2011-06-24 | 2013-07-30 | Lsi Corporation | Systems and methods for reduced format non-binary decoding |
US8879182B2 (en) | 2011-07-19 | 2014-11-04 | Lsi Corporation | Storage media inter-track interference cancellation |
US8819527B2 (en) | 2011-07-19 | 2014-08-26 | Lsi Corporation | Systems and methods for mitigating stubborn errors in a data processing system |
US8830613B2 (en) | 2011-07-19 | 2014-09-09 | Lsi Corporation | Storage media inter-track interference cancellation |
US8539328B2 (en) | 2011-08-19 | 2013-09-17 | Lsi Corporation | Systems and methods for noise injection driven parameter selection |
US8854754B2 (en) | 2011-08-19 | 2014-10-07 | Lsi Corporation | Systems and methods for local iteration adjustment |
US9026572B2 (en) | 2011-08-29 | 2015-05-05 | Lsi Corporation | Systems and methods for anti-causal noise predictive filtering in a data channel |
US8661324B2 (en) | 2011-09-08 | 2014-02-25 | Lsi Corporation | Systems and methods for non-binary decoding biasing control |
US8681441B2 (en) | 2011-09-08 | 2014-03-25 | Lsi Corporation | Systems and methods for generating predictable degradation bias |
US8850276B2 (en) | 2011-09-22 | 2014-09-30 | Lsi Corporation | Systems and methods for efficient data shuffling in a data processing system |
US8767333B2 (en) | 2011-09-22 | 2014-07-01 | Lsi Corporation | Systems and methods for pattern dependent target adaptation |
US8578241B2 (en) | 2011-10-10 | 2013-11-05 | Lsi Corporation | Systems and methods for parity sharing data processing |
US8479086B2 (en) | 2011-10-03 | 2013-07-02 | Lsi Corporation | Systems and methods for efficient parameter modification |
US8689062B2 (en) | 2011-10-03 | 2014-04-01 | Lsi Corporation | Systems and methods for parameter selection using reliability information |
US8862960B2 (en) | 2011-10-10 | 2014-10-14 | Lsi Corporation | Systems and methods for parity shared data encoding |
US8683309B2 (en) | 2011-10-28 | 2014-03-25 | Lsi Corporation | Systems and methods for ambiguity based decode algorithm modification |
US8527858B2 (en) | 2011-10-28 | 2013-09-03 | Lsi Corporation | Systems and methods for selective decode algorithm modification |
US8443271B1 (en) | 2011-10-28 | 2013-05-14 | Lsi Corporation | Systems and methods for dual process data decoding |
US8531320B2 (en) | 2011-11-14 | 2013-09-10 | Lsi Corporation | Systems and methods for memory efficient data decoding |
US8751913B2 (en) | 2011-11-14 | 2014-06-10 | Lsi Corporation | Systems and methods for reduced power multi-layer data decoding |
US8954822B2 (en) * | 2011-11-18 | 2015-02-10 | Sandisk Enterprise Ip Llc | Data encoder and decoder using memory-specific parity-check matrix |
US9203434B1 (en) | 2012-03-09 | 2015-12-01 | Western Digital Technologies, Inc. | Systems and methods for improved encoding of data in data storage devices |
KR101840252B1 (ko) * | 2012-03-12 | 2018-03-20 | 에스케이하이닉스 주식회사 | 저밀도 패리티 검사 부호용 장치 |
US8605383B1 (en) | 2012-05-21 | 2013-12-10 | Western Digital Technologies, Inc. | Methods, devices and systems for characterizing polarities of piezoelectric (PZT) elements of a two PZT element microactuator |
CN106899311B (zh) | 2012-09-24 | 2023-11-03 | 华为技术有限公司 | 混合极性码的生成方法和生成装置 |
US8972826B2 (en) | 2012-10-24 | 2015-03-03 | Western Digital Technologies, Inc. | Adaptive error correction codes for data storage systems |
US9021339B2 (en) | 2012-11-29 | 2015-04-28 | Western Digital Technologies, Inc. | Data reliability schemes for data storage systems |
US9059736B2 (en) | 2012-12-03 | 2015-06-16 | Western Digital Technologies, Inc. | Methods, solid state drive controllers and data storage devices having a runtime variable raid protection scheme |
US9122625B1 (en) | 2012-12-18 | 2015-09-01 | Western Digital Technologies, Inc. | Error correcting code encoder supporting multiple code rates and throughput speeds for data storage systems |
US9619317B1 (en) | 2012-12-18 | 2017-04-11 | Western Digital Technologies, Inc. | Decoder having early decoding termination detection |
US8966339B1 (en) | 2012-12-18 | 2015-02-24 | Western Digital Technologies, Inc. | Decoder supporting multiple code rates and code lengths for data storage systems |
US9214963B1 (en) | 2012-12-21 | 2015-12-15 | Western Digital Technologies, Inc. | Method and system for monitoring data channel to enable use of dynamically adjustable LDPC coding parameters in a data storage system |
US8797664B1 (en) | 2012-12-22 | 2014-08-05 | Western Digital Technologies, Inc. | Polarity detection of piezoelectric actuator in disk drive |
US9705532B2 (en) * | 2013-03-15 | 2017-07-11 | Arris Enterprises Llc | Parallel low-density parity check (LDPC) accumulation |
US9513989B2 (en) | 2013-03-26 | 2016-12-06 | Seagate Technology Llc | Priori information based post-processing in low-density parity-check code decoders |
JP6229899B2 (ja) * | 2013-05-02 | 2017-11-22 | ソニー株式会社 | データ処理装置、及びデータ処理方法 |
CN109194337B (zh) | 2013-11-11 | 2019-08-27 | 华为技术有限公司 | 一种Polar码编码方法、装置 |
RU2665918C1 (ru) * | 2014-03-21 | 2018-09-04 | Хуавэй Текнолоджиз Ко., Лтд. | Способ и аппаратура повторной передачи полярного кода |
RU2571587C2 (ru) * | 2014-04-10 | 2015-12-20 | Самсунг Электроникс Ко., Лтд. | Способ и устройство кодирования и декодирования данных в скрученном полярном коде |
US9153283B1 (en) | 2014-09-30 | 2015-10-06 | Western Digital Technologies, Inc. | Data storage device compensating for hysteretic response of microactuator |
CN104917588A (zh) * | 2015-04-13 | 2015-09-16 | 李焱 | 提高非视距毫米波室内通信系统传输可靠性信道编码方法 |
RU2688276C2 (ru) * | 2015-10-13 | 2019-05-21 | Хуавэй Текнолоджиз Ко., Лтд | Устройство и способ декодирования и система передачи сигналов |
US10784901B2 (en) | 2015-11-12 | 2020-09-22 | Qualcomm Incorporated | Puncturing for structured low density parity check (LDPC) codes |
US11043966B2 (en) | 2016-05-11 | 2021-06-22 | Qualcomm Incorporated | Methods and apparatus for efficiently generating multiple lifted low-density parity-check (LDPC) codes |
US10454499B2 (en) | 2016-05-12 | 2019-10-22 | Qualcomm Incorporated | Enhanced puncturing and low-density parity-check (LDPC) code structure |
US9917675B2 (en) | 2016-06-01 | 2018-03-13 | Qualcomm Incorporated | Enhanced polar code constructions by strategic placement of CRC bits |
US10313057B2 (en) | 2016-06-01 | 2019-06-04 | Qualcomm Incorporated | Error detection in wireless communications using sectional redundancy check information |
US10469104B2 (en) | 2016-06-14 | 2019-11-05 | Qualcomm Incorporated | Methods and apparatus for compactly describing lifted low-density parity-check (LDPC) codes |
WO2018014272A1 (en) * | 2016-07-20 | 2018-01-25 | Huawei Technologies Co., Ltd. | Methods and systems for encoding and decoding for ldpc codes |
CA3026317C (en) | 2016-07-27 | 2023-09-26 | Qualcomm Incorporated | Design of hybrid automatic repeat request (harq) feedback bits for polar codes |
CN116827356A (zh) | 2016-08-12 | 2023-09-29 | 瑞典爱立信有限公司 | 用于ldpc码的速率匹配方法 |
US10270559B2 (en) | 2016-10-04 | 2019-04-23 | At&T Intellectual Property I, L.P. | Single encoder and decoder for forward error correction coding |
US10243638B2 (en) | 2016-10-04 | 2019-03-26 | At&T Intellectual Property I, L.P. | Forward error correction code selection in wireless systems |
CN108111251B (zh) * | 2016-11-24 | 2020-11-06 | 上海交通大学 | 应用于广播通信系统的信令码编码方法及对应的译码方法 |
CN108400838B (zh) * | 2017-02-06 | 2021-05-18 | 华为技术有限公司 | 数据处理方法及设备 |
CN110249536B (zh) * | 2017-03-03 | 2021-07-20 | 华为技术有限公司 | 高码率的长ldpc码 |
KR102302366B1 (ko) * | 2017-05-04 | 2021-09-16 | 삼성전자 주식회사 | 통신 또는 방송 시스템에서 채널 부호화/복호화 방법 및 장치 |
US10680652B2 (en) | 2017-05-04 | 2020-06-09 | Samsung Electronics Co., Ltd. | Method and apparatus for channel encoding and decoding in communication or broadcasting system |
US10312939B2 (en) | 2017-06-10 | 2019-06-04 | Qualcomm Incorporated | Communication techniques involving pairwise orthogonality of adjacent rows in LPDC code |
US10940016B2 (en) | 2017-07-05 | 2021-03-09 | Medos International Sarl | Expandable intervertebral fusion cage |
KR102113450B1 (ko) | 2017-07-07 | 2020-05-20 | 퀄컴 인코포레이티드 | 저밀도 패리티 체크 코드 베이스 그래프 선택을 적용한 통신 기술 |
CN116054843A (zh) * | 2017-09-11 | 2023-05-02 | 中兴通讯股份有限公司 | 处理ldpc编码数据的方法和装置 |
Family Cites Families (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3542756A (en) * | 1968-02-07 | 1970-11-24 | Codex Corp | Error correcting |
US3665396A (en) * | 1968-10-11 | 1972-05-23 | Codex Corp | Sequential decoding |
US4295218A (en) * | 1979-06-25 | 1981-10-13 | Regents Of The University Of California | Error-correcting coding system |
US5293489A (en) * | 1985-01-24 | 1994-03-08 | Nec Corporation | Circuit arrangement capable of centralizing control of a switching network |
US5271042A (en) * | 1989-10-13 | 1993-12-14 | Motorola, Inc. | Soft decision decoding with channel equalization |
US5157671A (en) * | 1990-05-29 | 1992-10-20 | Space Systems/Loral, Inc. | Semi-systolic architecture for decoding error-correcting codes |
US5313609A (en) * | 1991-05-23 | 1994-05-17 | International Business Machines Corporation | Optimum write-back strategy for directory-based cache coherence protocols |
US5455704A (en) * | 1991-11-08 | 1995-10-03 | Mitsubishi Denki Kabushiki Kaisha | Optical-fiber light amplifier |
US5396518A (en) * | 1993-05-05 | 1995-03-07 | Gi Corporation | Apparatus and method for communicating digital data using trellis coding with punctured convolutional codes |
US5457704A (en) * | 1993-05-21 | 1995-10-10 | At&T Ipm Corp. | Post processing method and apparatus for symbol reliability generation |
US5526501A (en) * | 1993-08-12 | 1996-06-11 | Hughes Aircraft Company | Variable accuracy indirect addressing scheme for SIMD multi-processors and apparatus implementing same |
US5615298A (en) * | 1994-03-14 | 1997-03-25 | Lucent Technologies Inc. | Excitation signal synthesis during frame erasure or packet loss |
US5860085A (en) * | 1994-08-01 | 1999-01-12 | Cypress Semiconductor Corporation | Instruction set for a content addressable memory array with read/write circuits and an interface register logic block |
CA2156889C (en) * | 1994-09-30 | 1999-11-02 | Edward L. Schwartz | Method and apparatus for encoding and decoding data |
US5671221A (en) * | 1995-06-14 | 1997-09-23 | Sharp Microelectronics Technology, Inc. | Receiving method and apparatus for use in a spread-spectrum communication system |
US5867538A (en) * | 1995-08-15 | 1999-02-02 | Hughes Electronics Corporation | Computational simplified detection of digitally modulated radio signals providing a detection of probability for each symbol |
US5721745A (en) | 1996-04-19 | 1998-02-24 | General Electric Company | Parallel concatenated tail-biting convolutional code and decoder therefor |
US5968198A (en) * | 1996-08-16 | 1999-10-19 | Ericsson, Inc. | Decoder utilizing soft information output to minimize error rates |
US5892962A (en) * | 1996-11-12 | 1999-04-06 | Lucent Technologies Inc. | FPGA-based processor |
US5909572A (en) * | 1996-12-02 | 1999-06-01 | Compaq Computer Corp. | System and method for conditionally moving an operand from a source register to a destination register |
US6438180B1 (en) * | 1997-05-09 | 2002-08-20 | Carnegie Mellon University | Soft and hard sequence detection in ISI memory channels |
GB2326253A (en) * | 1997-06-10 | 1998-12-16 | Advanced Risc Mach Ltd | Coprocessor data access control |
US5864703A (en) * | 1997-10-09 | 1999-01-26 | Mips Technologies, Inc. | Method for providing extended precision in SIMD vector arithmetic operations |
US5933650A (en) * | 1997-10-09 | 1999-08-03 | Mips Technologies, Inc. | Alignment and ordering of vector elements for single instruction multiple data processing |
US6195777B1 (en) * | 1997-11-06 | 2001-02-27 | Compaq Computer Corporation | Loss resilient code with double heavy tailed series of redundant layers |
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 |
ATE329413T1 (de) | 1998-08-20 | 2006-06-15 | Samsung Electronics Co Ltd | Vorrichtung und verfahren zur einfügung von vorher bekannten bits in die eingangsstufe eines kanalkodierers |
EP1443657A1 (en) * | 1998-09-28 | 2004-08-04 | Comtech Telecommunications Corp. | Turbo product code decoder |
EP1119915B9 (en) * | 1998-10-13 | 2004-07-14 | Interdigital Technology Corporation | Hybrid interleaver for turbo codes |
US6247158B1 (en) * | 1998-11-30 | 2001-06-12 | Itt Manufacturing Enterprises, Inc. | Digital broadcasting system and method |
US6304991B1 (en) | 1998-12-04 | 2001-10-16 | Qualcomm Incorporated | Turbo code interleaver using linear congruential sequence |
US6397240B1 (en) * | 1999-02-18 | 2002-05-28 | Agere Systems Guardian Corp. | Programmable accelerator for a programmable processor system |
US6473010B1 (en) * | 2000-04-04 | 2002-10-29 | Marvell International, Ltd. | Method and apparatus for determining error correction code failure rate for iterative decoding algorithms |
JP2004503979A (ja) * | 2000-06-16 | 2004-02-05 | アウェア, インコーポレイテッド | Ldpc変調用システムおよびその方法 |
US6754804B1 (en) * | 2000-12-29 | 2004-06-22 | Mips Technologies, Inc. | Coprocessor interface transferring multiple instructions simultaneously along with issue path designation and/or issue order designation for the instructions |
US6731700B1 (en) * | 2001-01-04 | 2004-05-04 | Comsys Communication & Signal Processing Ltd. | Soft decision output generator |
US6633856B2 (en) * | 2001-06-15 | 2003-10-14 | Flarion Technologies, Inc. | Methods and apparatus for decoding LDPC codes |
US6718504B1 (en) * | 2002-06-05 | 2004-04-06 | Arc International | Method and apparatus for implementing a data processor adapted for turbo decoding |
AU2003249708A1 (en) | 2002-07-03 | 2004-01-23 | Hughes Electronics Corporation | Method and system for memory management in low density parity check (ldpc) decoders |
US7178080B2 (en) * | 2002-08-15 | 2007-02-13 | Texas Instruments Incorporated | Hardware-efficient low density parity check code for digital communications |
WO2004019268A1 (en) * | 2002-08-20 | 2004-03-04 | Flarion Technologies, Inc. | Methods and apparatus for encoding ldpc codes |
KR20040036460A (ko) * | 2002-10-26 | 2004-04-30 | 삼성전자주식회사 | Ldpc 복호화 장치 및 그 방법 |
US7702986B2 (en) * | 2002-11-18 | 2010-04-20 | Qualcomm Incorporated | Rate-compatible LDPC codes |
KR100550414B1 (ko) * | 2002-12-24 | 2006-02-08 | 한국전자통신연구원 | 하이브리드 재전송 시스템에서 ldpc 부호를 사용하는인코딩 장치 및 디코딩 장치 |
US7254769B2 (en) | 2002-12-24 | 2007-08-07 | Electronics And Telecommunications Research Insitute | Encoding/decoding apparatus using low density parity check code |
KR100809619B1 (ko) * | 2003-08-26 | 2008-03-05 | 삼성전자주식회사 | 이동 통신 시스템에서 블록 저밀도 패러티 검사 부호부호화/복호 장치 및 방법 |
JP4123109B2 (ja) * | 2003-08-29 | 2008-07-23 | 日本ビクター株式会社 | 変調装置及び変調方法並びに復調装置及び復調方法 |
US7395495B2 (en) * | 2004-01-12 | 2008-07-01 | Intel Corporation | Method and apparatus for decoding forward error correction codes |
JP4555334B2 (ja) * | 2004-04-28 | 2010-09-29 | サムスン エレクトロニクス カンパニー リミテッド | 可変ブロック長を有するブロック低密度パリティ検査符号の符号化/復号化装置及び方法 |
US7346832B2 (en) | 2004-07-21 | 2008-03-18 | Qualcomm Incorporated | LDPC encoding methods and apparatus |
EP1779525A1 (en) * | 2004-08-05 | 2007-05-02 | Nokia Corporation | Irregularly structured, low denisty parity check codes |
-
2004
- 2004-07-21 US US10/895,547 patent/US7346832B2/en active Active
-
2005
- 2005-07-20 CA CA002577793A patent/CA2577793C/en not_active Expired - Fee Related
- 2005-07-20 CN CN2010102612108A patent/CN101917199B/zh active Active
- 2005-07-20 CA CA2672073A patent/CA2672073C/en not_active Expired - Fee Related
- 2005-07-20 EP EP05775250.3A patent/EP1787397B1/en active Active
- 2005-07-20 RU RU2007106450/09A patent/RU2395902C2/ru not_active IP Right Cessation
- 2005-07-20 CN CN2005800315941A patent/CN101432968B/zh active Active
- 2005-07-20 NZ NZ553354A patent/NZ553354A/en not_active IP Right Cessation
- 2005-07-20 UA UAA200701776A patent/UA91513C2/uk unknown
- 2005-07-20 CN CN2010102612184A patent/CN101917200B/zh active Active
- 2005-07-20 WO PCT/US2005/025752 patent/WO2006014742A2/en active Application Filing
- 2005-07-20 AU AU2005269729A patent/AU2005269729B2/en not_active Ceased
- 2005-07-20 KR KR1020087022801A patent/KR100905814B1/ko active IP Right Grant
- 2005-07-20 KR KR1020077004105A patent/KR100905813B1/ko active IP Right Grant
-
2007
- 2007-02-20 NO NO20070970A patent/NO20070970L/no not_active Application Discontinuation
- 2007-02-20 ZA ZA200701497A patent/ZA200701497B/xx unknown
-
2008
- 2008-03-17 US US12/050,119 patent/US8533568B2/en not_active Expired - Fee Related
-
2010
- 2010-03-05 AU AU2010200856A patent/AU2010200856B2/en not_active Ceased
- 2010-03-05 AU AU2010200854A patent/AU2010200854B2/en not_active Ceased
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105811997A (zh) * | 2011-01-18 | 2016-07-27 | 三星电子株式会社 | 用于在通信/广播系统中发送和接收数据的设备和方法 |
CN104981978A (zh) * | 2013-02-13 | 2015-10-14 | 高通股份有限公司 | 使用准循环构造和穿孔以实现高速率、高并行性和低差错本底的ldpc设计 |
CN104981978B (zh) * | 2013-02-13 | 2017-12-08 | 高通股份有限公司 | 使用准循环构造和穿孔以实现高速率、高并行性和低差错本底的ldpc设计 |
CN105429645A (zh) * | 2014-09-17 | 2016-03-23 | 上海数字电视国家工程研究中心有限公司 | 针对低码率ldpc码的校验矩阵、ldpc码字及编码方法 |
CN105429645B (zh) * | 2014-09-17 | 2019-03-08 | 上海数字电视国家工程研究中心有限公司 | 针对低码率ldpc码的校验矩阵、ldpc码字及编码方法 |
CN110024295A (zh) * | 2016-11-14 | 2019-07-16 | 华为技术有限公司 | 可变长度准循环低密度奇偶校验qc-ldpc码的编、解码方法和装置 |
US10931310B2 (en) | 2016-11-14 | 2021-02-23 | Huawei Technologies Co., Ltd. | Method and apparatus for encoding and decoding of variable length quasi-cyclic low-density parity-check, QC-LDPC, codes |
CN113014270A (zh) * | 2021-02-22 | 2021-06-22 | 上海大学 | 码长可配置的部分折叠极化码译码器 |
CN113014270B (zh) * | 2021-02-22 | 2022-08-05 | 上海大学 | 码长可配置的部分折叠极化码译码器 |
CN113300717A (zh) * | 2021-05-19 | 2021-08-24 | 西南交通大学 | 一种基于码率自适应的高效化ldpc编码器电路 |
CN113300717B (zh) * | 2021-05-19 | 2022-06-10 | 西南交通大学 | 一种基于码率自适应的高效化ldpc编码器电路 |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101917199B (zh) | Ldpc编码方法 | |
CN101895301B (zh) | Ldpc解码方法和装置 | |
US7627801B2 (en) | Methods and apparatus for encoding LDPC codes | |
JP4339886B2 (ja) | マルチレベルの置換を使用する低密度パリティチェック(ldpc)符号動作を行うための方法および装置 | |
CN102835032A (zh) | 用于循环行列式大小非整数倍的准循环ldpc编码和解码 | |
WO2008069231A1 (ja) | 復号装置、復号方法 |
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 |