一种速率匹配的串行处理方法及装置
技术领域
本发明涉及移动通信系统中信道编码部分,尤其涉及一种速率匹配的串行处理方法及装置。
背景技术
在移动通信系统中,信道中传输的数据经过信道编码后产生部分冗余数据,这些冗余信息用于给解码器提供更多的解码信息,提高解码成功率,但是如果将这些冗余信息全部传输,造成传输效率下降。因此一个比较好的方法就是根据信道的质量选择传输信息的多少,例如信道质量比较好时只传输原始信息,反之除传输原始信息位还要传输较多的校验位。因此需要对信道编码器产生的数据进行选择传输,而速率匹配就是实现编码数据选择传输的功能。
现在,LTE(Long Term Evolution,长期演进)系统中采用了一种与R6完全不同的速率匹配方法——循环缓冲区速率匹配。该算法的优点在于可以方便的实现重复和打孔,即对于任意数据速率的速率匹配实现都非常的简单。其中,实现速率匹配的主要方式有软件实现方式和硬件实现方式。由于在LTE系统中数据流量非常大,留给速率匹配的处理时间非常短,如果采用软件的处理方式,对处理器的要求非常高,随之成本也急剧增加。而按照协议描述的步骤做硬件处理,编码后的数据经过交织存储在三个存储器中,然后进行裁剪,尤其在处理校验1存储器和校验2存储器中的数据时需要交错读取,非常麻烦,而且在地址的不断转换过程中产生大量的功耗。
具体地,现有速率匹配包含块内交织和比特收集、选择、传输等操作,其原理如图1所示,输入的数据流dk (0)、dk (1)和dk (2)分别对应于Turbo编码器输出的系统比特S、第一奇偶校验比特P1(也可简称为校验1)和第二奇偶校验比特P2(也可简称为校验2),而块内交织处理后的vk (0)、vk (1)和vk (2)则按照一定的规则被收集到虚拟缓冲区序列wk,最后经过选择和删除得到最终的输出ek。
下面详细介绍现有的速率匹配处理过程,其中,定义行、列交织器的编号以及各数据的索引号均从0开始编号,输入的三个数据流dk (0)、dk (1)和dk (2)等长,设这三个数据流长度为D,则输入数据序列为d0 (i),d1 (i),d2 (i),...,dD-1 (i),i取0,1,2分别对应系统比特S、校验比特P1和校验比特P2。
第一步:计算所需行数和哑元比特的数目;
由于,块内交织器的列数C恒定为32,则块交织器行数R为:
当R×C>D时,就需要额外的哑元比特来进行填充,哑元比特的个数ND为:ND=(R×C-D)。
第二步:哑元比特和数据流的写入;
先将哑元比特按行写入到交织器,然后按行写入数据流dk (i),组成如下所示的一个R×C的矩阵:
其中,
第三步:进行列交换并读出数据;
LTE对不同的数据流采用了不同参数的交织器,下面分别进行介绍。
子交织器1
R×C矩阵的列编号为0,...,C-1。按照表1所示的交换图样<P(j)>j∈{0,1,...,C-1}进行列间的交换,也即P(j)是第j交换列在未交换前的列编号。
表1为列间交织图样表
列间交换图样<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> |
经过列交织之后的矩阵如下:
将以上的矩阵按列读出,得到输出序列v0 (i),v1 (i),v2 (i),...,其中v0 (i)对应于yP(0),v1 (i)对应于yP(0)+C,K∏=(R×C)。
子交织器2
现有子交织器2是子交织1经过1bit偏移之后的结果。因此,从上面的分析易得出,子交织器2的输出与输入的对应关系为:
第四步:比特收集;
定义一个循环缓冲区,大小为3K∏,然后按照下述方法将交织后的三个数据收集起来。
第五步:计算速率匹配后输出比特序列的长度;
这一步计算需要用到四个参数,分别为:
1)G——所有码块速率匹配之后输出的比特数之和,即一个传输块所能传输的比特数;
2)M——调制方式,为QPSK,16QAM或64QAM;
3)C——码块个数;
4)r——当前码块的索引,编号为0,...,C-1。
速率匹配后输出序列长度的计算如下:
G′=G/Qm
令γ=G′mod C,E的计算如下:
if r≤C-γ-1
else
end
第六步:数据的选择、删余;
起始位置k0=R×(24×RVidx+2)。
令k=0,j=0
while(k<E)
k=k+1;
end
j=j+1;
end
其中,Kw=3×K∏,<NULL>是对码块分割时添加的填充比特和交织时添加的哑元比特的统称。
现有实现方案都是按照TS36.212中描述,先将系统位,校验1和校验2分别交织存储于3个存储器中,然后根据参数配置从系统位存储器中顺序读取数据,或从校验1和校验2存储器中交错读取数据,然后进行数据的裁剪。
从上可以看出,现有技术中需要三个存储器,存储过程中需要区分所要存储的数据是系统位数据还是校验1或校验2的数据。而且现有技术每次需要判断存储器边界,需要做地址多路转换,即系统复杂,且功耗大。
发明内容
本发明所要解决的技术问题是,提供一种速率匹配的串行处理方法及装置,解决速率匹配比特收集过程中的存储复杂性问题。
为了解决上述问题,本发明公开了一种速率匹配的串行处理方法,包括:
接收系统位数据流、校验1数据流以及校验2数据流,将所接收的系统位数据流进行交织处理,缓存在存储器的第一缓存区中;将所接收的校验1数据流和校验2数据流中相对应的数据同时进行交织处理,并将同时经过交织处理的数据缓存在所述存储器的第二缓存区中;
从所述存储器中读取有效数据,实现速率匹配。
进一步地,上述方法中,所接收的校验1数据流和校验2数据流中相对应的数据指:
校验1数据流中的第一个数据至倒数第二个数据分别与校验2数据流中第二个数据至最后一个数据对应,校验1数据流中的最后一个数据与校验2数据流中填充的空值对应,校验2数据流中的第一个数据与校验1数据流中填充的空值对应。
其中,将所接收的校验1数据流和校验2数据流中相对应的数据同时进行交织处理指:
将校验1数据流中的各数据按照接收顺序与其对应的校验2数据流中的数据同时进行交织处理,将校验1数据流中最后一个数据与其对应的空值同时进行交织处理,将校验2数据流中的第一个数据与其对应的空值同时进行交织处理。
从所述存储器中读取有效数据的过程如下:
根据设定的地址和输出数据长度,从所述存储器中顺序循环读取有效数据,其中,从所述存储器的第一缓存区中依次读取有效的系统位数据,从所述存储器的第二缓存区中依次读取有效的校验数据。
所述存储器为真双口存储器。
本发明还公开了一种速率匹配装置,至少包括控制模块、交织地址计算模块和打孔模块,其中:
所述控制模块,用于所述交织地址计算模块对接收的系统位数据流进行交织处理,并缓存在第一缓存区中;以及用于将所接收的校验1数据流和校验2数据流中相对应的数据同时输入给所述交织地址计算模块进行交织处理,并缓存在第二缓存区中;
所述交织地址计算模块,用于根据所述控制模块的控制对系统位数据进行交织处理,对同时输入的校验1数据流和校验2数据流中相对应的数据进行交织处理;
所述打孔模块,用于从所述存储器读取有效数据,实现速率匹配。
进一步地,上述装置中,所接收的校验1数据流和校验2数据流中相对应的数据指:
校验1数据流中的第一个数据至倒数第二个数据分别与校验2数据流中第二个数据至最后一个数据对应,校验1数据流中的最后一个数据与校验2数据流中填充的空值对应,校验2数据流中的第一个数据与校验1数据流中填充的空值对应。
其中,所述控制模块,将所接收的校验1数据流和校验2数据流中相对应的数据同时输入给所述交织地址计算模块指:
将校验1数据流中的各数据按照接收顺序与其对应的校验2数据同时输入给所述交织地址计算模块,将校验1数据流中的最后一个数据与其对应的空值同时输入给所述交织地址计算模块,将校验2数据流中的第一个数据与其对应的空值同时输入给所述交织地址计算模块。
所述打孔模块,从所述存储器读取有效数据指:
根据设定的地址和输出数据长度,从所述存储器中顺序循环读取有效数据,其中,从所述存储器的第一缓存区中依次读取有效的系统位数据,从所述存储器的第二缓存区中依次读取有效的校验数据。
将一真双口存储器划分为所述第一缓存区和所述第二缓存区。
与现有速率匹配装置相比,本发明技术方案具有如下特点:
1)本发明技术方案在存储校验1数据流和校验2数据流时就实现了交错存储,从而简化了存储结构,降低了系统复杂度。
2)本发明技术方案将系统位数据和校验数据统一存储,这样,并行读出数据非常容易,便于实现并行打孔,提高了速率匹配处理速率。
3)由于本发明技术方案减少了存储接口,从而简化了硬件实现步骤,节省了功耗和面积,降低了成本。
附图说明
图1是现有技术中速率匹配的原理框图;
图2是本发明提供的速率匹配装置的结构框图;
图3是图2所示速率匹配装置中交织地址计算模块框图;
图4是图2所示速率匹配装置进行速率匹配的流程图。
具体实施方式
本发明的主要构思是,现有速率匹配技术中,系统位数据流和校验1数据流的交织地址产生方式相同,如公式1所示,而校验2数据流的交织地址产生公式,如公式2所示:
公式(1)
公式(2)
比较这两个交织公式,可以看出公式(2)比公式(1)在输入数据矩阵中右偏一个位置,因此,本发明考虑将校验2数据流的输入数据左移一个位置(即将校验2数据流中第1个数据移入最后一个位置),这样,校验2数据流的交织地址产生方式与系统位数据流和校验1数据流的交织地址产生方式就完全相同,这样,就可以共用一个交织地址产生器件。而且,每次校验1数据和校验2数据的交织地址完全相同,就可以存储过程中实现校验1和校验2的交错存储,读取数据时,只需要依次读取校验数据即可。
本发明技术方案中,速率匹配装置将系统位数据流、校验1数据流和校验2数据流进行交织处理后,统一存储在一个存储器中,其中,对校验1数据流和校验2数据流进行交织处理的过程中,将所接收的校验1数据流和校验2数据流中相对应的数据同时进行交织处理,然后将同时进行交织处理的两个数据按照校验1数据在前,校验2数据在后的顺序作为一个数据存储。其中,校验1数据流中的第一个数据至倒数第二个数据分别与校验2数据流中第二个校验数据至最后一个数据一一对应,校验1数据流中的最后一个数据与校验2数据流中所填充的空值(NULL)对应,校验2数据流中的第一个数据与校验1数据流中所填充的NULL相应,这样,在数据的裁剪过程中只需要关注一个存储器中的内容,不用再区分数据是系统位数据还是校验1或校验2的数据,可以极大的方便后续裁剪处理。
下面结合附图及具体实施例对本发明技术方案做进一步详细说明。
一种速率匹配装置,如图2所示,至少包括交织地址计算模块、存储模块、打孔模块和控制模块。下面介绍各模块的功能。
交织地址计算模块,用于根据控制模块的控制对相应的数据进行对应交织地址的计算,具体计算交织地址的过程,如图3所示,第一步先根据每个数据对应的行列信息,将列号按照协议交织变换表,进行变换(具体是对列寄存器进行二进制高低位翻转变换来实现的);第二步再将列交织变换后的结果与矩阵的行总数相乘,第三步将第二步结果与数据所在行数相加,从而得到输入数据的交织地址。
存储模块,主要根据交织地址将数据进行存储,本实施例中存储模块采用真双口的RAM,其中,系统位数据存储在RAM的低地址部分,且系统位数据写入位宽为2位,校验1和校验2数据当作一个数据进行存储,存储数据位宽为4位。这样相当于一步完成了数据交织和软buffer的生成;
打孔模块,主要根据起始位置,及输出数据长度,从软buffer中取出有效数据输出到下游模块;
其中,该打孔模块,根据系统要求的起始位置,从存储器中取出数据,如果是NULL不输出数据,输出数据个数不进行计数,当取出的数据不为NULL时输出数据,对输出数据个数计数。当数据取到软buffer末尾NCB位置时还没有取足够数据时,那么将从软buffer开始位置继续取数据,直到取出要求的数据值为止。
控制模块,主要用于控制交织地址计算模块、存储模块以及打孔模块的工作状态,其中,控制模块控制交织地址计算模块对输入的系统位数据流进行交织处理,并将交织处理后的系统位数据存储到存储器中用于存储系统位数据的缓冲区中;控制模块将校验1数据流与校验2数据流中相对应的数据同时输入给交织地址计算模块,控制交织地址计算模块对同时收到的相对应的数据同时进行交织处理,并将同时经过交织处理的校验1数据流中的各数据和与其对应的校验2数据流中的各数据按照交织地址计算模块生成的地址,存储到存储器中用于存储校验数据的缓冲区中,其中,同时进行交织处理的相对应的两个数据按照校验1数据在前,校验2数据在后的顺序作为一个数据存储到用于存储校验数据的缓冲区中。最后,控制模块可以控制打孔模块,从存储器中并行读取有效数据。
上述校验1数据流与校验2数据流中相对应的数据指:
校验1数据流中的第一个数据至倒数第二个数据分别与校验2数据流中第二个校验数据至最后一个数据一一对应,校验1数据流中的最后一个数据与校验2数据流中所填充的NULL对应,校验2数据流中的第一个数据与校验1数据流中所填充的NULL相应。
在本实施例中,控制模块可以在接收校验1数据流和校验2数据流后,先缓存校验2数据流中的第一个数据,而将所接收的校验1数据流中的第一个数据,和与该数据对应的校验2数据流中的第二个数据,同时输入给交织地址计算模块进行交织处理,依次类推,将校验1数据流中的第二个数据至倒数第二个数据与其对应的校验2数据流中的第三个数据至最后一个数据均同时输入给交织地址计算模块,其中,按照校验1数据流中各数据的接收顺序将这些一一对应的数据依次输入给交织地址计算模块,然后,控制模块将校验1数据流中的最后一个数据与其对应的校验2数据流中的所填充的NULL同时输入给交织地址计算模块,再将所缓存的校验2数据流中的第一个数据与其对应的校验1数据流中的所填充的NULL同时输入给交织地址计算模块,校验1数据流和校验2数据流中所填充的NULL是指,接收完数据后,填充的NULL。
下面介绍上述装置实现速率匹配的串行处理的具体过程,该过程如图4所示,包括以下步骤:
步骤401:速率匹配装置接收系统位数据流、校验1数据流和校验2数据流,按照交织公式对系统位数据流进行交织处理,按照交织公式对校验1数据流与校验2数据流中相对应的数据同时进行交织处理;
该步骤中,校验1数据流与校验2数据流中相对应的数据指:校验1数据流中的第一个数据至倒数第二个数据分别与校验2数据流中第二个校验数据至最后一个数据一一对应,校验1数据流中的最后一个数据与校验2数据流中所填充的NULL对应,校验2数据流中的第一个数据与校验1数据流中所填充的NULL相应。
在本实施例中,可以将接收的校验1数据流和校验2数据流分别进行缓冲再处理,即为校验1数据流分配缓冲器1和缓冲器2,为校验2数据流分配一个暂存器和缓冲器1,所接收的校验1数据先进入缓冲器1然后进入缓冲器2,所接收的校验2数据流的第一个数据暂存在暂存器,所接收的校验2数据流的第二个数据开始均进入缓冲器1,这样,校验1数据流的缓冲器2中的数据与校验2数据流的缓冲器1中的数据即为对应数据,将对应的数据同时按照交织公式进行交织处理即可,当校验2数据流的缓冲器1中不再缓存有数据(即校验2数据流的所有数据均接收完成)时,开始为校验2数据流填充设定数目的NULL,此时,校验1数据流的缓冲器1中的数据(即所接收的校验1数据流中的最后一个数据)与校验2数据流中所填充的NULL对应,将这对应的数据同时按照交织公式进行交织处理即可,当校验1数据流的最后一个数据与其对应的NULL进行了交织处理后,开始为校验1数据流填充设定数目的NULL,当校验1数据流中所填充的NULL的个数达到设定值(即填充最后一个NULL)时,暂存在暂存器中的数据(即所接收的校验2数据流中的第一个数据)与校验1数据流中所填充的NULL对应,将这对应的数据同时按照交织公式进行交织处理。
步骤402:速率匹配装置将交织处理后的系统位数据存储在存储器的前R*32个位置(也可以称为存储器的第一缓冲区,专用于存储系统数据)中,将交织处理后的校验1数据流和校验2数据流作为一个数据存储在存储器中用于存储系统位数据的R*32个位置之后的位置(即在同一存储器中存储校验数据时,存储地址需要加上偏移地址R_sub*32,而用于存储校验数据的这一部分缓冲区也可以称为存储器的第二缓冲区);
该步骤中,速率匹配装置将交织处理后的校验1数据流和校验2数据流作为一个数据存储在存储器的第二缓冲区指,速率匹配装置将同时经过交织处理后的校验1数据流和校验2数据流中相对应的数据作为一个数据存储到第二缓冲区,其中经过交织处理的相对应的数据按照校验1数据在前,校验2数据在后的顺序作为一个数据存储到第二缓冲区中。
步骤403:速率匹配装置根据参数取出数据判断并进行裁剪。
该步骤中,速率匹配装置根据系统要求的起始位置和输出数据长度,从存储器中读取数据,如果读取的是NULL,则不输出,并对输出数据个数不进行计数,当读取的是不为NULL,则输出数据,并对输出数据个数计数。当数据取到软buffer末尾NCB位置时还没有取足够数据时,那么将从软buffer开始位置继续取数据,直到取出要求的数据值为止。
从上述实施例可以看出,本发明技术方案解决了速率匹配比特收集过程中的存储复杂性问题,有利于后续比特裁剪处理,降低了系统复杂度,节省了芯片面积和功耗,使系统位,校验1和校验2统一处理公用交织产生装置,节省了1个交织地址产生器,节省了速率匹配装置的面积和功耗。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明做出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。