CN1784833A - 纠错码交织器 - Google Patents

纠错码交织器 Download PDF

Info

Publication number
CN1784833A
CN1784833A CNA2004800126678A CN200480012667A CN1784833A CN 1784833 A CN1784833 A CN 1784833A CN A2004800126678 A CNA2004800126678 A CN A2004800126678A CN 200480012667 A CN200480012667 A CN 200480012667A CN 1784833 A CN1784833 A CN 1784833A
Authority
CN
China
Prior art keywords
memory
code element
write pointer
pointer
placeholder
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
Application number
CNA2004800126678A
Other languages
English (en)
Other versions
CN1784833B (zh
Inventor
罗伯特·J·凡福莱
亚历山大·胡布里斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Andrew Wireless Systems UK Ltd
Original Assignee
Terayon Communication Systems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Terayon Communication Systems Inc filed Critical Terayon Communication Systems Inc
Publication of CN1784833A publication Critical patent/CN1784833A/zh
Application granted granted Critical
Publication of CN1784833B publication Critical patent/CN1784833B/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, 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 using interleaving techniques
    • H03M13/2782Interleaver implementations, which reduce the amount of required interleaving memory
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, 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 using interleaving techniques
    • H03M13/2732Convolutional interleaver; Interleavers using shift-registers or delay lines like, e.g. Ramsey type interleaver
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, 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 using interleaving techniques
    • H03M13/276Interleaving address generation

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

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

Description

纠错码交织器
技术领域
本发明涉及通信系统。更具体地,本发明涉及一种交织纠错码的解决方案。
背景技术
当数字数据在可能是噪声信道的信道上传输时,具有至少恢复有限数量的错误的装置是很重要的。这些错误可能是由噪声或其他环境因素引入数据流的。恢复有错误的数据的处理称为纠错。通常,通过将大量的冗余数据项加到被传送的数据串来实现纠错。当接收器试图重构所发送的原始消息时,其可以首先检查编码消息的可能被破坏的版本,然后确定对哪个数据(如果有的话)进行纠正。
所有可能的编码消息的组称为纠错码。概括地,存在两种纠错码:块型码和卷积型码。块型码将信息串分为k项数据的块以产生长度n的码字,其中n>k。如果编码器使用块型码,则系统获得信息串的k项数据并且将全部k项数据放入缓冲器。然后向整个k块应用一函数以生成码字。然而,存在一些消息串行地而不是大块地到达的应用,在这种情况下使用缓冲器可能并不理想。在这些情况下,可以利用卷积型码。卷积编码器基于模-2卷积产生冗余数据项。因为卷积编码器利用过去数据项以及当前数据项来产生码字,所以其可以视为有限状态机。
可以将块型码和卷积码一起使用以改进性能和效率。例如可以使用块型码对信息进行编码,产生表示信息的一系列码元。然后可以使用卷积码来对码元进行编码。这提供了额外的保护层,而且使得可以改进对突发和随机错误的处理。对这种系统的典型设计可以包括Reed-Solomon块码,接着进行卷积编码。Reed-Solomon码是特殊类型的块码,公知为循环码。循环码是其中码中的任何两个码字之和也是一码字并且其中码中的码字的任何循环移位也是一码字的码。α是GF(2v)域的本原元素时,即 α 2 v - 1 = 1 , i≠0时αi≠1,模2v-1。长度n=2v-1并且维数为k的Reed-Solomon(RS)码是通过下式产生的循环码:
g(x)=(x-α)(x-α2)...(x-αn-k-1)(x-αn-k)
通过及时交织R-S码元可以进一步改进通过使用卷积码对突发和随机错误的处理。这将潜在的错误分布在多个R-S码字中,由此改进了由于在单个时间产生的干扰所引起的恢复的改变,但可能比简单RS解码处理持续更长的时间。因此,由于突发而导致的每RS码字错误可能在RS码的校正能力之内。
卷积交织器通常通过增加组中每个码元的延迟来分布码元。可以用J表示任意两个码元之间的延迟的增加并且用I表示组中的码元的数量。
一种描述交织功能的方法是示出I行的先进先出存储器(FIFO),每个FIFO都比前一个深J个元素。图1是示出典型交织器和解交织器的图。第一位置100因为不需要延迟所以不需要具有任何FIFO。下一位置102具有长度J的FIFO。下一位置104具有长度2×J的FIFO,等等,直到第I位置106具有长度I×J的FIFO。每次发送码元后转换器(commutator)前进到下一个位置,在到达第I个位置后回转到第一个位置。因此,当最先接收到数据时,可以将其置于第一行。当将新RS码元写入该行时,读出该行的最旧值并且行指针前进一个。当完成最末行(I)时,指针复位到第一行并且重复上述顺序。这使得码元交织。在解交织器中进行类似处理以达到原始码元顺序。
该设计的直接实施可以包括存储器中的几个固定的先进先出存储器(FIFO)。写入FIFO的新数据将替代最旧的数据。这种实施方式的缺点是其需要大量存储来保持FIFO的读和写指针。每个FIFO需要其自己的读和写指针,因此必需I个读和写指针。
该问题的另一可能的解决方案是修改该实施方式以使得使用查找表而非指针来计算在序列中的特定点读和写所需要的地址。这将减少总的指针存储以及地址计算逻辑。不幸的是,典型实施方式的存取模式不能针对几乎264位的计数而重复。因此,这导致异常尺寸的查找表,使该实施方式不可行。
需要使交织器存储器最小化同时保持存储器指针计算符合实际的解决方案。
发明内容
可以将存储器划分为不断滑动(ever-sliding)的FIFO。可以以最旧数据在底部始端且最新数据在末端(或者反过来)的方式将各个FIFO首尾相连地堆栈在存储器中。对于每个码元,可以将指针增加(以组大小取模)适当量(通常比前一码元多J)。在每个组之后,可以将指针比之前增量多增加J,并且处理开始结束,如果到达存储器的末端则回转存储器。在预置量的码元后,可以从增加J重新开始处理。另选地,可以减小指针而不是增加指针。由此,最新码元采用当前FIFO中的最旧码元空出的存储位置,导致FIFO“滑动”,对纠错码交织提供了非常有效且可靠的存储器使用。
附图说明
并入并构成本说明书的一部分的附图示出了本发明的一个或更多个实施例,并且与详细说明一起用于说明本发明的原理和实施方式。
附图中:
图1是示出典型交织器和解交织器的图。
图2是示出根据本发明实施例的通过滑动FIFO的读和写指针的前进的图。
图3是示出根据本发明另一实施例的通过滑动FIFO的读和写指针的前进的图。
图4是示出根据本发明实施例的用于在组中交织具有I个码元的纠错码的码元的方法的流程图。
图5是示出根据本发明另一实施例的用于在组中交织具有I个码元的纠错码的码元的方法的流程图。
图6是示出根据本发明第三实施例的用于在组中交织具有I个码元的纠错码的码元的方法的流程图。
图7是示出根据本发明实施例的用于在组中交织具有I个码元的纠错码的码元的装置的框图。
图8是示出根据本发明另一实施例的用于在组中交织具有I个码元的纠错码的码元的装置的框图。
图9是示出根据本发明第三实施例的用于在组中交织具有I个码元的纠错码的码元的装置的框图。
具体实施方式
这里在用于远程执行对计算机系统的分析和优化的系统和方法的环境中描述本发明的实施例。本领域的普通技术人员能够理解,本发明的以下详细描述仅仅是说明性的而并非旨在进行任何方式的限制。对于受益于此公开的本领域技术人员,本发明的其他实施例是呼之欲出的。现在将对如附图所示的本发明的实施方式进行详细说明。在全部附图和以下详细说明中使用相同的标记来表示相同或者相似的部分。
为了清楚起见,并没有描述和示出本文所述实施方式的全部常规特征。当然,应该理解,在任何对这种实际实施方式的开发中,为了实现开发者的特殊目的,必须进行大量的实施方式特定的确定,例如遵守应用相关和商业相关的限制,并且这些特殊目的从一个实施方式到另一实施方式而不同并且从一个开发者到另一开发者而不同。此外,应该理解,这种开发研究可能是复杂而费时的,但是对于得益于本公开的本领域普通技术人员将不过是工程的常规任务。
根据本发明,可以使用各种类型的操作系统、计算平台、计算机程序和/或通用机器来实施部件、处理步骤和/或数据结构。
本发明提供了将存储器分割为不断滑动的FIFO的解决方案。以最旧数据在底部始端且最新数据在末端(或者反过来)的方式将各个FIFO的存储部首尾相连地堆栈在存储器中。在本发明的一个实施例中,仅需要单一的读指针和单一的写指针。在另一实施例中,使用单一的写指针,用公知公式来计算读指针。对于每个码元,将指针增加适当量(通常比前一码元多J)(以组大小取模)。在每个组之后,可以将指针比先前增量多增加J,并且处理开始结束,如果到达存储器的末端则回转存储器。在达到预设量的码元后,处理从增量J重新开始。
注意,虽然本文描述了每个码元指针增大的实施方式,本领域普通技术人员应该意识到,本发明也可以用于每个码元指针减小的实施例。
存在可以用来实现不同目标的对本发明的几种变型。如果开发者希望优化交织器需要的处理逻辑,则可以选择其中通过增加FIFO引入延迟而并非第一码元没有延迟(并且没有对应的FIFO)的实施方式。如以下可见的,这简化了对读和写指针的计算。然而,这增加了I个条目,因为IFIFO的每个增加了一块,还向总的系统等待时间增加了固定的一码元延迟。因此,如果开发者希望优化存储器,则他可以选择第一码元没有延迟的实施方式。此外,开发者可以在既存储读指针又存储写指针的实施方式与仅包含写指针而使用已知公式计算读指针的实施方式之间进行选择。仅具有写指针减少了需要的存储量,但使用公式来计算读指针的必要性增加了逻辑。
图2是示出根据本发明实施例的通过滑动FIFO的读和写指针前进的图。在该实施例中,为了减少逻辑量,既保持读指针又保持写指针。此外,不向第一码元引入延迟,因此第一码元不需要FIFO。在该实施例中,需要 I ( I - 1 ) × J 2 + 1 个存储位置。第一码元不需要FIFO,然而第二码元需要长度J的FIFO、第三码元需要长度2J的FIFO,等等。为了实现稍后将看到的滑动方面,在末端需要额外位置,类似于其中必须空出一个位置以滑动周围其它15个片的“魔法15”智力游戏。
每次处理码元,将其称作一次循环。在某点,码元将到达循环“反转”点,或返回0。
根据以下处理可以进行读和写的前进,其中wr为写指针,rd为读指针,wr_new为占位符变量,step表示步骤值:
1)将wr初始化为任意值(因为FIFO将会滑动,所以初始位置无关紧要)
2)将rd初始化为wr然后,从0到I-1的每个step,重复以下3、4、5、6、和7
3)设置wr=wr_new
4)设置wr_new=(step+wr_new)mod存储器的大小,除非step=0,在这种情况下设置wr_new=rd
5)设置rd=wr_new
6)读出rd处的值
7)在wr处写入新值
一旦step到达I-1,其简单地返回0,可以重复步骤3至7直到接收不到新码元的时间。应该注意,可以容易将该处理修改为每次重复都减少而不是增加step,从而使FIFO沿另一方向滑动。FIFO滑动的方向无关紧要,重要的是它们滑动的事实。
因此,再次参考图2,假设I为5,J为1字节。因此,本来有以长度1开始长度增加的4个FIFO,但实际仅有11字节大小的存储器并且FIFO将围绕该存储器滑动。图2示出具有存储位置0至10的该FIFO。读指针可以根据表1前进:
  循环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
                    表1
