CN109728826B - 一种数据交织与解交织方法和装置 - Google Patents
一种数据交织与解交织方法和装置 Download PDFInfo
- Publication number
- CN109728826B CN109728826B CN201711031504.XA CN201711031504A CN109728826B CN 109728826 B CN109728826 B CN 109728826B CN 201711031504 A CN201711031504 A CN 201711031504A CN 109728826 B CN109728826 B CN 109728826B
- Authority
- CN
- China
- Prior art keywords
- data
- storage
- bit
- memory
- sub
- 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.)
- Active
Links
Images
Abstract
本发明公开了一种数据交织与解交织方法。将待处理数据依次写入第一存储器中包括的至少一个第一存储单元中,各第一存储单元的长度为第一预设数据长度;将存储于各第一存储单元的待处理数据以第一存储单元为单位划分为一个以上的子数据块;按照第一读写规则分别读取各子数据块对应的各第一存储单元中的数据并写入第二存储器;将从所述第二存储器中按第一预设读取顺序依次读取的数据确定为所述待处理数据的处理结果。本发明还公开了一种数据交织与解交织的装置、存储介质和信息处理装置。
Description
技术领域
本发明涉及数字通信技术,尤其涉及一种数据交织与解交织方法和装置。
背景技术
在无线通信中,信道编码采用特定的冗余技术来纠正在传输过程中产生的错误的信息位;但是,冗余技术无法克服数据中的连续误码;为了有效地解决突发误码问题,在无线通信系统中引入了信道交织技术;采用交织技术后,如果传输过程中某块消息丢失,在解交织后实际上只丢失每个信息块的一部分,而不至于出现连续的误码,此时,使用相应的译码技术可以较容易地恢复错误的信息位。
在正交频分复用(OFDM,Orthogonal Frequency Division Multiplexing)系统中,发送端数据以一个OFDM符号所能承载的总数据比特数m为单位分组,m等于一个OFDM符号的数据子载波数目NSD与一个子载波所承载的数据比特数n的乘积。数据在信道编码后,经交织处理,然后以一个子载波所承载的数据比特数n为单位,进行星座映射并对应到数据子载波上。交织操作的行数为R,列数为C,通常行数R是N的整数倍,即R=k*n。
交织在硬件实现中主要以存储器为媒介,分为写和读两个步骤,先按行顺序依次写入输入信息流,再按列顺序依次读出输出信息流;交织输入存储器的深度为行数R,位宽为列数C,通常需要在接收完R*C个输入信息比特后,才开始输出交织结果。在实际通信系统中,这种交织处理方式存在两个缺点:一是存储器访问次数过多导致的功耗与延迟问题,存储器某一行的数据单元,每一次仅处理其中1比特,完成一行数据所有比特的处理共需访问存储器同一地址C次;二是从输入到输出的延迟较大,特别是在输出第一列数据时,相邻输出数据的间隔较大,当输出以一个子载波所承载的数据比特数n为基本单位时,每次均需要等待n个地址的数据填充完毕。
解交织是交织的逆过程,其硬件实现与交织类似,仍以存储器为媒介,先按行写入,再按列读出,区别在于行数、列数与交织的行数、列数交换,即解交织存储器的深度为列数C,位宽为行数R;解交织过程同样会有因为存储器访问次数过多导致的功耗与延迟问题。
因此,如何通过较少的存储器访问次数实现交织和解交织,进而有效降低功耗与延迟,是亟待解决的问题。
发明内容
有鉴于此,本发明实施例期望提供一种数据交织与解交织方法和装置,能通过较少的存储器访问次数实现交织和解交织,进而有效降低功耗与延迟。
为达到上述目的,本发明的技术方案是这样实现的:
本发明实施例提供了一种数据交织与解交织方法,所述方法包括:
将待处理数据依次写入第一存储器中包括的至少一个第一存储单元中,各第一存储单元的长度为第一预设数据长度;
将存储于各第一存储单元的待处理数据以第一存储单元为单位划分为一个以上的子数据块;
按照第一读写规则分别读取各子数据块对应的各第一存储单元中的数据并写入第二存储器;
将从所述第二存储器中按第一预设读取顺序依次读取的数据确定为所述待处理数据的处理结果。
上述方案中,所述按照第一读写规则分别读取各子数据块对应的各第一存储单元中的数据并写入第二存储器,包括:
按各子数据块在第一存储器中的地址递增顺序,依次读取所述各子数据块;
按第二预设读取顺序分别读取当前子数据块对应的各第一存储单元中相同存储位的第一位存储数据;
将所述各第一存储单元中相同存储位的第一位存储数据,按各第一位存储数据各自所在所述第一存储单元顺序分别组成第一写入数据单元;
将各第一写入数据单元,按各自对应的第一预设写入地址写入第二存储器。
上述方案中,所述方法还包括:
计算当前第一写入数据单元中的第一位存储数据在第一存储单元的存储位次与第一预设数据长度之间的差值;
计算所述差值与子数据块总数的乘积;
将所述乘积与当前子数据块在第一存储器中的顺序位次相加之和,确定为当前所述第一写入数据单元对应的第一预设写入地址。
上述方案中,按第二预设读取顺序分别读取当前子数据块对应的各第一存储单元中相同存储位的第一位存储数据:包括:
按所述第一存储单元存储位由高到低、或由低到高的顺序读取各第一存储单元中相同存储位的第一位存储数据。
上述方案中,所述待处理数据为待交织数据;
所述待交织数据的大小为一个OFDM符号所承载的数据比特数;
所述子数据块的大小为OFDM符号中子载波所承载的数据比特数与所述第一预设数据长度之积;
所述第一存储单元的数量为所述子载波所承载的数据比特数的整数倍。
上述方案中,所述将从所述第二存储器中按第一预设读取顺序依次读取的数据确定为所述待处理数据的处理结果,包括:将从所述第二存储器中按地址递增顺序依次读取的数据确定为所述待交织数据的交织结果。
上述方案中,所述按照第一读写规则分别读取各子数据块对应的各第一存储单元中的数据并写入第二存储器,包括:
分别读取在各自对应子数据块中位置相同的各第一存储单元中的数据;
将所述读取的各相同位置第一存储单元中相同存储位的第二位存储数据,按各自所属子数据块在第二存储器中的顺序分别组成第二写入数据单元;
将各第二写入数据单元,按各自对应的第二预设写入地址写入第二存储器;
所述方法还包括:按第三预设读取顺序从各第一存储单元中读取第二位存储数据。
上述方案中,所述方法还包括:
计算当前第一存储单元在对应的子数据块中的顺序位次与第一预设数据长度的乘积;
计算当前第二写入数据单元中第二位存储数据在第一存储单元的存储位次与第一预设数据长度之间的差值;
将所述乘积与所述差值之和确定为所述第二预设写入地址。
上述方案中,所述按第三预设读取顺序分别读取各子数据块中相同位置的第一存储单元中的数据:包括:
按所述第一存储单元存储位由高到低、或由低到高的顺序读取各第一存储单元中相同存储位的第二位存储数据。
上述方案中,所述待处理数据为待解交织数据;
所述待解交织数据的大小为一个OFDM符号所承载的数据比特数;
所述子数据块大小为所述第一预设数据长度与所述待解交织数据进行交织处理时划分的子数据块数量之积;
所述第一预设数据长度为所述OFDM符号中子载波所承载的数据比特数。
上述方案中,所述将从所述第二存储器中按第一预设读取顺序依次读取的数据确定为所述待处理数据的处理结果,包括:将从所述第二存储器中按地址递增顺序依次读取的数据确定为所述待解交织数据的解交织结果。
本发明实施例还提供了一种数据交织装置,所述装置包括:第一读写模块、划分模块、第二读写模块和确定模块;其中,
所述第一读写模块,用于将待处理数据依次写入第一存储器中包括的至少一个第一存储单元中,各第一存储单元的长度为第一预设数据长度;
所述划分模块,用于将存储于各第一存储单元的待处理数据以第一存储单元为单位划分为一个以上的子数据块;
所述第二读写模块,用于按照第一读写规则分别读取各子数据块对应的各第一存储单元中的数据并写入第二存储器;
所述确定模块,用于将所述第二存储器中按第一预设读取顺序依次读取的数据确定为所述待处理数据的处理结果。
上述方案中,所述第二读写模块,具体用于:
按各子数据块在第一存储器中的地址递增顺序,依次读取所述各子数据块;
按第二预设读取顺序分别读取当前子数据块对应的第一存储单元中相同存储位的第一位存储数据;
将所述各第一存储单元中相同存储位的第一位存储数据,按各第一位存储数据各自所在所述第一存储单元顺序分别组成第一写入数据单元;
将各第一写入数据单元,按各自对应的第一预设写入地址写入第二存储器。
上述方案中,所述第二读写模块,具体用于:
计算当前第一写入数据单元中的第一位存储数据在第一存储单元的存储位次与第一预设数据长度之间的差值;
计算所述差值与子数据块总数的乘积;
将所述乘积与当前子数据块在第一存储器中的顺序位次相加之和,确定为当前所述第一写入数据单元对应的第一预设写入地址。
上述方案中,所述第二读写模块,具体用于:
按所述第一存储单元存储位由高到低、或由低到高的顺序读取各第一存储单元中相同存储位的第一位存储数据。
上述方案中,所述待处理数据为待交织数据;
所述待交织数据的大小为一个OFDM符号所承载的数据比特数;
所述子数据块的大小为OFDM符号中子载波所承载的数据比特数与所述第一预设数据长度之积;
所述第一存储单元的数量为所述子载波所承载的数据比特数的整数倍。
上述方案中,所述确定模块,具体用于:将从所述第二存储器中按地址递增顺序依次读取的数据确定为所述待交织数据的交织结果。
上述方案中,所述第二读写模块,具体用于:
分别读取在各自对应子数据块中位置相同的各第一存储单元中的数据;
将所述读取的各相同位置第一存储单元中相同存储位的第二位存储数据,按各自所属子数据块在第二存储器中的顺序分别组成第二写入数据单元;
将各第二写入数据单元,按各自对应的第二预设写入地址写入第二存储器;
所述方法还包括:按第三预设读取顺序从各第一存储单元中读取第二位存储数据。
上述方案中,所述第二读写模块,具体用于:
计算当前第一存储单元在对应的子数据块中的顺序位次与第一预设数据长度的乘积;
计算当前第二写入数据单元中第二位存储数据在第一存储单元的存储位次与第一预设数据长度之间的差值差;
将所述乘积与差值之和确定为所述第二预设写入地址。
上述方案中,所述第二读写模块,具体用于:
按所述第一存储单元存储位由高到低、或由低到高的顺序读取各第一存储单元中相同存储位的第二位存储数据。
上述方案中,所述待处理数据为待解交织数据;
所述待解交织数据的大小为一个OFDM符号所承载的数据比特数;
所述子数据块大小为所述第一预设数据长度与所述待解交织数据进行交织处理时划分的子数据块数量之积;
所述第一预设数据长度为所述OFDM符号中子载波所承载的数据比特数。
上述方案中,所述确定模块,具体用于:将从所述第二存储器中按地址递增顺序依次读取的数据确定为所述待解交织数据的解交织结果。
本发明实施例还提供了一种存储介质,其上存储由可执行程序,所述可执行程序被处理器执行时实现上述方案中任一项所述数据交织与解交织方法的步骤。
本发明实施例还提供了一种信息处理装置,包括处理器、存储器及存储在存储器上并能够有所述处理器运行的可执行程序,所述处理器运行所述可执行程序时执行上述方案中任一项所述数据交织与解交织方法的步骤。
本发明实施例所提供的数据交织、解交织方法和装置;将待处理数据依次写入第一存储器中包括的至少一个第一存储单元中,各第一存储单元的长度为第一预设数据长度;将存储于各第一存储单元的待处理数据以第一存储单元为单位划分为一个以上的子数据块;按照第一读写规则分别读取各子数据块对应的各第一存储单元中的数据并写入第二存储器;将从所述第二存储器中按第一预设读取顺序依次读取的数据确定为所述待处理数据的处理结果。如此,以数据的存储单元为单位进行读取和写入,通过较少的存储器访问次数实现交织和解交织,进而有效降低功耗与延迟如此。
附图说明
图1为本发明实施例数据交织与解交织方法的流程示意图;
图2为本发明实施例数据交织过程中第一存储器数据存储结构示意图;
图3为本发明实施例数据交织过程中第二存储器数据存储结构示意图;
图4为本发明实施例OFDM系统中数据交织装置组成结构示意图;
图5为本发明实施例OFDM系统中数据交织装置工作流程示意图;
图6为本发明实施例数据解交织过程中第一存储器数据存储结构示意图;
图7为本发明实施例数据解交织过程中第二存储器数据存储结构示意图;
图8为本发明实施例OFDM系统中数据解交织装置组成结构示意图;
图9为本发明实施例OFDM系统中数据解交织装置工作流程示意图;
图10为本发明实施例数据交织与解交织装置组成结构示意图。
具体实施方式
为了能够更详尽的了解本发明的特点与技术内容,下面将结合附图对本发明的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本发明。
实施例一;
本发明实施例提供的数据交织与解交织方法,如图1所示,所述方法包括:
步骤101:将待处理数据依次写入第一存储器中包括的至少一个第一存储单元中,各第一存储单元的长度为第一预设数据长度;
这里,以数据交织处理为例,对本发明实施例交织与解交织方法进行阐述,所述待处理数据为待交织数据;所述待交织数据可以是OFDM系统中发送端发送的OFDM符号,可以由OFDM系统中的处理器等逻辑器件配合存储器进行交织处理。可以一次对一个OFDM符号中承载数据进行交织处理并发送;这里,一个OFDM符号所能承载的总数据比特数为m,m等于一个OFDM符号的数据子载波数目NSD与一个子载波所承载的数据比特数n的乘积;
所述第一存储器可以是单独的存储器,也可以是OFDM系统中存储器中划分出的存储器;可以根据所述待交织数据的比特数来确定所述第一存储单元的第一预设数据长度,即确定所述第一存储单元可以存储数据的比特数。可以在所述第一存储器中依次设置多个第一存储单元。所述第一存储单元的个数可以为子载波所承载的数据比特数的整数倍;
具体的,可以设置所述第一预设数据长度为C,可以设置R个第一存储单元,可以设置R为n的整数倍,即R=k*n,k为整数;如此一个OFDM符号中的总比特数m=C*k*n;以一个OFDM符号中包含1200个子载波为例,即NSD=1200,每个子载波所承载的数据比特数为32,即n=32;那么,一个OFDM符号承载的数据比特数,即需要进行交织处理的数据比特数为NSD*n=1200*32;如设置所述第一预设数据长度为100,则需要R=12*32个第一存储单元存储所有数据;此时k=12;
如图2所示,将m比特所述待交织数据以依次写入第一预设数据长度为C的k*n个第一存储单元中,即:
比特0到比特C-1写入第一存储器地址为0的第一存储单元;
比特C到比特2C-1写入第一存储器地址为1的第一存储单元;
…
比特(n-1)*C到比特n*C-1写入第一存储器地址为n-1的第一存储单元;
…
比特(k*n-1)*C到比特(k*n)*C-1写入第一存储器地址为k*n-1的第一存储单元;
如此,将所述待交织数据写入k*n个依次排列的第一存储单元。
步骤102:将存储于各第一存储单元的待处理数据以第一存储单元为单位划分为一个以上的子数据块;
这里,可以将若干个第一存储单元划分为子数据块,后续处理以子数据块为单位处理。
进一步的,所述子数据块的大小为一个子载波所承载的数据比特数与所述第一预设数据长度之积;
可以将以单个子载波所承载的数据比特数n为单位,将n个第一存储单元划分为一个子数据块;如此R个第一存储单元可以分成k=R/n组,即分成k个子数据块,所述子数据块的大小为n*C;也可以理解为一个子数据块有C列,n行。
步骤103:按照第一读写规则分别读取各子数据块对应的各第一存储单元中的数据并写入第二存储器;
这里,所述第一读写规则根据可以包括:按各子数据块在第一存储器中的地址递增顺序,依次读取所述各子数据块;按第二预设读取顺序分别读取当前子数据块对应的各第一存储单元中相同存储位的第一位存储数据;将所述各第一存储单元中相同存储位的第一位存储数据,按各第一位存储数据各自所在所述第一存储单元顺序分别组成第一写入数据单元;
将各第一写入数据单元,按各自对应的第一预设写入地址写入第二存储器;
具体的,在实际应用中,可以将第一存储器中的数据先存储到寄存器中,再写入第二存储器;在如图2所示的第一存储器中,可以分别从第一存储器中地址i*n(i=0,1,2,…,k-1)处,连续读取n个地址的数据,分别缓存到位宽为C的寄存器reg(0),reg(1),…,reg(n-1)中,即把各子数据块顺序位次分别标为i(i=0,1,2,…,k-1),i=0时,将标号为0的子数据块中的各第一存储单元分别写入各寄存器中,如:
i=0时,读取地址0到地址n-1的n个C比特数据长度的第一存储单元单元,缓存到寄存器reg(0),reg(1),…,reg(n-1)中;
i=1时,读取地址n到地址2n-1的n个C比特数据长度的第一存储单元单元,缓存到寄存器reg(0),reg(1),…,reg(n-1)中;
…
i=k-1时,读取地址(k-1)*n到地址k*n-1的n个C比特数据长度的第一存储单元单元,缓存到寄存器reg(0),reg(1),…,reg(n-1)中;
各子数据块的数据写入寄存器后,按第二预设读取顺序分别读取当前子数据块各第一存储单元中相同存储位的第一位存储数据,即读取各第一存储单元对应寄存器中相同存储位的第一位存储数据;这里,所述第一位存储数据是指所述第一存储单元各个位中存储的数据,如一个第一存储单元中有C个第一位存储数据;将各第一存储单元中相同存储位的第一位存储数据,按各第一位存储数据各自所在所述第一存储单元顺序分别组成第一写入数据单元;将各第一写入数据单元,按各自对应的第一预设写入地址写入第二存储器;
这里,所述第二存储器可以是单独的存储器,也可以是OFDM系统中存储器中划分出的存储器。
更进一步的,计算当前第一写入数据单元中的第一位存储数据在第一存储单元的存储位次与第一预设数据长度之间的差值;计算所述差值与子数据块总数的乘积;将所述乘积与当前子数据块在第一存储器中的顺序位次相加之和,确定为当前所述第一写入数据单元对应的第一预设写入地址;
这里,根据上述子数据块和第一存储单元的设置;所述第一预设数据长度为C,第一存储单元的存储位次为1至C;所述将第一预设数据长度与当前所述第一写入数据单元中第一位存储数据在第一存储单元的存储位次之差,可以理解为如果当前处理的第一位存储数据在第一存储单元的存储位次为1,则所述差值为C-1,如果当前处理的第一位存储数据在第一存储单元的存储位次为C,则所述差值为0;所述子数据块总数为k;当前子数据块的顺序位次为当前处理的子数据块的顺序位次,即上述的i。
进一步的,按第二预设读取顺序分别读取当前子数据块对应的各第一存储单元中相同存储位的第一位存储数据,可以包括:按所述第一存储单元存储位由高到低、或由低到高的顺序读取各第一存储单元中相同存储位的第一位存储数据;
这里,所述由高到低顺序读取可以通过读取左移取最高位的方式实现,由低到高的序读取可以通过右移取最低位的方式实现;
具体的,实际操作中可以采用按左移或右移的方式,将各子数据块中各第一存储单元中的C个第一位存储数据都处理并输出;实际处理时可以设置当前处理的寄存器列数为j(1,2,3…C-1);
如按右移方式处理时:初始时,j为C-1;从寄存器reg(0),reg(1),…,reg(n-1)中分别取第一位存储数据,拼凑成一个n比特的第一写入数据单元;首先可以取最低位第一位存储数据,取完后j减1,左移再取最低位第一位存储数据,直到j=0,即取完所有C个第一位存储数据;所述写入第二存储器的第一预设写入地址为i+k*j的单元,即:
j=C-1时,寄存器reg(0),reg(1),…,reg(n-1)右移0位,取n个最低比特位,拼凑成一个第一写入数据单元,写入第二存储器中地址为i+k*(C-1)的单元;
j=C-2时,寄存器reg(0),reg(1),…,reg(n-1)右移1位,取n个最低比特位,拼凑成一个第一写入数据单元,写入第二存储器中地址为i+k*(C-2)的单元;
…
j=0时,寄存器reg(0),reg(1),…,reg(n-1)右移1位,取n个最低比特位,拼凑成一个第一写入数据单元,写入第二存储器中地址为i+k*0的单元;
实际处理过程中,还可以对第一存储单元的C比特数据是否处理完毕进行判定,其方法是:判断j与0是否相等,如果不相等,j减1,继续读取下一位的步骤;否则,表明第一存储单元的C比特数据已经处理完毕。
如按左移方式处理时,j初始时为0;从寄存器reg(0),reg(1),…,reg(n-1)中分别取第一位存储数据,拼凑成一个n比特的第一写入数据单元;首先可以取最高位第一位存储数据,取完后j加1,右移再取最高位第一位存储数据,直到j=C-1,即取完所有C个第一位存储数据;写入第二存储器地址为i+k*j的单元,即:
j=0时,寄存器reg(0),reg(1),…,reg(n-1)左移0位,取n个最高比特位,拼凑成一个第一写入数据单元,写入第二存储器中地址为i+k*0的单元;
j=1时,寄存器reg(0),reg(1),…,reg(n-1)左移1位,取n个最高比特位,拼凑成一个第一写入数据单元,写入第二存储器中地址为i+k*1的单元;
…
j=C-1时,寄存器reg(0),reg(1),…,reg(n-1)左移1位,取n个最高比特位,拼凑成一个第一写入数据单元,写入第二存储器中地址为i+k*(C-1)的单元;
实际处理过程中,还可以对第一存储单元的C比特数据是否处理完毕进行判定,其方法是:判断j与C-1是否相等,如果不相等,j加1,继续读取下一位的步骤;否则,表明第一存储单元的C比特数据已经处理完毕。
处理完一个子数据块后,还可以对是否已经处理完所有的子数据块进行判断,具体方法可以是:判断i与k-1是否相等,如果相等,交织操作结束;如果不相等,i加1,进入下一个子数据块的处理。
如此,完成了数据的写入。完成数据写入后,数据在第二存储器的存储情况如图3所示。
步骤104:将从所述第二存储器中按第一预设读取顺序依次读取的数据确定为所述待处理数据的处理结果;
这里,所述第一预设读取顺序可以根据所述第一读写规则进行设置,包括:将从所述第二存储器中按地址递增顺序依次读取的数据确定为所述待交织数据的交织结果;
如此,完成了整个待交织数据的交织步骤。
下面结合具体示例对本发明产生的积极效果作进一步详细的描述;
实际应用中,OFDM系统中实现数据交织的交织装置的结构示意图可以如图4所示,包括:第一存储器,交织控制器和第二存储器,其中,
第一存储器为输入存储器,位宽为C,深度为R=k*n;第二存储器为输出存储器,位宽为n,深度为k*C;所述交织控制器中包括:寄存器、移位器和数据拼凑器等;其中,寄存器,位宽为C,数目为n;移位器,对n个寄存器中的数据进行同步移位,每次移位1比特;数据拼凑器,用于控制数据的读取、暂存、移位、拼凑以及输出;
所述交织装置的具体工作步骤,如图5所示,包括:
步骤501:将m=R*C比特输入数据以C比特为单位,依次写入第一存储器的各第一存储单元中,其中R=k*n;R可以是第一存储单元个数,第一存储单元长度为C,k为整数;
步骤502:将输入数据分为k个子数据块,设置中间变量计数器i(i=0,1,2,…,k-1),i置0;所述子数据块可以看成C列,行;
步骤503从第一存储器地址为i*n处器读取n行数据,分别缓存至寄存器0~寄存器n-1;
步骤504:设置寄存器列数为j(j=0,1,2…,C-1);j置0采用左移方法/C-1采用右移方法读取寄存器;
步骤505,通过左移方法从寄存器0~寄存器n-1的最高位取相同位置的第一位存储数据,拼凑成一个n比特数;通过右移方法从寄存器0~寄存器n-1的最低位取相同位置的第一位存储数据,拼凑成一个n比特数;
步骤506:输出该n比特数到第二存储器地址为i+kj的单元;
步骤507:判断寄存器C列数据是否处理完毕,如果没有处理完则将j加1(左移方法)/j减1(右移方法),执行步骤505;否则,执行步骤508;
步骤508:判断各子数据块是否处理完毕,如果没有处理完毕,则i加1,执行步骤503,否则,结束处理。
实施例二;
本发明实施例提供的数据解交织方法,如图1所示,所述方法包括:
步骤101:将待处理数据依次写入第一存储器中包括的至少一个第一存储单元中,各第一存储单元的长度为第一预设数据长度;
这里,以数据解交织处理为例,对本发明实施例交织与解交织方法进行阐述,所述待处理数据为待解交织数据;所述待解交织数据可以是OFDM系统中接收端接收的通过本发明实施例完成交织处理的OFDM符号,可以由OFDM系统中的处理器等逻辑器件配合存储器进行解交织处理。可以一次对一个OFDM符号中承载数据进行解交织处理;这里,一个OFDM符号所能承载的总数据比特数为m,m等于一个OFDM符号的数据子载波数目NSD与一个子载波所承载的数据比特数n的乘积;
所述第一存储器可以是单独的存储器,也可以是OFDM系统中存储器中划分出的存储器;可以根据所述待解交织数据的比特数来确定所述第一存储单元的第一预设数据长度,即确定所述第一存储单元可以存储数据的比特数。可以在所述第一存储器中依次设置多个第一存储单元。
步骤102:将存储于各第一存储单元的待处理数据以第一存储单元为单位划分为一个以上的子数据块;
进一步的,所述子数据块大小为所述第一预设数据长度与所述待解交织数据进行交织处理时划分的子数据块数量之积;所述第一预设数据长度为所述子载波所承载的数据比特数;
这里,所述第一预设数据长度,可以是一个子载波所承载的数据比特数n;由本发明实施例中数据交织方法可知,采用k表示所述待解交织数据进行交织处理时划分的子数据块数量;如此,一个子数据块中有k个第一存储单元;可以理解为一个子数据块有n列,k行;如此,交织处理的一个OFDM符号中的总比特数为m=C*k*n,则进行解交织的数据共有C个子数据块,即第二数据块的个数和所述待解交织数据进行交织处理采用的第一预设数据长度值相等;
具体的,所述第一存储器,包含k*C个数据长度为n的第一存储单元;以一个进行解交织的OFDM符号为例,进行解交织的OFDM符号中包含1200个子载波,即NSD=1200,每个子载波所承载的数据比特数为32,即n=32;如果在交织过程中第一预设数据长度C为100,那么k=12;
将m比特所述待解交织数据以依次写入第一预设数据长度为n的k*C个第一存储单元中:
将m比特输入数据以n比特为单元,依次写入第一存储器中,即:
比特0到比特n-1写入第一存储器地址为0的第一存储单元;
比特n到比特2n-1写入第一存储器地址为1的第一存储单元;
…
比特(k-1)*n到比特k*n-1写入第一存储器地址为k-1的第一存储单元;
…
比特(k*C-1)*n到比特(k*C)*n-1写入第一存储器地址为k*C-1的第一存储单元;
待解交织数据在第一存储器中的排列情况如图7所示;
这里,可以将第一存储器k*C行数据以k行为一组分为C组,即依次将k个第一存储单元分为一个子数据块,共有C个子数据块。
步骤103:按照第一读写规则分别读取各子数据块对应的各第一存储单元中的数据并写入第二存储器;
这里,所述第一读写规则根据可以包括:分别读取在各自对应子数据块中位置相同的各第一存储单元中的数据;将所述读取的各相同位置第一存储单元中相同存储位的第二位存储数据,按各自所属子数据块在第二存储器中的顺序分别组成第二写入数据单元;将各第二写入数据单元,按各自对应的第二预设写入地址写入第二存储器;所述方法还包括:按第三预设读取顺序从各第一存储单元中读取第二位存储数据;
具体的,在实际操作中,可以将第一存储器中的数据先存储到寄存器中,再从寄存器写入第二存储器;可以设置临时变量i;i表示一个子数据块中各第一存储单元的地址,可以从第一存储器中地址i(i=0,1,2,…,k-1)处,以k为间隔读取C个地址的数据,分别缓存到位宽为n的寄存器reg(0),reg(1),…,reg(C-1)中,即取各子数据块中位置相同的第一存储单元内容分别存储到寄存器中,如:
i=0时,读取地址0,地址k,…,地址(C-1)*k的C个n比特数据长度的第二数据单元,缓存到寄存器reg(0),reg(1),…,reg(C-1)中;
i=1时,读取地址1,地址k+1,…,地址(C-1)*k+1的C个n比特数据长度的第二数据单元,缓存到寄存器reg(0),reg(1),…,reg(C-1)中;
…
i=k-1时,读取地址k-1,地址k-1+k,…,地址(C-1)*k+1+k的C个n比特数据长度的第二数据单元,缓存到寄存器reg(0),reg(1),…,reg(C-1)中;
数据写入寄存器后,将各相同位置第一存储单元中相同存储位的第二位存储数据,按各第二位存储数据各自所在所述第一存储单元顺序分别组成第二写入数据单元;例如:分别取出reg(0),reg(1),…,reg(C-1)中的第0位第二位存储数据组成一个第二写入数据单元;将这里,所述第二位存储数据是指所述第一存储单元各个位中存储的数据,如一个第一存储单元中有n个第二位存储数据;
这里,所述第二存储器可以是单独的存储器,也可以是OFDM系统中存储器中划分出的存储器。
进一步的,计算当前第一存储单元在对应的子数据块中的顺序位次与第二预设数据长度的乘积;计算当前第二写入数据单元中第二位存储数据在第一存储单元的存储位次与第二预设数据长度之间的差值;将所述乘积与所述差值之和确定为第二预设写入地址;
这里,根据上述子数据块和第一存储单元的设置;这里所述第一预设数据长度为n,第一存储单元在子数据块中的顺序位次为i(0,1,2,3…k);所述第一预设数据长度与当前所述第二写入数据单元中第二位存储数据在第一存储单元的存储位次之差,可以理解为:如果当前处理的第二位存储数据在第一存储单元的存储位次为1,则所述差值为n-1,如果当前处理的第二位存储数据在第一存储单元的存储位次为n,则所述差值为0;所述子数据块总数为C;。
进一步的,所述按第三预设读取顺序从各第一存储单元中读取第二位存储数据,包括:按所述第一存储单元存储位由高到低、或由低到高的顺序读取各第一存储单元中相同存储位的第二位存储数据;
这里,所述由高到低顺序读取可以通过读取左移取最高位的方式实现,由低到高的序读取可以通过右移取最低位的方式实现;
具体的,实际操作中可以采用按左移或右移的方式,将第一存储单元中的n个第二位存储数据都处理并且输出;实际处理时可以设置当前处理的寄存器列数为j(0,1,2…n-1);
如按右移方式处理时:初始时,j为n-1;从寄存器reg(0),reg(1),…,reg(C-1)中分别取第二位存储数据,拼凑成一个C比特的第一写入数据单元;首先可以去最低位第二位存储数据,取完后j减1,左移再取最低位第二位存储数据,直到j=0,即取完所有n位第二位存储数据;所述第二存储器的第二预设写入地址为i*n+j;其中,i为写入寄存的第一存储单元在子数据块中的顺序位次,如果当前操作的寄存器中的第一存储单元在子数据块中顺序位次为0,则i=0;
具体操作可以是:从寄存器reg(0),reg(1),…,reg(C-1)中分别取第j(j=n-1,n-2,n-3,…,0)比特,拼凑成一个C比特的第二写入数据单元,写入第二存储器地址为i*n+j的单元,即:
j=n-1时,寄存器reg(0),reg(1),…,reg(C-1)右移0位,取n个最低比特位,拼凑成一个第二写入数据单元,写入第二存储器中地址为i*n+n-1的单元;
j=n-2时,寄存器reg(0),reg(1),…,reg(C-1)右移1位,取n个最低比特位,拼凑成一个第二写入数据单元,写入第二存储器中地址为i*n+n-2的单元;
…
j=0时,寄存器reg(0),reg(1),…,reg(C-1)右移1位,取n个最低比特位,拼凑成一个第二写入数据单元,写入第二存储器中地址为i*n+0的单元;
实际处理过程中,还可以对第一存储单元的n比特数据是否处理完毕进行判定,其方法是:判断j与0是否相等,如果不相等,j减1,继续第一存储单元读取步骤;否则,表明第一存储单元的n比特数据已经处理完毕。
如按左移方式处理时:初始时,j为0;从寄存器reg(0),reg(1),…,reg(C-1)中分别取第二位存储数据,拼凑成一个C比特的第二写入数据单元;首先可以取最高位第二位存储数据,取完后j加1,左移再取最高位第二位存储数据,直到j=n-1,即取完所有n位第二位存储数据;所述第二存储器的第二预设写入地址为i*n+j;其中,i为写入寄存的第一存储单元在子数据块中的顺序位次;
从寄存器reg(0),reg(1),…,reg(C-1)中分别取第j(j=0,1,2,…,n-1)比特,拼凑成一个C比特第二写入数据单元,写入第二存储器中地址为i*n+j的单元,即:
j=0时,寄存器reg(0),reg(1),…,reg(C-1)左移0位,取C个最高比特位,拼凑成一个第二写入数据单元,写入第二存储器中地址为i*n+0的单元;
j=1时,寄存器reg(0),reg(1),…,reg(C-1)左移1位,取C个最高比特位,拼凑成一个第二写入数据单元,写入第二存储器中地址为i*n+1的单元;
…
j=n-1时,寄存器reg(0),reg(1),…,reg(C-1)左移1位,取C个高低比特位,拼凑成一个第二写入数据单元,写入第二存储器中地址为i*n+n-1的单元;
实际处理过程中,还可以对第一存储单元的n比特数据是否处理完毕进行判定,其方法是:判断j与n-1是否相等,如果不相等,j加1,继续读取步骤;否则,表明第一存储单元的n比特数据已经处理完毕。
处理完整组寄存器后,还可以对是否已经处理完所有顺序位次的第一存储单元进行判断,具体方法可以是:判断i与k-1是否相等,如果相等,交织操作结束;如果不相等,i加1,进入下一个顺序位次的第一存储单元的处理。;
如此,完成了数据的写入。完成数据写入后,数据在第二存储器的存储情况如图7所示。
步骤104:将从所述第二存储器中按第一预设读取顺序依次读取的数据确定为所述待处理数据的处理结果
这里,所述第一预设读取顺序可以根据所述第一读写规则进行设置,包括:将从所述第二存储器中按地址递增顺序依次读取的数据确定为所述待解交织数据的解交织结果;
如此,完成了整个待解交织数据的解交织步骤。
下面结合具体示例对本发明产生的积极效果作进一步详细的描述;
OFDM系统中实现数据解交织的解交织装置的结构示意图可以如图8所示,包括:第一存储器,解交织控制器和第二存储器,其中,
第一存储器作为输入存储器,位宽为n,深度为k*C;第二存储器作为输出存储器,位宽为C,深度为k*n;所述解交织控制器中包括:寄存器,移位器和数据拼凑器;其中,寄存器,位宽为n,数目为C;移位器,对n个寄存器中的数据进行同步移位,每次移位1比特;数据拼凑器,用于控制数据的读取、暂存、移位、拼凑以及输出;
所述解交织装置的具体工作步骤,如图9所示,包括:
步骤901:将m比特输入数据以n比特为单元,依次写入第一存储器中,其中m=R*C,R=k*n;k*C可以是第一存储单元个数,第一存储单元长度为n,k为整数;
步骤902:将输入数据分为C个子数据块,各子数据块中有k个第一存储单元;一个子数据块可以看成n列,k行;设置中间变量计数器i(i=0,1,2,…,k-1),i置0;
步骤903:从第一存储器地址为i处以k为间隔读取C行数据,分别缓存至寄存器0~寄存器C-1;
步骤904:设置寄存器列数为j(j=0,1,2…,C-1);j置0采用左移方法/C-1采用右移方法读取寄存器;
步骤905:通过左移方法从寄存器0~寄存器C-1的最高位取相同位置的第二位存储数据,拼凑成一个C比特数;通过右移方法从寄存器0~寄存器n-1的最低位取相同位置的第二位存储数据,拼凑成一个C比特数;
步骤906:输出该C比特数到第二存储器地址为i*n+j的单元;
步骤907:判断n列数据是否处理完毕,如果没有处理完则将j加1(左移方法)/j减1(右移方法),执行步骤905;否则,执行步骤908;
步骤908:判断各子数据块各第一存储单元是否处理完毕,如果没有处理完毕,则i加1,执行步骤903,否则,结束处理。
本发明实施例提供的数据交织与解交织装置,如图11所示,所述装置包括:第一读写模块1001、划分模块1002、第二读写模块1003和确定模块1004;其中,
所述所述第一读写模块1001,用于将待处理数据依次写入第一存储器中包括的至少一个第一存储单元中,各第一存储单元的长度为第一预设数据长度;
这里,以数据交织处理为例,对本发明实施例交织与解交织装置进行阐述,所述待处理数据为待交织数据;所述待交织数据可以是OFDM系统中发送端发送的OFDM符号,可以由OFDM系统中的处理器等逻辑器件配合存储器进行交织处理。可以一次对一个OFDM符号中承载数据进行交织处理并发送;这里,一个OFDM符号所能承载的总数据比特数为m,m等于一个OFDM符号的数据子载波数目NSD与一个子载波所承载的数据比特数n的乘积;
所述第一存储器可以是单独的存储器,也可以是OFDM系统中存储器中划分出的存储器;可以根据所述待交织数据的比特数来确定所述第一存储单元的第一预设数据长度,即确定所述第一存储单元可以存储数据的比特数。可以在所述第一存储器中依次设置多个第一存储单元。所述第一存储单元的个数可以为子载波所承载的数据比特数的整数倍;
具体的,可以设置所述第一预设数据长度为C,可以设置R个第一存储单元,可以设置R为n的整数倍,即R=k*n,k为整数;如此一个OFDM符号中的总比特数m=C*k*n;以一个OFDM符号中包含1200个子载波为例,即NSD=1200,每个子载波所承载的数据比特数为32,即n=32;那么,一个OFDM符号承载的数据比特数,即需要进行交织处理的数据比特数为NSD*n=1200*32;如设置所述第一预设数据长度为100,则需要R=12*32个第一存储单元存储所有数据;此时k=12;
如图2所示,将m比特所述待交织数据以依次写入第一预设数据长度为C的k*n个第一存储单元中,即:
比特0到比特C-1写入第一存储器地址为0的第一存储单元;
比特C到比特2C-1写入第一存储器地址为1的第一存储单元;
…
比特(n-1)*C到比特n*C-1写入第一存储器地址为n-1的第一存储单元;
…
比特(k*n-1)*C到比特(k*n)*C-1写入第一存储器地址为k*n-1的第一存储单元;
如此,将所述待交织数据写入k*n个依次排列的第一存储单元。
所述划分模块1002,用于将存储于各第一存储单元的待处理数据以第一存储单元为单位划分为一个以上的子数据块;
这里,可以将若干个第一存储单元划分为子数据块,后续处理以子数据块为单位处理。
进一步的,所述子数据块的大小为一个子载波所承载的数据比特数与所述第一预设数据长度之积;
可以将以单个子载波所承载的数据比特数n为单位,将n个第一存储单元划分为一个子数据块;如此R个第一存储单元可以分成k=R/n组,即分成k个子数据块,所述子数据块的大小为n*C;也可以理解为一个子数据块有C列,n行。
所述第二读写模块1003,用于按照第一读写规则分别读取各子数据块对应的各第一存储单元中的数据并写入第二存储器;
这里,所述第一读写规则根据可以包括:按各子数据块在第一存储器中的地址递增顺序,依次读取所述各子数据块;按第二预设读取顺序分别读取当前子数据块对应的各第一存储单元中相同存储位的第一位存储数据;将所述各第一存储单元中相同存储位的第一位存储数据,按各第一位存储数据各自所在所述第一存储单元顺序分别组成第一写入数据单元;
将各第一写入数据单元,按各自对应的第一预设写入地址写入第二存储器;
具体的,在实际应用中,可以将第一存储器中的数据先存储到寄存器中,再写入第二存储器;在如图2所示的第一存储器中,可以分别从第一存储器中地址i*n(i=0,1,2,…,k-1)处,连续读取n个地址的数据,分别缓存到位宽为C的寄存器reg(0),reg(1),…,reg(n-1)中,即把各子数据块顺序位次分别标为i(i=0,1,2,…,k-1),i=0时,将标号为0的子数据块中的各第一存储单元分别写入各寄存器中,如:
i=0时,读取地址0到地址n-1的n个C比特数据长度的第一存储单元单元,缓存到寄存器reg(0),reg(1),…,reg(n-1)中;
i=1时,读取地址n到地址2n-1的n个C比特数据长度的第一存储单元单元,缓存到寄存器reg(0),reg(1),…,reg(n-1)中;
…
i=k-1时,读取地址(k-1)*n到地址k*n-1的n个C比特数据长度的第一存储单元单元,缓存到寄存器reg(0),reg(1),…,reg(n-1)中;
各子数据块的数据写入寄存器后,按第二预设读取顺序分别读取当前子数据块各第一存储单元中相同存储位的第一位存储数据,即读取各第一存储单元对应寄存器中相同存储位的第一位存储数据;这里,所述第一位存储数据是指所述第一存储单元各个位中存储的数据,如一个第一存储单元中有C个第一位存储数据;将各第一存储单元中相同存储位的第一位存储数据,按各第一位存储数据各自所在所述第一存储单元顺序分别组成第一写入数据单元;将各第一写入数据单元,按各自对应的第一预设写入地址写入第二存储器;
这里,所述第二存储器可以是单独的存储器,也可以是OFDM系统中存储器中划分出的存储器。
更进一步的,计算当前第一写入数据单元中的第一位存储数据在第一存储单元的存储位次与第一预设数据长度之间的差值;计算所述差值与子数据块总数的乘积;将所述乘积与当前子数据块在第一存储器中的顺序位次相加之和,确定为当前所述第一写入数据单元对应的第一预设写入地址;
这里,根据上述子数据块和第一存储单元的设置;所述第一预设数据长度为C,第一存储单元的存储位次为1至C;所述将第一预设数据长度与当前所述第一写入数据单元中第一位存储数据在第一存储单元的存储位次之差,可以理解为如果当前处理的第一位存储数据在第一存储单元的存储位次为1,则所述差值为C-1,如果当前处理的第一位存储数据在第一存储单元的存储位次为C,则所述差值为0;所述子数据块总数为k;当前子数据块的顺序位次为当前处理的子数据块的顺序位次,即上述的i。
进一步的,按第二预设读取顺序分别读取当前子数据块对应的各第一存储单元中相同存储位的第一位存储数据,可以包括:按所述第一存储单元存储位由高到低、或由低到高的顺序读取各第一存储单元中相同存储位的第一位存储数据;
这里,所述由高到低顺序读取可以通过读取左移取最高位的方式实现,由低到高的序读取可以通过右移取最低位的方式实现;
具体的,实际操作中可以采用按左移或右移的方式,将各子数据块中各第一存储单元中的C个第一位存储数据都处理并输出;实际处理时可以设置当前处理的寄存器列数为j(1,2,3…C-1);
如按右移方式处理时:初始时,j为C-1;从寄存器reg(0),reg(1),…,reg(n-1)中分别取第一位存储数据,拼凑成一个n比特的第一写入数据单元;首先可以取最低位第一位存储数据,取完后j减1,左移再取最低位第一位存储数据,直到j=0,即取完所有C个第一位存储数据;所述写入第二存储器的第一预设写入地址为i+k*j的单元,即:
j=C-1时,寄存器reg(0),reg(1),…,reg(n-1)右移0位,取n个最低比特位,拼凑成一个第一写入数据单元,写入第二存储器中地址为i+k*(C-1)的单元;
j=C-2时,寄存器reg(0),reg(1),…,reg(n-1)右移1位,取n个最低比特位,拼凑成一个第一写入数据单元,写入第二存储器中地址为i+k*(C-2)的单元;
…
j=0时,寄存器reg(0),reg(1),…,reg(n-1)右移1位,取n个最低比特位,拼凑成一个第一写入数据单元,写入第二存储器中地址为i+k*0的单元;
实际处理过程中,还可以对第一存储单元的C比特数据是否处理完毕进行判定,其方法是:判断j与0是否相等,如果不相等,j减1,继续读取下一位的步骤;否则,表明第一存储单元的C比特数据已经处理完毕。
如按左移方式处理时,j初始时为0;从寄存器reg(0),reg(1),…,reg(n-1)中分别取第一位存储数据,拼凑成一个n比特的第一写入数据单元;首先可以取最高位第一位存储数据,取完后j加1,右移再取最高位第一位存储数据,直到j=C-1,即取完所有C个第一位存储数据;写入第二存储器地址为i+k*j的单元,即:
j=0时,寄存器reg(0),reg(1),…,reg(n-1)左移0位,取n个最高比特位,拼凑成一个第一写入数据单元,写入第二存储器中地址为i+k*0的单元;
j=1时,寄存器reg(0),reg(1),…,reg(n-1)左移1位,取n个最高比特位,拼凑成一个第一写入数据单元,写入第二存储器中地址为i+k*1的单元;
…
j=C-1时,寄存器reg(0),reg(1),…,reg(n-1)左移1位,取n个最高比特位,拼凑成一个第一写入数据单元,写入第二存储器中地址为i+k*(C-1)的单元;
实际处理过程中,还可以对第一存储单元的C比特数据是否处理完毕进行判定,其方法是:判断j与C-1是否相等,如果不相等,j加1,继续读取下一位的步骤;否则,表明第一存储单元的C比特数据已经处理完毕。
处理完一个子数据块后,还可以对是否已经处理完所有的子数据块进行判断,具体方法可以是:判断i与k-1是否相等,如果相等,交织操作结束;如果不相等,i加1,进入下一个子数据块的处理。
如此,完成了数据的写入。完成数据写入后,数据在第二存储器的存储情况如图3所示。
所述确定模块1004,用于将从所述第二存储器中按第一预设读取顺序依次读取的数据确定为所述待处理数据的处理结果;
这里,所述第一预设读取顺序可以根据所述第一读写规则进行设置,包括:将从所述第二存储器中按地址递增顺序依次读取的数据确定为所述待交织数据的交织结果;
如此,完成了整个待交织数据的交织步骤
在实际应用中,所述第一读写模块1001、划分模块1002、第二读写模块1003和确定模块1004均可以由ODFM系统中的中央处理器(CPU)、微处理器(MCU)、数字信号处理器(DSP)、或现场可编程门阵列(FPGA)等实现。
本发明实施例提供的数据解交织装置,如图12所示,所述装置包括:第一读写模块1001、划分模块1002、第二读写模块1003和确定模块1004;其中,
所述第一读写模块1001,用于将待处理数据依次写入第一存储器中包括的至少一个第一存储单元中,各第一存储单元的长度为第一预设数据长度;
这里,以数据解交织处理为例,对本发明实施例交织与解交织装置进行阐述,所述待处理数据为待解交织数据;所述待解交织数据可以是OFDM系统中接收端接收的通过本发明实施例完成交织处理的OFDM符号,可以由OFDM系统中的处理器等逻辑器件配合存储器进行解交织处理。可以一次对一个OFDM符号中承载数据进行解交织处理;这里,一个OFDM符号所能承载的总数据比特数为m,m等于一个OFDM符号的数据子载波数目NSD与一个子载波所承载的数据比特数n的乘积;
所述第一存储器可以是单独的存储器,也可以是OFDM系统中存储器中划分出的存储器;可以根据所述待解交织数据的比特数来确定所述第一存储单元的第一预设数据长度,即确定所述第一存储单元可以存储数据的比特数。可以在所述第一存储器中依次设置多个第一存储单元。
所述划分模块1002,用于将存储于各第一存储单元的待处理数据以第一存储单元为单位划分为一个以上的子数据块;
进一步的,所述子数据块大小为所述第一预设数据长度与所述待解交织数据进行交织处理时划分的子数据块数量之积;所述第一预设数据长度为所述子载波所承载的数据比特数;
这里,所述第一预设数据长度,可以是一个子载波所承载的数据比特数n;由本发明实施例中数据交织方法可知,采用k表示所述待解交织数据进行交织处理时划分的子数据块数量;如此,一个子数据块中有k个第一存储单元;可以理解为一个子数据块有n列,k行;如此,交织处理的一个OFDM符号中的总比特数为m=C*k*n,则进行解交织的数据共有C个子数据块,即第二数据块的个数和所述待解交织数据进行交织处理采用的第一预设数据长度值相等;
具体的,所述第一存储器,包含k*C个数据长度为n的第一存储单元;以一个进行解交织的OFDM符号为例,进行解交织的OFDM符号中包含1200个子载波,即NSD=1200,每个子载波所承载的数据比特数为32,即n=32;如果在交织过程中第一预设数据长度C为100,那么k=12;
将m比特所述待解交织数据以依次写入第一预设数据长度为n的k*C个第一存储单元中:
将m比特输入数据以n比特为单元,依次写入第一存储器中,即:
比特0到比特n-1写入第一存储器地址为0的第一存储单元;
比特n到比特2n-1写入第一存储器地址为1的第一存储单元;
…
比特(k-1)*n到比特k*n-1写入第一存储器地址为k-1的第一存储单元;
…
比特(k*C-1)*n到比特(k*C)*n-1写入第一存储器地址为k*C-1的第一存储单元;
待解交织数据在第一存储器中的排列情况如图7所示;
这里,可以将第一存储器k*C行数据以k行为一组分为C组,即依次将k个第一存储单元分为一个子数据块,共有C个子数据块。
所述第二读写模块1003,用于按照第一读写规则分别读取各子数据块对应的各第一存储单元中的数据并写入第二存储器;
这里,所述第一读写规则根据可以包括:分别读取在各自对应子数据块中位置相同的各第一存储单元中的数据;将所述读取的各相同位置第一存储单元中相同存储位的第二位存储数据,按各自所属子数据块在第二存储器中的顺序分别组成第二写入数据单元;将各第二写入数据单元,按各自对应的第二预设写入地址写入第二存储器;所述方法还包括:按第三预设读取顺序从各第一存储单元中读取第二位存储数据;
具体的,在实际操作中,可以将第一存储器中的数据先存储到寄存器中,再从寄存器写入第二存储器;可以设置临时变量i;i表示一个子数据块中各第一存储单元的地址,可以从第一存储器中地址i(i=0,1,2,…,k-1)处,以k为间隔读取C个地址的数据,分别缓存到位宽为n的寄存器reg(0),reg(1),…,reg(C-1)中,即取各子数据块中位置相同的第一存储单元内容分别存储到寄存器中,如:
i=0时,读取地址0,地址k,…,地址(C-1)*k的C个n比特数据长度的第二数据单元,缓存到寄存器reg(0),reg(1),…,reg(C-1)中;
i=1时,读取地址1,地址k+1,…,地址(C-1)*k+1的C个n比特数据长度的第二数据单元,缓存到寄存器reg(0),reg(1),…,reg(C-1)中;
…
i=k-1时,读取地址k-1,地址k-1+k,…,地址(C-1)*k+1+k的C个n比特数据长度的第二数据单元,缓存到寄存器reg(0),reg(1),…,reg(C-1)中;
数据写入寄存器后,将各相同位置第一存储单元中相同存储位的第二位存储数据,按各第二位存储数据各自所在所述第一存储单元顺序分别组成第二写入数据单元;例如:分别取出reg(0),reg(1),…,reg(C-1)中的第0位第二位存储数据组成一个第二写入数据单元;将这里,所述第二位存储数据是指所述第一存储单元各个位中存储的数据,如一个第一存储单元中有n个第二位存储数据;
这里,所述第二存储器可以是单独的存储器,也可以是OFDM系统中存储器中划分出的存储器。
进一步的,计算当前第一存储单元在对应的子数据块中的顺序位次与第二预设数据长度的乘积;计算当前第二写入数据单元中第二位存储数据在第一存储单元的存储位次与第二预设数据长度之间的差值;将所述乘积与所述差值之和确定为第二预设写入地址;
这里,根据上述子数据块和第一存储单元的设置;这里所述第一预设数据长度为n,第一存储单元在子数据块中的顺序位次为i(0,1,2,3…k);所述第一预设数据长度与当前所述第二写入数据单元中第二位存储数据在第一存储单元的存储位次之差,可以理解为:如果当前处理的第二位存储数据在第一存储单元的存储位次为1,则所述差值为n-1,如果当前处理的第二位存储数据在第一存储单元的存储位次为n,则所述差值为0;所述子数据块总数为C;。
进一步的,所述按第三预设读取顺序从各第一存储单元中读取第二位存储数据,包括:按所述第一存储单元存储位由高到低、或由低到高的顺序读取各第一存储单元中相同存储位的第二位存储数据;
这里,所述由高到低顺序读取可以通过读取左移取最高位的方式实现,由低到高的序读取可以通过右移取最低位的方式实现;
具体的,实际操作中可以采用按左移或右移的方式,将第一存储单元中的n个第二位存储数据都处理并且输出;实际处理时可以设置当前处理的寄存器列数为j(0,1,2…n-1);
如按右移方式处理时:初始时,j为n-1;从寄存器reg(0),reg(1),…,reg(C-1)中分别取第二位存储数据,拼凑成一个C比特的第一写入数据单元;首先可以去最低位第二位存储数据,取完后j减1,左移再取最低位第二位存储数据,直到j=0,即取完所有n位第二位存储数据;所述第二存储器的第二预设写入地址为i*n+j;其中,i为写入寄存的第一存储单元在子数据块中的顺序位次,如果当前操作的寄存器中的第一存储单元在子数据块中顺序位次为0,则i=0;
具体操作可以是:从寄存器reg(0),reg(1),…,reg(C-1)中分别取第j(j=n-1,n-2,n-3,…,0)比特,拼凑成一个C比特的第二写入数据单元,写入第二存储器地址为i*n+j的单元,即:
j=n-1时,寄存器reg(0),reg(1),…,reg(C-1)右移0位,取n个最低比特位,拼凑成一个第二写入数据单元,写入第二存储器中地址为i*n+n-1的单元;
j=n-2时,寄存器reg(0),reg(1),…,reg(C-1)右移1位,取n个最低比特位,拼凑成一个第二写入数据单元,写入第二存储器中地址为i*n+n-2的单元;
…
j=0时,寄存器reg(0),reg(1),…,reg(C-1)右移1位,取n个最低比特位,拼凑成一个第二写入数据单元,写入第二存储器中地址为i*n+0的单元;
实际处理过程中,还可以对第一存储单元的n比特数据是否处理完毕进行判定,其方法是:判断j与0是否相等,如果不相等,j减1,继续第一存储单元读取步骤;否则,表明第一存储单元的n比特数据已经处理完毕。
如按左移方式处理时:初始时,j为0;从寄存器reg(0),reg(1),…,reg(C-1)中分别取第二位存储数据,拼凑成一个C比特的第二写入数据单元;首先可以取最高位第二位存储数据,取完后j加1,左移再取最高位第二位存储数据,直到j=n-1,即取完所有n位第二位存储数据;所述第二存储器的第二预设写入地址为i*n+j;其中,i为写入寄存的第一存储单元在子数据块中的顺序位次;
从寄存器reg(0),reg(1),…,reg(C-1)中分别取第j(j=0,1,2,…,n-1)比特,拼凑成一个C比特第二写入数据单元,写入第二存储器中地址为i*n+j的单元,即:
j=0时,寄存器reg(0),reg(1),…,reg(C-1)左移0位,取C个最高比特位,拼凑成一个第二写入数据单元,写入第二存储器中地址为i*n+0的单元;
j=1时,寄存器reg(0),reg(1),…,reg(C-1)左移1位,取C个最高比特位,拼凑成一个第二写入数据单元,写入第二存储器中地址为i*n+1的单元;
…
j=n-1时,寄存器reg(0),reg(1),…,reg(C-1)左移1位,取C个高低比特位,拼凑成一个第二写入数据单元,写入第二存储器中地址为i*n+n-1的单元;
实际处理过程中,还可以对第一存储单元的n比特数据是否处理完毕进行判定,其方法是:判断j与n-1是否相等,如果不相等,j加1,继续读取步骤;否则,表明第一存储单元的n比特数据已经处理完毕。
处理完整组寄存器后,还可以对是否已经处理完所有顺序位次的第一存储单元进行判断,具体方法可以是:判断i与k-1是否相等,如果相等,交织操作结束;如果不相等,i加1,进入下一个顺序位次的第一存储单元的处理。;
如此,完成了数据的写入。完成数据写入后,数据在第二存储器的存储情况如图7所示。
所述确定模块1004,用于将从所述第二存储器中按第一预设读取顺序依次读取的数据确定为所述待处理数据的处理结果
这里,所述第一预设读取顺序可以根据所述第一读写规则进行设置,包括:将从所述第二存储器中按地址递增顺序依次读取的数据确定为所述待解交织数据的解交织结果;
如此,完成了整个待解交织数据的解交织步骤。
在实际应用中,所述第一读写模块1001、划分模块1002、第二读写模块1003和确定模块1004均可以由ODFM系统中的CPU、MCU、DSP、FPGA等实现
本发明实施例提供的存储介质,其上存储由可执行程序,所述可执行程序被处理器执行时实现数据交织与解交织方法,其中,交织方法如图1所示,所述方法包括:
步骤101:将待处理数据依次写入第一存储器中包括的至少一个第一存储单元中,各第一存储单元的长度为第一预设数据长度;
这里,以数据交织处理为例,对本发明实施例交织与解交织方法进行阐述,所述待处理数据为待交织数据;所述待交织数据可以是OFDM系统中发送端发送的OFDM符号,可以由OFDM系统中的处理器等逻辑器件配合存储器进行交织处理。可以一次对一个OFDM符号中承载数据进行交织处理并发送;这里,一个OFDM符号所能承载的总数据比特数为m,m等于一个OFDM符号的数据子载波数目NSD与一个子载波所承载的数据比特数n的乘积;
所述第一存储器可以是单独的存储器,也可以是OFDM系统中存储器中划分出的存储器;可以根据所述待交织数据的比特数来确定所述第一存储单元的第一预设数据长度,即确定所述第一存储单元可以存储数据的比特数。可以在所述第一存储器中依次设置多个第一存储单元。所述第一存储单元的个数可以为子载波所承载的数据比特数的整数倍;
具体的,可以设置所述第一预设数据长度为C,可以设置R个第一存储单元,可以设置R为n的整数倍,即R=k*n,k为整数;如此一个OFDM符号中的总比特数m=C*k*n;以一个OFDM符号中包含1200个子载波为例,即NSD=1200,每个子载波所承载的数据比特数为32,即n=32;那么,一个OFDM符号承载的数据比特数,即需要进行交织处理的数据比特数为NSD*n=1200*32;如设置所述第一预设数据长度为100,则需要R=12*32个第一存储单元存储所有数据;此时k=12;
如图2所示,将m比特所述待交织数据以依次写入第一预设数据长度为C的k*n个第一存储单元中,即:
比特0到比特C-1写入第一存储器地址为0的第一存储单元;
比特C到比特2C-1写入第一存储器地址为1的第一存储单元;
…
比特(n-1)*C到比特n*C-1写入第一存储器地址为n-1的第一存储单元;
…
比特(k*n-1)*C到比特(k*n)*C-1写入第一存储器地址为k*n-1的第一存储单元;
如此,将所述待交织数据写入k*n个依次排列的第一存储单元。
步骤102:将存储于各第一存储单元的待处理数据以第一存储单元为单位划分为一个以上的子数据块;
这里,可以将若干个第一存储单元划分为子数据块,后续处理以子数据块为单位处理。
进一步的,所述子数据块的大小为一个子载波所承载的数据比特数与所述第一预设数据长度之积;
可以将以单个子载波所承载的数据比特数n为单位,将n个第一存储单元划分为一个子数据块;如此R个第一存储单元可以分成k=R/n组,即分成k个子数据块,所述子数据块的大小为n*C;也可以理解为一个子数据块有C列,n行。
步骤103:按照第一读写规则分别读取各子数据块对应的各第一存储单元中的数据并写入第二存储器;
这里,所述第一读写规则根据可以包括:按各子数据块在第一存储器中的地址递增顺序,依次读取所述各子数据块;按第二预设读取顺序分别读取当前子数据块对应的各第一存储单元中相同存储位的第一位存储数据;将所述各第一存储单元中相同存储位的第一位存储数据,按各第一位存储数据各自所在所述第一存储单元顺序分别组成第一写入数据单元;
将各第一写入数据单元,按各自对应的第一预设写入地址写入第二存储器;
具体的,在实际应用中,可以将第一存储器中的数据先存储到寄存器中,再写入第二存储器;在如图2所示的第一存储器中,可以分别从第一存储器中地址i*n(i=0,1,2,…,k-1)处,连续读取n个地址的数据,分别缓存到位宽为C的寄存器reg(0),reg(1),…,reg(n-1)中,即把各子数据块顺序位次分别标为i(i=0,1,2,…,k-1),i=0时,将标号为0的子数据块中的各第一存储单元分别写入各寄存器中,如:
i=0时,读取地址0到地址n-1的n个C比特数据长度的第一存储单元单元,缓存到寄存器reg(0),reg(1),…,reg(n-1)中;
i=1时,读取地址n到地址2n-1的n个C比特数据长度的第一存储单元单元,缓存到寄存器reg(0),reg(1),…,reg(n-1)中;
…
i=k-1时,读取地址(k-1)*n到地址k*n-1的n个C比特数据长度的第一存储单元单元,缓存到寄存器reg(0),reg(1),…,reg(n-1)中;
各子数据块的数据写入寄存器后,按第二预设读取顺序分别读取当前子数据块各第一存储单元中相同存储位的第一位存储数据,即读取各第一存储单元对应寄存器中相同存储位的第一位存储数据;这里,所述第一位存储数据是指所述第一存储单元各个位中存储的数据,如一个第一存储单元中有C个第一位存储数据;将各第一存储单元中相同存储位的第一位存储数据,按各第一位存储数据各自所在所述第一存储单元顺序分别组成第一写入数据单元;将各第一写入数据单元,按各自对应的第一预设写入地址写入第二存储器;
这里,所述第二存储器可以是单独的存储器,也可以是OFDM系统中存储器中划分出的存储器。
更进一步的,计算当前第一写入数据单元中的第一位存储数据在第一存储单元的存储位次与第一预设数据长度之间的差值;计算所述差值与子数据块总数的乘积;将所述乘积与当前子数据块在第一存储器中的顺序位次相加之和,确定为当前所述第一写入数据单元对应的第一预设写入地址;
这里,根据上述子数据块和第一存储单元的设置;所述第一预设数据长度为C,第一存储单元的存储位次为1至C;所述将第一预设数据长度与当前所述第一写入数据单元中第一位存储数据在第一存储单元的存储位次之差,可以理解为如果当前处理的第一位存储数据在第一存储单元的存储位次为1,则所述差值为C-1,如果当前处理的第一位存储数据在第一存储单元的存储位次为C,则所述差值为0;所述子数据块总数为k;当前子数据块的顺序位次为当前处理的子数据块的顺序位次,即上述的i。
进一步的,按第二预设读取顺序分别读取当前子数据块对应的各第一存储单元中相同存储位的第一位存储数据,可以包括:按所述第一存储单元存储位由高到低、或由低到高的顺序读取各第一存储单元中相同存储位的第一位存储数据;
这里,所述由高到低顺序读取可以通过读取左移取最高位的方式实现,由低到高的序读取可以通过右移取最低位的方式实现;
具体的,实际操作中可以采用按左移或右移的方式,将各子数据块中各第一存储单元中的C个第一位存储数据都处理并输出;实际处理时可以设置当前处理的寄存器列数为j(1,2,3…C-1);
如按右移方式处理时:初始时,j为C-1;从寄存器reg(0),reg(1),…,reg(n-1)中分别取第一位存储数据,拼凑成一个n比特的第一写入数据单元;首先可以取最低位第一位存储数据,取完后j减1,左移再取最低位第一位存储数据,直到j=0,即取完所有C个第一位存储数据;所述写入第二存储器的第一预设写入地址为i+k*j的单元,即:
j=C-1时,寄存器reg(0),reg(1),…,reg(n-1)右移0位,取n个最低比特位,拼凑成一个第一写入数据单元,写入第二存储器中地址为i+k*(C-1)的单元;
j=C-2时,寄存器reg(0),reg(1),…,reg(n-1)右移1位,取n个最低比特位,拼凑成一个第一写入数据单元,写入第二存储器中地址为i+k*(C-2)的单元;
…
j=0时,寄存器reg(0),reg(1),…,reg(n-1)右移1位,取n个最低比特位,拼凑成一个第一写入数据单元,写入第二存储器中地址为i+k*0的单元;
实际处理过程中,还可以对第一存储单元的C比特数据是否处理完毕进行判定,其方法是:判断j与0是否相等,如果不相等,j减1,继续读取下一位的步骤;否则,表明第一存储单元的C比特数据已经处理完毕。
如按左移方式处理时,j初始时为0;从寄存器reg(0),reg(1),…,reg(n-1)中分别取第一位存储数据,拼凑成一个n比特的第一写入数据单元;首先可以取最高位第一位存储数据,取完后j加1,右移再取最高位第一位存储数据,直到j=C-1,即取完所有C个第一位存储数据;写入第二存储器地址为i+k*j的单元,即:
j=0时,寄存器reg(0),reg(1),…,reg(n-1)左移0位,取n个最高比特位,拼凑成一个第一写入数据单元,写入第二存储器中地址为i+k*0的单元;
j=1时,寄存器reg(0),reg(1),…,reg(n-1)左移1位,取n个最高比特位,拼凑成一个第一写入数据单元,写入第二存储器中地址为i+k*1的单元;
…
j=C-1时,寄存器reg(0),reg(1),…,reg(n-1)左移1位,取n个最高比特位,拼凑成一个第一写入数据单元,写入第二存储器中地址为i+k*(C-1)的单元;
实际处理过程中,还可以对第一存储单元的C比特数据是否处理完毕进行判定,其方法是:判断j与C-1是否相等,如果不相等,j加1,继续读取下一位的步骤;否则,表明第一存储单元的C比特数据已经处理完毕。
处理完一个子数据块后,还可以对是否已经处理完所有的子数据块进行判断,具体方法可以是:判断i与k-1是否相等,如果相等,交织操作结束;如果不相等,i加1,进入下一个子数据块的处理。
如此,完成了数据的写入。完成数据写入后,数据在第二存储器的存储情况如图3所示。
步骤104:将从所述第二存储器中按第一预设读取顺序依次读取的数据确定为所述待处理数据的处理结果;
这里,所述第一预设读取顺序可以根据所述第一读写规则进行设置,包括:将从所述第二存储器中按地址递增顺序依次读取的数据确定为所述待交织数据的交织结果;
如此,完成了整个待交织数据的交织步骤。
所述可执行程序被处理器执行时实现数据交织与解交织方法,其中,解交织方法如图1所示,所述方法包括:
步骤101:将待处理数据依次写入第一存储器中包括的至少一个第一存储单元中,各第一存储单元的长度为第一预设数据长度;
这里,以数据解交织处理为例,对本发明实施例交织与解交织方法进行阐述,所述待处理数据为待解交织数据;所述待解交织数据可以是OFDM系统中接收端接收的通过本发明实施例完成交织处理的OFDM符号,可以由OFDM系统中的处理器等逻辑器件配合存储器进行解交织处理。可以一次对一个OFDM符号中承载数据进行解交织处理;这里,一个OFDM符号所能承载的总数据比特数为m,m等于一个OFDM符号的数据子载波数目NSD与一个子载波所承载的数据比特数n的乘积;
所述第一存储器可以是单独的存储器,也可以是OFDM系统中存储器中划分出的存储器;可以根据所述待解交织数据的比特数来确定所述第一存储单元的第一预设数据长度,即确定所述第一存储单元可以存储数据的比特数。可以在所述第一存储器中依次设置多个第一存储单元。
步骤102:将存储于各第一存储单元的待处理数据以第一存储单元为单位划分为一个以上的子数据块;
进一步的,所述子数据块大小为所述第一预设数据长度与所述待解交织数据进行交织处理时划分的子数据块数量之积;所述第一预设数据长度为所述子载波所承载的数据比特数;
这里,所述第一预设数据长度,可以是一个子载波所承载的数据比特数n;由本发明实施例中数据交织方法可知,采用k表示所述待解交织数据进行交织处理时划分的子数据块数量;如此,一个子数据块中有k个第一存储单元;可以理解为一个子数据块有n列,k行;如此,交织处理的一个OFDM符号中的总比特数为m=C*k*n,则进行解交织的数据共有C个子数据块,即第二数据块的个数和所述待解交织数据进行交织处理采用的第一预设数据长度值相等;
具体的,所述第一存储器,包含k*C个数据长度为n的第一存储单元;以一个进行解交织的OFDM符号为例,进行解交织的OFDM符号中包含1200个子载波,即NSD=1200,每个子载波所承载的数据比特数为32,即n=32;如果在交织过程中第一预设数据长度C为100,那么k=12;
将m比特所述待解交织数据以依次写入第一预设数据长度为n的k*C个第一存储单元中:
将m比特输入数据以n比特为单元,依次写入第一存储器中,即:
比特0到比特n-1写入第一存储器地址为0的第一存储单元;
比特n到比特2n-1写入第一存储器地址为1的第一存储单元;
…
比特(k-1)*n到比特k*n-1写入第一存储器地址为k-1的第一存储单元;
…
比特(k*C-1)*n到比特(k*C)*n-1写入第一存储器地址为k*C-1的第一存储单元;
待解交织数据在第一存储器中的排列情况如图7所示;
这里,可以将第一存储器k*C行数据以k行为一组分为C组,即依次将k个第一存储单元分为一个子数据块,共有C个子数据块。
步骤103:按照第一读写规则分别读取各子数据块对应的各第一存储单元中的数据并写入第二存储器;
这里,所述第一读写规则根据可以包括:分别读取在各自对应子数据块中位置相同的各第一存储单元中的数据;将所述读取的各相同位置第一存储单元中相同存储位的第二位存储数据,按各自所属子数据块在第二存储器中的顺序分别组成第二写入数据单元;将各第二写入数据单元,按各自对应的第二预设写入地址写入第二存储器;所述方法还包括:按第三预设读取顺序从各第一存储单元中读取第二位存储数据;
具体的,在实际操作中,可以将第一存储器中的数据先存储到寄存器中,再从寄存器写入第二存储器;可以设置临时变量i;i表示一个子数据块中各第一存储单元的地址,可以从第一存储器中地址i(i=0,1,2,…,k-1)处,以k为间隔读取C个地址的数据,分别缓存到位宽为n的寄存器reg(0),reg(1),…,reg(C-1)中,即取各子数据块中位置相同的第一存储单元内容分别存储到寄存器中,如:
i=0时,读取地址0,地址k,…,地址(C-1)*k的C个n比特数据长度的第二数据单元,缓存到寄存器reg(0),reg(1),…,reg(C-1)中;
i=1时,读取地址1,地址k+1,…,地址(C-1)*k+1的C个n比特数据长度的第二数据单元,缓存到寄存器reg(0),reg(1),…,reg(C-1)中;
…
i=k-1时,读取地址k-1,地址k-1+k,…,地址(C-1)*k+1+k的C个n比特数据长度的第二数据单元,缓存到寄存器reg(0),reg(1),…,reg(C-1)中;
数据写入寄存器后,将各相同位置第一存储单元中相同存储位的第二位存储数据,按各第二位存储数据各自所在所述第一存储单元顺序分别组成第二写入数据单元;例如:分别取出reg(0),reg(1),…,reg(C-1)中的第0位第二位存储数据组成一个第二写入数据单元;将这里,所述第二位存储数据是指所述第一存储单元各个位中存储的数据,如一个第一存储单元中有n个第二位存储数据;
这里,所述第二存储器可以是单独的存储器,也可以是OFDM系统中存储器中划分出的存储器。
进一步的,计算当前第一存储单元在对应的子数据块中的顺序位次与第二预设数据长度的乘积;计算当前第二写入数据单元中第二位存储数据在第一存储单元的存储位次与第二预设数据长度之间的差值;将所述乘积与所述差值之和确定为第二预设写入地址;
这里,根据上述子数据块和第一存储单元的设置;这里所述第一预设数据长度为n,第一存储单元在子数据块中的顺序位次为i(0,1,2,3…k);所述第一预设数据长度与当前所述第二写入数据单元中第二位存储数据在第一存储单元的存储位次之差,可以理解为:如果当前处理的第二位存储数据在第一存储单元的存储位次为1,则所述差值为n-1,如果当前处理的第二位存储数据在第一存储单元的存储位次为n,则所述差值为0;所述子数据块总数为C;。
进一步的,所述按第三预设读取顺序从各第一存储单元中读取第二位存储数据,包括:按所述第一存储单元存储位由高到低、或由低到高的顺序读取各第一存储单元中相同存储位的第二位存储数据;
这里,所述由高到低顺序读取可以通过读取左移取最高位的方式实现,由低到高的序读取可以通过右移取最低位的方式实现;
具体的,实际操作中可以采用按左移或右移的方式,将第一存储单元中的n个第二位存储数据都处理并且输出;实际处理时可以设置当前处理的寄存器列数为j(0,1,2…n-1);
如按右移方式处理时:初始时,j为n-1;从寄存器reg(0),reg(1),…,reg(C-1)中分别取第二位存储数据,拼凑成一个C比特的第一写入数据单元;首先可以去最低位第二位存储数据,取完后j减1,左移再取最低位第二位存储数据,直到j=0,即取完所有n位第二位存储数据;所述第二存储器的第二预设写入地址为i*n+j;其中,i为写入寄存的第一存储单元在子数据块中的顺序位次,如果当前操作的寄存器中的第一存储单元在子数据块中顺序位次为0,则i=0;
具体操作可以是:从寄存器reg(0),reg(1),…,reg(C-1)中分别取第j(j=n-1,n-2,n-3,…,0)比特,拼凑成一个C比特的第二写入数据单元,写入第二存储器地址为i*n+j的单元,即:
j=n-1时,寄存器reg(0),reg(1),…,reg(C-1)右移0位,取n个最低比特位,拼凑成一个第二写入数据单元,写入第二存储器中地址为i*n+n-1的单元;
j=n-2时,寄存器reg(0),reg(1),…,reg(C-1)右移1位,取n个最低比特位,拼凑成一个第二写入数据单元,写入第二存储器中地址为i*n+n-2的单元;
…
j=0时,寄存器reg(0),reg(1),…,reg(C-1)右移1位,取n个最低比特位,拼凑成一个第二写入数据单元,写入第二存储器中地址为i*n+0的单元;
实际处理过程中,还可以对第一存储单元的n比特数据是否处理完毕进行判定,其方法是:判断j与0是否相等,如果不相等,j减1,继续第一存储单元读取步骤;否则,表明第一存储单元的n比特数据已经处理完毕。
如按左移方式处理时:初始时,j为0;从寄存器reg(0),reg(1),…,reg(C-1)中分别取第二位存储数据,拼凑成一个C比特的第二写入数据单元;首先可以取最高位第二位存储数据,取完后j加1,左移再取最高位第二位存储数据,直到j=n-1,即取完所有n位第二位存储数据;所述第二存储器的第二预设写入地址为i*n+j;其中,i为写入寄存的第一存储单元在子数据块中的顺序位次;
从寄存器reg(0),reg(1),…,reg(C-1)中分别取第j(j=0,1,2,…,n-1)比特,拼凑成一个C比特第二写入数据单元,写入第二存储器中地址为i*n+j的单元,即:
j=0时,寄存器reg(0),reg(1),…,reg(C-1)左移0位,取C个最高比特位,拼凑成一个第二写入数据单元,写入第二存储器中地址为i*n+0的单元;
j=1时,寄存器reg(0),reg(1),…,reg(C-1)左移1位,取C个最高比特位,拼凑成一个第二写入数据单元,写入第二存储器中地址为i*n+1的单元;
…
j=n-1时,寄存器reg(0),reg(1),…,reg(C-1)左移1位,取C个高低比特位,拼凑成一个第二写入数据单元,写入第二存储器中地址为i*n+n-1的单元;
实际处理过程中,还可以对第一存储单元的n比特数据是否处理完毕进行判定,其方法是:判断j与n-1是否相等,如果不相等,j加1,继续读取步骤;否则,表明第一存储单元的n比特数据已经处理完毕。
处理完整组寄存器后,还可以对是否已经处理完所有顺序位次的第一存储单元进行判断,具体方法可以是:判断i与k-1是否相等,如果相等,交织操作结束;如果不相等,i加1,进入下一个顺序位次的第一存储单元的处理。;
如此,完成了数据的写入。完成数据写入后,数据在第二存储器的存储情况如图7所示。
步骤104:将从所述第二存储器中按第一预设读取顺序依次读取的数据确定为所述待处理数据的处理结果
这里,所述第一预设读取顺序可以根据所述第一读写规则进行设置,包括:将从所述第二存储器中按地址递增顺序依次读取的数据确定为所述待解交织数据的解交织结果;
如此,完成了整个待解交织数据的解交织步骤。
本发明实施例提供的信息处理装置,包括处理器、存储器及存储在存储器上并能够有所述处理器运行的可执行程序,所述处理器运行所述可执行程序时执行实现数据交织与解交织方法,其中,所述交织方法如图1所示,所述方法包括:
步骤101:将待处理数据依次写入第一存储器中包括的至少一个第一存储单元中,各第一存储单元的长度为第一预设数据长度;
这里,以数据交织处理为例,对本发明实施例交织与解交织方法进行阐述,所述待处理数据为待交织数据;所述待交织数据可以是OFDM系统中发送端发送的OFDM符号,可以由OFDM系统中的处理器等逻辑器件配合存储器进行交织处理。可以一次对一个OFDM符号中承载数据进行交织处理并发送;这里,一个OFDM符号所能承载的总数据比特数为m,m等于一个OFDM符号的数据子载波数目NSD与一个子载波所承载的数据比特数n的乘积;
所述第一存储器可以是单独的存储器,也可以是OFDM系统中存储器中划分出的存储器;可以根据所述待交织数据的比特数来确定所述第一存储单元的第一预设数据长度,即确定所述第一存储单元可以存储数据的比特数。可以在所述第一存储器中依次设置多个第一存储单元。所述第一存储单元的个数可以为子载波所承载的数据比特数的整数倍;
具体的,可以设置所述第一预设数据长度为C,可以设置R个第一存储单元,可以设置R为n的整数倍,即R=k*n,k为整数;如此一个OFDM符号中的总比特数m=C*k*n;以一个OFDM符号中包含1200个子载波为例,即NSD=1200,每个子载波所承载的数据比特数为32,即n=32;那么,一个OFDM符号承载的数据比特数,即需要进行交织处理的数据比特数为NSD*n=1200*32;如设置所述第一预设数据长度为100,则需要R=12*32个第一存储单元存储所有数据;此时k=12;
如图2所示,将m比特所述待交织数据以依次写入第一预设数据长度为C的k*n个第一存储单元中,即:
比特0到比特C-1写入第一存储器地址为0的第一存储单元;
比特C到比特2C-1写入第一存储器地址为1的第一存储单元;
…
比特(n-1)*C到比特n*C-1写入第一存储器地址为n-1的第一存储单元;
…
比特(k*n-1)*C到比特(k*n)*C-1写入第一存储器地址为k*n-1的第一存储单元;
如此,将所述待交织数据写入k*n个依次排列的第一存储单元。
步骤102:将存储于各第一存储单元的待处理数据以第一存储单元为单位划分为一个以上的子数据块;
这里,可以将若干个第一存储单元划分为子数据块,后续处理以子数据块为单位处理。
进一步的,所述子数据块的大小为一个子载波所承载的数据比特数与所述第一预设数据长度之积;
可以将以单个子载波所承载的数据比特数n为单位,将n个第一存储单元划分为一个子数据块;如此R个第一存储单元可以分成k=R/n组,即分成k个子数据块,所述子数据块的大小为n*C;也可以理解为一个子数据块有C列,n行。
步骤103:按照第一读写规则分别读取各子数据块对应的各第一存储单元中的数据并写入第二存储器;
这里,所述第一读写规则根据可以包括:按各子数据块在第一存储器中的地址递增顺序,依次读取所述各子数据块;按第二预设读取顺序分别读取当前子数据块对应的各第一存储单元中相同存储位的第一位存储数据;将所述各第一存储单元中相同存储位的第一位存储数据,按各第一位存储数据各自所在所述第一存储单元顺序分别组成第一写入数据单元;
将各第一写入数据单元,按各自对应的第一预设写入地址写入第二存储器;
具体的,在实际应用中,可以将第一存储器中的数据先存储到寄存器中,再写入第二存储器;在如图2所示的第一存储器中,可以分别从第一存储器中地址i*n(i=0,1,2,…,k-1)处,连续读取n个地址的数据,分别缓存到位宽为C的寄存器reg(0),reg(1),…,reg(n-1)中,即把各子数据块顺序位次分别标为i(i=0,1,2,…,k-1),i=0时,将标号为0的子数据块中的各第一存储单元分别写入各寄存器中,如:
i=0时,读取地址0到地址n-1的n个C比特数据长度的第一存储单元单元,缓存到寄存器reg(0),reg(1),…,reg(n-1)中;
i=1时,读取地址n到地址2n-1的n个C比特数据长度的第一存储单元单元,缓存到寄存器reg(0),reg(1),…,reg(n-1)中;
…
i=k-1时,读取地址(k-1)*n到地址k*n-1的n个C比特数据长度的第一存储单元单元,缓存到寄存器reg(0),reg(1),…,reg(n-1)中;
各子数据块的数据写入寄存器后,按第二预设读取顺序分别读取当前子数据块各第一存储单元中相同存储位的第一位存储数据,即读取各第一存储单元对应寄存器中相同存储位的第一位存储数据;这里,所述第一位存储数据是指所述第一存储单元各个位中存储的数据,如一个第一存储单元中有C个第一位存储数据;将各第一存储单元中相同存储位的第一位存储数据,按各第一位存储数据各自所在所述第一存储单元顺序分别组成第一写入数据单元;将各第一写入数据单元,按各自对应的第一预设写入地址写入第二存储器;
这里,所述第二存储器可以是单独的存储器,也可以是OFDM系统中存储器中划分出的存储器。
更进一步的,计算当前第一写入数据单元中的第一位存储数据在第一存储单元的存储位次与第一预设数据长度之间的差值;计算所述差值与子数据块总数的乘积;将所述乘积与当前子数据块在第一存储器中的顺序位次相加之和,确定为当前所述第一写入数据单元对应的第一预设写入地址;
这里,根据上述子数据块和第一存储单元的设置;所述第一预设数据长度为C,第一存储单元的存储位次为1至C;所述将第一预设数据长度与当前所述第一写入数据单元中第一位存储数据在第一存储单元的存储位次之差,可以理解为如果当前处理的第一位存储数据在第一存储单元的存储位次为1,则所述差值为C-1,如果当前处理的第一位存储数据在第一存储单元的存储位次为C,则所述差值为0;所述子数据块总数为k;当前子数据块的顺序位次为当前处理的子数据块的顺序位次,即上述的i。
进一步的,按第二预设读取顺序分别读取当前子数据块对应的各第一存储单元中相同存储位的第一位存储数据,可以包括:按所述第一存储单元存储位由高到低、或由低到高的顺序读取各第一存储单元中相同存储位的第一位存储数据;
这里,所述由高到低顺序读取可以通过读取左移取最高位的方式实现,由低到高的序读取可以通过右移取最低位的方式实现;
具体的,实际操作中可以采用按左移或右移的方式,将各子数据块中各第一存储单元中的C个第一位存储数据都处理并输出;实际处理时可以设置当前处理的寄存器列数为j(1,2,3…C-1);
如按右移方式处理时:初始时,j为C-1;从寄存器reg(0),reg(1),…,reg(n-1)中分别取第一位存储数据,拼凑成一个n比特的第一写入数据单元;首先可以取最低位第一位存储数据,取完后j减1,左移再取最低位第一位存储数据,直到j=0,即取完所有C个第一位存储数据;所述写入第二存储器的第一预设写入地址为i+k*j的单元,即:
j=C-1时,寄存器reg(0),reg(1),…,reg(n-1)右移0位,取n个最低比特位,拼凑成一个第一写入数据单元,写入第二存储器中地址为i+k*(C-1)的单元;
j=C-2时,寄存器reg(0),reg(1),…,reg(n-1)右移1位,取n个最低比特位,拼凑成一个第一写入数据单元,写入第二存储器中地址为i+k*(C-2)的单元;
…
j=0时,寄存器reg(0),reg(1),…,reg(n-1)右移1位,取n个最低比特位,拼凑成一个第一写入数据单元,写入第二存储器中地址为i+k*0的单元;
实际处理过程中,还可以对第一存储单元的C比特数据是否处理完毕进行判定,其方法是:判断j与0是否相等,如果不相等,j减1,继续读取下一位的步骤;否则,表明第一存储单元的C比特数据已经处理完毕。
如按左移方式处理时,j初始时为0;从寄存器reg(0),reg(1),…,reg(n-1)中分别取第一位存储数据,拼凑成一个n比特的第一写入数据单元;首先可以取最高位第一位存储数据,取完后j加1,右移再取最高位第一位存储数据,直到j=C-1,即取完所有C个第一位存储数据;写入第二存储器地址为i+k*j的单元,即:
j=0时,寄存器reg(0),reg(1),…,reg(n-1)左移0位,取n个最高比特位,拼凑成一个第一写入数据单元,写入第二存储器中地址为i+k*0的单元;
j=1时,寄存器reg(0),reg(1),…,reg(n-1)左移1位,取n个最高比特位,拼凑成一个第一写入数据单元,写入第二存储器中地址为i+k*1的单元;
…
j=C-1时,寄存器reg(0),reg(1),…,reg(n-1)左移1位,取n个最高比特位,拼凑成一个第一写入数据单元,写入第二存储器中地址为i+k*(C-1)的单元;
实际处理过程中,还可以对第一存储单元的C比特数据是否处理完毕进行判定,其方法是:判断j与C-1是否相等,如果不相等,j加1,继续读取下一位的步骤;否则,表明第一存储单元的C比特数据已经处理完毕。
处理完一个子数据块后,还可以对是否已经处理完所有的子数据块进行判断,具体方法可以是:判断i与k-1是否相等,如果相等,交织操作结束;如果不相等,i加1,进入下一个子数据块的处理。
如此,完成了数据的写入。完成数据写入后,数据在第二存储器的存储情况如图3所示。
步骤104:将从所述第二存储器中按第一预设读取顺序依次读取的数据确定为所述待处理数据的处理结果;
这里,所述第一预设读取顺序可以根据所述第一读写规则进行设置,包括:将从所述第二存储器中按地址递增顺序依次读取的数据确定为所述待交织数据的交织结果;
如此,完成了整个待交织数据的交织步骤。
所述可执行程序被处理器执行时实现数据交织与解交织方法,其中,解交织方法如图1所示,所述方法包括:
步骤101:将待处理数据依次写入第一存储器中包括的至少一个第一存储单元中,各第一存储单元的长度为第一预设数据长度;
这里,以数据解交织处理为例,对本发明实施例交织与解交织方法进行阐述,所述待处理数据为待解交织数据;所述待解交织数据可以是OFDM系统中接收端接收的通过本发明实施例完成交织处理的OFDM符号,可以由OFDM系统中的处理器等逻辑器件配合存储器进行解交织处理。可以一次对一个OFDM符号中承载数据进行解交织处理;这里,一个OFDM符号所能承载的总数据比特数为m,m等于一个OFDM符号的数据子载波数目NSD与一个子载波所承载的数据比特数n的乘积;
所述第一存储器可以是单独的存储器,也可以是OFDM系统中存储器中划分出的存储器;可以根据所述待解交织数据的比特数来确定所述第一存储单元的第一预设数据长度,即确定所述第一存储单元可以存储数据的比特数。可以在所述第一存储器中依次设置多个第一存储单元。
步骤102:将存储于各第一存储单元的待处理数据以第一存储单元为单位划分为一个以上的子数据块;
进一步的,所述子数据块大小为所述第一预设数据长度与所述待解交织数据进行交织处理时划分的子数据块数量之积;所述第一预设数据长度为所述子载波所承载的数据比特数;
这里,所述第一预设数据长度,可以是一个子载波所承载的数据比特数n;由本发明实施例中数据交织方法可知,采用k表示所述待解交织数据进行交织处理时划分的子数据块数量;如此,一个子数据块中有k个第一存储单元;可以理解为一个子数据块有n列,k行;如此,交织处理的一个OFDM符号中的总比特数为m=C*k*n,则进行解交织的数据共有C个子数据块,即第二数据块的个数和所述待解交织数据进行交织处理采用的第一预设数据长度值相等;
具体的,所述第一存储器,包含k*C个数据长度为n的第一存储单元;以一个进行解交织的OFDM符号为例,进行解交织的OFDM符号中包含1200个子载波,即NSD=1200,每个子载波所承载的数据比特数为32,即n=32;如果在交织过程中第一预设数据长度C为100,那么k=12;
将m比特所述待解交织数据以依次写入第一预设数据长度为n的k*C个第一存储单元中:
将m比特输入数据以n比特为单元,依次写入第一存储器中,即:
比特0到比特n-1写入第一存储器地址为0的第一存储单元;
比特n到比特2n-1写入第一存储器地址为1的第一存储单元;
…
比特(k-1)*n到比特k*n-1写入第一存储器地址为k-1的第一存储单元;
…
比特(k*C-1)*n到比特(k*C)*n-1写入第一存储器地址为k*C-1的第一存储单元;
待解交织数据在第一存储器中的排列情况如图7所示;
这里,可以将第一存储器k*C行数据以k行为一组分为C组,即依次将k个第一存储单元分为一个子数据块,共有C个子数据块。
步骤103:按照第一读写规则分别读取各子数据块对应的各第一存储单元中的数据并写入第二存储器;
这里,所述第一读写规则根据可以包括:分别读取在各自对应子数据块中位置相同的各第一存储单元中的数据;将所述读取的各相同位置第一存储单元中相同存储位的第二位存储数据,按各自所属子数据块在第二存储器中的顺序分别组成第二写入数据单元;将各第二写入数据单元,按各自对应的第二预设写入地址写入第二存储器;所述方法还包括:按第三预设读取顺序从各第一存储单元中读取第二位存储数据;
具体的,在实际操作中,可以将第一存储器中的数据先存储到寄存器中,再从寄存器写入第二存储器;可以设置临时变量i;i表示一个子数据块中各第一存储单元的地址,可以从第一存储器中地址i(i=0,1,2,…,k-1)处,以k为间隔读取C个地址的数据,分别缓存到位宽为n的寄存器reg(0),reg(1),…,reg(C-1)中,即取各子数据块中位置相同的第一存储单元内容分别存储到寄存器中,如:
i=0时,读取地址0,地址k,…,地址(C-1)*k的C个n比特数据长度的第二数据单元,缓存到寄存器reg(0),reg(1),…,reg(C-1)中;
i=1时,读取地址1,地址k+1,…,地址(C-1)*k+1的C个n比特数据长度的第二数据单元,缓存到寄存器reg(0),reg(1),…,reg(C-1)中;
…
i=k-1时,读取地址k-1,地址k-1+k,…,地址(C-1)*k+1+k的C个n比特数据长度的第二数据单元,缓存到寄存器reg(0),reg(1),…,reg(C-1)中;
数据写入寄存器后,将各相同位置第一存储单元中相同存储位的第二位存储数据,按各第二位存储数据各自所在所述第一存储单元顺序分别组成第二写入数据单元;例如:分别取出reg(0),reg(1),…,reg(C-1)中的第0位第二位存储数据组成一个第二写入数据单元;将这里,所述第二位存储数据是指所述第一存储单元各个位中存储的数据,如一个第一存储单元中有n个第二位存储数据;
这里,所述第二存储器可以是单独的存储器,也可以是OFDM系统中存储器中划分出的存储器。
进一步的,计算当前第一存储单元在对应的子数据块中的顺序位次与第二预设数据长度的乘积;计算当前第二写入数据单元中第二位存储数据在第一存储单元的存储位次与第二预设数据长度之间的差值;将所述乘积与所述差值之和确定为第二预设写入地址;
这里,根据上述子数据块和第一存储单元的设置;这里所述第一预设数据长度为n,第一存储单元在子数据块中的顺序位次为i(0,1,2,3…k);所述第一预设数据长度与当前所述第二写入数据单元中第二位存储数据在第一存储单元的存储位次之差,可以理解为:如果当前处理的第二位存储数据在第一存储单元的存储位次为1,则所述差值为n-1,如果当前处理的第二位存储数据在第一存储单元的存储位次为n,则所述差值为0;所述子数据块总数为C;。
进一步的,所述按第三预设读取顺序从各第一存储单元中读取第二位存储数据,包括:按所述第一存储单元存储位由高到低、或由低到高的顺序读取各第一存储单元中相同存储位的第二位存储数据;
这里,所述由高到低顺序读取可以通过读取左移取最高位的方式实现,由低到高的序读取可以通过右移取最低位的方式实现;
具体的,实际操作中可以采用按左移或右移的方式,将第一存储单元中的n个第二位存储数据都处理并且输出;实际处理时可以设置当前处理的寄存器列数为j(0,1,2…n-1);
如按右移方式处理时:初始时,j为n-1;从寄存器reg(0),reg(1),…,reg(C-1)中分别取第二位存储数据,拼凑成一个C比特的第一写入数据单元;首先可以去最低位第二位存储数据,取完后j减1,左移再取最低位第二位存储数据,直到j=0,即取完所有n位第二位存储数据;所述第二存储器的第二预设写入地址为i*n+j;其中,i为写入寄存的第一存储单元在子数据块中的顺序位次,如果当前操作的寄存器中的第一存储单元在子数据块中顺序位次为0,则i=0;
具体操作可以是:从寄存器reg(0),reg(1),…,reg(C-1)中分别取第j(j=n-1,n-2,n-3,…,0)比特,拼凑成一个C比特的第二写入数据单元,写入第二存储器地址为i*n+j的单元,即:
j=n-1时,寄存器reg(0),reg(1),…,reg(C-1)右移0位,取n个最低比特位,拼凑成一个第二写入数据单元,写入第二存储器中地址为i*n+n-1的单元;
j=n-2时,寄存器reg(0),reg(1),…,reg(C-1)右移1位,取n个最低比特位,拼凑成一个第二写入数据单元,写入第二存储器中地址为i*n+n-2的单元;
…
j=0时,寄存器reg(0),reg(1),…,reg(C-1)右移1位,取n个最低比特位,拼凑成一个第二写入数据单元,写入第二存储器中地址为i*n+0的单元;
实际处理过程中,还可以对第一存储单元的n比特数据是否处理完毕进行判定,其方法是:判断j与0是否相等,如果不相等,j减1,继续第一存储单元读取步骤;否则,表明第一存储单元的n比特数据已经处理完毕。
如按左移方式处理时:初始时,j为0;从寄存器reg(0),reg(1),…,reg(C-1)中分别取第二位存储数据,拼凑成一个C比特的第二写入数据单元;首先可以取最高位第二位存储数据,取完后j加1,左移再取最高位第二位存储数据,直到j=n-1,即取完所有n位第二位存储数据;所述第二存储器的第二预设写入地址为i*n+j;其中,i为写入寄存的第一存储单元在子数据块中的顺序位次;
从寄存器reg(0),reg(1),…,reg(C-1)中分别取第j(j=0,1,2,…,n-1)比特,拼凑成一个C比特第二写入数据单元,写入第二存储器中地址为i*n+j的单元,即:
j=0时,寄存器reg(0),reg(1),…,reg(C-1)左移0位,取C个最高比特位,拼凑成一个第二写入数据单元,写入第二存储器中地址为i*n+0的单元;
j=1时,寄存器reg(0),reg(1),…,reg(C-1)左移1位,取C个最高比特位,拼凑成一个第二写入数据单元,写入第二存储器中地址为i*n+1的单元;
…
j=n-1时,寄存器reg(0),reg(1),…,reg(C-1)左移1位,取C个高低比特位,拼凑成一个第二写入数据单元,写入第二存储器中地址为i*n+n-1的单元;
实际处理过程中,还可以对第一存储单元的n比特数据是否处理完毕进行判定,其方法是:判断j与n-1是否相等,如果不相等,j加1,继续读取步骤;否则,表明第一存储单元的n比特数据已经处理完毕。
处理完整组寄存器后,还可以对是否已经处理完所有顺序位次的第一存储单元进行判断,具体方法可以是:判断i与k-1是否相等,如果相等,交织操作结束;如果不相等,i加1,进入下一个顺序位次的第一存储单元的处理。;
如此,完成了数据的写入。完成数据写入后,数据在第二存储器的存储情况如图7所示。
步骤104:将从所述第二存储器中按第一预设读取顺序依次读取的数据确定为所述待处理数据的处理结果
这里,所述第一预设读取顺序可以根据所述第一读写规则进行设置,包括:将从所述第二存储器中按地址递增顺序依次读取的数据确定为所述待解交织数据的解交织结果;
如此,完成了整个待解交织数据的解交织步骤。
以上所述,仅为本发明的最佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (18)
1.一种数据交织与解交织方法,其特征在于,所述方法包括:
将待处理数据依次写入第一存储器中包括的至少一个第一存储单元中,各第一存储单元的长度为第一预设数据长度;
将存储于各第一存储单元的待处理数据以第一存储单元为单位划分为一个以上的子数据块;
按照第一读写规则分别读取各子数据块对应的各第一存储单元中的数据并写入第二存储器;
将从所述第二存储器中按第一预设读取顺序依次读取的数据确定为所述待处理数据的处理结果;
所述按照第一读写规则分别读取各子数据块对应的各第一存储单元中的数据并写入第二存储器,包括:
按各子数据块在第一存储器中的地址递增顺序,依次读取所述各子数据块;
按第二预设读取顺序分别读取当前子数据块对应的各第一存储单元中相同存储位的第一位存储数据;
将所述各第一存储单元中相同存储位的第一位存储数据,按各第一位存储数据各自所在所述第一存储单元顺序分别组成第一写入数据单元;
将各第一写入数据单元,按各自对应的第一预设写入地址写入第二存储器;
所述将从所述第二存储器中按第一预设读取顺序依次读取的数据确定为所述待处理数据的处理结果,包括:
将从所述第二存储器中按地址递增顺序依次读取的数据确定为待交织数据的交织结果或待解交织数据的解交织结果。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
计算当前第一写入数据单元中的第一位存储数据在第一存储单元的存储位次与第一预设数据长度之间的差值;
计算所述差值与子数据块总数的乘积;
将所述乘积与当前子数据块在第一存储器中的顺序位次相加之和,确定为当前所述第一写入数据单元对应的第一预设写入地址。
3.根据权利要求1所述的方法,其特征在于,按第二预设读取顺序分别读取当前子数据块对应的各第一存储单元中相同存储位的第一位存储数据:包括:
按所述第一存储单元存储位由高到低、或由低到高的顺序读取各第一存储单元中相同存储位的第一位存储数据。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述待处理数据为待交织数据;
所述待交织数据的大小为一个正交频分复用OFDM符号所承载的数据比特数;
所述子数据块的大小为OFDM符号中子载波所承载的数据比特数与所述第一预设数据长度之积;
所述第一存储单元的数量为所述子载波所承载的数据比特数的整数倍。
5.根据权利要求1所述的方法,其特征在于,所述按照第一读写规则分别读取各子数据块对应的各第一存储单元中的数据并写入第二存储器,包括:
分别读取在各自对应子数据块中位置相同的各第一存储单元中的数据;
将所述读取的各相同位置第一存储单元中相同存储位的第二位存储数据,按各自所属子数据块在第二存储器中的顺序分别组成第二写入数据单元;
将各第二写入数据单元,按各自对应的第二预设写入地址写入第二存储器;
所述方法还包括:按第三预设读取顺序从各第一存储单元中读取第二位存储数据。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
计算当前第一存储单元在对应的子数据块中的顺序位次与第一预设数据长度的乘积;
计算当前第二写入数据单元中第二位存储数据在第一存储单元的存储位次与第一预设数据长度之间的差值;
将所述乘积与所述差值之和确定为所述第二预设写入地址。
7.根据权利要求6所述的方法,其特征在于,所述按第三预设读取顺序分别读取各子数据块中相同位置的第一存储单元中的数据:包括:
按所述第一存储单元存储位由高到低、或由低到高的顺序读取各第一存储单元中相同存储位的第二位存储数据。
8.根据权利要求1、5至7任一项所述的方法,其特征在于,所述待处理数据为待解交织数据;
所述待解交织数据的大小为一个OFDM符号所承载的数据比特数;
所述子数据块大小为所述第一预设数据长度与所述待解交织数据进行交织处理时划分的子数据块数量之积;
所述第一预设数据长度为所述OFDM符号中子载波所承载的数据比特数。
9.一种数据交织装置,其特征在于,所述装置包括:第一读写模块、划分模块、第二读写模块和确定模块;其中,
所述第一读写模块,用于将待处理数据依次写入第一存储器中包括的至少一个第一存储单元中,各第一存储单元的长度为第一预设数据长度;
所述划分模块,用于将存储于各第一存储单元的待处理数据以第一存储单元为单位划分为一个以上的子数据块;
所述第二读写模块,用于按照第一读写规则分别读取各子数据块对应的各第一存储单元中的数据并写入第二存储器;
所述确定模块,用于将所述第二存储器中按第一预设读取顺序依次读取的数据确定为所述待处理数据的处理结果;
所述第二读写模块,具体用于:
按各子数据块在第一存储器中的地址递增顺序,依次读取所述各子数据块;
按第二预设读取顺序分别读取当前子数据块对应的第一存储单元中相同存储位的第一位存储数据;
将所述各第一存储单元中相同存储位的第一位存储数据,按各第一位存储数据各自所在所述第一存储单元顺序分别组成第一写入数据单元;
将各第一写入数据单元,按各自对应的第一预设写入地址写入第二存储器;
所述确定模块,具体用于:将从所述第二存储器中按地址递增顺序依次读取的数据确定为待交织数据的交织结果或待解交织数据的解交织结果。
10.根据权利要求9所述的装置,其特征在于,所述第二读写模块,具体用于:
计算当前第一写入数据单元中的第一位存储数据在第一存储单元的存储位次与第一预设数据长度之间的差值;
计算所述差值与子数据块总数的乘积;
将所述乘积与当前子数据块在第一存储器中的顺序位次相加之和,确定为当前所述第一写入数据单元对应的第一预设写入地址。
11.根据权利要求9所述的装置,其特征在于,所述第二读写模块,具体用于:
按所述第一存储单元存储位由高到低、或由低到高的顺序读取各第一存储单元中相同存储位的第一位存储数据。
12.根据权利要求9至11任一项所述的装置,其特征在于,所述待处理数据为待交织数据;
所述待交织数据的大小为一个OFDM符号所承载的数据比特数;
所述子数据块的大小为OFDM符号中子载波所承载的数据比特数与所述第一预设数据长度之积;
所述第一存储单元的数量为所述子载波所承载的数据比特数的整数倍。
13.根据权利要求9所述的装置,其特征在于,所述第二读写模块,具体用于:
分别读取在各自对应子数据块中位置相同的各第一存储单元中的数据;
将所述读取的各相同位置第一存储单元中相同存储位的第二位存储数据,按各自所属子数据块在第二存储器中的顺序分别组成第二写入数据单元;
将各第二写入数据单元,按各自对应的第二预设写入地址写入第二存储器;
所述装置还用于:按第三预设读取顺序从各第一存储单元中读取第二位存储数据。
14.根据权利要求13所述的装置,其特征在于,所述第二读写模块,具体用于:
计算当前第一存储单元在对应的子数据块中的顺序位次与第一预设数据长度的乘积;
计算当前第二写入数据单元中第二位存储数据在第一存储单元的存储位次与第一预设数据长度之间的差值差;
将所述乘积与差值之和确定为所述第二预设写入地址。
15.根据权利要求14所述的装置,其特征在于,所述第二读写模块,具体用于:
按所述第一存储单元存储位由高到低、或由低到高的顺序读取各第一存储单元中相同存储位的第二位存储数据。
16.根据权利要求9、13至15任一项所述的装置,其特征在于,所述待处理数据为待解交织数据;
所述待解交织数据的大小为一个OFDM符号所承载的数据比特数;
所述子数据块大小为所述第一预设数据长度与所述待解交织数据进行交织处理时划分的子数据块数量之积;
所述第一预设数据长度为所述OFDM符号中子载波所承载的数据比特数。
17.一种存储介质,其上存储由可执行程序,其特征在于,所述可执行程序被处理器执行时实现如权利要求1至8任一项所述数据交织与解交织方法的步骤。
18.一种信息处理装置,包括处理器、存储器及存储在存储器上并能够有所述处理器运行的可执行程序,其特征在于,所述处理器运行所述可执行程序时执行如权利要求1至8任一项所述数据交织与解交织方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711031504.XA CN109728826B (zh) | 2017-10-27 | 2017-10-27 | 一种数据交织与解交织方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711031504.XA CN109728826B (zh) | 2017-10-27 | 2017-10-27 | 一种数据交织与解交织方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109728826A CN109728826A (zh) | 2019-05-07 |
CN109728826B true CN109728826B (zh) | 2023-07-07 |
Family
ID=66291913
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711031504.XA Active CN109728826B (zh) | 2017-10-27 | 2017-10-27 | 一种数据交织与解交织方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109728826B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110838890B (zh) * | 2019-10-25 | 2022-02-08 | 晶晨半导体(上海)股份有限公司 | 解交织方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101800619A (zh) * | 2009-12-28 | 2010-08-11 | 福州瑞芯微电子有限公司 | 一种基于块交织的交织或解交织方法及其装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003198385A (ja) * | 2001-12-25 | 2003-07-11 | Sony Corp | インターリーブ装置及びインターリーブ方法、符号化装置及び符号化方法、並びに復号装置及び復号方法 |
EP1463255A1 (en) * | 2003-03-25 | 2004-09-29 | Sony United Kingdom Limited | Interleaver for mapping symbols on the carriers of an OFDM system |
CN101192197B (zh) * | 2006-11-20 | 2011-10-26 | 深圳迈瑞生物医疗电子股份有限公司 | 解交织器、解交织方法及采用其的超声多普勒诊断仪 |
CN101882970A (zh) * | 2009-05-06 | 2010-11-10 | 中国科学院微电子研究所 | 多模式的交织与解交织地址生成方法及装置 |
US8543881B2 (en) * | 2009-09-11 | 2013-09-24 | Qualcomm Incorporated | Apparatus and method for high throughput unified turbo decoding |
CN102142928B (zh) * | 2010-11-19 | 2013-11-06 | 华为技术有限公司 | 交织、解交织外码编码输出码字的方法和交织、解交织器 |
GB2497154B (en) * | 2012-08-30 | 2013-10-16 | Imagination Tech Ltd | Tile based interleaving and de-interleaving for digital signal processing |
TWI551062B (zh) * | 2015-07-07 | 2016-09-21 | 晨星半導體股份有限公司 | 時間及單元解交錯電路及執行時間及單元解交錯處理之方法 |
CN105490776B (zh) * | 2015-11-26 | 2019-07-09 | 华为技术有限公司 | 交织方法及交织器 |
-
2017
- 2017-10-27 CN CN201711031504.XA patent/CN109728826B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101800619A (zh) * | 2009-12-28 | 2010-08-11 | 福州瑞芯微电子有限公司 | 一种基于块交织的交织或解交织方法及其装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109728826A (zh) | 2019-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111147183B (zh) | Ldpc码字的交织映射方法及解交织解映射方法 | |
RU2008152401A (ru) | Устройство перемежения и приемник для сигнала, сформированного устройством перемежения | |
KR101185868B1 (ko) | 멀티-뱅크 llr 버퍼를 수반하는 디-인터리빙 메커니즘 | |
US8812917B2 (en) | Method and device for row and column interleaving of blocks of variable size | |
CN1983825A (zh) | 交织编解码的装置和方法 | |
US7069398B2 (en) | Apparatus and method for de-interleaving the interleaved data in a coded orthogonal frequency division multiplexing receiver | |
CN109728826B (zh) | 一种数据交织与解交织方法和装置 | |
US7363552B2 (en) | Method and apparatus for convolutional interleaving/de-interleaving technique | |
CN101924608B (zh) | 一种实现块交织的方法、装置及发射机 | |
CN107147474A (zh) | Ldpc码字的交织映射方法及解交织解映射方法 | |
US7299387B2 (en) | Address generator for block interleaving | |
CN107204828A (zh) | Ldpc码字的交织映射方法及解交织解映射方法 | |
US7895402B2 (en) | Method of accessing data in a deinterleaving device | |
TW201446004A (zh) | 接收器與接收信號的方法 | |
CN104901774B (zh) | Ldpc码字的交织映射方法及解交织解映射方法 | |
CN102377516A (zh) | 数据处理方法及其装置 | |
CN104901773A (zh) | Ldpc码字的交织映射方法及解交织解映射方法 | |
JPH10163887A (ja) | インターリーブ装置およびデインターリーブ装置 | |
CN110784287B (zh) | Ldpc码字的交织映射方法及解交织解映射方法 | |
RU42143U1 (ru) | Декодирующее устройство помехоустойчивого кода | |
CN105099615A (zh) | Ldpc码字的交织映射方法及解交织解映射方法 | |
CN111181572B (zh) | Ldpc码字的交织映射方法及解交织解映射方法 | |
CN103078702A (zh) | 数据交织处理方法、装置和系统 | |
CN102804608A (zh) | 交织装置及交织方法 | |
JP2009231979A (ja) | ブロードキャストチャネルのメモリ低減レートマッチング処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |