CN102835062B - 确定码距的方法及计算装置 - Google Patents

确定码距的方法及计算装置 Download PDF

Info

Publication number
CN102835062B
CN102835062B CN201180017518.0A CN201180017518A CN102835062B CN 102835062 B CN102835062 B CN 102835062B CN 201180017518 A CN201180017518 A CN 201180017518A CN 102835062 B CN102835062 B CN 102835062B
Authority
CN
China
Prior art keywords
decoder
code distance
path code
value
iteration
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
Application number
CN201180017518.0A
Other languages
English (en)
Other versions
CN102835062A (zh
Inventor
提摩斯·佩林·费雪-杰夫斯
罗家明
杨赣宁
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.)
MediaTek Singapore Pte Ltd
Original Assignee
MediaTek Singapore Pte Ltd
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 MediaTek Singapore Pte Ltd filed Critical MediaTek Singapore Pte Ltd
Publication of CN102835062A publication Critical patent/CN102835062A/zh
Application granted granted Critical
Publication of CN102835062B publication Critical patent/CN102835062B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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/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/3723Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using means or methods for the initialisation of the decoder
    • 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

Landscapes

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

Abstract

本发明提供一种确定码距的方法以及计算装置,该方法中,用于解码卷积编码数据元素的第一解码器,在第一次迭代中,确定第一路径码距的第一值。该方法也包含,在该第一解码器的第二次迭代中,经由使用该第一路径码距的第一值作为该第一路径码距的初始值而确定该第一路径码距的第二值。本发明提供的确定码距的方法以及计算装置,可以提供增强的错误校正能力。

Description

确定码距的方法及计算装置
技术领域
本发明有关于一种解码数据中使用的初始化码距的系统以及装置,上述数据为例如,使用卷积(convolutional)码编码的数据,更具体地,有关于确定码距的方法以及计算装置。
背景技术
对于数据传送以及接收,各种错误校正码(error correcting codes)已经随对应解码算法发展起来。为了提供更强的错误校正能力,这些困难以及复杂的解码器可以利用接近数据传送的理论极限的码,理论极限例如信道容量(1948年Claude Shannon引入了这个概念,所以以Claude Shannon命名为Shannon极限)。为了降低复杂度,在一方面,多个相对简单的码(其中每一个均不能独立提供显著的错误校正能力)级联在一起而产生一个较长的码,也可提供增强的错误校正能力。
发明内容
有鉴于此,本发明提供一种确定码距之方法以及计算装置。
一般说来,在一个方面中,本发明提供的包含包含,用于解码卷积编码数据元素的第一解码器在第一次迭代中,确定第一路径码距的第一值。该方法也包含在该第一解码器的第二次迭代中,经由使用该第一路径码距的第一值作为该第一路径码距的初始值而确定该第一路径码距的第二值。
本发明的实现可以包含如下一个或者多个特征。本发明提供的方法也包含,在第一解码器的第一次迭代过程中,确定第二路径码距的第一值,以及在该第一解码器的第二次迭代中,经由使用该第二路径码距的第一值作为初始值而确定该第二路径码距的第二值。确定该第一路径码距的第一值可以包含:在前向方向(forward direction))穿过网格(trellis)而计算全跟踪(full trace)。确定该第二路径码距的第一值可以包含在反向方向(reversedirection),穿过网格而计算全跟踪。该第一路径码距可以为前向路径码距。该第一路径码距可以为一个后向(backward)路径码距。该方法也可以包含:在该第一解码器的第一次迭代中,从该第一解码器提供外在(extrinsic)数据给第二解码器。该方法也可以包含:在该第一解码器的第二次迭代之前,在该第一解码器从第二解码器接收外在数据。该第一解码器可以为一个涡轮(turbo)解码器的线性解码器,以及该第二解码器可以为涡轮解码器的交织解码器。进一步说,该第一路径码距可以为前向路径码距,该第二路径码距可以为后向路径码距,以及确定该第一路径码距以及该第二路径码距的值可以在随后的迭代中交替进行。
一般说来,在另一方面,本发明提供一种计算装置,该计算装置包含用于解码卷积编码数据元素的第一解码器,该第一解码器配置为,在第一次迭代中,确定该第一路径码距的第一值。该第一解码器进一步配置为,在第二次迭代中,经由使用该第一路径码距的第一值作为初始值而确定该第一路径码距的第二值。
本发明的实施例可以包含如下一个或者多个特征。该第一解码器可以进一步配置为,在第一次迭代中,确定第二路径码距的第一值以及在第二次迭代中,经由使用该第二路径码距的第一值作为初始值而确定该第二路径码距的第二值。为了确定该第一路径码距的第一值,该第一解码器可以在正向穿过网格计算一全跟踪。为了计算该第二路径码距的第一值,该第一解码器可以在反向穿过网格计算一全跟踪。该第一路径码距可以为一正向路径码距或者后向路径码距。该计算装置可以进一步包含一第二解码器,用于解码来在该第一次迭代中来自该第一解码器的外在数据。该第一解码器进一步在该第一解码器的第二次迭代前,可以从该第二解码器接收外在数据。该第一解码器可以为涡轮解码器的线性解码器,以及该第二解码器可以为涡轮解码器的交织解码器。该第一路径码距可以为前向路径码距,该第二路径码距可以为后向路径码距,以及确定该第一路径码距以及该第二路径码距的值可以在随后的迭代中交替进行。
一般说来,在另一方面,本发明提供一种计算机程序产品,有形地体现为信息载体,以及包含指令,其中,当该指令被一处理器执行以实施一方法,该方法包含:用于解码卷积编码数据元素的第一解码器的第一次迭代中,确定第一路径码距的第一值。该方法也包含在该第一解码器的第二次迭代中,经由使用该第一路径码距的第一值作为该第一路径码距的初始值而确定该第一路径码距的第二值。
本发明的实施例可以包含如下一个或者多个特征。本发明提供的计算机程序产品可以进一步包含一组指令,该指令被该处理器执行以实施以方法,该方法包含:在该第一解码器的第一次迭代中,确定第二路径码距的第一值。该方法也可以包含,经由使用该第二路径码距的第一值作为初始值确定该第二路径码距的第二值。确定该第一路径码距的第一值可以包含在正向穿过网格计算一全跟踪。确定该第二路径码距的第一值包含在反向穿过网格计算一全跟踪。该第一路径码距为一正向路径码距或者后向路径码距。该方法也包含,在该第一解码器的第一次迭代中,从该第一解码器提供外在数据给第二解码器。该方法也可以包含,在该第一解码器的第二次迭代之前,在该第一解码器从该第二解码器接收外在数据。该第一解码器可以为涡轮解码器的线性解码器,该第二解码器可以为涡轮解码器的交织解码器。该第一路径码距可以为正向路径码距,该第二路径码距可以为后向路径码距,以及确定该第一路径码距以及该第二路径码距的值可以在随后的迭代中交替进行。
上述方面以及其他特征,或者各种组合,均可以应用于本发明的方法、装置、系统或者实现上述功能的装置、计算机程序,以及其他方式中。
本发明的其他特征以及有意效果将在说明书中详细描述,然说明书的实施例以及等同变形,只要未脱离本发明的精神,均在本发明的保护范围内,本发明的保护范围以权利要求内容为准。
本发明提供一种确定码距的方法,包含:在一第一解码器的一第一次迭代中,确定第一路径码距的第一值;以及在该第一解码器的第二次迭代中,经由使用该第一路径码距的该第一值作为该第一路径码距的初始值,而确定该第一路径码距的第二值,其中,该第一解码器用于解码卷积编码数据元素。
本发明再提供一种确定码距的计算装置,包含:用于解码卷积编码数据元素的第一解码器,以及该第一解码器配置为在第一次迭代中解码卷积编码数据元素,确定第一路径码距的第一值;以及该第一解码器进一步配置为在第二次迭代中,经由使用该第一路径码距的该第一值作为该第一路径码距的初始值确定该第一路径码距的第二值。
本发明提供的确定码距的方法以及计算装置,可以提供增强的错误校正能力。
附图说明
图1为根据本发明的示例编码系统100的示意图。
图2为根据本发明实施例的示例性解码系统200的示意图
图3为根据本发明的一个实施例在多个解码器迭代中计算以及使用码距的示意图300。
图4为根据本发明的一个实施例的数据解码运作的示意图400。
图5为根据本发明的一个实施例的解码器500的示意图。
图6为根据本发明一个实施例的解码器运作流程图600。
具体实施方式
在说明书及权利要求当中使用了某些词汇来指称特定组件。所属领域中具有通常知识者应可理解,制造商可能会用不同的名词来称呼同一个组件。本说明书及权利要求并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。在通篇说明书及权利要求项当中所提及的“包括”和“包含”为一开放式的用语,故应解释成“包含但不限定于”。以外,“耦接”一词在此包含任何直接及间接的电气连接手段。间接的电气连接手段包括通过其他装置进行连接。
请参考图1,图1为根据本发明实施例的示例编码系统100的示意图。示例编码系统100在通信信道上,使用一个或者多个编码技术准备数据(例如,数据元素例如符号)以用于传送。实现这样的编码技术可以用于在接收器一侧校正所检测到的错误。在特别的情况下,编码系统100实现涡轮(turbo)码结构,其中,例如经由为包含在输入数据中的每一个比特产生三个输入比特,将两个卷积码用在已编码输入数据102中。如图所示,每个输入比特也提供作为输出(称作系统格式)和两个卷积码的输出一起用于传输。一般说来,涡轮码由交织器分开的两个码的平行级联而形成。这样编码器104以及编码器106实施以及以相似方式运作,以将一个或者多个码(例如,递归系统卷积码,Recursive Systematic Convolutional,RSC)应用到输入数据102。为了将编码器104以及编码器106应用的码分开,在将输入数据提供给编码器106之前,交织器108处理输入数据102。这样,已交织输入数据102使得编码器106输出与从编码器104输出的数据截然不同的数据。这样,就产生了两个码,该两个码可以平行(parrallel)组合。这样的组合使得已组合码的一部分分开解码。进一步说,经由交换分别从每个解码器中提取的信息可以提高每个解码器的效能。由于交织器108为编码器106提供不同的输入数据(与编码器104的输入数据相比),编码器106的输出和编码器104的输出是不同的(例如,不相关的,uncorrelated)。这样,即可以传送更多信息,该信息由接收器用来检测错误以及可能地校正已传送数据中的错误。
一般说来,交织器108可以被认为将输入资料102的数据元素(data element)以伪随机方式重新排序,虽然为确定性(deterministic)顺序。为了提供该功能,交织器108也实现一个或者多个交织器技术,例如行列(row-column)交织、螺旋状(helical)交织、奇-偶(odd-even)交织,伪随机(pseudo-random)交织等等。与系统输出数据(图标标记为系统(systematic))一起,编码器104以及编码器106每一者输出同位数据(标记为同位(parity),以及同位’(parity’)),其中,也传送同位数据以提供用于错误检测以及校正的附加信息。
请参考图2,图2为根据本发明实施例的示例性解码系统200的示意图。示例性解码系统200能够解码已经使用一个或者多个技术编码的数据。在此情况下,编码系统100提供的三个数据集合(set)由解码系统200所接收。特别地,和系统数据(标记为系统202)一起,同位数据(例如,同位204以及同位’206)集合被接收,以及为已传送数据提供受控冗余(redundancy),这样解码系统200可以检测传送错误的存在,可能的话校正该错误。
可以使用多种解码技术揭示已传送已编码数据。举例说明,在一些实现(arrangement)中,与解码系统相关的接收器可以提供有关已接收数据位的确定(例如,代表0或者1的二进制值)。一旦确定,数据位就可以提供给解码系统用于进一步的处理。对于这样的技术,一些数据比特典型地比其他数据位具有更大确定性,尽管如此,用于确定的信息可能不提供给解码系统以及被解码系统所利用。在一些情况下,解码系统可能被提供一个数值(numerical value)(称作”软”输入)而不是来自接收器的”硬”确定。假设有此输入,解码系统可以输出(为每一个数据位)一估计,该估计反应与已传送数据位相关的概率(即,二进制值0或者1的该率)。
在此特别情况下,解码系统200包含两个解码器208以及210,解码器208以及解码器210可以使用解码技术,例如维特比解码(Viterbi)(或者另一种类型的技术)。一般情况下,解码系统200使用递归(recursive)解码技术,这样解码器208提供外在(extrinsic)输出(标记为外在(Extrinsic)),该外在输出可以认为是系统输入202的错误估计。相似地,解码器210提供外在输出(标记为外在’(Extrinsic’))。与系统输入(系统202)(透过累加器212以及累加器214)联合,累加和值分别提供给解码器208以及解码器210,其中累和值(例如,系统+外在(Systematic+Extrinsic)以及系统+外在’(Systematic+Extrinsic’))称作内在(intrinsic)数据(例如,内在=系统+外在(Intrinsic=Systematic+Extrinsic),以及内在’=系统+外在’(Intrinsic’=Systematic+Extrinsic’))。相似地,已接收同位204以及同位’206数据分别提供给解码器208以及解码器210。因为各种技术都可以使用,典型地,资料(例如,同位、同位’、内在、内在’/外在、外在’以及系统)储存在一个或者多个存储器中,该一个或者多个存储器由分别的解码器208、解码器210用于恢复(retrieval)而存取。
经由使用三个数据集合(例如,系统202,同位204以及同位’206)传送信息,编码系统100以及解码系统200被认为是三倍码率(rate three code)。尽管如此,随着对于更高码率的增长的需求,系统需要接近一倍码率(rate one code),主要从系统数据提供的信息中提取,以及尝试减少对于同位数据(例如,同位以及同位’)所提供的信息的需求。尽管如此,同位数据的数量显著减少到一倍码率典型地将效能降低到低于可用级别。这样,当一倍码率可以接近时,需要同位数据的一部分提供适当的效能。这样,提高系统效能应当包含输入数据(例如,系统202,同位204以及同位’206)提供的信息以及解码系统从输入数据产生的信息(例如外在数据)的使用。
解码器运作在系统以及同位信息的全部输入数据集合上,通常该解码器作为全追溯(full traceback)解码器而被熟知,以及该解码器被认为是优化的,但是实际上没有可观的负载情况下是不可实现的。可实现的涡轮解码器的一个实际结构方面,典型地,不会在系统信息以及同位信息的全部输入数据集合上执行解码运作,但是却将数据分解为更小更多可管理的窗口。提供全追溯效能的已窗口化解码器在用于计算初始值时可以耗费大量(如果不是理论上不可实现的)计算成本(computational overhead),以初始化解码窗口。这样,用于已窗口化解码器的一些理论可以包含减少用于储存于计算有关参数(例如,路径码距)的需求以及减少计算初始值的计算成本,以初始化解码窗口。
由于解码系统200执行处理过程的递归(recursive)特性,处理迭代(iteration)中可以使用多个技术,以使用以及重复使用信息,其中,迭代可以在一个或者多个前面的(previous)迭代中确定。举例说明,在一次迭代中,解码器208(称作线性码解码器)计算的处理码距(processing metrics)可以储存以及在随后的处理迭代中使用。相似地,一个处理迭代中解码器210(既然输入由交织器216提供,所以称作交织码解码器)计算的处理码距,可以在随后的迭代中使用。在此情况下,处理码距是路径码距(path metrics),路径码距用来计算外在输出(例如,外在,外在’),该外在输出储存以及用在下一次迭代中。在一些传统系统中,这样的路径码距可以初始设定为零值,用于每一个解码器窗口迭代(虽然对于后向(backward)或者反向(reverse)路径码距不是必要的)。尽管如此,在较高码速率情况下,这样的零值初始化可以降低效能。为了确定这样的路径码距,可以使用一个或者多个处理技术。举例说明,一次迭代中可以计算与解码器窗口的尾端比特位置相关的路径码距,以及储存为初始值,以及提供给适当的解码器窗口开始位置,以用于多次(或者全部)后面计算的随后的迭代。但是,这样的情况可能为初始路径码距(随后的处理迭代)提供值,随着时间(以及迭代)的改变,这些初始值可以变得不那么有效。为了使得初始值不会变得陈旧(stale),可以使用一个或者多个技术。举例说明,在一次迭代中已经计算的与解码器窗口尾端比特位置对齐的路径码距(在一次,通常对于后向或者反向路径码距是不必要的)可以在替换的线性以及交织处理迭代中储存,以及用于初始化解码器窗口开始位置路径码距,在后面的类似循环(like-cycle)的迭代中。对于线性以及交织迭代,为了执行这样的运作通常需要储存初始值路径码距。在另一个实现中,路径码距(可替换的在后向/反向路径码距以及前向路径码距)可以和解码器窗口尾端位位置对齐,该路径码距可以在一次迭代计算,以及用于在替换的线性以及交织处理迭代中储存。路径码距可以用于初始化解码器窗口开始位位置路径码距在随后的类似循环(like-cycle)的迭代中。这样的运作可以优化地保存初始值的新鲜(与陈旧相比),却没有实施全部追溯的昂贵开销(costly overhead)。为了执行样的运作,相关解码器的结构可能需要进一步的调整。举例说明,解码器可能需要在前向以及反向方向中实施等效运作。
各种类型结构以及技术可以使用,用以为随后的解码迭代提供路径码距。举例说明,解码器208、解码器210存取的存储器可以用于储存以及提取码距值。解码器208、210可以共享码距储存以及提取的存储器或者指定专用的存储器(例如,独立的缓冲器)。在每一个储存运作过程中,可以储存多个数量的码距值,例如,储存的数量可以基于解码系统中实现的窗口结构。
一旦产生,解码器208以及210的每一者提供外在数据(例如,解交织器218提供来自解码器210的重新排序外在数据)至分别的累加器212以及214,以继续系统数据202的递归处理。
请参考图3,图3为根据本发明的一个实施例在多次解码器迭代中计算以及使用码距的示意图300。示意图300的左手边代表线性解码器(例如,图2所示的解码器200)的运作,而示意图300的右手边代表交织解码器(例如,图2所示的解码器210)的运作。对于示意图300的两边,轴线302代表时间,以及从图示顶部延伸到底部。轴线304以及轴线306对应地代表与每个解码器相关的信息比特位置。为了容易表示,4个窗口(例如,W0,W1,W2以及W3)与每个解码器相关,尽管如此,典型的也可以有附加窗口(例如,右测,等等)。当然,在特别的情况下,与线性解码器有关的运作在时间上初始进行。尽管如此,已交织解码器的运作可以相似地初始执行。
示意图300描述了以替换方式在两个解码器之间执行的多次迭代308、310以及312。特别地,线性解码器执行迭代308以产生提供给解交织器的外在输出。在迭代310中处理外在输出(和其他数据,例如同位以及系统数据),交织解码器计算外在输出,该外在输出提供给线性解码器用在迭代312处理中。虽然使用三次迭代示意交换数据,但解码已传送数据元素可能需要很多额外次的迭代。
为了计算用于每次迭代的外在输出,路径码距(也称作状态代码距)分别由线性以及交织解码器使用。一个路径码距,前向(forward)路径码距(α)透过(网格的,trellis)前向递归(recursion)得到,以及第二路径码距(β)透过(网格的的)后向(back)递归确定。如迭代308所示,α路径码距可移动每一个窗口前向(箭头314代表的从左到右)穿过窗口(称作全追踪(fulltrace forward))而计算。不是从网格的开始计算,β路径码距从网格的后端计算。如箭头316所描述,用于每一个窗口的β路径码距从右到左以反向方向移动一个窗口计算得到(称作全追溯(full trace back))。
虽然使用α路径码距以及β路径码距计算外在输出(用于迭代308),码距值可以为随后的迭代而储存。传统的解码器使用滑动窗口结构初始将或者α或者β路径码距,在每一个窗口的开始设定为零值。这样,在一次迭代中收集的码距信息不用来帮助随后的迭代。但是透过提供与一个或者多个前面的迭代相关的路径码距值(例如,提取已储存值),随后的迭代提高用于初始值的近似性。在特别的例子中,β路径码距由线性解码器储存,以及在迭代312中使用(如箭头316所代表)以初始化对应β码距。
与线性解码器相似,路径码距α以及β也透过交织解码器(如图2的解码器210所示)的运作而确定。基于线性解码器提供的外在信息以及附加信息(例如,同位’数据)计算路径码距α以及β。在特别情况下,交织解码器透过网格(如箭头320所代表)执行全追溯,以确定β路径码距以及全追踪(如箭头322所代表)以在前向方向确定α路径码距。一旦确定,就储存β路径码距,于在交织解码器随后的迭代中使用,以提供初始值(如箭头324所表示)。附加地,经交织解码器执行其他运作,例如,计算外在数据(例如,如图2所示的外在’)然后提供给线性解码器在下一次迭代中(例如,迭代312)使用,如箭头326所代表。
透过存取路径码距以及使用码距作为初始值,全追溯运作可能对于每一个随后的迭代是不必要的。这样,经由使用前一次迭代中确定的路径码距,节约了处理时间以及资源。在这个例子中,获取到β路径码距(例如,从存储器)以及使用作为收敛窗口(convergencewindow)的初始值。如迭代312所示,透过网格,经由全追踪,确定α路径码距,而β路径码距从存储器中得到。在迭代312之后继续随后的迭代,β路径码距适当地以类似方式从存储器中得到,以及用于计算(例如,计算外在数据)。在迭代312过程之后,继续随后的迭代,β路径码距以相似方式从存储器适当获取以及用于计算(例如,计算外在数据)。对于交织解码器,迭代310中的已确定以及已储存β路径码距也用在交织解码器随后的迭代中(没有在图示中表示出来),因此,进一步减少了对于计算资源的需求。
在此特别情况下,对于线性以及交织解码器当β路径码距初始确定(从全追溯)(以用于所有随后的迭代)时,也可以采用其他方法。举例说明,α路径码距也可以计算、储存以及获取用于后面的迭代使用。在一种情况下,在相同的迭代中,可确定α路径码距,也确定以及储存β路径码距(用于后面的使用)。路径码距也可以及于替换的迭代而确定,或者是用迭代样态(pattern)的其他类型而确定。举例说明,在一次迭代中可以确定β路径码距,而在下一次迭代中确定α路径码距。这样的技术提供相对当前路径码距,因为每一个码距不在是一个从全跟踪(full trace)的迭代创建。
请参考图4,图4为根据本发明的一个实施例的数据解码运作的示意图400。不在随后的迭代的使用中计算以及储存一个类型的路径码距(例如,β路径码距),解码器安排示意图400的给出了在替换的解码器迭代中计算不同路径码距。在此特别的例子中,α路径码距首先计算(在网格的前向全trace)以及储存。在下一个次迭代中,使用已储存α路径码距,在全追溯中计算β路径码距以及与已储存α路径码距一起使用。储存已计算β路径码距以及在后面的迭代中使用。经由在每一次迭代中交替确定α以及β路径码距,相对当前路径码距在每一次迭代中存在。这样”状态”路径码距信息不在时间的表示周期中使用,或者不在几次迭代中使用。
与调度(schelduling)示意图300相似(如图3所示),示意图400的左手边代表线性解码器(例如,图2所示的解码器208)的运作,以及右手边代表交织解码器(例如,解码器210也如图2所示)的运作。垂直轴线402代表时间,水平轴线404以及406分别与解码器相关的代表4个窗口(例如,W0,W1,W2and W3)信息比特位置。附加窗口是很典型的,但是在图示中只以4个窗口为例作为说明。当然,与线性解码器相关的运作也给出示意图,并且初始执行,交织解码器的运作可以描述为在其他情况中初始执行。也与示意图300相似,与两个解码器相关的迭代408、410、412以及414给出示意,并且以替换的方式中执行。
对于迭代408,从全追踪(full trace)中确定α路径码距,如箭头416所示,以及从预先确定的初始值(例如,零值)中确定β路径码距。从提供给线性解码器的路径码距,计算外在数据并且提供给已交织解码器。额外地,储存在随后的迭代(例如,迭代412)中使用的α路径码距(如箭头418所描述)。在此情况下,在迭代410中由交织解码器执行的运作与线性解码器在迭代408中执行的运作相似。举例说明,全追踪(如箭头420所描述)确定α路径码距,以及从预先确定初始值中以部分方式计算β路径码距。一旦确定,交织解码器使用α以及β路径码距以确定外在数据,其中,该外在数据提供给线性解码器(如箭头422所描述)。额外地,储存在已交织解码器的下一次迭代中使用的α路径码距(如箭头424所描述)。
对于下一次迭代,迭代412,线性解码器获得已储存α路径码距以及经由执行全追溯(full trace back)而确定β路径码距,如箭头426所描述。与较早的迭代相似,使用α以及β路径码距计算外在数据,其中,该外在数据由该交织解码器在下一次迭代414中使用(如箭头428所描述)。线性解码器的随后的迭代中使用的β路径码距也储存(如箭头430所描述)。经由在路径码距计算中交替,因为路径码距已经从全跟踪在一个或其他方向中计算得出,所以不会再通过一次迭代。在相似方式中,对于已交织解码器的下一次迭代,迭代414,α路径码距来自储存装置,以及β路径码距从全追溯(如箭头432所描述)中确定。也储存β路径码距(如箭头434所描述),用于已交织解码器的下一次迭代的执行。
如图3以及图4所示的安排示意图代表为相对当前路径码距提供给每个解码器的两个方法,尽管如此,其他技术也可以使用。举例说明,路径码距可以计算以及储存,以在两个或者多次迭代中使用。为了实施于这些技术有关的运作,在特定的全追踪以及全追溯中,线性以及交织解码器的功能可能需要在前向以及反向方向中运作。例如,与能够在前向以及反向方向执行的交织器运作一起,错误校正(例如,迭代冗余校正(cyclic redundancy check,CRC))以及其他解码运作可能需要双向执行。
请参考图5,图5为根据本发明的一个实施例的解码器500的示意图,解码器500代表最大事后机率(maximum a posteriori,MAP)解码器,其中,该解码器实现窗口运作,而且能够在任意方向(例如前向以及后向方向)能够穿过(traversing)网格。与图4的运作相似,MAP解码器能够从码块的一端到另一端的穿过网格全跟踪。对于线性以及交织解码部分解码器可替换地在确定前向以及后向路径码距(对于每相隔一次迭代))。在预先确定窗口长度位置,全跟踪路径码距值储存在初始缓冲器502中,以及之后获得以用作初始值。典型地,码块大小近似5114位,因此64位的80个窗口,每一个可以用于产生用于初始缓冲器502的码距。在此实现中,单一缓冲器502能够储存用于线性以及交织解码器运作的初始路径码距,尽管如此,也可以使用多个缓冲器。举例说明,可以整合一个缓冲器用于线性解码器运作,第二缓冲器用于交织解码运作。
在此情况下,多个输入缓冲器504接收输入(例如,同位、系统以及外在信息)用以解码运作。输入信息提供给分支码距单元(Branch Metric Unit,BMU)506,BMU 506计算输入缓冲器504提供的数据中的分支码距(例如,代表已接收符号以及可能的符号之间的距离)。与BMU 506提供的分支码距一起,来自初始缓冲器502的码距(透过初始累加-比较-选择(Initial Add-Compare-Select,ACS)单元508)分别提供给αACS 510、βACS 512,用于产生α路径码距以及β路径码距。在此情况下,依赖于穿过的方向,码距缓冲器514储存α路径码距或者β路径码距。一对多任务器516、518提供α路径码距以及β路径码距(或者来自ACS单元,或者来自储存在码距缓冲器514)至对数似然比(Log-Likelihood Ratio,LLR)单元520,以计算代表位值(外在数据)的可能性。
请参考图6,图6为根据本发明一个实施例的解码器运作流程图600,流程图600代表解码器的一些运作,其中,解码器为例如线性解码器(例如,解码器208)或者交织解码器(例如,解码器210)的解码器。这样的解码器可以实现在一个或者多个硬件结构中,例如,基于结构的处理器,或者其他类型的设计。在一些基于结构的处理器中,解码器可以在单片(single)处理器或上执行或者分布在多个处理器之间执行。各种类型电路(例如,组合逻辑,序列逻辑等等)以及计算装置可以单独用于或者组合用来执行解码器的运作。举例说明,在基于处理器的系统设计中,指令可以由处理器执行(例如,微处理器)以提供解码器的运作。这样的指令可以储存在存储器装置中(例如,硬驱动、CD-ROM等等)以及提供给处理器(或者多个处理器)执行。
解码器的运作可以包含,在第一解码迭代中,计算路径码距(例如,α路径码距、β路径码距)以及对应来自输入数据的外在数据,输入数据例如,系统数据、同位数据等等(步骤602,在第一次迭代中,计算用于第一(线性)解码器的路径码距以及外在数据)。在此例子中,流程图600的运作根据线性解码器(例如,解码器208,如图2所示)进行描述,尽管如此,这样的运作可以映像到交织解码器(例如解码器210,也如图2所示)。一旦码距计算完毕,运作也可以包含储存路径码距(步骤604,储存已计算路径码距)以及提供外在数据给第二解码器(例如,交织解码器)(步骤606,为第二(交织)解码器提供外在数据)。透过提供外在资料,第二解码器可以相似地(在分开的解码迭代中)计算路径码距以及计算来自输入数据(例如系统数据、同位数据等等)的外在数据(第一解码器提供)。一旦完成,在第二解码迭代中,外在数据与对应输入数据(例如,系统数据,同位数据等等)可以由解码器(来自第二解码器)接收(步骤608,在第二次迭代中,接收输入数据以及来自交织解码器的外在数据)。也在第二次迭代中,运作包含接收第一次迭代中储存的路径码距(步骤610,接收在第一次迭代中储存的路径码距)。从已接收路径码距,解码器计算与第二解码迭代相关的路径码距(步骤612,基于已接收路径码距计算路径码距)。例如,在第一解码迭代中,计算以及储存α路径码距。经由在第二次迭代中提取已储存α路径码距,在该随后的迭代中,解码器可以使用已提取码距作为初始α路径码距值。这样,已提取码距就可以用在其他计算中,该其他计算涉及到其他码距(例如,β路径码距)。在此例子中,在一次迭代中储存α路径码距,以及在随后的解码迭代中提取α路径码距。相似地,在一些情况下,可以在一次迭代中计算以及储存β路径码距,以在一个或者多个随后的解码迭代中使用。
如上所述,在一些解码系统中,可以基于处理器而设计。这样,根据本发明的实施例,为了实施如流程图600所描述的运作,解码器以及优化的与解码器系统的其他部分可以实施任何前面描述的计算器实施的方法。举例说明,解码系统可以包含用于执行与解码数据元素相关的计算器指令的计算装置(例如,计算器系统)。计算装置可以包含处理器、存储器、储存装置,以及输入/输出装置。每一个组件可以使用系统总线或者其他相似结构而互相连接。处理器可以处理计算装置内执行的处理指令。在一个实现中,处理器为单线程(thread)处理器。在另一个实现中,处理器是多线程处理器。处理器可以处理储存在存储器或者储存装置中的指令,以在输入/输出装置的用户界面(interface)显示图形信息。
存储器在计算装置中储存信息。在一个实现中,存储器为计算器可读媒体。在一个实现中,存储器为易失性(volatile)存储器单元。在另一个实现中,存储器为非可易失性(non-volatile)存储器单元。
储存装置能够为计算装置提供大容量储存空间。在一个实现中,储存装置为计算器可读媒体。在各种不同的实现中,储存装置可以为软软式磁盘片(floppy disk)、硬盘(hard disk)、光盘(optical disk)或者磁带(tape)装置。
输入/输出装置为计算装置提供输入/输出运作。在一个实现中,输入/输出装置包含键盘以及/或者点击(pointing)装置。在另一个实现中,输入/输出装置包含用于显示图形用户界面的显示单元。
所述特征(例如解码系统200)可以在数字电子电路中、或者计算器硬件、轫体、软件或者上述几者的组合中实现。上述装置(apparatus)可以实现在明确体现为一信息载体的计算器程序产品中,以用于由可程序化处理器执行,其中,计算器程序产品例如,机器可读储存装置或者传播信号(propagated signal)中;以及方法步骤可以由可程序化处理器实施,其中,可程序化处理器执行指令的程序以实施在所述输入数据以及产生输入的运作的功能。所述特征可以在一个或者多个计算器程序中具有优势地实现,其中,一个或者多个计算器程序为在可程序化系统中执行,可程序化系统包含至少一个可程序化处理器,该至少一个可程序化处理器耦接以从下列装置接收数据以及指令,以及将数据以及指令传送给下列装置:数据储存系统、至少一个输入设备,以及至少一个输出装置。计算器程序为一组指令,该组指令可以直接或者间接使用在计算器中,以实施某一活动或者带来某一结果。计算器程序可以任何形式可程序化语言形式书写,其中,可程序化语言包含:汇编(compiled)语言或者翻译语言,以及计算器程序可以以下列任何形式展开(deploy),包含单独存在的程序或者模块、组件、子程序(subroutine)、或者其他用在计算环境中的适合单元。
用于执行指令程序的适合处理器包含(举例说明)通用以及专用微处理器以及单独处理器或者一个或者多个任何类型的计算器处理器。一般说来,处理器可以从只读存储器或者随机存取存储器或者上述两者接收指令以及数据。计算器的关键元素为使用于执行指令的处理器以及用于储存指令以及数据的一个或者多个存储器。一般说来,计算器可以包含,或者运作上耦接以与下列装置通信:用于储存数据文件的一个或者多个大容量储存装置;这样的装置包含磁盘(magnetic disks),例如内部硬盘(internal hard disks)以及可移除碟(removable disks),磁光盘(magneto-optical)以及光盘。适合有形地体现计算器程序指令以及数据的储存装置包含所有形式的非可挥发存储器,包含但是不限于半导体存储器装置,例如EPROM、EEPROM、闪存装置、磁盘,例如内部硬盘以及可移除碟,磁光盘以及CD-ROM以及DVD-ROM碟。处理器以及存储器可以实现在ASIC中,或者由ASIC所支持。
多个特征可以实现在计算器系统中,计算器系统包含后端(back-end)组件,例如,数据服务器,或者包含中间软件(middleware)组件,例如应用服务器或者因特网服务器,或者包含前端组件,例如客户端计算器具有图形用户界面,或者因特网浏览器,或者上述几者的任何组合。系统的组件可以由数字数据通信媒体或者任何形式而链接,其中,数字数据通信媒体例如通信网路。通信网路的例子包含:LAN、WAN以及计算器和形成因特网的网络。
计算器系统可以包含客户端以及服务器。客户端以及服务器一般彼此远离,典型地,透过网络相互作用,其中,网络可以如上述任意一者。客户端以及服务器之间的关系凭借运行在分别的计算器上的计算器程序而产生,以及凭借彼此具有客户端服务器关系而产生。
任何所属领域技术人员,在不脱离本发明的精神和范围内,当可做些许的更动与润饰,因此本发明的保护范围当视所附权利要求所界定者为准。

Claims (8)

1.一种确定码距的方法,包含:在一第一解码器的一第一次迭代中,通过在前向方向计算全跟踪确定第一路径码距的第一值并存储该第一路径码距的第一值,且通过在反向方向计算全跟踪确定第二路径码距的第一值;以及在该第一解码器的第二次迭代中,经由提取该第一路径码距的该第一值并使用提取的该第一值作为该第一路径码距的初始值,而确定该第一路径码距的第二值,且确定该第二路径码距的第二值,并储存该第二路径码距的该第二值,其中,该第一解码器用于解码卷积编码数据元素,且其中,在随后的多个迭代中,交替储存该第一路径码距及该第二路径码距的多个值,当通过在该前向方向执行该全跟踪确定该第一路径码距的该多个值时,储存该第一路径码距的该多个值;且当通过在该反向方向执行该全跟踪确定该第二路径码距的该多个值时,储存该第二路径码距的该多个值。
2.如权利要求1所述的确定码距的方法,进一步包含:
在该第一解码器的第一次迭代中,从该第一解码器提供外在数据至第二解码器。
3.如权利要求2所述的确定码距的方法,进一步包含:
在该第二解码器的第二次迭代之前,从该第二解码器接收该第一解码器的外在数据。
4.如权利要求2所述的确定码距的方法,其中,该第一解码器为涡轮解码器的线性解码器。
5.如权利要求2所述的确定码距的方法,其中,该第二解码器为涡轮解码器的交织解码器。
6.一种确定码距的计算装置,包含:
第一解码器,该第一解码器用于解码卷积编码数据元素,以及该第一解码器配置为在第一次迭代中通过在前向方向计算全跟踪确定第一路径码距的第一值并储存该第一路径码距的该第一值于该计算装置的存储器,且通过在反向方向计算全跟踪确定第二路径码距的第一值;以及该第一解码器进一步配置为在第二次迭代中,经由从该存储器提取该第一路径码距的该第一值并使用提取的该第一值作为该第一路径码距的初始值确定该第一路径码距的第二值,且确定该第二路径码距的第二值,并储存该第二路径码距的该第二值于该计算装置的存储器;且其中,在随后的多个迭代中,交替储存该第一路径码距及该第二路径码距的多个值,当通过在该前向方向执行该全跟踪确定该第一路径码距的该多个值时,储存该第一路径码距的该多个值;且当通过在该反向方向执行该全跟踪确定该第二路径码距的该多个值时,储存该第二路径码距的该多个值。
7.如权利要求6所述的确定码距的计算装置,进一步包含:
第二解码器,该第二解码器用于在该第一次迭代中接收外在数据,其中,该外在数据来自该第一解码器。
8.如权利要求7所述的确定码距的计算装置,其中,在该第一解码器的第二次迭代之前,该第一解码器从该第二解码器接收外在数据。
CN201180017518.0A 2010-07-27 2011-07-21 确定码距的方法及计算装置 Active CN102835062B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/843,896 US8650468B2 (en) 2010-07-27 2010-07-27 Initializing decoding metrics
US12/843,896 2010-07-27
PCT/US2011/044906 WO2012015672A1 (en) 2010-07-27 2011-07-21 Initializing decoding metrics

Publications (2)

Publication Number Publication Date
CN102835062A CN102835062A (zh) 2012-12-19
CN102835062B true CN102835062B (zh) 2015-06-24

Family

ID=45527947

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180017518.0A Active CN102835062B (zh) 2010-07-27 2011-07-21 确定码距的方法及计算装置

Country Status (5)

Country Link
US (1) US8650468B2 (zh)
EP (1) EP2599253B1 (zh)
CN (1) CN102835062B (zh)
TW (1) TWI450501B (zh)
WO (1) WO2012015672A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101612294B1 (ko) * 2011-02-15 2016-04-15 삼성전자주식회사 통신 시스템에서 복호화를 위한 장치 및 방법
US9094994B2 (en) * 2013-02-27 2015-07-28 The Chinese University Of Hong Kong Network-coding building blocks and decomposition scheduling based thereon
US20150033094A1 (en) * 2013-07-23 2015-01-29 Yuan Ze University Window-stopped method for applying to turbo decoding
TWI565246B (zh) * 2015-01-12 2017-01-01 晨星半導體股份有限公司 迴旋編碼的解碼方法
CN105991142A (zh) * 2015-02-13 2016-10-05 晨星半导体股份有限公司 卷积编码的解码方法
WO2022191775A1 (en) * 2021-03-09 2022-09-15 Real Estate Analytics Pte Ltd. A system for generating a value index for properties and a method thereof

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1391995A2 (en) * 2002-08-20 2004-02-25 NEC Electronics Corporation MAX-LOG-MAP decoding with windowed processing of forward/backward recursions
CN1241329C (zh) * 2000-06-30 2006-02-08 诺基亚有限公司 对卷积编码的代码字进行解码的方法和设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005210238A (ja) * 2004-01-21 2005-08-04 Nec Corp ターボ復号装置及びその方法並びにその動作プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1241329C (zh) * 2000-06-30 2006-02-08 诺基亚有限公司 对卷积编码的代码字进行解码的方法和设备
EP1391995A2 (en) * 2002-08-20 2004-02-25 NEC Electronics Corporation MAX-LOG-MAP decoding with windowed processing of forward/backward recursions
CN101079642A (zh) * 2002-08-20 2007-11-28 恩益禧电子股份有限公司 误差校正码的译码方法及其程序和设备

