一种Turbo译码器及其译码方法

文档序号:7705881阅读:298来源:国知局
专利名称:一种Turbo译码器及其译码方法
技术领域
本发明涉及通信领域,尤其涉及一种Turbo译码器及其译码方法。
背景技术
Turbo码自1993年由C.Berrou等人提出之后,通信学界掀起了研究Turbo 码的高潮,Turbo码巧妙地将两个简单分量码通过伪随^L交织器并行级联来构造 具有伪随机特性的长码,并通过在两个SISO ( Soft In Soft Out软入软出模块) 译码器之间进行多次迭代实现了伪随机译码。
具体为在将待译码数据分发到输入緩存后,启动Turbo内部的交织器,交 织器生成交织表后,自动启动Turbo译码器。这样数据分发,交织表生成和译码 串行执行。
在SISO内部的实现都是采用滑窗加alpha训练模块或beta训练模块实现的。 SISO内部可以实现每窗的alpha训练模块和beta训练模块,也可以只实现每窗 的alpha训练模块或beta训练模块,训练长度大小的选择会影响Turbo译码器的 译码性能。
在Turbo译码器实现上述译码的过程中,发明人发现现有技术中至少存在如 下问题
译码数据的输入,交织器的计算占用了大量的时间,导致Turbo译码器性能 和吞吐量较低。

发明内容
本发明的实施例提供一种Turbo译码器及其译码方法,能够提高Turbo译码 器的性能和吞吐量。
为达到上述目的,本发明的实施例采用如下技术方案 一种Turbo译码器,包括 数据兵乓緩存单元,分别用于緩存待i奪码数据; 交织表乒乓緩存单元,用于緩存交织表;输入控制单元,用于当数据乒緩存单元空闲且数据乓緩存单元占用时,向
数据乒緩存单元输入待译码数据,并向交织单元告知待译码数据长度;或者当数据乓緩存单元空闲且数据乒緩存单元占用时,向数据乓緩存单元输入待译码数据,并向交织单元告知待译码数据长度;
交织单元,用于接收来自输入控制单元告知的数据兵緩存单元的待译码数据长度,生成交织表并存入交织表乒緩存单元;或者接收来自输入控制单元告知的数据乓緩存单元的待译码数据长度,生成交织表并存入交织表乓缓存单元;
软入软出SISO单元,用于根据交织表乒緩存单元存储的交织表对数据乒緩
存单元存储的待译码数据进行迭代计算,获得译码结果;或者根据交织表乓緩
存单元存储的交织表对数据乓緩存单元存储的待译码数据进行迭代计算,获得译码结果。
一种Turbo译码器译码方法,包括设置数据兵乓緩存单元和交织表兵乓緩存单元;
当数据乒緩存单元空闲且数据乓緩存单元占用时,向数据兵缓存单元输入待译码数据,根据待译码数据长度,生成交织表并存入交织表兵緩存单元;或者当数据乓緩存单元空闲且数据乒緩存单元占用时,向数据乓緩存单元输入待译码数据,根据待译码数据长度,生成交织表并存入交织表乓緩存单元;
当数据乒緩存单元存在待译码数据且交织表兵緩存单元存储有相应的交织表时,根据交织表乒緩存单元存储的交织表对数据兵緩存单元存储的待译码数据进行迭代计算,获得译码结果;或者当数据乓緩存单元存在待译码数据且交织表乓緩存单元存储有相应的交织表时,根据交织表乓緩存单元存储的交织表对数据乓緩存单元存储的待译码数据进行迭代计算,获得译码结果。
本发明实施例提供的Turbo译码器及译码方法,采用了数据兵乓緩存单元和交织表乒乓緩存单元,当数据乒緩存单元空闲且数据乓緩存单元占用时,向数据乒緩存单元输入数据,并向交织表乒緩存单元告知数据长度;或者当数据乓緩存单元空闲且数据乒緩存单元占用时,向数据乓緩存单元输入数据,并向交织表乓緩存单元告知数据长度;因此,能够乒乓緩存数据,并启动交织表乒乓緩存单元成交织表。这种数据的输入和分发,节省了时间,提高了并行度,从而提高了效率和吞吐量。


