TD-SCDMA/3G硬核turbo译码器的制作方法

文档序号:7671879阅读:247来源:国知局
专利名称:TD-SCDMA/3G硬核turbo译码器的制作方法
技术领域
本实用新型提出一种新型、技术领先的TD-SCDMA及第三代移动通信(3G,含cdma2000、UMTS、TD-SCDMA等)的硬核turbo译码器,属移动通信技术领域。

背景技术
3GPP Turbo码纠错码在通信系统中的使用是为了提高在低信噪比信道上接收数据的可靠性,主要是通过增加冗余比特而实现的。目前Turbo码被公认为最强大的纠错码。然而,Turbo码强大的能力仅在长数据块编码中体现,而不适用于传输语音数据,因为语音用长数据块传输会引起无法承受的延迟。
发明内容 设计目的在第三代个人无线标准(3GPP和3GPP2)中,2Mbps高速分组数据很适合使用Turbo码,本实用新型提出一种用于3GPP标准的Turbo译码器,当然本实用新型的内容也能适用于3GPP2Turbo码,两种Turbo码之间主要区别是Turbo交织器和编码率;3GPP使用1/3编码率而3GPP2使用1/2和1/4编码率。
1、解码器结构3GPP标准表明使用Turbo码数据速率可以达到2.0Mbps。在这种速率下,ASIC中采用特定的硬核加速器完成解码最为有效。本实用新型提出这样的一种高效率硬核Turbo解码器。该解码器使用的技术包括诸如并行计算,训练步进窗口(SW-WT)和提前停止。
这几种技术有助于提高解码速度,最小化存储空间,降低功率开销。该解码器使用的解码算法是背景技术中描述的Max-log-MAP算法。
2、总体架构带有高效存储器的硬核Turbo解码器的架构如图1所示。此架构使用一个将Stage0和Stage1结合的SISO_DECODER(软输入-软输出-解码器),而不是在Stage0和Stage1各使用分离的SISO_DECODER。Stage0运算yks,0,ykp,0和L0(uk)产生Le0(uk)和sgn(L(uk|y)),Stage 1运算yks,1,ykp,1和L1(uk)产生Le1(uk)和sgn(L(uk|y))。L0(uk)数据从LLR_BUF中读出,Stage0输出的外赋(对数似然比)LLR,Le0(uk)被重新写回到LLR_BUF。在Stage1中,解码过程使用存储在LLR_BUF中的ykp,0和Le0(uk)进行Turbo交织计算获得系统接收的比特yks,1和后验信息的Turbo交织译文。解码Stage1的输出Le1(uk)然后被解交织并写回到LLR_BUF作为stage 0下一个解码迭代过程中(如EQ5所示)的后验信息L0(uk)。解码器假定接收符号在他们各自的组yks,0,ykp,0,yks,1,和ykp,1已经被解复用。注意到yks,1仅仅是尾部比特被发送。高吞吐量解码器设计的关键就是LSP_BUF。LSP_BUF由4个回环缓存器构成,这些回环缓存器缓存一个步进窗口长度的yks,ykp和L(uk)。这些yks,ykp和L(uk)将被送入SISO_DECODER用于解码。解码过程中,在WINDOW_ADDR_GEN将下一个窗长的数据写入其中一个LSP_BUF缓存器的同时,也将其它3个LSP_BUF缓存器中的内容送入SISO_DECODER。LSP_BUF的读写时序请参考后面内容。在图1所示的Turbo译码器中,包含了一个EARLY_STOP_CNTRL模块,该模块用于执行预提前停止评判准则,以节省计算开销。
用于实现Max-log-MAP算法的SISO_DECODER的框图,如图2所示 SISO_DECODER由以下几个部分构成前向递归计算块,ALPHA_CALC产生Ak(s),反向递归计算块,BETA_CALC产生Bk-1(s′),对数似然比计算块,LLR_CALC产生外赋LLRLe(uk)和后验LLRLL(uk|y)。SISO_DECODER的操作并不依赖于是否它是解码阶段Stage0或Stage1。在此架构中,仅Ak(s)需要缓存,ALPHA_BUF操作模式是堆栈式(后进先出)。
3、信号流程和数据时序这种解码器的设计目标有两个,最小化的存储空间需求和吞吐量,而信号流程和数据时序对达到这一设计目标起决定性的作用。
在MAP算法中,当Bk-1(s′)的反向递归计算在反向从BK+2(s′)开始到B0(s′)为止遍历接收码比特y时,Ak(s)的前向递归计算在前向从A0(s)开始到AK+2(s)为止遍历接收码比特y,因而直接实现MAP算法需要Ak(s)和Bk-1(s′)两个都要预计算和缓存,这样当A0(s′)可被LLR_CALC使用时,B1(s)也可被LLR_CALC使用。或者,换句话说,当BK+2(s)可被LLR_CALC使用时,AK+1(s′)也可被LLR_CALC使用。用于缓存Ak(s)或Bk-1(s′)的整个块长度的存储空间大小是(K+3)·8个字,这里K=5114时提供3GPP Turbo码的最大长度。这种直接的方法由于引入了巨大的延时而影响吞吐量。
一个减少矩阵状态的缓存空间大小需求和减少延时的解决方案,就是采用训练步进窗口(SW-WT),图3表示SISO_DECODER的数据流程图,正如前面内容所阐述的,当ALPHA_CALC仅使用一个前向递归计算器时,BETA_CALC块使用两个递归计算器(BETA_CALC0和BETA_CALC1)遍历整个解码格。
在付出一定计算开销的代价的前提下,SW-WT方法在一个时间段用较小的数据窗口操作来减少对状态矩阵缓存空间需求,以及减少解码延时,并最大化吞吐量。用这种方法,Bk-1(s′)的计算量比采用直接方法计算大约多两倍。SW-WT的缓存大小是8w,这里w是窗口长度,8是解码格的8个状态。在SW-WT方法中,两个反向状态矩阵计算块以下列顺序输出Bk-1(s′)Bw-1(s′),Bw-2(s′),...,B1(s′),B0(s′),B2w-1(s′),...,Bw(s′),B3w-1(s′),...,BK+3(s′),...,B(Nw-1)w(s′)EQ25式中,Nw是步进窗的数目,由下式给出。


EQ 26 反向矩阵是一个递归计算,基于之前计算过的状态,这些状态从BK+2(s′)开始并且结束状态是确定的。然而,正如所示,要获得可靠的递归状态矩阵,不必从非常后面的状态开始做反向状态计算。在SW-WT方法中,在输出Bk-1(s′)之前,反向状态矩阵计算块只对少量几个阶段(时间步长)的输入数据做遍历。输出Bk-1(s′)之前的递归计算称为“训练”。用于确定准确的状态矩阵所需要的训练阶段数目由实验确定,且设计成与步进窗口长度w的取值相同。
建议训练阶段数是Turbo编码的约束长度的5倍,这样如果约束长度是4,阶段数就是20。训练窗的递归过程,是采用训练窗开始于所有状态的概率相等的假设条件来初始化。
反向矩阵运算器为计算Bnww-1(s′)到B(nw-1)w(s′),这里(0≤nw≤Nw-1),它必须先计算BT(nw+1)w-1(s′)到BTnww(s′),这里BTk(s′)中的T指的是训练反向矩阵,并且它不是十分可靠而被丢弃。通过使用两个反向状态矩阵运算器,使得BETA_CALC块输出Bk-1(s′)的速率与ALPHA_CALC块输出Ak(s)的速率相同。使用三个递归运算器的SW-WT方法时序图如3所示 在这个设计中,正如图3中行A中箭头方向指示,Ak(s)的计算开始于下标k=nww结束于下标k=(nw+1)w-1,然后将结果保存在ALPHA_BUF中。当Ak(s)计算出后,反向状态运算器中的一个运算器处于训练阶段,如图3中T所示。一旦完成训练阶段,此时ALPHA_BUFF已经满了,反向状态运算器将计算Bk-1(s′),开始于下标k=(nw+1)w-1并将结束于下标k=nww,然后将它输出到LLR_CALC.。
当反向状态运算器输出Bk-1(s′)并将它直接送到LLR_CALC时,LLR_CALC正以相反的顺序读取ALPHA_BUFF。通过这种方法,LLR_CALC按照反向状态运算器输出Bk-1(s′)的相同顺序计算外赋LLR。同样重要的是,Bk-1(s′)不需要状态矩阵缓存器。图3中表明在任一个步进窗口期间,其中一个LSP_BUF处于写操作,同时其他三个处于读操作。通过使用回环缓存方案,LSP_BUF的4个缓存器中任一个每写一次,就会被读三次。这样,就减轻了TURBO_INT_ADDR_GEN的负荷,并将输入数据的读出率提高了3倍。
图3也显示出LSP_BUF的读写调度过程。
LSP write行中的记号——Wnw:LSPm——表示将窗数据nw,写入LSP_BUFm。
在行A,B0,和B1中的记号——LSPm:Wnw——表示从LSP_BUFm读出窗数据nw。
行A中的左箭头表示ALPHA_CALC正在针对数据窗nw计算前向递归。然后将结果保存在ALPHA_BUF中,以供下一个数据窗计算使用。
B0,B1和Le(uk)行中的右箭头表示BETA_CALC0,BETA_CALC1和LLR_CALC正在针对数据窗nw计算反向递归和对数似然比。
在B0,B1行中的T表示BETA_CALC 0/1处于训练模式。对于稳定状态的解码操作,一个BETA_CALC(0/1)处于训练模式中,而其它的BETA_CALC(0/1)处于输出Bk-1(s′)的过程中。由于Bk-1(s′)只是每一时刻LLR_CALC计算所使用的临时变量,所以BETA_CALC不必保存Bk-1(s′)。
LLR_CALC按与Bk-1(s′)相同的顺序输出Le(uk)和L(uk|y)。
4、并行计算前向和反向递归计算,及LLR计算均可采用并行计算的优势,在前向递归计算中,ALPHA_CALC在一个时钟周期内使用EQ21和EQ23计算所有的8个状态如图4中所示, 图4中Γkm(s′,s)的上标m是一个对应于比特对xksxkp的十进制值。前向递归计算使用由16×3个2-输入(2-input)加法操作和8个比较-选择(compare-select)操作构成的Max-log-MAP算法。
反向递归计算和前向递归计算类似,只不过在反向递归计算中,状态是向反方向跳转,并且使用EQ22和EQ23计算。反向矩阵计算同样使用的是由16×3个2-输入加法操作和8个比较-选择操作构成的使用算法Max-log-MAP。LLR_CALC使用EQ24和EQ23计算外赋LLR和后验LLR。作为3GPP解码器,对于每个比特,其LLR的计算都是由16×4个2-输入加法操作和8个比较-选择操作来算出对数似然比的分子和分母。对于数据比特uk,其外赋和后验LLR的最终计算由2个2-输入加法操作和2个比特移位(bit-shift)操作构成。其中一个2-输入加法操作和1个比特移位(bit-shift)操作被用于外赋LLR的重新归一化操作。
前向和反向状态矩阵Ak(s)和Bk-1(s′)计算是并行的,并且各自的结果是互不相关的,然而LLR是依赖于前向和反向递归运算器二者输出的结果。
提前停止方案Turbo解码使用迭代的解码算法,每次迭代过程将提供更可靠的uk估计值。解码器一般使用固定的迭代次数。迭代的次数通常被设置成足够高,以能够在比较低的SNR时完成对数据块的解码。但解码器却很少需要用到最大的解码迭代次数以及不必要的功率消耗来达到收敛。在某些情况下,过多的解码迭代次数反而会引起块解码错误,一个替代和优选的减少功率开销Turbo解码方案就是当输出收敛时就停止解码。
解码器可以利用(u0,...uK-1)获得BLER(块误码率)统计值,迭代次数统计,并被用作收敛指示的判别准则。然而这在实际系统中是不可能的。实用的提前停止方案包括迭代过程的交叉熵(cross entropy)和最小LLR门限。
本实用新型与背景技术相比,一是提高解码速度,二是实现了最小化存储空间,三是降低功率消耗。

图1显示的是带有高效存储器的硬件Turbo译码器架构框图。
图2显示的是Max-log-MAP SISO译码器框图(实现Max-log-MAP算法的SISO_DECODER的框图)。
图3显示的是SW_WT方法的时序图(使用三个递归运算器(ALPHA_CALC,BETA_CALC0,和BETA_CALC1)的SW-WT方法的时间过程图)。
图4显示的是前向递归状态转换图。
具体实施方式
1、总体架构带有高效存储器的硬核Turbo解码器的架构如图1所示。此架构使用一个将Stage0和Stage1结合的SISO_DECODER(软输入-软输出-解码器),而不是在Stage0和Stage1各使用分离的SISO_DECODER。Stage0运算yks,0,ykp,0和L0(uk)产生Le0(uk)和sgn(L(uk|y)),Stage 1运算yks,1,ykp,1和L1(uk)产生Le1(uk)和sgn(L(uk|y))。L0(uk)数据从LLR_BUF中读出,Stage0输出的外赋(对数似然比)LLR,Le0(uk)被重新写回到LLR_BUF。在Stage1中,解码过程使用存储在LLR_BUF中的ykp,0和Le0(uk)进行Turbo交织计算获得系统接收的比特yks,1和后验信息的Turbo交织译文。解码Stage1的输出Le1(uk)然后被解交织并写回到LLR_BUF作为stage 0下一个解码迭代过程中(如EQ 5所示)的后验信息L0(uk)。解码器假定接收符号在他们各自的组yks,0,ykp,0,yks,1,和ykp,1已经被解复用。注意到yks,1仅仅是尾部比特被发送。高吞吐量解码器设计的关键就是LSP_BUF。LSP_BUF由4个回环缓存器构成,这些回环缓存器缓存一个步进窗口长度的yks,ypk和L(uk)。这些yks,ykp和L(uk)将被送入SISO_DECODER用于解码。解码过程中,在WINDOW_ADDR_GEN将下一个窗长的数据写入其中一个LSP_BUF缓存器的同时,也将其它3个LSP_BUF缓存器中的内容送入SISO_DECODER。LSP_BUF的读写时序请参考后面内容。
在图1所示的Turbo编码器中,包含了一个EARLY_STOP_CNTRL模块,该模块用于执行预提前停止评判准则,以节省计算开销。
用于实现Max-log-MAP算法的SISO_DECODER的框图,如图2所示。
SISO_DECODER由以下几个部分构成前向递归计算块,ALPHA_CALC产生Ak(s),反向递归计算块,BETA_CALC产生Bk-1(s′),对数似然比计算块,LLR_CALC产生外赋LLRLe(uk)和后验LLRL(uk|y)。SISO_DECODER的操作并不依赖于是否它是解码阶段Stage0或Stage1。在此架构中,仅Ak(s)需要缓存,ALPHA_BUF操作模式是堆栈式(后进先出)。
2、信号流程和数据时序这种解码器的设计目标有两个,最小化的存储空间需求和吞吐量,而信号流程和数据时序对达到这一设计目标起决定性的作用。
在MAP算法中,当Bk-1(s′)的反向递归计算在反向从BK+2(s′)开始到B0(s′)为止遍历接收码比特y时,Ak(s)的前向递归计算在前向从A0(s)开始到AK+2(s)为止遍历接收码比特y,因而直接实现MAP算法需要Ak(s)和Bk-1(s′)两个都要预计算和缓存,这样当A0(s′)可被LLR_CALC使用时,B1(s)也可被LLR_CALC使用。或者,换句话说,当BK+2(s)可被LLR_CALC使用时,AK+1(s′)也可被LLR_CALC使用。用于缓存Ak(s)或Bk-1(s′)的整个块长度的存储空间大小是(K+3)·8个字,这里K=5114时提供3GPP Turbo码的最大长度。这种直接的方法由于引入了巨大的延时而影响吞吐量。
一个减少矩阵状态的缓存空间大小需求和减少延时的解决方案,就是采用训练步进窗口(SW-WT),图3表示SISO_DECODER的数据流程图,正如前面内容所阐述的,当ALPHA_CALC仅使用一个前向递归计算器时,BETA_CALC块使用两个递归计算器(BETA_CALC0和BETA_CALC1)遍历整个解码格。
在付出一定计算开销的代价的前提下,SW-WT方法在一个时间段用较小的数据窗口操作来减少对状态矩阵缓存空间需求,以及减少解码延时,并最大化吞吐量。用这种方法,Bk-1(s′)的计算量比采用直接方法计算大约多两倍。SW-WT的缓存大小是8w,这里w是窗口长度,8是解码格的8个状态。在SW-WT方法中,两个反向状态矩阵计算块以下列顺序输出Bk-1(s′) EQ 25 Bw-1(s′),Bw-2(s′),...,B1(s′),B0(s′),B2w-1(s′),...,Bw(s′),B3w-1(s′),...,BK+3(s′),...,B(Nw-1)w(s′)式中,Nw是步进窗的数目,由下式给出。


