用于数据通信系统的通过符号插入进行 灵活数据速率匹配的方法和设备 【技术领域】
本发明一般涉及数据通信系统,尤其涉及在发送之前,将含有随可变数据速率改变的可变个数的码符号的帧与交织器长度相匹配的方法和设备。
背景技术
在诸如卫星系统、ISDN(综合业务数字网)、数字蜂窝系统、W-CDMA(宽带码分多址接入)系统、UMTS(通用移动通信系统)和IMT(国际移动通信)-2000的移动通信系统中,利用单个解码器的卷积编码或线性块编码是常用的编码方法。通过那些信道编码得出的码符号一般由信道交织器来交织。
典型信道交织器按帧交织有与交织器长度一样多地码符号的帧。另一方面,更新的信道交织器进行FDRT(灵活数据速率传输:Flexible Data RateTransmission)交织。也就是说,它按帧交织含有与交织器长度不一样多的码符号的帧。
图1显示了用于交织含有与交织器长度一个多的码符号的帧的、基于非FDRT的信道交织器。参照图1,如果数据速率是固定的,那么,在非FDRT方案中,输入到信道交织器100的每单位帧的码符号的个数L总是等于交织器长度N。例如,根据IMT-2000的无线配置(RC),存在着包括RC1、RC2、RC3、RC4、RC5、RC6、RC7、RC8和RC9的各种各样传输信道,它们在数据帧长度、码率、和交织方面是不同的。基于其特性,传输信道以预定数据速率发送数据。
图2显示了根据非FDRT方案发送的码符号帧的例子。参照图2,当把物理信道的数据速率设置在RC3的数据速率,即,19.2kbps(千比特每秒)上时,N是1536。以19.2kbps传输的20ms(毫秒)帧包含384个比特且R=1/4码编码器输出1536个比特。如果用户打算以20kbps发送帧,那么,通过基站和移动台之间的初始协商,把物理信道的数据速率设置在大于20kbps的最小数据速率38.4kbps上。那时,N是3072(=2×1536)。
随着数据速率从20kbps增加到38.4kbps,在填充了20kbps×20ms的输入数据符号之后,高层把空数据写入信道交织器(未示出)的其余区域中。换句话说,长度为N的信道交织器的47.92%(=38.4-20/38.4)输出被当作空数据来发送。因此,在所收到的符号能量方面就浪费了47.92%的能量。在非FDRT方案中,由于在物理层中无法处理空数据,因此出现了能量损失。即使通过符号重复来处理空数据,符号组合也不适合于前向补充信道(F-SCH)。此外,由于空数据随输入的码符号的数据速率的改变而改变,因此,高层应该事先把变化通知基站和移动台。实际上,在信道解码之前,必须恢复空数据的能量,并在信道解码之后,L1/L2高层只处理解码后的信息符号。其结果是,解码性能变差了。
提出FDRT是为了改善性能,克服非FDRT存在的问题。FDRT是在使用信道编码的多址接入和多信道系统中,用来提高编码数据的传输效率和改善系统性能的数据速率匹配方案。FDRT的概念是以所使用的信道码是卷积码、线性码、或使用卷积码的级联码为前提的。令人非常感兴趣的3GPP(第3代项目协作组2)已经试探性地将FDRT设定为空中接口的标准,并且FDRT在实际中正在被实现。
但是,用于卷积码或线性块码的传统IS-2000 FDRT和最新IS-2000 FDRT存在如下问题。
(1)由于在从卷积编码器或线性块编码器输出的一帧中,可以假定所有码符号的错误敏感度几乎是一致的,因此如果可能的话,传统FDRT方案要求均匀的打孔。这个假定对于最新IS-2000 FDRT是无效的。
(2)在传统IS-2000 FDRT中可以认为,从符号重复的观点来看,重复方案的使用对打孔模式的影响很小。然而,在符号打孔的层次上必须考虑这种符号重复。也就是说,对于性能最佳的FDRT,在下述假定下应该实现均匀的码元重复:在从编码器输出的一帧中,所有码符号的错误敏感度几乎是一致的。但是,这个假定对于最新IS-2000 FDRT是无效的。
(3)尽管进行码元重复就足够了,但是,在传统IS-2000 FDRT中,进行符号重复之后要进行符号打孔。因此,导致了实现变得复杂。
用于诸如Turbo码的纠错码的IS-2000 FDRT也存在如下所述的问题。
如上所述,根据用于卷积码或线性块码的FDRT,在从编码器输出的每一帧的所有码符号具有几乎一致的错误敏感度的假定下,如果可能的话,要求均匀的打孔。另一方面,在Turbo码的情况下,在从编码器输出的每一帧(码字)的码符号中,错误敏感度是不同的。换句话说,来自Turbo编码器的码符号可以按照它们的错误敏感度来分组。此外,在Turbo码的情况中,需要保证对每个码符号组中的所有符号进行均匀的打孔或重复的FDRT方案。然而,最新IS-2000 FDRT在这一点上存在局限性。
【发明内容】
因此,本发明的一个目的是在数据通信系统中提供一种当分别使用卷积码、Turbo码和线性块码或使用其组合时,保证性能最佳的灵活数据速率匹配的方法和装置。
本发明的另一个目的是提供一种在使用卷积码、Turbo码或线性块码的数据通信系统中提供灵活的数据速率匹配的方法和装置,通过控制初始值使上述方法和装置简单,并在可变数据速率方面灵活。
本发明的另一个目的是提供一种用于数据通信系统的灵活数据速率匹配的方法和装置。
在数据通信系统中通过提供利用码元重复的灵活数据数据匹配的方法和装置,来实现本发明的上述和其它目的。为了在含有用于生成L个码符号的序列的编码器和用于接收N个符号的序列的信道交织器的系统中,从少于N个符号的L个码符号的序列中生成N个符号的序列,在L个码符号当中检测在大致等距离(N-L)的位置上的符号,通过重复在检测到的符号之前或之后依次插入检测到的符号。
附图所明
通过结合附图,从下面的详细描述中,本发明的上书目的和其它目的、特征和优点将会更加清晰,在附图中:
图1显示了典型的基于非FDRT的信道交织器;
图2显示了根据非FDRT发送的码符号帧的例子;
图3是根据IS-2000规范进行符号重复和打孔的FDRT设备的方框图;
图4是在根据本发明的一个实施例的FDRT方案中发送设备的方框图;
图5A、5B和5C显示了从图4所示的FDRT设备输出的符号的例子;
图6是显示了根据本发明的一个实施例的FDRT操作的流程图;
图7是根据本发明的一个实施例的FDRT设备的详细方框图;
图8是根据本发明的另一个实施例的FDRT设备的方框图;
图9是描述在作为一个序列从Turbo编码器输出的FDRT-处理的码符号中可能遇到的问题的图;
图10显示了根据本发明的第三实施例,利用引入的初始偏移概念生成的符号的例子;
图11是显示根据本发明的第三实施例的、用于确定经输出一个序列中的码符号的编码器编码之后的一帧中将被重复的第一个符号的初始偏移确定过程的流程图;和
图12是显示根据本发明的第三实施例的、用于确定经输出一个序列中的码符号的编码器编码之后的一帧中将被重复的第一个符号的初始偏移确定过程的另一个流程图。
具体实施例
下文参照附图描述本发明的优选实施例。在如下的描述中,对那些众所周知的功能或结构将不作详细描述,否则的话,本发明的重点将不突出。
在详细描述本发明之前,下面先描述一下像IS-2000规范提供的那样的进行符号重复和打孔的FDRT方案。
参照图3,由于从编码器200输入L个码符号期间,FDRT模块210输出等于或大于L个码符号的N个码符号,所以输入符号要经历符号重复。因此,符号打孔器214用于使重复的码符号与交织器220的输出符号个数,即长度N相匹配。根据上述FDRT方案,在重复器212中将码符号重复M次,并且,在符号打孔器214中对重复的码符号进行打孔,以便使码符号与交织器长度N相匹配。
第一实施例
在传统IS-2000 FDRT方案中,经过M次符号重复之后,进行符号打孔,以便从LM个符号中删除(LM-N)个符号,与传统IS-2000 FDRT方案相比,根据本发明的一个实施例的新FDRT方案把(N-L)个符号插入到L个符号当中,最后输出N个符号。根据新FDRT方案的发送设备显示在图4中。
参照图4,编码器200通过编码源信息,输出含有L个码符号的码序列。FDRT设备230把(N-L)个符号插入到L个码符号当中,并输出N个符号。具体地说,FDRT设备230检测L个码符号当中,大致等距离(N-L)的符号位置,并且把(N-L)个符号依次插入到所检测位置上的码符号之前或之后。交织器220对从FDRT设备230接收的N个符号进行交织。如图4所示,由于省略了如图3所示的M次符号重复,所以根据本发明的一个实施例的FDRT方案是非常简单的。
现在,详细描述在FDRT设备230中运行的算法。根据基于本发明的一个实施例的FDRT算法,无需伴随着符号打孔的符号重复,就可以把(N-L)个码符号插入到L个码符号当中。例如,如果数据速率是17kbps,帧长是20ms,码率R是1/4,且要被发送的信道的数据速率是19.2kbps,那么,FDRT设备230把[(19.2-17)×20×4]个符号插入到L个符号当中。由于最佳FDRT的特征在于:在从编码器输出的一帧(码字)中的所有符号具有几乎一致的错误敏感度,那么如果可能的话,FDRT设备230必须在一帧中进行均匀的符号插入。一旦给出交织器长度N和输入码符号的个数L,就可以计算出插入符号的个数。在确定了FDRT算法所需的、列在表1中的参数之后,就可以确定符号插入模式(或符号重复模式)。这里请注意,使用符号插入和符号重复含义相同。
(表1) 参数 定义Nis=N-L插入的符号的个数(由于N≥L,Nis总是正数)L输入到FDRT模块的码符号的个数N从FDRT模块输出的码符号的个数Eacc错误累积值(Ia,Ib)确定帧中的第一重复符号位置的变量(Ib是满足1≤Ib≤Ia的整数)
在表1中,L是经编码器200编码之后,输入到FDRT设备230的码符号的个数且N是交织器220的长度,即,在数据速率匹配之后,从FDRT设备230输出的码符号的个数。Nis是在FDRT设备230中插入的符号的个数。Eacc是把预定初始值依次减少预定减量而获得的值。在本发明的实施例中,Eacc是为帧中的每个符号生成的,并与0作比较。如果Eacc小于等于0,那么,重复符号。从这个意义上,Eacc被称为错误累积值,且其初始值被称为初始错误累积值。初始值可以是(Ia×Nis)。
(表2) Eacc=Ib*L M=1 do while mL Eacc=Eacc-Ia*Nis; do while Eacc≤0 repeat mth symboI Eacc=Eacc+Ia*L end do m=m+1 end do
表2是基于本发明的实施例的FDRT算法。“repeat mth symbol”的含义是重复第m个符号。如果Eacc≤0,那么,在“do while”循环内进行第m个符号重复,直到Eacc>0为止。当算法完成时,也就是说,当“while”循环进行到m=L时,总共生成N个符号。通过把(N-L)个符号插入到L个输入码符号中,而从FDRT设备230中输出N个符号。以后参照图6更详细地描述表2的FDRT算法。
同时,表2的算法也可应用于使用任意值M(重复次数)的VDRT(可变数据速率传输)。由于FDRT算法选择所重复的符号位置,因此,与进行符号重复和打孔的传统FDRT方案不同,不会发生丢弃特定码符号的连续打孔现象。因此,也不会发生由于连续打孔而引起的性能变差现象。
如果Eacc、0、Ia*Nis和Ia*L被分别定义为错误累积值、阈值、减量和增量,那么,按照如下步骤运行算法:(a)为L个码符号当中的第一符号设置Eacc;(b)将Eacc与0作比较;(c)如果Eacc小于0,用Eacc+Ia*L更新Eacc,然后返回到步骤(b);(d)如果Eacc大于0,用Eacc-Ia*Nis更新Eacc,然后返回到步骤(b);和(e)如果在步骤(c)或(d)期间从L个码符号中生成N个符号的序列,结束该过程。虽然最好把阈值、减量和增量分别设置成0、Ia*Nis和Ia*L,但是,也可以把它们设置成适当的经验值。
下面给出根据本发明的实施例的FDRT算法的应用情况。在情况1中,M=1,也就是说,没有进行符号重复。在情况2中,M=2。重复码序列一次,因此,生成两个相同的码序列。在情况3中,M=3。重复码序列二次,因此,生成三个相同的码序列。在所有情况中,(Ia,Ib)=(2,1)。
(情况1)
如果L=5和N=5,那么,Nis=N-L=5-5=0。这种情况不需要符号重复。表3显示了对于m=1,2,3,4,5位置上的码符号,给出符号重复模式为c1,c2,c3,c4,c5,也就是说,没有符号重复的情况。因此,根据如图5A所示的符号重复模式,简单输出N(=5)个输入码符号。
(表3) 输入符号的位置m=1m=2m=3m=4m=5 Eacc=Eacc-Ia*Nis (Eacc=5)+5+5+5+5+5 Eacc=Eacc+Ia*LNANANANANA 重复无无无无无 符号重复模式c1c2c3c4c5
例如,在表3中,初始错误累积值Eacc是5,和在位置m=1上的输入符号的错误累积值Eacc是5-2×(N-L)=5-2×0=5。由于错误累积值Eacc大于0,不重复在m=1上的符号。在m=1位置上的输入符号c1的符号重复模式被确定为c1,且简单输出该输入符号。表3中的NA代表“不可用”,它的含义是不需要通过Eacc=Eacc+Ia*L进行错误累积值计算。
(情况2)
如果L=5和N=8,那么,Nis=N-L=8-5=3。必须把3个码符号插入5个输入码符号当中。表4显示了在m=1,2,3,4,5位置上的码符号,给出符号重复模式为c1,c1,c2,c3,c3,c4,c5,c5。根据c1,c1,c2,c3,c3,c4,c5,c5的符号重复模式,重复输入码符号,并像图5B所示的那样输出N(=8)个码符号。
(表4) 输入符号的位置m=1m=2m=3m=4m=5Eacc=Eacc-Ia*Nis(Eacc=5)-13-31-5Eacc=Eacc+Ia*L93715重复重复无重复无重复符号重复模式c1,c1c2c3,c3c4c5,c5
例如,在表4中,初始错误累积值Eacc是5,且在m=1位置上的输入符号的错误累积值Eacc是5-2×(N-L)=5-2×3=-1。由于错误累积值Eacc小于0,所以重复在m=1位置上的符号。因此,Eacc被更新成Eacc+Ia*L(-1+2×3=5)。更新的错误累积值Eacc大于0,因此,不再需要重复m=1位置上的符号。在m=1位置上的输入符号c1的符号重复模式被确定为c1,c1,且为该输入符号生成了两个输出符号。
(情况3)
如果L=5和N=15,那么,Nis=N-L=15-5=10。必须把10个码符号插入到5个输入码符号中。表5显示了对于在m=1,2,3,4,5位置上的码符号,给出符号重复模式为c1,c1,c1,c2,c2,c2,c3,c3,c3,c4,c4,c4,c5,c5,c5。根据c1,c1,c1,c2,c2,c2,c3,c3,c3,c4,c4,c4,c5,c5,c5的符号重复模式,重复输入码符号,并像图5C所示那样,输出N(=15)个码符号。
(表5)输入符号的位置m=1m=2m=3m=4m=5Eacc=Eacc-Ia*Nis(Eacc=5)-15-15-15-15-15Eacc=Eacc+Ia*L-5,+5-5,+5-5,+5-5,+5-5,+5重复重复重复重复重复重复符号重复模式c1,c1,c1c2,c2,c2,C3,c3,c3c4,c4,c4c5,c5,c5
在表5中,在基于条件“do while Eacc≤0”的嵌套while循环中生成的Eacc等于-5或+5。因此,当运行嵌套while循环时,符号重复次数增加。例如,在表5中,初始错误累积值Eacc是5且在位置m=1上的输入符号的错误累积值Eacc是5-2×(N-L)=5-2×10=-15。由于错误累积值Eacc小于0,所以重复在m=1上的符号。随着重复的进行,Eacc被更新成Eacc+Ia*L(-15+2×5=-5)。更新的错误累积值Eacc小于0,因此,再一次重复在m=1上的符号。然后,Eacc再次被更新成Eacc+Ia*L(-5+2×5=5)。由于更新的错误累积值Eacc大于0,所以不再需要重复m=1上的符号。因此,重复在m=1位置上的符号两次。在m=1位置上的输入符号c1的符号重复模式被确定为c1,c1,c1,且为该输入符号生成了三个输出符号。
在上述情况中,假定参数(Ia,Ib)是(2,1)。根据所使用的纠错码的特性,可以把这个参数(Ia,Ib)设置成不同的值。例如,纠错码可以是卷积码、线性块码、或Turbo码。然后,参数(Ia,Ib)可以被设置成(2,1)、(4,1)、(8,1)、(L,1)、或(L,K)(K是满足1≤K≤L的整数)。因此,可以认为,在考虑了本发明中如下所述的特性之后,根据所使用的纠错码把参数(Ia,Ib)设置成能保证最佳性能的值。如下的方程指出一帧中的码符号中的第一重复符号位置Initial Offset_m。
参照方程1,通过控制参数(Ia,Ib),可以在(L/Nis)的范围内调整一帧中要被重复的第一符号的位置。
如果Ib是常数,Initial Offset_m随Ia增加而减少。因此,第一重复符号位置朝帧头方向移动。如果Ia≥(Ib*Nis/L),那么Initial Offset_m等于1。因此,总是重复帧中的第一符号。由于Ib与Ia一起控制Initial Offset_m,确定Ia之后,Ib被设置成在1≤Ib≤Ia范围内的值。如果Ia是常数,Initial Offset_m随Ib增加而增加,反之亦然。因此,通过控制Ib来调整第一重复符号位置。也就是说,Ia是决定符号重复间隔和第一重复符号的参数,而Ib是决定第一重复符号和整个重复符号位置的参数。从这个算法中可以看出,根据是否进行重复,Ib只影响初始Eacc值的设置而由于增量或减量包括Ia,所以Ia影响符号重复间隔。因此,Ib决定整个重复符号位置。
表6显示了上述三种情况的Initial Offset_m。
(表6)
根据表6,情况1不需要重复,由于对于情况2和情况3,Initial Offset_m都是1,因此,第一符号是初始重复位置。
图6是显示根据本发明实施例的FDRT算法的流程图。假定在运行FDRT算法之前已给出了L、N和(Ia,Ib)。
参照图6,在步骤601中,通过接收Eacc(=Ib*L)来进行初始化。如前所述,Eacc是通过把预定初始错误累积值依次减少预定减量而生成的。在步骤602中,把码符号位置m设置成1。在步骤603中确定m是否小于或等于L。如果m小于或等于L,那么,在步骤604中,用Eacc-(Ia*Nis)更新Eacc。
在步骤605中,确定更新的Eacc是否小于或等于0。如果更新的Eacc大于0,那么,在步骤606中把m加1,以便在步骤603、604、和605中进行指定作为符号重复位置的下一个位置的操作。对于一帧中的所有码符号,重复执行将更新的Eacc与0相比较和增加m的过程。因此,重复步骤603、604、和605直到m≤L为止。
如果在步骤605中,更新的Eacc小于或等于0,那么,在步骤607中重复第m个符号。在步骤608中,用Eacc+(Ia*L)更新Eacc。然后,过程返回到步骤605。
执行步骤603到606是为了获得一帧中每个码符号的Eacc,并根据Eacc确定重复的符号。执行步骤607和608是为了确定重复符号的次数,并重复它们。按照本发明的实施例,从L个码符号当中检测Nis(=N-L)个符号位置,依次重复在所确定位置上的Nis个符号,从而生成具有N个符号的序列。这里,(N-L)个符号在L个符号中是等距离的。
图7是根据本发明的实施例,并用于执行图6所示过程的FDRT设备的详细的方框图。在图7中,EN代表允许信号。如果EN=1,就启用相应的模块,而如果EN=0,就禁止该模块。符号重复器707在EN=0时,只是输出在每个时钟脉冲上接收的码符号ck,而在EN=1时,重复码符号ck。对于一个码符号,可以重复出现允许信号EN=1。用于符号重复器707的允许信号EN是从用于确定Eacc≤0是否成立的比较器705中输出的。如果Eacc≤0,比较器705就输出EN=1,而如果Eacc>0,就输出EN=0。从比较器705输出的允许信号EN还通过选择器703和反相器704馈送到寄存器701和减法器702,以便启用寄存器701和减法器702。
如图7所示,根据本发明实施例的FDRT设备包括寄存器701、减法器702、选择器703、反相器704、比较器705、加法器706、和符号重复器707。当FDRT设备开始运行,寄存器701下载作为初始错误累积值Eacc的值(Ib*L),并存储它,然后存储从减法器702收到的Eacc。减法器702从存储在寄存器701中的Eacc中减去(Ib*Nis),并且输出相减结果,作为更新的Eacc。寄存器701的初始化操作对应于图6的步骤601,且减法器702的操作对应于步骤604。只有当反相器的输出信号是1,即比较器705的输出信号是0时,减法器702才输出Eacc。
可以是多路复用器(MUX)的选择器703首先把从减法器702接收的Eacc馈送到比较器705和加法器706,然后,根据从比较器705接收的允许信号EN的电平,把从减法器702和加法器706接收的值有选择地输出到比较器705和加法器706。如果EN=0,选择器703把从减法器702接收的Eacc输出到比较器705和加法器706。如果EN=1,选择器703把从加法器706接收的值输出到比较器705和加法器706。
比较器705将从选择器703接收的Eacc与0相比较,确定从选择器703接收的Eacc是否小于等于0,并输出判定结果信号。如果Eacc小于等于0,比较器705就输出EN=1,而如果Eacc大于0,比较器705就输出EN=0。根据从比较器705接收的允许信号EN,符号重复器707只输出没有重复的输入码符号或者重复码符号。选择器703、寄存器701、和减法器702的操作都由比较器705的允许信号EN控制。比较器705的操作对应于图6的步骤605。
加法器706将从选择器703接收的Eacc与(Ia*L)相加,并且把和值馈送到选择器703。当EN=1时,选择器703选取该和值。这个操作对应于图6的步骤608。
如果从寄存器701输出的Eacc是第一错误累积值,从减法器702输出的Eacc是第二错误累积值,从加法器706输出的Eacc是第三错误累积值,从选择器703输出的Eacc是第四错误累积值,且用于确定一帧中的第一重复符号的Ia和Ib分别是第一变量和第二变量(Ib是满足1≤Ib≤Ia的整数),那么,寄存器701输出通过将第二参数与L相乘而获得的第一参数,来作为第一符号的第一错误累积值,并且输出前面符号的第二错误累积值,来作为后面符号的更新的第一错误累积值。寄存器701响应比较器705在确定第四错误累积值大于预定阈值(例如,0)时生成的控制信号,来执行更新操作。减法器702从第一错误累积值中减去作为第一变量和Nis(=N-L)之积的第二参数,并且将相减的结果输出作为第二错误累积值。在比较器706的控制下,选择器703有选择地输出第二或第三错误累积值,来作为第四错误累积值。加法器706将第四错误累积值与作为第一变量和L之积的第三参数相加,并且将该和值输出作为第三错误累积值。比较器705将第四错误累积值与预定阈值相比较。如果第四错误累积值大于阈值,比较器705就输出一控制信号以控制选择器703将第二错误累积值选择作为第四错误累积值。如果第四错误累积值小于等于阈值,比较器705就输出一控制信号以控制选择器703将第三错误累积值选择作为第四错误累积值。反相器704连接在比较器705和寄存器701之间,它响应来自比较器705的控制信号启用寄存器701,以便寄存器701把第一错误累积值更新成第二错误累积值。符号重复器707接收来自比较器705的判定结果,通过重复插入错误累积值小于等于阈值的符号,从而生成N个符号的序列。
第二实施例
在考虑了一帧或一码字内的传统编码符号或线性块编码符号显示出几乎相同的错误敏感度的特性之后,根据本发明的第一实施例的FDRT方案允许进行均匀打孔或均匀重复(插入)。通过设置适当的参数,这种FDRT方案也可应用于Turbo码,下面对此加以描述。
图8是根据本发明的另一个实施例的FDRT设备的方框图。在FDRT设备中使用了R=1/3Turbo编码器。
参照图8,编码器801编码源信息并输出具有L个码符号的序列。多路分用器(DEMUX)802把L个码符号分到含有L1个信息符号的X组、含有L2个奇偶校验符号的Y组、和含有L3个奇偶校验符号的Z组中。这里,L=L1+L2+L3且L1、L2和L3既可以相同,也可以不同。对于有L1个信息符号的输入,第一FDRT模块803通过把(N1-L1)个符号插入到L1个码符号中,来输出N1个符号。第一FDRT模块803确定大致等距离(N1-L1)的符号位置,并依次在所确定的位置上重复(N1-L1)个符号。对于有L2个奇偶校验符号的输入,第二FDRT模块804通过把(N2-L2)个符号插入到L2个码符号中,来输出N2个符号。第二FDRT模块804确定大致等距离(N2-L2)的符号位置,并依次在所确定的位置上重复(N2-L2)符号。对于有L3个奇偶校验符号的输入,第三FDRT模块805通过把(N3-L3)个符号插入到L3个码符号当中,来输出N3个符号。第三FDRT模块805确定大致等距离(N3-L3)的符号位置,并依次在所确定的位置上重复(N3-L3)个符号。MUX 806复用从FDRT模块803、804和805接收的N1个符号、N2个符号和N3个符号,并输出N个符号。这里,N1+N2+N3=N且N1、N2和N3既可以相同,也可以不同。交织器807交织从MUX 806接收的N个符号,并输出N个交织后的符号。
从图8可以看出,从R=1/3Turbo编码器802输出的码符号被分到含有信息符号的X组(L1)、含有奇偶校验符号的Y组(L2)、和含有奇偶校验符号的Z组(L3),并且分别对这些组进行FDRT处理。只有当为每个FDRT模块确定了参数(Li,Ni)和(Iai,Ibi)时,上述FDRT算法才可应用于FDRT模块803、804和805。如上所述,L=L1+L2+L3且N=N1+N2+N3。因此,提高Turbo码性能的重要问题是如何把(N-L)个插入符号分配到各个组中。通过根据每个组的错误敏感度为该组确定不同个数的插入符号、控制上述参数,可以实现最佳Turbo码性能。例如,如果信息符号组X相对重要,那么,增加X组的重复符号的个数(例如,L/2),再把其余可用重复符号平分给Y组和Z组(例如,各为L/4)。由于重复符号个数的确定与码率和生成多项式有关,有必要优化实现最佳数据速率和最佳生成多项式所需的参数。这里不描述对参数的优化,但是,最佳经验值可以用作参数。一旦为每个组确定了Li、Ni、Iai和Ibi,每个FDRT模块就以与如上所述相同的方式进行符号插入(即,符号重复)。
第三实施例
提供本发明的第三实施例是为了即使像卷积码或线性块码那样将X、Y和Z组输出作为一个码序列,也可以优化Turbo码的性能。也就是说,以与用于卷积码的方式相同的方式,对从Turbo编码器输出的一帧中的码符号进行均匀的符号插入或重复。另外,考虑到Turbo码特性,对初始偏移加以控制,以满足如下条件,从而实现与第二实施例中的性能相近的性能。
(条件)使用Turbo码并尽可能地加强X组的重复,以保证将码符号输出作为一个序列的编码器中的Turbo码的最佳性能。
为了满足上述条件,本发明的第三实施例提供了偏移控制方法。
在R=1/3Turbo编码器的输出码符号的个数大于连接在Turbo编码器之后的交织器的长度的通信系统中,为了使码符号与交织器的长度相匹配,通常先重复码符号,然后再对码符号进行打孔。如果符号打孔间隔是3的倍数且从第一码符号开始打孔,那么,这意味着只有信息符号被连续打孔。例如,如果L=15和N=20,那么,重复码符号M(=2)次且被打孔的符号的个数为P=LM-N=10。因此,平均打孔间隔是3。与对奇偶校验符号进行打孔相比,这种情况下的Turbo码的性能变差了。在为了数据速率匹配而重复插入码符号的FDRT方案中,也会遇到这个问题。
图9是被参照以用来描述在Turbo编码符号的序列经历FDRT处理时可能产生的问题的图。参照图9,如果使用R=1/3Turbo编码器,那么,Turbo编码器依次生成X组的信息符号1,4,7,10,13,16、Y组的奇偶校验符号2,5,8,11,14,17、和Z组的奇偶校验符号3,6,9,12,15,18。除非重复标记的信息符号,相对于奇偶校验符号来说信息码符号含有很小的符号能量。其结果是,Turbo码的性能变差了。这个问题可以通过引入如方程1所表示的初始偏移概念,控制非重复符号位置,然后使不再周期性地重复奇偶校验符号来解决。
图10显示了根据本发明第三实施例的且在将初始偏移概念应用于Turbo编码符号序列的FDRT处理时生成的符号的例子。从图10可以看出,信息符号1,4,7,10,13,16被重复,而奇偶校验码2,5,8,11,14,17或3,6,9,12,15,18没被重复。
(表7) 码率 R=1/2 R=1/3 R=1/4 R=1/5非重复符号之间的距离D2m,m=1,2,3,...3m,m=1,2,3,...4m,m=1,2,3,...5m,m=1,2,3,...偏移控制值+1个符号+1,+2个符号+1,+2,+3个符号+1,+2,+3,+4个符号
表7列出了基于数据速率的偏移控制值,以解决不在从Turbo编码器输出的码符号中重复信息符号时所涉及到的问题。当对信息符号进行打孔时,也会遇到这个问题,但是,如下的描述只限于前面种情况。问题出现在对于R=1/2,D是2或2的倍数的时候,对于R=1/3,D是3或3的倍数的时候,和对于R=1/4,D是4或4的倍数的时候。表7中的“偏移控制值”是为解决上述问题而给出的偏移值。例如,如果R=1/3,那么,指定符号偏移为+1,以使Y组的奇偶校验符号2,5,8,11,14,17不被周期性地重复。类似地,符号偏移为+2使Z组的奇偶校验符号3,6,9,12,15,18不被周期性地重复。偏移控制可以以许多方式来实现。因此,这里所述的偏移控制只是一个例子。偏移控制解决了Turbo码中最重要的信息符号的连续不重复问题,并提高了性能。
下面描述作为偏移控制的一种方式的参数(Ia,Ib)的使用。如上所述,由方程1来确定一帧中的第一重复符号位置Initial Offset_m。根据方程1,参数(Ia,Ib)通过(Ib/Ia)来控制重复间隔(L/Nis)。因此,如果根据数据速率,D=2m,3m或4m(m=1,2,3,...),那么,可以利用(Ib/Ia)确定初始偏移(InitialOffset_m),以设置所需符号重复位置。也就是说,可以根据Turbo码的数据速率通过设置(Ib/Ia)=(Nis/N)*1、(Ib/Ia)=(Nis/N)*2、(Ib/Ia)=(Nis/N)*3和(Ib/Ia)=(Nis/N)*4,以便确定如表7所示的偏移控制值并在考虑了L和N之后通过适当地选择(Ib/Ia)值,来确定初始偏移m。
图11是显示在根据本发明第三实施例的,用于确定在一序列中的经输出码符号的编码器编码之后的一帧中的第一重复符号位置的初始偏移确定操作的流程图。参照图11,在步骤1101中确定码率。码率可以是1/2、1/3或1/4。在步骤1103中,确定输入帧的长度L和输出帧的长度N。L是输入到FDRT模块或从编码器输出的符号的个数而N是从FDRT模块输出的符号的个数。L和N由高层提供。在步骤1105中,由方程1确定最佳(Ia,Ib)。在步骤1107中,从参数(Ia,Ib)中获取初始偏移,并且在步骤1109中执行本发明如上所述的FDRT算法。
图12是显示在根据本发明第四实施例的,用于确定在一序列中的经输出码符号的编码器编码之后的一帧中的第一重复符号位置的初始偏移确定操作的另一流程图。参照图12,在步骤1201中确定码率。码率可以是1/2、1/3或1/4。在步骤1203中,确定输入帧的长度L和输出帧的长度N。L是输入到FDRT模块或从编码器输出的符号的个数而N是从FDRT模块输出的符号的个数。L和N由高层提供。在步骤1205中,根据所确定的数据速率确定是常数的偏移。例如,对于R=1/2,偏移为+1,对于R=1/3,为+1或+2,和对于R=1/4,为+1、+2或+3。在步骤1107中,执行本发明如上所述的FDRT算法。
按照如上所述的本发明,在利用诸如卷积码、线性块码、或Turbo码的纠错码的数据通信系统中,通过控制初始偏移,并因而在一帧内均匀地分布所插入的符号,就可以在简单的结构中使随可变数据速率而改变的一帧中的L个码符号与固定的交织器长度相匹配。因此,可以根据数据速率灵活地发送数据,而不会使性能变差。
虽然通过参照本发明的某些优选实施例,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,在不背离所附权利要求书所限定的本发明的精神和范围的情况下,可以在形式上和细节上对本发明作各种改变。