一种对数据进行交织的方法和交织器与流程

文档序号:16976942发布日期:2019-02-26 19:06阅读:459来源:国知局
一种对数据进行交织的方法和交织器与流程

本发明涉及通信技术领域,特别涉及一种对数据进行交织的方法和交织器。



背景技术:

现有交织方案主要有分组交织器,不规则交织器和随机交织器。

分组交织器:又叫规则交织器,是应用于信道编码中的交织器,也是通用的交织器。一个典型的分组交织器是一个按着n×m矩阵描述的周期为t=n×m的交织器,这些交织器典型的特征就是在数据的读写过程中按照行写列读的方式进行的。

不规则交织器大多是由分组交织器演化而来,如对角交织器(行写对角读),s-型交织器,三角交织器等;

随机交织器是采用随机种子产生交织图样,其性能较优,但由于针对不同码长码率产生的图样不同且需将图样提前保存,实现较为复杂。

综上所述,目前的随机交织器虽有较好的性能,但由于需将交织图样提前保存所以占用的资源比较多。



技术实现要素:

本发明提供一种对数据进行交织的方法和交织器,用以解决现有技术中存在的随机交织器虽有较好的性能,但由于需将交织图样提前保存所以占用的资源比较多的问题。

本发明实施例提供的一种对数据进行交织的方法,该方法包括:

将编码得到的码字分成多段;

将得到的多段码字进行分组;

按照行写入列读出的方式,对每组码字进行交织,得到每组码字对应的序列;

将得到的每个序列通过串并转换进行输出。

可选的,所述将编码得到的码字分成多段,包括:

将编码得到的码字平均分成多段。

可选的,所述将编码得到的码字平均分成多段,包括:

按照行写入列读出的方式,将编码得到的码字输入分段交织器;

将所述分段交织器输出的每列码字作为一段。

可选的,所述将编码得到的码字平均分成多段,包括:

根据编码得到的码字的顺序将编码得到的码字平均分成多段。

可选的,所述将编码得到的码字平均分成多段,还包括:

若码字长度不是分段数量的倍数,则在编码得到的码字中增加填充比特,以使每段中包含的码字数相同。

可选的,所述将编码得到的码字分成多段,包括:

根据编码得到的码字的顺序将编码得到的码字分成多段。

可选的,所述将得到的多段码字进行分组,包括:

将得到的码字的段数按顺序取模后得到的数值作为该段的分组编号;

将分组编号相同的段分在一组。

可选的,所述按照行写入列读出的方式,对每组码字进行交织,包括:

针对任意一组码字,按照行写入列读出的方式,对该组码字采用对应的交织深度值进行交织;

其中,每组码字对应的交织深度值相同或不同。

可选的,针对任意一组码字,按照行写入列读出的方式,对该组码字采用对应的交织深度值进行交织,包括:

针对任意一组码字,若该组码字长度不是该组对应的交织深度值的倍数,则在该组码字最后增加填充比特,以使该组码字长度是该组对应的交织深度值的倍数。

可选的,所述按照行写入列读出的方式,对每组码字进行交织,包括:

所述按照行写入列读出的方式,采用并行方式对每组码字进行交织。

本发明实施例提供一种交织器,该交织器包括:

分段模块,用于将编码得到的码字分成多段;

分组模块,用于将得到的多段码字进行分组;

交织模块,用于按照行写入列读出的方式,对每组码字进行交织,得到每组码字对应的序列;

输出模块,用于将得到的每个序列通过串并转换进行输出。

可选的,所述分段模块具体用于:

将编码得到的码字平均分成多段。

可选的,所述分段模块具体用于:

按照行写入列读出的方式,将编码得到的码字输入分段交织器;

将所述分段交织器输出的每列码字作为一段。

可选的,所述分段模块具体用于:

根据编码得到的码字的顺序将编码得到的码字平均分成多段。

可选的,所述分段模块还用于:

若码字长度不是分段数量的倍数,则在编码得到的码字中增加填充比特,以使每段中包含的码字数相同。

