CN102571107B - LTE系统中高速并行Turbo码的解码系统及方法 - Google Patents
LTE系统中高速并行Turbo码的解码系统及方法 Download PDFInfo
- Publication number
- CN102571107B CN102571107B CN201010592227.1A CN201010592227A CN102571107B CN 102571107 B CN102571107 B CN 102571107B CN 201010592227 A CN201010592227 A CN 201010592227A CN 102571107 B CN102571107 B CN 102571107B
- Authority
- CN
- China
- Prior art keywords
- unit
- soft
- information
- value
- 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.)
- Active
Links
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/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/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
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
一种Turbo码的解码方法,先判断码块长度K是否大于768;如是则将输入的三路软信息分段存放在输入存储单元中,如否,则将三路信息存放在一预定的输入存储单元中,之后只通一预定的MAP单元从预定的输入存储单元中取出软信息值进行迭代解码计算,解码计算过程中产生的值存储于预定的一局部存储单元中;之后,持续判断Turbo码解码器的8个MAP单元是否处于就绪状态;如是,每一MAP单元分别从多个不同的输入存储单元取出软信息值进行迭代解码计算,解码计算过程中产生的值分别存储于多个局部存储单元中;最后判断是否达到最大迭代次数或者CRC校验通过;如是则对软信息进行硬判输出,将K个输出结果保存在输出存储器中。
Description
技术领域
本发明涉及一种解码系统及方法,尤其涉及长期演进(Long TermEvolution,LTE)系统中高速并行Turbo码的解码系统及方法。
背景技术
LTE系统中要求下行峰值速率达到100Mb/s,上行峰值速率达到50Mb/s,这对信道编码的解码速度提出了更高的要求,目前已应用到芯片设计中的Turbo解码算法,大多数是针对Rel 6的,如果LTE沿用Rel 6中的Turbo码解码方法,无法满足上述数据速率的要求。
针对LTE系统的Turbo码解码加速器的实现方案很多,已知的常见的方法如下:
一种是将Turbo码解码常用的滑动窗方法拓展为并行方法实现,Rel 6中Turbo码的解码器通常采用滑动窗方法,窗与窗是串行实现的,即上一个窗计算完毕再进行下一个窗的计算。而并行的滑动窗方法是多个滑动窗同时开始计算,每个窗预留一定长度的训练序列作为初值。在交织器设计方面,根据LTE系统的交织函数的特点,将LTE的交织函数进行分解,LTE系统的交织函数为P(i)=(f1*i+f2*i2)modK,其中K为解码器输入比特的长度,f1,f2根据块长K的值取不同的值,具体取法请参见LTE协议3GPP TS 36.212V8.5.0中的表5.1.3-3。通常采用迭代的方式求出交织地址,令交织函数中的i=i+1,得到P(i+1)=P(i)+(f1+f2+f2·2·i)modK,避免了乘方运算。
上述的滑动窗方法,窗的个数至少为4,实施时通常窗的个数为8或者16,如此导致窗的长度变短,由于每个窗均要预留一定长度(至少为16比特)的训练序列,当窗长度本身不是很长的情况下,训练序列占用的计算时间开销不容忽视,并且窗的长度和训练序列的长度变短,解码性能会受到很大影响。上述的交织地址的计算方式,虽然避免了乘方运算,但是每次计算交织地址,也会降低解码器的速度。
还有一些研究人员提出了Radix-4和Radix-8的快速处理方法,但由于这些方法关键路径增加,并且系统耗费资源也等量级增加,实际上还是通过成倍的增加计算单元和存储单元来换取成倍的速度,对解码加速器的性能并没有本质的改善。
发明内容
本发明目的在于提出一种并行的Turbo码的解码系统及方法,应用本发明提供的系统及方法,可应用很少的存储单元,实现高速解码,满足LTE系统高吞吐率的需求,并且具有很好的解码性能。
为解决上述问题,根据本发明的一种Turbo码的解码系统,该系统包括:
输入存储器,用以接收输入的经过编码的软信息;
输入控制器,与输入存储器连接,控制输入存储器的对软信息输入及将信息输出至Turbo码解码器中;
Turbo码解码器,具有多个最大后验概率算法实现单元(MAP单元),该MAP单元从输入存储器取出软信息值进行迭代解码计算;
局部存储器,用于存储Turbo码解码器计算过程中产生的值;
输出控制器,用以控制Turbo码解码器硬判输出结果;
硬判输出存储器,存储Turbo码解码器硬判输出结果。
依据上述主要特征,所述的系统是一种应用于LTE系统中的8位并行的Turbo码解码系统。
依据上述主要特征,所述的输入存储器包括8个输入存储单元。
依据上述主要特征,所述的软信息依据系统位、第一校验位1和第二校验位2划分为三路信息。
依据上述主要特征,所述的码块长度小于768时,不进行分段处理,将三路信息存放在输入存储器的第一输入存储单元中;当码块长度大于768时,将三路信息分别分成8段存放在该输入存储器的8个不同的输入存储单元中。
依据上述主要特征,所述的Turbo码解码器具有8个MAP单元,当该8个MAP处于就绪(Ready)状态后,分别从8个不同的输入存储单元取出软信息值进行迭代解码计算。
依据上述主要特征,所述的每个MAP单元包括第一软入软出单元,第一外信息计算单元,交织单元,第二软入软出单元,第二外信息计算单元,解交织单元,迭代控制单元及软入硬出硬判单元,其中所述的第一软入软出单元根据系统位,第一校验位1及外信息计算对数似然信息;所述的第一外信息计算单元根据第一软入软出单元输出的对数似然信息及输入的外信息计算新的外信息;所述的交织单元将系统位信息与新的外信息进行交织;所述的第二软入软出单元根据交织信息与第二校验位2计算对数似然信息;所述的第二外信息计算单元根据第二软入软出单元的输出计算出一个更为准确的外信息;所述的解交织单元将准确的外信息进行解交织;所述的迭代控制单元根据解交织后的外信息判定是否停止迭代;所述的软入硬出硬判单元根据迭代控制单元发出的停止迭代指令对解交织后的外信息进行硬判决输出。
依据上述主要特征,所述的局部存储器具有8个局部存储单元。
依据上述主要特征,所述的8个MAP单元与8个局部存储单元并不是一一对应的,并且同一时刻,没有两个MAP单元会访问同一块局部存储单元。
依据上述主要特征,当码块长度小于768时,不进行分段处理,只用到第一MAP单元和第一局部存储单元。
为实现上述目的,本发明提供一种利用上述的Turbo码的解码系统对Turbo码进行解码的方法,其中该方法包括如下步骤:
判断码块长度K是否大于768,即步骤一;如是,则将输入三路软信息存放在该输入存储器的输入存储单元中;
持续判断Turbo码解码器的多个MAP单元是否处于Ready状态;
当多个MAP单元均处于Ready状态后,每一MAP单元分别从多个不同的输入存储单元取出软信息值进行迭代解码计算,解码计算过程中产生的值分别存储于多个局部存储单元中;
判断是否达到最大迭代次数或者循环冗余(CRC)校验通过;如是则对软信息进行硬判输出,K个输出结果保存在输出存储器中,如否则返回步骤一;
如码块长度K小于或等于768,则码块不进行分段处理,将三路信息存放在输入存储器的一预定的输入存储单元中,之后持续判断Turbo码解码器的一预定的MAP单元是否处于Ready状态;如此预定的MAP单元处于Ready状态,则该MAP单元从预定的输入存储单元中取出软信息值进行迭代解码计算,解码计算过程中产生的值存储于预定的一局部存储单元中;判断是否达到最大迭代次数或者CRC校验通过;如是则对软信息进行硬判输出,K个输出结果保存在输出存储器中,如否则返回步骤一。
依据上述主要特征,该Turbo码解码器具有8个MAP单元,分别为第一至第八MAP单元,该Turbo码的解码系统相应的也设有8个局部存储单元,分别为第一至第八局部存储单元,并且输入存储器具有8个输入存储单元,分别为第一至第八输入存储单元,如码块长度K小于或等于768,则将三路信息存放在输入存储器的第一输入存储单元中,后续由第一MAP单元从第一输入存储单元中取出软信息值进行迭代解码计算,解码计算过程中产生的值存储于第一局部存储单元中。
依据上述主要特征,在步骤二中,将输入的软信息分为三路d1、d2、d3,其中d1、d2、d3的长度分别为K+4,将三路信息分别分成8段存放在该输入存储器的8个不同的输入存储单元中。
依据上述主要特征,在步骤五中,所述的每个MAP单元包括第一软入软出单元,第一外信息计算单元,交织单元,第二软入软出单元,第二外信息计算单元,解交织单元,迭代控制单元及软入硬出硬判单元,每个MAP单元内部的处理流程包括:
步骤一:将系统位d1(i)、校验信息d2(i)以及外信息输入到第一软入软出单元,计算对数似然信息,其中i=1,…,8,表示8个不同的输入存储单元的输入;
步骤二:第一外信息计算单元根据对数似然信息和输入的外信息计算新的外信息;
步骤三:交织单元将系统位d1(i)、新的外信息进行交织后,与校验信息d3(i)一起输入到第二软入软出单元,计算对数似然信息;
步骤四:第二外信息计算单元利用第二软入软出单元的输出计算出一个更为准确的外信息;
步骤五:解交织单元对计算出的外信息进行解交织;
步骤六:迭代控制单元先对解交织后的外信息进行CRC运算,如果CRC校验未通过,再判断是否达到最大迭代次数;
步骤七:如果CRC校验通过或达到最大迭代次数,则进行硬判决输出解码结果,如未达到最大迭代次数则返回步骤一。
依据上述主要特征,所述的第一与第二软入软出单元采用修正的最大后验概率算法(Max-Log-MAP算法)和用雅可比公式简化加法运算的修正最大后验概率算法(Max*-Log-MAP算法)。
依据上述主要特征,在软入软出单元内部采用前向分支度量α值和后向分支度量β值同时进行对推的方案;其具体做法是从单个软入软出单元处理的数据段的末尾利用反向递推公式计算每一时刻的β值,一直算到本段的第一个符号,并将各个时刻计算得到的β值存储下来。与此同时,用正向递推公式从数据段的开头开始计算本段各个时刻的α值,一直到本段的最后一个符号,将本段中个时刻的α值存储下来。当解码进行到本段的中间时刻之后的每一个时刻均可利用计算得到的α值和相应时刻的β值相乘求和得到相应的似然输出,此时每个时刻可得到两个比特的似然输出。
依据上述主要特征,所述的前向分支度量α值和后向分支度量β值的初值选取方法是:本次迭代的边界初值采用上次迭代得到的结果,同时在本次迭代中计算出下次迭代的边界初值;其具体的实现方法如下:
(1)对于第一次迭代,边界的α和β均假设为均匀分布,其中第一段的α初值和最后一段的β初值除外,这两种情况均为零状态概率最大,在此假定的边界初值条件下,每个MAP单元按软入软出单元内部的前向分支度量α值和后向分支度量β值同时进行对推的算法进行译码,同时计算出下次迭代的边界初值并存储下来;
(2)对于非首次的迭代,边界的α和β均采用上次迭代计算得到的结果,其中第一段的α初值和最后一段的β初值除外,这两种情况均为零状态概率最大,在此初值条件下,每个MAP单元按软入软出单元内部的前向分支度量α值和后向分支度量β值同时进行对推的算法进行译码,同时计算出下次迭代的边界初值并更新上次存储的值。
依据上述主要特征,该方法利用同一模块实现交织与解交织过程,首先地址生成器用于生成外信息存储器的读地址,第一软入软出单元锁存每个外信息的同时,将其读地址同时锁存,当第一软入软出单元计算出新的外信息值之后,将这个新的外信息写回其读出地址;在后半次迭代过程中,当第二软入软出单元计算出新的外信息后,就将这个外信息再次存储到最初锁存的地址,这样完成的解交织过程;并且每个码块,以及同样长度的码块只进行一次地址计算,并不是每次迭代都要进行地址计算。
与现有技术相比较,本发明具有如下优点:
(1)并行块内部采用并行处理方式,即并行块内部采用前向分支度量α和后向分支度量并行相对计算的方式,如此提高了处理速度;
(2)解交织方法中不用每次迭代生成交织地址,提高了处理速度;
(3)与通常的滑窗方法相比,不需要增加预推长度,极大降低了计算复杂度并且提高了处理速度;
(4)与通常的滑窗方法的预推方法相比较,本发明提供的采用上次迭代结果作为初值的方法,具有更高的解码性能;
(5)当码长小于768时,自动转为串行的执行方式,这样处理即满足了处理速度的要求,又使性能有所提高。
附图说明
图1为实施本发明的系统架构图。
图2为实施本发明的流程图。
图3为实施本发明的MAP单元的组成架构图。
图4为图2所示一步骤的细节流程图。
图5至图8为图2所示一步骤的细节流程图。
图9为现有技术的滑窗方法与本发明提供的方法的性能比较图。
具体实施方式
以下结合附图对实施本发明的LTE系统中高速并行Turbo码的解码系统及方法进行具体说明。
请参阅图1所示,为实施本发明的系统架构图,该解码系统包括:
输入存储器,用以接收输入的经过编码的软信息,在本实施例中该输入存储器包括8个输入存储单元,分别为第一至第八输入存储单元,该软信息包括系统位、校验位1和校验位2,根据LTE协议规定,其长度为3*K+12,其中K为码块长度,d1、d2、d3的长度分别为K+4,将三路信息分别分成8段存放在该输入存储器的8个不同的输入存储单元中,当码块长度K<768时,不进行分段处理,将三路信息存放在输入存储器的第一输入存储单元中;
输入控制器,与输入存储器连接,控制输入存储器的对软信息输入及将信息输出至Turbo码解码器中;
Turbo码解码器,具有8个MAP单元,分别为第一至第八MAP单元,当该8个MAP处于Ready状态后,分别从8个不同的输入存储单元取出软信息值进行迭代解码计算;
局部存储器,具有8个局部存储单元,用于存储MAP单元解码计算过程中产生的值,由于内交织的存在,8个MAP单元与8个局部存储单元并不是一一对应的,也就是第一MAP单元读写的局部存储单元不一定是第一局部存储单元,但是同一时刻,没有两个MAP单元会访问同一块局部存储单元,这是LTE无争用的交织器的特点决定的,当码块长度K小于768时,不进行分段处理,只用到第一MAP单元和第一局部存储单元;
输出控制器,用以控制Turbo码解码器硬判输出结果;
硬判输出存储器,存储Turbo码解码器硬判输出结果。
请参阅图2所示,为实施本发明的流程图,包括如下步骤:
步骤200:判断码块长度K是否大于768;如是,则进行步骤201,即将输入三路软信息d1、d2、d3(长度分别为K+4)分别分成8段存放在该输入存储器的8个不同的输入存储单元中;
步骤203:持续判断Turbo码解码器的8个MAP单元是否处于Ready状态;
步骤204:当8个MAP单元均处于Ready状态后,每一MAP单元分别从8个不同的输入存储单元取出软信息值进行迭代解码计算,解码计算过程中产生的值分别存储于8个局部存储单元中;
步骤206:判断是否达到最大迭代次数或者CRC校验通过;如是则进行步骤207,即将对软信息进行硬判输出,K个输出结果保存在输出存储器中,如否则返回步骤200;
如码块长度K小于或等于768,则进行步骤202,即码块不进行分段处理,将三路信息存放在输入存储器的第一输入存储单元中,之后持续判断Turbo码解码器的第一MAP单元是否处于Ready状态,即步骤208;之后进行步骤205,即只通过第一MAP单元从第一输入存储单元中取出软信息值进行迭代解码计算,解码计算过程中产生的值存储于第一局部存储单元中;之后判断是否达到最大迭代次数或者CRC校验通过;如是则进行步骤209,即将对软信息进行硬判输出,K个输出结果保存在输出存储器中,如否则返回步骤200。
请参阅图3所示,为实施本发明的MAP单元的组成架构图,该MAP单元由第一软入软出单元,第一外信息计算单元,交织单元,第二软入软出单元,第二外信息计算单元,解交织单元,迭代控制单元,软入硬出硬判单元组成,其中:
所述的第一软入软出单元根据系统位,第一校验位1及外信息计算对数似然信息;
所述的第一外信息计算单元根据第一软入软出单元输出的对数似然信息及输入的外信息计算新的外信息;
所述的交织单元将系统位信息与新的外信息进行交织;
所述的第二软入软出单元根据交织信息与第二校验位2计算对数似然信息;
所述的第二外信息计算单元根据第二软入软出单元的输出计算出一个更为准确的外信息;
所述的解交织单元将准确的外信息进行解交织;
所述的迭代控制单元根据解交织后的外信息判定是否停止迭代;
所述的软入硬出硬判单元根据迭代控制单元发出的停止迭代指令对解交织后的外信息进行硬判决输出。
请参阅图4所示,为图3中每一MAP单元进行迭代解码的细节流程图,包括如下步骤:
步骤400:将系统位d1(i)、校验信息d2(i)以及外信息输入到第一软入软出单元SISO1,计算对数似然信息,其中i=1,…,8,表示8个不同的输入存储单元的输入;
步骤401:第一外信息计算单元根据对数似然信息和输入的外信息计算新的外信息;
步骤402:交织单元将系统位d1(i)、新的外信息进行交织后,与校验信息d3(i)一起输入到第二软入软出单元SISO2,计算对数似然信息;
步骤403:第二外信息计算单元利用SISO2的输出计算出一个更为准确的外信息;
步骤404:解交织单元对计算出的外信息进行解交织;
步骤405:迭代控制单元先对解交织后的外信息进行CRC运算(LTE系统中规定的CRC),如果CRC校验未通过,再判断是否达到最大迭代次数。
步骤406:如果CRC校验通过或达到最大迭代次数,则进行硬判决输出解码结果,如未达到最大迭代次数则转到步骤400。
请参阅图5至图8所示,为图2中SISO1计算方法的流程图,SISO2与SISO1计算方法相似,不再重复叙述。该方法中采用工程应用中通常用到的修正的最大后验概率算法(Max-Log-MAP算法),Max-Log-MAP算法主要是对前向分支度量α和后向分支度量β进行计算,通过状态转移实现迭代译码,其他内容在现有技术中多有揭示,此处不再详细说明,主要说明α值和β值如何实现并行计算。
在软入软出(SISO)内部采用α值和β值同时进行对推的方案。具体做法是从单个SISO处理的数据段的末尾利用反向递推公式计算每一时刻的β值,一直算到本段的第一个符号,并将各个时刻计算得到的β值存储下来。与此同时,用正向递推公式从数据段的开头开始计算本段各个时刻的α值,一直到本段的最后一个符号,将本段中个时刻的α值存储下来。上述过程如图5所示。当解码进行到本段的中间时刻时,往后每一个时刻均可利用计算得到的α值和相应时刻的β值相乘求和得到相应的似然输出,此时每个时刻可得到两个比特的似然输出,如图7所示。
在实施中,假设码长为N,并行度为P,则相当于有P个MAP解码器同时进行解码,每个解码器需要处理的码字个数为N/P。相当于将原来的码长分为P段,每一段分别由一个解码器来解码。由于P个MAP解码器同时进行解码,故每一段码的α初值和β初值均不确定(除了第一段的α初值和最后一段的β初值),因此需要解决每一个数据段的边界初值问题。
本发明通过令本次迭代的边界初值采用上次迭代得到的结果,同时在本次迭代中计算出下次迭代的边界初值,具体的实现方法如下:
1.对于第一次迭代,边界的α和β均假设为均匀分布(第一段的α初值和最后一段的β初值除外,这两种情况均为零状态概率最大),在此假定的边界初值条件下,每个MAP单元按图5与图6所示的单个MAP单元内部算法进行解码,同时计算出下次迭代的边界初值并存储下来,如图7所示。
2.对于非首次的迭代,边界的α和β均采用上次迭代计算得到的结果(第一段的α初值和最后一段的β初值除外,这两种情况均为零状态概率最大),在此初值条件下,每个MAP单元按照图5与图6所示的单个MAP单元内部算法进行解码,同时计算出下次迭代的边界初值并更新上次存储的值,如图8所示。
完成上述的前向分支度量α和后向分支度量β计算输出似然信息就可以进行外信息的计算。
另外,本发明的交织和解交织过程可以用同一模块实现,如图3中的交织和解交织可以合并为一个地址生成器模块。首先地址生成器用于生成外信息存储器的读地址,SISO1锁存每个外信息的同时,将其读地址同时锁存,当SISO1计算出新的外信息值之后,将这个新的外信息写回其读出地址。在后半次迭代过程中,当SISO2计算出新的外信息后,就将这个外信息再次存储到最初锁存的地址,这样完成的解交织过程,并且每个码块,以及同样长度的码块只进行一次地址计算,并不是每次迭代都要进行地址计算。
在实施时,本发明用8比特实现,主要存储器构成如下表所示
名称 | 数目 | 类型 | 深度 | 比特位宽 |
系统软比特 | 8×2 | 双口 | 768 | 8 |
校验位1软比特 | 8×2 | 双口 | 768 | 8 |
校验位2软比特 | 8×2 | 双口 | 768 | 8 |
α和β | 8 | 单口 | 384 | 128 |
外信息软比特 | 8×2 | 双口 | 768 | 9 |
交织地址表 | 2 | ROM | 44387/2 | 34 |
根据LTE的标准,每秒要传输102K信息比特,如果按照最大迭代次数为9次计算,时钟频率为102*1000*1000*2*9/8=229.5MHZ,考虑到其他开销,时钟主频要求不低于240MHZ。
与现有技术相比较,本发明具有如下优点:
(1)并行块内部采用并行处理方式,即并行块内部采用前向分支度量α和后向分支度量并行相对计算的方式,如此提高了处理速度;
(2)解交织方法中不用每次迭代生成交织地址,提高了处理速度;
(3)与通常的滑窗方法相比,不需要增加预推长度,极大降低了计算复杂度并且提高了处理速度;
(4)与通常的滑窗方法的预推方法相比较,本发明提供的采用上次迭代结果作为初值的方法,具有更高的解码性能,具体仿真结果见图9所示;
(5)当码长小于768时,自动转为串行的执行方式,这样处理既满足了处理速度的要求,又使性能有所提高。
Claims (15)
1.一种Turbo码的解码系统,其特征在于,包括:
输入存储器,用以接收输入的经过编码的软信息;
输入控制器,与输入存储器连接,控制输入存储器对软信息输入及将信息输出至Turbo码解码器中;
Turbo码解码器,具有多个MAP单元,该MAP单元从输入存储器取出软信息值进行迭代解码计算;
局部存储器,用于存储Turbo码解码器计算过程中产生的值;
输出控制器,用以控制Turbo码解码器硬判输出结果;
硬判输出存储器,存储Turbo码解码器硬判输出结果;
其中,所述软信息依据系统位、第一校验位1和第二检验位2划分为三路信息;
当码块长度K小于768时,不进行分段处理,将三路信息存放在输入存储器的第一输入存储单元中;当码块长度K大于768时,将三路信息分别分成8段存放在该输入存储器的8个不同的输入存储单元中;
所述的Turbo码解码器具有8个MAP单元,当该8个MAP处于Ready状态后,分别从8个不同的输入存储单元取出软信息值进行迭代解码计算。
2.根据权利要求1所述的Turbo码的解码系统,其特征在于,所述的解码系统是一种应用于LTE系统中的8位并行的Turbo码解码系统。
3.根据权利要求1所述的Turbo码的解码系统,其特征在于,所述的输入存储器包括8个输入存储单元。
4.根据权利要求1所述的Turbo码的解码系统,其特征在于,所述的每个MAP单元包括第一软入软出单元,第一外信息计算单元,交织单元,第二软入软出单元,第二外信息计算单元,解交织单元,迭代控制单元及软入硬出硬判单元,其中,
所述的第一软入软出单元根据系统位,第一校验位1及外信息计算对数似然信息;
所述的第一外信息计算单元根据第一软入软出单元输出的对数似然信息及输入的外信息计算新的外信息;
所述的交织单元将系统位信息与新的外信息进行交织;
所述的第二软入软出单元根据交织信息与第二校验位2计算对数似然信息;
所述的第二外信息计算单元根据第二软入软出单元的输出计算出一个更为准确的外信息;
所述的解交织单元将准确的外信息进行解交织;
所述的迭代控制单元根据解交织后的外信息判定是否停止迭代;
所述的软入硬出硬判单元根据迭代控制单元发出的停止迭代指令对解交织后的外信息进行硬判决输出。
5.根据权利要求1所述的Turbo码的解码系统,其特征在于,所述的局部存储器具有8个局部存储单元。
6.根据权利要求5所述的Turbo码的解码系统,其特征在于,所述的8个MAP单元与8个局部存储单元并不是一一对应的,并且同一时刻,没有两个MAP单元会访问同一块局部存储单元。
7.根据权利要求5所述的Turbo码的解码系统,其特征在于,当码块长度小于768时,不进行分段处理,只用到第一MAP单元和第一局部存储单元。
8.一种利用权利要求1所述的Turbo码的解码系统对Turbo码进行解码的方法,其特征在于该方法包括如下步骤:
判断码块长度K是否大于768,即步骤一;如是,则将输入三路软信息存放在该输入存储器的输入存储单元中;
持续判断Turbo码解码器的多个MAP单元是否处于Ready状态;
当多个MAP单元均处于Ready状态后,每一MAP单元分别从多个不同的输入存储单元取出软信息值进行迭代解码计算,解码计算过程中产生的值分别存储于多个局部存储单元中;
判断是否达到最大迭代次数或者CRC校验通过;如是则对软信息进行硬判输出,K个输出结果保存在输出存储器中,如否则返回步骤一;
如码块长度K小于或等于768,则码块不进行分段处理,将三路信息存放在输入存储器的一预定的输入存储单元中,之后持续判断Turbo码解码器的一预定的MAP单元是否处于Ready状态;如此预定的MAP单元处于Ready状态,则该MAP单元从预定的输入存储单元中取出软信息值进行迭代解码计算,解码计算过程中产生的值存储于预定的一局部存储单元中;判断是否达到最大迭代次数或者CRC校验通过;如是则对软信息进行硬判输出,K个输出结果保存在输出存储器中,如否则返回步骤一。
9.根据权利要求8所述的方法,其特征在于,该Turbo码解码器具有8个MAP单元,分别为第一至第八MAP单元,该Turbo码的解码系统相应的也设有8个局部存储单元,分别为第一至第八局部存储单元,并且输入存储器具有8个输入存储单元,分别为第一至第八输入存储单元,如码块长度K小于或等于768,则将三路信息存放在输入存储器的第一输入存储单元中,后续由第一MAP单元从第一输入存储单元中取出软信息值进行迭代解码计算,解码计算过程中产生的值存储于第一局部存储单元中。
10.根据权利要求9所述的方法,其特征在于,在步骤二中,将输入的软信息分为三路d1、d2、d3,其中d1、d2、d3的长度分别为K+4,将三路信息分别分成8段存放在该输入存储器的8个不同的输入存储单元中。
11.根据权利要求9所述的方法,其特征在于,本发明中,所述的每个MAP单元包括第一软入软出单元,第一外信息计算单元,交织单元,第二软入软出单元,第二外信息计算单元,解交织单元,迭代控制单元及软入硬出硬判单元,每个MAP单元内部的处理流程包括:
步骤一:将系统位d1(i)、第一校验信息d2(i)以及外信息输入到第一软入软出单元,计算对数似然信息,其中i=1,…,8,表示8个不同的输入存储单元的输入;
步骤二:第一外信息计算单元根据对数似然信息和输入的外信息计算新的外信息;
步骤三:交织单元将系统位d1(i)、新的外信息进行交织后,与第二校验信息d3(i)一起输入到第二软入软出单元,计算对数似然信息;
步骤四:第二外信息计算单元利用第二软入软出单元的输出计算出一个更为准确的外信息;
步骤五:解交织单元对计算出的外信息进行解交织;
步骤六:迭代控制单元先对解交织后的外信息进行CRC运算,如果CRC校验未通过,再判断是否达到最大迭代次数;
步骤七:如果CRC校验通过或达到最大迭代次数,则进行硬判决输出解码结果,如未达到最大迭代次数则返回步骤一。
12.根据权利要求11所述的方法,其特征在于,所述的第一与第二软入软出单元采用修正的最大后验概率算法和用雅可比公式简化加法运算的修正最大后验概率算法。
13.根据权利要求12所述的方法,其特征在于,在软入软出单元内部采用前向分支度量α值和后向分支度量β值同时进行对推的方案;其具体做法是从单个软入软出单元处理的数据段的末尾利用反向递推公式计算每一时刻的β值,一直算到本段的第一个符号,并将各个时刻计算得到的β值存储下来。与此同时,用正向递推公式从数据段的开头开始计算本段各个时刻的α值,一直到本段的最后一个符号,将本段中个时刻的α值存储下来。当解码进行到本段的中间时刻之后的每一个时刻均可利用计算得到的α值和相应时刻的β值相乘求和得到相应的似然输出,此时每个时刻可得到两个比特的似然输出。
14.根据权利要求13所述的方法,其特征在于,所述的前向分支度量α值和后向分支度量β值的初值选取方法是:本次迭代的边界初值采用上次迭代得到的结果,同时在本次迭代中计算出下次迭代的边界初值;其具体的实现方法如下:
(1)对于第一次迭代,边界的α和β均假设为均匀分布,其中第一段的α初值和最后一段的β初值除外,这两种情况均为零状态概率最大,在此假定的边界初值条件下,每个MAP单元按软入软出单元内部的前向分支度量α值和后向分支度量β值同时进行对推的算法进行译码,同时计算出下次迭代的边界初值并存储下来;
(2)对于非首次的迭代,边界的α和β均采用上次迭代计算得到的结果,其中第一段的α初值和最后一段的β初值除外,这两种情况均为零状态概率最大,在此初值条件下,每个MAP单元按软入软出单元内部的前向分支度量α值和后向分支度量β值同时进行对推的算法进行译码,同时计算出下次迭代的边界初值并更新上次存储的值。
15.根据权利要求12所述的方法,其特征在于,该方法利用同一模块实现交织与解交织过程,首先地址生成器用于生成外信息存储器的读地址,第一软入软出单元锁存每个外信息的同时,将其读地址同时锁存,当第一软入软出单元计算出新的外信息值之后,将这个新的外信息写回其读出地址;在后半次迭代过程中,当第二软入软出单元计算出新的外信息后,就将这个外信息再次存储到最初锁存的地址,这样完成的解交织过程;并且每个码块,以及同样长度的码块只进行一次地址计算,并不是每次迭代都要进行地址计算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010592227.1A CN102571107B (zh) | 2010-12-15 | 2010-12-15 | LTE系统中高速并行Turbo码的解码系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010592227.1A CN102571107B (zh) | 2010-12-15 | 2010-12-15 | LTE系统中高速并行Turbo码的解码系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102571107A CN102571107A (zh) | 2012-07-11 |
CN102571107B true CN102571107B (zh) | 2014-09-17 |
Family
ID=46415684
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010592227.1A Active CN102571107B (zh) | 2010-12-15 | 2010-12-15 | LTE系统中高速并行Turbo码的解码系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102571107B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103916142A (zh) * | 2013-01-04 | 2014-07-09 | 联想(北京)有限公司 | 信道译码器和译码方法 |
CN105306076A (zh) | 2014-06-30 | 2016-02-03 | 深圳市中兴微电子技术有限公司 | 一种基于MAP算法的Turbo译码方法及装置 |
CN107453761B (zh) * | 2016-05-31 | 2021-04-06 | 展讯通信(上海)有限公司 | Turbo码译码方法及Turbo码译码器 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1323462A (zh) * | 1998-08-14 | 2001-11-21 | 夸尔柯姆股份有限公司 | 用于最大后验概率解码器的存储器体系结构 |
CN1349361A (zh) * | 2000-10-16 | 2002-05-15 | Lg电子株式会社 | 特博码的解码方法 |
CN1349357A (zh) * | 2000-10-16 | 2002-05-15 | Lg电子株式会社 | 在移动通信系统中执行特博解码的方法 |
-
2010
- 2010-12-15 CN CN201010592227.1A patent/CN102571107B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1323462A (zh) * | 1998-08-14 | 2001-11-21 | 夸尔柯姆股份有限公司 | 用于最大后验概率解码器的存储器体系结构 |
CN1349361A (zh) * | 2000-10-16 | 2002-05-15 | Lg电子株式会社 | 特博码的解码方法 |
CN1349357A (zh) * | 2000-10-16 | 2002-05-15 | Lg电子株式会社 | 在移动通信系统中执行特博解码的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102571107A (zh) | 2012-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101777924B (zh) | 一种Turbo码译码方法和装置 | |
EP1030457B1 (en) | Methods and system architectures for turbo decoding | |
CN103873073A (zh) | 一种基于并行与加窗结构的Turbo码高速译码实现方法 | |
CN100425000C (zh) | 双涡轮结构低密度奇偶校验码解码器及解码方法 | |
CN102158235B (zh) | turbo译码的方法及装置 | |
CN106788453A (zh) | 一种并行的极化码译码方法及装置 | |
CN103905067B (zh) | 多模译码器实现方法及装置 | |
CN104092470A (zh) | 一种Turbo码译码装置及方法 | |
CN115664899B (zh) | 一种基于图神经网络的信道解码方法及系统 | |
CN107689801A (zh) | Ldpc码admm迭代译码的早停止方法 | |
CN110138390A (zh) | 一种基于深度学习的极化码sscl算法译码器 | |
CN104168032A (zh) | 兼容LTE和WiMAX的4并行度、基-16高性能Turbo译码器 | |
CN104683072A (zh) | 一种删余turbo码分量编码器的参数盲识别方法 | |
CN100546207C (zh) | 一种基于DVB-RCS标准的双二元Turbo码译码方法 | |
CN102340320B (zh) | 卷积Turbo码双向并行译码方法 | |
CN112307421A (zh) | 一种基4频率抽取快速傅里叶变换处理器 | |
CN102571107B (zh) | LTE系统中高速并行Turbo码的解码系统及方法 | |
Prescher et al. | A parametrizable low-power high-throughput turbo-decoder | |
CN103152057B (zh) | 一种基于双归一化修正因子的ldpc译码器及译码方法 | |
CN103856218B (zh) | 译码处理方法及译码器 | |
CN103124181A (zh) | 一种基于余弦相似度的Turbo码译码迭代停止方法 | |
CN103220007B (zh) | 一种自适应调整子码不可靠位数的tpc迭代译码算法 | |
CN103475378B (zh) | 一种适用于光通信的高吞吐率ldpc译码器 | |
CN102594369A (zh) | 基于fpga的准循环低密度校验码译码器及译码方法 | |
CN100508405C (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 |