一种校验方法、装置、译码器、接收机及计算机存储介质与流程

文档序号:22040652发布日期:2020-08-28 18:04阅读:163来源:国知局
一种校验方法、装置、译码器、接收机及计算机存储介质与流程

本申请实施例涉及但不限于电子技术,尤其涉及一种校验方法、装置、译码器、接收机及计算机存储介质。



背景技术:

译码器的设计对基带芯片的通信性能、面积、功耗等都有着直接影响,其中控制信道的译码要求延时低,准确性高。通过比特交织使循环冗余校验码(cyclicredundancycheck,crc)重新分布的技术能够优化极化译码器,该技术有助于降低译码器的延时和功耗,或提高译码器的纠错能力。

在数据收发过程中,发送机(数据发送设备)首先确定信息比特和crc比特,然后对信息比特和crc比特进行交织得到的交织比特,接着对交织比特进行编码等一系列操作后发送给接收方;接收机(数据接收设备)在对接收到的数据进行译码等一系列的操作后,需要对得到的交织比特中的信息比特进行校验,以确定接收到的信息比特是否正确。

然而,如何对交织比特中的信息比特进行校验,以降低接收机在校验时的计算量,是本领域技术人员一直研究的问题。



技术实现要素:

本申请实施例提供一种校验方法、装置、译码器、接收机及计算机存储介质。

第一方面,提供一种校验方法,包括:

获得包括kmax个比特的交织比特序列,从所述交织比特序列中,确定待校验的信息比特和与所述待校验的信息比特对应的校验比特;

确定相关矩阵qmax;所述相关矩阵qmax用于表征所述交织比特序列与所述校验比特之间的相关信息;

基于所述交织比特序列、所述相关矩阵qmax以及所述校验比特,对所述待校验的信息比特进行校验。

第二方面,提供一种校验装置,包括:

比特确定单元,用于获得包括kmax个比特的交织比特序列,从所述交织比特序列中,确定待校验的信息比特和与所述待校验的信息比特对应的校验比特;

相关矩阵确定单元,用于确定相关矩阵qmax;所述相关矩阵qmax用于表征所述交织比特序列与所述校验比特之间的相关信息;

校验单元,用于基于所述交织比特序列、所述相关矩阵qmax以及所述校验比特,对所述待校验的信息比特进行校验。

第三方面,提供一种译码器,包括:存储器和处理器,

所述存储器存储有可在处理器上运行的计算机程序,

所述处理器执行所述程序时实现上述方法中的步骤。

第四方面,提供一种接收机,包括上述的译码器。

第五方面,提供一种计算机存储介质,所述计算机存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述方法中的步骤。

第六方面,提供一种芯片,包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有所述芯片的设备执行上述方法中的步骤。

第七方面,提供一种计算机程序产品,所述计算机程序产品包括计算机存储介质,所述计算机存储介质存储计算机程序代码,所述计算机程序代码包括能够由至少一个处理器执行的指令,当所述指令由所述至少一个处理器执行时实现上述的方法中的步骤。

本申请实施例中,获得包括kmax个比特的交织比特序列,从交织比特序列中,确定待校验的信息比特和与待校验的信息比特对应的校验比特;确定相关矩阵qmax;相关矩阵qmax用于表征交织比特序列与校验比特之间的相关信息;基于交织比特序列、相关矩阵qmax以及校验比特,对待校验的信息比特进行校验。如此,由于通过确定的表征交织比特序列与校验比特之间的相关信息的相关矩阵qmax,对待校验的信息比特进行校验,使得接收机在比特校验时产生的计算量小,因此能够降低接收机在比特校验时的计算量。

附图说明

图1为本申请实施例提供的一种编码器的编码过程示意图;

图2为本申请实施例提供的一种crc比特的添加和交织的过程示意图;

图3为相关技术中提供的一种时的交织函数的示意图;

图4a为相关技术中提供的一种时交织前的比特序列下标的示意图;

图4b为相关技术中提供的一种时交织后的比特序列下标的示意图;

图5为本申请实施例提供的一种译码器的译码过程示意图;

图6为本申请实施例提供的一种校验方法的流程示意图;

图7为本申请实施例提供的另一种校验方法的流程示意图;

图8a为本申请实施例提供的一种kmax=188时交织前的比特序列下标的示意图;

图8b为本申请实施例提供的一种kmax=188时交织后的比特序列下标的示意图;

图9a为本申请实施例提供的一种译码序列的结构示意图;

图9b为本申请实施例提供的一种交织比特序列的结构示意图;

图10为本申请实施例提供的又一种校验方法的流程示意图;

图11为本申请实施例提供的再一种校验方法的流程示意图;

图12为本申请实施例提供的一种校验装置的组成结构示意图;

图13为本申请实施例提供的一种译码器的硬件实体示意图;

图14为本申请实施例提供的一种接收机的硬件实体示意图;

图15是本申请实施例提供的一种芯片的结构示意图。

具体实施方式

下面将通过实施例并结合附图具体地对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。

需要说明的是:在本申请实例中,“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。另外,本申请实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。

需要注意的是,在未作特殊说明的情况下,本申请实施例中的运算规则可以是定义在域gf(2)上的,或者可以说,本申请实施例中的比特的值为0或1。

需要注意的是,本申请实施例中所涉及到的接收机可以是终端,终端可以是服务器、手机、平板电脑、笔记本电脑、掌上电脑、个人数字助理、便捷式媒体播放器、智能音箱、导航装置、显示设备、智能手环等可穿戴设备、虚拟现实(virtualreality,vr)设备、增强现实(augmentedreality,ar)设备、计步器、数字tv、台式计算机或者5g网络中的一些终端等。本申请实施例中的接收机还可以是网络设备,即与终端进行无线通信的网络侧设备,例如,无线保真(wireless-fidelity,wi-fi)的接入点、演进基站或下一代通信的基站,如5g的gnb或小站、微站或传输接收点(transmissionreceptionpoint,trp),还可以是中继站、接入点等。应理解,任何一种采用本申请的校验方法的且能够接收数据的接收机都可以在本申请的保护范围之内。

极化码(polarcode)是一种线性分组纠错编码,是目前已知的唯一在理论上能够达到信道容量的编码方法。随着其译码算法的不断改进,极化码对中短长度码字的纠错性能已经接近甚至超越涡轮码(turbocode),低密度奇偶校验码(low-densityparity-check,ldpc)等传统编码方法。第三代合作伙伴计划(3rdgenerationpartnershipproject,3gpp)将极化码选定为5g增强无线宽带(enhancedmobilebroadband,embb)场景下控制信道的编码方案。

图1为本申请实施例提供的一种编码器的编码过程示意图,如图1所示:

首先,发送机的编码器得到原始信息比特(或者称为数据源datasource),原始信息比特序列为a0,a1,a2,...,aa-1的码块(codeblock)。值得注意的是,在本申请实施例中,原始信息比特和信息比特所表征的意思相同。

接着,编码器执行附着流程(或者称为crc附着crcattachment):计算出长度为l的循环冗余校验码p0,p1,p2,...,pl-1,并将循环冗余校验码附加在信息比特序列之后,得到长度为k的比特序列c0,c1,c2,...,ck-1,k=a+l。

然后,编码器可以对得到的序列c0,c1,c2,...,ck-1进行交织(interleaver),得到交织序列c0',c1',c2',...,ck-1'。

在此之后,编码器可以对交织序列c0',c1',c2',...,ck-1'进行polar编码(polarencoder),得到编码序列。应理解,在其它实施例中,编码器可以对交织序列c0',c1',c2',...,ck-1'进行ldpc编码。

最后,发送机可以对编码序列进行子块交织(sub-blockinterleaver)、速率匹配(rate-matcher)以及加扰(scrambler)等操作,直到发送机将数据发送出去。

以3gpp新空口(newradio,nr)规定的物理下行控制信道(physicaldownlinkcontrolchannel,pdcch)为例,描述pdcch的循环冗余校验码可以获得的三种方式,分别为下述的(a)、(b)以及(c):

(a)、在pdcch中,协议规定l=24,寄存器初始状态全为1,循环冗余校验码可以是由长度为l的线性反馈移位寄存器实现的,其中,反馈部分由循环冗余校验码的生成多项式gcrc(d)定义。标准中给出的pdcch的多项式gcrc(d)(也可以称为gcrc24c(d))的表达式如公式(2)所示:

gcrc24c(d)=d24+d23+d21+d20+d17+d15+d13+d12+d8+d4+d2+d+1(2)。

需要说明的是,在本申请实施例中,寄存器初始状态可以与寄存器状态所表征的意义相同。

(b)、在循环冗余校验码的初始寄存器状态为零的情况,由于循环冗余校验码是一种线性分组码,因此crc比特(也可以称为校验比特)可以通过原始信息序列组成的比特向量与码字生成矩阵的乘积计算得出,如公式(3)所示:

其中,生成矩阵的每一列为输入向量[a0,a1,…,aa-1]与对应crc比特的相关关系。

(c)、若不限定寄存器的初始状态,可以通过扩充输入向量的方法计算crc比特,如公式(4)所示

[p0,p1,…,pl-1]=[a′0,a′1,...,a′k-1]·pcrc(4);

其中,生成矩阵pcrc∈{0,1}k×l,[a′0,a′1,...,a′k-1]=[s0,s1,...,sl-1,a0,a1,...,aa-1]是由循环冗余校验码的初始寄存器状态和信息比特向量组成的扩充向量。例如,3gpp协议规定了pdcch计算crc时的输入比特向量为[a′0,a′1,...,a′k-1]=[1,1,...,1,a0,a1,…,aa-1]。生成矩阵pcrc可由校验码生成多项式gcrc(d)(其中,gcrc(d)的计算公式可以参照公式(2))递归计算获得,递归计算的公式可以如公式(5)和公式(6)所示:

pcrc,k-1(d)=gcrc(d)(5);

pcrc,i(d)=d·pcrc,i+1(d)modgcrc(d),i=0,...,k-2(6);

其中,pcrc,i(d)代表生成矩阵pcrc第i行所定义的多项式,pcrc,i(d)共有k行,分别为第0行、第1行、…、第k-1行。

基于这种自下而上的计算方法,对原始信息序列从前面进行扩充(比如添加寄存器初始状态,或其它信息比特)等价于在生成矩阵的上方添加更多行。本方案提出的分布式crc比特计算方法就是基于这一重要性质。

以下对发送机的编码器进行比特交织的方式作出说明:

在进行极化码编码前,协议规定了依据交织函数∏对带有crc的信息序列c进行交织,得到等长的序列c′k=cπ(k),k=0,1,...,k-1。这一交织的目的是对crc比特在序列中的位置进行重新分布,使得每一个crc比特都刚好出现在所有与该比特相关的信息比特之后。

图2为本申请实施例提供的一种crc比特的添加和交织的过程示意图,如图2所示,首先,编码器会得到信息比特a(信息比特a中包括有效载荷payload);接着,编码器可以进行crc比特添加的步骤,例如可以将通过公式(2)或公式(3)或公式(4)得到的crc比特,添加至信息比特之后,得到长度为k=a+l的比特序列c,比特序列c为未交织的比特序列;然后再执行比特交织的步骤:首先找到与第0个crc比特p0相关的所有信息比特,将它们依原有先后顺序置于序列c′的最前,p0紧接在后面,然后找到与第1个crc比特p1相关而与p0无关的信息比特,将它们依原有先后顺序放在p0后面,接着放入p1,以此类推,直到全部crc比特放置完毕,得到交织比特序列c'。

在本申请的一种实施方式中,交织函数π由crc比特与信息比特的相关关系定义,可通过生成矩阵pcrc获得。

生成矩阵中第0列中值为1的元素共有80个,其中65个对应于与p0相关的信息比特,其余15个对应于相关的寄存器初始状态,可以采用公式(7)对p0相关的信息比特进行校验:

其中,公式(7)中的s1,s2,...,s21,s23为对应于15个相关的寄存器初始状态,c0,c2,c4,...,c134,c138,c139为第0列中值为1的80个元素。从而可以确定出交织后的比特序列中的第0个~第65个比特序列,即c′0=c0,c′1=c2,c′2=c4,...,c′62=c134,c′63=c138,c′64=c139,c′65=c140。

可以通过公式(8)对与p1相关的信息比特进行校验:

其中,公式(8)中的s0,s1,...,s22,s23为个对应于14相关的寄存器初始状态,c1,c2,c3,...,c135,c138为第1列中值为1的80个元素。

生成矩阵中第1列中值为1的元素有80个,但是有40个元素的行值和生成矩阵中第0列中值为1的行值相同,也就是说,与p1相关的有80个信息比特中有40个与p0相关,另外40个与p0无关,与p0无关的40个比特尚未出现在交织后的序列中,从而可以确定出交织后的比特序列中的第66个~第106个比特序列,即c′66=c1,c′67=c3,...,c′105=c135,c′106=c141。

对p2,p3,...,p7进行了相同操作后,所有的信息比特都已在c′中,如图3所示,即共有c140,c141,…,c146等7个crc比特的位置通过交织被提前了。

图3为相关技术中提供的一种时的交织函数的示意图,图4a为相关技术中提供的一种时交织前的比特序列下标的示意图,图4b为相关技术中提供的一种时交织后的比特序列下标的示意图。其中,可以理解为k的最大可能值为164。对应的生成矩阵为从图3、4a和4b中,可以容易得到交织前的比特下标和交织后的比特下标之间的映射关系。从图3中可以看出,在交织函数中,等等,此处不一一列举。从图4a和4b可以看出校验比特在交织前和交织后的位置变化。从图4b中可以分析到,下标140之前的下标0~139所对应的比特与下标140的校验比特相关;下标140之后且141之前的下标1~135所对应的比特与下标141的校验比特相关,但与下标140的校验比特无关。

通过上述描述,能够理解的是,在通过对交织后的比特序列进行校验时,p0可由它前面的所有信息比特和已知的寄存器初始状态直接计算获得,其它crc比特因相关性信息不完整仍然无法直接计算。

在编码前进行这样的交织操作是与极化码的译码算法有关的。应用广泛的串行抵消算法(successivecancellation,sc)算法和在其基础上改进而来的表单串行抵消算法(listsuccessivecancellation,scl)算法均采用串行方式进行译码。这意味着,当与某一crc比特相关的所有信息比特都译码完成后,就可以立即检查该校验比特的正确性,或对译码路径进行适当的更新和选择。仍以为例,sc或scl算法会依次计算出其中是对c′k译码后硬判决的结果。

对sc算法,如果通过比较发现不一致,则可以提前判断译码失败,无需进行后续比特的译码,从而降低了延迟和功率消耗。如果判断一致,那么继续计算出然后比较第1个crc比特是否与译码结果吻合。由此过程可见,参与提前判决的crc比特越多,则提前终止译码算法的机会越大,可能节省更多的时间和功率。

对scl算法,既可以对保存的每一条路径进行同样的提前判断(如果所有路径都判断为与校验比特不一致,则译码失败),也可以将c′65,c′106等作为动态冻结比特处理,比如令在该节点不进行路径扩展。由于对路径选择和扩展具有辅助作用,交织crc比特的做法能够对scl算法带来一定的纠错性能增益。

3gpp协议规定,当时,交织函数π按以下伪代码定义,该伪代码标记为第一组伪代码,其中:

这一过程可以看作在长度为k的序列c前面添加个填充比特,使用对所得序列进行交织,最后忽略掉重新排列的序列里的填充比特。这样定义的交织器仍然能保证crc比特被映射到正确的位置,即它只和出现在它之前的信息比特相关,且自身位置尽可能靠前。

一方面,由于pcrc是自下而上递归计算的,对应的生成矩阵相对pcrc来说,只是在顶部增加了行,其余k行保持不变,因而增加的填充比特不会改变每个crc比特与信息比特之间的相关关系。另一方面,交织以后去掉填充比特也不影响信息比特和各个crc比特之间的相对位置。因此,对任意的正整数使用基于定义的交织函数π能够保证crc比特被映射到恰当的位置。

