LDPC编码方法转让专利

申请号 : CN201010261210.8

文献号 : CN101917199B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 汤姆·理查森金辉

申请人 : 高通股份有限公司

摘要 :

描述了灵活并相对硬件高效的LDPC编码器(300)。利用小于用于控制编码过程的码结构的全部并行度的并行度级别来实现所述编码器(301)。每个用于描述码结构的相对简单微码命令能被存储并被执行多次以完成对码字的编码(354)。使用相同组微码指令能支持不同的码字长度,但取决于所选将被使用的提升因子,码被实现的次数不同(310)。在不需要改变储存的码描述信息的情况下,仅通过改变用于控制编码过程的码提升因子,所述LDPC编码器能在编码不同长度的码字间切换(310)。当编码比最大可支持码字长度短的码字时,一些块存储单元和/或寄存器可以不使用(308)。

权利要求 :

1.一种实现可编程LDPC编码器系统的方法,所述方法包括步骤:在第一时间周期期间,将第一组码描述信息存储到LDPC编码器的一个模块中,所述第一组码描述信息对应于第一LDPC码结构;

操作所述LDPC编码器,以使用所述存储的第一组码描述信息执行LDPC编码操作;

在第二时间周期期间,将第二组码描述信息存储到LDPC编码器的所述模块中,所述第二组码描述信息对应于第二LDPC码结构;以及操作所述LDPC编码器,以使用所述存储的第二组码描述信息执行LDPC编码操作。

2.如权利要求1所述的方法,其中,在不同的时间周期期间使用所述存储的第一和第二组码描述信息来执行编码操作。

3.如权利要求1所述的方法,其中,所述存储第一组码描述信息的步骤是对接收到一个信号的响应,该信号指示对应于所述第一组码描述信息的码字将被使用。

4.如权利要求1所述的方法,其中,所述存储第一组码描述信息的步骤是对接收到一个信号的响应,该信号包括依据对应于所述第一组码描述信息的码结构进行编码的码字。

5.如权利要求1所述的方法,其中,所述第一组码描述信息包括编码器控制指令。

6.如权利要求5所述的方法,其中,每个编码器控制指令包括读和写操作指示符之一。

7.如权利要求6所述的方法,其中,每个编码器控制指令进一步包括旋转控制信息。

8.如权利要求7所述的方法,其中,每个编码器控制指令进一步包括存储器地址信息。

说明书 :

LDPC编码方法

[0001] 本申请是申请日为2005年7月20日、申请号为200580031594.1、名称为“LDPC编码方法和装置”的中国专利申请的分案申请。

技术领域

[0002] 本发明涉及为了利于错误检测和/或纠正的目的,用于编码数据的方法和装置,例如,通过使用诸如低密度奇偶校验(LDPC)码的奇偶校验码。

背景技术

[0003] 在通信和数据存储系统中,纠错码是普遍存在的。通过在数据流中引入冗余,纠错码补偿在这些系统中信息传递的固有不可靠性。近来在已知为低密度奇偶校验(LDPC)码的码类中产生了相当大的兴趣。可证明LDPC码是好码。在各种信道上,已经证实LDPC码真正接近于信道容量-由克劳德.香农创建的传输上限。
[0004] 通常由称作Tanner图的二分图来表示LDPC码,其中,一组节点,即变量节点,对应于码字的比特,并且另一组节点,即约束节点,有时也称为校验节点,对应于一组用于定义码的奇偶校验约束。图中的边将变量节点连接到约束节点。如果变量节点与约束节点由图中的边连接,那么它们被称作邻居。
[0005] 当且仅当对于每个约束节点,与约束(经由与这些比特相关联的变量节点)相邻的比特的模二和为零时,即,它们包括偶数个一时,那么与变量节点一一相关联的比特序列是码的码字。
[0006] 图1示出了示例性二分图100,其确定示例性的长为十以及二分 之一速率的(3,6)规则LDPC码。长度十表明存在十个变量节点V1-V10,每个由码字X1-X10的一个比特标识。
在图1中,通过参考数字102标识该组变量节点V1-V10。二分之一速率表明存在变量节点一半的校验节点,例如,存在通过参考数字106标识的五个校验节点C1-C5。二分之一速率进一步表明五个约束是线性独立的。示例性二分图100包括边104,其中,示例性(3,6)规则LDPC码具有连接到每个变量节点的3条边和连接到每个约束节点的6条边以及任意两个节点之间的最多一条边。
[0007] 尽管图1说明了与长为10的码相关联的图,但是能理解,表示长为1000的码字的图将复杂100倍。
[0008] LDPC码Tanner图表示的替代是诸如图2的图200中示出的奇偶校验矩阵表示。在这种码表示中,通常称为奇偶校验矩阵的矩阵H 202包括相应的边连接、变量节点以及约束节点信息。在矩阵H 202中,每列对应于变量节点之一,而每行对应于约束节点之一。
因为在示例性码中存在10个变量节点和5个约束节点,因此矩阵H 202包括10列及5行。
如果在图中出现边,即,如果两个节点是邻居,那么将对应于特定变量节点和特定约束节点的矩阵202中的项设置为1,否则,设置为0。例如,因为由边将变量节点V1连到约束节点C1,因此,将一设置在矩阵202的最左上角。然而,变量节点V5没有连到约束节点C1,因此将
0设置在矩阵202的第一行的第五个位置,这表明没有连接对应的可变及约束节点。我们说,如果H 202的行在GF[2]上是线性独立的向量,那么约束是线性独立的,其中GF[2]是二进制伽罗瓦域。
[0009] 在矩阵表示的情况下,将被发送的码字X能表示为向量204,向量204包括将被处理的码字的比特X1-Xn。当且仅当矩阵202与矩阵204的乘积等于零时,即:HX=0,比特序列X1-Xn是一个码字。
[0010] 编码LDPC码指的是从一组信息比特中产生码字的过程。通过预 处理LDPC图表示或矩阵表示,在实际编码前能确定对应于信息比特的一组变量节点。 [0011] 为了建立通用LDPC码的编码器,第一步是要找到H的行和列的置换(permutation),因此,相当于重排序,我们能把m×n矩阵H划分成如下的子矩阵 [0012]
[0013] 其中,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矩阵-1φ:=ET A+C是可逆的(我们这里假设H是行满秩)。
[0014] 然后如下继续编码。给定信息比特xs,为了编码码字 使用回代,对于y,我们首先解
[0015] [T A B][y 0 xs]T=0
[0016] 对于 接下来我们解
[0017]-1
[0018] 对于这步,预先计算矩阵φ 。最后,使用回代,对于 解
[0019]
[0020] 向量 组成码字。
[0021] 尽管编码效率和高数据率是重要的,但对于在例如消费设备的广泛设备范围中使用的实用性的编码系统,编码器能够以合理的成本实现是重要的。因此,例如在硬件成本方面,高效地实现用于错误纠正和/或检测目的的编码方案的能力,是重要的考虑。 [0022] 考虑上述的讨论,应该理解,存在针对用于实现LDPC码高效体系结构的编码器装置和方法的需要。允许重用相同硬件以编码不同长度码字的装置和方法将是有益的和期望的。这是因为它将允许在编码 器使用期间更大的灵活性,并且允许使用不同尺寸码字来编码不同组数据,因此在不需要多个编码器支持这样灵活性的情况下,允许为特定的编码应用,例如,通信会话或数据存储应用,来选择码字尺寸。

发明内容

