专利名称:交织方法、交织装置以及存储交织模式产生程序的媒体的利记博彩app
技术领域:
本发明一般涉及改进纠正突发性错误的纠错代码的纠错能力的交织技术。更进一步地说,本发明涉及通过增加数据随机性程度来改进交织效果的交织方法、交织装置以及存储交织模式产生程序的媒体。
在诸如移动通信系统的数字传输中,由于来自建筑物等的反射而引起的多路径衰减使所接的信号的电平随时间有很大的变化。于是,可能发生诸如突发性错误等数字错误。此外,在诸如紧致盘或磁盘等数字系统的存储媒体中,由于媒体读出表面上的划痕、灰尘等可能会引起诸如突发性错误等数字错误。于是,各类系统使用了各种不同的纠错代码。在这类纠错代码中,为了改进针对突发性错误的纠错能力,在纠错代码中采用了交织技术。当出现突发性错误时,纠错代码的纠错能力取决于交织技术。
此外,使用近年来提出的高能力纠错代码的加速(turbo)编码器包括多个编码器,每一个编码器都通过一个交织器(该交织器进行交织处理)彼此相连,以降低编码器之间冗余系统的相关程度。
于是,需要一种用于诸如采用上述交织器的上述移动通信系统的加速编码和传输系统的交织方法。
正如本领域技术人员已知的,交织方法的目的在于使输入比特串的比特序列和输出比特串的比特序列随机化。以下观点可用作评价交织方法的能力的标准。
(1)两个连续的输入比特在输出串中能被分离得多远。
(2)两个连续的输出比特在输入串中能被分离得多远。
图1示出了传统的交织方法。
如图1所示,一帧的数据100包括1152个比特。一个矩阵110具有一个N×M的缓冲器(N行、M行)。这样来实现交织方法例如,沿行方向写入M个比特数据,象用斜线表示的阴影区A中所示的向量115,而在用斜线表示的阴影区B中所示的列方向上读出N个比特数据。按以上所示标准评估该交织方法,可以看到(1)两个连续的输入比特在交织后的输出串130中被分开的距离不会超过N比特,和(2)两个连续的输出比特在输入串中被分开至少M比特。
然而,在如上所述的交织方法中,按输入比特串的时间顺序,沿行方向写入输入比特串,而且还是按输入比特串的时间顺序沿列方向读出写入的数据。于是,在每个过程中,数据只按时间顺序写/读一次。于是,交织效果差,随机性能受限于上述N×M缓冲器。
本发明可以解决以上问题。本发明的第一个目的是提供一种与按时间顺序逐一进行读出和写入的情况相比改进了交织效果的交织方法,该方法在进行对缓冲器的一次读出或写入处理之后采用一个重复改变序列的过程。
为了实现以上目的,根据本发明的用于输入一个单位长度的数据串和输出该单位长度的交织串的交织方法,包括第一步将数据串中的数据写入一个第一交织器,从第一交织器中逐列或逐行读出数据,并将数据写入多个第二交织器;第二步从每一个第二交织器中读出数据,并按需要将数据写入一个或多个第三交织器,和从由重复执行第二步一次或多次产生的每个交织器中或从由第一步产生的每个交织器中读出数据,并输出一个数据串。
可将上述的发明配置成这样的交织方法输入单位长度的数据串并输出该单位长度的交织处理后的数据串,该方法包括第一步按一个方向将数据串写入第一交织器;第二步从第一交织器中读出列数据或行数据,在一个方向上将读出数据写入第二交织器,该第二交织器的尺寸不同于第一交织器的尺寸,并且重复读出列数据或行数据并且逐列或逐行写入读出的数据;重复第三步执行第二步,其中将第二步产生的多个第二交织器的每一个看作第一交织器;和从通过重复第三步或执行第二步产生的每个交织器中读出数据,并输出一个数据串。
可将上述的交织方法配置成这样一种交织方法输入单位长度的数据串,并输出该单位长度的交织后的数据串,该方法包括第一步;在一个方向上将数据串写入第一交织器;第二步从第一交织器中读出列数据或行数据,按一个方向将读出的数据写入第二交织器,第二交织器的尺寸不同于第一交织器,重复读出列数据或行数据并逐列或逐行写入读出的数据;第三步从由第二步产生的每个交织器中逐列或逐行地读出数据,将数据写入一个尺寸和第一交织器的尺寸一样的交织器中;和从由第三步产生的交织器中读出数据,并输出数据串。
在上述配置中,该交织方法包括第四步,执行第二步和第三步,其中将由第三步产生的交织器看作第一交织器,从通过重复第四步一次或多次产生的交织器中读出数据,并输出数据串。
可将该交织方法配置成这样一种交织方法输入单位长度的数据串并输出该单位长度的经交织处理后的数据串,该方法包括事先在一表中存储多个交织模式;通过参照所述表将一个交织模式应用于输入数据串并输出数据;和重复将一个交织模式应用于输出数据的步骤,并输出交织后的数据串。
在上述配置中,根据权利要求1-4中任何一个权利要求所述的交织方法将交织模式存储在所述表中。
根据以上所述的本发明,由于在执行一次向缓冲器写入或从缓冲器中读出之后,都重复应用改变序列过程,所以和按时间顺序逐一读出和写入的情况相比改进了交织的效果。
本发明的第二个目的是提供一种支持各种交织灵活性并降低交织处理数据量的交织方法。
为实现以上目的,根据本发明的产生一个交织模式的交织模式描述以对单位长度的输入数据串交织并输出该单位长度的交织处理后的数据串的方法,包括通过使用第一单位的交织模式描述和第二单位的交织模式描述产生第三单位的交织模式描述。
本发明通过使用权利要求7中的交织模式描述产生方法产生一个预定长度单位的交织模式描述。
在上述配置中,交织模式描述是一个交织模式表或描述交织模式的交织模式等式。
本发明的交织方法可以配置成这样的交织方法输入单位长度的数据串并输出该单位长度的交织后的数据串,该方法包括通过使用第一单位的交织模式描述和第二单位的交织模式描述产生第三单位的交织模式描述;和用产生的交织模式描述进行交织。
此外,可将本发明的交织方法配置成这样一种交织方法;输入单位长度的数据串并输出该单位长度的交织后的数据串,该方法包括用第一单位的交织模式描述和第二单位的交织模式描述计算第三单位的数据串的目的地,和用计算结果进行交织。
此外,该交织方法还包括通过使用由该方法产生的交织模式描述产生第一单位的交织模式描述和第二单位的交织模式描述,通过对第一单位的交织模式描述和第二单位的交织模式描述的计算对第三单位的数据串交织。
此外,交织模式描述是一个交织模式表或一个描述交织模式的交织模式等式。
根据上述的本发明,例如通过从一个交织模式表(在A=B的情况下)或从两个交织模式表产生交织模式描述,可以产生一个具有较大交织长度的交织模式表。于是可以用多个较小交织长度的模式的组合来表示一定交织长度的模式。于是可以降低固定长度模式的存储量。例如,传统方法中,在使用1000比特的交织模式表的情况下,需要1000比特的存储器。根据本发明,通过用一个20比特交织模式表和一个50比特交织模式表来表示1000比特的交织模式表,可以将存储量降低到70(=20+50)比特。此外,通过用一个20比特交织模式表和以一个50比特交织模式表来表示900比特的交织模式表,可以在不加大固定长度交织模式表的情况下,可以实现1000比特和900比特的交织。
可以将本发明的交织方法配置成这样一种交织方法用于产生交织模式的交织模式描述以对单位长度的输入数据串进行交织并输出该单位长度的交织后的数据串,该方法包括解释定义交织模式的交织模式描述语言,和通过使用权利要求9中的方法在解释的基础上产生交织模式描述。
在上述配置中,如果存储了与交织模式描述语言的一部分相对应的交织模式描述,则在产生交织模式时通过参照存储的交织模式描述在不进行与交织模式描述语言的所述部分对应的处理的情况下,产生交织模式描述。
此外,该交织方法包括解释定义交织模式的交织模式描述语言,并使用权利要求13的方法在解释的基础上实现交织。
在如上配置的交织方法中,如果存储了与交织模式描述语言的一部分相对应的交织模式描述,在交织时通过参照所存储的交织模式在不进行与交织描述语言的所述部分相对应的处理的情况下产生交织模式描述。
可将本发明配置成这样一种方法产生交织模式的交织模式描述以对单位长度的输入数据串进行交织并输出该单位长度的交织后的数据串,该方法包括在单位长度被给定时确定第一阶段的交织模式描述,和通过重复确定与第一阶段之后的一个阶段的行和列交织器相对应的交织模式直至到达任何阶段或不能再进行交织为止来产生一个交织模式描述。
此外,可将本发明配置成这样一种方法产生交织模式的交织模式描述以对单位长度的输入数据串进行交织并输出该单位长度的交织后的数据串,该方法包括
检验产生的交织模式描述;如果检验不成功则在改变所有或一部分参数之后再产生交织模式描述;和重复检验和产生过程直到检验结果为成功,这表明已产生了通过检验的交织模式描述。
在上述配置的交织模式描述产生方法中,产生的交织模式描述是一个交织模式表或交织模式等式或是一种交织模式描述语言。
根据上述的本发明可以灵活地支持各种交织并能降低交织处理的数据量。
本发明的第三个目的是提供一种将交织方法应用于传输系统装置、快速编码器等的方法,并提供诸如传输系统装置和编码器的装置以及用于存储适合于目标的交织模式产生程序的媒体。
为实现上述目的,可以将本发明配置成这样一种方法产生交织模式的交织模式描述以对单位长度的输入数据串进行交织并输出该单位长度的交织后的数据串,该方法包括确定步骤当单位长度被给定时,通过使用适合于一预定应用目标的交织模式列表确定对应于该单位长度的块交织器的行数和列数,并由所确定的行数和列数定义列数或行数;和从通过重复以上步骤直到所定义的行数或列数是在交织模式列表中定义的,而获得的交织模式中,产生单位长度的交织模式。
在上述配置中,该方法包括第一步,该第一步是第一阶段的处理,确定与事先由一已定义数目给定的单位长度相对应的块交织器的行数和列数,假定与已定义数目相对应的交织模式为一预定义交织模式,并且使用已确定的列数定义行数或使用已确定的行数定义列数;第二步,通过使用适合于预定应用目标的交织模式列表确定与已定义的行数或列数相对应的块交织器的行数或列数,并由所确定的行数定义列数或由所确定的列数定义行数;第三步,重复第二步,直到与行或列数对应的交织模式存在于预定义的交织模式列表中;
重复执行第三步,重复次数等于对应于第一步中预定义交织模式的行或列数;和依次从与在最后阶段产生的行和列相对应的交织模式中产生与前一阶段的行和列对应的交织模式。
此外,在上述配置中,检验所产生的单位长度的交织模式并根据检验结果再次产生该单位长度的交织模式。
此外,在上述配置中,应用目标是快速编码而第一阶段的行数为7。
此外,在上述配置中,应用目标是传输而第一阶段的列数是一帧的隙数。
根据上述的本发明,交织模式适合于快速编码和传输系统等。
为实现上述目的,用于输入单位长度的数据串并输出该单位长度的交织后的数据串的交织装置包括用于在一表中事先存储一个或多个交织模式的装置;通过应用多个交织模式中的一个输出数据的装置;和通过在必要时进一步应用多个交织模式中的一个输出数据的装置。
在上述配置中,通过权利要求1-4中任意一个权利要求所述的交织方法在表中存储交织模式。
此外,在上述配置中,由按权利要求21的交织模式产生方法来产生交织模式。
此外,在该交织设备中,替代使用交织模式可以计算输入数据串的交织目的地,并根据计算进行交织以及输出数据。
根据上述发明,可以提供用于进行交织处理的装置,特别是适合于快速编码和传输等的装置。
为实现以上目的,根据本发明提供用于存储描述和产生交织模式以根据一种交织方法输入单位长度的数据串并输出该单位长度的交织后的数据串的程序的计算机可读媒体,所述程序包括确定步骤,通过使用适合于预定应用目标的交织模式列表确定对应于事先给定的单位长度的块交织器的行或列数,并由确定的行数定义列数或由确定的列数定义行数;和从通过重复以上步骤直到所定义的列数或所定义的行数是在交织模式列表中定义的而获得的交织模式中产生单位长度的交织模式。
此外,在上述配置中,程序包括第一步,该步骤是第一阶段中的处理,确定对应于由一预定数目事先给定的单位长度的块交织器的行数或列数,将对应于预定义数目的交织模式假定为预定义的交织模式,并使用确定的列数定义行数或使用确定的行数定义列数;第二步,通过使用适合于预定应用目标的交织模式列表确定对应于定义的行数或定义的列数的块交织器的行数或列数,并由所确定的行数定义列数或由所确定的列数定义行数;第三步,重复第二步骤直到对应于行数或列数的交织模式存在于预定的交织模式列表中;重复执行第三步,重复次数等于对应于在第一步中预定义交织模式的行数或列数;和由对应于在最后阶段产生的行和列的交织模式中依次产生对应于前一阶段的行或列的交织模式。
在上述配置中,在存储用于产生本发明的交织模式的程序的计算机可读媒体中,检验所产生的单位长度的交织模式并根据检验结果再次产生单位长度的交织模式。
此外,在存储用于产生本发明的交织模式的程序的计算机可读媒体中,应用目标是快速编码并且第一阶段的行数为7。
此外,在存储用于产生本发明的交织模式的程序的计算机可读媒体中,应用目标是传送,并且第一阶段的列数是一帧的隙数。
根据上述发明,可以提供存储用于产生本发明的交织模式的程序的计算机可读媒体,特别是存储用于产生适合于快速编码和传输的交织模式的程序的媒体。
图1示出了传统的交织方法;图2示出了根据本发明第一实施例的交织方法;图3示出了根据本发明所述第一实施例的交织方法;图4示出了根据本发明第二实施例的交织方法;图5示出了根据本发明第三实施例的交织方法;
图6示出了根据本发明第四实施例的交织方法;图7示出了根据本发明第五实施例的交织方法;图8示出了将长度L=64比特的数据写入8比特×8比特块交织器中;图9示出了以符号为单位进行交织的第一种情况;图10示出了以符号为单位进行交织的第二种情况;图11示出了以符号为单位进行交织的第三种情况;图12解释了交织过程;图13解释了根据本发明第七实施例的交织过程;图14解释了根据本发明所述第七实施例的交织过程;图15解释了根据本发明所述第七实施例的交织过程;图16解释了根据本发明第八实施例的交织过程;图17解释了根据本发明所述第八实施例的交织过程;图18解释了根据本发明第九实施例的交织过程;图19解释了根据本发明所述第九实施例的交织过程;图20解释了根据本发明所述第九实施例的交织过程;图21解释了根据本发明所述第九实施例的交织过程;图22解释了根据本发明所述第九实施例的交织过程;图23解释了定义交织模式描述语言的一个例子;图24解释了定义交织模式描述语言的一个例子;图25解释了定义交织模式描述语言的一个例子;图26解释了定义交织模式描述语言的一个例子;图27解释了在使用交织描述语言情况下实现交织的例子;图28解释了在使用交织描述语言情况下实现交织的例子;图29解释了在使用交织描述语言情况下实现交织的例子;图30解释了在使用交织描述语言情况下实现交织的例子;图31解释了在使用交织描述语言情况下实现交织的例子;图32示出了用于产生交织模式的处理流程;图33为示出用于确定产生的交织模式的过程的流程图;图34解释了快速编码器的配置的例子;
图35解释了移动无线收-发信机的配置的例子;图36示出了去交织的例子;图37示出了去交织的例子;图38为解释产生适于快速编码的交织模式的流程图;图39示出了确定交织模式的过程的细节;图40是一表,示出了用于确定交织模式的过程的预定交织模式的列表;图41示出了由多阶段交织方法产生交织模式的过程的细节;图42解释了产生交织模式的过程的第一阶段;图43示出了图42所示的产生过程的一个具体例子;图44解释了产生交织模式的过程的另一个例子;图45解释检验所产生的交织模式;图46为解释产生适合于传输线路交织器的交织模式的过程的流程图;图47示出了交织模式确定过程的细节;图48为一表,示出了用于产生交织模式的预定交织模式的列表;图49示出了由多阶段交织方法产生交织模式的过程的细节;图50示出了用于交织的装置的例子。
以下参照附图详细地描述本发明的实施例。尽管在以下对附图的描述中把交织器描述为二维数组,应清楚只是为了描述方便。无须说明,本发明适用于一维数组。
可以由用于对输入比特串等进行信号处理的处理装置来执行以下描述的交织处理。
首先描述本发明的第一实施例。
图2和图3示出了根据本发明第一实施例的交织方法。如图2所示,输入1152比特数据作为单帧数据200,与传统方法中的情况一样,沿行方向将行向量215写入72×16(=1152)的交织器210的一个缓冲器10中。无须说明,本发明的交织方法可应用于通用的N×M交织器,而不只只是72×16交织器。在72×16交织器中,读出16个列向量的每一个,包括具有72比特的向量220,并且由9×8(=72)交织器230、235…或240(对应于每一列向量)对每一列向量进行交织。这就是说,沿行方向将列向量220写入9×8(=72)交织器230的缓冲器中。最后,依次按列方向将16个9×8交织器中的每一个中的数据读出,然后输出或者说提取交织后的数据245。
图1所示的交织后的数据就列部分是按时间顺序排列的。相对,图2中数据排列更为复杂。这里,为了定量地估计交织的性能,按在相关技术中描述的标准(2)来评估该交织的性能。
在图1的输出130中,与“0”相邻的数为“16”。于是,在输入数据中,两比特至少被分开16个比特。当检测所有比特时,可以看到输出的两个连续比特被输入串中的至少16个比特分开。这就是说,根据标准(2)的上述评估为16个比特。
根据标准(2)对图2所示方法的评估结果为128个比特。于是,应理解这改进了交织的性能。
图3示出了其中执行了一个辅助交织过程的方法。如图3所示,在诸如如图2所示的交织器230的每一个9×8交织器中的每一列数据由每一个3×3(=9)块交织器进行交织处理。在交织的结束阶段,通过从诸如交织器285的3×3块交织器中按列方向依次读出数据来输出或提取交织后的数据295。
根据图3所示的方法,由于用上述标准(2)评估的结果为384个比特,所以可以看出通过重复交织过程改进了交织性能。
在以下描述根据本发明的第二实施例。图4示出了根据本发明第二实施例的交织方法。在根据第二实施例的方法中,与图3所示方法的不同之处在于是按列方向读出72×16交织器210中的数据,读出72×16交织器316行向量中的16个比特并按行方向将其写入诸如交织器320的4×4交织器的每一个中。其次,依次按列方向读出诸如交织器320的4×4交织器的每一个的每一列并将其写回72×16交织器310的每一行。在这种情况下,可以使用其它交织器335代替72×16交织器310。在将4×4交织器中的所有数据写回72×16交织器310之后,通过按列方向读72×16交织器的缓冲器可以提取交织后数据340。
与根据传统交织方法的输出结果350相比,在72×16交织器310的每一列中数据对准与传统方法相同,然而可以看到列对准不同。以下按标准(1)评估该交织方法。在传统交织方法中,输入数据“0”和“1”被交织相隔72个比特。类似地对所有比特按标准(1)评估,结果为72个比特。在第二实施例中,由于结果为288个比特,可以看出交织的性能得到改善。
以下描述本发明的第三实施例。图5示出了根据本发明第三实施例的交织方法。该实施例的方法是组合利用第一和第二实施例的方法,并且每一交织方法被重复执行。
在图5中,输入16比特的单个帧数据400,并按行方向写入4×4(=16)交织器410的缓冲器中。4列中的每一列由4比特组成,并由图5示出的4个2×2(=4)交织器420、425、430、435中的一个进行交织。就是说,按行方向将每一列写入诸如交织器420的2×2(=4)交织器的缓冲器中。
其次,依次读出每个2×2(=4)交织器的每列的2比特并返回到4×4交织器410的每一列。在这种情况下,可以使用其它的4×4交织器440代替4×4交织器410。
从交织器410或440中读出每行数据并由4个2×2(=4)交织器445、450、455、460中的相应一个进行交织。这就是说,按行方向将交织器410或440的行数据写入2×2(=4)交织器的缓冲器中。
其次,依次读出诸如交织器445的每个2×2交织器的每一列的2比特,并返回到4×4交织器410或440的每一行。在这种情况下,可以使用其它4×4交织器470代替4×4交织器410或440。在返回2×2交织器445-460的所有列数据之后,按列方向读4×4交织器410、440、470的缓冲器,并提取交织后的数据480。
根据上述方法,由于就标准(1)和标准(2)的性能同时得到改进,可以说进一步改进了交织性能。
于是,根据本发明,在N×M缓冲器的交织中,能将两连续的输入比特分开使得在经过足够多次的重复交织之后,在输出中两比特之间的距离大于2N比特,并在输入串中能将两连续的输出比特分开使得两比特之间的距离大于2M比特。例如,在8×8缓冲器的交织情况下,在重复交织三次之后,两连续输入比特在输出串中被分开超过2×8比特,而两连续的输出比特在输入串中被分开超过2×8比特。
此外,本发明可用于随机化在突发性错误传输线路或突发性错误记录媒体中出现的突发性错误,本发明也可应用于对快速编码进行交织的方法中。
以下描述本发明的第四实施例。图6示出了该实施例。
在上述的第一至第三实施例中的相同交织步骤没有必要使用相同的交织器。如图6所示,在将一个输入串写入72×16交织器600之后,按16比特读出交织器600的每一行。在这种情况中,交织器的形状可变以使第一行写入4×4交织器610、第二行写入6×3交织器620、第三行写入8×2交织器630等。也没有必要用输入数据填满交织器缓冲器,例如,一个6×3交织器可用于16比特输入串。
以下描述本发明的第五实施例。图7示出了第五实施例。
图7示出了类似于图2的交织的例子。在图2所示的例子情况下,将一输入串划分成多个16比特的块,其中在每个块中的比特序列保持与第一交织步骤中相同的时间顺序。另一方面,在图7所示的例子情况下,在每一块上执行伪随机交织,并将块中数据写入一个72×16交织器700。于是,本发明的交织重复过程可以和诸如用于伪随机交织方法的比特序列交换过程相组合。图7示出了这样交织方法的例子。
其次,将描述本发明的第六实施例。在上述实施例中,描述了以比特为单位的交织方法。以符号为单位的交织方法也是可行的。在以下,作为以符号为单位的例子描述第六实施例。
首先,将L-比特长的数据写入N×M(L≤N×M)块交织器。
这里,认为一个符号为K比特。即,在N×M块交织器中,认为连续(相邻接)的K比特为一个符号。
在第一种情况中,假定在垂直方向上的K个连续比特为一个符号,认为一个块交织器为(N/K)符号×M符号块交织器。于是,通过按上述方式在垂直方向上和水平方向上进行多阶段交织,并将符号转换成比特读出就可以实现符号交织。在第二种情况中,假定水平方向上的K个连续比特为一个符号,认为一个块交织器为N符号×(M/K)符号块交织器。于是,符号交织也是可行的。此外,在第三种情况中,将K个相邻比特考虑为一个符号,其中K=N1×M1,可认为块交织器是一个(N/N1)符号×(M/M1)符号的块交织器,于是,符号交织是可行的。
以下参考附图描述上述方法的具体例子。图8示出写入(N=)8比特×(M=)8比特块交织器中的L=64比特长数据。以下将结合分别与上述第一至第三种情况相应的图9-图11描述下述处理。
图9示出了第一种情况,其中K=2。按上述以比特为单位的方式对图9所示的4符号×8符号块交织器进行交织,并将交织器650中的符号转换成比特,于是产生交织器660,然后按比特读出。
在第二种情况中,其中K=2,按图10所示执行交织,并且在第三种情况中,K=4,按图11所示执行交织,由于从图和上述描述中,已使本方法很清楚,所以省略掉其说明。
如上所述,根据本发明第一至第六实施例的交织方法,可以实现前述的第一目的。即,在写入或读出缓冲器一次之后通过重复将交换过程应用在数据序列上,与传统的按时间顺序逐一进行读写方法相比可以改进交织性能。
以下将本发明的交织方法称作多交织方法。
如上所述,对于数字系统按比特或符号执行交织中的置换。上述方法表示了在缓冲器中写数据和读出数据的方式。还可能利用一个模式(以下将其称为交织模式)作为交织中的序列置换信息(在对数据进行交织时会引用它)。尽管,可以按比特或符号等进行交织,但以下为了简单将只示出按比特的情形。
图12示出了对16比特串进行交织的例子。如在图12中所示,通过参照交织模式表进行逐比特交织。在图12中,正如对将要被交织的输入16比特串670,根据存储在交织模式表中的序列改变输入串中的比特(或符号等)序列。
如图12所示,按垂直方向(如箭头方向所示)读出交织模式表680中的序列,如0、8、4、12、2、……。然后,根据读出序列交换16比特串的比特以使输入串的第0比特被交换成输出串的第0比特并且第1比特被交换成第8比特。在此之后,输出交织的比特串。
以下从第七个实施例开始描述用于实现本发明第二个目的的实施例。
图13-图15示出了本发明的第七实施例。
在图13和图14中,示出了对16比特串670进行交织的例子。就是说,提供了交织模式表A和交织模式表B,它们都描述了4比特串的变换,并由两个4比特交织模式表产生用于16(4×4)比特串变换的交织模式表680。然后,用产生的16比特串交织模式表进行输入16比特串670的交织。
在图13中,准备的表A定义了至交织模式表C的写入方向而表B定义了与写入方向垂直的方向。当进行L=16比特的交织时,通过使用交织模式表A和B产生描述L(≤LA×LB)比特交织模式的交织模式表C,其中交织模式表A描述LA=4比特交织模式而交织模式表B描述LB=4比特交织模式(图13中的①)。
根据图13示出的例子,用于产生交织模式表C中C[i]的操作为其中C[i]为比特串C的第i个比特,C[i]=A[i%LA]+LA×B[i/LA],其中LA=4,并且i是表明比特串的一比特位置的地址,并且为一个大于或等于0的整数。以下表明串中一个比特位置的地址由i,j,k之一来表示,它们每一个都是大于等于0的一个整数。A[i]表示表A中第i个元素。“%”表示为模运算符,并且“i%LA”表示i被LA除的余数。“i/LA”表示i被LA除之后所得结果中的整数部分(其中分数部分被省略)。以下这些操作符的含义相同。表A定义表C的水平方向中的模式,而表B定义垂直方向中的模式。
通过按水平方向将结果写入交织模式表C 680中,产生交织模式表C 680。
在交织时,按垂直方向依次读出表C中的比特,并按比特进行输入串的交织(图13中的②)。就是说,根据存储在交织模式表C 680中的序列进行串中比特序列的置换。
在这种情况下,没有必要向下读数据,也没有必要向右写数据。替代地,这些方向可以与图中示出的方向相反。例如,可以向上读数据。
此外,在图13中,尽管提到准备的表A定义了至交织模式表C的书写方向,而表B定义了与书写方向垂直的方向,但可以交换表A和表B之间的关系。此外,交织模式表A和B可以是相同模式或不同模式。
如果表A和表B相同,有必要只使用表中的一个。例如,C[i]可以表示为C[i]=A[i%LA]+LA×A[i/LA],或C[i]=B[i%LB]+LB×B[i/LB]。这些特点与图13-图21中的相同图14示出了可以获得与图13中的结果相同的另一个运算。可以由以下运算产生图14中的交织模式C 680C[i]=LA×B[i%LB]+A[i/LB](由14中的①),它不同于图13中所示的例子。在这种情况下,表A定义了表C水平方向的模式,表B定义了表C垂直方向的模式。按垂直方向将结果写入表C中。
可以交织表A和表B之间的关系。再有,交织模式表A和B的模式可以相同也可以不同。如果表A和表B相同,有必要只使用一个表。
在交织时,按相同(垂直)方向依次读出表C中的比特,从而按比特对输入串进行交织(图14中的②)。
于是,可以改变对于交织表C 680的运算。此外,读出方向不必与写入方向相同,并且这两个方向不必与图14中所示的方向相同。就是说,可以自由地设置写入方向和读出方向。
图15示出了代替图13或图14中示出的16比特交织的15比特交织的例子。
如图15所示,当对L=15比特输入数据进行交织时,通过使用交织模式表A和交织模式表B产生描述L(≤LA×LB)比特交织模式的交织模式表C 700,其中表A具有LA=4比特交织模式而表B具有LB=4比特交织模式(如图15中的①)。与图13示出的方式相同,用于产生交织模式表C 700的方法是C[i]=A[i%LA]+LA×B[i/LA]其中LA=4。表A定义表C的水平方向的模式而表B定义垂直方向的模式。
按水平方向将结果写入表C。由于表C具有16比特交织模式,通过按垂直方向依次读出表C并在读出编号时,舍弃大于等于15的编号来进行15比特交织。(图15中的②)如图15所示,通过跳过等于或大于15的数,可以获得15比特交织。再者,通过在向表C中写数据时禁止写入大于等于15的数据可以产生描述15比特交织模式的表C以进行15比特交织。也就是说,如图15所示,在用表A和表B产生15(<4×4)比特交织模式表C时,其中表A存储4比特交织模式而表B存储4比特交织模式,可以通过不写入大于14(=15-1)的数产生15比特交织模式表C。
根据第七实施例,例如从一个交织模式表(在A=B时),或从两个交织模式表,可以产生一个具有较大交织长度的交织模式表。于是,由多个较小交织长度模式可以表示一定交织长度的模式。这样,可以降低用于固定长度模式的存储量。
例如,在传统的使用1000比特交织模式表的情况下,需要用于1000比特交织模式表的存储器。根据所述第七实施例,通过用20比特交织模式表和50比特交织模式表来表示1000比特交织模式表,可以将存储量降低到70(20+50)比特。
此外,通过用20比特交织模式表和50比特交织模式表来表示900比特交织模式表,无须扩大固定长度交织模式表就可以进行1000比特和900比特的交织。
其次,将描述第八实施例。根据本发明的第八实施例,可以获得与图13-图15示出的第七实施例相同的结果。然而,没有产生用于交织的交织模式表C,替代地,通过由表A和表B计算交织目的地可以直接得到它。图16和图17示出了第八实施例。
在图16中,示出了可以得到与图13相同的结果的16比特输入串的例子。
如图16所示,与图13不同,没有产生交织模式表C。由表A和表B计算交换输入串中每一比特的交织目的地,其中表A存储4比特交织模式而表B存储4比特交织模式,于是,根据计算结果交织输入串(由图16中的②)。
用于由表A和B中直接计算对应于输入串中第i个元素的第j个元素这样一个交织目的地的公式为C[i]=4B[i%4]+A[i/4]可以交换表A和表B的关系。并且,交织模式表A和B可以相同也可以是不相同模式。如果表A和表B相同,有必要只使用一个表,即j=4A[i%4]+A[i/4]=4B[i%4]+B[i/4]在图17中,使用交织模式等式(710,720),用于定义交织,以替代准备交织模式表A和B。此外,通过计算交织模式等式可以进行交织(图17中的①和②)。
等式中的每个等式a710和b720代表4比特交织模式,将它们表示为ja=2(ia%2)+(ia/2)=fa(ia)其中0≤ia≤4jb=2(ib%2)+(ib/2)=fb(ib)其中0≤ib≤4通过依次使用等式a和b来计算为对应于16比特输入串中第i个元素的第j个元素的交织目的地,它与以下计算相同j=4fa(i%4)+fb(i/4)=8((i%4)%2)+4((i%4)/2)+2((i/4)%2)+((i/4)/2),从而进行交织。
等式a和b的关系可以交换。此外,交织模式等式a和b可以相同或不同。如果A和B相同,有必要只使用一个等式。
在图17示出的交织中,还可以在通过从准备的4比特等中计算16比特交织模式并将计算结果写入表中而产生交织模式表之后来进行交织,这与由公式而不是模式表来定义交织模式的第七实施例相同。
根据第八实施例,由一个交织模式表(当A=B)或两个交织模式表,可以进行较大交织长度的交织。于是,其特征在于不需要产生另一个交织模式表。
此外,从一个交织模式等式(当a=b),或从两个交织模式等式,可以进行较大交织长度的交织。在这种情况下,没有必要产生另一个交织模式表。然而,也可以产生一个交织模式表。
以下将描述第九实施例。第九实施例是重复多次应用第七实施例或第八实施例中的过程的一个例子。以下参照图18和图22描述第九实施例。
图18示出了由两个2比特交织模式表A和B和一个4比特交织模式表C通过重复多次应用图13中第七实施例中的处理过程来产生一个16比特交织模式表的例子。
如图18所示,当对L=16比特输入数据进行交织时,通过使用具有LA=2比特交织模式的交织模式表A和具有LB=2比特交织模式的交织模式表B可以产生具有L=4(≤LA×LB)比特交织模式的交织模式表D 730(图18中的①)。
例如,用于产生交织模式表D 730的运算是D[i]=2A[i%2]+B[i/2],(当表A定义表D的写入方向而表B定义表D的与写入方向垂直的方向)。
再有,通过参照产生的交织模式表D和具有LD=4比特交织模式的交织模式表C可以产生具有LE=16(≤LC×LD)比特交织模式的交织模式表E 740(图18中的②)。
例如,用于产生交织模式表E 740的运算为E[i]=4D[i%4]+C[i/2],(在表D定义表E的水平方向,而表C定义表E的垂直方向的情况下)。
通过引用由此产生的交织模式表E,可以进行16比特串的交织(图18中的③)。
可以交换表A和表B的关系。此外,交织模式表A和B可以相同也可以是不同模式。如果A和B相同,有必要只使用一个表。于是,C[i]=A[i%4]+4A[i/4]
=B[i%4]+4B[i/4]。
此外,读出方向不必和写入方向相同,并且两方向不必和图18示出的方向相同。
图19示出了用两个2比特交织模式表A和B以及一个4比特交织模式表C通过重复多次组合图16的第八实施例中的处理过程来实现16比特交织的例子。
如图19所示,通过引用表A和B可以计算为对应于4比特串中第i(0≤id<4)比特的第j比特交换目的地。例如,在表A定义表C的写入方向而表B定义与表C的写入方向垂直的方向的情况下,计算是jd=2A[id%2]+B[id/2]。
其次,通过引用上述运算结果和交织模式表C可以计算对应于输入串750的16比特中第i(0≤i<16)比特的第j比特的交换目的地(如图19中②)。例如,计算是j=4×jd+4[i/4]其中jd是jd=i%4的交换目的地。
最后,通过在上述运算结果的基础上,交换16比特串的比特序列可以进行交织(图19中的③)。
可以交换表A和表B之间的关系。此外,交织模式表A和B可以相同也可以为不同模式。如果A和B相同,有必要只使用一个表。在这种情况下,可应用C[i]=A[i%4]+4A[i/4]=B[i%4]+4B[i/4]此外,可以通过将计算结果存储在表中来产生交织模式表。
图20示出了重复图17中的处理过程的例子,图17示出了由等式定义交织的第八实施例。
如图20所示,首先,由等式a(ja=ia)和等式b(jb=ib)产生用于描述4比特交织模式的等式d,它为jd=2(id%2)+(id/2),其中每个等式描述了一个2比特交织模式(图20中的①)。
其此,由4比特等式c和等式d计算16比特交织等式e,它为
je=8((ie%4)%2)+4((ie%4)/2)+2((ie/4)%2)+((ie/4)/2),(图20中的②)。然后用计算出的等式e进行交织(图20中的③)。
还可以通过将上述计算结果写入表中来产生交织模式表之后进行交织。
图21示出了用等式和表定义交织并在交织的基础上产生交织模式表来进行交织的例子。
如图21所示,由一个描述2比特交织模式的等式和一个2比特交织模式表B来产生一个4比特交织等式d(图21中的①),它为jd=2(id%2)+(id/2)。
其次,由等式d的以下等式和一个4比特交织模式表C可以产生一个16比特交织模式表E 760(图21中的②),等式为E[i]=4(2(i%4)%2)+((i%4)/2)+B[i/4]。然后,引用表E 760进行交织(图21中的③)。
图22示出了从多个4比特表中产生16比特交织模式表的例子,它是图13的变型。
如图22所示,通过多个4比特表A0-A3和一个4比特表B可由以下等式产生16比特交织模式表C 770(图22中的①)C[i]=Ai/4[i%4]+4B[i/4](在表A0-A3定义了表C的写入方向而表B定义了与表C的写入方向垂直的方向的情况下)。然后通过引用表C进行交织(图22中的②)。
可以交换表A0-A3和B的关系。此外,交织模式表A0-A3和B可以相同也可以为不同模式。读入方向不一定是向下而写入方向也不定向右。
以下,将描述第十实施例。第十实施例示出了通过交织模式描述语言来定义交织的方法,其中对交织模式描述语言进行识别以产生交织模式或如上述第七-第九实施例中描述的进行交织。
图23和图26示出了交织模式描述语言的定义。图27-图31示出了识别由图23-图26定义的交织模式描述语言描述的公式和根据上述第七-第九实施例中的一个方法和方法组合来产生交织模式以进行交织的例子。图32解释了的交织模式的自动产生。图33示出了用于解释确定交织模式的流程的流程图。
首先,参照图23-26描述交织模式描述语言。
图23描述了交织模式描述语言L[N×M]的定义1。L[N×M]意味着N×M块交织器。该交织器意味着用N×M块交织器对L比特串进行交织。图23示出由L[N×M]块交织器进行L比特串交织作为例子。
图24描述了R{A}的定义2。R{A}意味着按反向再安排A比特。图24示出R{6}作为一个例子,其中按反向重新安排6比特串。
图25描述了L[N1×M1,N2×M2…]的定义3。L[N1×M1,N2×M2…]意味着由相应的交织器对多个串(每个串的长度为L比特)进行交织。图25示出6[3×2,2×3]作为一个例子,其中对两个6比特串的每一个进行交织。
图26描述了L[N1[N2×M2]×M1]定义4。L[N1×[N2×M2]×M1]意味着在由N1×M1块交织器对L比特串进行交织之后,由N2×M2交织器对每一个M1列数组(N1比特)进行交织。
L[N1×M1[N2×M2]]意味着在由N1×M1块交织器进行L比特串的交织之后,由N2×M2交织器进行每一个N1行数组(M1比特)的交织。
图26示出16[4[2×2]×4]作为例子,其中将16比特串780写入4×4块交织器A 790并且读每个列数组和由4个2×2交织器B-E中的一个进行交织。使用一个交织器F 800以便由交织器B-E一起得到结果。
可以使用上述交织描述语言以产生交织模式并通过引用交织模式来对输入串进行交织。
在以下将描述由上述交织模式描述语言进行交织的实施例。
图27示出由交织模式描述语言实现描述为16[4[2×2]×4[2×2]]的交织模式的产生的例子。
16[4[2×2]×4[2×2]]的交织模式的含义为(a)为4×4块交织器的第一阶段交织器进行16比特交织。
(b)由2×2交织器对第一阶段交织器的每一行数组(4比特)进行交织。
(c)由2×2交织器对第一阶段交织器的每一列数组(4比特)进行交织。
图27描述如何实现上述过程。如图27所示,将一个16比特输入串写入4×4块交织器A 820(图27中的①)。其次,由交织器A820读每一行数据并由2×2交织器B-E中的一个进行交织(图27中的②)。将交织数据写入交织器F 830(图27中的③)。然后,读每一列数据并且一个2×2交织器G-J进行交织(图27中的④)。
最后,通过将交织数据写入表840产生描述的交织模式(图27中的⑤)。
图28示出了由上述交织方法实现表示为16[4[2×2]×4[2×2]]的例子,与图27所示的描述相同。在图28中,由于在对图27已描述过,所以省略对用于产生交织模式的①-⑤的描述。此后,引用产生的交织模式表850可以实现交织(图28中的⑥)。
图29和图30示出了识别由上述交织模式描述语言表示的等式并且根据上述第七-第九实施例的方法或方法组合产生交织模式以进行交织的例子。
图29示出由重复应用图13示出的交织处理过程来进行描述为16[4[2×2]×4[2×2]]的交织处理过程和交织模式的产生。
为了使用由交织模式描述语言描述的交织模式,根据图29,首先,用交织模式表A-D产生交织模式表E和F(①和②)。其次,通过用交织模式表E和F进行计算产生交织模式表G 860(图29中的③)。当需要进行交织时,用交织模式表G 860进行交织(图29中的④)。
图30示出由重复应用图17中的交织处理过程,进行描述为16[4[2×2]×4[2×2]]的交织处理过程和交织模式的产生。
如图30所示,由2比特交织模式等式a-d产生4比特交织模式等式e和f(图30中的①和②)。其次,由4比特交织模式等式e和f产生16比特交织模式等式g(图30中的④和③)并用交织模式等式g进行交织(图30中的⑤)。
在存储了产生的交织模式之后,可以仅通过读模式表无须在下一次交织时再产生交织模式来进行相同的交织处理过程。图31示出这样效果的一个例子。
图31示出假定已存储了4比特交织模式4[2×2]所需的描述为16[4[2×2]×4[2×2]]的交织的情况。
例如,图31示出的情况采用与图29相同的方法。如图31所示,系统具有交织模式4[2×2]作为交织模式表A和B。于是,通过引用4比特交织模式(图31中的①)而无须进行对应于4[2×2]的处理(图29中的①和②)可以产生16比特交织模式。然后通过引用产生的交织模式表C可以进行交织(图31中的②)。
于是由存储的4[2×2]交织器可以产生16[4[2×2]×4[2×2]]。
用于实现由图27-图31示出的交织模式描述语言描述的交织模式的方法不限于在此示出的方法,例如可以对这些方法进行组合。于是,为了得到交织模式,可以使用交织模式表或交织模式等式。
在以下,由图32所示的流程图描述产生上述交织模式的方法。
如图32所示,当给定交织长度为L比特的数据时,在步骤102确定等于或大于L比特的第一阶段交织模式N1×M1。其次,在步骤104,确定多个第二阶段交织模式,每一个对应于第一阶段交织器的行数组和列数组。然后在步骤106,按与步骤104相同的方式确定对应于每个第二阶段交织器的第三阶段交织器的交织模式。在步骤108,重复上述处理过程直到不可能再进行交织或到达任何阶段,最后在步骤110,产生由交织模式描述语言描述的交织模式。
作为确定每一阶段交织器的交织模式的方法,可以采用利用因子、引用列表、使用接近每阶段交织长度的平方根的实数;并选择奇数或素数作为每一阶段的N×M交织器的N或M。
上述方法将称为多阶段交织方法。
图33为在产生的交织模式中选择切实可行的交织模式的流程。
如图33所示,如参照图32描述的,在步骤204产生对应于交织长度的交织模式,并在步骤206测试产生的交织模式。
如果测试不成功,改变图32中示出的每一阶段交织器的模式的全部或部分并在步骤204再产生交织模式。重复上述过程直到测试成功以确定最终产生的交织模式。
测试的条目可以是对突发性错误的阻力强度或交织比特的随机强度等。具体地说,如果假定将交织器用作快速代码交织器,可以使用代码权重测试、代码权重测试假设网格终结等。
根据上述描述,很明显本发明的交织方法可应用于任何交织单元,如除比特之外的符号交织单元。此外,随时间可以改变交织串的长度。
根据在第七-第十实施例中描述的本发明用于产生交织模式的方法,可以减小存储器容量并且可以灵活地处理不针对一个相应交织模式的交织长度。这样,当不使用本发明的方法对1000比特串进行交织时,必须有一个包括用于1000比特交织模式的表。于是,交织长度越长,存储交织模式表的存储量越大,其中交织长度意味诸如比特、符号等的交织单元的总数。此外,不用本发明,当交织长度改变时,需要准备足够多的交织模式以使每个交织模式对应于一个变化的交织长度。这样,交织长度的种类越多,用于对应于每一交织长度存储交织模式的存储量越大。例如,对4种长度的10、100、1000、10000比特交织器,必须用于10([log(10-1)]+1+100([log(100-1)]+1)+1000([log(1000-1)]+1)+10000([log(10000-1)]+1)比特的存储量以存储每个交织模式,其中[logx]表示采用以2为底的x对数并且舍弃小数部分,于是[log(x-1)]+1表示在二进制表示中整数x的数字数。根据本发明,将不存在这样的问题。此外,根据本发明,可以由交织模式描述语言产生如描述的交织模式。可以检验产生的交织模式的特性,并且可以在检测的特性不好时自动增加一个可以再生好特性交织模式的系统。
其次,将描述用于实现本发明第三个目的的实施例。以下将描述用于快速编码器、移动通信中的发射机-接收机的传输系统中的交织方法。在描述实施例之前,将描述快速编码器和移动通信中的发射机-接收机的配置。
图34(a)示出了快速编码器的配置。形成的快速编码器包括递归系统性卷积编码器(RSC12,RSC13),其中图34(b)示出了递归系统性卷积编码器。如图34(a)所示,处理输入数据d并将其作为输出数据X1-X3输出。将交织器11放在递归系统卷积编码器(RSC)13之前以减小冗余比特X1和X2之间的相互依赖关系。此外,一个快速译码器包括两个译码器,一个交织器和一个实施交织器的反向处理的去交织器。
图35示出移动通信中CDMA的收-发信机等的配置的部分情况。在发送端,在信道编码器21进行信道编码之后,信道交织器22进行交织处理。然后,SS发射机23对调制的信号和导频符号进行时分多路复用并进行扩频调制。在接收端,RAKE接收机25进行去扩展,然后使用导频符号进行RAKE综合。信道去交织器26进行去交织并且信道译码器27进行译码。如果使用快速代码用于发送系统,使用快速编码器代替信道编码器21,并且使用快速译码器代替信道译码器27。
在这些装置中使用的交织器表例如是图12中描述的。
以下参照图36和图37描述信道去交织器26中进行的去交织的例子。
图36(a)示出用表A(LA=3比特)和表B进行12比特的交织。用于产生交织模式表C[i](比特序列C的第i比特)的运算为C[i]=LB×A[i%LA]+B[i/LA]其中LA=3并且LB=4。此外,表A定义了表C的垂直方向中的模式,而表B定义了表C的水平方向中的模式。通过以上运算,可以产生交织模式表C,并通过引用交织模式表C由输入数据获得输出数据。
图36(b)示出了是上述过程的反向过程的去交织处理。通过互换表A和表B并进行相同的运算可以获得去交织模式表C 870。如果输入数据是0、8、4、2…、7(它是上述交织过程的输出),则输出为0、1、2…11(它是上述交织过程的输入)。
图37(a)示出了在LA×LB>L情况下的交织处理的例子,而图37(b)示出了去交织处理。在图37(a)中,不读出大于或等于L的值,或在生成表时不写入该值。图37(c)的运算公式为C[i]=LB×A[i%LA]+B[i/LA]其中满足以下规则(由C语言表示)。
<pre listing-type="program-listing"><![CDATA[=0for(j=0,J<(LA×LB-L),J++){if C[i]>=LB×A[(L-1-j)%LA] +B[(L-1-j)/LA]++;}]]></pre>可将去交织方法应用于上述的交织方法,还可以应用于以下描述的交织方法。
以下,将描述第十一实施例。在以下描述中,用于描述交织模式的标记是在图23-图25中使用的。
以下参照图38-图45描述产生适合于快速代码的交织模式的方法。
图38是用于解释产生适合于快速代码的具有L比特交织长度的交织模式的方法的流程图。
从图38中示出的第一阶段(S302)到较高阶段(S306),由在图39中详细描述的判定过程确定交织长度为L的用于快速代码的交织模式。在每个判定过程分枝的所有处理都完成时确定交织模式,然后,由确定的最终结果产生交织模式(S308),以后,检验产生的交织模式并可以获得适合快速代码的交织长度为L的交织模式。
现在描述交织模式的确定过程。图39详细地示出了交织模式的确定过程。图40是一个表,示出了用于交织模式确定过程的预定交织模式(PIP)的清单。预定交织模式清单是识别为适合快速代码的交织模式的列表。
在图38的第一阶段(S302)中,必须确定由L≤N1×M1(上标表示阶段号)行和列表示的交织模式。在第十一实施例中,N1固定为7。如果L被7除的值是一个整数的话M1就是该值,并且在其它情况下,M1是大于该值的最小整数。对应于N1的预定交织模式是示于图40中T7的R{7[3×3[2×2]]}。
必须将7行(M11-M71)的每一行表示为一行和一列以确定第一阶段的交织模式的行和列。于是,在第二阶段,需要确定在对于每一行的7个分枝的每一分枝中的行和列(参照图39)。为了确定行和列,如图38中示出的第二阶段(S304),由“7、13、17、29、37、43、59(L>3000比特)”或“5、7、11、13、17、37、43(3000>L≥301比特)”(它们示出在图38的PIP清单中)选择每一列MY2(Y=1,2……7)的数。这样确定行NY2数如果M1被选出的数MY2除,得到的值为整数,则NY2为该值,否则NY2是大于该值的最小整数。如果在图40的表中定义了对应于NY2的IP(交织模式),完成对分枝的操作。如果没有,处理转到下一阶段(S306)。
在下一处理(S306)中,执行一行和一列的确定处理直到未确定的行都被确定了。在该处理(S306)中,按如下和图39中示出的处理每一分枝。将列MYz(z≥3)的数确定为小于或等于前一阶段未确定的行NY(z-1)数的平方根,并且是图40中PIP(除4和6之外)中最大的数。排除4和6的原因是由经验已知奇数或较大数适合于快速代码的列数。这样确定行NYz的数,如果NY(z-1)被上述确定的MY2除得到的值是一个整数,NYz就为该值,否则NYz是大于该值的最小整数。如果为图40中的行数NYz确定了PIP,就完成了分枝处理。继续该处理直到每一阶段的每个分支都完成。
此外,除了图40示出的交织模式,可以确定对应于其它数的交织模式。在这种情况下,由图38示出的较高阶段的方法产生对应于其它数的交织模式。在图40中确定的交织模式越多,完成处理的速度就越快。即使当图40示出的交织模式数以这种方式增加,仍从图40示出的“2、3、5、7、8、9、11、13、17、20、29、37、43、47、53、59、61”中选择MYz(z≥3)。
在定义了所有行和列的交织模式之后,由定义的行和列交织器中产生交织模式(S308)。以下参照图41-图44详细地描述这种处理。
图41示出了由上述多阶段交织方法产生交织模式的处理过程。由图中可以看出,从在较低阶段对应于行和列的交织模式(IP)中确定对应于较高阶段行和列的交织模式(IP),它是图39中每个分枝的反向处理过程。于是最终产生L比特交织模式(IP)。
以下参照图42-图44详细地描述由行和列交织模式产生交织模式(IP)的方式。图42解释了产生交织模式的处理过程的一个阶段。图43为图42示出的产生过程的一个例子。图44解释了产生交织模式的处理过程的最后阶段。
图42示出如何使用对应于在较低阶段确定的列的NY(z+1)比特交织模式和对应于在较低阶段确定的行的MY(z+1)比特交织模式产生每一分枝的NYz(=NY(z+1)×MY(z+1)比特交织模式。
在图42中,通过对应于列的NY(z+1)比特交织模式(IP)和对应于行的MY(z+1)比特交织模式(IP)的运算,可以产生每一分枝中的NYz比特的模式C′[i]。C′[i]表示模式C′的第i个元素。操作运算为C′[i]=MY(z+1)A[i%NY(z+1)]+B[i/NY(z+1)],其中A代表对应于列的NY(z+1)的交织模式,B代表对应于行MY(z+1)的交织模式,“%”是模运算符,它取除运算的余数,而“/”表示除运算的整数部分(分数部分被舍弃)。
将通过运算得出的模式C′写入在垂直方向上容量为垂直NY(z+1)×水平MY(z+1)的存储器中。于是,通过在垂直方向上读存储器可以获得NYz比特交织模式C。同时,通过在NYz小于NY(z+1)×MY(z+1)时,不用将大于等于NYz的数写入存储器,可以获得交织模式C。此外,也可以通过将所有数据写入存储器并且在读时跳过大于NYz的数获得交织模式。
图43示出这种处理的具体例子。在图43示出的例子中,从4比特交织模式(IP)A和4比特交织模式(IP)B中可以获得小于4×4=16比特的15比特交织模式(IP)C的例子。
如图43所示,通过对4比特交织模式A={0,2,1,3}和4比特交织模式B={0,2,1,3}的运算可以获得16比特交织模式C′。然后,在垂直方向上依次将模式写入4×4存储器。运算为C′[i]=4A[i%4]+B[i/4]这时,由运算获得的15不写入存储器中。按与写入方向相同的方向从存储器中读出数据就可以获得15比特交织模式C。
于是,可以获得对应于从最后阶段到第二阶段的每一行和每一列的交织模式(IP),然后,获得对应于第一阶段的第一行至第七行的交织模式。最后由第一行至第七行的交织模式中获得L比特交织模式。
图44解释了如何从第一阶段的多个行中产生L比特交织模式。如图44所示,从对应于列的N比特交织模式(IP)和对应于每行的N个交织模式中产生L比特模式C。
在图44中,假设N为A(N是列),M0-M(n-1)为B0-B(n-1)(M0-M(n-1)为行),运算表示为C[i]=MA[i%]+Bi%N[i/N]它不同于图43中的运算且B改变了。通过在垂直方向上依次写入存储器中并在垂直方向上依次读出可以产生L比特交织模式C。当L<M×N时的处理与参照图43描述的相同。
如上所述,可以产生L比特长度的交织模式(图38中的S308)。在图38中,接着检验产生的交织模式(S310)。如果根据检验结果,拒绝产生的交织模式,可以通过将N变成7再产生表示为R(7[3×R{3}])的交织模式,并且通过比较再产生的模式和前一交织模式来选择较佳的交织模式。
以下参照图45描述产生的交织模式的检验方法。如图45所示,将交织的L比特串和未交织的L比特串相比较,如果从未交织的比特串的最后一个比特开始的30个比特中所有比特或部分比特与交织比特串的最后一个比特开始的30个比特中的比特交织,则拒绝实施这种交织的交织模式。
由图38示出的流程图获得的交织模式适于快速编译码。快速编码假定是限制长度为3的快速代码。也就是,有两个延时元素D,如(16)和(17)(限制长度-1)。当假定快速代码的限制长度为4,可以将图38中第一阶段的N1设置为8,由R{8[4[2×2]×2]}表示。即,M1变成L/8并且图41示出的分枝数由7增加到8。
以下描述第十二实施例。
以下参照图46和图49描述产生适合于传输线路交织器的交织模式的方法。
图46解释了产生适合于传输系统的交织模式的方法。
在图46示出从第一阶段(S402)到较高阶段(S406),由参照图47详细描述的判定过程来确定用于交织长度为L比特的传输线路交织器的交织模式。当每一判断过程分枝的所有处理都完成时,就确定了交织模式,然后从确定的最终结果产生交织模式(S408)。
现在,将描述交织模式的判定过程。图47详细地示出交织模式的判定过程。图48示出了用于交织模式的判定过程的预定交织模式(PIP)的列表。图48中的预定交织模式列表是识别为适合传输系统的交织模式的清单。
在图46的第一阶段(S402)中,必须确定由L≤N1×M1(上标表示阶段号)的行和列表示的交织模式。为第一阶段列数的M1是根据一帧的时隙数(交织长度)从16、32、64、128中选出的。为第一阶段行数的N1被确定为大于L/M1的最小整数。
在第二阶段(S404),从相应于图48示出的预定交织模式的列表的数字中选择M2(除“13”和“17”),它是一个能除以N1并且是小于等于N1的平方根的最大整数的数。如果该整数小于
(N1/4的平方根)或在PIP清单中没有可除尽的候选者,在PIP表中选择小于或等于N1的平方根的最大整数(除“13”和“17)。排除13和17的原因是由经验得知偶数适合发送系统。N2是大于或等于N1/M2的最小整数。在第二阶段(S404),如果在图48的PIP列表中定义了N2,就确定了所有交织模式,从而用确定的交织模式进行产生L比特交织模式的处理(S408)。如果在PIP列表中没有确定N2,则处理转到下一阶段(S406)。(参见图47)在该阶段(S406),类似于第二阶段,从对应于图48中示出的预定交织模式的数字中选择Mz(z表示阶段号),它为一个除以N1并且是小于等于N1的平方根的最大整数(除了“13”和“17”)。如果该整数小于
(N1/4的平方根)。或在PIP列表中没有一个可除尽的候选者,则在PIP列表中选择小于或等于N1的平方根的最大整数(除“13”和“17”)。Nz是大于等于前一阶段N(z-1)被所选Mz除的最小数。这样的处理一直执行直到在图48的PIP中定义Nz(参见图47)。如果定义了,由于定义了所有交织模式,所以用确定的交织模式进行产生L比特交织模式的处理(S408)。
此外,除了图48示出的交织模式,可以定义对应于其它数的交织模式。在这种情况下,用与图46示出的高阶段中的方式相同的方式产生对应于其它数的交织模式。在图48中定义的交织模式越多,该过程就越快。即使当图48示出的交织模式数增加了,也从图48示出的“2、3、4、5、6、7、8、9、10、11、16、20、32、64、128”中选择MYz(z≥2)。
以下参照示出由上述多阶段交织方法产生交织模式的详细过程的图49,描述产生L比特交织模式(S408)的处理过程。
在图49中,使用交织模式(IP)Nz和Mz,可以获得前一阶段的N(z-1)。图42和图43描述了这种获得处理,于是省略掉对其描述。通过依次实施这种处理过程,可以获得适合于发送系统的L比特交织模式。在上述描述中,使用比特长度作为交织模式长度。对于比特之外的交织单元可以使用不同表示方法。
以下将描述使用上述交织方法的交织装置,作为第十三实施例。
至今描述的交织方法都可应用于图34-图35示出的装置的交织器和去交织器。然而,不限于这些装置。本发明的多个交织方法可应用于实施交织的其它设备特别是本发明第十一和十二实施例适合于图34-图35示出的装置,即快速编码器和发送系统装置。
由于交织器和去交织器的配置相同,将只描述交织器作为例子。图50示出了用于实施交织和去交织的装置的例子。如图50所示,该交织器包括输入缓冲器30、输出缓冲器32、存储器34、和CPU 36。将输入串数据存储在输入缓冲器中,将交织的输出串数据存储在输出缓冲器中。在去交织器的情况下,将交织数据存储在输入缓冲器30中,将去交织数据(交织前的数据)存储在输出缓冲器中。可以用RAM、移位寄存器等实现输入缓冲器30和输出缓冲器32。存储器34存储上述的交织模式表和直接计算输出缓冲器32中的交织地址的程序,并且存储器34可由RAM、ROM等实现。CPU 36执行至缓冲器的输入/输出、地址计算等指令。由以可LSI等集成电路实现上述配置。
其次,将描述存储器34只存储交织模式表情况下的操作。
当将输入串数据输入到输入缓冲器30时,CPU 36参照存储器34中的交织模式表读出输出缓冲器的目的地地址并将输入串数据输出到输出缓冲器32的地址处。
当直接计算地址时,CPU 36由输入缓冲器30的输入串数据的地址的程序计算目的地地址,并输出到输出缓冲器32的地址处。
在以下将描述根据本发明的媒体作为第十四实施例。通过实施交织模式产生方法可以在计算机上自动产生交织模式并且可用作上述RAM中的模式数据,这通过图38和图46中示出的流程图来描述,并且适合于发送系统和快速代码。
这时,可以将图40和图48中定义的交织模式存储在存储装置中并且可以由程序引用。此外,可以只将表达式存储起来,在需要时产生交织模式。此外,例如图39、图41和图47、图49示出的公共过程可以用作子例程并且由其它处理过程调用。
可以由电子存储器、硬盘、磁-光盘、软盘等来实现存储本发明的程序的媒体。通过在计算机中装入存储媒体中的程序可以执行本发明的方法并且可以获得交织模式。此外,通过将存储器中的程序装入编码器/译码器和收-发信机可以形成编码器/译码器和收-发信机以自动产生优化的交织模式。于是在各种通信条件下可以实施优化的交织处理。
如上所述,通过使用本发明的产生交织模式的方法,可以产生适合于使用目的的交织模式。
本发明不限于具体描述的实施例,在不背离本发明的精神和实质情况下,可以做出许多修改和变型。
权利要求
1.一种用于输入单位长度的数据串和输出该单位长度的交织的数据串的交织方法,其特征在于第一步将所述数据串的数据写入到一个第一交织器,逐列或逐行从所述第一交织器中读出数据,并且将数据写入到多个第二交织器中;第二步从每个所述第二交织器中读出数据,并按需要将数据写入一个或多个第三交织器中,和从每个通过重复一次或多次所述第二步产生的交织器中读出数据,或从每个通过所述第一步产生的交织器中读出数据,并且输出所述的交织的数据串。
2.一种用于输入单位长度的数据串并输出该单位长度的交织数据串的交织方法,其特征在于第一步按一个方向将所述数据串写入一个第一交织器中;第二步从所述第一交织器中读出列数据或行数据,在一个方向上将所述读出的数据写入一个第二交织器,该第二交织器的大小不同于所述第一交织器,并且重复所述读出列数据或行数据以及所述逐列或逐行写入读出的数据;第三步,重复执行所述第二步,其中由所述第二步产生的多个所述第二交织器的每一个被认为是所述第一交织器,和从通过重复所述第三步或执行所述第二步产生的每个交织器中读出数据,并且输出所述交织的数据串。
3.一种用于输入单位长度数据串并输出该单位长度的交织的数据串的交织方法,其特征在于第一步在一个方向上将所述数据串写入一个第一交织器;第二步从所述第一交织器中读出列数据或行数据,在一个方向上将所述读出的数据写入一个第二交织器,该第二交织器的大小不同于所述第一交织器,并且重复所述读出列数据或行数据以及所述逐列或逐行写入读出的数据;第三步从所述第二步产生的每个交织器中逐列或逐行读出数据,并将所述数据写入一个大小于所述第一交织器相同的交织器中,和从所述第三步产生的交织器中读出数据,并输出所述的交织的数据串。
4.根据权利要求3的交织方法,其特征在于第四步执行所述第二步和所述第三步,其中将由所述第三步产生的所述交织器看作为所述第一交织器,从通过重复一次或多次所述第四步产生的交织器中读出数据,并且输出所述交织的数据串。
5.一种用于输入单位长度的数据串并输出所述单位长度的交织的数据串的交织方法,其特征在于事先在表中存储多个交织模式;通过利用所述表对所述输入数据串应用一个所述交织模式并且输出数据,和重复将一个所述交织模式应用于所述输出数据的步骤,并且输出所述交织的数据串。
6.根据权利要求5的交织方法,其特征在于根据权利要求1-4任何一项权利要求的交织方法将交织模式存储在所述表中。
7.一种用于对单位长度的输入数据串进行交织并输出所述单位长度的交织的数据串的产生交织模式的交织模式描述的方法,其特征在于使用一个第一单位的交织模式描述和一个第二单位的交织模式描述产生一个第三单位的所述交织模式描述。
8.一种用于产生交织模式描述的方法,其特征在于多次使用权利要求7中的用于产生交织模式描述的方法,产生所述预定长度单位的交织模式描述。
9.根据权利要求7或8的方法,其特征在于所述交织模式描述是交织模式表或是描述交织模式的交织模式等式。
10.一种用于输入单位长度的数据串和输出所述单位长度的交织的数据串的方法,其特征在于使用一个第一单位的交织模式描述和一个第二单位的交织模式描述产生一个第三单位的交织模式描述,和用所述产生的交织模式描述进行交织。
11.一种用于输入单位长度的数据串和输出该单位长度的交织数据串的交织方法,其特征在于用一个第一单位的交织模式描述和一个第二单位的交织模式描述计算在一个第三单位的串中的交织目的地,和用计算结果进行交织。
12.一种交织方法,其特征在于使用由所述权利要求7或8的方法产生的交织模式描述产生一个第一单位的交织模式描述和一个第二单位的交织模式描述,通过对所述第一单位的交织模式描述和所述第二单位的交织模式描述的计算对一个第三单位的数据串进行交织。
13.根据权利要求10-12任何一项权利要求中所述的交织方法,其特征在于所述交织模式描述是交织模式表或者是用于描述交织模式的交织模式等式。
14.一种用于产生交织模式的交织模式描述以对单位长度的输入数据串进行交织并输出该单位长度的交织的数据串的方法,其特征在于解释定义交织模式的交织模式描述语言,和使用权利要求9中所述的方法,在所述解释的基础上产生交织模式描述。
15.根据权利要求14的方法,其特征在于,如果存储了对应于所述交织模式描述语言的一部分的交织模式描述,则在生成交织模式时通过引用所存储的交织模式描述,无须进行对应于所述交织模式描述语言的所述部分的处理就可以产生所述交织模式描述。
16.一种交织方法,其特征在于解释定义交织模式的交织模式描述语言,和由权利要求13中的所述交织方法根据所述解释进行交织。
17.根据权利要求16的交织方法,其特征在于,如果存储了对应于所述交织模式描述语言的一部分的交织模式描述,则在进行交织时通过引用所存储的交织模式,无须进行对应于所述交织模式描述的所述部分的处理就可以产生所述交织模式描述。
18.一种用于生成交织模式的交织模式描述以对单位长度的输入数据串进行交织并输出该单位长度的交织的数据串的方法,其特征在于在给定单位长度时,确定第一阶段的交织模式描述,和通过重复执行确定对应于所述第一阶段之后的一个阶段的列和行交织器的交织模式的处理过程直至到达任何阶段或直至不能进行交织来产生交织模式描述。
19.一种用于生成交织模式的交织模式描述以对单位长度的输入数据串进行交织并输出该单位长度的交织的数据串的方法,其特征在于检验产生的交织模式描述;如果所述检验结果不成功,在改变全部和部分参数之后再产生交织模式描述,和重复所述检验和所述产生过程直到所述检验结果为成功,以产生通过所述检验的交织模式描述。
20.根据权利要求18或19的方法,其特征在于所述产生的交织模式描述是交织模式表,或者是交织模式等式,或者是交织模式描述语言。
21.一种用于产生交织模式的交织模式描述以对单位长度的输入数据串进行交织并输出该单位长度的交织的数据串的方法,其特征在于确定步骤当给定单位长度时,使用适合于预定应用目标的交织模式列表确定对应于所述单位长度的块交织器的行数和列数并且从所确定的行数和列数中定义列数和行数,和由通过重复所述步骤直到所定义的列数或行数定义在所述交织模式列表所产生的交织模式中产生所述单位长度的交织模式。
22.根据权利要求21的方法,其特征在于第一步该步骤是第一阶段的处理过程,确定对应于由一预定数目给定的单位长度的块交织器的行数和列数,假定对应于所述预定数目的交织模式为一预定交织模式,并且通过使用所述确定的列数定义行数或者通过使用所述确定的行数定义列数;第二步通过使用适合于预定应用目标的交织模式列表确定对应于所述定义的行数或者所述定义的列数的块交织器的行数或列数,并且由所述确定的行数定义列数或由所确定的列数定义行数;第三步重复所述第二步直到对应于行数或列数的交织模式存在于所述预定的交织模式列表中;多次执行所述第三步,次数等于对应于在所述第一步中的所述预定交织模式的行数或列数;和从对应于在最后阶段中产生的行和列的交织模式中依次产生对应于前一阶段的行或列的交织模式。
23.根据权利要求21或22的方法,其特征在于检验所述产生的所述单位长度的交织模式并根据检验结果再产生所述单位长度的交织模式。
24.根据权利要求22或23的方法,其特征在于所述应用目标是快速代码并且所述第一阶段的行数为7。
25.根据权利要求22或23的方法,其特征在于所述应用目标是传输并且所述第一阶段的列数是一帧的隙数。
26.一种用于输入单位长度的数据串并且输出该单位长度的交织的数据串的交织装置,其特征在于预先在表中存储一个或多个交织模式的装置;通过应用所述多个交织模式中的一个输出数据的装置,和在必要时通过再应用所述多个交织模式中的一个输出所述输出数据的装置。
27.根据权利要求26的交织装置,其特征在于所述表存储由权利要求1-4任何一项权利要求的所述交织方法产生的交织模式。
28.根据权利要求26的交织装置,其特征在于通过权利要求21的交织模式产生方法来产生所述的交织模式。
29.根据权利要求26-28任何一项权利要求的交织装置,其特征在于计算输入数据串的交织目的地,并在所述计算的基础上代替使用交织模式进行交织并输出数据。
30.一种用于存储描述和产生交织方法中的交织模式的程序的计算可读媒体,以输入单位长度的数据串并输出该单位长度的交织的串,所述程序的特征在于确定步骤当给定单位长度时,使用适合于预定应用目标的交织模式列表确定对应于所述单位长度的块交织器的行数和列数并且从所确定的行数和列数中定义列数和行数,和由通过重复所述步骤直到所定义的列数或行数定义在所述交织模式列表所产生的交织模式中产生所述单位长度的交织模式。
31.根据权利要求30的用于存储产生交织模式的程序的计算机可读媒体,所述程序的特征在于第一步该步骤是第一阶段的处理过程,确定对应于由一预定数目给定的单位长度的块交织器的行数和列数,假定对应于所述预定数目的交织模式为一预定交织模式,并且通过使用所述确定的列数定义行数或者通过使用所述确定的行数定义列数;第二步通过使用适合于预定应用目标的交织模式列表确定对应于所述定义的行数或者所述定义的列数的块交织器的行数或列数,并且由所述确定的行数定义列数或由所确定的列数定义行数;第三步重复所述第二步直到对应于行数或列数的交织模式存在于所述预定的交织模式列表中;多次执行所述第三步,次数等于对应于在所述第一步中的所述预定交织模式的行数或列数;和从对应于在最后阶段中产生的行和列的交织模式中依次产生对应于前一阶段的行或列的交织模式。
32.根据权利要求30或31的用于存储产生交织模式的程序的计算机可读媒体,所述程序的特征在于检验所述产生的所述单位长度的交织模式并根据检验结果再产生所述单位长度的交织模式。
33.根据权利要求31的用于存储产生交织模式的程序的计算机可读媒体,其特征在于所述应用目标是快速代码,并且所述第一阶段的行数为7。
34.根据权利要求31的用于存储产生交织模式的程序的计算机可读媒体,其特征在于所述应用目标是传输,并且所述第一阶段的列数是一帧的隙数。
全文摘要
将输入数据串的数据写入一个第一交织器。从第一交织器中逐列或逐行读出数据并且逐列或逐行将其写入多个第二交织器。在必要时,从每个第二交织器中读出数据并将其写入多个第三交织器。重复一次或多次操作以从每个交织器中读数据并产生数据串。通过用多个交织模式产生交织模式来进行交织。此外,产生合适于快速编码或传输的交织模式。
文档编号H03M13/27GK1246991SQ98802436
公开日2000年3月8日 申请日期1998年11月9日 优先权日1997年11月10日
发明者涉谷彰, 须田博人 申请人:Ntt移动通信网株式会社