CN102412850B - Turbo码并行交织器及其并行交织方法 - Google Patents
Turbo码并行交织器及其并行交织方法 Download PDFInfo
- Publication number
- CN102412850B CN102412850B CN201010293964.1A CN201010293964A CN102412850B CN 102412850 B CN102412850 B CN 102412850B CN 201010293964 A CN201010293964 A CN 201010293964A CN 102412850 B CN102412850 B CN 102412850B
- Authority
- CN
- China
- Prior art keywords
- row
- address
- unit
- mod
- data
- 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
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/29—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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2903—Methods and arrangements specifically for encoding, e.g. parallel encoding of a plurality of constituent codes
-
- 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
- H03M13/271—Row-column interleaver with permutations, e.g. block interleaving with inter-row, inter-column, intra-row or intra-column permutations
-
- 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/2739—Permutation polynomial interleaver, e.g. quadratic permutation polynomial [QPP] interleaver and quadratic congruence interleaver
-
- 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/276—Interleaving address generation
- H03M13/2764—Circuits therefore
-
- 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/2771—Internal interleaver for turbo codes
- H03M13/2775—Contention or collision free turbo code internal interleaver
-
- 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/2782—Interleaver implementations, which reduce the amount of required interleaving memory
-
- 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/29—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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2957—Turbo codes and decoding
-
- 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/3972—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using sliding window techniques or parallel windows
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Error Detection And Correction (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
本发明公开了一种Turbo码并行交织器及其并行交织方法。Turbo码并行交织器包括:交叉单元,用于产生并行读取数据的列地址,及用于对数据进行行交叉的各行的行地址,将列地址及延迟后的列地址输入到CB矩阵单元,将各行的行地址输入到转换输出单元,以及将各行的行地址进行延迟后输入到转换输入单元;转换输出单元,用于接收CB矩阵单元输出的各行数据,根据各行的行地址,将各行数据进行行间交叉,并将交叉后的数据输入到并行MAP单元做MAP计算;转换输入单元,用于接收来延迟后的各行的行地址,根据该行地址将并行MAP单元进行MAP计算后输出的各行数据进行行间交叉,将交叉后的各行数据作为先验信息写入到CB矩阵单元。
Description
技术领域
本发明涉及通信领域中的Turbo译码处理技术,具体而言,涉及一种Turbo码并行交织器及其并行交织方法。
背景技术
Turbo码是LTE中一种重要的信道编码方式,其特征是编译码复杂度高,时延大,但误码性能优异,适合于大数据量的长码块及对时延要求不高的数据传输。Turbo码的成功在于它能很好地满足香农信道编码理论中的随机性条件,并且采用了迭代译码的方式来获得编码增益,因此能够获得逼近香农限的极限性能。
图1是Turbo译码器的结构示意图,由两个软输入软输出(SISO)的RSC码分量译码单元组成,中间通过交织器和解交织器相连,进行迭代译码。译码单元1所输出的外赋信息apri1作为译码单元2的先验信息,辅助其译码;同样,译码单元2所输出的外赋信息apri2作为译码单元1的先验信息,如此反复迭代进行译码。译码单元1和译码单元2的硬件结构完全相同,在硬件实现时可以采用分时复用,节省硬件资源。译码单元1和译码单元2中主要是实现对数域的Max-Log-Map算法,其中将乘法和指数运算简化为加法和取最大值的运算,从而降低了计算复杂度,利于硬件实现。对于并行的Turbo译码器而言,其核心就是要在译码单元1和译码单元2中设置多个并行的Max-Log-Map计算单元,使之同时对同一码块数据进行分段译码。
交织器在Turbo译码器中发挥着关键作用,直接影响Turbo译码器的性能。LTE采用的是二次置换多项式(Quadratic PermutationPolynomial,QPP)交织器,这种交织器是无争用(Contention-free,CF)交织器的一种,其表达式为∏(i)=(f1·i+f2·i2)mod K(式1-1),其中i和∏(i)分别为交织前和交织后的序号;K为码块的长度;f1和f2是两个参数,具体可以根据码块长度K确定。即,假设长度为K的比特流c0,c1,...,ck-1,交织器的输出c′0,c′1,...,c′k-1,则c′i可以表示为c′i=c∏(i)。
LTE系统要求支持100Mbps以上的峰值数据速率,这对信道编码译码速度提出了更高的要求,为了满足这一要求,LTE中的Turbo码必须采用并行译码算法。对于Turbo码并行译码而言,交织器的设计也要适应其并行译码的要求,发明人发现在相关技术中,还没有一种能有效进行并行交织的Turbo码交织器和方法。
发明内容
本发明的主要目的在于提供一种Turbo码并行交织器及其并行交织方法,以至少解决上述不能有效地进行并行交织的问题。
根据本发明的一个方面,提供了一种Turbo码并行交织器,包括:交叉单元,用于产生并行读取数据的列地址,以及用于对读取的数据进行行交叉的各行的行地址,将所述列地址作为读地址输入到码块CB矩阵单元,将所述列地址进行延迟后作为写地址输入到所述CB矩阵单元,将各行的所述行地址输入到转换输出单元,以及将各行的所述行地址进行延迟后输入到转换输入单元;转换输出单元,用于接收所述CB矩阵单元输出的各行数据,根据各行的所述行地址,将读取的各行数据进行行间交叉,并将交叉后的数据输入到并行匹配MAP单元做MAP计算,其中,所述各行数据为所述CB矩阵单元根据所述读地址读取的;转换输入单元,用于接收来自所述交叉单元的延迟后的各行的所述行地址,根据延迟之后的行地址将所述并行MAP单元进行MAP计算后输出的各行数据进行行间交叉,并将交叉后的各行数据作为先验信息按照所述写地址写入到所述CB矩阵单元。
根据本发明的另一方面,提供了一种Turbo码并行交织器的并行交织方法,包括:交叉单元产生并行读取数据列地址,以及用于对读取的数据进行行交叉的各行的行地址,将所述列地址作为读地址输入到CB矩阵单元,将所述列地址进行延迟后作为写地址输入到所述CB矩阵单元,将各行的所述行地址输入到转换输出单元,并将各行的所述行地址进行延时后输入到转换输入单元;CB矩阵单元根据所述读地址读取与所述列地址对应的各行数据,并将读取的各行数据输入到所述转换输出单元,所述转换输出单元根据所述交叉单元输出的各行的所述行地址对读取的各行数据进行行间交叉,并将交叉后的数据输入到并行MAP单元做MAP计算;转换输入单元接收来自所述交叉单元的延迟后的各行的所述行地址,根据延迟之后的行地址将所述并行MAP单元进行MAP计算后输出的各行数据进行行间交叉,并将交叉后的数据作为先验信息按照所述写地址写入到所述CB矩阵单元。
通过本发明,根据Turbo码并行交织器的交叉单元产生的列地址,并行的读取一列数据,并将读取的数据按照交叉单元产生的各行的行地址进行行交叉,从而实现数据的行内交织和行间交织;而转换输入单元根据交叉单元产生的经过延迟后的各行的行地址对经过MAP计算后的各行数据进行行交叉,并将交叉后的数据作为先验信息写入到CB矩阵中与交叉单元产生的列地址对应的位置,从而可以有效的进行并行解交织,进而提高了交织和解交织的效率。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据相关技术的Turbo译码器的结构示意图;
图2是根据本发明实施例的Turbo码交织器的结构示意图;
图3是本发明实施例的CB矩阵中存储的矩阵结构示意图;
图4是根据本发明优选实施例的交叉单元的结构示意图;
图5是根据本发明另一优选实施例的交叉单元的结构示意图;
图6是根据本发明实施例的Turbo码交织器的并行交织方法的流程图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
图1中的交织器与解交织器是一个互逆的处理过程,即一个输入序列先后经过交织和解交织之后又恢复到原始的顺序,而一个输入序列先后经过两次交织以后也可以达到同样的效果。因此,在本发明实施例中,在硬件上将交织器和解交织器合二为一,其中,解交织器的计算结果比交织器的计算结果晚若干个时钟周期,即译码单元2的时延。
图2为根据本发明实施例的Turbo码并行交织器的结构示意图,如图2所示,该Turbo码交织器主要包括:交叉单元(interleave)10、转换输出(switch_out)单元20和转换输入(switch_in)单元30。其中,如图2所示,交叉单元10,用于产生并行读取数据的列地址,以及用于对读取的数据进行行交叉的各行的行地址,将该列地址作为读地址输入到码块(code block,简称为CB)矩阵单元,将该列地址进行延迟后作为写地址输入到CB矩阵单元,将各行的行地址输入到转换输出单元20,并将各行的行地址进行延迟后输入到转换输入单元30;转换输出单元20,用于接收CB矩阵单元输出的各行数据(其中,CB矩阵单元根据上述读地址读取一列数据,并将读取的数据输出到转换输出单元20),根据交叉单元10输出的各行的行地址,将并行读取的各行数据进行行间交叉,并将交叉后的数据输入到并行匹配(MAP)单元做Max-Log-Map运算(简称MAP运算);转换输入单元30,用于接收来自交叉单元10的延迟后各行的行地址,由于输入到转换输入单元30的各行的行地址进行了延迟,从而使得转换输入单元30接收的各行的行地址可以保持和并行MAP单元的计算时延同步,转换输入单元30根据延迟之后的行地址将并行MAP单元进行MAP计算后输出的各行数据进行行间交叉,并将交叉后的各行数据作为先验信息按照上述写地址写入到CB矩阵单元。
在本发明实施例中,将一个待译码的码块(code block,CB)的软比特信息以及译码过程中所用的先验信息按照R×L矩阵格式存放,其中R表示矩阵的行数,L表示矩阵的列数。并行译码过程是从矩阵中同时读出1列R行的数据,并将这R个数据按照一定的映射规则送给并行MAP单元(parallel map units)做R路并行的MAP运算。
其中,CB矩阵单元中包括四个R×L矩阵,分别用于存放一个码块所对应的系统比特sb、校验比特p0、校验比特p1以及先验信息apri。其中,矩阵的行数R取决于码块长度K,优选地,可以通过下面公式确定R:
矩阵的列数L=K/R。
例如,假定K=6144,该码块(CB)的比特顺序为(c0,c1,c2,...,c6143),则该序列在R×L矩阵中的排列顺序如附图3所示。
其中,校验比特p0和校验比特p1不需要进行交织,其中,校验比特p0和p1只选择其一输入并行MAP单元,当前MAP运算的次数为奇数时,输入并行MAP单元的为校验比特p0,当前MAP运算的次数为偶数时,输入并行MAP单元的为校验比特p1。而对于系统比特sb和先验信息api,CB矩阵单元按照交叉单元10产生的列地址分别读取一列数据输入到转换输出单元20,然后转换输出单元20按照交叉单元10产生的各行的行地址对输入的各行数据进行行交叉后输入到并行MAP单元,并行MAP单元根据输入的各行的校验比特、系统比特sb和先验信息api进行MAP运算,得到一列先验信息,并将该列先验信息输入到转换输入单元30,转换输入单元30根据延迟后的各行的行地址,对输入的各行的数据进行交叉后,将该列数据作为与上述列地址对应的数据写入到CB矩阵单元中的先验信息api矩阵的对应位置。
通过本发明实施例提供的上述Turbo码并行交织器,根据Turbo码并行交织器的交叉单元产生的列地址,并行的读取一列数据,并将读取的数据按照交叉单元产生的各行的行地址进行行交叉,从而实现数据的行内交织和行间交织;而转换输入单元根据交叉单元产生的经过延迟后的各行的行地址对经过MAP计算后的各行数据进行行交叉,并将交叉后的数据作为先验信息写入到CB矩阵中与交叉单元产生的列地址对应的位置。
在本发明实施例的一种优选实施方式中,交叉单元10可以采用如图4所示的结构,如图4所示,在该优选实施例中,交叉单元10可以包括:基本交织地址递推模块100、取模模块102、取商模块104、邻行地址计算模块106和行地址生成模块108。其中,
基本交织地址递推模块100可以按照公式(1-2)和公式(1-3)分别从正向和逆向递推基本交织地址∏(i),正向递推的范围是从∏(stu)递推至∏(stu+w),即stu≤i≤stu+w;逆向递推是从∏(std)递推至∏(std-w),即std≥i≥std-w,其中stu为码块内正向递推的初始位置,std为码块内逆向递推的初始位置,L为CB matrix的列数,w为基本交织地址递推的窗长。
∏(i+1)=(∏(i)+((f1+f2)mod K+(2f2·i)mod K)mod K)mod K,其中,stu≤i≤stu+w;(1-2)
∏(i-1)=(∏(i)-((f1+f2)mod K+(2f2·(i-1))mod K)mod K)mod K,(i>0),其中,std≥i≥std-w;(1-3)
其中,有
(2f2·i)mod K=(2f2·(i-1))mod K+(2f2)mod K;(式1-4)
(2f2·(i-1))mod K=(2f2·i)mod K-(2f2)mod K;(式1-5)
在基本交织地址递推模块正向递推过程中,如果i≥L,则有i=i mod L,即在正向递推过程中,i从初始位置stu开始递增,递增过程中如果遇到列边界,即i=L则i清零继续递增,即i的递增值需要对L求模以保证i值一定映射到第一行的范围之内;在基本交织地址递推模块的反向递推过程中,如果i<0,则有i=L+i,即在反向递推过程中,i从初始位置std开始递减,递减过程中如果遇到列边界,即i=0则i置为L继续递减,即i的递减需要对L求模,以保证i值一定映射到第一行的范围之内。
其中,R表示CB matrix中矩阵的行数,L表示CB matrix中矩阵的列数,f1,f2为Turbo码交织器的交织的参数,f1,f2与码块长度K一一对应,具体地,在LTE系统中,可以按照表1确定参数f1,f2。
优选地,基本交织地址递推模块100可以按照(式1-6)和(式1-2)得到递推所需的初始值∏(stu)和∏(std)。
∏(0)=0(式1-6)
∏(i+1)=(∏(i)+((f1+f2)mod K+(2f2·i)mod K)mod K)mod K(式1-2)
在上述(式1-2)、(式1-3)、(式1-4)、(式1-5)和(式1-6)中,(f1+f2)mod K和(2f2)mod K为常数可预先算出,而求模运算可以通过比较及减法来实现并且保证每次求模运算之后的结果都小于K,这样就将交织地址的递推完全简化为比较和加减法运算。
取模模块102,用于对基本交织地址递推模块100递推所得的基本交织地址∏(i)对L求模,得到列地址col_addr(i);
表1.
i | Ki | f1 | f2 | i | Ki | f1 | f2 | i | Ki | f1 | f2 | i | Ki | f1 | f2 |
1 | 40 | 3 | 10 | 48 | 416 | 25 | 52 | 95 | 1120 | 67 | 140 | 142 | 3200 | 111 | 240 |
2 | 48 | 7 | 12 | 49 | 424 | 51 | 106 | 96 | 1152 | 35 | 72 | 143 | 3264 | 443 | 204 |
3 | 56 | 19 | 42 | 50 | 432 | 47 | 72 | 97 | 1184 | 19 | 74 | 144 | 3328 | 51 | 104 |
4 | 64 | 7 | 16 | 51 | 440 | 91 | 110 | 98 | 1216 | 39 | 76 | 145 | 3392 | 51 | 212 |
5 | 72 | 7 | 18 | 52 | 448 | 29 | 168 | 99 | 1248 | 19 | 78 | 146 | 3456 | 451 | 192 |
6 | 80 | 11 | 20 | 53 | 456 | 29 | 114 | 100 | 1280 | 199 | 240 | 147 | 3520 | 257 | 220 |
7 | 88 | 5 | 22 | 54 | 464 | 247 | 58 | 101 | 1312 | 21 | 82 | 148 | 3584 | 57 | 336 |
8 | 96 | 11 | 24 | 55 | 472 | 29 | 118 | 102 | 1344 | 211 | 252 | 149 | 3648 | 313 | 228 |
9 | 104 | 7 | 26 | 56 | 480 | 89 | 180 | 103 | 1376 | 21 | 86 | 150 | 3712 | 271 | 232 |
10 | 112 | 41 | 84 | 57 | 488 | 91 | 122 | 104 | 1408 | 43 | 88 | 151 | 3776 | 179 | 236 |
11 | 120 | 103 | 90 | 58 | 496 | 157 | 62 | 105 | 1440 | 149 | 60 | 152 | 3840 | 331 | 120 |
12 | 128 | 15 | 32 | 59 | 504 | 55 | 84 | 106 | 1472 | 45 | 92 | 153 | 3904 | 363 | 244 |
13 | 136 | 9 | 34 | 60 | 512 | 31 | 64 | 107 | 1504 | 49 | 846 | 154 | 3968 | 375 | 248 |
14 | 144 | 17 | 108 | 61 | 528 | 17 | 66 | 108 | 1536 | 71 | 48 | 155 | 4032 | 127 | 168 |
15 | 152 | 9 | 38 | 62 | 544 | 35 | 68 | 109 | 1568 | 13 | 28 | 156 | 4096 | 31 | 64 |
16 | 160 | 21 | 120 | 63 | 560 | 227 | 420 | 110 | 1600 | 17 | 80 | 157 | 4160 | 33 | 130 |
17 | 168 | 101 | 84 | 64 | 576 | 65 | 96 | 111 | 1632 | 25 | 102 | 158 | 4224 | 43 | 264 |
18 | 176 | 21 | 44 | 65 | 592 | 19 | 74 | 112 | 1664 | 183 | 104 | 159 | 4288 | 33 | 134 |
19 | 184 | 57 | 46 | 66 | 608 | 37 | 76 | 113 | 1696 | 55 | 954 | 160 | 4352 | 477 | 408 |
20 | 192 | 23 | 48 | 67 | 624 | 41 | 234 | 114 | 1728 | 127 | 96 | 161 | 4416 | 35 | 138 |
21 | 200 | 13 | 50 | 68 | 640 | 39 | 80 | 115 | 1760 | 27 | 110 | 162 | 4480 | 233 | 280 |
22 | 208 | 27 | 52 | 69 | 656 | 185 | 82 | 116 | 1792 | 29 | 112 | 163 | 4544 | 357 | 142 |
23 | 216 | 11 | 36 | 70 | 672 | 43 | 252 | 117 | 1824 | 29 | 114 | 164 | 4608 | 337 | 480 |
24 | 224 | 27 | 56 | 71 | 688 | 21 | 86 | 118 | 1856 | 57 | 116 | 165 | 4672 | 37 | 146 |
25 | 232 | 85 | 58 | 72 | 704 | 155 | 44 | 119 | 1888 | 45 | 354 | 166 | 4736 | 71 | 444 |
26 | 240 | 29 | 60 | 73 | 720 | 79 | 120 | 120 | 1920 | 31 | 120 | 167 | 4800 | 71 | 120 |
27 | 248 | 33 | 62 | 74 | 736 | 139 | 92 | 121 | 1952 | 59 | 610 | 168 | 4864 | 37 | 152 |
28 | 256 | 15 | 32 | 75 | 752 | 23 | 94 | 122 | 1984 | 185 | 124 | 169 | 4928 | 39 | 462 |
29 | 264 | 17 | 198 | 76 | 768 | 217 | 48 | 123 | 2016 | 113 | 420 | 170 | 4992 | 127 | 234 |
30 | 272 | 33 | 68 | 77 | 784 | 25 | 98 | 124 | 2048 | 31 | 64 | 171 | 5056 | 39 | 158 |
31 | 280 | 103 | 210 | 78 | 800 | 17 | 80 | 125 | 2112 | 17 | 66 | 172 | 5120 | 39 | 80 |
32 | 288 | 19 | 36 | 79 | 816 | 127 | 102 | 126 | 2176 | 171 | 136 | 173 | 5184 | 31 | 96 |
33 | 296 | 19 | 74 | 80 | 832 | 25 | 52 | 127 | 2240 | 209 | 420 | 174 | 5248 | 113 | 902 |
34 | 304 | 37 | 76 | 81 | 848 | 239 | 106 | 128 | 2304 | 253 | 216 | 175 | 5312 | 41 | 166 |
35 | 312 | 19 | 78 | 82 | 864 | 17 | 48 | 129 | 2368 | 367 | 444 | 176 | 5376 | 251 | 336 |
36 | 320 | 21 | 120 | 83 | 880 | 137 | 110 | 130 | 2432 | 265 | 456 | 177 | 5440 | 43 | 170 |
37 | 328 | 21 | 82 | 84 | 896 | 215 | 112 | 131 | 2496 | 181 | 468 | 178 | 5504 | 21 | 86 |
38 | 336 | 115 | 84 | 85 | 912 | 29 | 114 | 132 | 2560 | 39 | 80 | 179 | 5568 | 43 | 174 |
39 | 344 | 193 | 86 | 86 | 928 | 15 | 58 | 133 | 2624 | 27 | 164 | 180 | 5632 | 45 | 176 |
40 | 352 | 21 | 44 | 87 | 944 | 147 | 118 | 134 | 2688 | 127 | 504 | 181 | 5696 | 45 | 178 |
41 | 360 | 133 | 90 | 88 | 960 | 29 | 60 | 135 | 2752 | 143 | 172 | 182 | 5760 | 161 | 120 |
42 | 368 | 81 | 46 | 89 | 976 | 59 | 122 | 136 | 2816 | 43 | 88 | 183 | 5824 | 89 | 182 |
43 | 376 | 45 | 94 | 90 | 992 | 65 | 124 | 137 | 2880 | 29 | 300 | 184 | 5888 | 323 | 184 |
44 | 384 | 23 | 48 | 91 | 1008 | 55 | 84 | 138 | 2944 | 45 | 92 | 185 | 5952 | 47 | 186 |
45 | 392 | 243 | 98 | 92 | 1024 | 31 | 64 | 139 | 3008 | 157 | 188 | 186 | 6016 | 23 | 94 |
46 | 400 | 151 | 40 | 93 | 1056 | 17 | 66 | 140 | 3072 | 47 | 96 | 187 | 6080 | 47 | 190 |
47 | 408 | 155 | 102 | 94 | 1088 | 171 | 204 | 141 | 3136 | 13 | 28 | 188 | 6144 | 263 | 480 |
取商模块104,用于将基本交织地址递推模块100递推所得的基本交织地址∏(i)对L求商,得到首行的行地址row_addr(0,i),0≤i≤L-1;
邻行地址计算模块106可以根据(式1-7)和(式1-8)分别从正向和逆向递推相邻两行之间的行地址增量Δ(i),正向递推的范围是从Δ(stu)递推至Δ(stu+w),即stu≤i≤stu+w;逆向递推是从Δ(std)递推至Δ(std-w),即std≥i≥std-w,其中stu为码块内正向递推的初始位置,std为码块内逆向递推的初始位置,L为CB matrix的列数。
Δ(i+1)=Δ(i)+(2f2)mod R,其中,stu≤i≤stu+w(式1-7)
Δ(i-1)=Δ(i)-(2f2)mod R,其中,std≥i≥std-w(式1-8)
优选地,邻行地址计算模块106可以按照(式1-7)和(式1-5)预先得到递推所需初始值Δ(stu)和Δ(std)。
Δ(0)=(f1+f2·L)mod R(式1-9)
Δ(i+1)=Δ(i)+(2f2)mod R(式1-8)
在邻行地址计算模块的正向递推过程中,如果i≥L,则有i=i mod L,在邻行地址计算模块的反向递推过程中,如果i<0,则有i=L+i。
其中,(式1-7)、(式1-8)及(式1-9)中的Δ(i)表示CB矩阵单元中矩阵内部第i列的交织(或非交织)地址所对应的相邻两行之间的行地址增量:
Δ(i)=row_addr(r+1,i)-row_addr(r,i),(0≤r≤R-1,0≤i≤L-1)。
(式1-9)中,f2为偶数,L为4的倍数,且R为不超过15的2的幂次方,因此f2·L简化为{f2[1]&L[2],3′b000},又因为R为不超过15的2的幂次方,因此(式1-7)、(式1-8)、(式1-9)及(式1-10)的求模运算可简化为截位运算。综上所述,上述各公式都简化为比较运算、加减法运算、移位运算以及截位运算,或简单的乘法运算,这保证了硬件实现上可以很容易的通过插寄存器的方式来简化关键路径,提高电路的性能,并结合以流水线处理方式,保证交织地址的递推计算可以每个时钟节拍输出一个结果。
行地址生成模块108,用于根据下面(式1-10)计算所有行的行地址row_addr(r,i):
row_addr(r,i)=(row_addr(0,i)+(r·Δ(i))mod R)mod R,
(式1-10)
(0≤r≤R-1,0≤i≤L-1)
其中,(式1-10)中的乘法为4×4的乘法器,从而可以保证硬件上易于实现。
图5为本发明实施例的交叉单元10的另一种实施方式的结构示意图,如图5所示,该实施方式的交叉单元10相对于图4所示的交叉单元10新增了二个二选一模块:第一二选一模块101和第二二选一模块103。其中,第一二选一模块101根据当前MAP运算的计数器(map_cnt)值,判断其奇偶性,如果map_cnt为偶数,则当前MAP运算不需要交织,因此,第一二选一模块101直接选择i输出给取模模块102和取商模块104,第二二选一模块103直接选择1作为相邻行的行地址增量输出给行地址生成模块108。如果map_cnt为奇数,则当前MAP运算需要进行交织,因此,第一二选一模块101选择基本交织地址递推模块100得到的基本交织地址∏(i)输出给取模模块102和取商模块104,以及第二二选一模块103选择邻行地址计算模块106的输出作为相邻行的行地址增量输出给行地址生成模块108。
需要说明的是,此外需要补充一点,上述二个二选一模块所处理的交织与非交织参数的二选一处理过程只针对CB matrix单元中四个矩阵中的用于存放系统比特sb和先验信息apri的两个矩阵,另外两个用于存放校验信息p0和p1的矩阵不需要交织,因为p0在矩阵中的存储顺序(即输入顺序)本身是未经交织的,p1在矩阵中的存放顺序(即输入顺序)本身是经过交织的,而map_cnt为偶数时选择的是p0,map_cnt为奇数时选择的p1。因此对于存放p0和p1的两个矩阵,从CB矩阵中选其一读出之后再输入到并行MAP单元,从CB矩阵读p0、p1所用的读地址无需用上述列地址读取,而是按照非交织地址(即图5中的i值)读取。
转换输出单元20为一个R×R的交叉阵列,即包含R路输入和R路输出,转换输出单元20可以由R个R选1模块(优选地,可以为R选1电路)组成,每个R选1模块的输出都根据其对应的来自交叉单元10的行地址从R路输入中选其1。同样,转换输入单元30也是一个R×R的交叉阵列,也包含R路输入和R路输出,以及R个R选1电路。转换输入单元30输入的行地址是交叉单元10输出的行地址做了一定延迟之后的结果,延迟的目的是为了保证和MAP运算的时延同步。其中R选1电路可以R选R/2、R/2选R/4、...,R/2n选1的树形结构,从而可以减少处理延迟,例如,对于16路的输入输出,可以采用16选8、8选4、4选2、2选1的树形结构。
图6是根据本发明实施例的Turbo码并行交织器的并行交织方法的流程图,该方法可以通过上述的Turbo码交织器实现,在具体实施过程中可以采用上述描述进行并行交织。如图6所示,该方法主要包括以下步骤:
步骤S602,交叉单元10产生并行读取数据列地址,以及用于对读取的数据进行行交叉的各行的行地址,将所述列地址作为读地址输入到CB矩阵单元,将该列地址进行延迟后作为写地址输入到CB矩阵单元,将各行的行地址输入到转换输出单元20,并将各行的行地址进行延时后输入到转换输入单元30;
例如,交叉单元10可以按照下面步骤产生各行的行地址:
步骤1,交叉单元10按照下面公式分别从正向和逆向递推基本交织地址∏(i):
∏(i+1)=(∏(i)+((f1+f2)mod K+(2f2·i)mod K)mod K)mod K,其中,stu≤i≤stu+w;
其中,在正向递推过程中,如果i≥L,则有i=i mod L;
∏(i-1)=(∏(i)-((f1+f2)mod K+(2f2·(i-1))mod K)mod K)mod K,其中,std≥i≥std-w;
其中,在反向递推过程中,如果i<0,则有i=L+i。
其中,f1,f2为交织参数,stu为码块内正向递推的初始位置,且0≤stu≤K-1,std为码块内逆向递推的初始位置,且0≤std≤K-1,w为基本交织地址递推的窗长,L为CB矩阵单元中的矩阵的列数,R为CB矩阵单元中的矩阵的行数,K为CB矩阵单元中的码块长度。
优选地,交叉单元10在递推基本交织地址时,可以按照下面公式正向递推的初始位置和逆向递推的初始位置的基本交织地址∏(stu)和∏(std):
∏(0)=0;
∏(i+1)=(∏(i)+((f1+f2)mod K+(2f2·i)mod K)mod K)mod K。
步骤2,交叉单元10对递推所得的基本交织地址∏(i)对L求模,得到列地址col_addr(i);
步骤3,交叉单元10将递推所得的基本交织地址∏(i)对L求商,得到首行的行地址row_addr(0,i),0≤i≤L-1;
步骤4,交叉单元10根据下面公式分别从正向和逆向递推相邻两行之间的行地址增量Δ(i):
Δ(i+1)=Δ(i)+(2f2)mod R,其中,stu≤i≤stu+w
Δ(i-1)=Δ(i)-(2f2)mod R,其中,std≥i≥std-w
优选地,交叉单元10在递推所述行地址增量时,可以按照下面公式确定正向递推的初始位置和逆向递推的初始位置的行地址增量Δ(stu)和Δ(std):
Δ(0)=(f1+f2·L)mod R,
Δ(i+1)=Δ(i)+(2f2)mod R。
步骤5,交叉单元根据下面公式计算所有行的行地址row_addr(r,i):
row_addr(r,i)=(row_addr(0,i)+(r·Δ(i))mod R)mod R,
(0≤r≤R-1,0≤i≤L-1)
步骤S304,CB矩阵单元根据上述读地址读取与上述列地址对应的各行数据,并将读取的各行数据输入到转换输出单元20,转换输出单元20根据交叉单元10输入的各行行地址,将读取的各行数据进行行间交叉,并将交叉后的数据输入到并行MAP单元做MAP计算;
步骤S306,转换输出单元30接收来自交叉单元10的延迟后的各行的行地址,根据延迟之后的行地址将并行MAP单元进行MAP计算后输出的各行数据进行行间交叉,并将交叉后的数据作为先验信息按照上述写地址写入到CB矩阵单元。
通过本发明实施例提供的上述Turbo码交织器的并行交织方法,根据Turbo码并行交织器的交叉单元产生的列地址,并行的读取一列数据,并将读取的数据按照交叉单元产生的各行的行地址进行行交叉,从而实现数据的行内交织和行间交织;而转换输入单元根据交叉单元产生的经过延迟后的各行的行地址对经过MAP计算后的各行数据进行行交叉,并将交叉后的数据作为先验信息写入到CB矩阵中与交叉单元产生的列地址对应的位置,从而可以有效的实现并行解交织,进而提高了交织和解交织的效率。
在实际应用中,本发明实施例提供的上述Turbo码交织器的并行交织方法可以采用上述各个Turbo码交织器实施例实现,并取得与上述Turbo码交织器实施例相应的技术效果,具体不再赘述。
从以上的描述中,可以看出,本发明实现了如下技术效果:1、支持Turbo并行译码,提高译码速度;2、计算交织行列地址的过程均采用递推的方式,不需任何缓存和查表操作,节省硬件资源;3、交织行列地址的递推所涉及的复杂的乘法和求模运算均拆分为简单的加法和比较运算,简化关键路径,提高硬件性能;4、结合流水线处理方式,使交织地址(行地址和列地址)的计算能一拍输出一个结果,保证译码器数据流的线速率。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种Turbo码并行交织器,其特征在于,包括:
交叉单元,用于产生并行读取数据的列地址,以及用于对读取的数据进行行交叉的各行的行地址,将所述列地址作为读地址输入到码块CB矩阵单元,将所述列地址进行延迟后作为写地址输入到所述CB矩阵单元,将各行的所述行地址输入到转换输出单元,以及将各行的所述行地址进行延迟后输入到转换输入单元;
所述转换输出单元,用于接收所述CB矩阵单元输出的各行数据,根据各行的所述行地址,将读取的各行数据进行行间交叉,并将交叉后的数据输入到并行匹配MAP单元做MAP计算,其中,所述各行数据为所述CB矩阵单元根据所述读地址读取的;
所述转换输入单元,用于接收来自所述交叉单元的延迟后的各行的所述行地址,根据延迟之后的行地址将所述并行MAP单元进行MAP计算后输出的各行数据进行行间交叉,并将交叉后的各行数据作为先验信息按照所述写地址写入到所述CB矩阵单元;其中,所述交叉单元包括:
基本交织地址递推模块,用于按照下面公式分别从正向和逆向递推基本交织地址∏(i):
∏(i+1)=(∏(i)+((f1+f2)mod K+(2f2·i)mod K)mod K)mod K,其中,stu≤i≤stu+w;
∏(i-1)=(∏(i)-((f1+f2)mod K+(2f2·(i-1))mod K)mod K)mod K,其中,std≥i≥std-w;
取模模块,用于对所述基本交织地址递推模块递推所得的基本交织地址∏(i)对L求模,得到列地址col_addr(i);
取商模块,用于将所述基本交织地址递推模块递推所得的所述基本交织地址∏(i)对L求商,得到首行的行地址row_addr(0,i),0≤i≤L-1;
邻行地址计算模块,用于根据下面公式分别从正向和逆向递推相邻两行之间的行地址增量Δ(i):
Δ(i+1)=Δ(i)+(2f2)mod R,其中,stu≤i≤stu+w
Δ(i-1)=Δ(i)-(2f2)mod R,其中,std≥i≥std-w
行地址生成模块,用于根据下面公式计算所有行的行地址row_addr(r,i):
row_addr(r,i)=(row_addr(0,i)+(r·Δ(i))mod R)mod R,
(0≤r≤R-1,0≤i≤L-1)
其中,
在所述基本交织地址递推模块或所述邻行地址计算模块的正向递推过程中,如果i≥L,则有i=i mod L,在所述基本交织地址递推模块或所述邻行地址计算模块的反向递推过程中,如果i<0,则有i=L+i;
f1,f2为交织参数,stu为码块内正向递推的初始位置,且0≤stu≤K-1,std为码块内逆向递推的初始位置,且0≤std≤K-1,L为所述CB矩阵单元中的矩阵的列数,w为基本交织地址递推的窗长,R为所述CB矩阵单元中的矩阵的行数,K为所述CB矩阵单元中的码块长度。
2.根据权利要求1所述的Turbo码并行交织器,其特征在于,邻行地址计算模块按照下面公式确定正向递推的初始位置和逆向递推的初始位置的行地址增量Δ(stu)和Δ(std):
Δ(0)=(f1+f2·L)mod R,
Δ(i+1)=Δ(i)+(2f2)mod R。
3.根据权利要求1所述的Turbo码并行交织器,其特征在于,所述基本交织地址递推模块按照下面公式正向递推的初始位置和逆向递推的初始位置的基本交织地址∏(stu)和∏(std):
∏(0)=0;
∏(i+1)=(∏(i)+((f1+f2)mod K+(2f2·i)mod K)mod K)mod K。
4.根据权利要求1至3中任一项所述的Turbo码并行交织器,其特征在于,还包括:
第一二选一模块,用于根据所述并行MAP单元当前进行MAP运算次数的奇偶性,选择i或所述基本交织地址递推模块得到的所述递推基本交织地址∏(i)输出给所述取模模块和所述取商模块;
第二二选一模块,用于根据所述并行MAP单元当前进行MAP运算次数的奇偶性,选择1或所述邻行地址计算模块得到的行地址增量Δ(i)输出给所述行地址生成模块。
5.根据权利要求1所述的Turbo码并行交织器,其特征在于,所述转换输出单元包括R个R选1模块,其中,每个R选1模块用于根据所述交叉单元输入的所述行地址,从读取的R行数据中选择1路数据输出,其中,R为所述CB矩阵单元中的矩阵的行数。
6.根据权利要求1所述的Turbo码并行交织器,其特征在于,所述转换输入单元包括R个R选1模块,其中,每个R选1模块用于根据所述交叉单元输入的经过延迟的所述行地址,从所 述并行MAP单元输入的R行数据中选择1行数据输出,其中,R为所述CB矩阵单元中的矩阵的行数。
7.一种Turbo码并行交织器的并行交织方法,其特征在于,包括:
交叉单元产生并行读取数据列地址,以及用于对读取的数据进行行交叉的各行的行地址,将所述列地址作为读地址输入到码块CB矩阵单元,将所述列地址进行延迟后作为写地址输入到所述CB矩阵单元,将各行的所述行地址输入到转换输出单元,并将各行的所述行地址进行延时后输入到转换输入单元;
所述CB矩阵单元根据所述读地址读取与所述列地址对应的各行数据,并将读取的各行数据输入到所述转换输出单元,所述转换输出单元根据所述交叉单元输出的各行的所述行地址对读取的各行数据进行行间交叉,并将交叉后的数据输入到并行MAP单元做MAP计算;
所述转换输入单元接收来自所述交叉单元的延迟后的各行的所述行地址,根据延迟之后的行地址将所述并行MAP单元进行MAP计算后输出的各行数据进行行间交叉,并将交叉后的数据作为先验信息按照所述写地址写入到所述CB矩阵单元;
其中,所述交叉单元产生所述列地址以及各行的所述行地址包括:
所述交叉单元按照下面公式分别从正向和逆向递推基本交织地址∏(i):
∏(i+1)=(∏(i)+((f1+f2)mod K+(2f2·i)mod K)mod K)mod K,其中,stu≤i≤stu+w;
∏(i-1)=(∏(i)-((f1+f2)mod K+(2f2·(i-1))mod K)mod K)mod K,其中,std≥i≥std-w;
所述交叉单元对递推所得的基本交织地址∏(i)对L求模,得到列地址col_addr(i);
所述交叉单元将递推所得的所述基本交织地址∏(i)对L求商,得到首行的行地址row_addr(0,i),0≤i≤L-1;
所述交叉单元根据下面公式分别从正向和逆向递推相邻两行之间的行地址增量Δ(i):
Δ(i+1)=Δ(i)+(2f2)mod R,其中,stu≤i≤stu+w
Δ(i-1)=Δ(i)-(2f2)mod R,其中,std≥i≥std-w
所述交叉单元根据下面公式计算所有行的行地址row_addr(r,i):
row_addr(r,i)=(row_addr(0,i)+(r·Δ(i))mod R)mod R,
(0≤r≤R-1,0≤i≤L-1)
其中,
在所述基本交织地址或所述行地址增量的正向递推过程中,如果i≥L,则有i=i mod L,在所述基本交织地址或所述行地址增量的反向递推过程中,如果i<0,则有i=L+i;
f1,f2为交织参数,stu为码块内正向递推的初始位置,且0≤stu≤K-1,std为码块内逆向递推的初始位置,且0≤std≤K-1,L为所述CB矩阵单元中的矩阵的列数,R为所述CB矩阵单元中的矩阵的行数,K为所述CB矩阵单元中的码块长度。
8.根据权利要求7所述的方法,其特征在于,所述交叉单元在递推所述基本交织地址时,所述交叉单元按照下面公式正向递推的初始位置和逆向递推的初始位置的基本交织地址∏(stu)和∏(std):
∏(0)=0;
∏(i+1)=(∏(i)+((f1+f2)mod K+(2f2·i)mod K)mod K)mod K。
9.根据权利要求7所述的方法,其特征在于,所述交叉单元在递推所述行地址增量时,按照下面公式确定正向递推的初始位置和逆向递推的初始位置的行地址增量Δ(stu)和Δ(std):
Δ(0)=(f1+f2·L)mod R,
Δ(i+1)=Δ(i)+(2f2)mod R。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010293964.1A CN102412850B (zh) | 2010-09-25 | 2010-09-25 | Turbo码并行交织器及其并行交织方法 |
EP11826334.2A EP2621091B1 (en) | 2010-09-25 | 2011-03-25 | Turbo code parallel interleaving with quadratic permutation polynomial (qpp) functions |
JP2013520950A JP5490320B2 (ja) | 2010-09-25 | 2011-03-25 | Turbo符号並行インターリーバ及びその並行インターリーブ方法 |
PCT/CN2011/072187 WO2012037807A1 (zh) | 2010-09-25 | 2011-03-25 | Turbo码并行交织器及其并行交织方法 |
US13/825,886 US9048877B2 (en) | 2010-09-25 | 2011-03-25 | Turbo code parallel interleaver and parallel interleaving method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010293964.1A CN102412850B (zh) | 2010-09-25 | 2010-09-25 | Turbo码并行交织器及其并行交织方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102412850A CN102412850A (zh) | 2012-04-11 |
CN102412850B true CN102412850B (zh) | 2014-02-05 |
Family
ID=45873415
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010293964.1A Active CN102412850B (zh) | 2010-09-25 | 2010-09-25 | Turbo码并行交织器及其并行交织方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9048877B2 (zh) |
EP (1) | EP2621091B1 (zh) |
JP (1) | JP5490320B2 (zh) |
CN (1) | CN102412850B (zh) |
WO (1) | WO2012037807A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103905067B (zh) * | 2012-12-27 | 2018-05-11 | 中兴通讯股份有限公司 | 多模译码器实现方法及装置 |
CN103236903B (zh) * | 2013-04-19 | 2015-11-18 | 中国科学院自动化研究所 | 一种改变数据序列顺序的装置 |
CN104753653B (zh) * | 2013-12-31 | 2019-07-12 | 中兴通讯股份有限公司 | 一种解速率匹配的方法、装置和接收侧设备 |
CN103888224B (zh) * | 2014-04-04 | 2017-05-10 | 中国科学院自动化研究所 | 一种用于LTE系统Turbo码内交织的并行实现方法及装置 |
CN105306076A (zh) | 2014-06-30 | 2016-02-03 | 深圳市中兴微电子技术有限公司 | 一种基于MAP算法的Turbo译码方法及装置 |
US10404284B1 (en) * | 2015-07-21 | 2019-09-03 | L-3 Communications Corp. | Parallel-to-parallel conversion and reordering of a block of data elements |
CN107508604A (zh) * | 2017-07-13 | 2017-12-22 | 中国电子科技集团公司第七研究所 | 一种Turbo码并行RP交织方法及并行RP交织器 |
US10963256B2 (en) | 2018-09-28 | 2021-03-30 | Intel Corporation | Systems and methods for performing instructions to transform matrices into row-interleaved format |
CN111478750B (zh) * | 2020-03-12 | 2022-10-14 | 普联技术有限公司 | 一种数据并行交织方法、终端设备及计算机存储介质 |
CN112751572B (zh) * | 2021-01-07 | 2023-03-14 | 西安电子科技大学 | 四路并行LTE基4Turbo交织地址生成方法 |
CN114337927A (zh) * | 2021-12-31 | 2022-04-12 | Oppo广东移动通信有限公司 | 解码方法、装置、设备、存储介质、程序产品及通信芯片 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1855735A (zh) * | 2005-04-27 | 2006-11-01 | 华为技术有限公司 | Turbo码交织地址的计算方法和装置 |
CN101707490A (zh) * | 2009-09-22 | 2010-05-12 | 重庆重邮信科通信技术有限公司 | 并行Turbo码内交织方法 |
US7734989B2 (en) * | 2003-12-11 | 2010-06-08 | Freescale Semiconductor, Inc. | Multi-standard turbo interleaver using tables |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1083660A1 (en) * | 1999-02-09 | 2001-03-14 | Sony Corporation | Data transmission system, data receiver, and data transmitting method |
KR100393608B1 (ko) * | 2000-09-29 | 2003-08-09 | 삼성전자주식회사 | 유.엠.티.에스시스템내 터보부호화기의 내부 인터리버 및인터리빙 수행 방법 |
KR100628201B1 (ko) * | 2000-10-16 | 2006-09-26 | 엘지전자 주식회사 | 터보 디코딩 방법 |
EP1850486A4 (en) * | 2005-02-03 | 2008-05-07 | Matsushita Electric Ind Co Ltd | PARALLEL INTERLACER, PARALLEL DISINTERLACER AND INTERLACING METHOD |
US8140932B2 (en) * | 2007-11-26 | 2012-03-20 | Motorola Mobility, Inc. | Data interleaving circuit and method for vectorized turbo decoder |
US20090274248A1 (en) * | 2008-05-01 | 2009-11-05 | Interdigital Patent Holdings, Inc. | Method and apparatus for contention-free interleaving using a single memory |
GB2463011B (en) * | 2008-08-26 | 2010-12-29 | Toshiba Res Europ Ltd | A data decoding device and method |
US8719658B2 (en) * | 2010-09-09 | 2014-05-06 | Qualcomm Incorporated | Accessing memory during parallel turbo decoding |
-
2010
- 2010-09-25 CN CN201010293964.1A patent/CN102412850B/zh active Active
-
2011
- 2011-03-25 WO PCT/CN2011/072187 patent/WO2012037807A1/zh active Application Filing
- 2011-03-25 US US13/825,886 patent/US9048877B2/en active Active
- 2011-03-25 EP EP11826334.2A patent/EP2621091B1/en active Active
- 2011-03-25 JP JP2013520950A patent/JP5490320B2/ja active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7734989B2 (en) * | 2003-12-11 | 2010-06-08 | Freescale Semiconductor, Inc. | Multi-standard turbo interleaver using tables |
CN1855735A (zh) * | 2005-04-27 | 2006-11-01 | 华为技术有限公司 | Turbo码交织地址的计算方法和装置 |
CN101707490A (zh) * | 2009-09-22 | 2010-05-12 | 重庆重邮信科通信技术有限公司 | 并行Turbo码内交织方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102412850A (zh) | 2012-04-11 |
EP2621091A1 (en) | 2013-07-31 |
EP2621091A4 (en) | 2015-04-08 |
EP2621091B1 (en) | 2017-09-06 |
JP2013532924A (ja) | 2013-08-19 |
WO2012037807A1 (zh) | 2012-03-29 |
US20130198592A1 (en) | 2013-08-01 |
JP5490320B2 (ja) | 2014-05-14 |
US9048877B2 (en) | 2015-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102412850B (zh) | Turbo码并行交织器及其并行交织方法 | |
CN1836394B (zh) | 在移动通信系统中编码/解码分块低密度奇偶校验码的装置和方法 | |
CN111162797B (zh) | 一种速率兼容的5g ldpc码的编码装置及编码方法 | |
CN101388674B (zh) | 一种译码的方法、译码器以及Turbo码译码器 | |
KR20030005322A (ko) | 레이턴시를 줄인 siso 모듈 | |
Lee et al. | A flexible hardware encoder for low-density parity-check codes | |
JP2002532941A (ja) | 線形合同シーケンスを使用するターボコードインタリーバ | |
JP5840741B2 (ja) | 複数のコード・タイプをプログラマブル復号する方法および装置 | |
CN104092470B (zh) | 一种Turbo码译码装置及方法 | |
CN105634508A (zh) | 一种低复杂度近性能限的Turbo译码器的实现方法 | |
Zhu et al. | Backward interpolation architecture for algebraic soft-decision Reed–Solomon decoding | |
CN102340320A (zh) | 卷积Turbo码双向并行译码方法 | |
CN1731686A (zh) | 一种维特比译码器及用于维特比译码器的加比选单元电路 | |
US9065482B1 (en) | Circuit for forward error correction encoding of data blocks | |
CN103986557A (zh) | 低路径延迟的LTE Turbo码并行分块译码方法 | |
CN101350626B (zh) | 一种Turbo码编码装置及方法 | |
CN1328386A (zh) | 并行滑动窗最大后验概率算法及其高速Turbo码译码器 | |
US9048866B2 (en) | Apparatus and method for checking decoded data, apparatus and method for decoding, and receiving terminal | |
Dong et al. | Design and FPGA implementation of stochastic turbo decoder | |
Briffa | Interleavers for turbo codes | |
CN103888224A (zh) | 一种用于LTE系统Turbo码内交织的并行实现方法及装置 | |
CN101924566B (zh) | 用于长期演进的Turbo编码方法和Turbo编码器 | |
CN116318184B (zh) | 一种pbch极化码编码系统 | |
US8291291B1 (en) | Data resequencing | |
CN101373977A (zh) | 并行最大后验概率译码交织去交织的装置和方法 |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20221107 Address after: 518055 Zhongxing Industrial Park, Liuxian Avenue, Xili street, Nanshan District, Shenzhen City, Guangdong Province Patentee after: SANECHIPS TECHNOLOGY Co.,Ltd. Address before: 518057 No. 55 South Science and technology road, Shenzhen, Guangdong, Nanshan District Patentee before: ZTE Corp. |
|
TR01 | Transfer of patent right |