[0023] 本发明针对编码方法和装置,例如,用于实现低密度奇偶校验(LDPC)编码器的方法和装置。本发明的各个实施例针对允许使用单个编码器来编码不同长度码字的特别灵活的编码器。这允许本发明的LDPC编码器在编码用于例如第一通信应用或数据存储应用这样的第一应用的第一长度码字,和编码用于第二应用的第二长度码字之间切换。实际上,使用相同硬件能支持很多种码字长度,该相同硬件允许通过对编码器中使用的码字描述的简单修改来改变码字长度。在相对简单的微码中可以反映码字描述,该微码被执行来满足特定应用的需要。
[0024] 本发明的编码器能储存对应于不同码结构的多组微码。当选择码结构以用于编码时,就选择相应的微码,并且生成对应于所选码结构的特定长度的码字。对于给定的码结构,通过选择不同的码提升因子,可以生成不同长度的码字。使用比最大可支持码提升因子小的码提升因子,通常会导致在编码器存储器中没有使用一些存储单元,例如块存储单元。通常由最大可支持码字尺寸确定在存储器中提供的块存储单元的数量。 [0025] 本发明的编码器能在不同的提升因子间切换,因此,这允许编码器在生成不同长度的码字间切换。因此,本发明的编码器能用于生成很适合于特定应用的长度的码字,并且不受硬件产生单一长度码字的约束。然而,在许多情况下,最大可支持码字长度取决于在编码期间可用于存储比特块的存储器量。
[0026] 对于包括(N×L)比特整数倍直到最大值K倍的不同尺寸的码字, 最大可支持码字尺寸可以是K×N×L比特,其中K、N和L都是正整数。
[0027] 本发明的编码器特别适合编码依据用于定义码并拥有特定分层结构的LDPC图生成的码字,其中,在很大程度上,整个LDPC图看起来是由多个副本组成,例如Z个较小的图组成。Z个图副本可以是,但不需要是相同的。为了解释本发明的目的,我们将把所述较小的图称为投影图,把全图称为提升图,并把Z称为提升因子。因此,投影图用作生成或描述较大提升图的基础,其中,提升图描述了用于控制编码的码结构。
[0028] 考虑通过1,...,j,...Z来索引投影LDPC图,其中j是用作投影图索引的整数,并且z是用于定义提升图的投影图总数。在通过简单地复制投影图Z次来生成提升图的严格并行图中,图j中的变量节点仅连接到图j中的约束节点。即,在用于形成较大提升图的投影图的边之间,不存在相互影响。
[0029] 本发明的编码器不受限制于此。根据本发明,可能取一条向量边,其包括每条边来自Z个图副本的每一个的对应边,并允许在Z条边内的置换,例如,我们准许置换对应于该待置换向量边内的边的约束节点,例如,重排序。
[0030] 我们把置换限制在标记为Ψ的Z×Z置换矩阵集合(通常是群)空间内。因此,这里将使用Ψ来指通常是置换矩阵群的置换矩阵集合。我们假设Ψ中置换的逆还在Ψ中。通常能使用各种准则来选择Ψ集合。上面结构的主要目的之一是要简化解码器和编码器的硬件实现。因此,把Ψ限制为能在硬件中高效实现的置换是有益的,例如,在交换网中。
[0031] 根据本发明,并且在各个实施例中,LDPC编码过程被展开为矩阵加法及乘法操作的有序序列,该LDPC编码过程可以转化为一系列命令。为了描述的方便,我们把示例性图G的这一系列编码命令标 记为G的编码微码。然后,使用本发明的编码器,通过顺序执行G的微码来完成实际编码,该编码器根据在预先装载了例如将被编码的比特这样的信息比特的物理存储器上的微码,执行各种操作。每个命令包括操作符op和存储单元指示符。根据操作符op,编码器控制逻辑读出位于由存储单元指示符确定的存储器中的比特单元,并把它累加到寄存器,或者把寄存器值写到存储单元a并把寄存器值复位为零。微码的尺寸,即,其内的命令数,至少等于图G中的边数;通常,他们大致相同。
[0032] 考虑具有提升因子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。
[0033]
[0034] 在矩阵H中,σi i=1,...,16是这里示出的从变量节点侧索引的Ψ的元素(矩阵)。
[0035] 让我们回忆,当且仅当Hx=0时,向量x是码字。在提升矩阵表示中,把x看作GF(2^Z)中元素的向量,替代二进制元素的向量,其 中GF(2^Z)是2^Z个元素的伽罗瓦域。就此而论,可以模仿作为在背景部分展开的矩阵-向量乘法和向量加法的编码过程:投影图中的矩阵中的每个非零元素1由它的相应Z×Z置换矩阵替代;向量中的每个比特由Z比特向量替代。
[0036] 使用G作为投影图的LDPC图的编码过程大部分被指定为上述用于投影图的编码过程的提升。这通过将原始算法中的比特操作替换为提升算法中的比特向量操作来完成。在编码处理中的一个或多个点,在从存储器读出后,Z比特向量经受置换操作,例如,重排序操作。重排序操作可以是旋转操作,或简称旋转。这些旋转操作通常对应于与向量边相关联的旋转,该向量边互连投影图的Z个副本以形成单个大图。因此,在提升的微码中,每个命令包括操作符op、旋转数r、以及存储单元指示符。
[0037] 提升投影图的微码在很大程度上指定了用于提升图的编码。一个例外是,在投影-1图中存在矩阵求逆,即用于计算矩阵φ 。在这样的情况下,该求逆不直接提升到提升图中的矩阵求逆。而是,在Z×Z置换矩阵的环中完成矩阵求逆,并且对应的编码命令产生一组指定矩阵求逆的新命令。在那些命令中,在适当的LDPC表示预处理之后,需要的旋转是显然的。
[0038] 因此,根据本发明用于描述提示图的微码尺寸大致等于投影图中边的数量加上通常很小的指定求逆的附加命令的数量。因此,对于相同块长度,增加提升因子通常会减少编码微码的尺寸。对于大的块长度,这可以显著节省微码描述存储器,例如,相对小的存储器可用于存储描述将用于编码的大图的信息。
[0039] 在实际通信或数据存储系统中,通常要求编码器的吞吐量匹配解码器的吞吐量。对于具有提升因子Z的提升图,对编码器和解码器实现硬件并行度Z,通常产生的编码器吞吐量比为了匹配解码器吞吐量所需的编码器吞吐量高,因为解码器需要多几个的迭代来收敛,例如, 完成码字的解码。
[0040] 基于发明者提供的这个启示,应该理解,在给定时间周期处理的码字数量方面,期望编码器使用比解码器小的实现并行度,并达到相同吞吐量,利用本发明这是可能的。 [0041] 对于另一个实例,在描述大图时使用大的提升因子Z实现上面提到的节省存储器的好处的情况下,使用实现并行度Z引起高的并行单元数,生成过度的吞吐量。 [0042] 给定硬件复杂度正比于实现并行度N而图描述复杂度正比于提升因子Z的事实下,期望当使用以大提升因子Z描述的提升图时,由实现并行度得到的吞吐量匹配需求,但不过度。
[0043] 本发明的各种特征针对使用描述具有提升因子Z的提升图的微码,实现具有实现并行度N的向量LDPC编码器的方法和装置,其中,N是Z的除数。选择实现并行度N以匹配所需吞吐量,因此使用最小硬件复杂性。
[0044] 此外,根据本发明,具有实现并行度N的向量LDPC编码器能够根据描述具有提升因子Z的提升图的相同微码,生成例如编码数据,以产生对应于一类具有相同速率但不同块尺寸的LDPC码的码字。特别地,作为实例,假定Z可用因子分解为K1×K2×N,并且投影图具有n个变量节点,则新颖编码器可以生成不同码字尺寸N×n,K2×N×n以及K1×K2×N×n的三个不同码。
[0045] 因此,使用本发明编码器的设备能,并且经常,根据应用,在使用存储的微码中描述的不同图进行编码之间切换,使得生成的码字是适于特定应用的块尺寸。例如,可以生成用于无线通信的第一尺寸的码字,而且可以生成用于光纤通信目的的第二尺寸的码字。 附图说明
[0046] 图1说明了长度为十的示例性规则LDPC码的二分图表示。
[0047] 图2是图1中以图说明的码的矩阵表示。
[0048] 图3说明了根据本发明实现的示例性编码器,并且也说明了根据本发明的编码方法生成的编码器内的各种信号和信息的流程。
[0049] 图4说明了例如移动节点的设备,其使用根据本发明实现的可编程LDPC编码器。 [0050] 图5包含图5A和图5B的结合,是运行根据本发明实现的示例性通信设备以执行根据本发明的编码和解码的示例性方法的流程图。