图1为现有技术中Turbo编码器的结构示意图2为现有技术中Turbo译码器的结构示意图3为本发明实施例提供的Turbo译码器的结构框图一;
图4为本发明实施例提供的Turbo译码器的结构框图二;
图5为本发明实施例提供的Turbo译码器的SISO单元内部算法实现的示意
图6为本发明实施例提供的Turbo译码器中三个存储^t块的实现电路示意
图7为本发明实施例提供的Turbo译码器的结构框图三;
图8为本发明实施例提供的Turbo译码器译码方法的流程框图一;
图9为本发明实施例提供的Turbo译码器译码方法的流程框图二。
具体实施例方式
本发明的实施例提供一种Turbo译码器及其译码方法,能够提高Turbo译码器的性能和吞吐量。
下面结合附图对本发明实施例进行详细描述。
Turbo译码器实现的是Turbo编码的逆过程,如图1所示,是协议中的Turbo编码器框图。
其中,Turbo编码器的输出为
,, A"2 , ,>, A/:+i ,, A/T+2 ,, AA>3 ,々+3
本发明实现的Turbo译码器采用的是基4算法,因此在需要将译码器的数据分发到输入緩存,例如有四个緩存A、 B、 Y1W1、 Y2W2緩存,供Turbo译码器读耳又,如下
A緩存X1,X2,,Hl,Xi+2,A+3,"","+2,"+3B緩存X"X2',X/t,XwX"2,;Cw,A:"l,Xfc+2,"+3Y1W1緩存Zl,Z2,,Z*,Z"l,Z*+2,Z4+3Y2W2緩存. Zl,Z2,......,Z4,"+l,Z/t+2,ZA+3
译码器的内部实现框图如图2所示,从A、 B、 Y1W1、 Y2W2緩存输入数据后,将数据的长度告知交织器,生成交织表,软入软出SISO模块根据该交织表进行迭代译码。
本发明的实施例提供的Turbo译码器,如图3所示,包括
数据乒乓緩存单元301,分别用于緩存待译码数据;
交织表乒乓緩存单元302,用于緩存交织表;
输入控制单元303,用于当数据乒緩存单元空闲且数据乓緩存单元占用时,向数据乒緩存单元输入待译码数据,并向交织单元304告知待译码数据长度;或者当数据乓緩存单元空闲,且数据乒緩存单元占用时,向数据乓緩存单元输入待译码数据,并向交织单元304告知待译码数据长度;
交织单元304,用于接收来自输入控制单元303告知的数据乒緩存单元的待译码数据长度,生成交织表并存入交织表兵緩存单元;或者接收来自输入控制单元303告知的数据乓緩存单元的待译码数据长度,生成交织表并存入交织表乓缓存单元;
软入软出SISO单元305,用于根据交织表乒緩存单元存储的交织表对数据乒緩存单元存储的待译码数据进行迭代计算,获得译码结果;或者根据交织表乓緩存单元存储的交织表对数据乓緩存单元存储的待译码数据进行迭代计算,获得译码结果。
其中,数据乒乓緩存单元301在实际中可以具体为A、 B、 Y1W1、 Y2W2緩存。
本发明实施例提供的Turbo译码器,采用了数据兵乓緩存单元和交织表兵兵緩存单元,当数据乒緩存单元空闲且数据乓緩存单元占用时,向数据兵緩存单元输入数据,并向交织表乒緩存单元告知数据长度;或者当数据乓緩存单元空闲且数据乒緩存单元占用时,向数据乓緩存单元输入数据,并向交织表乓緩存单元告知数据长度;因此,能够乒乓緩存数据,并启动交织表兵乓緩存单元成交织表。这种数据的输入和分发,节省了时间,提高了并行度,从而提高了效率和吞吐量。
进一步地,在本发明另一实施例中,如图4所示,数据乒乓i爰存单元301 具体包括
数据兵緩存模块301A,数据乓緩存模块301B; 再有,交织表乒乓緩存单元302,也具体包括 交织表乒緩存模块302A,交织表乓緩存模块302B。
本发明又一实施例提供的Turbo译码器,如图5所示,在SISO单元303中 进行的迭代译码是采用滑窗算法加gama计算模块、beta训练模块、alpha计算 模块、beta计算模块实现的,所谓滑窗算法也是通过限制各个时间窗口内所能接 收的最大信元数对业务量进行控制的。另外,alpha计算模块、beta训练模块、 beta计算模块、gama计算模块和输入数据的计算关系如下
gama计算模块需要用到A, B, Yl Wl, Y2W2緩存;
alpha计算模块和beta训练模块,beta计算模块都要用到gama计算模块所 的结果;
每一窗的alpha计算模块顺序与gama计算模块,beta计算模块、beta训练 模块的计算顺序相反;
N窗的输入数据需要在N+2窗的时间内完成。
其SISO内部实现如图5所示,gama计算模块从第N+l计算窗开始, 一直 计算到第0计算窗,计算每一窗得到每一窗的计算结果,beta训练模块要使用 gama计算模块计算当前窗的结果,alpha计算模块要使用gama计算模块计算下 一窗所得的计算机结果,beta计算模块要使用gama计算模块计算下两窗的计算 结果。
因此,如图7所示,本发明提供的SISO单元305包括
Gama计算模块305A,用于从数据乒乓緩存单元301中获取数据,计算得
到计算结果,将计算结果存入存储模块305 B,并向Bata训练模块305C发送该
计算结果;
存储模块305B,用于存储Gama计算模块305A的计算结果;
Bata训练模块305C,用于从Gama计算模块或者从存储模块中获取Gama计算模块的计算结果,进行计算;
Alpha计算模块305D,用于从存储模块305B中获取Gama计算模块305A
的计算结果,进行计算;
Bata计算模块305E,用于从存储模块305B中获取Gama计算模块305A的 计算结果,进行计算。
其中,存储模块305B为三个,第一存储模块305B1存储当前窗的Gama计 算模块的计算结果;第二存储模块305B2存储下一窗的Gama计算模块的计算 结果;第三存储模块305B3存储下两窗的Gama计算模块的计算结果,Gama计 算模块每计算一 窗就向 一 个存储模块中存入数据,当三个存储模块都存入一遍 之后,再次从第一存储模块305B1开始,循环存储;其实现电路如图6所示;
具体的,Bata训练模块305C可以从Gama计算模块305A直接获取当前窗 的计算结果,也可以从第一存储模块305B1中获取当前窗的计算结果,进行计
算;
Alpha计算模块305D从第二存储模块305B2获取下一窗的Gama计算模块 305A的计算结果,进行计算;
Bata计算模块305E从第三存储模块305B3获取下两窗的Gama计算模块 305A的计算结果,进行计算。
进一步地,Bata训练模块305C、 Alpha计算模块305D和Bata计算模块305E 并行处理。
本实施例中的三个存储模块,在实际中可以用RAM等存储器实现。 本发明实施例提供的Turbo译码器,在SISO内部配置了三个存储模块,用 于分别存储Gama计算模块当前窗、下一窗和下两窗的计算结果,因此,Bata 训练模块、Alpha计算模块和Bata计算模块能够从三个存储模块中获取到所需 的Gama计算模块的计算结果,从而能够实现并行处理,节省计算了时间,提高 了效率和吞吐量。
本发明实施例提供的Turbo译码器译码方法,包括设置数据乒乓缓存单元 和交织表乒乓緩存单元;如图8所示,该方法的步骤包括
S801、当数据乒緩存单元空闲且数据乓緩存单元占用时,向数据兵緩存单元输入待译码数据,根据待译码数据长度,生成交织表并存入交织表乒緩存单
元;或者当数据乓緩存单元空闲,且数据乒緩存单元占用时,向数据乓緩存单 元输入待译码数据,根据待译码数据长度,生成交织表并存入交织表乓緩存单
元;
S802、当数据乒緩存单元存在待译码数据且交织表乒緩存单元存储有相应
的交织表时,根据交织表乒緩存单元存储的交织表对数据乒緩存单元存储的待
译码数据进行迭代计算,获得译码结果;或者当数据乓緩存单元存在待译码数
据且交织表乓緩存单元存储有相应的交织表时,根据交织表乓缓存单元存储的 交织表对数据乓緩存单元存储的待译码数据进行迭代计算,获得译码结果。
本发明实施例提供的Turbo译码器译码方法,采用了数据乒乓緩存单元和交 织表乒乓緩存单元,当数据乒緩存单元空闲且数据乓緩存单元占用时,向数据 乒緩存单元输入数据,并向交织表乒緩存单元告知数据长度;或者当数据乓緩 存单元空闲且数据乒緩存单元占用时,向数据乓緩存单元输入数据,并向交织 表乓緩存单元告知数据长度;因此,能够乒乓緩存数据,并启动交织表兵乓緩 存单元成交织表。这种数据的输入和分发,节省了时间,提高了并行度,从而 提高了效率和吞吐量。
进一步地,本发明另一实施例中,如图9所示,上述步骤S802中对待i斧码 数据进行迭代计算,获得译码结果,要用到SISO单元中的Gama计算模块、存 储模块、Bata训练模块,Alpha计算模块、Beta计算模块,对待译码数据进行迭 代计算,获得译码结果具体可以包括如下步骤
5901、 Gama计算模块从数据乒乓緩存单元中获取输入数据,计算得到计算 结果;
5902、 将所述计算结果存入存储模块中;
S903 、 Bata训练模块从Gama计算模块或从存储模块中获取Gama计算模 块的计算结果,进行计算;
S904、 Alpha计算模块从存储模块中获取Gama计算模块的计算结果,进行 计算;
S卯5、 Bata计算模块从存储模块中获取Gama计算模块的计算结果,进行
11其中,步骤S902具体包括
设置三个存储模块,包括第一存储模块、第二存储模块、第三存储模块; Gama计算模块计算当前窗的计算结果,将计算结果存入第一存储模块; Gama计算模块计算下一窗的计算结果,将计算结果存入第二存储模块; Gama计算模块计算下两窗的计算结果,将计算结果存入第三存储模块; 与上述实施例相同,Gama计算模块每计算一窗就向一个存储模块中存入数
据,当三个存储模块都存入一遍之后,再次从第一存储模块开始,循环存储。 这样一来,步骤S903、步骤S904和步骤S卯5具体为; Bata训练模块从Gama计算模块或者第 一存储模块获取当前窗的计算结果,
进行计算;
Alpha计算模块从第二存储模块中获取下一窗的Gama计算模块的计算结 果,进行计算;
Bata计算模块从第三存储模块中获取下两窗的Gama计算模块的计算结果, 进行计算;
由于有了这三个存^^莫块,上述步骤S903 、步骤S904和步骤S905能够并 行处理。
本发明实施例提供的Turbo译码器译码方法,在SISO内部配置了三个存储 模块,用于分别存储Gama计算模块的当前窗、下一窗和下两窗的计算结果,因 此,Bata训练模块、Alpha计算模块和Bata计算模块能够从三个存储模块中获 取到所需的Gama计算模块的计算结果,从而能够实现并行处理,节省计算了时 间,提高了效率和吞吐量。
是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算 机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。 其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory , ROM)或随机存储记忆体(Random Access Memory, RAM)等。
以上所述,仅为本发明的具体实施方式
,但本发明的保护范围并不局限于
12此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到 变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应 所述以权利要求的保护范围为准。
权利要求
1、一种Turbo译码器,其特征在于,包括数据乒乓缓存单元,分别用于缓存待译码数据;交织表乒乓缓存单元,用于缓存交织表;输入控制单元,用于当数据乒缓存单元空闲且数据乓缓存单元占用时,向数据乒缓存单元输入待译码数据,并向所述交织单元告知待译码数据长度;或者当数据乓缓存单元空闲且数据乒缓存单元占用时,向数据乓缓存单元输入待译码数据,并向所述交织单元告知待译码数据长度;交织单元,用于接收来自所述输入控制单元告知的数据乒缓存单元的待译码数据长度,生成交织表并存入交织表乒缓存单元;或者接收来自所述输入控制单元告知的数据乓缓存单元的待译码数据长度,生成交织表并存入交织表乓缓存单元;软入软出SISO单元,用于根据所述交织表乒缓存单元存储的交织表对所述数据乒缓存单元存储的待译码数据进行迭代计算,获得译码结果;或者根据所述交织表乓缓存单元存储的交织表对所述数据乓缓存单元存储的待译码数据进行迭代计算,获得译码结果。
2、 根据权利要求1所述的Turbo译码器,其特征在于,所述SISO单元包括Gama计算模块,用于从所述数据乒乓緩存单元中获取数据,计算得到计算 结果,将所述计算结果存入存储模块,或者并向Bata训练模块发送所述计算结果;存储模块,用于存储所述Gama计算模块的计算结果;Bata训练模块,用于从所述Gama计算模块或者从所述存储模块中获取所 述Gama计算模块的计算结果,进行计算;Alpha计算模块,用于从所述存储模块中获取所述Gama计算模块的计算结 果,进行计算;Bata计算模块,用于从所述存储模块中获取所述Gama计算模块的计算结 果,进行计算。
3、 根据权利要求2所述的Turbo译码器,其特征在于,所述存储模块包括第一存储才莫块,用于存储当前窗的所述Gama计算模块的计算结果; 第二存储模块,用于存储下一窗的所述Gama计算模块的计算结果; 第三存储模块,用于存储下两窗的所述Gama计算模块的计算结果。
4、 根据权利要求3所述的Turbo译码器,其特征在于,所述Bata训练模块从所述Gama计算模块,或者从所述第 一存储模块获取 当前窗的计算结果,进行计算;所述Alpha计算模块从所述第二存储模块中获取下一窗的所述Gama计算模 块的计算结果,进行计算;所述Bata计算模块从所述第三存储模块中获取下两窗的所述Gama计算模 块的计算结果,进行计算。
5、 根据权利要求4所述的Turbo译码器,其特征在于,所述Bata训练模块、 Alpha计算模块和Bata计算模块并行处理。
6、 一种Trubo译码方法,其特征在于,包括设置数据兵乓緩存单元和交 织表乒乓緩存单元;当数据兵缓存单元空闲且数据乓緩存单元占用时,向数据乒緩存单元输入 待译码数据,根据待译码数据长度,生成交织表并存入交织表兵緩存单元;或 者当数据乓緩存单元空闲且数据乒緩存单元占用时,向数据乓緩存单元输入待 译码数据,根据待译码数据长度,生成交织表并存入交织表乓緩存单元;当数据乒緩存单元存在待译码数据且交织表兵缓存单元存储有相应的交织 表时,根据所述交织表乒緩存单元存储的交织表对所述数据乒緩存单元存储的 待译码数据进行迭代计算,获得译码结果;或者当数据乓緩存单元存在待译码 数据且交织表乓緩存单元存储有相应的交织表时,根据所述交织表乓緩存单元 存储的交织表对所述数据乓緩存单元存储的待译码数据进行迭代计算,获得译 码结果。
7、 根据权利要求6所述的Turbo译码器译码方法,其特征在于,所述SISO 单元包括Gama计算模块、存储模块、Bata训练模块,Alpha计算模块、Beta 计算模块,所述SISO单元根据生成的所述交织表迭代进行译码包括Gama计算模块从所述数据乒乓緩存单元中获取所述输入数据,计算得到计算结果;将所述计算结果存入存储模块中,或者并发送给Bata训练模块; Alpha计算模块从所述存储模块中获取所述Gama计算模块的计算结果,进 行计算;Bata计算模块从所述存储模块中获取所述Gama计算模块的计算结果,进 行计算。
8、 根据权利要求7所述的Turbo译码器译码方法,其特征在于,所述将所 述计算结果存入存储模块中包括设置三个存储;漠块,包括第一存储模块、第二存储模块、第三存储模块; Gama计算模块计算当前窗的计算结果,将所述计算结果存入所述第一存储 模块;Gama计算模块计算下一窗的计算结果,将所述计算结果存入所述第二存储 模块;Gama计算模块计算下两窗的计算结果,将所述计算结果存入所述第三存储 模块。
9、 根据权利要求8所述的Turbo译码器译码方法,其特征在于,所述Bata 训练模块、Alpha计算模块和Bata计算模块获取所述Gama计算模块的计算结果, 进行计算包括;所述Bata训练模块从所述Gama计算模块,或者从所述第一存储模块取当 前窗的计算结果,进行计算;所述Alpha计算模块从所述第二存储模块中获取下 一 窗的所述Gama计算模 块的计算结果,进行计算;所述Bata计算模块从所述第三存储模块中获取下两窗的所述Gama计算模 块的计算结果,进行计算。
10、 根据权利要求9所述的Turbo译码器译码方法,其特征在于,所述Bata 训练模块、Alpha计算模块和Bata计算模块并行处理。
全文摘要
本发明实施例公开了一种Turbo译码器及实现方法,涉及通信领域,提高了Turbo译码器的性能和吞吐量。方法包括当数据乒缓存单元空时,向数据乒缓存单元输入数据,根据数据长度,生成交织表存入交织表乒缓存单元;或当数据乓缓存单元空闲时,向数据乓缓存单元输入数据,根据数据长度,生成交织表存入交织表乓缓存单元;根据所述交织表乒缓存单元存储的交织表对数据乒缓存单元存储的数据进行迭代计算,获得译码结果;或者根据交织表乓缓存单元存储的交织表对数据乓缓存单元存储的数据进行迭代计算,获得译码结果。
文档编号H04L1/00GK101515805SQ20091011977
公开日2009年8月26日 申请日期2009年3月26日 优先权日2009年3月26日
发明者张永明 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1