基于部分重传的并行CRC校验方法及系统转让专利

申请号 : CN202011539998.4

文献号 : CN112671511B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 谢静

申请人 : 上海微波技术研究所(中国电子科技集团公司第五十研究所)

摘要 :

本发明提供了一种基于部分重传的并行CRC校验方法及系统,包括:步骤M1:初次传输时,发送端在TB数据流末端添加TB级CRC校验信息发送至接收端;步骤M2:接收端对CB分别进行CB级CRC校验;记录所有CB的TB级CRC校验结果CLa;步骤M3:对未通过校验的CB进行重传;步骤M4:对重传的CB进行TB级CRC校验,记录所有CB的TB级CRC校验结果temp;步骤M5:将前后两次传输对于的TB级CRC结果进行异或;步骤M6:当前仍存在CB级CRC校验未通过,则重复执行步骤M3至步骤M5,直至重传次数达到预设次或全部CB级CRC校验通过,记录传输次数Rt;步骤M7:当传输次数Rt为偶数且CRC寄存器初始状态INIT为非0时,将INIT添加到原始TB数据流前端,重复步骤M1至步骤M7,直至TB级CRC校验通过。

权利要求 :

1.一种基于部分重传的并行CRC校验方法,其特征在于,包括:步骤M1:初次传输时,发送端在TB数据流末端添加TB级CRC校验信息,对添加的TB级CRC校验信息后的新信息序列长度La进行码块分割,分割成C个长度为L的码块,再对各个码块分别添加CB级CRC、编码、速率匹配和交织,并发送至接收端;

步骤M2:接收端对每个码块分别进行解交织、解速率匹配、译码以及CB级CRC校验;当第ii个码块CBii对应的CB级CRC校验通过时,输出对应码块做TB级CRC校验,当第ii个码块CBii对应的CB级CRC校验失败时,输出L个0比特流做TB级CRC校验,直至最后一个码块对应的CBLa

级CRC校验完成,记录所有码块的TB级CRC校验结果C ;

步骤M3:对上一次CB级CRC校验未通过的码块进行重传;

步骤M4:对重传的码块进行TB级CRC校验,对于上一次CB级CRC校验通过的码块以及当前CB级CRC校验未通过的码块均按照全0参与TB级CRC校验,当前CB级CRC校验通过的码块按对应码块的比特流进行TB级CRC校验,直至最后一个码块对应的CB级CRC校验完成,记录所有码块的TB级CRC校验结果temp;

La′

步骤M5:将前后两次传输对应的TB级CRC结果进行异或,更新校验结果C 存储;

步骤M6:当当前仍存在CB级CRC校验未通过,则重复执行步骤M3至步骤M5,直至重传次数达到预设次或全部CB级CRC校验通过,记录当前传输次数Rt;

步骤M7:当传输次数Rt为奇数或CRC寄存器初始状态INIT为全0时,CB级CRC均校验通过La′

且C 为全0时,表示TB级CRC校验通过;当传输次数Rt为偶数且CRC寄存器初始状态INIT为非0时,将CRC寄存器初始状态INIT添加到原始TB数据流前端,重复执行步骤M1至步骤M7,直至TB级CRC校验通过。

2.根据权利要求1所述的基于部分重传的并行CRC校验方法,其特征在于,所述步骤M3包括:将上一次CB级CRC校验未通过的码块以码块组为单位反馈给NACK,根据NACK反馈信息进行码块重传,重传时将上一次CB级CRC校验未通过的码块组下发数据。

3.根据权利要求1所述的基于部分重传的并行CRC校验方法,其特征在于,所述步骤M2中输出L个0比特流做TB级CRC校验包括:当输出L个0比特流做TB级CRC校验时,则采用公式法直接跳转到下一个校验正确CB的CRC初始状态。

4.根据权利要求3所述的基于部分重传的并行CRC校验方法,其特征在于,所述采用公式法包括:对于初传解错的第jj个码块CBjj,在进行TB级CRC校验时,直接按长度为L的全0比特参与TB级校验,CRC并行度的选择满足L=K*a+S*b,L个比特的CRC校验通过a次K位并行和b次S位并行表示,假设S位并行对应的参数矩阵为Hx1和Hy1,则L个全0比特的CRC跳转公式表jj+1 jj a b