可选的,所述分段模块具体用于:

根据编码得到的码字的顺序将编码得到的码字分成多段。

可选的,所述分组模块具体用于:

将得到的码字的段数按顺序取模后得到的数值作为该段的分组编号;

将分组编号相同的段分在一组。

可选的,所述交织模块具体用于:

针对任意一组码字,按照行写入列读出的方式,对该组码字采用对应的交织深度值进行交织;

其中,每组码字对应的交织深度值相同或不同。

可选的,所述交织模块具体用于:

针对任意一组码字,若该组码字长度不是该组对应的交织深度值的倍数,则在该组码字最后增加填充比特,以使该组码字长度是该组对应的交织深度值的倍数。

可选的,所述交织模块具体用于:

所述按照行写入列读出的方式,采用并行方式对每组码字进行交织。

本发明实施例提供另一种交织器,该交织器包括:

至少一个处理单元、以及至少一个存储单元,其中,所述存储单元存储有程序代码,当所述程序代码被所述处理单元执行时,使得所述处理单元实现上述任一一种对数据进行交织的方法。

本发明实施例提供一种计算设备可读存储介质,该存储介质中存储软件程序,包括程序代码,当所述程序代码在计算设备上运行时,该软件程序在被一个或多个处理器读取并执行时实现上述任一一种对数据进行交织的方法。

本发明实施例将编码得到的码字分成多段,并对多段码字进行分组后,按照行写入列读出的方式,对每组码字进行交织,得到每组码字对应的序列,之后将得到的每个序列通过串并转换进行输出。由于通过分段分组的方式进行交织,从而不依赖交织图样的前提下降低了时延,节省了存储资源。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1a为本发明实施例对数据进行交织的方法流程示意图;

图1b为本发明实施例分段交织器进行分段示意图;

图2为本发明实施例划分多段码字示意图;

图3为本发明实施例进行分组示意图;

图4为本发明实施例进行交织示意图;

图5为本发明实施例采用16-qam(quadratureamplitudemodulation,相正交振幅调制)进行不同交织方案的性能比较示意图;

图6为本发明实施例采用64-qam进行不同交织方案的性能比较示意图;

图7为本发明实施例第一种交织器的结构示意意图;

图8为本发明实施例第二种交织器的结构示意意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

如图1a所述,本发明实施例对数据进行交织的方法包括:

步骤100、将编码得到的码字分成多段;

步骤101、将得到的多段码字进行分组;

步骤102、按照行写入列读出的方式,对每组码字进行交织,得到每组码字对应的序列;

步骤103、将得到的每个序列通过串并转换进行输出。

本发明实施例将编码得到的码字分成多段,并对多段码字进行分组后,按照行写入列读出的方式,对每组码字进行交织,得到每组码字对应的序列,之后将得到的每个序列通过串并转换进行输出。由于通过分段分组的方式进行交织,从而不依赖交织图样的前提下降低了时延,节省了存储资源。

在实施中,本发明实施例将编码得到的码字分成多段时,将编码得到的码字平均分成多段。

本发明实施例给出了两种进行分段的方案,需要说明的是,下面介绍的两种方式只是举例说明,任何能够对码字进行分段的方案都适用本发明实施例。

分段方式一、根据编码得到的码字的顺序将编码得到的码字平均分成多段。

这里的编码得到的码字的顺序是编码后输出的码流的顺序,这里如果进行编码的码字是一个,则编码得到的码字是一个码字;如果进行编码的码字是多个,则编码得到的码字是多个码字。

在实施中,可以按照编码得到的码字的正顺序将编码得到的码字平均分成多段,比如编码得到的码字时010101,则按照010101进行分段;也可以按照编码得到的码字的逆顺序将编码得到的码字平均分成多段,比如编码得到的码字时010101,则按照101010进行分段。

具体分成几段可以根据应用场景、仿真等进行设置。比如段数可为7,19,31等任意值。

