CN102136879A - 一种数据解交织方法及装置 - Google Patents
一种数据解交织方法及装置 Download PDFInfo
- Publication number
- CN102136879A CN102136879A CN2010102641632A CN201010264163A CN102136879A CN 102136879 A CN102136879 A CN 102136879A CN 2010102641632 A CN2010102641632 A CN 2010102641632A CN 201010264163 A CN201010264163 A CN 201010264163A CN 102136879 A CN102136879 A CN 102136879A
- Authority
- CN
- China
- Prior art keywords
- buffer memory
- idx
- input code
- code flow
- interleaving treatment
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/27—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
- H03M13/2703—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques the interleaver involving at least two directions
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
一种数据解交织方法及装置,该方法包括:接收端将接收到的经过交织处理的输入码流按列写入至少二个不同缓存,使得每个缓存中存储的数据量相等,且该输入码流在交织处理之前对应的码流的相邻列数据位于不同缓存相对应的存储单元中;该输入码流包括信息流,第一校验流及第二校验流;从不同缓存相对应的存储单元中读取相邻列数据并重新排序,获得该输入码流在交织处理之前对应的码流;该输入码流在交织处理之前对应的码流包括信息流、第一校验流在交织处理之前各自对应的码流,及第二校验流在交织处理之前经过循环左移一位处理的码流;将第二校验流在交织处理之前对应的码流循环右移一位。可以提高解交织时数据的吞吐率,并且均衡解交织的复杂度。
Description
技术领域
本发明主要涉及通信技术领域,特别涉及一种数据解交织方法及装置。
背景技术
在长期演进(Long Term Evolution,LTE)协议中,物理上行共享信道(Physical Uplink Share Channel,PUSCH)作为一种1/3码率的Turbo编码链路。经过Turbo编码后,PUSCH信道上可以产生3路码流,分别为信息流、第一校验流、第二校验流。
为了避免在PUSCH信道上传输时受到突发性噪声干扰而导致一连串的数据错误,通常需要在发送端(如用户终端)分别对3路码流进行如下交织:即将输入码流按照32bits为1行写入交织矩阵(如果码流长度不是32bits的整数倍,则在码流前端添加交织哑元,使得交织矩阵中每1行都包含32bits);对交织矩阵进行列置换,即按照LTE协议规定的列置换规则对上述交织矩阵中的列顺序进行调整;按列将交织矩阵中所有数据读取并传输。其中,LTE协议规定的信息流、第一校验流专用的列置换规则如下表1所示:
表1
其中,表示交织矩阵中的列数;P(j)表示为列置换后第j列在列置换前的列序号。例如,P(0)=0表示列置换后的第0列在列置换前的列序号为0;P(1)=16表示列置换后的第1列在列置换前的列序号为16,以此类推。其中,由于LTE协议规定的第二校验流的列置换规则与上述表1不同,在使用上述表1所示的列置换规则对第二校验流进行交织前,需要在第二校验流前端添加交织哑元,并将整个码流循环左移一位。
在接收端(如基站),需要分别对上述已交织的信息流、第一校验流以及第二校验流进行解交织,从而恢复出交织前的3路码流。例如,假定接收码流行数为R,当接收端接收到第0列(每一列数据为R个)数据时,根据表1所示的列置换规则可知,该列数据在交织前的列号为P(0)=0,则按照地址=0,1,......,R-1将第0列数据写入存储器例如随机存储器(Random AccessMemory,RAM)中;当接收端接收到第1列数据时,根据表1所示的列置换规则可知,该列数据在交织前的列号为P(1)=16,则按照地址=16R,16R+1,......,16R+(R-1)将第1列数据写入RAM中;当接收端接收到第2列数据时,根据表1所示的列置换规则可知,该列数据在交织前的列号为P(2)=8,则按照地址=8R,8R+1,......,8R+(R-1)将第2列数据写入RAM中;......;依次类推,直到RAM存储了完整的码流之后,再按地址顺序读取出来。由于第二校验位与信息位、第一校验流在交织处理上的细微差别,在读取第二校验流之后,还需要将第二校验流循环右移一位,即将第二校验流最后一位移至第二校验流首端。至此,完成对已交织的信息流、第一校验流以及第二校验流进行解交织。
上述的接收端在对码流进行解交织时,对每一路码流来说,以串行方式将接收的每一列数据在交织前的地址计算出来,并按照该交织前的地址写入RAM中,在码流全部写入RAM后,再按地址从RAM中顺序读取出来。这样,会降低解交织时数据的吞吐率;而且在将码流写入RAM之前进行地址计算,还会导致解交织的复杂度的不均衡。
发明内容
本发明实施例中提供了一种数据解交织方法及装置,能够提高解交织时数据的吞吐率,并且均衡解交织的复杂度。
本发明实施例中提供了一种数据解交织方法,包括:
接收端将接收到的经过交织处理的输入码流按列写入至少二个不同缓存,以使得每个缓存中存储的数据量相等,而且所述输入码流在进行交织处理之前对应的码流的相邻列数据位于不同缓存相对应的存储单元中;所述输入码流包括信息流,第一校验流以及第二校验流;
从不同缓存相对应的存储单元中读取所述相邻列数据并重新排序,获得所述输入码流在进行交织处理之前对应的码流;所述输入码流在进行交织处理之前对应的码流包括信息流、第一校验流在进行交织处理之前各自对应的码流,以及所述第二校验流在进行交织处理之前经过循环左移一位处理的码流;
将第二校验流在进行交织处理之前对应的码流循环右移一位。
本发明实施例中提供了一种数据解交织方法,包括:
接收端将接收到的经过交织处理的输入码流按列写入至少二个不同缓存,以使得每个缓存中存储的数据量相等,而且所述输入码流在进行交织处理之前对应的码流的相邻列数据位于不同缓存相对应的存储单元中;
从不同缓存相对应的存储单元中读取所述相邻列数据并重新排序,获得所述输入码流在进行交织处理之前对应的码流。
本发明实施例中提供了一种数据解交织装置,包括:
写入模块,用于将接收到的经过交织处理的输入码流按列写入至少二个不同缓存;
所述至少二个不同缓存,用于存储所述输入码流,其中,每个缓存中存储的数据量相等,而且所述输入码流在进行交织处理之前对应的码流的相邻列数据位于不同缓存相对应的存储单元中;
读取模块,用于从所述从不同缓存相对应的存储单元中读取所述相邻列数据并重新排序,获得所述输入码流在进行交织处理之前对应的码流。
与现有的技术相比,本发明实施例具有以下有益效果:
本发明实施例中,将输入码流按列写入至少二个不同缓存,使得该输入码流在进行交织处理之前对应的码流的相邻列数据可以位于不同缓存的相对应的存储单元中。这样,可以从不同缓存相对应的存储单元中读取上述相邻列数据并重新排序,获得该输入码流在进行交织处理之前的码流;进一步地,若输入码流还包括在进行交织处理之前经过循环左移一位处理的第二校验流,则可以将获得的第二校验流在进行交织处理之前对应的码流循环右移一位,从而可以完成对进行交织处理的信息流、第一校验流以及第二校验流的解交织处理。与采用串行方式进行解交织相比,本发明实施例可以并行地进行解交织,从而能够提高解交织时数据的吞吐率;另外,由于在写入数据之前无需计算地址,可以均衡解交织的复杂度。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中提供的一种数据解交织方法的流程图;
图2为本发明实施例中提供的一种数据解交织装置的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例中提供了一种数据解交织方法及装置,能够提高解交织时数据的吞吐率,并且均衡解交织的复杂度。其中,本发明实施例中所提供的数据解交织方法及装置可以对LTE协议的PUSCH信道的信息流、第一校验流以及第二校验流进行解交织处理,也可以对其他Turbo编码链路的码流进行解交织,本发明实施例不作限定。
请参阅图1,图1为本发明实施例中提供的一种数据解交织方法的流程图,如图1所示,该方法可以包括以下步骤:
101、接收端将接收到的经过交织处理的输入码流按列写入至少二个不同缓存,以使得每个缓存中存储的数据量相等,而且该输入码流在进行交织处理之前对应的码流的相邻列数据位于不同缓存相对应的存储单元中;该输入码流包括信息流,第一校验流以及第二校验流;
本实施例中,上述至少二个不同缓存(BUF)的数量具体可以是2n个,其中,1<=n<=5。即上述至少二个不同BUF的具体可以是2个、4个、8个、16个或32个。
本实施例中,一个BUF可以由一个或多个存储单元例如RAM搭建构成,实现对进行交织处理后的输入码流的存储。
102、从不同缓存相对应的存储单元中读取相邻列数据并重新排序,获得上述输入码流在进行交织处理之前对应的码流;其中,上述输入码流在进行交织处理之前对应的码流包括信息流、第一校验流在进行交织处理之前各自对应的码流,以及第二校验流在进行交织处理之前经过循环左移一位处理的码流;
本实施例中,从不同缓存相对应的存储单元中读取相邻列数据并重新排序,获得上述输入码流在进行交织处理之前对应的码流具体可以为:
接收端从不同缓存的地址相同的存储单元中读取上述相邻列数据并重新排序,获得所述输入码流在进行交织处理之前对应的码流。其中,从不同缓存的地址相同的存储单元中读取上述相邻列数据可以减少接收端频繁的跳动读取操作,提高读取效率。
本实施例中,上述至少二个不同BUF的数量可以是2个,此时可以从2个不同BUF的地址相同的存储单元中读取相邻的2列数据;又或者,上述至少二个不同BUF的数量可以是8个,此时可以从8个不同BUF的地址相同的存储单元中读取相邻的8列数据等等;读取相邻列数据后可以重新排序,从而获得该输入码流在进行交织处理之前对应的码流。
103、将第二校验流在进行交织处理之前对应的码流循环右移一位。
由于在进行交织处理之前,第二校验流经过循环左移一位处理,所以第二校验流在进行交织处理之前对应的码流的首位必定是交织哑元,所以第二校验在进行交织处理之前对应的码流循环右移一位可以直接通过如下方式实现:即在第二校验流对应的码流的首端添加一个交织哑元,然后去掉其最后一位。
下面分别以BUF的数量为2,4,8,16和32为例,分别介绍本发明实施例中提供的数据解交织方法,实现并行解交织处理。
举例一:
先将接收到的进行交织处理的输入码流按列写入BUF0和BUF1,其中,BUF0和BUF1中存储的数据量相等,而且该输入码流在进行交织之前对应的码流的相邻列数据位于BUF0和BUF1中的地址相同的存储单元中;其中,该输入码流包括信息流,第一校验流以及在进行交织处理之前经过循环左移一位处理的第二校验流;
从BUF0和BUF1中的地址相同的存储单元中读取上述的相邻列数据并重新排序,获得该输入码流在进行交织处理之前对应的码流。即,从BUF0和BUF1中的地址相同的存储单元中逐列地读取相邻列数据,每一列所有行的数据全部读完后,再读下一列的所有行的数据,直至所有相邻列数据读取完毕为止。
假设在进行交织处理之前的输入码流为{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31},则根据表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},则将接收到的进行交织处理的输入码流按列写入BUF0和BUF1后,如表2所示,其中,BUF0中的存储单元存储了1/2的输入码流{0,16,8,24,4,20,12,28,2,18,10,26,6,22,14,30},BUF1中的存储单元存储了1/2的输入码流{1,17,9,25,5,21,13,29,3,19,11,27,7,23,15,31},即BUF0和BUF1存储的数据量相等。
表2
其中,表2中的post_c_idx表示进行交织处理之后的输入码流的列序号,c_idx表示进行交织处理之前的输入码流的列序号,BUF0和BUF1表示缓存。如表2所示,当post_c_idx=0时,该输入码流在进行交织之前的相邻列0和1的数据位于BUF0和BUF1的地址相同的存储单元中;当post_c_idx=1时,该输入码流在进行交织之前的相邻列16和17的数据位于BUF0和BUF1的地址相同的存储单元中;......;当post_c_idx=15时,该输入码流在进行交织之前的相邻列30和31的数据位于BUF0和BUF1的地址相同的存储单元中。
本实施例中,每一列的数据可能存在若干行,并且由于列置换前后每一列的行数相同,而且每一行的行序号不变,所以上述BUF0和BUF1中的地址相同的存储单元的地址可以采用以下公式表示:
pos=post_c_idx*R+r_idx (1)
其中,pos表示BUF0和BUF1的地址相同的存储单元的地址,*表示作乘积,R表示进行交织处理之后的输入码流的行数,r_idx表示进行交织处理之后的输入码流的行序号,r_idx从0开始,直至最后一行r_idx=R-1。当r_idx每取一个值时,post_c_idx按顺序依次取值=0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15,16。在每一列的数据仅存在一行的情况下,上述的pos=post_c_idx。
当r_idx每取一个值时,依次将post_c_idx=0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15代入公式(1)即可计算出BUF0和BUF1的地址相同的存储单元的地址pos,进而可以从BUF0和BUF1的相同地址pos中读取紧挨着的相邻列数据,并按照排列顺序[BUF0,BUF1]将读取的相邻列数据重新排列,即可以获得进行交织处理之前的输入码流为{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31}。其中,排列顺序[BUF0,BUF1]表示每一次从BUF0和BUF1的相同地址pos读取紧挨着的相邻列数据之后,将从BUF0读取列数据排在前面,将从BUF1读取列数据排在后面。例如,从BUF0和BUF1的相同地址pos(post_c_idx=0)中读取相邻列数据为0和1,将读取的相邻列数据0和1按照排列顺序[BUF0,BUF1]进行排序为{0,1};其中,post_c_idx依次取值=0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15,将每一次从BUF0和BUF1的相同地址pos读取紧挨着的相邻列数据进行重新排列并连接后,即可获得进行交织处理之前的输入码流为{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31}。
本实施例中,可以设置clk_cnt[3:0]为时钟计数器,记录读取操作的时钟数,取值范围为[0,15],则post_c_idx={clk_cnt[0],clk_cnt[1],clk_cnt[2],clk_cnt[3]}。
在获得该输入码流在进行交织处理之前对应的码流之后,可以将获得的在进行交织处理之前的第二校验流对应的码流循环右移一位,从而完成信息流、第一校验流以及第二校验流的解交织处理。
举例二:
先将接收到的进行交织处理的输入码流按列写入BUF0至BUF3,其中,BUF0至BUF3中存储的数据量相等,而且该输入码流在进行交织之前对应的码流的相邻列数据位于BUF0至BUF3中的地址相同的存储单元中;其中,该输入码流包括信息流,第一校验流以及在进行交织处理之前经过循环左移一位处理的第二校验流;
从BUF0至BUF3中的地址相同的存储单元中同读取上述的相邻列数据并重新排序,获得该输入码流在进行交织处理之前对应的码流。即,从BUF0至BUF3中的地址相同的存储单元中逐列地读取相邻列数据,每一列所有行的数据全部读完后,再读下一列的所有行的数据,直至所有相邻列数据读取完毕为止。
假设在进行交织处理之前的输入码流为{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31},则根据表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},则将进行交织处理的输入码流按列写入BUF0至BUF3后,如表3所示,其中,BUF0中的存储单元存储了1/4的输入码流{0,16,8,24,4,20,12,28},BUF1中的存储单元存储了1/4的输入码流{2,18,10,26,6,22,14,30},BUF2中的存储单元存储了1/4的输入码流{1,17,9,25,5,21,13,29},BUF3中的存储单元存储了1/4的输入码流{3,19,11,27,7,23,15,31},即BUF0至BUF3存储的数据量相等。
其中,表3中的post_c_idx表示进行交织处理之后的输入码流的列序号,c_idx表示进行交织处理之前的输入码流的列序号。如表3所示,当post_c_idx=0时,该输入码流在进行交织处理之前的相邻列0,2,1和3的数据位于BUF0至BUF3的地址相同的存储单元中;当post_c_idx=1时,该输入码流在进行交织处理之前的相邻列16,18,17和15的数据位于BUF0至BUF3的地址相同的存储单元中;......;当post_c_idx=7时,该输入码流在进行交织处理之前的相邻列28,30,29和31的数据位于BUF0至BUF3的地址相同的存储单元中。
表3
本实施例中,每一列的数据可能存在若干行,并且由于列置换前后每一列的行数相同,而且每一行的行序号不变,所以上述的BUF0至BUF3中的地址相同的存储单元的地址可以采用公式(1)来表示。其中,pos表示BUF0至BUF3的地址相同的存储单元的地址,R表示进行交织处理后的输入码流的行数,r_idx表示进行交织处理后的输入码流的行序号,r_idx从0开始,直至最后一行r_idx=R-1。当r_idx每取一个值时,post_c_idx按顺序依次取值=0,4,2,6,1,5,3,7。在每一列的数据仅存在一行的情况下,上述的pos=post_c_idx。
当r_idx每取一个值时,依次将post_c_idx=0,4,2,6,1,5,3,7代入公式(1)即可计算出BUF0至BUF3的地址相同的存储单元的地址pos,进而可以从BUF0至BUF3的相同地址pos中读取相邻列数据,并按照排列顺序[BUF0,BUF2,BUF1,BUF3]将读取的相邻列数据重新排列,即可以获得进行交织处理之前的输入码流为{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31}。例如,从BUF0至BUF3的相同地址pos(post_c_idx=0)中读取相邻列数据为0,2,1和3,将读取的相邻列数据0,2,1和3按照排列顺序[BUF0,BUF2,BUF1,BUF3]进行排序为{0,1,2,3};其中,post_c_idx依次取值=0,4,2,6,1,5,3,7,将每一次从BUF0至BUF3的相同地址pos读取紧挨着的相邻列数据进行重新排列并连接后,即可获得进行交织处理之前的输入码流为{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31}。
本实施例中,可以设置clk_cnt[2:0]为时钟计数器,记录读取操作的时钟数,取值范围为[0,7],则post_c_idx={clk_cnt[0],clk_cnt[1],clk_cnt[2]}。
在获得该输入码流在进行交织处理之前对应的码流之后,可以将获得的在进行交织处理之前的第二校验流对应的码流循环右移一位,从而完成信息流、第一校验流以及第二校验流的解交织处理。
举例三:
先将接收到的进行交织处理的输入码流按列写入BUF0至BUF7,其中,BUF0至BUF7中存储的数据量相等,而且该输入码流在进行交织之前对应的码流的相邻列数据位于BUF0至BUF7中的地址相同的存储单元中;其中,该输入码流包括信息流,第一校验流以及在进行交织处理之前经过循环左移一位处理的第二校验流;
从BUF0至BUF7中的地址相同的存储单元中读取上述相邻列数据并重新排序,获得该输入码流在进行交织处理之前的码流。即,从BUF0至BUF7中的地址相同的存储单元中逐列地读取相邻列的数据,每一列所有行的数据全部读完后,再读下一列的所有行的数据,直至所有相邻列数据读取完毕为止。
假设在进行交织处理之前的输入码流为{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31},则根据表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},则将进行交织处理后的输入码流按列写入BUF0至BUF7后,如表4所示,其中,BUF0中的存储单元存储了1/8的输入码流{0,16,8,24},BUF1中的存储单元存储了1/8的输入码流{4,20,12,28},BUF2中存储了1/8的输入码流{2,18,10,26},BUF3中的存储单元存储了1/8的输入码流{6,22,14,30},BUF4的存储单元中存储了1/8的输入码流{1,17,9,25},BUF5的存储单元中存储了1/8的输入码流{5,21,13,29},BUF6中的存储单元存储了1/8的输入码流{3,19,11,27},BUF7中的存储单元存储了1/8的输入码流{7,23,15,31},即BUF0~BUF7存储的数据量相等。
其中,表4中的post_c_idx表示进行交织处理后的输入码流的列序号,c_idx表示进行交织处理之前的输入码流的列序号。如表4所示,当post_c_idx=0时,该输入码流在进行交织处理之前的相邻列0,4,2,6,1,5,3和7的数据位于BUF0至BUF7的地址相同的存储单元中;当post_c_idx=1时,该输入码流在进行交织处理之前的相邻列16,20,18,22,17,21,15和23的数据位于BUF0至BUF7的地址相同的存储单元中;......;当post_c_idx=3时,该输入码流在进行交织处理之前的相邻列24,28,26,30,25,29,27和31的数据位于BUF0至BUF7的地址相同的存储单元中。
表4
本实施例中,每一列的数据可能存在若干行,并且由于列置换前后每一列的行数相同,而且每一行的行序号不变,所以上述的BUF0至BUF7中的地址相同的存储单元的地址可以采用公式(1)来表示。其中,pos表示BUF0至BUF7的地址相同的存储单元的地址,R表示进行交织处理后的输入码流的行数,r_idx表示进行交织处理后的输入码流的行序号,r_idx从0开始,直至最后一行r_idx=R-1。当r_idx每取一个值时,post_c_idx按顺序依次取值==0,2,1,3。在每一列的数据仅存在一行的情况下,上述的pos=post_c_idx。
当r_idx每取一个值时,依次将post_c_idx=0,2,1,3代入公式(1)即可计算出BUF0至BUF7的地址相同的存储单元的地址pos,进而可以从BUF0至BUF7的相同地址pos中读取相邻列数据,并按照排列顺序[BUF0,BUF4,BUF2,BUF6,BUF1,BUF5,BUF3,BUF7]将读取的相邻列数据重新排列,即可以获得进行交织处理之前的输入码流为{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31}。例如,从BUF0至BUF7的相同地址pos(post_c_idx=0)中读取相邻列数据为0,4,2,6,1,5,3和7,将读取的相邻列数据0,4,2,6,1,5,3和7按照排列顺序[BUF0,BUF4,BUF2,BUF6,BUF1,BUF5,BUF3,BUF7]进行排序为{0,1,2,3,4,5,6,7};其中,post_c_idx依次取值=0,2,1,3,将每一次从BUF0至BUF7的相同地址pos读取紧挨着的相邻列数据进行重新排列并连接后,即可获得进行交织处理之前的输入码流为{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31}。
本实施例中,可以设置clk_cnt[1:0]为时钟计数器,记录读取操作的时钟数,取值范围为[0,3],则post_c_idx={clk_cnt[0],clk_cnt[1]}。
在获得该输入码流在进行交织处理之前对应的码流之后,可以将获得的在进行交织处理之前的第二校验流对应的码流循环右移一位,从而完成信息流、第一校验流以及第二校验流的解交织处理。
举例四:
先将接收到的进行交织处理的输入码流按列写入BUF0至BUF15,其中,BUF0至BUF15中存储的数据量相等,而且该输入码流在进行交织对应的码流的相邻列数据位于BUF0至BUF15中的地址相同的存储单元中;其中,该输入码流包括信息流,第一校验流以及在进行交织处理之前经过循环左移一位处理的第二校验流;
从BUF0至BUF15中的地址相同的存储单元中读取上述相邻列数据并重新排序,获得该输入码流在进行交织处理之前对应的码流。即,从BUF0至BUF15中的地址相同的存储单元中逐列地读取相邻列的数据,每一列所有行的数据全部读完后,再读下一列的所有行的数据,直至所有相邻列数据读取完毕为止。
假设在进行交织处理之前的输入码流为{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31},则根据表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},则将进行交织处理后的输入码流按列写入BUF0至BUF15后,如表5所示,其中,BUF0中的存储单元存储了1/16的输入码流{0,16},BUF1中的存储单元存储了1/16的输入码流{8,24},BUF2中的存储单元存储了1/16的输入码流{4,20},......,BUF13中的存储单元存储了1/16的输入码流{11,27},BUF14中的存储单元存储了1/16的输入码流{7,23},BUF15中的存储单元存储了1/16的输入码流{15,31},即BUF0至BUF15存储的数据量相等。
其中,表5中的post_c_idx表示进行交织处理后的输入码流的列序号,c_idx表示进行交织处理前的输入码流的列序号。如表5所示,当post_c_idx=0时,该输入码流在进行交织处理之前的相邻列0,8,4,12,2,10,6,14,1,9,5,13,3,11,7和15的数据位于BUF0至BUF15的地址相同的存储单元中;当post_c_idx=1时,该输入码流在进行交织处理前的相邻列16,24,20,28,18,26,22,30,17,25,21,29,19,27,23和31的数据位于BUF0至BUF15的地址相同的存储单元中。
表5
本实施例中,每一列的数据可能存在若干行,并且由于列置换前后每一列的行数相同,而且每一行的行序号不变,所以上述的BUF0至BUF15中的地址相同的存储单元的地址可以采用公式(1)来表示。其中,pos表示BUF0至BUF15的地址相同的存储单元的地址,R表示进行交织处理后的输入码流的行数,r_idx表示进行交织处理后的输入码流的行序号,r_idx从0开始,直至最后一行r_idx=R-1。当r_idx每取一个值时,post_c_idx按顺序依次取值=0,1。在每一列的数据仅存在一行的情况下,上述的pos=post_c_idx。
当r_idx每取一个值时,依次将post_c_idx=0,1代入公式(1)即可计算出BUF0至BUF15的地址相同的存储单元的地址pos,进而可以从BUF0至BUF15的相同地址pos中读取相邻列数据,并按照排列顺序[BUF0,BUF8,BUF4,BUF12,BUF2,BUF10,BUF6,BUF14,BUF1,BUF9,BUF5,BUF13,BUF3,BUF11,BUF7,BUF15]将读取的相邻列数据重新排列,即可以获得进行交织处理之前的输入码流为{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31}。
本实施例中,可以设置clk_cnt[0]为时钟计数器,记录读取操作的时钟数,取值范围为[0,1],则post_c_idx={clk_cnt[0]}。
在获得该输入码流在进行交织处理之前对应的码流之后,可以将获得的在进行交织处理之前的第二校验流对应的码流循环右移一位,从而完成信息流、第一校验流以及第二校验流的解交织处理。
举例五:
先将接收到的进行交织处理的输入码流按列写入BUF0至BUF31,其中,BUF0至BUF31中存储的数据量相等,而且该输入码流在进行交织之前对应的码流的相邻列数据分布存储在BUF0至BUF31中的地址相同的存储单元中;其中,该输入码流包括信息流,第一校验流以及在进行交织处理之前经过循环左移一位处理的第二校验流;
从BUF0至BUF31中的地址相同的存储单元中读取上述相邻列数据并重新排序,获得该输入码流在进行交织处理之前的码流。即,从BUF0至BUF31中的地址相同的存储单元中逐列地读取相邻列的数据,每一列所有行的数据全部读完后,再读下一列的所有行的数据,直至所有相邻列数据读取完毕为止。
假设在进行交织处理之前的输入码流为{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31},则根据表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},则将进行交织处理后的输入码流按列写入BUF0至BUF31后,如表6所示,BUF0中的存储单元存储了1/32的输入码流{0},BUF1中的存储单元存储了1/32的输入码流{16},BUF2中的存储单元存储了1/32的输入码流{8},......,BUF30中的存储单元存储了1/32的输入码流{15},BUF31中的存储单元存储了1/32的输入码流{31},即BUF0至BUF31存储的数据量相等。
其中,表6中的post_c_idx表示进行交织处理后的输入码流的列序号,c_idx表示进行交织处理前的输入码流的列序号。如表6所示,当post_c_idx=0时,该输入码流在进行交织处理前的相邻列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的数据位于BUF0至BUF16的地址相同的存储单元中。
表6
本实施例中,每一列的数据可能存在若干行,并且由于列置换前后每一列的行数相同,而且每一行的行序号不变,所以上述的BUF0至BUF31中的地址相同的存储单元的地址可以采用公式(1)来表示。其中,pos表示BUF0至BUF31的地址相同的存储单元的地址,R表示进行交织处理后的输入码流的行数,r_idx表示进行交织处理后的输入码流的行序号,r_idx从0开始,直至最后一行r_idx=R-1。当r_idx每取一个值时,post_c_idx均取值=0。在每一列的数据仅存在一行的情况下,上述的pos=post_c_idx。
当r_idx每取一个值时,依次将post_c_idx=0代入公式(1)即可计算出BUF0至BUF31的地址相同的存储单元的地址pos,进而可以从BUF0至BUF31的相同地址pos中读取相邻列数据,并按照排列顺序[BUF0,BUF16,BUF8,BUF24,BUF4,BUF20,BUF12,BUF28,BUF2,BUF18,BUF10,BUF26,BUF6,BUF22,BUF14,BUF30,BUF1,BUF17,BUF9,BUF25,BUF5,BUF21,BUF13,BUF29,BUF3,BUF19,BUF11,BUF27,BUF7,BUF23,BUF15,BUF31]将读取的相邻列数据重新排列,即可以获得进行交织处理前的输入码流为{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31}。
在获得该输入码流在进行交织处理之前对应的码流之后,可以将获得的在进行交织处理之前的第二校验流对应的码流循环右移一位,从而完成信息流、第一校验流以及第二校验流的解交织处理。
上述对本发明实施例中提供的数据解交织方法进行了介绍,本发明实施例可以并行地进行解交织,从而能够提高解交织时数据的吞吐率;另外,由于在写入数据之前无需计算地址,可以均衡解交织的复杂度。
本发明实施例中,若输入码流仅仅包括信息流和第一校验流,则本发明实施例提供的另一种数据解交织方法包括上述的步骤101和步骤102即可,其中,举例说明与上述举例一至举例五相同,本发明实施例不作赘述。可以并行地进行解交织,从而能够提高解交织时数据的吞吐率;另外,由于在写入数据之前无需计算地址,可以均衡解交织的复杂度。
请参阅图2,图2为本发明实施例中提供的一种数据解交织装置的结构图,如图2所示,该装置可以包括:
写入模块201,用于将接收到的经过交织处理的输入码流按列写入至少二个不同缓存202;
本实施例中,经过交织处理的输入码流为信息流或第一校验流。
至少二个不同缓存202,用于存储写入模块201写入的输入码流,其中,每个缓存中存储的数据量相等,而且上述输入码流在进行交织处理之前对应的码流的相邻列数据位于不同缓存相对应的存储单元中;
本实施例中,不同缓存的个数为2n个,其中,1<=n<=5。
读取模块203,用于从从不同缓存相对应的存储单元中读取相邻列数据并重新排序,获得上述输入码流在进行交织处理之前对应的码流。
举例来说,上述输入码流在进行交织处理之前对应的码流的相邻列数据可以位于不同缓存的地址相同的存储单元中。相应地,读取模块203可以从从不同缓存的地址相同的存储单元中读取相邻列数据并重新排序,获得上述输入码流在进行交织处理之前对应的码流。
可选地,若上述输入码流为在进行交织处理之前经过循环左移一位处理的第二校验流,则装置还可以包括:
调整模块204,用于将读取模块203获得的第二校验流在进行交织处理之前对应的码流的循环右移一位。
举例来说,写入模块201具体可以用于将接收到的经过交织处理的输入码流按列写入如表2所示的BUF0和BUF1;
相应地,读取模块203具体可以用于从BUF0和BUF1的地址为post_c_idx*R+r_idx的存储单元中读取相邻列数据,其中,post_c_idx表示经过交织处理的输入码流的列序号,*表示作乘积,R表示经过交织处理的输入码流的行数,r_idx表示经过交织处理的输入码流的行序号,并且r_idx依次取值=0,1,2,......,R-1;每当r_idx取一个值时,post_c_idx按顺序依次取值=0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15,16;并按照排列顺序[BUF0,BUF1]将读取的相邻列数据重新排列。
举例来说,写入模块201具体可以用于将接收到的经过交织处理的输入码流按列写入如表3所示BUF0至BUF3;
相应地,读取模块203具体可以用于从BUF0至BUF3的地址为post_c_idx*R+r_idx的存储单元中读取相邻列数据,其中,post_c_idx表示经过交织处理的输入码流的列序号,*表示作乘积,R表示经过交织处理的输入码流的行数,r_idx表示经过交织处理的输入码流的行序号,并且r_idx依次取值=0,1,2,......,R-1;每当r_idx取一个值时,post_c_idx按顺序依次取值=0,4,2,6,1,5,3,7;并按照排列顺序[BUF0,BUF2,BUF1,BUF3]将读取的相邻列数据重新排列。
举例来说,写入模块201具体可以用于将接收到的经过交织处理的输入码流按列写入如表4所示的BUF0至BUF7;
相应地,上述读取模块203具体可以用于从BUF0至BUF7的地址为post_c_idx*R+r_idx的存储单元中读取相邻列数据,其中,post_c_idx表示经过交织处理的输入码流的列序号,*表示作乘积,R表示经过交织处理的输入码流的行数,r_idx表示经过交织处理的输入码流的行序号,并且r_idx依次取值=0,1,2,......,R-1;每当r_idx取一个值时,post_c_idx按顺序依次取值=0,2,1,3;并按照排列顺序[BUF0,BUF4,BUF2,BUF6,BUF1,BUF5,BUF3,BUF7]将读取的相邻列数据重新排列。
举例来说,写入模块201具体可以用于将接收到的经过交织处理的输入码流按列写入如表5所示的BUF0至BUF15;
相应地,上述读取模块203具体可以用于从BUF0至BUF15的地址为post_c_idx*R+r_idx的存储单元中读取相邻列数据,其中,post_c_idx表示经过交织处理的输入码流的列序号,*表示作乘积,R表示经过交织处理的输入码流的行数,r_idx表示经过交织处理的交织后的输入码流的行序号,并且r_idx依次取值=0,1,2,......,R-1;每当r_idx取一个值时,post_c_idx按顺序依次取值=0,1;并按照排列顺序[BUF0,BUF8,BUF4,BUF12,BUF2,BUF10,BUF6,BUF14,BUF1,BUF9,BUF5,BUF13,BUF3,BUF11,BUF7,BUF15]将读取的相邻列数据重新排列。
举例来说,写入模块201具体可以用于将接收到的经过交织处理的输入码流按列写入如表6所示的BUF0至BUF31;
相应地,上述读取模块203具体用于从BUF0至BUF31的地址为post_c_idx*R+r_idx中读取相邻列的数据,其中,post_c_idx表示经过交织处理的输入码流的列序号,*表示作乘积,R表示经过交织处理的输入码流的行数,r_idx表示经过交织处理的输入码流的行序号,并且r_idx依次取值=0,1,2,......,R-1;每当r_idx取一个值时,post_c_idx=0;并按照排列顺序[BUF0,BUF16,BUF8,BUF24,BUF4,BUF20,BUF12,BUF28,BUF2,BUF18,BUF10,BUF26,BUF6,BUF22,BUF14,BUF30,BUF1,BUF17,BUF9,BUF25,BUF5,BUF21,BUF13,BUF29,BUF3,BUF19,BUF11,BUF27,BUF7,BUF23,BUF15,BUF31]将读取的相邻列数据重新排列。
上述对本发明实施例中提供的数据解交织装置进行了介绍,本发明实施例可以并行地进行解交织,从而能够提高解交织的吞吐率;另外,由于在写入数据之前无需计算地址,可以均衡解交织的复杂度。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过纯硬件来完成,或者通过程序指令相关硬件来完成。前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:只读存储器(ROM)、随机存取器(RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上对本发明实施例中提供的一种数据解交织方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。
Claims (21)
1.一种数据解交织方法,其特征在于,包括:
接收端将接收到的经过交织处理的输入码流按列写入至少二个不同缓存,以使得每个缓存中存储的数据量相等,而且所述输入码流在进行交织处理之前对应的码流的相邻列数据位于不同缓存相对应的存储单元中;所述输入码流包括信息流,第一校验流以及第二校验流;
从不同缓存相对应的存储单元中读取所述相邻列数据并重新排序,获得所述输入码流在进行交织处理之前对应的码流;所述输入码流在进行交织处理之前对应的码流包括信息流、第一校验流在进行交织处理之前各自对应的码流,以及所述第二校验流在进行交织处理之前经过循环左移一位处理的码流;
将第二校验流在进行交织处理之前对应的码流循环右移一位。
2.根据权利要求1所述的方法,其特征在于,所述接收端将接收到的经过交织处理的输入码流按列写入至少二个不同缓存包括:
接收端将接收到的经过交织处理的输入码流按列写入2n个缓存,其中,1<=n<=5。
3.根据权利要求2所述的方法,其特征在于,所述从不同缓存相对应的存储单元中读取所述相邻列数据并重新排序,获得所述输入码流在进行交织处理之前对应的码流包括:
从不同缓存的地址相同的存储单元中读取所述相邻列数据并重新排序,获得所述输入码流在进行交织处理之前对应的码流。
4.根据权利要求3所述的方法,其特征在于,若所述至少二个缓存为缓存0和缓存1,则从不同缓存的地址相同的存储单元中读取所述相邻列数据并重新排序,获得所述输入码流在进行交织处理之前对应的码流包括:
从所述缓存0和缓存1的地址为post_c_idx*R+r_idx的存储单元中读取所述相邻列数据,其中,所述post_c_idx表示所述输入码流的列序号,*表示作乘积,R表示所述输入码流的行数,r_idx表示所述输入码流的行序号,并且r_idx依次取值=0,1,2,......,R-1;每当r_idx取一个值时,所述post_c_idx按顺序依次取值=0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15,16;
按照排列顺序[缓存0,缓存1]将读取的所述相邻列数据重新排列。
5.根据权利要求3所述的方法,其特征在于,若所述至少二个缓存为缓存0至缓存3,则从不同缓存的地址相同的存储单元中读取所述相邻列数据并重新排序,获得所述输入码流在进行交织处理之前对应的码流包括:
从缓存0至缓存3的地址为post_c_idx*R+r_idx的存储单元中读取所述相邻列数据,其中,所述post_c_idx表示所述输入码流的列序号,*表示作乘积,R表示所述输入码流的行数,r_idx表示所述输入码流的行序号,并且r_idx依次取值=0,1,2,......,R-1;每当r_idx取一个值时,所述post_c_idx按顺序依次取值=0,4,2,6,1,5,3,7;
按照排列顺序[缓存0,缓存2,缓存1,缓存3]将读取的所述相邻列数据重新排列。
6.根据权利要求3所述的方法,其特征在于,若接收端将经过交织处理的输入码流按列写入缓存0至缓存7,则从不同缓存的地址相同的存储单元中读取所述相邻列数据并重新排序,获得所述输入码流在进行交织处理之前对应的码流包括:
从缓存0至缓存7的地址为post_c_idx*R+r_idx的存储单元中读取所述相邻列数据,其中,所述post_c_idx表示所述输入码流的列序号,*表示作乘积,R表示所述输入码流的行数,r_dx表示所述输入码流的行序号,并且r_idx依次取值=0,1,2,......,R-1;每当r_idx取一个值时,所述post_c_idx按顺序依次取值=0,2,1,3;
按照排列顺序[缓存0,缓存4,缓存2,缓存6,缓存1,缓存5,缓存3,缓存7]将读取的所述相邻列数据重新排列。
7.根据权利要求3所述的方法,其特征在于,若接收端将经过交织处理的输入码流按列写入缓存0至缓存15,则从不同缓存的地址相同的存储单元中读取所述相邻列数据并重新排序,获得所述输入码流在进行交织处理之前对应的码流包括:
从缓存0至缓存15的地址为post_c_idx*R+r_idx的存储单元中读取所述相邻列数据,其中,所述post_c_idx表示所述输入码流的列序号,*表示作乘积,R表示所述输入码流的行数,r_idx表示所述交织后的输入码流的行序号,并且r_idx依次取值=0,1,2,......,R-1;每当r_idx取一个值时,所述post_c_idx按顺序依次取值=0,1;
按照排列顺序[缓存0,缓存8,缓存4,缓存12,缓存2,缓存10,缓存6,缓存14,缓存1,缓存9,缓存5,缓存13,缓存3,缓存11,缓存7,缓存15]将读取的所述相邻列数据重新排列。
8.根据权利要求3所述的方法,其特征在于,若接收端将经过交织处理的输入码流按列写入缓存0至缓存31,则从不同缓存的地址相同的存储单元中读取所述相邻列数据并重新排序,获得所述输入码流在进行交织处理之前对应的码流包括:
从缓存0至缓存31的地址为post_c_idx*R+r_idx中读取所述相邻列数据,其中,所述post_c_idx表示所述交织后的输入码流的列序号,*表示作乘积,R表示所述输入码流的行数,r_idx表示所述输入码流的行序号,并且r_idx依次取值=0,1,2,......,R-1;每当r_idx取一个值时,所述post_c_idx=0;
按照排列顺序[缓存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]将读取的所述相邻列数据重新排列。
9.一种数据解交织方法,其特征在于,包括:
接收端将接收到的经过交织处理的输入码流按列写入至少二个不同缓存,以使得每个缓存中存储的数据量相等,而且所述输入码流在进行交织处理之前对应的码流的相邻列数据位于不同缓存相对应的存储单元中;
从不同缓存相对应的存储单元中读取所述相邻列数据并重新排序,获得所述输入码流在进行交织处理之前对应的码流。
10.根据权利要求9所述的方法,其特征在于,所述输入码流为信息流或者第一校验流。
11.根据权利要求9所述的方法,其特征在于,所述输入码流为在进行交织处理之前经过循环左移一位处理的第二校验流,则在获得所述第二校验流在进行交织处理之前对应的码流之后,所述方法还包括:
将第二校验流在进行交织处理之前对应的码流循环右移一位。
12.根据权利要求9~11任一项所述的方法,其特征在于,所述接收端将接收到的经过交织处理的输入码流按列写入至少二个不同缓存包括:
接收端将接收到的经过交织处理的输入码流按列写入2n个缓存,其中,1<=n<=5。
13.一种数据解交织装置,其特征在于,包括:
写入模块,用于将接收到的经过交织处理的输入码流按列写入至少二个不同缓存;
所述至少二个不同缓存,用于存储所述输入码流,其中,每个缓存中存储的数据量相等,而且所述输入码流在进行交织处理之前对应的码流的相邻列数据位于不同缓存相对应的存储单元中;
读取模块,用于从所述从不同缓存相对应的存储单元中读取所述相邻列数据并重新排序,获得所述输入码流在进行交织处理之前对应的码流。
14.根据权利要求13所述的装置,其特征在于,所述输入码流为信息流或者第一校验流。
15.根据权利要求13所述的装置,其特征在于,若所述输入码流为在进行交织处理之前经过循环左移一位处理的第二校验流,则所述装置还包括:
调整模块,用于将所述读取模块获得的所述第二校验流在进行交织处理之前对应的码流的循环右移一位。
16.根据权利要求13~15任一项所述的装置,其特征在于,所述缓存的个数为2n个,其中,1<=n<=5。
17.根据权利要求16所述的装置,其特征在于,
所述写入模块,具体用于将接收到的经过交织处理的输入码流按列写入缓存0和缓存1;
所述读取模块,具体用于从所述缓存0和缓存1的地址为post_c_idx*R+r_idx的存储单元中读取所述相邻列数据,其中,所述post_c_idx表示所述输入码流的列序号,*表示作乘积,R表示所述输入码流的行数,r_idx表示所述输入码流的行序号,并且r_idx依次取值=0,1,2,......,R-1;每当r_idx取一个值时,所述post_c_idx按顺序依次取值=0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15,16;并按照排列顺序[缓存0,缓存1]将读取的所述相邻列数据重新排列。
18.根据权利要求16所述的装置,其特征在于,
所述写入模块,具体用于将接收到的经过交织处理的输入码流按列写入缓存0至缓存3;
所述读取模块,具体用于从所述缓存0至缓存3的地址为post_c_idx*R+r_idx的存储单元中读取所述相邻列数据,其中,所述post_c_idx表示所述输入码流的列序号,*表示作乘积,R表示所述输入码流的行数,r_idx表示所述输入码流的行序号,并且r_idx依次取值=0,1,2,......,R-1;每当r_idx取一个值时,所述post_c_idx按顺序依次取值=0,4,2,6,1,5,3,7;并按照排列顺序[缓存0,缓存2,缓存1,缓存3]将读取的所述相邻列数据重新排列。
19.根据权利要求16所述的装置,其特征在于,
所述写入模块,具体用于将接收到的经过交织处理的输入码流按列写入缓存0至缓存7;
所述读取模块,具体用于从所述缓存0至缓存7的地址为post_c_idx*R+r_idx的存储单元中读取所述相邻列数据,其中,所述post_c_idx表示所述输入码流的列序号,*表示作乘积,R表示所述输入码流的行数,r_idx表示所述输入码流的行序号,并且r_idx依次取值=0,1,2,......,R-1;每当r_idx取一个值时,所述post_c_idx按顺序依次取值=0,2,1,3;并按照排列顺序[缓存0,缓存4,缓存2,缓存6,缓存1,缓存5,缓存3,缓存7]将读取的所述相邻列数据重新排列。
20.根据权利要求16所述的装置,其特征在于,
所述写入模块,具体用于将接收到的经过交织处理的输入码流按列写入缓存0至缓存15;
所述读取模块,具体用于从所述缓存0至缓存15的地址为post_c_idx*R+r_idx的存储单元中读取所述相邻列数据,其中,所述post_c_idx表示所述输入码流的列序号,*表示作乘积,R表示所述输入码流的行数,r_idx表示所述交织后的输入码流的行序号,并且r_idx依次取值=0,1,2,......,R-1;每当r_idx取一个值时,所述post_c_idx按顺序依次取值=0,1;并按照排列顺序[缓存0,缓存8,缓存4,缓存12,缓存2,缓存10,缓存6,缓存14,缓存1,缓存9,缓存5,缓存13,缓存3,缓存11,缓存7,缓存15]将读取的所述相邻列数据重新排列。
21.根据权利要求16所述的装置,其特征在于,
所述写入模块,具体用于将接收到的经过交织处理的输入码流按列写入缓存0至缓存31;
所述读取模块,具体用于从所述缓存0至缓存31的地址为post_c_idx*R+r_idx中读取所述相邻列数据,其中,所述post_c_idx表示所述交织后的输入码流的列序号,*表示作乘积,R表示所述输入码流的行数,r_idx表示所述输入码流的行序号,并且r_idx依次取值=0,1,2,......,R-1;每当r_idx取一个值时,所述post_c_idx=0;并按照排列顺序[缓存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]将读取的所述相邻列数据重新排列。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010264163 CN102136879B (zh) | 2010-08-24 | 2010-08-24 | 一种数据解交织方法及装置 |
PCT/CN2011/075167 WO2011144144A1 (zh) | 2010-08-24 | 2011-06-02 | 一种数据解交织方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010264163 CN102136879B (zh) | 2010-08-24 | 2010-08-24 | 一种数据解交织方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102136879A true CN102136879A (zh) | 2011-07-27 |
CN102136879B CN102136879B (zh) | 2013-04-24 |
Family
ID=44296542
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010264163 Active CN102136879B (zh) | 2010-08-24 | 2010-08-24 | 一种数据解交织方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN102136879B (zh) |
WO (1) | WO2011144144A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102420674A (zh) * | 2011-11-01 | 2012-04-18 | 上海华为技术有限公司 | 子块交织方法及并行子块交织器 |
WO2017193396A1 (zh) * | 2016-05-13 | 2017-11-16 | 华为技术有限公司 | 信息处理方法、终端及基站 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101388745A (zh) * | 2008-03-05 | 2009-03-18 | 中科院嘉兴中心微系统所分中心 | 一种应用于无线多媒体传感网的并行信道解码装置 |
CN101499875A (zh) * | 2008-02-02 | 2009-08-05 | 三星电子株式会社 | 支持可变处理速率的lte解速率匹配与解交织的装置 |
CN101674161A (zh) * | 2009-10-15 | 2010-03-17 | 华为技术有限公司 | 解速率匹配方法及装置 |
-
2010
- 2010-08-24 CN CN 201010264163 patent/CN102136879B/zh active Active
-
2011
- 2011-06-02 WO PCT/CN2011/075167 patent/WO2011144144A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101499875A (zh) * | 2008-02-02 | 2009-08-05 | 三星电子株式会社 | 支持可变处理速率的lte解速率匹配与解交织的装置 |
CN101388745A (zh) * | 2008-03-05 | 2009-03-18 | 中科院嘉兴中心微系统所分中心 | 一种应用于无线多媒体传感网的并行信道解码装置 |
CN101674161A (zh) * | 2009-10-15 | 2010-03-17 | 华为技术有限公司 | 解速率匹配方法及装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102420674A (zh) * | 2011-11-01 | 2012-04-18 | 上海华为技术有限公司 | 子块交织方法及并行子块交织器 |
CN102420674B (zh) * | 2011-11-01 | 2014-03-26 | 上海华为技术有限公司 | 子块交织方法及并行子块交织器 |
WO2017193396A1 (zh) * | 2016-05-13 | 2017-11-16 | 华为技术有限公司 | 信息处理方法、终端及基站 |
Also Published As
Publication number | Publication date |
---|---|
CN102136879B (zh) | 2013-04-24 |
WO2011144144A1 (zh) | 2011-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109379086B (zh) | 低复杂度的码率兼容的5g ldpc编码方法和编码器 | |
CN103034605B (zh) | 实现可变宽度链路的方法及装置 | |
CN102084346B (zh) | 用于存储器的多路访问的地址生成 | |
WO2010145451A1 (zh) | 一种实现aes加解密的装置和方法 | |
JP2005535190A5 (zh) | ||
CN101986584A (zh) | 一种3gpp lte中的解速率匹配装置和方法 | |
JP2007513549A5 (zh) | ||
TWI380598B (en) | Programmable ldpc code decoder and decoding method thereof | |
CN101540654A (zh) | 一种交织速率匹配和解交织解速率匹配方法 | |
JP2002335160A5 (zh) | ||
CN104238995B (zh) | 一种非线性反馈移位寄存器 | |
CN102136879B (zh) | 一种数据解交织方法及装置 | |
CN104601180B (zh) | 一种基于扩展汉明码的二维乘积码编码装置及编码方法 | |
CN100440737C (zh) | 一种高度结构化的ldpc编码和解码方法及其编码器和解码器 | |
CN107409011A (zh) | 发送器及其产生附加奇偶校验的方法 | |
CN102882532A (zh) | 循环右移累加基的cmmb中ldpc编码器和编码方法 | |
CN101944972B (zh) | 编解码方法、装置以及通信系统 | |
JP2001292131A (ja) | 次世代移動通信システムの伝送率マッチング装置及びその方法 | |
CN102098126B (zh) | 用于块状编码的交织装置、速率匹配方法及装置 | |
CN101924608B (zh) | 一种实现块交织的方法、装置及发射机 | |
CN103873188B (zh) | 一种并行解速率匹配方法和装置 | |
CN106506010A (zh) | 一种基于dvb‑s2标准多码率兼容的ldpc编码器 | |
CN102594371B (zh) | 一种Turbo编码交织处理的方法及装置 | |
CN102201817A (zh) | 基于存储器折叠架构优化的低功耗ldpc译码器 | |
US20130198582A1 (en) | Supercharged codes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |