一种交织方法及装置与流程

文档序号:16976937发布日期:2019-02-26 19:06阅读:213来源:国知局
一种交织方法及装置与流程

本申请实施例涉及通信技术领域,尤其涉及一种交织方法及装置。



背景技术:

无线通信的快速演进预示着未来第五代(5thgeneration,5g)通信系统将呈现出一些新的特点,最典型的三个通信场景包括增强型移动互联网(enhancemobilebroadband,embb)、海量机器连接通信(massivemachinetypecommunication,mmtc)和高可靠低延迟通信(ultrareliablelowlatencycommunication,urllc),这些通信场景的需求将对现有长期演进(longtermevolution,lte)技术提出新的挑战。信道编码作为最基本的无线接入技术,是满足5g通信需求的重要研究对象之一。目前,5g标准的制定已经如火如荼的展开,极化码(polarcodes)也被选作控制信道编码方式。极化码也可以称为polar码,是第一种、也是已知的唯一一种能够被严格证明“达到”信道容量的信道编码方法。在不同码长下,尤其对于有限码,polar码的性能远优于turbo码和低密度奇偶校验码(lowdensityparitycheck,ldpc)码。另外,polar码在编译码方面具有较低的计算复杂度。这些优点让polar码在5g中具有很大的发展和应用前景。

为了进一步提高抗干扰性能,一些信道编码加入了交织模块。在许多同时出现随机错误和突发错误的复合信道上,如短波、对流层散射等信道中,往往发生一个错误时,波及后面一串数据,导致突发误码超过纠错码的纠错能力,使纠错能力下降。如果首先把突发错误离散成随机错误,然后再去纠随机错误,则系统的抗干扰性能将进一步得到提高。实际应用中,在发送端纠错编码器后接数字交织单元,接收端解调后解交织,通过交织解交织电路的作用,将突然错误信道改造成独立的随机错误信道,将突发错误展开,实现错误离散化,使突发错误散布在纠错编码器纠错范围之内,以提高信道纠错能力。

目前polar码的交织设计的效果不够理想,较随机交织的性能相差很大。



技术实现要素:

本申请实施例提供一种交织方法及装置,用以提高polar码交织的随机性。

第一方面,提供一种交织方法,通过将待交织的比特序列进行一次交织或者分组,使得同一组内的比特在该待交织的比特序列上覆盖的范围较大,再将组内的比特进行交织,这样能够有助于避免组内比特交织的局限性;另外,不同组的组内交织采用不同的交织方式,例如,若采用行列交织的方式,在固定行的情况下,不同组的组内交织采用不同的行数,在固定列的情况下,不同组的组内交织采用不同的列数,这样使得交织后的序列更具有随机性。通过实验仿真发现,对于polar码来说,对待交织的比特序列进行交织操作达到的效果越随机化,则polar码的性能越好,本申请提供的这种交织方式的能够有效降低数据规律性,提高数据的随机性,将其应用于polar码交织更具有效性,更有助于改善polar码的编译性能。

在一个可能的设计中,获取待交织的比特序列,所述待交织的比特序列包括l个子序列,所述l个子序列包括s个子序列组,s个子序列组中至少包括第一子序列组和第二子序列组,所述第一子序列组至少包括2个子序列,所述第二子序列组至少包括1个子序列,l为大于1的正整数,对所述第一子序列组中的子序列采用第一交织方式进行交织,对所述第二子序列组中的子序列不交织或者采用第二交织方式进行交织。通过不同的组内交织方式,能够使得交织后的数据更加离散随机化,更加有助于改善polar的性能。

在一个可能的设计中,所述第一子序列组中的子序列的各个编号分别按照设定值进行取模运算的结果均为第一运算结果;所述第二子序列组中的子序列的各个编号分别按照所述设定值进行取模运算的结果均为第二运算结果。第一运算结果与第二运算结果不同。例如,按照各个编号除以设定值获得余数,将余数相同的分为一组。

在一个可能的设计中,所述第一交织方式为第一行列交织,所述第二交织方式为第二行列交织,所述第一行列交织和所述第二行列交织的行数不同或列数不同。也就是,第一子序列组和第二子序列采用不同交织深度的交织方式。这样,在硬件实现上易于并行处理,寻址计算较为方便,交织后的比特序列更具有随机离散性。

在一个可能的设计中,对所述第一子序列组中的子序列采用第一交织方式进行交织,可以通过以下方式实现:将所述第一子序列组中的所有比特逐比特输入交织器进行行列交织;或者,将所述第一子序列组中的部分或全部子序列分别在子序列内进行行列交织。

在一个可能的设计中,对所述第二子序列组中的子序列采用第二交织方式进行交织,可以通过以下方式实现:将所述第二子序列组中的所有比特逐比特输入交织器进行行列交织;或者,将所述第二子序列组中的部分或全部子序列分别在子序列内进行行列交织。

在一个可能的设计中,对所述第一子序列组中的子序列采用第一交织方式进行交织,可以通过以下方式实现:将所述第一子序列组中的各个子序列的位置进行交织处理,将所述第一子序列组中的所有比特输入行列交织器进行行列交织,或者,将所述第一子序列组中的各个子序列分别在子序列内进行行列交织。

在一个可能的设计中,对所述第二子序列组中的子序列采用第二交织方式进行交织,可以通过以下方式实现:将所述第二子序列组中的各个子序列的位置进行交织处理,将所述第二子序列组中的所有比特输入行列交织器进行行列交织,或者,将所述第二子序列组中的各个子序列分别在子序列内进行行列交织。

在一个可能的设计中,在所述获取待交织的比特序列之后,在对所述第一子序列组中的子序列采用第一交织方式进行交织,对所述第二子序列组中的子序列不交织或者采用第二交织方式进行交织之前,将所述待交织的比特序列输入i行j列的交织器,若i=l,一行中的比特组成一个所述子序列,则逐行读取所述第一子序列组中的子序列,以及逐行读取所述第二子序列组中的子序列;或者,若j=l,一列中的比特组成一个所述子序列,则逐列读取所述第一子序列组中的子序列,以及逐列读取所述第二子序列组中的子序列。

在一个可能的设计中,若已知i,则所述m为所述待交织的比特序列的长度;若已知j,则所述m为所述待交织的比特序列的长度。

在一个可能的设计中,所述获取待交织的比特序列之后,对所述第一子序列组中的子序列采用第一交织方式进行交织,对所述第二子序列组中的子序列不交织或者采用第二交织方式进行交织之前,将所述l个子序列进行分组,以获得所述第一子序列组和所述第二子序列组。

在一个可能的设计中,可以通过以下方式获得s个子序列组:将各个子序列的编号分别进行模s运算,模s运算即对s取模,s即确定的需要分成的子序列组的组数。按照运算结果,将相同运算结果的的编号分为一组。例如,第一子序列组的各个子序列编号进行模s的运算结果均为第一运算结果,第二子序列组的各个子序列编号进行模s的运算结果均为第二运算结果。

在一个可能的设计中,可以通过以下方式获得s个子序列组:对子序列的编号1~l采用比特逆序操作,获得一个新的编号排序序列,根据确定的子序列组的组数s,按照或者运算,确定一组内的子序列数m,从获得的新的编号排序序列中按照顺序每m个编号确定为一组,按照每组的编号确定每组的子序列。其中,最后一组的子序列数可以小于或等于m。可选的,若l非2的整数次幂,则对子序列的编号1~l采用比特逆序操作获得的编号排序序列中会包括大于l的数值,将比特逆序操作获得序列按顺序重排获得位置序列,按照位置序列继续进行上述选组的流程。

在一个可能的设计中,可以通过以下方式获得s个子序列组:从1~l中按照固定间隔g选择编号,获得第一组编号,并将第一组编号在编号1~l中剔除;类似的,再从剔除后的编号中按照固定间隔g选择编号,获得第二组编号,并将第二组编号剔除;以此类推,执行上述类似的操作,直到选出最后一组编号。

在一个可能的设计中,可以通过以下方式获得s个子序列组:对子序列的编号1~l按照方式3的方法操作,根据选择的各组编号获得新的编号排序序列,根据确定的子序列组的组数s,按照或者运算,确定一组内的子序列数m,从获得的新的编号排序序列中按照顺序每m个编号确定为一组,按照每组的编号确定每组的子序列。其中,最后一组的子序列数可以小于或等于m。可选的,若l非2的整数次幂,则对子序列的编号1~l采用比特逆序操作获得的编号排序序列中会包括大于l的数值,将比特逆序操作获得序列按顺序重排获得位置序列,按照位置序列继续进行上述选组的流程。

在一个可能的设计中,可以通过以下方式获得s个子序列组:根据各个子序列的编号1~l,选择最小值、最大值和中间值为第一组编号,中间值为编号排序序列的最大值除2向上取整或向下取整,将第一组编号在编号1~l中剔除;类似的,继续从剔除后的编号中选择最小值、最大值和中间值为第二组编号,并将第二组编号剔除;以此类推,执行上述类似的操作,直到选出最后一组编号。

在一个可能的设计中,可以通过以下方式获得s个子序列组:对子序列的编号1~l按照方式5的方法操作,根据选择的各组编号获得新的编号排序序列,根据确定的子序列组的组数s,按照或者运算,确定一组内的子序列数m,从获得的新的编号排序序列中按照顺序每m个编号确定为一组,按照每组的编号确定每组的子序列。其中,最后一组的子序列数可以小于或等于m。可选的,若l非2的整数次幂,则对子序列的编号1~l采用比特逆序操作获得的编号排序序列中会包括大于l的数值,将比特逆序操作获得序列按顺序重排获得位置序列,按照位置序列继续进行上述选组的流程。

在一个可能的设计中,子序列数l和子序列组数s可以至少综合几种因素来确定。例如:其一、可以与调制阶数联系起来,子序列组数s是调制阶数的函数的形式;其二、也可以与实际硬件实现联系起来,在硬件实现中s为2的幂次相对容易操作;其三、也可以与尽量随机化联系起来,s尽量为素数。

在一个可能的设计中,l取值为以下任一个:16,31,32,64,7,11,13,19,23,29,37,61。

在一个可能的设计中,将所述第一子序列组和所述第二子序列组的位置进行交织处理。

第二方面,提供一种交织装置,该装置具有实现上述第一方面和第一方面的任一种可能的设计中所述的方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。

在一个可能的设计中,当所述功能的部分或全部通过硬件实现时,所述交织装置包括:输入接口电路,用于获取待交织的比特序列;逻辑电路,用于执行上述第一方面和第一方面的任一种可能的设计中所述的行为;输出接口电路,用于输出交织后的比特序列。

可选的,所述交织装置可以是芯片或者集成电路。

在一个可能的设计中,当所述功能的部分或全部通过软件实现时,所述交织装置包括:存储器,用于存储程序;处理器,用于执行所述存储器存储的所述程序,当所述程序被执行时,所述交织装置可以实现如上述第一方面和第一方面的任一种可能的设计中所述的方法。

可选的,上述存储器可以是物理上独立的单元,也可以与处理器集成在一起。

在一个可能的设计中,当所述功能的部分或全部通过软件实现时,所述交织装置包括处理器。用于存储程序的存储器位于所述交织装置之外,处理器通过电路/电线与存储器连接,用于读取并执行所述存储器中存储的程序。

第三方面,提供了一种通信系统,该通信系统包括发送端和接收端,所述发送端可以执行如上述第一方面及其可能的设计所述的方法。

第四方面,提供了一种计算机存储介质,存储有计算机程序,该计算机程序包括用于执行第一方面和第一方面的任一可能设计中任一种所述的方法的指令。

第五方面,本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。

附图说明

图1(a)和图1(b)为本申请实施例中应用的通信系统架构示意图;

图2为本申请实施例中行列交织器行进列出的示意图;

图3为本申请实施例中交织方法流程示意图;

图4为本申请实施例中子序列组获得方法示意图;

图5为本申请实施例中按照方式1的交织方发流程示意图;

图6为本申请实施例中组内交织的方法示意图;

图7为本申请实施例中交织装置结构示意图之一;

图8为本申请实施例中交织装置结构示意图之二;

图9为本申请实施例中交织装置结构示意图之三;

图10为本申请实施例中解交织装置结构示意图之一;

图11为本申请实施例中解交织装置结构示意图之二;

图12为本申请实施例中解交织装置结构示意图之三;

图13为本申请实施例中网络设备和终端的结构示意图。

具体实施方式

下面将结合附图,对本申请实施例进行详细描述。

本申请实施例提供一种交织方法及装置,通过将待交织的比特序列进行一次交织或者分组,使得同一组内的比特在该待交织的比特序列上覆盖的范围较大,再将组内的比特进行交织,这样能够有助于避免组内比特交织的局限性;另外,不同组的组内交织采用不同的交织方式,例如,若采用行列交织的方式,在固定行的情况下,不同组的组内交织采用不同的行数,在固定列的情况下,不同组的组内交织采用不同的列数,这样使得交织后的序列更具有随机性。通过实验仿真发现,对于polar码来说,对待交织的比特序列进行交织操作达到的效果越随机化,则polar码的性能越好,本申请提供的这种交织方式的能够有效降低数据规律性,提高数据的随机性,将其应用于polar码交织更具有效性,更有助于改善polar码的编译性能。

为方便对本申请实施例的理解,下面对polar码作简单介绍。

polar码的编码策略利用无噪信道传输用户有用的信息,全噪信道传输约定的信息或者不传信息。polar码也是一种线性块码,其编码矩阵为gn,编码过程为其中是一个二进制的行矢量,长度为n(即码长);gn是一个n×n的矩阵,且定义为log2n个矩阵f2的克罗内克(kronecker)乘积。上述矩阵

