专利名称:Turbo码混合交织器的制作方法
技术领域:
本发明一般涉及以高处理增益在系统中创建时间分集的方法。更具体地说,本发明涉及turbo码交织映射的系统和方法,其中减少了将每个组成编码器的存储寄存器刷新成全零状态所需要的尾比特数目。
背景技术:
在多种数据通信系统(包括话音或者非话音的)中,表明当传输信息时信号分集或冗余改善了性能而不损害数据传输系统的其它方面。公知的添加时间分集的两种技术是交织和前向纠错(FEC)编码。
交织处理是将输入数据序列重新排序成另一个序列。例如(01234567)←IN(30671524)]]>其中数学算符IN[J]通过交织器IN的操作将有限输入序列的每个比特或码元的原位置变换到一个新位置J。这种实现时间分集的重新排序处理被称作交织,并可以以多种方式来执行。公知的两种典型的交织方法是块交织和随机交织。
在传输目的地处,信号被再次重新排序,将数据序列按原来顺序放回。这种逆处理被称作去交织。
表现出最佳性能的编码技术中的最新发展是turbo码。存在多种turbo码交织器设计并在解码时要求更低的复杂性。三种最常用的交织器是1)块交织器;2)伪随机交织器;和3)S随机交织器。
最佳执行的交织器是S随机交织器。S随机交织器使用不将一定序列长度内的相邻位置映射到具有相同长度的相邻位置上的性质。这使得序列长度尽可能地大。所有的交织器设计需要一组特定的描述输入序列大小和重新排列的规则。
与交织结合,FEC编码改善了被相干解调的信号性能。FEC编码将附加冗余添加在原始数据序列中。在经扩频空中接口进行通信的通信系统中,冗余已经出现在共享频谱传输信道中。FEC编码器是依靠节点或状态和延迟寄存器的一个有限状态机。寄存器之间的预定转换定义了一个给定数据输入可以生成一个输出的路径。用来说明用于卷积编码数据的编码和解码技术的一种普通方法是使用本领域计数人员公知的格栅图。格栅图是状态机图的无限重复并在图1中图示。
一般使用最大似然算法来执行解码,该算法依赖于用于每一电平和每个选定节点或状态的格栅结构和路径状态或量度。卷积编码的任一个码字对应于沿着格栅图中一条路径的码元。在格栅的每个状态和在每个电平上,执行添加-比较-选择操作以选择最佳路径和状态。在多个接收码元上装配格栅。在积累预定数量的码元之后,确定发现具有最小误差的格栅路径。利用编码器通过强制编码器返回初始全零状态,进行格栅中所有比特的最终判决。通过在编码之后将零尾比特插入有限比特流的尾部实现这一操作。这一处理被称作“拖尾”。
在最后一个节点上开始执行称作“链接返回”的处理,跟踪判决路径从最后一个判决返回第一个判决。这种解码方法确定原先被发送的是哪一个码元。格栅结构引入了冗余并累计既往历史。
现有技术的turbo编码器在图2中图示。编码器包括平行地与turbo码交织器连接的第一和第二系统递归卷积码(RCS)编码器,turbo码交织器连接在第二递归卷积编码器之前。在每个编码器中使用的两个递归卷积编码被称作组成编码器。第一编码器重新排序原先顺序中的输入信息比特 而第二编码器重新排序由turbo码交织器改变顺序后的输入比特 输入信息序列 始终通过一条信道发送。根据数据传输速率,在传输 之前两个编码器的输出可以被“穿孔(puncture)”。穿孔是从输出中删除较低抽头的交替输出(第一和第二编码器 的处理。这个处理建立一个编码速率。
turbo编码交织器是用没有重复的序列长度的重新排序定义的一个扰码器。一个完整的序列被输入给交织器并以预定的顺序输出。
在图3和图4中图示和描述了现有技术的拖尾处理。如图3所示,用于每个编码器的尾比特是从每个相应编码器反馈的寄存器获得的。因为每个组成编码器的寄存器内容在拖尾操作的开始时不同,每个编码器必需被分别地刷新。如图4所描述的,在信息比特被编码之后每个编码器(在图3中)分别地和排它地被刷新。每个编码器提取和接收它自己的尾比特。因此,如果m等于一个编码器的状态或寄存器存储器的数量,一个编码器需要m个尾比特,两个编码器需要2m个尾比特。
现有技术的turbo编码解码器在图5中图示。在接收到解调软值信号 之后,来自第一组成编码器用于系统(信息)和校验比特 的软判决信息被输入给第一组成解码器。第一组成解码器生成更新的用于信息比特的软判决似然值 它和信息比特一起被输入给解码器交织器。第二组成解码器的输入包括交织的软值序列 和 以及来自第二组成编码器的奇偶校验比特 第二解码器的输出改善了从第一组成解码器的输出提取的软判决似然值,并作为一个迭代处理在由turbo解码器交织器重新排序之后反馈回第一组成解码器。在完成解码操作之后获得第二组成解码器的输出
如上所述,turbo码交织器的使用要求在有限序列长度上执行编码。为了编码这样一个有限信息序列,turbo编码器中的两个组成RSC编码器都必需在用于格栅终止的全零状态中开始和结束。然而,由于turbo码交织器的存在,很难使用相同的格栅比特同时强制两个组成编码器在全零状态中终止。大多数现有技术的turbo编码器必需使用以多个尾比特终止它们的信息序列。尾比特被视为一个麻烦事,并被视为turbo码序列的额外开销。
在现有技术中人们早已认识到刷新turbo码编码器以及使它们的格栅返回初始状态的困难。例如,Blackert等人的题为“turbo码终止和交织器条件”的文章、Divsalar等人的题为“PSC应用中的turbo码”的文章、以及Barbulescu等人的题为“将turbo码中的格栅终止于相同状态”的文章中都认识到将多个编码器的格栅返回到初始状态时存在的问题。但是,这些现有技术的方案都没有提供将多个编码器的格栅返回到其初始状态而不降低编码器效率的合适方法。
因此,需要一种并不需要多个尾比特而将每个组成编码器强制到全零状态的turbo码交织器。
发明内容
本发明涉及一种具有迭代系统组成编码器的turbo码混合交织器。该系统和方法编码一个有限比特帧,而不需要多个尾比特以将每个编码器的寄存器刷新成全零状态。混合交织器通过为两个组成编码器使用相同的尾比特减少了turbo码开销,改善了最佳turbo交织器的性能。
因此,本发明的一个目的是提供一种数据传送的方法,其中至少一个大小为N个有序比特的数据序列由具有混合交织器(19)的turbo码编码器(17)进行处理,该方法包括步骤a)利用具有多状态寄存器的第一编码器(21)编码该输入比特组以提供第一输出;b)利用所述混合交织器(19)选择性地重新排列该输入比特组以提供一S随机重新排列的输入比特组,所述交织器重新排列整数I(k)使得一旦重新排列,|I(k)-I(k-nL)|的值是不可被L所除尽的,其中L=2m-1,n被定义成满足k-nL≥0且nL≤S的一正整数,且S是一预先设定的任意值;c)利用具有多状态寄存器的第二编码器(23)编码该重新排列的输入比特组以提供第二输出;以及d)利用开关切换该第一编码器(21)和该第二编码器(23)的输入,使得第一输入和来自该第一输出的反馈在该第一编码器(21)进行切换,而第二输入和来自该第一输出的反馈在该第二编码器(23)进行切换。
本发明进一步的目的是提供一种数据传送的方法,其中至少一依序排列比特dk=±1的数据序列由具有混合交织器(19)的M状态turbo码编码器(17)进行处理,该方法包括步骤a)利用该交织器接收一数据序列;b)定义该混合交织器帧大小N;c)将该数据序列比特逐行地写成p组不交集且具有b大小的子集Si,其中,P=M-1,i是由0到p-1的整数,且b是大于或等于N/p的最小整数值,其中,Si={dk|,kmod p=i}形成一个b行p列的区块,其中k是由1到b的整数,使得一子集合的每一个元素在同一列中;e)根据k为由1到b的随机整数I(i)的一序列,置换在同一列块中的子集比特,使其满足条件1)|I(k)-I(k-j)|>S,其中S是一预先决定的任意值且j是定义为一满足0<j≤S且k-j≥0的正整数,2)nL≤S,其中L相等于编码器寄存器状态值减1,且n是一定义为一满足k-nL≥0的正整数;和3)|I(k)-I(k-nL)|≠jL,其中,如果不为“真”,则重复步骤(e);以及f)从上述块中逐行的读出一交织器的输出序列。
在阅读对优选实施例的详细说明之后,该系统和方法的其它目的和优点对于本领域的技术人员来说将是显然的。
图1是用于一个4状态RSC编码器的现有技术格栅图;
图2是现有技术的turbo码编码器的系统图;图3是显示有拖尾的现有技术的四状态编码器的系统图;图4是现有技术拖尾方法的流程图;图5是现有技术turbo码解码器的系统图;图6是使用本发明的系统和方法带有一个混合交织器的turbo码编码器的系统图;图7是实现本发明的交织器方法的流程图;图8是由本发明生成的用于4状态turbo码编码器的16帧大小的交织序列,S=2和L=4;图9是图8交织序列的映射;图10是被验证的图8的16帧大小的交织序列;图11是实现本发明的拖尾方法的流程图;和图12是一个可选实施例的流程图。
具体实施例方式
如图6所示根据本发明教导的带有混合交织器19的turbo编码器17使用单个拖尾比特操作25将第一和第二RCS组成编码器21和23终止到全零状态。本发明17使用每个组成编码器21和23的循环性质,并保持最佳turbo交织器的性能。带有混合交织器19的turbo码编码器17减少了每个组成编码器21和23格栅终止所必需的附加尾比特开销。
图6和图7描述了混合turbo码交织器19的系统和方法。过程51以接收用于编码的输入数据序列27开始。选择编码序列帧的大小N(步骤55)。状态大小和穿孔速率(编码速率)与混合交织器19无关。混合交织器19生成用于重新排序的随机整数I(k)(步骤57)。
如图8和图9所示,为每个帧29的位置311-N逐比特地执行随机整数序列的生成。表示为I(k)的随机整数的生成(步骤57)是
1≤I(k)≤N 等式(1)其中对于交织器序列中的每个映射33的位置351-N,k=1,2,……,N。当前选择I(k)必需符合下述条件A(步骤59),B(步骤63)和C(步骤65)。
条件A|I(k)-I(k-j)|>S 等式(2)其中0<j≤S 等式(3)和k-j≥0 等式(4)条件A的等式(2)表示S随机交织器的性质。S是一个任意值。
条件B|I(k)-I(k-n·L)|≠j·L 等式(5)(步骤63)其中n和j是符合下式的正整数k-n·L≥0; 等式(6)和n·L≤S; 等式(7)(步骤61)由在turbo码编码器中使用的组成编码器确定L。例如,在八状态turbo编码器中使用L=7。
条件Ckmod2m-1=I(k)mod2m-1k 等式(9)(步骤65)其中m是组成编码器中存储器的大小。对于4和8状态编码器,m分别等于2和3。重复上述步骤直到选择(步骤67)和输出(步骤69)用于混合交织器19的所有整数I(k),k=1,2,…,N(步骤66)。
上述系统和方法的一个例子在图8、9和10中图示。根据本发明的教导,使用带有混合交织器19的4状态turbo码编码器17的大小为16的有序帧被重新排序,其中S等于2和L等于4。混合交织器19满足条件A和B。在图10中使用条件C验证混合交织器19的输出37,以便在将输入27信息序列的索引号除以2m-1之后,结果剩余序列39A等于由于交织映射索引33的相应剩余序列39B。一旦如51所示指定turbo码混合交织器19,根据混合交织器19重新排序信息比特27,以便第二组成编码器23接收输出37。
图6和图11中描述了为第一和第二组成编码器21和23使用相同尾比特终止格栅的本发明的方法。如上所述,用两个编码器编码信息比特。第一组成编码器21在信息比特27的原先顺序上对其进行编码。第二组成编码器23对根据混合交织器19重新排序37的信息比特进行编码。第一和第二组成编码器21和23的输出被穿孔和多路复用,生成一个输出(参见图2)。
为两个组成编码器使用相同尾比特的格栅终止过程81开始于得知所有的信息比特已经由第一和第二组成编码器21和23编码(步骤83)。此时,在编码方法中,两个编码器的寄存器内容是相同的。第一和第二编码器21和23将原始信息27和重新排序比特流37的输入切换成来自第一编码器21的反馈41。用于拖尾处理的第一编码器21输出 和第二编码器23输出 与信息输出 的穿孔在信息比特27和37的编码21和23的过程中相同。在开关43和45切换之后,第一编码器21从它自己的寄存器接收经过反馈41的尾比特(步骤85)。到第二编码器的尾比特没有通过混合交织器19交织,并与在第一编码器21中用于格栅终止的尾比特41相同(步骤87)。
对于M状态编码器,需要log2M个尾比特以将第一21和第二23编码器中所有的寄存器刷新成全零状态。使用L=log2M,表1显示所需要的尾比特数量和对于4和8状态编码器的尾编码码元的总数。
表1对于带有4状态组成编码器的1/2速率和1/3速率turbo码编码器,本发明17分别消除了4个和6个尾比特。与现有技术所需要的相比,对于带有8状态组成编码器的1/2速率和1/3速率的turbo码编码器,本发明17分别消除了6个和9个尾比特。
带有混合交织器的turbo码编码器产生比现有技术的S随机交织器更好的性能,因为在条件B中提出的规则避免了turbo码低加权分配的最坏情况,而条件A保留了最佳特性。因为混合交织器19导致对于第一和第二组成解码器21和23在尾部开始时相同的格栅状态序列,使用单个m比特尾部序列来将第一和第二编码器21和23刷新成全零状态是可以接受的。包括从第一组成解码器生成的尾比特的非固有信息
被传送给第二组成解码器,这提高了整体性能(参见图5)。
举例来说,如果原始信息序列是x→N={1011010001110101}.]]>
由混合交织器19重新排序后的信息序列是x→IN={0001011110101011}.]]>该信息序列由第一和第二组成编码器21和23编码。第一组成编码器21对在原始顺序中的输入 进行编码,而第二组成编码器对交织器19输出的重新排序后的 进行编码。
从第一编码器21获得的格栅状态序列是{2 3 3 3 1 0 0 0 0 2 1 0 0 2 3 3 1 0}。
从第二编码器23获得的格栅状态序列是{0 0 0 2 3 3 3 3 3 0 0 2 3 3 3 1 0}。
如上所示,由于混合交织器19每个格栅状态序列的最后两个状态(四个比特)是相同的。这允许第一和第二组成编码器21和23接收导致turbo编码处理开销减少的相同尾比特。
条件C导致在编码信息比特之后两个组成编码器的格栅状态是相同的。这允许相同的尾比特用于两个组成编码器,导致因为尾比特的turbo编码开销的减少。另外,如上所述使用相同的尾比特对于一个交织解码器是所希望的,其中交织器的设计基于一个S随机交织器。虽然本发明改善了turbo码性能,它的存储器要求与S随机交织器是相同的,存储器存储要求与交织器大小成比例。
在图12中描述了一个可选实施例。
用D表示块大小为N的二进制比特的信息序列,以便
D={d1,d2,...,dN}其中dk=±1 等式(10)提供一个M状态turbo编码器,其中M等于4或8,我们可以将信息序列D划分成p个不相交子集S,其中p=M-1,如下式这样S0={dk|,kmodp=0} 等式(11)S1={dk|,kmodp=1} 等式(12)…Sp-1={dk|,kmodp=p-1} 等式(13)其中对于4状态和8状态turbo码,p被分别设置为3和7。上述划分方法类似于上述陪集划分。p的值对于每种状态的turbo码是指定的。
每个子集具有[N/p]的块大小,其中[N/p]表示大于或等于N/p的最小整数。使用任意交织器映射重新排列每个子集。然后,我们可以组合所有的单个子集以获得表示为I的整个交织器输出,如下<pre listing-type="program-listing">count=0;for k=1Block_size of subsetfor I=1pifI=p I(count)=S0(k) else I(count)=Si(k) end if Count=count+1 if count=N exit end end</pre>
其中Si(k)是子集Si的第k个交织输出比特,S0(k)是子集S0的第k个交织输出比特。包括划分和组合子集的上述程序可以使用[N/p]行和p列的块交织器被重新图示如下1)信息比特被以行方式在块交织器中存储如下写
S1S2S3S02)根据给定的交织器类型(原则上可以是任意一种候选交织器),在每个列块中重新排列比特。例如,将条件A和B应用于每个列块;在这些情况下不需要条件C。
2)按顺序如下所示逐列读取该阵列,以将其输入是交织输出序列的第二组成编码器驱动成如同没有交织原始信息序列的状态。
读
S1S2S3S0虽然已经以优选实施例的形式描述了本发明,在权利要求书中所定义本发明范围内的其它变型对于本领域的技术人员来说将是显而易见的。
权利要求
1.一种数据传送的方法,其中至少一个大小为N个有序比特的数据序列由具有混合交织器(19)的turbo码编码器(17)进行处理,该方法包括步骤a)利用具有多状态寄存器的第一编码器(21)编码该输入比特组以提供第一输出;b)利用所述混合交织器(19)选择性地重新排列该输入比特组以提供一S随机重新排列的输入比特组,所述交织器重新排列整数I(k)使得一旦重新排列,|I(k)-I(k-nL)|的值是不可被L所除尽的,其中L=2m-1,n被定义成满足k-nL≥0且nL≤S的一正整数,且S是一预先设定的任意值;c)利用具有多状态寄存器的第二编码器(23)编码该重新排列的输入比特组以提供第二输出;以及d)利用开关切换该第一编码器(21)和该第二编码器(23)的输入,使得第一输入和来自该第一输出的反馈在该第一编码器(21)进行切换,而第二输入和来自该第一输出的反馈在该第二编码器(23)进行切换。
2.根据权利要求1所述的方法,更包含步骤针对各该输入比特组产生一组尾比特;以及应用该尾比特组重新设定该第一与第二编码器的寄存器。
3.根据权利要求1所述的方法,其中该选择性的重新排列包含步骤a)接收复数个N信息比特,其中N为一正整数;b)定义该混合交织器帧大小N;c)产生随机整数I(k),k为1到N,以满足条件1)|I(k)-I(k-j)|>S,其中S是一预先决定的任意值且j是定义为一满足0<j≤S且k-j≥0的正整数,2)nL≤S,其中L等于编码器寄存器状态值减1,且n是一定义为k-nL≥0的正整数,如果不为“真”,则进行步骤4;3)|I(k)-I(k-nL)|≠jL,如果不为“真”,则重复步骤(c1)到(c3),否则进行步骤4;4)针对每一个随机整数I(k),k mod 2m-1=I(I)mod 2m-1,其中2m为编码器其中之一的寄存器状态值,如果不为“真”,则重复步骤(c1)到(c4);以及d)输出被置换的顺序交织器数据序列以供编码。
4.根据权利要求2所述的方法,其中更包括步骤a)确认经由该第一与第二编码器的编码已经完成;b)切换该第一与第二编码器的输入分别从一信息比特流与一置换顺序比特流到来自该第一编码器最后一级的共同反馈;以及c)递增由该回授所接收的尾比特的数目直到该尾比特的数目大于该第一编码器所用暂存器的数目,否则,重复步骤(b)到(c)。
5.如权利要求1所述的方法,其中dk是该N比特组的一输入比特且dk=±1,该选择性重新排列更包括步骤针对一M状态turbo编码器将该比特组排列成p个不交集且具有b大小的子集Si,其中,P=M-1,i是由0到p-1的整数,且b是大于或等于N/p的最小整数值,Si={dk|,k mod p=i};组合子集Si以形成一个b行p列的区块,其中k是由1到b的整数,使得一子集合的每一个元素在同一列中;在该列重新排列之后输出该行以产生一交织器重新排列的输入比特组。
6.一种数据传送的方法,其中至少一依序排列比特dk=±1的数据序列由具有混合交织器(19)的M状态turbo码编码器(17)进行处理,该方法包括步骤a)利用该交织器接收一数据序列;b)定义该混合交织器帧大小N;c)将该数据序列比特逐行地写成p组不交集且具有b大小的子集Si,其中,P=M-1,i是由0到p-1的整数,且b是大于或等于N/p的最小整数值,其中,Si={dk|,k mod p=i}形成一个b行p列的区块,其中k是由1到b的整数,使得一子集合的每一个元素在同一列中;e)根据k为由1到b的随机整数I(i)的一序列,置换在同一列块中的子集比特,使其满足条件1)|I(k)-I(k-j)|>S,其中S是一预先决定的任意值且j是定义为一满足0<j≤S且k-j≥0的正整数,2)nL≤S,其中L相等于编码器寄存器状态值减1,且n是一定义为一满足k-nL≥0的正整数;和3)|I(k)-I(k-nL)|≠jL,其中,如果不为“真”,则重复步骤(e);以及f)从上述块中逐行的读出一交织器的输出序列。
全文摘要
一种带有混合交织器的turbo码编码器,所述混合交织具有两个迭代系统组成码(RSC)编码器。该系统对有限信息比特序列编码,而不需要多个尾比特来将每个编码器的寄存器刷新成全零状态。该混合交织器通过仅使用单个尾比特序列减少了turbo码开销。通过仅使用单个m比特尾部,混合交织器改善了误比特率(BER)。
文档编号H03M13/29GK1614898SQ20041008334
公开日2005年5月11日 申请日期1999年10月12日 优先权日1998年10月13日
发明者辛承爀 申请人:交互数字技术公司