CN1330455A - Turbo(涡轮)码的译码电路和编码译码电路 - Google Patents
Turbo(涡轮)码的译码电路和编码译码电路 Download PDFInfo
- Publication number
- CN1330455A CN1330455A CN01117489.7A CN01117489A CN1330455A CN 1330455 A CN1330455 A CN 1330455A CN 01117489 A CN01117489 A CN 01117489A CN 1330455 A CN1330455 A CN 1330455A
- Authority
- CN
- China
- Prior art keywords
- value
- mentioned
- receiving serial
- probability
- circuit
- 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.)
- Pending
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/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/3905—Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP 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/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
-
- 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/65—Purpose and implementation aspects
- H03M13/6563—Implementations using multi-port memories
-
- 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
- H03M13/2978—Particular arrangement of the component decoders
- H03M13/2981—Particular arrangement of the component decoders using as many component decoders as component 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/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
- H03M13/2993—Implementing the return to a predetermined state, i.e. trellis termination
-
- 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/63—Joint error correction and other techniques
- H03M13/635—Error control coding in combination with rate matching
- H03M13/6362—Error control coding in combination with rate matching by puncturing
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
通过输入输出接口1输入代码接收系列,将其存储到信道值存储器2A、2B、2C中。将先验值取为初始值0,由译码器4A对代码接收系列中的第1块译码,由译码器4B并行地对第2块译码,作为其译码结果的后验值和外部值中的外部值存储到外部值存储器5中。在下一次的译码时,将该外部值作为先验值读出。并且,反复进行指定次数的译码,最后一次的译码结果中的后验值作为译码结果通过输入输出接口1而输出。
Description
本发明涉及可以纠正在例如数字无线通信和数字磁记录中发生的错误的Turbo(涡轮)码的译码电路和编码译码电路。
Turbo码作为在低信噪比(SND)情况下达到低的译码误码率的纠错误,近年来受到人们注目。这里,先说明Turbo码的编码,然后说明Turbo码的译码。
首先,说明Turbo码的编码。图12A是表示对编码速率1/3并且约束长度3的Turbo码进行编码的现有技术的编码电路的框图。在图12A中,101A是根据信息位系列D生成第1奇偶位的系列P1的分量编码器,101B是根据由交错器102将信息位系列D重新排列而生成的信息位系列D*生成第2奇偶位的系列P2的分量编码器,102是根据指定的映射关系将信息位系列D的位di重新排列而生成信息位系列D*的交错器。
在图12B所示的分量编码器101A、101B中,111是将输入的位与延迟元件112的输出及延迟元件113的输出相加的加法器,112、113是将输入的位在输入下一位之前延迟的延迟元件,114是将加法器111的输出与延迟元件113的输出相加作为奇偶位而输出的加法器。
下面,说明其动作。
图13是图12B的分量编码器101A、101B的状态迁移图,图14是图12B的分量编码器101A、101B的格构图。以下,设信息位系列D的位长为N(N是正整数),且将D记作D={d0,d1,…,dN-2,dN-1}。
在初始状态,对分量编码器101A、101B的延迟元件112、113设定初始值0。
其次,信息位系列D输入分量编码器101A和交错器102,交错器102进行信息位系列D的各位的重新排列。这时,N个位d0,…,dN-1的下标的N个整数0,…,N-1被重新排列。这里,如式(1)所示,该重新排列的映射用「INT」表示,其逆映射用「DEINT」表示。DEINT(INT(k))=k和INT(DEINT(k))=k成立。INT:K
k→INT(k)∈KDEINT:K
k→DEINT(k)∈K…(1)
并且,由交错器102生成的信息位系列D*(D*={d* k},d* k=dINT(k),k=0,1,…,N-1)输入分量编码器101B。
在分量编码器101A中,在时刻k输入信息位dk,由加法器111进行该信息位dk与延迟元件112、113所保持的位值的异或运算,并输入延迟元件112和加法器114。
并且,由加法器114进行加法器111的输出与延迟元件113所保持的值的异或运算,并将其运算结果作为奇偶位p1k输出。
延迟元件112在下一个信息位dk+1输入之前保持信息位dk,并将该信息位dk输入延迟元件113,延迟元件113在输入该信息位dk之前保持前一个信息位dk-1。
同样,在分量编码器101B中,在时刻k输入d* k,生成奇偶位p2k并输出。
即,在时刻k输出信息位、第1奇偶位、第2奇偶位的3位(dk,p1k,p2k)。
分量编码器101A、101B的状态如图13和图14所示,每次输入信息位dk就迁移为新的状态,由分量编码器101A、101B生成的奇偶位p1k、p2k由分量编码器101A、101B的状态,即延迟元件112、113所保持的值和输入分量编码器101A、101B的信息位dk、d* k决定。
在图13的状态迁移图中,圆圈内的2位的数值表示分量编码器101A、101B的延迟元件112和延迟元件113所保持的值。例如,「01」表示延迟元件112保持0、延迟元件113保持1。另外,随箭头标注的2位的数值表示输入的信息位dk和生成的奇偶位pik(i=1,2)。例如,「10」表示信息位dk是1、奇偶位pik是0。
在图14的格构图中,表示出了沿时间序列的分量编码器101A、101B的状态的迁移。如图13所示,可以从时刻k的各状态向下一时刻k+1的2个状态迁移,另外,可以从前一时刻k-1的2个状态向各时刻k的各状态迁移,所以,如图14所示,分量编码器101A、101B的状态在每次输入信息位时就根据该信息位和延迟元件112、113所保持的值迁移为2个状态中的某一状态。
在Turbo码的编码电路中,在最后的信息位编码之后结束分量编码器101A、101B的状态迁移。
这时,在最后的信息位dN-1输入分量编码器101A之后,为了使分量编码器101A的状态成为「00」,即为了使延迟元件112、113的内容都成为0,将附加的2个信息位(dN,dN+1)输入分量编码器101A。附加的2个信息位(dN,dN+1)不表示有效的信息。与此相应地,生成附加的2个奇偶位(p1N,p1N+1)。
同样,在最后的信息位d* N-1=dINT(N-1)输入分量编码器101B之后,输入附加的2个信息位d* N、d* N+1,分量编码器101B的状态返回到「00」。与此对应地,生成附加的2个奇偶位p2N、p2N+1。
即,分量编码器101A、101B的状态在信息位系列D的编码开始时(时刻k=0)成为初始状态「00」,然后,每次输入信息位时都使格构图上的状态迁移,在信息位系列D的编码结束时(时刻k=N+2)返回到初始状态「00」。用于使状态迁移结束的最后的8位dN,dN+1,p1N,p1N+1,d* N,d* N+1,p2N,p2N+1称为结尾位。
如上所述,根据信息位系列D={d0,d1,…,dN-2,dN-1}和附加信息位{dN,dN+1,d* N,d* N+1}生成第1和第2奇偶位系列P1={p10,p11,…,p1N-2,p1N-1,p1N,p1N+1}、P2={p20,p21,…,p2N-2,p2N-1,p2N,p2N+1},并输出信息位系列、附加信息位和第1及第2奇偶位系列。将信息位系列进行交错而生成的信息位系列D*是信息位系列D仅仅重新排列的结果,所以,不特别输出。
这样输出的信息位系列、附加信息位和第1及第2奇偶位系列作为Turbo码通过指定的信道进行发送,或记录到记录媒体上。并且,该Turbo码作为代码接收系列由译码电路侧接收后或读出后进行译码。
下面,设信息位dk(k=0,1,…,N-1)和附加信息位dk(k=N,N+1)的接收信号为xk、附加信息位d* k(k=N,N+1)的接收信号为x* k、第1奇偶位p1k(k=0,1,…,N+1)的接收信号为y1k、第2奇偶位p2k(k=0,1,…,N+1)的接收信号为y2k。另外,对于k=0,1,…,N-1,令x* k=xINT(k)。
并且,将系列X1,X2,Y1,Y2定义为X1={xk(k=0,1,…,N+1)}、X2={x* k(k=0,1,…,N+1)}、Y1={y1k(k=0,1,…,N+1)}、Y2={y2k(k=0,1,…,N+1)}时,系列X1和系列Y1就是与分量编码器101A对应的接收系列,系列X2和系列Y2就是与分量编码器101B对应的接收系列。下面,将系列{X1,Y1}称为第1代码接收系列,将系列{X2,Y2}称为第代码接收系列。
下面,说明Turbo码的译码。
作为Turbo码的译码方法,有例如「タ-ボ符号の基础」(获原春生著、トリケップス社发行)中介绍的软输出维特比算法语言(SOft Output Viterbi Algorithm:SOVA)及MAP(Maximum A Posteriori Probaility,即最大后验概率)译码法或LogMAP译码法等。
这里,作为一例,说明利用MAP译码法对上述编码速率1/3并且约束长度3的Turbo码的译码。图15是Turbo码的现有技术的译码电路的框图。图中,201A是根据信道值X1、Y1和先验值La按照MAP译码法生成外部值Le的译码器,201B是根据将信道值X1进行交错后的信道值X2(=X1*)、信道值Y2和先验值La*按照MAP译码法生成外部值Le*和后验值L*的译码器,202A是根据指定的映射关系将外部值Le的位Lek重新排列而生成先验值La* k的交错器,202B是根据指定的映射关系将信道值X1的位xk重新排列而生成位系列X*={ x* k}的交错器,203是将外部值Le* k进行逆映射的去交错器,204是根据后验值的正负推断信息位的值的判断器。
下面,说明其动作。
图16A和图16B是表示图15的译码器201A、201B的格构图上的路径的例子的图。
译码器201A根据输入的信道值X1、Y1和先验值La(La={Lak(k=0,1,…,N+1)})按照式(2)计算后验值Lk(对数后验概率比)。该后验值Lk表示信息位dk的可靠度,如果信息位dk的值为1的概率高,就成为正的大值,如果信息位dk的值为0的概率高,就成为负的大值。
【数式1】
下面,详细说明这时的后验值Lk的计算。
首先,译码器201A在各时刻k按照式(3)计算状态迁移概率γk(m*,m)(m,m*=0,1,2,3)。状态迁移概率γk(m*,m)是与维特比算法语言的分支量度相当的量,在时刻k表示从状态m*、在时刻k+1表示向状态m迁移的概率。
γk(m*,m)
=P(y1k|p)P(xk|i)P(dk=i) …(3)
这里,i是迁移时的信息位,p是迁移时的奇偶位。
式(3)中,P(r|b)是在将位b发送后作为接收信号r接收的概率。另外,P(dk=i)是信息位dk为i的后验概率,根据先验值Lak按照式(4)进行计算。
【数式2】
在第1次的译码中,将先验值Lak(k=0,1,…,N-1)设定为0。另外,结尾位部分的附加信息位xk(k=N,N+1)的先验值Lak(k=N,N+1)总是设定为0。
这样计算的状态迁移概率γk(m*,m)存储到图中未示出的存储器中。
其次,译码器201A根据计算的状态迁移概率γ(m*,m)(m,m*=0,1,2,3)按照式(5)所示的顺向递推公式从k=0到k=N+1顺序计算顺向路径的概率αk(m)(m=0,1,2,3),并存储到图中未示出的存储器中。顺向的路径概率的初始值α0(m)(m=0,1,2,3)按照式(6)进行设定。
【数式3】
【数式4】
即,概率αk(m)是在格构图上从时刻k=0的初始状态m=0随时间(即顺向)迁移的编码器的状态在时刻k到达状态m的概率,沿时间推移的方向逐步进行计算。另外,后面所述的概率βk(m)是从最终状态逆时间迁移(即,逆方向进行)的编码器的状态在时刻k到达状态m的概率。
例如,如图16A所示,在时刻k状态m=1时的路径的概率αk(1)根据时刻k-1时的状态m=0的路径的概率αk-1(0)和时刻k-1时的状态m=2的路径的概率αk-1(2)按照式(7)进行计算。
αk(1)=γk-1(0,1)αk-1(0)
+γk-1(2,1)αk-1(2)…(7)
译码器201A在计算了顺向的所有路径的概率αk(m)之后,按照式(8)所示的逆向递推公式计算逆向路径的概率βk(m)(m=0,1,2,3)。
【数式5】
这时,译码器201A读出图中未示出的存储器存储的状态迁移概率γk(m,m*),按照式(8)从k=N+1到k=0顺序计算逆方向的路径的概率βk(m),并存储到图中未示出的存储器中。逆方向的路径的初始值βN+2(m)(m=0,1,2,3)按照式(9)进行设定。
【数式6】
例如,如图16B所示,在时刻k状态m=2时的路径的概率βk(2)根据时刻k+1时的状态m=0的路径的概率βk+1(0)和时刻k+1时的状态m=1的路径的概率βk+1(1)按照式(10)进行计算。
βk(2)=γk(2,0)βk+1(0)
+γk(2,1)βk+1(1) …(10)
此外,译码器201A与逆向的路径概率βk(m)的计算并行按照式(11)计算后验值Lk。
【数式7】
这时,译码器201A从图中未示出的存储器中读出逆向的路径概率βk+1(m*)、状态迁移概率γk(m,m*)和顺向的路径的概率αk(m),按照式(11)计算式(2)的后验值Lk。式(11)的分母是信息位dk为0时的所有的状态迁移m→m*的总和,式(11)的分子是信息位dk为1时的所有的状态迁移m→m*的总和。
式(11)的后验值Lk如式(12)所示的那样分解为3项。第1项Lc·xk是根据信道值xk得到的值(Lc是与信道有关的常数,以下,为了简单,将该值Lc·xk简单称为信道值。),第2项Lak是计算状态迁移概率γk(m,m*)所使用的先验值,第3项Lek是由代码的约束决定的后验值的增量的外部值。
【数式8】
=Lc·xk+Lak+Lek …(12)
另外,译码器201A按照式(13)计算该外部值Lek,并存储到图中未示出的存储器中。
Lek=Lk-Lc·xk-Lak …(13)
这样,译码器201A就计算外部值Le={Le0,Le1,…,LeN-2,LeN-1},并输入交错器202A。
交错器202A将输入的外部值Le的顺序重新排列,生成在译码器201B中使用的先验值La*={La* k=LeINT(k)(k=0,1,…,N-1)}。
译码器201B根据信道值X2、Y2和先验值La*,和译码器201A一样计算后验值L* k和外部值Le*={Le* 0,Le* 1,…,Le* N-2,Le* N-1}。该外部值Le*输入去交错器203。
去交错器203按照指定的逆映射将该外部值Le*重新排列,生成在译码器201A中所使用的先验值La={Lak=Le* DEIN T(k)}。
通过以上的处理,完成Turbo码的1次译码。
在Turbo码的译码中,多次反复进行该处理,用以提高后验值的精度,最后一次由译码器201B计算的后验值L* k输入判断器204。判断器204按照式(14)根据该后验值Lk的正负判断信息位dk的值。
【数式9】
图17是说明现有技术的译码电路对第1和第2代码接收系列的译码的时序图。
如上所述,译码器201A对第1代码接收系列从k=0到k=N+1顺序逐个时刻计算状态迁移概率,与其并行地计算顺向的路径的概率αk(m)(步骤1),然后从k=N+2到k=1顺序逐个时刻计算逆向的路径的概率βk(m),与其并行地计算后验值Lk和外部值Lek(步骤2)。这样,就完成了第1代码接收系列的译码。然后,译码器201B对第2代码接收系列进行同样的处理(步骤3、4),计算后验值L* k和外部值Le* k。
以上,完成了Turbo码的1次的译码。因此,如图17所示,设Turbo码的代码长度为N时,则1次的译码所需要的步骤数就是4N。
由于现有技术的译码电路和译码方法是按上述方式构成的,所以,为了对接收系列或外部值进行交错或去交错,必须等待到接收系列或所有的外部值聚齐才行,难于实时地进行译码,同时,难于减少译码处理所需要的时间。
另外,由于现有技术的译码电路和译码方法是按上述方式构成的,所以,译码处理的步骤数与代码长度成正比,代码长度大时,译码延迟也增大,从而难于实时地进行译码,同时,难于减少译码处理所需要的时间。
此外,在Turbo码的译码中,译码所需要的存储容量与代码长度成正比,,并且需要预先存储计算的顺向的路径的概率,所以,在代码长度大或约束长度大(分量编码器的状态数多)时,难于降低存储器的容量,从而难于降低电路规模。
本发明就是为了解决上述问题而提案的,其目的在于将代码接收系列在时间方向上分割为多个块并对各块并行地进行译码,设分割数为n时,可以得到可将译码所需要的时间降低到1/n的译码电路。
另外,本发明的目的在于将代码接收系列在时间方向上分割为多个块并对各块顺序进行译码,设代码接收系列的分割数为n时,可以得到可将存储顺向的路径概率的路径量度存储器的容量降低为约1/n的译码电路。
按照本发明,第1,提供特征为:在将Turbo码译码的译码电路中具有将代码接收系列在时间方向上分割为多个块并将这些块中至少2个块并行地进行译码的多个译码器的译码电路。
这里,上述代码接收系列由第1代码接收系列和第2代码接收系列构成,第1代码接收系列由信息位系列的接收系列和根据该信息位系列而生成的第1奇偶位系列的接收系列构成,第2代码接收系列由将上述信息位系列的接收系列进行交错而生成的位系列和根据将上述信息位系列进行交错后的位系列而生成的第2奇偶位系列的接收系列构成,上述译码电路也可以具有存储上述第1代码接收系列和第2奇偶位系列的接收系列的信道值存储器。
上述多个译码器至少具有第1译码器和第2译码器,上述第1译码器和第2译码器可以分别具有内藏用于从上述信道值存储器中读出第1和第2代码接收系列的上述块的交错表的信道值存储器接口。
各译码器可以具有根据各块的信道值和先验值计算顺向和逆向的状态迁移概率的迁移概率计算电路、根据上述顺向的状态迁移概率计算顺向的路径概率和根据逆向的状态迁移概率计算逆向的路径概率的路径概率计算电路、根据上述顺向的路径概率和上述逆向的状态迁移概率以及上述逆向的路径概率计算后验值的后验值计算电路和从该后验值中将与信息位对应的信道值和先验值减去从而计算外部值的外部值计算电路。
多个译码器可以分别具有将最后计算的顺向的路径概率和逆向的路径概率中的任意一方输入其他译码器的单元和将从其他译码器输入的路径概率设定为该路径概率的初始值的初始值设定电路。
上述第1奇偶位系列和第2奇偶位系列预先进行凿孔,上述各译码器可以具有将可靠度最低的值插入与上述各代码接收系列中的凿孔的位对应的信道值中的逆凿孔电路。
上述各译码器在每次完成各块的输入时开始进行该块的译码,可以将与该块的各信道值对应的后验值作为与该块的各信息位对应的后验值而输出。
上述多个译码器中的至少1个对输入未结束的块进行译码,从而生成后验值,可以将与该后验值对应的值作为输入已结束的块的译码用的先验值。
按照本发明,第2,提供特征为:在将Turbo码进行译码的译码电路中具有将代码接收系列在时间方向上分割为多个块并顺序将各块进行译码的1个译码器的译码电路。
这里,上述译码电路具有存储上述代码接收系列的信道值存储器,上述译码器可以具有从上述信道值存储器中按块单位读出上述代码接收系列的信道值存储器接口、根据各块的信道值和先验值计算顺向和逆向的状态迁移概率的迁移概率计算电路、根据上述顺向的状态迁移概率计算顺向的路径概率和根据逆向的状态迁移概率计算逆向的路径概率的路径概率计算电路、根据上述顺向的路径概率和上述逆向的状态迁移概率以及上述逆向的路径概率计算后验值的后验值计算电路和从该后验值中将与信息位对应的信道值和先验值减去从而计算外部值的外部值计算电路。
各块可以重叠指定的长度。
按照本发明,第3,提供特征为:在具有根据信息位系列生成Turbo码的编码电路、和对该Turbo码进行译码的译码电路的Turbo码的编码译码电路中,上述编码电路具有根据上述信息位系列生成第1奇偶位系列的第1分量编码器、将上述信息位系列进行交错的交错器、根据由上述交错器进行了交错的信息位系列生成第2奇偶位系列的第2分量编码器和多路输出上述信息位系列和上述第1及第2分量编码器的输出的输出电路;而上述译码电路具有将由信息位系列的接收系列和上述第1奇偶位系列的接收系列构成的第1代码接收系列和由将上述信息位系列的接收系列进行交错而生成的位系列和上述第2奇偶位系列的接收系列构成的第2代码接收系列在时间方向上分割为多个块并将这些块中的至少2个块并行地进行译码的多个译码器和存储上述第1代码接收系列和第2奇偶位系列的接收系列的信道值存储器的Turbo码的编码译码电路。
图1是表示本发明实施例1的译码电路的结构的框图。
图2是表示图1的译码器的结构的框图。
图3是说明实施例1的译码电路的动作的流程图。
图4是说明实施例1的译码电路的动作的时序图。
图5是表示本发明实施例2的编码电路的结构的框图。
图6是表示本发明实施例2的译码电路的结构的框图。
图7是表示图6的译码器的结构的框图。
图8A、图8B是说明实施例3的译码电路的接收系列X、Y1、Y2的输入的时序图。
图9是说明实施例3的译码电路的动作的流程图。
图10是表示本发明实施例4的译码电路的结构的框图。
图11是表示第1代码接收系列与各块的对应关系的一例的图。
图12A是表示将编码速率1/3并且约束长度3的Turbo码进行编码的现有技术的编码电路的框图。
图12B是表示图12A的分量编码器的结构的框图。
图13是图12B的分量编码器的状态迁移图。
图14是图12B的分量编码器的格构图。
图15是Turbo码的现有技术的译码电路的框图。
图16A和16B是表示图15的译码器的格构图上的路径的例子的图。
图17是说明现有技术的译码电路的第1和第2代码接收系列的译码的时序图。
下面,说明本发明的实施例。
实施例1。
图1是表示本发明实施例1的译码电路的结构的框图,图2是表示图1的译码器的结构的框图。
在图1中,1是输入作为代码接收系列而接收的信道值同时输出译码结果的输入输出接口,2A、2B、2C是存储通过输入输出接口输入的信道值的多个信道值存储器,3是存储从多个译码器4A、4B输出的Turbo码的各块的译码结果的输出缓冲器,4A、4B是将构成Turbo码的多个块进行软输入软输出译码的多个译码器,5是存储通过Turbo码的软输入软输出译码而计算的外部值的外部值存储器。
在图2所示的译码器4A、4B中,11是从多个信道值存储器2A、2B、2C中读出信道值的信道值存储器接口,12是根据信道值和外部值计算状态迁移概率的迁移概率计算电路,13是根据状态迁移概率按照顺向递推公式计算顺向的路径概率、按照逆向递推公式计算逆向的路径概率的路径概率计算电路,14是暂时存储顺向和逆向的路径概率的存储电路,15是存储顺向的路径概率的路径量度存储器,16是根据顺向和逆向的路径概率和状态迁移概率计算后验值的后验值计算电路,17是根据后验值计算外部值的外部值计算电路,18是在与外部值存储器5之间进行外部值的收发的外部值存储器接口,19是对存储电路14设定路径概率的初始值的初始值设定电路。信道值存储器接口11和外部值存储器接口18分别具有交错表11a和18a。
信道值存储器2A、2B、2C和输出缓冲器3是具有2个输入输出端口的多端口存储器,外部值存储器5是具有4个输入输出端口,可以同时从2个端口读出、从2个端口写入的多端口存储器。
下面,说明其动作。
图3是说明实施例1的译码电路的动作的流程图,图4是说明实施例1的译码电路的动作的时序图。
这里,说明对编码速率1/3并且约束长度3的Turbo码的动作。在实施例1中,为了便于说明,取信息位长度为2N。假定符号等具有和上述相同的意义。另外,当然其他的编码速率、其他的约束长度的Turbo码同样也可以译码。
首先,在信息位系列(也包含附加信息的4位)的接收系列X={x0,x1,…,x2N-1,x2N,x2N+1,x* 2N,x* 2N+1}、第1奇偶位系列P1的接收系列Y1={y10,y11,…,y12N-1,y12N,y12N+1}、第2奇偶位系列P2的接收系列Y2={y20,y21,…,y22N-1,y22N,y22N+1}输入到输入输出接口时,系列X存储到信道值存储器2A中,系列Y1存储到信道值存储器2B中,系列Y2存储到信道值存储器2C中。
xk(k=0,1,…,2N+1)存储到信道值存储器2A的地址k中,x* 2N、x* 2N+1存储到信道值存储器2A的地址2N+2和2N+3中,y1k(k=0,1,…,2N+1)存储到信道值存储器2B的地址k中,y2k(k=0,1,…,2N+1)存储到信道值存储器2C的地址k中。
这里,基于代码接收系列X的系列X1、X2定义如下:
X1={xk(k=0,1,…,2N+1)}
X2={x* k=xINT(k)(k=0,1,…,2N-1),x* 2N,x* 2N+1}
这样,系列X1、Y1就是与Turbo码编码器的第1分量编码器的信息位系列和奇偶位系列对应的接收系列,系列X2、Y2就是与Turbo码编码器的第2分量编码器的信息位系列和奇偶位系列对应的接收系列。以下,将{X1,Y1}称为第1代码接收系列,将{X2,Y2}称为第2代码接收系列。
这里,将分别把系列X1、X2、Y1、Y2一分为二的部分系列X11、X12、X21、X22、Y11、Y12、Y21、Y22定义如下:
X11={xk(k=0,1,…,N-1)}
X12={xk(k=N,N+1,…,2N+1)}
X21={x* k(k=0,1,…,N-1)}
X22={x* k(kN,N+1,…,2N+1)}
Y11={y1k(k=0,1,…,N-1)}
Y12={y1k(k=N,N+1,…,2N+1)}
Y21={y2k(k=0,1,…,N-1)}
Y22={y2k(k=N,N+1,…,2N+1)}
根据这些部分系列,第1代码接收系列{X1,Y1}由第1块B11={X11,Y11}和第2块B12={X12,Y12}构成,第2代码接收系列{X2,Y2}由第1块B21={X21,Y21}和第2块B22={X22,Y22}构成。
并且,译码器4A、4B首先在步骤ST1使第1代码接收系列的译码用的先验值Lak为初始值0,译码器4A在步骤ST2A从信道值存储器2A、2B中读出构成第1代码接收系列的第1块B11的信道值,并将第1代码接收系列的第1块B11译码,如图4所示的那样,与其并行地,译码器4B在步骤ST2B从信道值存储器2A、2B中读出构成第1代码接收系列的第2块B12的信道值,并将第1代码接收系列的第2块B12译码。
这时,译码器4A首先根据第1代码接收系列的第1块B11={X11,Y11}按照顺向递推公式计算顺向的路径概率αk(k =0,1,…,N),按照逆向递推公式计算逆向的路径概率βk(k=N,N-1,…,1)。并且,译码器4A根据该顺向的路径概率αk和逆向的路径概率βk等计算后验值Lk(k=0,1,…,N-1)并计算信息位的前半部分dk的外部值Lek(k=0,1,…,N-1)。
另一方面,与其并行地,译码器4B根据第1代码接收系列的第2块B12={X12,Y12}按照顺向递推公式计算顺向的路径概率αk(k=N。N+1,…,2N+1),按照逆向递推公式计算逆向的路径概率βk(k=2N+1,2N,…,N)。并且,译码器4B根据该顺向的路径概率αk和逆向的路径概率βk等计算后验值Lk(k=N,N+1,…,2N-1)和信息位的后半部分dk的外部值Lek(k=N,N+1,…,2N-1)。
在第1代码接收系列的第2块B12中包含结尾位中的附加信息位,但是,不计算附加信息位的后验值和外部值。
这样,译码器4A、4B就并行地动作,进行第1代码接收系列{X1,Y1}的MAP译码。
并且,在步骤ST3,译码器4A、4B对生成的外部值Lek进行交错,生成第2代码接收系列的译码用的先验值L*ak。译码器4A在步骤ST4A从信道值存储器2A、2C中读出构成第2代码接收系列的第1块B21的信道值,并将第2代码接收系列的第1块B21译码,如图4所示的那样,与其并行地,译码器4B在步骤ST4B从信道值存储器2A、2C中读出构成第2代码接收系列的第2块B22的信道值,并将第2代码接收系列的第2块B22译码,生成后验值Lk并存储到输出缓冲器3中,同时生成外部值Le* k,并存储到外部值存储器5中。
这时,译码器4A首先根据第2代码接收系列的第1块B21={X21,Y21}按照顺向递推公式计算顺向的路径概率αk(k=0,1,…,N),按照逆向递推公式计算逆向的路径概率βk(k=N,N-1,…,1)。并且,译码器4A根据该顺向的路径概率αk和逆向的路径概率βk等计算后验值Lk(k=0,1,…,N)和进行了交错的信息位的前半部分d* k的外部值L e* k(k=0,1,…,N-1)。
另一方面,与其并行地,译码器4B根据第2代码接收系列的第2块B22={X22,Y22}按照顺向递推公式计算顺向的路径概率αk(k=N,N+1,…,2N+1),按照逆向递推公式计算逆向的路径概率βk(k=2N+1,2N,…,N)。并且,译码器4B根据该顺向的路径概率αk和逆向的路径概率βk等计算后验值Lk(k=N,N+1,…,2N-1)和进行了交错的信息位的后半部分d* k的外部值Le* k(k=N,N+1,…,2N-1)。
在第2代码接收系列的第2块B22中包含结尾位中的附加信息位,但是,不计算附加信息位的后验值和外部值。
这样,译码器4A、4B就并行地动作,进行第2代码接收系列{X2,Y2}的MAP译码。
然后,在步骤ST5,译码器4A、4B对该外部值Le* k进行去交错,生成下一次的译码用的先验值Lak。将外部值Le* k存储到外部值存储器5的地址INT(k)中,在下一次的译码中,从地址k读出后验值Lek作为先验值Lak时,就不必另外进行去交错处理。
以上,Turbo码的第1次的译码即告结束。如图3所示,以后,就把在前次的译码中生成的外部值Lek作为先验值Lak使用,进行所需要的次数的译码,输出通过最后的译码而生成的后验值。并且,根据该后验值推断信息位的值。
下面,参照图2详细说明译码器4A、4B的动作。
首先,说明对第1代码接收系列的第1块B11译码时(步骤ST2A)的译码器4A的动作。
在译码器4A中,在开始进行顺向的各路径概率αk(m)的计算之前,由初始值设定电路19对存储电路14设定顺向的路径概率的初始值α0(0)=1,α0(m)=0(m=1,2,3)。
其次,从k=0到k=N-1,存储在信道值存储器2A的地址k的xk和信道值存储器2B存储的y1k通过信道值存储器接口11顺序输入迁移概率计算电路12,同时,存储在外部值存储器5的地址k的外部值Lek通过外部值存储器接口18输入迁移概率计算电路12。
迁移概率计算电路12将该外部值Lek作为先验值Lak,根据该先验值Lak和信道值xk、y1k按照式(3)、(4)计算顺向的各状态迁移的状态迁移概率γk(m*,m),并输入路径概率计算电路13。在第1次的译码中,不进行外部值Lek的读出,先验值Lak设定为0(步骤ST1)。
路径概率计算电路13根据该状态迁移概率γk-1(m*,m)和存储电路14存储的前一时刻的顺向的路径概率αk-1(m*)(m*=0,1,2,3)按照式(5)计算该时刻k的顺向的路径概率αk(m)(m=0,1,2,3),并存储到存储电路14中。
由路径概率计算电路13计算的顺向的路径概率αk(m),由存储电路14延迟1个时刻供给路径概率计算电路13和路径量度存储器15,存储到路径量度存储器15的地址k中。
并且,路径概率计算电路13在计算最后的顺向的路径概率αN(m)(m=0,1,2,3)之后,从k=N-1到k=1顺序计算逆向的路径概率βk(m)。最后的顺向的路径概率αN(m)(m=0,1,2,3)也供给译码器4B的初始值设定电路19进行保持。
这时,在开始进行逆向的路径概率βk(m)的计算之前,由初始值设定电路19对存储电路14在第1次的译码中作为逆向的路径概率的初始值设定βN(m)=1/4(m=0,1,2,3),在第2次以后的译码中,设定在前次的第1代码接收系列的第2块B12的译码中计算的βN(m)(m=0,1,2,3)。
在逆向的路径概率βk(m)的计算中,首先,信道值存储器2A存储的信道值xk和信道值存储器2B存储的信道值y1k通过信道值存储器接口11输入迁移概率计算电路12,同时,外部值存储器5存储的外部值Lek通过外部值存储器接口18输入迁移概率计算电路12。
并且,迁移概率计算电路12将该外部值Lek作为先验值Lak,并根据该先验值Lak和信道值xk、y1k按照式(3)、(4)计算逆向的各状态迁移的状态迁移概率γk(m,m*),并输入路径概率计算电路13和后验值计算电路16。在第1次的译码中,不进行外部值Lek的读出,先验值Lak设定为0(步骤ST1)。
路径概率计算电路13根据该状态迁移概率γk(m,m*)和存储电路14存储的后一时刻(k+1)的逆向的路径概率βk+1(m*)(m*=0,1,2,3)按照式(8)计算时刻k的逆向的路径概率βk(m)(m=0,1,2,3),并存储到存储电路14中。
由路径概率计算电路13计算的逆向的路径概率βk(m),由存储电路14延迟1个时刻输入路径概率计算电路13和后验值计算电路16。
即,对于时刻k,从存储电路14来的路径概率βk+1(m)、从迁移概率计算电路12来的γk(m,m*)和存储在路径量度存储器15的地址k中的顺向的路径概率αk(m)(m=0,1,2,3)输入后验值计算电路16。从k=N-1到k=1顺序计算逆向的路径概率βk(m)。
并且,后验值计算电路16根据输入的顺向的路径概率αk(m)(m=0,1,2,3)、逆向的路径概率βk+1(m*)(m*=0,1,2,3)和状态迁移概率γk(m,m*)(m,m*=0,1,2,3)按照式(11)计算后验值Lk,并输入外部值计算电路17。
外部值计算电路17从该后验值Lk中减去信道值Lc·xk和先验值Lak,计算外部值Lek,通过外部值存储器接口18写入外部值存储器5的地址k。
这样,由译码器4A对第1代码接收系列的第1块B11进行译码,就生成外部值Lek(k=0,1,…,N-1)。
其次,说明将第1代码接收系列的第2块B12译码时(步骤ST2B)的译码器4B的动作。译码器4B和译码器4A的第1块B11的译码一样,将先验值Lak设定为0,对第1代码接收系列的第2块B12={X12,Y12}进行MAP译码。
首先,由初始值设定电路19对存储电路14在第1次的译码中作为顺向的路径概率的初始值设定αN(m)=1/4(m=0,1,2,3),在第2次以后的译码中,设定在前次的第1代码接收系列的第1块B11的译码中计算的αN(m)(m=0,1,2,3)。
其次,信道值xk,yk从k=N到k=2N+1顺序输入迁移概率计算电路12,外部值Lek从k=N到k=2N-1顺序输入迁移概率计算电路12。
迁移概率计算电路12将该外部值Lek作为先验值Lak,根据该先验值Lak和信道值xk、y1k按照式(3)、(4)计算顺向的各状态迁移的状态迁移概率γk(m*,m),并输入路径概率计算电路13。在第1次的译码中,不进行外部值Lek的读出,先验值Lak设定为0(步骤ST1)。另外,附加信息位的先验值总是设定为0。
路径概率计算电路13根据该状态迁移概率γk-1(m*,m)和存储电路14存储的前一时刻的顺向的路径概率αk-1(m*)(m*=0,1,2,3)按照式(5)所示的顺向递推公式计算时刻k的顺向的路径概率αk(m)(m=0,1,2,3),并存储到存储电路14中。
由路径概率计算电路13计算的顺向的路径概率αk(m),由存储电路14延迟1个时刻供给路径概率计算电路13和路径量度存储器15,存储到路径量度存储器15的地址k中。
并且,路径概率计算电路13在计算最后的顺向的路径概率α2N +1(m)之后,从k=2N+1到k=N顺序计算逆向的路径概率βN(m)。最后的逆向的路径概率βN(m)也供给译码器4A的初始值设定电路19进行保持。
这时,在开始进行逆向的路径概率βk(m)的计算之前,由初始值设定电路19对存储电路14作为逆向的路径概率的初始值设定β2N+2(0)=1、β2N+2(m)=0(m=1,2,3)。
在逆向的路径概率βk(m)的计算中,首先,信道值存储器2A存储的信道值xk和信道值存储器2B存储的信道值y1k通过信道值存储器接口11输入迁移概率计算电路12,同时,外部值存储器5存储的外部值Lek通过外部值存储器接口18输入迁移概率计算电路12。
并且,迁移概率计算电路12将该外部值Lek作为先验值Lak,根据该先验值Lak和信道值xk、y1k按照式(3)、(4)计算逆向的各迁移状态的状态迁移概率γk(m,m*),并输入路径概率计算电路13和后验值计算电路16。在第1次的译码中,不进行外部值Lek的读出,先验值Lak设定为0(步骤ST1)。
路径概率计算电路13根据该状态迁移概率γk(m,m*)和存储电路14存储的后一时刻(k+1)的逆向的路径概率βk+1(m*)按照式(8)所示的逆向递推公式计算时刻k的逆向的路径概率βk(m),并存储到存储电路14中。
由路径概率计算电路13计算的逆向的路径概率βk(m),由存储电路14延迟1个时刻,输入路径概率计算电路13和后验值计算电路16。
即,对于时刻k,存储电路14的路径概率βk+1(m)、迁移概率计算电路12的γk(m,m*)和存储在路径量度存储器15的地址k的顺向的路径概率αk(m)输入后验值计算电路16。从k=2N+1到k=N顺序计算逆向的路径概率βk(m)。
并且,后验值计算电路16根据输入的顺向的路径概率αk(m)、逆向的路径概率βk+1(m*)和状态迁移概率γk(m,m*)按照式(11)计算后验值Lk,并输入外部值计算电路17。
外部值计算电路17从该后验值Lk中减去信道值Lc·xk和先验值Lak,计算外部值Lek,并通过外部值存储器接口18写入外部值存储器5的地址k。
这样,由译码器4B对第1代码接收系列的第2块B12进行译码,生成外部值Lek(k=N,N+1,…,2N-1)。不计算附加信息位的外部值。
在此阶段,通过对第1代码接收系列{X1,Y1}的MAP译码而生成的外部值Lek(k=0,1,2,…,2N-1)存储到外部值存储器5中。
下面,说明将第2代码接收系列的第1块B21译码时(步骤ST4A)的译码器4A的动作。译码器4A将对根据第1代码接收系列而生成的外部值Lek进行交错后的值作为先验值La* k,和第1代码接收系列的第1块B11的译码一样,对第2代码接收系列的第1块B21={X21,Y21}进行MAP译码。
在译码器4A中,在开始进行顺向的路径概率αk(m)的计算之前,由初始值设定电路19对存储电路14设定顺向的路径概率的初始值α0(0)=1、α0(m)=0(m=1,2,3)。
其次,从k=0到k=N-1,存储在信道值存储器2A的地址INT(k)的x* k(=xINT)和信道值存储器2C存储的y2k通过信道存储器接口11输入迁移概率计算电路12,同时,存储在外部值存储器5的地址INT(k)的外部值Le* k(=LeINT(k))通过外部值存储器接口18输入迁移概率计算电路12。这时,信道值存储器接口11参照内藏的交错表11a将信道值xINT(k)作为外部值Le* k读出。(外部值存储器接口18参照内藏的交错表18a将外部值LeINT(K)作为外部值Le* k读出)(步骤ST3)。
迁移概率计算电路12将该外部值Le* k作为先验值La* k,根据该先验值La* k和信道值x* k、y2k按照式(3)、(4)计算顺向的各状态迁移的状态迁移概率γk(m*,m),并输入路径概率计算电路13(但是,将式中的y1k取为y2k)。
路径概率计算电路13根据该状态迁移概率γk-1(m*,m)和存储电路14存储的前一时刻(k-1)的顺向的路径概率αk-1(m*)(m*=0,1,2,3)按照式(5)计算该时刻k的顺向的路径概率αk(m),并存储到存储电路14中。
由路径概率计算电路13计算的顺向的路径概率αk(m),由存储电路14延迟1个时刻供给路径概率计算电路13和路径量度存储器15,存储到路径量度存储器15的地址k中。
并且,路径概率计算电路13在计算最后的顺向的路径概率αN(m)(m=0,1,2,3)之后,从k=N-1到k=1顺序计算逆向的路径概率βk(m)。最后的顺向的路径概率αN(m)(m=0,1,2,3)也供给译码器4B的初始值设定电路19进行保持。
这时,在开始进行逆向的路径概率βk(m)的计算之前,由初始值设定电路19对存储电路14在第1次的译码中作为逆向的路径概率的初始值设定βN(m)=1/4(m=0,1,2,3),在第2次以后的译码中,设定在前次的第2代码接收系列的第2块B22的译码中计算的βN(m)(m=0,1,2,3)。
在逆向的路径概率βk(m)的计算中,首先,存储在信道值存储器2A的地址INT(k)的信道值x* k(=xINT(k))和信道值存储器2C存储的信道值y2k通过信道值存储器接口11输入迁移概率计算电路12,同时,存储在外部值存储器5的地址INT(k)的外部值Le* k通过外部值存储器接口18输入迁移概率计算电路12。这时,信道存储器接口11参照内藏的交错表将信道值xINT(k)作为信道值x* k读出。另外,外部值存储器接口18参照内藏的交错表将外部值LeINT(k)作为外部值Le* k读出(步骤ST3)。
并且,迁移概率计算电路12将该外部值Le* k作为先验值La* k,根据该先验值La* k和信道值x* k、y2k按照式(3)、(4)计算逆向的各状态迁移的状态迁移概率γk(m,m*),并输入路径概率计算电路13和后验值计算电路16(但是,将式中的y1k取为y2k)。
路径概率计算电路13根据该状态迁移概率γk(m,m*)和存储电路14存储的后一时刻(k+1)的逆向的路径概率βk+1(m*)(m*=0,1,2,3)按照式(8)计算时刻k的逆向的路径概率βk(m)(m=0,1,2,3),并存储到存储电路14中。
由路径概率计算电路13计算的逆向的路径概率βk(m),由存储电路14延迟1个时刻,输入路径概率计算电路13和后验值计算电路16。
即,对于时刻k,存储电路14的路径概率βk+1(m)、迁移概率计算电路12的γk(m,m*)和存储在路径量度存储器15的地址k中的顺向的路径概率αk(m)输入后验值计算电路16。从K=N-1到k=1顺序计算逆向的路径概率βk(m)。
并且,后验值计算电路16根据该顺向的路径概率αk(m)(m=0,1,2,3)、逆向的路径概率βk+1(m*)(m*=0,1,2,3)按照式(11)计算后验值L* k,并输入外部值计算电路17。
外部值计算电路17从该后验值L* k中减去信道值Lc·x* k和先验值La* k,计算外部值Le* k,并通过外部值存储器接口18写入外部值存储器5的地址INT(k)。这时,外部值存储器接口18参照内藏的交错表18a将外部值Le* k写入地址INT(k)。
这样,由译码器4A对第2代码接收系列的第1块B21进行译码,生成外部值Le* k(k=0,1,2,3)。
最后,说明将第2代码接收系列的第2块B22译码时(步骤ST4B)的译码器4B的动作。译码器4B将对根据第1代码接收系列而生成的外部值Lek进行交错后的值作为先验值La* k,和第1代码接收系列的第2块B12的译码一样,对第2代码接收系列的第2块B22={X22,Y22}进行MAP译码。
首先,由初始值设定电路19对存储电路14在第1次的译码中作为顺向的路径概率的初始值设定αN(m)=1/4(m=0,1,2,3),在第2次以后的译码中,设定在前次的第2代码接收系列的第1块B21的译码中计算的αN(m)(m=0,1,2,3)。
其次,从k=N到k=2N+1,存储在信道值存储器2A的地址INT(k)的x* k(=xINT(k))和信道值存储器2C存储的y2k通过信道存储器接口11顺序输入迁移概率计算电路12,同时,存储在外部值存储器5的地址INT(k)的外部值Le* k(=LeINT(k))通过外部值存储器接口18输入迁移概率计算电路12。这时,信道值存储器接口11参照内藏的交错表11a将信道值xINT(k)作为信道值x* k读出。另外,外部值存储器接口18参照内藏的交错表18a将外部值LeINT(k)作为外部值Le* k而读出(步骤ST3)。但是,在k=2N时,读出在信道值存储器2A的地址2N+2中存储的信道值x* 2N,在k=2N+1时,读出在地址2N+3中存储的信道值x* 2N+1。
迁移概率计算电路12将该外部值Le* k作为先验值La* k,根据该先验值La* k和信道值x* k、y2k按照式(3)、(4)计算顺向的各状态迁移的状态迁移概率γk(m*,m),并输入路径概率计算电路13。附加信息位的先验值取为0。
路径概率计算电路13根据该状态迁移概率γk-1(m*,m)和存储电路14存储的前一时刻的顺向的路径概率αk-1(m*)(m*=0,1,2,3)按照式(5)计算时刻k的顺向的路径概率αk(m)(m=0,1,2,3),并存储到存储电路14中。
由路径概率计算电路13计算的顺向的路径概率αk(m),由存储电路14延迟1个时刻,供给路径概率计算电路13和路径量度存储器15,存储到路径量度存储器15的地址k中。
并且,路径概率计算电路13在计算最后的顺向的路径概率α2N +1(m)之后,从k=2N+1到k=N,顺序计算逆向的路径概率βk(m)。最后的逆向的路径概率βN(m)也供给译码器4A的初始值设定电路19进行保持。
这时,在开始进行逆向的路径概率βk(m)的计算之前,由初始值设定电路19对存储电路14作为逆向的路径概率的初始值设定β2N+2(0)=1、β2N+2(m)=0(m=1,2,3)。
在逆向的路径概率βk(m)的计算中,首先,信道值存储器2A存储的信道值x* k(=xINT(k))和信道值存储器2C存储的信道值y2k通过信道值存储器接口11输入迁移概率计算电路12,同时,存储在外部值存储器5的地址INT(k)的外部值Le* k通过外部值存储器接口18输入迁移概率计算电路12。这时,信道值存储器接口11参照内藏的交错表将信道值xINT(k)作为信道值x* k读出。另外,外部值存储器接口18参照内藏的交错表将外部值LeIN T(k)作为外部值Le* k读出(步骤ST3)。
并且,迁移概率计算电路12将该外部值Le* k作为先验值La* k,根据该先验值La* k和信道值x* k、y2k计算逆向的状态迁移概率γk(m,m*),并输入路径概率计算电路13和后验值计算电路16。
由路径概率计算电路13计算的逆向的路径概率βk(m),由存储电路14延迟1个时刻,输入路径概率计算电路13和后验值计算电路16。
即,对于时刻k,存储电路14的路径概率βk+1(m*)、迁移概率计算电路12的状态迁移概率γk(m,m*)和存储在路径量度存储器15的地址k的顺向的路径概率αk(m)输入后验值计算电路16。从k=2N+1到k=N顺序计算逆向的路径概率βk(m)。
并且,后验值计算电路16根据该顺向的路径概率αk(m)、逆向的路径概率βk+1(m*)和状态迁移概率γk(m,m*)按照式(11)计算后验值L* k,并输入外部值计算电路17。
外部值计算电路17从该后验值L* k中减去信道值Lc·x* k和先验值La* k,计算外部值Le* k,并通过外部值存储器接口18写入外部值存储器5的地址INT(k)。这时,外部值存储器接口18参照内藏的交错表18a将外部值Le* k写入地址INT(k)。
这样,由译码器4 B将第2代码接收系列的第2块B22译码,生成外部值Le* k(k=N,…,2N-1)。不计算附加信息位的外部值。
以上,进行Turbo码的1次的译码,生成了外部值Le* k(k=0,…,2N-1)和后验值L* k(k=0,…,2N-1)。由于外部值Le* k(k=0,…,2N-1)存储到外部值存储器5的地址INT(k),所以,外部值Le0~Le2N-1存储在外部值存储器5的地址0~2N-1。因此,在下次译码时,将该外部值作为先验值读出时,就不必进行去交错。另外,在最后一次的译码时,在块B21、B22的译码中,后验值作为译码结果从后验值计算电路16通过输入输出接口1输出。
如上所述,由译码器4A进行的第1代码接收系列的第1块B11的译码与由译码器4B进行的第1代码接收系列的第2块B12的译码和由译码器4A进行的第2代码接收系列的第1块B21的译码与由译码器4B进行的第2代码接收系列的第2块B22的译码并行地进行处理。
如上所述,按照实施例1,将代码接收系列在时间方向上分割为多个块,将各块并行地译码,所以,设并行地进行译码的块数为n时,可以将译码所需要的时间降低为1/n。
实施例1的译码电路(图1)的电路规模及存储器容量与现有技术的译码电路(图15)相比不增加,用同样的电路规模就可以实现译码的高速化。
实施例2。
本发明实施例2的编码电路是可以通过凿孔而构成任意的编码速率的Turbo码的编码电路,本发明实施例2的译码电路是将该凿孔的编码速率的Turbo码进行译码的译码电路。下面,说明编码速率1/2的Turbo码。
图5是表示本发明实施例2的编码电路的结构的框图,图6是表示本发明实施例2的译码电路的结构的框图,图7是表示图6的译码器的结构的框图。
在图5所示的编码电路中,61A是根据信息位系列D生成第1奇偶位的系列P1的分量编码器,61B是根据由交错器62将信息位系列D重新排列而生成的信息位系列D*生成第2奇偶位的系列P2的分量编码器,62是根据指定的映射关系将信息位系列D的位di重新排列而生成信息位系列D*的交错器,63是对第1和第2奇偶位的系列P1、P2进行凿孔处理而生成奇偶位的系列P的凿孔电路。分量编码器61A、61B和图12B所示的相同。
在图6所示的译码电路中,2A是存储通过输入输出接口1而输入的信道值X的信道值存储器,2D是存储通过输入输出接口1而输入的作为奇偶位系列P的接收系列的信道值Y={yk(k=0,1,…,2N-1)}的信道值存储器,4C、4D是将构成凿孔的Turbo码的接收系列的多个块进行软输入软输出译码的多个译码器。关于图6中的其他的结构元素,和实施例1的结构元素(图1)相同,所以,省略其说明。
另外,在图7所示的译码器4C、4D中,20是将指定的值供给迁移概率计算电路12取代与通过凿孔处理而丢失的奇偶位对应的信道值的逆凿孔电路。关于图7中的其他的结构元素,和实施例1的结构元素(图2)相同,所以,省略其说明。
下面,说明其动作。
首先,说明图5所示的编码电路的动作。
由信息位系列D、第1奇偶位系列P1和第2奇偶位系列P2构成编码速率1/3的Turbo码。凿孔电路63交替地选择2个奇偶位系列P1、P2的奇偶位p1k、p2k,作为奇偶位系列P而输出。这样,就输出了编码速率1/2的Turbo码。
信息位系列D输入分量编码器61A和交错器62,由交错器62生成的信息位系列D*输入分量编码器61B。
在时刻t=k(k=0,1,…,2N-1),由分量编码器61A根据信息位生成第1奇偶位p1k,由分量编码器61B生成第2奇偶位p2k,并分别输入凿孔电路63。
凿孔电路63交替地选择该第1和第2奇偶位p1k、p2k,作为奇偶位系列P而输出。结尾位中的奇偶位不进行凿孔处理,直接输出。因此,从编码电路发送来的全部位系列就是信息位系列D={dk(k=0,1,…,2N-1)}、奇偶位系列P={p10,p21,p12,…,p22N-3,p12N-2,p22N-1}和结尾位{d2N,d2N+1,p12N,p12N+1,d* 2N,d* 2N+1,p22N,p22N+1}。
这样,就输出由凿孔电路63进行了凿孔处理的Turbo码。
下面,说明图6和图7所示的译码电路的动作。
图6和图7所示的译码电路将编码速率1/2的Turbo码进行译码。设信息位系列D的接收系列为{xk(k=0,1,…,2N-1)}、奇偶位系列P的接收系列为{yk(K=0,1,…2N-1}、以及结尾位{d2N,d2N+1,p12N,p12N+1,d* 2N,d* 2N+1,p22N,p22N+1}的接收系列为{x2N,x2N+1,y2N,y2N+1,x* 2N,x* 2N+1,y* 2N,y* 2N+1}。另外,将系列X、Y定义为X={xk(k=0,1,…,2N-1),x2N,x2N+1,x* 2N,x* 2N+1}、Y={yk(k=0,1,…,2N-1),y2N,y2N+1,y* 2N,y* 2N+1}。
该Turbo码的接收系列X、Y通过输入输出接口1而输入,系列X存储到信道值存储器2A中,系列Y存储到信道值存储器2D中。
译码器4C、4D和实施例1的译码器4A、4B一样,对由接收系列构成的第1代码接收系列{X1,Y1}和第2代码接收系列{X2,Y2}进行MAP译码。
这时,译码器4C、4D将可靠度最低的信道值插入到系列Y1和系列Y2中进行了凿孔处理的位,令Y1={y1k=yk(k为偶数),y1k=0(k为奇数),y2N,y2N+1}、Y2={y2k=0(k为偶数),y2k=yk(k为奇数),y* 2N,y* 2N+1}。「0」表示可靠度最低的信道值。
在译码器4C、4D中,将第1代码接收系列译码时,在偶数时刻k,存储在信道值存储器2D的地址k中的y1k输入迁移概率计算电路12,在奇数时刻k,不从信道值存储器2D中读出信道值,值y1k=0(可靠度最低的信道值)从逆凿孔电路20输入迁移概率计算电路12。另外,将第2代码接收系列译码时,在偶数时刻k,不从信道值存储器2D中读出信道值,值y2k=0(可靠度最低的信道值)从逆凿孔电路20输入迁移概率计算电路12,在奇数时刻k,存储在信道值存储器2D的地址k中的y2k输入迁移概率计算电路12中。
关于译码电路的其他的动作,和实施例1的相同,所以,省略其说明。
如上所述,按照实施例2,在译码器4C、4D中设置了将可靠度最低的值插入到与进行了凿孔处理的代码的代码接收系列中的进行了凿孔处理的位对应的信道值中的逆凿孔电路20,所以,可以和实施例1一样将通过凿孔处理增加了编码速率的Turbo码高速地进行译码。
另外,按照实施例2,将信息位系列进行交错,根据信息位系列和进行了交错的系列分别生成奇偶位系列,对生成的多个奇偶位系列进行凿孔处理,从而减少奇偶位系列,所以,可以简单地生成指定的编码速率的进行了凿孔处理的Turbo码。
在实施例2中,将编码速率1/3的Turbo码凿孔处理为编码速率1/2,当然,也可以对其他的编码速率的Turbo码凿孔处理为别的编码速率。
实施例3。
本发明实施例3的译码电路是与向信道值存储器2A、2B、2C写入信道值并行(即不等到所有的信道值写入结束)进行译码的译码电路。实施例3的译码电路的结构元素和实施例1的相同,所以,省略其说明。但是,使用如以下所述那样动作的译码器4C、4D取代译码器4A、4B。
下面,说明其动作。
图8A和图8B是说明实施例3的译码电路的接收系列X、Y1、Y2的输入的时序图,图9是说明实施例3的译码电路的动作的流程图。
在各时刻k(k=0,1,…,2N-2,2N-1),接收系列X、Y1、Y2的信道值xk、y1k、y2k通过输入输出接口1而输入。
但是,结尾位在时刻2N输入x2N、y12N,在时刻2N+1输入x2N+1、y12N+1,在时刻2N+2输入x2N、y22N,在时刻2N+3输入x2N+1、y22N+1。
如图8A所示,代码接收系列分割为块L1、L2。块L1的长度是N,块L2包含结尾位,所以,块L2的长度是N+4。
这时,首先输入开头的块L1,然后输入块L2。在对块L1的输入结束时,如图8B所示,第1代码接收系列的第1块B11={X11,Y11}的输入结束。另外,在块L1输入结束时,对于第2代码接收系列的第1块B21={X21,Y21},系列Y21的输入结束,但是,由于系列X21是进行了交错的系列,所以,输入了约1/2。
然后,在块L2输入结束时,如图8B所示,系列X、Y1、Y2的输入结束,所以,第1代码接收系列的第1块B11、第1代码接收系列的第2块B12、第2代码接收系列的第1块B21和第2代码接收系列的第2块B22的输入(即所有的块的输入)结束。
并且,如图9所示,在块L1的输入结束后,译码器4C将先验值La* k取为0,对第2代码接收系列的第1块B21进行MAP译码(步骤ST11),计算外部值Le* k(k=0,1,…,N-1)。但是,由逆凿孔电路20向第2代码接收系列的第1块B21的系列X21中的未输入部分的信道值分配可靠度最低的值「0」。另一方面,在该时刻,由于第2代码接收系列的第2块B22未输入,所以,不进行译码,将外部值Le* k(k=N,N+1,…,2N-1)取为0。
并且,对这些外部值Le* k进行去交错,生成第1代码接收系列的MAP译码的先验值Lak(=0,1,…,2N-1)(步骤ST12)。
其次,译码器4C使用该先验值Lak对第1代码接收系列的第1块B11进行MAP译码(步骤ST13),计算外部值Lek(k=0,1,…,N-1)。在该时刻,第1代码接收系列的第1块B11已全部输入,所以,不需要逆凿孔处理,从而不进行逆凿孔处理。另一方面,由于第1代码接收系列的第2块B12未输入,所以,不进行译码,将与其对应的外部值Lek(k=N,N+1,…,2N-1)取为0。
并且,对这些外部值Lek进行交错,生成第2代码接收系列的MAP译码的先验值La* k(k=0,1,…,2N-1)(步骤ST14)。
通过上述处理,对于使用作为接收系列X、Y1、Y2的一半的块L1输入的信道值的第1次的译码即告结束。
其次,在块L2的输入结束后,译码器4C使用在第1次的译码中计算的先验值La* k(k=0,1,…,N-1)对第2代码接收系列的第1块B21进行MAP译码(步骤ST21),计算外部值Le* k(k=0,1,…,N-1)。与其并行地,译码器4D使用先验值La* k(k=N,N+1,…,2N-1)对第2代码接收系列的第2块B22进行MAP译码(步骤ST22),计算外部值Le* k(k=N,N+1,…,2N-1)。
并且,对这些外部值Le* k进行去交错,生成第1代码接收系列的MAP译码的先验值Lak(k=0,1,…,2N-1)(步骤ST23)。
其次,译码器4C使用该先验值的前半部分Lak(k=0,1,…,N-1)对第1代码接收系列的第1块B11进行MAP译码(步骤ST24),计算外部值Lek(k=0,1,…,N-1)。与其并行地,译码器4D使用先验值的后半部分Lak(k=N,N+1,…,2N-1)对第1代码接收系列的第2块B12进行MAP译码(步骤ST25),计算外部值Lek(k=N,N+1,…,2N-1)。
并且,对这些外部值Lek进行交错,生成第2代码接收系列的MAP译码的先验值La* k(k=0,1,…,2N-1)。
通过上述处理,使用作为接收系列X、Y1、Y2的全部的块L1、L2的信道值的第2次的译码即告结束。
此后的译码和上述第2次的译码处理相同,所以,省略其说明。
并且,在作为最后译码的前一次的第N次译码中的第1代码接收系列的第1块B11的MAP译码(步骤ST34)中,译码器4C计算并输出与信息位系列D的前半部分D1={dk}对应的后验值Lk(k=0,1,…,N-1)。
其次,在最后的第N+1次的译码中,译码器4D使用在第N次的译码中计算的先验值La* k(k=N,N+1,…,2N-1)对第2代码接收系列的第2块B22进行MAP译码(步骤ST41),计算外部值Le* k(k=N,N+1,…,2N-1)。对第2代码接收系列的第1块B21不进行MAP译码,将输入的先验值La* k(k=0,1,…,N-1)直接作为外部值Le* k(k=0,1,…,N-1)。
并且,对这些外部值Le* k进行去交错,生成第1代码接收系列的MAP译码的先验值Lak(k=0,1,…,2N-1)(步骤ST42)。
其次,译码器4D使用先验值的后半部分Lak(k=N,N+1,…,2N-1)对第1代码接收系列的第2块B12进行MAP译码(步骤ST43),计算与信息位系列D的后半部分D2={dk}对应的后验值Lk(k=N,N+1,…,2N-1),并输出该译码结果。这时,不进行第1代码接收系列的第1块B11的MAP译码。
通过上述译码,对信息位系列的前半部分和后半部分分别进行指定的N次的反复译码,计算推断值。
如上所述,按照实施例3,各块的输入结束时,就开始进行该块的译码,在输出与信息位系列D对应的后验值时,从开头的块开始,顺序输出与该块的各信道值对应的后验值,所以,在代码接收系列的输入结束之前开始进行译码,可以减少译码所需要的时间。
另外,根据输入未结束的块(此处是B21)生成后验值,并将与该后验值对应的先验值作为输入已结束的块(此处是B11)的译码用的先验值,所以,比将先验值取为0更正确。
将重要性高的信息位或在译码后的后处理需要很多时间的信息位配置到开头侧而构成信息位系列时,由于开头侧的信息位先译码,所以,非常适合于这样的信息位系列的Turbo码的译码。
实施例4。
本发明实施例4的译码电路是将Turbo码分割为多个块并用1个译码器顺序对各块进行MAP译码从而对全体代码进行MAP译码的译码电路。
图10是表示本发明实施例4的译码电路的结构的框图。图中,4E是对分割的多个块的各块顺序进行MAP译码的译码器。图10中的其他的结构元素和实施例1相同,所以,省略其说明。另外,译码器4E的结构和图2所示的结构相同,所以,省略其说明。但是,把存储电路14的路径概率αN(m)、βN(m)供给自己的初始值设定电路19进行保持。
下面,说明其动作。
图11是表示第1代码接收系列与各块的对应关系的一例的图。为了说明简单,这里假定包括结尾位在内的代码长度为3N。
根据第1代码接收系列{X1,Y1},将只重叠长度D的3个部分系列定义为X11={xk(k=0,1,…,N-1,N,…,N+D-1)}X12={xk(k=N,N+1,…,2N-1,2N,…,
2N+D-1)}X13={xk(k=2N,2N+1,…,3N-1)}Y11={y1k(k=0,1,…,N-1,N,…,N+D-1)}Y12={y1k(k=N,N+1,…,2N-1,2N,…,
2N+D-1)}Y13={y1k(k=2N,2N+1,…,3N-1)}
D是重叠区间的长度,D约为约束长度的8~10倍是适当的。下面,将部分系列{X11,Y11}称为第1块、将部分系列{X12,Y12}称为第2块、将部分系列{X13,Y13}称为第3块。
译码器4 E按第1块{X11,Y11}、第2块{X12,Y12}、第3块{X13,Y13}的顺序进行MAP译码,在第1块的译码中,计算信息位dk(k=0,1,…,N-1)的外部值Lek(k=0,1,…,N-1),在第2块的译码中,计算信息位dk(k=N,N+1,…,2N-1)的外部值Lek(k=N,N+1,…,2N-1),在第3块的译码中,分别计算信息位dk(k=2N,2N+1,…,3N-1)的外部值Lek(k=2N,2N+1,…3N-1)。
这时,初始值设定电路19将在第1块的译码中计算的顺向的路径概率αN(m)(m=0,1,2,3)对存储电路14设定为第2块的译码中的顺向的路径概率的初始值αN(m)。另外,将在第2块的译码中计算的顺向的路径概率α2N(m)(m=0,1,2,3)设定为第3块的译码中的顺向的路径概率的初始值α2N(m)。
另外,由初始值设定电路19对存储电路14将在第2块的译码中计算的逆向的路径概率βN+D(m)(m=0,1,2,3)设定为在第1块的译码中逆向的路径概率的初始值βN+D(m),将在第3块中计算的逆向的路径概率β2N+D(m)(m=0,1,2,3)设定为在第2块的译码中逆向的路径概率的初始值β2N+D(m)。
下面,详细说明各块的译码。
在第1块的译码中,首先,顺向的路径概率的初始值设定为α0(0)=1、α0(m)=0(m=1,2,3),由路径概率计算电路13从k=0到k=N+D顺序按照顺向递推公式计算顺向的路径概率αk(m),并存储到路径量度存储器15中。
其次,在顺向的路径概率的计算结束时,从k=N+D到k=1顺序计算逆向的路径概率βk(m)。对逆向的路径概率的初始值βN +D(m)在第1次的译码中设定为βN+D(m)=1/4(m=0,1,2,3),在第2次以后的译码中,设定为在前次的第2块的译码中计算的βN+D(m)(m=0,1,2,3)。
并且,由后验值计算电路16和外部值计算电路17根据逆向的路径概率和路径量度存储器15存储的顺向的路径概率计算信息位dk(k=0,…,N+D-1)的后验值Lk(k=0,…,N+D-1)和外部值Lek(k=0,…,N-1),该外部值Lek存储到外部值存储器5中。信息位dk(k=N,…,N+D-1)的外部值不存储到外部值存储器5中。
在第2块的译码中,首先,作为顺向的路径概率的初始值,设定为在第1块的译码中计算的αN(m)(m=0,1,2,3),由路径概率计算电路13从k=N到k=2N+D顺序计算顺向的路径概率αk(m),并存储到路径量度存储器15中。在该时刻,不需要在第1块的译码中计算的顺向的路径概率,所以,也可以将在第2块的译码中计算的顺向的路径概率改写在其上。
其次,在顺向的路径概率的计算结束时,从k=2N+D到k=N顺序计算逆向的路径概率βk(m)。对于逆向的路径概率的初始值β2N+D(m),在第1次的译码中设定为β2N+D(m)=1/4(m=0,1,2,3),在第2次以后的译码中,设定为在前次的第3块的译码中计算的β2N+D(m)(m=0,1,2,3)。
并且,由后验值计算电路16和外部值计算电路17根据逆向的路径概率和路径量度存储器15存储的顺向的路径概率计算信息位dk的外部值Lek(k=N,…,2N-1),并存储到外部值存储器5中。信息位dk(k=2N,…,2N+D-1)的外部值不存储到外部值存储器5中。
在第3块的译码中,首先,作为顺向的路径概率的初始值,设定为在第2块的译码中计算的α2N(m)(m=0,1,2,3),从k=2N到k=3N顺序计算顺向的路径概率αk(m),并存储到路径量度存储器15中。由于不需要在第2块中计算的顺向的路径概率,所以,可以将在第3块的译码中计算的顺向的路径概率改写在其上。
其次,在顺向的路径概率的计算结束时,从k=3N到k=2N顺序计算逆向的路径概率βk(m)。逆向的路径概率的初始值设定为β3N(0)=1、β3N(m)=0(m=1,2,3)。
并且,由后验值计算电路16和外部值计算电路17根据逆向的路径概率和路径量度存储器15存储的顺向的路径概率计算信息位dk(k=2N,…,3N-1)的后验值Lk(k=2N,…,3N-1)和外部值Lek(k=2N,…,3N-1),该外部值Lek(k=2N,…,3N-1)存储到外部值存储器5中。
以上,完成了对第1代码接收系列{X1,Y1}的1次的译码。另外,对第2代码接收系列{X2,Y2}的1次的译码也一样,将第2代码接收系列{X2,Y2}分割为3个块,对各块顺序进行译码。
如实施例2的译码器4C、4D那样,通过设置逆凿孔电路,可以将进行了凿孔处理的Turbo码进行译码。
如上所述,按照实施例4,将代码接收系列在时间方向上分割为多个块,顺序对各块进行译码,所以,设代码接收系列的分割数(即块数)为n时,可以将存储顺向的路径概率的路径量度存储器的容量降低为1/n。即,在Turbo码的译码中,虽然信道值存储器、外部值存储器、路径量度存储器等存储器的容量是与代码长度成正比增加的,但是,可以抑制该存储器容量的增加。
另外,在将代码接收系列分割为多个块时,使各块重叠,所以,可以更正确地计算块间的边界部分的逆向的路径概率。
上述实施例的译码器4A~4E进行MAP译码,但是,进行其他方式(软输出维特比算法语言或LogMAP译码法等)的译码,也可以获得同样的效果。
另外,在上述实施例1~3中,将第1和第2代码接收系列分割为2个块,利用2个译码器4A、4B(4C、4D)将该2个块译码,但是,分割数和译码器的个数不限于2个,也可以是3个以上。
此外,在上述实施例4中,将第1和第2代码接收系列分割为3个块,但是,分割数不限于3。
如上所述,按照本发明,将代码接收系列在时间方向上分割为多个块,对各块并行地译码,所以,设分割数为n时,可以将译码所需要的时间减少为1/n。
按照本发明,将代码接收系列在时间方向上分割为多个块,将各块顺序译码,所以,设代码接收系列的分割数为n时,可以将存储顺向的路径概率的路径量度存储器的容量降低为约1/n。
按照本发明,译码器中具有将可靠度最低的值插入到与进行了凿孔处理的代码的代码接收系列中的进行了凿孔处理的位对应的信道值中的逆凿孔电路,所以,通过凿孔处理可以将编码速率增加的Turbo码高速地译码。
按照本发明,译码器在各块的输入结束时开始进行该块的译码,在输出后验值时,从开头的块开始顺序输出与该块的各信道值对应的后验值,所以,在代码接收系列的输入结束之前可以开始进行译码,从而可以减少译码所需要的时间。
按照本发明,译码器根据输入未结束的块生成后验值,并将与该后验值对应的先验值作为输入已结束的块的译码用的先验值,所以,先验值比将先验值取为0更正确。
按照本发明,使各块重叠指定的长度,所以,可以更正确地计算块间的边界部分的逆向的路径概率。
按照本发明,将信息位系列进行交错,根据信息位系列或进行了交错的系列分别生成奇偶位,并对生成的多个奇偶位进行凿孔处理,减少奇偶位系列的个数,所以,可以简单地生成指定的编码速率的进行了凿孔处理的Turbo码。
Claims (12)
1.一种对Turbo码译码的译码电路,其特征在于:具有将代码接收系列在时间方向上分割为多个块并将这些块中至少2个块并行地译码的多个译码器。
2.按权利要求1所述的译码电路,其特征在于:上述代码接收系列由第1代码接收系列和第2代码接收系列构成,第1代码接收系列由信息位系列的接收系列和根据该信息位系列而生成的第1奇偶位系列的接收系列构成,第2代码接收系列由将上述信息位系列的接收系列进行交错而生成的位系列和根据将上述信息位系列进行交错后的位系列而生成的第2奇偶位系列的接收系列构成,上述译码电路具有存储上述第1代码接收系列和第2奇偶位系列的接收系列的信道值存储器。
3.按权利要求2所述的译码电路,其特征在于:上述多个译码器至少具有第1译码器和第2译码器,上述第1译码器和第2译码器分别具有内藏用于从上述信道值存储器中读出第1和第2代码接收系列的上述块的交错表的信道值存储器接口。
4.按权利要求3所述的译码电路,其特征在于:各译码器具有根据各块的信道值和先验值计算顺向和逆向的状态迁移概率的迁移概率计算电路、根据上述顺向的状态迁移概率计算顺向的路径概率和根据逆向的状态迁移概率计算逆向的路径概率的路径概率计算电路、根据上述顺向的路径概率和上述逆向的状态迁移概率以及上述逆向的路径概率计算后验值的后验值计算电路和从该后验值中将与信息位对应的信道值和先验值减去从而计算外部值的外部值计算电路。
5.按权利要求4所述的译码电路,其特征在于:多个译码器分别具有将最后计算的顺向的路径概率和逆向的路径概率中的任意一方输入其他译码器的单元和将从其他译码器输入的路径概率设定为该路径概率的初始值的初始值设定电路。
6.按权利要求2所述的译码电路,其特征在于:上述第1奇偶位系列和第2奇偶位系列预先进行凿孔,上述各译码器具有将可靠度最低的值插入与上述各代码接收系列中的凿孔的位对应的信道值中的逆凿孔电路。
7.按权利要求4所述的译码电路,其特征在于:上述各译码器在每次完成各块的输入时开始进行该块的译码,将与该块的各信道值对应的后验值作为与该块的各信息位对应的后验值而输出。
8.按权利要求7所述的译码电路,其特征在于:上述多个译码器中的至少1个对输入未结束的块进行译码,以便生成后验值,将与该后验值对应的值作为输入已结束的块的译码用的先验值。
9.一种对Turbo码译码的译码电路,其特征在于:具有将代码接收系列在时间方向上分割为多个块并对各块顺序译码的1个译码器。
10.按权利要求9所述的译码电路,其特征在于:上述译码电路具有存储上述代码接收系列的信道值存储器,上述译码器具有从上述信道值存储器中按块单位读出上述代码接收系列的信道值存储器接口、根据各块的信道值和先验值计算顺向和逆向的状态迁移概率的迁移概率计算电路、根据上述顺向的状态迁移概率计算顺向的路径概率和根据逆向的状态迁移概率计算逆向的路径概率的路径概率计算电路、根据上述顺向的路径概率和上述逆向的状态迁移概率以及上述逆向的路径概率计算后验值的后验值计算电路和从该后验值中将与信息位对应的信道值和先验值减去从而计算外部值的外部值计算电路。
11.按权利要求10所述的译码电路,其特征在于:各块重叠指定的长度。
12.一种具有根据信息位系列生成Turbo码的编码电路和对该Turbo码译码的译码电路的Turbo码的编码译码电路,其特征在于:上述编码电路具有根据上述信息位系列生成第1奇偶位系列的第1分量编码器、将上述信息位系列进行交错的交错器、根据由上述交错器进行了交错的信息位系列生成第2奇偶位系列的第2分量编码器和多路输出上述信息位系列和上述第1及第2分量编码器的输出的输出电路;而上述译码电路具有将由信息位系列的接收系列和上述第1奇偶位系列的接收系列构成的第1代码接收系列和由将上述信息位系列的接收系列进行交错而生成的位系列和上述第2奇偶位系列的接收系列构成的第2代码接收系列在时间方向上分割为多个块并将这些块中的至少2个块并行地进行译码的多个译码器、和存储上述第1代码接收系列和第2奇偶位系列的接收系列的信道值存储器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP183551/2000 | 2000-06-19 | ||
JP2000183551A JP2002009633A (ja) | 2000-06-19 | 2000-06-19 | 復号回路および復号方法、並びに符号化回路および符号化方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1330455A true CN1330455A (zh) | 2002-01-09 |
Family
ID=18684124
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN01117489.7A Pending CN1330455A (zh) | 2000-06-19 | 2001-04-30 | Turbo(涡轮)码的译码电路和编码译码电路 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20020007474A1 (zh) |
JP (1) | JP2002009633A (zh) |
CN (1) | CN1330455A (zh) |
FR (1) | FR2810475A1 (zh) |
GB (1) | GB2365727A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100391107C (zh) * | 2003-12-25 | 2008-05-28 | 上海贝尔阿尔卡特股份有限公司 | 信道编码方法和装置以及信道译码方法和装置 |
CN1874331B (zh) * | 2005-06-01 | 2011-06-08 | 美国博通公司 | 用于射频收发器中的基带处理模块及执行涡轮解码操作的方法 |
CN101180800B (zh) * | 2005-05-18 | 2012-05-23 | 三星电子株式会社 | 用于在软件无线电系统中使用的涡式译码器及软件无线电系统 |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6967598B2 (en) * | 2004-02-20 | 2005-11-22 | Bae Systems Information And Electronic Systems Integration Inc | Reduced complexity multi-turbo multi-user detector |
US6831574B1 (en) * | 2003-10-03 | 2004-12-14 | Bae Systems Information And Electronic Systems Integration Inc | Multi-turbo multi-user detector |
US7092464B2 (en) * | 2002-01-23 | 2006-08-15 | Bae Systems Information And Electronic Systems Integration Inc. | Multiuser detection with targeted error correction coding |
JP3898574B2 (ja) | 2002-06-05 | 2007-03-28 | 富士通株式会社 | ターボ復号方法及びターボ復号装置 |
JP4185314B2 (ja) | 2002-06-07 | 2008-11-26 | 富士通株式会社 | 情報記録再生装置、光ディスク装置及び、データ再生方法 |
JP2004080508A (ja) * | 2002-08-20 | 2004-03-11 | Nec Electronics Corp | 誤り訂正符号の復号方法、そのプログラム及びその装置 |
AU2003259479A1 (en) * | 2002-09-18 | 2004-04-08 | Koninklijke Philips Electronics N.V. | Method for decoding data using windows of data |
JP4224688B2 (ja) | 2003-06-18 | 2009-02-18 | 日本電気株式会社 | レートデマッチング処理装置 |
JP4217887B2 (ja) | 2003-07-22 | 2009-02-04 | 日本電気株式会社 | 受信装置 |
US7373585B2 (en) * | 2005-01-14 | 2008-05-13 | Mitsubishi Electric Research Laboratories, Inc. | Combined-replica group-shuffled iterative decoding for error-correcting codes |
FR2891419A1 (fr) * | 2005-09-23 | 2007-03-30 | St Microelectronics Sa | Decodage d'une pluralite de flux d'informations codees selon un algorithme de codage par blocs. |
US7562004B2 (en) | 2006-05-31 | 2009-07-14 | International Business Machines Corporation | Determining better configuration for computerized system |
JP5001196B2 (ja) * | 2008-02-21 | 2012-08-15 | 三菱電機株式会社 | 受信装置および通信システム |
GB0804206D0 (en) * | 2008-03-06 | 2008-04-16 | Altera Corp | Resource sharing in decoder architectures |
US8250448B1 (en) * | 2008-03-26 | 2012-08-21 | Xilinx, Inc. | Method of and apparatus for implementing a decoder |
JP4935778B2 (ja) * | 2008-08-27 | 2012-05-23 | 富士通株式会社 | 符号化装置、送信装置および符号化方法 |
US8578255B1 (en) * | 2008-12-19 | 2013-11-05 | Altera Corporation | Priming of metrics used by convolutional decoders |
US8638886B2 (en) * | 2009-09-24 | 2014-01-28 | Credo Semiconductor (Hong Kong) Limited | Parallel viterbi decoder with end-state information passing |
US10439649B2 (en) | 2016-02-03 | 2019-10-08 | SK Hynix Inc. | Data dependency mitigation in decoder architecture for generalized product codes for flash storage |
US10484020B2 (en) * | 2016-02-03 | 2019-11-19 | SK Hynix Inc. | System and method for parallel decoding of codewords sharing common data |
US10498366B2 (en) | 2016-06-23 | 2019-12-03 | SK Hynix Inc. | Data dependency mitigation in parallel decoders for flash storage |
US10523245B2 (en) * | 2016-03-23 | 2019-12-31 | SK Hynix Inc. | Soft decoder for generalized product codes |
US9935800B1 (en) | 2016-10-04 | 2018-04-03 | Credo Technology Group Limited | Reduced complexity precomputation for decision feedback equalizer |
US10728059B1 (en) | 2019-07-01 | 2020-07-28 | Credo Technology Group Limited | Parallel mixed-signal equalization for high-speed serial link |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2675971B1 (fr) * | 1991-04-23 | 1993-08-06 | France Telecom | Procede de codage correcteur d'erreurs a au moins deux codages convolutifs systematiques en parallele, procede de decodage iteratif, module de decodage et decodeur correspondants. |
US5583500A (en) * | 1993-02-10 | 1996-12-10 | Ricoh Corporation | Method and apparatus for parallel encoding and decoding of data |
US5907582A (en) * | 1997-08-11 | 1999-05-25 | Orbital Sciences Corporation | System for turbo-coded satellite digital audio broadcasting |
US6044116A (en) * | 1998-10-29 | 2000-03-28 | The Aerospace Corporation | Error-floor mitigated and repetitive turbo coding communication system |
US6304995B1 (en) * | 1999-01-26 | 2001-10-16 | Trw Inc. | Pipelined architecture to decode parallel and serial concatenated codes |
US6715120B1 (en) * | 1999-04-30 | 2004-03-30 | General Electric Company | Turbo decoder with modified input for increased code word length and data rate |
US6980605B2 (en) * | 2000-01-31 | 2005-12-27 | Alan Gatherer | MAP decoding with parallelized sliding window processing |
-
2000
- 2000-06-19 JP JP2000183551A patent/JP2002009633A/ja active Pending
-
2001
- 2001-03-19 GB GB0106823A patent/GB2365727A/en not_active Withdrawn
- 2001-03-26 US US09/816,074 patent/US20020007474A1/en not_active Abandoned
- 2001-04-17 FR FR0105207A patent/FR2810475A1/fr active Pending
- 2001-04-30 CN CN01117489.7A patent/CN1330455A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100391107C (zh) * | 2003-12-25 | 2008-05-28 | 上海贝尔阿尔卡特股份有限公司 | 信道编码方法和装置以及信道译码方法和装置 |
CN101180800B (zh) * | 2005-05-18 | 2012-05-23 | 三星电子株式会社 | 用于在软件无线电系统中使用的涡式译码器及软件无线电系统 |
CN1874331B (zh) * | 2005-06-01 | 2011-06-08 | 美国博通公司 | 用于射频收发器中的基带处理模块及执行涡轮解码操作的方法 |
Also Published As
Publication number | Publication date |
---|---|
US20020007474A1 (en) | 2002-01-17 |
FR2810475A1 (fr) | 2001-12-21 |
GB2365727A (en) | 2002-02-20 |
JP2002009633A (ja) | 2002-01-11 |
GB0106823D0 (en) | 2001-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1330455A (zh) | Turbo(涡轮)码的译码电路和编码译码电路 | |
CN1235343C (zh) | 交织方法、交织装置以及存储交织模式产生程序的媒体 | |
CN1201494C (zh) | 最大后验概率译码方法和装置 | |
CN1153354C (zh) | 纠错编码器、纠错解码器和具有纠错码的数据传输系统 | |
CN1108665C (zh) | 包括结合多维调制的乘积码的数字传输系统与方法 | |
CN1139191C (zh) | 涡轮码纠错译码方法 | |
CN1543076A (zh) | 用于在有连续最小距离长度限制的情况下进行调制/解调的设备与方法 | |
CN1692557A (zh) | 编码设备、编码方法、编码程序、解码设备、解码方法、和解码程序 | |
CN1225491A (zh) | 纠错方法和系统 | |
CN1213541C (zh) | 交错器,编码、译码设备和方法,置换方法及其系统 | |
CN1320769C (zh) | 编码器、解码器以及数据传送系统 | |
CN1822511A (zh) | 使用分码多重存取的无线通信系统中的物理层处理 | |
CN1698272A (zh) | 解码方法、解码装置、程序、记录/再现装置与方法、和再现装置与方法 | |
CN1960234A (zh) | 解交织器及多重载波通信系统 | |
CN1199177C (zh) | 可抑制电路规模能进行高速纠错的纠错装置和解码装置 | |
CN1898723A (zh) | 信号解码装置以及信号解码方法 | |
CN1224226C (zh) | 通信系统中重新排列码字序列的方法和设备 | |
CN1305221C (zh) | 迭代链接码解码电路以及使用该电路的编码/解码系统 | |
CN1196268C (zh) | 并行涡轮编码器实施方案 | |
CN1226039A (zh) | 指数计算装置和解码装置 | |
CN1269680A (zh) | 交织器装置以及用于交织数据集的方法 | |
CN1841548A (zh) | 编码器和解码器 | |
CN1669071A (zh) | 用于在音频代码的编码/解码处理之间转换代码的方法和装置以及使用该方法和装置的存储介质 | |
CN1701517A (zh) | 译码装置和方法、程序存储媒体和程序 | |
CN1848718A (zh) | 应用于可变长度通讯系统的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |