CN102111163B - Turbo编码器及编码方法 - Google Patents

Turbo编码器及编码方法 Download PDF

Info

Publication number
CN102111163B
CN102111163B CN200910252552.0A CN200910252552A CN102111163B CN 102111163 B CN102111163 B CN 102111163B CN 200910252552 A CN200910252552 A CN 200910252552A CN 102111163 B CN102111163 B CN 102111163B
Authority
CN
China
Prior art keywords
data
unit
encoded
memory cell
interleaving
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
Application number
CN200910252552.0A
Other languages
English (en)
Other versions
CN102111163A (zh
Inventor
安军贺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen ZTE Microelectronics Technology Co Ltd
Original Assignee
ZTE Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN200910252552.0A priority Critical patent/CN102111163B/zh
Publication of CN102111163A publication Critical patent/CN102111163A/zh
Application granted granted Critical
Publication of CN102111163B publication Critical patent/CN102111163B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明涉及信道编码技术领域,尤其涉及一种Turbo编码器及编码方法,该Turbo编码器包括:存储单元,用于存储完整的待编码数据块;缓存单元,用于缓存从存储单元读出的设定数量N个待编码数据;数据读出单元,用于在编码过程中,分批从存储单元读出设定数量N个待编码数据作为原始数据缓存到缓存单元,针对每一批缓存的N个原始数据,依次从缓存单元读出一个原始数据、并从存储单元读出该原始数据的交织数据并输出;编码单元,用于对数据读出单元输出的一个原始数据及对应的交织数据进行Turbo编码。本发明既能提高Turbo编码器的编码速率,又能节省Turbo编码器面积。

Description

Turbo编码器及编码方法
技术领域
本发明涉及信道编码技术领域,尤其涉及一种适用于WCDMA的HSUPA系统的Turbo编码器及编码方法。
背景技术
在应用宽带码分多址(Wideband Code Division Multiple Access,WCDMA)技术的高速上行链路分组接入(High Speed Uplink Packet Access,HSUPA)系统中,下行终端中进行信道编码的基带处理芯片不仅对Turbo编码器的面积有严格的要求,如Turbo编码器占用的芯片面积不能太大,而且对Turbo编码器的速率也有很高的要求。
Turbo码又称并行级联卷积码(Parallel Concatenated convolutional Code,PCCC)。Turbo编码器巧妙地将卷积码和随机交织器结合在一起,即实现了随机编码,同时也达到了由短码构造长码的目的。如图1所示,通常实现Turbo编码的Turbo编码器包括:Turbo码内交织器和编码单元-Turbo多项式单元,Turbo多项式单元包括并行级联连接的第一分量编码器和第二分量编码器,第一分量编码器和第二分量编码器是两个结构相同的递归系统卷积码(Rescursive System Code,RSC)分量编码器。输入的待编码数据SK作为原始数据经过第一分量码编码器生成第一校验比特PlK。同时,输入的待编码数据SK经过Turbo码内交织器交织后得到交织数据,将交织数据输入到第二个分量码编码器生成第二校验比特序列P2K。此时,Turbo编码器的输出码率为1/3,输出端得到的编码比特序列为s1,p11,p21,s2,p12,p22......sK,p1K,p2K,其中,K为输入的待编码数据块的长度。
Turbo编码处理的核心问题是Turbo码内交织器的架构,Turbo码内交织器参数的计算以及Turbo码内交织器行内、行间的交换等等。Turbo码内交织器参数的计算以及Turbo码内交织器行内、行间的交换可以参照3GPP协议标准来确定。
为了达到下行终端进行信道编码的基带处理芯片对Turbo编码器的面积的严格要求,通常设计的Turbo编码器中,只使用一块随机存取存储器(RandomAccess Memory,RAM),该块RAM的容量为一个完整的待编码数据块的地址空间,用于以阵列形式完整的存放待编码数据。Turbo多项式单元需要的原始数据和交织数据都来自这块RAM,从该块RAM中顺序读出的待编码数据作为原始数据。而要从该块RAM中读取交织数据,需要根据3GPP协议标准规定的方式来计算交织地址,从而按交织地址从该块RAM中读取交织地址对应的待编码数据,即得到交织数据。由于每个时钟周期只能从RAM中取出一个待编码数据,而原始数据和交织数据又属于不同的数据,因此Turbo编码器的输出就只能是串行输出,即在第一个时钟周期从RAM内读出原始数据输入到编码单元,从而输出系统比特和第一校验比特,在第二个时钟周期根据计算的交织地址从RAM内读出交织地址对应的待编码比特数-交织数据,输入到第二分量编码器,从而输出第二校验比特。如果假设待编码数据块的大小为K个比特,那么编码完成时间就为2K个时钟周期,虽然这种硬件装置可以使Turbo编码器的面积达到最小,但是编码速率不够高。
为了达到HSUPA系统对Turbo编码器的高编码速率要求,通常设计的Turbo编码器中,需要使用两块容量均为一个完整的待编码数据块的地址空间的RAM0和RAM1。RAM0和RAM1都存放待编码数据块,编码单元需要的原始数据来自RAM0,编码单元内第二分量编码器需要的交织数据来自RAM1。因此Turbo编码器就可以并行输出系统比特、第一校验比特和第二校验比特。如果假设编码块的大小为K个比特,那么编码完成时间就为K个时钟周期,这种硬件装置虽然可以使Turbo编码器速率达到最快。但是,采用这种方案又增大了Turbo编码器的面积。
因此,目前缺乏一种既能有效提高Turbo编码器的编码速率,又能节省Turbo编码器面积的Turbo编码器及编码方法。
发明内容
本发明提供一种Turbo编码器及编码方法,既能提高Turbo编码器的编码速率,又能节省Turbo编码器面积。
本发明提供了一种Turbo编码器,包括:
存储单元,用于存储完整的待编码数据块,其中,所述存储单元采用容量为所述完整的待编码数据块的地址空间的随机存取存储器;
缓存单元,用于缓存从所述存储单元读出的设定数量N个待编码数据,其中,所述缓存单元采用地址长度为N的寄存器;
数据读出单元,用于在编码过程中,分批从所述存储单元读出设定数量N个待编码数据作为原始数据缓存到缓存单元,针对每一批缓存的N个原始数据,依次从所述缓存单元读出一个原始数据并输出,并从存储单元读出该原始数据的交织数据并输出;
编码单元,用于对所述数据读出单元输出的一个原始数据及对应的交织数据进行Turbo编码。
本发明还提供了一种基于上述Turbo编码器的编码方法,包括步骤:
将完整的待编码数据块存储在所述存储单元;
在编码过程中,分批从存储单元读出设定数量N个待编码数据作为原始数据缓存到缓存单元,针对每一批缓存的N个原始数据,依次从所述缓存单元读出一个原始数据并输出,并从存储单元读出该原始数据的交织数据并输出;
利用所述编码单元对输出的输出的一个原始数据及对应的交织数据进行Turbo编码。
利用本发明提供的Turbo编码器及编码方法,具有以下有益效果:
在只使用一块存储完整的待编码数据块的存储单元的情况下,通过只存储N个待编码数据的缓存单元,使编码时间由原来的2K个时钟周期减小为(K+K/N)个时钟周期,其中K为待编码数据块的数据长度。可见,本发明仅增加了一块缓存单元,就加快了编码速率,利用本发明的方案可以设定N的取值在Turbo编码器的编码速率及Turbo编码器面积取得最优的组合效果。
附图说明
图1为现有Turbo编码器的结构图;
图2为本发明Turbo编码器的结构图;
图3为依照本发明实施例中Turbo编码器的结构图;
图4依照本发明实施例中编码单元的结构图;
图5为本发明实施例中原始地址控制单元和交织地址控制单元进行使能的时序图;
图6为依照本发明实施例的Turbo编码器的编码方法流程图。
具体实施方式
下面结合附图和实施例对本发明提出的Turbo编码器及编码方法进行进一步详细描述。
本发明提出的Turbo编码器,如图2所示,包括:
存储单元10,用于存储完整的待编码数据块;优选地,存储单元以阵列形式存储完整的待编码数据;
数据读出单元20,用于在编码过程中,分批从所述存储单元读出设定数量N个待编码数据作为原始数据缓存到缓存单元,针对每一批缓存的N个原始数据,依次从所述缓存单元读出一个原始数据并输出,并从存储单元读出该原始数据的交织数据并输出;优选地,设定数量N等于存储单元中一行待编码数据的个数,数据读出单元20在一个单位时间一次读取一行待编码数据到缓存单元30;本实施例中单位时间优选采用时钟周期。
缓存单元30,用于缓存从所述存诸单元读出的设定数量N个待编码数据;如缓存一次读出的一行待编码数据;
编码单元40,用于对所述数据读出单元输出的一个原始数据及对应的交织数据进行Turbo编码。即可以根据原始数据得到系统比特和第一校验比特,可以根据交织数据得到第二校验比特,由于原始数据和交织数据在同一时钟周期内读出,所以Turbo编码器可以并行输出编码后的系统比特、第一校验比特和第二校验比特。
本发明提出的Turbo编码器适于作为HSUPA系统中用户终端UE上行链路的Turbo编码器,由于原始数据和交织数据在同一时钟周期内,同时从两个存储位置-存储单元10和缓存单元30读取,所以Turbo编码器可以只使用一块RAM作为交织RAM,该交织RAM的大小为一个完整的待编码数据块地址空间,这块RAM用来来存放待编码的数据。虽然Turbo编码器需要的原始数据和交织数据都来自这块RAM,但由于采用了缓存单元进行缓存的方式,Turbo编码器仍可以并行输出系统比特、第一校验比特和第二校验比特。如果假设编码块的大小为K个比特,那么编码完成时间就为(K+K/N)个时钟周期。与以往技术相比,具有硬件面积小,编码速率快的特点,完全可以满足UE对Turbo编码器面积和速率的需求。
依照本发明的实施例中,如图3所示,存储单元10采用容量为完整的待编码数据块的地址空间的随机存取存储器RAM;缓存单元30采用地址长度为N的寄存器。设定数量N等于存储单元中一行待编码数据的个数。本实施例中的Turbo编码器中的数据读出单元20具体包括:
原始数据地址生成单元203,用于在原始地址控制单元201使能下,在一个时钟周期从RAM一次读出一行待编码数据作为原始数据缓存到寄存器中,并获取所存放的原始数据在寄存器的地址;
交织数据地址生成单元204,用于在交织地址控制单元202使能下,连续N个时钟周期的每个时钟周期,根据完整的待编码数据块得到的一个交织地址;
如图5所示,原始地址控制单元201,在第一脉冲信号的控制下每隔N个时钟周期后在一个时钟周期向交织地址控制单元202发出使能信号进行使能;交织地址控制单元202,在第二脉冲信号的控制下,在原始地址控制单元201使能后的连续N个时钟周期向交织数据地址生成单元204发出使能信号,进行使能交织数据地址生成单元204;
原始数据读出单元205,用于在所述连续N个时钟周期的每个时钟周期,根据原始数据地址生成单元203获取地址,从寄存器中读出一个原始数据;
交织数据读出单元206,用于在所述连续N个时钟周期的每个时钟周期,根据所述交织数据地址生成单元204获取交织地址,从所述RAM中读出与交织地址对应的一个待编码数据作为交织数据。
本实施例中编码单元40具体包括:
系统比特输出单元401,用于在所述原始数据读出单元205读出原始数据的时钟周期,将所述原始数据作为系统比特输出;
第一分量编码器402,用于在原始数据读出单元205读出原始数据的时钟周期,将所述原始数据进行编码,输出编码后得到的第一校验比特;
第二分量编码器403,用于在交织数据读出单元206读出交织数据的时钟周期,将所述交织数据进行编码,输出编码后得到的第二校验比特。
如图4所示,为具体实现时编码单元40的结构图,采用现有常用的第一分量编码器和第二分量编码器结构。
Turbo编码器中交织数据地址生成单元204根据待编码数据块在每个时钟周期内计算出一个交织地址的计算方式,可以根据3GPP协议规定的方式进行计算,根据3GPP协议规定,计算交织地址包括以下步骤:
1)根据待编码数据块的比特数确定交织矩阵的行数R;
2)根据待编码数据块的比特数和所述确定的交织矩阵行数R确定用于行内交换的素数P;
3)根据待编码数据块的比特数和所确定的素数P确定交织矩阵的列数C;
4)根据所述确定的素数P选择一个原根v;
5)根据所述行数R、素数P、列数C及原根v为行内交换构造S(j)序列(其中0≤j≤P-2),并将计算好的S(j)序列存放在单口RAM中,RAM的大小一般为256*9;
6)根据所述素数P、行数R为行间交换构造q序列;
7)根据3GPP协议内部行交换图样对所述q序列作行间变换得到ri序列并进行存储;
8)之后,每次计算交织地址时,执行第i行的行内交换,既生成交织矩阵中交织数据对应的交织列地址;
9)根据ri序列执行i列的行间交换,即生成交织行地址;
10)根据所生成的交织列地址和交织行地址得到交织矩阵的交织地址。
在以上步骤的实现中,步骤1)~步骤7)是在编码完成的工作,步骤8)~步骤10)是在编码过程随着时钟周期变化,在一个时钟周期要执行完成的步骤。对于步骤9)的执行行间交换生成行地址的硬件实现和计算比较简单;但是对于步骤8)执行第i行的行内交换的硬件实现,虽然这一步是数据的行内交换,但在实现时并不做实际意义上的数据置换,而是通过改变它的行列地址来实现数据的置换,这一步的核心是U序列的生成。即每计算一次交织列地址,实际是计算一次U序列中一个值,该值即为交织列地址的取值。3GPP协议中所定义的U序列生成公式为:
Ui(j)=S((j*ri)mod(P-1)),其中0≤i≤R-1、0≤j≤P-2,
在U序列中有两个变量i和j,考虑到turbo码内交织器的规则是按行写入,按列读出,因此所计算的U序列顺序如下:当j确定时,i取值从0、1到R-1,顺序递增,随后j也顺序递增。由于U序列的取值来所存储的S(j)序列的取值,因此U序列只和j*rimod(P-1)有关,j*rimod(P-1)在实现上可以用乘法器直接计算,但缺点是会消耗过多的硬件逻辑。而且速率可能跟不上时钟周期的变化,不能实现在一个时钟周期计算出一个交织列地址会延长编码时间。
基于上述3GPP协议规定的计算交织地址方法,优选地,本实施例中的Turbo编码器,还包括:
第一存储单元,用于事先存储根据所述完整的待编码数据块,按照3GPP协议规定的方式为行内交换构造的S(j)序列,其中0≤j≤P-2,P为素数;
第二存储单元,用于事先存储根据所述完整的待编码数据块,按照3GPP协议规定的方式为行间交换构造的q序列,及对所述q序列作行间变换得到的ri序列,0≤i≤R-1,R为所述完整的待编码数据块的行数;
根据前面的分析可知,U序列只和j*rimod(P-1)有关,本实施例中为克服对j*rimod(P-1)用乘法器直接计算会消耗过多的硬件逻辑的缺点,通过分析发现如下特性:
展开公式j*rimod(P-1),当j=0时,U序列为00、01...0R-1
当j=1时,U序列为r0mod(P-1)、r1mod(P-1)....rR-1mod(P-1);
当j=2时,U序列为2r0mod(P-1)、2r1mod(P-1)....2rR-1mod(P-1);
当j=3时,U序列为3r0mod(P-1)、3r1mod(P-1)....3rR-1mod(P-1);
通过上面的展开公式就会发现j*rimod(P-1)具有第j+1时对应的结果(j+1)*rimod(P-1),可以由第j对应的结果(j)*rimod(P-1)与ri相加并与P-1相减获得的规律。利用这个特点,本发明中的对于交织列地址计算的硬件实现不再使用乘法器来实现j*rimod(P-1),而是当每列的数值计算完后,把这列的结果存储在一块第三存储器RAM中,当需要计算下一列的结果时,可以先从第三存储器RAM中取出前一列的结果,采用加法器再与ri相加并与P-1相减,并将结果回写到第三存储器RAM中,依次类推,直到做完整个U序列。
因此,本实施例中交织数据地址生成单元具体包括:
交织地址确定单元,用于在交织地址控制单元使能下,连续N个时钟周期的每个时钟周期,进行一次如下计算确定一个交织列地址Ui(j):
Ui(j)=S((j*ri)mod(P-1)),其中0≤i≤R-1、0≤j≤P-2,
且多次计算交织列地址时,i、j的取值按如下方式变化:j确定后,i的取值从0递增到R-1,随后j也顺序递增;初始时,i、j的取值为0,每次计算,i、j的取值为在上述限定的数值范围内的一个值,在执行K(K为待编码数据块的长度)次计算后,当i、j的取值从0分别变化为R-1和P-2,
所述交织地址确定单元采用如下方式计算j*rimod(P-1):
j取0时,i的取值从0递增到R-1时,将每次计算出来的j*rimod(P-1)=0,顺序回写到第三存储单元;
以后在j递增为j+1,i的取值从0到R-1每次递增时,将第三存储单元内的第i个数值取出与ri相加并减去P-1获得(j+1)*rimod(P-1),将相减结果回写到第三存储单元内;
所述第三存储单元,用于存储所述交织地址确定单元所回写的数据。
另外,存储待编码数据块的RAM内最后一行的待编码数据个数M<N时,数据读出单元在连续N个时钟周期完成倒数第二行原始数据和交织数据的读出后,在一个时钟周期从所述存储单元一次读出最后一行M个待编码数据作为原始数据缓存到缓存单元,之后连续M个时钟周期的每个时钟周期,从所述缓存单元顺序读出一个原始数据,及根据完整的待编码数据块得到的一个交织地址,从所述存储单元读出与交织地址对应的一个待编码数据作为交织数据。
依照本发明的实施例中,假设编码块大小为K个比特,待编码数据RAM模块中的RAM0宽度为T个比特。基于上述Turbo编码器的编码方法中,编码开始前将完整的待编码数据块搬运到RAM中进行缓存;当搬运结束时,就开始启动原始地址控制单元201和交织地址控制单元202工作,原始地址控制单元201和交织地址控制单元202输出使能信号给原始数据地址生成单元203和交织数据地址生成单元204,这两个203生成的原始数据的地址和交织地址,原始数据读出单元205从寄存器中读出的待编码数据作为编码单元需要的原始数据,交织数据读出单元206从RAM中读出的交织数据作为编码单元需要的交织数据,最后将原始数据和交织数据并行送入编码单元40进行编码,最终并行输出系统比特、第一校验比特和第二校验比特。
如图6所示,本实施例中编码方法包括:
S601,编码开始前将完整的待编码数据块存储在所述存储单元;
S602,在编码开始后,在第一个时钟周期,从所述存储单元一次读出设定数量N个待编码数据作为原始数据缓存到缓存单元;
S603,之后连续N个时钟周期的每个时钟周期,从缓存单元顺序读出一个原始数据,并从存储单元读出该原始数据的交织数据并输出;
在读出的所述原始数据及交织数据的同时,触发所述编码单元利用所述原始数据及交织数据进行Turbo编码;
S604,判断是否读完所述完整的待编码数据块,若没有,返回步骤S602,否则,结束。
优选地,所述存储单元以阵列形式存储所述完整的待编码数据;
在一个时钟周期一次读出设定数量N个待编码数据,为一次读出所述存储单元中的一行待编码数据。
优选地,在一个时钟周期,根据完整的待编码数据块得到的一个交织地址,具体为进行一次计算确定一个交织列地址Ui(j)和一个交织行地址,其中:
Ui(j)=S((j*ri)mod(P-1)),
其中,S(j)序列为事先存储的根据所述完整的待编码数据块,按照3GPP协议规定的方式为行内交换构造的序列,0≤j≤P-2,P为素数;
ri序列为事先存储的根据所述完整的待编码数据块,按照3GPP协议规定的方式为行间交换构造的q序列,并对所述q序列作行间变换得到的序列,0≤i≤R-1,R为所述完整的待编码数据块的行数;
随着时钟周期变化多次计算交织地址时,i、j的取值按如下方式变化:
j确定后,i的取值从0递增到R-1,随后j也顺序递增;
每次确定一个交织列地址Ui(j)时,采用如下方式计算j*rjmod(P-1):
j取0,i的取值从0到R-1每次递增时,将每次计算出来的j*rimod(P-1)=0的结果,顺序回写到第三存储单元中;
以后在j递增为j+1,i的取值从0到R-1每次递增时,将第三存储单元内的第i个数值取出与ri相加并减去P-1获得(j+1)*rimod(P-1),将相减结果回写到第三存储单元内。
因此,可以利用加法器和减法器,就可以实现列地址的计算,计算速度快,且节省了硬件资源。
下面结合实例详细介绍Turbo编码器及编码方法。
假设待编码数据块的大小为5114比特,待编码数据RAM宽度(阵列存储时对应的列数)为32比特,那么采用本发明实施例中的上述编码方法完成编码的时间就为(5114+5114/32)个时钟周期。
图3中,Turbo编码器实现框图中的存储待编码数据块的RAM由一块RAM构成,依据写入和读出该RAM的数据是否为同一个时钟来决定是用单口RAM还是双口RAM实现。根据上面的假设,该RAM的深度为160(阵列存储时对应的行数),宽度为32比特,由于编码块的长度不是32的整数倍,因此RAM中存储的最后一行数据不是整行数据,只有26个比特。
原始地址控制单元和交织地址控制单元按图5所示的脉冲信号,完成原始数据地址生成单元和交织数据地址生成单元的使能控制。假设在t0时刻原始地址控制单元使能原始数据地址生成单元,则一次读取RAM内一行待编码数据并产生原始数据地址;那么从(t0+1)到(t0+32)时刻,交织地址控制单元使能交织数据地址生成单元,产生32个交织数据地址,具体时序如图5所示。通俗地讲,就是每33个时钟周期需要从RAM中取出32比特的原始数据在寄存器中并进行缓存,剩余32个时钟周期用于交织地址的生成和从RAM内读交织数据的输出。且在剩余32个时钟周期的每个时钟周期,同时读出一个原始数据,使原始数据和交织数据在一个时钟周期同时输入到编码单元。
原始地址生成单元在使能控制信号的作用下完成原始数据地址的生成,每33个时钟周期,原始地址指针需要加1,地址范围是0~~159。
交织地址生成单元在使能控制信号的作用下完成交织地址的生成。当交织地址控制信号使能时,每个时钟周期,都需要计算一次交织地址,连续计算32次后暂停一次。
原始数据生成单元完成原始比特数据的产生。由于从RAM中输出的数据总线宽度为32比特,且后续的32个时钟周期,RAM都用于交织数据的输出,因此在需要将这32比特数据放入寄存器缓存,在后续的32个时钟周期按比特移位从寄存器中输出,和交织数据一起并行输出给编码单元。
交织数据生成单元完成交织比特数据的产生。根据所计算的交织数据的行地址和列地址得到交织地址,从RAM中选出对应的待编码数据作为交织数据的输出。
编码单元完成第一、第二校验比特的计算,并行输出系统比特、第一和第二校验比特,完成编码。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (12)

