一种Turbo码的有限长度循环缓存的速率匹配方法

文档序号:7511605阅读:404来源:国知局
专利名称:一种Turbo码的有限长度循环缓存的速率匹配方法
技术领域
本发明涉及通信领域,更具体地涉及一种Turbo码的有限长度循环缓存的速率匹配方法。

背景技术
在无线通信系统中,信道编码链路是物理层的底层技术,决定了无线通信系统的底层传输性能和传输可靠性。在最新的3GPP LTE标准研究中,信道编码链路采用了一系列最新的技术,在简化实现复杂度的同时,提高了物理层传输性能。其中,在最新的3GPP标准协议中,采用了①基于二次多项式置换(Quadratic PolynomialPermutation,简称QPP)交织器的Turbo码作为数据业务的信道编码方案;采用②基于循环缓存(Circular Buffer)的速率匹配方法来实现发送数据的长度和所分配物理信道资源的大小的匹配。同时,为了获得更高的频谱利用率和峰值传输速率,采用了③16QAM、64QAM等高阶调制方式。
在诸多信道编码技术中,Turbo码是目前公认的最好的前向纠错编码之一。Turbo码的纠错性能远比其它编码的纠错性能优越,而且译码迭代的次数越多,译码纠错的性能越好,因此通常多被建议在可靠性要求很高的数据传输场合使用。通常应用的二进制Turbo编码是一种带有内部交织器的并行级联码,一般由两个结构相同的递归系统卷积码(RSC)分量码编码器并行级联而成。Turbo码内的交织器在第二个分量码编码器之前将输入的二进制信息序列中的比特位置进行随机置换,当交织器充分大时,Turbo码就具有近似随机长码的特性。在宽带码分多址(WCDMA)和时分同步马分多址(TD-SCDMA)系统中就使用了这样一种二进制Turbo码,结构如图1所示。输入的二进制信息序列Xk经过第一个分量码编码器生成一路校验序列Zk。同时,输入的二进制信息序列Xk经过Turbo码内的交织器交织后,由第二个分量码编码器生成另一路校验序列Zk′。此时,如果不对编码比特打孔,则Turbo编码的输出码率为1/3,输出端得到的编码比特序列为x1,z1,z1′,x2,z2,z2′,…,xK,zK,zK′,其中,K为输入的二进制信息序列的长度。当所有信息比特序列编码完成后,需要从移位寄存器的反馈中取出尾比特来执行格形运算终止。最先的3个尾比特用于终止第一个分量码编码器,最后的三个尾比特用于终止第二个分量码编码器。按以上操作可得到12个格形运算终止的发送比特,其比特顺序为xK+1,zK+1,xK+2,zK+2,xK+3,zK+3,xK+1′,zK+1′,xK+2′,zK+2′,xK+3′,zK+3′,添加在编码比特序列之后,就完成了一次Turbo编码。
作为3GPP Rel-6速率匹配算法的替代,基于循环缓冲区的速率匹配(Circular Buffer Rate Matching,简称CB RM)提供了一个可以简单地生成性能优良的删余图样的方法,其具体结构如图2所示。在循环缓冲速率匹配方法中,每个数据流将被各自的子交织器重新排列,被称为块内交织(sub-block interleaver)。通常,为了简化硬件实现,块交织器的列数固定,行数随着交织长度的改变而改变,因此循环缓存可以看作一个“R行×C列”的行列缓存,即看作一个“R行×C列”的虚拟缓存,如图3所示。如3GPP的循环缓冲速率匹配方法中所采用的块内交织就是一个列数固定为32列的块交织器。因为循环缓存中有系统比特、第一校验比特、和第二校验比特三个数据流,所以循环缓存可以看作一个列数是96列的虚拟缓存。在单一输出缓存中,将重排后的系统比特放在开始位置,随后交错地放置两个重排的校验比特数据流,被称为块间交织。对于期望的码率(Rate),循环缓冲速率匹配的比特选择是从循环缓存的某处开始点顺序读出L个比特,作为速率匹配的输出。总地来说,被选择用于传输的比特可以从循环缓存的任何一个点开始被读出来,如果到达循环缓存的末尾,则可以绕到循环缓存的开始位置继续读数据,直到完成读取L个比特为止。
混合自动重传请求(HARQ)是一种数字通信系统中极其重要的链路自适应技术。接收端对其接收的HARQ数据包进行译码,若译码正确则反馈ACK信号给发送端,通知其发送新的HARQ数据包;若译码失败则反馈NAK信号给发送端,请求发送端重新发送HARQ数据包。接收端通过对多次重传的数据包进行递增冗余(Increasing Redundancy,简称IR)或Chase合并译码,可以提高其译码成功概率,实现链路传输的高可靠性要求。
在混合自动重传请求方式下,在循环缓存中可以指定不同的位置作为每次传输HARQ数据包读取的起点位置。冗余版本的定义即确定了HARQ数据包在循环缓存中读取的多个起点位置,冗余版本取值便确定了本次传输HARQ数据包在循环缓存中读取的具体起点位置。例如,在3GPP系统中,基于循环缓冲速率匹配的HARQ处理过程定义了4种循环冗余(RV)版本(RV=0、1、2、3)。每次HARQ重传的L长的子包是由从冗余版本定义的起点开始,顺时针选取的L个比特组成的。
HARQ功能包括两次速率匹配和一个虚拟IR缓存,第一次速率匹配过程将输入比特数匹配到虚拟IR缓存,虚拟IR缓存由高层配置。如果输入比特数不超过虚拟IR的能力,则不需要被打掉任何比特,否则需要去掉多余的比特。第二次速率匹配过程是为了符合信道的要求,将第一次速率匹配后的比特数匹配到多个物理信道的总比特数。
有限长度循环缓存的长度是受限的,其速率匹配是在限制循环缓存长度的基础上,根据期望的输出码率,选择L个编码比特,作为循环缓存速率匹配的输出;与非受限的循环缓存的速率匹配类似,被选择用于传输的比特可以从循环缓存中的任何位置开始读出来。如果达到循环缓存的末尾,则可以绕到循环缓存的开始位置继续读取数据。通常,在有限长度循环缓存中可以指定不同的位置作为每次传输HARQ数据包读取的起点位置,即制定冗余版本取值对应的HARQ包的起点位置。
在现有的有限长度循环缓存的速率匹配方法中,各冗余版本对应的HARQ起点在循环缓存中是不均匀分布的,可能使得在HARQ包重传过程中,部分码字出现多次重叠,而另外一部分码字则没有重叠,这样会导致重传性能的下降。