写指针可以根据表2前进:
  循环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
                表2
因此,第一码元将在作为旁路的循环0中,因此不将其置于FIFO中。第二码元将在循环1中,将从位置1(目前为空)进行读出,并且将该码元写入位置0。第三码元将在循环2中,将从位置3(空)进行读出并且将该码元写入位置1。第四码元将在循环3中,将从位置6(空)进行读出并且将该码元写入位置3。第五码元将在循环4中,将从位置10(空)进行读出并且将该码元写入位置6。第六码元在0重新开始循环,因此是旁路。第七码元将在循环1中,将从位置0(其具有循环1中写入的值)进行读出并且将该码元写入位置10。因此,实现了对于“第一FIFO”的适当延迟1。该处理无限地继续直到没有码元剩下。
图3是示出根据本发明另一实施例的通过滑动FIFO的读和写指针前进的图。在此实施例中,对每个FIFO都引入额外的延迟(并且因此有额外的存储位置)并且不使用旁路。这导致需要 I ( I - 1 ) × J 2 + I + 1 个存储位置。因此,如果I还是5并且J是1,则需要16个存储位置。
因此,再次参考3,可以提供存储位置0至15。可以根据以下处理来进行读和写的前进,其中wr为写指针,rd为读指针,step表示步骤值:
1)将wr初始化为任意值(因为FIFO将会滑动,所以初始位置无关紧要)
然后,对从0到I-1的每个step,重复以下的2,3,4,5,6,和7
2)设置rd=wr-1
3)读取rd处的值
4)在wr处写入新值
5)设置wr=wr+(step+1)×J
读指针可以根据表3前进:
  循环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
                  表3
