CN1136661C - 用于卷积码的软输出解码方法及其装置 - Google Patents

用于卷积码的软输出解码方法及其装置 Download PDF

Info

Publication number
CN1136661C
CN1136661C CNB011022612A CN01102261A CN1136661C CN 1136661 C CN1136661 C CN 1136661C CN B011022612 A CNB011022612 A CN B011022612A CN 01102261 A CN01102261 A CN 01102261A CN 1136661 C CN1136661 C CN 1136661C
Authority
CN
China
Prior art keywords
window
recursive
grid
length
ending
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.)
Expired - Fee Related
Application number
CNB011022612A
Other languages
English (en)
Other versions
CN1308415A (zh
Inventor
维普A・德赛
维普A·德赛
K・克拉松
布赖恩K·克拉松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Motorola Solutions Inc
Original Assignee
Motorola Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Motorola Inc filed Critical Motorola Inc
Publication of CN1308415A publication Critical patent/CN1308415A/zh
Application granted granted Critical
Publication of CN1136661C publication Critical patent/CN1136661C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3905Maximum 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/23Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using convolutional codes, e.g. unit memory codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/29Coding, 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/2957Turbo codes and decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3972Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using sliding window techniques or parallel windows
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • H03M13/4161Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management
    • H03M13/4169Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management using traceback
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • H03M13/6505Memory efficient implementations

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)

Abstract

用于对由划分成长度为L的多个窗口的、块长为N的格栅表示的信号进行最优解码的方法,包括步骤:从块结尾处的点N到一个窗口的结尾使用后向递归进行解码,存储在每个窗口的结尾确定的状态量度;从该窗口的结尾处的已知状态到该窗口的开始,使用后向递归对该窗口进行解码,以定义一组已知后向递归状态量度并存储;从该窗口的开始处的已知状态开始,使用前向递归进行解码,并向前移动;在前向递归的每个阶段计算软输出,并将其输出。

Description

