CN101043284A - 一种宽带码分多址系统中turbo编码器内的交织器 - Google Patents

一种宽带码分多址系统中turbo编码器内的交织器 Download PDF

Info

Publication number
CN101043284A
CN101043284A CNA200710091157XA CN200710091157A CN101043284A CN 101043284 A CN101043284 A CN 101043284A CN A200710091157X A CNA200710091157X A CN A200710091157XA CN 200710091157 A CN200710091157 A CN 200710091157A CN 101043284 A CN101043284 A CN 101043284A
Authority
CN
China
Prior art keywords
sequence
value
address
memory
input
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
Application number
CNA200710091157XA
Other languages
English (en)
Other versions
CN101043284B (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.)
Sanechips 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 CN200710091157XA priority Critical patent/CN101043284B/zh
Publication of CN101043284A publication Critical patent/CN101043284A/zh
Application granted granted Critical
Publication of CN101043284B publication Critical patent/CN101043284B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Error Detection And Correction (AREA)

Abstract

一种宽带码分多址系统中TURBO编码器内的交织器,包括:质数和原根值存储单元,用于存储p及其对应的v并依次输出;交织参数计算单元,用于根据输入数据块大小K,计算出相应的质数P、输入矩阵行数R、列数C和原根值V并输出;S序列计算单元,用于根据V及P求出S序列即行内置换的基础序列的值并保存;Ri序列计算单元用于保存质数序列Q中包含的质数qi对(P-1)求模后的值;地址生成单元,用于根据交织参数及S序列、R序列的值确定行地址和列地址的输出顺序,得到该地址在输入数据序列里的绝对位置并输出。上述单元采用加法器实现乘法运算,采用循环比较减法器实现取模电路,大大减少了运算所需的硬件资源。

Description

一种宽带码分多址系统中TURBO编码器内的交织器
技术领域
本发明涉及一种交织器,更具体地,涉及宽带码分多址(WCDMA)系统物理信道编码中TURBO编码中的交织器。
背景技术
Turbo编码器原理
Turbo编码方案是采用并联卷积码(PCCC),它有两个8状态子编码器和一个Turbo码内交织器。Turbo码的编码速率是1/3。Turbo编码结构见图1。
用于并联卷积码(PCCC)的8状态子编码的传递函数为:
G ( D ) = [ 1 , g 1 ( D ) g 0 ( D ) ] ,
其中:
g0(D)=1+D2+D3
g1(D)=1+D+D3
当开始对输入比特编码时,8状态子编码器移位寄存器的初始值为“全0”。Turbo编码器的输出为:
x1,z1,z′1,x2,z2,z′2,...,xK,zK,z′K
这里,x1,x2,...,xK为输入到Turbo编码器也就是第一个8状态子编码器和Turbo码内交织器的比特,K是比特数,而z1,z2,...,zK和z′1,z′2,...,z′K分别是第一个和第二个8状态子编码器的输出比特。
Turbo码内交织器的输出比特用x′1,x′2,...,x′K来表示,这些比特将输入到第二个8状态子编码器。
格栅终止的操作是在所有的信息比特编码后,从移位寄存器反馈中得到尾比特来完成的。尾比特在信息比特编码后添加。
最开始的三个尾比特在第二个子编码器不工作时,用于终止第一个子编码器(图1中上面的开关打到下端时)。最后三个尾比特在第一个子编码器不工作时,用于终止第二个子编码器(图1中下面的开关打到下端时)。
因此格栅终止的传输比特为:
xK+1,zK+1,xK+2,zK+2,xK+3,zK+3,x′K+1,z′K+1,x′K+2,z′K+2,x′K+3,z′K+3
这末尾12个比特是尾比特的系统位和校验位,尾比特用于使编码器状态回零。
Turbo码内交织器
Turbo码内交织器由比特输入矩阵并填充比特、矩阵的行内置换和行间置换、矩阵输出比特并加以修正这几部分组成。Turbo码内交织器的输入比特用x1,x2,x3,...,xK来表示,其中K是比特数,取值范围是40≤K≤5114。信道编码的输入比特和Turbo码内部交织器的输入比特之间关系为xk=oirk和K=Ki
下面是文中要用到的符号:
K    Turbo码内交织器的输入比特数
R    矩阵的行数
C    矩阵的列数
p    质数
v    初始根
<s(j)>j∈{0,1,...,p-2}   行内置换的基础序列
qi   最小质数
ri   序列改变后的质数
<T(i)>i∈{0,1,...,R-1}    行间置换模式
<Ui(j)>j∈{0,1,...,C-1}  第i行行内置换模式
i       矩阵行号
j       矩阵列号
k       比特序列号
输入到Turbo码内交织器的比特序列x1,x2,x3,...,xK按以下规则输入到矩阵中:
(1)按以下规则确定矩阵的行数R;
R = 5 , if ( 40 &le; K &le; 159 ) 10 , if ( ( 160 &le; K &le; 200 ) or ( 481 &le; K &le; 530 ) ) 20 , if ( K = any other value )
矩阵的行从顶至底依次记为0,1,2,....,R-1。
(2)按以下规则确定矩阵的列数C和内部置换所用到的质数P;
如果481≤K≤530,则P=53且C=P;否则:
按以下规则从质数和相关原根值表,即下表1中查找满足条件的最小的质数p:K≤R×(p+1),该p即为内部置换所用到的质数P。
并按以下规则确定C
C = P - 1 if K &le; R &times; ( P - 1 ) P if R &times; ( P - 1 ) < K &le; R &times; P P + 1 if R &times; P < K .
矩阵的列从左至右依次记为0,1,2,....,C-1。
表1  质数和相关原根值
    p     v     p     v     p     v     p     v     p     v
    7     3     47     5     101     2     157     5     223     3
    11     2     53     2     103     5     163     2     227     2
    13     2     59     2     107     2     167     5     229     6
    17     3     61     2     109     6     173     2     233     3
    19     2     67     2     113     3     179     2     239     7
    23     5     71     7     127     3     181     2     241     7
    29     2     73     5     131     2     191     19     251     6
    31     3     79     3     137     3     193     5     257     3
    37     2     83     2     139     2     197     2
    41     6     89     3     149     2     199     3
    43     3     97     5     151     6     211     2
(3)将输入比特序列x1,x2,x3,...,xK按行写入到R×C矩阵中,起始于第0行、第0列的比特y1
y 1 y 2 y 3 &CenterDot; &CenterDot; &CenterDot; y C y ( C + 1 ) y ( C + 2 ) y ( C + 3 ) . . . y 2 C . . . . . . . . . . . . . . . y ( ( R - 1 ) C + 1 ) y ( ( R - 1 ) C + 2 ) y ( ( R - 1 ) C + 3 ) . . . y R &times; C
其中yk=xk,k=1,2,...,K。如果R×C>K,则填充哑元比特使yk=0 or 1,k=K+1,K+2,...,R×C。这些哑元比特在行内和行间置换后的矩阵输出中去除。
(4)比特输入完成之后,R×C矩阵按下述S1-S6步算法逐步执行行内和行间置换。
1)根据得到的质数P从表1中选择一个初始根v,表中它在质数p的右边。
2)按下式构造用于行内置换的基础序列<s(j)>j∈{0,1,...,p-2}
s(j)=(v×s(j-1))modP,j=1,2,...,(P-2),ands(0)=1。
3)设序列<qi>i∈{0,1,...,R-1}中的第一个质数为q0=1,并且按下式确定序列<qi>i∈{0,1,...,R-1}中包含的最小质数qi,式中g.c.d.为最大公约数。
g.c.d(qi,p-1)=1,qi>6,and qi>q(i-1),i=1,2,...,R-1
4)按下列关系将<qi>i∈{0,1,...,R-1}转换为<ri>i∈{0,1,...,R-1}
rT(i)=qi,i=0,1,...,R-1,这里<T(i)>i∈{0,1,...,R-1}为行间置换模式,表2中列出了4种模式,它们取决于输入比特数K。
表2  Turbo码内交织器的行间置换模式
输入比特数K 行数R   行间置换模式<T(0),T(1),...,T(R-1)>
(40≤K≤159)     5   <4,3,2,1,0>
(160≤K≤200)or(481≤K≤530)     10   <9,8,7,6,5,4,3,2,1,0>
(2281≤K≤2480)or(3161≤K≤3210) 20   <19,9,14,4,0,2,5,7,12,18,16,13,17,15,3,1,6,11,8,10>
K=其他任意值 20   <19,9,14,4,0,2,5,7,12,18,10,8,13,17,3,1,16,6,15,11>
5)执行第i行行内置换(i=0,1,...,R-1):
如果C=P,则:
Ui(j)=s((j×ri)mod(P-1)),j=0,1,...,(P-2),and Ui(P-1)=0,Ui(j)为第i行第j个置换比特的初始位置。
如果C=P+1,则:
Ui(j)=s((j×ri)mod(P-1)),j=0,1,...,(P-2).Ui(P-1)=0,and Ui(P)=P,Ui(j)为第i行第j个置换比特的初始位置,且如果K=R×C,则用UR-1(0)替换UR-1(p)。
如果C=P-1,则:
Ui(j)=s((j×ri)mod(P-1))-1,j=0,1,...,(P-2),Ui(j)为第i行第j个置换比特的初始位置。
6)基于模式<T(i)>i∈{0,1,...,R-1}对矩阵执行行间置换,这里T(i)为第i个置换行的初始位置。
行内和行间置换之后,置换矩阵的比特可表示为y′k
y &prime; 1 y &prime; ( R + 1 ) y &prime; ( 2 R + 1 ) . . . y &prime; ( ( C - 1 ) R + 1 ) y &prime; 2 y &prime; ( R + 2 ) y &prime; ( 2 R + 2 ) . . . y &prime; ( ( C - 1 ) R + 2 ) . . . . . . . . . . . . . . . y &prime; R y &prime; 2 R y &prime; 3 R . . . y &prime; C &times; R
(5)Turbo码内交织器的输出是行内和行间置换后R×C矩阵按列读出的比特序列,该矩阵从0行0列的y′1开始,到R-1行C-1列的y′CR结束。输出通过删除行内和行间置换前输入中填充的哑元比特得到修正,即从输出中删除k>K时yk对应的y′k。Turbo码内交织器的输出比特用x′1,x′2,...,x′K来表示,x′1对应于修正后具有最小下标k的y′k,x′2对应于修正后具有次小下标k的y′k,依此类推。Turbo码内交织器的输出比特数量为K,修正剪除掉的比特总数为R×C-K。
由TRUBO交织器的原理可以看出,该算法中关键是S序列计算和行内交换,这里面包含了两个乘法及取模电路,如果直接采用乘法电路或除法电路,用硬件实现所消耗的资源将非常大。所以如何减少硬件资源是turbo编码器设计中的主要难点。
申请号为03115710.6的中国专利提出了一种用循环比较减完成取模的方法,该方法删除了除法电路,使资源有很多减少,但是在求S序列时还是使用了乘法电路,还可以进一步的简化。
发明内容
本发明要解决的技术问题是提供一种WCDMA系统TURBO编码器内的交织器,大大减少运算所需的硬件资源。
为了解决上述技术问题,本发明提供了一种宽带码分多址系统中TURBO编码器内的交织器,包括质数和原根值存储单元、交织参数计算单元、S序列计算单元、Ri序列计算单元、地址生成单元,其特征在于:
所述质数和原根值存储单元用于存储质数和原根值表中的p及其对应的v,并依次输出到交织参数计算模块和Ri序列计算单元;
所述交织参数计算模块用于根据输入数据块大小K,计算出相应的质数P、输入矩阵行数R、列数C和原根值V,将P、V输出到S序列计算单元,将P输出到Ri序列计算单元,将R、C、P输出到地址生成单元;
所述S序列计算单元用于根据输入的原根值V及质数P求出S序列即行内置换的基础序列的值并保存;
所述Ri序列计算单元用于保存质数序列Q即<qi>i∈{0,1,...,R-1}中包含的质数qi对(P-1)求模后的值;
所述地址生成单元用于根据计算出的交织参数及S序列、R序列的值确定行地址和列地址的输出顺序,将行地址乘以列数并加上列地址得到该地址在输入数据序列里的绝对位置并输出;
上述单元的硬件电路中,采用加法器实现乘法运算,采用循环比较减法器实现取模电路。
进一步地,上述交织器还可具有以下特点:
所述交织参数计算模块在确定一个使公式K<=R*(P+1)成立的最小的P值时,采用简单的用组合逻辑电路求出R=5、10、20时的R*(P+1)值,并用一比较器对R*(P+1)和K进行比较,当R*(P+1)大于等于K时,锁存读出的p值,该p值即为要求解的P。
进一步地,上述交织器还可具有以下特点:
所述S序列计算模块包括依次连接的S*V模块、选择器、循环比较减法器和S序列存储器,以及连接在循环比较减法器和S序列存储器之间的写地址计数器;其中:
所述S*V单元输入为S,采用加法组合出2S、3S、5S、6S、7S、19S信号输出;
所述选择器根据输入的V值,从2S、3S、5S、6S、7S、19S等输入中选择相应的一个输出到循环比较减法器;
所述循环比较减法器将该值与输入的P比较,若小于P则存储该值,否则将该值减P并替换原值,循环执行比较和减操作,一直减到该值小于P为止再输出该值,按当前写地址保存到S序列存储器并返回到S*V单元;同时,还输出一有效信号到所述写地址计数器,使S序列存储器的写地址加1,开始下一次的运算;
S序列存储器的第一个存储单元即S(0)的值置为1。
进一步地,上述交织器还可具有以下特点:
所述Ri序列计算单元包括(P-1)倍增单元、比较减法器、删除指示信号生成单元、写地址计数器和Ri序列存储器,其中:
所述(P-1)倍增模块用于对输入的P减1后,用加法电路组合出2~7(P-1)信号输出到比较减法器;
所述比较减法器用于从质数和原根值存储单元中依次读出质数p,并将读出的p值与(P-1)倍增模块的输出比较,如果大于7(P-1)则减去7(P-1),否则与6(P-1)比较,直到最终该质数减完后的值小于P-1,再输出到Ri序列存储器;
所述删除指示信号生成单元保存有各P值对应的要删除的G值,输入信号为计算出的P值和读出的p值,在读出的p值不等于输入P值对应的G值时,将该值保存到Ri序列存储器,否则不予保存;
所述Ri序列存储器中保存的质数由所述地址生成单元返回一个Ri_addr即Ri序列的读地址信号来读出。
进一步地,上述交织器还可具有以下特点:
所述删除指示信号生成单元在读出的p值不等于输入P值对应的G值时,输出有效信号到写地址计数器,使输出到Ri序列存储器的写地址加1;如等于G值,则输出无效信号,写地址计数器的写地址不变。
进一步地,上述交织器还可具有以下特点:
所述地址生成单元包括行地址计数器、列地址计数器、行地址置换单元、列地址发生单元、U序列存储器、加法取模电路及乘法器电路;其中:
所述行地址计数器输入信号为R值,从0开始到R-1循环计数,将计数值输出到行地址置换单元、列地址发生器和列地址计数器,并作为Ri序列存储器和U序列存储器的读地址;
所述行地址置换单元用于根据K、R确定当前的行间置换模式,根据行计数值i映射得到相应模式下的值T(i),作为行地址输出到乘法器;
所述U序列存储器的读地址与Ri序列存储器地址一一对应,用于存储对应行的Ri的累加并模(p-1)的值,其初始值为全0,其输出作为S序列存储器的读地址;
所述加法取模电路用于将从Ri序列存储器读出的Ri值,加上从U序列存储器相应读出的U值,其和模(P-1)后回存给U序列存储器,作为下一列U序列在当前行的值;
所述列地址计数器的输入信号为R值、C值和行地址计数值,当行地址计数值达到最大值时,列地址加1,列计数值输出到列地址发生器;
所述列地址发生单元接收行地址计数器、列地址计数器的计数值以及从S序列存储器中读出的值s,按规定的算法向乘法器输出列地址;
乘法器用于将输入的行地址乘以列数并加上列地址,得到最终输出的绝对地址,当该地址值大于输入数据块大小K时,输出数据指示无效,当所有行列完成时,输出读结束标志。
可以看出,本发明通过根据原根的特点将S序列的乘法改成组合加法,并利用删除值控制Ri序列的存储等方法,大大的降低了Turbo编码器所占的资源。本发明通过采用循环减实现取模及采用组合实现乘法的方式实现了turbo内交织器的实现,通过这种方法大大的减少了硬件资源。
附图说明
图1表示的是已知的turbo编码器的结构图;
图2表示的是本实施例整个turbo交织器的结构图;
图3表示的是本实施例计算S序列的电路结构图;
图4表示的是本实施例查找并计算、存储Ri序列的电路结构图;
图5表示的是本实施例地址生成的电路结构图。
具体实施方式
下面结合附图对本发明的实施例进行详细说明。
如图2所示,本实施例的交织器包括质数和原根值存储单元、交织参数计算单元、S序列计算单元、Ri序列计算单元、地址生成单元等。其中:
质数和原根值存储单元用于按从小到大的顺序依次存储上述质数和原根值表中的p及其对应的v,还具有一个地址计数器,以依次读出其中的数据,并输出到参数计算模块和Ri序列计算单元。
参数计算模块用于按照协议规定,根据输入数据块大小K,算出相应的质数P、输入矩阵的行数R和列数C、以及原根值V,将P、V输出到S序列计算单元,将P输出到Ri序列计算单元,将R、C、P输出到地址生成单元。具体公式见上述步骤(1)和(2)。
本实施例中,这些参数全部由硬件计算出,软件只需提供输入比特数K即可,可以采用已有的硬件电路。首先,通过逻辑比较电路中将输入的数据块长度K与几个区间的边界值常数比较,确定出行数R。然后从质数和原根值存储单元中按从小到大的顺序依次读出p值,从中确定一个使公式K<=R*(P+1)成立的最小的P值。这里有一个R*(P+1)要计算,由于R只取特定的值5、10、20,所以该乘法可以简单的用组合逻辑实现,如5(P+1)可以通过一次移位运算(移2位)和一次加法运算完成,用一比较器对R*(P+1)和K进行比较,当R*(P+1)大于等于K时,锁存读出的p值,该p值即为要求解的P。由该P可以直接得到对应的原根值V。然后根据步骤(2)中的规则,通过比较电路可以求出列数C。
S序列计算单元用于根据输入的原根值V及质数P求出S序列并存储到S序列存储器中,该S序列即上述行内置换的基础序列<s(j)>j∈{0,1,...,p-2}。其计算规则见上述步骤(4)中的子步骤2)。
如图3所示,S序列计算模块包括依次连接的S*V模块、选择器、循环比较减法器和S序列存储器,以及连接在循环比较减法器和S序列存储器之间的写地址计数器;S序列存储器大小为256*9,S序列存储器的第一个存储单元即S(0)的值置为1。因为原根只有特定的几个值2、3、5、6、7、19,所以这里的乘法也可以用简单的组合逻辑实现,而取模电路则采用循环比较减电路实现。其中:
S*V单元输入为S,采用加法组合出2S、3S、5S、6S、7S、19S等输出,选择器根据输入的V值,从2S、3S、5S、6S、7S、19S等输入中选择相应的一个输出到循环比较减法器,如V=3如则选择3S输出。循环比较减法器将该值与输入的P比较,若小于P则存储该值,否则将该值减P并替换原值,循环执行比较和减操作,一直减到该值小于P为止再输出该值,如此即完成了一次S*V对P取模,将(S*V)模P的值按当前写地址保存到S序列存储器并返回到S*V单元即令S=S*V,图中模运算用“%”表示。同时还输出一有效信号到写地址计数器,使S序列存储器的写地址加1。开始下一次的运算。
Ri序列计算单元用于根据协议要求保存最多R个质数,Ri序列中的质数是质数序列Q即<qi>i∈{0,1,...,R-1}中包含的质数qi对(P-1)求模后的值。关于该序列的定义请见上述步骤(4)中的子步骤3)。
针对规范中的规则推导可以得到质数序列Q本身的一些特点,即Q序列除了q0固定为1以外,其它的值都是p序列的从最小值开始的一个子集,并且最多删除1个或者2个p序列中的值。可以推导出,对于每个不同的p值,可能删除的p值如下面的表所示:
    p 删除p值     p 删除p值     p 删除p值     p 删除p值   p 删除p值
    23 11     47 23     101 不删除     157 13   223 37
    29 7     53 13     103 17     163 不删除   227 不删除
    31 不删除     59 29     107 53     167 不删除   229 19
    37 不删除     61 不删除     109 不删除     173 43   233 29
    41 不删除     67 11     113 7     179 不删除   239 7和17
    43 7     71 7     127 7     181 不删除   241 不删除
    73 不删除     131 13     191 19   251 不删除
    79 13     137 17     193 不删除   257 不删除
    83 41     139 23     197 7
    89 11     149 37     199 11
    97 不删除     151 不删除     211 7