写指针可以根据表4前进:
  循环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
                    表4
图4是示出根据本发明实施例的用于在组中交织具有I个码元的纠错码的码元的方法的流程图。此实施例类似于图2所示的并在对应文字中所述的实施例。在400,可以在 I ( I - 1 ) × J 2 + 1 大小的存储器中将占位符设置到初始位置,其中J为延迟值(即,各个存储位置的大小)。然后,开始接收码元。对于接收到的每I个码元,执行以下循环。在该循环中,step可以从0计数到I-1,在每次重复执行一系列动作。因此,通过由step从0到I-1来计数,并且对每I个码元重复该计数,认为处理重复地进行计数。
在402,将写指针设置为等于占位符。在404,如果step为0,则将占位符设置为等于读指针。在406,如果step不为0,则可以使占位符前进step×J个存储位置,如果占位符值超过存储器的末端则回转。根据FIFO滑动的方向,使占位符前进可以包括向占位符加上step×J,或者从占位符减去step×J。通过获得此和或差并且向其应用以存储大小取模来产生回转。在408,将读指针设置为等于占位符。在410,可以从存储器中由读指针指示的位置读出码元。在412,可以将下I个码元写到存储器中由写指针指示的位置,除非step是0,在step是0的情况下在414中使其旁路。可以通过无延迟地发送码元来使该码元旁路。
图5是示出根据本发明另一实施例的用于在组中交织具有I个码元的纠错码的码元的方法的流程图。此实施例类似于图3所示并在对应文字中所述的实施例。在此实施例中,既存储读指针又存储写指针。在500,可以在 I ( I - 1 ) × J 2 + I + 1 大小的存储器中将写指针设置到初始位置,其中J是延迟值(即,各个存储位置的大小)。接着,开始接收码元。对于接收到的每I个码元,执行以下循环。在此循环中,从0到I-1对step进行计数,在每次重复执行一系列动作。因此,通过由step从0到I-1来计数,并对每I个码元重复该计数,认为处理重复地进行计数。
在502,可以将读指针设置为等于写指针的后一个存储位置,如果读指针会超过存储器的末端则回转。根据FIF0滑动的方向,后一个存储位置可以等于低一个存储位置或高一个存储位置。可以通过获得此和或差并且向其应用以存储大小取模来进行回转。在504,可以从存储器中的由读指针指示的位置读出码元。在506,可以将下I个码元写到存储器中的由写指针指示的位置。在508,可以使写指针前进(step+1)×J个存储位置,如果写指针会超过存储器的末端则回转。根据FIFO滑动的方向,使写指针前进包括向写指针加上(step+1)×J,或者从写指针减去(step+1)×J。可以通过获得此和或差并且向其应用以存储大小取模来进行回转。
图6是示出根据本发明第三实施例的用于在组中交织具有I个码元的纠错码的码元的方法的流程图。除了在本实施例中仅存储写指针之外,本实施例类似于图5所示并在对应文字中所述的实施例。在600,可以在 I ( I - 1 ) × J 2 + I + 1 大小的存储器中将写指针设置到初始位置,其中J是延迟值(即,各个存储位置的大小)。接着,开始接收码元。对于接收的每I个码元,执行以下循环。在此循环中,从0到I-1对step进行计数,在每次重复执行一系列动作。因此,通过由step从0到I-1来计数,并对每I个码元重复该计数,认为处理重复地进行计数。
在602,从存储器中等于写指针的后一个存储位置的位置读取码元,如果该位置超过存储器的末端则回转。根据FIFO滑动的方向,后一个存储位置可以等于低一个存储位置或者高一个存储位置。可以通过获得此和或差并且向其应用以存储大小取模来进行回转。在604,将下I个码元写到存储器中由写指针指示的位置。在606,可以使写指针前进(step+1)×J个存储位置,如果写指针会超过存储器的末端则回转。根据FIFO滑动的方向,使写指针前进包括向写指针加上(step+1)×J或者从写指针减去(step+1)×J。可以通过获得此和或差并且向其应用以存储大小取模来进行回转。
图7是示出根据本发明实施例的用于在组中交织具有I个码元的纠错码的码元的装置的框图。可以设置有存储器700,其可以存储FIFO和计算中使用的任何变量。连接到存储器700的存储初始化器702可以在存储器中建立 I ( I - 1 ) × J 2 + 1 大小的存储区域,其中J是针对FIFO的延迟值(即,各个存储位置的大小)。连接到存储器700的占位符设置器704可以将占位符设置到存储器中的初始位置。接着,开始接收码元。对于接收到的每I个码元,执行循环。在该循环中,可以从0到I-1对step进行计数,在每次重复执行一系列动作。因此,通过由step从0到I-1来计数,并对每I个码元重复该计数,认为处理重复地进行计数。连接到占位符设置器704的step重复计数器706可以执行此重复计数并且控制循环。从今往后,称为存储器的实际上是存储器的为FIFO留出的一部分。
连接到存储器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的情况下使其旁路。可以通过无延迟地发送码元而使该码元旁路。
图8是示出根据本发明另一实施例的用于在组中交织具有I个码元的纠错码的码元的装置的框图。可以设置有存储器800,其可以存储FIFO和计算中使用的任何变量。连接到存储器800的存储初始化器802可以建立 I ( I - 1 ) × J 2 + I + 1 大小的存储区域,其中J是针对FIFO的延迟值(即,各个存储位置的大小)。连接到存储器800的写指针设置器804可以将写指针设置到存储器中的初始位置。接着,开始接收码元。对于接收到的每I个码元,执行循环。在该循环中,可以从0到I-1对step进行计数,在每次重复执行一系列动作。因此,通过由step从0到I-1来计数,并对每I个码元重复该计数,认为处理重复地进行计数。连接到写指针设置器804的step重复计数器806可以执行此重复计数并且控制循环。从今往后,称为存储器的实际上是存储器的为FIFO留出的一部分。
连接到存储器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。可以通过获得此和或差并向其应用以存储大小取模来进行回转。
图8是示出根据本发明另一实施例的用于在组中交织具有I个码元的纠错码的码元的装置的框图。可以设置有存储器800,其可以存储FIFO和计算中使用的任何变量。连接到存储器800的存储初始化器802可以建立 I ( I - 1 ) × J 2 + I + 1 大小的存储区域,其中J是针对FIFO的延迟值(即,各个存储位置的大小)。连接到存储器800的写指针设置器804可以将写指针设置到存储器中的初始位置。接着,开始接收码元。对于接收到的每I个码元,执行循环。在该循环中,可以从0到I-1对step进行计数,在每次重复执行一系列动作。因此,通过由step从0到I-1来计数,并对每I个码元重复该计数,认为处理重复地进行计数。连接到写指针设置器804的step重复计数器806可以执行此重复计数并且控制循环。从今往后,称为存储器的实际上是存储器的为FIFO留出的一部分。
连接到存储器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。可以通过获得此和或差并向其应用以存储大小取模来进行回转。
图9是示出根据本发明第三实施例的用于在组中交织具有I个码元的纠错码的码元的装置的框图。可以设置有存储器900,其可以存储FIFO和计算中使用的任何变量。连接到存储器900的存储初始化器902可以建立 I ( I - 1 ) × J 2 + I + 1 大小的存储区域,其中J是针对FIFO的延迟值(即,各个存储位置的大小)。连接到存储器900的写指针设置器904可以将写指针设置到存储器中的初始位置。接着,开始接收码元。对于接收到的每I个码元,执行循环。在该循环中,可以从0到I-1对step进行计数,在每次重复执行一系列动作。因此,通过由step从0到I-1来计数,并对每I个码元重复该计数,认为处理重复地进行计数。连接到写指针设置器804的step重复计数器906可以执行此重复计数并且控制循环。从今往后,称为存储器的实际上是存储器的为FIFO留出的一部分。
连接到存储器900并连接到step重复计数器906的存储位置读取器908可以从存储器中的等于写指针的后一个存储位置的位置读取码元,如果读指针会超过存储器的末端则回转。根据FIFO滑动的方向,后一个存储位置可以等于低一个存储位置或者高一个存储位置。可以通过获得此和或差并向其应用以存储大小取模来进行回转。连接到存储器900并连接到step重复计数器906的码元写入器910可以将下I个码元写入存储器中的由写指针指示的位置。随后,写指针设置器808可以使写指针前进(step+1)×J个存储位置,如果写指针会超过存储器末端则回转。根据FIFO滑动的方向,使写指针前进可以包括向写指针加上(step+1)×J或者从写指针减去(step+1)×J。可以通过获得此和或差并向其应用以存储大小取模来进行回转。
虽然已经示出并描述了本发明的实施例和应用,但是对于受益于本公开的本领域技术人员很明显可以在不脱离本文的本发明原理的情况下进行比上述更多的变型。因此,本发明不受除所附权利要求的精神之外的限制。

