编码输入序列时用于执行比特咬尾的编码器和方法

文档序号:7511471阅读:412来源:国知局
专利名称:编码输入序列时用于执行比特咬尾的编码器和方法
技术领域
本发明涉及通信系统,更具体地说,涉及在使用turbo码的通信系统中编码输入序列时的比特咬尾。

背景技术
数据通信系统已经持续发展多年了。近来备受关注的这样一种通信系统是使用迭代误差校正码的通信系统。近年来受到关注的一种通信系统是使用turbo(涡轮)码(一种迭代误差校正码)的通信系统。对于指定的信噪比,与使用交替码的通信系统相比,使用迭代码的通信系统常常可以获得较低的误码率(BER)。
在这个发展领域中,持续的和首要的发展方向就是在通信系统中不断地降低为实现指定的BER的信噪比。理想的目标是在信道中达到香农极限。香农极限可看作在信道中使用的数据率,其具有可获得在信道中无错传输的指定的SNR。换句话说,香农极限是对于指定的调制和码率的信道容量的理论范围。
Turbo码的使用提供了相对较低的误差率,然而其工作时的吞吐率较小,因此其大量应用在通信信道中噪声严重的通信系统中,在这种通信系统中,实现近乎无误的传输是首要目标。某些适合turbo码的初期应用舞台是与太空相关的,在此,精确的(理想无错)通信一般被认为是最重要的设计标准。随后,发展的方向朝着发展陆地可用的和用户相关的应用。尽管如此,沿袭太空相关运用的传统,turbo编码环境的焦点继续为获得相关较低的误码平台(ErrorFloor),而不是具体地指向获得更高的吞吐量。
最近地,这个技术的焦点朝着发展turbo码及其变化版本,使其可支持更高吞吐总量,同时在turbo码内容中保留相关较低误码平台。
功能的第一通信设备,另一端是具有解码器功能的第二通信设备。在许多实施例中,这两个通信装置的一个或两个包括解码器和编码器功能(如双向通信系统)。


发明内容
本发明提供一种操作设备和方法,以下将结合至少多副附图对其进行详细描述,并在权利要求书中给出更完整的介绍。
根据本发明的一个方面,提供了编码输入序列时用于执行比特咬尾的编码器,所述编码器包括 用于接收输入序列的缓冲器; 用于接收来自缓冲器的输入序列并编码所述输入序列的turbo编码器; 以及处理模块,基于所述输入序列,用于确定turbo编码器的状态和插入到输入序列的至多一个符号,这样在编码输入序列的第一符号之前turbo编码器的状态和在编码输入序列的最末符号或者插入到所述输入序列的所述至多一个符号之后的turbo编码器的状态是一样的,以及其中 当处理模块确定所述状态时,所述缓冲器用于向turbo编码器提供输入序列; 所述turbo编码器所处的状态是由处理模块在编码输入序列的第一符号之前和编码输入序列的最末符号或者插入到所述输入序列的所述至多一个符号之后确定的。
优选地,第一符号和第二符号中的至少一个仅包括一个比特。
优选地,在所述缓冲器向所述turbo编码器提供输入序列后,所述处理模块用于向turbo编码器的输入序列提供所述至多一个符号。
优选地,所述编码器进一步包括 凿孔模块,用于在turbo编码器输出的编码序列中凿孔至少一个比特。
优选地,根据输入序列,所述处理模块用于判定没有符号需要插入到输入序列,以确保在编码输入序列的第一符号之前turbo编码器的状态和在编码输入序列的最末符号之后turbo编码器的状态是一样的。
优选地,所述编码器进一步包括 与所述处理模块相连的存储器,用于存储运行指令,所述指令用于控制所述处理模块基于输入序列确定所述turbo处理器的状态,使得所述turbo处理器处于当编码输入序列的第一符号的状态和所述turbo处理器处于当编码输入序列的最末符号的状态。
优选地,所述状态是第一状态; 所述输入序列是第一输入序列; 所述至多一个符号是第一至多一个符号; 在编码第一输入序列的第一符号以前和编码第一输入序列的最末符号或已插入到第一输入序列的所述第一至多一个符号以后,所述turbo编码器处于第一状态; 且在编码第二输入序列的第一符号以前和编码第二输入序列的最末符号或已插入到第二输入序列的所述第二至多一个符号以后,所述turbo编码器处于第二状态。
优选地,所述turbo编码器是m态编码器,在此m是整数; 且至多一个符号插入到输入序列以协助turbo编码器执行咬尾。
优选地,所述turbo编码器包括交错器; 并且,如果处理模块判定必需,输入序列的所有符号,还有插入到输入序列的所述至多一个符号,在所述turbo编码器的交错器中经过交错。
优选地,所述编码器在通信装置中实现,且所述通信装置在至少一个卫星通信系统、无线通信系统、有线通信系统和光纤通信系统中实现。
根据本发明的一个方面,提供了当编码输入序列时,用于执行咬尾的编码器,所述编码器包括 turbo编码器,用于接收输入序列且编码所述输入序列或所述输入序列和插入所述输入序列的至多一个零值符号中的一个;以及 处理模块,基于所述输入序列,用于确定turbo编码器的初始状态,且向turbo编码器提供初始状态,这样编码所述输入序列的第一符号之前turbo编码器的初始状态和编码输入序列的最末符号或插入到所述输入序列的所述至多一个零值符号时turbo编码器的结束状态相同。
优选地,第一符号和第二符号中的至少一个仅包括一个比特。
优选地,所述编码器进一步包括 用于接收输入序列的缓冲器,其中, 在所述处理模块确定所述编码器的初始状态后,所述缓冲器将所述输入序列发往所述turbo解码器;以及 当处理模块判定必需时,在缓冲器向turbo解码器提供输入序列之后,处理模块向所述turbo编码器提供所述至多一个零值符号。
优选地,所述turbo编码器为m态编码器,在此m是整数; 且至多一个符号插入到输入序列以协助turbo编码器执行咬尾。
优选地,所述编码器在通信装置中实现,且所述通信装置在至少一个卫星通信系统、无线通信系统、有线通信系统和光纤通信系统中实现。
根据本发明的一个方面,提供了一种编码输入序列时,在编码器中执行咬尾的方法,所述方法包括 确定turbo编码器的状态和插入所述输入序列的至多一个符号,这样编码所述输入序列的第一符号之前turbo编码器的状态和编输入序列的最末符号或如果需要,编码插入到所述输入序列的所述至多一个符号时turbo编码器的状态相同;以及 turbo编码所述输入序列或所述输入序列和所述至多一个符号,如果需要,这样一来在编码所述输入序列的第一符号之前turbo编器的状态和编输入序列的最末符号或如果需要,编码插入到所述输入序列的所述至多一个符号时turbo编码器的状态相同。
优选地,所述方法进一步包括第一符号和第二符号中的至少一个仅包括一个比特。
优选地,所述至多一个符号包是仅包括一个比特的零值符号。
优选地,所述方法进一步包括 交错所述输入序列的全部符号,包括所述至多一个符号,如果需要,当执行turbo编码之后,插入到所述输入序列。
优选地,所述方法运行在通信装置中,且所述通信装置在至少一个卫星通信系统、无线通信系统、有线通信系统和光纤通信系统中实现。
本发明的各种优点、各个方面和创新特征以及具体实施例的细节,将在以下的说明书和附图中进行详细介绍


图1示出了通信系统的一个实施例; 图2示出了通信系统的另一个实施例; 图3和图4示出了执行turbo编码的通信装置的实施例; 图5示出了在多种turbo编码之间性能比较的实施例; 图6示出了可在turbo解码器中实现的Re1.6的第一分量解码器的实施例; 图7示出了双二进制turbo编码器的实施例; 图8示出了在编码输入序列的turbo编码器中执行咬尾的方法的实施例。

具体实施例方式 许多通信系统使用turbo码。当在这样的turbo编码器中执行输入序列的编码时,人们常常希望能够确保编码器的开始和/或至少是结束状态是一个已知的状态。
在编码输入序列的结尾,编码器可采用某些方法回到已知状态,所述方法包括(1)为具有2^m个状态的分量卷积编码器(在此m为整数),在turbo编码器的交错器的外部增加2m比特,(2)如名为″Close two constituent trellis ofa turbo encoder within the interleave block″,专利号为107,085,985的共同受让人(commonly assigned)美国专利所提供的方法。
对于指定的输入序列,当所述编码器的最初和最后状态相同时,可称为咬尾。同样,对于turbo编码信号的解码,前向和后向turbo解码方法依赖于编码输入序列生成turbo编码信号过程中编码器已知的最初和最后状态。
咬尾终止便是用于此目的的,其在输入序列编码的开始和结束时给出相同的状态。在此示出了一个方法用于执行编码器的咬尾终止,不增加任何额外的终止符号(或比特)。
虽然一些方法可为具有特定输入序列块大小的特定类型的turbo码提供咬尾,但在面对不同的块大小时,这些方法几乎全部要重新设计。换句话说,这些方法无法适应输入序列中任意数量的信息比特。
在某些应用中,如LTE编码器,人们希望可支持连续整数范围内的任意数量的信息比特(如Rel.16支持40-5114的数目)。如R1-062157[I]指出的,对于1/7的所有可能信息序列,Re1.6turbo编码器[2]不能提供咬尾状态。
在此,首先来说一下所有turbo码都存在的的相似问题。在此提出了详细的分析用于从所有可能的8种状态的turbo码中选择咬尾编码器。接着,提出了新的方法,其能适应所有可能信息序列并提供咬尾终止,且最多增加一个符号(或比特),该符号能通过turbo编码器的交错模块。
虽然有很多可使用turbo码的潜在应用,在此提出了可用于3GPP信道码以支持任意数量的信息比特的方法。可通过使用本发明方案来支持的比特的数量为例如用于WCDMA和HSDPA的40-5114,用于LTE的更多的比特。
关于UTRA-UTRAN长程演进(LTE)和3GPP系统架构演进(SAE)的其它信息可以在下列的以太网网站上找到 www.3gpp.org 在一个建议的实施例中,当前信道编码使用8状态turbo编码和附加的6个终止比特,并且这6个终止比特未通过turbo编码器的交错。为节省速率损失并改进性能,可将咬尾递归卷积编码器用作turbo编码器的分量编码器。
然而,很多技术运行在这样的假想上,对于任意数量的信息比特,递归卷积编码器不可能具有比特咬尾状态。
在此,提出了新的方法,通过所述方法可为递归卷积编码器执行咬尾以支持任何数量的信息比特。这个新方法的开销或者是不向输入序列种插入额外的符号(或比特)或者至多插入一个假位符号(dummy symbol)(或比特)。此外,插入的一个比特也进行交错。采用这个方法,和其它方法相比没有性能损耗。
数据通信系统的目标是无错地或可接受地低误差率地从一个位置或子系统传输数字数据到另一个。如图1所示,数据可在多种通信系统磁性媒介、有线的、无线的、光纤、铜线和其它种类的媒介中通过多个信道发送。
图1是描述通信系统100的实施例的示意图。
参照图1,通信系统100的实施例是通信信道199,其通信连接位于通信信道199一端的通信装置110(包括具有编码器114的发射器112和具有解码器118的接收器116)和位于通信信道199另一端的另一通信装置120(包括具有编码器128的发射器126和具有解码器124的接收器122)。在某些实施例中,通信装置110和120中的每一个可只包括发射器或接收器。通信信道199可通过各种类型的媒介来实现,例如使用卫星碟形天线132和134的卫星通信信道130,使用收发塔142和144和/或本地天线152和154的无线通信信道140,有线信道150,和/或使用电光(E/O)接口162和光电(O/E)接口164的光纤信道160。另外,可使用一种以上的媒介来实现,连接在一起构成通信信道199。
为降低通信系统中不希望的传输误差,常使用纠错和信道编码方案。通常,这些纠错和信道编码方案包括在发射器中使用编码器的和在接收器中使用解码器。
图2示出了通信系统200的另一实施例。参照图2,通信系统200包括通过通信信道299与另一装置290连接的通信装置210。通信装置210包括编码器221且也可包括解码器。
通过通信信道299与通信装置210连接的另一装置290也可为另一通信装置292,存储介质294(如在硬盘驱动器(HDD)中),或能接收和/或发送信号的任何其它类型的装置。在某些实施例中,信道299是用于在第一时间执行第一信号的发送并在第二时间执行第二信号的接收的双向通信信道。如果需要,也可使用全双工通信,在各个通信装置210和装置290中,可同时发送和/或接收。
通信装置210的编码器221包括turbo编码器和处理模块230。处理模块230可与存储器240连接以存储实现处理模块230执行某些功能的操作指令。通常,基于特定的输入序列,处理模块230可判断turbo编码器应该从哪个状态开始,以在编码输入序列时支持咬尾。
还需要注意的是,处理模块230可按电路精确地实现。可选的,处理模块可在数字信号处理器(DSP)或类似装置使用的软件中精确地实现。在其它的一些实施例中,在不脱离本发明精神和范围的情况下,处理模块230也可又硬件和软件结合的方式实现。
在其它的一些实施例中,处理模块230可使用共用处理装置、个人处理装置或多个处理装置来实现。这样一个处理装置可以是微处理器、微控制器、数字信号处理器、微型计算器、中央处理单元、现场可编程门阵列、可编程逻辑装置、状态机、模拟电路、数字电路和/或任何根据操作指令处理信号(数字和/或模拟)的装置。处理,模块230可与存储器240连接,存储器240用于存储当开始编码输入序列时,能使处理模块230执行合适的使用状态的判定,以确保turbo编码器220执行咬尾操作的操作指令。
这样一个存储器240可为单个存储装置或多个存储装置。这样一个存储器240可为只读存储器、随机访问存储器、静态存储器、动态存储器、闪存和/或可存储数字信息的任何存储器。应注意到,当处理模块230通过状态机、模拟电路、数字电路和/或逻辑电路执行一个或多个功能时,存储器存储的相应操作指令将与包括状态机、模拟电路、数字电路和/或逻辑电路的电路一起植入。
在编码器221中,turbo编码器220用于接收输入序列并编码(1)所述输入序列,或者编码输入序列并在其中插入至多一个零值符号(或比特)。
基于所述输入序列,处理模块230用于判定turbo编码器220的初始状态,为turbo编码器220提供所述初始状态,这样在编码输入序列的第一符号之前turbo编码器220的初始状态和编码输入序列的最末符号或插入所述输入序列的所述至多一个零值符号时turbo编码器220的状态是相同的。
图3和图4示出了执行turbo编码的通信装置300和400的实施例。
参照图3,通信装置300包括当使用turbo码编码输入序列时,用于执行咬尾的编码器。通信装置300包括缓冲器310、处理模块330、turbo编码器320,以及还包括存储器340和凿孔模块350。
缓冲器310用于接收将要用于编码的输入序列。Turbo编码器320用于接收来自缓冲器310的输入序列并编码所述输入序列。基于所述输入序列,处理模块330用于判定turbo编码器320的状态和插入到输入序列中的至多一个符号,这样在编码输入序列的第一符号之前turbo编码器320的初始状态和编码输入序列的最末符号或编码插入所述输入序列的所述至多一个零值符号时turbo编码器320的结束状态是相同的。换句话说,Turbo编码器320用于接收来自缓冲器310的输入序列,编码参考标号301所标识的输入序列或由参考标号302标记的插入的至多一个零值符号(或比特)。当至多一个零值符号(或比特)插入到输入序列时,修正的输入序列可看作扩展的输入序列302。
当处理模块判定状态时,缓冲器310用于向turbo编码器320提供输入序列,并且turbo编码器320所处的状态由处理模块在编码输入序列的第一符号之前和编码输入序列的最末符号或插入所述输入序列的所述至多一个零值符号之后判定。如果需要,凿孔模块350用于在turbo编码器303输出的编码序列中凿孔一个或多个比特。
参照图4,通信装置400使用包括第一分量编码器411和第二分量编码器412,交错器(π)410和凿孔模块450的turbo编码阵列。让u0,u1.....uk-1为输入到turbo码的编码器其中之一(如第一分量编码器411)的输入序列(参考如u401),使得S0,S1.....Sk为对应状态序列。当且仅当S0=Sk时,编码是用于这个指定信息序列的咬尾(或电路)。
向第一分量编码器411和交错器(π)410提供输入序列401。第一分量编码器411的输出如c1421所示。提供交错器(π)410的输出到第二分量编码器412,第二分量编码器412的输出如c2422所示。c1421和c2422的每个都提供给凿孔模块431,在此凿孔c1421和/或c2422的0、1或更多比特以生成输出c′1431和c′2432。如u 401在示意图顶部显示的信息比特,也能作为通信装置400的输出使用。
图5示出了在不同类型的turbo编码之间的性能比较500的实施例。在这个公开示例中,在测定BER(比特误差率)与Eb/N0(每个比特能量Eb与光谱噪声密度N0的比)之间关系的情况下描述性能示意图。在一些其他的通信系统应用中,性能可通过BER(比特误差率)和Eb/N0来表示。术语Eb/N0是数字通信系统中SNR(信噪比)的测量。在观察这些性能曲线时,对于任何指定的Eb/N0(或SNR)都可确定BER,从而提供解码过程中性能的相对简明的陈述。
从[3]引用的图5中的性能曲线显示了采用咬尾编码的好处。此图中描述了一些不同的编码,包括传递函数束缚(transfer function bound)(如参考标号510所示),未编码BPSK(二进制相移键控)(如参考标号511所示),编码BPSK(如参考标号513所示,圈定3条编码BPSK性能曲线),具有未知起始和结束状态的VA(维比特算法)解码器(如参考标号501所示),具有使用6-比特来终止所述编码器的VA解码器(如2个分量编码器各3比特)(如参考标号512所示),VA BCJR(Bahl-Cocke-Jelinek-Raviv)算法3(如参考标号504所示)和咬尾VA解码器503。
图6示出了能在turbo编码器中实现的Re1.6的第一分量编码器600的实施例。
在此使用了如[4-6]中所述的卷积编码器的状态空间实现的定义。根据这个实现咬尾最小编码器的充要条件,在此提出了一种新的方法适应任意数量的信息序列。
考虑速率为k0/n0的m次卷积编码器,令输入序列如下 u=(u0...uN-1,)在此,且输出序列x=(x0,...,xn-1)在此 此外,令St=(S(t)m-1,...,S(t)0)为t时态的编码状态。那么存在被称为编码器状态空间实现的m×m矩阵A,m×k0矩阵B,k0×m矩阵C,k0×n0矩阵D,如, (公式1) 且这个卷积编码器的生成矩阵为 C(A,B,C,D)=G(x)=D+C(x-1Im-A)-1B(公式2) 实例1认为图6中描述了Re1.6turbo编码器中的卷积编码器。编码器有3次且如 在[7]中,给出了用于具有指定块大小的任何信息序列编码器实现咬尾的充分条件。以下,我们证明了这个条件对于最小次数的编码器是必要的(如状态数目不能再减少)。
定理1令矩阵(A,B,C,D)为具有最小次数m的卷积编码器的状态空间实现。当且仅当AN+Im是可逆转时,这个编码器可用于块大小N≥m的任何信息序列咬尾。
证明,令u=(u0...uN-1,)为数目为N的任何信息序列。令(Sm-1(N),...,S0(N))T为使用指定信息序列的编码最终状态,与公式1比较,我们得到 这样,当且仅当时,编码对于指定序列是咬尾的。这表示当且仅当有线性方程系统的解决方法时,编码对于指定序列是咬尾的。
(公式3) 在此Im为m×m二元单位矩阵,另一方面,通过[6]。当且仅当m矩阵B,AB....,Am-1B为线性无关时,次数m为最小。这表示当对于所有数目为N的可能输入次序有N≥m时,

能溢出整个空间{0,1}m。这表示当且仅当AN+Im是可逆时,(公式3)可用于解决所有可能的信息序列。
不存在用于任何turbo码的咬尾状态 定理2给出对于最小次数分量编码器的任何turbo编码器E,存在这样的正整数P,使得E没有给出用于某些数目为tP(t>0)的信息序列的咬尾终止。
证明,令(A,B,C,D)为具有2m状态的指定turbo码的卷积编码器的状态空间实现。因为存在有限数目的m×m二元单位矩阵,在此存在两个正整数u和v,使得Au=Av。假设u<v,那我们获得Au(A(v-u)+Im)=0,令P=v-u,我们得到 a)Au和AP+Im都是不可逆的 b)Au可逆,但AP+Im=0(如不可逆) c)AP+Im可逆,但Au=0。这表示,G(x)=D+B(x-1Im-A)-1C为多项矩阵[8]。因而,编码器是非递归的。这与turbo码的实际定义矛盾[9]。
因此,AP+Im必须为非递归的,此外对于任意整数t>0,假设 AtP+Im=(AP+Im)(A(t-1)P+A(t-2)P+...+Im)是可逆的。那么存在这样的m×m矩阵V使得 (AP+I)(A(t-1)P+A(t-2)P+...+Im)V=Im 也就是说AP+Im是可逆的,其与先前的结论矛盾。因此,AtP+Im也是不可逆的。这样通过定理1,turbo编码器没有给出用于某些数目为tp的信息序列的咬尾。
根据定理2,不需选择用于咬尾目的的其它turbo码。
8状态(m=3)turbo码 在这个情况下,我们研究所有可能用于turbo码的3次卷积编码器,并试图找出哪一个最适合咬尾。让我们回顾两种m×m矩阵的类似处。两个m×m矩阵A1,A2是相似的,如果存在这样的可逆矩阵S,如A1=SA2S-1。容易证明具有状态空间实现(A,B,C,D)和(SAS-1,SB,CS-1,D)的码具有同样的编码器矩阵G(x)(也可见[10])。所有的3×3矩阵组可分割为多类,每类包括所有相似的矩阵。这些类也可分为3大类,即(1)幂零矩阵类,(2)不可逆且幂不为零类,(3)可逆矩阵类。实际上,有14类。因此,我们只需考虑可代表各个类的14个矩阵。
(1)幂零矩阵(3个代表) 明显地,这些矩阵是不可逆的并将不能看作是turbo码的分量编码器。
(2)不可逆且幂不为零(5个代表) 使用这些4状态矩阵的编码器将给出不连贯的存储。具有不连贯的存储的编码器将不会给出turbo码需要的最好的d2[10]。
因为A83+I3是不可逆的,根据定理1,编码器(A,B,C,D)既不是最小次数,对于某些信息序列也不是咬尾的。例如,a)取B=[1 1 1]T,我们得到BA=
T并且BA2=[1 0 1]T,那么(公式3)没有用于数目大于2的多个信息序列的解决办法;b)取B=[1 1 0]T,那么编码器可减少到具有和的2次编码器(A′B′C′D′)。
(3)可逆(6个代表) A9=I3其给出不连贯的存储编码器。
使用这些矩阵的编码器具有不连贯存储器。
Re1.6的turbo码使用使用A13作为状态矩阵的卷积编码器。更进一步我们得到, 图7示出了二元turbo编码器700的实施例。二元turbo编码器[11]在二元turbo编码器700中使用A14作为其分量编码器。而且,我们得到 更进一步地,我们可获得以下命题 命题1令A=A13或A14。那么对于任何正整数n=7q+i,0≤i≤6,
我们可扩展命题1到以下。
定理2令m=2,3,4,5,6。存在m×m二元矩阵A,使得此外,对于任何这样的矩阵A和任何正整数n=pq+i,0≤i≤p-1,在此,p=2m-1,
用于任意信息长度的新咬尾终止方法。
用于任意数目的信息符号的推荐咬尾终止。
执行咬尾的新的途径基于命题1。下面我们仅给出用于m=3的方法,因为大多数可能的3GPP LTE可适应8状态的turbo码。对于m=2和m>3的情况,采用的方法相同。
令(A,B,C,D)为8状态卷积编码器的状态空间实现,其中A与最后部分列出的A13或A14相似。
(1)预先计算对于i=1,2,3,4,5,6的下列状态 (2)将以上的42索引状态对作为查找表L(i,b(2))=Si,b预先存储,在此,b=1,2,3,4,5,6,7且b(2)为b的3比特二元表示。此外,令L(i,0)=0状态。
(3)用于信息块大小=k的咬尾编码方法。令u0,u1...uk-1为信息符号(或比特)。
(a)令m=(k mod(7)),如果m=0,再插入一个符号uk=0并使N=K+1且M=1,否则令N=K且M=m。
(b)根据Sinitial状态编码信息符号u0,u1...uk-1查找最后状态Sfinal(并不存储编码符号)。然后采用查找表查找初始状态S0=L(M,Sfinal-AMSinitial)。在某些实施例中,如果需要,Sinitial状态可选择为零。
(c)使用S0作为初始状态来编码u0,u1...uN-1。
在此提出的新的咬尾终止方法在先前方法之上提供了显著的进步。这个新的方法和其它方法相比提供了更多的灵活性。例如,在此提供的咬尾终止的方法可适应任何块大小或任何数目的输入序列(也就是说输入序列中任意数目的信息符号或比特)。另外,在此提出的新方法与其它方法相比具有更少的开销。只需要至多一个符号(或1比特)的开销。在大多数情况下,根本没有开销,如不需要额外的符号(或比特)确保咬尾终止。同样在此提供的新的方法与其它如3GPP Rel.6 turbo码和其他turbo码中使用的仅仅增加2m开销终止符号(或比特)用于2m(如2^m)状态卷积码的方法相比,具有相对更好的吞吐量或数据率。那些仅仅增加2m开销终止符号(或比特)的方法减少了吞吐量和数据率。在此提供的新的方法与其它方法相比还具有相对更好的性能。在此提出的新方法中,所有的比特(包括可能插入到输入序列中的至多一个符号(或比特))在turbo编码中可交错。与其它方法如那些使用2m开销终止符号(或比特)(如在一个8状态编码器中需要6个终止符号或比特,各个分量编码器36个终止符号或比特)比较,那些2m开销终止符号(或比特)是不可交错。在此提出的新方法中,输入序列的所有符号或比特(包括可能插入到输入序列中的至多一个符号(或比特))都经过交错。
由上可知,没有现有技术方法可为所有分量编码器(例如在turbo编码器中使用的)提供所有信息序列大小的咬尾操作的方法。
在此,产生了可用于turbo编码器的用于所有可能数目的输入序列的咬尾终止的新的方法。在一个实例中,可运用于3GPP LTE turbo编码使用的所有的输入序列数目。另外,仅需要至多一个符号或比特插入到输入序列以获得咬尾功能。其它在先技术方法,当使用其分量编码器具有2m(如2^m)状态的turbo编码器操作时,需要至少2m符号或比特。
对于一个实例,当考虑3GPP LTE turbo编码时,那么根据在此提出的新方法,至多一个假位符号或比特添加到1/7的所有可能输入序列数目。在(3GPPLTE turbo编码)那个应用中,没有额外的符号或比特(例,根本没有插入)需要添加到另外6/7的所有可能输如序列数目。这个新方法允许对于包括任意数目的信息块的输入序列的咬尾终止。在此提出的新的咬尾终止的方法可用于支持其输入序列中具有任意信息比特的turbo编码系统。实际上,在此提出的新的方法可运用于支持任意数目的信息比特的所有通信系统。例如,设计用于3GPP LTE的turbo编码,其支持多种按大小排列的输入序列数目,可从这个新方法的性能中明显获益以适应任何输入序列数目。
此外,在此提出的新方法与现有技术相比,与在turbo编码器的交错器以外执行终止相比,没有引入不希望的损失(如,在这些现有技术方法中,用于终止的至少2m符号或比特不经过turbo编码器的交错器)。
图8描述了在编码输入序列的turbo编码器中用于执行咬尾的方法800的实施例。在步骤810中,方法800始于判定turbo编码器的状态和用于插入到输入序列中的至多一个符号,这样在编码输入序列的第一符号之前的turbo编码器的状态和编码输入序列的最末符号或如果需要,编码插入到输入序列中的至多一个符号时的turbo编码器的状态相同。接着,如步骤820所示,方法800turbo编码输入序列或输入序列和至多一个符号(如果需要),这样在turbo编码器处于编码输入序列的第一符号之前的状态,或者处于编码输入序列的最末符号或如果需要,插入到输入序列的至多一个符号之后的状态。
本发明的描述过程还借助方法步骤的方式来描述特定功能的执行过程及其相互关系。为便于描述,文中对这些功能性模块和方法步骤的边界和顺序进行了专门的定义。在使这些功能及其关系可正常工作的前提下,也可重新定义他们的边界和顺序。但这些对边界和顺序的重新定义都将落入本发明的主旨和所声明的保护范围之中。
本发明的描述过程借助功能性模块的方法来描述某些重要功能的执行过程。为便于描述,文中对这些功能性模块边界进行了专门的定义。在使这些功能可正常工作的前提下,也可重新定义他们的边界。类似地,流程图中的步骤也是为描述某些重要功能而专门定义的。为将这些流程图的应用得到扩展,可重新定义流程图中模块的边界和顺序,同时,重新定义后,这些模块仍然完成原来的重要功能。这种对功能性模块和流程图步骤和顺序的重新定义也都将落入本发明的主旨和所声明的保护范围之中。
本领域技术人员知悉,可通过离散元件、特定用途集成电路、执行适用软件的处理器以及其他类似物及其组合来实现本发明的这些功能模块以及其它所示的模块、原理框图和组件。
此外,本发明是通过一些实施例进行描述的,但本发明不局限于这些实施例。本领域技术人员知悉,在不脱离本发明的精神和范围的情况下,可以进行各种改变或修改。
参考文献 [1]Rel’6 turbo编码尾码移除的系统影响,R1-062157。
[2]3GPP TS 25.212 V6.8.0(2006-06),第三代合作伙伴项目;技术规范组无线接入网;多路技术和信道编码(版本6)。
[3]John B.Anderson和Stephen M.Hladik,“Tailbiting MAP Decoders,”IEEE Journal on Selected Areas in Communications,卷16,编号2,1998.2,页码297-302。
[4]J.L.Massey和M.K.Sain,″Codes,automata,and continuous systemsExplicit interconnections,″IEEE Trans.Automat.Contr.,卷AC-12,编号6,页码644-650,1967。
[5]Robert J.McEliece,The Algebraic Theory of Convolutional Codes,Handbook of Coding Theory,R.Brualdi,W.C.Human和V.Pless(eds.).ElsevierScience Publishers,阿姆斯特丹,荷兰,1998。
[6]J.Rosenthal和E.V.York,″BCH Convolutional Codes,″IEEETransactions on Information Theory,卷145,编号6,页码1883-1842,1999.9。
[7]C.Weiβ,C.Bettstetter和S.Riedel,″Code Construction and Decoding of10 Parallel Concatenated Tail-Biting Codes,″IEEE Transactions on InformationTheory,卷47,编号1,页码366-386,2001.1。
[8]H.Gluesing-Luerssen和G.Schneider,″State space realizations andmonomial equivalence for convolutional codes″,arXivcs.IT/0603049,2006.3。
[9]Claude Berrou,Alain Glavieux和Punya Thitimajshima,″Near Shannon15 limit error-correcting coding and decodingturbo codes″,Proc.of IEEE ICC′93,日内瓦,1993.5,页码1064-1070。
[10]C.Fragouli和R.Wesel,″Turbo-Encoder Design for Symbol-InterleavedParallel Concatenated Trellis-Coded Modulation,″IEEE Transactions onCommunications,卷49,编号3,页码425-435,2001.3。
权利要求
1、一种编码输入序列时用于执行比特咬尾的编码器,其特征在于,所述编码器包括
用于接收输入序列的缓冲器;
用于接收来自缓冲器的输入序列并编码所述输入序列的turbo编码器;
以及处理模块,基于所述输入序列,用于确定turbo编码器的状态和插入到输入序列的至多一个符号,这样在编码输入序列的第一符号之前turbo编码器的状态和在编码输入序列的最末符号或者插入到所述输入序列的所述至多一个符号之后的turbo编码器的状态是一样的,以及其中
当处理模块确定所述状态时,所述缓冲器用于向turbo编码器提供输入序列;
所述turbo编码器所处的状态是由处理模块在编码输入序列的第一符号之前和编码输入序列的最末符号或者插入到所述输入序列的所述至多一个符号之后确定的。
2、根据权利要求1所述的编码器,其特征在于,第一符号和第二符号中的至少一个仅包括一个比特。
3、根据权利要求1所述的编码器,其特征在于,在所述缓冲器向所述turbo编码器提供输入序列后,所述处理模块用于向turbo编码器的输入序列提供所述至多一个符号。
4、根据权利要求1所述的编码器,其特征在于,进一步包括
凿孔模块,用于在turbo编码器输出的编码序列中凿孔至少一个比特。
5、根据权利要求1所述的编码器,其特征在于,基于输入序列,所述处理模块用于判定没有符号需要插入到输入序列,以确保在编码输入序列的第一符号之前turbo编码器的状态和在编码输入序列的最末符号之后turbo编码器的状态相同。
6、一种当编码输入序列时,用于执行咬尾的编码器,其特征在于,所述编码器包括
turbo编码器,用于接收输入序列且编码
所述输入序列;
或所述输入序列和插入所述输入序列的至多一个零值符号中的一个;以及
处理模块,基于所述输入序列,用于确定turbo编码器的初始状态,且向turbo编码器提供初始状态,这样编码所述输入序列的第一符号之前turbo编码器的初始状态和编码输入序列的最末符号或插入到所述输入序列的所述至多一个零值符号时turbo编码器的结束状态相同。
7、根据权利要求6所述的编码器,其特征在于,第一符号和第二符号中的至少一个仅包括一个比特。
8、根据权利要求6所述的编码器,其特征在于,进一步包括
用于接收输入序列的缓冲器,以及
在所述处理模块确定所述编码器的初始状态后,所述缓冲器将所述输入序列发往所述turbo解码器;以及
当处理模块判定必需时,在缓冲器向turbo解码器提供输入序列之后,处理模块向所述turbo编码器提供所述至多一个零值符号。
9、一种编码输入序列时,在编码器中执行咬尾的方法,其特征在于,所述方法包括
确定turbo编码器的状态和插入到所述输入序列的至多一个符号,这样编码所述输入序列的第一符号之前turbo编码器的状态和编码输入序列的最末符号或如果需要,编码插入到所述输入序列的所述至多一个符号时turbo编码器的状态相同;以及
turbo编码所述输入序列或所述输入序列和所述至多一个符号,如果需要,这样一来在编码所述输入序列的第一符号之前turbo编码器的状态和编码输入序列的最末符号或如果需要编码插入到所述输入序列的所述至多一个符号时turbo编码器的状态相同。
10、根据权利要求9所述方法,其特征在于,进一步包括
第一符号和第二符号中的至少一个仅包括一个比特。
全文摘要
本发明涉及编码输入序列时用于执行比特咬尾的编码器和方法。在此提出了新方法,对于大多数情况,根本不需向输入序列插入额外的符号以确保turbo编码器根据咬尾运行(如,在此turbo编码器的起始和结束状态相同)。在最坏的情形中,只需要单个符号(或单个比特)以插入到输入序列。其中,所有输入序列的输入比特在turbo编码中都是可交错的。在至多一个符号(或1比特)需要插入到输入序列的例子中,那时的至多一个符号(或1比特)在turbo编码中也是可交错。此外,在此的这个方法可适用于任何数目的输入序列以获得咬尾。
文档编号H03M13/29GK101562457SQ200710180618
公开日2009年10月21日 申请日期2007年9月28日 优先权日2006年9月28日
发明者巴中·申, 塔克·K·李 申请人:美国博通公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1