CN102377516A - 数据处理方法及其装置 - Google Patents
数据处理方法及其装置 Download PDFInfo
- Publication number
- CN102377516A CN102377516A CN2011101701999A CN201110170199A CN102377516A CN 102377516 A CN102377516 A CN 102377516A CN 2011101701999 A CN2011101701999 A CN 2011101701999A CN 201110170199 A CN201110170199 A CN 201110170199A CN 102377516 A CN102377516 A CN 102377516A
- Authority
- CN
- China
- Prior art keywords
- bit data
- cyclic buffer
- deinterleaving
- address
- current address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
一种数据处理方法及其装置,所述数据处理装置包括分组交织子系统和分组解交织子系统,分组交织子系统包括:交织用循环缓冲区,供待交织的比特数据的写入;交织编码单元,用于对写入所述交织用循环缓冲区的所述比特数据进行读取,从而完成比特数据的分组交织;分组解交织子系统,包括:解交织用循环缓冲区,供待解交织的比特数据的写入;解交织编码单元,用于对写入所述解交织用循环缓冲区的所述比特数据进行读取,从而完成比特数据的分组解交织。相较于现有技术,本发明利用循环缓冲区的寻址方式实现包括分组交织和分组解交织的数据处理技术,具有结构简单,实现容易的优点。
Description
技术领域
本发明涉及一种分组交织技术,特别地,更涉及一种利用循环缓冲区实现的数据处理方法及其装置。
背景技术
在通信系统中,为了应对信道中的突发噪声(Burst Noise)干扰以及信道衰落,常需要进行一系列的信道编码的处理,例如数据随机化、Reed-Solomon(RS)外编码(或无)、数据交织、采用内编码(或无)、加入同步信号、导频信号、信道成形滤波、上变频等。
交织是通信系统中进行数据处理而采用的一种差错控制技术,其本质就是一种实现最大限度的改变信息结构而不改变信息内容的器件,它的目的是使误码离散化,将突发差错信道变为离散差错信道,再通过纠正随机差错来改善数据传输质量。原理上,是将信息码(源比特)流在时间顺序上按一定规则打乱,即相互穿插交织后再发送到信道中去。这样,在传输过程中即使发生了成串差错,再经过解交织还原成原来的码流顺序后,差错也就变成单个(或长度很短),这时再用信道编码纠错功能纠正差错,恢复出原消息码流。交织器一般分为两种结构类型:分组结构和卷积结构。对于分组结构,其是应用于信道编码中较早的一种交织技术,它是一种规则交织器,也就是行进列出或者列进行出。以行进列出为例,将待编码的d*w个比特数据逐行填充入一个d列w行的矩阵单元中(即每次是对d*w个比特数据进行交织),而在发送时则是采取按列读出。也就是说,所述待编码的比特数据被分成w行,每一行由d个数据位组成一个字,其中的d和w分别表示交织深度和交织宽度。图1即显示了分组结构的一个实例,如图1所示,所述交织器为3列4行的矩阵单元,先是将a0、a1、a2、a3、a4、a5、a6、a7、a8、a9、a10、a11在内的12个比特数据按序填入所述矩阵单元中,发送时则按列读取a0、a3、a6、a9、a1、a4、a7、a10、a2、a5、a8、a11,其中的所述交织器的交织深度为3,交织宽度为4。
一般,交织器多采用数字电路实现,数字电路实现的好处是速度快,但实现复杂度较高,难度代价较大,而且交织参数不易任意更改。
发明内容
本发明的目的在于提供一种利用循环缓冲区实现分组交织和分组解交织的数据处理方法及其装置,用于解决现有采用数字电路实现交织和解交织技术中数字电路复杂度较高,难度代价较大的问题。
本发明提供一种数据处理方法,包括分组交织和分组解交织,其中,所述分组交织包括:提供交织用循环缓冲区,将待交织的比特数据写入所述交织用循环缓冲区;对写入所述交织用循环缓冲区的所述比特数据进行读取,从而完成比特数据的分组交织;所述分组解交织部分包括:提供解交织用循环缓冲区,将接收的经交织处理、待解交织的比特数据写入所述解交织用循环缓冲区;对写入所述解交织用循环缓冲区的所述比特数据进行读取,从而完成比特数据的分组解交织。
可选地,所述提供交织用循环缓冲区并将待交织的比特数据写入所述交织用循环缓冲区包括:(A)设定分组交织参数,其中的交织深度为d,交织宽度为w,一帧比特数据的个数为d*w;提供交织用循环缓冲区,在所述交织用循环缓冲区中,包括地址寄存器I、长度寄存器L和步长寄存器M,其中,地址寄存器I界定了比特数据的基地址B=k*2n(k为非负整数,n为正整数)和当前地址I,长度寄存器L=d*w-1界定了交织用循环缓冲区的大小,步长寄存器M界定了交织用循环缓冲区每一次循环的步长;(B)设定初始的当前地址I与基地址B相同,即初始的当前地址I=k*2n;设定交织用循环缓冲区的大小L=d*w-1,步长M=d;(C)将待交织的比特数据中除最后一个比特数据之外的(d*w-1)个其他比特数据自初始的当前地址I=k*2n开始依序写入所述交织用循环缓冲区中。
可选地,所述对写入所述交织用循环缓冲区的所述比特数据进行读取包括:(D)从初始的当前地址I=k*2n开始读取第一个比特数据;将当前地址I依次增加步长M=d,I=k*2n+d,I=k*2n+2d,…,I=k*2n+(w-1)*d,并依序读取对应的比特数据,从而完成一个循环的比特数据的读取;(E)进行地址更新,下一当前地址为I=(I+M-B)mod L+B=(d*w)mod(d*w-1)+k*2n=k*2n+1,从下一当前地址I=k*2n+1开始读取比特数据;将当前地址I依次增加步长M=d,并依序读取对应的比特数据,从而完成一个循环的比特数据的读取;(F)重复执行步骤(E),直至将所有的(d*w-1)个其他比特数据自所述交织用循环缓冲区中读取出;(G)将位于所述交织用循环缓冲区之外的最后一个比特数据直接读取出,从而完成所有比特数据的分组交织。
可选地,所述提供解交织用循环缓冲区,将接收的经交织处理、待解交织的比特数据写入所述解交织用循环缓冲区包括:(a)设定分组解交织参数,其中的交织深度为d,交织宽度为w,一帧比特数据的个数为d*w;提供解交织用循环缓冲区,在所述解交织用循环缓冲区中,包括地址寄存器I、长度寄存器L和步长寄存器M,其中,地址寄存器I界定了比特数据的基地址B=k*2n(k为非负整数,n为正整数)和当前地址I,长度寄存器L=d*w-1界定了解交织用循环缓冲区的大小,步长寄存器M界定了解交织用循环缓冲区每一次循环的步长;(b)设定初始的当前地址I与基地址B相同,即初始的当前地址I=k*2n;设定解交织用循环缓冲区的大小L=d*w-1,步长M=w;(c)将待解交织的比特数据中除最后一个比特数据之外的(d*w-1)个其他比特数据自初始的当前地址I=k*2n开始依序写入所述解交织用循环缓冲区中。
可选地,所述对写入所述解交织用循环缓冲区的所述比特数据进行读取包括:(d)从初始的当前地址I=k*2n开始读取第一个比特数据;将当前地址I依次增加步长M=w,I=k*2n+w,I=k*2n+2w,…,I=k*2n+(d-1)*w,并依序读取对应的比特数据,从而完成一个循环的比特数据的读取;(e)进行地址更新,下一当前地址为I=(I+M-B)mod L+B=(d*w)mod(d*w-1)+k*2n=k*2n+1,从下一当前地址I=k*2n+1开始读取比特数据;将当前地址I依次增加步长M=w,并依序读取对应的比特数据,从而完成一个循环的比特数据的读取;(f)重复执行步骤(e),直至将所有的(d*w-1)个其他比特数据自所述解交织用循环缓冲区中读取出;(g)将位于所述解交织用循环缓冲区之外最后一个比特数据直接读取出,从而完成所有比特数据的分组解交织。
可选地,所述长度寄存器L的值为非负整数;如果L为零时,表示非循环缓冲区。
可选地,所述步长寄存器M的值为二进制补码,可正可负。
本发明另提供一种数据处理装置,包括分组交织子系统和分组解交织子系统,其中,分组交织子系统,包括:交织用循环缓冲区,供待交织的比特数据的写入;交织编码单元,用于对写入所述交织用循环缓冲区的所述比特数据进行读取,从而完成比特数据的分组交织;分组解交织子系统包括:解交织用循环缓冲区,供待解交织的比特数据的写入;解交织编码单元,用于对写入所述解交织用循环缓冲区的所述比特数据进行读取,从而完成比特数据的分组解交织。
可选地,所述交织用循环缓冲区包括地址寄存器I、长度寄存器L和步长寄存器M,其中,地址寄存器I界定了比特数据的基地址B=k*2n(k为非负整数,n为正整数)和当前地址I,长度寄存器L=d*w-1界定了交织用循环缓冲区的大小,步长寄存器M界定了交织用循环缓冲区每一次循环的步长。
可选地,所述分组交织子系统还包括第一设定单元;所述第一设定单元,用于:设定分组交织参数,其中的交织深度为d,交织宽度为w,一帧比特数据的个数为d*w;设定所述交织用循环缓冲区中初始的当前地址I与基地址B相同,即初始的当前地址I=k*2n;设定交织用循环缓冲区的大小L=d*w-1,得以将待交织的一帧比特数据中除最后一个比特数据之外的(d*w-1)个其他比特数据依序写入;设定交织用循环缓冲区的步长M=d。
可选地,所述交织编码单元对写入所述交织用循环缓冲区的所述比特数据进行读取包括:从初始的当前地址I=k*2n开始读取第一个比特数据;将当前地址I依次增加步长M=d,I=k*2n+d,I=k*2n+2d,…,I=k*2n+(w-1)*d,并依序读取对应的比特数据,从而完成一个循环的比特数据的读取;进行地址更新,下一当前地址为I=(I+M-B)mod L+B=(d*w)mod(d*w-1)+k*2n=k*2n+1,从下一当前地址I=k*2n+1开始读取比特数据;将当前地址I依次增加步长M=d,并依序读取对应的比特数据,从而完成一个循环的比特数据的读取;重复执行地址更新及比特数据读取的步骤,直至将所有的(d*w-1)个其他比特数据自所述交织用循环缓冲区中读取出;将位于所述交织用循环缓冲区之外的最后一个比特数据直接读取出,从而完成所有比特数据的分组交织。
可选地,所述解交织用循环缓冲区包括地址寄存器I、长度寄存器L和步长寄存器M,其中,地址寄存器I界定了比特数据的基地址B=k*2n(k为非负整数,n为正整数)和当前地址I,长度寄存器L=d*w-1界定了解交织用循环缓冲区的大小,步长寄存器M界定了解交织用循环缓冲区每一次循环的步长。
可选地,所述分组解交织子系统还包括第二设定单元;所述第二设定单元,包括:设定分组解交织参数,其中的交织深度为d,交织宽度为w,一帧比特数据的个数为d*w;设定初始的当前地址I与基地址B相同,即初始的当前地址I=k*2n;设定解交织用循环缓冲区的大小L=d*w-1,得以将待解交织的一帧比特数据中除最后一个比特数据之外的(d*w-1)个其他比特数据依序写入;设定交织用循环缓冲区的步长M=w。
可选地,所述解交织编码单元对写入所述解交织用循环缓冲区的所述比特数据进行读取包括:从初始的当前地址I=k*2n开始读取第一个比特数据;将当前地址I依次增加步长M=w,I=k*2n+w,I=k*2n+2w,…,I=k*2n+(d-1)*w,并依序读取对应的比特数据,从而完成一个循环的比特数据的读取;进行地址更新,下一当前地址为I=(I+M-B)mod L+B=(d*w)mod(d*w-1)+k*2n=k*2n+1,从下一当前地址I=k*2n+1开始读取比特数据;将当前地址I依次增加步长M=w,并依序读取对应的比特数据,从而完成一个循环的比特数据的读取;重复执行地址更新及比特数据读取的步骤,直至将所有的(d*w-1)个其他比特数据自所述解交织用循环缓冲区中读取出;将位于所述解交织用循环缓冲区之外的最后一个比特数据直接读取出,从而完成所有比特数据的分组解交织。
可选地,所述长度寄存器L的值为非负整数;如果L为零时,表示非循环缓冲区。
可选地,M寄存器的值为二进制补码,可正可负。
如上所述,本发明提供的数据处理方法及其装置,主要是通过提供循环缓冲区,根据交织规则,对循环缓冲区进行一定的寄存器设置,将待交织或待解交织的比特数据依序写入循环缓冲区中,再将那些比特数据依序读取出来,即可完成所有比特数据的分组交织或分组解交织。相对于现有采用数字电路进行交织和解交织的数据处理方法,结构简单,实现容易。
另外,本发明提供的数据处理方法及其装置,其中的交织参数(包括交织深度d和交织宽度w)可以根据待交织的数据长度随意设置的。因此,当交织参数发生变化时,本发明仍可以很好地实现交织和解交织,相较于交织参数不易任意更改的现有技术,具有更大的灵活性及应用性。
附图说明
图1即显示了现有交织/解交织技术中分组结构的一个实例;
图2为本发明数据处理方法中分组交织部分的流程示意图;
图3为图2中进行分组交织的一个具体应用实例;
图4为本发明数据处理方法中分组解交织部分的流程示意图;
图5为图4中进行分组解交织的一个具体应用实例;
图6即显示了数据处理装置的结构示意图。
具体实施方式
本发明的发明人发现,在现有采用数字电路实现交织和解交织技术中数字电路复杂度较高,难度代价较大的问题。
因此,本发明的发明人对现有技术进行了改进,提出了一种利用循环缓冲区来实现分组交织/分组解交织的数据处理技术,通过提供循环缓冲区,根据交织规则,对循环缓冲区进行一定的寄存器设置,将待交织或待解交织的比特数据依序写入循环缓冲区中,再将那些比特数据依序读取出来,即可完成所有比特数据的分组交织或分组解交织。
本发明的数据处理方法包括分组交织和分组解交织两个部分。
图2为本发明数据处理方法中分组交织部分的流程示意图。如图2所示,所述分组交织包括:
步骤S11,设定分组交织参数;提供交织用循环缓冲区;
步骤S12,设定交织用循环缓冲区的初始的当前地址,大小,步长;
步骤S13,将待交织的比特数据中除最后一个比特数据之外的其他比特数据自初始的当前地址I开始依序写入所述交织用循环缓冲区中;
步骤S14,从初始的当前地址I开始读取第一个比特数据;将当前地址I依次增加步长M,并依序读取对应的比特数据,从而完成一个循环的比特数据的读取;
步骤S15,进行地址更新,从下一更新后的当前地址开始读取比特数据;将当前地址I依次增加步长M,并依序读取对应的比特数据,从而完成一个循环的比特数据的读取;
重复执行步骤S15,直至将所有的其他比特数据自所述交织用循环缓冲区中读取出;
步骤S16,将位于所述交织用循环缓冲区之外的最后一个比特数据直接读取出,从而完成所有比特数据的分组交织。
以下对上述各步骤进行详细说明。
执行步骤S11,设定分组交织参数和提供交织用循环缓冲区。在本发明中,设定分组交织参数,其中的交织深度为d,交织宽度为w,一帧比特数据的个数为d*w。提供交织用循环缓冲区,在所述交织用循环缓冲区中,包括地址寄存器I、长度寄存器L和步长寄存器M,其中,地址寄存器I界定了比特数据的基地址B=k*2n(k为非负整数,n为正整数)和当前地址I;长度寄存器L=d*w-1界定了交织用循环缓冲区的大小,所述长度寄存器L的值为非负整数;如果L为零时,表示非交织用循环缓冲区;步长寄存器M界定了交织用循环缓冲区每一次循环的步长,M寄存器的值为二进制补码,可正可负。
步骤S12,设定交织用循环缓冲区的初始的当前地址I与基地址B相同,即初始的当前地址I=k*2n;设定交织用循环缓冲区的大小L=d*w-1,步长M=d。当然,在上述步骤S12中,交织用循环缓冲区的初始的当前地址I也可以设定成与基地址B不相同,例如将初始的当前地址I设定在除基地址B之外的其他地址。
步骤S13,将待交织的比特数据中除最后一个比特数据之外的(d*w-1)个其他比特数据自初始的当前地址I=k*2n开始依序写入所述交织用循环缓冲区中。特别地,剩下的最后一个比特数据则写入至所述交织用循环缓冲区之外的位置。
步骤S14,从初始的当前地址I=k*2n开始读取第一个比特数据;将当前地址I依次增加步长M=d,I=k*2n+d,I=k*2n+2d,…,I=k*2n+(w-1)*d,并依序读取对应的比特数据,从而完成一个循环的比特数据的读取。
步骤S15,进行地址更新,下一当前地址为I=(I+M-B)mod L+B=(d*w)mod(d*w-1)+k*2n=k*2n+1,从下一当前地址I=k*2n+1开始读取比特数据;将当前地址I依次增加步长M=d,并依序读取对应的比特数据,从而完成一个循环的比特数据的读取。
重复执行步骤S15的方法,直至将除所有的(d*w-1)个其他比特数据自所述交织用循环缓冲区中读取出。
步骤S16,将位于所述交织用循环缓冲区之外的最后一个比特数据直接读取出,从而完成所有比特数据的分组交织。
图4为本发明数据处理方法中分组解交织部分的流程示意图。如图4所示,所述分组解交织包括:
步骤S21,设定分组解交织参数;提供解交织用循环缓冲区;
步骤S22,设定解交织用循环缓冲区的初始的当前地址,大小,步长;
步骤S23,将待解交织的比特数据中除最后一个比特数据之外的其他比特数据自初始的当前地址I开始依序写入所述解交织用循环缓冲区中;
步骤S24,从初始的当前地址I开始读取第一个比特数据;将当前地址I依次增加步长M,并依序读取对应的比特数据,从而完成一个循环的比特数据的读取;
步骤S25,进行地址更新,从下一更新后的当前地址开始读取比特数据;将当前地址I依次增加步长M,并依序读取对应的比特数据,从而完成一个循环的比特数据的读取;
重复执行步骤S25,直至将所有的其他比特数据自所述解交织用循环缓冲区中读取出;
步骤S26,将位于所述解交织用循环缓冲区之外的最后一个比特数据直接读取出,从而完成所有比特数据的分组解交织。
以下对上述各步骤进行详细说明。
执行步骤S21,设定分组交织参数和提供解交织用循环缓冲区。在本发明中,设定分组交织参数,其中的交织深度为d,交织宽度为w,一帧比特数据的个数为d*w。提供解交织用循环缓冲区,在所述解交织用循环缓冲区中,包括地址寄存器I、长度寄存器L和步长寄存器M,其中,地址寄存器I界定了比特数据的基地址B=k*2n(k为非负整数,n为正整数)和当前地址I;长度寄存器L=d*w-1界定了解交织用循环缓冲区的大小,所述长度寄存器L的值为非负整数;如果L为零时,表示非解交织用循环缓冲区;步长寄存器M界定了解交织用循环缓冲区每一次循环的步长,M寄存器的值为二进制补码,可正可负。
步骤S22,设定解交织用循环缓冲区的初始的当前地址I与基地址B相同,即初始的当前地址I=k*2n;设定解交织用循环缓冲区的大小L=d*w-1,步长M=w。当然,在上述步骤S22中,解交织用循环缓冲区的初始的当前地址I也可以设定成与基地址B不相同,例如将初始的当前地址I设定在除基地址B之外的其他地址。
步骤S23,将待解交织的比特数据中除最后一个比特数据之外的(d*w-1)个其他比特数据自初始的当前地址I=k*2n开始依序写入所述解交织用循环缓冲区中。特别地,剩下的最后一个比特数据则写入至所述解交织用循环缓冲区之外的位置。
步骤S24,从初始的当前地址I=k*2n开始读取第一个比特数据;将当前地址I依次增加步长M=w,I=k*2n+w,I=k*2n+2w,…,I=k*2n+(d-1)*w,并依序读取对应的比特数据,从而完成一个循环的比特数据的读取。
步骤S25,进行地址更新,下一当前地址为I=(I+M-B)mod L+B=(d*w)mod(d*w-1)+k*2n=k*2n+1,从下一当前地址I=k*2n+1开始读取比特数据;将当前地址I依次增加步长M=w,并依序读取对应的比特数据,从而完成一个循环的比特数据的读取。
重复执行步骤S25的方法,直至将所有的(d*w-1)个其他比特数据自所述解交织用循环缓冲区中读取出。
步骤S26,将位于所述解交织用循环缓冲区之外的最后一个比特数据直接读取出,从而完成所有比特数据的分组解交织。
如上所述,本发明提供的数据处理方法主要是通过提供循环缓冲区(包括交织用循环缓冲区和解交织用循环缓冲区),根据交织规则,对循环缓冲区进行一定的寄存器设置,将待交织的比特数据依序写入交织用循环缓冲区或将待解交织的比特数据依序写入解交织用循环缓冲区中,再将那些比特数据依序从交织用循环缓冲区或解交织用循环缓冲区中读取出来,即可完成所有比特数据的分组交织或分组解交织。相对于现有采用数字电路实现交织和解交织技术中数字电路,结构简单,实现容易。
下面就以具体实例来对上述数据处理方法中的分组交织部分和分组解交织部分进行具体说明。
图3即显示了分组交织方法的一个具体应用实例。如图3所示,现有一帧共12个比特数据a0、a1、a2、a3、a4、a5、a6、a7、a8、a9、a10、a11,其交织深度d=3,交织宽度w=4;提供交织用循环缓冲区,所述交织用循环缓冲区的基地址B=k*2n(k为非负整数,n为正整数);现设定所述交织用循环缓冲区的初始的当前地址I与基地址B相同,即初始的当前地址I=k*2n(k为非负整数,n为正整数);设定交织用循环缓冲区的大小L=d*w-1=3*4=11,步长M=d=3。
将待交织的比特数据中除最后一个比特数据a11之外的11个其他比特数据a0、a1、a2、a3、a4、a5、a6、a7、a8、a9、a10自初始的当前地址I=k*2n开始依序写入所述交织用循环缓冲区中,这样,比特数据a10所对应的地址为k*2n+10。
从初始的当前地址I=k*2n开始读取第一个比特数据a0;然后,将当前地址I依次增加步长M=d=3,I=k*2n+d=k*2n+3,I=k*2n+2d=k*2n+2*3=k*2n+6,I=k*2n+(4-1)*d=k*2n+3*3=k*2n+9,并依序读取对应的比特数据a3、a6、a9,从而完成一个循环的比特数据的读取。
进行地址更新,下一当前地址为I=(I+M-B)mod L+B=(d*w)mod(d*w-1)+k*2n=k*2n+1,从下一当前地址I=k*2n+1开始读取比特数据a1;然后,将当前地址I依次增加步长M=d=3,I=k*2n+1+d=k*2n+1+3=k*2n+4,I=k*2n+1+2d=k*2n+1+2*3=k*2n+7,I=k*2n+1+(4-1)*d=k*2n+1+3*3=k*2n+10,并依序读取对应的比特数据a4、a7、a10,从而完成一个循环的比特数据的读取。
进行地址更新,下一当前地址为I=(I+M-B)mod L+B=(d*w)mod(d*w-1)+k*2n+1=k*2n+2,从下一当前地址I=k*2n+2开始读取比特数据a2;然后,将当前地址I依次增加步长M=d=3,I=k*2n+2+d=k*2n+2+3=k*2n+5,I=k*2n+2+2d=k*2n+2+2*3=k*2n+8,并依序读取对应的比特数据a5、a8,从而完成一个循环的比特数据的读取。
这样,就把所述交织用循环缓冲区中的所有比特数据a0、a3、a6、a9、a1、a4、a7、a10、a2、a5、a8都读取出来了。
之后,再将位于所述交织用循环缓冲区之外最后一个比特数据a11直接读取出,从而完成所有比特数据的分组交织a0、a3、a6、a9、a1、a4、a7、a10、a2、a5、a8、a11。
图5即显示了分组解交织方法的一个具体应用实例。如图5所示,现有一帧共12个比特数据a0、a1、a2、a3、a4、a5、a6、a7、a8、a9、a10、a11,其交织深度d=3,交织宽度w=4;提供解交织用循环缓冲区,所述解交织用循环缓冲区的基地址B=k*2n(k为非负整数,n为正整数);现设定所述解交织用循环缓冲区的初始的当前地址I与基地址B相同,即初始的当前地址I=k*2n(k为非负整数,n为正整数);设定解交织用循环缓冲区的大小L=d*w-1=3*4=11,步长M=d=3。
将待解交织的比特数据中除最后一个比特数据a11之外的11个其他比特数据a0、a3、a6、a9、a1、a4、a7、a10、a2、a5、a8自初始的当前地址I=k*2n开始依序写入所述解交织用循环缓冲区中,这样,比特数据a8所对应的地址为k*2n+10。
从初始的当前地址I=k*2n开始读取第一个比特数据a0;然后,将当前地址I依次增加步长M=w=4,I=k*2n+w=k*2n+4,I=k*2n+2w=k*2n+(3-1)*4=k*2n+8,并依序读取对应的比特数据a1、a2,从而完成一个循环的比特数据的读取。
进行地址更新,下一当前地址为I=(I+M-B)mod L+B=(d*w)mod(d*w-1)+k*2n=k*2n+1,从下一当前地址I=k*2n+1开始读取比特数据a3;然后,将当前地址I依次增加步长M=w=4,I=k*2n+1+w=k*2n+1+4=k*2n+5,I=k*2n+1+(3-1)*w=k*2n+1+2*4=k*2n+9,并依序读取对应的比特数据a4、a5,从而完成一个循环的比特数据的读取。
进行地址更新,下一当前地址为I=(I+M-B)mod L+B=(d*w)mod(d*w-1)+k*2n+1=k*2n+2,从下一当前地址I=k*2n+2开始读取比特数据a6;然后,将当前地址I依次增加步长M=w=4,I=k*2n+2+w=k*2n+2+4=k*2n+6,I=k*2n+2+(3-1)*w=k*2n+2+2*4=k*2n+10,并依序读取对应的比特数据a7、a8,从而完成一个循环的比特数据的读取。
进行地址更新,下一当前地址为I=(I+M-B)mod L+B=(d*w)mod(d*w-1)+k*2n+2=k*2n+3,从下一当前地址I=k*2n+3开始读取比特数据a9;然后,将当前地址I依次增加步长M=w=4,I=k*2n+3+w=k*2n+3+4=k*2n+7,并读取对应的比特数据a10,从而完成一个循环的比特数据的读取。
这样,就把所述解交织用循环缓冲区中的所有比特数据a0、a1、a2、a3、a4、a5、a6、a7、a8、a9、a10都读取出来了。
之后,再将位于所述解交织用循环缓冲区之外的最后一个比特数据a11直接读取出,从而完成所有比特数据的分组解交织a0、a1、a2、a3、a4、a5、a6、a7、a8、a9、a10、a11。
本发明另提供了一种数据处理装置,图6即显示了数据处理装置的结构示意图。如图6所示,所述数据处理装置1包括分组交织子系统10和分组解交织子系统20。
分组交织子系统10包括:交织用循环缓冲区100、第一设定单元120和交织编码单元140。
交织用循环缓冲区100,供待交织的比特数据的写入。交织用循环缓冲区100包括地址寄存器I、长度寄存器L和步长寄存器M。地址寄存器I界定了比特数据的基地址B=k*2n(k为非负整数,n为正整数)和当前地址I;长度寄存器L=d*w-1界定了交织用循环缓冲区100的大小,长度寄存器L的值为非负整数,如果L为零时,表示非循环缓冲区。步长寄存器M界定了交织用循环缓冲区100每一次循环的步长,其值为二进制补码,可正可负。
第一设定单元120用于:设定分组交织参数,其中的交织深度为d,交织宽度为w,一帧比特数据的个数为d*w;设定交织用循环缓冲区100中初始的当前地址I与基地址B相同,即初始的当前地址I=k*2n;还用于设定交织用循环缓冲区100的大小L=d*w-1,得以将待交织的一帧比特数据中除最后一个比特数据之外的其他比特数据依序写入;设定交织用循环缓冲区100的步长M=d。
交织编码单元140,用于对写入所述交织用循环缓冲区100的所述比特数据进行读取。具体包括:从初始的当前地址I=k*2n开始读取第一个比特数据;将当前地址I依次增加步长M=d,I=k*2n+d,I=k*2n+2d,…,I=k*2n+(w-1)*d,并依序读取对应的比特数据,从而完成一个循环的比特数据的读取;进行地址更新,下一当前地址为I=(I+M-B)mod L+B=(d*w)mod(d*w-1)+k*2n=k*2n+1,从下一当前地址I=k*2n+1开始读取比特数据;将当前地址I依次增加步长M=d,并依序读取对应的比特数据,从而完成一个循环的比特数据的读取;重复执行地址更新及比特数据读取的步骤,直至将除最后一个比特数据之外的(d*w-1)个其他比特数据自所述交织用循环缓冲区100中读取出;将最后一个比特数据直接读取出,从而完成所有比特数据的分组交织。
分组解交织子系统20包括:解交织用循环缓冲区200、第二设定单元220和解交织编码单元140。
解交织用循环缓冲区200,供待解交织的比特数据的写入。
解交织用循环缓冲区200包括地址寄存器I、长度寄存器L和步长寄存器M。地址寄存器I界定了比特数据的基地址B=k*2n(k为非负整数,n为正整数)和当前地址I;长度寄存器L=d*w-1界定了解交织用循环缓冲区200的大小,长度寄存器L的值为非负整数,如果L为零时,表示非循环缓冲区;步长寄存器M界定了解交织用循环缓冲区200每一次循环的步长,其值为二进制补码,可正可负。
第二设定单元220用于:设定分组解交织参数,其中的交织深度为d,交织宽度为w,一帧比特数据的个数为d*w;设定初始的当前地址I与基地址B相同,即初始的当前地址I=k*2n;设定解交织用循环缓冲区200的大小L=d*w-1,得以将待解交织的一帧比特数据中除最后一个比特数据之外的其他比特数据依序写入;设定交织用循环缓冲区200的步长M=w。
解交织编码单元240,用于对写入所述解交织用循环缓冲区200的所述比特数据进行读取。具体包括:从初始的当前地址I=k*2n开始读取第一个比特数据;将当前地址I依次增加步长M=w,I=k*2n+w,I=k*2n+2w,…,I=k*2n+(d-1)*w,并依序读取对应的比特数据,从而完成一个循环的比特数据的读取;进行地址更新,下一当前地址为I=(I+M-B)mod L+B=(d*w)mod(d*w-1)+k*2n=k*2n+1,从下一当前地址I=k*2n+1开始读取比特数据;将当前地址I依次增加步长M=w,并依序读取对应的比特数据,从而完成一个循环的比特数据的读取;重复执行地址更新及比特数据读取的步骤,直至将除最后一个比特数据之外的(d*w-1)个其他比特数据自所述解交织用循环缓冲区200中读取出;将最后一个比特数据直接读取出,从而完成所有比特数据的分组解交织。
综上所述,本发明提供的数据处理方法及其装置,主要是通过提供循环缓冲区,根据交织规则,对循环缓冲区进行一定的寄存器设置,将待交织或待解交织的比特数据依序写入循环缓冲区中,再将那些比特数据依序读取出来,即可完成所有比特数据的分组交织或分组解交织。相对于现有采用数字电路进行交织和解交织的数据处理方法,结构简单,实现容易。
另外,本发明提供的数据处理方法及其装置,其中的交织参数(包括交织深度d和交织宽度w)可以根据待交织的数据长度随意设置的。因此,当交织参数发生变化时,本发明仍可以很好地实现交织和解交织,相较于交织参数不易任意更改的现有技术,具有更大的灵活性及应用性。
上述实施例仅列示性说明本发明的原理及功效,而非用于限制本发明。任何熟悉此项技术的人员均可在不违背本发明的精神及范围下,对上述实施例进行修改。因此,本发明的权利保护范围,应如权利要求书所列。
Claims (16)
1.一种数据处理方法,包括分组交织和分组解交织,其特征在于,
所述分组交织包括:
提供交织用循环缓冲区,将待交织的比特数据写入所述交织用循环缓冲区;
对写入所述交织用循环缓冲区的所述比特数据进行读取,从而完成比特数据的分组交织;
所述分组解交织部分包括:
提供解交织用循环缓冲区,将接收的经交织处理、待解交织的比特数据写入所述解交织用循环缓冲区;
对写入所述解交织用循环缓冲区的所述比特数据进行读取,从而完成比特数据的分组解交织。
2.根据权利要求1所述的数据处理方法,其特征在于,所述提供交织用循环缓冲区并将待交织的比特数据写入所述交织用循环缓冲区包括:
(A)设定分组交织参数,其中的交织深度为d,交织宽度为w,一帧比特数据的个数为d*w;
提供交织用循环缓冲区,在所述交织用循环缓冲区中,包括地址寄存器I、长度寄存器L和步长寄存器M,其中,地址寄存器I界定了比特数据的基地址B=k*2n(k为非负整数,n为正整数)和当前地址I,长度寄存器L=d*w-1界定了交织用循环缓冲区的大小,步长寄存器M界定了交织用循环缓冲区每一次循环的步长;
(B)设定初始的当前地址I与基地址B相同,即初始的当前地址I=k*2n;
设定交织用循环缓冲区的大小L=d*w-1,步长M=d;
(C)将待交织的比特数据中除最后一个比特数据之外的(d*w-1)个其他比特数据自初始的当前地址I=k*2n开始依序写入所述交织用循环缓冲区中。
3.根据权利要求2所述的数据处理方法,其特征在于,所述对写入所述交织用循环缓冲区的所述比特数据进行读取包括:
(D)从初始的当前地址I=k*2n开始读取第一个比特数据;将当前地址I依次增加步长M=d,I=k*2n+d,I=k*2n+2d,…,I=k*2n+(w-1)*d,并依序读取对应的比特数据,从而完成一个循环的比特数据的读取;
(E)进行地址更新,下一当前地址为I=(I+M-B)mod L+B=(d*w)mod(d*w-1)+k*2n=k*2n+1,从下一当前地址I=k*2n+1开始读取比特数据;将当前地址I依次增加步长M=d,并依序读取对应的比特数据,从而完成一个循环的比特数据的读取;
(F)重复执行步骤(E),直至将所有的(d*w-1)个其他比特数据自所述交织用循环缓冲区中读取出;
(G)将位于所述交织用循环缓冲区之外的最后一个比特数据直接读取出,从而完成所有比特数据的分组交织。
4.根据权利要求1所述的数据处理方法,其特征在于,所述提供解交织用循环缓冲区,将接收的经交织处理、待解交织的比特数据写入所述解交织用循环缓冲区包括:
(a)设定分组解交织参数,其中的交织深度为d,交织宽度为w,一帧比特数据的个数为d*w;
提供解交织用循环缓冲区,在所述解交织用循环缓冲区中,包括地址寄存器I、长度寄存器L和步长寄存器M,其中,地址寄存器I界定了比特数据的基地址B=k*2n(k为非负整数,n为正整数)和当前地址I,长度寄存器L=d*w-1界定了解交织用循环缓冲区的大小,步长寄存器M界定了解交织用循环缓冲区每一次循环的步长;
(b)设定初始的当前地址I与基地址B相同,即初始的当前地址I=k*2n;
设定解交织用循环缓冲区的大小L=d*w-1,步长M=w;
(c)将待解交织的比特数据中除最后一个比特数据之外的(d*w-1)个其他比特数据自初始的当前地址I=k*2n开始依序写入所述解交织用循环缓冲区中。
5.根据权利要求4所述的数据处理方法,其特征在于,所述对写入所述解交织用循环缓冲区的所述比特数据进行读取包括:
(d)从初始的当前地址I=k*2n开始读取第一个比特数据;将当前地址I依次增加步长M=w,I=k*2n+w,I=k*2n+2w,…,I=k*2n+(d-1)*w,并依序读取对应的比特数据,从而完成一个循环的比特数据的读取;
(e)进行地址更新,下一当前地址为I=(I+M-B)mod L+B=(d*w)mod(d*w-1)+k*2n=k*2n+1,从下一当前地址I=k*2n+1开始读取比特数据;将当前地址I依次增加步长M=w,并依序读取对应的比特数据,从而完成一个循环的比特数据的读取;
(f)重复执行步骤(e),直至将所有的(d*w-1)个其他比特数据自所述解交织用循环缓冲区中读取出;
(g)将位于所述解交织用循环缓冲区之外最后一个比特数据直接读取出,从而完成所有比特数据的分组解交织。
6.根据权利要求2或4所述的数据处理方法,其特征在于,所述长度寄存器L的值为非负整数;如果L为零时,表示非循环缓冲区。
7.根据权利要求2或4所述的数据处理方法,其特征在于,所述步长寄存器M的值为二进制补码,可正可负。
8.一种数据处理装置,其特征在于,包括:
分组交织子系统,包括:
交织用循环缓冲区,供待交织的比特数据的写入;
交织编码单元,用于对写入所述交织用循环缓冲区的所述比特数据进行读取,从而完成比特数据的分组交织;
分组解交织子系统,包括:
解交织用循环缓冲区,供待解交织的比特数据的写入;
解交织编码单元,用于对写入所述解交织用循环缓冲区的所述比特数据进行读取,从而完成比特数据的分组解交织。
9.根据权利要求8所述的数据处理装置,其特征在于,所述交织用循环缓冲区包括地址寄存器I、长度寄存器L和步长寄存器M,其中,地址寄存器I界定了比特数据的基地址B=k*2n(k为非负整数,n为正整数)和当前地址I,长度寄存器L=d*w-1界定了交织用循环缓冲区的大小,步长寄存器M界定了交织用循环缓冲区每一次循环的步长。
10.根据权利要求9所述的数据处理装置,其特征在于,所述分组交织子系统还包括第一设定单元;
所述第一设定单元,用于:
设定分组交织参数,其中的交织深度为d,交织宽度为w,一帧比特数据的个数为d*w;
设定所述交织用循环缓冲区中初始的当前地址I与基地址B相同,即初始的当前地址I=k*2n;
设定交织用循环缓冲区的大小L=d*w-1,得以将待交织的一帧比特数据中除最后一个比特数据之外的(d*w-1)个其他比特数据依序写入;
设定交织用循环缓冲区的步长M=d。
11.根据权利要求10所述的数据处理装置,其特征在于,所述交织编码单元对写入所述交织用循环缓冲区的所述比特数据进行读取包括:
从初始的当前地址I=k*2n开始读取第一个比特数据;将当前地址I依次增加步长M=d,I=k*2n+d,I=k*2n+2d,…,I=k*2n+(w-1)*d,并依序读取对应的比特数据,从而完成一个循环的比特数据的读取;
进行地址更新,下一当前地址为I=(I+M-B)mod L+B=(d*w)mod(d*w-1)+k*2n=k*2n+1,从下一当前地址I=k*2n+1开始读取比特数据;将当前地址I依次增加步长M=d,并依序读取对应的比特数据,从而完成一个循环的比特数据的读取;
重复执行地址更新及比特数据读取的步骤,直至将所有的(d*w-1)个其他比特数据自所述交织用循环缓冲区中读取出;
将位于所述交织用循环缓冲区之外的最后一个比特数据直接读取出,从而完成所有比特数据的分组交织。
12.根据权利要求8所述的数据处理装置,其特征在于,所述解交织用循环缓冲区包括地址寄存器I、长度寄存器L和步长寄存器M,其中,地址寄存器I界定了比特数据的基地址B=k*2n(k为非负整数,n为正整数)和当前地址I,长度寄存器L=d*w-1界定了解交织用循环缓冲区的大小,步长寄存器M界定了解交织用循环缓冲区每一次循环的步长。
13.根据权利要求12所述的数据处理装置,其特征在于,所述分组解交织子系统还包括第二设定单元;
所述第二设定单元,用于:
设定分组解交织参数,其中的交织深度为d,交织宽度为w,一帧比特数据的个数为d*w;
设定初始的当前地址I与基地址B相同,即初始的当前地址I=k*2n;
设定解交织用循环缓冲区的大小L=d*w-1,得以将待解交织的一帧比特数据中除最后一个比特数据之外的(d*w-1)个其他比特数据依序写入;
设定交织用循环缓冲区的步长M=w。
14.据权利要求13所述的数据处理装置,其特征在于,所述解交织编码单元对写入所述解交织用循环缓冲区的所述比特数据进行读取包括:
从初始的当前地址I=k*2n开始读取第一个比特数据;将当前地址I依次增加步长M=w,I=k*2n+w,I=k*2n+2w,…,I=k*2n+(d-1)*w,并依序读取对应的比特数据,从而完成一个循环的比特数据的读取;
进行地址更新,下一当前地址为I=(I+M-B)mod L+B=(d*w)mod(d*w-1)+k*2n=k*2n+1,从下一当前地址I=k*2n+1开始读取比特数据;将当前地址I依次增加步长M=w,并依序读取对应的比特数据,从而完成一个循环的比特数据的读取;
重复执行地址更新及比特数据读取的步骤,直至将所有的(d*w-1)个其他比特数据自所述解交织用循环缓冲区中读取出;
将位于所述解交织用循环缓冲区之外的最后一个比特数据直接读取出,从而完成所有比特数据的分组解交织。
15.根据权利要求9或12所述的数据处理装置,其特征在于,所述长度寄存器L的值为非负整数;如果L为零时,表示非循环缓冲区。
16.根据权利要求9或12所述的数据处理装置,其特征在于,所述步长寄存器M的值为二进制补码,可正可负。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101701999A CN102377516A (zh) | 2011-06-22 | 2011-06-22 | 数据处理方法及其装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101701999A CN102377516A (zh) | 2011-06-22 | 2011-06-22 | 数据处理方法及其装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102377516A true CN102377516A (zh) | 2012-03-14 |
Family
ID=45795567
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011101701999A Pending CN102377516A (zh) | 2011-06-22 | 2011-06-22 | 数据处理方法及其装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102377516A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019047928A1 (zh) * | 2017-09-08 | 2019-03-14 | 华为技术有限公司 | 交织方法和交织装置 |
CN112994835A (zh) * | 2019-12-02 | 2021-06-18 | 中国科学院上海高等研究院 | 一种块交织处理方法及系统 |
CN113227957A (zh) * | 2018-11-29 | 2021-08-06 | 超威半导体公司 | 基于缓存行地址在流中聚合命令 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006064462A2 (en) * | 2004-12-14 | 2006-06-22 | Koninklijke Philips Electronics N.V. | Programmable signal processing circuit and method of interleaving |
CN1983825A (zh) * | 2006-04-11 | 2007-06-20 | 华为技术有限公司 | 交织编解码的装置和方法 |
CN101237240A (zh) * | 2008-02-26 | 2008-08-06 | 北京海尔集成电路设计有限公司 | 一种利用外部存储器实现卷积交织/解交织的方法及设备 |
-
2011
- 2011-06-22 CN CN2011101701999A patent/CN102377516A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006064462A2 (en) * | 2004-12-14 | 2006-06-22 | Koninklijke Philips Electronics N.V. | Programmable signal processing circuit and method of interleaving |
CN101076778A (zh) * | 2004-12-14 | 2007-11-21 | 皇家飞利浦电子股份有限公司 | 可编程信号处理电路和交织方法 |
CN1983825A (zh) * | 2006-04-11 | 2007-06-20 | 华为技术有限公司 | 交织编解码的装置和方法 |
CN101237240A (zh) * | 2008-02-26 | 2008-08-06 | 北京海尔集成电路设计有限公司 | 一种利用外部存储器实现卷积交织/解交织的方法及设备 |
Non-Patent Citations (1)
Title |
---|
高晶,达新宇,褚振勇: "基于FPGA的改进型分组交织器的设计与实现", 《微计算机信息》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019047928A1 (zh) * | 2017-09-08 | 2019-03-14 | 华为技术有限公司 | 交织方法和交织装置 |
CN109474373A (zh) * | 2017-09-08 | 2019-03-15 | 华为技术有限公司 | 交织方法和交织装置 |
US11139918B2 (en) | 2017-09-08 | 2021-10-05 | Huawei Technologies Co., Ltd. | Interleaving method and interleaving apparatus |
CN113227957A (zh) * | 2018-11-29 | 2021-08-06 | 超威半导体公司 | 基于缓存行地址在流中聚合命令 |
CN112994835A (zh) * | 2019-12-02 | 2021-06-18 | 中国科学院上海高等研究院 | 一种块交织处理方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104868971B (zh) | Ldpc码字的交织映射方法及解交织解映射方法 | |
JPWO2013001706A1 (ja) | 無線送受信装置、通信システム及びそれらに用いるチャネルコーディング処理方法 | |
CN102377516A (zh) | 数据处理方法及其装置 | |
KR20150099396A (ko) | 비트 인터리버 및 비트 디-인터리버 | |
US10236919B2 (en) | Bit interleaver and bit de-interleaver | |
CN111371465B (zh) | Ldpc码字的比特交织方法、系统与介质 | |
CN101924608B (zh) | 一种实现块交织的方法、装置及发射机 | |
CN103873188B (zh) | 一种并行解速率匹配方法和装置 | |
CA3003703C (en) | Data processing apparatus, and data processing method | |
WO2019047741A1 (zh) | 比特交织、解交织方法及装置 | |
CN111181572B (zh) | Ldpc码字的交织映射方法及解交织解映射方法 | |
CN109391368B (zh) | 一种对数据进行交织的方法和交织器 | |
CN109728826B (zh) | 一种数据交织与解交织方法和装置 | |
CN104935399A (zh) | Ldpc码字的交织映射方法及解交织解映射方法 | |
CN110784287B (zh) | Ldpc码字的交织映射方法及解交织解映射方法 | |
CN105099615B (zh) | Ldpc码字的交织映射方法及解交织解映射方法 | |
WO2019029238A1 (zh) | 一种对数据进行交织的方法和交织器 | |
JP4308226B2 (ja) | 誤り訂正符号化装置 | |
CN102136885A (zh) | 一种3gpp lte pusch信道并行信道交织和加扰的实现方法和系统 | |
CN105450344A (zh) | Ldpc码字的交织和映射方法及解交织解映射方法 | |
CN104935398A (zh) | Ldpc码字的交织映射方法及解交织解映射方法 | |
JP2004112092A (ja) | データ処理装置及び方法 | |
CN105450353A (zh) | Ldpc码字的交织和映射方法及解交织解映射方法 | |
CN105376027A (zh) | Ldpc码字的交织和映射方法及解交织解映射方法 | |
CN105450352A (zh) | Ldpc码字的交织和映射方法及解交织解映射方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20120314 |