纠错码交织器转让专利

申请号 : CN200480012667.8

文献号 : CN1784833B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 罗伯特·J·凡福莱亚历山大·胡布里斯

申请人 : 泰拉扬信息系统公司

摘要 :

可以将存储器划分为不断滑动的FIFO。可以以最旧数据在底部始端且最新数据在末端或者反过来的方式将各个FIFO首尾相连地堆栈在存储器中。对于每个码元,可以将指针增加适当量,通常比前一码元多J,以组大小取模。在每个组之后,可以将指针比之前增量多增加J,并且处理开始结束,如果到达存储器的末端则回转存储器。在预置量的码元后,可以从增加J重新开始处理。另选地,可以减小指针而不是增加指针。由此,最新码元采用当前FIFO中的最旧码元空出的存储位置,导致FIFO“滑动”,对纠错码交织提供了非常有效且可靠的存储器使用。

权利要求 :

1.一种用于在组中交织具有I个码元的纠错码的码元的方法,所述方法包括以下步骤:将占位符设置到 大小的存储器中的初始位置,其中J为延迟值;

对于接收到的每I个码元执行以下操作:

从step为0到step为I-1进行重复计数,执行以下步骤:a)将写指针设置为等于所述占位符;

b)如果step为0,则将所述占位符设置为等于读指针;

c)如果step不为0,则使所述占位符前进step×J个存储位置,如果所述占位符值会超过所述存储器的末端则回转;

d)将所述读指针设置为等于所述占位符;

e)从所述存储器中的由所述读指针指示的位置进行读出;以及f)除非step为0,否则将后继所述I个码元写入所述存储器中的由所述写指针指示的位置,在step为0的情况下将其旁路。

2.根据权利要求1所述的方法,其中,所述使所述占位符前进的步骤包括向所述占位符加上step×J,并向所获得的和应用以所述存储器大小取模。

3.根据权利要求1所述的方法,其中,所述使所述占位符前进的步骤包括从所述占位符减去step×J,并向所获得的差应用以所述存储器大小取模。

4.根据权利要求1所述的方法,其中,通过无延迟地发送码元而将其旁路。

5.一种用于在组中交织具有I个码元的纠错码的码元的方法,所述方法包括以下步骤:将写指针设置到 大小的存储器中的初始位置,其中J是延迟值;

对于接收到的每I个码元执行以下操作:

从step为0到step为I-1进行重复计数,执行以下步骤:a)将读指针设置为等于所述写指针的后一个存储位置,如果所述读指针会超过所述存储器的末端则回转;

b)从所述存储器中的由所述读指针指示的位置进行读出;

c)将后继所述I个码元写入所述存储器中的由所述写指针指示的位置;以及d)使所述写指针前进(step+1)×J个存储位置,如果所述写指针会超过所述存储器的末端则回转。

6.根据权利要求5所述的方法,其中,所述使所述写指针前进的步骤包括向所述写指针加上step×J,并向所获得的和应用以所述存储器大小取模。

7.根据权利要求5所述的方法,其中,所述使所述写指针前进的步骤包括从所述写指针减去step×J,并向所获得的差应用以所述存储器大小取模。

8.根据权利要求5所述的方法,其中,后一个存储位置等于比所述写指针指示的存储位置低一个的存储位置。

9.根据权利要求5所述的方法,其中,后一个存储位置等于比所述写指针指示的存储位置高一个的存储位置。

10.一种用于在组中交织具有I个码元的纠错码的码元的方法,所述方法包括以下步骤:将写指针设置到 大小的存储器中的初始位置,其中J是延迟值;

对于接收到的每I个码元执行以下操作:

从step为0到step为I-1进行重复计数,执行以下步骤:a)从所述存储器中的在所述写指针后一个存储位置的位置进行读出,如果所述位置会超过所述存储器的末端则回转;

c)将后继所述I个码元写入所述存储器中的由所述写指针指示的位置;以及d)使所述写指针前进(step+1)×J个存储位置,如果所述写指针会超过所述存储器的末端则回转。

11.根据权利要求10所述的方法,其中,所述使所述写指针前进的步骤包括向所述写指针加上step×J,并向所获得的和应用以所述存储器大小取模。

12.根据权利要求10所述的方法,其中,所述使所述写指针前进的步骤包括从所述写指针减去step×J,并向所获得的差应用以所述存储器大小取模。

13.根据权利要求10所述的方法,其中,后一个存储位置等于比所述写指针指示的存储位置低一个的存储位置。

14.根据权利要求10所述的方法,其中,后一个存储位置等于比所述写指针指示的存储位置高一个的存储位置。

15.一种用于在组中交织具有I个码元的纠错码的码元的装置,所述装置包括:用于将占位符设置到 大小的存储器中的初始位置的装置,其中J为延迟值;

对于接收到的每I个码元,用于从step为0到step为I-1进行重复计数的装置,该进行重复计数的装置包括:a)将写指针设置为等于所述占位符的装置;

b)如果step为0,则将所述占位符设置为等于读指针的装置;

c)如果step不为0,则使所述占位符前进step×J个存储位置,如果所述占位符值会超过所述存储器的末端则回转的装置;

d)将所述读指针设置为等于所述占位符的装置;

e)从所述存储器中的由所述读指针指示的位置进行读出的装置;以及f)除非step为0,否则将后继所述I个码元写入所述存储器中的由所述写指针指示的位置,在step为0的情况下将其旁路的装置。

16.根据权利要求15所述的装置,其中,使所述占位符前进的装置包括向所述占位符加上step×J,并向所获得的和应用以所述存储器大小取模的装置。

17.根据权利要求15所述的装置,其中,使所述占位符前进的装置包括从所述占位符减去step×J,并向所获得的差应用以所述存储器大小取模的装置。

18.根据权利要求15所述的装置,其中,通过无延迟地发送码元而将所述码元旁路。

19.一种用于在组中交织具有I个码元的纠错码的码元的装置,所述装置包括:用于将写指针设置到 大小的存储器中的初始位置的装置,其中J是延迟值;

对于接收到的每I个码元,用于从step为0到step为I-1进行重复计数的装置,该进行重复计数的装置包括:a)将读指针设置为等于所述写指针的后一个存储位置,如果所述读指针会超过所述存储器的末端则回转的装置;

b)从所述存储器中的由所述读指针指示的位置进行读出的装置;

c)将后继所述I个码元写入所述存储器中的由所述写指针指示的位置的装置;以及d)使所述写指针前进(step+1)×J个存储位置,如果所述写指针会超过所述存储器的末端则回转的装置。

20.根据权利要求19所述的装置,其中,使所述写指针前进的装置包括向所述写指针加上step×J,并向所获得的和应用以所述存储器大小取模的装置。

21.根据权利要求19所述的装置,其中,使所述写指针前进的步骤包括从所述写指针减去step×J,并向所获得的差应用以所述存储器大小取模的装置。

22.根据权利要求19所述的装置,其中,后一个存储位置等于比所述写指针指示的存储位置低一个的存储位置。

23.根据权利要求19所述的装置,其中,后一个存储位置等于比所述写指针指示的存储位置高一个的存储位置。

24.一种用于在组中交织具有I个码元的纠错码的码元的装置,所述装置包括:用于将写指针设置到 大小的存储器中的初始位置的装置,其中J是延迟值;

对于所接收的每I个码元,用于从step为0到step为I-1进行重复计数的装置,该进行重复计数的装置包括:a)从所述存储器中的在所述写指针后一个存储位置的位置进行读出,如果所述位置会超过所述存储器的末端则回转的装置;

c)将后继所述I个码元写入所述存储器中的由所述写指针指示的位置的装置;以及d)使所述写指针前进(step+1)×J个存储位置,如果所述写指针会超过所述存储器的末端则回转的装置。

25.根据权利要求24所述的装置,其中,使所述写指针前进的装置包括向所述写指针加上step×J,并向所获得的和应用以所述存储器大小取模的装置。

26.根据权利要求24所述的装置,其中,使所述写指针前进的装置包括从所述写指针减去step×J,并向所获得的差应用以所述存储器大小取模的装置。

27.根据权利要求24所述的装置,其中,后一个存储位置等于比所述写指针指示的存储位置低一个的存储位置。

28.根据权利要求24所述的装置,其中,后一个存储位置等于比所述写指针指示的存储位置高一个的存储位置。

说明书 :

纠错码交织器

技术领域

[0001] 本发明涉及通信系统。更具体地,本发明涉及一种交织纠错码的解决方案。

背景技术