nr接收机中的极化译码器通常需保存交织函数即图3所示的映射方式,以便在译码完成后进行解交织。如果使用分布式crc比特辅助译码,仅靠交织函数这一信息无法计算出每个crc比特与哪些信息比特相关。无法计算每个crc比特与哪些信息比特相关的原因有两个方面,第一方面,在通过交织函数确定crc比特与信息比特的相关性信息时,除首个crc比特外,其它crc比特与信息比特之间的相关性信息是不完整的;第二方面,从前文的分析可以看到,交织函数的确定与产生crc的移位寄存器的初始状态无关,但是crc比特的确定显然与移位寄存器的初始状态有关。考虑到pdcch中计算crc时,移位寄存器初始化为全1状态而非全0状态,那么即使只有首个crc比特参与辅助译码,仅保存交织函数信息也是不够的。也就是说,由于交织函数无法确定除第0个crc比特之外的其它crc比特与信息比特的相关性信息,且通过交织函数无法得到信息比特的校验所需要的寄存器的初始状态,从而在nr接收机仅保存交织函数是不够的。

crc比特与相关比特(包括信息比特和寄存器初始状态)之间的相关性关系与k有关。对不同的k,确定相关性关系的最为直观的方法是依次考察生成矩阵pcrc的每一列,找到其中值为1的元素对应的比特下标。极化译码器可以选择保存这些下标,也可以选择保存生成矩阵pcrc,然后对给定的k在线计算下标。也就是说,为了对信息比特进行校验,nr接收机不仅需要保存交织函数还需要保存不同的k分别对应的不同的生成矩阵pcrc中值为1的比特下标,或者,保存不同的k分别对应的不同的生成矩阵pcrc,然后根据生成矩阵pcrc计算比特下标。

然而,在pdcch中,原始信息序列的长度a有很多可能的取值,从而导致k也有很多不同的取值,这意味着使用直观方法的存储开销或计算量会比较大,对极化译码器在面积、功率、译码延迟等方面的优化不利。

基于相关技术中存在的问题,本申请实施例提出一种新的校验方案,在介绍本申请实施例之前,可以先对接收机的译码过程作出示意性的描述。

图5为本申请实施例提供的一种译码器的译码过程示意图,如图5所示,首先译码器可以对接收到的编码比特进行polar译码,得到译码序列,应理解,在其它实施中,译码器可以对接收到的编码比特进行ldpc译码,接着译码器可以对译码序列中的信息比特进行校验。在校验完成后,可以对译码序列进行解交织,从而得到原始信息比特序列。

译码器可以包括在接收机中,接收机在接收到发送机发送的数据后,可以对该数据进行解扰、解速率匹配、子块解交织等操作后得到编码比特,并将编码比特输入至译码器。其中,解扰、解速率匹配、子块解交织可以是图1对应的加扰(scrambler)、速率匹配(ratematcher)、子块交织(sub-blockinterleaver)操作的逆向操作。

在本申请实施例中,在译码时采用的译码器为polar译码器,在编码时采用的译码器为polar编码器。在其它实施例中,在译码时采用的译码器为ldpc译码器,在编码时采用的译码器为ldpc编码器。

在一种实施方式中,对信息比特进行校验的校验过程可以为:计算与校验比特p0相关的信息比特的第0个校验结果,如果该第0个校验结果与校验比特p0相同,确定对与校验比特p0相关的信息比特校验成功,否则确定校验失败;接着,译码器可以计算与校验比特p1相关但与p0无关的信息比特的第1个校验结果,如果该第1个校验结果与校验比特p1相同,确定对与校验比特p1相关但与p0无关的信息比特校验成功,否则确定校验失败;以此类推,直到对所有的信息比特校验完成。

图6为本申请实施例提供的一种校验方法的流程示意图,如图6所示,该方法应用于接收机或译码器中,该方法包括:

s601、获得包括kmax个比特的交织比特序列,从交织比特序列中,确定待校验的信息比特和与待校验的信息比特对应的校验比特。

交织比特序列的比特数为kmax。交织比特序列为包括寄存器状态比特的比特序列。本申请实施例中的寄存器状态比特可以和寄存器初始状态比特意义相同。

在本申请实施例中,译码器在对待译码序列进行译码后得到的译码序列中不包括寄存器状态比特,译码器可以从存储空间中获得寄存器状态比特,然后将得到的寄存器状态比特交织入译码序列中,得到一个交织序列,如果该交织序列中比特数为kmax,则确定该交织序列为交织比特序列。在实施过程中,接收机的寄存器状态比特可以与发送机的寄存器状态比特相同。在本申请的其它实施例中,译码器得到的译码序列中可以包括寄存器状态比特,这样,如果该译码序列中的比特数为kmax,则可以直接将得到的译码序列作为交织比特序列。

kmax与l之和;为物理下行控制信道所对应的交织比特序列数的最大取值;l为交织比特序列中校验比特的个数,或者,l为交织比特序列中寄存器比特的个数。在本申请实施例中,kmax的取值为188,kmax可以是与l之和,在本申请的一种实施例中,可以为标准中规定的pdcch所对应的交织序列的比特数的最大可能取值,其值为164。l为标准中规定的crc校验码(可以理解为寄存器比特序列)的长度,其值为24。在本申请实施例中,寄存器比特和寄存器状态比特所代表的意义相同。

在本申请的一种实施例中,交织比特序列中校验比特的个数为24,交织比特序列中寄存器比特的个数为24。

在本申请的一种实施例中,交织比特序列是将寄存器比特序列交织入译码序列中得到的,或者,交织比特序列是将寄存器比特序列和填充比特序列交织入译码序列中得到的。其中,译码序列为对线性分组码进行译码后的序列,线性分组码包括:低密度校验码ldpc或极化码polarcode。

s603、确定相关矩阵qmax;相关矩阵qmax用于表征交织比特序列与校验比特之间的相关信息。

在一种实施方式中,相关矩阵qmax可以为kmax行l列的矩阵,相关矩阵qmax的每一列表征交织比特序列与每个校验比特之间的相关信息,例如,相关矩阵qmax的第0列表征交织比特序列与第0个校验比特之间的相关信息,相关矩阵qmax的第1列表征交织比特序列与第1个校验比特之间的相关信息。

在另一种实施方式中,相关矩阵qmax可以为kmax行t列的矩阵,kmax行t列可以是从上述的kmax行l列的矩阵中提取的前t列的向量得到的矩阵。kmax行t列的相关矩阵qmax中每一列,可以分别表征交织比特序列与前t个校验比特的每个校验比特之间的相关信息。

译码器可以将预先得到的相关矩阵qmax存储至存储空间中,或者将相关矩阵qmax的中1的位置所对应的位图(bitmap)存储至存储空间中。存储空间可以是译码器中的空间,或者在译码器外的空间。译码器可以直接从存储空间中读取相关矩阵qmax,或者,译码器可以从存储空间中读取相关矩阵qmax的bitmap,例如,译码器可以只将相关矩阵qmax中的元素值为1的位置对应标记到bitmap中,在需要用到相关矩阵qmax时,可以基于读取的bitmap来得到相关矩阵qmax。在另一种实施方式中,译码器可以将相关矩阵qmax的前t列存储在存储空间中,或者将相关矩阵qmax的前t列中1的位置所对应的bitmap存储至存储空间中。

s605、基于交织比特序列、相关矩阵qmax以及校验比特,对待校验的信息比特进行校验。

译码器可以基于交织比特序列和相关矩阵qmax,确定对待校验的信息比特进行校验得到的校验结果,根据校验结果和校验比特是否相同,来确定是否校验成功。

待校验的信息比特可以包括一组或至少两组信息比特,一组信息比特对应相关矩阵qmax的一列向量。例如,以待校验的信息比特包括三组信息比特,且三组信息比特分别为与第0个校验比特相关的信息比特(第0组信息比特)、与第1个校验比特相关且与第0个校验比特无关的信息比特(第1组信息比特)、与第2个校验比特相关且与第0个和第1个校验比特无关的信息比特(第2组信息比特),译码器可以基于交织比特序列和相关矩阵qmax的第0列,确定第0组信息比特的校验结果,如果该校验结果与第0个校验比特相同,确定对第0组信息比特校验成功,否则确定校验失败或译码失败,无需进行后续的校验或译码;基于交织比特序列和相关矩阵qmax的第1列,确定第1组信息比特的校验结果,如果该校验结果与第1个校验比特相同,确定对第1组信息比特校验成功,否则确定校验失败或译码失败,无需进行后续的校验或译码;然后基于交织比特序列和相关矩阵qmax的第2列,确定第2组信息比特的校验结果,如果该校验结果与第2个校验比特相同,确定对第2组信息比特校验成功,否则确定校验失败或译码失败,无需进行后续的校验或译码。

在本申请实施例中,由于通过确定的表征交织比特序列与校验比特之间的相关信息的相关矩阵qmax,对待校验的信息比特进行校验,使得接收机在比特校验时产生的计算量小,因此能够降低接收机在比特校验时的计算量。

基于前述实施例,本申请提供一种校验方法,图7为本申请实施例提供的另一种校验方法的流程示意图,该方法应用于接收机或译码器中,该方法包括:

s701、确定与kmax对应的交织函数∏max(k)。

其中,k为大于或等于1且小于或等于kmax的整数。

在本申请实施方式中,确定与kmax对应的交织函数∏max(k)可以通过以下方式实现:首先可以确定与kmax对应的生成矩阵生成矩阵为kmax行l列的矩阵;生成矩阵的第l列表征:交织比特序列所对应的未交织比特序列与第l个校验比特之间的相关信息;未交织比特序列依次包括l个寄存器状态比特、a个信息比特以及l个校验比特;然后可以基于生成矩阵确定交织函数∏max(k)。

确定与kmax对应的生成矩阵的方式可以通过上述公式(5)和上述公式(6)来确定,即先确定生成矩阵的最后一行,然后逐渐递归直到得到生成矩阵的第0行,从而确定生成矩阵

在本申请实施方式中,基于生成矩阵确定交织函数∏max(k)的步骤可以通过以下方式确定:在基于生成矩阵确定第l组相关比特中第p个相关比特未被交织的情况下,确定交织函数∏max(k)=p;p为大于或等于0且小于或等于kmax的整数;在基于生成矩阵确定第l组相关比特中的所有相关比特均被交织的情况下,确定交织函数∏max(k)=kmax-l+l。

在一种实施方式中,基于生成矩阵确定交织函数∏max(k)可以通过以下伪代码实现:

其中,eachjsuchthat可以理解为对应的第j行第l列大于0的j。theredoesnotexist0≤m<kwith∏max(m)=j可以理解为,在0~k中不存在一个m,使得∏max(m)=j。

图8a为本申请实施例提供的一种kmax=188时交织前的比特序列下标的示意图,图8b为本申请实施例提供的一种kmax=188时交织后的比特序列下标的示意图。在图8a和8b所示出的实施例中,交织函数∏max(k)对应的交织的比特序列中的比特数k等于kmax等于188。如图8a所示,交织前的比特序列中,比特下标0~23代表寄存器状态比特,比特下标24~163代表信息比特,比特下标164~187代表校验比特。如图8b所示,在下标164的校验比特之前的比特为与该下标164的校验比特对应的相关比特,在下标164的校验比特与下标165的校验比特之间的比特为与下标165的校验比特对应的相关比特。

通过图8a和8b,可以确定交织函数∏max(k)中的k对应于图8a的每一个值,∏max(k)对应于图8b的每一个值。举例而言,∏max(0)=1,∏max(19)=33,∏max(24)=49,∏max(164)=62,∏max(187)=187,此处不一一列举。

图8a和图8b所对应的交织函数∏max(k)比协议中给出的交织函数长l个比特,这是为了在后续确定相关性的步骤中能够考虑到产生crc的移位寄存器初始状态不为零的情况。应理解,在本申请实施例中,交织函数∏max(k)和交织函数∏max代表的意思相同。

s703、从交织比特序列中,基于交织函数∏max(k),确定待校验的信息比特和与待校验的信息比特对应的校验比特。

如图8b所示,从交织函数∏max(k)中,可以确定出寄存器状态比特,寄存器状态比特可以为图8b中浅色阴影的下标所对应的比特;以及,可以确定出信息比特,信息比特为图8b中没有阴影的下标所对应的比特;以及,可以确定出校验比特,校验比特为图8b中深色阴影的下标所对应的比特。例如,第0个校验比特为下标164所对应的比特,第0组信息比特为下标164之前的没有阴影的下标(下标24~163)所对应的比特,第0组寄存器比特位下标164之前的浅色阴影的下标(下标1~23)所对应的比特;第1个校验比特为下标165所对应的比特,第1组信息比特为下标164之后下标165之前的没有阴影的下标(下标25~159)所对应的比特,第1组寄存器比特位下标164之后下标165之前的浅色阴影的下标(下标0~22)所对应的比特;以此类推,此处不一一列举。

继续参阅图8b,在一种实施例中,待校验的信息比特可以为下标24~163所对应的比特、和/或、下标25~159所对应的比特、和/或、30~160所对应的比特、和/或、下标36~161所对应的比特、和/或、37~62所对应的比特、和/或、63所对应的比特、和/或、64所对应的比特、和/或、65所对应的比特。

在本申请的一种实施方式中,待校验的信息比特可以为下标24~163所对应的比特、下标25~159所对应的比特以及30~160所对应的比特。这样做的有点在于,只通过对前三组信息比特校验就能够对信息比特中的大部分信息比特进行校验,从而节约了译码器在校验时的计算量。

图8a和8b中给出的是交织比特中未添加填充比特时,交织前的比特序列和交织后的比特序列的示意,应需理解的是,在交织比特序列中包括填充比特时,由于包括填充比特的交织比特序列中的比特数依然是kmax,且寄存器状态比特数依然是l,因此,包括填充比特的交织比特序列的交织方法,可以参考图8a和8b所示的不包括填充比特的交织方法来实现。

s705、确定相关矩阵qmax;相关矩阵qmax用于表征交织比特序列与校验比特之间的相关信息。

由于译码器处理的是交织后的序列,直接保存交织后的相关性信息(通过相关矩阵qmax体现)更为方便。本步骤中,确定相关矩阵qmax的一种实施方式可以为:基于生成矩阵和交织函数∏max(k),确定与kmax对应的相关矩阵qmax;相关矩阵qmax中的每一列表征:交织比特序列与l个校验比特中每一校验比特之间的相关信息。应理解,相关矩阵qmax的第0列表征交织比特序列与第0个校验比特p0之间的相关信息,相关矩阵qmax的第1列表征交织比特序列与第1个校验比特p1之间的相关信息,此处不一一列举。

在一种实施方式中,基于生成矩阵和交织函数∏max(k),确定与kmax对应的相关矩阵qmax的实施方式可以为:从交织函数∏max(k)中,获得函数值小于的交织函数∏max(j);将生成矩阵的第∏max(j)行第t列的值,作为相关矩阵qmax的第j行第t列的值。∏max(j)∈∏max(k)。

译码器还可以执行以下步骤:从交织函数∏max(k)中,获得函数值大于或等于的交织函数∏max(r);将相关矩阵qmax的第r行第t列的值置0,其中,∏max(r)+∏max(j)=∏max(k)。在这种方式中,将相关矩阵qmax中,未利用交织函数∏max(j)进行计算的相关矩阵qmax的行列式置0。

在一种实施方式中,可以基于公式(1)确定相关矩阵qmax

其中,qmax(j,t)为相关矩阵qmax的第j行第t列的值;为生成矩阵的第∏max(j)行第t列的值;为kmax与l的差值;相关矩阵qmax与生成矩阵的行数和列数相同。

可以看出,qmax是一个与维度相同的矩阵,它的每一列包含了对应crc比特与交织后的序列的相关性信息,其中crc比特与自身的相关性定义为零。

此处描述一下qmax的某些行列值的确定方法:

例如,在需要确定qmax第0行第0列的值时,此时j=0,t=0,译码器判断∏max(0)的值为1,小于值为164的接着译码器确定的值,由上述描述可知,为与第0个校验比特对应的相关比特中,第0个相关比特(或者也可以称为第0个寄存器的初始状态)的值,如果确定qmax(0,0)=1,如果确定qmax(0,0)=0。

再例如,在需要确定qmax第26行第1列的值时,此时j=26,t=1,译码器判断∏max(26)=52,小于值为164的接着译码器确定的值,即确定生成矩阵第52行第1列的值,由上述描述可知,为第1个校验比特对应的相关比特中,第52个相关比特(或者也可以称为第28个信息比特)的值,如果确定qmax(26,1)=1,如果确定qmax(26,1)=0。

