CN102484485A - 软输出维特比算法方法和解码器 - Google Patents
软输出维特比算法方法和解码器 Download PDFInfo
- Publication number
- CN102484485A CN102484485A CN2010800365867A CN201080036586A CN102484485A CN 102484485 A CN102484485 A CN 102484485A CN 2010800365867 A CN2010800365867 A CN 2010800365867A CN 201080036586 A CN201080036586 A CN 201080036586A CN 102484485 A CN102484485 A CN 102484485A
- Authority
- CN
- China
- Prior art keywords
- path
- node
- decision stage
- level
- sliding window
- 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/41—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
-
- 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/3707—Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
-
- 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/3776—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using a re-encoding step during the decoding process
-
- 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
-
- 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/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/41—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
- H03M13/4138—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors soft-output Viterbi algorithm based decoding, i.e. Viterbi decoding with weighted decisions
- H03M13/4146—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors soft-output Viterbi algorithm based decoding, i.e. Viterbi decoding with weighted decisions soft-output Viterbi decoding according to Battail and Hagenauer in which the soft-output is determined using path metric differences along the maximum-likelihood path, i.e. "SOVA" 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/41—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
- H03M13/4138—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors soft-output Viterbi algorithm based decoding, i.e. Viterbi decoding with weighted decisions
- H03M13/4146—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors soft-output Viterbi algorithm based decoding, i.e. Viterbi decoding with weighted decisions soft-output Viterbi decoding according to Battail and Hagenauer in which the soft-output is determined using path metric differences along the maximum-likelihood path, i.e. "SOVA" decoding
- H03M13/4153—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors soft-output Viterbi algorithm based decoding, i.e. Viterbi decoding with weighted decisions soft-output Viterbi decoding according to Battail and Hagenauer in which the soft-output is determined using path metric differences along the maximum-likelihood path, i.e. "SOVA" decoding two-step SOVA decoding, i.e. the soft-output is determined by a second traceback operation after the determination of the hard decision like in the Berrou decoder
-
- 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/41—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
- H03M13/4161—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management
- H03M13/4184—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management using register-exchange
-
- 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/6508—Flexibility, adaptability, parametrability and configurability of the implementation
- H03M13/6511—Support of multiple decoding rules, e.g. combined MAP and Viterbi 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/65—Purpose and implementation aspects
- H03M13/6522—Intended application, e.g. transmission or communication standard
- H03M13/6525—3GPP LTE including E-UTRA
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明公开了使用格子表示和滑动窗来以软输出维特比算法SOVA对块进行解码的方法,其中,滑动窗的每个位置在滑动窗的一端具有路径确定级,并在滑动窗的另一端具有符号判决级。该方法包括:针对每个路径确定级和针对路径确定级的每个节点,基于路径度量来确定幸存路径(包括幸存路径输入符号和幸存判决级节点)和并存路径(包括并存路径输入符号和并发判决级节点)。针对每个节点计算并存储路径度量差异值。基于判决标准,将幸存判决级节点的软输出值确定为路径确定级的节点的路径度量差异值、路径确定级的节点的路径度量差异值与所存储的并存判决级节点的路径度量差异值的函数、以及所存储的幸存判决级节点的路径度量差异值中的任意一个。还公开了对应的计算机程序产品、解码器和通信设备。
Description
技术领域
本发明涉及对纠错码解码的领域。更具体地讲,其涉及对格子码解码。
背景技术
例如,在J.Hagenauer、E.Offer和L.Papke发表的“二进制块和卷积码的迭代解码(Iterative decoding of binary block and convolutionalcodes”)(参见IEEE Trans.Inf.Theory,vol.42,no.2,pp.429-445,Mar.1996)以一文中描述了迭代解码器的原理。通常,迭代解码可以基于软输入软输出(SISO)组成解码器(constituent decoder)之间的去相关外部信息(extrinsic information)的交换。
图1A示出了使用这种组成SISO解码器11和13的设置的迭代解码的示例实现,其可以适于使用1/2速率的组成码(constituent code)来对例如,turbo码解码。
在该示例中,如附图标记41和42所示出的,将表示两个码比特(在更一般性的情况下,码符号)的接收到的先验(intrinsic)软值输入到第一SISO解码器11(解码器1)中。解码器1输出针对每个信息比特(或者更一般地,每个信息符号)的外部软值,如附图标记22所示,并在交织器12中交织外部软值。
将附图标记23所示的已交织的外部软值与附图标记43或44所示的接收到的先验软值一起输入到第二SISO解码器13(解码器2)(交织为可依据具体的编码设置而应用之后)。解码器2输出针对每个信息比特的外部软值,如附图标记24所示。在去交织器14中对外部软值进行去交织,并与接收到的先验软值一起反馈回解码器1,以担当如附图标记21所示的第二次迭代的输入。在第一次迭代中,向输入21馈送中性(neutral)的软值。
该外部信息的迭代交换逐步提高外部信息的可靠性。在适当的迭代次数之后,在判决单元15中可以基于从解码器2输出的外部软值进行与每个信息比特有关的硬判决30。
通常可以使用格状图来示出图1A的每个SISO模块11、13的操作。图1B示出了代表turbo码的示例组成码的示例格状图100的一部分。在该具体示例中,格子的每一级具有四个节点(第一级是101、103、105、107,第二级是111、113、115、117,等等),其中,每个节点代表对应编码器的状态。此外,该示例格子具有至每个节点的两条进入路径(例如,到节点111的111a和111b)。格状图在本领域中是熟知,并在此不做更详细的描述。
SISO模块本身可以由BCJR(Bahl、Cocke、Jelinek、Raviv)算法(的变型)构成(可从L.R.Bahl等人发表的“Optimal decoding of linearcodes for minimizing symbol error rate”(IEEE Trans.Inf.Theory,vol.20,no.2,pp.284-287,Mar.1974)以及P.Robertson、P.和E.Villebrun发表的“A comparison of optimal and sub-optimal MAP decodingalgorithms operating in the log domain”(Proc.IEEE lntl.Conf.Comm.,Seattle,June 1995,pp.1009-1013 for the logarithmic domain)了解)。
然而,BCJR算法及其变型因其非常复杂而受到不利影响。为了满足一些应用的吞吐量要求,通常需要在专用硬件中实现以及需要高级的并行化技术。
SISO模块的另一可能性是基于传统维特比算法的方案(的变型),即,软输出维特比算法(SOVA),在J.Hagenauer和P.发表的“AViterbi algorithm with soft-decision output and its applications”(参见Proc.IEEE Globecom,Dallas,Nov.1989,pp.1680-1686)中公开了这种算法。
与BCJR算法相比,SOVA通常以较低的复杂度成本提供软输出值。与BCJR相比,SOVA的另一好处是降低了等待延迟。SOVA的等待延迟基本上取决于解码窗的深度(如从传统的维特比解码了解的)。SOVA还可以具有需要较少的并行化的好处。然而,在一些情况下,与BCJR算法相比,SOVA受困于较差的误码率性能。
如在本领域公知的,SOVA一开始可以向格子的每个节点指派可靠性值L,其中,可靠性值取决于节点的进入路径的路径度量。对于每个节点具有两个进入路径的格子来说,初始可靠性值可以是两个进入路径的度量之差的绝对值L←=|M(s’)-M(s”)|,其中,s’和s”是两个进入路径以及M(s)是路径s的路径度量。路径度量可以例如是累计的度量。
在一些应用中,SOVA针对可靠性值使用以下更新规则,通常将其称为Hagenauer规则:
如果uk-U(s)≠uk-U(c),则Lk-U(s)←min(Lk(s),Lk-U(s)),以及
否则,Lk-U(s)不改变,
其中,Lk-U(s)表示在级k-U处幸存路径(surviving path)的节点的可靠性值。可以在示意性的格状图中图示出所使用的记号,如图1C中所示出的那样。
在图1C的示例中,SOVA应用长度为U的滑动窗120,滑动窗120当前在位置k处。用附图标记121表示在级k处最上面的节点124的幸存路径s,该幸存路径在级k-U处具有对应的判决比特(或更一般地讲,是判决符号)uk-U(s),由附图标记126表示。用附图标记122来表示其并存路径(concurrent path)c,并存路径c在级k-U处具有对应的判决比特uk-U(c),由附图标记127表示。在级k-1处,幸存路径的节点具有由附图标记123表示的并存路径。
因此,如果判决比特126与127不同,并且如果在级k处的幸存路径的节点124的可靠性值比在级k-U处的幸存路径的节点125的可靠性值低,Hagenauer规则建议应该由节点124的可靠性值来替换节点125的可靠性值。
我们将应用Hagenauer更新规则的SOVA表示为HR-SOVA。从E.Yeo等人发表的“A 500Mbit/s soft output Viterbi decoder”(参见IEEE J.Solid-State Circuits,vol.38,no.7,PP.1234-1241,July 2003)可以了解使用Hagenauer规则的硬件架构。
应用于可靠性值的更新规则影响到外部软输出值的质量(例如,精确性),并因此影响到迭代解码器的整体性能。
在SISO模块中可以与SOVA一起使用的另一可靠性值更新规则是Battail规则,从G.Battail发表的“Pondération des symboles décodés parl′algorithme de Viterbi”一文(参见Annales des Télécommuncations,No.1-2,pp.31-38,Jan.-Feb.198)可以了解Battail规则。我们将应用Battail更新规则的SOVA表示为BR-SOVA。
如在M.Fossorier等人发表的“On the equivalence between SOVAand max-log-MAP decodings”一文(参见IEEE Comm.Letters,vol.2,no.5,pp.137-139,May 1998)所示出的,Battail规则在性能方面与最大对数MAP(最大后验概率)解码是等效的。然而,与Hagenauer规则相比,问题在于该更新规则的复杂度增加,并且阻止或者至少严重地阻碍了任何的硬件实现。Battail规则的复杂度还抵消了通过使用SOVA而非BCJR所实现的复杂度降低。
对于HR-SOVA,仅考虑把沿幸存者路径(survivor path)的度量差用于更新可靠性值。对于BR-SOVA,还在更新中使用沿并存路径的度量差。这是BR-SOVA复杂度增加的原因,可能是多倍的增加。
可以将用于更新可靠性值的Battail规则表达为:
如果uk-U(s)≠uk-U(c),则Lk-U(s)←min(Lk(s),Lk-U(s)),以及
如果uk-U(s)=uk-U(c),则Lk-U(s)←min(Lk(s)+Lk-U(c),Lk-U(s))。
可以将Battail更新规则在示意性格状图中示出,如图1D中所示出的那样。
在图1D的示例中,SOVA应用长度为U的滑动窗130,滑动窗130当前在位置k处。用附图标记131来表示在级k处最上面的节点133的幸存路径s,以及该幸存路径s在级k-U处具有由附图标记136表示的、对应的判决比特uk-U(s)。用附图标记132来表示其并存路径c,以及并发路径c在级k-U处具有由附图标记137表示的、对应的判决比特uk-U(c)。
现在,如果判决比特136与137相等,Battail规则建议可以用节点133的可靠性值与节点139的可靠性值之和来替换节点138的可靠性值。从而,应该对该替换进行评估,如果可应用,执行替换,必须首先确定节点139的可靠性值,该可靠性值包括次级并存路径(134、135等)的评估,并导致复杂度增加和等待延迟增加。
turbo解码器的尺寸和实现复杂度以及等待延迟可以是重要的实现参数。同时,通常应该实现可接受的误码率性能。
在一些场景中,需要并行化以满足等待延迟的要求。特别是如果应用类似BCJR的算法的情况。这种并行化还增强了小尺寸模块的重要性。
另一方面,如果如以上所阐述的要完全维持MAP基线性能,低等待延迟的SOVA类型的算法需要复杂的更新过程。
从而,需要用于解码方法和解码器的改进SISO算法。优选地,改进的算法应该具有低等待延迟、低复杂度以及良好的误码性能。
发明内容
应该强调,当在本说明书中使用时,采用术语“包括/包括了”来指定所提到的特征、整体、步骤或组件的存在,但并不排除一个以上的其它特征、整体、步骤、组件或其组群的存在或增加。
本发明的目的是消除至少一些前面提到的不足,并提供用于解码方法和解码器的改进SISO算法。
根据本发明的第一方面,这是通过用软输出维特比算法SOVA对块解码的方法实现的,其中,块包括多个符号,该多个符号具有由格子表示来描述的相互关联,格子表示具有针对与格子表示相对应的编码器的每个可能的级以及针对与编码器的符号输入时机相对应的每个级的节点,每个节点具有至少两个进入路径转换,其中,每个进入路径转换对应于编码器的各个可能的输入符号,SOVA使用滑动窗,滑动窗的每个位置在滑动窗的一端具有路径确定级,并在滑动窗的另一端具有符号判决级。
在一些实施例中,通过具有格子表示的码(例如,卷积码)的编码器来对块编码。
该方法包括确定SOVA的软输出值。这是通过(针对每个路径确定级和针对路径确定级的每个节点)进行以下操作来实现的:针对每个进入路径转换计算转换度量和对应的路径度量,基于路径度量确定幸存路径和并存路径,至少基于幸存路径和并存路径的路径度量来计算路径度量差异值,针对路径确定级的节点存储路径度量差异值,以及确定与判决级处的幸存路径的路径转换相对应的幸存路径输入符号、将判决级处的幸存路径的路径转换作为进入路径转换的幸存判决级节点、与判决级处的并存路径的路径转换相对应的并存路径输入符号、以及将判决级处的并发路径的路径转换作为进入路径转换的并发判决级节点。
如果幸存路径输入符号不同于并存路径输入符号,并且如果路径确定级的节点的路径度量差异值小于所存储的幸存判决级节点的路径度量差异值,将幸存判决级节点的软输出值确定为路径确定级的节点的路径度量差异值。
如果幸存路径输入符号等于并存路径输入符号,并且如果路径确定级的节点的路径度量差异值与所存储的并存判决节点的路径度量差异值的函数小于所存储的幸存判决级节点的路径度量差异值,将幸存判决级节点的软输出值确定为路径确定级的节点的路径度量差异值与所存储的并存判决级节点的路径度量差异值的函数。
否则,将幸存判定级节点的软输出值确定为所存储的幸存判定级节点的路径度量差异值。
在一些实施例中,转换和路径度量可以是累计的度量。
根据一些实施例,函数可以是求和。
在一些实施例中,计算路径度量差异值的步骤可以包括计算幸存路径和并存路径的路径度量之差的绝对值。
根据一些实施例,每个节点的至少两个进入路径转换可以正由两个进入路径转换组成。
根据一些实施例,滑动窗可以是第一滑动窗,所确定的软输出值可以是中间软输出值。在这种实施例中,该方法还可以包括应用第二滑动窗,其中,第一滑动窗和第二滑动窗不重叠。对于第二滑动窗的每个路径确定级以及对于路径确定级的每个节点,可以使用与第一滑动窗中不同的标准,基于至少一个中间软输出值来确定第二滑动窗的幸存判决级节点的软输出值。
不同的标准可以包括:如果幸存路径输入符号等于并存路径输入符号,将幸存判决级节点的软输出值确定为幸存判决级节点的中间软输出值。
本发明的第二方面是包括计算机可读介质的计算机程序产品,在计算机可读介质上具有包括程序指令的计算机程序。计算机程序能够被加载到数据处理单元中,并适于在数据处理单元运行计算机程序时,使数据处理单元执行本发明第一方面的方法步骤。
本发明的第三方面是适于使用SOVA来对块进行解码的解码器。
解码器包括度量计算单元,用于针对每个路径确定级和针对路径确定级的每个节点,计算每个进入路径转换的转换度量和相对应的路径度量,以及至少基于幸存路径和并存路径的路径度量来计算路径度量差异值。
该解码器还包括至少一个差异值寄存器单元,用于针对滑动窗的每级和节点,存储对应的路径度量差异值。
解码器的幸存者路径单元,用于针对每个路径确定级和针对路径确定级的每个节点,基于路径度量来确定幸存路径,以及,确定与判决级处的幸存路径的路径转换相对应的幸存路径输入符号和将判决级处的幸存路径的路径转换作为进入路径转换的幸存判决级节点。
解码器的路径比较单元,用于针对每个路径确定级和针对路径确定级的每个节点,基于路径度量来确定并存路径,确定与判决级处的并存路径的路径转换相对应的并存路径输入符号、和将判决级处的并存路径的路径转换作为进入路径转换的并存判决级节点,和确定幸存路径输入符号是否不同于并存路径输入符号。
解码器还包括软输出值单元,用于针对每个路径确定级和针对路径确定级的每个节点,确定幸存判决级节点的软输出值。
如果幸存路径输入符号不同于并存路径输入符号,以及如果路径确定级的节点的路径度量差异值小于所存储的幸存判定级节点的路径度量差异值,将幸存判定级节点的软输出值确定为路径确定级的节点的路径度量差异值。
如果幸存路径输入符号等于并存路径输入符号,以及如果路径确定级的节点的路径度量差异值与所存储的并存判决节点的路径度量差异值的函数小于所存储的幸存判决级节点的路径度量差异值,将幸存判决级节点的软输出值确定为路径确定级的节点的路径度量差异值与所存储的并存判决级节点的路径度量差异值的函数。
否则,将幸存判定级节点的软输出值确定为所存储的幸存判定级节点的路径度量差异值。
在一些实施例中,每个节点的至少两个进入路径转换可以由两个进入路径转换组成,解码器还可以包括状态寄存器交换单元,其中,与滑动窗的节点相对应的每个寄存器单元以及与节点之间的路径转换相对应的每个寄存器交换连接具有等于1的字长。
在这种实施例中,解码器还可以包括从状态寄存器交换单元提取并存判决级节点和并存路径输入符号中的至少一个的装置,其中,所述装置适于通过将寄存器单元内容进行组合来提取并存判决级节点和/或通过将编码器的编码多项式应用于寄存器单元内容来提取并存路径输入符号。
本发明的第四方面是包括本发明的第三方面的解码器的无线通信设备。
在一些实施例中,本发明的第三方面和第四方面可以附加地具有与以上针对本发明的第一方面说明的各种特征相同或者相对应的特征。
要指出的是,本发明的实施例可应用于所有可由格子表示的码。这种码的示例是卷积码类别。其他示例包括,例如,语音识别应用。
与BR-SOVA和/或BCJR相比,本发明的一些实施例的优点是改进(降低)了计算复杂度和/或等待延迟。
本发明的一些实施例的另一项优点是可以降低turbo解码器的实现复杂度。在一些实施例中,较低的复杂度是由于需要较低的并行化程度来实现具体的吞吐量造成的。
与HR-SOVA相比,本发明的一些实施例的再一项优点是改进了误码率性能(降低误码概率)。
本发明的一些实施例的再一优点是误码率性能可以与BR-SOVA和/或BCJR的误码率性能相比拟。
附图说明
参考附图,本方面的其他目的、特征和优点将从对本发明实施例的详细描述中显现,在附图中:
图1A示出了根据本发明一些实施例的迭代解码器结构的方框图;
图1B示出了根据本发明一些实施例的示例编码的格子表示的示意图;
图1C-E示出了根据本发明一些实施例的滑动窗的示意图;
图2示出了根据本发明一些实施例的示例方法步骤的流程图;
图3A-C示出了根据本发明一些实施例的示例布置的方框图;
图4A-B示出了根据本发明一些实施例的寄存器单元布置的方框图;
图5示出了移动终端的示意图,其中,移动终端可以包括根据本发明一些实施例的装置;以及
图6示出了根据本发明一些实施例的计算机程序产品的示意图。
具体实施方式
下面,将描述对SOVA应用修改后的更新规则的本发明的实施例。与BR-SOVA相比,修改后的更新规则降低了复杂度,同时实现了比HR-SOVA更好的误码率性能。
根据一些实施例,用于更新可靠性值的修改后的更新规则可以表达为:
如果uk-U(s)≠uk-U(c),则Lk-U(s)←min(Lk(s),Lk-U(s)),以及
如果uk-U(s)=uk-U(c),则Lk-U(s)←min(Lk(s)+Δk-U(c),Lk-U(s))。
其中,Δk-U(c)是uk-U(c)的初始可靠性值。从而,该修改后的更新规则使用并存路径的初始可靠性值(即,度量差),而不是如Battail规则中(可能已更新的)可靠性值。因此,不需要沿并存路径更新可靠性值,从而很容易地改善了算法的等待延迟和复杂度。
在Battail规则中,假设使用其可能的并存路径中的最小可靠性值来更新Lk-U(c),即,minc’(Lk-U(c’)),其中,c’表示并存路径的并存路径(即,次级并存路径)。因此,可以推导出Δk-U(c)≥Lk-U(c),这暗示了Lk(s)+Δk-U(c)≥Lk(s)+Lk-U(c)。这暗示了在修改后的更新规则中,使用比Battail规则中大的值来更新Lk-U(s),这意味着更新值小于Lk-U(s)的可能性较小。因此,与在BR-SOVA中相比,在修改后的更新规则中,不太经常更新Lk-U(s)。
使用修改后的更新规则的SOVA的实现优点在于:由于首先必须更新Lk-U(c),可以没有延迟地执行Lk-U(c)的更新。这降低了复杂度和等待延迟。在一些实施中,与BR-SOVA相比,使用修改后的更新规则的SOVA还可需要更少的存储器。
在一些实施例中,在第一滑动窗中应用修改后的更新规则,在第二滑动窗中应用另一更新规则(例如,Hagenauer规则)。这种方案可以在不严重影响误码率性能的情况下进一步降低复杂度。
总的来说,可以应用两个不重叠的滑动窗,其中,滑动窗使用不同的更新规则(其可以不必包括修改后的更新规则)。例如,第一滑动窗可以使用Battail规则,而第二滑动窗可以使用Hagenauer规则。图1E中示出了该设置,其中示出了两个不重叠的滑动窗140和150。
图2示出了使用滑动窗方案并且可以在SISO解码模块中使用的示例方法200。可以针对格子表示中每一级的每个节点执行示例方法200的方法步骤。
在步骤210中,计算针对节点的每个进入转换的转换度量,在步骤220中基于前一级的转换度量和相关节点度量来确定针对每个进入路径的路径度量。这些操作在滑动窗的前端执行(与图1C的节点124相对照)。
在步骤230,基于计算出的路径度量确定幸存路径及其并存路径。该确定可以包括执行溯源(trace-back)或者类似操作(例如,从存储器单元(例如,寄存器)检索对应的信息),以确定幸存路径和并存路径的判决比特(与图1C的126和127相对照)以及其相应的可靠性值中的一个或两个。
在步骤240,计算所考虑的节点的路径差异值(disparity value)(其被用作初始可靠性值),并在步骤250中进行存储。路径差异值可以是,例如,幸存路径和并存路径的路径度量之差的绝对值。也可以考虑其他的差异值。例如,如果存在两条以上的进入路径,在差异值计算中可以涉及到所有的路径度量或其子集。要指出的是,可以备选地在步骤230之前或者与步骤230并行地执行步骤240和250。
在步骤260中,如果满足特定的标准(将在下面描述),可以更新幸存路径的判决比特的可靠性值(与图1C中的节点值125相对照)。
步骤260的操作可以包括将幸存路径和并存路径的判决比特uk-U(s)和uk-U(c)进行比较(子步骤261),以确定其是否相等。
如果不相等,在子步骤264中比较当前节点的可靠性值Lk(s)和幸存路径的判决比特的可靠性值Lk-U(s)。如果Lk-U(s)大于Lk(s),在子步骤265中用Lk(s)替换Lk-U(s)。否则,保持Lk-U(s)不变(子步骤266)。
如果相等,在子步骤262中将当前节点的可靠性值Lk(s)与并存路径的判决比特的初始可靠性值Δk-U(c)的函数与幸存路径的判决比特的可靠性值Lk-U(s)相比较。如果Lk-U(s)大于该函数值,在子步骤263中用函数值替换Lk-U(s)。否则,保持Lk-U(s)不变(子步骤266)。如上所述,函数可以是求和,即,Lk(s)+Δk-U(c)。然而,同样可以应用其他函数,例如,加权求和αLk(s)+(2-α)Δk-U(c)。
任选步骤270和280表示在第一滑动窗已经通过之后应用第二滑动窗以及使用与第一窗中不同的可靠性值更新规则的实施例。针对第二窗的步骤270的操作对应于针对第一窗的步骤230的操作。类似地,针对第二窗的步骤280的操作对应于针对第一窗的步骤260的操作,并且至少一个标准或值公式(value formula)与针对步骤260描述的标准或值公式不同。
图3A示出了可以用于HR-SOVA实现的示例解码布置。该布置包括度量单元310、幸存者路径单元311、符号寄存器312、差异寄存器313、选择单元314、路径比较单元315以及软值单元316。
如321和322处所示,将接收到的先验软值和外部软值(例如,与图1A相比,来自于之前另一SISO模块的半迭代)输入到度量单元310。针对格子的每级的每个节点,度量单元310确定优选的进入路径,并计算对应的差异值(即,初始可靠性值)。可以将度量单元310的操作与图2的步骤210、220和240相对照。
将与优选的进入路径相对应的比特值324存储在每个节点的符号寄存器312中,并将对应的差异值325存储在差异寄存器313中(与图2的步骤250相对照)。
还将与优选进入路径相对应的比特值323转发至幸存者路径单元311,幸存者路径单元311建立与幸存路径相关联的相关信息(与图2的步骤230(幸存路径部分)相对照),例如判决比特326和判决级幸存者节点327(与图1C的125和126相对照)。
将与幸存路径相关联的信息转发至路径比较单元315,路径比较单元315向布置输出331中继判决比特。路径比较单元还建立与并存路径相关联的相关值(与图2的步骤230(并发路径部分)相对照),例如与判决比特相对应的比特以及判决级并存节点。为此,如328处所示,路径比较单元315还访问符号寄存器312。
路径比较单元315还将判决比特与并存路径的对应比特相比较(与图2的子步骤261相对照),并向软值单元316转发比较结果332,软值单元316相应地更新可靠性值(例如,根据Hagenauer规则),并输出所产生的可靠性值来作为如在333处所示的软值。为此,如330处所示,软值单元316还访问差异寄存器314的适当信息。选择单元314基于判决级节点327从差异寄存器239的值中选择适合的差异值330。
寄存器312和313以及幸存者路径单元311通常一次覆盖格子的特定数目的级,并且可被视为滑动预设窗(pre-window),在该滑动预设窗中,执行传统的维特比算法操作,并为后面的操作准备差异值。路径比较单元315和软值单元316通常在滑动预设窗之后的滑动窗中操作。这种滑动预设窗和滑动窗的布置确保了仅需要对与比特判决值相对应的节点的幸存路径进行可靠性更新(即,每个格子级最多一次更新)。其他实现可以仅使用单个滑动窗(并且没有滑动预设窗),这降低了等待延迟,但增加了复杂度,因为需要针对格子的每个节点的幸存路径进行可靠性更新。
图3B示出了根据本发明一些实施例的另一示例解码布置,该示例解码布置可以用于BR-SOVA实现或者具有修改后的更新规则的SOVA实现。该布置包括度量单元340、幸存者路径单元341、差异寄存器343、选择及绝对值单元344、路径比较单元345、选择单元347以及软值单元346。
如在351和352处所示,将接收到的先验软值和外部软值(例如,与图1A相比,来自于之前另一SISO模块的半迭代)输入到度量单元340。针对格子的每级的每个节点,度量单元340确定优选的进入路径,并计算对应的差异值。将差异值355存储在差异寄存器343中。
向幸存者路径单元341转发与优选进入路径相对应的比特值353,幸存者路径单元341建立与幸存路径相关联的相关信息,例如,判决比特356和判决级幸存者节点357。将与幸存路径相关联的信息转发至路径比较单元345,路径比较单元315将判决比特中继到布置输出361。路径比较单元还建立与并存路径相关联的相关值,例如,与判决比特相对应的比特以及判决级并存节点。可以例如从差异值的符号提取这种信息(如,在Hagenauer规则中)。通常将差异值定义为绝对值,在这种情况下,其符号不包含信息。因此,本发明的实施例将差异值描述为有符号的值,因为这种方案简化了度量单元的实现。根据这种实施例,可以在处理的稍后阶段确定差异值的绝对值。
路径比较单元345还将判决比特与并存路径的对应比特相比较,并向选择单元347转发比较结果365。
此外,路径比较单元345向选择单元347提供与可能的可靠性更新有关的信息364。对于BR-SOVA,这种信息可以包括并存路径的(已更新的)可靠性值,而对于具有已修改的更新规则的SOVA,这种信息可以包括并存路径的初始可靠性值。为此,如358处所示,路径比较单元345还访问差异寄存器343。
选择及绝对值单元344基于判决级节点357,从差异寄存器259的值中选择适合的差异值(即,与幸存路径相对应的差异值),并向选择单元347和软值单元346提供其绝对值360。
选择单元347基于判决比特是否等于并存路径的对应比特(即,365处提供的信息),确定是否要使用与可能的可靠性更新有关的信息364,并在362处输出结果。从而,对于具有修改后的更新的SOVA,如果uk-U(s)≠uk-U(c),362处的结果可以等于Lk(s),如果uk-U(s)=uk-U(c),362处的结果可以等于Lk(s)+Δk-U(c)。
然后,软值单元346相应地更新可靠性值,并如363处所示,输出所产生的可靠性值来作为软值。例如,如果实现BR-SOVA或者具有修改后的更新规则的SOVA,软输出值可以将362处的结果与差异值360相比较(与图2的子步骤262和264相对照),并输出两者中较小的一个(与图2的子步骤263、265和266相对照)。
图3C示出了根据本发明一些实施例可以用于两个不同的SOVA实现的组合的又一示例解码布置(例如,BR-SOVA或具有修改后的更新规则的SOVA,其后跟随有HR-SOVA)。
该布置包括度量单元370、幸存者路径单元371、差异寄存器373、选择及绝对值单元374、路径比较单元375、选择单元377以及软值单元376。这些单元与图3B的对应单元340、341、343、344、345、347和346相类似或者等效地进行操作,因此在此不再对其详细描述。
该布置还包括第二路径比较单元379和第二软值单元378。
路径比较单元375向第二路径比较单元379转发判决比特391和判决级幸存者节点396。软值单元376向第二软值单元378转发其产生的可靠性值393,第二软值单元378将该所产生的可靠性值393作为初始可靠性值使用。路径比较单元379和软值单元378与图3A的对应单元315和316相类似或者等效地进行操作,在此不再对其进行详细描述。例如,通过如上所述从差异值的符号提取与图3A的符号寄存器相对应的值,可以向图3C中的路径比较单元379提供该值。
路径比较单元375、选择单元377和软值单元376通常一次覆盖了格子的特定数目的级,并且可以被视为在第一滑动窗中操作。路径比较单元379和软值单元378通常一次覆盖格子的另一特定数目的级,并且可以被视为在第二滑动窗中操作。第一滑动窗和第二滑动窗可以重叠,也可以不重叠,然而对于最佳性能来说,优选不重叠。
值得注意的是,第二软值单元378所使用的可靠性更新过程与软值单元376和选择单元377所使用的可靠性更新过程不同。例如,软值单元376和选择单元377可以应用修改后的更新规则或者Battail规则,而第二软值单元378可以应用Hagenauer规则。
可以将单元375、377和376的操作与图1E中第一滑动窗140的应用相对照,可以将单元379和378的操作与图1E中第二滑动窗150的应用并与图2的步骤270和280相对照。
由此,根据一些实施例,提供了使用软输出维特比算法(SOVA)来对块解码的方法,其中,具有格子表示的码的编码器对块进行编码,格子表示具有针对编码器的每个可能状态以及针对与编码器的符号输入时机相对应的每一级的节点,每个节点具有至少两个进入路径转换,其中,每个进入路径转换对应于编码器的相应的可能输入符号。在这些实施例中,SOVA使用第一滑动窗,其中,滑动窗的每个位置在滑动窗的一端具有路径确定级,并在滑动窗的另一端具有符号判决级。SOVA还使用了第二滑动窗,其中,滑动窗的每个位置在滑动窗的一端具有路径确定级,并在滑动窗的另一端具有符号判决级。优选的是,第一滑动窗和第二滑动窗不重叠。
根据这种实施例的方法可以包括通过针对第一滑动窗的每个路径确定级并针对路径确定级的每个节点执行以下操作来确定SOVA的中间软输出值:针对每个进入路径转换计算转换度量和对应的路径度量,基于路径度量确定幸存路径和并存路径,至少基于幸存路径和并存路径的路径度量来计算路径度量差异值,存储路径确定级的节点的路径度量差异值,以及确定与判决级处的幸存路径的路径转换相对应的幸存路径输入符号、将判决级处的幸存路径的路径转换作为进入路径转换的幸存判决级节点、与判决级处的并存路径的路径转换相对应的并存路径输入符号以及将判决级处的并存路径的路径转换作为进入路径转换的并存判决级节点。
如果幸存路径输入符号不同于并存路径输入符号,以及如果路径确定级的节点的路径度量差异值小于所存储的幸存判决级节点的路径度量差异值,可以将幸存判决级节点的中间软输出值确定为路径确定级的节点的路径度量差异值。
如果幸存路径输入符号等于并存路径输入符号,以及如果路径确定级的节点的路径度量差异值与所存储的并发判决节点的路径度量差异值的函数小于所存储的幸存判决级节点的路径度量差异值,可以将幸存判决级节点的中间软输出值确定为路径确定级的节点的路径度量差异值与所存储的并发判决级节点的路径度量差异值的函数。在一些实施例中,如果幸存路径输入符号等于并存路径输入符号,以及如果路径确定级的节点的路径度量差异值与并存判决级节点的可靠性值的函数小于所存储的幸存判决级节点的路径度量差异值,可以代之将幸存判决级节点的中间软输出值确定为路径确定级的节点的路径度量差异值与并发判决级节点的可靠性值的函数。
否则,可以将幸存判决级节点的中间软输出值确定为所存储的幸存判决级节点的路径度量差异值。
根据这种实施例的方法还可以包括通过针对第二滑动窗的每个路径确定级并针对路径确定级的每个节点执行以下操作来确定SOVA的软输出值:确定与判决级处的并存路径的路径转换相对应的并存路径输入符号和将判决级处的并存路径的路径转换作为进入路径转换的并存判决级节点。
可以使用在至少一个方面与使用来确定第一滑动窗的中间软输出值的规则不相同的规则确定幸存判决级节点的软输出值。可以基于至少一个中间软输出值并使用与第一滑动窗中的准则不同的准则来确定幸存判决级节点的软输出值。
在一些实施例中,如果幸存路径输入符号不同于并存路径输入符号,以及如果路径确定级的节点的中间软输出值小于幸存判决级节点的中间软输出值,可以将幸存判决级节点的软输出值确定为路径确定级的节点的中间软输出值。
否则,可以将幸存判决级节点的软输出值确定为幸存判决级节点的中间软输出值。
对应的解码器也是可以预想到的,该解码器包括度量计算单元、至少一个差异值寄存器单元、幸存者路径单元、第一和第二路径比较单元,以及第一和第二软输出值单元。各个部分适于执行上述方法的相应步骤。
这些实施例形成了一类混合可靠性更新。
当在第一滑动窗中应用修改后的更新规则时,这种实施例的好处是甚至可以进一步降低复杂度(与BR-SOVA或BCJR相比)。另一好处是与仅使用其滑动窗长度等于混合设置的第一和第二滑动窗长度之和的修改后的更新规则相比,误码率性能没有(或者仅轻微)恶化。
通常在这些实施例中,在误码率性能和复杂度之间可以存在折衷。通过改变第一和第二滑动窗的长度并同时保持总的窗长度不变,可以对该折衷进行示出。
通过具有低复杂度特性的SOVA(例如,HR-SOVA)和具有性能维持特性的SOVA(例如,BR-SOVA或者具有修改后的更新规则的SOVA)的结合可以实现这些以及其他的好处。
如图3C中所示,一种实施通过顺次地级联可靠性更新单元(路径比较单元375、379以及选择单元377和软值单元376、378)来对此进行实现。通过这样做,与仅使用HR-SOVA的情况相比,降低了在第一滑动窗内消除最佳并存路径的可靠性的可能性,并从而对HR-SOVA中的外部信息的高估更不明显(less pronounced)。同时,通过应用与HR-SOVA的结合,使因使用具有性能维持特性的SOVA而造成的复杂度增加保持在较低程度。
为了以快捷和方便的方式跟踪并能够获得针对幸存者路径和/或并存路径的相关度量差(差异值),可以注意特定的实现考量。
在使用维特比算法的解码器中,寄存器交换是用于将幸存者路径追溯到合并状态以产生判决符号的低等待延迟方法。可以将寄存器交换用于幸存者管理,以获得可能的硬判决符号,以及跟踪可靠性值更新单元(例如,在图3A-C的情况下的软值单元)内的幸存者和/或并存路径。传统寄存器交换单元对硬判决比特执行寄存器交换,这对于获得合并的最终判决比特是有用的。然而,这种方案不适于需要获得并存路径的度量差的SOVA可靠性值更新(例如,如上所述具有修改后的更新规则的SOVA)。
获得并存路径的度量差的一种方式是对度量差的阵列执行寄存器交换。依据度量差的比特宽带(字宽度),这可导致电路中大量的复用器和不需要的布线。一种备选方式涉及将度量差的阵列存储在移位寄存器的阵列中。然而,在这种情况下,通常要求路径的并存状态的顺序可供使用,以使得能够选择相关的度量差值。对(一般地来讲,多比特)状态值执行直接寄存器交换是可能的,但这并不总是最佳解决方案。
在编码器在每输入时机取一个输入比特的情况下(例如,对于速率为1/X的卷积编码器),每个状态与两个可能的输入转换和两个可能的输出转换相关联,一个用于判决比特“0”,另一个用于判决比特“1”。通过控制对寄存器交换单元的初始输入以及通过使其针对每个状态转换交换最小量的所需信息,在这些情况下可以通过交换数据的单个比特来执行状态的寄存器交换。
图4A示出了根据本发明一些实施例的示例状态寄存器交换单元。由适合数目的存储器单元405、406、407、408来表示对应格子的每级,每个存储器单元的比特宽度等于1。对应数目的复用器401、402、403、404基于在路径确定级413、416、419、422处具有最佳度量的状态转换来输入两个可能值中的一个(在第一级411、412、414、415、417、418、420、421中从初始输入备选0/1输入,或者在后面的级中从两个之前的存储器单元备选中的一个输入)。该示例实现代表了最小实现,因为所有的存储器单元和所有的布线的比特宽度都等于1。
由于仅交换状态值的单个比特,在多比特状态值的情况下可需要变换来重建状态和/或输出判决比特。
图4B示出了这种变换的示例。在该示例中,通过寄存器交换单元的行的对应存储器单元内容的相加531,使用编码多项式来提取相关判决比特430,同时可以从寄存器交换单元的行的对应存储器单元内容提取相关状态440。
通过对寄存器交换单元的整行执行这种变换,可以有效地获得路径(例如,并存路径)的状态序列,以及在其后从差异寄存器获得相关的度量差。
图5示出了示例移动终端500。移动终端500可以包括解码器和/或可以执行根据本发明的实施例的方法。移动终端500可以例如包括如结合图3B和3C中的任何图所描述的解码器。
示例移动终端500可适于经由至无线基站的无线链接连接到移动电信网络。为此,移动终端500和基站可以符合至少一个移动电信标准,例如,UMTS LTE(通用移动电信标准-长期演进)。
可以通过软件或硬件或其组合来实现所描述的本发明的实施例及其等同物。可以通过与通信设备相关联或者集成到通信设备的通用电路来执行,例如数字信号处理器(DSP)、中央处理单元(CPU)、协处理器单元、现场可编程门阵列(FPGA)或者其他可编程硬件,或者可以通过专用电路来执行,例如,专用集成电路(ASIC)。所有这些形式都在本发明的考虑范围之内。
可以在包括电路/逻辑或执行根据本发明的任何实施例的方法的电子设备中实施本发明。电子设备可以例如是无线通信设备、便携式或手持式移动无线通信装置、移动无线终端、移动电话、基站、寻呼机、通信器、电子管理器、智能电话、计算机、笔记本、调制解调器、插入型卡或者移动游戏设备。
根据本发明的一些实施例,计算机程序产品包括计算机可读介质,例如,USB记忆棒、碟或者CD-ROM。图6是示出根据本发明的一些实施例,以CD-ROM 600的形式作为计算机可读介质的示意图。计算机可读介质可以在其上存储包括程序指令的计算机程序。计算机程序可以是可加载(如箭头610所示)到电子设备620中的,电子设备620包括处理单元640以及可能包括单独的存储器单元630。电子设备例如可以是移动终端。当加载到电子设备620中时,可以将计算机程序存储在存储器单元630中。根据一些实施例,当被加载到电子设备620中并由处理单元640运行时,计算机程序可以使得电子设备620执行根据例如图2中所示方法的方法步骤。
在此,已结合各种实施例描述了本发明。然而,本领域技术人员可认识到仍然落入本发明范围之内的所描述实施例的众多变型。例如,在此描述的方法实施例通过以特定顺序执行的方法步骤来描述示例方法。然而,要认识到,在不背离本发明范围的情况下,这些事件的次序可以通过另一顺序进行。此外,即使已将其描述为顺序执行,可以并行执行一些方法步骤。
同样,应该指出的是,在本发明实施例的描述中,将功能块划分为具体的单元并不意味着对本发明的限制。相反,这些划分仅是示例。可以将在此描述为一个单元的功能块分成两个或更多单元。同样,可以将在此描述为以两个以上单元实现的功能块实现为单个单元,而不背离本发明的范围。
因此,应该理解,对所描述的实施例的限制仅是为了图示说明的目的,而不是对本发明的限制。相反,本发明的范围是由所附权利要求而不是由说明书来定义,并且包括落入权利要求范围内的各种变型。
Claims (14)
1.一种使用软输出维特比算法SOVA来对块解码的方法,
其中,所述块包括多个符号,所述多个符号具有由格子表示来描述的相互关联,所述格子表示具有针对与所述格子表示相对应的编码器的每个可能的级以及针对与所述编码器的符号输入时机相对应的每个级的节点,每个节点具有至少两个进入路径转换,其中,每个进入路径转换对应于编码器各个可能的输入符号,
其中,SOVA使用滑动窗(120、130、140),滑动窗的每个位置在滑动窗的一端具有路径确定级,并在滑动窗的另一端具有符号判决级,
所述方法包括通过针对每个路径确定级以及针对路径确定级的每个节点执行以下操作来确定SOVA的软输出值:
针对每个进入路径转换,计算(210、220)转换度量和对应的路径度量;
基于路径度量确定(230)幸存路径和并存路径;
至少基于幸存路径和并存路径的路径度量来计算(240)路径度量差异值;
存储(250)路径确定级的节点的路径度量差异值;
确定(230)与判决级处的幸存路径的路径转换相对应的幸存路径输入符号、将判决级处的幸存路径的路径转换作为进入路径转换的幸存判决级节点、与判决级处的并存路径的路径转换相对应的并存路径输入符号、以及将判决级处的并存路径的路径转换作为进入路径转换的并存判决级节点;
依下述条件分别确定幸存判决级节点的软输出值(260、263、265、266)为:
如果(261)幸存路径输入符号不同于并存路径输入符号,以及如果(262)路径确定级的节点的路径度量差异值小于所存储的幸存判决级节点的路径度量差异值,则确定幸存判决级节点的软输出值为路径确定级的节点的路径度量差异值;
如果(261)幸存路径输入符号等于并存路径输入符号,以及如果(262)路径确定级的节点的路径度量差异值与所存储的并存判决节点的路径度量差异值的函数小于所存储的幸存判决级节点的路径度量差异值,则确定幸存判决级节点的软输出值为路径确定级的节点的路径度量差异值与所存储的并存判决级节点的路径度量差异值的函数;以及
否则,将幸存判定级节点的软输出值确定为所存储的幸存判决级节点的路径度量差异值。
2.根据权利要求1所述的方法,其中,所述转换和路径度量是累计的度量。
3.根据权利要求1或2所述的方法,其中,所述函数是求和。
4.根据权利要求1至3中任一项所述的方法,其中,计算路径度量差异值的步骤包括:
计算幸存路径的路径度量和并存路径的路径度量之差的绝对值。
5.根据权利要求1至4中任一项所述的方法,其中,每个节点的至少两个进入路径转换由两个进入路径转换组成。
6.根据权利要求1至5中任一项所述的方法,其中,所述滑动窗是第一滑动窗(140),以及所确定的软输出值是中间软输出值,所述方法还包括:
应用第二滑动窗(150),其中,第一滑动窗和第二滑动窗不重叠;以及
针对第二滑动窗的每个路径确定级并针对路径确定级的每个节点,使用与第一滑动窗中不同的标准,基于至少一个中间软输出值来确定第二滑动窗的幸存判决级节点的软输出值。
7.根据权利要求6所述的方法,其中,所述不同的标准包括:
如果幸存路径输入符号等于并存路径输入符号,将幸存判决级节点的软输出值确定为幸存判决级节点的中间软输出值。
8.一种包括计算机可读介质的计算机程序产品(600),在所述计算机可读介质上具有包括程序指令的计算机程序,所述计算机程序能够被加载到数据处理单元中,并适于在所述数据处理单元运行所述计算机程序时,使所述数据处理单元执行根据权利要求1至7中任一项所述的步骤。
9.一种适于使用软输出维特比算法SOVA来对块解码的解码器,
其中,所述块包括多个符号,所述多个符号具有由格子表示来描述的相互关联,所述格子表示具有针对与所述格子表示相对应的编码器的每个可能的级以及针对与所述编码器的符号输入时机相对应的每个级的节点,每个节点具有至少两个进入路径转换,其中,每个进入路径转换对应于编码器的各个可能的输入符号,以及
其中,SOVA使用滑动窗(120、130、140),滑动窗的每个位置在滑动窗的一端具有路径确定级,并在滑动窗的另一端具有符号判决级,
所述解码器包括:
度量计算单元(340、370),用于针对每个路径确定级以及针对路径确定级的每个节点:
针对每个进入路径转换,计算转换度量和相对应的路径度量;以及
至少基于幸存路径的路径度量和并存路径的路径度量来计算路径度量差异值;
至少一个差异值寄存器单元(343、373),用于针对滑动窗的每级和节点,存储对应的路径度量差异值;
幸存者路径单元(341、371),用于针对每个路径确定级以及针对路径确定级的每个节点:
基于路径度量来确定幸存路径;以及
确定与判决级处的幸存路径的路径转换相对应的幸存路径输入符号和将判决级处的幸存路径的路径转换作为进入路径转换的幸存判决级节点;
路径比较单元(345、375),用于针对每个路径确定级以及针对路径确定级的每个节点:
基于路径度量来确定并存路径;
确定与判决级处的并存路径的路径转换相对应的并存路径输入符号和将判决级处的并存路径的路径转换作为进入路径转换的并存判决级节点;以及
确定幸存路径输入符号是否不同于并存路径输入符号;其特征在于:
软输出值单元(346、376),用于针对每个路径确定级以及针对路径确定级的每个节点,依下述条件分别确定幸存判决级节点的软输出值为:
如果幸存路径输入符号不同于并存路径输入符号,以及如果路径确定级的节点的路径度量差异值小于所存储的幸存判决级节点的路径度量差异值,则确定幸存判决级节点的软输出值为路径确定级的节点的路径度量差异值;
如果幸存路径输入符号等于并存路径输入符号,以及如果路径确定级的节点的路径度量差异值与所存储的并存判决级节点的路径度量差异值的函数小于所存储的幸存判决级节点的路径度量差异值,则确定幸存判决级节点的软输出值为路径确定级的节点的路径度量差异值与所存储的并存判决级节点的路径度量差异值的函数;以及
否则,确定幸存判决级节点的软输出值为所存储的幸存判决级节点的路径度量差异值。
10.根据权利要求9所述的解码器,其中,每个节点的至少两个进入路径转换由两个进入路径转换组成,以及还包括状态寄存器交换单元,其中,与滑动窗的节点相对应的每个寄存器单元以及与节点之间的路径转换相对应的每个寄存器交换连接具有等于1的字长。
11.根据权利要求10所述的解码器,还包括:
从状态寄存器交换单元提取并存判决级节点和并存路径输入符号中的至少一个的装置,其中,所述装置用于通过将寄存器单元内容进行组合来提取并存判决级节点和/或通过将编码器的编码多项式应用于寄存器单元内容来提取并存路径输入符号。
12.根据权利要求9至11中任一项所述的解码器,其中,所述滑动窗是第一滑动窗(140),所确定的软输出值是中间软输出值,以及所述至少一个差异值寄存器单元还用于针对第二滑动窗(150)的每级和节点,存储对应的路径度量差异值,其中,所述第一滑动窗和第二滑动窗不重叠,所述解码器还包括:
第二软输出值单元(378),用于针对第二滑动窗的每个路径确定级并针对路径确定级的每个节点,使用与第一滑动窗中不同的标准,基于至少一个中间软输出值来确定幸存判决级节点的软输出值。
13.根据权利要求12所述的解码器,其中,所述第二软输出值单元用于:
如果幸存路径输入符号等于并存路径输入符号,将幸存判决级节点的软输出值确定为幸存判决级节点的中间软输出值。
14.一种无线通信设备(500),包括根据权利要求9至13中任一项所述的解码器。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US23470109P | 2009-08-18 | 2009-08-18 | |
US61/234,701 | 2009-08-18 | ||
EP10159966A EP2302811B1 (en) | 2009-08-18 | 2010-04-15 | Soft output viterbi algorithm method and decoder |
EP10159966.0 | 2010-04-15 | ||
PCT/EP2010/061760 WO2011020770A1 (en) | 2009-08-18 | 2010-08-12 | Soft output viterbi algorithm method and decoder |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102484485A true CN102484485A (zh) | 2012-05-30 |
Family
ID=42632647
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010800365867A Pending CN102484485A (zh) | 2009-08-18 | 2010-08-12 | 软输出维特比算法方法和解码器 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8806312B2 (zh) |
EP (2) | EP2442451A1 (zh) |
CN (1) | CN102484485A (zh) |
WO (1) | WO2011020770A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103378943B (zh) * | 2012-04-19 | 2018-07-13 | 马维尔国际有限公司 | 验证码字有效性的方法和设备以及译码方法和译码器 |
TWI555339B (zh) * | 2015-04-21 | 2016-10-21 | 國立清華大學 | 疊代式解碼裝置、疊代式訊號檢驗裝置與資訊更新方法 |
US10014026B1 (en) * | 2017-06-20 | 2018-07-03 | Seagate Technology Llc | Head delay calibration and tracking in MSMR systems |
US11533126B1 (en) | 2021-08-20 | 2022-12-20 | Cisco Technology, Inc. | Soft-output Viterbi equalizer for non-binary modulation |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1398047A (zh) * | 2002-08-20 | 2003-02-19 | 北京邮电大学 | 并行滑动窗涡轮码译码器及其实现方法 |
US20090063939A1 (en) * | 2007-09-04 | 2009-03-05 | Broadcom Corporation | Acs (add compare select) implementation for radix-4 sova (soft-output viterbi algorithm) |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5537444A (en) * | 1993-01-14 | 1996-07-16 | At&T Corp. | Extended list output and soft symbol output viterbi algorithms |
CN1168237C (zh) * | 1999-10-05 | 2004-09-22 | 三星电子株式会社 | 移动通信系统中的分量解码器及其方法 |
US6829313B1 (en) * | 2000-07-17 | 2004-12-07 | Motorola, Inc. | Sliding window turbo decoder |
US7234100B1 (en) * | 2000-09-28 | 2007-06-19 | Intel Corporation | Decoder for trellis-based channel encoding |
US20020157058A1 (en) * | 2001-02-20 | 2002-10-24 | Cute Ltd. | System and method for feedback-based unequal error protection coding |
US6961921B2 (en) * | 2001-09-06 | 2005-11-01 | Interdigital Technology Corporation | Pipeline architecture for maximum a posteriori (MAP) decoders |
KR100449578B1 (ko) * | 2001-09-14 | 2004-09-21 | 한국전자통신연구원 | 3차원 이상의 블럭터보 부호에 대한 반복 복호 방법 |
US7120207B2 (en) * | 2001-12-31 | 2006-10-10 | Nokia Corporation | Transmission method and radio receiver |
US7103831B1 (en) * | 2003-01-22 | 2006-09-05 | Conexant Systems, Inc. | Burst reliability and error locator for trellis codes |
GB0504483D0 (en) * | 2005-03-03 | 2005-04-13 | Ttp Communications Ltd | Trellis calculations |
US7925964B2 (en) * | 2006-12-22 | 2011-04-12 | Intel Corporation | High-throughput memory-efficient BI-SOVA decoder architecture |
US7930617B1 (en) * | 2007-06-20 | 2011-04-19 | Rockwell Collins, Inc. | Sliding window block codes for cross-packet coding |
US7752531B2 (en) * | 2007-09-12 | 2010-07-06 | Seagate Technology Llc | Defect sensing Viterbi based detector |
-
2010
- 2010-04-15 EP EP11190056A patent/EP2442451A1/en not_active Withdrawn
- 2010-04-15 EP EP10159966A patent/EP2302811B1/en not_active Not-in-force
- 2010-08-12 US US13/389,907 patent/US8806312B2/en not_active Expired - Fee Related
- 2010-08-12 CN CN2010800365867A patent/CN102484485A/zh active Pending
- 2010-08-12 WO PCT/EP2010/061760 patent/WO2011020770A1/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1398047A (zh) * | 2002-08-20 | 2003-02-19 | 北京邮电大学 | 并行滑动窗涡轮码译码器及其实现方法 |
US20090063939A1 (en) * | 2007-09-04 | 2009-03-05 | Broadcom Corporation | Acs (add compare select) implementation for radix-4 sova (soft-output viterbi algorithm) |
Non-Patent Citations (3)
Title |
---|
HSIN-YIH LI: ""A Modified Soft-Output Viterbi Algorithm for Punctured Turbo-Codes"", 《MASTER THESIS,DEPT.ELECTRICAL ENGINEERING,NATIONAL CHENG KUNG UNIVERSITY》, 9 September 2006 (2006-09-09), pages 1 - 78, XP002601407 * |
OLAF JOERESSEN等: ""High-speed vlsi architectures for soft-output viterbi decoding"", 《JOURNAL OF VLSI SIGNAL PROCESSING SYSTEMS FOR SIGNAL,IMAGE,AND VIDEO TECHNOLOGY》, vol. 8, no. 2, 1 October 1994 (1994-10-01), pages 169 - 181 * |
OSCAR Y. TAKESHITA等: ""Asymmetric turbo-codes"", 《ISIT1998》, 21 August 1998 (1998-08-21), pages 179 * |
Also Published As
Publication number | Publication date |
---|---|
EP2302811A2 (en) | 2011-03-30 |
US8806312B2 (en) | 2014-08-12 |
WO2011020770A1 (en) | 2011-02-24 |
EP2302811A3 (en) | 2011-04-20 |
US20120159288A1 (en) | 2012-06-21 |
EP2442451A1 (en) | 2012-04-18 |
EP2302811B1 (en) | 2013-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kim et al. | Communication algorithms via deep learning | |
Robertson | Illuminating the structure of code and decoder of parallel concatenated recursive systematic (turbo) codes | |
Le et al. | Revisiting the max-log-map algorithm with SOVA update rules: New simplifications for high-radix SISO decoders | |
Muller et al. | Exploring parallel processing levels for convolutional turbo decoding | |
CN102484485A (zh) | 软输出维特比算法方法和解码器 | |
JP2003514427A (ja) | エントロピック・コードを持つ符号化データを復号する方法とそれに対応する復号デバイスおよび伝送システム | |
US7234100B1 (en) | Decoder for trellis-based channel encoding | |
Yan et al. | High performance parallel turbo decoder with configurable interleaving network for LTE application | |
Weithoffer et al. | Low-complexity computational units for the local-SOVA decoding algorithm | |
US7165210B2 (en) | Method and apparatus for producing path metrics in trellis | |
Mandwale et al. | Implementation of High Speed Viterbi Decoder using FPGA | |
Alcoforado et al. | Turbo coding for the noisy 2-user binary adder channel with punctured convolutional codes | |
US8996948B2 (en) | Methods, systems, and apparatus for tail termination of turbo decoding | |
Alcoforado et al. | Iterative decoding of turbo convolutional codes over noisy two-user binary adder channel | |
Muller et al. | Spc05-3: On the parallelism of convolutional turbo decoding and interleaving interference | |
El-Dib et al. | Memoryless viterbi decoder | |
Benaissa et al. | Reconfigurable hardware architectures for sequential and hybrid decoding | |
US7698624B2 (en) | Scheduling pipelined state update for high-speed trellis processing | |
Winkelbauer et al. | On efficient soft-input soft-output encoding of convolutional codes | |
Durga et al. | Implementation of low complex SOVA in GNU radio | |
US8914716B2 (en) | Resource sharing in decoder architectures | |
Kene et al. | WiMAX physical layer optimization by implementing SOVA Decoding algorithm | |
Shrivastava et al. | Performance of Turbo Code for UMTS in AWGN channel | |
Ramteke et al. | Hdl implementation of turbo decoder using soft output viterbi algorithm | |
Sharma | New Channel Coding Methods for Satellite Communication |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120530 |