1.一种Turbo编码器,其特征在于,包括:
存储单元,用于存储完整的待编码数据块,其中,所述存储单元采用容量为所述完整的待编码数据块的地址空间的随机存取存储器;
缓存单元,用于缓存从所述存储单元读出的设定数量N个待编码数据
用于缓存从所述存储单元读出的设定数量N个待编码数据,其中,所述缓存单元采用地址长度为N的寄存器;
数据读出单元,用于在编码过程中,分批从所述存储单元读出设定数量N个待编码数据作为原始数据缓存到缓存单元,针对每一批缓存的N个原始数据,依次从所述缓存单元读出一个原始数据、并从存储单元读出该原始数据的交织数据并输出;
编码单元,用于对所述数据读出单元输出的一个原始数据及对应的交织数据进行Turbo编码。
2.如权利要求1所述的Turbo编码器,其特征在于,
所述存储单元以阵列形式存储所述完整的待编码数据;
所述设定数量N等于所述存储单元中一行待编码数据的个数。
3.如权利要求1或2所述的Turbo编码器,其特征在于,
所述数据读出单元具体包括:
原始数据读出单元,用于在连续N个单位时间的每个单位时间,从所述缓存单元中读出一个原始数据;
交织数据读出单元,用于在所述连续N个单位时间的每个单位时间,从所述存储单元中读出与交织地址对应的一个待编码数据作为交织数据。
4.如权利要求1或2所述的Turbo编码器,其特征在于,
所述数据读出单元还包括:
原始数据地址生成单元,用于在原始地址控制单元使能下,在一个单位时间分批从所述存储单元读出设定数量N个待编码数据作为原始数据缓存到缓存单元,并获取所存放的原始数据在缓存单元的地址;
交织数据地址生成单元,用于在交织地址控制单元使能下,连续N个单位时间的每个单位时间,计算一个交织地址;
所述原始地址控制单元,每隔N个单位时间在一个单位时间使能;
所述交织地址控制单元,用于在所述原始地址控制单元使能后的连续N个单位时间进行使能。
5.如权利要求4所述的Turbo编码器,其特征在于,
所述交织数据地址生成单元具体包括:
交织地址确定单元,用于在交织地址控制单元使能下,连续N个单位时间的每个单位时间,计算一次确定一个交织列地址Ui(j)及一个交织行地址,其中:
Ui(j)=S((j*ri)mod(P-1)),其中0≤i≤R-1、0≤j≤P-2,
其中,S(j)序列为事先存储的根据所述完整的待编码数据块,按照3GPP协议规定的方式为行内交换构造的序列,0≤j≤P-2,P为素数;ri序列为事先存储的根据所述完整的待编码数据块,按照3GPP协议规定的方式为行间交换构造的q序列,并对所述q序列作行间变换得到的序列,0≤i≤R-1,R为所述完整的待编码数据块的行数
且多次计算时,i、j的取值按如下方式变化:j确定后,i的取值从0递增到R-1,随后j也顺序递增;
第三存储单元,用于存储所述交织地址确定单元所回写的数据;
所述交织地址确定单元采用如下方式计算j*rimod(P-1):
j取0时,i的取值从0递增到R-1时,将每次计算出来的j*rimod(P-1)=0,顺序回写到第三存储单元;
以后在j递增为j+1,i的取值从0到R-1每次递增时,将第三存储单元内的第i个数值取出与ri相加并减去P-1获得(j+1)*rimod(P-1),将相减结果回写到第三存储单元内。
6.如权利要求5所述的Turbo编码器,其特征在于,还包括
第一存储单元,用于存储所述S(j)序列,其中0≤j≤P-2,P为素数;
第二存储单元,用于存储所述ri序列,0≤i≤R-1,R为所述完整的待编码数据块的行数。
7.如权利要求1或2所述的Turbo编码器,其特征在于,
所述编码单元具体包括:
系统比特输出单元,用于将所述数据读出单元输出的原始数据作为系统比特输出;
第一分量编码器,用于将所述数据读出单元输出的原始数据进行编码,输出编码后得到的第一校验比特;
第二分量编码器,用于在所述数据读出单元输出的交织数据进行编码,输出编码后得到的第二校验比特。
8.如权利要求2所述的Turbo编码器,其特征在于,
所述存储单元内最后一行的待编码数据个数M<N时,
所述数据读出单元分批从所述存储单元读出倒数第二行待编码数据后,
所述数据读出单元,从所述存储单元读出M个待编码数据作为原始数据缓存到缓存单元,针对每一批缓存的M个原始数据,依次从所述缓存单元读出一个原始数据并输出,并从存储单元读出该原始数据的交织数据并输出。
9.一种基于权利要求1所述Turbo编码器的编码方法,其特征在于,
将完整的待编码数据块存储在所述存储单元;
在编码过程中,分批从存储单元读出设定数量N个待编码数据作为原始数据缓存到缓存单元,针对每一批缓存的N个原始数据,依次从所述缓存单元读出一个原始数据并输出,并从存储单元读出该原始数据的交织数据并输出;
利用所述编码单元对输出的输出的一个原始数据及对应的交织数据进行Turbo编码。
10.如权利要求9所述的方法,其特征在于,
所述存储单元以阵列形式存储所述完整的待编码数据;
分批读出N个作为原始数据的待编码数据,为分批读出所述存储单元中的一行待编码数据。
11.如权利要求10或9所述的方法,其特征在于,
所述读出所述N个作为原始数据的待编码数据在一个单位时间内完成;
所述读出一个原始数据及对应的交织数据在一个单位时间内完成。
12.如权利要求11所述的方法,其特征在于,
在一个单位时间,根据完整的待编码数据块得到的一个交织地址,具体为计算一次确定一个交织列地址Ui(j)及一个交织行地址,其中:
Ui(j)=S((j*ri)mod(P-1)),
其中,S(j)序列为事先存储的根据所述完整的待编码数据块,按照3GPP协议规定的方式为行内交换构造的序列,0≤j≤P-2,P为素数;
ri序列为事先存储的根据所述完整的待编码数据块,按照3GPP协议规定的方式为行间交换构造的q序列,并对所述q序列作行间变换得到的序列,0≤i≤R-1,R为所述完整的待编码数据块的行数;
随着单位时间变化多次计算交织地址时,i、j的取值按如下方式变化:
j确定后,i的取值从0递增到R-1,随后j也顺序递增;
每次确定一个交织列地址Ui(j)时,采用如下方式计算j*rimod(P-1):
j取0,i的取值从0到R-1每次递增时,将每次计算出来的j*rimod(P-1)=0的结果,顺序回写到第三存储单元中;
以后在j递增为j+1,i的取值从0到R-1每次递增时,将第三存储单元内的第i个数值取出与ri相加并减去P-1获得(j+1)*rimod(P-1),将相减结果回写到第三存储单元内。
CN200910252552.0A 2009-12-25 2009-12-25 Turbo编码器及编码方法 Active CN102111163B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910252552.0A CN102111163B (zh) 2009-12-25 2009-12-25 Turbo编码器及编码方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910252552.0A CN102111163B (zh) 2009-12-25 2009-12-25 Turbo编码器及编码方法