可以看出,所有可能删除的p只有7,11,13,17,19,23,29,37,41,43和53。应当从序列中删除的p可以由当前的P值唯一确定。如当前的P值为23时,q序列中的后19个值为p序列从7开始的除应删除的值11外,依次读取的19个值。
由图4可以看出Ri序列计算单元包括(P-1)倍增单元、比较减法器、删除指示信号生成单元、写地址计数器和Ri序列存储器,其中:
(P-1)倍增模块用于对输入的P减1后,用加法电路组合出2(P-1)、3(P-1)、4(P-1)、5(P-1)、6(P-1)、7(P-1)等信号输出到比较减法器。由协议可以推算出质数序列Q中的值不可能大于8倍的(P-1)。
比较减法器用于从质数和原根值存储单元中依次读出质数p,并将读出的p值与(P-1)倍增模块的输出比较,如果大于7(P-1)则减去7(P-1),否则与6(P-1)比较,直到最终该质数减完后的值小于P-1(相当于p模(P-1))再输出到Ri序列存储器。
删除指示信号生成单元保存有各P值对应的要删除的G值,输入信号为计算出的P值和读出的p值,在读出的p值不等于输入P值对应的G值时,输出有效信号到写地址计数器,使输出到Ri序列存储器的写地址加1;如等于G值,则输出无效信号,写地址计数器的写地址不变。这样,在p值不等于G值时,下一个p值对(P-1)取模后的值写入Ri序列存储器的下一存储单元;在p值等于G值时,写地址不变,这样下一个p值对(P-1)取模后的值就会写入Ri序列存储器原存储单元,覆盖掉原先的删除值,从而保证了Ri序列Ri与(P-1)互质这一条件。
Ri序列存储器中保存的质数由地址生成单元返回一个Ri_addr即Ri序列的读地址信号来读出。
本实施例中Ri序列存储的p模(P-1)的值。假设Q=m*(P-1)+n,即n=(Q)mod(P-1),那么在计算公式Ui(j)=s((j×ri)mod(p-1))时,(j*Q)mod(P-1)=(j*(m*(P-1)+n))mod(P-1)=(j*n)mod(P-1),因为取模运算用的是循环减,所以可以减少j*m次循环减,这样在一个行内置换期间可以减少(P*(P-1)/2)*m(由于j取值从1到P-1)次循环减运算,提高运算速度。
地址生成单元用于确定行地址和列地址的输出顺序,然后将行地址乘以列数并加上列地址算出该地址在输入数据序列里的绝对位置,实现读出时的数据交织,其中行地址按照表2对行地址计数器的计数值进行置换后给出,列地址根据S序列及行、列地址计数器的值给出,S序列的读地址由U序列给出。
由图5可以看出地址生成单元包括行地址计数器、列地址计数器、行地址置换单元、列地址发生单元、U序列存储器、加法取模电路及乘法器电路。图中还示出了Ri序列计算单元中的Ri序列存储器和S序列计算模块中的S序列存储器,其中:
行地址计数器输入信号为R值,从0开始计数,在计数值达到R-1时行地址自动复位开始下一轮计数,用于为行地址置换单元、列地址发生器和列地址计数器提供行计数值,并将该计数值作为Ri序列存储器和U序列存储器的读地址。
行地址置换单元中保存有上述4种行间置换模式的值,根据输入比特数K和行数R可以确定当前使用的行间置换模式,根据输入的行计数值i映射得到相应模式下的值T(i),作为行地址输出到乘法器。
U序列存储器的读地址与Ri序列存储器地址一一对应,最大20行,用于存储对应行的Ri的累加并模(p-1)的值,U序列的初始值为全0,对应第0列时的所有行的U值,U序列的输出数据作为S序列存储器的读地址。
加法取模电路用于U序列的更新值计算,根据P-1值、按从Ri序列存储器读出的Ri值及从U序列存储器相应读出的U值计算下一列U序列在当前行的值,由于Ri存储的已经是p模(P-1)的值,所以只需将Ri值与U序列输出数据相加并模(P-1),即与(P-1)比较,如果叠加值大于(P-1),将该值减去(P-1)后回存给U序列存储器,作为下一列U序列在当前行的值,如果小于(P-1),直接将该叠加值返回U序列存储器作为下一列U序列在当前行的值。
列地址计数器的输入信号为R值、C值和行地址计数值,当行地址计数值达到最大值时,列地址加1,列计数值输出到列地址发生器。
列地址发生单元接收行地址计数器、列地址计数器的计数值以及从S序列存储器中读出的值s,按规定的算法向乘法器输出列地址,相关公式见上述步骤(4)中子步骤5)。
乘法器用于将输入的行地址乘以列数并加上列地址,得到最终输出的绝对地址,当该地址值大于输入数据块大小K时,输出数据指示无效,当所有行列完成时,输出读结束标志。
图3、图4和图中各个单元的功能均可用已有电路结构实现。在交织参数计算单元完成计算后,触发S序列计算单元、Ri序列计算单元开始运算,该两个单元完成运算之后,再触发地址生成单元生成读地址读出数据。另外,上述各图只是示意图,并没有画出各个单元之间的所有连线,但本领域人员据此很容易即可完成实施。
综上所述,本发明主要包含以下几个技术特点:
一:参数全硬件实现,如输入矩阵的行数R,列数C全部由硬件计算出,软件只需提供输入比特数K即可。
二:质数P、Q序列用ROM查找表实现。
三:根据原根的特点,S序列的乘法采用加法实现,取模电路用循环比较减法器实现。
四:Ri序列存储的实际上是Q模(P-1),根据Q和P-1的特点可以知道,Q最多是P-1的7倍多,所以这里的取模电路是用比较减法器实现。
五:利用Ri序列循环叠加完成J*Ri的功能,并用减法代替对(P-1)取模功能,结果保存在U序列中,该序列的输出为S序列的读地址。

Claims (6)

1、一种宽带码分多址系统中TURBO编码器内的交织器,包括质数和原根值存储单元、交织参数计算单元、S序列计算单元、Ri序列计算单元、地址生成单元,其特征在于:
所述质数和原根值存储单元用于存储质数和原根值表中的p及其对应的v,并依次输出到交织参数计算模块和Ri序列计算单元;
所述交织参数计算模块用于根据输入数据块大小K,计算出相应的质数P、输入矩阵行数R、列数C和原根值V,将P、V输出到S序列计算单元,将P输出到Ri序列计算单元,将R、C、P输出到地址生成单元;
所述S序列计算单元用于根据输入的原根值V及质数P求出S序列即行内置换的基础序列的值并保存;
所述Ri序列计算单元用于保存质数序列Q即<qi>i∈{0,1,...,R-1}中包含的质数qi对(P-1)求模后的值;
所述地址生成单元用于根据计算出的交织参数及S序列、R序列的值确定行地址和列地址的输出顺序,将行地址乘以列数并加上列地址得到该地址在输入数据序列里的绝对位置并输出;
上述单元的硬件电路中,采用加法器实现乘法运算,采用循环比较减法器实现取模电路。
2、如权利要求1所述的交织器,其特征在于:
所述交织参数计算模块在确定一个使公式K<=R*(P+1)成立的最小的P值时,采用简单的用组合逻辑电路求出R=5、10、20时的R*(P+1)值,并用一比较器对R*(P+1)和K进行比较,当R*(P+1)大于等于K时,锁存读出的p值,该p值即为要求解的P。
3、如权利要求1所述的交织器,其特征在于:
所述S序列计算模块包括依次连接的S*V模块、选择器、循环比较减法器和S序列存储器,以及连接在循环比较减法器和S序列存储器之间的写地址计数器;其中:
所述S*V单元输入为S,采用加法组合出2S、3S、5S、6S、7S、19S信号输出;
所述选择器根据输入的V值,从2S、3S、5S、6S、7S、19S等输入中选择相应的一个输出到循环比较减法器;
所述循环比较减法器将该值与输入的P比较,若小于P则存储该值,否则将该值减P并替换原值,循环执行比较和减操作,一直减到该值小于P为止再输出该值,按当前写地址保存到S序列存储器并返回到S*V单元;同时,还输出一有效信号到所述写地址计数器,使S序列存储器的写地址加1,开始下一次的运算;
S序列存储器的第一个存储单元即S(0)的值置为1。
4、如权利要求1所述的交织器,其特征在于:
所述Ri序列计算单元包括(P-1)倍增单元、比较减法器、删除指示信号生成单元、写地址计数器和Ri序列存储器,其中:
所述(P-1)倍增模块用于对输入的P减1后,用加法电路组合出2~7(P-1)信号输出到比较减法器;
所述比较减法器用于从质数和原根值存储单元中依次读出质数p,并将读出的p值与(P-1)倍增模块的输出比较,如果大于7(P-1)则减去7(P-1),否则与6(P-1)比较,直到最终该质数减完后的值小于P-1,再输出到Ri序列存储器;
所述删除指示信号生成单元保存有各P值对应的要删除的G值,输入信号为计算出的P值和读出的p值,在读出的p值不等于输入P值对应的G值时,将该值保存到Ri序列存储器,否则不予保存;
所述Ri序列存储器中保存的质数由所述地址生成单元返回一个Ri_addr即Ri序列的读地址信号来读出。
5、如权利要求4所述的交织器,其特征在于:
所述删除指示信号生成单元在读出的p值不等于输入P值对应的G值时,输出有效信号到写地址计数器,使输出到Ri序列存储器的写地址加1;如等于G值,则输出无效信号,写地址计数器的写地址不变。
6、如权利要求1所述的交织器,其特征在于:
所述地址生成单元包括行地址计数器、列地址计数器、行地址置换单元、列地址发生单元、U序列存储器、加法取模电路及乘法器电路;其中:
所述行地址计数器输入信号为R值,从0开始到R-1循环计数,将计数值输出到行地址置换单元、列地址发生器和列地址计数器,并作为Ri序列存储器和U序列存储器的读地址;
所述行地址置换单元用于根据K、R确定当前的行间置换模式,根据行计数值i映射得到相应模式下的值T(i),作为行地址输出到乘法器;
所述U序列存储器的读地址与Ri序列存储器地址一一对应,用于存储对应行的Ri的累加并模(p-1)的值,其初始值为全0,其输出作为S序列存储器的读地址;
所述加法取模电路用于将从Ri序列存储器读出的Ri值,加上从U序列存储器相应读出的U值,其和模(P-1)后回存给U序列存储器,作为下一列U序列在当前行的值;
所述列地址计数器的输入信号为R值、C值和行地址计数值,当行地址计数值达到最大值时,列地址加1,列计数值输出到列地址发生器;
所述列地址发生单元接收行地址计数器、列地址计数器的计数值以及从S序列存储器中读出的值s,按规定的算法向乘法器输出列地址;
乘法器用于将输入的行地址乘以列数并加上列地址,得到最终输出的绝对地址,当该地址值大于输入数据块大小K时,输出数据指示无效,当所有行列完成时,输出读结束标志。
CN200710091157XA 2007-04-10 2007-04-10 一种宽带码分多址系统中turbo编码器内的交织器 Expired - Fee Related CN101043284B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200710091157XA CN101043284B (zh) 2007-04-10 2007-04-10 一种宽带码分多址系统中turbo编码器内的交织器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200710091157XA CN101043284B (zh) 2007-04-10 2007-04-10 一种宽带码分多址系统中turbo编码器内的交织器

