CN101411071A - 具有双向滑动窗口体系结构的map译码器 - Google Patents
具有双向滑动窗口体系结构的map译码器 Download PDFInfo
- Publication number
- CN101411071A CN101411071A CNA2007800107736A CN200780010773A CN101411071A CN 101411071 A CN101411071 A CN 101411071A CN A2007800107736 A CNA2007800107736 A CN A2007800107736A CN 200780010773 A CN200780010773 A CN 200780010773A CN 101411071 A CN101411071 A CN 101411071A
- Authority
- CN
- China
- Prior art keywords
- sub
- piece
- decoder
- state metric
- section
- 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
Landscapes
- Error Detection And Correction (AREA)
Abstract
一种MAP译码器,或者具有MAP译码器作为其组成部分的turbo译码器,其配置了双向滑动窗口。将滑动窗口体系结构应用于具有N个时间步长格状结构的编码数据块的前向状态度量(FSM)计算。将数据块分隔成较小的子块,并且并行执行对两个或更多个子块的前向递归,从而获得FSM。每个子块都与前一子块重叠k个时间步长,其中k为大于零的整数值。这提供了在子块k+t时间步长的FSM的良好近似。丢弃与除第一子块以外的每个子块的前k个时间步长相关联的FSM。还执行对每个子块的反向递归,以获取该子块的反向状态度量(RSM)。随后基于FSM和RSM计算似然比。
Description
依据美国法典第35编119条的优先权要求
本专利申请要求享有2006年1月27日提交的申请号为60/762,764,题目为“MAP Decoder with Bi-Directional Sliding Window Architecture”(具有双向滑动窗口体系结构的MAP译码器)临时专利申请的优先权;该申请已转让给本受让人,通过引用将该申请显式地并入本说明书。
技术领域
本发明的各种实施例适用于通信系统,更具体地说,适用于数字通信系统中对数据进行译码的设备和/或方法。
背景技术
在通信系统使用多种技术来增加信息传输量,而同时使传输差错最小化。在这些通信系统中,信息通常表示为二进制位序列或是称为帧的位块。将二进制信息调制为信号波形并通过通信信道传输。通信信道会引入破坏传输信号的噪声和干扰。在接收机端,已接收的信号可能被破坏,而成为被传输的二进制信息的估计量。误码或误帧数取决于通信信道中的噪声和干扰的量。
为了抵销传输信道破坏的影响,在数字通信系统中经常应用纠错编码来保护数字信息免受噪声和干扰的影响,并减少误码/误帧数。信道编码通常通过有选择地将冗余位引入被传输的信息流中来完成。这些附加信息位允许检测和校正接收到的数据流中的误码,从而提供更加可靠的传输。
一种类型的纠错码为turbo码,其具有接近香农限的纠错性能。Turbo编码的基础是在将要通过信道传输的数据中引入冗余。冗余数据有助于从接收数据中恢复原始数据。turbo码可以获得香农信道容量的大约1dB之内的传输特性。
通信理论中的一种众所周知的公理是对极大块长度n随机选取的代码能够接近香农信道容量限。然而,对这种代码的译码随着n增加,直到某一点,译码变得在物理上无法实现。
turbo码的一类译码器为最大后验(MAP)算法,也称为后验概率(APP)算法。MAP算法通过对分块的二元格状树进行前向递归并随后进行反向递归来对块进行译码,从而得出格状图中每个状态的一对状态度量。格状树的前向递归以前向方向对块进行译码,从而得到信息序列的第一估计值(前向状态度量)。格状树的反向递归(也称为后向递归)以反向方向对块进行译码,从而获得信息序列的第二估计值(反向状态度量)。在传统的MAP算法实现中,一个问题是,对前向状态度量和反向状态度量进行存储,即使是对于适中的约束长度和块长度,也会占据极大的存储空间。
传统MAP算法的另一个困难在于,顺序处理(即前向递归和反向递归)无法满足译码时间的约束。特别是,对块的二进制格状结构进行前向递归并随后进行反向递归需要的时间可能比对速率敏感的应用程序所容许时间更长。数据块的译码需要的时间可能比对速率敏感的应用程序所期望的时间更长。
发明内容
在一方面,一种译码器包括:使用滑动窗口体系结构将数据块分隔成多个子块的块分隔器;耦合到所述块分隔器的第一译码器,用于接收所述多个子块,该第一译码器包括多个并行译码器,这些并行译码器并行确定第一组状态度量,该第一组状态度量是所述多个子块中至少二个子块的状态度量;以及耦合到所述第一译码器的第二译码器,用于从所述第一译码器接收所述多个子块,以及计算第二组所述多个子块的状态度量。第一和第二译码器可以实现最大后验概率(MAP)算法,来纠正数据块中的差错。第一和/或第二译码器可以确定数据块的格状结构的前向状态度量。第二译码器还可以将从第一译码器接收的每个子块分隔成多个较小的段,并在该多个较小的段上应用滑动窗口体系结构计算第二组状态度量。第二译码器可包括多个并行译码器,其中第二译码器中的每个并行译码器对应于第一译码器中的多个并行译码器中的一个。每个子块可以包括多个段,其中第二译码器可设置为,一旦第一译码器已计算出一个段的第一组状态度量,则第二译码器计算该段的第二组状态度量。
在另一方面,一种用于递归地对编码块中的信息进行译码的方法,该方法包括:将所述编码数据块分隔成多个较小的子块,每个子块包括多个较小的段;并行获得两个或更多所述子块的前向状态度量;以及一旦获得了一个段的前向状态度量,就获得该段的反向状态度量。该方法还可以包括接收具有N个时间步长格状结构的编码信息块;将编码块分隔成N/L个子块,其中L为大于零的整数;以及并行计算N/L个子块的前向状态度量。可替换地,该方法还可以包括:存储每个子块第一段的第一组度量;基于第一段的第一个和第二个状态度量获取第一段的似然比;以及一旦得出第一段的似然比,就丢弃每个子块第一段的第一组度量。
在上述的译码器和方法中,每个子块可以与前一子块重叠格状结构的k个时间步长,其中,k为大于零的整数值。与第一子块之后的每个子块的前k个时间步长相关联的度量将从第一组状态度量中丢弃。子块的长度可由译码时间约束决定。数据块可采用turbo码编码。一旦计算出了一个段的似然比,该段的第一组度量将从存储设备中被丢弃。在计算数据块中数据的似然比过程中可以使用第一组状态度量和第二组状态度量。
应该注意到,所述的译码器和/或方法可以由用于执行一个或多个所述译码器和/或方法的功能的处理器来实现。类似的,所述的译码器和/或方法可以由包含指令的机器可读介质来实现,其中所述指令设置为执行译码器和/或方法的一个或多个功能。
附图说明
图1为示出了可实现本发明的一个或多个特性的示例性通信系统的方框图。
图2为示出了用于执行数据译码的示例性接收设备的方框图。
图3为示出了根据本发明的一个特征,具有滑动窗口体系结构并在前向译码器上并行译码的示例性译码器的方框图。
图4为示出了信息块如何在前向译码器的滑动窗口体系结构中分隔成较小的子块。
图5为示出了具有多个并行译码器的示例性译码器结构的框图。
图6为示出了由前向和反向译码器对数据块分隔和处理的示例性表格。
图7为示出了在前向和反向译码路径上采用滑动窗口实现递归译码的示例性方法的流程图。
图8为示出了在两级译码器中,分隔接收到的数据块的示例性方法的流程图。
图9示出了另一种示例性译码装置。
具体实施方式
下面,将给出具体的细节描述,从而提供对实施例的深入理解。然而,本领域的普通技术人员可以理解,这些实施例可以在没有这些具体细节的情况下实施。例如,可在框图中示出电路,目的在于避免由于不必要的细节而使实施例不易理解。
还注意到,可将各实施例表示为以流程图、流图、结构图或是方框图形式描述的过程。尽管流程图可能将操作描述为顺序过程,很多操作可以以并行或并发的方式进行。另外,操作的顺序可以重新安排。当一个过程的操作完成时,该过程终止。过程(process)可以对应于方法、功能、过程(procedure)、子例程、子程序等等。当一个过程对应一个函数时,该过程的终止对应于该函数返回到调用函数或主函数。
此外,存储介质可以表示用于存储数据的一个或多个器件,包括只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光存储介质、闪速存储器器件和/或其他用于存储信息的机器可读介质。术语“机器可读介质”包括,但不仅限于:便携式或固定存储设备、光存储设备、无线信道、以及各种其他能够存储、包含或输送指令和/或数据的介质。
另外,各实施例可由硬件、软件、固件、中间件或者他们的组合实现。当在软件、固件、中间件或微码中实现时,可将运行必要任务的程序代码或代码段存储在诸如存储介质或其他存储模块的机器可读介质中。处理器可执行必要的任务。代码段可表示过程、函数、子程序、程序、例程、子例程、模块、软件包、类或者是指令、数据结构或程序语句的组合。一个代码段可通过传递和/或接收信息、数据、实参、参数或存储器内容与另一代码段或硬件电路相耦合。信息、实参、参数、数据等等可经由适当的方式传递、转发或传输,所述适当的方式包括存储器共享、消息传递、令牌传递以及网络传输等等。
一般地,本文公开了一种MAP译码器或以MAP译码器作为组成部分(例如,递归前向和反向译码器)的turbo译码器,所述MAP译码器或turbo译码器具有双向滑动窗口。进入前向译码器中的数据块被细分为子块,并且对子块的前向递归操作是并行进行的。这种方法认识到计算前向状态度量的前向递归不需要从格状结构的第一时间步长开始。而取代之的是,将滑动窗口体系结构应用于前向状态度量计算。这样可以减少前向状态度量(通过传统算法)的存储空间,并且,由于前向状态度量是并行计算的,所以也将减少译码时间。
另外,在反向译码器上,甚至可将来自前向译码器的子块进一步细分。还可将用于反向状态度量计算的滑动窗口体系结构应用于子块的每一个(或前向滑动窗口),从而减少用于前向状态度量的存储。
图1为示出了可实现本发明的一个或多个特性的示例性通信系统的方框图。该通信系统包括第一设备102,第一设备102对信息进行编码来通过通信信道104将信息传输到第二设备106,第二设备106对该信息进行译码。第一设备102包括接收数据并采用纠错码对其进行编码的编码器108。然后,将编码数据发送至调制器110,调制器110将信息调制到载波信号上,然后由发射机112发射。通信信道可以是任何将编码信息输送到接收方第二设备106的介质,包括有线、无线、无线电、卫星或它们的结合。第二设备106包括接收机114和解调器116,解调器116解调所接收信号,并将分组、帧或数据块提供给译码器118。译码器118对信息进行译码,从而提供数据输出。译码器118可设置为实现最大后验(MAP)算法,也称为后验概率(APP)算法。
图2为示出了用于对数据进行解码的示例性接收设备202的方框图。接收设备202包括通信接口204,其从通信信道接收载有信息的信号。随后,通信接口204将所接收载有信息的信号发送到用于对所接收信号中的信息进行译码的处理系统206。
处理系统206的功能是作为MAP译码器或以MAP译码器作为组成部分(例如递归前向和反向译码器)的turbo译码器,并且该处理系统在译码器的两个前向和反向递归路径上都实现滑动窗口。从通信接口204接收的信息被细分为较小的块(即子块)并在两个或更多个的子块上并行执行前向递归功能。为了这个目的,处理系统206可包括一个或多个处理器,专用集成电路(ASIC)和/或用于并行运行的译码器件。前向译码器计算子块从开头到末端的状态度量,而反向译码器计算子块从末端到开头的度量。存储器设备208可与处理系统206相耦合,用来存储在译码过程中生成的前向和/或反向状态度量。
一个附加特性提供了,处理系统206也可用于实现具有滑动窗口体系结构的反向译码器,用于细分了的较小块中每一块的反向状态度量的计算。当实现反向译码器时,来自前向译码器的细分了的较小的块可更进一步细分,同时,将滑动窗口体系结构并行应用于前向状态度量计算器的各个子块的每一个。从而,所公开的特性减少了用于前向和/或反向状态度量的存储,并由于在前向和/或反向译码器上的并行译码,进一步减少了译码时间。
在一些实现中,甚至在前向状态计算在子块上完成之前,将用于反向状态度量计算的滑动窗口体系结构应用于前向状态度量计算器的子块。即,用于反向状态度量计算的滑动窗口体系结构意味着,反向状态度量计算在子块的段上执行,因为所述段的前向状态度量计算已完成。从而,对一个子块的各段的反向状态度量计算会在对该子块的其他段的前向状态度量计算还在进行时发生。这加快了整个计算过程,因为不需要等到对一个子块的所有前向状态计算全部完成。在一些实现方式中,对一个段的前向度量先进行计算,然后进行对同一段的反向状态度量的计算。在其他实现方式中,对一个段或一个子块的反向状态度量先进行计算,然后进行对该子块或段的前向状态度量的计算。在又一些其他实现方式中,对一个段的前向和反向度量的计算近似同时地进行。尽管一些例子只说明了这些顺序中的一个,而没有说明其他的顺序,可以理解,本发明可应用于不背离本发明的任何结构中。
随后,使用前向和反向状态度量来计算子块的似然比(例如,对数似然比)。在一个实现中,将当前这组前向状态度量和计算出的对数似然比存储在存储器208中。这里,由于对数似然比是与反向状态度量一同计算出的,所以不需要存储反向状态度量。
图3为示出了具有滑动窗口体系结构并在前向译码器上并行译码的示例性译码器300的方框图。译码器300可作为实现MAP算法的译码器来运行。译码器300包括从通信信道接收二进制信息的帧缓冲器302。将接收的二进制信息作为数据块发送给前向译码器304。将数据块(例如,窗口)细分为较小的数据块(例如,子块或滑动窗口),随后较小的数据块由前向译码器304并行处理。即,前向译码器304执行子块的二元格状结构的前向递归。通过格状结构的每条路径表示唯一的时间状态的二元序列,其中每个时间状态分配一个概率。所述概率表明特定的二元时间状态为1或0的可能性。这些概率作为前向状态度量来存储。随后,反向译码器306以反方向遍历格状结构,并生成另一组概率作为反向状态度量。随后,似然比计算器308基于前向状态度量和反向状态度量来计算对数似然比或后验概率(APP)。
前向状态度量计算是一个递归函数,其基于先前各时间步长的前向状态度量。开始于在时间步长t的对于所有可能状态具有相等概率的未知状态,经过k个时间步长的前向状态度量计算(其中k取决于代码的约束长度)产生在时间步长t+k的前向状态度量的良好近似。随后,可始于时间步长t+k的近似来计算下面的前向状态度量。由于可以在始于格状结构中的任意点来建立对前向状态度量的良好近似,所以,可以将滑动窗口体系结构应用于前向状态度量计算中,并且并行处理用于前向状态度量计算的所有滑动窗口。
图4为示出了编码信息块402、404和406如何在前向译码器的滑动窗口体系结构中分隔成较小的子块408、410和412。前向译码器的滑动窗口的长度L是基于译码时间约束来选择的。译码时间约束基于应用的数据速率。应用的数据速率越高,译码要求就越快,也就意味着滑动窗口具有较小的长度L。
将格状结构中具有N个时间步长的块404分隔成N/L个子块408、410和412。该N/L个子块408、410和412的前向状态度量是并行计算的。第一子块408长度为L。其开始于(块B的)第一时间步长并始于全零状态(已知状态)。其他子块410和412长度为L+K,每个子块与前一个子块重叠格状结构的k个时间步长。例如,在子块1408之后的子块2410包括自子块1408的最后k个时间步长。第n个子块(其中n>1)始于第((n-1)L+1-k)个时间步长并具有相等可能性的状态。通过“提前”k个时间步长开始第n个子块,可以得到该子块在k+t时间步长的前向状态度量的良好近似(其中t为大于或等于零的整数)。随后除第一窗口以外的所有滑动窗口中的前k个时间步长的前向状态度量被丢弃。
为了进行反向状态度量计算,可将子块进一步细分为较小的子块或段414、416和418。随后,在段414、416和418上进行反向状态度量计算。为了加快格状结构的整个对数似然比的计算,甚至可以在相对应的整个子块的前向状态度量计算完成之前就开始对这些段的反向状态度量计算。从而一旦对对应于一个段的子块的一部分的前向状态度量计算已完成,就可以在该段上开始反向状态度量计算。注意到,在其他实现中,在不背离本发明的情况下,可以在前向状态度量计算之前或近似同时地进行反向状态度量计算。
图5为示出了具有多个并行译码器的示例性译码器结构的框图。帧缓冲器502从通信信道接收二进制数据或符号。块分隔器504将数据块分隔成多个较小的数据子块。在一个实现中,采用滑动窗口体系结构将数据块分隔成多个前向状态度量(FSM)子块,每个FSM子块与前一个FSM子块重叠k个时间步长。随后,将多个FSM子块转送至具有多个并行译码器(例如处理器、ASIC等等)510、512和514的前向译码器506。通过并行生成前向状态度量,前向译码器506在更短的时间内生成度量。
来自前向译码器506的FSM子块可被进一步分隔成较小的子块和段(例如图4中的段414、416和418)。反向状态度量计算在这些较小的段上进行。反向译码器508包括多个反向状态度量(RSM)段译码器516、518和520,它们为来自相对应的FSM子块译码器510、512和514的子块的段生成反向状态度量。然而,必须注意,对反向状态度量的计算是独立于前向状态度量的。前向译码器是从一个子块或段的开头到末端来计算度量,而反向译码器是从该子块的末端到开头来计算度量的。前向和反向译码器506和508相互独立地执行各自的计算,这两种译码器都使用所接收的数据和共同的格状结构。为了加快整个似然比的计算,由RSM段译码器516、518和/或520进行的反向状态度量计算甚至可以在由FSM子块译码器510、512和/或514对对应子块的前向状态度量计算完成之前就开始。从而,一旦对于与一个段对应的子块的一部分的前向状态度量计算完成,就可以在该段上开始反向状态度量计算。
存储设备522可以与前向译码器506相耦合,从而存储前向状态度量,并将所述度量传送到似然比计算器524。似然比计算器524基于从反向译码器508接收的所存储的前向状态度量和反向状态度量来计算似然比。在一个实现中,当前组前向状态度量和计算出的似然比存储在存储器208(图2)中。并不需要存储反向状态度量,因为似然比是与反向状态度量一同计算出的。
在一些实现中,前向译码器506和反向译码器508可同时(或接近同时)对子块进行译码。即,反向译码器508并不等待到代码的一个段由前向译码器506进行译码之后。在这样的实现中,前向和反向度量均可存储在存储器中用于计算似然比。例如,子块的前一半的前向度量可与该子块的另一半的反向度量一起存储。随后,由于该子块的前向和反向状态度量已计算完成,可以计算似然比。
图6为示出了由前向和反向译码器对数据块进行分隔和处理的示例性表格。通常,数据块被分隔成FSM子块,并被并行处理以进行前向状态度量计算,并且,每个子块可进一步被分隔成较小的RSM子块或段,用于反向状态度量计算。在这一实例中,FSM子块的长度为6×W,而RSM段的长度为W。前向状态度量计算器(FSMC)开始于时间T0。一旦算出前W个前向状态度量,FSMC在时间T1计算段2×W(从W到2W-1)的前向状态度量。大约在时间T1,反向状态度量计算器(RSMC)计算来自第一段W的反向度量(以倒序从W-1到0计算)。在下一个时间周期T2,FSMC移动到下一段3×W(从2W到3W-1),而RSMC移动到段2×W(以倒序从2W-1到W计算)。该过程一直持续,直到完成一个FSM子块的前向和反向状态度量。
在RSMC计算每段的反向状态度量时,同一段的对数似然比(LLR)(或其他的似然比)也被计算并在存储器中存储。注意到,根据一些实施例,用于存储前向状态度量的存储器的量通过存储较小数量的前向状态度量而减少了。例如,当前段(例如,2×W)和前一段(例如,W)的前向状态度量(例如,A0,2w-1)被存储。开始于时间T1,前一段(例如,W)的前向状态度量(例如,A0,w-1)用于计算LLR。该过程一直持续直到整个子块的LLR被计算。在一个段的LLR被计算后,可以丢弃前一段的前向状态度量。注意到,通过在子块的前向状态度量完成以前处理各段的反向状态度量,任意一次存储的前向状态度量的数量(例如,两个段的度量)都更少了。
图7为示出了在前向和反向译码路径上采用滑动窗口实现递归译码的示例性方法的流程图。注意到,在各种实现中,本方法可应用于使用MAP或对数MAP译码器的不同的译码算法中,包括具有两个或更多顺序或并行译码阶段(例如内部或外部译码器,等等)的译码算法。从通信信道接收数据块(例如,比特、符号等的序列)(702)。将数据块分隔成较小的子块(706)。在一些实现中,在第一子块之后,每个后续子块都与前一子块重叠格状结构的k个时间步长。在两个或更多个子块上并行执行前向译码(708),以获得每个子块的前向状态度量。当组合时,每个子块的前向状态度量弥补了数据块的格状结构的前向状态度量。在各种实现中,前向译码是在数据块的所有子块中进行的。对每个子块,前向状态度量(例如,格状结构的每个时间步长的概率)可被任选地存储(710)。
在一些实现中,可进一步将子块分隔成较小的段(712),以由后续的译码阶段进行处理。反向译码(例如沿格状结构的后向路径)在两个或更多个段上并行进行(714),从而获得每个段的反向状态度量。注意到,一些实现可以通过将反向译码712和714与前向译码并行进行,来减少译码时间和/或节省存储空间。特别是,当获得了子块各段的前向状态度量时,可以开始对该子块的那些段的反向译码。从而,就不需要等到对整个子块的前向状态度量完成后,再开始反向译码。在其他实现中,可顺序地进行前向译码和反向译码。
似然比基于前向和反向状态度量来计算(716)。似然比可作为最初被发送数据的估计来输出(718)。
在各种实现中,可近似同时或顺序地(例如,反向状态度量紧随前向状态度量,或者相反)计算一个子块或子块的一个段的前向状态度量和反向状态度量。
尽管一些实例可能只说明了这些顺序中的一种,而没有介绍其他的,但可以理解,在不背离本发明的情况下,本发明可应用于这些结构的任何一种。
图8为示出了在两级译码器中,分隔接收到的数据块的示例性方法的流程图。基于译码时间约束选择子块(例如,滑动窗口)的长度L(802)。约束译码时间基于应用数据速率。应用数据速率越高,译码就要求越快,意味着滑动窗口具有越小的长度L。在各种实现中,长度L可以以比特、符号或格状结构时间步长来衡量。在各种实现中,长度L和/或时间约束可在运行过程中,可由用户配置地,或者在通信器件/系统的硬件和/或软件设计时,来动态确定。
将数据块分隔成两个或更多个较小的长度为L的子块(804)。该块的格状结构中可以具有N个时间步长,并将其分隔成N/L个子块。随后,确定其是否为第一子块(806)。通常,第一子块从零状态(已知状态)开始。如果其不是第一子块,则将子块的最后k个时间步长加到下一个子块(808)。从而,除了第一子块,所有的后续子块的长度均为L+K,其每个子块都与前一个子块重叠格状结构的k个时间步长。随后,并行确定(计算)两个或更多个子块(例如,两个或全部的子块或滑动窗口)的前向状态度量(810)。随后丢弃第一子块之后每个子块中的前k个时间步长的前向状态度量(812)。在一任选步骤中,随后可将子块分隔成两个或更多个较小的段(814)。随后,确定(计算)两个或更多个段的反向状态度量(816)。基于前向和反向状态度量计算似然比(818)。
根据一些实现,一个段的反向状态度量的计算是在确定对应的子块的其他部分的前向状态度量时进行的。例如,前向和反向度量可按照与图6中说明的相似的顺序计算。
注意到,这一算法的存储器使用量是只将滑动窗口体系结构应用到反向状态度量计算的存储器使用量的N/L倍。另外,由于将数据块分隔成子块,并且在前向译码路径上的并行处理,译码时间减小为N/L。
因此,MAP译码器或以MAP译码器作为组成部分的turbo译码器可配置双向滑动窗口。滑动窗口体系结构可应用于具有N个时间步长的格状结构的编码数据块的前向状态度量(FSM)计算。将数据块分隔成较小的子块,而且,并行进行子块的两个或更多个的前向递归,从而获得FSM。每个子块与前一个子块重叠k个时间步长,其中k为大于零的整数值。这提供了对FSM在子块时间步长k+t的良好的近似。除了第一子块,与每个子块前k个时间步长相关联的FSM被丢弃。还进行每个子块的反向递归,从而获得子块的反向状态度量(RSM)。随后,基于FSM和RSM计算似然比。
本文描述的装置、方法和算法特别适合于应用turbo码或卷积码的高数据速率系统。对于译码速率过低而无法达到所期望数据速率的系统也是一个很好的解决方案。通过添加更多的并行译码器,可提高有效数据速率。
根据各种实现,图1、2、3、4、5和/或6的装置可以与图7和/或8中描述的一个或多个方法一起实现。
在不背离本发明的情况下,图1、2、3、4、5、6、7和/或8中说明的一个或多个部件、步骤和/或功能可重新排列或合并为单个部件、步骤或功能,或者以一些部件、步骤或功能来实施。在不背离本发明的情况下,也可以添加另外的元件、部件、步骤和/或功能。图1、2、3、4、5和/或6中说明的装置、设备和/或部件可设置为执行本文描述的一个或多个方法、特性或步骤。
应该注意到,上述实施例仅仅是例子,并不应理解为对本发明的限制。例如,译码器可包括:用于将编码数据块分隔成多个子块的模块,该编码数据块具有N个时间步长的格状结构,其中N为大于零的整数;用于递归地并行获得两个或多个子块的前向状态度量的模块;以及用于递归地并行获得两个或多个子块的反向状态度量的模块。这里,用于分隔的模块可包括图9的装置900中所示的分隔器模块910。如装置900中所示,用于递归得出前向状态度量的模块可包括前向状态度量模块920,以及用于递归得出反向状态度量的模块可包括反向状态度量模块930。
可替换地,装置900的一个或多个部件可由用于控制和/或执行一个或多个部件的功能的处理器来实现。类似地,装置900的一个或多个部件可由包含有用于执行一个或多个部件功能的指令的机器可读介质来实现。
因此,对各实施例的描述是要为说明性的,并不是要对权利要求的范围进行限制。所以,本教导可容易地应用于其他类型的装置中,并且多种替换、修改和变形对本领域的技术人员是显而易见的。
Claims (34)
1、一种译码器,包括:
块分隔器,用于使用滑动窗口体系结构将数据块分隔成多个子块;
第一译码器,所述第一译码器与所述块分隔器相耦合以接收所述多个子块,所述第一译码器包括多个并行译码器,所述并行译码器并行确定所述多个子块的至少两个的第一组状态度量;以及
第二译码器,所述第二译码器与所述第一译码器相耦合以从所述第一译码器接收所述多个子块,并计算所述多个子块的第二组状态度量。
2、根据权利要求1所述的译码器,其中所述第一译码器和第二译码器实现最大后验概率(MAP)算法以纠正所述数据块中的差错。
3、根据权利要求1所述的译码器,其中所述第一译码器确定所述数据块的格状结构的前向状态度量。
4、根据权利要求3所述的译码器,其中所述每个子块与前一个子块重叠所述格状结构的k个时间步长,其中k为大于零的整数值。
5、根据权利要求4所述的译码器,其中从所述第一组状态度量中丢弃与第一子块之后的每个子块的前k个时间步长相关联的所述度量。
6、根据权利要求3所述的译码器,其中所述第二译码器确定所述数据块的所述格状结构的反向状态度量。
7、根据权利要求1所述的译码器,其中所述子块的长度由译码时间约束来确定。
8、根据权利要求1所述的译码器,其中所述子块的数量确定所述第一译码器中的并行译码器的数量。
9、根据权利要求1所述的译码器,其中所述数据块采用turbo码进行编码。
10、根据权利要求1所述的译码器,其中所述第一译码器中的所述并行译码器是计算每个子块的前向状态度量的递归译码器。
11、根据权利要求1所述的译码器,其中所述第二译码器进一步将从所述第一译码器接收的每个子块分隔成多个较小的段,并在所述多个较小的段上使用滑动窗口体系结构计算所述第二组状态度量。
12、根据权利要求1所述的译码器,还包括:
存储所述第一组状态度量的存储设备。
13、根据权利要求12所述的译码器,其中每个子块包括多个段,在任何一次当前段和前一段的所述第一组度量被存储在所述存储设备中。
14、根据权利要求13所述的译码器,其中一旦计算出一个段的似然比,就从所述存储设备中丢弃该段的所述第一组度量。
15、根据权利要求1所述的译码器,其中在计算所述数据块中数据的似然比的过程中使用所述第一组状态度量和所述第二组状态度量。
16、根据权利要求1所述的译码器,其中所述第二译码器包括多个并行译码器,所述第二译码器中的每个并行译码器对应于所述第一译码器中的所述多个并行译码器中的一个。
17、根据权利要求1所述的译码器,其中每个子块包括多个段,所述第二译码器用于,一旦所述第一译码器计算出一个段的所述第一组状态度量,所述第二译码器就计算该段的所述第二组状态度量。
18、一种递归地对编码块中的信息进行译码的方法,该方法包括:
将所述编码数据块分隔成多个较小的子块,每个子块包括多个较小的段;
并行获取所述子块的两个或更多个的前向状态度量;以及
一旦获取了一个段的前向状态度量,就获取该段的反向状态度量。
19、根据权利要求18所述的方法,其中子块开始于具有已知二元状态的第一时间步长。
20、根据权利要求18所述的方法,其中在分隔所述编码块过程中采用了滑动窗口体系结构,使得每个子块与前一子块重叠所述编码块的格状结构的k个时间步长,其中k为大于零的整数值。
21、根据权利要求20所述的方法,还包括:
丢弃与第一子块之后的每个子块的前k个时间步长相关联的所述前向状态度量。
22、根据权利要求18所述的方法,还包括:
接收具有N个时间步长的格状结构的所述编码信息块;
将所述编码块分隔成N/L个子块,其中L为大于零的整数;以及
并行计算所述N/L个子块的前向状态度量。
23、根据权利要求18所述的方法,还包括:
基于第一组和第二组状态度量获取所述数据块中数据的似然比。
24、根据权利要求18所述的方法,其中在获取一子块的所述前向状态度量中,开始步为未知状态,该未知状态具有相等可能的各状态度量。
25、根据权利要求18所述的方法,还包括:
存储每个子块的第一段的第一组度量;
基于所述第一段的第一和第二状态度量获取所述第一段的似然比;以及
一旦获取了所述第一段的似然比,就丢弃每个子块的所述第一段的所述第一组度量。
26、一种译码器,包括:
用于将编码数据块分隔成多个子块的模块,所述编码数据块具有N个时间步长的格状结构,其中N为大于零的整数;
用于递归地并行获取所述子块的两个或更多个的前向状态度量的模块;以及
用于递归地并行获取所述子块的两个或更多个的反向状态度量的模块。
27、根据权利要求26所述的译码器,其中每个子块与前一子块重叠所述编码块的所述格状结构的k个时间步长,其中k为大于零的整数值,并且丢弃与第一子块之后的每个子块的前k个时间步长相关联的所述前向状态度量。
28、根据权利要求26所述的译码器,其中每个子块包括多个段,一旦获取了一个段的所述前向状态度量,就获取该段的所述反向状态度量。
29、权利要求26所述的译码器,还包括:
用于基于所述前向和反向状态度量获取似然比的模块。
30、一种处理设备,用于控制:
接收具有N个时间步长的格状结构状态的编码数据块,其中N为大于2的正整数;以及
通过以下方式对所述编码数据块进行递归译码:
将所述编码块分隔成多个子块,以及
并行获取所述子块的两个或更多个的前向状态度量。
31、根据权利要求30所述的处理设备,其中所述递归译码还包括:
获取所述子块的两个或更多个的反向状态度量。
32、根据权利要求31所述的处理设备,其中所述每个子块包括多个段,一旦获取了一个段的前向状态度量,就获取该段的反向状态度量。
33、根据权利要求30所述的处理设备,其中第一子块之后的每个子块都与前一子块重叠所述格状结构的k个时间步长,其中k为大于零的整数值,并且,其中所述处理设备还用于:
丢弃与第一子块之后的每个子块的所述前k个时间步长相关联的所述前向状态度量,其中k为大于零的整数。
34、一种包括用于对编码块中的信息进行递归译码的指令的机器可读介质,所述指令用于:
将所述编码数据块分隔成多个较小的子块,每个子块包括多个较小的段;
并行获取所述子块的两个或更多个的前向状态度量;以及
一旦获取了一个段的前向状态度量,就获取该段的反向状态度量。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US76276406P | 2006-01-27 | 2006-01-27 | |
US60/762,764 | 2006-01-27 | ||
US11/441,653 | 2006-05-25 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101411071A true CN101411071A (zh) | 2009-04-15 |
Family
ID=40572835
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007800107736A Pending CN101411071A (zh) | 2006-01-27 | 2007-01-29 | 具有双向滑动窗口体系结构的map译码器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101411071A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010145078A1 (zh) * | 2009-06-18 | 2010-12-23 | 中兴通讯股份有限公司 | 一种lte中并行turbo译码的方法及装置 |
WO2011003351A1 (zh) * | 2009-07-08 | 2011-01-13 | 华为技术有限公司 | 译码方法和译码装置 |
CN102340320A (zh) * | 2011-07-08 | 2012-02-01 | 电子科技大学 | 卷积Turbo码双向并行译码方法 |
CN109687935A (zh) * | 2017-10-18 | 2019-04-26 | 深圳超级数据链技术有限公司 | 译码方法和装置 |
-
2007
- 2007-01-29 CN CNA2007800107736A patent/CN101411071A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010145078A1 (zh) * | 2009-06-18 | 2010-12-23 | 中兴通讯股份有限公司 | 一种lte中并行turbo译码的方法及装置 |
CN102396158A (zh) * | 2009-06-18 | 2012-03-28 | 中兴通讯股份有限公司 | 一种lte中并行turbo译码的方法及装置 |
WO2011003351A1 (zh) * | 2009-07-08 | 2011-01-13 | 华为技术有限公司 | 译码方法和译码装置 |
CN101944915B (zh) * | 2009-07-08 | 2013-01-30 | 华为技术有限公司 | 译码方法和译码装置 |
CN102340320A (zh) * | 2011-07-08 | 2012-02-01 | 电子科技大学 | 卷积Turbo码双向并行译码方法 |
CN109687935A (zh) * | 2017-10-18 | 2019-04-26 | 深圳超级数据链技术有限公司 | 译码方法和装置 |
CN109687935B (zh) * | 2017-10-18 | 2022-09-13 | 吕文明 | 译码方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7929646B2 (en) | Map decoder with bidirectional sliding window architecture | |
EP2838204B1 (en) | Decoding processing method and decoder | |
KR100227094B1 (ko) | 큰 제약조건 길이를 갖는 소프트 결정 비터비 디코딩의 방법 및 회로 | |
JPH07273813A (ja) | ソフトシンボルの生成方法と装置 | |
CN1327653A (zh) | 移动通信系统中的分量解码器及其方法 | |
KR20150128750A (ko) | 늦은 신뢰도 정보를 사용하여 디코딩하기 위한 시스템 및 방법 | |
JP3153425B2 (ja) | デジタル信号プロセッサ | |
CN101411071A (zh) | 具有双向滑动窗口体系结构的map译码器 | |
JP2004511162A (ja) | チャネルコード化のためのシステム及び方法 | |
US8627187B2 (en) | Decoding of recursive convolutional codes by means of a decoder for non-recursive convolutional codes | |
CN116707707A (zh) | 联合极化检测译码方法及相关设备 | |
CN103138769B (zh) | 一种具有不等错误保护的编码方法 | |
CN105356893A (zh) | 一种尾码可配置的Viterbi解码方法及解码器 | |
CN102291198B (zh) | 信道译码方法和装置 | |
US7991082B2 (en) | Maximum a posteriori probability decoder | |
WO2019203706A1 (en) | Information decoder for polar codes | |
CN108400788A (zh) | Turbo译码的硬件实现方法 | |
US8856630B2 (en) | Continuous parallel Viterbi decoder | |
US7096410B2 (en) | Turbo-code decoding using variably set learning interval and sliding window | |
Gupta et al. | A comparative study of Viterbi and Fano decoding algorithm for convolution codes | |
CN117081611B (zh) | 一种基于并行处理的译码方法和设备 | |
CN104639180B (zh) | 一种译码方法及装置 | |
CN100505600C (zh) | 一种实现缩短Turbo译码器关键路径的方法 | |
Hulyalkar et al. | Hard and Soft Decision Decoding Using Viterbi Algorithm | |
US20110202819A1 (en) | Configurable Error Correction Encoding and Decoding |
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 |
Open date: 20090415 |