Publications (2)

Publication Number Publication Date
CN102111163A CN102111163A (zh) 2011-06-29
CN102111163B true CN102111163B (zh) 2014-03-19

Family

ID=44175208

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910252552.0A Active CN102111163B (zh) 2009-12-25 2009-12-25 Turbo编码器及编码方法

Country Status (1)

Country Link
CN (1) CN102111163B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102412849A (zh) * 2011-09-26 2012-04-11 中兴通讯股份有限公司 一种卷积码编码方法及编码装置
CN110299962B (zh) * 2018-03-21 2022-10-14 钜泉光电科技(上海)股份有限公司 一种Turbo分量编码器及编码方法、Turbo编码器及编码方法
WO2019218130A1 (zh) * 2018-05-15 2019-11-21 深圳市大疆创新科技有限公司 Turbo编码方法、Turbo编码器及无人机
CN111130572B (zh) * 2020-01-06 2024-04-23 西南电子技术研究所(中国电子科技集团公司第十研究所) Turbo码快速实现方法
CN111211793B (zh) * 2020-02-10 2023-08-04 成都烨软科技有限公司 一种基于汉明码并行tpc编码方法
CN113890674B (zh) * 2021-09-09 2023-03-07 中国原子能科学研究院 一种分组编码方法、装置、设备以及计算机存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6643331B1 (en) * 1997-12-24 2003-11-04 Inmarsat Ltd. Coding method and apparatus
CN1862972A (zh) * 2005-05-10 2006-11-15 华为技术有限公司 Turbo编码方法及编码装置
CN101388674A (zh) * 2008-10-23 2009-03-18 华为技术有限公司 一种译码的方法、译码器以及Turbo码译码器

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6643331B1 (en) * 1997-12-24 2003-11-04 Inmarsat Ltd. Coding method and apparatus
CN1862972A (zh) * 2005-05-10 2006-11-15 华为技术有限公司 Turbo编码方法及编码装置
CN101388674A (zh) * 2008-10-23 2009-03-18 华为技术有限公司 一种译码的方法、译码器以及Turbo码译码器

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
《OFDM系统中的Turbo码编译码技术研究与实现》;彭芳芳;《中国优秀硕士学位论文全文数据库信息科技辑》;20091215;I136-140 *
彭芳芳.《OFDM系统中的Turbo码编译码技术研究与实现》.《中国优秀硕士学位论文全文数据库信息科技辑》.2009,I136-140.

Also Published As

Publication number Publication date
CN102111163A (zh) 2011-06-29

Similar Documents

Publication Publication Date Title
CN102111163B (zh) Turbo编码器及编码方法
JP4383672B2 (ja) 第3世代の符号分割多重アクセスのためのターボコード・インターリーバ
CN100536359C (zh) 通信系统的交织/解交织装置和方法
CN104092470B (zh) 一种Turbo码译码装置及方法
CN100499380C (zh) 交织编解码的装置和方法
CN103427850B (zh) 多模维特比解码装置及其解码方法
CN101043284B (zh) 一种宽带码分多址系统中turbo编码器内的交织器
WO2011024033A1 (en) Encoding module, apparatus and method for determining a position of a data bit within an interleaved data stream
CN104601180B (zh) 一种基于扩展汉明码的二维乘积码编码装置及编码方法
CN101060374B (zh) Turbo编码流水处理装置及方法
CN101969310A (zh) Turbo码并行译码器的QPP内交织器及其交织方法
CN101114834A (zh) 一种ldpc码的编码器装置及编码方法
CN101938330A (zh) 一种多码率Turbo码译码器及其存储资源优化方法
CN101515805B (zh) 一种Turbo译码器及其译码方法
JP2009246474A (ja) ターボデコーダ
CN1592117B (zh) 用于计算交织参数的移动电话、设备、方法和程序
CN1954503A (zh) Turbo解码器输入重新排序
CN107017962A (zh) 动态功耗控制的编码方法及编解码器
CN113472358A (zh) 一种基于准循环生成矩阵的高速并行编码器
CN105187151B (zh) 一种wcdma系统下行扰码序列的产生方法及系统
CN102136878B (zh) 一种速率匹配实现方法和系统
CN102118219A (zh) 一种速率匹配的串行处理方法及装置
CN104184536A (zh) 基于LTE Turbo译码的子块交织控制方法、装置及设备
Xu et al. FPGA Acceleration Architecture Design and Implementation of LTE Physical Downlink Shared Channel
CN106712778A (zh) 一种turbo译码装置及方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20151105

Address after: Dameisha Yantian District of Shenzhen City, Guangdong province 518085 Building No. 1

Patentee after: SHENZHEN ZTE MICROELECTRONICS TECHNOLOGY CO., LTD.

Address before: 518057 Nanshan District Guangdong high tech Industrial Park, South Road, science and technology, ZTE building, Ministry of Justice

Patentee before: ZTE Corporation

EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20110629

Assignee: Xi'an Chris Semiconductor Technology Co. Ltd.

Assignor: SHENZHEN ZTE MICROELECTRONICS TECHNOLOGY CO., LTD.

Contract record no.: 2019440020036

Denomination of invention: Turbo encoder and encoding method

Granted publication date: 20140319

License type: Common License

Record date: 20190619