示为:C =C *(Hx) *(Hx1) ;

其中,K位并行的公式表示为:

1 1

其中,Hx和Hy分别为对应的参数矩阵; 表示异或操作;D表示K位并行的比特向量,C表

0 jj

示k位并行后CRC状态;C 表示当前比特数据流初始的CRC状态;C 表示当前比特数据流初始jj+1

的CRC状态,C 表示并行后的CRC状态。

5.根据权利要求1所述的基于部分重传的并行CRC校验方法,其特征在于,所述步骤M5包括:

其中, 表示异或操作。

6.一种基于部分重传的并行CRC校验系统,其特征在于,包括:模块M1:初次传输时,发送端在TB数据流末端添加TB级CRC校验信息,对添加的TB级CRC校验信息后的新信息序列长度La进行码块分割,分割成C个长度为L的码块,再对各个码块分别添加CB级CRC、编码、速率匹配和交织,并发送至接收端;

模块M2:接收端对每个码块分别进行解交织、解速率匹配、译码以及CB级CRC校验;当第ii个码块CBii对应的CB级CRC校验通过时,输出对应码块做TB级CRC校验,当第ii个码块CBii对应的CB级CRC校验失败时,输出L个0比特流做TB级CRC校验,直至最后一个码块对应的CBLa

级CRC校验完成,记录所有码块的TB级CRC校验结果C ;

模块M3:对上一次CB级CRC校验未通过的码块进行重传;

模块M4:对重传的码块进行TB级CRC校验,对于上一次CB级CRC校验通过的码块以及当前CB级CRC校验未通过的码块均按照全0参与TB级CRC校验,当前CB级CRC校验通过的码块按对应码块的比特流进行TB级CRC校验,直至最后一个码块对应的CB级CRC校验完成,记录所有码块的TB级CRC校验结果temp;

La′

模块M5:将前后两次传输对应的TB级CRC结果进行异或,更新校验结果C 存储;

模块M6:当当前仍存在CB级CRC校验未通过,则重复触发模块M3至模块M5执行,直至重传次数达到预设次或全部CB级CRC校验通过,记录当前传输次数Rt;

模块M7:当传输次数Rt为奇数或CRC寄存器初始状态INIT为全0时,CB级CRC均校验通过La′

且C 为全0时,表示TB级CRC校验通过;当传输次数Rt为偶数且CRC寄存器初始状态INIT为非0时,将CRC寄存器初始状态INIT添加到原始TB数据流前端,重复触发模块M1至模块M7执行,直至TB级CRC校验通过。

7.根据权利要求6所述的基于部分重传的并行CRC校验系统,其特征在于,所述模块M3包括:将上一次CB级CRC校验未通过的码块以码块组为单位反馈给NACK,根据NACK反馈信息进行码块重传,重传时将上一次CB级CRC校验未通过的码块组下发数据。

8.根据权利要求6所述的基于部分重传的并行CRC校验系统,其特征在于,所述模块M2中输出L个0比特流做TB级CRC校验包括:当输出L个0比特流做TB级CRC校验时,则采用公式法直接跳转到下一个校验正确CB的CRC初始状态。

9.根据权利要求8所述的基于部分重传的并行CRC校验系统,其特征在于,所述采用公式法包括:对于初传解错的第jj个码块CBjj,在进行TB级CRC校验时,直接按长度为L的全0比特参与TB级校验,CRC并行度的选择满足L=K*a+S*b,L个比特的CRC校验通过a次K位并行和b次S位并行表示,假设S位并行对应的参数矩阵为Hx1和Hy1,则L个全0比特的CRC跳转公式表jj+1 jj a b

示为:C =C *(Hx) *(Hx1) ;

其中,K为并行的公式表示为:

1 1

其中,Hx和Hy分别为对应的参数矩阵;表示异或操作;D 表示K位并行的比特向量,C 表