EQ 26 反向矩阵是一个递归计算,基于之前计算过的状态,这些状态从BK+2(s′)开始并且结束状态是确定的。然而,正如所示,要获得可靠的递归状态矩阵,不必从非常后面的状态开始做反向状态计算。在SW-WT方法中,在输出Bk-1(s′)之前,反向状态矩阵计算块只对少量几个阶段(时间步长)的输入数据做遍历。输出Bk-1(s′)之前的递归计算称为“训练”。用于确定准确的状态矩阵所需要的训练阶段数目由实验确定,且设计成与步进窗口长度w的取值相同。
建议训练阶段数是Turbo编码的约束长度的5倍,这样如果约束长度是4,阶段数就是20。训练窗的递归过程,是采用训练窗开始于所有状态的概率相等的假设条件来初始化。
反向矩阵运算器为计算Bnww-1(s′)到B(nw-1)w(s′),这里(0≤nw≤Nw-1),它必须先计算BT(nw+1)w-1(s′)到BTnww(s′),这里BTk(s′)中的T指的是训练反向矩阵,并且它不是十分可靠而被丢弃。通过使用两个反向状态矩阵运算器,使得BETA_CALC块输出Bk-1(s′)的速率与ALPHA_CALC块输出Ak(s)的速率相同。使用三个递归运算器的SW-WT方法时序图如图3所示 在这个设计中,正如图3中行A中箭头方向指示,Ak(s)的计算开始于下标k=nww结束于下标k=(nw+1)w-1,然后将结果保存在ALPHA_BUF中。当Ak(s)计算出后,反向状态运算器中的一个运算器处于训练阶段,如图3中T所示。一旦完成训练阶段,此时ALPHA_BUFF已经满了,反向状态运算器将计算Bk-1(s′),开始于下标k=(nw+1)w-1并将结束于下标k=nww,然后将它输出到LLR_CALC.。
当反向状态运算器输出Bk-1(s′)并将它直接送到LLR_CALC时,LLR_CALC正以相反的顺序读取ALPHA_BUFF。通过这种方法,LLR_CALC按照反向状态运算器输出Bk-1(s′)的相同顺序计算外赋LLR。同样重要的是,Bk-1(s′)不需要状态矩阵缓存器。图3中表明在任一个步进窗口期间,其中一个LSP_BUF处于写操作,同时其他三个处于读操作。通过使用回环缓存方案,LSP_BUF的4个缓存器中任一个每写一次,就会被读三次。这样,就减轻了TURBO_INT_ADDR_GEN的负荷,并将输入数据的读出率提高了3倍。
图3也显示出LSP_BUF的读写调度过程。
LSP write行中的记号——Wnw:LSPm——表示将窗数据nw,写入LSP_BUFm。
在行A,B0,和B1中的记号——LSPm:Wnw——表示从LSP_BUFm读出窗数据nw。
行A中的左箭头表示ALPHA_CALC正在针对数据窗nw计算前向递归。然后将结果保存在ALPHA_BUF中,以供下一个数据窗计算使用。
B0,B1和Le(uk)行中的右箭头表示BETA_CALC0,BETA_CALC1和LLR_CALC正在针对数据窗nw计算反向递归和对数似然比。
在B0,B1行中的T表示BETA_CALC 0/1处于训练模式。对于稳定状态的解码操作,一个BETA_CALC(0/1)处于训练模式中,而其它的BETA_CALC(0/1)处于输出Bk-1(s′)的过程中。由于Bk-1(s′)只是每一时刻LLR_CALC计算所使用的临时变量,所以BETA_CALC不必保存Bk-1(s′)。
LLR_CALC按与Bk-1(s′)相同的顺序输出Le(uk)和L(uk|y)。
3、并行计算前向和反向递归计算,及LLR计算均可采用并行计算的优势,在前向递归计算中,ALPHA_CALC在一个时钟周期内使用EQ21和EQ23计算所有的8个状态如图4中所示, 图4中Гkm(s′,s)的上标m是一个对应于比特对xksxkp的十进制值。前向递归计算使用由16×3个2-输入(2-input)加法操作和8个比较-选择(compare-select)操作构成的Max-log-MAP算法。
反向递归计算和前向递归计算类似,只不过在反向递归计算中,状态是向反方向跳转,并且使用EQ22和EQ23计算。反向矩阵计算同样使用的是由16×3个2-输入加法操作和8个比较-选择操作构成的使用算法Max-log-MAP。LLR_CALC使用EQ24和EQ23计算外赋LLR和后验LLR。作为3GPP解码器,对于每个比特,其LLR的计算都是由16×4个2-输入加法操作和8个比较-选择操作来算出对数似然比的分子和分母。对于数据比特uk,其外赋和后验LLR的最终计算由2个2-输入加法操作和2个比特移位(bit-shift)操作构成。其中一个2-输入加法操作和1个比特移位(bit-shift)操作被用于外赋LLR的重新归一化操作。
前向和反向状态矩阵Ak(s)和Bk-1(s′)计算是并行的,并且各自的结果是互不相关的,然而LLR是依赖于前向和反向递归运算器二者输出的结果。
4、提前停止方案Turbo解码使用迭代的解码算法,每次迭代过程将提供更可靠的uk估计值。解码器一般使用固定的迭代次数。迭代的次数通常被设置成足够高,以能够在比较低的SNR时完成对数据块的解码。但解码器却很少需要用到最大的解码迭代次数以及不必要的功率消耗来达到收敛。在某些情况下,过多的解码迭代次数反而会引起块解码错误,一个替代和优选的减少功率开销Turbo解码方案就是当输出收敛时就停止解码。
解码器可以利用(u0,...uK-1)获得BLER(块误码率)统计值,迭代次数统计,并被用作收敛指示的判别准则。然而这在实际系统中是不可能的。实用的提前停止方案包括迭代过程的交叉熵(Gross entropy)和最小LLR门限。
实施例1参照附图1~4。用于TD-SCDMA/3G硬核turbo译码器,包括turbo解码控制器5,地址生成器1的信号输出端一路接LLR缓存器3的信号输入端、一路接LSP缓存器4的信号输入端,LLR缓存器3的信号输出端接LSP缓存器4的信号输入端,LSP缓存器4的信号输出端接软输入输出解码器7的信号输入端,软输入输出解码器7的信号输出端一路接LLR缓存器3的信号输入端、一路接解码输出缓存器8的信号输入端、一路接提前停止控制器9的信号输入端、一路接LSP缓存器4的信号输入端,解交织输出缓存器2的信号输出端接LSP缓存器4的信号输入端,地址生成器10的信号输出端一路接LLR缓存器3的信号输入端、一路接解码输出缓存器8的信号输入端、一路接提前停止控制器9的信号输入端。地址生成器1由Turbo交织地址生成器和训练窗地址生成器构成,Turbo交织地址生成器的信号输出端接LLR缓存器3的信号输入端,训练窗地址生成器的信号输出端接LSP缓存器4的信号输入端。地址生成器10由LLR-BUF地址生成器和Turbo解交织地址生成器构成。
实施例2参照附图2。用于TD-SCDMA/3G硬核turbo译码器,前向递归计算块12的信号输出端一路接对数似然计算块16的信号输入端、一路接前向后验概率矩阵缓存器11的信号输入端,前向后验概率矩阵缓存器11的信号输出端接前向递归计算块12的信号输入端,反向递归计算块13和14的信号输出端分别接BG-MUX模块15的信号输入端,BG-MUX模块15的信号输出端接对数似然计算块16的信号输入端。
需要理解到的是上述实施例虽然对本实用新型作了比较详细的说明,但是这些说明,只是对本实用新型的简单说明,而不是对本实用新型的限制,任何不超出本实用新型实质精神内的发明创造,均落入本实用新型的保护范围内。
权利要求1.一种用于TD-SCDMA/3G硬核turbo译码器,包括turbo解码控制器(5),其特征是地址生成器(1)的信号输出端一路接LLR缓存器(3)的信号输入端、一路接LSP缓存器(4)的信号输入端,LLR缓存器(3)的信号输出端接LSP缓存器(4)的信号输入端,LSP缓存器(4)的信号输出端接软输入输出解码器(7)的信号输入端,软输入输出解码器(7)的信号输出端一路接LLR缓存器(3)的信号输入端、一路接解码输出缓存器(8)的信号输入端、一路接提前停止控制器(9)的信号输入端、一路接LSP缓存器(4)的信号输入端,解交织输出缓存器(2)的信号输出端接LSP缓存器(4)的信号输入端,地址生成器(10)的信号输出端一路接LLR缓存器(3)的信号输入端、一路接解码输出缓存器(8)的信号输入端、一路接提前停止控制器(9)的信号输入端。
2.根据权利要求1所述的用于TD-SCDMA/3G硬核turbo译码器,其特征是地址生成器(1)由Turbo交织地址生成器和训练窗地址生成器构成,Turbo交织地址生成器的信号输出端接LLR缓存器(3)的信号输入端,训练窗地址生成器的信号输出端接LSP缓存器(4)的信号输入端。
3.根据权利要求1所述的用于TD-SCDMA/3G硬核turbo译码器,其特征是地址生成器(10)由LLR-BUF地址生成器和Turbo解交织地址生成器构成。
4.一种用于TD-SCDMA/3G硬核turbo译码器,特特征是前向递归计算块(12)的信号输出端一路接对数似然计算块(16)的信号输入端、一路接前向后验概率矩阵缓存器(11)的信号输入端,前向后验概率矩阵缓存器(11)的信号输出端接前向递归计算块(12)的信号输入端,反向递归计算块(13,14)的信号输出端分别接BG-MUX模块(15)的信号输入端,BG-MUX模块(15)的信号输出端接对数似然比计算块(16)的信号输入端。
专利摘要本实用新型涉及一种用于TD-SCDMA/3G硬核turbo译码器,包括turbo解码控制器,地址生成器的信号输出端一路接LLR缓存器的信号输入端、一路接LSP缓存器的信号输入端,LLR缓存器的信号输出端接LSP缓存器的信号输入端,LSP缓存器的信号输出端接软输入输出解码器的信号输入端,软输入输出解码器的信号输出端一路接LLR缓存器的信号输入端、一路接解码输出缓存器的信号输入端、一路接提前停止控制器的信号输入端、一路接LSP缓存器的信号输入端,解交织输出缓存器的信号输出端接LSP缓存器的信号输入端,地址生成器的信号输出端一路接LLR缓存器的信号输入端、一路接解码输出缓存器的信号输入端、一路接提前停止控制器的信号输入端。地址生成器由Turbo交织地址生成器和训练窗地址生成器构成,Turbo交织地址生成器的信号输出端接LLR缓存器的信号输入端,训练窗地址生成器的信号输出端接LSP缓存器的信号输入端。地址生成器由LLR-BUF地址生成器和Turbo解交织地址生成器构成。
文档编号H04L1/00GK201018490SQ200720105308
公开日2008年2月6日 申请日期2007年1月4日 优先权日2007年1月4日
发明者盛 殷, 许晓斌 申请人:浙江华立通信集团有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1