CN1211931C - 用于最大后验概率解码器的存储器体系结构 - Google Patents
用于最大后验概率解码器的存储器体系结构 Download PDFInfo
- Publication number
- CN1211931C CN1211931C CNB998121525A CN99812152A CN1211931C CN 1211931 C CN1211931 C CN 1211931C CN B998121525 A CNB998121525 A CN B998121525A CN 99812152 A CN99812152 A CN 99812152A CN 1211931 C CN1211931 C CN 1211931C
- Authority
- CN
- China
- Prior art keywords
- group
- state metric
- window
- ram
- decoding
- 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 - Lifetime
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/3905—Maximum 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
-
- 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/29—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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2957—Turbo codes and 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/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/65—Purpose and implementation aspects
- H03M13/6566—Implementations concerning memory access contentions
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
- Dram (AREA)
- Static Random-Access Memory (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Navigation (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本发明是一种解码技术的改进的新技术,特别适用于turbo或迭代编码技术。依据本发明的一个实施例,一种解码***包括用于存储码元估计的块的信道去交织器RAM、一组S个状态度量计算器以及一组S+1个窗口RAM。每个状态度量计算器用于产生一组状态度量计算,其中所述S+1个窗口RAM中的S个对所述S个状态度量计算器提供码元估计。剩余的一个窗口RAM接收来自所述信道去交织器RAM的码元估计。
Description
技术领域
本发明涉及编码(coding)。更具体的是,本发明涉及用于进行最大后验概率(MAP)解码的改进的新技术。
背景技术
“Turbo(特博)编码”代表前向纠错(FEC)领域的一个重要进步。有各种各样的turbo编码,但大多数编码采用由与迭代解码组合的交织步骤分开的多个译码(encoding)步骤。这种组合提供了先前就通信***的噪声容限而言不可获得的性能。即,turbo编码允许使用现有的前向纠错技术以先前所不可接受的Eb/N0电平进行通信。
许多***使用前向纠错技术,因此,它们也会因使用turbo编码而受益。例如,turbo码可提高无线卫星链路的性能,其中卫星的有限下行链路发送功率使得可在低的Eb/N0电平上进行操作的接收机***成为必要。在无线卫星链路中使用turbo码可减小数字视频广播(DVB)***的碟形卫星天线的尺寸,或者允许在一给定的频率带宽内发送更多的数据。
诸如数字蜂窝式和PCS电话***等数字无线电信***也使用前向纠错。例如,IS-95无线电接口标准(over-the-air interface standard)及其衍生的诸如IS-95B等定义了一种数字无线通信***,该***使用卷积译码来提供编码增益,以增加***的容量。在名为“用于在CDMA蜂窝式电话***中产生信号波形的***和方法”的5,103,459号美国专利中描述了基本上依据使用IS-95标准的处理RF信号的***和方法,该专利已转让给本发明的受让人并在这里引用作为参考(’459专利)。
由于象IS-95等数字无线通信***主要用于移动通信,所以重要的是具有把功率使用减到最少且小型而轻便的器件。通常,这需要开发用于进行大多数或所有必要的处理的半导体集成电路(“芯片”)。虽然卷积译码相对复杂,但进行卷积译码和解码所需的电路可在单块芯片上与任何其它必要的电路一起形成。
Turbo编码(尤其是解码操作)明显地比卷积译码(和解码)更复杂。但是,非常想要在包括移动数字通信***和卫星通信***的数字无线电信***中包含turbo编码。因而,本发明旨在增加可进行某些解码操作的速率,以有助于在各种***中使用turbo编码。
发明内容
本发明是一种用于对turbo或迭代、编码技术有特殊应用的解码技术的改进的新技术。依据本发明的一个实施例,一种解码***包括用于存储码元(symbol)估计的块的信道(channel)去交织器RAM以及一组S状态度量(metric)计算器。每个状态度量计算器用于产生一组状态度量计算以及一组S+1窗口RAM,其中所述S+1窗口RAM的S提供了对所述S状态度量计算器的码元估计。其余的窗口RAM接收来自所述信道去交织器RAM的码元估计。
附图概述
从以下详细描述并结合附图,将使本发明的特征、目的和优点变得更加明显起来,图中相同的标号指相应的部分,其中:
图1A和1B是无线通信***的方框图;
图2是发送***的方框图;
图3A和3B是turbo编码器的图;
图4是接收处理***的方框图;
图5是解码器和信道去交织器的一部分的方框图;
图6是示出示例的一组解码步骤的流程图。
本发明的较佳实施方式
本发明是一种用进行turbo编码的改进的新技术。就数字蜂窝式电话***来描述示例实施例。虽然在此范围内使用是有利的,但可在不同环境、配置或数字数据发送***(包括卫星通信***和诸如数字电缆和电话***等有线线路通信***)中结合本发明的不同实施例。
总的来说,可使用软件控制的处理器、集成电路或分立的逻辑来形成这里所述的各种***,然而,以集成电路来实现是较佳的。有利的是,以电压、电流、电磁波、磁场或磁粉、光场或光粒子或其组合来表示可在本申请中引用的数据、指令、命令、信息、信号、码元和码片。此外,每一方框图中所示的方框可表示硬件或方法步骤。
图1A是依据本发明一个实施例构成的蜂窝式电话***的高度简化的图。为了进行电话呼叫或其它通信,用户单元10经由RF信号与基站12相接。基站12经由基站控制器(BSC)14与公共交换电话网相接。
图1B是依据本发明另一个实施例构成的卫星通信***的高度简化的图。上行链路站40把包含诸如视频程序设计(programming)等信息的RF信号发送到卫星42。卫星42把RF信号转发回地面,在这里接收机44把接收的RF信号转换成数字数据。
图2是依据本发明一个实施例的使用构成的示例发送***的方框图。该发送***可在用户单元10、基站12或上行链路站40以及产生数字信号以发送的任何其它***中使用。所示的发送处理仅表示本发明的一个可能的实施例,因为各种其它发送处理方案可结合并受益于使用本发明的各实施例。
把数据70提供给CRC发生器72,发生器72对给定的每个接收到的预定数量的数据产生CRC校验和数据。把获得的数据块提供给turbo编码器76,编码器76产生提供给信道交织器78的代码码元。这些代码码元通常包括原始数据(***码元)的重发和一个或多个一致校验(parity)码元。
对每一***码元所发送的一致校验码元的数目与编码率有关。对于一种编码率_,对每一个***码元发送一个一致校验码元,对接收到的每个数据位(包括CRC)总共产生两个码元。对于一码率1/3的turbo编码器,对每个***码元产生两个一致校验码元,对接收到的每个数据位产生总共三个码元。
把来自turbo编码器76的代码码元提供给信道交织器78。信道交织器78对接收到的码元的块进行交织,输出经交织的码元,这些码元被映射器80接收。通常,信道交织器78进行块或位颠倒交织,实际上可把所有其它类型的交织器用作信道交织器。
映射器80取得经交织的代码码元并根据预定的映射方案产生一定位宽度的码元字。然后把这些码元字加到调制器82,调制器82根据接收到的码元字产生经调制的波形。虽然可利用各种其它的调制方案,但典型的调制技术包括QPSK、8-PSK和16 QAM。然后,对经调制的波形进行上变频以在RF频率发送。
图3A是依据本发明的第一实施例构成的turbo编码器的方框图。在本发明的第一实施例中,turbo编码器构成并行串接的turbo编码器。在turbo编码器76的形式内,组成编码器90和代码交织器92接收来自CRC发生器72的数据,如上所述,此CRC发生器72输出输入数据和CRC校验和位。组成编码器90还产生尾标(tail)位,以在每一帧的结尾处提供已知状态。
众所周知,为了最佳的性能,编码交织器92应该是高度随机化的交织器。在1998年9月22日提交的名为“具有基于状态机的交织器的编码***”的09/158,459号未决美国专利申请、1998年10月13日提交的名为“具有基于状态机的交织器的编码***”的09/172,069号未决部分继续申请以及1998年12月4日提交的名为“使用线性同余(cogruential)序列的Turbo码交织器”的09/
09/205,511号美国专利申请中描述了作为代码交织器的提供极佳性能及最小复杂性的交织器,所有的申请都转让给本申请的受让人,并在这里引用作为参考。组成编码器90输出***码元94(通常为原始输入位的拷贝)和一致校验码元96。组成编码器98接收代码交织器92的交织输出并输出附加的一致校验码元99。组成编码器90还可加上尾标位,以在每一帧的结尾处提供已知状态。
把组成编码器90和组成编码器98的输出多路调制(mux)成为总编码速率R为1/3的输出数据流。可增加附加的组成代码和代码交织器对,以减小编码率,从而增强前向交错。或者,可截去(puncture)(不发送)一致校验码元96和99中的一些,以增加编码率。例如,通过刺穿每隔一个截去一致校验码元96和99可增加编码率至_或完全不发送一致校验码元96。
组成编码器90和98可以是包括块编码器或卷积编码器的各种类型的编码器。作为常规的编码器,组成编码器90和98通常具有诸如4(四)等小的约束长度以减少复杂性,且它们是递归***卷积(RSC)译码器。较低的约束长度减少了接收***处的相应解码器的复杂性。
通常,这两个编码器对于以组成编码率R=_接收到的每一位输出一个***码元和一个一致校验码元。然而,图1A的turbo编码器的总编码速率为R=1/3,因为不使用来自组成编码器98的***位。如上所述,还可平行地增加附加的交织器和编码器对,以减少编码率,因此提供较高的纠错,或可进行截去来增加编码率。
图3B示出依据本发明另一个实施例的作为串联串接的turbo编码器的turbo编码器76。在图3B的turbo编码器内,由组成编码器110接收来自CRC发生器72的数据,把获得的代码码元加到代码交织器112。把获得的经交织的一致校验码元提供给组成编码器114,该组成编码器114进行附加的编码器以产生一致校验码元115。通常,组成编码器110(外部编码器)可以是包括块译码器或卷积译码器的各种类型的译码器,但组成编码器114(内部编码器)最好是递归编码器,且通常是递归***译码器。
作为递归***卷积(RSC)译码器,组成编码器110和114以编码率R<1产生码元。即,对于给定数目的输入位N,产生M个输出码元,这里M>N。图1B的串联串接turbo编码器的总编码率为组成编码器110的编码速率乘以组成编码器114的编码率。还可串联地增加附加的交织器和编码器对以减小编码率,继而提供附加的差错保护。
图4是依据本发明一个实施例构成的接收***的方框图。天线150把接收到的RF信号提供给RF单元152。RF单元进行对RF信号进行下变频、滤波和数字化。映射器154接收数字化的数据并把软决策(decision)数据提供给信道去交织器156。Turbo解码器158对来自信道去交织器156的软决策数据进行解码并把获得的硬决策数据提供给接收***处的处理器或控制单元,它们可使用CRC校验和数据来检查数据的准确性。
图5是依据本发明一个实施例构成的turbo解码器158和信道去交织器的一部分的方框图。如图所示,turbo解码器158构成对来自图3A所示的turbo解码器的数据进行解码。
在所述的实施例中,提供了两组(bank)信道交织器存储器-信道去交织器RAM 160a和160b-每一组能存储一个信道交织器块。由信道地址发生器204和计数器206来控制这两个信道交织器存储器组的地址输入,经由多路复用器208和210把信道地址发生器204和计数器206加到地址输入端。由信号I和!I(I的逻辑反)来控制多路复用器208和210,因此当由信道去交织器地址发生器204控制一信道去交织器204时,由计数器206控制另一个信道去交织器。一般,虽然使用各种其它类型的控制***与本发明的用途相一致,但可由运行存储在存储器中的软件的微处理器以及由分立的逻辑电路来提供任何控制功能。
信道交织器存储器组的I/O端口耦合到多路复用器212和214。多路复用器212接收从映射器140到两个信道去交织器存储器组之一的软决策数据。多路复用器214把存储在两个信道去交织器存储器组之一中的软决策数据输出到部分和218。由信号B和!B分别控制多路复用器212和214,因此当一个信道去交织器RAM在接收来自映射器140的样本时,另一个把样本输出到部分和218。
在操作期间,信道去交织器地址发生器204被加到接收来自映射器140的样本的信道去交织器存储器组。信道去交织器地址发生器以与图3的信道交织器78所进行的交织的相反顺序产生地址。因而,以未交织的顺序(相对于信道交织器而言未交织)把样本读入信道去交织器存储器组160。
计数器206被加到把软决策读出到部分和218的信道去交织器存储器组。由于以相反的顺序读入软决策数据,所以可简单地使用计数器206以去交织的顺序读出软决策数据。还可使用各种其它的软决策数据缓冲方法,包括使用双端口存储器。此外,可使用产生去交织器地址的其它方法,包括开关计数器206和信道去交织器地址发生器204。
在turbo编码器158内,部分和218接收来自信道去交织器的接收估计(软决策数据)以及来自APP存储器170的先验概率(APP)数据。众所周知,APP值是根据前一解码迭代所发送的数据的估计。在第一个迭代期间,把APP值设定为相等的概率状态。
来自信道去交织器存储器的估计包括***码元的估计以及与信道交织器块有关的每个数据位的两个一致校验码元的估计。部分和218把APP值加到***码元,以产生“精细的***估计”。把精细的***估计与两个一致校验码元估计一起读入RAM文件224。
在RAM列(file)224内,把估计值写入窗口RAM 230a-d(标为RAM 0-RAM 3)。在本发明的一个实施例中,按顺序把估计写入RAM 0-3的地址空间。此过程从RAM 0开始,并进到RAM 3。在任何给定的时间,只对一个窗口RAM进行写入。如以下更详细所述,把其余的三个窗口RAM(未被写入的那些)经由多路复用器260施加到(被读取)MAP引擎270。
在本发明的一个实施例中,利用滑动窗口体系结构来进行映射解码。在名为“用于对经卷积译码的代码字进行解码的软决策输出解码器”的08/743,688号未决美国专利申请中描述了进行此滑动窗口解码的***和方法,该申请已转让给本发明的受让人,并在这里引用作为参考。
在该申请中,对数据的“窗口”进行MAP解码。在本发明的所述实施例中,RAM窗口组(window bank)230的尺寸为Lxq,这里,L为在窗口中发送的数据位的数目,q为存储精细的***码元和对每个数据位所产生的两个一致校验码元的估计所需的存储器的位数。在本发明的一个实施例中,对于十八位(18)位的q,把六(6)位用于两个一致校验码元估计,把七(7)位用于精细的***码元估计(如上所述,它是接收***码元估计与APP值之和)。
如上所述,把包括精细的***码元估计和一致校验码元估计的估计按顺序写入窗口RAM 230a-d。通常,只对一个窗口RAM 230进行写,而由MAP引擎270读取其余三个窗口RAM 230。
在示例的处理中,把来自一新的信道块的数据首先写入窗口RAM 230a,然后是窗口RAM 230b。因而,窗口RAM 230a包含前L(1L)组估计(这里,一组包括精细的***估计和两个一致校验估计),窗口RAM 230b包含次L(2L)组估计。在把前两个L组估计存储在窗口RAM 230中后,多路复用器260开始把存储在窗口RAM 230中的数据施加到最大后验概率(MAP)解码器270内的状态度量计算器(SMC)中。在本发明的一个实施例中,这三个SMC包括前向SMC(FSMC)272和两个反向SMC(RSMC)274a和274b。
在不断把数据写入RAM列224中时,多路复用器260依据表I把存储在四个窗口RAM中的三个窗口RAM内的估计施加到MAP解码器270内的三个状态度量计算器。
时间SMC | 1L | 2L | 3L | 4L | 5L | 6L | 7L | 8L |
FSMC | RAM 00->L-1 | RAM 1L->2L-1 | RAM 22L->3L-1 | RAM 33L->4L-1 | RAM 04L->5L-1 | RAM 15L->6L-1 | ||
RSMC 0 | RAM 12L-1->L | RAM 0L-1->0 | RAM 34L-1->3L | RAM 23L-1->2L | RAM 16L-1->5L | RAM 05L-1->4L | ||
RSMC 1 | RAM 23L-1->2L | RAM 12L-1->L | RAM 05L-1->4L | RAM 34L-1->3L | RAM 16L-1->5L | |||
LLR |
表I
与应用于特定状态度量的特定窗口RAM一起,表I还列出此时包含在该窗口RAM中的这组估计,因此,由相应的SMC来处理这些估计。
依据MAP处理,沿前向对窗口处理一次,沿反向对窗口处理一次。此外,沿反向对大多数窗口处理附加的一次,以产生用于其它反向状态度量处理的初始化状态。在表I中,由斜体文本来表示初始化遍(pass)。在所述实施例中,每一组估计被处理三次,因此,也对存储有这些估计的窗口RAM访问三次。使用3个窗口RAM防止了RAM争用。
表I还示出,在任何特定的时间,至少一个窗口RAM不耦合到任何SMC,因此,使得可写入新的数据。通过在RAM文件224中具有不止三个RAM窗口,可按照正确的顺序连续而重复地把数据馈送到MAP装置以及这三个SMC中的一个正确的SMC,与此同时,经由部分和218从信道交织器存储器160接收数据。
还应注意,表I示出了对六(6)个数据窗口所进行的耦合。因而,示例的信道交织器块的尺寸为6L,信道去交织器存储器为6Lxq。6L的信道块尺寸仅仅是举例,典型的信道块尺寸将比6L大。
仍旧参考图5,在MAP解码器270内,FSMC 272如上所述接收来自RAM列224的估计,并在一窗口L上计算前向状态度量值。把前向状态度量值存储在度量缓冲器276中。此外,依据表I,一RSMC 274在另一窗口L上计算反向状态度量值。在本发明的一个实施例中,每个状态度量计算器包含它自己的分支度量计算器。在本发明的另一个实施例中,最好与一分支度量缓冲器相结合,在这组状态度量上使用单个时间共享的分支度量计算器。
在本发明的一个实施例中,所使用的MAP解码器为对数(log)MAP解码器,它对这些估计的对数进行运算,以减少硬件复杂性。在S.S.Pietrobon的“Turbo/MAP解码器的实现和性能”的参考文献中描述了包括状态度量和复杂度量计算器的对数MAP解码器的一个实现,该参考文献已于1997年2月提交国际卫星通信杂志。Pietrobon的对数MAP解码器未使用以上所引用的“用于对经卷积译码的码字进行解码的软决策输出解码器”的专利申请中所述的滑动窗口体系结构。
使用第一个RSMC 274来计算最后一个值,以对另一个RSMC 274进行初始化,此另一个RSMC 274对前向状态度量已被计算且存储在度量缓冲器276中的窗口L进行反向状态度量计算。在计算出反向状态度量后,经由多路复用器278把它们转发到对数似然比(LLR)计算器280。LLR计算器280对从多路复用器278接收到的反向状态度量和存储在度量缓冲器276中的前向状态度量进行对数似然计算。把从LLR 280获得的数据估计转发到APP存储器170。
通过使用滑动度量计算过程,减少了进行必要处理所使用的存储器的数量。例如,这组窗口RAM 230仅需要大到窗口L,而不是整个交织器块的尺寸。类似地,在任意给定的时间只需要把一个窗口L的前向状态度量存储在度量缓冲器276内。这明显地减少了电路尺寸。
此外,使用三个度量计算器明显地增加了可进行解码的速率。此速率的增加是由于可平行地进行初始化和解码功能。初始化增加了解码器的准确率。
在本发明的另一个实施例中,可与一反向状态度量计算器相结合使用两个前向状态度量计算器。此外,如果以足够高的速率定时以进行两倍的运算,则可使用较少的状态度量计算器。然而,增加时钟速率增加了功耗,这在许多情况下是不想要的,包括在移动或电池供电的通信***中。
此外,虽然使用RAM列224减少了解码器内的电路面积和RAM争用,本发明的其它实施例可选择其它的存储器体系结构。
如以上参考示例实施例所述,通过沿第一方向对第一窗口进行第一解码,同时沿第二方向对第二窗口进行第二解码,这样来进行解码。第二方向最好与第一方向相反。
存储第一解码的结果。使用第二解码的结果对沿第二方向对第一窗口所进行的第三解码进行初始化。在第三解码期间,使用第三解码期间计算得到的值和所存储的值来计算LLR值。
与第三解码同步,沿第一方向对另一个窗口进行第四解码,以及沿第二方向对再一个窗口进行第五解码。存储第四解码的结果,并使用第五解码来产生初始化值。重复这些步骤,直到对整个信道交织器块进行解码。
本发明的各种可选实施例可省略在所述实施例中所使用的某些步骤。然而,使用所述的这组步骤以最少的存储器和附加电路提供了快速而准确地解码,因此,提供了明显地性能益处。
在本发明的一个实施例中,APP存储器1709包括两个APP存储器组284。多路复用器286在被部分和218读取和被LLR 280写之间切换每个存储器组284,以提供双缓冲操作。多路复用器288如此应用计数器290或代码交织地址发生器292,从而对解码的每个迭代执行turbo代码交织和逆交织。
此外,APP存储器组284可大到足以保持一信道交织器块的所有数据估计,其中这些估计是发送的数据而不是一致校验码元。可使用六位分辨率的估计。
通过从信道去交织器缓冲器160重复地读出接收估计并以来自APP存储器组170的APP值进行处理来进行整个解码过程。在一系列迭代后,这些估计应收敛于一组值上,然后使用这组值来产生硬决策。然后,使用CRC值来检查解码的结果。与解码同步,另一信道去交织器缓冲器接收下一接收估计块。
图6是示出在依据本发明一个实施例的信道交织器块的对数MAP解码期间所执行的步骤的流程图。参考图5所示的元素来讨论这些步骤。
解码在步骤300处开始,在步骤302,把窗口索引N设定为0。在步骤304,把存储在信道去交织器RAM中的估计的窗口[N]和窗口[N+1]分别写入窗口RAM[N mod 3]和窗口RAM[(N+1)mod 3]。如上所述,估计的窗口相应于相对于所发送的数据位的窗口L所产生的码元。
在步骤308,FSMC处理RAM[N mod 3](它在此情况下为RAM 0)中的估计,RSMC 0处理RAM[(N+1)mod 3](它为RAM 1)中的估计。此外,把来自信道去交织器RAM的估计的窗口[N+2]写入窗口RAM[(N+2)mod 3](它为RAM 2)。
在步骤310,递增窗口索引N,把X设定为N mod 2,把Y设定为(N+1)mod2。在步骤312,确定N+1是否相应于待处理的估计的最后一个窗口。如果不是,则执行步骤314。
在步骤314,FSMC处理存储在窗口RAM[N mod 3]中的估计,RSMC X(在第一遍中X=0)处理存储在窗口RAM[(N+1)mod 3]中的估计,RSMC Y(在第一遍中Y=1)处理存储在窗口RAM[(N-1)mod 3]中的估计。此外,把来自信道去交织器RAM的估计的窗口[N+2]写到窗口RAM[(N+2)mod 3]。
未示出的是,在RSMC 1所进行的处理期间,在步骤314处产生相应于数据的窗口[N-1]的一组APP值。通过在窗口上进行解码,把度量缓冲器的尺寸保持为对每个解码步骤所产生的度量的数目的长度L倍。由于对每个解码步骤存储大量度量,所以与存储整个信道去交织器块的状态度量相比,明显地减少了度量存储器。
此外,使用第二逆状态度量计算器增加了速度和准确性。例如,第二RSMC可在处理前一解码窗口的同时计算下一解码窗口的新初始值。计算此新的初始值消除了对每个解码步骤进行新的RSMC计算的需要,因为可把此新的值用于对所有先前的窗口进行解码。
步骤314提供了通过处理以RAM列224为例的估计而获得的极佳效率例证。尤其是,步骤314示出了在解码处理中同时执行四个步骤的能力。这增加了对给定的时钟速率可执行编码的速率。在所述的实施例中,这些步骤包括状态度量计算处理以及把附加的样本写到RAM列224中。此外,在步骤314期间计算APP值。
一旦完成步骤314,在步骤310递增窗口索引N。如果值N+1等于最后一个窗口,则中止流水线处理,在步骤316到322处理RAM组224内的其余估计。
尤其是,在步骤316,FSMC处理窗口RAM[N mod 3],RSMC X处理窗口RAM[(N+1)mod 3],RSMC Y处理窗口RAM[(N+1)mod 3]。在步骤318,递增窗口索引N,把X设定为N mod 2,把Y设定为(N+1)mod 2。在步骤320,FSMC处理RAM[Nmod 3],RSMC Y处理RAM[(N-1)mod 3]。在步骤322,RSMC 1处理RAM[N mod3]。在步骤324,已在处理终结时完成了信道去交织器块。
因而,描述了进行turbo编码的改进的新技术。
Claims (15)
1.一种解码***,包括:
a)用于存储码元估计的块的信道去交织器RAM;
b)S个状态度量计算器的组,所述每个状态度量计算器用于产生一组状态度量计算;
c)S+1个窗口RAM的组,其中,
所述S+1个窗口RAM中的S个把码元估计提供给所述S个状态度量计算器,剩余的一个窗口RAM接收来自所述信道去交织器RAM的码元估计。
2.如权利要求1所述的***,其特征在于S等于3。
3.如权利要求1所述的***,其特征在于所述窗口RAM明显地小于所述信道去交织器RAM。
4.如权利要求1所述的***,其特征在于所述状态度量计算器在等于或小于窗口RAM的尺寸的窗口上处理数据。
5.一种解码器,包括:
信道交织器存储器,用于存储接收估计的信道交织器块;
解码器引擎,用于对接收估计进行解码;
解码器缓冲器,用于同时把第一组接收估计和第二组接收估计读出到所述解码器引擎并写入来自所述信道交织器存储器的第三组接收估计。
6.如权利要求5所述的解码器,其特征在于所述解码器缓冲器还用于同时读出第四组接收估计。
7.如权利要求5所述的解码器,其特征在于所述解码器引擎是MAP解码器引擎。
8.如权利要求5所述的解码器,其特征在于所述解码器引擎包括:
前向状态度量计算器,用于响应于所述第一组接收估计产生前向状态度量;
反向状态度量计算器,用于响应于所述第二组接收估计产生反向状态度量。
9.如权利要求6所述的解码器,其特征在于所述解码器引擎还包括:
前向状态度量计算器,用于响应于所述第一组接收估计产生前向状态度量:
第一反向状态度量计算器,用于响应于第二组接收估计产生反向状态度量;以及
第二反向状态度量计算器,用于响应于所述第四组接收估计产生反向状态度量。
10.如权利要求5所述的解码器,其特征在于所述解码器缓冲器包括:
第一存储器,用于读写接收样本;
第二存储器,用于读写接收样本;以及
第三存储器,用于读写接收样本。
11.一种数据解码方法,包括以下步骤:
a)把第一状态度量计算器耦合到第一组接收估计以产生一初始化值;
b)把第二状态度量计算器耦合到第二组接收估计以产生第一组状态度量;
c)把第三状态度量计算器耦合到第三组接收估计以产生第二组状态度量;
d)把第四组接收估计写到数据缓冲器,其中
同时进行步骤a、b、c和d。
12.如权利要求11所述的方法,其特征在于使用先前计算得到的初始化值产生所述第二组状态度量,并用先前计算得到的一组状态度量来处理所述第二组状态度量而产生数据估计。
13.如权利要求11所述的方法,其特征在于还包括以下步骤:
把所述第一状态度量计算器耦合到所述第二组接收估计;以及
把所述第三状态度量计算器耦合到所述第一组接收估计。
14.一种解码方法,包括以下步骤:
a)沿第一方向对第一窗口进行第一解码,同时沿第二方向对第二窗口进行第二解码;
b)存储第一解码的结果;
c)使用来自第二解码的结果对第三解码进行初始化;
d)沿所述第二方向在所述第一窗口上进行第三解码,并使用在第三解码期间计算得到的度量和所述结果来计算LLR值;以及
与步骤d)同时
沿第一方向对另一窗口进行第四解码、第五解码以及在新的窗口上沿第二方向进行第六解码;
e)存储来自所述第五解码的第五解码结果,把第六解码结果用于一初始化值。
15.如权利要求14所述的方法,其特征在于所述第二方向与所述第一方向相反。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US9648998P | 1998-08-14 | 1998-08-14 | |
US60/096,489 | 1998-08-14 | ||
US09/259,665 US6381728B1 (en) | 1998-08-14 | 1999-02-26 | Partitioned interleaver memory for map decoder |
US09/259,665 | 1999-02-26 | ||
US09/283,013 | 1999-03-31 | ||
US09/283,013 US6434203B1 (en) | 1999-02-26 | 1999-03-31 | Memory architecture for map decoder |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1323462A CN1323462A (zh) | 2001-11-21 |
CN1211931C true CN1211931C (zh) | 2005-07-20 |
Family
ID=27378195
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB998121525A Expired - Lifetime CN1211931C (zh) | 1998-08-14 | 1999-08-13 | 用于最大后验概率解码器的存储器体系结构 |
Country Status (12)
Country | Link |
---|---|
EP (1) | EP1118158B1 (zh) |
JP (2) | JP4405676B2 (zh) |
CN (1) | CN1211931C (zh) |
AT (1) | ATE476016T1 (zh) |
AU (1) | AU766116B2 (zh) |
BR (1) | BR9912990B1 (zh) |
CA (1) | CA2340366C (zh) |
DE (1) | DE69942634D1 (zh) |
ES (1) | ES2347309T3 (zh) |
HK (1) | HK1040842B (zh) |
ID (1) | ID28538A (zh) |
WO (1) | WO2000010254A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3450788B2 (ja) * | 2000-03-06 | 2003-09-29 | 松下電器産業株式会社 | 復号化装置および復号化処理方法 |
DE10012873A1 (de) | 2000-03-16 | 2001-09-27 | Infineon Technologies Ag | Optimierter Turbo-Decodierer |
FI109162B (fi) | 2000-06-30 | 2002-05-31 | Nokia Corp | Menetelmä ja järjestely konvoluutiokoodatun koodisanan dekoodaamiseksi |
US6662331B1 (en) | 2000-10-27 | 2003-12-09 | Qualcomm Inc. | Space-efficient turbo decoder |
KR20040069344A (ko) * | 2001-12-28 | 2004-08-05 | 코닌클리즈케 필립스 일렉트로닉스 엔.브이. | 데이터 디코딩 방법, 수신기 및 컴퓨터 프로그램 제품 |
AU2003259479A1 (en) * | 2002-09-18 | 2004-04-08 | Koninklijke Philips Electronics N.V. | Method for decoding data using windows of data |
US7702968B2 (en) * | 2004-02-27 | 2010-04-20 | Qualcomm Incorporated | Efficient multi-symbol deinterleaver |
CN102571107B (zh) * | 2010-12-15 | 2014-09-17 | 展讯通信(上海)有限公司 | LTE***中高速并行Turbo码的解码***及方法 |
US9128888B2 (en) * | 2012-08-30 | 2015-09-08 | Intel Deutschland Gmbh | Method and apparatus for turbo decoder memory collision resolution |
US10014026B1 (en) * | 2017-06-20 | 2018-07-03 | Seagate Technology Llc | Head delay calibration and tracking in MSMR systems |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5862190A (en) * | 1995-12-29 | 1999-01-19 | Motorola, Inc. | Method and apparatus for decoding an encoded signal |
-
1999
- 1999-08-13 CN CNB998121525A patent/CN1211931C/zh not_active Expired - Lifetime
- 1999-08-13 ES ES99942209T patent/ES2347309T3/es not_active Expired - Lifetime
- 1999-08-13 WO PCT/US1999/018550 patent/WO2000010254A1/en active IP Right Grant
- 1999-08-13 BR BRPI9912990-6A patent/BR9912990B1/pt not_active IP Right Cessation
- 1999-08-13 JP JP2000565607A patent/JP4405676B2/ja not_active Expired - Lifetime
- 1999-08-13 DE DE69942634T patent/DE69942634D1/de not_active Expired - Lifetime
- 1999-08-13 CA CA002340366A patent/CA2340366C/en not_active Expired - Lifetime
- 1999-08-13 AT AT99942209T patent/ATE476016T1/de not_active IP Right Cessation
- 1999-08-13 EP EP99942209A patent/EP1118158B1/en not_active Expired - Lifetime
- 1999-08-13 AU AU55638/99A patent/AU766116B2/en not_active Ceased
- 1999-08-13 ID IDW20010597A patent/ID28538A/id unknown
-
2002
- 2002-03-22 HK HK02102210.8A patent/HK1040842B/zh not_active IP Right Cessation
-
2009
- 2009-09-10 JP JP2009209398A patent/JP5129216B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
BR9912990A (pt) | 2001-12-11 |
HK1040842B (zh) | 2005-12-30 |
JP2002523914A (ja) | 2002-07-30 |
JP4405676B2 (ja) | 2010-01-27 |
CA2340366C (en) | 2008-08-05 |
CN1323462A (zh) | 2001-11-21 |
AU5563899A (en) | 2000-03-06 |
BR9912990B1 (pt) | 2012-10-02 |
EP1118158A1 (en) | 2001-07-25 |
EP1118158B1 (en) | 2010-07-28 |
ATE476016T1 (de) | 2010-08-15 |
HK1040842A1 (en) | 2002-06-21 |
ES2347309T3 (es) | 2010-10-27 |
JP5129216B2 (ja) | 2013-01-30 |
ID28538A (id) | 2001-05-31 |
DE69942634D1 (de) | 2010-09-09 |
AU766116B2 (en) | 2003-10-09 |
CA2340366A1 (en) | 2000-02-24 |
WO2000010254A1 (en) | 2000-02-24 |
JP2010016861A (ja) | 2010-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1168221C (zh) | Map译码器的分割型去交织器存储器 | |
CN1178399C (zh) | 高度并行最大后验概率(map)解码器 | |
US6603412B2 (en) | Interleaved coder and method | |
US6434203B1 (en) | Memory architecture for map decoder | |
CN1357172A (zh) | 利用线性同余序列的turbo码交织器 | |
US7020827B2 (en) | Cascade map decoder and method | |
CN1366739A (zh) | 被快速(Turbo)编码了的代码序列的译码方法及译码装置 | |
CN1211931C (zh) | 用于最大后验概率解码器的存储器体系结构 | |
CN1254121C (zh) | 特博码的解码方法 | |
CN1140148C (zh) | 在移动通信***中执行特博解码的方法 | |
CN1328386A (zh) | 并行滑动窗最大后验概率算法及其高速Turbo码译码器 | |
CN1148006C (zh) | 一种特博码软输入软输出解码方法以及解码器 | |
CN1145266C (zh) | 特博码解码方法及其解码器 | |
MXPA01001657A (en) | Memory architecture for map decoder | |
MXPA01001656A (en) | Partitioned deinterleaver memory for map decoder |
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 | ||
C56 | Change in the name or address of the patentee | ||
CP01 | Change in the name or title of a patent holder |
Address after: Holy land, California, Egypt Patentee after: Qualcomm Inc. Address before: Holy land, California, Egypt Patentee before: Qualcomm Inc. |
|
CX01 | Expiry of patent term |
Granted publication date: 20050720 |
|
CX01 | Expiry of patent term |