CN1247035C - 一种用可编程门阵列实现的第三代移动通信标准协议中的Turbo码内交织器 - Google Patents

一种用可编程门阵列实现的第三代移动通信标准协议中的Turbo码内交织器 Download PDF

Info

Publication number
CN1247035C
CN1247035C CN 03115710 CN03115710A CN1247035C CN 1247035 C CN1247035 C CN 1247035C CN 03115710 CN03115710 CN 03115710 CN 03115710 A CN03115710 A CN 03115710A CN 1247035 C CN1247035 C CN 1247035C
Authority
CN
China
Prior art keywords
unit
value
sequence
prime number
row
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.)
Expired - Lifetime
Application number
CN 03115710
Other languages
English (en)
Other versions
CN1531353A (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.)
China Academy of Telecommunications Technology CATT
Datang Mobile Communications Equipment Co Ltd
Original Assignee
Datang Mobile Communications Equipment Co Ltd
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 Datang Mobile Communications Equipment Co Ltd filed Critical Datang Mobile Communications Equipment Co Ltd
Priority to CN 03115710 priority Critical patent/CN1247035C/zh
Publication of CN1531353A publication Critical patent/CN1531353A/zh
Application granted granted Critical
Publication of CN1247035C publication Critical patent/CN1247035C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/27Coding, 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/2703Coding, 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/271Row-column interleaver with permutations, e.g. block interleaving with inter-row, inter-column, intra-row or intra-column permutations
    • H03M13/2714Turbo interleaver for 3rd generation partnership project [3GPP] universal mobile telecommunications systems [UMTS], e.g. as defined in technical specification TS 25.212

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)

Abstract

本发明公开了一种用FPGA实现的3GPP Turbo码内交织器,该交织器包括:交织参数计算单元,s序列计算单元,q序列计算单元,置换及删减单元四个部分。其中的s序列计算单元和q序列计算单元中的求模电路通过累减操作来实现,并且可以复用。一个行内置换单元中的求模运算则通过一个减法电路完成。本发明的行内置换单元的乘法器则转化成了一个加法器来实现,在q序列计算单元,将求最大公约数的运算简化成了查表运算。这样大大减少了资源消耗。在行内、行间置换的过程中省略了r序列的计算。本发明完全可以采用FPGA硬件来实现,做到实时处理。

Description

一种用可编程门阵列实现的 第三代移动通信标准协议中的Turbo码内交织器
技术领域
本发明属于移动通信领域,尤其涉及一种用FPGA实现的3GPP Turbo码内交织器。
技术背景
在3GPP中,共用到了两种编码方式,分别为:卷积码,Turbo编码。正是因为Turbo码具有良好的编码性能,所以才被用作3GPP高速业务的首选编码方案。而Turbo码的良好性能在很大程度上源于其采用了一个具有很大交织深度的交织器,使得编出的码字具有近似长码的优越性能。
现有交织器的实现有两种方式:一是采用高级软件计算出交织地址,这种方法的缺陷在于无法完成硬件上的实时处理;二是采用一般的FPGA设计方法。后种方法的流程见图1。
下面结合图1对本发明最相关的现有技术进行较详细说明。步骤101开始进入FPGA的设计过程,步骤102进行交织参数以及矩阵的计算,该单元首先确定矩阵的行和列,然后将输入的比特序列x1,x2,x3,...,xK写入方形矩阵中:
(1)确定方形矩阵的行数R:
R = 2 . if ( 40 ≤ K ≤ 159 ) 10 , if ( ( 160 ≤ K ≤ 200 ) or ( 481 ≤ K ≤ 530 ) 20 . if ( K = any other value )
(2)确定行内置换所需的质数p,原根v以及方形矩阵的列数C:
    if(481≤K≤530)then
        p=53and C=p.
    else
        从表1中找到最小质数p,使得K≤R×(p+1),
        并确定C,使得:
C = p - 1 if K &times; R &times; ( p - 1 ) p if R &times; ( p - 1 ) < K &le; R &times; p p + 1 if R &times; p < K .
    end if
    计算出质数p后就可以根据表1查出对应的原根v。
(3)逐行将比特序列x1,x2,x3,...,xK写入R×C的方形矩阵中:
y 1 y 2 y 3 . . . 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 for k=1,2,...,K
并且如果R×C>K,则用虚拟比特填充。这些虚拟比特在执行完行内和行间置换之后,需要从方形矩阵输出中删减掉。
步骤103进入行内行间置换过程,包括s、q、r序列计算以及行内、行间置换等若干过程。
(1)s序列计算
按如下方法构造用于行内置换的基序列:
<s(j)>j∈{0,1,...,p-2}
s(j)=(v×s(j-1))mod p,j=1,2,...(p-2),且s(0)=1
此处采用乘法器完成乘法运算,利用除法器完成求模运算。
(2)q序列计算
指定q0=1为序列<qi>i∈{0,1,...,R-1}中的第一个质整数,序列<qi>i∈{0,1,...,R-1}其他质整数确定方法为:对于每个i=1,2,...,R-1,qi是满足g.c.d(qi,p-1)=1,qi>6,且qi>q(i-1)的最小质整数。这里g.c.d.代表最大公约数。
采用一般的比较查找的方法实现求最大公约数。
(3)r序列计算
置换序列<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。
(4)行内置换
执行第i行的行内置换:
if(C=p)then
  Ui(j)=s((j×ri)mod(p-1)),j=0,1,...,(p-2),and Ui(p-1)=0,
  其中Ui(j)是第i行的第j个需要置换的比特的原始位置。
end if
if(C=p+1)then
  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个需要置换的比特的原始位置,且
  if(K=R×C)then
      交换Ur-1(p)和Ur-1(0).
  end if
end if
if(C=p-1)then
  Ui(j)=s((j×ri)mod(p-1))-1,j=0,1,...,(p-2),
其中Ui(j)是第i行的第j个需要置换的比特的原始位置。
end if
(5)按照模式<T(i)>i∈{0,1,...,R-1}执行方形矩阵的行间置换,其中T(i)是第i个置换行的原始行位置。
步骤104,输出有删减的方形矩阵比特。
完成行内和行间置换执行后,置换后的方形矩阵各比特以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
Turbo码内交织器的输出是从R×C方形矩阵中按照一列一列的顺序依次读出的比特序列,该矩阵已经过行内和行间置换,比特序列开始于0行0列的y′1,终止于R-1行C-1列的y′Cr。删减操作是删减在行内和行间置换前填补到矩阵输入中的所有虚拟比特,即对应于yk,k>K的比特y′k需要从输出中删减掉。Turbo码内交织器的输出比特记为x′1,x′2,...,x′K,其中x′1对应删减后指针k最小的比特,y′k,x′2对应删减后指针k第二小的比特y′k,以此类推。Turbo码内交织器的输出比特数为K,删减的比特总数为:R×C-K。
步骤105,结束整个内交织过程。
从上述处理的流程中,可以看出该方法主要由几部分组成:交织参数的计算单元、q序列的计算单元、s序列的计算单元、r序列的计算单元、行内行间的置换单元和删减输出单元。在实现上会有以下缺陷:
(1)其中两个单元用到求模电路,一是s序列计算单元,一个行内置换单元,通常的求模运算均需通过除法电路来实现,将占用大量资源;
(2)其中三个单元用到乘法电路,交织参数计算单元、s序列计算单元和行内交织单元,按照常规处理方法,这三个单元需要用到三个乘法器;
(3)q序列计算单元中用到求最大公约数的运算,无论是常规方法还是其变通方法,直接进行此运算均要占用大量的资源。此外在行内、行间置换的过程中需要计算r序列,这必然会加大计算延迟和存储量。
发明内容
为了解决上述问题,本发明仍然采用FPGA的设计方法,但在各个单元的计算上进行了处理,尤其是用减法电路来实现s序列、q序列和行内置换中的求模运算,而且还采用查表来求q序列计算中的最大公约数,从而大大减少了资源消耗。
本发明采用的技术方案如下,一种用FPGA实现的3GPP Turbo码内交织器,其特征在于,所述交织器包括:
交织参数计算单元,根据输入的交织数据块长,计算方形矩阵行数和列数R和C,查表计算质数p,原根v,删除值g等参数,所述删除值g用于q序列计算单元中的查表;
s序列计算单元,包括:
第一乘法单元,对交织参数计算单元得出的原根v和第一求模单元输出的行内置换基序列进行乘法运算;
第一求模单元,完成对质数p的求模运算,判断乘法结果是否小于质数p,如果小于质数p直接输出结果,否则累减质数p值,直至得到最后的求模结果;
计数控制单元,根据交织参数计算单元输出的原根v,控制第一求模单元的累减次数和存储单元的地址计数值;
第一存储单元,对所述计数控制单元的地址计数值和第一求模单元的求模结果进行存储;
q序列计算单元,包括:
第一查表单元,将逐位查出的质数p和删除值g相比较,如果相同,则删除该质数,否则送入第二求模单元,并继续查找,直到找满R个数据;
第二求模单元,完成对q序列对p-1求模运算,判断查出的质数是否小于质数p-1,如果小于质数p-1直接输出结果,否则累减质数p-1值,得出求模结果;
第二存储单元,用于存放第二求模单元输出的求模结果;
置换及删减单元,包括:
行列计数控制单元,实现对矩阵行和列的计数,根据矩阵行的计数查表得出需处理的行顺序和质数;
第三求模单元,完成置换位置值计算中对p-1的求模运算,将查表得到的值与上一次该行得出的求模结果的和对p-1进行比较,当该和大于p-1时,就减去p-1后输出求模值,否则直接输出。
第二查表单元,查表确定置换后的质数,行置换位置以及s值;
第二乘法单元,完成经过行间置换查表查表得出的行对应值和矩阵列的相乘;
交织地址存储单元,根据交织地址和存储地址值,确定交织地址。
附图说明
下面,参照附图,对于熟悉本技术领域的人员而言,从对本发明方法的详细描述中,本发明的上述和其他目的、特征和优点将显而易见。
图1是现有技术中用FPGA设计交织器的流程图;
图2是本发明交织器实现的总体结构框图;
图3是s序列计算电路的单元图;
图4是q序列计算电路的单元图;
图5是行内、行间置换及存储电路的单元图。
具体实施方式
本发明交织器的总体结构框图见图2。首先通过一个交织参数计算单元21求出本发明交织器计算所需具体参数,然后将各参数送给s、q序列的计算单元22、23进行序列的生成计算,然后在置换及删减单元24内进行行内、行间的置换,生成交织地址和存储地址,进行删减输出,最后存入交织地址存储单元25。下面结合图2对各部分进行详细的说明。
1、交织参数计算单元21
主要实现方形矩阵行数R,方形矩阵列数C,质数p,原根v,删除值g等参数的计算。
输入该单元的参数为交织数据块长K,输出包括方形矩阵行数R,方形矩阵列数C,质数p,原根v,删除值g。其中方形矩阵数行数R,方形矩阵列数C,质数p,原根v的计算方法与图1中基本一致,只是增加一删除值参数g用于q序列计算单元23的查表,删除值g与原根v的计算方法相同,质数p计算出来以后查表1即得出。
  p   v   g    p   v   g    p   v   g    p   v   g    p   v   g
  7   3   0    47   5   23   101   2   0    157   5   13   223   3   37
  11   2   0    53   2   13   103   5   17   163   2   0    227   2   113
  13   2   0    59   2   29   107   2   53   167   5   83   229   6   19
  17   3   0    61   2   0    109   6   0    173   2   43   233   3   29
  19   2   0    67   2   11   113   3   7    179   2   89   239   7   7,17
  23   5   11   71   7   7    127   3   7    181   2   0    241   7   0
  29   2   7    73   5   0    131   2   13   191   19   19   251   6   0
  31   3   0    79   3   13   137   3   17   193   5   0    257   3   0
  37   2   0    83   2   41   139   2   23   197   2   7
  41   6   0    89   3   11   149   2   37   199   3   11
  43   3   7    97   5   0    151   6   0    211   2   7
                            表1
2、s序列计算单元22
s序列的长度是p-1,其中s(0)=1,需要实现的计算如下:
    s(j)=(v×s(j-1))modp,j=1,2,3......(p-2)  ......(1)
其中p为质数,s(j)表示行内置换基序列,v为原根,j为方形矩阵列编号指针。
从(1)式中可以看出,s序列计算的难度在于求模运算,其中的乘法运算v×(j-1)可以用乘法器来实现。表1列举出了该公式中质数p、原根v、删除值g的关系。
从表1可以看出原根v的最大取值为19,最小取值为2,所以考虑采用连续的减运算来实现这一功能。
s序列计算单元22包括乘法单元31,计数控制单元32,累减求模单元33和存储单元34,请参见图3。
乘法单元31一输入为原根v,另一输入与累减求模单元33的输出相连,实现上述的v×s(j-1)运算,该乘法结果输出给累减求模单元33进行对质数p的求模处理。
计数控制单元32的输入也是原根v,主要完成减法次数的控制以及存储单元34的地址发生。具体来说,首先由计数器控制减法的次数,因为累减求模的累减次数不可能超过原根v,因此每当计数至原根v,累减求模单元33计算出一个s值,此时地址计数增加一个,并将该值按照地址计数值存入存储单元34中。
累减求模单元33包括减法单元35和判决单元36两部分,其中:
(a)减法单元35的输入包括乘法单元31的相乘结果和判决单元36的输出信号,主要完成减法处理,将乘法单元31的输出进行减p的累减运算。具体来说,首先根据判断单元36的输出信号判断乘法单元31的结果是否小于质数p,如果小于p则直接输出结果,否则进行减p处理。其中第一次判断的参数为乘法单元31的输出值,以后采用计算的结果值,不断累减,直至最终值小于p,此时的值就是求模结果,进行输出保存。
(b)判决单元36的输入参数为减法单元35的输出结果,该单元判断减法单元35的输出结果是否小于质数p,如果小于p,则判决信号为高电平,否则为低电平。
存储单元34的输入包括求模结果s序列值和存储地址值,这里采用一块256×8的存储器来实现。
下面分析该单元计算所需要的时间。因为设计中的一次减法运算需要一个时钟周期来完成,所以实现求模运算所需要时钟周期的数目和相减的次数相同,影响减法次数的主要因素有质数p和原根v,每一个当前的s序列值都是通过前一个s序列值和原根v相乘以后对质数p求模而得来的,所以有:
             v×Si-1<v×p              ......(2)
因此减法次数为v次,所以最大次数为19次,最小次数为2次,在交织电路的计算过程中,采用这种计算方法所需要的计算周期为:
             v×(p-2)                   ......(3)
因为:
             v×(p-2)≤K                ......(4)
其中K表示Turbo码内交织器输入比特数目,所以计算所需的总周期数不会超出块长大小,这一点非常重要,这决定了交织的计算延迟是否能够满足译码器的定时要求。
3、q序列计算单元23
q序列的生成过程是一个按顺序寻找质数的过程,根据要求:
    g.c.d(qi,p-1)=1,qi>qi-1,qi>6,i=0,2.........R-1   ......(5)
其中q为最小质整数,p为质数,
q序列的数目是R个,R为方形矩阵行数。可以看到表1可用于查找,因为R的最大值为20,因此查表所需的时钟周期数最多为21个,在查找的过程中需要解决的问题是如何保证q和p-1之间的最大公约数关系,采用一般的实现方法很难解决这个问题。我们发现对于每一个p-1值,它在表中存在和它可约质数的数目一般为1个,只有在p=239的情况下,存在两个值7、17,这些针对于每一个p值的可约数称为删除值g,并将它们进行列表,见表1中的删除值g序列。
该单元的组成请参见图4,包括查表单元40,累减求模单元41,存储单元42。
查表单元40由三部分组成,计数单元43,质数查表单元44和比较单元45。在计算q序列的过程中,可以将逐位查出的质数p和删除值g对比,如果和g值相同则去除此值,否则将此质数送给累减求模单元,并继续查找,直至最后找满R个数据。采用这种查表方法最大可能的缩短了计算时间,降低了实现复杂度。
(a)计数单元43的输入为质数p和比较单元45的输出信号,其输出的查表地址和q存储地址分别送到质数查表单元44和存储单元42。q序列的数目是R个,计数单元43根据比较单元45的输出信号来判断是否继续下一个查表,当所查质数符合条件时,进行存储地址计数,否则将查表地址累加输出,继续向下查表,直至查到R个质数。
(b)质数查表单元44的输入为查表地址,根据查表地址在表1中读出质数。
(c)比较单元45的输入包括由质数查表单元44查出的质数和交织参数计算单元21输出的删除值g,当质数查表单元44查出的质数等于删除值g时,表示此质数无效,进行下一个查找,输出判决信号为高电平,否则输出为低电平,表示该值有效。
查出的质数送到累减求模单元41,输出为对p-1的求模结果。该求模单元的工作方式与上面s序列计算中的累减求模单元33原理一样,唯一的区别是,在该累减求模单元41中累减次数是固定的8次,而不是一个变量,其原理不再赘述。在后面的分析中可以发现,在计算过程中只需要q对p-1的求模值,为了方便后面的计算,需要将查出的质数对(p-1)求模,即q mod(p-1),该求模运算采用累减的方法来实现,统计发现所需要的最大减法次数是8次,因此所需要的最大计算周期为8r,不会超出K值的大小。
累减求模单元41输出的求模结果和计算单元43的存储地址值送到存储单元42,当其他模块要求采用求模结果时,进行输出。存储单元42用于存储计算出来的值,因为r最大的值是20,而q mod(p-1)的最大值是255,因此可以用8比特来存储,所以存储空间的大小是20×8比特。由于存储空间需求不大,所以采用分布式RAM结构来实现。
4、置换及删减单元24和交织地址存储单元25
为了最大限度的减少硬件开销,减少交织延迟,本实施例中把置换及删减单元和交织地址存储单元的操作并在一起进行处理。
根据最终以列顺序输出的方式,找出每一个输出的原始行位置,由于每一列的输出过程中其行变化的顺序都相同,所以处理的行顺序是周期性变化的,表2给出行间置换模式的行顺序。
在选定了行处理顺序以后开始执行行内置换模式处理,在计算的过程中可以发现不需要r序列参与计算,这样就可以省略掉r序列计算单元,只需要将q(经过累减求模运算)序列按顺序读出就可以,在将第i行的行内置换模式Ui(j)中各值计算出来以后,我们判断该值是否大于比特序列指针K,如果该值大于K则不作任何操作,否则就将顺序计数出来的计数值写入输出RAM的Ui(j)地址中,这就完成了交织地址的计算和存储。
在行内置换过程中,需要处理下面的公式计算:
    Ui(j)=s((j×ri)mod(p-1)),j=0,1.......,(p-2)   .......(6)
其中,Ui(j)表示第i行的行内置换模式,其他参数含义与前述一致。
由该公式可见,这里需要处理一个乘法运算和一个求模运算,按照正常的处理方法需要一个乘法器和一个求模电路,这两个电路的资源耗费是难以接受的,如果采用累减的方法来实现求模运算,会发现需要的时钟周期的数目无法确定,而且所需的减法次数有可能非常多,会造成计算的极大延迟,所以必须采用新的方法来实现这一计算电路。
经过对公式(6)仔细研究发现有下面的规律:
j=0 Ui(0)=s(0)
j=1 Ui(1)=s(rimod(p-1))=s(x1)
j=2 Ui(2)=s((2*ri)mod(p-1))=s{[(rimod(p-1))+(rimod(p-1))]mod(p-1)}
                          =s{[s(x1)+(rimod(p-1))]mod(p-1)}=s(x2)
j=3 Ui(3)=s{[x2+(rimod(p-1))]mod(p-1)}
.........                                       ......(7)
这样就可以利用每一次计算的中间值xi-1和rimod(p-1)的和对p-1再累减求模就可以完成该操作,因为xi-1和rimod(p-1)的值都小于p-1,所以它们的和值最多只需要一次减法就可以完成计算。
采用这种处理方法极大的简化了处理的流程,所占用的硬件资源也很少,而且使得该单元计算所需要的总时钟周期数目和块长近似相同。
  输入比特数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>
                               表2
根据上述原理,置换及删减单元和交织地址存储单元的单元框图见图5。
(1)行列计数控制单元51的输入为矩阵的行R和列C,输出包括存储地址计数控制信号和行计数信号。行列计数控制单元51实现对行列的计数控制,根据行的计数从行间置换模式表中查出需处理的行顺序T(i)和q值,以及求模单元52中余数FIFO单元53的对应余数。另外,该单元51还产生一个存储地址计数控制信号来启动存储地址的计数发生。
(2)行间置换查表单元56的输入为行计数信号,输出为行置换位置。根据行计数信号在表2中查出对应的行置换位置。
(3)q值查表单元55的输入为行计数信号,输出为处理该行时所采用的r值,即为置换后的q值(经过对p-1求模),记为x(i)。由于计算q序列时,该值经过了求模(p-1)运算,而且存储的顺序按照T(i)的顺序,所以此时得到的就是公式推导中的rimod(p-1)值,即为x(i),该单元就是根据行计数信号在q存储单元中查出对应的x(i)值。
求模单元52,包括余数FIFO单元53和判决相减单元54,主要完成Ui(j)序列的计算功能,该单元主要完成公式(7)推导过程。首先利用行计数查出x(i)值,然后将该值送入求模单元52,计算出求模结果,送入s值查表单元57查表。该求模单元52由判决相减单元54和余数FIFO单元53组成。
下面分析这两个单元的工作过程:
(c)判决相减单元54的输入为由q值查表单元55输出的x(i)信号和余数FIFO单元53输出的查表值,输出为s序列查表位置。根据式(7)的推导式将x(i)信号和余数FIFO单元53输出查表值的和对p-1进行判决相减,当该和大于p-1时,就减去p-1,否则不变,将结果输出,完成求模运算,同时将该值存入余数FIFO单元53中,这样以便计算下一个求模值的计算。
(d)余数FIFO单元53的输入参数包括行计数信号和s序列查表位置,输出查表值。之所以采用余数FIFO单元53是因为处理的顺序是按行处理,而不是按列处理,这就造成处理的流水中断,为了解决这一问题本发明采用一个FIFO作延迟处理,这样就可以保证处理的连续性,消除可能造成的电路延迟。其功能就是按照行计数信号,先读出查表值,然后再存储判决相减单元54计算出的s序列查表位置。
s值查表单元57的输入为判决相减单元54输出的s序列查表位置,输出为查表得出的s值,累减求模单元52送出的值就是查表的位置值。利用该位置值在s值查表单元57中查出s值。
乘法器单元58的输入包括行间置换查表单元56输出的行置换位置和交织参数计算单元21输出的矩阵列C,输出为二者的乘积值,从s值的存储单元34中找出该s值,将s值和乘法器单元58中输出的乘积值相加就可以得到删除前的交织地址。
计数单元59的输入为行列计数控制单元51输出的存储地址计数控制信号和交织地址存储单元25输出的存储单元的反馈信号,根据存储地址计数控制信号,计数单元59进行位置计数,同时交织地址存储单元25的反馈信号为高电平时停止计数,计数地址保持不变,输出存储地址值,否则继续计数。
交织地址存储单元25的输入包括交织地址(乘积值和s值的和)和计数单元59输出的存储地址值,当交织地址的值超出交织数据块长K的范围时,删除该值,同时控制计数单元59使其计数地址保持不变,否则就将计数器值为地址将交织地址值存入存入存储单元59中,这样就计算出了交织地址。
本发明的三个单元中用到求模电路,一处是s序列计算单元,一个是q序列计算单元,一个行内置换单元。前两个求模电路可以通过累减操作来实现,并且可以复用。第二个求模运算则通过一个减法电路就可以完成。此外,本发明的中行内置换单元的乘法器则转化成了了一个加法器来实现,在q序列计算单元,将求最大公约数的运算简化成了查表运算。这样大大减少了资源消耗。在行内、行间置换的过程中省略了r序列的计算。上述方案完全可以FPGA硬件的方式实现,做到实时处理。
前面提供了对较佳实施例的描述,以使本领域内的任何技术人员可使用或利用本发明。对这些实施例的各种修改对本领域内的技术人员是显而易见的,可把这里所述的总的原理应用到其他实施例而不使用创造性。因而,本发明将不限于这里所示的实施例,而应依据符合这里所揭示的原理和新特征的最宽范围。

Claims (4)

1、一种用FPGA实现的3GPP Turbo码内交织器,其特征在于,所述交织器包括:
交织参数计算单元,根据输入的交织数据块长,计算方形矩阵行数和列数R和C,查表计算质数p,原根v,删除值g参数,所述删除值g用于q序列计算单元中的查表;
s序列计算单元,所述s序列计算单元的输入端与所述交织参数计算单元的输出端相连,包括:
第一乘法单元,对交织参数计算单元得出的原根v和第一求模单元输出的行内置换基序列进行乘法运算;
第一求模单元,完成对所述s序列计算单元输出的质数p的求模运算,判断乘法结果是否小于质数p,如果小于质数p直接输出结果,否则累减质数p值,直至得到最后的求模结果;
计数控制单元,根据交织参数计算单元输出的原根v,控制第一求模单元的累减次数和存储单元的地址计数值;
第一存储单元,对所述计数控制单元的地址计数值和第一求模单元的求模结果进行存储;
q序列计算单元,所述q序列计算单元的输入端与所述交织参数计算单元的输出端相连,包括:
第一查表单元,将所述交织参数计算单元逐位查出的质数p和删除值g相比较,如果相同,则删除该质数,否则送入第二求模单元,并继续查找,直到找满R个数据;
第二求模单元,完成对所述交织参数计算单元提供的q序列对p-1求模运算,判断查出的质数是否小于质数p-1,如果小于质数p-1直接输出结果,否则累减质数p-1值,得出求模结果;
第二存储单元,用于存放第二求模单元输出的求模结果;
置换及删减单元,所述置换及删减单元的输入端与所述s序列计算单元、q序列计算单元和交织参数计算单元的输出端相连,包括:
行列计数控制单元,实现对所述交织参数计算单元提供的矩阵行和列的计数,根据矩阵行的计数查表得出需处理的行顺序和质数;
第三求模单元,完成置换位置值计算中对p-1的求模运算,将查表得到的值与上一次该行得出的求模结果的和对p-1进行比较,当该和大于p-1时,就减去p-1后输出求模值,否则直接输出;
第二查表单元,查表确定置换后的质数,行置换位置以及s值;
第二乘法单元,完成经过行间置换查表得出的行对应值和矩阵列的相乘;
交织地址存储单元,所述交织地址存储单元的输入端与所述置换及删减单元的输出端相连,根据所述置换及删减单元提供的交织地址和存储地址值,确定交织地址。
2、根据权利要求1所述的一种用FPGA实现的3GPP Turbo码内交织器,其特征在于,所述第三求模单元包括:
判决相减单元,将查表得到的值与余数FIFO单元中得到的值的和对p-1进行比较,当该和大于p-1减去p-1,否则输出求模结果;
余数FIFO单元,按照行计数信号,查表读出该行对应的置换后的质数值,然后存储所述判决相减单元计算出的求模结果,作为下一次计算的查表值,所述求模结果就是s序列查表位置。
3、根据权利要求1或2所述的一种用FPGA实现的3GPP Turbo码内交织器,其特征在于,所述置换及删减单元中的第二查表单元包括:
行间置换查表,根据行列计数控制单元的行计数值查出对应的置换行;
q值查表,根据行列计数控制单元的行计数值在第二存储单元中查出对应的q值;
s查表,根据第三求模单元的结果在第一存储单元中查出对应的s值。
4、根据权利要求1所述的一种用FPGA实现的3GPP Turbo码内交织器,其特征在于,所述q序列计算单元中的第二求模单元得出的求模结果经累减八次得出。
CN 03115710 2003-03-10 2003-03-10 一种用可编程门阵列实现的第三代移动通信标准协议中的Turbo码内交织器 Expired - Lifetime CN1247035C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 03115710 CN1247035C (zh) 2003-03-10 2003-03-10 一种用可编程门阵列实现的第三代移动通信标准协议中的Turbo码内交织器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 03115710 CN1247035C (zh) 2003-03-10 2003-03-10 一种用可编程门阵列实现的第三代移动通信标准协议中的Turbo码内交织器

Publications (2)

Publication Number Publication Date
CN1531353A CN1531353A (zh) 2004-09-22
CN1247035C true CN1247035C (zh) 2006-03-22

Family

ID=34284399

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 03115710 Expired - Lifetime CN1247035C (zh) 2003-03-10 2003-03-10 一种用可编程门阵列实现的第三代移动通信标准协议中的Turbo码内交织器

Country Status (1)

Country Link
CN (1) CN1247035C (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100438344C (zh) * 2005-09-16 2008-11-26 华为技术有限公司 Turbo码编码中的交织方法及相关装置
US7849125B2 (en) * 2006-07-07 2010-12-07 Via Telecom Co., Ltd Efficient computation of the modulo operation based on divisor (2n-1)
CN101154957B (zh) * 2006-09-30 2011-02-02 华为技术有限公司 Turbo码交织器及交织地址传输方法
CN101136714B (zh) * 2007-03-21 2011-04-20 中兴通讯股份有限公司 一种宽带码分多址系统中涡轮编码的q序列产生方法和装置
CN101043284B (zh) * 2007-04-10 2011-04-20 中兴通讯股份有限公司 一种宽带码分多址系统中turbo编码器内的交织器
CN101662333B (zh) * 2008-08-28 2012-07-04 电信科学技术研究院 一种交织方法和装置
CN102957493B (zh) * 2011-08-18 2016-06-08 上海华为技术有限公司 内交织地址的处理方法、递推序列处理方法及其相关装置

Also Published As

Publication number Publication date
CN1531353A (zh) 2004-09-22

Similar Documents

Publication Publication Date Title
CN1171391C (zh) 交错方法、交错装置、涡轮编码方法以及涡轮编码装置
CN1271796C (zh) 涡式交织方法
CN1140966C (zh) Turbo交错器/解交错器中使用的地址发生器和地址发生方法
CN1949873A (zh) Cabac解码系统及方法
CN1217483C (zh) N抽头csd滤波器电路
CN1836394A (zh) 在移动通信系统中编码/解码块低密度奇偶校验码的装置和方法
CN101034891A (zh) 基于cabac的编码方法和设备及解码方法和设备
CN1230054A (zh) 自适应概率估计方法、自适应编码方法及自适应解码方法
CN1247035C (zh) 一种用可编程门阵列实现的第三代移动通信标准协议中的Turbo码内交织器
CN101043284A (zh) 一种宽带码分多址系统中turbo编码器内的交织器
CN1366738A (zh) 交织地址生成装置
CN1639986A (zh) 交织顺序发生器、交织器、Turbo码编码器和Turbo码译码器
CN1992517A (zh) 一种可编程内插滤波器装置及其实现方法
CN1507694A (zh) 通信系统中的交织器和交织方法
CN1120414C (zh) 去交错装置
CN1894857A (zh) 使用Galois域乘法查询表的Reed-Solomon码的编码和解码
CN1254921C (zh) 改进的哈夫曼译码方法和装置
CN1714513A (zh) 用于turbo编码器和解码器中的交织器的地址产生
CN1216495C (zh) 视频图像亚像素插值的方法和装置
CN1661925A (zh) 交织参数处理方法
CN1592117A (zh) 用于计算交织参数的移动电话、设备、方法和程序
CN1147051C (zh) 防错方法和防错装置
CN101060326A (zh) 加减计数电路和加减计数方法
CN1493110A (zh) 特播解码器、特播解码方法以及存储该方法的存储介质
CN1178417C (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
PE01 Entry into force of the registration of the contract for pledge of patent right

Effective date of registration: 20070510

Pledge (preservation): Pledge

PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20100413

Granted publication date: 20060322

Pledgee: CHINA DEVELOPMENT BANK

Pledgor: DATANG MOBILE COMMUNICATIONS EQUIPMENT Co.,Ltd.|SHANGHAI DATANG MOBILE COMMUNICATIONS EQUIPMENT Co.,Ltd.|CHINA ACADEMY OF TELECOMMUNICATIONS TECHNOLOGY

Registration number: 2007110000354

ASS Succession or assignment of patent right

Owner name: INST OF TELECOMMUNICATION SCIENCE AND TECHNOLGOY

Free format text: FORMER OWNER: DATANG MOBILE COMMUNICATION EQUIPMENT CO., LTD.

Effective date: 20110510

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 100083 NO. 40, XUEYUAN ROAD, HAIDIAN DISTRICT, BEIJING TO: 100191 NO. 40, XUEYUAN ROAD, HAIDIAN DISTRICT, BEIJING

TR01 Transfer of patent right

Effective date of registration: 20110510

Address after: 100191 Haidian District, Xueyuan Road, No. 40,

Patentee after: CHINA ACADEMY OF TELECOMMUNICATIONS TECHNOLOGY

Address before: 100083 No. 40, Haidian District, Beijing, Xueyuan Road

Patentee before: DATANG MOBILE COMMUNICATIONS EQUIPMENT Co.,Ltd.

CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 100191 No. 40, Haidian District, Beijing, Xueyuan Road

Patentee after: CHINA ACADEMY OF TELECOMMUNICATIONS TECHNOLOGY

Address before: 100191 No. 40, Haidian District, Beijing, Xueyuan Road

Patentee before: CHINA ACADEMY OF TELECOMMUNICATIONS TECHNOLOGY

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210607

Address after: 100085 1st floor, building 1, yard 5, Shangdi East Road, Haidian District, Beijing

Patentee after: DATANG MOBILE COMMUNICATIONS EQUIPMENT Co.,Ltd.

Address before: 100191 No. 40, Haidian District, Beijing, Xueyuan Road

Patentee before: CHINA ACADEMY OF TELECOMMUNICATIONS TECHNOLOGY

CX01 Expiry of patent term

Granted publication date: 20060322

CX01 Expiry of patent term