Publications (2)

Publication Number Publication Date
CN101043284A true CN101043284A (zh) 2007-09-26
CN101043284B CN101043284B (zh) 2011-04-20

Family

ID=38808531

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200710091157XA Expired - Fee Related CN101043284B (zh) 2007-04-10 2007-04-10 一种宽带码分多址系统中turbo编码器内的交织器

Country Status (1)

Country Link
CN (1) CN101043284B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010078801A1 (zh) * 2009-01-06 2010-07-15 中国广东省深圳市 资源子带/微带的置换方法、子载波/子载波组置换方法
CN101540651B (zh) * 2008-03-21 2011-08-31 电信科学技术研究院 一种实现列交织的方法和装置
CN101662292B (zh) * 2008-08-28 2012-07-25 电信科学技术研究院 一种交织器的确定方法及装置
CN101667839B (zh) * 2008-09-02 2012-10-03 电信科学技术研究院 交织方法
CN102790655A (zh) * 2011-05-20 2012-11-21 中兴通讯股份有限公司 一种实现Turbo编码的装置和方法
CN102801488A (zh) * 2011-05-23 2012-11-28 中兴通讯股份有限公司 一种适用于WiMAX的交织或解交织的实现方法和装置
CN103314362A (zh) * 2010-12-17 2013-09-18 意法爱立信有限公司 用于数据流的基于向量的匹配电路
CN103546232A (zh) * 2012-07-11 2014-01-29 中兴通讯股份有限公司 数据的处理方法及装置
CN105281878A (zh) * 2014-07-25 2016-01-27 中兴通讯股份有限公司 一种资源单元映射方法及装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1178417C (zh) * 2001-07-11 2004-12-01 信息产业部电信传输研究所 现场实时产生宽带码分多址Turbo码内交织器方法
JP3624874B2 (ja) * 2001-11-19 2005-03-02 日本電気株式会社 インターリービング順序発生器、インターリーバ、ターボエンコーダ、及びターボデコーダ
CN1198416C (zh) * 2002-07-12 2005-04-20 信息产业部电信传输研究所 一种实现w-cdma系统中turbo编码交织的方法和装置
CN1247035C (zh) * 2003-03-10 2006-03-22 大唐移动通信设备有限公司 一种用可编程门阵列实现的第三代移动通信标准协议中的Turbo码内交织器
GB2400776A (en) * 2003-04-14 2004-10-20 Modem Art Ltd method of using an algebraic interleaver for turbo encoding/decoding

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101540651B (zh) * 2008-03-21 2011-08-31 电信科学技术研究院 一种实现列交织的方法和装置
CN101662292B (zh) * 2008-08-28 2012-07-25 电信科学技术研究院 一种交织器的确定方法及装置
CN101667839B (zh) * 2008-09-02 2012-10-03 电信科学技术研究院 交织方法
WO2010078801A1 (zh) * 2009-01-06 2010-07-15 中国广东省深圳市 资源子带/微带的置换方法、子载波/子载波组置换方法
CN103314362B (zh) * 2010-12-17 2016-09-21 瑞典爱立信有限公司 用于数据流的基于向量的匹配电路
CN103314362A (zh) * 2010-12-17 2013-09-18 意法爱立信有限公司 用于数据流的基于向量的匹配电路
CN102790655B (zh) * 2011-05-20 2015-05-20 中兴通讯股份有限公司 一种实现Turbo编码的装置和方法
CN102790655A (zh) * 2011-05-20 2012-11-21 中兴通讯股份有限公司 一种实现Turbo编码的装置和方法
WO2012159401A1 (zh) * 2011-05-20 2012-11-29 中兴通讯股份有限公司 一种实现turbo编码的装置和方法
WO2012159415A1 (zh) * 2011-05-23 2012-11-29 中兴通讯股份有限公司 一种适用于wimax的交织或解交织的实现方法和装置
CN102801488B (zh) * 2011-05-23 2015-12-16 中兴通讯股份有限公司 一种适用于WiMAX的交织或解交织的实现方法和装置
CN102801488A (zh) * 2011-05-23 2012-11-28 中兴通讯股份有限公司 一种适用于WiMAX的交织或解交织的实现方法和装置
CN103546232A (zh) * 2012-07-11 2014-01-29 中兴通讯股份有限公司 数据的处理方法及装置
CN105281878A (zh) * 2014-07-25 2016-01-27 中兴通讯股份有限公司 一种资源单元映射方法及装置