又例如,在需要确定qmax第80行第3列的值时,此时j=80,t=3,译码器判断∏max(80)=164,等于值为164的不满足因此,译码器可以直接将qmax(80,3)确定为0。

应需理解,此处只是示意性的说明了相关矩阵qmax中某些元素的计算方式,本领域技术人员能够理解地是,参照上述方式,可以计算得到相关矩阵qmax中每个元素的值(其值为1或0),从而通过上述方式,译码器可以对通过来确定qmax中所有的元素的值。

s707、基于交织比特序列、相关矩阵qmax以及校验比特,对待校验的信息比特进行校验。

在本申请实施例中,给出了一种通过交织函数,从交织比特序列中确定出信息比特和与待校验的信息比特对应的校验比特的方案,从而使得译码器能够在得到译码序列后,从译码序列中确定待校验的信息比特;并且,给出了相关矩阵qmax的计算方式,使得译码器能够通过相关矩阵qmax进行信息比特的校验。

基于前述实施例,本申请实施例提供一种校验方法,在介绍本申请实施例中的译码方法之前,首先对本申请实施例中的交织比特序列的结构作出描述。

交织比特序列中包括kmax个比特,kmax个比特包括个译码比特和交织入个译码比特的l个寄存器状态比特;为能够译码得到的最大比特数,l为大于或等于1的整数。

在这种实施方式中,译码器在译码后得到的交织比特序列中包括个比特。

在这种实施方式中,交织比特序列为:对l个寄存器状态比特、a个信息比特以及l个校验比特进行交织后得到的kmax个比特;a为大于或等于1的整数,l个校验比特中的至少一个比特,与至少一组相关比特一一相关;至少一组相关比特中的第l组相关比特包括:第l组寄存器状态比特和/或第l组信息比特。

本申请实施例中的l个校验比特中的至少一个比特,可以是l个校验比特中的前一个、前两个或前三个校验比特。

例如,如图8b所示,在本申请的一种实施方式中,l个校验比特中第0个校验比特与第0组寄存器比特相关,且第0个校验比特与第0组信息比特相关。l个校验比特中第4个校验比特,就仅有第4组信息比特相关。l个校验比特中第8个校验比特,不仅没有与其相关的寄存器比特,也没有与其相关的信息比特。

在本申请的实施方式中,可以为物理下行控制信道所对应的交织比特序列数的最大取值。的值可以为164,l的值为24,a的值为140。在其它实施中,l、a还可以有其它取值,本申请对此不作限制。例如,以l举例,l的值还可以为6、11或16等,以及随着标准的演进,l还可以有其它取值。

在一种实施方式中,待校验的信息比特中可以包括一组或至少两组信息比特,一组信息比特可以包括在一组相关比特中,一组信息比特与一组相关比特相对应。

图9a为本申请实施例提供的一种译码序列的结构示意图,图9b为本申请实施例提供的一种交织比特序列的结构示意图,如图9a所示,译码序列可以与编码器对信息比特和校验比特进行交织后得到的交织比特序列相对应,或者也可以描述成:译码序列的结构,可以与编码器对信息比特和校验比特进行交织后得到的交织比特序列的结构相同。

译码序列包括第0个校验比特p0,与位于第0个校验比特p0之前的与p0相关的第0组信息比特;还包括第1个校验比特p1,与位于第0个校验比特p0与第1个校验比特p1之间的第1组信息比特,第1组信息比特与p1相关但与p0无关;还包括第2个校验比特p2,与位于第1个校验比特p1与第2个校验比特p2之间的第2组信息比特,第2组信息比特与p2相关但与p0和p1无关,以此类推,直到某一校验比特没有与其对应的相关比特。

如图9b所示,交织比特序列相较于译码比特的区别在于,在译码比特中交织了寄存器比特,第0组寄存器比特位于第0组相关比特b0中的阴影部分,第1组的寄存器比特位于第1组相关比特b1中的阴影部分,从图9b所给的示意中可以看出,在第2组相关比特b2之后,将没有寄存器比特被交织进去。应理解,图9b只是给出了寄存器比特交织入译码比特中的示意,在实际应用中,寄存器比特的位置可以不是如图9b所示出的位置。

图10为本申请实施例提供的又一种校验方法的流程示意图,如图10所示,该方法应用于译码器或接收机中,该方法包括:

s1001、对接收到的编码比特进行译码,得到译码序列。

编码比特可以是接收机接收到发送机发送的数据后,对该数据进行解扰、解速率匹配、子块解交织等操作后得到的。

其中,译码序列为对线性分组码进行译码后的序列,线性分组码包括:低密度校验码ldpc或极化码polarcode。即本申请实施例中的译码器可以是ldpc译码器或者polarcode译码器,ldpc译码器可以对编码比特进行ldcp译码操作,polarcode译码器可以对编码比特进行polarcode译码操作。

s1003、在译码序列的比特数k等于的情况下,获得寄存器状态比特序列。

在本申请实施例中,寄存器状态比特序列为比特值全为1的24个比特。在其它实施例中,寄存器状态比特序列可以不是全为1,例如,全为0,或者,部分为0,部分为1,或者寄存器状态比特序列的比特数为其它数量个,例如,6、11、16、或其它数量个。

s1005、将寄存器状态比特序列交织入译码序列,得到交织比特序列。

在一种实施方式中,译码器可以通过上述实施例中的交织函数来确定a个信息比特和l个校验比特,并依次将l个寄存器状态比特、a个信息比特和l个校验比特进行排列,得到图8a对应的交织前的比特序列下标,然后通过交织函数∏max(k)得到本申请实施例中的交织比特序列,如图8b所示。

s1007、从交织比特序列中,确定待校验的信息比特和与待校验的信息比特对应的校验比特。

s1009、确定相关矩阵qmax;相关矩阵qmax用于表征交织比特序列与校验比特之间的相关信息。

s1011、基于交织比特序列和相关矩阵qmax,确定待校验的信息比特的第一校验结果。

在一种实施方式中,译码器可以首先确定交织比特序列中第i个元素,和相关矩阵qmax的第l列相关向量中第i个元素的乘积;然后对kmax个乘积进行异或运算,得到第一校验结果。

在一种实施方式中,交织序列为(1,1,0,1),相关矩阵qmax的第l列为(1,1,0,0),那么第l组信息比特的校验结果可以为(1×1)⊕(1×1)⊕(0×0)⊕(1×0)。校验结果的确定还可以有其它方式,本申请对此不作限制。

s1013、如果第一校验结果与校验比特相同,确定待校验的信息比特校验成功。

如果待校验的信息比特中包括一组信息比特,例如,第0组信息比特,那么译码器可以确定第0组信息比特对应的第一校验结果,与第0个校验比特是否相同,如果相同,确定对第0组信息比特校验成功。

如果待校验的信息比特中包括至少两组信息比特,那么译码器可以确定至少两组信息比特一一对应的至少两个校验结果,如果至少两个校验结果与至少两组信息比特对应的校验比特相同,确定校验成功,否则校验失败。

基于前述实施例,本申请实施例提供一种校验方法,在介绍本申请实施例中的译码方法之前,首先对本申请实施例中的交织比特序列的另一种结构作出描述:

交织比特序列中包括kmax个比特,kmax个比特包括k个有效比特和交织入k个有效比特的(kmax-k)个填充比特;k个有效比特:包括(k-l)个译码比特,和交织入(k-l)个译码比特的l个寄存器状态比特;k为大于或等于1且小于的整数,为能够译码得到的最大比特数,l为大于或等于1的整数。

在这种实施方式中,交织比特序列为:对(kmax-k)个填充比特、l个寄存器状态比特、(a-kmax+k)个信息比特以及l个校验比特进行交织后得到的比特数为kmax的比特序列;l个校验比特中的至少一个比特,与至少一组相关比特一一相关;至少一组相关比特中的第l组相关比特包括:第l组填充比特和/或第l组寄存器状态比特和/或第l组信息比特。

本申请实施例中的第0组相关比特的具体位置,可以位于第0个校验比特p0之前,第1组相关比特的具体位置,可以位于第0个校验比特p0与第1个校验比特p1之间;第2组相关比特的具体位置,可以位于第1个校验比特p1与第2个校验比特p2之间,以此类推,直到某一校验比特没有与其对应的相关比特。每一组相关比特可以依次布置填充比特、寄存器比特以及信息比特,或者可以依次布置寄存器比特和信息比特,或者布置信息比特。相关比特还可以有其它布置,本申请对此不作限制。

图11为本申请实施例提供的再一种校验方法的流程示意图,如图11所示,该方法应用于译码器或接收机中,该方法包括:

s1101、对接收到的编码比特进行译码,得到译码序列。

得到译码序列的方法可以参照s1001中的描述。

s1103、在译码序列的比特数k小于的情况下,获得寄存器状态比特序列和个填充比特。

个填充比特可以是随机生成的比特序列,填充比特可以是无意义的比特。

在本申请实施例中,寄存器状态比特序列为比特值全为1的24个比特。在其它实施例中,寄存器状态比特序列可以不是全为1,例如,全为0,或者,部分为0,部分为1,或者寄存器状态比特序列的比特数为其它数量个,例如,6、11、16、或其它数量个。

s1105、将寄存器状态比特序列和个填充比特交织入译码序列,得到交织比特序列。

在一种实施方式中,译码器可以通过上述描述的第一组伪代码(或交织函数π的伪代码定义),在译码序列中的比特数k满足的情况下,从本实施例(图11)对应的实施例中的译码序列中提取信息比特和校验比特。并依次将个填充比特、寄存器状态比特序列、个信息比特以及l个校验比特进行排列,得到图8a对应的交织前的比特序列下标,然后通过交织函数∏max(k)得到本申请实施例中的交织比特序列。

s1107、从交织比特序列中,确定待校验的信息比特和与待校验的信息比特对应的校验比特。

s1109、确定相关矩阵qmax;相关矩阵qmax用于表征交织比特序列与校验比特之间的相关信息。

s1111、基于交织比特序列和相关矩阵qmax,确定待校验的信息比特的第一校验结果。

在一种实施方式中,译码器可以通过以下方式确定第一校验结果:确定交织比特序列中第i个元素,和相关矩阵qmax的第l列相关向量中第i个元素的乘积;对kmax个乘积进行异或运算,得到第l组信息比特的第二校验结果;基于第二校验结果,确定第一校验结果。

其中,基于第二校验结果,确定第一校验结果,可以通过以下方式实现:对第二校验结果进行校正,确定第一校验结果。

在一种实施方式中,对第二校验结果进行校正,确定第一校验结果的步骤,可以通过以下方式实现:基于交织函数∏max(k),确定与第l个校验比特相关的第l组相关比特;在第l组相关比特中包括第l组信息比特和第l组寄存器状态比特的情况下,基于第l组信息比特中包括的n个信息比特,和第l组寄存器状态比特包括的r个寄存器状态比特,对第二校验结果进行校正,得到第一校验结果;n为大于或等于1的整数,r为大于或等于1的整数。

在一种实施方式中,基于第l组信息比特中包括的n个信息比特,和第l组寄存器状态比特包括的r个寄存器状态比特,对第二校验结果进行校正,得到第一校验结果,可以通过以下方式实现:基于n个信息比特,对第二校验结果进行校正,得到第三校验结果;基于r个寄存器状态比特,对第三校验结果进行校正,得到第一校验结果。

在一种实施方式中,基于n个信息比特,对第二校验结果进行校正,得到第三校验结果,可以通过以下方式实现:如果n等于1,对第l组信息比特中包括的一个信息比特,和第二校验结果进行异或计算,得到第三校验结果;如果n大于1,对n个信息比特进行异或计算,确定第二异或结果;对第二异或结果和第二校验结果进行异或计算,得到第三校验结果。

在一种实施方式中,基于r个寄存器状态比特,对第三校验结果进行校正,得到第一校验结果可以通过以下方式实现:如果r等于1,对第l组寄存器状态比特中包括的一个寄存器状态比特,和第三校验结果进行异或计算,得到第一校验结果;如果r大于1,对r个寄存器状态比特进行异或计算,得到第三异或结果;对第三异或结果和第三校验结果进行异或计算,得到第一校验结果。

在本申请的一种实施方式中,基于交织比特序列和相关矩阵qmax,确定待校验的信息比特的第一校验结果的实现的过程,可以如以下伪代码(标记为第三组伪代码)所示:

在这个伪代码中,t的取值可以为0、1、2或3;determinemsuchthat可以理解为:确定满足条件的m;用于判断交织比特中的填充比特和寄存器比特;用于判断寄存器比特;qmax(j,t)>0用于表征第j个寄存器比特与第t个校验比特相关。

经过验证,对任意的正整数按照以上代码和交织后的序列c′计算出的crc比特与使用生成矩阵pcrc和未交织的序列c计算出的crc比特完全一致。

在图10和图11对应的两个实施例中,分别介绍了交织比特序列的两种不同的结构,即没有填充比特的情况和有填充比特的情况,而这两种情况在校验时采用的校验方式是不同的,从而本申请实施例给出了不同场景下的校验方式,提高了校验方法的通用性。

时,根据qmax可以直接计算出每一个crc比特。当时,仍然考虑在扩展序列前添加个填充比特;此时,对qmax指出的每一个相关比特,需要通过交织函数πmax额外判断它属于信息比特,寄存器初始状态比特,还是无意义的填充比特,并根据类别不同在计算crc时分别加以处理,而具体的处理方式可以参照第三组伪代码的说明。

s1113、如果第一校验结果与校验比特相同,确定待校验的信息比特校验成功。

如前文描述,在极化码的编译设计中,通过交织使crc比特按照与信息比特的相关性重新分布的方法,有助于译码器对译码结果作出提前判断或对译码路径作出选择,从而降低译码延迟和功耗,提高纠错性能。

还需说明的是,在本申请的一种实施例中,待校验的信息比特可以包括:第0个校验比特对应的第0组信息比特、第1个校验比特对应的第1组信息比特、第2个校验比特对应的第2组信息比特和第3个校验比特对应的第3组信息比特中的至少一组信息比特。

通过这种方式,将用于辅助译码的crc比特数记为t,由于随t的增加,译码器复杂度和性能逐渐减少,因此在实施过程中,t可以取一个较小的数值,如1、2或3)。本申请实施中的分布式crc比特辅助译码技术的关键是确定与前t个crc比特相关的信息比特和寄存器初始状态的下标。

由于译码器处理的是交织后的序列,直接保存交织后的相关性信息更为方便。

在本申请实例例中,使用本方案提出的方法计算分布式crc比特可以保存交织函数πmax和最大相关性矩阵qmax(相当于本申请实施例中的相关矩阵qmax)的前t列,或者只保存最大相关性矩阵qmax的前t列,或者只保存最大相关性矩阵qmax。由于根据πmax可计算出任意对应的交织函数,译码器无需再保存从而降低了译码时所需存储的数据量。矩阵qmax的前t列共包含kmax×t个比特,但由于其中有多个连续为1的字段,而且从交织函数πmax可推断出这些字段的起始和结束位置,故需要保存的比特数远小于kmax×t。经过统计,对kmax=188,t=2的情况,保存矩阵qmax中的有效信息共需约80个比特。

本方案所提出的分布式crc比特计算方法可应用于基带芯片中的极化译码器,使其在进行串行译码时可提前判断译码结果或对译码路径作出选择,从而降低译码延时和功率消耗,并能对纠错性能带来一定提升。该方法实现简单而灵活性高,适用于不同信息序列长度和校验码初始寄存器状态,动态运算量小,且增加的硬件存储空间十分有限。相对于它所支持的crc辅助译码算法对极化译码器带来的优化作用,其实现成本非常低廉。

综上,本申请实施例提供的校验方法,对一定范围内的输入序列长度,无需从循环冗余校验码的生成多项式出发计算每个crc比特与信息比特的相关性。方法利用了校验码生成矩阵可通过自下而上的迭代过程计算而来的特性,只计算一个较大的输入序列长度对应的生成矩阵和相关性矩阵,小于该长度的序列对应的生成矩阵均为其子矩阵,相关性信息也可通过最大相关性矩阵和最大交织函数计算获得。这一方法减小了译码器运行时的运算量和动态存储需求。

