具体实施方式
对于SISO-RLL译码的复杂度考虑
E.Yamada,T.Iwaki和T.Yamaguchi在“Turbo Decoding with RunLength Limited Code for Optical Storage”,Japanese Journal of AppliedPhysics,Part-1,Vol.41,pp.1753-1756,2002中公开了软判决(SISO)比特检测与游程长度受限(RLL)编码的组合。首先,为了清楚起见,如图3所示考虑具有两级方法的所谓直接方案,具有单独的SISO-信道检测器和SISO-RLL译码器。图3示出接受源比特并且将这些源比特编码成用户比特的LDPC编码器90。用户比特然后由LDPC编码器90提供给RLL编码器91,后者将用户比特转换成NRZ信道比特。这些NRZ信道比特然后被提供给NRZI编码器92(1T预编码器),以获得可以通过信道发送或者存储在记录载体93上的NRZI信道比特。
在从信道或记录载体93中检索后,SISO-信道检测器处理由此检索的HF信号,将HF信号转换成NRZ信道比特,并且将NRZ信道比特提供给SISO-RLL译码器95。SISO RLL译码器95将NRZ信道比特转换成用户比特,然后LDPC译码器96处理用户比特以获得源比特。
传统的PRML检测器被SISO-信道检测器94代替,后者产生NRZ信道比特的LLR(对数似然比)。要注意,除了BCJR算法外,还存在其他用于产生关于NRZ信道比特的LLR软信息的算法:在这种意义上而言,图3中对SISO-信道检测器94做出的参考应当被广义地理解,它还表示像MAP、最大对数MAP、SOVA等替代算法(参见例如Zining Wu,“Coding and Iterative Detection for Magnetic Recording Channels”,Kluwer Academic Publishers,2000以获得更多详细描述)。软判决比特检测器的下一构块是所谓的软入软出(SISO)RLL译码器95:它具有关于NRZ信道比特的输入软判决信息(LLR),并且作为输出,具有关于用户比特的软判决信息(LLR)。换种说法,SISO-RLL译码器95将对NRZ信道比特流ck应用的软判决信息向着应用到用户比特流uk的软判决信息转变。要注意,标准的RLL译码器具有关于NRZ信道比特ck的硬比特判决作为输入,并且所检测的(硬)用户比特uk作为输出。E.Yamada,T.Iwaki和T.Yamaguchi在“Turbo Decoding with Run LengthLimited Code for Optical Storage”,Japanese Journal of Applied Physics,Part-1,Vol.41,pp.1753-1756,2002所公开的这样的SISO-RLL译码器95需要RLL码的有限状态机(FSM)描述。通过译码步骤中分支数量给出了给定RLL-SISO译码器的硬件复杂度的良好指示。
17PP码不是基于ACH算法构建的;它是具有不同映射的同步可变长度码,所有映射具***速率 。17PP码的实际映射是(从用户比特到信道比特):2到3,4到6,6到9和8到12。T.Miyauchi和Y.Iida在“Soft-Output Decoding of 17PP Code”,Technical Digest ISOM 2003(International Symposium on Optical Memory),Nara,Japan,paperWe-PP-13,pp.314-315中已经指出,BD标准中所使用的17PP RLL码在从可变长度码结构转变成基于FSM的码结构(仅仅为了译码的目的)时,具有21个状态的高状态复杂度和79个分支(网格的每级,沿着分支两个输入比特和3个信道比特)。后来,网格被简化为15状态53分支。参见technical digest ISOM 2004,T.Miyauchi,Y.Shinohara,Y.Iida,T.Watanabe,Y.Urakawa,H.Yamagishi和M.Noda,“Application ofTurbo Codes to High-Density Optical Disk Storage using 17PP code”(Tu-C-C03)。本发明中得出的RLL码具有本质上较低的硬件复杂度。
光学记录中更有利的软判决译码方案由Bliss方案的适配形式给出。关于这样的基本方案的原始想法是由W.G.Bliss,Circuitry for PerformingError Correction Calculations on Baseband Encoded Data to EliminateError Propagation,in IBM Techn.Discl.Bul.,Vol.23,pp.4633-4634,1981公开的。图5中示出了该适配方案。首先说明发送部分(图5的上部)。用户数据被RLL编码,然后差分码比特流送入1T预编码器,生成单极性(或者等效地,双极性)码比特流。这表示进入信道的总体码比特流的***部分。以单极性码比特流作为输入,***LDPC编码器产生奇偶比特,奇偶比特随后被RLL编码来产生该奇偶部分的差分码比特流并随后送至1T预编码器,然后码比特流的单极性奇偶部分与码比特流的单极性***部分级联,并且整个单极性码比特流作为“编码”数据输入到信道(例如,写信道,用于在信息承载设备(如光盘)上写入标记和非标记。接着,说明接收部分(图5的下部)。借助于读出设备读出信息承载设备上写入的数据,这产生了信号波形,首先通过均衡器均衡该波形。均衡后的信号波形是软入/软出(SISO)信道检测器的输入,后者产生关于单极性码比特流电平的对数似然比(LLR)形式的软判决信息(对所述单极性码比特流的奇偶部分以及***部分两者都产生)。对于奇偶部分,另外应用SISO RLL译码器,关于单极性码比特流的LLR作为输入,关于LDPC编码器的奇偶比特电平的LLR作为输出。***部分的单极性码比特流的LLR以及经过SISO-RLL译码后的奇偶部分的LLR都是LDPC译码器的输入,LDPC译码器产生纠正版本的单极性码比特流,后者随后送入1T预编码器的逆部件,并最终送至硬判决RLL译码器,硬判决RLL译码器具有译码版本的用户数据作为输出。
d和r约束的任何组合的通用构建方法
新码的基础是一种新码构造方法,通过该方法可以得到通用的码,就它可以应用到d和r约束的任何组合的意义上而言它是通用的。在下面段落中,描述该通用码构造方法。
该方法涉及借助于总体信道码将用户比特流转换成到编码比特流(又称为信道比特流)。这样的信道码将一组M个信息比特转换成一组N个码字比特。第一组比特通常又称为信息字,第二组比特称为码字或信道字。总体信道码可以通过数量S个子码以明确定义的顺序级联而实现,其以预定重复周期循环地重复:每个子码在其输入接收mi比特的信息字,将其转换成ni比特的码字,其中mi和ni是每个考虑的子码所特有的整数。此外,对于每个子码,第二特有整数ni大于第一特有整数mi;此外,总体码的重复周期内的所有子码的mi数量之和等于M,并且总体码的重复周期内的所有子码的ni数量之和等于N。新构建方法的关键特征是,对于每第i个子码,它的ni比特的码字被划分成T个不同类型,并且被排列到T类编码状态中,使得对于给出的第i子码,可以将类型t的ni比特的码字(其中t是1与T之间的整数)与下一子码的ni+1比特的码字级联,如果下一子码的这个后继码字属于索引为T+1-t的类的其中一种编码状态的话。对于包括d和r约束的RLL码构造,可以得出T=1+(d+1)×(r+1)。
下面将首先说明多种不同码字类型。码字类型是根据码字的拖尾比特定义的。此外,与具有高索引的码字类型相比,具有低索引的码字类型对后继码字的前导比特限制更少。码字类型nr.1允许与任何后继码字级联。属于码字类型1的码字全都以d+1个零结尾,即:
|...0d+1|nr.1
随后,属于码字类型2,3,...,r+2的码字全都以10d结尾。要注意,这最后游程是具有最小游程长度的游程(d+1个信道比特)。在这最后游程10d之前,可以区分r+1种情况:码字类型2具有比最小游程长度大的游程,码字类型3在最后游程10d之前具有正好一个最小游程长度,码字类型4在最后游程10d之前具有正好两个最小游程长度,...,以及码字类型r+2在最后游程10d之前具有正好r个最小游程长度。这些r+1种不同情况如下列出:
|...0d+1 1 0 d |nr.2
………
接着,属于码字类型(r+2)+1,(r+2)+2,...,(r+2)+(r+1)的码字全都以10d-1结尾。要注意,这个最后游程不可以是完整的游程,因为其游程长度正好比最小游程长度(长度(d+1个信道比特))短1比特。在这最后游程10d-1之前,可以区分r+1种情况:码字类型(r+2)+1具有比最小游程长度大的游程,码字类型(r+2)+2在最后游程10d-1之前具有正好一个最小游程长度,码字类型(r+2)+3在最后游程10d-1之前具有正好两个最小游程长度,...,以及码字类型(r+2)+(r+1)在最后游程10d-1之前具有正好r个最小游程长度。这些r+1种不同情况如下列出:
|…0d+1 1 0 d-1 |nr.1+(r+1)+1
………
不同码字类型的这种枚举如上沿着相同的线继续:每次,最后游程开始处的信道比特数量减少正好一个信道比特。在给定级上,达到最后游程的开始包括正好由10给出的两比特的情形。不同码字类型(r+1)的数量如下列出:
|…0d+1 10|nr.1+(d-1)×(r+1)+1
.........
最终,当达到最后游程的开始包括正好由1给出的一比特的情形时,到达不同码字类型的该枚举中的最后步骤。不同码字类型(r+1)的数量如下列出:
|…0d+1 1|nr.1+d×(r+1)+1
………
总共有(d+1)个枚举步骤(枚举不同的码字类型);对于每个枚举步骤,有r+1个不同的码字类型。总共,这相当于上面给出的不同码字类型数量,T=1+(d+1)×(r+1)。
在介绍编码类的概念之前,以与码字类型类似的方式枚举前导比特图案(但是作为相应码字类型的拖尾比特图案的从右向左镜像版本,获得各自的前导比特图案)。这产生了可能的前导比特图案的类别:
|0d+1… nr.1
|0 d 1 0d+1… nr.2
|0 d 1 0 d 1 0d+1… nr.3
.........
|0 d 1 0 d 1…0 d 1 0d+1… nr.r+2
|0 d-1 1 0d+1… nr.1+(r+1)+1
|0 d-1 1 0 d 1 0d+1… nr.1+(r+1)+2
.........
|0 d-1 1 0 d 1…0 d 1 0d+1… nr.1+(r+1)+(r+1)
.........
.........
|010d+1… nr.1+(d-1)×(r+1)+1
|01 0 d 1 0d+1… nr.1+(d-1)×(r+1)+2
.........
|01 0 d 1…0 d 1 0d+1… nr.1+(d-1)×(r+1)+(r+1)
|1 0d+1… nr.1+d×(r+1)+1
|1 0 d 1 0d+1… nr.1+d×(r+1)+2
.........
|1 0 d 1…0 d 1 0d+1… nr.1+d×(r+1)+(r+1)
RLL信道码包括多个编码状态。在本发明中,每个编码状态至少是一个编码类的成员。索引为t的编码类包括所有这样的码字,即,具有索引为i的前导比特图案,使得1≤i≤t。一方面码字类型的结构,另一方面编码类,导致用于该新码构造方法的下列性质:属于码字类型t的码字后面只能跟着码字,如果该码字属于编码类T+1-t的编码状态之一的话。
进一步方便地注意到,由于上面所描绘的码字类型和编码状态的结构,给定考虑的编码类i的pi个编码状态的每一个也是具有大于i的索引的所有编码类的编码状态。
对于d=1和r=2的情况,存在T=7个不同的编码类和码字类型。根据上面,对于面向9比特的码、面向字节的码和具有紧4到6映射的码,可以得出实际码,全都有d=1和r=2。
对于d=2和r=2的情况,存在T=10个不同的编码类和码字类型。
具有d=1和RMTR约束r=2、紧2到3映射的RLL码
关于硬判决比特检测,可以创建RMTR约束r=2的d=1RLL码,对于RLL编码器的输入处的9比特用户字或者对于RLL编码器的输入处的8比特用户字或字节具有很高的效率。这些码在编码状态数量方面具有大的复杂度;此外,它们在其输入处具有长度8或9比特长度的用户字。后两个方面使这些非常高效的d=1&r=2RLL码不适合软判决RLL译码,这是因为,为了限制这种情况下的硬件复杂度,只能允许数量受限的编码状态,并且应当具有从用户比特到信道比特的简明的码映射。在本发明中,生成具有下面部分中规定的所有性质的新码,并且使它更适合软判决SISO-RLL译码。当前的尝试包括可能的最紧映射,即,具有2到3映射的码。
适合软判决RLL译码的d=1&r=2RLL码
r=2RLL约束对于信道检测器的性能是有利的(信道检测器可以是硬判决比特检测的PRML比特检测器和BCJR信道检测器,或者软判决比特检测的最大对数MAP信道检测器)。例如,对于硬判决比特检测,r=2约束与r≥6的情形相比产生了大约5%的容量增益。因此,本发明的目标是生成具有下列性质的d=1RLL码:
·它具有RMTR约束r=2;
·它具有数量受限的编码状态;
·它肯定不能有极高的效率,因为选择后者可能导致码过大的复杂度,这使它不适合软判决SISO-RLL译码;因此,码速率R=2/3就很好;
·它具有简明的映射,例如2到3,将从码的每个编码状态扇出的分支限制到22=4;
·此外,它必须最好也具有k约束。
·它必须具有高级别的DC可控制性。
·它必须具有低差错传播。
所有上述性质用如下的码构建实现。
一般方面
本码设计的目的是让信道码具有用户比特到信道比特的紧映射,从而可以保持软判决SISO-RLL译码器的硬件复杂度(在分支总数方面)可以保持为低。新码具有用户比特到信道比特的2到3映射(因此码速率 )。如之前讨论的,组合的RLL约束d=1和r=2的香农容量等于C(d=1,k=∞,r=2)=0.679286。有可能构建用户比特到信道比特映射为2到3的码,因为它具有速率R=0.6667≤C(d=1,k=∞,r=2)。
滑动块游程受限(RLL)码的构建涉及R.L.Adler,D.Coppersmith和M.Hassner,“Algorithms for Sliding Block Codes.An Application ofSymbolic Dynamics to Information Theory”,IEEE Transaction onInformation Theory,Vol.IT-29,1983,pp.5-22公开的ACH算法。该算法寻找逼近本征向量,vi表示对于描述RLL约束的对应状态转换图(STD)的所有状态i(对于具有m到n映射的码)满足不等式集合的逼近本征向量的第i系数:
在上述等式中,D表示STD的所谓的邻接矩阵或者连接矩阵:如果对应的两个STD状态在图中相连,则它的矩阵元素等于1,如果它们不相连则等于0。对于具有RLL约束d=1和r=2的新码,该码具有参数m=2和n=3。这意味着对于构想的新码需要满足下面不等式(描述RLL约束的状态转换图中的状态数量等于7;参见下一部分):
状态转换图(STD)
应当注意,状态转换图(STD)描述信道比特流必须满足的基本游程长度约束。满足这些游程长度约束的RLL码基于包括一定数量状态的有限状态机(FSM)。沿着码的FSM的分支,示出了RLL码的码字。考虑RLL编码器处于给定的FSM状态;对于2m=4个输入字的每一个,有一个唯一的分支离开所述FSM状态。每个分支由分支标签(是一个码字)以及“下一状态”(所述分支的到达状态)来唯一地表征。根据FSM结构的码字的级联产生满足STD中描绘的游程长度约束的信道比特流。
对于RLL约束d=1和r=2,STD如图2所示:它包括7个状态,表示为σ1,σ2,...,σ7。应当注意,在该STD中没有考虑k约束。
接着,分析每个STD状态的扇出。给定STD状态的扇出是能从该状态离开的(给定长度的)码字的集合。对于STD状态σ
1,扇出表示为
表1中列出了对7个STD状态的扇出的信道字的前导比特。给定STD状态的扇出的码字中的特有比特图案在某些情况下包括超过三个信道比特;在这种情况下,给定STD状态的扇出还限制在从考虑的STD状态发出的当前3比特码字紧后面3比特码字的可能性,这是因为r=2约束。在表1中,还列出了重新编号的STD状态,它们用σ
1表示。最后,在表1中还列出了将要稍后介绍的不同的编码类。为了完整起见,应当注意,连续的3比特码字之间的字边界用竖线“|”指示。
从表1中可以看出,适用扇出中的下列层次(具有最大扇出的STD状态σ3):
新的RLL码是基于多个编码状态构建的。根据本发明,这些编码状态被安排到如下(最大)七个类(Tmax=1+(d+1)×(r+1),对于d=1和r=2等于7):
由于根据本发明的编码类的该特定顺序,编码类i的编码状态也是所有具有不小于i的索引j,即,j≥i的所有编码类的编码状态。因此很方便地将码字的前导比特的可能图案排序如下(其中在某些情况下也需要指示一个或甚至两个后继码字的相关比特):
此外,对于根据本发明的码构建来说,考虑下面表3中描绘的拖尾比特图案的排序(还指示了STD的原始的和重新编号后的到达状态)是有益的。根据本发明,码字可以被划分成由它们的拖尾比特图案指定的7种不同类型。在仅3比特的短码字长度(对于2到3映射)的情况下,码字类型将取决于当前码字的比特,还取决于之前发射的码字的一些(如果不是全部的话)比特。
应当注意,(表3的)排序的拖尾比特图案是(表2的)是对应排序的前导比特图案的镜像版本。接下来讨论已经提到过的STD状态的重新编号。现在根据表3列出的拖尾比特图案的排序,重新编号STD的状态是很方便的。在表3的最后两列中描绘了这种新的编号。新编号的状态用
表示。利用该新编号,类型i的码字将到达具有相同索引的(重新编号的)STD状态,即,
;因此,基本规则是:
类型i的码字可以与作为后继码字的、属于类8-i的编码状态的任何码字级联。
应当注意,属于类8-i的编码状态的码字具有索引为1的前导比特图案(来自表2),其中1≤l≤8-i。作为例子,类型3的码字(以拖尾比特图案...001010|结尾)可以与来自类5的编码状态的码字级联,这意味着后面的码字可以以前导比特图案(表2)i=1,i=2,...,i=5开始。这种将码字划分成7种不同类型的码字、并且将编码状态排列到7种不同的编码类中,构成了进一步码构造的基础:通过这种方式,总是保持满足RLL约束d=1和r=2(在码字级联时也是这样)。从表3中清楚看到,扇出中的下列层次适用于重新编号的STD状态:
重新编号的STD状态
在所有中具有最大的扇出,并且
具有最小的扇出,列举顺序是根据从
到
的递减扇出。使用重新排序的STD状态和对应重新排列的表示为
的连接矩阵,逼近本征向量不等式(对于“新”本征向量
)被重写为:
每个编码类的编码状态数量用向量p表示。它与逼近本征向量
的关系由下式给出(对于第i分量,1≤i≤7):
注意,利用该有利的构造,编码类具有与重新编号的STD状态的编号***完全互补的编号***;这本来从表1中就已经很明显,其中提到了STD状态的重新编号,但没有说明。此外,还是由于不同编码类的特定构造,下面不等式成立:
p1≤p2≤p3...≤p7.(95)
平凡(trivial)编码类的概念
在上面推理中,假设了当从RLL编码器的FSM码发射码字时访问了作为到达状态的所有STD状态。这对应于逼近本征向量其中其所有分量都不为零的情况。然而,在码构造中,有可能某些STD状态具有等于0的逼近本征向量的分量。让我们仅仅为了简单起见而考虑只有一个这样的STD状态的情况,该STD状态具有索引8-j,从而 (具有不止一个这样的STD状态的情况是平凡扩展)。对应的编码类于是具有索引j,有pj=0,即,编码类是空的,因为它没有包含编码状态。这样的空编码类称为平凡编码类。因此,非平凡(非空)编码类的实际数量用Ncc表示,必须满足关系Ncc≤Tmax=1+(d+1)×(r+1)。等式(95)中描绘的对不同编码类的编码状态数量的层次仅适用于非平凡编码类。这是对于d=1且r=2、其中编码类j是平凡编码类(pj=0)的实际示例进行说明的。非平凡编码类的数量pi中的层次然后写为(对于编码类最大数等于Tmax=1+(d+1)×(r+1)的一般情况):
实际设计选择
具有2到3映射的码的上述码构造的应用显示,在由v={3,5,5,2,4,2,v7},0≤v7≤3给出的4个可能的逼近本征向量的情况下,最少需要5重状态***。
作为方便的逼近本征向量,可以选择v={3,5,5,2,4,2,0}或者 。对于编码类中的编码状态数量pj,取p={2,2,3,0,4,5,5}。存在一个平凡空编码类,即,索引j=4的编码类。因此,表示为T或Ncc的非平凡编码类的数量等于6。用CCi表示编码类,产生编码类上的下列编码状态分布:
下面是每个无编码类中能使用的码字列表
编码类CC1
为了便于表示,码的有限状态机的状态用S1....S5表示,对应于表中使用的状态∑1...∑5。
对于头两个状态S1和S2,由此存在正好8个可用的信道字,由000(下一状态S1-S5)和001(下一状态S1-S3)给出。现在考虑有多少可能的分配字到状态的方式,同时去掉给定状态内可能的字的置换的数量。有 种可能分配上述8个字中的4个信道字到状态S1,因此分配其余的4个信道字给状态S2。在信道字到状态S1和S2的该分配之后,没有剩下字用于随后的编码类的随后状态。
编码类CC2
由于该编码类具有与之前编码类相同的状态,因此与编码类CC1相比没有什么添加的。
编码类CC3
对于状态S3,因此正好有4个信道字,所以只有一种分配这些字到状态S3的方式是可能的。
编码类CC4
由于平凡编码类状态而不适用。
编码类CC5
对于状态S4,因此有6个可能的信道字。从而有 种可能分配上述6个字中的4个信道字到状态S4,因此对这些分配的每一个预留剩余的2个信道字,以供状态S5中进一步使用。
编码类CC6
连同在分配信道字到状态S4时剩下的两个字,对状态S5恰好有4个信道字。
编码类CC7
由于该编码类具有与之前编码类的相同状态,因此与编码类CC6相比没有什么添加的。
可能的分配和码组
信道字到状态的可能分配的总数等于70×15=1050。应当注意,信道字到状态的分配还不是有效的码。在进一步评估时,这些分配中有14个实际上产生码。应当注意,在将被称为码组的这些剩余的分配的每一个中,仍存在给定码表中的24种可能的字置换。由于在码的FSM中存在5个状态,并且由于没***字(三比特的组+下一状态)共同地在不同状态之间,因此这在这14个码组的每一个中产生总共245=7962624个可能的码。这14个可能的码组中每一个的一个码在下表中示出,并且引用为CodeTabledlkinfr2Nr01.txt到CodeTabled1kinfr2Nr14.txt。
对于每个表中的每个项,我们首先列出用户符号(对用户双比特00为0,对用户双比特01为1,对用户双比特10为2,对用户双比特11为3),然后列出三比特组,后面跟着信道字的下一状态。
::::::::::::::
CodeTabled1kinfr2Nr01.txt
::::::::::::::
**********************************************
*StateS01*StateS02*StateS03*StateS04*StateS05*
**********************************************
0 0 0 0 5 0 0 0 0 1 0 0 1 0 1 0 1 0 0 3 0 1 0 0 1
1 0 0 1 1 1 0 0 0 2 1 0 1 0 2 1 1 0 0 4 1 1 0 0 2
2 0 0 1 2 2 0 0 0 3 2 0 1 0 3 2 1 0 0 5 2 1 0 1 1
3 0 0 1 3 3 0 0 0 4 3 0 1 0 4 3 0 1 0 5 3 1 0 1 2
**********************************************
::::::::::::::
CodeTabled1kinfr2Nr02.txt
::::::::::::::
**********************************************
*StateS01*StateS02*StateS03*StateS04*StateS05*
**********************************************
0 0 0 0 4 0 0 0 0 1 0 0 1 0 1 0 1 0 0 3 0 1 0 0 1
1 0 0 1 1 1 0 0 0 2 1 0 1 0 2 1 1 0 0 4 1 1 0 0 2
2 0 0 1 2 2 0 0 0 3 2 0 1 0 3 2 1 0 0 5 2 1 0 1 1
3 0 0 1 3 3 0 0 0 5 3 0 1 0 4 3 0 1 0 5 3 1 0 1 2
**********************************************
::::::::::::::
CodeTabled1kinfr2Nr03.txt
::::::::::::::
**********************************************
*StateS01*StateS02*StateS03*StateS04*StateS05*
**********************************************
0 0 0 0 4 0 0 0 0 1 0 0 1 0 1 0 1 0 0 3 0 1 0 0 1
1 0 0 0 5 1 0 0 0 2 1 0 1 0 2 1 1 0 0 4 1 1 0 0 2
2 0 0 1 1 2 0 0 0 3 2 0 1 0 3 2 1 0 0 5 2 1 0 1 1
3 0 0 1 2 3 0 0 1 3 3 0 1 0 4 3 0 1 0 5 3 1 0 1 2
**********************************************
::::::::::::::
CodeTabled1kinfr2Nr04.txt
::::::::::::::
**********************************************
*StateS01*StateS02*StateS03*StateS04*StateS05*
**********************************************
0 0 0 0 3 0 0 0 0 1 0 0 1 0 1 0 1 0 0 3 0 1 0 0 1
1 0 0 1 1 1 0 0 0 2 1 0 1 0 2 1 1 0 0 4 1 1 0 0 2
2 0 0 1 2 2 0 0 0 4 2 0 1 0 3 2 1 0 0 5 2 1 0 1 1
3 0 0 1 3 3 0 0 0 5 3 0 1 0 4 3 0 1 0 5 3 1 0 1 2
**********************************************
::::::::::::::
CodeTabled1kinfr2Nr05.txt
::::::::::::::
**********************************************
*StateS01*StateS02*StateS03*StateS04*StateS05*
**********************************************
0 0 0 0 3 0 0 0 0 1 0 0 1 0 1 0 1 0 0 3 0 1 0 0 1
1 0 0 0 5 1 0 0 0 2 1 0 1 0 2 1 1 0 0 4 1 1 0 0 2
2 0 0 1 1 2 0 0 0 4 2 0 1 0 3 2 1 0 0 5 2 1 0 1 1
3 0 0 1 2 3 0 0 1 3 3 0 1 0 4 3 0 1 0 5 3 1 0 1 2
**********************************************
::::::::::::::
CodeTabled1kinfr2Nr06.txt
::::::::::::::
**********************************************
*StateS01*StateS02*StateS03*StateS04*StateS05*
**********************************************
0 0 0 0 3 0 0 0 0 1 0 0 1 0 1 0 1 0 0 3 0 1 0 0 1
1 0 0 0 4 1 0 0 0 2 1 0 1 0 2 1 1 0 0 4 1 1 0 0 2
2 0 0 1 1 2 0 0 0 5 2 0 1 0 3 2 1 0 0 5 2 1 0 1 1
3 0 0 1 2 3 0 0 1 3 3 0 1 0 4 3 0 1 0 5 3 1 0 1 2
**********************************************
::::::::::::::
CodeTabled1kinfr2Nr07.txt
::::::::::::::
**********************************************
*StateS01*StateS02*StateS03*StateS04*StateS05*
**********************************************
0 0 0 0 3 0 0 0 0 1 0 0 1 0 1 0 1 0 0 3 0 1 0 0 1
1 0 0 0 4 1 0 0 0 2 1 0 1 0 2 1 1 0 0 4 1 1 0 0 2
2 0 0 0 5 2 0 0 1 1 2 0 1 0 3 2 1 0 0 5 2 1 0 1 1
3 0 0 1 3 3 0 0 1 2 3 0 1 0 4 3 0 1 0 5 3 1 0 1 2
**********************************************
::::::::::::::
CodeTabled1kinfr2Nr08.txt
::::::::::::::
**********************************************
*StateS01*StateS02*StateS03*StateS04*StateS05*
**********************************************
0 0 0 0 1 0 0 0 0 3 0 0 1 0 1 0 1 0 0 3 0 1 0 0 1
1 0 0 0 2 1 0 0 0 4 1 0 1 0 2 1 1 0 0 4 1 1 0 0 2
2 0 0 1 1 2 0 0 0 5 2 0 1 0 3 2 1 0 0 5 2 1 0 1 1
3 0 0 1 2 3 0 0 1 3 3 0 1 0 4 3 0 1 0 5 3 1 0 1 2
**********************************************
::::::::::::::
CodeTabled1kinfr2Nr09.txt
::::::::::::::
**********************************************
*StateS01*StateS02*StateS03*StateS04*StateS05*
**********************************************
0 0 0 0 1 0 0 0 0 3 0 0 1 0 1 0 1 0 0 3 0 1 0 0 1
1 0 0 0 2 1 0 0 0 4 1 0 1 0 2 1 1 0 0 4 1 1 0 0 2
2 0 0 0 5 2 0 0 1 1 2 0 1 0 3 2 1 0 0 5 2 1 0 1 1
3 0 0 1 3 3 0 0 1 2 3 0 1 0 4 3 0 1 0 5 3 1 0 1 2
**********************************************
::::::::::::::
CodeTabled1kinfr2Nr10.txt
::::::::::::::
**********************************************
*StateS01*StateS02*StateS03*StateS04*StateS05*
**********************************************
0 0 0 0 1 0 0 0 0 3 0 0 1 0 1 0 1 0 0 3 0 1 0 0 1
1 0 0 0 2 1 0 0 0 5 1 0 1 0 2 1 1 0 0 4 1 1 0 0 2
2 0 0 0 4 2 0 0 1 1 2 0 1 0 3 2 1 0 0 5 2 1 0 1 1
3 0 0 1 3 3 0 0 1 2 3 0 1 0 4 3 0 1 0 5 3 1 0 1 2
**********************************************
::::::::::::::
CodeTabled1kinfr2Nr11.txt
::::::::::::::
**********************************************
*StateS01*StateS02*StateS03*StateS04*StateS05*
**********************************************
0 0 0 0 1 0 0 0 0 3 0 0 1 0 1 0 1 0 0 3 0 1 0 0 1
1 0 0 0 2 1 0 0 1 1 1 0 1 0 2 1 1 0 0 4 1 1 0 0 2
2 0 0 0 4 2 0 0 1 2 2 0 1 0 3 2 1 0 0 5 2 1 0 1 1
3 0 0 0 5 3 0 0 1 3 3 0 1 0 4 3 0 1 0 5 3 1 0 1 2
**********************************************
::::::::::::::
CodeTabled1kinfr2Nr12.txt
::::::::::::::
**********************************************
*StateS01*StateS02*StateS 03*StateS04*StateS05*
**********************************************
0 0 0 0 1 0 0 0 0 4 0 0 1 0 1 0 1 0 0 3 0 1 0 0 1
1 0 0 0 2 1 0 0 0 5 1 0 1 0 2 1 1 0 0 4 1 1 0 0 2
2 0 0 0 3 2 0 0 1 1 2 0 1 0 3 2 1 0 0 5 2 1 0 1 1
3 0 0 1 3 3 0 0 1 2 3 0 1 0 4 3 0 1 0 5 3 1 0 1 2
**********************************************
::::::::::::::
CodeTabled1kinfr2Nr13.txt
::::::::::::::
**********************************************
*StateS01*StateS02*StateS03*StateS04*StateS05*
**********************************************
0 0 0 0 1 0 0 0 0 4 0 0 1 0 1 0 1 0 0 3 0 1 0 0 1
1 0 0 0 2 1 0 0 1 1 1 0 1 0 2 1 1 0 0 4 1 1 0 0 2
2 0 0 0 3 2 0 0 1 2 2 0 1 0 3 2 1 0 0 5 2 1 0 1 1
3 0 0 0 5 3 0 0 1 3 3 0 1 0 4 3 0 1 0 5 3 1 0 1 2
**********************************************
::::::::::::::
CodeTabled1kinfr2Nr14.txt
::::::::::::::
**********************************************
*StateS01*StateS02*StateS03*StateS04*StateS05*
**********************************************
0 0 0 0 1 0 0 0 0 5 0 0 1 0 1 0 1 0 0 3 0 1 0 0 1
1 0 0 0 2 1 0 0 1 1 1 0 1 0 2 1 1 0 0 4 1 1 0 0 2
2 0 0 0 3 2 0 0 1 2 2 0 1 0 3 2 1 0 0 5 2 1 0 1 1
3 0 0 0 4 3 0 0 1 3 3 0 1 0 4 3 0 1 0 5 3 1 0 1 2
**********************************************
应当注意,上面列出的这14个码组仅仅在字在状态S1和S2中的分配方面不同。此外,仔细检查会发现,码组i和15-i(i=1,...,8)是相等的,因为它们可以通过状态S 1和S2的简单互换来相互转换。因此,最后只有7个本质不同的码组。
具有PCWA映射的码
接着,对于上面7个码组的每一个,在所有245=7962624个码映射中,仅保留PCWA码映射,仅留下两个码组,编号8和14(或者等效的,编号1和7),作为可能的候选码源。随后,搜索PCWA映射,以最大化合并对于DC控制比特的两个可能值的替代编码路径的PCWA相关的概率pC。不失一般性,选择用户双比特的第一比特作为DC控制比特。对于L=5的信道字的编码路径,最大化的概率等于pC(L=5)=0.9804。
八个本质不同的码
使用这些基于PCWA的准则,对两个编码组8和14中每一个有16个可能的码,而在16个码中只有4个是真正独立的(因为每组的其他码可以简单地通过用户双比特的第一比特的比特翻转或者用户双比特的第二比特的翻转或者用户双比特的两个比特的翻转来得到)。为了简单表示起见,这8个本质不同的码表示为8号码组的08-01,08-02,08-03和08-04以及14号码组的14-01,14-02,14-03和14-04。
码14-02上的PCWA映射的示例
回忆具有奇偶互补字分配(PCWA)的RLL码具有这样的特性:对于DC控制比特的两个值的每一个(是给定用户字的一部分)从同一消息比特序列(从码的FSM的任何可能的状态开始)编码的各自信道比特序列,对于从开始状态一直到两个编码器路径合并的状态产生的序列具有相反的奇偶。对于编码器不合并的情况,则没有这样的约束。作为码14-02的示例,取用户比特序列c0 00 11...以从状态S4编码,c是第一双比特中的DC控制比特。对于c=0,编码路径等于:
对于c=1,编码路径对于3个信道字是不同的,然后两个路径都合并到状态S2中:
编码序列具有各自的实际相反的奇偶(奇数和偶数)。DC控制比特的两个可能值的替代路径合并的概率与DC控制性能的级别有关。对于具有长度为5个三比特组的编码路径,可以估计,对表5的码获得高的合并概率,该概率由pC(L=5)=0.9804给出。
通过信道比特流的电平上的替换的k约束
对于上面5状态的FSM,通过多个替换(又称为绕道,因为它们实际上表示从标准编码路径通过码网格的绕道)来实现k约束,它们一旦出现过多的零时就变得有效。这些替换要求在码的FSM的标准使用时不出现的特有图案。这样的图案由两个连续的三比特组101 010给出。应当注意,字101仅在状态S5中使用,可能的下一状态是S1和S2,而从S1和S2离开的字总是以至少两个零开始。考虑到r=2约束,在6比特特有图案之前的两比特和在它之后的一比特都必须等于0。这些信道替换可以具有与它们替换的全零序列相比相同或相反的奇偶。相同的奇偶通过以如下方式替换来实现(其中*比特可以是0或1):
*00 000 000 000(原始)
=>
*00 101 010 010(替换)
这涉及4个连续的三元组。在原始和替换序列之间具有相反奇偶的情况下,通过按照下列方式涉及3个连续的三比特组的替换可以实现较低的k约束,也就是,k=10。
*00 000 000(原始)
=>
*00 101 010(替换)
应当注意,由于原始和替换的序列的比特图案具有相反的奇偶,因此在DC控制比特位置上应用替换可能会局部地损害DC可控制性。
对于(在8个本质不同的码集合中的)具有k=10约束的码,存在8个替换,4个从状态S1离开,而另4个从状态S5离开。码14-02在误比特率性能方面是这8个码中最好的。它的码表由表5给出:
表5 |
S1 |
S2 |
S3 |
S4 |
S5 |
00(0) |
000 S3 |
001 S1 |
010 S3 |
100 S3 |
100 S1 |
01(1) |
000 S4 |
001 S2 |
010 S4 |
100 S4 |
100 S2 |
10(2) |
000 S1 |
001 S3 |
010 S1 |
010 S5 |
101 S1 |
11(3) |
000 S2 |
000 S5 |
010 S2 |
100 S5 |
101 S2 |
以及8个替换是:
表6离并状态 |
用户符号序列 |
没有/具有绕道的信道比特序列 |
到达状态 |
S1 |
10 10 10(**) |
000 000 000=>000 101 010 |
S1 |
S1 |
10 10 11(**) |
000 000 000=>000 101 010 |
S2 |
S1 |
10 10 00(**) |
000 000 000=>000 101 010 |
S3 |
S1 |
10 10 01(10) |
000 000 000=>000 101 010 |
S4 |
S5 |
00 10 10(**) |
100 000 000=>100 101 010 |
S1 |
S5 |
00 10 11(**) |
100 000 000=>100 101 010 |
S2 |
S5 |
00 10 00(**) |
100 000 000=>100 101 010 |
S3 |
S5 |
00 10 01(10) |
100 000 000=>100 101 010 |
S4 |
要注意,对于表6中的这些替换中的2个,还要求第4符号值(括号中表示用户比特);对于所有其他6个替换,第4符号值的比特表示为(**),意味着它们是“不关心比特”。类似地,也可以得出对所以其他7个码的替换(或绕道),并且在下面包括替换的8个码表中将这种类型的信息收集在一起。应当注意,在下表中,给出用户符号而不是用户双比特(仅在有必要的地方在括号中指示第4用户符号)。此外,应当注意,DC控制是通过***的DC控制比特进行的,DC控制比特被***消息比特流中,并且这些DC控制比特被定位作为用户双比特中的第一比特。
**********************************************
Code*Table**Group-08**PCWA-Code**Nr.**08-01***
**********************************************
*StateS01*StateS02*StateS03*StateS04*StateS05*
**********************************************
0 0 0 1 1 0 0 0 0 3 0 0 1 0 3 0 1 0 0 3 0 1 0 0 1
1 0 0 1 2 1 0 0 0 4 1 0 1 0 4 1 1 0 0 4 1 1 0 0 2
2 0 0 0 1 2 0 0 0 5 2 0 1 0 1 2 1 0 0 5 2 1 0 1 1
3 0 0 0 2 3 0 0 1 3 3 0 1 0 2 3 0 1 0 5 3 1 0 1 2
**********************************************
Actual-Detours--------------------------------
**********************************************
nr*StartingState**Symbol-Pattern*ArrivalState*
**********************************************
1 1 222 1
2 1 223 2
3 1 230 3
4 1 231(3) 4
5 5 022 1
6 5 023 2
7 5 030 3
8 5 031(3) 4
**********************************************
**********************************************
Code*Table**Group-08**PCWA-Code**Nr.**08-02***
**********************************************
*StateS01*StateS02*StateS03*StateS04*StateS05*
**********************************************
0 0 0 1 1 0 0 0 0 3 0 0 1 0 3 0 1 0 0 3 0 1 0 0 1
1 0 0 1 2 1 0 0 0 4 1 0 1 0 4 1 1 0 0 4 1 1 0 0 2
2 0 0 0 1 2 0 0 0 5 2 0 1 0 1 2 0 1 0 5 2 1 0 1 1
3 0 0 0 2 3 0 0 1 3 3 0 1 0 2 3 1 0 0 5 3 1 0 1 2
**********************************************
Actual-Detours--------------------------------
**********************************************
nr*StartingState**Symbol-Pattern*ArrivalState*
**********************************************
1 1 222 1
2 1 223 2
3 1 230 3
4 1 231(2) 4
5 5 022 1
6 5 023 2
7 5 030 3
8 5 031(2) 4
**********************************************
**********************************************
Code*Table**Group-08**PCWA-Code**Nr.**08-03***
**********************************************
*StateS01*StateS02*StateS03*StateS04*StateS05*
**********************************************
0 0 0 1 2 0 0 0 0 4 0 0 1 0 4 0 1 0 0 4 0 1 0 0 2
1 0 0 0 1 1 0 0 0 5 1 0 1 0 1 1 1 0 0 5 1 1 0 1 1
2 0 0 0 2 2 0 0 1 3 2 0 1 0 2 2 0 1 0 5 2 1 0 1 2
3 0 0 1 1 3 0 0 0 3 3 0 1 0 3 3 1 0 0 3 3 1 0 0 1
**********************************************
Actual-Detours--------------------------------
**********************************************
nr*StartingState**Symbol-Pattern*ArrivalState*
**********************************************
1 1 111 1
2 1 112 2
3 1 123 3
4 1 120(2) 4
5 5 311 1
6 5 312 2
7 5 323 3
8 5 320(2) 4
**********************************************
**********************************************
Code*Table**Group-08**PCWA-Code**Nr.**08-04***
**********************************************
*StateS01*StateS02*StateS03*StateS04*StateS05*
**********************************************
0 0 0 1 2 0 0 0 0 4 0 0 1 0 4 0 1 0 0 4 0 1 0 0 2
1 0 0 0 1 1 0 0 0 5 1 0 1 0 1 1 0 1 0 5 1 1 0 1 1
2 0 0 0 2 2 0 0 1 3 2 0 1 0 2 2 1 0 0 5 2 1 0 1 2
3 0 0 1 1 3 0 0 0 3 3 0 1 0 3 3 1 0 0 3 3 1 0 0 1
**********************************************
Actual-DetourS--------------------------------
**********************************************
nr*StartingState**Symbol-Pattern*ArrivalState*
**********************************************
1 1 111 1
2 1 112 2
3 1 123 3
4 1 120(1) 4
5 5 311 1
6 5 312 2
7 5 323 3
8 5 320(1) 4
**********************************************
**********************************************
Code*Table**Group-14**PCWA-Code**Nr.**14-01***
**********************************************
*StateS01*StateS02*StateS03*StateS04*StateS05*
**********************************************
0 0 0 0 3 0 0 0 1 1 0 0 1 0 3 0 1 0 0 3 0 1 0 0 1
1 0 0 0 4 1 0 0 1 2 1 0 1 0 4 1 1 0 0 4 1 1 0 0 2
2 0 0 0 1 2 0 0 1 3 2 0 1 0 1 2 1 0 0 5 2 1 0 1 1
3 0 0 0 2 3 0 0 0 5 3 0 1 0 2 3 0 1 0 5 3 1 0 1 2
**********************************************
Actual-Detours--------------------------------
**********************************************
nr*StartingState**Symbol-Pattern*ArrivalState*
**********************************************
1 1 222 1
2 1 223 2
3 1 220 3
4 1 221(3) 4
5 5 022 1
6 5 023 2
7 5 020 3
8 5 021(3) 4
**********************************************
**********************************************
Code*Table**Group-14**PCWA-Code**Nr.**14-02***
**********************************************
*StateS01*StateS02*StateS03*StateS04*StateS05*
**********************************************
0 0 0 0 3 0 0 0 1 1 0 0 1 0 3 0 1 0 0 3 0 1 0 0 1
1 0 0 0 4 1 0 0 1 2 1 0 1 0 4 1 1 0 0 4 1 1 0 0 2
2 0 0 0 1 2 0 0 1 3 2 0 1 0 1 2 0 1 0 5 2 1 0 1 1
3 0 0 0 2 3 0 0 0 5 3 0 1 0 2 3 1 0 0 5 3 1 0 1 2
**********************************************
Actual-Detours--------------------------------
**********************************************
nr*StartingState**Symbol-Pattern*ArrivalState*
**********************************************
1 1 222 1
2 1 223 2
3 1 220 3
4 1 221(2) 4
5 5 022 1
6 5 023 2
7 5 020 3
8 5 021(2) 4
**********************************************
**********************************************
Code*Table**Group-14**PCWA-Code**Nr.**14-03***
**********************************************
*StateS01*StateS02*StateS03*StateS04*StateS05*
**********************************************
0 0 0 0 4 0 0 0 1 2 0 0 1 0 4 0 1 0 0 4 0 1 0 0 2
1 0 0 0 1 1 0 0 1 3 1 0 1 0 1 1 1 0 0 5 1 1 0 1 1
2 0 0 0 2 2 0 0 0 5 2 0 1 0 2 2 0 1 0 5 2 1 0 1 2
3 0 0 0 3 3 0 0 1 1 3 0 1 0 3 3 1 0 0 3 3 1 0 0 1
**********************************************
Actual-Detours--------------------------------
**********************************************
nr*StartingState**Symbol-Pattern*ArrivalState*
**********************************************
1 1 111 1
2 1 112 2
3 1 113 3
4 1 110(2) 4
5 5 311 1
6 5 312 2
7 5 313 3
8 5 310(2) 4
**********************************************
**********************************************
Code*Table**Group-14**PCWA-Code**Nr.**14-04***
**********************************************
*StateS01*StateS02*StateS03*StateS04*StateS05*
**********************************************
0 0 0 0 4 0 0 0 1 2 0 0 1 0 4 0 1 0 0 4 0 1 0 0 2
1 0 0 0 1 1 0 0 1 3 1 0 1 0 1 1 0 1 0 5 1 1 0 1 1
2 0 0 0 2 2 0 0 0 5 2 0 1 0 2 2 1 0 0 5 2 1 0 1 2
3 0 0 0 3 3 0 0 1 1 3 0 1 0 3 3 1 0 0 3 3 1 0 0 1
**********************************************
Actual-Detours--------------------------------
**********************************************
nr*StartingState**Symbol-Pattern*ArrivalState*
**********************************************
1 1 111 1
2 1 112 2
3 1 113 3
4 1 110(1) 4
5 5 311 1
6 5 312 2
7 5 313 3
8 5 310(1) 4
**********************************************
硬判决RLL译码
对于上述码08-01到08-04和14-01到14-04,包括对于k约束的替换,硬判决RLL译码可以以两种方式进行:
(i)首先通过
*00 101 010(替换)
=>
*00 000 000(原始)
执行向后替换,然后跟着对没有k约束(从码的基本5状态FSM得出的)的码的滑动块译码器,或者:
(ii)将两个上述操作集成(向后替换+RLL滑动块译码)到一个单独适配的滑动块译码器;对于上述码,译码器的滑动块长度是5。对于码14-02,图4中示出了集成的滑动块译码器连同布尔逻辑。