发明内容
本发明提供了一种Turbo码的有限长度循环缓存的速率匹配方法,以减小循环缓存的大小,提高混合自动重传请求数据包的重传性能。
根据本发明的一个实施例的Turbo码的有限长度循环缓存的速率匹配方法,包括以下步骤对输入信息块的数据比特进行Turbo编码,并根据编码结果确定一维有限长度循环缓存的大小;将预先定义的各冗余版本取值指定的混合自动重传请求数据包的起始位置均匀或近似均匀地分布在一维有限长度循环缓存中;以及根据混合自动重传请求次数,从各冗余版本取值中选择一个冗余版本取值,并从所选择的冗余版本取值指定的混合自动重传请求数据包的起始位置开始顺序读取特定长度的数据比特组成混合自动重传请求数据包,并将混合自动重传请求数据包发送出去。
其中,通过以下方法确定一维有限长度循环缓存的大小Ncb=min(NIR,Kw),其中,min(·)表示取最小值运算,NIR是输入信息块的可用缓存的大小,KW是实际循环缓存的大小。
其中,各冗余版本取值指定的混合自动重传请求数据包的起始位置为其中,Nrv表示冗余版本取值的数目,rvidx表示冗余版本取值,冗余版本取值在集合{0,1,…Nrv-1}中取值,offset表示第一个冗余版本取值指定的混合自动重传请求数据包的起始位置相对于一维有限长度循环缓存的起点的偏移比特数,offset为整数,且0≤offset<Ncb,operation(·)表示取整运算,运算方法是向上取整、向下取整、或舍入取整。
其中,在组成混合自动重传请求数据包的步骤中,从所选择的冗余版本取值指定的混合自动重传请求数据包的起始位置开始,以自左而右的顺序读取特定长度的数据比特组成混合自动重传请求数据包。在读取特定长度的数据比特的过程中,跳过不读信道编码器添加的填充比特,并在到达一维有限长度循环缓存的末尾的情况下,绕到一维有限长度循环缓存的开始位置继续读取。
根据本发明的另一个实施例的Turbo码的有限长度循环缓存的速率匹配方法,包括以下步骤对输入信息块的数据比特进行Turbo编码,对编码后的数据比特进行循环缓存速率匹配,并确定二维有限长度循环缓存的大小;根据欲组成的混合自动重传请求数据包对应的冗余版本取值,确定在二维有限长度循环缓存中读取组成混合自动重传请求数据包的数据比特的起始位置;以及从起始位置开始,沿着列的顺序逐列读取特定长度的数据比特组成混合自动重传请求数据包,并将混合自动重传请求数据包发送出去。其中,二维有限长度循环缓存是RsubblockTC×ClimitedTC矩阵,RsubblockTC是二维有限长度循环缓存的行数,ClimitedTC是二维有限长度循环缓存的列数,起始位置在
上均匀或者近似均匀地取值。
其中,在对输入信息块的数据比特进行Turbo编码之前,判断输入信息块是否满足用于Turbo编码的交织器的比特数据大小的要求,如果不满足,则在输入信息块的比特数据前填充特定数量的填充比特。
其中,对编码后的数据比特进行循环缓存速率匹配的过程包括以下步骤对编码后的数据比特进行比特分离,输出系统比特流、第一校验比特流、以及第二校验比特流;分别将系统比特流、第一校验比特流、以及第二校验比特流输入到大小相等的子块交织器;根据给定的重排向量,分别对系统比特流、第一校验比特流、以及第二校验比特流进行列间重排,并沿着列的次序分别从各子块交织器读出重排后的系统比特流、重排后的第一校验比特流、以及重排后的第二校验比特流;以及保持重排后的系统比特流不变,对重排后的第一校验比特流和重排后的第二校验比特流进行比特交错。
其中,通过以下交错方法对重排后的第一校验比特流和重排后的第二校验比特流进行比特交错 其中,k=0,…,K∏-1,Pk(1)是重排后的第一校验比特流中的数据比特,Pk(2)是重排后的第二校验比特流中的数据比特。
其中,在二维有限长度循环缓存中读取组成混合自动重传请求数据包的数据比特的起始位置为其中,Nrv表示冗余版本取值的数目rvidx表示冗余版本取值,其在集合{0,1,…Mrv-1}中取值,offset表示第一个冗余版本取值对应的混合自动重传请求数据包的起始位置相对于二维有限长度循环缓存中的第一列的起点的偏移列数,offset整数,且operation(·)表示取整运算,运算方法是向上取整、向下取整、或舍入取整。
其中,在读取特定长度的数据比特的过程中,跳过不读信道编码器添加的填充比特,并在到达二维有限长度循环缓存的末尾的情况下,绕到二维有限长度循环缓存的开始位置继续读取。
通过本发明,可以减小循环缓存的大小,提高混合自动重传请求数据包的重传性能。