校验方法运用直接作用于交织后序列的相关性信息,而非生成矩阵本身。由于交织后与某一crc比特相关的信息比特更为集中,这种做法缩小了需考察的信息比特的范围,使运算更为快捷,同时也减少了需要保存的矩阵信息。

本申请实施例中的校验方法,适用于任意校验码寄存器初始状态。方案提出的算法对协议中给出的交织函数作了扩展,使之适用于校验码寄存器初始状态非零的情况。这不仅方便了分布式crc比特辅助译码算法在pdcch上的应用,同时给予了算法更高的灵活性,有助于它在其它场景或系统中得到应用。

通过循环冗余校验码来检查信息比特的正确性是无线通信系统中的常见做法。在长期演进(longtermevolution,lte)、5gnr等协议中,多个传输信道的信息都由循环冗余校验码保护。

本方案中的校验方法可以应用在极化码译码器中,本方案提出的方法也可应用在其它涉及串行译码的算法模块中,例如ldpc的串行调度机制,主要是用来提高变量节点和校验节点之间软比特信息传递的速度。如果能够通过比特交织和适当的调度算法优先集中计算与某些crc比特相关的信息比特的似然比,则可以对译码情况作出早期判断:是否可以提前宣布译码失败,是否考虑对某些比特进行翻转操作,等等。这些举措将对降低ldpc译码器的功耗和提升纠错性能有所助益。在这一设想里,本方案提出的算法就可能被应用于校验节点的串行调度中。

基于前述的实施例,本申请实施例提供一种校验装置,该装置包括所包括的各单元、以及各单元所包括的各模块,可以通过译码器或接收机中的处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(cpu)、微处理器(mpu)、数字信号处理器(dsp)或现场可编程门阵列(fpga)等。

图12为本申请实施例提供的一种校验装置的组成结构示意图,如图12所示,校验装置12包括:

比特确定单元1201,用于获得包括kmax个比特的交织比特序列,从交织比特序列中,确定待校验的信息比特和与待校验的信息比特对应的校验比特;

相关矩阵确定单元1202,用于确定相关矩阵qmax;相关矩阵qmax用于表征交织比特序列与校验比特之间的相关信息;

校验单元1203,用于基于交织比特序列、相关矩阵qmax以及校验比特,对待校验的信息比特进行校验。

在一些实施例中,比特确定单元1201,还用于确定与kmax对应的交织函数∏max(k);其中,k为大于或等于1且小于或等于kmax的整数;从交织比特序列中,基于交织函数∏max(k),确定待校验的信息比特和与待校验的信息比特对应的校验比特。

在一些实施例中,比特确定单元1201,还用于确定与kmax对应的生成矩阵生成矩阵为kmax行l列的矩阵;生成矩阵的第l列表征:交织比特序列所对应的未交织比特序列与第l个校验比特之间的相关信息;未交织比特序列依次包括l个寄存器状态比特、a个信息比特以及l个校验比特;基于生成矩阵确定交织函数∏max(k)。

在一些实施例中,比特确定单元1201,还用于在基于生成矩阵确定第l组相关比特中第p个相关比特未被交织的情况下,确定交织函数∏max(k)=p;p为大于或等于0且小于或等于kmax的整数;在基于生成矩阵确定第l组相关比特中的所有相关比特均被交织的情况下,确定交织函数∏max(k)=kmax-l+l。

在一些实施例中,相关矩阵确定单元1202,还用于基于生成矩阵和交织函数∏max(k),确定与kmax对应的相关矩阵qmax;相关矩阵qmax中的每一列表征:交织比特序列与l个校验比特中每一校验比特之间的相关信息。

在一些实施例中,相关矩阵确定单元1202,还用于从交织函数∏max(k)中,获得函数值小于的交织函数∏max(j);将生成矩阵的第∏max(j)行第t列的值,作为相关矩阵qmax的第j行第t列的值。

在一些实施例中,相关矩阵确定单元1202,还用于基于公式(1)确定相关矩阵qmax

其中,qmax(j,t)为相关矩阵qmax的第j行第t列的值;为生成矩阵的第∏max(j)行第t列的值;为kmax与l的差值;相关矩阵qmax与生成矩阵的行数和列数相同。

在一些实施例中,校验单元1203,还用于基于交织比特序列和相关矩阵qmax,确定待校验的信息比特的第一校验结果;如果第一校验结果与校验比特相同,确定待校验的信息比特校验成功。

在一些实施例中,kmax个比特包括个译码比特和交织入个译码比特的l个寄存器状态比特;为能够译码得到的最大比特数,l为大于或等于1的整数。

在一些实施例中,交织比特序列为:对l个寄存器状态比特、a个信息比特以及l个校验比特进行交织后得到的kmax个比特;a为大于或等于1的整数,l个校验比特中的至少一个比特,与至少一组相关比特一一相关;至少一组相关比特中的第l组相关比特包括:第l组寄存器状态比特和/或第l组信息比特。

在一些实施例中,比特确定单元1201,还用于对接收到的编码比特进行译码,得到译码序列;在译码序列的比特数k等于的情况下,获得寄存器状态比特序列;将寄存器状态比特序列交织入译码序列,得到交织比特序列。

在一些实施例中,校验单元1203,还用于确定交织比特序列中第i个元素,和相关矩阵qmax的第l列相关向量中第i个元素的乘积;对kmax个乘积进行异或运算,得到第一校验结果。

在一些实施例中,kmax个比特包括k个有效比特和交织入k个有效比特的(kmax-k)个填充比特;k个有效比特:包括(k-l)个译码比特,和交织入(k-l)个译码比特的l个寄存器状态比特;k为大于或等于1且小于的整数,为能够译码得到的最大比特数,l为大于或等于1的整数。

在一些实施例中,交织比特序列为:对(kmax-k)个填充比特、l个寄存器状态比特、(a-kmax+k)个信息比特以及l个校验比特进行交织后得到的比特数为kmax的比特序列;l个校验比特中的至少一个比特,与至少一组相关比特一一相关;至少一组相关比特中的第l组相关比特包括:第l组填充比特和/或第l组寄存器状态比特和/或第l组信息比特。

在一些实施例中,比特确定单元1201,还用于对接收到的编码比特进行译码,得到译码序列;在译码序列的比特数k小于的情况下,获得寄存器状态比特序列和个填充比特;将寄存器状态比特序列和个填充比特交织入译码序列,得到交织比特序列。

在一些实施例中,校验单元1203,还用于确定交织比特序列中第i个元素,和相关矩阵qmax的第l列相关向量中第i个元素的乘积;对kmax个乘积进行异或运算,得到第l组信息比特的第二校验结果;基于第二校验结果,确定第一校验结果。

在一些实施例中,校验单元1203,还用于对第二校验结果进行校正,确定第一校验结果。

在一些实施例中,校验单元1203,还用于基于交织函数∏max(k),确定与第l个校验比特相关的第l组相关比特;在第l组相关比特中仅包括第l组信息比特的情况下,基于第l组信息比特中包括的m个信息比特,对第二校验结果进行校正,得到第一校验结果;m为大于或等于1的整数。

在一些实施例中,校验单元1203,还用于如果m等于1,对第l组信息比特中包括的一个信息比特,和第二校验结果进行异或计算,得到第一校验结果;如果m大于1,对m个信息比特进行异或计算,确定第一异或结果;对第一异或结果和第二校验结果进行异或计算,得到第一校验结果。

在一些实施例中,校验单元1203,还用于基于交织函数∏max(k),确定与第l个校验比特相关的第l组相关比特;在第l组相关比特中包括第l组信息比特和第l组寄存器状态比特的情况下,基于第l组信息比特中包括的n个信息比特,和第l组寄存器状态比特包括的r个寄存器状态比特,对第二校验结果进行校正,得到第一校验结果;n为大于或等于1的整数,r为大于或等于1的整数。

在一些实施例中,校验单元1203,还用于基于n个信息比特,对第二校验结果进行校正,得到第三校验结果;基于r个寄存器状态比特,对第三校验结果进行校正,得到第一校验结果。

在一些实施例中,校验单元1203,还用于如果n等于1,对第l组信息比特中包括的一个信息比特,和第二校验结果进行异或计算,得到第三校验结果;如果n大于1,对n个信息比特进行异或计算,确定第二异或结果;对第二异或结果和第二校验结果进行异或计算,得到第三校验结果。