Claims (34)

1、一种用于在组中交织具有I个码元的纠错码的码元的方法,所述方法包括以下步骤:
将占位符设置到
Figure A2004800126670002C1
大小的存储器中的初始位置,其中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个码元的纠错码的码元的方法,所述方法包括以下步骤:
将写指针设置到
Figure A2004800126670002C2
大小的存储器中的初始位置,其中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个码元的纠错码的码元的方法,所述方法包括以下步骤:
将写指针设置到
Figure A2004800126670003C1
大小的存储器中的初始位置,其中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个码元的纠错码的码元的装置,所述装置包括:
存储器;
连接到所述存储器的存储初始化器;
连接到所述存储器的占位符设置器;
连接到所述占位符设置器的step重复计数器;
连接到所述存储器并连接到所述step重复计数器的写指针设置器;
连接到所述存储器并连接到所述step重复计数器的读指针设置器;
连接到所述存储器并连接到所述step重复计数器的存储位置读取器;以及
连接到所述存储器并连接到所述step重复计数器的码元写入器。
16、一种用于在组中交织具有I个码元的纠错码的码元的装置,所述装置包括:
存储器;
连接到所述存储器的存储初始化器;
连接到所述存储器的写指针设置器;
连接到所述写指针设置器的step重复计数器;
连接到所述存储器并连接到所述step重复计数器的读指针设置器;
连接到所述存储器并连接到所述step重复计数器的存储位置读取器;以及
连接到所述存储器并连接到所述step重复计数器的码元写入器。
17、一种用于在组中交织具有I个码元的纠错码的码元的装置,所述装置包括:
存储器;
连接到所述存储器的存储初始化器;
连接到所述存储器的写指针设置器;
连接到所述写指针设置器的step重复计数器;
连接到所述存储器并连接到所述step重复计数器的存储位置读取器;以及
连接到所述存储器并连接到所述step重复计数器的码元写入器。
18、一种用于在组中交织具有I个码元的纠错码的码元的装置,所述装置包括:
用于将占位符设置到
Figure A2004800126670005C1
大小的存储器中的初始位置的装置,其中J为延迟值;
对于接收到的每I个码元:
用于从step为0到step为I-1进行重复计数、执行以下步骤的装置:
a)将写指针设置为等于所述占位符;
b)如果step为0,则将所述占位符设置为等于读指针;
c)如果step不为0,则使所述占位符前进step×J个存储位置,如果所述占位符值会超过所述存储器的末端则回转;
d)将所述读指针设置为等于所述占位符;
e)从所述存储器中的由所述读指针指示的位置进行读出;以及
f)除非step为0,否则将后继所述I个码元写入所述存储器中的由所述写指针指示的位置,在step为0的情况下将其旁路。
19、根据权利要求18所述的装置,其中,所述使所述占位符前进的步骤包括向所述占位符加上step×J,以所述存储器大小取模。
20、根据权利要求18所述的装置,其中,所述使所述占位符前进的步骤包括从所述占位符减去step×J,以所述存储器大小取模。
21、根据权利要求18所述的装置,其中,通过无延迟地发送码元而将其旁路。
22、一种用于在组中交织具有I个码元的纠错码的码元的装置,所述装置包括:
用于将写指针设置到 大小的存储器中的初始位置的装置,其中J是延迟值;
对于接收到的每I个码元:
由于从step为0到step为I-1进行重复计数、执行以下步骤的装置:
a)将读指针设置为等于所述写指针的后一个存储位置,如果所述读指针会超过所述存储器的末端则回转;
b)从所述存储器中的由所述读指针指示的位置进行读出;
c)将后继所述I个码元写入所述存储器中的由所述写指针指示的位置;以及
d)使所述写指针前进(step+1)×J个存储位置,如果所述写指针会超过所述存储器的末端则回转。
23、根据权利要求22所述的装置,其中,所述使所述写指针前进的步骤包括向所述写指针加上step×J,以所述存储器大小取模。
24、根据权利要求22所述的装置,其中,所述使所述写指针前进的步骤包括从所述写指针减去step×J,以所述存储器大小取模。
25、根据权利要求22所述的装置,其中,后一个存储位置等于低一个存储位置。
26、根据权利要求22所述的装置,其中,后一个存储位置等于高一个存储位置。
27、一种用于在组中交织具有I个码元的纠错码的码元的装置,所述装置包括:
用于将写指针设置到
Figure A2004800126670006C2
大小的存储器中的初始位置的装置,其中J是延迟值;
对于所接收的每I个码元:
用于从step为0到step为I-1进行重复计数、执行以下步骤的装置:
a)从所述存储器中的在所述写指针后一个存储位置的位置进行读出,如果所述位置会超过所述存储器的末端则回转;
c)将后继所述I个码元写入所述存储器中的由所述写指针指示的位置;以及
d)使所述写指针前进(step+1)×J个存储位置,如果所述写指针会超过所述存储器的末端则回转。
28、根据权利要求27所述的装置,其中,所述使所述写指针前进的步骤包括向所述写指针加上step×J,以所述存储器大小取模。
29、根据权利要求27所述的装置,其中,所述使所述写指针前进的步骤包括从所述写指针减去step×J,以所述存储器大小取模。
30、根据权利要求27所述的装置,其中,后一个存储位置等于低一个存储位置。
31、根据权利要求27所述的装置,其中,后一个存储位置等于高一个存储位置。
32、一种机器可读的程序存储装置,确实地包含有可以由该机器执行以执行用于在组中对具有I个码元的纠错码的码元进行交织的方法的指令程序,所述方法包括以下步骤:
将占位符设置到
Figure A2004800126670007C1
大小的存储器中的初始位置,其中J为延迟值;
对于接收到的每I个码元执行以下操作:
从step为0到step为I-1进行重复计数,执行以下步骤:
a)将写指针设置为等于所述占位符;
b)如果step为0,则将所述占位符设置为等于读指针;
c)如果step不为0,则使所述占位符前进step×J个存储位置,如果所述占位符值会超过所述存储器的末端则回转;
d)将所述读指针设置为等于所述占位符;
e)从所述存储器中的由所述读指针指示的位置进行读出;以及
f)除非step为0,否则将后继所述I个码元写入所述存储器中的由所述写指针指示的位置,在step为0的情况下将其旁路。
33、一种机器可读的程序存储装置,确实地包含有可以由该机器执行以执行用于在组中对具有I个码元的纠错码的码元进行交织的方法的指令程序,所述方法包括以下步骤:
将写指针设置到
Figure A2004800126670008C1
大小的存储器中的初始位置,其中J是延迟值;
对于接收到的每I个码元执行以下操作:
从step为0到step为I-1进行重复计数,执行以下步骤:
a)将读指针设置为等于所述写指针的后一个存储位置,如果所述读指针会超过所述存储器的末端则回转;
b)从所述存储器中的由所述读指针指示的位置进行读出;
c)将后继所述I个码元写入所述存储器中的由所述写指针指示的位置;以及
d)使所述写指针前进(step+1)×J个存储位置,如果所述写指针会超过所述存储器的末端则回转。
34、一种机器可读的程序存储装置,确实地包含有可以由该机器执行以执行用于在组中对具有I个码元的纠错码的码元进行交织的方法的指令程序,所述方法包括以下步骤:
将写指针设置到
Figure A2004800126670008C2
大小的存储器中的初始位置,其中J是延迟值;
对于接收到的每I个码元执行以下操作:
从step为0到step为I-1进行重复计数,执行以下步骤:
a)从所述存储器中的在所述写指针后一个存储位置的位置进行读出,如果所述位置会超过所述存储器的末端则回转;
c)将后继所述I个码元写入所述存储器中的由所述写指针指示的位置;以及
d)使所述写指针前进(step+1)×J个存储位置,如果所述写指针会超过所述存储器的末端则回转。
CN2004800126678A 2003-03-21 2004-03-15 纠错码交织器 Expired - Lifetime CN1784833B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/394,937 2003-03-21
US10/394,937 US6839870B2 (en) 2003-03-21 2003-03-21 Error-correcting code interleaver
PCT/US2004/007881 WO2004086175A2 (en) 2003-03-21 2004-03-15 Error-correcting code interleaver

