背景技术
在通信***中,为了从产生了传输错误的数据中得到正确的译码结果而采用各种各样的纠错编码方式。例如,如在“New shannon limitError-correcting coding and decoding:turbo-codes(1),Claude Berrouetal.proc.IEEE 1993”(非专利文献1)所记述那样,Turbo编码方式作为纠错能力高的编码方式而被熟知。在如图1所示的通信***上,在Turbo编码器(101)中准备两个递归***卷积编码器,在卷积编码器1(104)中按输入顺序编码信息源的信号。在向卷积编码器2(106)输入之前,将信息源的信号临时向存储器存储,通过以按照某种模式的顺序取出该信号的交织器(105)将数据顺序打乱,由卷积编码器2(106)进行编码。如上所述,将编码数据U、Y0、Y1、Y2、Y3由两个编码输出发送到通信线路(102)中。将经由该通信线路(102)的编码数据U’,Y0’,Y1’,Y2’,Y3’输入到Turbo译码器(103),进行Turbo码的译码处理,还原译码数据U”。
Turbo译码器(103)包含译码器1,2(107,109)、交织器(108,111)、解交织器(110,112)。向译码器1(107)输入相当于发送数据U,Y0,Y1的U’,Y0’,Y1’进行软判决译码。另外,Y2’,Y3’相当于将原信号X交织后卷积编码后的发送数据Y2,Y3,将译码器1(107)的译码数据由交织器(108)以使得与Y2’,Y3’对应方式进行交织,并将其输入到译码器2(109)中进行软判决译码。译码结果输出由解交织器(110)以使得成为原始的数据顺序的方式进行解交织并且解交织结果作为先验似然信息输入到再次译码器1(107),然后反复操作和上述相同的动作。另外,输出由解交织器(112)解交织软判决译码的硬判决结果,得到译码输出U”。通过多次重复该译码处理,可纠正随机产生的随机错误、突发产生的突发错误。并且,由于译码器1,2是相同的,所以在实际中将1个译码器交替切换作为译码器1用(例如奇数次用)和译码器2用(例如偶数次用)的情况经常发生。
作为译码器1,2的译码方式举出有例如MAP(最大后验概率)译码方式和SOVA(软输出维特比算法)译码方式。前者MAP译码方式是使用接收数据的转移概率,算出前向路径概率(forward pathmetric)a和后向路径概率(backward path metric)b,使用前向路径概率a和后向路径概率b求出在各时间(比特)是“1”还是“0”是概率大的一方(硬判决值)和其差值(软判决值)的方式。
SOVA译码方式在Claude Berrou et al,”A Low ComplexitySoft-Output Viterbi Decoder Architecture”,Proc.IEEE,1993.(非专利文献2)中记载。作为卷积编码器的例子,在图2中表示依据3GPP2C.S0024-A的卷积编码器和其格状(trellis)线图。关于卷积编码器(301),当向编码器输入信号时则分支(tap)状态转移,当约束长度为K时则存在2(K-1)个状态。图2是表示约束长度K=4的卷积编码器。图3的分支状态变为000,001,010,011,100,101,110,111时,分别定义为状态0,状态1,状态2,状态3,状态4,状态5,状态6,状态7。当在状态6的状态下输入输入信号0,则输出“001”作为卷积输出,下一状态变为状态7。当将该状态6的时间点设为Bit=(-1),状态7的时间点设为Bit=0,则根据输入信号0,状态由状态6转移到了状态7。通过将状态转移沿反方向进行,可求得输入信号系列。将状态转移反方向进行称之为“后向跟踪(trace back)”。
图3中表示SOVA译码方式的后向跟踪动作的概念。首先,类似于在Bit=0为状态1,Bit=(-1)为状态2,Bit=(-2)为状态5这样,从输入到译码器的卷积输出信号向直到Bit=(-N)的信号系列检查状态转移的可能性,通过跟踪最准确的幸存路径,输出当一输入就被推定的比特率作为硬判决值(实线。路径上的数字是推定输入值)。在此之上,当设想从Bit=(-1)到Bit=0上的输入信号的推定有错误的情况,则由于有其他的状态转移的可能性,因此除了幸存路径跟踪之外,也检查关于从Bit=(-1)到Bit=0按照幸存路径和后向路径信息的状态转移,将这个作为竞争路径跟踪(虚线)。将产生竞争路径的动作称为路径分支。在Bit=0,(-1),(-2)...和各位上使该分支产生,收集相当于和幸存路径的准确度的差分的路径似然信息,决定软输出值。
这样,在一次分别对两条(幸存路径和竞争路径)进行后向跟踪并比较的时候,在确定1比特的软输出结果中需要各两次后向跟踪动作,所以计算效率降低,在确定所有软判决输出时需要时间。于是,提出了通过由多个状态的后向跟踪电路的并行动作,可同时运行多个竞争路径的后向跟踪,实现高效率高速度的动作的方法(特开平2002-217748)。这里,SOVA方式在各比特上由于直到第2次准确路径为止只进行后向跟踪,因此,对于考虑所有路径的上述MAP方式,本质上纠错能力差,但是计算量少。
另一方面,如图4所示,在后向跟踪上,使竞争路径也产生分支,通过考虑第3次准确的路径之后,以图提高纠错能力的方式在MarcP.C.Fossorier,Frank Burkert,Shu Lin,Joachim Hagenauer:“On theEquivalence Between SOVA and Max-Log-MAP Decodings”,IEEECommunication Letters,vol.2,pp.137-139,May 1998.(非专利文献3)中被介绍(图4是非专利文献3的图1)。Path-1表示幸存路径,path-2,path-m表示竞争路径,path-n表示来自作为竞争路径path-2的分支。由于考虑path-n,表示和uj 1不同的uj的路径增加,期望提高由候补增加所产生的软判决输出值的可靠度。但是,这种情况下,对应直到和幸存路径合流为止的长度,竞争路径的分支增加,同时有应跟踪的竞争路径数目变得很大的可能性。
附图说明
图1是使用了Turbo码的通信***的说明图。
图2是卷积编码器的例子(依据3GPP2 C.S0024-A)和其格状线图。
图3是以往技术(SOVA方式)的后向跟踪处理的概念图。
图4是以往技术(Bi-Directional SOVA方式)的后向跟踪处理的概念图。
图5是本发明的Turbo码译码器的结构图。
图6是本发明Turbo码反复译码时的动作说明图。
图7是本发明的Turbo码的ACS电路的说明图。
图8是本发明的Turbo码ACS电路的分支度量(branch metric)算式。
图9是本发明的Turbo码译码方式实施例的后向跟踪电路的说明图。
图10是本发明的Turbo码译码器的后向跟踪计算单元的说明图。
图11是决定后向跟踪电路的幸存状态标志及幸存路径标志的算法。
图12是后向跟踪电路的似然信息决定算法。
图13是本发明的Turbo码译码器输出选择电路的说明图。
图14是决定输出选择电路的译码结果及软判决输出的算法。
图15是本发明的后向跟踪处理的概念图。
具体实施方式
为了解决上述问题,以状态ACS动作时的路径信息和似然差信息、输入路径的幸存路径标志及路径似然为基础,决定当前的幸存状态标志、状态似然、推定输入值、输出路径的幸存路径标志及路径似然,上述输出路径似然对应路径信息,将选择状态(状态似然+似然差信息)输出的后向跟踪计算单元只准备和状态数目相同的数目进行并行动作。在本发明的后向跟踪计算单元的一个实施例上,如图10所示,分别在按照路径信息的后向跟踪路径上设定状态似然、在相反路径上设定(状态似然+似然差信息)作为路径似然。由此,在后向跟踪时,软判决输出候补可全部输出,因此可高精度地求出各比特的软判决值。在以往技术中,为了提高纠错能力,有必要增加动作频率、后向跟踪电路数目等,但是本发明中可减少动作频率并可以实现和MAP方式相同的纠错能力。
根据本发明,具有在Turbo码编码器上,将SOVA方式的纠错能力提高到和MAP方式相同的水平上同时,降低译码处理的运算量,减少对信号处理所必须的数字信号处理的动作频率的效果。
图5表示本发明的Turbo码译码器(103)的一个实施例。该译码器具有将接收的Turbo码数据作为译码器的软判决输入以信息长度存储的输入信号存储器(501),软判决译码器(107),将由上述软判决译码所得的硬判决值和软判决值的译码结果作为输出存储的译码结果存储器(503),在使上述译码结果和软判决信息以规定次数反复运算时,按交织模式的序号进行地址控制的交织控制单元(504)和存储交织模式的交织模式存储器(505)。由沿着交织模式的顺序进行地址控制的交织控制单元(504),通过对应反复译码的次数控制数据流,实现图1的交织器(107、108)及解交织器(110、111)的功能。软判决译码单元(107)具有似然信息更新单元(502)和延迟器(506),从似然信息更新单元(502)的输出似然信息和由延迟器(506)延迟后的输入似然信息将硬判决结果及下一段的先验似然信息存储到译码结果存储器中(503)。通过从译码结果按照交织控制单元的指定顺序读出硬判决结果得出软判决输入U’的硬判决输出U”。
由图6说明数据流。在反复译码第奇数次处理中,从存储了通过通信线路接收的turbo码编码数据的输入信号的存储器(501),按照各个地址顺序地读出U’,Y0’,Y1’的值作为似然信息更新单元(502)输入的C0,C1,C2使用。似然信息更新单元(502)的输出L(U’)n减去先验似然信息Le(U’)n-1和U’之后,作为外部信息似然Le(U’)n=β×{L(U’)n-U’-Le(U’)n-1},和L(U’)n的硬判决结果一起按地址顺序写入到译码结果存储器(503)。反复译码的第一次将先验似然信息Le(U’)n-1设为0。这里β是加权对软判决值的可靠度的系数,对纠错特性有影响。该β可从纠错结果的比特错误率测定通信线路的噪声状态,并可适当控制。
然后,在反复译码第偶数次处理中,从输入信号存储器(501)由交织器(601)按照交织模式读出U’得到的值作为似然信息更新部分(502)输入的C0,将Y2’,Y3’按地址顺序读出得到的值分别作为C1,C2使用。先验似然信息Le(U’)n-1使用的是从译码结果存储器(503)由交织器(602)按照交织模式读出在前次译码中得到的外部信息似然的值。似然信息更新单元(502)的输出L(U’)n减去先验似然信息Le(U’)n-1和U’之后,作为外部信息似然Le(U’)n=β×{L(U’)n-U’-Le(U’)n-1},和L(U’)n的硬判决结果U”一起由解交织器(603、604)在译码结果存储器(503)在按照交织模式的地址上写入。延迟器(506)是使似然信息更新单元(502)的输入C0和先验似然信息Le(U’)n-1相加的结果延迟到求出似然信息更新单元(502)的输出L(U’)n为止的电路。
然后,关于交织器(601、602)、解交织器(603、604)的功能的实现方法,说明图5的控制单元(504)和交织模式存储器(505)的反复执行译码时的动作。在反复译码第奇数次处理中,在控制单元(504)上与信号处理定时一致进行地址生成,以使得变为输入信号存储器(501)的读出地址、译码结果存储器(503)的读出地址、写入地址成为全部分别增加1的地址顺序。在反复译码第偶数次处理中,通过在控制单元(504)上与对应于各存储器的信号处理定时一致生成地址,以使得按交织模式存储器(505)的地址顺序读出交织模式得到的值,变为输入信号存储器(501)读出地址、译码结果存储器(503)的读出地址、写入地址,从而实现交织器(601、602),解交织器(603、604)的功能。进而,图6中的交织器(601、602)和解交织器(603、604)用在图5上的控制单元(504)和交织模式存储器(505)表示。
然后,说明图5的似然信息更新单元(502)。在似然信息更新单元(502)上具有ACS(Add-Compare-Select)电路(507),该电路用于求出关于所有的状态转移的转移准确度(度量(metric)值),转移信息(路径值),相当于直到某种状态为止的转移准确度的差分的似然差信息;存储在ACS电路(507)求得的度量值的度量存储器(508);存储路径值的路径存储器(902);存储似然差信息的似然存储器(903);从路径值中跟踪最准确的转移轨迹的后向跟踪电路(901)。
首先,图7中表示ACS电路(507)的实施方式的例子。在ACS电路(507)上,首先对于状态转移的基本结构(蝶形)将每个转移分支的分支准确度m作为软判决译码器输入的C0,C1,C2的函数求得。由存储了图5的度量值的度量存储器(508)下载对应于输入一侧的两个状态的度量值MET_P0和MET_P1,作为对应于ACS电路的输入一侧的两个状态的度量值。这里,度量值MET_P0和MET_P1在1位前在ACS电路中被计算,并被选择成为存储在度量存储器708中的度量值内的对应于与ACS电路的输入一侧对应的两个状态的度量值。
在图7上,表示在对状态2输入输入信号“0”的情况下,转移到状态5,在对状态3输入输入信号“1”的情况下转移到状态5的情况。此时,作为转移到状态5的可能性有从状态2转移到状态5和从状态3转移到状态5的两种情况。作为从状态2转移到状态5的的路径C的准确度,用C=MET_P2+m表示,这里m=C0-C1+C2,作为从状态3向状态5转移的路径D的准确度用D=MET_P1-m表示。对这两种转移比较转移准确度,由于在图7的例子中D比C大,所以从状态3向状态5转移是准确的。同样,当对于状态1检查转移的可能性时,在图7中从状态2向状态1转移是准确的。
这样,在图7中用粗线表示状态转移准确的路线。图7的情况下,由于转移准确度D比C大,是从状态号码大一方开始的转移,所以路径值定义为1。相反,当C大的情况下,路径值定义为0。同样,比较A和B的转移准确度,在A比B大的时候向状态4转移的路径值为0,A比B小的时候为1。另外,将转移准确度C和D的差分的绝对值除以2后得到的值作为状态5的似然差信息,同样,将A和B的差分绝对值除以2后得到的值当作状态1的似然差信息。在ACS电路上对所有的状态求度量值、路径值、似然差信息,分别存储在度量存储器(508)、路径存储器(902)、似然存储器(903)。为了避免度量值饱和,可以在1位前的ACS电路处理上预先存储具有最大值的度量,从各度量值中减去存储的度量值后,将所得的值存储在度量值存储器(508)中。这里,从C0,C1,C2求出m的函数是由编码器的结构决定的。以3GPP2 C.S 0024-A的turbo编码器标准为例,用格状线如图8所示那样表示。
图9是表示后向跟踪电路的实施例的说明图。后向跟踪电路(901)是由后向跟踪起始标志决定初始状态,使用分别从路径存储器(902)和似然存储器(903)读出的各状态的路径值和似然差信息,求得硬判决值SIGN和软判决值WGT的电路。
后向跟踪电路(901)是由个数为状态数的跟踪单元和一个输出选择单元(905)构成。跟踪单元(904)是对于各个输入路径,以幸存路径标志和路径似然信息为基础,求得当前状态的幸存状态标志、硬判决值SIGN、软判决值WGT以及输出路径的各路径似然信息和幸存路径标志的电路。这里,幸存路径标志是表示最准确的路径的转移的标志,幸存状态标志是表示幸存路径的输入状态的标志。在各跟踪单元(904)上求得的信息具有,作为1比特前的信息,向跟踪单元(904)中按照格状状态转移添加了反馈的结构。例如,由于由图2的格状线图在状态0中可从状态0和状态1转移得到,因此在图9中状态0的输出路径似然变为下一段的状态0和状态1的输入路径似然的一个。这样一来,通过其他的跟踪单元也进行同样的动作,可进行后向跟踪处理。在输出选择单元(905)中从各状态的跟踪单元(904)的输出结果计算硬判决值SIGN和软判决值WGT。
跟踪单元(904)的结构例子如图10所示。跟踪单元(904)具有幸存状态标志·幸存路径标志的确定、似然信息的确定、硬判决值的确定三个功能。
关于作为跟踪单元(904)的第1功能的标志的确定,在图11中表示动作流程图。首先求幸存状态标志。由于在向自身状态进行后向跟踪的2个输入路径的某一个是幸存路径的情况下,或者在后向跟踪开始时状态度量为最大的情况下为幸存状态,因此通过它们的“或”确定幸存状态标志SF。然后以求得的幸存状态标志为基础确定输出路径的幸存路径标志。将按照幸存状态标志=1的状态的路径信息的输出路径设定为幸存路径标志=1,除此以外的路径令幸存路径标志=0。
关于作为跟踪单元(904)的第2功能的似然的设定,在图12中表示动作流程。首先,从向自身状态进行后向跟踪的2个输入路径的路径似然确定当前状态的状态似然。由于路径似然越小可靠度越高,因此选择输入路径似然的最小值作为状态似然。然后,由求得的状态似然和来自似然存储器的似然差信息以及路径信息确定各输出路径的似然值。输出路径的似然在按照路径信息的情况下为状态似然,在相反的情况下为(状态似然+似然差信息)。例如在确定向状态号小的一侧的输出路径似然情况下,路径信息=0时路径似然=状态似然,在路径信息=1时路径似然=(状态似然+似然差信息)。并且关于状态似然的初始值,幸存状态为0,除此之外为最大值。这种情况下,幸存状态的似然和幸存路径的似然都为0。
跟踪单元(904)的第3功能是以路径信息为基础输出当前状态的硬判决值。如图2的格状线图所示,由于状态号码不同路径信息和硬判决值的对应关系也不同,因此以路径信息和状态号码为基础,由译码输出确定单元1001确定硬件判决值并输出。
图13表示输出选择单元的结构例子。在输出选择单元以各状态的硬判决值、幸存状态标志、输出路径似然以及似然差信息为基础,判决作为该比特的硬判决值SIGN和作为其似然信息的软判决值WGT。图14表示动作的流程图。首先以幸存状态标志为基础,将在SF=1的状态的硬判决值作为输出选择单元的硬判决值SIGN(1401)。然后在各状态下,输出软输出值WGT的候补。WGT的候补在该状态的硬判决值和SIGN不同(译码结果和幸存状态不同)的情况下作为作译码结果的似然(状态似然)(1404),相同的情况下为与译码结果相反的结果的似然(状态似然+似然差信息)(1405)。所得到的候补值由于表示对于和该位的硬判决输出相反的结果的输出的似然差,所以将该最小值当作输出选择单元的软输出值WGT(1406)。
图15表示以上结构的后向跟踪的情况。从各状态输出按着路径信息的路径/后向路径,考虑比特间的转移的全部的输出路径。另外,虽然1比特的转移中输出路径数目增加,但是由于存在向同一状态合流的路径,之后可靠度低的路径无需后向跟踪(由于总是在其他方可靠度恶劣,所以难以得出输出候补),因此所需的各后向跟踪电路的数目一直减少到状态数目为止。