polar码的编码过程中,中的一部分比特用来携带信息,称为信息比特集合,这些比特的索引的集合记作;另外的一部分比特设置为接收端和发送端预先约定的固定值,称之为固定比特集合或冻结比特集合(frozenbits),其索引的集合用的补集表示。polar码的编码过程相当于:这里,gn(a)是gn中由集合中的索引对应的那些行得到的子矩阵,gn(ac)是gn中由集合中的索引对应的那些行得到的子矩阵。中的信息比特集合,数量为k;中的固定比特集合,其数量为(n-k),是已知比特。这些固定比特通常被设置为0,但是只要接收端和发送端预先约定,固定比特可以被任意设置。从而,polar码的编码输出可简化为:这里中的信息比特集合,为长度k的行矢量,即|·|表示集合中元素的个数,k为信息块大小,是矩阵gn中由集合中的索引对应的那些行得到的子矩阵,是一个k×n的矩阵。

polar码的构造过程即集合的选取过程,决定了polar码的性能。polar码的构造过程通常是,根据母码码长n确定共存在n个极化信道,分别对应编码矩阵的n个行,计算极化信道可靠度,将可靠度较高的前k个极化信道的索引作为集合的元素,剩余(n-k)个极化信道对应的索引作为固定比特的索引集合元素。集合决定了信息比特的位置,集合决定了固定比特位置。

如图1(a)所示,通信系统100包括网设备110,和终端112。当无线通信网络100包括核心网时,该网络设备110还可以与核心网相连。网络设备101还可以与ip网络200进行通信,例如,因特网(internet),私有的ip网,或其它数据网等。网络设备为覆盖范围内的终端提供服务。例如,参见图1(a)所示,网络设备110为网络设备110覆盖范围内的一个或多个终端提供无线接入。除此之外,网络设备之间的覆盖范围可以存在重叠的区域,例如网络设备110和120。网络设备之间还可以可以互相通信,例如,网络设备110可以与网络设备120之间进行通信。

由于网络设备110或终端112发送信息或数据时均可以使本申请实施例中描述的交织方法,为方便描述,本申请实施例将通信系统100简化为如图1(b)所示的包括发送端101和接收端102的系统。发送端101可以为网络设备110,接收端102为终端112;或者,发送端101为终端112,接收端102为网络设备110。。网络设备110可以是用于与终端设备进行通信的设备。例如,可以是gsm系统或cdma系统中的基站(basetransceiverstation,bts),也可以是wcdma系统中的基站(nodeb,nb),还可以是lte系统中的演进型基站(evolvednodeb,enb或enodeb)或未来5g网络中的网络侧设备等。或者该网络设备还可以是中继站、接入点、车载设备等。在终端对终端(devicetodevice,d2d)通信系统中,该网络设备还可以是担任基站功能的终端。终端可以包括各种具有无线通信功能的手持设备、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其他处理设备,以及各种形式的用户设备(userequipment,ue),移动台(mobilestation,ms)等。

本申请涉及的编码流程大致为:对待编码信息进行polar码编码,将polar码编码后的编码比特按照目标码长m进行速率匹配,将速率匹配之后的比特序列进行交织,输出交织后的比特序列。

本申请实施例涉及交织的步骤。当然,待交织的比特序列可以为上述流程中速率匹配之后的比特序列,另一种可能的实现方式中,待交织的比特序列也可以为速率匹配之前的编码比特,本申请以待交织的比特序列可以为上述流程中速率匹配之后的比特序列为例进行介绍,速率匹配之后的比特序列的长度即为目标码长m,m为2的整数次幂。

本申请实施例设计的方案中用到交织器,为方便后续内容的理解,下面对交织器进行简单的介绍。

将应用交织器进行交织的比特称为待交织比特,待交织比特写入交织器后,由交织器中读取出来,读取出来的比特较写入的比特顺序发生变化,以此起到交织的作用。写入和读取交织器的方法可以采用行进列出、列进行出、列进列出、行进列之字形读取、列进列之字形读取等等,几种写入和读取方式为现有技术,在此不再赘述。写入时,可以先固定行数,计算列数,即每行包括的比特数;也可以先固定列数,计算行数,即每列包括的比特数。若固定行数为i,则列数为进行行列交织的比特总长度除以i向上取整;若固定列数j,则行数为进行行列交织的比特总长度除以j向上取整。按行写入时,将待交织比特逐行输入交织器,每行输入的比特数为通过上述方法计算出来的列数,若最后一行不足则用null比特补齐;按列写入时,将待交织比特逐列输入交织器,每列输入的比特数为通过上述方法计算出来的行数,若最后一列不足,则用null比特补齐。如果填入了null比特,则需在交织后删除。另外,对本申请实施例应用的“交织深度”的概念进行解释,若先固定行数,交织深度是指行数的大小,若先固定列数,交织深度是指列数的大小。以行进列出为例,如图2所示,根据待交织比特产生m*n维矩阵,将待交织比特按照矩阵的行列进行行进列出的操作,数据输入顺序为[x11,x12,x13,…,x1m,x21,x22,x23,…,x2m,…,…,xn1,xn2,…,xnm],数据输出顺序为[x11,x21,x31,…,xn1,x12,x22,x32,…,xn2,…,x1m,x2m,x3m,xnm]。其中,x11为交织器中第一行第一列的比特。若先固定行数,则交织深度为m,若先固定列数,则交织深度为n。

基于图1(a)所示的通信系统架构,本申请实施例中,执行交织方法的执行主体可以为发送端101,如图3所示,本申请实施例提供的交织方法具体流程如下所述。

步骤301、获取待交织的比特序列。

该待交织的比特序列包括l个子序列,可选的,l个子序列为由待交织的比特序列分成的连续的子序列,任意两个子序列不相交。l个子序列包括s个子序列组,一个子序列组中包括至少一个子序列,但至少有一个子序列组中包括的子序列的数目大于1。l、s均为大于1的正整数。为方便说明,假设s个子序列组中包括的任意两个子序列组分别记为第一子序列组和第二子序列组。可以认为第一子序列组至少包括2个子序列,第二子序列组至少包括1个子序列。

步骤302、对第一子序列组中的子序列采用第一交织方式进行交织,对第二子序列组中的子序列不交织或者采用第二交织方式进行交织。

具体地,s个子序列组中的部分或全部子序列组进行组内的交织。组内交织的交织方式可以但不限于采用交织器进行行列交织。

上述第一交织方式和第二交织方式为不同的交织方式,意在实现各组比特的随机离散化,从而实现待交织的比特序列的随机离散化。第一交织方式和第二交织方式可以理解为不同的写入和读取行列交织器的方法,也可以理解为,在采用相同方法写入和读取行列交织器时,采用不同的交织深度,或者说采用不同行数或不同列数的行列交织。举例来说,若第一交织方式和第二交织方式均为通过交织器进行的行列交织,第一交织方式记为第一行列交织,第二交织方式记为第二行列交织,第一交织方式和第二交织方式均为行进列出。若先固定行数,则第一交织方式和第二交织方式所固定的行数不同,例如,第一交织方式固定为3行,第二交织方式固定为5行;若先固定列数,则第一交织方式和第二交织方式所固定的列数不同,例如,第一交织方式固定为3列,第二交织方式固定为5列。