Also Published As

Publication number Publication date
TW201206091A (en) 2012-02-01
EP2599253B1 (en) 2016-11-23
EP2599253A1 (en) 2013-06-05
CN102835062A (zh) 2012-12-19
TWI450501B (zh) 2014-08-21
US20120030536A1 (en) 2012-02-02
WO2012015672A1 (en) 2012-02-02
US8650468B2 (en) 2014-02-11
EP2599253A4 (en) 2014-06-11

Similar Documents

Publication Publication Date Title
CN102835062B (zh) 确定码距的方法及计算装置
US6980605B2 (en) MAP decoding with parallelized sliding window processing
CN1808912B (zh) 纠错译码器
CN100525119C (zh) Turbo译码装置和Turbo译码方法
CN1168237C (zh) 移动通信系统中的分量解码器及其方法
EP1156588B1 (en) Method and apparatus for maximum a posteriori probability decoding
EP2418796B1 (en) Bitwise reliability indicators from survivor bits in Viterbi decoders
CN104025459A (zh) 译码处理方法及译码器
US6950975B2 (en) Acceleration of convergence rate with verified bits in turbo decoding
WO2008075004A1 (en) Decoding of serial concatenated codes using erasure patterns
CA2338919A1 (en) A simple implementation of turbo decoder
EP2339757B1 (en) Power-reduced preliminary decoded bits in viterbi decoder
WO2002029977A2 (en) A decoder for trellis-based channel encoding
CN103856218B (zh) 译码处理方法及译码器
CN100433836C (zh) 使用冗余对视/音频和语音数据进行解码的方法和系统
US9325351B2 (en) Adaptive multi-core, multi-direction turbo decoder and related decoding method thereof
CN103701475B (zh) 移动通信系统中8比特运算字长Turbo码的译码方法
JP3892471B2 (ja) 復号方法
CN113258937B (zh) 分量译码器、外信息存储单元以及Turbo码译码器
CN113765622B (zh) 分支度量初始化方法、装置、设备及存储介质
CN111970008B (zh) 一种涡轮码解码器及软输入软输出方法、设备和存储介质
JP2006115534A5 (zh)
Kerr et al. Near ML performance for linear block codes using an iterative vector SISO decoder
US7032165B2 (en) ACS unit in a decoder
CN116896427A (zh) 一种高效的TurboFSK译码迭代方法

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