[0002] 当数字数据在可能是噪声信道的信道上传输时,具有至少恢复有限数量的错误的装置是很重要的。这些错误可能是由噪声或其他环境因素引入数据流的。恢复有错误的数据的处理称为纠错。通常,通过将大量的冗余数据项加到被传送的数据串来实现纠错。当接收器试图重构所发送的原始消息时,其可以首先检查编码消息的可能被破坏的版本,然后确定对哪个数据(如果有的话)进行纠正。
[0003] 所有可能的编码消息的组称为纠错码。概括地,存在两种纠错码:块型码和卷积型码。块型码将信息串分为k项数据的块以产生长度n的码字,其中n>k。如果编码器使用块型码,则系统获得信息串的k项数据并且将全部k项数据放入缓冲器。然后向整个k块应用一函数以生成码字。然而,存在一些消息串行地而不是大块地到达的应用,在这种情况下使用缓冲器可能并不理想。在这些情况下,可以利用卷积型码。卷积编码器基于模-2卷积产生冗余数据项。因为卷积编码器利用过去数据项以及当前数据项来产生码字,所以其可以视为有限状态机。
[0004] 可以将块型码和卷积码一起使用以改进性能和效率。例如可以使用块型码对信息进行编码,产生表示信息的一系列码元。然后可以使用卷积码来对码元进行编码。这提供了额外的保护层,而且使得可以改进对突发和随机错误的处理。对这种系统的典型设计可以包括Reed-Solomon块码,接着进行卷积编码。Reed-Solomon码是特殊类型的块码,公知为循环码。循环码是其中码中的任何两个码字之和也是一码字并且其中码中的码字的任何v i循环移位也是一码字的码。α是GF(2)域的本原元素时,即 i≠0时α ≠1,模v v
2-1。长度n=2-1并且维数为k的Reed-Solomon(RS)码是通过下式产生的循环码:
[0005] g(x)=(x-α)(x-α2)...(x-αn-k-1)(x-αn-k)
[0006] 通过及时交织R-S码元可以进一步改进通过使用卷积码对突发和随机错误的处理。这将潜在的错误分布在多个R-S码字中,由此改进了由于在单个时间产生的干扰所引起的恢复的改变,但可能比简单RS解码处理持续更长的时间。因此,由于突发而导致的每RS码字错误可能在RS码的校正能力之内。
[0007] 卷积交织器通常通过增加组中每个码元的延迟来分布码元。可以用J表示任意两个码元之间的延迟的增加并且用I表示组中的码元的数量。
[0008] 一种描述交织功能的方法是示出I行的先进先出存储器(FIFO),每个FIFO都比前一个深J个元素。图1是示出典型交织器和解交织器的图。第一位置100因为不需要延迟所以不需要具有任何FIFO。下一位置102具有长度J的FIFO。下一位置104具有长度2×J的FIFO,等等,直到第I位置106具有长度I×J的FIFO。每次发送码元后转换器(commutator)前进到下一个位置,在到达第I个位置后回转到第一个位置。因此,当最先接收到数据时,可以将其置于第一行。当将新RS码元写入该行时,读出该行的最旧值并且行指针前进一个。当完成最末行(I)时,指针复位到第一行并且重复上述顺序。这使得码元交织。在解交织器中进行类似处理以达到原始码元顺序。
[0009] 该设计的直接实施可以包括存储器中的几个固定的先进先出存储器(FIFO)。写入FIFO的新数据将替代最旧的数据。这种实施方式的缺点是其需要大量存储来保持FIFO的读和写指针。每个FIFO需要其自己的读和写指针,因此必需I个读和写指针。
[0010] 该问题的另一可能的解决方案是修改该实施方式以使得使用查找表而非指针来计算在序列中的特定点读和写所需要的地址。这将减少总的指针存储以及地址计算逻辑。64
不幸的是,典型实施方式的存取模式不能针对几乎2 位的计数而重复。因此,这导致异常尺寸的查找表,使该实施方式不可行。
[0011] 需要使交织器存储器最小化同时保持存储器指针计算符合实际的解决方案。

发明内容

[0012] 可以将存储器划分为不断滑动(ever-sliding)的FIFO。可以以最旧数据在底部始端且最新数据在末端(或者反过来)的方式将各个FIFO首尾相连地堆栈在存储器中。对于每个码元,可以将指针增加(以组大小取模)适当量(通常比前一码元多J)。在每个组之后,可以将指针比之前增量多增加J,并且处理开始结束,如果到达存储器的末端则回转存储器。在预置量的码元后,可以从增加J重新开始处理。另选地,可以减小指针而不是增加指针。由此,最新码元采用当前FIFO中的最旧码元空出的存储位置,导致FIFO“滑动”,对纠错码交织提供了非常有效且可靠的存储器使用。
[0013] 本发明涉及一种用于在组中交织具有I个码元的纠错码的码元的方法,所述方法包括以下步骤:将占位符设置到 大小的存储器中的初始位置,其中J为延迟值;对于接收到的每I个码元执行以下操作:从step为0到step为I-1进行重复计数,执行以下步骤:a)将写指针设置为等于所述占位符;b)如果step为0,则将所述占位符设置为等于读指针;c)如果step不为0,则使所述占位符前进step×J个存储位置,如果所述占位符值会超过所述存储器的末端则回转;d)将所述读指针设置为等于所述占位符;e)从所述存储器中的由所述读指针指示的位置进行读出;以及f)除非step为0,否则将后继所述I个码元写入所述存储器中的由所述写指针指示的位置,在step为0的情况下将其旁路。
[0014] 本发明还涉及一种用于在组中交织具有I个码元的纠错码的码元的方法,所述方法包括以下步骤:将写指针设置到 大小的存储器中的初始位置,其中J是延迟值;对于接收到的每I个码元执行以下操作:从step为0到step为I-1进行重复计数,执行以下步骤:a)将读指针设置为等于所述写指针的后一个存储位置,如果所述读指针会超过所述存储器的末端则回转;b)从所述存储器中的由所述读指针指示的位置进行读出;
c)将后继所述I个码元写入所述存储器中的由所述写指针指示的位置;以及d)使所述写指针前进(step+1)×J个存储位置,如果所述写指针会超过所述存储器的末端则回转。
[0015] 本发明还涉及一种用于在组中交织具有I个码元的纠错码的码元的方法,所述方法包括以下步骤:将写指针设置到 大小的存储器中的初始位置,其中J是延迟值;对于接收到的每I个码元执行以下操作:从step为0到step为I-1进行重复计数,执行以下步骤:a)从所述存储器中的在所述写指针后一个存储位置的位置进行读出,如果所述位置会超过所述存储器的末端则回转;c)将后继所述I个码元写入所述存储器中的由所述写指针指示的位置;以及d)使所述写指针前进(step+1)×J个存储位置,如果所述写指针会超过所述存储器的末端则回转。
[0016] 本发明还涉及一种用于在组中交织具有I个码元的纠错码的码元的装置,所述装置包括:用于将占位符设置到 大小的存储器中的初始位置的装置,其中J为延迟值;对于接收到的每I个码元:用于从step为0到step为I-1进行重复计数、执行以下步骤的装置:a)将写指针设置为等于所述占位符;b)如果step为0,则将所述占位符设置为等于读指针;c)如果step不为0,则使所述占位符前进step×J个存储位置,如果所述占位符值会超过所述存储器的末端则回转;d)将所述读指针设置为等于所述占位符;e)从所述存储器中的由所述读指针指示的位置进行读出;以及f)除非step为0,否则将后继所述I个码元写入所述存储器中的由所述写指针指示的位置,在step为0的情况下将其旁路。
[0017] 本发明还涉及一种用于在组中交织具有I个码元的纠错码的码元的装置,所述装置包括:用于将写指针设置到 大小的存储器中的初始位置的装置,其中J是延迟值;对于接收到的每I个码元:由于从step为0到step为I-1进行重复计数、执行以下步骤的装置:a)将读指针设置为等于所述写指针的后一个存储位置,如果所述读指针会超过所述存储器的末端则回转;b)从所述存储器中的由所述读指针指示的位置进行读出;c)将后继所述I个码元写入所述存储器中的由所述写指针指示的位置;以及d)使所述写指针前进(step+1)×J个存储位置,如果所述写指针会超过所述存储器的末端则回转。
[0018] 本发明还涉及一种用于在组中交织具有I个码元的纠错码的码元的装置,所述装置包括:用于将写指针设置到 大小的存储器中的初始位置的装置,其中J是延迟值;对于所接收的每I个码元:用于从step为0到step为I-1进行重复计数、执行以下步骤的装置:a)从所述存储器中的在所述写指针后一个存储位置的位置进行读出,如果所述位置会超过所述存储器的末端则回转;c)将后继所述I个码元写入所述存储器中的由所述写指针指示的位置;以及d)使所述写指针前进(step+1)×J个存储位置,如果所述写指针会超过所述存储器的末端则回转。

附图说明

[0019] 并入并构成本说明书的一部分的附图示出了本发明的一个或更多个实施例,并且与详细说明一起用于说明本发明的原理和实施方式。
[0020] 附图中:
[0021] 图1是示出典型交织器和解交织器的图。
[0022] 图2是示出根据本发明实施例的通过滑动FIFO的读和写指针的前进的图。
[0023] 图3是示出根据本发明另一实施例的通过滑动FIFO的读和写指针的前进的图。
[0024] 图4是示出根据本发明实施例的用于在组中交织具有I个码元的纠错码的码元的方法的流程图。
[0025] 图5是示出根据本发明另一实施例的用于在组中交织具有I个码元的纠错码的码元的方法的流程图。
[0026] 图6是示出根据本发明第三实施例的用于在组中交织具有I个码元的纠错码的码元的方法的流程图。
[0027] 图7是示出根据本发明实施例的用于在组中交织具有I个码元的纠错码的码元的装置的框图。
[0028] 图8是示出根据本发明另一实施例的用于在组中交织具有I个码元的纠错码的码元的装置的框图。
[0029] 图9是示出根据本发明第三实施例的用于在组中交织具有I个码元的纠错码的码元的装置的框图。

具体实施方式

[0030] 这里在用于远程执行对计算机系统的分析和优化的系统和方法的环境中描述本发明的实施例。本领域的普通技术人员能够理解,本发明的以下详细描述仅仅是说明性的而并非旨在进行任何方式的限制。对于受益于此公开的本领域技术人员,本发明的其他实施例是呼之欲出的。现在将对如附图所示的本发明的实施方式进行详细说明。在全部附图和以下详细说明中使用相同的标记来表示相同或者相似的部分。
[0031] 为了清楚起见,并没有描述和示出本文所述实施方式的全部常规特征。当然,应该理解,在任何对这种实际实施方式的开发中,为了实现开发者的特殊目的,必须进行大量的实施方式特定的确定,例如遵守应用相关和商业相关的限制,并且这些特殊目的从一个实施方式到另一实施方式而不同并且从一个开发者到另一开发者而不同。此外,应该理解,这种开发研究可能是复杂而费时的,但是对于得益于本公开的本领域普通技术人员将不过是工程的常规任务。
[0032] 根据本发明,可以使用各种类型的操作系统、计算平台、计算机程序和/或通用机器来实施部件、处理步骤和/或数据结构。
[0033] 本发明提供了将存储器分割为不断滑动的FIFO的解决方案。以最旧数据在底部始端且最新数据在末端(或者反过来)的方式将各个FIFO的存储部首尾相连地堆栈在存储器中。在本发明的一个实施例中,仅需要单一的读指针和单一的写指针。在另一实施例中,使用单一的写指针,用公知公式来计算读指针。对于每个码元,将指针增加适当量(通常比前一码元多J)(以组大小取模)。在每个组之后,可以将指针比先前增量多增加J,并且处理开始结束,如果到达存储器的末端则回转存储器。在达到预设量的码元后,处理从增量J重新开始。
[0034] 注意,虽然本文描述了每个码元指针增大的实施方式,本领域普通技术人员应该意识到,本发明也可以用于每个码元指针减小的实施例。
[0035] 存在可以用来实现不同目标的对本发明的几种变型。如果开发者希望优化交织器需要的处理逻辑,则可以选择其中通过增加FIFO引入延迟而并非第一码元没有延迟(并且没有对应的FIFO)的实施方式。如以下可见的,这简化了对读和写指针的计算。然而,这增加了I个条目,因为IFIFO的每个增加了一块,还向总的系统等待时间增加了固定的一码元延迟。因此,如果开发者希望优化存储器,则他可以选择第一码元没有延迟的实施方式。此外,开发者可以在既存储读指针又存储写指针的实施方式与仅包含写指针而使用已知公式计算读指针的实施方式之间进行选择。仅具有写指针减少了需要的存储量,但使用公式来计算读指针的必要性增加了逻辑。
[0036] 图2是示出根据本发明实施例的通过滑动FIFO的读和写指针前进的图。在该实施例中,为了减少逻辑量,既保持读指针又保持写指针。此外,不向第一码元引入延迟,因此第一码元不需要FIFO。在该实施例中,需要 个存储位置。第一码元不需要FIFO,然而第二码元需要长度J的FIFO、第三码元需要长度2J的FIFO,等等。为了实现稍后将看到的滑动方面,在末端需要额外位置,类似于其中必须空出一个位置以滑动周围其它15个片的“魔法15”智力游戏。
[0037] 每次处理码元,将其称作一次循环。在某点,码元将到达循环“反转”点,或返回0。
[0038] 根据以下处理可以进行读和写的前进,其中wr为写指针,rd为读指针,wr_new为占位符变量,step表示步骤值:
[0039] 1)将wr初始化为任意值(因为FIFO将会滑动,所以初始位置无关紧要)[0040] 2)将rd初始化为wr
[0041] 然后,从0到I-1的每个step,重复以下3、4、5、6、和7
[0042] 3)设置wr=wr_new
[0043] 4)设置wr_new=(step+wr_new)mod存储器的大小,除非step=0,在这种情况下设置wr_new=rd
[0044] 5)设置rd=wr_new
[0045] 6)读出rd处的值
[0046] 7)在wr处写入新值
[0047] 一旦step到达I-1,其简单地返回0,可以重复步骤3至7直到接收不到新码元的时间。应该注意,可以容易将该处理修改为每次重复都减少而不是增加step,从而使FIFO沿另一方向滑动。FIFO滑动的方向无关紧要,重要的是它们滑动的事实。
[0048] 因此,再次参考图2,假设I为5,J为1字节。因此,本来有以长度1开始长度增加的4个FIFO,但实际仅有11字节大小的存储器并且FIFO将围绕该存储器滑动。图2示出具有存储位置0至10的该FIFO。读指针可以根据表1前进:
[0049]循环0 循环1 循环2 循环3 循环4
b 1 3 6 10
b 0 2 5 9
b 10 1 4 8
b 9 0 3 7
b 8 10 2 6
b 7 9 1 5
[0050] 表1
[0051] 写指针可以根据表2前进:
[0052]循环0 循环1 循环2 循环3 循环4
b 0 1 3 6
b 10 0 2 5
b 9 10 1 4
b 8 9 0 3
b 7 8 10 2
b 6 7 9 1
[0053] 表2
[0054] 因此,第一码元将在作为旁路的循环0中,因此不将其置于FIFO中。第二码元将在循环1中,将从位置1(目前为空)进行读出,并且将该码元写入位置0。第三码元将在循环2中,将从位置3(空)进行读出并且将该码元写入位置1。第四码元将在循环3中,将从位置6(空)进行读出并且将该码元写入位置3。第五码元将在循环4中,将从位置10(空)进行读出并且将该码元写入位置6。第六码元在0重新开始循环,因此是旁路。第七码元将在循环1中,将从位置0(其具有循环1中写入的值)进行读出并且将该码元写入位置10。
因此,实现了对于“第一FIFO”的适当延迟1。该处理无限地继续直到没有码元剩下。
[0055] 图3是示出根据本发明另一实施例的通过滑动FIFO的读和写指针前进的图。在此实施例中,对每个FIFO都引入额外的延迟(并且因此有额外的存储位置)并且不使用旁路。这导致需要 个存储位置。因此,如果I还是5并且J是1,则需要16个存储位置。
[0056] 因此,再次参考3,可以提供存储位置0至15。可以根据以下处理来进行读和写的前进,其中wr为写指针,rd为读指针,step表示步骤值:
[0057] 1)将wr初始化为任意值(因为FIFO将会滑动,所以初始位置无关紧要)[0058] 然后,对从0到I-1的每个step,重复以下的2,3,4,5,6,和7
[0059] 2)设置rd=wr-1
[0060] 3)读取rd处的值
[0061] 4)在wr处写入新值
[0062] 5)设置wr=wr+(step+1)×J
[0063] 读指针可以根据表3前进:
[0064]循环0 循环1 循环2 循环3 循环4
15 0 2 5 9
14 15 1 4 8
13 14 0 3 7
12 13 15 2 6
11 12 14 1 5
10 11 13 0 4
[0065] 表3
[0066] 写指针可以根据表4前进:
[0067]循环0 循环1 循环2 循环3 循环4
0 1 3 6 10
15 0 2 5 9
14 10 1 4 8
13 9 0 3 7
12 8 15 2 6
11 7 14 1 5
[0068] 表4
[0069] 图4是示出根据本发明实施例的用于在组中交织具有I个码元的纠错码的码元的方法的流程图。此实施例类似于图2所示的并在对应文字中所述的实施例。在400,可以在 大小的存储器中将占位符设置到初始位置,其中J为延迟值(即,各个存储位置的大小)。然后,开始接收码元。对于接收到的每I个码元,执行以下循环。在该循环中,step可以从0计数到I-1,在每次重复执行一系列动作。因此,通过由step从0到I-1来计数,并且对每I个码元重复该计数,认为处理重复地进行计数。
[0070] 在402,将写指针设置为等于占位符。在404,如果step为0,则将占位符设置为等于读指针。在406,如果step不为0,则可以使占位符前进step×J个存储位置,如果占位符值超过存储器的末端则回转。根据FIFO滑动的方向,使占位符前进可以包括向占位符加上step×J,或者从占位符减去step×J。通过获得此和或差并且向其应用以存储大小取模来产生回转。在408,将读指针设置为等于占位符。在410,可以从存储器中由读指针指示的位置读出码元。在412,可以将下I个码元写到存储器中由写指针指示的位置,除非step是0,在step是0的情况下在414中使其旁路。可以通过无延迟地发送码元来使该码元旁路。
[0071] 图5是示出根据本发明另一实施例的用于在组中交织具有I个码元的纠错码的码元的方法的流程图。此实施例类似于图3所示并在对应文字中所述的实施例。在此实施例中,既存储读指针又存储写指针。在500,可以在 大小的存储器中将写指针设置到初始位置,其中J是延迟值(即,各个存储位置的大小)。接着,开始接收码元。对于接收到的每I个码元,执行以下循环。在此循环中,从0到I-1对step进行计数,在每次重复执行一系列动作。因此,通过由step从0到I-1来计数,并对每I个码元重复该计数,认为处理重复地进行计数。
[0072] 在502,可以将读指针设置为等于写指针的后一个存储位置,如果读指针会超过存储器的末端则回转。根据FIFO滑动的方向,后一个存储位置可以等于低一个存储位置或高一个存储位置。可以通过获得此和或差并且向其应用以存储大小取模来进行回转。在504,可以从存储器中的由读指针指示的位置读出码元。在506,可以将下I个码元写到存储器中的由写指针指示的位置。在508,可以使写指针前进(step+1)×J个存储位置,如果写指针会超过存储器的末端则回转。根据FIFO滑动的方向,使写指针前进包括向写指针加上(step+1)×J,或者从写指针减去(step+1)×J。可以通过获得此和或差并且向其应用以存储大小取模来进行回转。
[0073] 图6是示出根据本发明第三实施例的用于在组中交织具有I个码元的纠错码的码元的方法的流程图。除了在本实施例中仅存储写指针之外,本实施例类似于图5所示并在对应文字中所述的实施例。在600,可以在 大小的存储器中将写指针设置到初始位置,其中J是延迟值(即,各个存储位置的大小)。接着,开始接收码元。对于接收的每I个码元,执行以下循环。在此循环中,从0到I-1对step进行计数,在每次重复执行一系列动作。因此,通过由step从0到I-1来计数,并对每I个码元重复该计数,认为处理重复地进行计数。
[0074] 在602,从存储器中等于写指针的后一个存储位置的位置读取码元,如果该位置超过存储器的末端则回转。根据FIFO滑动的方向,后一个存储位置可以等于低一个存储位置或者高一个存储位置。可以通过获得此和或差并且向其应用以存储大小取模来进行回转。在604,将下I个码元写到存储器中由写指针指示的位置。在606,可以使写指针前进(step+1)×J个存储位置,如果写指针会超过存储器的末端则回转。根据FIFO滑动的方向,使写指针前进包括向写指针加上(step+1)×J或者从写指针减去(step+1)×J。可以通过获得此和或差并且向其应用以存储大小取模来进行回转。
[0075] 图7是示出根据本发明实施例的用于在组中交织具有I个码元的纠错码的码元的装置的框图。可以设置有存储器700,其可以存储FIFO和计算中使用的任何变量。连接到存储器700的存储初始化器702可以在存储器中建立 大小的存储区域,其中J是针对FIFO的延迟值(即,各个存储位置的大小)。连接到存储器700的占位符设置器704可以将占位符设置到存储器中的初始位置。接着,开始接收码元。对于接收到的每I个码元,执行循环。在该循环中,可以从0到I-1对step进行计数,在每次重复执行一系列动作。因此,通过由step从0到I-1来计数,并对每I个码元重复该计数,认为处理重复地进行计数。连接到占位符设置器704的step重复计数器706可以执行此重复计数并且控制循环。从今往后,称为存储器的实际上是存储器的为FIFO留出的一部分。
[0076] 连接到存储器700并连接到step重复计数器706的写指针设置器708可以将写指针设置为等于占位符。如果step为0,则占位符设置器704可以将占位符设置为等于读指针。如果step不为0,则占位符设置器704可以使占位符前进step×J个存储位置,如果占位符值会超过存储器的末端则回转。根据FIFO滑动的方向,使占位符前进可以包括向占位符加上step×J,或者从占位符减去step×J。可以通过获得此和或差并且向其应用以存储大小取模来进行回转。连接到存储器700并连接到step重复计数器706的读指针设置器710可以将读指针设置为等于占位符。随后,连接到存储器700并连接到step重复计数器706的存储位置读取器712可以从存储器中的由读指针指示的位置读取码元。随后,连接到存储器700并连接到step重复计数器706的码元写入器714可以将下I个码元写到存储器中的由写指针指示的位置,除非step为0,在step为0的情况下使其旁路。可以通过无延迟地发送码元而使该码元旁路。
[0077] 图8是示出根据本发明另一实施例的用于在组中交织具有I个码元的纠错码的码元的装置的框图。可以设置有存储器800,其可以存储FIFO和计算中使用的任何变量。连接到存储器800的存储初始化器802可以建立 大小的存储区域,其中J是针对FIFO的延迟值(即,各个存储位置的大小)。连接到存储器800的写指针设置器804可以将写指针设置到存储器中的初始位置。接着,开始接收码元。对于接收到的每I个码元,执行循环。在该循环中,可以从0到I-1对step进行计数,在每次重复执行一系列动作。
因此,通过由step从0到I-1来计数,并对每I个码元重复该计数,认为处理重复地进行计数。连接到写指针设置器804的step重复计数器806可以执行此重复计数并且控制循环。
从今往后,称为存储器的实际上是存储器的为FIFO留出的一部分。
[0078] 连接到存储器800并连接到step重复计数器806的读指针设置器808可以将读指针设置为等于写指针的后一个存储位置,如果读指针会超过存储器的末端则回转。根据FIFO滑动的方向,后一个存储位置可以等于低一个存储位置或者高一个存储位置。可以通过获得此和或差并向其应用以存储大小取模来进行回转。连接到存储器800并连接到step重复计数器806的存储位置读取器810可以从存储器中的由读指针指示的位置读取码元。连接到存储器800并连接到step重复计数器806的码元写入器812可以将下I个码元写入存储器中的由写指针指示的位置。随后,写指针设置器808可以使写指针前进(step+1)×J个存储位置,如果写指针会超过存储器末端则回转。根据FIFO滑动的方向,使写指针前进可以包括向写指针加上(step+1)×J或者从写指针减去(step+1)×J。可以通过获得此和或差并向其应用以存储大小取模来进行回转。
[0079] 图8是示出根据本发明另一实施例的用于在组中交织具有I个码元的纠错码的码元的装置的框图。可以设置有存储器800,其可以存储FIFO和计算中使用的任何变量。连接到存储器800的存储初始化器802可以建立 大小的存储区域,其中J是针对FIFO的延迟值(即,各个存储位置的大小)。连接到存储器800的写指针设置器804可以将写指针设置到存储器中的初始位置。接着,开始接收码元。对于接收到的每I个码元,执行循环。在该循环中,可以从0到I-1对step进行计数,在每次重复执行一系列动作。
因此,通过由step从0到I-1来计数,并对每I个码元重复该计数,认为处理重复地进行计数。连接到写指针设置器804的step重复计数器806可以执行此重复计数并且控制循环。
从今往后,称为存储器的实际上是存储器的为FIFO留出的一部分。
[0080] 连接到存储器800并连接到step重复计数器806的读指针设置器808可以将读指针设置为等于写指针的后一个存储位置,如果读指针会超过存储器的末端则回转。根据FIFO滑动的方向,后一个存储位置可以等于低一个存储位置或者高一个存储位置。可以通过获得此和或差并向其应用以存储大小取模来进行回转。连接到存储器800并连接到step重复计数器806的存储位置读取器810可以从存储器中的由读指针指示的位置读取码元。连接到存储器800并连接到step重复计数器806的码元写入器812可以将下I个码元写入存储器中的由写指针指示的位置。随后,写指针设置器808可以使写指针前进(step+1)×J个存储位置,如果写指针会超过存储器末端则回转。根据FIFO滑动的方向,使写指针前进可以包括向写指针加上(step+1)×J或者从写指针减去(step+1)×J。可以通过获得此和或差并向其应用以存储大小取模来进行回转。
[0081] 图9是示出根据本发明第三实施例的用于在组中交织具有I个码元的纠错码的码元的装置的框图。可以设置有存储器900,其可以存储FIFO和计算中使用的任何变量。连接到存储器900的存储初始化器902可以建立 大小的存储区域,其中J是针对FIFO的延迟值(即,各个存储位置的大小)。连接到存储器900的写指针设置器904可以将写指针设置到存储器中的初始位置。接着,开始接收码元。对于接收到的每I个码元,执行循环。在该循环中,可以从0到I-1对step进行计数,在每次重复执行一系列动作。
因此,通过由step从0到I-1来计数,并对每I个码元重复该计数,认为处理重复地进行计数。连接到写指针设置器804的step重复计数器906可以执行此重复计数并且控制循环。
从今往后,称为存储器的实际上是存储器的为FIFO留出的一部分。
[0082] 连接到存储器900并连接到step重复计数器906的存储位置读取器908可以从存储器中的等于写指针的后一个存储位置的位置读取码元,如果读指针会超过存储器的末端则回转。根据FIFO滑动的方向,后一个存储位置可以等于低一个存储位置或者高一个存储位置。可以通过获得此和或差并向其应用以存储大小取模来进行回转。连接到存储器900并连接到step重复计数器906的码元写入器910可以将下I个码元写入存储器中的由写指针指示的位置。随后,写指针设置器808可以使写指针前进(step+1)×J个存储位置,如果写指针会超过存储器末端则回转。根据FIFO滑动的方向,使写指针前进可以包括向写指针加上(step+1)×J或者从写指针减去(step+1)×J。可以通过获得此和或差并向其应用以存储大小取模来进行回转。
[0083] 虽然已经示出并描述了本发明的实施例和应用,但是对于受益于本公开的本领域技术人员很明显可以在不脱离本文的本发明原理的情况下进行比上述更多的变型。因此,本发明不受除所附权利要求的精神之外的限制。