用于卷积码的软输出解码方法及其装置
本申请涉及发明人为Classon,Schaffner,Desai,Baker和Friend的序列号为09/502,132的美国专利申请,发明人为Classon和Schaffner的序列号为09/501,922的美国专利申请,发明人为Classon,Schaffner和Desai的序列号为09/501,883的美国专利申请。这些相关申请在同一日期提交,并被转让给本申请的受让人,因此将其整体包含在此作为参考。
技术领域
本发明一般涉及通信系统,具体涉及在卷积码通信系统的接收机中使用的软输出解码器。
背景技术
数字通信系统中经常使用卷积码来保护所发送信息不受差错影响。在发射机,可以使用格栅图(trellis diagram)来描述输出码向量,格栅图的复杂性由编码器的约束长度确定。虽然计算复杂性随着约束长度的增加而增加,编码的鲁棒性也随约束长度的增加而增长。
在接收机,现有技术中已知的实用软决策解码器(例如维特比解码器)使用一种格栅结构来进行对最大似然发送码向量的最优搜索。但是,维特比算法的计算复杂性高,其复杂性随约束长度的增加而呈指数递增。这实际上意味着维特比解码器对于具有大约束长度的卷积码需要大量存储器空间和高处理能力。
诸如直接序列码分多址(DS-CDMA)标准IS-95和全球移动通信系统(GSM)的各种通信系统的编码器具有这种大的约束长度。例如,GSM半速率约束长度K=7,IS-95约束长度K=9。
维特比解码器的另一个缺点是对于每个码向量必须进行固定次数的计算,而不管在传输中发生的实际差错数目是多少。因此,维特比解码器使用与具有很多差错的接收信号相同的计算次数来处理具有很少传输差错或根本没有差错的接收信号。
最近,已经开发出优于常规编码技术的turbo码。Turbo码通常包括两个或多个卷积码和turbo交织器。Turbo解码是迭代性的,并且使用软输出解码器来解码单个卷积码。软输出解码器提供有关每个比特位置的信息,该信息有助于软输出解码器解码其它的卷积码。软输出解码器通常是MAP(最大后验) (maximum a posteriori)解码器,其需要后向和前向解码来确定其软输出。但是,因为存储器、处理和数字折衷(tradeoff),MAP解码通常被限制于次优近似。所有这些变量需要在块(block)上的前向和后向解码。
对于诸如3GPP(无线系统第三代合伙项目)的未来标准,块长为N=5120的8-状态turbo码需要40960个中间存储字,这是不能接受的。未来系统(更大的帧和更多的状态)甚至会需要更多存储空间。作为比较,维特比解码器并不为N=5120的8-状态格栅产生软输出,其需要少于100个中间字。
发明内容
需要一种软输出解码器,其能够减少卷积码解码的整体存储器和处理需求,而没有现有技术turbo和MAP解码器所强加的限制程度。
为了实现上述发明目的,本发明提供了一种用于对接收的由块长N的格栅表示的卷积编码信号序列进行解码的最优方法,包括以下步骤:
a)将格栅划分成长度为L的多个窗口;
b)选择格栅中一个长度为L的窗口;
c)从该块的结尾处的点N到该窗口的结尾,使用后向递归对格栅的一部分进行解码,并存储在每个窗口的结尾确定的状态量度;
d)从步骤c)中定义的该窗口结尾处的已知状态到该窗口的开始,使用后向递归在该窗口内对该部分格栅解码,以定义该窗口内的一组已知后向递归状态量度,并将该组已知后向递归状态量度存储在存储器中;
e)从该窗口的开始处的已知状态开始,使用前向递归在该窗口内对该部分格栅进行解码,并向前移动;
f)使用前向递归状态量度,分支量度,和所存储的后向递归状态量度,在前向递归的每个阶段计算软输出,并在每个阶段输出该软输出。
进一步,本发明还提供了一种具有接收机和解调器的无线电话,用于在帧缓冲器中,对块长为N的格栅表示的卷积编码信号序列进行处理,该无线电话进一步包括:
将所述格栅划分成长度为L的多个窗口的装置;
用于选择格栅中长度为L的窗口的装置;以及
用于执行所述处理的软决策输出解码器;所述解码器包括:
存储器;
后向递归处理器,从该块的结尾处的点N到一个窗口的结尾使用后向递归对格栅的一部分进行解码,以定义每个窗口的结尾处的状态量度,这些状态量度被存储在存储器中,后向递归处理器随后从该窗口的结尾处的已知状态到该窗口的开始,使用后向递归在该窗口内对该部分格栅进行解码,以定义该窗口内的一组已知后向递归状态量度,这些状态量度被存储在存储器中;
前向递归处理器,从该窗口的开始处的已知状态开始,使用前向递归在该窗口内对该部分格栅进行解码,并向前移动;
连接到存储器和前向递归处理器的解码器,使用前向递归状态量度,存储器中存储的后向递归状态量度,和每个阶段的分支量度,在前向递归的每个阶段计算一个软输出,并输出该阶段的软输出。
本发明利用与维特比解码器相比少量增加的计算量,相对于现有技术turbo解码器极大降低了存储器需求。总之,提供了更有效的解码器。而且,本发明使现有技术turbo和MAP解码器的限制最小。
附图说明
图1显示第一现有技术软输出解码器技术的格栅图;
图2显示第二现有技术软输出解码器技术的格栅图;
图3显示第三现有技术软输出解码器技术的格栅图;
图4显示图3的格栅图的扩展图形表示;
图5显示图3的格栅图的可替代的扩展图形表示;
图6显示根据本发明的软输出解码器技术的格栅图;
图7显示根据本发明的软输出解码器的方框图;
图8显示图6的格栅图的扩展图形表示;
图9显示根据本发明的软输出解码器方法的流程图。
优选实施方式
通常,块码、卷积码、turbo码和其它码被以图形形式表示为图1所示的格栅。如现有技术中已知的,最大后验型解码器(log-MAP,MAP,max-log-MAP,constant-log-MAP等)在格栅上利用前向和后向广义维特比递归来提供软输出。MAP解码器基于所有接收的比特使每个信息比特的解码比特差错概率最小。典型的现有技术MAP解码器在解码中需要使用一个存储器。
由于编码序列的马尔可夫性质(其中先前状态无法影响未来状态或未来输出分支),MAP比特概率可以分解为过去(格栅开始到当前状态),当前状态(当前值的分支量度),和未来(格栅结尾到当前值)。更具体地,MAP解码器进行前向和后向递归直到当前状态,其中把过去和未来概率与当前分支量度一起使用以产生输出判决。提供硬和软输出判决的原理在本领域是已知的,并且存在上述解码方法的几种变型。
Turbo码考虑使用的大多数软输入-软输出SISO解码器是基于一种现有技术MAP算法,该MAP算法公开于IEEE信息理论学报,Vol.IT-20,1974年3月,第284-287页,由L.R.Bahl,J.Cocke,F.Jelinek,和J.Raviv撰写的名称为“用于最小化码元差错率的线性码最优解码”的论文中(BCJR算法)。图1显示用于8-状态卷积码的这种算法的格栅图,其可以用于turbo编码。众所周知,turbo编码器由交织器和成份码(constituent code)构造,成份码通常是对称卷积码,但也可以是块码。MAP算法对于给定的接收序列不仅使每个信息比特的差错概率最小,而且对于给定的接收序列还提供信息比特是1或0的概率。BCJR算法提供每个比特位置(格栅部分)(trellis section)的软输出判决,其中该块内的软输入的影响被分解为来自过去(较早软输入)的影响,来自当前软输入的影响,和来自未来(随后软输入)的影响。这种解码器算法需要在格栅上的前向和后向广义维特比递归,以到达每个格栅部分(级)的最优软输出。这些后验概率(或者更普遍的,概率的对数似然比(LLR))在迭代turbo解码中的SISO解码步骤间传递。对于解码序列中的所有比特(t=1至N),信息比特ut的LLR是 Λ t = log Σ ( m , n ) ∈ B 1 α t - 1 ( n ) γ t ( n , m ) β t ( m ) Σ ( m , n ) ∈ B 0 α t - 1 ( n ) γ t ( n , m ) β t ( m ) - - - - ( 1 )
在公式(1)中,由于该代码的马尔可夫性质,对于给定的接收序列,在格栅中解码比特等于1(或0)的概率由多项的乘积构成。马尔可夫性质是,对于给定的当前值,过去值和未来值是独立的。当前值γt(n,m)是当在时间t-1的先前状态是n时在时间t处于状态m并且产生符号yt的概率。当前值起到分支量度(branch metric)的功能。过去值αt(m)是对于接收序列{y1,...,yt}在时间t处于状态m的概率,未来值βt(m)是从时间t的状态m产生接收序列{yt+1,...,yN}的概率。概率αt(m)可以表示为αt-1(m)和γt(n,m)的函数,并被称为前向递归 α t ( m ) = Σ n = 0 M - 1 α t - 1 ( n ) γ t ( n , m ) , m = 0 , . . . , M - 1 - - - - ( 2 )
其中M是状态数目。用于从βt+1(n)和γt(n,m)计算概率βt(n)的反向或后向递归是 β t ( n ) = Σ m = 0 M - 1 β t + 1 ( m ) γ t ( n , m ) , n = 0 , . . . , M - 1 , - - - - ( 3 )
通过在对应于ut=1(或0)的格栅B1(B0)中多个分支的相加来计算公式(1)中的全部后验概率。
公式(1)中的LLR需要在时间t前向和反向递归同时可用。满足该需求的BCJR方法计算并存储全部反向递归,并使用αt-1和βt从t=1到t=N递归地计算αt(m)和∧t
这种解码器的缺点是,在处理整个N个级的块之前必须首先将其存储在存储器中。这不仅需要大量存储器(N部分×M状态×每个状态的比特数),而且会在可能输出任何信息之前造成长度N的信号延迟。在W-CDMA系统(N~5000,M=8,13比特)中,存储器需要大约0.5M比特。在CDMA2000系统中,N大约是20000,这需要大约2M比特的存储器。对于小序列长度,存储器的使用并不值得关注。但是,对于turbo编码可最佳执行时的大N,存储器的使用是非常关键的。
在复杂性方面,BCJR方法需要用于反向递归的NM个状态更新(每格栅部分M个状态更新,代码中有N个格栅部分),并提供最优性能。实际上,由处理器在整个块上(如图1所示)执行后向递归并存储在存储器中。然后,由处理器执行前向递归,并且把其结果和当前状态以及存储的未来状态一起使用以达到每级的软输出决策。在这种情况下,处理器在每级上操作两次,一次是存储后向递归状态,一次是在前向递归处理期间(1/2的处理量)。
为了解决存储器使用问题,开发了滑动窗口方法和相似的变型。图2中显示了在Electronics Letters,Vol.32,Feb.15,1996,第314-315页中由S.Benedetto,D.Divsalar,G.Montorsi,和F.Pollara撰写的名称为“用于turbo码连续解码的算法”的论文描述的滑动窗口技术(在随后的附图中,实线箭头表示一个具有递归但没有存储的输出,虚线箭头表示一个没有输出和没有存储的学习周期,中空箭头表示一个没有输出的存储递归,其箭头方向指示前向或后向递归)。对于反向递归使用一个假设,即在时间t+P的所有状态同等可能(或未知)。为了使用这个假设,学习周期P必须是成份码的几个约束长度,以便提供接近最优的性能。学习周期过小会使性能显著降低,这与常规维特比算法中的“有限”回溯("finite"traceback)效果相似。
滑动窗口技术不需要任何存储器,但计算复杂性高。具体地说,并不执行整个后向递归并存储,而是仅对确定的每个状态执行部分后向递归(并且不存储)。对于每个当前状态,该算法在初始状态未知的情况下在与当前状态远离的P学习周期初始化未来递归。从未知的未来点,而不是从格栅的已知端后向计算未来概率。设置长度P(学习周期),使得在部分后向递归到达当前状态时,未来概率最有可能是正确的。P取决于代码的速率和约束长度以及预期的信道条件。例如,对于具有1/2速率卷积码的8-状态解码器,P通常是在16到32之间,其中P是约束长度的某个倍数。这种解码器的缺点是,部分后向递归以同等可能性(未知状态)开始,并允许迭代直到其到达当前窗口。这是一种次优算法,因为滑动窗口导致与真正MAP性能相比的性能降低,与常规维特比算法中的有限回溯效果相似,增加了解码比特差错的概率。而且,处理器在每个状态上操作P次(1/P的处理量),并且具有P的输出延迟。此外,这种算法需要P倍的复杂性,其只能由增加更多的处理来减小。
滑动窗口方法可以总结为,对于t=1到N,计算从时间t+P开始到时间t的反向递归,并计算从αt-1(m)到βt的αt(m)和∧t。滑动窗口方法使存储器需求从BCJR方法中的NM减小到递归所需的无关紧要的存储器量。假设双重缓冲,其存储器量仅是2M,因此在分析中可以忽略。
但是,为了实现这种存储器节省方法,后向递归的计算复杂性被增加了因数P。滑动窗口方法由于“有限”窗口尺寸也是一种次优方法。
在美国专利5,933,462中(以及类似地,在Int.Symp.On Inform.Theory and its Applications,Sydney,Australia,第1073-1077页,1994年11月,1996年1月4日修订的由S.Pietrobon和S.Barbulescu撰写的名称为“修改的Bahl等的系统化卷积码解码算法的简化”的论文中,以及在Int.Symp.On Inform.Theory and its Applications,Victoria,B.C.,Canada,第586-589页,1996年9月的由S.Pietrobon撰写的“连续MAP解码器和Turbo解码器同步技术的有效实现”的论文中)描述的另一种现有技术解码器描述了另一种滑动窗口技术,如图3所示。
这种维特比滑动窗口方法通过以块进行处理减小了现有技术滑动窗口方法的计算复杂性的巨大增加。反向递归从时间t+2L开始,并且在时间t+L到时间t存储反向递归值。然后在时间t到时间t+L的块上进行前向递归和输出似然计算。存储器空间从NM下降到LM,而仅使计算复杂性加倍。以未知状态开始递归的这一关键点与滑动窗口方法相同。
这种技术需要一些存储器,并且计算复杂性仍然较高。解码器与先前描述的滑动窗口技术的不同之处在于,提供了每次以块(而不是以码元)滑动的窗口。具体地说,定义滑动窗口为具有长度L,其中L等于先前描述的学习周期P。而且,L是总格栅长度N的几分之一,并且窗口以长度L为步长从格栅的开始滑动到结尾。以此方式,在存储整个格栅的现有技术中所需的存储器已经从N减小到N/L(通常对于L=32的CDMA2000和W-CDMA系统,是3k比特)。
这种解码器还使用从未知未来状态开始的学习周期,并且因此如前所述是次优的。具体地说,由处理器从在第一窗口L的开始的一个已知状态开始进行前向递归,并在第一窗口的整个长度(L)上进行。存储这些前向递归状态。然后处理器从与前向递归开始之处距离2L的点开始的一个未知状态进行后向递归,以便在第一窗口的结尾定义一个已知状态。然后处理器从第一窗口结尾处的已知状态开始到当前状态进行第二后向递归,其中使用来自后向递归和所存储的前向递归的信息产生软输出。一旦确定了第一窗口的所有输出,窗口向前滑动L大小,并从在第一窗口的结尾确定的状态开始重复该过程。
这种解码器的缺点是,在学习周期L上进行的第一后向递归以等同的可能性(未知状态)开始,并且被允许在长度L上迭代,这如前所述是一种次优方法。而且,处理器在每个状态上操作三次,尽管可以同时运行前向和后向处理器以获得1/2的处理量。此外,后向递归需要两倍的复杂性,只能够通过增加更多的处理来减小复杂性(或者增加处理量)。此外,这种解码器以反向顺序产生软输出,在输出该软输出之前需要在一个辅助存储器中对其缓冲。
图4显示加入时间分量的图3的扩展图。在操作中,在时间0,前向处理器在从位置0到L的第一窗口上进行前向递归并存储该信息,同时在相同时间周期上,后向处理器从位置2L到L进行后向递归以在时间L在位置L在第一窗口的结尾处定义一个已知状态。此后,从时间L到2L在位置L到0上进行第二后向递归以定义第一窗口上的软输出。此时,可以倒转(reverse)软决策并按顺序输出(这清楚地在2L的延迟之后发生),清空存储器,窗口位置向前滑动L长度,并重复该过程。也可代之以利用附加的后向递归处理器和存储器,可以增加处理量。
图5显示使用附加的后向处理器的图3的另一种结果。在操作中,在时间0,前向处理器在从位置0到L的第一窗口上进行前向递归并存储该信息,同时在相同时间周期上,后向处理器从位置2L到L进行后向递归以在时间L在位置L在第一窗口的结尾处定义一个已知状态。此后,从时间L到2L在位置L到0上进行第二后向递归以定义第一窗口上的软输出。同时,前向和附加的后向处理器通过开始在第二窗口(从位置L到2L)处理信息来开始第二循环。在时间2L,输出第一窗口的软决策,同时已经完成了第二窗口的前向递归和后向学习周期。然后,进行第二窗口的第二后向递归以获得第二窗口的软输出。可以看出,这种技术使处理量加倍。由于在存储第二窗口的前向递归的同时使用了第一窗口的前向递归的信息,因此需要两倍的存储器。
上述解码器(特别是图4和5)有几个问题。首先,也是最重要的是,软输出不是按顺序产生,并且在输出前必须被倒转。这需要附加的缓冲存储器并且产生了倒转该输出所造成的附加延迟。其次,上述解码器是次优的。
本发明以一种新颖的方式解决上述问题。图6显示根据本发明的使用卷积解码的格栅图。在如图7所简化显示的通信系统中,从由长度N的格栅表示的卷积编码信号序列获得格栅码。在无线电话100中,如现有技术已知的,信号通过天线102到达接收机104和解调器106。该信号被装载到帧缓冲器108中。前向递归处理器110和后向递归处理器112在该块上操作。
本发明与图3-5中描述的滑动窗口技术的不同之处在于,其是一种最优技术,其中为每个窗口进行所有使用用于初始化的已知状态的递归,而不是在涉及学习周期的情况下由现有技术滑动窗口方法使用未知值。本发明将长度N的块划分为X个长度L的部分,尽管所有这些部分没必要具有相同的长度,在此假设它们长度相同以便于解释。在现有技术中,点0和N处的状态是已知的。本发明在从N到L的块长上提供第一后向递归以确定和存储在特定时间的反向递归,定义每个窗口的结尾处的状态量度。在不丧失普遍性的情况下,从βN开始均匀地存储N/L个反向值。由于将每个具有所存储的β端点的指数组(group of indices)定义为一个窗口,格栅被分解为具有已知β端点的N/L个部分。
此后,从每个窗口结尾处的已知β值状态为L-1未知状态量度进行后向递归并存储,接着进行前向递归,从而按顺序产生软输出并将其立即输出,而无需等待穿过整个窗口。特别地,滑动窗口被定义为具有长度L,使得L的某个倍数等于总格栅长度N,并且窗口以步长L从格栅的开头滑动到结尾。与现有技术滑动窗口方法不同,由于本发明从已知状态开始进行所有递归,因此其是最优的。
具体地说,由后向处理器112从块的已知结尾状态开始直到第一窗口的结尾(第一窗口的开始是块的开始,因此其已经是已知的)进行后向递归(使用广义维特比算法)。仅存储某个窗口结尾处的状态量度。由于这些量度是从块的已知结尾状态导出的,因此它们是最优值。然后,后向处理器112从第一窗口的结尾处的已知状态开始向该窗口的开始进行后向递归,并存储在存储器114中。然后前向递归处理器110从该窗口的开始处的已知状态开始通过整个窗口长度进行前向递归以使用β和γ计算αt(m)和∧t。此时,解码器116使用存储器114中的已知后向递归,来自前向递归处理器110的前向递归状态量度信息,和当前分支量度产生软输出决策并输出。
在第一窗口的结尾,该窗口向前滑动L大小,对该窗口以及随后的每个窗口重复上述过程直到整个块被解码。在优选实施例中,当前向递归处理器110在第一窗口内操作时,后向递归处理器112从下一个窗口结尾处的已知状态到下一个窗口的开始,使用后向递归在下一个窗口内对这部分格栅解码,以定义下一个窗口内的一组已知后向递归状态量度,在前向递归处理器110将存储器114清空时,这些状态量度被存储在存储器114中,使得前向递归处理器110可以在处理完当前窗口后立即开始下一个窗口的解码。应理解,可以使用独立的多个缓冲存储器代替上述循环缓冲器。优选地,前向和后向处理器同时操作直到块内的所有窗口解码完毕。
本发明的优点是,按顺序提供输出,并且在可以在产生时输出,无需辅助的缓冲存储器。另一个优点是,与现有技术相比,软输出解码器是最优的。本发明的软输出解码器提供具有N输出延迟的一半处理量。
图8显示具有增加的时间分量的图6的扩展图。在操作中,在时间0,后向处理器从位置N到L进行第一后向递归,以在位置L,2L,3L等处定义每个窗口结尾处的最优已知状态。这造成长度为N-L的第一延迟。从时间N-L到N(相差L),从位置L到0在第一窗口上进行第二后向递归并存储其信息。从时间N到N+L,从位置0处的初始已知状态到L进行前向递归,以利用前向递归值、所存储的后向递归值、和当前分支量度产生并输出第一窗口上的软输出。在此期间(从N到N+1),在重复上述过程的随后窗口中要使用的位置2L到L上,进行单独的后向递归。本发明根据已知turbo编码技术(例如上述Bahl等人的论文中的编码技术(BCJR算法))计算每个软输出。
本发明的优点是,其方法最优的,并且在软输出产生时将其输出,在它们被输出时清空处理器。而且,由于清空了处理器,来自下一个窗口的后向递归的新信息可以被循环存储到存储器中。因此,本发明不仅消除了现有技术中需要的用于倒转输出的缓冲存储器,而且使存储器需求减半。应理解,在有足够存储器的情况下,这不是必要的。此外,本发明因为不必重新排序现有技术中所产生的任何软输出,因此可以节省时间。还应注意,对于需要输出的后进先出格式的那些情况,可以倒转(镜像)上述的整个过程。
图9显示根据本发明,用于对接收的由块长N的格栅表示的卷积编码信号序列进行解码的方法200的流程图(还参见图6)。格栅图在现有技术中是公知的。第一步骤202将格栅划分为长度L的窗口。下一个步骤204从块结尾处的点N的已知量度到第一窗口的结尾使用后向递归对格栅的一个部分解码,存储在每个窗口的结尾确定的状态量度。该递归使用广义维特比算法。长度L与卷积码的约束长度无关,但是为方便起见可被设置为约束长度的倍数,或者是可变的。下一个步骤206选择格栅的一个窗口。下一个步骤208从上述解码步骤中定义的窗口的结尾处的已知状态到该窗口的开始,使用后向递归对该窗口内的该部分格栅解码,以定义该窗口内的一组已知后向递归状态量度,并将该组已知后向递归状态量度存储在存储器中。下一个步骤210从该窗口的开始处的已知状态开始,使用前向递归对该窗口内的该部分格栅解码,并向前移动。下一个步骤212使用前向递归状态量度、分支量度、和所存储的后向递归状态量度在前向递归过程的每个阶段计算软输出,并在每个阶段输出软输出。优选地,使用MAP算法或一种MAP变型(例如log-MAP,max-log-MAP,constant-log-MAP等)计算递归更新和软输出。
一旦完全解码了一个窗口,该窗口可以被向前“滑动”距离L,其中新窗口的开始就是前一窗口的结尾,以便在先前确定的已知状态开始。然后对新窗口重复上述步骤。该过程持续进行,直到块中的所有窗口被处理完毕。本发明的优点是,与现有技术不同,对于块中的最后一个窗口无需特殊处理。
在优选实施例中,还包括一个步骤,其中在当前窗口中发生前向递归和输出的同时,对下一个窗口进行后向递归。换句话说,在处理第一窗口的同时开始下一个窗口的处理。特别地,该步骤包括重复进行上述步骤,其中重复的选择步骤包括选择在当前选择窗口的结尾开始的下一个窗口,其中对下一个窗口的重复的解码和计算步骤与当前窗口的处理相差一个步骤地同时发生。这个附加步骤节省了处理时间,并且无需额外存储器。更优选地,在进行第一窗口的前向递归的同时清空所存储的存储器部分,并且下一个窗口的后向递归可以存储或循环存储到存储器的清空部分中。
表1总结了三种现有技术以及本发明的优选双程(two-pass)方法的存储器、处理量和计算需求。但是应注意,与现有技术的滑动窗口方法不同,本发明的主要益处是提供一种最优解法,并且需要与其它最优解法(现有技术BCJR方法)相比更少的存储器。
                    表1
              四种后向递归方法的比较
  方法    需要的存储器     处理量  计算复杂性
  BCJR    NM个字     1/2  NM次状态更新
  滑动窗口    0个字     1/P  LNM次状态更新
  维特比滑动窗口    ML个字     1/2  2NM次状态更新
  本发明    2sqrt(N)M个字     1/2  2NM次状态更新
为了表示上述方法之间的差别,表2显示了使用序列长度(N=5000),状态数目(M=8),窗口尺寸(L=32)的这些典型值时的结果。
                            表2
         N,M和L的典型值条件下各种方法之间的比较
  方法   需要的存储器     处理量   计算复杂性
  BCJR   40,000个字     1/2   40,000次状态更新
  滑动窗口   0个字     1/32   1,280,000次状态更新
  维特比滑动窗口   256个字     1/2   80,000次状态更新
  本发明   1132个字     1/2   80,000次状态更新
如表2所示,本发明的存储器需求完全处于合理范围内,并且比BCJR方法的存储器需求小一个数量级,而仅需要两倍的状态更新(实质上是进行两个整体反向递归)。相反,尽管滑动窗口方法可能需要更少的存储器,但其不是最优的。块长L与约束长度无关,并且可被选择为使存储器利用率最小而同时保持最优性能。在某些情况下,本发明需要的存储器小于维特比滑动窗口方法需要的存储器。
本发明提高了处理量并且极大减小了turbo解码器所需的存储器,而仅少量增加了计算复杂性。对于3GPP标准中的turbo码,可以容易地将40960个字的中间存储量减小到小于大约1500个字。相反,现有技术的滑动窗口技术不仅使性能下降而且需要比本发明高10到15倍的计算复杂性。
尽管以上描述了用于卷积码的软输出解码器的特定部件和功能,本领域技术人员在本发明的宽广范围内可以采用更少或更多的功能。本发明只应由所附权利要求来限制。

Claims (9)

1.一种用于对接收的由块长N的格栅表示的卷积编码信号序列进行解码的最优方法,包括以下步骤:
a)将格栅划分成长度为L的多个窗口;
b)选择格栅中一个长度为L的窗口;
c)从该块的结尾处的点N到该窗口的结尾,使用后向递归对格栅的一部分进行解码,并存储在每个窗口的结尾确定的状态量度;
d)从步骤c)中定义的该窗口结尾处的已知状态到该窗口的开始,使用后向递归在该窗口内对该部分格栅解码,以定义该窗口内的一组已知后向递归状态量度,并将该组已知后向递归状态量度存储在存储器中;
e)从该窗口的开始处的已知状态开始,使用前向递归在该窗口内对该部分格栅进行解码,并向前移动;
f)使用前向递归状态量度,分支量度,和所存储的后向递归状态量度,在前向递归的每个阶段计算软输出,并在每个阶段输出该软输出。
2.根据权利要求1的方法,其中在划分步骤中,长度L是卷积码的约束长度的倍数。
3.根据权利要求1的方法,其中在划分步骤中,长度L与卷积码的约束长度无关。
4.根据权利要求1的方法,还包括步骤g):重复步骤b)到f),直到对整个块长N的解码完成,其中重复的选择步骤包括选择从当前选择窗口的结尾开始的下一个窗口,并且其中重复的步骤b)到e)分别与当前步骤c)到f)同时发生。
5.一种具有接收机和解调器的无线电话,用于在帧缓冲器中,对块长为N的格栅表示的卷积编码信号序列进行处理,该无线电话进一步包括:
将所述格栅划分成长度为L的多个窗口的装置;
用于选择格栅中长度为L的窗口的装置;以及
用于执行所述处理的软决策输出解码器;所述解码器包括:
存储器;
后向递归处理器,从该块的结尾处的点N到一个窗口的结尾使用后向递归对格栅的一部分进行解码,以定义每个窗口的结尾处的状态量度,这些状态量度被存储在存储器中,后向递归处理器随后从该窗口的结尾处的已知状态到该窗口的开始,使用后向递归在该窗口内对该部分格栅进行解码,以定义该窗口内的一组已知后向递归状态量度,这些状态量度被存储在存储器中;
前向递归处理器,从该窗口的开始处的已知状态开始,使用前向递归在该窗口内对该部分格栅进行解码,并向前移动;
连接到存储器和前向递归处理器的解码器,使用前向递归状态量度,存储器中存储的后向递归状态量度,和每个阶段的分支量度,在前向递归的每个阶段计算一个软输出,并输出该阶段的软输出。
6.根据权利要求5的无线电话,其中长度L是卷积码的约束长度的倍数。
7.根据权利要求5的无线电话,其中长度L与卷积码的约束长度无关。
8.根据权利要求5的无线电话,其中当前向递归处理器在该窗口内操作时,后向递归处理器从下一个窗口的结尾处的已知状态到下一个窗口的开始,使用后向递归在下一个窗口内对该部分格栅进行解码,以定义下一个窗口内的一组已知后向递归状态量度,在前向递归处理器清空了存储器时,这些状态量度被存储在存储器中,使得前向递归处理器可以在处理了当前窗口之后立即开始下一个窗口的解码。
9.根据权利要求8的无线电话,其中前向和后向处理器同时操作,直到该块内的所有窗口的解码完成。
CNB011022612A 2000-02-10 2001-01-18 用于卷积码的软输出解码方法及其装置 Expired - Fee Related CN1136661C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US50081900A 2000-02-10 2000-02-10
US09/500,819 2000-02-10

Publications (2)

Publication Number Publication Date
CN1308415A CN1308415A (zh) 2001-08-15
CN1136661C true CN1136661C (zh) 2004-01-28

Family

ID=23991075

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB011022612A Expired - Fee Related CN1136661C (zh) 2000-02-10 2001-01-18 用于卷积码的软输出解码方法及其装置

Country Status (3)

Country Link
KR (1) KR100369422B1 (zh)
CN (1) CN1136661C (zh)
GB (1) GB2365289B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100703307B1 (ko) * 2002-08-06 2007-04-03 삼성전자주식회사 터보 복호화 장치 및 방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1030457B1 (en) * 1999-02-18 2012-08-08 Imec Methods and system architectures for turbo decoding
DE60007956T2 (de) * 2000-02-21 2004-07-15 Motorola, Inc., Schaumburg Vorrichtung und Verfahren zur SISO Dekodierung

Also Published As

Publication number Publication date
KR20010082093A (ko) 2001-08-29
GB0102720D0 (en) 2001-03-21
GB2365289A (en) 2002-02-13
GB2365289B (en) 2002-11-13
CN1308415A (zh) 2001-08-15
KR100369422B1 (ko) 2003-01-30

Similar Documents

Publication Publication Date Title
CN1178399C (zh) 高度并行最大后验概率(map)解码器
US6829313B1 (en) Sliding window turbo decoder
US6901117B1 (en) Soft output decoder for convolutional codes
CN1178397C (zh) 对经卷积编码的码字解码的软判定输出解码器
US6452979B1 (en) Soft output decoder for convolutional codes
CN1327653A (zh) 移动通信系统中的分量解码器及其方法
JP2004104787A (ja) 特に移動無線システム用とした、複合型ターボ符号/畳み込み符号デコーダ
US7539256B2 (en) Decoding device and decoding method
US6856657B1 (en) Soft output decoder for convolutional codes
EP1471677A1 (en) Method of blindly detecting a transport format of an incident convolutional encoded signal, and corresponding convolutional code decoder
US6868132B1 (en) Soft output decoder for convolutional codes
CN1254121C (zh) 特博码的解码方法
CN1136661C (zh) 用于卷积码的软输出解码方法及其装置
CN1147169C (zh) 用于Turbo码的解码方法和解码器
CN1129257C (zh) 串行回溯的最大似然解码方法及其使用该方法的解码器
US6857101B1 (en) Apparatus and method of storing reference vector of state metric
CN1323462A (zh) 用于最大后验概率解码器的存储器体系结构
CN1395761A (zh) 解码数据信号的方法
CN1133276C (zh) 一种高速并行级联码的译码方法及译码器
US7917834B2 (en) Apparatus and method for computing LLR
CN1145266C (zh) 特博码解码方法及其解码器
CN100557985C (zh) 数据接收方法和设备
Muller et al. Spc05-3: On the parallelism of convolutional turbo decoding and interleaving interference
CN113765622B (zh) 分支度量初始化方法、装置、设备及存储介质
Shoup Hardware implementation of a high-throughput 64-PPM serial concatenated turbo decoder

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C14 Grant of patent or utility model
GR01 Patent grant
C19 Lapse of patent right due to non-payment of the annual fee
CF01 Termination of patent right due to non-payment of annual fee