在一些实施例中,校验单元1203,还用于如果r等于1,对第l组寄存器状态比特中包括的一个寄存器状态比特,和第三校验结果进行异或计算,得到第一校验结果;如果r大于1,对r个寄存器状态比特进行异或计算,得到第三异或结果;对第三异或结果和第三校验结果进行异或计算,得到第一校验结果。

在一些实施例中,待校验的信息比特包括:第0个校验比特对应的第0组信息比特、第1个校验比特对应的第1组信息比特、第2个校验比特对应的第2组信息比特和第3个校验比特对应的第3组信息比特中的至少一组信息比特。

在一些实施例中,交织比特序列中校验比特的个数为24,交织比特序列中寄存器比特的个数为24。

在一些实施例中,交织比特序列是将寄存器比特序列交织入译码序列中得到的,或者,交织比特序列是将寄存器比特序列和填充比特序列交织入译码序列中得到的;译码序列为对线性分组码进行译码后的序列,线性分组码包括:低密度校验码ldpc或极化码polarcode。

在一些实施例中,kmax与l之和;为物理下行控制信道所对应的交织比特序列数的最大取值;l为交织比特序列中校验比特的个数,或者,l为交织比特序列中寄存器比特的个数。

以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。

需要说明的是,本申请实施例中,如果以软件功能模块的形式实现上述的校验方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台译码器或接收机执行本申请各个实施例方法的全部或部分。而前述的存储介质包括:u盘、移动硬盘、只读存储器(readonlymemory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。

需要说明的是,图13为本申请实施例提供的一种译码器的硬件实体示意图,如图13所示,该译码器13的硬件实体包括:处理器1301和存储器1302,其中,存储器1302存储有可在处理器1301上运行的计算机程序,处理器1301执行程序时实现上述任一实施例的方法中的步骤。

在本申请实施例中,译码器包括ldpc译码器或极化码译码器。

其中,存储器1302存储有可在处理器上运行的计算机程序,存储器1302配置为存储由处理器1301可执行的指令和应用,还可以缓存待处理器1301以及译码器或接收机13中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(flash)或随机访问存储器(randomaccessmemory,ram)实现。

处理器1301执行程序时实现上述任一项的校验方法的步骤。处理器1301通常控制译码器或接收机13的总体操作。

需要说明的是,图14为本申请实施例提供的一种接收机的硬件实体示意图,如图14所示,该接收机14包括上述的译码器13;其中,译码器13中包括处理器1301和存储器1302。译码器13可以设置在接收机的基带芯片中。

本申请实施例提供一种计算机存储介质,计算机存储介质存储有一个或者多个程序,一个或者多个程序可被一个或者多个处理器执行,以实现上述任一方法中的步骤。

图15是本申请实施例提供的一种芯片的结构示意图。图15所示的芯片15包括处理器151,处理器151可以从存储器中调用并运行计算机程序,以实现本申请实施例中译码器或接收机执行的方法的步骤。

在一些实施中,如图15所示,芯片15还可以包括存储器152。其中,处理器151可以从存储器152中调用并运行计算机程序,以实现本申请实施例中译码器或接收机执行的方法的步骤。

其中,存储器152可以是独立于处理器151的一个单独的器件,也可以集成在处理器151中。

在一些实施中,该芯片15还可以包括输入接口153。其中,处理器151可以控制该输入接口153与其他设备或芯片进行通信,具体地,可以获取其他设备或芯片发送的信息或数据。

在一些实施中,该芯片15还可以包括输出接口154。其中,处理器151可以控制该输出接口154与其他设备或芯片进行通信,具体地,可以向其他设备或芯片输出信息或数据。

在一些实施中,该芯片15可应用于本申请实施例中的接收机,并且该芯片15可以实现本申请实施例的各个方法中由译码器或接收机实现的相应流程,为了简洁,在此不再赘述。芯片15可以是接收机中的基带芯片。

应理解,本申请实施例提到的芯片15还可以称为系统级芯片,系统芯片,芯片系统或片上系统芯片等。

本申请实施例提供一种计算机程序产品,计算机程序产品包括计算机存储介质,计算机存储介质存储计算机程序代码,计算机程序代码包括能够由至少一个处理器执行的指令,当指令由至少一个处理器执行时实现上述方法中译码器或接收机执行的方法的步骤。

在一些实施中,该计算机程序产品可应用于本申请实施例中的译码器或接收机,并且该计算机程序指令使得计算机执行本申请实施例的各个方法中由译码器或接收机实现的相应流程,为了简洁,在此不再赘述。

应理解,本申请实施例的处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。

可以理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-onlymemory,rom)、可编程只读存储器(programmablerom,prom)、可擦除可编程只读存储器(erasableprom,eprom)、电可擦除可编程只读存储器(electricallyeprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(randomaccessmemory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(staticram,sram)、动态随机存取存储器(dynamicram,dram)、同步动态随机存取存储器(synchronousdram,sdram)、双倍数据速率同步动态随机存取存储器(doubledataratesdram,ddrsdram)、增强型同步动态随机存取存储器(enhancedsdram,esdram)、同步连接动态随机存取存储器(synchlinkdram,sldram)和直接内存总线随机存取存储器(directrambusram,drram)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。

应理解,上述存储器为示例性但不是限制性说明,例如,本申请实施例中的存储器还可以是静态随机存取存储器(staticram,sram)、动态随机存取存储器(dynamicram,dram)、同步动态随机存取存储器(synchronousdram,sdram)、双倍数据速率同步动态随机存取存储器(doubledataratesdram,ddrsdram)、增强型同步动态随机存取存储器(enhancedsdram,esdram)、同步连接动态随机存取存储器(synchlinkdram,sldram)以及直接内存总线随机存取存储器(directrambusram,drram)等等。也就是说,本申请实施例中的存储器旨在包括但不限于这些和任意其它适合类型的存储器。

这里需要指出的是:以上校验装置、译码器、接收机、计算机存储介质、芯片和计算机程序产品实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请存储介质和设备实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。

需要注意的是,本申请实施例中的所描述的“第0个”、“第0组”、“第0行”、“第0列”、“第1个”、“第1组”、“第2个”、“第2组”等等,是基于机器的角度来阐述的,本领域技术人员应当理解,某一序列中的第0个比特,表征序列中出现的第一个比特,某一序列中的第0组比特,表征序列中第一次出现的一组比特,在机器的角度中矩阵的第0行或第0列,表征用户角度中矩阵的第1行或第1列,对此本申请将不作一一说明。

还需要注意的是,本申请实施例虽然并未详细说明译码器在执行伪代码时的执行过程,但是本领域技术人员通过上述的伪代码,是能够知道伪代码的逻辑以及伪代码的功能,并且能够通过上述的伪代码实现相关的技术方案。

应理解,说明书通篇中提到的“一个实施例”或“一实施例”或“本申请实施例”或“前述实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”或“本申请实施例”或“前述实施例”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

在未做特殊说明的情况下,译码器或接收机执行本申请实施例中的任一步骤,可以是译码器或接收机的处理器执行该步骤。除非特殊说明,本申请实施例并不限定译码器或接收机执行下述步骤的先后顺序。另外,不同实施例中对数据进行处理所采用的方式可以是相同的方法或不同的方法。还需说明的是,本申请实施例中的任一步骤是译码器或接收机可以独立执行的,即译码器或接收机执行上述实施例中的任一步骤时,可以不依赖于其它步骤的执行。

应当理解的是,本申请中所涉及的例如kmax、qmax、∏max(k)、等等的限定表达,只是为了方便对本申请的相关内容作出相关说明,并不会对本申请权利要求中的保护范围作出限定。因此,在实施过程中,只要采用本方案所涉及到的逻辑,无论kmax、qmax、∏max(k)、等等的限定表达如何用其它方式代替,都应该在落入本申请的保护范围之内。

另外,对于本申请实施例中,未限定具体数量的字母或字符,例如kmaxl、t、j、l、t、i等等所表征的数量/个数,可以基于实际情况和/或上下文所确定,以及,未限定个数的字母或字符所代表的数量/个数可以包括在整数的范围内。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。

上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。

另外,在本申请各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。

本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。

本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(readonlymemory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。

或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本申请的实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1