具体实施方式

[0051] 本发明针对用于实现LDPC编码器的方法和装置。本发明的各个实施例针对LDPC编码器和编码方法,该LDPC编码器和编码方法能以硬件高效的方式实现,同时关于能在编码期间使用的码结构和生成的码字尺寸相对灵活。
[0052] 图3说明了根据本发明实现的示例性的LDPC编码器300。编码器包括图3中所示的耦合在一起的存储器模块302、控制模块312、基于码提升(lifting)的块选择模块310、N元素可控制置换器304、N元素向量累加器模块306以及可控制存储设备308。注意,在本应用中术语置换器和变换器被交替使用来指相同的事物。以下将会详细地描述LDPC编码器300的各个单元和它们的功能。
[0053] 如上所讨论,使用不同的码描述和/或对于相同的码描述使用由不同提升因子指示的不同码字长度,本发明的编码器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块Blk 1 318、Blk 2 320、Blk K 322,以及用于储存临时值的K个N×1块Blk 1 319、Blk 2 321、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个比特将要执行什么样的比特重排序。
[0054] 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比特写到存储器。
[0055] 控制模块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中的一个或多个寄存器。
[0056] 所存储编码器描述信息模块372包括例如微码的控制码。当响应于外环控制信号375执行该码时,这个码生成由在微码的执行行中包含的op值指定的读/写信号350。将信号350提供给存储器模块302和可控制存储设备308。所存储编码器描述信息模块372也生成:当 要执行读/写操作时提供给存储器模块302的存储器地址控制信号352、提供给基于码提升的块选择模块310的第一选择模块控制信号r1 354、以及提供给可控制置换器304以控制对从存储器模块302读出值的重排序的重排序控制信号r2 373。 [0057] 基于码提升的块选择模块310接收来自所存储编码器描述信息模块372的第一选择模块控制信号r1 354和由内环计数器370生成的第二选择模块控制信号356。基于码提升的块选择模块310生成提供给存储器寻址逻辑316的块地址选择信号358,以指示将在特定时间点访问的存储器314的特定块。基于码提升的块选择模块310也生成块选择控制信号360,其用于控制哪个信息块,例如,哪个寄存器332、334、336比特将在特定时间点在可控制存储设备308中被访问。
[0058] 由公共时钟信号驱动编码器300的各个组件,因此,各种操作和计数器370、374的递增以同步的方式工作。
[0059] 在多个处理相互作用后,作为在所存储编码器描述信息模块372指导下执行的编码器处理操作以及存储器访问操作的结果,最初存储在存储器模块314中的一组信息比特将被变换为码字。这个码字可以被读出,并且例如,被发送或存储。
[0060] 为了获得高错误复原级别,通常使用相对长的码字。例如,通过执行编码操作生成的单个码字可以包括总共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比特的倍数。
[0061] 2004年2月 26日 提 交 的、名 为“METHOD AND APPARATUS FOR PERFORMING LOW-DENSITY PARITY-CHECK(LDPC)CODE OPERATIONS 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的维数。
[0062] 根据本发明,我们将提升群Ψ限定为乘积提升群。如上面提到的,乘积提升能等同地被看作多维提升。因此,本发明的当前编码器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的提升。
[0063] 在本发明的编码器和硬件实现的上下文中,实现由乘积提升提供的各种优点。在编码器中通过使用乘积提升增加的值是本发明许多特征之一。由不是乘积的群的提升,例如,由循环群的提升,允许任意尺寸的提升,但不能提供乘积提升的灵活性。 [0064] 名 为“METHOD AND APPARATUS FOR PERFORMING LOW-DENSITY PARITY-CHECK(LDPC)CODE OPERATIONS USING A MULTI-LEVEL PERMUTATION”的美国专利申请S.N.10/788,115描述了乘积提升图和使用这些图的可能益处。
[0065] 通过描述使用提升因子Z=K×N的新颖编码器300,本发明扩展了在该申请中描述的一些基本概念。本发明的各个特征针对用于以灵活但相对硬件高效的方式,利用实现并行度N来对图编码的方法和装置。当N是固定的时,K能被用作提升控制因子,并能指示将要生成的码字的尺寸。
[0066] 我们假定具有提升因子Z=K×N的提升LDPC图。提升群Ψ是乘积提升群Ψ=Ψ1×Ψ2,其中K是群Ψ1的维数,并且N是群Ψ2的维数。我们能生成具有提升因子Z的提升图的微码,微码是一系列命令,其中每个命令包含操作符op、旋转数r、以及存储单元a。使用并行度Z实现的编码器300用以下方式执行每个命令:如果op指示读,那么控制器在存储单元a处从存储器读Z比特向量,用量r对其重排序,并将重排序的值累加到Z比特寄存器;如果op指示写,那么控制器将Z比特寄存器的值写入存储器的存储单元a处。并且通过执行整个系列的命令完成编码。
[0067] 执行的微码可以存储在编码器描述信息模块372中,除了存储要被使用的微码外,编码器描述信息模块372还负责访问并执行包含在微码中的指令。
[0068] 使用并行度N,即,N个并行处理单元,而不是并行度Z=K×N, 能获得执行例如本发明命令的微码指令的相同结果。然而,在我们的N并行实现中,我们执行相同的基本命令K次,每次完成处理Z个比特工作的1/K。
[0069] 为了更好地理解本发明的编码过程,让我们首先考虑一个命令,该命令从存储单元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实现的。 [0070] 我们现在描述如何将上述提及的使用并行度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=1,...,k,我们获得与利用Z比特向量操作执行命令相同的结果,但是利用较低的编码器并行度N达到这个结果,其中,N<Z。 [0071] 实际上以非常简单的方式,根据本发明,把Z比特寄存器写到存储单元a并复位Z比特寄存器的命令也能被分解为K步。在步骤j,我们将K个N比特寄存器332、334、336的第j个寄存器写到由j和存储单元a确定的存储单元,并且复位该寄存器332、334或336。
通过运行j=1,...,k,我们获得与利用Z比特向量操作执行命令相同的结果。 [0072] 以上讨论在原理上描述了我们如何使用并行度N来实现对应于提升因子Z的微码,例如,储存在编码器描述信息模块372中的微码。
[0073] 参考图3,我们现在将更加详细地描述用于实现K步编码过程的示例性编码器300,当使用Z>N的提升因子Z时,所述K步编码过程允许并行度N。
[0074] 在图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中的重排序元素。将信号r1354提供给用于生成块地址选择信号358的基于码提升的块选择模块
310,该块地址选择信号358用于控制访问存储器模块302中的哪个存储块,同时将信号r2
373提供给置换器304,以控制对从存储器302中读出块的N个元素的置换。 [0075] 为了接收信号r1 354,基于码提升的块选择模块310具有第一选择模块控制信号354,其耦合到来自所述控制模块312的命令中的重排序量r的r1部分。由控制模块312的内环计数器370生成的第二选择控制信号356驱动,并由控制信号r1 354控制,基于码提升的块选择模块310输出取值从1到K的块地址选择信号358,以及取值 的块选择控制信号360。
[0076] 存储器模块302具有耦合到所存储编码器描述信息的操作符op输出的用于接收读/写信号350的输入,以及用于接收存储器地址控制信号352的另一个输入,存储器地址控制信号352对应于在特定时间点被执行的存储在模块372中的微码指令中包含的存储单元a。
[0077] 存储器模块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比特向量。
[0078] 存储器模块302的读出操作输出从存储器314中读出的N比特向量340。将这N比特向量馈入到N元素可控制置换器模块304。模块304实现群Ψ2中的重排序;它的重排序控制信号耦合到所存储编码器描述信息模块372的r2信号输出。r2信号导出自重排序数r,从在特定时间点执行的来自信息模块372的微码命令获得在该特定时间点使用的重排序量r。
[0079] 置换器模块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。
[0080] 可控制存储设备模块308包括K个寄存器,每个寄存器存储N个比特。耦合到基于码提升的块选择模块310的块选择控制信号360确定在特定时间点要访问K个寄存器中的哪一个。耦合到来自控制模块312的命令中包含的操作符op的读/写控制信号350确定访问模式,例如,读或写访问模式。假定块选择控制信号360指示j。如果控制信号是读,则来自可控制存储设备模块308的N比特输出向量取第j个寄存器的值,并将来自N元素向量累加器模块306的累加值写到第j个寄存器。换句话说,将来自N元素可控制置换器模块304的重排序值累加到由块选择控制信号360指示的第j个寄存器。如果读/写控制信号350是写,输出向量再次假设第j个寄存器的值,并且我们然后复位第j个寄存器为零。 [0081] 概括地,给定具有提升因子Z=K×N的提升图的微码,本发明的各个实施例针对执行N比特向量操作的编码器。每个N比特向量操作包括微码中的命令的执行,该微码描述用于编码的码结构。为了实现包括Z比特的码字的编码,在顺序的K个步骤中实现每个N比特命令,该K个步骤由部分所存储微码命令信息和一个或多个计数器控制。 [0082] 在本发明的各个实施例中,所提出的编码器能生成不同的码,这些码共享与投影图相同的速率,但具有不同码字长度。这通过使用选择的提升因子控制值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换矩阵。这样,根据群论的基本原理,即使对于矩阵逆φ ,在较大图中的与矩阵乘法相同的解码过程序列对于投影图仍然成立。
[0083] 因此,描述具有提升因子Z的较大图的微码也是描述具有提升因子Z/J=SK×N的投影图的微码。与以上提及的关于Z的情况相同的推理路线,通过按照由存储在所存储编码器描述信息模块372中的部分命令信息控制的顺序,在SK个步骤中执行微码内的每个命令,我们能使用具有N比特向量操作的相同编码器来编码具有提升因子SK×N的码。 [0084] 如果Ψ1仍然能写为两个其他群的直接乘积Ψ1=Ψ11′×Ψ12′,那么存在共用相同微码的不同块长度的其他码,其是本发明的各个实现中 的情况。根据本发明,通过指定相应的SK,具有并行度N的相同编码器能编码具有提升因子Z/J′的码,其中,J′是Ψ11′的维数。Ψ1中更多的附加结构可以导致更多的不同块长度的码可在相同编码器硬件上编码。因此,通过依据群结构控制SK,编码器能生成具有不同块长度的一类LDPC码。 [0085] 在图300中,能通过码提升因子控制信号348指定选择的码提升因子,由于该选择的码提升因子将控制生成的码字的长度,因而能作为码字长度选择信号。信号348被提供给内环计数器370并确定内环计数器370的最大计数。
[0086] 本发明编码器的灵活性和它能通过使用控制码实现的方便性,将由于以下的控制码实例而显而易见。以下的码可作为码描述信息,码描述信息被存储在所存储编码器描述信息模块372中,并被执行,例如,每次一行,以实现编码操作。
[0087] 以下包含表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。考虑例如第一个指令1434。这个指令应该解释为读(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中的一个。
[0088] (开始)
[0089]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
[0090] 表格1A
[0091] (继续)
[0092]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
[0093] 表格1B
[0094] 本发明的方法和装置能用于实现广泛的各种设备,包括,例如,无线终端、基站、数据存储设备以及可能使用编码和/或解码数据以防止和/或纠正错误的其他类型设备。 [0095] 图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相互交换数据和信息。 [0096] 将接收机1002耦合到接收机天线1004,经由接收机天线1004,WT 1000可以接收来自其他设备的信号,例如,来自基站的已编码下行链路信号。接收机1002也耦合到可编程LDPC解码器1006,其可以根据本发明解码所接收的下行链路信号。除了例如LDPC编码数据之外,接收的信号还可以包括例如控制信息的信号,该信号用于指示用于编码正被接收的数据的LDPC码结构和/或包括在接收数据中的码字的码字长度。接收的数据可以包括对应于不同应用的码字。根据本发明,解码器可以从解码对应于第一个码结构和码字长度的数据切换到解码对应于第二个码结构和第二个码字长度的数据。第一个和第二个码字结构可以不同,响应于包含在接收信息中的信息,用例如微码形式的控制码这样的适当码结构信息装载解码器。通常不使用LDPC码来编码控制信息,以便于控制信息的快速检测和解释。第一个和第二个码字长度也可以不同。在一些情况下,第一个和第二个码结构是相同的,但是对应于不同应用的数据的码字长度可以是不同的。在这样的情况下,不需要更新码结构信息来解码不同尺寸的码字,并且,随着接收数据的码字长度改变,仅需要将例如提升因子信息的码字长度信息提供给解码器。可以将码字长度信息指定为正在使用的码结构的码提升因子。如以下将要讨论的,例如控制码的码结构信息能用于控制可编程LDPC解码器,而码字长度信息能用于设置码字长度,用于解码目的。这样的信息经由总线1018能从存储器1016传送 到解码器1006。
[0097] 将发射机1008耦合到发射机天线1010,WT 1000可以通过发射机天线1010向基站发射包括已编码的上行链路信号的上行链路信号。将发射机1008耦合到可编程LDPC编码器1012,可编程LDPC编码器1012在传输前编码各种上行链路信号,例如,对应于不同应用的数据信号。给编码器装载对应于不同码结构的不同组码描述信息,例如,诸如微码的不同组控制码。另外,将用于控制由编码器1012生成的码字的长度的码字长度信息,例如,以码提升因子信息的形式,提供给编码器1012。可以从接收的信息中获得选择码字结构和/或码字长度的信息,例如,编码器可以使用与用于解码的相同码字结构和码字长度来编码由应用生成的数据,该相同码字结构和码字长度被用于解码为该生成数据的特定应用接收的数据。因此,可以编程编码器,以匹配由与无线终端相互作用的另一个设备使用的编码结构和码字长度。或者,设备用户可以指定使用特定的码字结构和/或码字长度,或者这样的信息可由通信程序或存储在无线终端中的其他程序指定。
[0098] 经由总线1018,能将码结构信息和/或码字长度信息从存储器1016传送到可编程LDPC编码器1012。例如键盘、扬声器、传声器、显示器等的用户I/O设备1015提供接口,以使用户输入数据和信息,例如,将被编码并传送到另一个WT的数据和信息,以及使用户输出和/或显示接收的数据/信息,例如,来自同等节点的已经被解码的接收数据和信息。用户I/O设备1015提供接口,以允许用户选择和/或指定将由可编程LDPC解码器1006和/或可编程LDPC编码器1012使用的与一组数据相关联的码、码长度指示符、和/或多组码描述信息。
[0099] 处理器1014,例如CPU,执行程序并使用存储器1016中的数据/信息,以控制无线终端1000的操作并实现本发明的方法。
[0100] 存储器1016包括编码器码描述信息组1026、1028的群1025,以及解码器码描述信息组1030、1032的群1029。每个编码器码描述信息组1026、1028包括反映将被用于对数据编码的码的码结构的控制码,例如微码。每组信息1026、1028对应不同的码结构。编码器码描述信息能被装载到可编程LDPC编码器1012的编码器控制模块,并例如作为存储的编码器描述信息,用于控制数据的编码。类似地,每个解码器码描述信息组1030、1032包括反映将被用于对数据解码的码的码结构的控制码,例如微码。每组解码器码描述信息1030、1032对应不同码结构。解码器码描述信息能被装载到可编程LDPC解码器1006的控制模块,并例如作为存储的解码器描述信息,用于控制数据的解码。
[0101] 存储器1016包括通信程序1020、编码器码和码字长度选择程序1022、以及解码器码和码字长度选择程序1024。通信程序1020可以控制与其他无线设备通常的通信和相互作用。当使用LDPC码编码和/或解码数据时,对于给定应用实现的通信程序可以指定将用于特定通信应用的码结构和和/或码字长度。编码器码和码字选择程序1022负责选择将用于特定应用的码结构以及因此相应的编码器码描述信息1026、1028。基于从通信程序1020接收的信息、经由接收机1002或从用户输入接收的信息来作出这个选择。如果编码器码和码字长度选择程序1022还没有被配置为根据选择的码和码字长度执行编码,那么它负责用选择的码描述信息装载可编程LDPC编码器1012,并负责将例如选择的码提升因子的信息提供给可编程编码器1012。如果解码器码和码字长度选择程序1024还没有被配置为根据选择的码和码字长度执行解码,那么它负责用选择的码描述信息装载可编程LDPC解码器1006,并负责将例如选择的码提升因子的信息提供给可编程解码器1006。 [0102] 除了以上讨论的涉及编码和解码的程序和信息外,存储器1016 还可用于存储接收的解码器信息1038,例如,由指示将用于解码的码结构和码字长度的解码器码和码字长度选择程序1024使用的接收信息。另外,接收的编码器信息1044,例如,由指示将用于编码的码结构和码字长度的编码器码和码字长度选择程序1022使用的接收的信息,可存储在存储器1016中。涉及解码的用户输入信息1036以及涉及编码的用户输入信息1042也存储在存储器1016中。这样的信息与解码器信息1038和编码器信息1044相同或类似,但是它经由用户I/O设备1015而不是经由接收机1002从用户获得。
[0103] 对于能够并且在一些实施例中用作可编程LDPC解码器1006的示例性可编程LDPC解码器的详细讨论,见具有2005年7月21日的提交日期、发明者名字为Tom Richardson、Hui Jin和Vladimir Novichkov、名为“LDPC DECODING METHODS AND APPARATUS”的美国专利申请S.N.10/895,645,在此被明确地引入作为参考。为了提供背景信息的目的,美国专利NO.6,633,856也明确地引入作为参考。
[0104] 使用上述讨论的程序和存储的编码器/解码器信息,根据例如用户信息或经由接收机1002接收的信息这样的接收信息,为了编码和解码目的,无线终端能在使用不同码结构和码字长度间切换。也可由在特定时间点执行的特定通信程序1020来触发编码器/解码器改变。因此,利用通过码更新的使用而容易被修改的单个一组硬件,本发明在LDPC码的编码和解码中允许很大的灵活性,该码更新对应于不同码结构和/或码字长度控制参数的改变。
[0105] 涉及本发明依赖的LDPC码结构的各个概念在2003年7月11日提交的,名为“MEHTOD AND APPARATUS FOR ENCODING LDPC CODES”的美国专利申请S.N.10/618,325中描述和讨论,并在此被明确地引入作为参考。当按照引入的专利申请中提供的讨论来看时,能获得对本发明的方法和装置的技术和好处的更好评价。
[0106] 包括图5A和图5B组合的图5是操作根据本发明实现的例如WT1000的示例性通信设备以执行根据本发明的编码和解码的示例性方法的流程图1100。操作在步骤1102开始,在其中WT 1000接通电源并初始化。操作从步骤1102继续进行到步骤1104、1106、以及步骤1108。
[0107] 在步骤1104,操作WT 1000接收编码/解码信息和/或从接收的数据生成控制信息。可以经由通过接收机1002处理的接收信号和/或经由用户I/O设备1015接收的用户输入来接收编码/解码信息,例如,用于可编程LDPC编码器1012和/或可编程LDPC解码器的控制信息。另外,处理接收的编码数据以生成控制信息。例如,使用不同的码结构信息和/或不同码字长度能执行解码的多次尝试。一旦成功解码,在一些实施例中生成控制信息,该控制信息指示将用于解码到来数据以及在一些实施例中编码输出数据的码结构和/或码字长度。经由连接节点A 1110,操作从步骤1104继续进行到步骤1112。在步骤1112,操作WT 1000以确定接收的编码/解码控制信息的类型。基于步骤1112的确定,操作继续进行到步骤1114、1116、1118或1120。
[0108] 如果在步骤1112确定控制信息的类型是编码器码结构信息,则操作继续进行到步骤1114。在步骤1114,操作WT 1000来用一组码描述信息,例如对应于由控制信息指示的码结构信息的控制码,装载编码器1012。操作从步骤1114继续进行到连接节点B 1122。 [0109] 如果在步骤1112确定信息的类型是编码器码字长度信息,则操作继续进行到步骤1116。在步骤1116,操作WT 1000将对应于由控制信息指示的码字长度的码字长度指示符,例如选择的提升因子,提供给编码器1012。操作从步骤1116继续进行到连接节点B1122。
[0110] 如果在步骤1112确定控制信息的类型是解码器码结构信息,则操作继续进行到步骤1118。在步骤1118,操作WT 1000来用一组码描述信息,例如对应于由控制信息指示的码结构的控制码,装载解码 器1006。操作从步骤1118继续进行到连接节点B 1122。 [0111] 如果在步骤1112确定信息的类型是解码器码字长度信息,则操作继续进行到步骤1120。在步骤1120,操作WT 1000将对应于指示码字长度的码字长度指示符,例如选择的提升因子,提供给解码器1006。操作从步骤1120继续进行到连接节点B 1122。 [0112] 操作从连接节点B 1122返回到步骤1104,其中,WT 1104等待接收其他编码/解码信息,例如,完成可编程解码器1006和/或可编程编码器1012的配置的信息,和/或改变解码器1006和/或编码器1012的选择的设置的信息,例如,码字长度设置。 [0113] 在步骤1106,操作包括先前配置的可编程解码器1006的WT1000,通过接收机1002接收将被解码的数据,例如,来自WT 1000的同等节点的已编码用户数据。将接收的数据转发给解码器1006。操作从步骤1106继续进行到步骤1124。在步骤1124,依据在解码器1006中的所存储码描述信息和已经被提供给解码器的码字长度指示符信息,操作解码器
1006以解码数据。操作从步骤1124继续进行到步骤1106,在步骤1106中接收将被解码的附加数据。
[0114] 在步骤1108,操作包括先前配置的可编程编码器1012的WT 1000,通过用户I/O设备1015接收将被编码的数据,例如,来自WT 1000用户的将要被编码并被传送给WT 1000的同等节点的输入数据。将接收的数据转发给编码器1012。操作从步骤1108继续进行到步骤1126。在步骤1126,依据所存储码描述信息和被提供给编码器的码字长度指示符信息,操作编码器1012以编码数据。操作从步骤1126继续进行到步骤1108,在步骤1108中接收将被编码的附加数据。
[0115] 在时间上,随着被装载到编码器1012和解码器1006的、对应于例如选择的提升因子这样的码字长度信息的控制信息改变,码字长度将会改变。因此,随着无线终端从对应于第一个设备和/或应用而接收数据切换到对应于第二个设备和/或应用而处理数据,码字长度能, 并且在各个实现中将改变。另外,在时间上随着无线终端与不同的设备相互作用和/或实现不同的应用,能改变由编码器1012和/或解码器1006使用的码结构信息。因此,在第一个时间点,编码器和解码器可以处理对应第一个长度和/或码结构的码字,并且在另一个时间处理对应于第二个长度和/或码结构的码字。在其他的时间点,本发明的可编程LDPC编码器1012和解码器1006可以使用其他的码结构和/或码字长度。各个可支持的码字长度通常将会达到由编码器1012和解码器1006中可用存储器量和/或可用寄存器数量和尺寸确定的最大尺寸。
[0116] 以下的专利申请和专利提供关于编码和/或解码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。
[0117] 关于本发明的方法和装置的众多改变是可能的。因此,用于实现本发明的模块可以作为软件、硬件、或软件及硬件的组合实现。例如,可以用硬件和/或软件实现本发明的各种特征。例如,本发明的一些方面可以实现为处理器执行的程序指令。或者,或另外,本发明的一些方面可以实现为例如,诸如ASIC的集成电路。本发明的装置针对软件、硬件和/或软件与硬件的组合。设想了包括用于控制机器来实现根据本发明的一个或多个方法步骤的指令的机器可读媒介,其被认为在本发明的一些实施例的范围内。 [0118] 本发明尤其针对能用于控制处理器以执行根据本发明的编码和/或解码的软件。本发明的方法和装置能用于OFDM通信系统以及包括CDMA系统的其他类型通信系统。