Also Published As

Publication number Publication date
CN101043284B (zh) 2011-04-20

Similar Documents

Publication Publication Date Title
CN101043284A (zh) 一种宽带码分多址系统中turbo编码器内的交织器
CN1202625C (zh) 利用线性同余序列的turbo码交织器
CN1136663C (zh) 用于通信系统的交织/解交织设备和方法
CN1286276C (zh) 随机存取多向cdma2000 turbo编码交织器
CN1157073C (zh) 交错处理
CN100345390C (zh) 用于通信系统的交织/解交织设备和方法
CN1140966C (zh) Turbo交错器/解交错器中使用的地址发生器和地址发生方法
CN1639986A (zh) 交织顺序发生器、交织器、Turbo码编码器和Turbo码译码器
CN1777082A (zh) 基于预编码的并行卷积ldpc码的编码器及其快速编码方法
CN1366739A (zh) 被快速(Turbo)编码了的代码序列的译码方法及译码装置
CN1188950C (zh) 螺旋码的行内置换
CN1120414C (zh) 去交错装置
CN1507694A (zh) 通信系统中的交织器和交织方法
CN1714513A (zh) 用于turbo编码器和解码器中的交织器的地址产生
CN1252936C (zh) 用于透平编码的块交织
CN1894857A (zh) 使用Galois域乘法查询表的Reed-Solomon码的编码和解码
CN1893282A (zh) 一跨序列排序涡轮码系统和其操作方法
CN1258710C (zh) 用于高效模数归约和模数乘法的电路和方法
CN1302624C (zh) 基于格子的信道编码所用的解码器
CN101034951A (zh) 一种Turbo码内交织器的实现方法
Wang et al. Very low-complexity hardware interleaver for turbo decoding
US20120242518A1 (en) Subset transform interleaver
CN1247035C (zh) 一种用可编程门阵列实现的第三代移动通信标准协议中的Turbo码内交织器
CN1349357A (zh) 在移动通信系统中执行特博解码的方法
CN1328386A (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
C14 Grant of patent or utility model
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20151112

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

Patentee after: SANECHIPS TECHNOLOGY Co.,Ltd.

Address before: 518057 Nanshan District high tech Industrial Park, Guangdong, South Road, science and technology, ZTE building, legal department

Patentee before: ZTE Corp.

EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20070926

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

Assignor: SANECHIPS TECHNOLOGY Co.,Ltd.

Contract record no.: 2019440020036

Denomination of invention: Interleaver of TURBO coder in WCDMA system

Granted publication date: 20110420

License type: Common License

Record date: 20190619

EE01 Entry into force of recordation of patent licensing contract
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110420

CF01 Termination of patent right due to non-payment of annual fee