此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中 图1是Turbo编码器的结构; 图2是循环缓冲速率匹配的结构; 图3是虚拟循环缓冲速率匹配的连续传输结构; 图4是二维有限长度循环缓存的结构; 图5是Turbo码的一维有限长度循环缓存的速率匹配方法的流程框图; 图6是Turbo码的一维有限长度循环缓存发送HARQ数据包的示意图;以及 图7是Turbo码的二维有限长度循环缓存的速率匹配方法的流程框图。

具体实施例方式 根据本发明的一个实施例的Turbo码的有限长度循环缓存的速率匹配方法(对于一维有限长度循环缓存),包括以下步骤 步骤A1,对输入信息块的比特数据进行Turbo编码; 步骤A2,确定有限长度循环缓存的大小; 步骤A3将各冗余版本取值指定的HARQ数据包的起始位置k0均匀或者近似均匀地分布在长度为Ncb的有限长度循环缓存中; 步骤A4,根据HARQ重传次数,选择冗余版本取值,从冗余版本取值对应的起始位置开始,自左而右顺序读出长度为L的比特数据,组成当前的HARQ数据包; 步骤A5,发送当前的HARQ数据包到后续处理模块。
其中,通过以下方法确定有限长度循环缓存的大小Ncb=min(NIR,Kw)。其中,min(·)表示取最小值运算。NIR是输入信息块的可用缓存(例如,第一次速率匹配的虚拟IR缓存)的大小,Kw是实际循环缓存的大小。当然,本发明并不局限于以上的确定Ncb的方法。
其中,各冗余版本取值对应的HARQ数据包的起始位置为其中,Nrv表示冗余版本取值的数目,Nrv=3、4、6或者8;rvidx表示各冗余版本取值,它在集合{0,1,…Nrv-1}中取值;offset表示第一个冗余版本取值(rvidx=0)指定的HARQ数据包的起点相对于有限长度循环缓存的起点偏移的比特数,offset为整数,且0≤offset<Ncb。operation(·)表示取整运算,运算的方法可以是向上取整(ceil)、向下取整(floor)、或者舍入取整(round)。
其中,从当前的冗余版本取值对应的起点位置开始从有限长度数据缓存中顺序读取L个比特(L为当前HARQ数据包的大小)组成当前的HARQ数据包,在读取比特的过程中如果遇到信道编码器添加的已知“填充”比特(padding bits),则跳过不读,直到读出L个有效比特为止。根据循环缓存的特点,如果达到有限长度循环缓存的末尾,则可以绕到有限长度循环缓存的开始位置继续读取数据。
根据本发明的另一个实施例的Turbo码的有限长度循环缓存的速率匹配方法(对于二维有限长度循环缓存,二维有限长度循环缓存是一个R行C列的矩阵阵列,冗余版本取值用于确定从矩阵的哪一列开始读取数据,如图4所示),包括以下步骤 步骤B1,对输入信息块的比特数据进行Turbo编码; 步骤B2,对Turbo编码后的比特数据进行循环缓存速率匹配; 步骤B3,确定有限长度循环缓存的实际长度; 步骤B4,根据当前HARQ数据包对应的冗余版本取值,确定读取数据的起始位置k0。其中,冗余版本取值用于确定从RsubblockTC×ClimitedTC的二维有限长度循环缓存的哪一列开始读数据,其中,RsubblockTC是二维有限长度循环缓存的行数,ClimitedTC是二维有限长度循环缓存的列数。冗余版本取值{0,1,。。,Nrv}指定的Nrv列在列索引序列
上均匀或者近似均匀地取值,这里设列索引序列中的最后一个元素的下个相邻元素是第一个元素; 步骤B5,从步骤B4所述的起始位置开始,沿着列的次序逐列自上而下读出长度L的码字比特,组成当前的HARQ数据包; 步骤B6,发送当前的HARQ数据包到后续处理模块。
其中,步骤B1中的编码是基于特定交织器的Turbo编码,所以步骤B1包括必要的填充子步骤,即在编码前首先判断输入信息块的比特数据大小是否满足特定要求(例如,交织器的比特数据大小的要求),若不满足,则在输入信息块的比特数据前填充一定数量的“填充”比特,否则,不需要在输入信息块的比特数据前进行填充。
其中,步骤B2包括以下子步骤对Turbo编码后的比特数据进行比特分离,输出系统比特流S、第一校验比特流P(1)、和第二校验比特流P(2);将分离输出的系统比特流S、第一校验比特流P(1)、和第二校验比特流P(2)分别输入到大小为的三个子块交织器中;对输入到子块交织器中的数据比特流分别进行列间重排,重排向量是给定的已知向量,沿着列的次序逐列自上而下地分别从各子块交织器中读出;以及保持系统比特流S不变,对重排后的第一校验比特流P(1)和第二校验比特流P(2)进行比特交错,交错方法如下wk=S,其中,k=0,…,K∏-1。需要指出的是,比特交错的方法可以不局限于此。
其中,子块交织器遵循行入列出的原则,其列数CsubblockTC为一特定常数,其行数RsubblockTC通过确定。其中,D为数据比特流的长度。如果则需要对各数据比特流添加个“虚比特”,添加虚比特的位置可以在各数据比特流的最前面,但也不局限于此。
其中,有限长度循环缓存的实际长度为Ncb=min(NIR,Kw)。其中,min(·)表示取最小值运算,NIR是输入信息块的可用缓存(例如,第一次速率匹配的虚拟IR缓存)的大小,Kw是实际循环缓存的大小,Kw=3K∏。当然,计算有限长度循环缓存的方法不局限于此。
其中,各冗余版本取值对应的HARQ数据包的起始位置为其中,Nrv表示冗余版本取值的数目,Nrv=3、4、6、或者8;rvidx表示各冗余版本取值,它在集合{0,1,…Mrv-1}中取值;offset表示第一个冗余版本取值(rvidx=0)对应的HARQ数据包的起点相对二维有限长度循环缓存的第一列的起点的偏移列数,offset为已知的特定整数,且operation(·)表示取整运算,运算方法可以是向上取整(ceil)、向下取整(floor)、或者舍入取整(round)。
其中,从当前的冗余版本取值对应的起点位置开始从有限长度数据缓存中顺序读取L个比特(L为当前HARQ数据包的大小)组成当前的HARQ数据包,在读取比特的过程中如果遇到“填充”比特(padding bits)和“虚比特”,则跳过不读,直到读出L个有效比特为止。根据循环缓存的特点,如果达到循环缓存的末尾,则可以绕到循环缓存的开始位置继续读取数据。
下面参考附图,更加详细地说明本发明的具体实施方式

参考图5,说明对于一维结构的Turbo码的有限长度循环缓存的速率匹配方法。如图5所示,该方法包括以下步骤 S502,对长度为m=80的信息比特序列进行Turbo编码,为了满足交织器比特数据大小的要求,在信息比特序列前填充F=20个“填充”比特,则输出的信息比特序列的长度N=312。
S504,假设系统设置的码块可用缓存大小NIR=230,循环缓存的长度Kw=400,则有限长度循环缓存的大小Ncb=min(NIR,Kw)=min(230,400)=230。
S506,假设当前冗余版本取值的数目Nrv=4,也可以为3、6或者8。比特索引从0开始,设第一个冗余版本取值(rvidx=0)对应的HARQ数据包的起点与有限长度循环缓存的起点之间相差offset=30个比特,则第一个冗余版本取值(rvidx=0)对应的HARQ数据包的起始位置索引为第二个冗余版本取值(rvidx=1)对应的HARQ数据包的起始位置索引为其中,operation(·)的运算方法是向下取整(floor)。第三个冗余版本取值(rvidx=2)对应的HARQ数据包的起始位置索引为其中,operation(·)采用的运算方法是向上取整(ceil)。第四个冗余版本取值(rvidx=3)对应的HARQ数据包的起始位置索引为其中,operation(·)采用的运算方法是向上取整(ceil)。
S508,发送的HARQ数据包的长度及HARQ的最大重传次数由系统设定。假设最大四次重传,四次重传的冗余版本取值为{0,2,1,3},需要发送的HARQ数据包的长度为L=100个比特。
其中,读取比特的过程中如果遇到“填充”比特(padding bits),则跳过不读,直到读出L个有效比特为止。数据的索引号从有限长度循环缓存的起点开始,以0开始依次编号。如图6所示,第一次从有限长度循环缓存中索引号为30的比特开始在循环缓存中自左而右顺序读出长度为L的数据比特,第二次从有限长度循环缓存中索引号为146的比特开始在循环缓存中自左而右顺序读出长度为L的数据比特,第三次从有限长度循环缓存中索引号为87的比特开始在循环缓存中自左而右顺序读出长度为L的数据比特,第四次从有限长度循环缓存中索引号为204的比特开始在循环缓存中自左而右顺序读出长度为L的数据比特。根据循环缓存的特点,如果达到循环缓存的末尾,则可以绕到循环缓存的开始位置继续读取数据。以上四次读取的数据分别组成需发送的HARQ数据包。
S510,发送当前的HARQ数据包到后续处理模块。
参考图7,说明对于二维结构的Turbo码的有限长度循环缓存的速率匹配方法。如图7所示,该方法包括以下步骤 S702,对长度为m=80的信息比特序列进行Turbo编码,为了满足交织器的比特数据大小的要求,在信息比特序列前填充F=20个“填充”比特。
S704,对Turbo编码后的数据比特进行比特分离,输出系统比特流S、第一校验比特流P(1)、和第二校验比特流P(2)。其中,S、P(1)和P(2)的长度都是104。
将系统比特流S、第一校验比特流P(1)、和第二校验比特流P(2)分别输入到大小为的三个子块交织器中;子块交织器遵循行入列出的原则,其列数其行数RsubblockTC为满足的最小整数,其中,D=104为数据比特流的长度,各数据比特流需要添加个“虚比特”,添加虚比特的位置在各比特流的最前面,但也不局限于此。
输入到子块交织器中的系统比特流S和第一校验比特流P(1)按照以下原则进行列间重排。设输入到子块交织器中的数据比特流的列向量从第一列开始依次标识为(0,1,2…31),对子块交织器中的数据比特流按照(0,16,8,24,4,20,12,28,2,18,10,26,6,22,14,30,1,17,9,25,5,21,13,29,3,19,11,27,7,23,15,31)的列向量做列间重排。重排后沿着列的次序逐列自上而下地分别从各子块交织器中读出。
设输入到子块交织器中的第二校验比特流P(2)沿着行的次序逐行从左到右依次为y0(2),y1(2),y2(2),…,yK∏-1(2),则子块交织器沿着列的次序逐列自上而下的输出为v0(2),v1(2),v2(2),…,vK∏-1(2),其中,

(P(0),P(1),…,P(C-1))=(0,16,8,24,4,20,12,28,2,18,10,26,6,22,14,30,1,17,9,25,5,21,13,29,3,19,11,27,7,23,15,31)。
保持系统比特流S不变,对重排后的第一校验比特流P(1)和第二校验比特流P(2)进行比特交错,交错方法如下wk=S,其中k=0,…,K∏-1。需要指出的是,比特交错的方法可以不局限于此。
S706,循环缓存的大小为Kw=3K∏=384,输入信息块的可用缓存的大小为NIR=230,则有限长度循环缓存的实际长度Ncb=min(NIR,Kw)=230。
S708,假设当前冗余版本取值的数目Nrv=4,也可以为3、6、或者8。数据的索引号从0开始依次编号,列索引号也从0开始从左向右依次编号。假设第一个冗余版本取值(rvidx=0)对应的HARQ数据包的起点与二维有限长度循环缓存的第一列的起点之间相差offset=7列,则第一个冗余版本取值(rvidx=0)对应的HARQ数据包的起始位置索引为即从二维有限长度循环缓存矩阵的第7列的第一个比特开始读数据。第二个冗余版本取值(rvidx=1)对应的HARQ数据包的起始位置为即从二维有限长度循环缓存矩阵的第21列的第一个比特开始读数据,其中,operation(·)采用的运算方法是向下取整(floor)。第三个冗余版本取值(rvidx=2)对应的HARQ数据包的起始位置为即从二维有限长度循环缓存矩阵的第37列的第一个比特开始读数据,其中,operation(·)的运算方法是向上取整(ceil)。第四个冗余版本取值(rvidx=3)对应的HARQ数据包的起始位置为即从二维有限长度循环缓存矩阵的第50列的第一个比特开始读数据,其中,operation(·)的运算方法是向下取整(floor)。
其中,冗余版本取值用于确定从RsubblockTC×ClimitedTC的二维有限长度循环缓存的哪一列开始读数据,其中,RsubblockTC是二维有限长度循环缓存的行数,ClimitedTC是二维有限长度循环缓存的列数。冗余版本{0,1,…,Nrv}指定的Nrv列在列索引序列
上均匀或者近似均匀的取值,这里设列索引序列中最后一个元素的下个相邻元素是第一个元素。
S710,假设最大四次重传,四次重传冗余版本取值为{0,2,1,3},需要发送的HARQ数据包的长度为L=100个比特。其中,读取比特的过程中如果遇到“填充”比特(padding bits)和“虚比特”,则跳过不读,直到读出L个有效比特为止。根据循环缓存的特点,如果达到循环缓存的末尾,则可以绕到循环缓存的开始位置继续读取数据。列索引号从0开始从左向右依次编号,第一次从二维有限长度循环缓存矩阵第7列的第一个比特开始,沿着列的次序逐列自上而下读出长度L的数据比特。第二次从二维有限长度循环缓存矩阵第36列的第一个比特开始,沿着列的次序逐列自上而下读出长度L的数据比特。第三次从二维有限长度循环缓存矩阵第21列的第一个比特开始,沿着列的次序逐列自上而下读出长度L的数据比特,第四次从二维有限长度循环缓存矩阵第50列的第一个比特开始,沿着列的次序逐列自上而下读出长度L的数据比特,组成当前的HARQ数据包。
S712,发送当前的HARQ数据包到后续处理模块。
以上所述仅为本发明的实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
权利要求
1.一种Turbo码的有限长度循环缓存的速率匹配方法,其特征在于,包括以下步骤
对输入信息块的数据比特进行Turbo编码,并根据编码结果确定一维有限长度循环缓存的大小;
将预先定义的各冗余版本取值指定的混合自动重传请求数据包的起始位置均匀或近似均匀地分布在所述一维有限长度循环缓存中;以及
根据混合自动重传请求次数,从所述各冗余版本取值中选择一个冗余版本取值,并从所选择的冗余版本取值指定的混合自动重传请求数据包的起始位置开始顺序读取特定长度的数据比特组成所述混合自动重传请求数据包,并将所述混合自动重传请求数据包发送出去。
2.根据权利要求1所述的方法,其特征在于,通过以下方法确定所述一维有限长度循环缓存的大小Ncb=min(NIR,Kw),其中,min(·)表示取最小值运算,NIR是所述输入信息块的可用缓存的大小,KW是实际循环缓存的大小。
3.根据权利要求2所述的方法,其特征在于,所述各冗余版本取值指定的混合自动重传请求数据包的起始位置为其中,Nrv表示所述冗余版本取值的数目,rvidx表示所述冗余版本取值,所述冗余版本取值在集合{0,1,…Nrv-1}中取值,offset表示第一个所述冗余版本取值指定的混合自动重传请求数据包的起始位置相对于所述一维有限长度循环缓存的起点的偏移比特数,offset为整数,且0≤offset<Ncb,operation(·)表示取整运算,运算方法是向上取整、向下取整、或舍入取整。
4.根据权利要求3所述的方法,其特征在于,在组成所述混合自动重传请求数据包的步骤中,从所选择的冗余版本取值指定的混合自动重传请求数据包的起始位置开始,以自左而右的顺序读取特定长度的数据比特组成所述混合自动重传请求数据包。
5.根据权利要求4所述的方法,其特征在于,在读取特定长度的数据比特的过程中,跳过不读信道编码器添加的填充比特。
6.根据权利要求1至5中任一项所述的方法,其特征在于,在读取特定长度的数据比特的过程中,如果到达所述一维有限长度循环缓存的末尾,则绕到所述一维有限长度循环缓存的开始位置继续读取。
7.一种Turbo码的有限长度循环缓存的速率匹配方法,其特征在于,包括以下步骤
对输入信息块的数据比特进行Turbo编码,对编码后的数据比特进行循环缓存速率匹配,并确定二维有限长度循环缓存的大小;
根据欲组成的混合自动重传请求数据包对应的冗余版本取值,确定在所述二维有限长度循环缓存中读取组成所述混合自动重传请求数据包的数据比特的起始位置;以及
从所述起始位置开始,沿着列的顺序逐列读取特定长度的数据比特组成所述混合自动重传请求数据包,并将所述混合自动重传请求数据包发送出去。
8.根据权利要求7所述的方法,其特征在于,所述二维有限长度循环缓存是RsubblockTC×ClimitedTC矩阵,其中,RsubblockTC是所述二维有限长度循环缓存的行数,ClimitedTC是所述二维有限长度循环缓存的列数,所述起始位置在
上均匀或者近似均匀地取值。
9.根据权利要求8所述的方法,其特征在于,在对所述输入信息块的数据比特进行Turbo编码之前,判断所述输入信息块是否满足用于Turbo编码的交织器的比特数据大小的要求,如果不满足,则在所述输入信息块的比特数据前填充特定数量的填充比特。
10.根据权利要求9所述的方法,其特征在于,对所述编码后的数据比特进行循环缓存速率匹配的过程包括以下步骤
对所述编码后的数据比特进行比特分离,输出系统比特流、第一校验比特流、以及第二校验比特流;
分别将所述系统比特流、所述第一校验比特流、以及所述第二校验比特流输入到大小相等的子块交织器;
根据给定的重排向量,分别对所述系统比特流、所述第一校验比特流、以及所述第二校验比特流进行列间重排,并沿着列的次序分别从各所述子块交织器读出重排后的系统比特流、重排后的第一校验比特流、以及重排后的第二校验比特流;以及
保持所述重排后的系统比特流不变,对所述重排后的第一校验比特流和所述重排后的第二校验比特流进行比特交错。
11.根据权利要求10所述的方法,其特征在于,通过以下交错方法对所述重排后的第一校验比特流和所述重排后的第二校验比特流进行比特交错其中,k=0,…,K∏-1,Pk(1)是所述重排后的第一校验比特流中的数据比特,Pk(2)是所述重排后的第二校验比特流中的数据比特。
12.根据权利要求10所述的方法,其特征在于,在所述二维有限长度循环缓存中读取组成所述混合自动重传请求数据包的数据比特的起始位置为其中,Nrv表示所述冗余版本取值的数目rvidx表示所述冗余版本取值,其在集合{0,1,…Mrv-1}中取值,offset表示第一个所述冗余版本取值对应的混合自动重传请求数据包的起始位置相对于所述二维有限长度循环缓存中的第一列的起点的偏移列数,offset整数,且operation(·)表示取整运算,运算方法是向上取整、向下取整、或舍入取整。
13.根据权利要求12所述的方法,其特征在于,在读取特定长度的数据比特的过程中,跳过不读信道编码器添加的填充比特。
14.根据权利要求7至13中任一项所述的方法,其特征在于,在读取特定长度的数据比特的过程中,如果到达所述二维有限长度循环缓存的末尾,则绕到所述二维有限长度循环缓存的开始位置继续读取。
全文摘要
本发明公开了一种Turbo码的有限长度循环缓存的速率匹配方法,包括以下步骤对输入信息块的数据比特进行Turbo编码,并根据编码结果确定一维有限长度循环缓存的大小;将预先定义的各冗余版本取值指定的混合自动重传请求数据包的起始位置均匀或近似均匀地分布在一维有限长度循环缓存中;以及根据混合自动重传请求次数,从各冗余版本取值中选择一个冗余版本取值,并从所选择的冗余版本取值指定的混合自动重传请求数据包的起始位置开始顺序读取特定长度的数据比特组成混合自动重传请求数据包,并将混合自动重传请求数据包发送出去。通过本发明,可以减小循环缓存的大小,提高混合自动重传请求数据包的重传性能。
文档编号H03M13/00GK101183875SQ200710195939
公开日2008年5月21日 申请日期2007年12月7日 优先权日2007年12月7日
发明者进 许, 袁志锋, 松 李, 俊 徐, 胡留军 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1