s个子序列组中执行组内交织的任意两组采用的交织深度均不同,这样,交织后的比特序列更具有随机离散性。

本申请实施例中,子序列组的组内交织采用行列交织方式,在硬件实现上易于并行处理,寻址计算较为方便。

由于子序列组中可能包括两个或两个以上的子序列,针对这种情况,本申请实施例在实现组内交织时,还可以采用更多不同的处理方式,针对任一进行组内交织的子序列组来说,组内交织的方式可以但不限采用以下几种方式。

方式一:将子序列组的所有比特作为一个整体利用交织器进行行列交织。

方式二:将子序列组中的至少一个子序列分别在子序列内进行行列交织,其中,将一个子序列中的比特输入交织器进行交织。可选的,子序列组内的所有子序列均在子序列内进行行列交织,交织后的各个子序列再按顺序进行位置的排列。

方式三:将子序列组中的各个子序列的位置进行交织处理,再采用方式一的方式将子序列组的所有比特作为一个整体利用交织器进行行列交织。

方式四:将子序列组中的各个子序列的位置进行交织处理,再采用方式二的方式将子序列组中的至少一个子序列分别在子序列内进行行列交织。

方式五:先将子序列组中的至少一个子序列分别在子序列内进行行列交织,再将交织后的各个子序列的位置进行交织处理。

上述方式一~方式五中的行列交织还可以替换为任意其他的交织方式。

可选的,在子序列组进行组内交织之前或者之后,还可以将子序列组的位置进行交织处理,即将子序列组的位置排序打乱。例如,s=5,各个子序列组的编号为1~5,交织前,各个子序列组的位置排序为1、2、3、4、5,交织后,各个子子序列组的位置排序为3、5、4、2、1。

以上介绍了子序列组的组内交织方式,本申请实施例中,可以通过对待交织的比特序列进行分组,以获得s个子序列组,也可以通过将待交织的比特序列输入交织器中,一行或一列为一个子序列,按照分组的行顺序输出或按照分组后的列顺序输出,以获得s个子序列组。

下面具体介绍一下如何获得s个子序列组。本申请实施例可以但不限于采用以下几种方式获得s个子序列组。

假设l个子序列的编号为1、2、……、l,组成编号排序序列[1、2、……、l]。

方式1、将各个子序列的编号分别进行模s运算,模s运算即对s取模,s即确定的需要分成的子序列组的组数。按照运算结果,将相同运算结果的的编号分为一组。例如,第一子序列组的各个子序列编号进行模s的运算结果均为第一运算结果,第二子序列组的各个子序列编号进行模s的运算结果均为第二运算结果。

方式2、对子序列的编号1~l采用比特逆序操作,获得一个新的编号排序序列,根据确定的子序列组的组数s,按照或者运算,确定一组内的子序列数m,从获得的新的编号排序序列中按照顺序每m个编号确定为一组,按照每组的编号确定每组的子序列。其中,最后一组的子序列数可以小于或等于m。

一种可能的情况下,若l非2的整数次幂,则对子序列的编号1~l采用比特逆序操作获得的编号排序序列中会包括大于l的数值,将比特逆序操作获得序列按顺序重排获得位置序列,按照位置序列继续进行上述选组的流程。

方式3、从1~l中按照固定间隔g选择编号,获得第一组编号,并将第一组编号在编号1~l中剔除;类似的,再从剔除后的编号中按照固定间隔g选择编号,获得第二组编号,并将第二组编号剔除;以此类推,执行上述类似的操作,直到选出最后一组编号。

方式4、对子序列的编号1~l按照方式3的方法操作,根据选择的各组编号获得新的编号排序序列,根据确定的子序列组的组数s,按照或者运算,确定一组内的子序列数m,从获得的新的编号排序序列中按照顺序每m个编号确定为一组,按照每组的编号确定每组的子序列。其中,最后一组的子序列数可以小于或等于m。

一种可能的情况下,若l非2的整数次幂,则对子序列的编号1~l采用比特逆序操作获得的编号排序序列中会包括大于l的数值,将比特逆序操作获得序列按顺序重排获得位置序列,按照位置序列继续进行上述选组的流程。

方式5、根据各个子序列的编号1~l,选择最小值、最大值和中间值为第一组编号,中间值为编号排序序列的最大值除2向上取整或向下取整,将第一组编号在编号1~l中剔除;类似的,继续从剔除后的编号中选择最小值、最大值和中间值为第二组编号,并将第二组编号剔除;以此类推,执行上述类似的操作,直到选出最后一组编号。

方式6、对子序列的编号1~l按照方式5的方法操作,根据选择的各组编号获得新的编号排序序列,根据确定的子序列组的组数s,按照或者运算,确定一组内的子序列数m,从获得的新的编号排序序列中按照顺序每m个编号确定为一组,按照每组的编号确定每组的子序列。其中,最后一组的子序列数可以小于或等于m。

一种可能的情况下,若l非2的整数次幂,则对子序列的编号1~l采用比特逆序操作获得的编号排序序列中会包括大于l的数值,将比特逆序操作获得序列按顺序重排获得位置序列,按照位置序列继续进行上述选组的流程。

可选的,实际应用中,获得待交织的比特序列后,可以按照顺序将待交织的比特序列分成l个子序列,也可以将待交织的比特序列输入交织器,输出l行或者l列,一行或一列为一个子序列,将l个子序列按照上述方式1~方式6中任一种方式进行分组,以获得s个子序列组。

可选的,实际应用中,也可以在获得待交织的比特序列后,将待交织的比特序列输入交织器,按照上述方式1~方式6中任一种方式获得的子序列排序对行进行重排或者对列进行重排后按序输出,或者,按照上述方式1~方式6中任一种方式获得的子序列排序逐行或者逐列输出。例如,m为待交织的比特序列的长度,将待交织的比特序列输入i行j列的交织器,其中,若令i=l,一行中的比特组成一个子序列,列数逐行读取各个子序列组中的子序列,如逐行读取第一子序列组中的子序列,以及逐行读取第二子序列组中的子序列;或者,令j=l,行数一列中的比特组成一个子序列,逐列读取各个子序列组中的子序列,如逐列读取第一子序列组中的子序列,以及逐列读取第二子序列组中的子序列。

下面对上述方式1~方式6的方法给出一些具体的举例。

假定l=32,按照方式2获得子序列组。首先对[1~32]进行比特逆序操作,获得序列[1,17,9,25,5,21,13,29,3,19,11,27,7,23,15,31,2,18,10,26,6,22,14,30,4,20,12,28,8,24,16,32]。若s=4,32/4=8,则可以在序列中按序选择,每选择8个编号获得一组数据,得到子序列组分为为[1,17,9,25,5,21,13,29]、[3,19,11,27,7,23,15,31]、[2,18,10,26,6,22,14,30]、[4,20,12,28,8,24,16,32]。若s=5,按照则每组包含的子序列数为6,最后多余的2个子序列可以放置在任意一组或者两组中,这里我们假定都放在最后一组,则得到子序列组分别为:第一组为[1,17,9,25,5,21],第二组为[13,29,3,19,11,27],第三组为[7,23,15,31,2,18],第四组为[10,26,6,22,14,30],第五组数据为[4,20,12,28,8,24,16,32]。若s=5时,按照则每组包含的子序列数为7,最后多余的4个子序列可以放置在任意至少一组中,这里我们假定都放在最后一组,则前四组包含的子序列数目均为7,而最后一组包含的子序列数目为4,得到子序列组分为为:[1,17,9,25,5,21,13]、[29,3,19,11,27,7,23]、[15,31,2,18,10,26,6]、[22,14,30,4,20,12,28]、[8,24,16,32]。

