专利名称:用于透平编码的块交织的制作方法
技术领域:
本发明一般涉及通信系统,具体涉及执行编码调制的交织器。
背景技术:
已经发现对通信信道的编码技术(称为编码调制)能改进诸如调制解调器、无线通信系统等电子通信系统的比特出错率。透平(Turbo)编码调制已证明是一种对以白色高斯噪声(AWGN)或衰落为特征的“随机出错”信道实用的、高效的和频带效率高的调制方法。例如,可在码分多址(CDMA)环境中发现这些随机出错信道。CDMA环境的能力取决于工作信号/噪声比,因而改进性能也就是提高能力。
如此高效的透平编码器(Turbo coder)的一个方面是一种交织器,它对原始接收到的或发送的数据帧在进入到第2编码器之前进行置换。根据一个或多个随机化算法通过对部分随机化而完成置换。将置换后的数据帧与原始数据帧组合,表明能获得AWGN和衰落信道中的低BERs。交织处理增加了数据中的分集,从而当调制码元在传输中失真时,能在解码器中使用纠错算法来恢复。
传统的交织器对要发送到阵列中的信号点加以采集和编帧,实质上对阵列一行接一行地加以填充。在预定量的信号点被编帧后,实质上通过读出该阵列的列进行发送而使交织器呈空状态。结果,阵列的同一行中在原始信号点流中相互邻近的信号点通过数量等于阵列中行数量的信号点加以分开。理想上,列和行的数量的选取应使得相互依赖的信号点在发送后隔开得比期望的信道出错脉冲串更长。
非均匀交织可获得数据的“最大散布”和输出序列的“最大无序”。因此,两个卷积编码器引入的冗余在Turbo编码器的输出序列中散布更均等。最小距离增加到比均匀交织的更大的值。非均匀交织的固有问题是怎样实际实施交织同时获得足够的“非均匀性”和最小化延迟补偿,该延迟补偿限制了实时要求的应用。
寻找有效的交织器是第3代CDMA标准活动中流行的主题。已经确定和普遍认可的是,当帧规模接近无穷时,最有效的交织器是随机交织器。然而,对于有限帧规模,最有效的交织器的确定仍在讨论中。
因此,需要一种改善有限帧规模的非均匀性的交织码的系统和方法。
还需要一种相当简单实施的交织码的系统和方法。
于是,本发明的目的在于提供改善有限帧规模的非均匀性的交织码的系统和方法。
本发明的另一目的在于提供相当简单实施的交织码的系统和方法。
从下面的描述中本领域中的技术人员将会明白上述和其它目的。
本发明概述本发明可完成上述和其它目的,其中,对数据帧进行交织,数据帧有预定规模并由若干部分组成。本发明一实施例包含对这些数据帧交织的交织器。该交织器包含配置成存储接收到的数据作为阵列组织成行和列的输入存储器;连接输入存储器并配置成按照等式D(j,k)=D(j,(αjk+βj)modP)对接收到的数据帧进行置换的处理器;和与处理器进行电通信并配置成存储置换后版本的数据帧的工作存储器。该等式中的元素如下D是数据帧;j和k分别是数据帧中行和列的指数;α和β是按照当前行选择的常数组;P和各αj是相对质数。(“相对质数”就是除了1以外没有公约数的一组数。一组相对质数中的各成员从其本身看不必是质数。)本发明的另一实施例包含存储数据帧和利用N1×N2指数阵列I将该数据帧指数化的方法,其中,N1和N2的积至少等于N。指数阵列中的元素表明数据帧中元素的位置。数据帧元素可以任何传统方式加以存储而无需组织成阵列。该方法进一步包含按照I(j,k)=I(j,(αjk+βj)modP)对指数阵列进行置换,其中,I是指数阵列,如上所述,j和k分别是指数阵列中行和列的指数,α和β按照当前行选择的常数组,而P和各αj是相对质数。数据帧,通过置换的指数阵列I指数化后被有效地置换。
本发明的再一实施例包含交织器,该交织器包含存储数据帧和存储N1×N2指数阵列I用的存储装置,其中,N1和N2的积至少等于N。指数阵列中的元素表明数据帧中元素的位置。数据帧元素可以任何传统方式加以存储而无需组织成阵列。该交织器进一步包含按照I(j,k)=I(j,(αjk+βj)modP)对指数阵列进行置换的装置,其中,I是指数阵列,如上所述,j和k分别是指数阵列中行和列的指数,α和β按照当前行选择的常数组,而P和各αj是相对质数。数据帧,通过置换的指数阵列I指数化后被有效地置换。
下面将结合图示某些实施例和实际描述本发明。很显然,本领域中的技术人员在不脱离本发明精神实质或权利要求范围能作各种修改、增添和删减。
附图概述通过下面结合附图对实施例所作的详细描述,将能清楚地理解本发明,其中
图1示出传统Turbo编码器的说明图;图2示出图1中所示交织器的框图;图3示出包含数据帧的阵列和对该阵列的置换;图4示出存储在连续存储单元中的数据帧;图5示出将图4中所示数据帧指数化的指数阵列和对指数阵列的置换。
本发明的详细说明图1示出传统的Turbo编码器。如图所示,传统的Turbo编码器包含两个编码器20和一个交织器100。本发明的交织器100接收引入的数据帧110,该帧110的规模(大小)为N,其中,N是比特数、字节数或其它帧可分隔成的一些部分,它们称为帧元素。交织器100将N个帧元素分成如行那样的数据组。然后交织器以伪随机方式重新安排各组中数据。交织器100可采用不同方法重新安排不同组的数据组。然而,该领域中的技术人员应当认识到一种或多种方法可重新用于一个或多个数据组而不脱离本发明的范围。在置换各组中数据后,交织器以不同于接收的次序输出数据。
交织器100可在N1×N2规模的阵列中存储数据帧,使得N1×N2=N。图3所示例子表明具有3行(N1=3)6列(N2=6)的阵列350用来存储具有18个元素的数据帧110,这18个元素表示为帧元素00(FE00)到FE17(N=18)。虽然这是较佳方法,但阵列也可设计成N1×N2是N的一部分,使得一个或多个更小的阵列按照本发明工作,并将各个较小阵列的结果在后面加以组合。
按照本发明对阵列350的置换,对阵列350中各行j分别进行,按照下面等式置换各行中的列k。
D(j,k)=D(j,(αjk+βj)modP)
其中j和k分别是阵列350中行和列的指数;P是大于或等于N2的数;αj和P是相对质数(1个或两者可能是非质数,但它们的公约数只有1);βj是常数,用1个值与每一行相关。
一旦所有行的数据被置换,新阵列就一列接一列地读出。同样,一旦行已被置换,就能在输出数据之前置换按列分组的数据。在行和列两者被置换的情况下,行、列或两者可按照本发明进行置换。例如,也可以通过转置以二进制表示行指数j的比特来转置阵列中的行。(例如,在4行阵列中,第2和第3行将根据该方案进行转置。)也可以按照不同的置换方法来置换行或列,但不是两者。本领域中的技术人员知道,系统可重新安排成一列接一列存储数据,按列置换各组数据并且一行接一行读出结果,这些都不脱离本发明的范围。
这些交织方法是建立在数论基础上的,并且可用软件和/或硬件来实施(即,特定应用的集成电路(ASIC),可编程逻辑阵列(PLA),或任何其它合适的逻辑器件)。而且,单伪随机序列发生器(即,m-序列,M-序列,Gold序列,Kasami序列...等)可用作交织器。
在图3所示例子中,P的选值为6,α值对所有3行都为5,而β值对3行分别为1、2和3。(这些仅仅是举例。选择其它数可获得不同的置换结果。)α(5)的值,各为相对于如上规定的P(6)的相对质数。
用规定的值计算规定的等式来将阵列D350中行0置换成阵列D1360中行0的过程如下D1(0,0)=D(0,(5*0+1)mod6)=D(0,(1)mod6)=D(0,1)=FE01D1(0,1)=D(0,(5*1+1)mod6)=D(0,(6)mod6)=D(0,0)=FE00D1(0,2)=D(0,(5*2+1)mod6)=D(0,(11)mod6)=D(0,5)=FE05D1(0,3)=D(0,(5*3+1)mod6)=D(0,(16)mod6)=D(0,4)=FE04D1(0,4)=D(0,(5*4+1)mod6)=D(0,(21)mod6)=D(0,3)=FE03D1(0,5)=D(0,(5*5+1)mod6)=D(0,(26)mod6)=D(0,2)=FE02于是行0变成FE01 FE00 FE05 FE04 FE03 FE02对于行1,等式变成
D1(1,0)=D(1,(5*0+2)mod6)=D(1,(2)mod6)=D(1,2)=FE08D1(0,1)=D(1,(5*1+2)mod6)=D(1,(7)mod6)=D(1,1)=FE07D1(1,2)=D(1,(5*2+2)mod6)=D(1,(12)mod6)=D(1,0)=FE06D1(1,3)=D(1,(5*3+2)mod6)=D(1,(17)mod6)=D(1,5)=FE11D1(1,4)=D(1,(5*4+2)mod6)=D(1,(22)mod6)=D(1,4)=FE10D1(1,5)=D(1,(5*5+2)mod6)=D(1,(27)mod6)=D(0,3)=FE09于是行1变成FE08 FE06 FE11 FE10 FE09对于行2,等式变成D1(2,0)=D(2,(5*0+3)mod6)=D(2,(3)mod6)=D(2,3)=FE15D1(2,1)=D(2,(5*1+3)mod6)=D(2,(8)mod6)=D(2,2)=FE14D1(2,2)=D(2,(5*2+3)mod6)=D(2,(13)mod6)=D(2,1)=FE13D1(2,3)=D(2,(5*3+3)mod6)=D(2,(18)mo16)=D(2,0)=FE12D1(2,4)=D(2,(5*4+3)mod6)=D(2,(23)mod6)=D(2,5)=FE17D1(2,5)=D(2,(5*5+3)mod6)=D(2,(28)mod6)=D(0,4)=FE16于是行2变成FE15 FE14 FE13 FE12 FE17 FE16且置换后的数据帧包含在图3所示阵列D1360。一列接一列输出阵列将按照下面次序输出帧元素1,8,15,0,7,14,5,6,13,4,11,12,3,10,17,2,9,16。
在本发明的一变化实施中,数据帧110不按照阵列或矩阵而是存储在连续的存储单元中,并存储一分开的指数阵列用于将数据帧的元素指数化,按照本发明的等式对指数阵列置换,通过置换后的指数阵列指数化后输出数据帧。
图4说明在长度上存储32个元素(因而从起始存储单元具有偏移量0到31)的框图。数据帧110,该例子中取为22个元素长度因而包含元素FE00到FE21,在框400中占有偏移存储单元00到21。框400中偏移存储单元22到31包含未知的内容。22个元素的帧长度只是一个例子,也可以选择其它长度。在连续存储单元中存储帧元素是一个例子,也可采用非连续存储单元。
图5说明将存储块400指数化用的指数阵列1550。各组成具有8列的4行(N1=4,N2=8,N=N1×N2=32)。接着如图5所示,将原始内容填入阵列I550。该初始化按照一行接一行读入数据帧110产生相同的效果。
指数阵列按照下列等式置换I1(j,k)=I(j,(αjk+βj)modP)其中,α=1,3,5,7β=0,0,0,0P=8
这些数是例子,也可选择其它数,只要满足规定P至少等于N2并且α的各值是相对于所选P值的相对质数。
例如,如果将等式应用于行2的列,则产生I1(2,0)=I(2,(5*0)mod8)=I(2,(0)mod8)=I(2,0)=16I1(2,1)=I(2,(5*1)mod8)=I(2,(5)mod8)=I(2,5)=21I1(2,2)=I(2,(5*2)mod8)=I(2,(10)mod8)=I(2,2)=18I1(2,3)=I(2,(5*3)mod8)=I(2,(15)mod8)=I(2,7)=23I1(2,4)=I(2,(5*4)mod8)=I(2,(20)mod8)=I(2,4)=20I1(2,5)=I(2,(5*5)mod8)=I(2,(25)mod8)=I(2,1)=17I1(2,6)=I(2,(5*6)mod8)=I(2,(30)mod8)=I(2,6)=22I1(2,7)=I(2,(5*7)mod8)=I(2,(35)mod8)=I(2,3)=19将等式同样应用于行0,1和3,产生图5所示置换后的指数阵列I1560。
数据帧110从存储框400读出,按照一列接一列取出的置换后的指数阵列I1中规定的次序输出,从而按照下面偏移次序输出存储单元0,8,16,24,1,11,21,31,2,14,18,30,3,9,23,29,4,12,20,28,5,15,17,27,6,10,22,26,7,13,19,25。
但是,该例子假定帧长度为22个元素框400中偏移存储单元22-31的,不是数据帧部分。因此,当输出数据帧时,它被收缩或剪除到长度22;即,大于21的偏移存储单元忽略。于是数据帧用下面元素次序输出0,8,16,1,11,21,2,14,18,3,9,4,12,20,5,15,17,6,10,7,13,19。
本发明的一个方面,例如,通过将二进制表示行指数j的比特反相并在输出之前对阵列的行进行转置。
可用若干不同的方式实施本发明的交织器100。图2示出本发明一实施例,其中,交织器100包含接收和存储数据帧110的输入存储器300。该存储器300可包含移位寄存器、RAM等。交织器100还可包含工作存储器310,存储器310也可包含RAM、移位寄存器等。交织器包含处理器320(如,微处理器、ASIC等),配置成按照上述等式实时处理I(j,k)或访问包含预先存入其中的I(J,K)结果的表。本领域中的技术人员将会看到,存储器300和310可以是同一或分开的存储器。
为了实时确定I(j,k),置换指数阵列中第1行并将对应于置换指数的字节存储在工作存储器。然后置换下一行并存储,等等,直到所有行被置换和存储。这种行置换可顺序或并行进行。
权利要求
1.一种交织数据帧中元素的方法,其特征在于,包含下列步骤存储包含作为阵列D的多个元素的数据帧,该阵列D具有作为0,1,...N1-1的N1行;和作为0,1,...N2-1的N2列,其中,N1和N2是大于1的正整数;和按照下面等式将阵列D置换成阵列D1D1(j,k)=D(j,(αjk+βj)modP)其中,j是通过阵列D和D1行的指数;k是通过阵列D和D1列的指数;αj和βj是为各行j预定的整数;P是至少等于N2的整数;和各αj是相对于P的相对质数。
2.如权利要求1所述的方法,其特征在于,其中,阵列D的所述元素按照第一次序存储,而阵列D1的元素按照第二次序输出。
3.如权利要求2所述的方法,其特征在于,其中,阵列D的元素一行接一行存储,而阵列D1的元素一列接一列输出。
4.如权利要求1所述的方法,进一步包含输出阵列D1步骤,其中,N1和N2的积大于帧中元素数,在输出期间帧截断到帧中元素的数目。
5.一种交织数据帧中元素的方法,其特征在于,所述方法包含下列步骤产生和存储指数阵列I,该阵列I具有作为0,1,...N1-1的N1行;和作为0,1,...N2-1的N2列,其中,N1和N2是大于1的正整数,在多个存储单元的各单元中存储数据帧的元素;在阵列I中以一行接一行的相继位置存储表明帧元素的相应存储单元的值;和按照下列等式将I阵列置换成I1阵列I(j,k)=I(j,(αjk+βj)modP)其中,j是通过阵列I和I1的行的指数;k是通过阵列I和I1的列的指数;αj和βj是各行j预定的整数;P是至少等于N2的整数;和各αj是相对于P的相对质数,由此,利用阵列I1指数化时能有效地置换数据帧。
6.如权利要求5所述的方法,其特征在于,进一步包含按照所述置换的指数阵列I1置换所述存储的元素的步骤。
7.如权利要求5所述的方法,其特征在于,其中,数据帧的所述元素不是按照一行接一行的阵列I1表项的指数输出。
8.如权利要求7所述的方法,其特征在于,其中,数据帧的所述元素按照一列接一列的阵列I1表项的指数输出。
9.如权利要求5所述的方法,其特征在于,还包含在置换阵列I步骤之前转置阵列I中行的步骤。
10.如权利要求5所述的方法,其特征在于,其中,N1等于4,N2等于8,P等于8,αj的值各行不同并从1,3,5和7构成的组中加以选择。
11.如权利要求10所述的方法,其特征在于,其中,αj的值对j=0,1,2和3分别为1,3,5和7。
12.如权利要求10所述的方法,其特征在于,其中,αj的值对j=0,1,2和3分别为1,5,3和7。
13.如权利要求5所述的方法,其特征在于,其中,所有β值都为零。
14.如权利要求5所述的方法,其特征在于,其中,至少两个β值相同。
15.如权利要求11所述的方法,其特征在于,其中,所有β值都为零。
16.如权利要求12所述的方法,其特征在于,其中,所有β值都为零。
17.如权利要求5所述的方法,其特征在于,进一步包含输出数据帧的步骤,其中,N1和N2的积大于数据帧中元素数目,在输出期间数据帧截断到该数据帧中元素的数目。
18.一种交织数据帧的交织器,其特征在于,包含存储包含作为阵列D的多个元素的数据帧的存储装置,该阵列D具有作为0,1,...N1-1的N1行;和作为0,1,...N2-1的N2列,其中,N1和N2是大于1的正整数;和按照下面等式将阵列D置换成阵列D1D1(j,k)=D(j,(αjk+βj)modP)其中,j是通过阵列D和D1行的指数;k是通过阵列D和D1列的指数;αj和βj是为各行j预定的整数;P是至少等于N2的整数;和各αj是相对于P的相对质数。
19.如权利要求18所述的交织器,其特征在于,还包含按照第一次序存储阵列D的的所述元素的装置,和按照第二次序输出阵列D1的元素的装置。
20.如权利要求19所述的交织器,其特征在于,其中,所述存储阵列D的所述元素的装置一行接一行进行存储,所述输出阵列D1的元素的装置一列接一列进行输出。
21.如权利要求18所述的交织器,其特征在于,进一步包含输出阵列D1和当N1和N2的积大于帧中元素数时将所述阵列D1截断到帧中元素数目的装置。
22.一种交织数据帧中元素的交织器,其特征在于,所述交织器包含存储指数阵列I的装置,该阵列I具有作为0,1,...N1-1的N1行;和作为0,1,...N2-1的N2列,其中,N1和N2是大于1的正整数,和接收数据帧和在多个存储单元的各单元中存储数据帧元素的装置;在阵列I中以一行接一行的相继位置存储表明帧元素的相应存储单元的值的装置;和按照下列等式将I阵列置换成I1阵列的装置I(j,k)=I(j,(αjk+βj)modP)其中,j是通过阵列I和I1的行的指数;k是通过阵列I和I1的列的指数;αj和βj是各行j预定的整数;P是至少等于N2的整数;和各αj是相对于P的相对质数,由此,按照阵列I1指数化的数据帧能有效地置换。
23.如权利要求22所述的交织器,其特征在于,进一步包含按照所述置换的指数阵列I1置换所述存储的元素的装置。
24.如权利要求22所述的交织器,其特征在于,包含数据帧元素不是按照一行接一行的阵列I1表项的指数输出的装置。
25.如权利要求24所述的交织器,其特征在于,包含数据帧元素按照一列接一列的阵列I1表项的指数输出的装置。
26.如权利要求22所述的交织器,其特征在于,其中,N1和N2的积大于帧中元素的数目和利用输出装置将帧截断到帧中元素的数目。
27.一种交织数据帧元素的交织器,其特征在于,该交织器包含存储包含作为阵列D的多个元素的数据帧的输入存储器,该阵列D具有作为0,1,...N1-1的N1行;和作为0,1,...N2-1的N2列,其中,N1和N2是大于1的正整数;与所述输入存储器耦连并按照下面等式将阵列D置换成阵列D1的处理器D1(j,k)=D(j,(αjk+βj)modP)其中,j是通过阵列D和D1行的指数;k是通过阵列D和D1列的指数;αj和βj是为各行j预定的整数;P是至少等于N2的整数;和各αj是相对于P的相对质数,和与所述处理器耦连并配置成存储所述置换阵列D1的工作存储器。
28.如权利要求27所述的交织器,其特征在于,其中,所述输入存储器按照第一次序存储阵列D的所述元素,所述工作存储器按照第二次序输出阵列D1的元素。
29.如权利要求28所述的交织器,其特征在于,其中,所述输入存储器一行接一行地存储阵列D的元素,所述工作存储器一列接一列地输出阵列D1的元素。
30.如权利要求27所述的交织器,其特征在于,当N1和N2的积大于帧中元素数目时所述工作存储器将所述阵列D1截断到帧中元素数目。
31.一种交织数据帧中元素的交织器,其特征在于,所述交织器包含存储指数阵列I的存储器,该阵列I具有作为0,1,...N1-1的N1行;和作为0,1,...N2-1的N2列,其中,N1和N2是大于1的正整数,和所述存储器还用于将接收到的数据帧元素存储在多个存储单元的各单元中;与所述存储器耦连用于在阵列I中以一行接一行的相继位置存储表明帧元素的相应存储单元的值的处理器;和所述处理器还按照下列等式将I阵列置换成I1阵列I(j,k)=I(j,(αjk+βj)modP)其中,j是通过阵列I和I1的行的指数;k是通过阵列I和I1的列的指数;αj和βj是各行j预定的整数;P是至少等于N2的整数;和各α;是相对于P的相对质数,由此,按照阵列I1指数化的数据帧能有效地置换。
32.如权利要求31所述的交织器,其特征在于,其中,所述处理器按照所述置换的指数阵列I1置换所述存储的元素。
33.如权利要求31所述的交织器,其特征在于,所述存储器不是按照一行接一行的阵列I1表项的指数输出帧元素。
34.如权利要求33所述的交织器,其特征在于,其中,所述存储器按照一列接一列的阵列I1表项的指数输出帧元素。
35.如权利要求31所述的交织器,其特征在于,其中,当N1和N2的积大于数据帧中元素数目时所述存储器将数据帧截断到数据帧中元素的数目。
全文摘要
一种交织器,接收进入的规模为N的数据帧。该交织器用N
文档编号H04L1/00GK1341295SQ00804027
公开日2002年3月20日 申请日期2000年1月11日 优先权日1999年1月11日
发明者崔江, 李宾, 佟文, R·R·王 申请人:诺泰网络有限公司