0 jj

示k位并行后CRC状态;C 表示当前比特数据流初始的CRC状态;C 表示当前比特数据流初始jj+1

的CRC状态,C 表示并行后的CRC状态。

10.根据权利要求6所述的基于部分重传的并行CRC校验系统,其特征在于,所述模块M5包括:

其中, 表示异或操作。

说明书 :

基于部分重传的并行CRC校验方法及系统

技术领域

[0001] 本发明涉及差错校验技术领域,具体地,涉及基于部分重传的并行CRC校验方法及系统。

背景技术

[0002] 在数据通信过程中,为了提高传输可靠性,判断接收端数据的正确性,除了使用信道编码技术之外,还会在发送数据的末端加入校验位。循环冗余校验码CRC由于其易于硬件
实现,误码检测能力强,抗干扰性能优异,在网络数据传输中得到广泛应用。
[0003] CRC校验的基本思想是在发端数据流的尾部添加一串CRC校验码作为一组新数据流发给接收端,该校验码需要能够使生成的新数据流能与发送端和接收端共同选定的某个
特定数整除,这个特定数由生成CRC校验码的生成多项式确定。在接收端对接收到的数据流
采用“模2除法”除以这个特定数,如果结果没有余数,则说明校验通过,否则认为传输过程
中出现错误比特。
[0004] CRC编码分为串行和并行两种方式,在低速通信中,CRC采用串行算法,由线性反馈移位寄存器实现,对于高速通信场景已无法适用。并行方式有查表法和公式法,查表法需要
根据特定的并行度存储表项,硬件消耗大,可移植性低,难以实现高位宽并行数据校验。并
行公式递推法目前使用较多。但是目前研究中都没有涉及对于TB比特流中每次传输仅解对
部分CB块时进行TB块校验的方法。无论是在LTE还是NR中,TB都被划分成多个CB,而NR中引
入了CBG概念,即可以选择以CBG为单位来指示重传ACK/NACK,此时重传的比特流可能只是
TB中的某些CB块,按照传统的CRC校验方法进行TB级CRC校验需要在新传时开缓存来存储解
对的码块对应的比特流,然后重传时读出来进行码块拼凑再做TB级CRC校验,这种处理方法
会导致时延明显增加,影响用户体验速率,同时也增加了硬件的缓存空间。本发明的目的是
致力于克服上述传统部分码块重传校验TB级CRC方案对系统延时和整体性能的影响,提出
一种基于部分重传的并行CRC校验方法。
[0005] 针对上述现有技术中的缺陷,本发明要解决的技术问题体现在以下几点:
[0006] 1)解决仅重传部分CB时,进行TB级CRC校验带来的时延和存储问题;
[0007] 2)解决利用部分解对CB结果进行TB级CRC校验时上次传输解对和本次传输解错CB部分的直接跳转问题。

发明内容