可选的,若码字长度不是分段数量的倍数,则在编码得到的码字中增加填充比特,以使每段中包含的码字数相同。

这里可以在最后一个段或第一段中增加填充比特;也可以在其他段中增加填充比特。

比如一共有31个码字,需要分成5段,可以在最后一段增加4个填充比特,这样可以分成5段,每段7个码字。

其中,填充比特可以是0。

对于分段方式一,若码字长度不是分段数量的倍数也可以不增加填充比特;

具体的,根据编码得到的码字的顺序将编码得到的码字分成多段。具体的分段方式与上面介绍的类似,在此不在赘述。

分段方式二、通过分段交织器进行分段。

具体的,按照行写入列读出的方式,将编码得到的码字输入分段交织器;

将所述分段交织器输出的每列码字作为一段。

在实施中,分段交织器输出码字时,可以按照从下到上的顺序输出,即所有列都按照从下到上的顺序输出。也可以按照从上到下的顺序输出,即所有列都按照从上到下的顺序输出。还可以从下到上和从上到下交替输出,比如第一列从下到上输出,第二列从上到下输出,第三列从下到上输出,以此类推;还比如第一列从上到下输出,第二列从下到上输出,第三列从上到下输出,以此类推。

其中,本发明实施例的分段交织器可以是block(块)交织器等。

下面以block交织器为例,进行说明。

如图1b所示,把待分段的数据(即编码得到的码字)按照行写入列读出送入一个block交织器,每一个列输出就是一个segment(即一段),block交织器的列数就是需要分段的段数比如m=ceiling(m/31),就是等分为31段,31只是一个示例。图1b中所示的行读列出只是行列交织器的一种简单示意,不排除对block交织器的某些行或者列进行置换,以及其他形式的block交织方式。

可选的,若码字长度不是分段数量的倍数,则在编码得到的码字中增加填充比特,以使填充后的码字长度是所述分段交织器列数的倍数;

之后按照行写入列读出的方式,将填充后的码字输入分段交织器。

对于分段方式二,分段数量为分段交织器的列数。

这里可以在最后一个或开头增加填充比特;也可以在其他位置增加填充比特。

比如一共有31个码字,分段交织器列数是5,可以在最后增加4个填充比特,这样可以分成5段,每段7个码字。

其中,填充比特可以是0。

在实施中,将得到的多段码字进行分组时,将得到的码字的段数按顺序取模后得到的数值作为该段的分组编号;将分组编号相同的段分在一组。

这里的模值可为3,5,7等任意值。

比如码字的段数为41,模值是7,则第一段用1模7,即mod(1,7)=1,则第一段的分组编号为1;第二段用2模7,即mod(2,7)=2,则第二段的分组编号为2;以此类推,就得到所有段对应的分组编号。

最后将分组编号相同的段划分到同一组。

由于码字段数和模值均为正整数,此处也可以采用取余的方式确定分组编号。

可选的,本发明实施例按照行写入列读出的方式,对每组码字进行交织时:

针对任意一组码字,按照行写入列读出的方式,对该组码字采用对应的交织深度值进行交织;

其中,每组码字对应的交织深度值相同或不同。

这里的交织深度值可以是交织器的行数,也可以是交织器的列数,也可以是其他数值。

本发明实施例每组交织深度可相同也可不同,如均采用深度为5的分组交织,或各组的交织深度分别为{1,3,5,7,9…}等。

在实施中,每组的交织深度可以根据不同码长、码率以及极化码极化情况设定。

如码长较长时的交织深度可以比短码时的深。

可选的,针对任意一组码字,若该组码字长度不是该组对应的交织深度值的倍数,则在该组码字最后增加填充比特,以使该组码字长度是该组对应的交织深度值的倍数。

比如一组有31个码字,则该组对应的交织深度值为5,则需要在该组最后增加4个填充比特,这样35就是5的倍数。

其中,填充比特可以是0。

为了进一步提高交织的效率,本发明实施例还可以按照行写入列读出的方式,采用并行方式对每组码字进行交织。

可选的,在将得到的每个序列通过串并转换进行输出就是将每个分组交织后的输出序列按某顺序依次排列输出,比如顺序可以是自然顺序1,2,3,4…,也可以是任意顺序如1,3,4,2…。

在实施中,可以按照交织后的顺序输出。比如组1先交织完成,之后是组4、组3和组2,则输出顺序可以是1、4、3和2。

还可以根据设置的顺序输出,比如设置的顺序是3、2、4和1,则输出顺序是3、2、4和1。

还可以随机设置输出的顺序。

下面列举一个详细的例子。

1、将编码后得到的m比特长的码字分为31段。

若m不能整除31,则在最后一段码字中用null填充(即添0)直至可被31整除,此时每段包含m=ceiling(m/31)比特,如图2所示。

2、假设模值是5,则确定每段模5后的分组编号,并将分组编号相同的段分成一组,其中第一组包含7段数据,第二组至第五组都只包含6段数据,分组如图3所示。

3、基于上述操作,对第一组码字进行深度为1的行写列读的交织操作;

对第二组数据进行深度为3的行写列读的交织操作;

对第三组数据进行深度为5的行写列读的交织操作;

对第四组数据进行深度为7的行写列读的交织操作;

对第五组数据进行深度为9的行写列读的交织操作。

在实施中,这五组码字可并行进行较之操作,以减少处理时延,如图4所示。

4、将各组交织后的序列按顺序输出。

可选的,采用自然顺序输出,即先交织操作结束,先输入;也可采用其他设置的顺序,比如先第一组,再第四组,第五组,第二组,最后第三组的输出顺序;或随机顺序输入。

其中,为了体现本发明实施例的交织方案的性能,分别对码率r为1/3、1/2和2/3下的极化码在经过本发明实施例的交织方案后,与高阶调制相结合,经过awgn(additivewhitegaussiannoise,加性高斯白噪声)信道,采用scl译码算法,按照list大小为8,crc(cyclicredundancycheck,循环冗余校验)长度19比特,与16-qam的性能如图5所示,与64-qam的性能如图6所示。

为了比较本发明的纠错性能,如图5和图6中,同时给出了现有随机交织方案性能。

其中,图5和图6中的designed-int代表采用本发明实施例的交织方案得到的性能曲线;

random-int代表采用现有随机交织方案得到的性能曲线。

从图5和图6中可看出,本发明实施例的交织方案,在不用存储交织图样的前提下,能达到与随机交织器相似的性能。

基于同一发明构思,本发明实施例中还提供了一种交织器,由于该设备解决问题的原理与本发明实施例对数据进行交织的方法相似,因此该设备的实施可以参见方法的实施,重复之处不再赘述。

如图7所述,本发明实施例第一种交织器包括:

分段模块700,用于将编码得到的码字分成多段;

分组模块701,用于将得到的多段码字进行分组;

交织模块702,用于按照行写入列读出的方式,对每组码字进行交织,得到每组码字对应的序列;

输出模块703,用于将得到的每个序列通过串并转换进行输出。

可选的,所述分段模块700具体用于:

将编码得到的码字平均分成多段。

可选的,所述分段模块700具体用于:

按照行写入列读出的方式,将编码得到的码字输入分段交织器;

将所述分段交织器输出的每列码字作为一段。

可选的,所述分段模块700具体用于:

根据编码得到的码字的顺序将编码得到的码字平均分成多段。

可选的,所述分段模块700还用于:

若码字长度不是分段数量的倍数,则在编码得到的码字中增加填充比特,以使每段中包含的码字数相同。

可选的,所述分段模块700具体用于:

根据编码得到的码字的顺序将编码得到的码字分成多段。

可选的,所述分组模块701具体用于:

将得到的码字的段数按顺序取模后得到的数值作为该段的分组编号;

将分组编号相同的段分在一组。

可选的,所述交织模块702具体用于:

针对任意一组码字,按照行写入列读出的方式,对该组码字采用对应的交织深度值进行交织;

其中,每组码字对应的交织深度值相同或不同。

可选的,所述交织模块702具体用于:

针对任意一组码字,若该组码字长度不是该组对应的交织深度值的倍数,则在该组码字最后增加填充比特,以使该组码字长度是该组对应的交织深度值的倍数。

可选的,所述交织模块702具体用于:

所述按照行写入列读出的方式,采用并行方式对每组码字进行交织。

可选的,所述输出模块703具体用于:

按照交织结束的顺序输出每个序列或按照设定的顺序输出每个序列。

如图8所述,本发明实施例第二种交织器包括:

至少一个处理单元800、以及至少一个存储单元801,其中,所述存储单元存储有程序代码,当所述程序代码被所述处理单元执行时,使得所述处理单元800执行下列过程:

将编码得到的码字分成多段;将得到的多段码字进行分组;按照行写入列读出的方式,对每组码字进行交织,得到每组码字对应的序列;将得到的每个序列通过串并转换进行输出。

可选的,所述处理单元800具体用于:

将编码得到的码字平均分成多段。

可选的,所述处理单元800具体用于:

按照行写入列读出的方式,将编码得到的码字输入分段交织器;

将所述分段交织器输出的每列码字作为一段。

可选的,所述处理单元800具体用于:

根据编码得到的码字的顺序将编码得到的码字平均分成多段。

可选的,所述处理单元800还用于:

若码字长度不是分段数量的倍数,则在编码得到的码字中增加填充比特,以使每段中包含的码字数相同。

可选的,所述处理单元800具体用于:

根据编码得到的码字的顺序将编码得到的码字分成多段。

可选的,所述处理单元800具体用于:

将得到的码字的段数按顺序取模后得到的数值作为该段的分组编号;

将分组编号相同的段分在一组。

可选的,所述处理单元800具体用于:

针对任意一组码字,按照行写入列读出的方式,对该组码字采用对应的交织深度值进行交织;

其中,每组码字对应的交织深度值相同或不同。

可选的,所述处理单元800具体用于:

针对任意一组码字,若该组码字长度不是该组对应的交织深度值的倍数,则在该组码字最后增加填充比特,以使该组码字长度是该组对应的交织深度值的倍数。

可选的,所述处理单元800具体用于:

所述按照行写入列读出的方式,采用并行方式对每组码字进行交织。

可选的,所述处理单元800具体用于:

按照交织结束的顺序输出每个序列或按照设定的顺序输出每个序列。

本发明实施例还提供一种计算设备可读存储介质,该存储介质可以是非易失性的,即断电后内容不丢失。该存储介质中存储软件程序,包括程序代码,当所述程序代码在计算设备上运行时,该软件程序在被一个或多个处理器读取并执行时实现上面任何一种对数据进行交织的方案。。

以上参照示出根据本申请实施例的方法、装置(系统)和/或计算机程序产品的框图和/或流程图描述本申请。应理解,可以通过计算机程序指令来实现框图和/或流程图示图的一个块以及框图和/或流程图示图的块的组合。可以将这些计算机程序指令提供给通用计算机、专用计算机的处理器和/或其它可编程数据处理装置,以产生机器,使得经由计算机处理器和/或其它可编程数据处理装置执行的指令创建用于实现框图和/或流程图块中所指定的功能/动作的方法。

相应地,还可以用硬件和/或软件(包括固件、驻留软件、微码等)来实施本申请。更进一步地,本申请可以采取计算机可使用或计算机可读存储介质上的计算机程序产品的形式,其具有在介质中实现的计算机可使用或计算机可读程序代码,以由指令执行系统来使用或结合指令执行系统而使用。在本申请上下文中,计算机可使用或计算机可读介质可以是任意介质,其可以包含、存储、通信、传输、或传送程序,以由指令执行系统、装置或设备使用,或结合指令执行系统、装置或设备使用。

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

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