上述示例中对数值32进行操作,因为32为2的幂次,根据比特逆序可以容易获得32个数值。若数值不满足2的幂次时,将根据比特逆序操作产生序列中大于l的数值剔除,再重新排序,获得新的序列,分组按照新的序列进行操作。例如,l=14,对[1~14]进行比特逆序操作,得到序列为q=[1,9,5,13,3,11,7,15,2,10,6,14,4,12],对q序列,从大到小排序获得的位置序列为:s1=[8,12,4,14,6,10,2,7,11,3,13,5,9,1],从小到大排序获得的位置序列为:s2=[1,9,5,13,3,11,7,2,10,6,14,4,12,8]。后续则根据s1序列或s2序列确定分组。假定分为2组,根据s1的排序,则第一组子序列组为[8124146102],第二组子序列组为[7,11,3,13,5,9,1]。

假定l=31,按照方式2获得子序列组。首先对[1~31]进行比特逆序操作,获得序列[1,17,9,25,5,21,13,29,3,19,11,27,7,23,15,31,2,18,10,26,6,22,14,30,4,20,12,28,8,24],按照获得的序列进行分组,分组方式与l=32类似,在此不再赘述。

如图4所示,假定l=31,按照方式3获得子序列组。从1~31中按照间隔5选择编号,获得第一组编号[161116212631],在编号1~31中将第一组的编号剔除,从剩余编号中按照间隔5选择编号,获得第二组编号[28142027]。以此类推,获得第三组包含的列数为[3101825],第四组包含的列数为[41323],直至第八组数据为[1215192430]。

假定l=31,按照方式4获得子序列组。从1~31中按照间隔5选择编号,再从剩余编号中按照间隔5选择编号,以此类推,可以获得新的编号排序序列[16111621263128142027310182541323517297229281215192430]。例如s=5,则按或者确定每组的数目,假设每组包含的子序列数为6,最后多余的1个子序列可以放置在任意一组,或者自成一组,得到子序列组分别为:[1611162126]、[3128142027]、[3101825413]、[2351729722]、[9281215192430]。

假定l=11,按照方式5获得子序列组。可以获得子序列组分别为[1116]、[2105]、[397]、[48],或者获得子序列组分别为[1116]、[2107]、[395]、[48]。也可以先获得新的编号排序序列[1116210539748]或者[1116210739548]。再按照新的编号排序序列进行分组。

本申请实施例中子序列数l和子序列组数s可以至少综合几种因素来确定。例如:其一、可以与调制阶数联系起来,子序列组数s是调制阶数的函数的形式;其二、也可以与实际硬件实现联系起来,在硬件实现中s为2的幂次相对容易操作;其三、也可以与尽量随机化联系起来,s尽量为素数。

本申请实施例考虑上述几种因素,以l=31为例,对上述交织方法做进一步详细的描述。此处考虑l为31,考虑因素主要由两个:31为素数,在随机数生成上具有先天优势;其次,31与lte中涡轮码(即turbo码)外交织器固定32列接近。当然,l可以选取其他任意数值,例如可以为其他在硬件上易于实现的数值,如{16,32,64}等,也可以考虑其他的素数,如{7,11,13,19,23,29,37,61}等。

首先,获取长度为m的待交织的比特序列,将待交织的比特序列输入交织器。可选的,可以固定交织器的列数为31列,按列的编号进行分组,再进行组内交织;也可以固定交织器的行数为31行,按行的编号进行分组,再进行组内交织。

以固定交织器的列数为31列为例,列数的编号为1~31,当然也可以为0~30。一列中的比特即为一个子序列,行数为m除以31向上取整或向下取整,所得结果即一列中的比特数,最后一个子序列中若不足可填充null。将31列分为s个子序列组,假设s的取值为5。选s值为5的考虑是:在高阶调制下,与当前的调制阶数联系起来,可以加1或者减1,若调制方式为16qam,调制阶数为4,64qam,调制阶数为6,若采用统一加1的方式,则s分别对应[57],若采用统一减1的方式,则分组数分别对应[35],这里考虑统一处理,设置子序列组数为5。当使用更高阶调制时,256qam时,子序列组数5仍然可以继续使用,因为5不仅与调制阶数可以联系,又是一素数。当然,子序列组数完全可以与调制阶数联系起来,使得不同的调制阶数下对应的分组是不同的。

假设获得子序列组的方式为上述方式1,如图5所示,将1~31中的各个编号进行模5运算,余数分别为1、2、3、4、0。将余数为1的编号分为一组,获得子序列组s1,s1中包括的子序列为[161116212631];将余数为2的编号分为一组,获得子序列组s2,s2中包括的子序列为[2712172227];将余数为3的编号分为一组,获得子序列组s3,s3中包括的子序列为[3813182328];将余数为4的编号分为一组,获得子序列组s4,s4中包括的子序列为[4914192429];将余数为0的编号分为一组,获得子序列组s5,s5中包括的子序列为[51015202530]。然后将各个子序列组内的比特进行组内交织,具体组内交织的方法如上述内容所述。可以发现,s1中子序列的数目为7,其余子序列组的子序列的数目为6。更一般的情况下,假定待分组的子序列数目为l,子序列组的组数为s,每组包含的子序列数最少为那么剩余的子序列数rg为l对s取余。剩余子序列数可以按照顺序分别放到第1至rg组内,也可以先放置偶(奇)数组内,再放置奇(偶)数组内,也可以按照某个简单函数来随机放置在前面的子序列组内。

例如,组内交织采用行列交织,行进列出的写入读取方式,至少有两组的交织深度是不同的,可选的,任意两组的交织深度均不同。一种举例如下:如图6所示,子序列组s1采用不交织,即顺序写入,顺序读出;子序列组s2采用交织深度为3,固定3行,按照行数3计算列数,按照行进列出的规则写入读出;子序列组s3采用交织深度为5,固定5行,按照行数5计算列数,按照行进列出的规则写入读出;子序列组s4采用交织深度为7,固定7行,按照行数7计算列数,按照行进列出的规则写入读出;子序列组s5采用交织深度为9,固定9行,按照行数9计算列数,按照行进列出的规则写入读出。最后,各个子序列组进行组内交织后,可以按照顺序输出,或者进行简单的位置交织后输出。图6中仅示意了按顺序输出。