[0008] 针对现有技术中的缺陷,本发明的目的是提供一种基于部分重传的并行CRC校验方法及系统。
[0009] 根据本发明提供的一种基于部分重传的并行CRC校验方法,包括:
[0010] 步骤M1:初次传输时,发送端在TB数据流末端添加TB级CRC校验信息,对添加的TB级CRC校验信息后的新信息序列长度La进行码块分割,分割成C个长度为L的码块,再对各个
码块分别添加CB级CRC、编码、速率匹配和交织,并发送至接收端;
[0011] 步骤M2:接收端对每个码块分别进行解交织、解速率匹配、译码以及CB级CRC校验;当第ii个码块CBii对应的CB级CRC校验通过时,输出对应码块做TB级CRC校验,当第ii个码块
CBii对应的CB级CRC校验失败时,输出L个0比特流做TB级CRC校验,直至最后一个码块对应的
La
CB级CRC校验完成,记录所有码块的TB级CRC校验结果C ,其中CBii表示第ii个长度为L的码
块,ii=0,1,2.......C‑1;
[0012] 步骤M3:对上一次CB级CRC校验未通过的码块进行重传;
[0013] 步骤M4:对重传的码块进行TB级CRC校验,对于上一次CB级CRC校验通过的码块以及当前CB级CRC校验未通过的码块均按照全0参与TB级CRC校验,当前CB级CRC校验通过的码
块按对应码块的比特流进行TB级CRC校验,直至最后一个码块对应的CB级CRC校验完成,记
录所有码块的TB级CRC校验结果temp;
[0014] 步骤M5:将前后两次传输对应的TB级CRC结果进行异或,更新校验结果CLa′存储;
[0015] 步骤M6:当当前仍存在CB级CRC校验未通过,则重复执行步骤M3至步骤M5,直至重传次数达到预设次或全部CB级CRC校验通过,记录当前传输次数Rt;
[0016] 步骤M7:当传输次数Rt为奇数或CRC寄存器初始状态INIT为全0时,CB级CRC均校验La′
通过且C 为全0时,表示TB级CRC校验通过;当传输次数Rt为偶数且CRC寄存器初始状态
INIT为非0时,将CRC寄存器初始状态INIT添加到原始TB数据流前端,重复执行步骤M1至步
骤M7,直至TB级CRC校验通过。
[0017] 优选地,所述步骤M3包括:将上一次CB级CRC校验未通过的码块以码块组为单位反馈给NACK,根据NACK反馈信息进行码块重传,重传时将上一次CB级CRC校验未通过的码块组
下发数据。
[0018] 优选地,所述步骤M2中输出L个0比特流做TB级CRC校验包括:当输出L个0比特流做TB级CRC校验时,则采用公式法直接跳转到下一个校验正确CB的CRC初始状态。
[0019] 优选地,所述采用公式法包括:对于初传解错的第jj个码块CBjj,在进行TB级CRC校验时,直接按长度为L的全0比特参与TB级校验,CRC并行度的选择满足L=K*a+S*b,L个比特
的CRC校验通过a次K位并行和b次S位并行表示,假设S位并行对应的参数矩阵为Hx1和Hy1,则
jj+1 jj a b
L个全0比特的CRC跳转公式表示为:C =C *(Hx) *(Hx1) ;
[0020] 其中,K位并行的公式表示为:
[0021]
[0022] 其中,Hx和Hy分别为对应的参数矩阵; 表示异或操作;D1表示K位并行的比特向1 0 jj
量,C 表示k位并行后CRC状态;C表示当前比特数据流初始的CRC状态;C 表示当前比特数
jj+1
据流初始的CRC状态,C 表示并行后的CRC状态;
[0023] 优选地,所述步骤M5包括:
[0024]
[0025] 其中, 表示异或操作。
[0026] 根据本发明提供的一种基于部分重传的并行CRC校验系统,包括:
[0027] 模块M1:初次传输时,发送端在TB数据流末端添加TB级CRC校验信息,对添加的TB级CRC校验信息后的新信息序列长度La进行码块分割,分割成C个长度为L的码块,再对各个
码块分别添加CB级CRC、编码、速率匹配和交织,并发送至接收端;
[0028] 模块M2:接收端对每个码块分别进行解交织、解速率匹配、译码以及CB级CRC校验;当第ii个码块CBii对应的CB级CRC校验通过时,输出对应码块做TB级CRC校验,当第ii个码块
CBii对应的CB级CRC校验失败时,输出L个0比特流做TB级CRC校验,直至最后一个码块对应的
La
CB级CRC校验完成,记录所有码块的TB级CRC校验结果C ,其中CBii表示第ii个长度为L的码
块,ii=1,2.......c‑1;
[0029] 模块M3:对上一次CB级CRC校验未通过的码块进行重传;
[0030] 模块M4:对重传的码块进行TB级CRC校验,对于上一次CB级CRC校验通过的码块以及当前CB级CRC校验未通过的码块均按照全0参与TB级CRC校验,当前CB级CRC校验通过的码
块按对应码块的比特流进行TB级CRC校验,直至最后一个码块对应的CB级CRC校验完成,记
录所有码块的TB级CRC校验结果temp;
[0031] 模块M5:将前后两次传输对应的TB级CRC结果进行异或,更新校验结果CLa′存储;
[0032] 模块M6:当当前仍存在CB级CRC校验未通过,则重复触发模块M3至模块M5执行,直至重传次数达到预设次或全部CB级CRC校验通过,记录当前传输次数Rt;
[0033] 模块M7:当传输次数Rt为奇数或CRC寄存器初始状态INIT为全0时,CB级CRC均校验La′
通过且C 为全0时,表示TB级CRC校验通过;当传输次数Rt为偶数且CRC寄存器初始状态
INIT为非0时,将CRC寄存器初始状态INIT添加到原始TB数据流前端,重复触发模块M1至模
块M7执行,直至TB级CRC校验通过。
[0034] 优选地,所述模块M3包括:将上一次CB级CRC校验未通过的码块以码块组为单位反馈给NACK,根据NACK反馈信息进行码块重传,重传时将上一次CB级CRC校验未通过的码块组
下发数据。
[0035] 优选地,所述模块M2中输出L个0比特流做TB级CRC校验包括:当输出L个0比特流做TB级CRC校验时,则采用公式法直接跳转到下一个校验正确CB的CRC初始状态。
[0036] 优选地,所述采用公式法包括:对于初传解错的第jj个码块CBjj,在进行TB级CRC校验时,直接按长度为L的全0比特参与TB级校验,CRC并行度的选择满足L=K*a+S*b,L个比特
的CRC校验通过a次K位并行和b次S位并行表示,假设S位并行对应的参数矩阵为Hx1和Hy1,则
jj+1 jj a b
L个全0比特的CRC跳转公式表示为:C =C *(Hx) *(Hx1) ;
[0037] 其中,K位并行的公式表示为:
[0038]
[0039] 其中,Hx和Hy分别为对应的参数矩阵; 表示异或操作;D1表示K位并行的比特向1 0 jj
量,C 表示k位并行后CRC状态;C表示当前比特数据流初始的CRC状态;C 表示当前比特数
jj+1
据流初始的CRC状态,C 表示并行后的CRC状态;
[0040] 优选地,所述模块M5包括:
[0041]
[0042] 其中, 表示异或操作。
[0043] 与现有技术相比,本发明具有如下的有益效果:
[0044] 1、本发明当仅重传部分CB时,进行TB级CRC校验无需对上次传输解对CB的比特流进行存储,只需要处理本次解对码块的TB级CRC校验,减少硬件缓存的同时也加快了CRC校
验模块处理时间;
[0045] 2、本发明利用部分CB结果进行TB级CRC校验时,对于上次传输解对和本次传输解错CB部分可通过公式直接跳转计算出下一个解对码块的初始CRC状态寄存器;
[0046] 3、本发明适用于不同寄存器初始状态设置;
[0047] 4、本发明克服传统部分码块重传场景TB级CRC校验的处理延时以及对吞吐的影响。