Publications (2)

Publication Number Publication Date
CN1784833A true CN1784833A (zh) 2006-06-07
CN1784833B CN1784833B (zh) 2011-11-02

Family

ID=32988501

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2004800126678A Expired - Lifetime CN1784833B (zh) 2003-03-21 2004-03-15 纠错码交织器

Country Status (6)

Country Link
US (1) US6839870B2 (zh)
EP (1) EP1611685A4 (zh)
JP (1) JP4377407B2 (zh)
CN (1) CN1784833B (zh)
CA (1) CA2519588C (zh)
WO (1) WO2004086175A2 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102281074A (zh) * 2010-06-10 2011-12-14 Nxp股份有限公司 包括可重新配置计数器的可重新配置交织器
CN101662336B (zh) * 2009-09-16 2012-08-15 北京海尔集成电路设计有限公司 一种可配置的交织解交织方法及其装置

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8219872B2 (en) * 2007-01-05 2012-07-10 Csr Technology Inc. Extended deinterleaver for an iterative decoder
US8065583B2 (en) 2007-07-06 2011-11-22 Micron Technology, Inc. Data storage with an outer block code and a stream-based inner code
US8051358B2 (en) 2007-07-06 2011-11-01 Micron Technology, Inc. Error recovery storage along a nand-flash string
US8327245B2 (en) 2007-11-21 2012-12-04 Micron Technology, Inc. Memory controller supporting rate-compatible punctured codes
US8499229B2 (en) 2007-11-21 2013-07-30 Micro Technology, Inc. Method and apparatus for reading data from flash memory
US8046542B2 (en) 2007-11-21 2011-10-25 Micron Technology, Inc. Fault-tolerant non-volatile integrated circuit memory
US20100084479A1 (en) * 2008-10-02 2010-04-08 Silverbrook Research Pty Ltd Position-coding pattern having tag coordinates encoded by bit-shifted subsequences of cyclic position code
US8386895B2 (en) 2010-05-19 2013-02-26 Micron Technology, Inc. Enhanced multilevel memory
CN102624484B (zh) * 2012-03-02 2014-12-10 华为技术有限公司 交织实现方法和设备
US8793556B1 (en) 2012-05-22 2014-07-29 Pmc-Sierra, Inc. Systems and methods for reclaiming flash blocks of a flash drive
US9021337B1 (en) 2012-05-22 2015-04-28 Pmc-Sierra, Inc. Systems and methods for adaptively selecting among different error correction coding schemes in a flash drive
US8972824B1 (en) 2012-05-22 2015-03-03 Pmc-Sierra, Inc. Systems and methods for transparently varying error correction code strength in a flash drive
US8996957B1 (en) 2012-05-22 2015-03-31 Pmc-Sierra, Inc. Systems and methods for initializing regions of a flash drive having diverse error correction coding (ECC) schemes
US9021333B1 (en) 2012-05-22 2015-04-28 Pmc-Sierra, Inc. Systems and methods for recovering data from failed portions of a flash drive
US8788910B1 (en) 2012-05-22 2014-07-22 Pmc-Sierra, Inc. Systems and methods for low latency, high reliability error correction in a flash drive
US9183085B1 (en) 2012-05-22 2015-11-10 Pmc-Sierra, Inc. Systems and methods for adaptively selecting from among a plurality of error correction coding schemes in a flash drive for robustness and low latency
US9021336B1 (en) 2012-05-22 2015-04-28 Pmc-Sierra, Inc. Systems and methods for redundantly storing error correction codes in a flash drive with secondary parity information spread out across each page of a group of pages
US9176812B1 (en) 2012-05-22 2015-11-03 Pmc-Sierra, Inc. Systems and methods for storing data in page stripes of a flash drive
US9047214B1 (en) 2012-05-22 2015-06-02 Pmc-Sierra, Inc. System and method for tolerating a failed page in a flash device
US9577673B2 (en) 2012-11-08 2017-02-21 Micron Technology, Inc. Error correction methods and apparatuses using first and second decoders
US9053012B1 (en) 2013-03-15 2015-06-09 Pmc-Sierra, Inc. Systems and methods for storing data for solid-state memory
US9026867B1 (en) 2013-03-15 2015-05-05 Pmc-Sierra, Inc. Systems and methods for adapting to changing characteristics of multi-level cells in solid-state memory
US9081701B1 (en) 2013-03-15 2015-07-14 Pmc-Sierra, Inc. Systems and methods for decoding data for solid-state memory
US9009565B1 (en) 2013-03-15 2015-04-14 Pmc-Sierra, Inc. Systems and methods for mapping for solid-state memory
US9208018B1 (en) 2013-03-15 2015-12-08 Pmc-Sierra, Inc. Systems and methods for reclaiming memory for solid-state memory

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5042033A (en) 1989-06-05 1991-08-20 Canadian Marconi Corporation RAM-implemented convolutional interleaver
US5537420A (en) 1994-05-04 1996-07-16 General Instrument Corporation Of Delaware Convolutional interleaver with reduced memory requirements and address generator therefor
US5764649A (en) * 1996-03-29 1998-06-09 Amati Communications Corporation Efficient address generation for convolutional interleaving using a minimal amount of memory
US6014661A (en) 1996-05-06 2000-01-11 Ivee Development Ab System and method for automatic analysis of data bases and for user-controlled dynamic querying
KR100237745B1 (ko) 1997-05-23 2000-01-15 김영환 회전형 인터리버/디인터리버의 메모리 주소 발생장치 및 그 방법
US6014761A (en) * 1997-10-06 2000-01-11 Motorola, Inc. Convolutional interleaving/de-interleaving method using pointer incrementing across predetermined distances and apparatus for data transmission
US6536001B1 (en) * 1999-03-11 2003-03-18 Globespanvirata, Inc. Circuit and method for convolutional interleaving using a single modulo operation
JP3399904B2 (ja) * 2000-03-17 2003-04-28 松下電器産業株式会社 インタリーブアドレス生成装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101662336B (zh) * 2009-09-16 2012-08-15 北京海尔集成电路设计有限公司 一种可配置的交织解交织方法及其装置
CN102281074A (zh) * 2010-06-10 2011-12-14 Nxp股份有限公司 包括可重新配置计数器的可重新配置交织器

Also Published As

Publication number Publication date
CA2519588C (en) 2012-10-09
JP2006521059A (ja) 2006-09-14
US6839870B2 (en) 2005-01-04
CA2519588A1 (en) 2004-10-07
JP4377407B2 (ja) 2009-12-02
US20040187063A1 (en) 2004-09-23
WO2004086175A3 (en) 2005-01-20
CN1784833B (zh) 2011-11-02
EP1611685A4 (en) 2008-07-02
WO2004086175A2 (en) 2004-10-07
EP1611685A2 (en) 2006-01-04

Similar Documents

Publication Publication Date Title
CN1784833A (zh) 纠错码交织器
CN1104778C (zh) 产生地址的卷积交错器及其方法
CN1202625C (zh) 利用线性同余序列的turbo码交织器
CN100344080C (zh) 数据传输的速率匹配方法和装置
RU2604992C2 (ru) Устройство, содержащее кольцевой буфер и способ для присвоения вариантов избыточности кольцевому буферу
CN1168221C (zh) Map译码器的分割型去交织器存储器
CN1535505A (zh) 编码和解码数据的方法和装置
CN1656693A (zh) 迭代硬输入前向纠错的方法
CN1685621B (zh) 用于解交织通信设备中的交织数据流的方法和装置
CN101636914A (zh) 用于编码和解码数据的方法和装置
JP2008278189A (ja) 復号装置および方法、並びにプログラム
CN102611460A (zh) Ldpc解码器的有效存储的实现
CN1476675A (zh) 编码线性成块码的方法和装置
CN1568577A (zh) 特播解码装置和方法
CN1245599A (zh) 截短法尔码的差错捕获译码方法和装置
CN1411195A (zh) 交错器模式修改
CN101336515B (zh) 交织方法和通信装置
CN1841939A (zh) 使用游程有限码的编码器和解码器
CN1309175C (zh) 数字传输中的一种卷积交织与去交织的方法
CN1183687C (zh) Turbo码编码器及编码方法
CN101034894A (zh) 一种实现解码的电路和方法
US6670898B1 (en) Efficient method and apparatus for interleaving and de-interleaving data
WO2023029880A1 (zh) 一种数据交织方法及数据交织装置
CN103138881A (zh) 编解码方法和设备
CN102611465A (zh) 结构化多元非规则重复累积码的编码器与编码方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: State of Georgia, US

Patentee after: AI Ruishi Enterprise Co.,Ltd.

Address before: State of Georgia, US

Patentee before: Iris Enterprise Co.,Ltd.

CP01 Change in the name or title of a patent holder
TR01 Transfer of patent right

Effective date of registration: 20220711

Address after: State of Georgia, US

Patentee after: Iris Technology

Address before: Pennsylvania USA

Patentee before: GENERAL INSTRUMENT Corp.

Effective date of registration: 20220711

Address after: London, England

Patentee after: Iris International Intellectual Property Co.,Ltd.

Address before: State of Georgia, US

Patentee before: AI Ruishi Enterprise Co.,Ltd.

Effective date of registration: 20220711

Address after: Pennsylvania USA

Patentee after: GENERAL INSTRUMENT Corp.

Address before: California, USA

Patentee before: TERAYON COMMUNICATIONS SYSTEMS, Inc.

Effective date of registration: 20220711

Address after: State of Georgia, US

Patentee after: Iris Enterprise Co.,Ltd.

Address before: State of Georgia, US

Patentee before: Iris Technology

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20231228

Address after: London

Patentee after: Andrew Wireless Systems UK Ltd.

Address before: London

Patentee before: Iris International Intellectual Property Co.,Ltd.

TR01 Transfer of patent right
CX01 Expiry of patent term

Granted publication date: 20111102

CX01 Expiry of patent term