可选的,子序列组数s可以取任意其他值,例如可以取值[2,3,4,6,7],则类似的,可以分别对31按照[2,3,4,6,7]进行取模运算,以获得不同的子序列组。对每个子序列组在组内交织时选择的交织深度处理上也可以是不同的。当s=2时,即列数据根据奇偶重排,交织深度要具有明显的差异性才更具有随机性,子序列组s1~s5的交织深度可以是{1,7}或者{3,11}或者{5,10}或者{7,11}等。当s=3时,子序列组s1~s5的交织深度可以是{1,3,5}或者{3,5,7}或者{3,7,11}或者{5,7,11}或者{2,4,6}等。当s=4时,子序列组s1~s5的交织深度可以是{1,3,5,7}或者{3,5,7,9}或者{3,5,7,11}或者{5,7,11,13}或者{2,4,6,8}或者{2,5,8,11}等。当s=6时,子序列组s1~s5的交织深度可以是{1,3,5,7,9,11}或者{1,3,5,1,3,5}或者{5,7,9,5,7,9}或者{3,3,5,5,7,7}或者{3,7,11,3,7,11}或者{2,4,6,8,10,12}或者{2,4,6,6,4,2}或者{5,7,9,9,7,5}或者{11,9,77,9,11}等。当s=7时,子序列组s1~s5的交织深度可以是{1,3,5,7,9,11,13}或者{1,3,5,7,7,5,3,1}或者{5,7,9,11,9,7,5}或者{3,3,5,5,7,7,9}或者{3,3,7,7,11,11,1}或者{2,4,6,8,10,12,14}或者{2,4,6,8,6,4,2}或者{5,7,9,11,9,7,5}或者{11,9,7,5,7,9,11}等。

如上文对组内交织方式的描述,可以对组内的所有比特进入交织器进行交织,也可以将组内各个子序列在子序列内进行交织,将子序列内的比特进入交织器进行交织后,输出的比特再组成交织后的子序列组。例如,s1中包括的子序列[161116212631]的所有比特进入交织器进行交织,或者,将第1列作为待交织比特进入交织器进行交织,第6列作为待交织比特进入交织器进行交织,同样,第11列、第16列、第21列、第26列、第31列各自进行交织。可选的,在交织前将子序列[161116212631]的排序位置进行交织,交织方法不限定,例如,交织后子序列为[112616311621]。

类似的,若固定交织器的行数为31行,行数的编号为1~31,一行中的比特即为一个子序列,列数为待交织比特数除以31向上取整或向下取整,所得结果即一行中的比特数,最后一个子序列中若不足可填充null。将31行分为s个子序列组,假设s的取值为5。将31行进行分组的方法以及组内交织的方法可以参考上述固定交织器的列数为31列时的方法,其方法类似,重复之处在此不再赘述。

上述对l=31的举例中,以方式1获得子序列组为例,可以理解,可以选择上文中提到的任一种方式获得子序列组,举例中后续描述的子序列组内的交织方法同样可以适用。

可选的,若固定交织器的列数为l=31列,列数的编号为1~31,一列中的比特即为一个子序列,行数为待交织比特数除以31向上取整。将31列数据分为s个子序列组,假设s的取值为5。每组内的数据按照行进行交换处理,各组所进行的行交换方式可以不同,例如第一组数据的行不进行交换处理,直接按照列或者行顺序读出,第二组数据的行按照间隔3进行交换顺序,第三组数据的行按照间隔5进行交换顺序,第四组数据的行按照间隔7进行交换顺序,第五组数据的行按照间隔11进行交换顺序,假定交织器的大小为r行l列,间隔为t,那么每组的行交换后的行顺序可以表示为[1:t:r2:t:r3:t:r…t:t:r],每组间隔t的选取可以不固定,主要原则是与前面各组的行交换方式不能完全相同,例如上述五组数据的行交换间隔可以为[13579]等,并不作限定。此外,每组的行交换顺序不限定上述形式,可以采用其他顺序进行交换,例如第一组数据不交换,第二组采用间隔式交换,第三组采用比特逆序式交换,第四组采用奇偶式交换,第五组采用逆序式交换等。

可选的,若固定交织器的行数为l=31行,行数的编号为1~31,一行中的比特即为一个子序列,列数为待交织比特数除以31向上取整。将31行数据分为s个子序列组,假设s的取值为5。每组内的数据按照列进行交换处理,各组所进行的列交换方式可以不同,例如第一组数据的列不进行交换处理,直接按照列或者行顺序读出,第二组数据的列按照间隔3进行交换顺序,第三组数据的列按照间隔5进行交换顺序,第四组数据的列按照间隔7进行交换顺序,第五组数据的列按照间隔11进行交换顺序,假定交织器的大小为c列l行,间隔为t,那么每组的列交换后的列顺序可以表示为[1:t:c2:t:c3:t:c…t:t:c],每组间隔t的选取可以不固定,主要原则是与前面各组的行交换方式不能完全相同,例如上述五组数据的列交换间隔可以为[13579]等,并不作限定。此外,每组的列交换顺序不限定上述形式,可以采用其他顺序进行交换,例如第一组数据不交换,第二组采用间隔式交换,第三组采用比特逆序式交换,第四组采用奇偶式交换第五组采用逆序式交换等。

可选的,若固定交织器的行数为l=31行,行数的编号为1~31,一行中的比特即为一个子序列,列数c为待交织比特数除以31向上取整。将c列数据分为s个子序列组,假设s的取值为5。每组内的数据按照行进行交换处理,各组所进行的行交换方式可以不同,例如第一组数据的行不进行交换处理,直接按照行或者列顺序读出,第二组数据的行按照间隔3进行交换顺序,第三组数据的行按照间隔5进行交换顺序,第四组数据的行按照间隔7进行交换顺序,第五组数据的行按照间隔11进行交换顺序,假定交织器的大小为c列l行,间隔为t,那么每组的行交换后的行顺序可以表示为[1:t:l2:t:l3:t:l…t:t:l],每组间隔t的选取可以不固定,主要原则是与前面各组的行交换方式不能完全相同,例如上述五组数据的行交换间隔可以为[13579]等,并不作限定。此外,每组的行交换顺序不限定上述形式,可以采用其他顺序进行交换,例如第一组数据不交换,第二组采用间隔式交换,第三组采用比特逆序式交换,第四组采用奇偶式交换第五组采用逆序式交换等。

可选的,若固定交织器的列数为l=31列,列数的编号为1~31,一列中的比特即为一个子序列,行数r为待交织比特数除以31向上取整。将r行数据分为s个子序列组,假设s的取值为5。每组内的数据按照列进行交换处理,各组所进行的列交换方式可以不同,例如第一组数据的列不进行交换处理,直接按照列或者行顺序读出,第二组数据的列按照间隔3进行交换顺序,第三组数据的列按照间隔5进行交换顺序,第四组数据的列按照间隔7进行交换顺序,第五组数据的列按照间隔11进行交换顺序,假定交织器的大小为l列r行,间隔为t,那么每组的行交换后的行顺序可以表示为[1:t:l2:t:l3:t:l…t:t:l],每组间隔t的选取可以不固定,主要原则是与前面各组的列交换方式不能完全相同,例如上述五组数据的列交换间隔可以为[13579]等,并不作限定。此外,每组的列交换顺序不限定上述形式,可以采用其他顺序进行交换,例如第一组数据不交换,第二组采用间隔式交换,第三组采用比特逆序式交换,第四组采用奇偶式交换第五组采用逆序式交换等。

可选的,若固定交织器的行数为l=31行,行数的编号为1~31,一行中的比特即为一个子序列,列数为待交织比特数除以31向下取整。则在不完全整除时,剩余比特可以零散式放置在多个子序列中,或者集中式放在一个子序列中。分组方式可以采取与前述相同的方式,此处不再赘述。

综上所述,本申请实施例通过获得子序列组以及在子序列组内采用不同的交织方式,能够与polar码结合,使得交织效果较好,polar码的性能提高。

本申请实施例在译码端,译码流程大致为:对接收到的待译码序列进行解交织和解速率匹配,并对获得的序列进行polar码译码。类似的,译码端可以根据编码端交织方法获得与编码端交织方法对应的解交织方法,按照获得的解交织方法进行解交织操作。解交织方法是根据交织方法确定的,解交织方法是交织方法的逆操作。例如,第一序列通过交织方法进行交织操作后获得第二序列,则对第二序列通过根据交织方法确定的解交织方法,能够获得第一序列。若交织方法采用行进列出进行交织,则解交织方法采用列进行出进行解交织。其中,编码端的交织方法如上所述,在此不再赘述。

具体的说,当接收端获取编码端的交织方法后,也就获取了交织的图样。不失一般性,将输入的数据以向量形式来表示,例如总共有a个比特(a>=1),经过上述编码端的交织方法后,按行写成长度为a的向量,第a_interleave(1<=a_interleave<=a)个比特ba_interleave由交织前的第a_original(1<=a_original<=a)个比特ba_original通过交织得到。那么相应的,在接收端,接收端需要知道这个交织图案(或者说映射关系)或者其他等价的表示方法,解交织的操作(也就是交织方法的逆操作)就是将待解交织的比特按行写成长度为a的向量,根据交织图案或其他等价的表示方法,将第a_interleave个比特ba_interleave解交织(或者说逆映射)到第a_original个比特的位置作为ba_original。当然,收发两端按列写成长度为a的向量的方法也同样适用,事实上,只需收发两端约定或者按照协议按同样的方法生成长度为a的向量即可。

类似的,还可以写成矩阵的方式,即把输入的数据以矩阵形式来表示,例如写成b行c列的矩阵(b>=1,c>=1),那么经过上述编码端的交织方法后,第a_i_interleave行第a_j_interleave列(1<=a_i_interleave<=b,1<=a_j_interleave<=c)的比特ba_interleave由交织前的第a_i_original行第a_j_original列的比特ba_original通过交织得到。那么相应的,在接收端,接收端需要知道这个交织图案(或者说映射关系)或者其他等价的表示方法,解交织的操作(也就是交织方法的逆操作)就是将待解交织的比特根据与发送端相同的规则写成b行c列的矩阵,根据交织图案或其他等价的表示方法,将第a_i_interleave行第a_j_interleave列的比特ba_interleave解交织(或者说逆映射)到第a_i_original行第a_j_original列的位置作为ba_original即可。例如,发送端进行行进列出操作则接收端进行列进行出操作,发送端进行列进行出操作则接收端进行行进列出操作,发送端进行行进行出操作则接收端进行行进行出操作,发送端进行列进列出操作则接收端进行列进列出操作,或者按照上述交织方法所述,b=31或者c=31,等等。

基于图3所示的交织方法的同一发明构思,如图7所示,本申请实施例中还提供一种交织装置700,该交织装置700用于执行图3所示的交织方法。图3所示的交织方法中的部分或全部可以通过硬件来实现也可以通过软件来实现,当通过硬件实现时,交织装置700包括:输入接口电路701,用于获取待交织的比特序列;逻辑电路702,用于执行上述图3所示的交织方法,具体请见前面方法实施例中的描述,此处不再赘述;输出接口电路703,用于输出交织后的比特序列。

可选的,交织装置700在具体实现时可以是芯片或者集成电路。

可选的,当上述实施例的交织方法中的部分或全部通过软件来实现时,如图8所示,交织装置800包括:存储器801,用于存储程序;处理器802,用于执行存储器801存储的程序,当程序被执行时,使得交织装置800可以实现上述图3实施例提供的交织方法。

可选的,上述存储器801可以是物理上独立的单元,也可以与处理器802集成在一起。

可选的,当上述图3实施例的交织方法中的部分或全部通过软件实现时,交织装置800也可以只包括处理器802。用于存储程序的存储器801位于交织装置800之外,处理器802通过电路/电线与存储器801连接,用于读取并执行存储器801中存储的程序。

处理器802可以是中央处理器(centralprocessingunit,cpu),网络处理器(networkprocessor,np)或者cpu和np的组合。

处理器802还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specificintegratedcircuit,asic),可编程逻辑器件(programmablelogicdevice,pld)或其组合。上述pld可以是复杂可编程逻辑器件(complexprogrammablelogicdevice,cpld),现场可编程逻辑门阵列(field-programmablegatearray,fpga),通用阵列逻辑(genericarraylogic,gal)或其任意组合。

存储器801可以包括易失性存储器(volatilememory),例如随机存取存储器(random-accessmemory,ram);存储器801也可以包括非易失性存储器(non-volatilememory),例如快闪存储器(flashmemory),硬盘(harddiskdrive,hdd)或固态硬盘(solid-statedrive,ssd);存储器801还可以包括上述种类的存储器的组合。

基于图3所示的交织方法的同一发明构思,如图9所示,本申请实施例中还提供一种交织装置900,该交织装置900用于执行图3所示的交织方法。该交织装置900包括:

获取单元901,用于获取待交织的比特序列。

其中,待交织的比特序列包括l个子序列,l个子序列至少包括第一子序列组和第二子序列组,第一子序列组至少包括2个子序列,第二子序列组至少包括1个子序列,l为大于1的正整数。

交织单元902,用于对获取单元901获取的第一子序列组中的子序列采用第一交织方式进行交织,对第二子序列组中的子序列不交织或者采用第二交织方式进行交织。

可选的,第一子序列组中的子序列的各个编号分别按照设定值进行取模运算的结果均为第一运算结果;第二子序列组中的子序列的各个编号分别按照设定值进行取模运算的结果均为第二运算结果。

可选的,第一交织方式为第一行列交织,第二交织方式为第二行列交织,第一行列交织和第二行列交织的行数不同或列数不同。

可选的,交织单元902用于:将第一子序列组中的所有比特逐比特输入交织器进行行列交织;或者,将第一子序列组中的部分或全部子序列分别在子序列内进行行列交织。

可选的,交织单元902用于:将第一子序列组中的各个子序列的位置进行交织处理;

将第一子序列组中的所有比特输入行列交织器进行行列交织;或者,将第一子序列组中的各个子序列分别在子序列内进行行列交织。

可选的,交织单元902还用于:在获取单元获取待交织的比特序列之后,对第一子序列组中的子序列采用第一交织方式进行交织,对第二子序列组中的子序列不交织或者采用第二交织方式进行交织之前,将待交织的比特序列输入i行j列的交织器;若i=l,一行中的比特组成一个子序列,逐行读取第一子序列组中的子序列,以及逐行读取第二子序列组中的子序列;或者,j=l,一列中的比特组成一个子序列,逐列读取第一子序列组中的子序列,以及逐列读取第二子序列组中的子序列。

可选的,其特征在于,交织单元902还用于:在获取单元901获取待交织的比特序列之后,对第一子序列组中的子序列采用第一交织方式进行交织,对第二子序列组中的子序列不交织或者采用第二交织方式进行交织之前,将l个子序列进行分组,以获得第一子序列组和第二子序列组。

可选的,l取值为31。

可选的,交织单元902还用于:将第一子序列组和第二子序列组的位置进行交织处理。

基于与上述实施例提供的解交织方法同一发明构思,如图10所示,本申请实施例还提供一种解交织装置1000,解交织装置1000可用于执行本申请实施例提供的解交织方法,解交织装置1000包括:

获取单元1001,用于获取待解交织的比特序列;

解交织单元1002,用于按照解交织方法对所述待解交织的比特序列进行解交织操作,所述解交织方法是根据交织方法确定的,解交织方法是交织方法的逆操作。

其中,所述交织方法包括:获取待交织的比特序列,所述待交织的比特序列包括l个子序列,所述l个子序列至少包括第一子序列组和第二子序列组,所述第一子序列组至少包括2个子序列,所述第二子序列组至少包括1个子序列,l为大于1的正整数;对所述第一子序列组中的子序列采用第一交织方式进行交织,对所述第二子序列组中的子序列不交织或者采用第二交织方式进行交织。

可选的,所述第一子序列组中的子序列的各个编号分别按照设定值进行取模运算的结果均为第一运算结果;

所述第二子序列组中的子序列的各个编号分别按照所述设定值进行取模运算的结果均为第二运算结果。

可选的,所述第一交织方式为第一行列交织,所述第二交织方式为第二行列交织,所述第一行列交织和所述第二行列交织的行数不同或列数不同。

可选的,对所述第一子序列组中的子序列采用第一交织方式进行交织,包括:

将所述第一子序列组中的所有比特逐比特输入交织器进行行列交织;或者,

将所述第一子序列组中的部分或全部子序列分别在子序列内进行行列交织。

可选的,所述获取待交织的比特序列之后,对所述第一子序列组中的子序列采用第一交织方式进行交织,对所述第二子序列组中的子序列不交织或者采用第二交织方式进行交织之前,所述交织方法还包括:

将所述待交织的比特序列输入i行j列的交织器;

i=l,一行中的比特组成一个所述子序列,逐行读取所述第一子序列组中的子序列,以及逐行读取所述第二子序列组中的子序列;或者,j=l,一列中的比特组成一个所述子序列,逐列读取所述第一子序列组中的子序列,以及逐列读取所述第二子序列组中的子序列。

可选的,所述获取待交织的比特序列之后,对所述第一子序列组中的子序列采用第一交织方式进行交织,对所述第二子序列组中的子序列不交织或者采用第二交织方式进行交织之前,所述交织方法还包括:将所述l个子序列进行分组,以获得所述第一子序列组和所述第二子序列组。

基于上述实施例提供的解交织方法的同一发明构思,如图11所示,本申请实施例中还提供一种解交织装置1100,该解交织装置1100用于执行上述解交织方法。上述解交织方法中的部分或全部可以通过硬件来实现也可以通过软件来实现,当通过硬件实现时,解交织装置1100包括:输入接口电路701,用于获取待解交织的比特序列;逻辑电路702,用于执行上述解交织方法;输出接口电路703,用于输出解交织后的序列。

可选的,解交织装置1100在具体实现时可以是芯片或者集成电路。

可选的,当上述实施例的交织方法中的部分或全部通过软件来实现时,如图12所示,解交织装置1200包括:存储器1201,用于存储程序;处理器1202,用于执行存储器1201存储的程序,当程序被执行时,使得解交织装置1200可以实现上述实施例提供的解交织方法。

可选的,上述存储器1201可以是物理上独立的单元,也可以与处理器1202集成在一起。

可选的,当上述实施例的解交织方法中的部分或全部通过软件实现时,解交织装置1200也可以只包括处理器1202。用于存储程序的存储器1201位于解交织装置1200之外,处理器1202通过电路/电线与存储器1201连接,用于读取并执行存储器1201中存储的程序。

处理器1202可以是中央处理器(centralprocessingunit,cpu),网络处理器(networkprocessor,np)或者cpu和np的组合。

处理器1202还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specificintegratedcircuit,asic),可编程逻辑器件(programmablelogicdevice,pld)或其组合。上述pld可以是复杂可编程逻辑器件(complexprogrammablelogicdevice,cpld),现场可编程逻辑门阵列(field-programmablegatearray,fpga),通用阵列逻辑(genericarraylogic,gal)或其任意组合。

存储器1201可以包括易失性存储器(volatilememory),例如随机存取存储器(random-accessmemory,ram);存储器1201也可以包括非易失性存储器(non-volatilememory),例如快闪存储器(flashmemory),硬盘(harddiskdrive,hdd)或固态硬盘(solid-statedrive,ssd);存储器1201还可以包括上述种类的存储器的组合。

本申请实施例还提供了一种网络设备,参见图13所示,上述交织装置和/或解交织装置可以被安装在网络设备110中。除了上述交织装置和解交织装置外,网络设备110还可以包括一个收发器1302,交织装置交织后的比特序列经过后续的变化或处理后通过收发器1302发送给终端112,或者该收发器1302还用于接收来自于终端112的信息/数据,这些信息/数据经过一系列处理被转换成待解交织的序列,经过解交织装置的处理后得到解交织后的序列。当网络设备110还可以包括网络接口1304,用于与其它的网络设备进行通信。

同理,上述交织交织装置和/或解交织装置可以被安装在终端112中。除了上述交织装置和解交织装置外,终端112还可以包括一个收发器1312,交织装置交织后的比特序列经过后续的变化或处理后通过收发器1312发送给网络设备110,或者该收发器1312还用于接收来自于网络设备110的信息/数据,这些信息/数据经过一系列处理被转换成待解交织的序列,经过解交织装置的处理后得到解交织后的序列。终端112还可以包括用于输入输出接口1314,用于接收用户输入的信息,对于需要发送给网络设备110的信息,则需要经过交织器的处理后再通过收发器1312发送给网络设备110。解交织器解交织后的数据经过后续处理后也可以通过输入输出接口1314呈现给用户。

本申请实施例还提供了一种计算机存储介质,存储有计算机程序,该计算机程序包括用于执行图3所示的交织方法和上述实施例提供的解交织方法。

本申请实施例还提供了一种polar码编码装置,包括上述图7~图9任一种交织装置和图10~图12任一种解交织装置。

本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行图3所示的交织方法以及上述实施例提供的解交织方法。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。

显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例的精神和范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

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