附图说明

[0048] 通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
[0049] 图1为LFSR结构框;
[0050] 图2为TB块组成以及CB分组图;
[0051] 图3为重传解码情况示意图;
[0052] 图4为部分码块重传计算TB级CRC示意图。

具体实施方式

[0053] 下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术
人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明
的保护范围。
[0054] 实施例1
[0055] 一种基于部分重传的并行CRC校验方法是基于并行CRC处理,推导出仅传输部分码块时TB级CRC的快速计算方法,节省了硬件存储和CRC模块处理时间。
[0056] 根据本发明提供的一种基于部分重传的并行CRC校验方法,如图1至图4所示,包括:
[0057] 步骤M1:初次传输时,发送端在TB数据流末端添加TB级CRC校验信息,对添加的TB级CRC校验信息后的新信息序列长度La进行码块分割,分割成C个长度为L的码块,再对各个
码块分别添加CB级CRC、编码、速率匹配和交织,并发送至接收端;
[0058] 步骤M2:接收端对每个码块分别进行解交织、解速率匹配、译码以及CB级CRC校验;当第ii个码块CBii对应的CB级CRC校验通过时,输出对应码块做TB级CRC校验,当第ii个码块
CBii对应的CB级CRC校验失败时,输出L个0比特流做TB级CRC校验,直至最后一个码块对应的
La
CB级CRC校验完成,记录所有码块的TB级CRC校验结果C ,其中CBii表示第ii个长度为L的码
块,ii=1,2.......c‑1;
[0059] 步骤M3:对上一次CB级CRC校验未通过的码块进行重传;
[0060] 步骤M4:对重传的码块进行TB级CRC校验,对于上一次CB级CRC校验通过的码块以及当前CB级CRC校验未通过的码块均按照全0参与TB级CRC校验,当前CB级CRC校验通过的码
块按对应码块的比特流进行TB级CRC校验,直至最后一个码块对应的CB级CRC校验完成,记
录所有码块的TB级CRC校验结果temp;
[0061] 步骤M5:将前后两次传输对应的TB级CRC结果进行异或,更新校验结果CLa′存储;其中, 表示异或操作。
[0062] 步骤M6:当当前仍存在CB级CRC校验未通过,则重复执行步骤M3至步骤M5,直至重传次数达到预设次或全部CB级CRC校验通过,记录当前传输次数Rt;
[0063] 步骤M7:当传输次数Rt为奇数或CRC寄存器初始状态INIT为全0时,CB级CRC均校验La′
通过且C 为全0时,表示TB级CRC校验通过;当传输次数Rt为偶数且CRC寄存器初始状态
INIT为非0时,将CRC寄存器初始状态INIT添加到原始TB数据流前端,重复执行步骤M1至步
骤M7,直至TB级CRC校验通过。
[0064] 具体地,所述步骤M3包括:将上一次CB级CRC校验未通过的码块以码块组为单位反馈给NACK,根据NACK反馈信息进行码块重传,重传时将上一次CB级CRC校验未通过的码块组
下发数据;解对的码块组基站不会在发出。所有重传的码块组中,接收端仅处理上次传输解
错的码块,对于错误的码块组中解对的码块不会再重复解码;
[0065] 具体地,所述步骤M2中输出L个0比特流做TB级CRC校验包括:当输出L个0比特流做TB级CRC校验时,则采用公式法直接跳转到下一个校验正确CB的CRC初始状态。
[0066] 具体地,所述采用公式法包括:
[0067] 对于m位crc校验,设(g0,g1,…,gm‑1,gm)(g0=1、gm=1)为生成多项式G(x)=gmXm+gm‑1Xm‑1…+g1X+g0的低次项到高次项的系数;故当前CRC值与当前数据输入和前一级CRC值的
关系为: 式中 为第j+1次数据输入后的第i+1位CRC值,
为第j次数据输入后的第i位CRC值,gi+1为CRC生成多项式中第i+1项的系数,dj+1为第j+1
次的数据输入, 为第j次的数据输入后的第m‑1位CRC值,j为自然数,i=0,1,…,m‑1。
[0068] 根据上述迭代关系可以推导出任意并行的CRC公式,具体并行度的选择根据CB大小决定,以K位并行为例,可得当前CRC中每一位的值为:
[0069] 设其中 和 为 和 对应的参数,假设Hx和Hy分
1 0 1
别为对应的参数矩阵,则K位并行公式可表示为:C=C*Hx+D *Hy,式中加号均代表异或操
作;
[0070] 对于初传解错的CBjj(jj=0,1,…,C‑1),在进行TB级CRC校验时,直接按长度为L的全0比特参与TB级校验,CRC并行度的选择要满足L=K*a+S*b,即L个比特的CRC校验可通过a
次K位并行和b次S位并行表示,假设S位并行对应的参数矩阵为Hx1和Hy1,则L个全0比特的
jj+1 jj a b
CRC跳转公式可表示为:C =C *(Hx) *(Hx1) 。
[0071] 根据本发明提供的一种基于部分重传的并行CRC校验系统,包括:
[0072] 模块M1:初次传输时,发送端在TB数据流末端添加TB级CRC校验信息,对添加的TB级CRC校验信息后的新信息序列长度La进行码块分割,分割成C个长度为L的码块,再对各个
码块分别添加CB级CRC、编码、速率匹配和交织,并发送至接收端;
[0073] 模块M2:接收端对每个码块分别进行解交织、解速率匹配、译码以及CB级CRC校验;当第ii个码块CBii对应的CB级CRC校验通过时,输出对应码块做TB级CRC校验,当第ii个码块
CBii对应的CB级CRC校验失败时,输出L个0比特流做TB级CRC校验,直至最后一个码块对应的
La
CB级CRC校验完成,记录所有码块的TB级CRC校验结果C ,其中CBii表示第ii个长度为L的码
块,ii=0,1,2.......C‑1;
[0074] 模块M3:对上一次CB级CRC校验未通过的码块进行重传;
[0075] 模块M4:对重传的码块进行TB级CRC校验,对于上一次CB级CRC校验通过的码块以及当前CB级CRC校验未通过的码块均按照全0参与TB级CRC校验,当前CB级CRC校验通过的码
块按对应码块的比特流进行TB级CRC校验,直至最后一个码块对应的CB级CRC校验完成,记
录所有码块的TB级CRC校验结果temp;
[0076] 模块M5:将前后两次传输对应的TB级CRC结果进行异或,更新校验结果CLa′存储;其中, 表示异或操作。
[0077] 模块M6:当当前仍存在CB级CRC校验未通过,则重复触发模块M3至模块M5执行,直至重传次数达到预设次或全部CB级CRC校验通过,记录当前传输次数Rt;
[0078] 模块M7:当传输次数Rt为奇数或CRC寄存器初始状态INIT为全0时,CB级CRC均校验La′
通过且C 为全0时,表示TB级CRC校验通过;当传输次数Rt为偶数且CRC寄存器初始状态
INIT为非0时,将CRC寄存器初始状态INIT添加到原始TB数据流前端,重复触发模块M1至模
块M7执行,直至TB级CRC校验通过。
[0079] 具体地,所述模块M3包括:将上一次CB级CRC校验未通过的码块以码块组为单位反馈给NACK,根据NACK反馈信息进行码块重传,重传时将上一次CB级CRC校验未通过的码块组
下发数据;解对的码块组基站不会在发出。所有重传的码块组中,接收端仅处理上次传输解
错的码块,对于错误的码块组中解对的码块不会再重复解码;
[0080] 具体地,所述模块M2中输出L个0比特流做TB级CRC校验包括:当输出L个0比特流做TB级CRC校验时,则采用公式法直接跳转到下一个校验正确CB的CRC初始状态。
[0081] 具体地,所述采用公式法包括:
[0082] 对于m位crc校验,设(g0,g1,…,gm‑1,gm)(g0=1、gm=1)为生成多项式G(x)=gmXm+gm‑1Xm‑1…+g1X+g0的低次项到高次项的系数;故当前CRC值与当前数据输入和前一级CRC值的
关系为: 式中 为第j+1次数据输入后的第i+1位CRC值,
为第j次数据输入后的第i位CRC值,gi+1为CRC生成多项式中第i+1项的系数,dj+1为第j+1
次的数据输入, 为第j次的数据输入后的第m‑1位CRC值,j为自然数,i=0,1,…,m‑1。
[0083] 根据上述迭代关系可以推导出任意并行的CRC公式,具体并行度的选择根据CB大小决定,以K位并行为例,可得当前CRC中每一位的值为:
[0084] 设其中 和 为 和 对应的参数,假设Hx和Hy分
1 0 1
别为对应的参数矩阵,则K位并行公式可表示为:C=C*Hx+D *Hy,式中加号均代表异或操
作;
[0085] 对于初传解错的CBjj(jj=0,1,…,C‑1),在进行TB级CRC校验时,直接按长度为L的全0比特参与TB级校验,CRC并行度的选择要满足L=K*a+S*b,即L个比特的CRC校验可通过a
次K位并行和b次S位并行表示,假设S位并行对应的参数矩阵为Hx1和Hy1,则L个全0比特的
jj+1 jj a b
CRC跳转公式可表示为:C =C *(Hx) *(Hx1) 。
[0086] 实施例2
[0087] 实施例2是实施例1的变化例
[0088] TB级CRC以16位crc为例,初始CRC状态为全0,生成多项式为G(x)=x16+x12+x5+1,由于TB到CB的划分是等分的,且CB大小为Byte级,即均为8的倍数。
[0089] 1)假设TB大小为58952,通过添加TBCRC,得La=58952+16=58968,通过码块分割可分为7个CB,每个CB大小为8424,即C=7,L=8424;
[0090] 2)并行度K取8,8位并行的CRC校验公式中Hx和Hy分别为:
[0091]
[0092]
[0093]
[0094] 此时 8位并行公式可表示为:C1=C0*Hx+D1*Hy,式中加号均代表异或操作;
[0095] 3)假设初传时{CB0,CB1,…,CB6}中,CB0、CB4、CB6解码错误,此时按照序列{000..00CB1 CB2 CB3000..00 CB5000..00}计算TB级CRC,即正确的CB正常输出,对于错误
的CB按全0参与TB级CRC计算;
[0096] 4)对于全0的CB可通过公式进行直接跳转,对于8位并行CRC,a=8424/8=1053,故0 1053 0 0
CB1的初始CRC状态为C'=C*(Hx) ,将C=C',由于CRC初始状态C为全0,故若序列起始为
0 ii+1
全0CB,就可以直接忽略,跳转到第一个非零CB处,此时C仍为全0。CB2的初始CRC状态为C
ii ii+1
=C *Hx+D *Hy,其中ii=0、1、…、1052,依此类推可以算出到CB6时对应的TB级CRC校验结
La
果C ;
[0097] 5)对于初传CB级CRC未校验通过的码块,将以CBG为单位反馈NACK,重传将按照错误的CBG下发数据,解对的CBG基站不会再发出。根据CBG分组规则,可得第一次重传将发送
{CBG0,CBG2,CBG3},而接收端仅处理上次传输解错的CB,对于错误CBG中上次解对的CB不会
再重复解码,假设第一次重传CB0和CB6解码正确,CB4解错。
[0098] 6)对于上次传输解对的CB以及本次传输解错的CB均按照全0参与TB级CRC校验,此时参与TB级CRC校验的序列为{CB0000..00000..00000..00000..00000..00CB6},跳转公式
ii+1 ii ii+1
如4)所示,CB1的初始CRC状态为C =C *Hx+D *Hy,其中ii=0、1、…、1052,CB6的初始
1054 1053 1053*5 1054+ii+1
CRC状态为C =C *(Hx) ,记录到最后一个CB时对应的TB级CRC校验结果C =
1054+ii ii+1 2107
C *Hx+D *Hy,其中ii=0、1、…、1052,令temp=C ,将前后两次传输对应的TB级CRC
结果进行异或,更新校验结果存储,即
[0099] 7)假设第一次重传CB4仍然解错,此时第二次重传将发送CBG2,而接收端仅处理上次传输解错的CB4,对于错误CBG中上次解对的CB5不会再重复解码,假设第二次重传CB4解
码正确。
[0100] 8)计算TB级CRC校验的方法同6),此时参与TB级CRC校验的序列为{000..00000..00000..00000..00CB4000..00000..00},由于初始状态为全0,则CB4的起始对应的CRC状态
ii+1 ii ii+1
仍为全0,CB5的初始CRC状态为C =C *Hx+D *Hy,其中ii=0、1、…、1052,依此类推可以
1053 2106
算出到CB6时对应的TB级CRC校验结果为temp=C *(Hx) ,最后将前后两次传输对应的
TB级CRC结果进行异或,更新校验结果存储,即
[0101] 9)综上所述,通过2次重传后所有CB均解对,此时整体TB级CRC校验也已计算结束,La
若C 为全0,则认为TB级CRC校验通过,否则认为校验失败。
[0102] 本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的
系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微
控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为
是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结
构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部
件内的结构。
[0103] 以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影
响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相
互组合。