块、帧同步方法及装置转让专利

申请号 : CN201010273895.8

文献号 : CN101938332B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 梁伟光耿东玉封东宁

申请人 : 华为技术有限公司

摘要 :

本发明涉及通信领域,公开了一种块、帧同步方法及装置,在输入误码率比较高时,能够更准确地完成同步。本发明中,检测N个比特组,对每一个比特组中各个位置出现与块同步头相同的比特片段的次数进行统计,如果只有一个位置的统计值大于第一门限,则该位置即为块同步头的位置。对由M个块同步头所组成的接收序列进行M-1次循环位移,可以得到接收序列各种可能的循环位移结果,将这些循环位移结果与参考序列进行相关运算,可以用相关值定量地指示各种循环位移结果与参考序列接近的程度,通过将K个比特组中对应相同循环移次数的相关值相加,能够可靠地知道哪一种循环位移结果与参考序列最为接近,从而准确知道帧头的位置。

权利要求 :

1.一种帧同步方法,每个帧由M个块组成,M>1,其特征在于,包括以下步骤:对K个比特组进行检测,每个比特组包括M个块,其中,对每个比特组进行检测时,读取该比特组内M个块的块同步头组成接收序列,以块同步头的长度为单位对所述接收序列进行所有可能的循环移位,将该接收序列经所述循环移位所有可能得到的排列与参考序列进行相关运算,记录每次相关运算所得的相关值,K>1;

将所述K个比特组中对应相同循环移位次数的相关值相加,得到M个相关和;

如果只有一个所述相关和大于第二门限,则根据该相关和所对应的循环移位次数得到帧头的位置。

2.根据权利要求1所述的帧同步方法,其特征在于,所述块同步头为2比特,所述相关运算的步骤中根据以下公式计算相关值:其中,γ为所述接收序列和参考序列同步相关值,ci1、ci2分别为所述接收序列第i的块的第1、2个同步头,ri1、ri2分别为所述参考序列中与接收序列第i的块相对应位置的比特。

3.根据权利要求1所述的帧同步方法,其特征在于,所述得到M个相关和的步骤之后还包括以下步骤:如果所有的所述相关和都小于或等于所述第二门限,或者有至少两个所述相关和大于所述第二门限,则重新进行帧同步。

4.根据权利要求1至3中任一项所述的帧同步方法,其特征在于,所 述块同步头为2比特,所述第二门限是2M-帧偏置值。

5.根据权利要求4所述的帧同步方法,其特征在于,所述帧偏置值根据所述帧中预设的误码率确定。

6.一种帧同步装置,其特征在于,包括:

检测单元,用于对K个比特组进行检测,每个比特组包括M个块,其中,对每个比特组进行检测时,读取该比特组内M个块的块同步头组成接收序列,以块同步头的长度为单位对所述接收序列进行所有可能的循环移位,将该接收序列经所述循环移位所有可能得到的排列与参考序列进行相关运算,记录每次相关运算所得的相关值,K>1,M>1;

累加器,用于将所述检测单元得到的K个比特组中对应相同循环移位次数的相关值相加,得到M个相关和;

M个寄存器,分别用于存储所述累加器得到的M个相关和;

帧同步判断器,用于判断所述M个寄存器中是否只有一个所述相关和大于第二门限,如果是,则根据该相关和所对应的循环移位次数得到帧头的位置。

7.根据权利要求6所述的帧同步装置,其特征在于,所述块同步头为2比特;

所述检测单元包括:

循环移位寄存器,由2M个比特组成,用于保存一个比特组内M个块的块同步头所组成的接收序列,该循环移位寄存器每次循环移位两个比特;

参考序列存储器,用于保存由2M个比特组成的参考序列;

相关运算器,用于对所述循环移位寄存器和参考序列存储器进行按位相关运算,得到相关值。

8.根据权利要求6或7所述的帧同步装置,其特征在于,所述帧同步 判断器判定所述M个寄存器中所有的所述相关和都小于或等于所述第二门限,或者有至少两个所述相关和大于所述第二门限,则指示所述检测单元对新的K个比特组进行检测。

说明书 :

块、帧同步方法及装置

技术领域

[0001] 本发明涉及通信领域,特别涉及块和帧同步技术。

背景技术

[0002] 以太网无源光网络(Ethernet Passive Optical Network,简称“EPON”)接入技术是一种比较好的接入技术,其主要优点是维护简单、成本较低、较高的传输带宽和高性价比。
[0003] 但是,由于EPON是一种采用无源光传输的技术,在这个网络中不使用具有放大和中继功能的元器件。因此EPON网络的传输距离和分支数目依赖于功率预算和各种传输损耗。随着传输距离或分支数目的增加,传输数据的信噪比(Signal Noise Ratio,简称“SNR”)逐渐减小,传输的数据的误码率逐渐增高。为了解决这一问题,在EPON系统中引入了前向纠错(Forward Error Correction,简称“FEC”)技术来提高系统的抗干扰能力,从而来增大系统的功率预算。
[0004] 然而,64b/66b和64b/65b是两种编码效率较高的线路编码机制,使用了带有非扰码同步字符和控制字符的扰码方式。在EPON系统物理编码子层(Physical Coding Sublayer,简称“PCS”)中,使用了线路编码技术来提高数据传输的正确率。
[0005] 目前FEC信息帧结构方案如图1所示,进入PCS层的数据先经过64b/66b线路编码,形成以66比特为单位的线路编码块。64b/66b编码机制是在64比特数据信息的基础上,增加了2比特的同步头。这2比特的同步头只有“01”或“10”这两种可能。其中,同步头为“01”表示64比特全部为数据信息;同步头为“10”表示64比特信息中包含数据信息和控制信息;而同步头为“00”或“11”则表示传输过程中发生了错误。在接收端,需要64b/66b线路编码中的两比特“01”或“10”的同步头实现64b/66b线路编码块同步(block synchronization),以便于根据同步头来判断线路编码块中数据的类型,然后实现信息帧同步(frame synchronization),以便于后续对FEC的解码。
[0006] 现有技术的块同步和FEC码字信息帧同步的实现原理分别如下:
[0007] 块同步原理为:在接收端,设置一个长度为66比特的缓存寄存器,在同步开始之前,将缓存寄存器中的所有位置进行初始化设置为“True(真)”。然后将所输入的比特数据与其前面的比特数据进行比较,如果这2比特数据相同,则就缓存寄存器中相应的位置置为“false(假)”。由于64b/66b编码块同步头的2比特数据只会是互异的,则当输入一定数目的数据后,缓存寄存器的某个的位置的值一直为“True”,那么这个位置就确定为64b/66b编码块的同步头起始的位置,从而实现块同步。
[0008] 而FEC信息帧同步过程的机理和块同步的原理类似,区别在于要把缓存寄存器的长度增加到一个FEC信息帧的长度。在进行同步前将此缓存寄存器所有位置置为“True”,将输入的比特数据与其前面的比特数据进行比较,利用64b/66b编码块同步头互异的特性以及校验块同步头相同的特性,可以确定该缓存寄存器中数值一直为“True”的位置是同步头的位置,从而实现FEC信息帧同步。
[0009] 另外,还有一种比较简单的FEC信息帧同步方法,该方法只对FEC帧中的校验信息块同步头进行扫描,由于校验信息块的2比特同步头永远是相同的,在缓存寄存器的对应位置上的值会一直是真,这样确定校验信息块的开始位置,从确定FEC帧的起始位置,实现FEC帧同步。
[0010] 如果其中一个64b/66b线路编码块或FEC校验信息块的同步头发生错误,缓存寄存器中可能不会出现“True”的状态,此时就无法完成块同步或FEC帧同步。一般采取重新将缓存寄存器初始化,然后重新进行同步操作来解决。然而,本发明的发明人发现,在信道中的干扰较强时,接收数据的误码率较高,这样同步头错误的几率也很高,使得无法准确的完成同步甚至无法实现同步。另外,由于同步头错误时,只能通过重新初始化后进行同步操作,这样就会增长时延,影响系统的性能。

发明内容

[0011] 本发明实施方式要解决的主要技术问题是提供一种块、帧同步方法及装置,使得在输入误码率比较高时,能够更准确地完成同步。
[0012] 为解决上述技术问题,本发明的实施方式提供了一种块同步方法,包括以下步骤:
[0013] 初始化L个计数器,每个计数器分别对应在长度为L的一个比特组中的一个位置,块同步头出现在L个计数器所对应的L个位置之一,L>1;
[0014] 对N个比特组进行检测,每个比特组长度为L,如果检测到与预设的块同步头之一相同的比特片段,则在L个计数器中选择该比特片段所在位置对应的计数器,增加所选择的计数器的计数值;N>1;
[0015] 如果L个计数器中只有一个计数器的计数值大于第一门限,则该计数器所对应的位置判定为块同步头的位置;其中块的长度为L比特。
[0016] 本发明的实施方式还提供了一种块同步装置,包括:
[0017] L个计数器,每个计数器分别对应在长度为L的一个比特组中的一个位置,块同步头出现在L个计数器所对应的L个位置之一,L>1;
[0018] 检测模块,用于对N个比特组进行检测,每个比特组长度为L,如果检测到与预设的块同步头之一相同的比特片段,则在L个计数器中选择该比特片段所在位置对应的计数器,指示所选择的计数器增加计数值;
[0019] 初始化模块,用于在检测模块进行检测前对L个计数器进行初始化;
[0020] 块同步判决器,用于在检测模块完成检测后判断L个计数器中是否只有一个计数器的计数值大于第一门限,如果是,则将该计数器所对应的位置确定为块同步头的位置;
[0021] 其中块的长度为L比特,N>1。
[0022] 本发明的实施方式还提供了一种帧同步方法,每个帧由M个块组成,M>1,包括以下步骤:
[0023] 对K个比特组进行检测,每个比特组包括M个块,其中,对每个比特组进行检测时,读取该比特组内M个块的块同步头组成接收序列,以块同步头的长度为单位对接收序列进行所有可能的循环移位,将该接收序列经循环移位所有可能得到的排列与参考序列进行相关运算,记录每次相关运算所得的相关值,K>1;
[0024] 将K个比特组中对应相同循环移位次数的相关值相加,得到M个相关和;
[0025] 如果只有一个相关和大于第二门限,则根据该相关和所对应的循环移位次数得到帧头的位置。
[0026] 本发明的实施方式还提供了一种帧同步装置,包括:
[0027] 检测单元,用于对K个比特组进行检测,每个比特组包括M个块,其中,对每个比特组进行检测时,读取该比特组内M个块的块同步头组成接收序列,以块同步头的长度为单位对接收序列进行所有可能的循环移位,将该接收序列经循环移位所有可能得到的排列与参考序列进行相关运算,记录每次相关运算所得的相关值,K>1,M>1;
[0028] 累加器,用于将检测单元得到的K个比特组中对应相同循环移位次数的相关值相加,得到M个相关和;
[0029] M个寄存器,分别用于存储累加器得到的M个相关和;
[0030] 帧同步判断器,用于判断M个寄存器中是否只有一个相关和大于第二门限,如果是,则根据该相关和所对应的循环移位次数得到帧头的位置。
[0031] 本发明实施方式与现有技术相比,主要区别及其效果在于:
[0032] 检测N个比特组,对每一个比特组中各个位置出现与块同步头相同的比特片段的次数进行统计,如果只有一个位置的统计值大于第一门限,则该位置即为块同步头的位置。在输入误码率比较高时只是使各个位置的统计值较为接近,但块同步头位置的统计值明显大于其它位置的统计值的概率依然很大,因此仍然能够准确地完成同步。

附图说明

[0033] 图1是现有技术中FEC信息帧结构示意图;
[0034] 图2是根据本发明第一实施方式的块同步方法流程图;
[0035] 图3是根据本发明第二实施方式的块同步装置结构示意图;
[0036] 图4是根据本发明第三实施方式的块同步方法流程图;
[0037] 图5是根据本发明第三实施方式的进行块同步的FEC信息帧结构示意图;
[0038] 图6是根据本发明第三实施方式的块同步方法流程图;
[0039] 图7是根据本发明第四实施方式的块同步装置结构示意图;
[0040] 图8是根据本发明第五实施方式的帧同步方法的原理示意图;
[0041] 图9是根据本发明第五实施方式的帧同步方法流程图;
[0042] 图10是根据本发明第五实施方式的进行帧同步的同步相关运算原理示意图;
[0043] 图11是根据本发明第六实施方式的帧同步装置结构示意图。

具体实施方式

[0044] 为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施方式作进一步地详细描述。
[0045] 本发明第一实施方式涉及一种块同步方法,所接收的数据流中各个块的块同步头为2比特,预设的块同步头为“10”或“01”。其中,块的长度为L比特,例如,块的长度为66比特(即L=66),在系统中相应地设置L个计数器,也即设置66个计数器。在进行块同步时,以长度L比特为一个比特组,对N个比特组的数据流进行检测,其中,L个计数器分别对应在一个比特组中一个可能的块同步头位置。该块同步方法的具体流程如图2所示。
[0046] 在步骤201中,在同步开始时,初始化L(L=66)个计数器,也即将66个计数器Bff_cnt[a%L]全部清零,其中,令a=L时,Bff_cnt[0]指向第L个计数器,同时将块计数器Block_cnt置零,将表示同步状态的变量Block_lock值置为“false”,也即“Block_lock<=false”。其中,a%L表示a对L取模,当a小于等于L时,a%L=a;当a大于L时,则a%L等于L除以a后所得的余数。
[0047] 在步骤202中,对N个比特组中的每个比特进行扫描检测,在本实施方式中,预设的块同步头为“10”或“01”,因此只需判断被扫描的比特组中第a个比特与第a+1个比特的取值是否不同,即对每个比特组执行if(input[a]!=input[a+1])语句,其中,函数input[a]表示读取输入的数据流中Block_cnt所指示的比特组中的第a个比特的数据,因此该语句表示判断当前Block_cnt指示的比特组中的第a个比特的数据和第a+1个比特的数据是否互异,通过简单的判断两个比特数据是否互异,可以快速地判断两个相邻比特是否为预设的块同步头之一。如果所判断的两个比特数据的取值不同,则if(input[a]!=input[a+1])语句的值为“true”,进入步骤203,将该比特片段所在位置对应的计数器Bff_cnt[a%L]的计数值加1,然后转入步骤204;否则,if(input[a]!=input[a+1])语句的值为“false”,计数器Bff cnt[a%L]不做动作,也即计数值不变,直接转入步骤204。
[0048] 在步骤204中,判断a%L是否为0,只有当a=L时,a%L的值为0,如果a%L的值为0,则表示本比特组中的每一个比特分别同其相邻比特之间进行了比较,进入步骤205,块计数器Block_cnt加1,使得可以对下一个比特组的数据进行扫描,然后进入步骤
206;如果a%L的值不为0,则表示本比特组中每一个比特与其相邻比特之间的比较还未完成,块计数器Block_cnt值不变,将继续对该比特组进行扫描,并直接进入步骤206。
[0049] 在步骤206中,判断块计数器的Block_cnt值是否大于等于N,如果Block_cnt值小于N,进入步骤207,将a取值为“a+1”,然后转入步骤202;如果Block_cnt值大于等于N,则表示对N个比特组扫描完毕,转入步骤208。
[0050] 在步骤208中,判断L个计数器中是否只有一个计数器的计数值大于块门限值(B_threshold),其中,B_threshold=N-块偏置值(B_offset),B_offset可以根据块预设的误码率确定,预设的误码率越高,B_offset值越大。通过灵活设置B_offset可以适应不同的输入误码率。
[0051] 如果L个计数器的计数值都小于或等于B_threshold,或者L个计数器中有至少两个计数器的计数值大于B_threshold,那么根据Block_lock值为“false”,返回步骤201,重新进行块同步操作对后续数据流进行同步检测;如果L个计数器中只有一个计数器的计数值大于B_threshold,则进入步骤209,执行“Block_lock<=true”语句,将变量Block_lock置为“true”,判定块同步完成,该计数器所对应的位置判定为块同步头的位置。由于在该过程中利用计数器实现统计,在输入误码率比较高时只是使各个位置的统计值较为接近,但块同步头位置的统计值明显大于其它位置的统计值的概率依然很大,因此,通过本实施方式仍然能够准确地完成同步。
[0052] 本实施方式的检测和判断的具体过程如下:
[0053] 对输入的第1组的66个比特的数据进行检测分析,具体检测分析过程为:将该组的第2个比特的数值同第1个比特的数值进行比较,如果它们的取值不同,为“10”或“01”,则表示由第1组第1个比特和第1组第2个比特所组成的比特片段与预设的块同步头相同,那么,将第1个计数器加1;如果它们的取值相同,为“00””或“11”,则表示由第1组第
1个比特和第1组第2个比特所组成的比特片段与预设的块同步头不同,那么,保持第1个计数器的值不变。然后,依次将该组的第3个比特的数值同第2个比特的数值进行比较,如果它们的取值不同,则第2个计数器加1;如果它们的取值相同,则第2个计数器的值不变。
依次类推,对第1组中的66个比特的数据依次进行检测分析。
[0054] 当a=66时,a+1则为67,将收到数据的第66个比特和第67个比特进行比较,如果它们的取值不同,则第66个计数器加1(a=L时,令Bff_cnt[a%L]即Bff_cnt[0]指向第L个计数器);如果它们的取值相同,则第66个计数器的值不变。然后,当a=67,a+1=68时,对第67个比特和第68个比特的数据进行比较,如果它们的取值不同,则Bff_cnt[a%L]所指向的第1个计数器的值加1;如果它们的取值相同,则第1个计数器的值保持不变。容易理解,对于N个比特组的66×N个比特数据的扫描分析只要采取上述的方法依次进行即可。
[0055] 通过实验证明:当N的取值为30,B_offset的取值为4,在信道编码的误比特率(Bit Error Rate,简称“BER”)为10-3时,采用本实施方式可以使得正确同步的概率达99.8%,而采用现有技术方案的正确同步的概率为94.2%;当N的取值为60,B_offset的取值为5,信道编码BER为10-3时,采用本实施方式可以使得正确同步的概率接近100%,而采用现有技术方案的正确同步的概率为88.7%;当N的取值为30,B_offset的取值为4,信道编码的BER为10-2时,采用本实施方式可以使得正确同步的概率为99.8%,而采用现有技术方案的正确同步的概率为54.8%;当N的取值为60,B_offset的取值为5,信道编码的BER为10-2时,采用本实施方式可以使得正确同步的概率为99.98%,而采用现有技术方案的正确同步的概率为30.1%。显而易见,当信道中干扰比较大时,现有技术方案正确同步的概率很低,甚至不能同步,而采用本发明的实施方式可以维持较高的正确同步率,可以使得系统的性能大大地提高,显示了本发明方案的优越性。
[0056] 本发明第二实施方式涉及一种块同步装置,如图3所示,包含L(例如,L=66)个计数器、检测模块、初始化模块和块同步判决器。其中,L为块的长度,单位为比特。块同步头为2比特,预设的块同步头为“10”或“01”。
[0057] 具体地说,66个计数器,每个计数器分别对应在长度为66比特的一个比特组中一个可能的块同步头位置;检测模块,用于对N(N>1)个比特组进行检测,每个比特组长度为66,如果检测到与预设的块同步头之一相同的比特片段,则指示该比特片段所在位置对应的计数器增加计数值;初始化模块,用于在检测模块进行检测前对66个计数器进行初始化;块同步判决器,用于在检测模块完成检测后判断66个计数器中是否只有一个计数器的计数值大于B_threshold,如果是,则将该计数器所对应的位置确定为块同步头的位置。
[0058] 同步头位置的计算方法如下:当有且仅有一个计数器x(x=1~N)的数值大于B_threshold时,输入数据的第x+n×66(n=0~N-1)个比特便是64b/66b线路编码块的同步头的开始,此时块同步判决器宣布同步操作完成,同时块同步判决器启动置零操作,将66个计数器置零,便于下一次的同步操作。
[0059] 如果块同步判决器判定66个计数器的计数值都小于或等于B_threshold,或者66个计数器中有至少两个计数器的计数值大于B_threshold,则指示初始化模块对66个计数器重新进行初始化,再指示检测模块对新的N个比特组进行检测。
[0060] 另外,检测模块还包括:移位寄存器和比较器。
[0061] 其中,移位寄存器,用于保存当前被检测的两个比特;比较器,用于比较移位寄存器中的两个比特,如果两个比特不同,则指示两个比特所组成的比特片段所对应的计数器增加计数值。
[0062] 在该块同步装置进行工作前,先将66个循环计数器均置为0,接着将接收到的数据的第1个比特和第2个比特分别送入到一个2比特的移位寄存器的地址1和地址2,接着寄存器将所存的数据送入到比较器,如果这2个比特的取值不同,则此比较器触发第1个计数器使之加1,如果这2个比特取值不同的话,不进行触发操作。
[0063] 然后,移位寄存器将地址2中的第2个比特数据移位至地址1,再将接收到的第3个比特的数据送入到移位寄存器的地址2。同样比较器对移位寄存器中的2个比特的数据进行比较,如果取值不同的话将触发第2个计数器使之加1,否则,不进行触发计数操作。
[0064] 依次类推,当移位寄存器地址1存放第66个比特接收数据,地址2存放第67个比特接收数据时,比较器将这两个比特进行比较后,决定是否对第66个计数器进行触发计数操作。接下来,当移位寄存器地址1存放第67个比特接收数据,地址2存放第68个比特接收数据时,比较器将这两个比特进行比较后,循环到第1个计数器,如果这两个比特数据的值不同,则比较器触发第1个计数器使之加1,否则,不进行触发计数操作。
[0065] 本发明第三实施方式涉及一种块同步方法,与本发明第一实施方式类似,对N个比特组中的L个比特的数据依次进行检测和分析,区别在于,在本实施方式的检测过程中,在每次比较了第a个比特和第a+1个比特的取值并对应的将计数器Bff_cnt[a%L](其中,令a=L时,Bff_cnt[0]指向第L个计数器)的值加1或保持数值的操作后,判断如果有至少两个计数器的计数值大于B_threshold,则立即停止当前的检测,重新进行块同步,这样可以在检测完N个比特组之前尽早结束不可能成功的检测,节省检测时间;另外,第一实施方式中所接收的数据流中各个块的块同步头均为预设的块同步头之一,而在本实施方式中,所接收的数据流中包含块同步头与预设的块同步头不同的块,从而可以使本发明可以适用在有多种块共存的帧中成功找到块同步头的位置。相应地,B_threshold的计算方法也不同。
[0066] 具体地说,在本实施方式中,B_threshold=N-B_offset-P。其中,B_offset同样可以根据块预设的误码率确定,预设的误码率越高,B_offset值越大,可以灵活设置的B_offset可以适应不同的输入误码率;N同样为所测试的比特组的数目;而N-P为块同步头为预设的块同步头的块的数目;P则为块同步头不属于预设的块同步头的块的数目。根据B_threshold判断L个计数器中是否有至少两个计数器的计数值大于B_threshold,如果是,则重新进行块同步。
[0067] FEC信息帧如图5所示,每一帧包含30个块,分别为27个线路编码块和3个校验信息块,每27个连续的线路编码块后面续接着3个连续的校验块,每一帧相互续接。另外,线路编码块的长度和校验信息块的长度均为L=66比特,其中包含2比特的同步头,具体为:线路编码块的同步头取值相反,为“01”或“10”;而校验块的同步头取值相同,为“00”或“11”。
[0068] 根据B threshold=N-B_offset-P计算公式,P为块同步头不属于预设的块同步头的块的数目,而如图5所示的信息帧中,3个校验信息块的同步头“00”和“11”不属于预设的块同步头,也就是说,P=3。因此,根据设置的B_offset值,和已知的N=30,很容易得到B_threshold的值。
[0069] 本实施方式的具体流程如下:
[0070] 步骤401至步骤403分别与步骤201至步骤203相类似,在此不再赘述。
[0071] 在步骤404中,判断L个计数器中是否有至少2个计数器的计数值大于B_threshold,如果是,则立即停止当前的检测,并转入返回步骤401,重新对后续数据进行块同步检测;否则,表示L个计数器中有1个或0个计数器的计数值大于B_threshold,进入步骤405。
[0072] 步骤405至步骤410也分别与步骤204至步骤209相类似,在此不作赘述。
[0073] 本实施方式的块同步方法的流程图还可以采用如图6所示的流程图来表示,均不偏离本发明的精神。在进行块同步之前,将表示同步状态的变量Block_lock置为“false”,表示开始进行块同步。同时重置计数器,将66个计数器Bff_cnt[66]全部置零,同时将块计数器Block_cnt置零。然后进行块同步测试,执行if(input[a]!=input[a+1])语句,即将输入数据的上一个比特和当前比特进行比较。如果此语句值为真,为合法变换,计数器Bff_cnt[a%66]值加1,a的值加1(即a++),同时判决a%66是否为0,如果为0,块计数器Block_cnt加1。如果此语句为假,为不合法变换,a的值加1,计数器Bff_cnt[66]不做动作,只有块计数器根据相应条件进行计数。假设测试块同步所需的信息块的块数为N,达到块同步所需的门限值为threshold。那么测试到一定长度的序列后,根据测试的情况,块同步会出现几种不同的状态:
[0074] (1)如果块计数器的值小于N,并且66个计数器中只有一个计数器大于设定门限threshold,那么继续进行测试。
[0075] (2)如果块计数器的值为N,66个计数器中所有计数器均小于或等于门限threshold,或者多个计数器大于门限threshold,那么宣布块同步操作失败,重新进行同步。
[0076] (3)如果块计数器的值小于N,并且66个计数器中所有的计数器都小于或等于门限threshold,那么将继续进行测试。
[0077] (4)如果块计数器的值小于N,并且L66个计数器中的多个计数器大于门限threshold,宣布块同步操作失败,执行滑动测试。即本次块同步测试立即结束,从下一个测试块开始启动下一次块同步测试。
[0078] (5)如果块计数器的值为N,并且66个计数器中当且仅有一个计数器的值大于等于门限值threshold,则宣布同步测试成功,将同步状态变量Block lock置为“true”。
[0079] 通过对类似于如图5所示的信息帧的数据流的块同步实验测试,在信道编码的-3BER=10 ,N=60,B_offset=4时,采用本实施方式可以使得该信息帧正确同步的概率-2
接近100%,而采用现有技术方案的正确同步的概率为89.8%;在信道编码的BER=10 ,N为60,B_offset=4时,采用本实施方式可以使得该信息帧正确同步的概率为99.6%,而采用现有技术方案的正确同步的概率为38.3%。再次说明了本发明的实施方式在信道编码的BER比较高的情况下,仍然能够保持高概率的块同步,从而说明了本发明的优越性。
[0080] 本发明第四实施方式涉及一种块同步装置,该装置与第二实施方式所描述的装置类似,同样包含L个计数器、检测模块、初始化模块和块同步判决器。其中,检测模块还包括移位寄存器和比较器。区别在于,在本实施方式中,该装置还包含检测中止模块,如图7所示。
[0081] 该模块用于在检测模块对N个比特组的检测过程中,判断L个计数器中是否有至少两个计数器的计数值大于B_threshold,如果是,则指示初始化模块对L个计数器重新进行初始化,再指示检测模块对新的N个比特组进行检测。
[0082] 本发明第五实施方式涉及一种帧同步方法,在完成块同步,确定接收的数据流中线路编码块和校验信息块的起始和终止位置后,进行信息帧的同步。例如,对如图5所示的信息帧采用第三实施方式进行块同步成功后,对该数据流的帧进行帧同步如图8所示。
[0083] 每一帧包含M=30(M>1)个块,分别为27个线路编码块和3个校验信息块,每27个连续的线路编码块后面续接着3个连续的校验块,每一帧相互续接。线路编码块的长度和校验信息块的长度均为L=66比特,其中包含2比特的同步头,具体为:线路编码块的同步头取值相反,为“01”或“10”;而校验块的同步头取值相同,为“00”或“11”。帧同步方法如图9所示,其具体流程如下。
[0084] 在步骤901中,对K个比特组进行检测,每个比特组包括M=30个块,K>1,其中,对每个比特组进行检测时,读取该比特组内M个块的块同步头组成接收序列。
[0085] 例如如图10所示,用h11表示接收的第1个数据块的第1个同步头,h12表示接收的第1个数据块的第2个同步头,相应的h301和h302分别表示接收的第30个数据块的第1和第2个同步头。从某一个块开始,连续对FEC信息帧的M=30个块进行同步测试,这30个数据块中肯定包含27个线路编码块和3个校验块。将h11和h12送入到一个循环移位寄存器的前两个位置,然后,间隔64比特,找到h21和h22,并将h21和h22送入循环移位寄存器的随后的两个位置。依次类推,直到将h11至h302依次存到循环移位寄存器中。
[0086] 在步骤902中,将接收的序列与参考序列进行相关运算,得到循环移动0比特的相关值,并记录该相关值。
[0087] 其中,参考序列由线路编码块同步头和校验信息块同步头两部分组成,线路编码块的同步头可以设置为“01”或“10”中的任何一种,校验信息块同步头则可以设置为“00”或“11”中的任何一种。因此,可以将参考序列的线路编码块的同步头部分全部设置成“01”,3个校验信息块同步头为:00,11,11。
[0088] 同步相关运算的基本思想是使用一种运算方法来对接收同步头和参考序列的同步头的相关程度进行衡量。比如参考同步头为“00”,如果接收同步头也为
[0089] “00”的话,则表明两者完全相关,如果接收同步头为“11”的话,表明两者不相关,或相关性很差,如果接收同步头为“01”或“10”的话,表明两者具有一定的相关性。
[0090] 一种同步相关运算方法如表1所示,在该表中,罗列了16种可能的相关运算的情况及其对应的结果,通过查询该表即可获得相关值。具体地说,接收的块同步头为“00”,与参考序列对应值为“00”、“11”、“01”、“10”的相关值分别为2、0、1、1;接收的块同步头为“11”,与参考序列对应值为“00”、“11”、“01”、“10”的相关值分别为0、2、1、1;接收的块同步头为“01”,与参考序列对应值为“00”、“11”、“01”、“10”的相关值分别为1、1、2、2;接收的块同步头为“10”,与参考序列对应值为“00”、“11”、“01”、“10”的相关值分别为1、1、2、2。
[0091] 表1
[0092]接收的块同步头 参考序列 相关值
00 00 2
00 11 0
00 01/10 1
11 00 0
11 11 2
11 01/10 1
01/10 00 1
01/10 11 1
01/10 01/10 2
[0093] 以循环移位寄存器中的同步头序列“01 10 00 11 11 01 10 01 10”,参考序列中的同步头序列“01 01 01 01 01 01 00 11 11”为例。
[0094] 根据表1所示的同步相关运算法则,寄存器中的第1对同步头“01”与参考序列中的第1对同步头“01”的相关值为2,寄存器中第1对同步头“10”与参考序列中的第1对同步头“01”的相关值为2,依次进行计算,然后将各个相关值相加得到寄存器中的同步序列和参考序列的相关值为12。
[0095] 另一种同步相关运算方法为采用公式一进行计算:
[0096] 公式(1)
[0097] 其中,γ为接收序列和参考序列的相关值,ci1、ci2分别为接收序列第i的数据块的第1、2个同步头,ri1、ri2分别为参考序列中与接收序列第i的数据块相对应位置的数据。同样以循环移位寄存器中的同步头序列“01 10 00 11 11 01 1001 10”,参考序列中的同步头序列“01 01 01 01 01 01 00 11 11”为例进行计算,可以发现与采用表1运算方法得到的结果相同。
[0098] 在步骤903中,以块同步头的长度2比特为单位对接收序列进行所有可能的循环移位,该循环移位可以是向左或向右循环移位2比特,例如如图10所示向右循环移位2为后,第30的数据块的同步头h301和h302移到寄存器的前2个位置。
[0099] 在步骤904中,判断循环移位是否结束,如果经过步骤903移位后的序列与移位0比特的序列相同了,也即第M次移位后,则判断循环移位结束,进入步骤905;如果循环移位次数小于M,循环移位没有结束,则转入步骤902,对移位后的序列同参考序列进行相关运算,得到对应的相关值并保存该值。
[0100] 当然,也可以对移位次数进行计数,对第M-1次移位后的序列同参考序列进行相关运算并保存所得到的相关值后,就可以结束对该比特组的移位操作,同样转入步骤905。
[0101] 在步骤905中,判断是否已经将K个比特组都分别进行了读取块同步头,对序列的移位和相关运算的操作,得到了K个比特组的序列对应各循环位置的相关值,如果是,则进入步骤907;否则,进入步骤906,继续读取K个比特组中的下一个比特组的M个同步头组成序列,并进入步骤902,将该序列同参考序列进行相关运算,如此循环往复,直到将K个比特组对应的K个序列,在每个循环位置上与参考序列的M个相关值都得到为止。
[0102] 在步骤907中,得到K个比特组对应的K个序列,在每个循环位置上与参考序列的相关值后,将循环位置相同的K个相关值相加,得到M个相关和。
[0103] 例如,检测3个比特组(即K=3),每个比特组中包含的块数M=6,第1、2、3个帧对应的循环移位6比特与参考序列的相关值分别为54、48、32,则该信息帧对应循环移位6比特的相关和为54+48+32=134。
[0104] 在步骤908中,判断所得到的M个相关和中,是否只有一个相关和大于帧门限值(F-threshold),F-threshold=2M×K-帧偏置值(F_offset)。其中,F_offset值根据帧中预设的误码率确定,预设的误码率越高,该F_offset越大,通过灵活设置F_offset可以适应不同的输入误码率。
[0105] 如果只有一个相关和大于F-threshold,则进入步骤909,根据该相关和所对应的循环移位次数得到该帧头的位置,完成帧同步。例如,如果只有向右循环移位y比特对应的相关和大于F-threshold,则可以确定K个比特组中的第M-y/2个数据块为信息帧的起始位置;如果只有向左循环移位y比特对应的相关和大于F-threshold,则可以确定K个比特组中的第y/2个数据块为信息帧的起始位置。
[0106] 如果所有的相关和都小于或等于F-threshold,或者有至少两个相关和大于F-threshold,则返回步骤901,重新进行帧同步。
[0107] 对由M个块同步头所组成的接收序列进行M-1次循环位移,可以得到接收序列各种可能的循环位移结果,将这些循环位移结果与参考序列进行相关运算,可以用相关值定量地指示各种循环位移结果与参考序列接近的程度,通过将K个比特组中对应相同循环移位次数的相关值相加,在输入误码率比较高时,仍然能够可靠地知道哪一种循环位移结果与参考序列最为接近,从而准确知道帧头的位置。
[0108] 本发明第六实施方式涉及一种帧同步装置,如图11所示,包含检测单元、累加器、M个寄存器和帧同步判断器。
[0109] 其中,检测单元,用于对K个比特组进行检测,每个比特组包括M个块,其中,对每个比特组进行检测时,读取该比特组内M个块的块同步头组成接收序列,以块同步头的长度为单位对接收序列进行所有可能的循环移位,将该接收序列经循环移位所有可能得到的排列与参考序列进行相关运算,记录每次相关运算所得的相关值,K>1,M>1;
[0110] 累加器,用于将检测单元得到的K个比特组中对应相同循环移位次数的相关值相加,得到M个相关和;
[0111] M个寄存器,分别用于存储累加器得到的M个相关和;
[0112] 帧同步判断器,用于判断M个寄存器中是否只有一个相关和大于F-threshold,其中,F-threshold=2M×K-F_offset,如果是,则根据该相关和所对应的循环移位次数得到帧头的位置。
[0113] 如果帧同步判断器判定M个寄存器中所有的相关和都小于或等于F-threshold,或者有至少两个相关和大于F-threshold,则指示检测单元对新的K个比特组进行检测。
[0114] 另外,检测单元还包括循环移位寄存器、参考序列存储器和相关运算器。
[0115] 具体地说,循环移位寄存器,由2M个比特组成,用于保存一个比特组内M个块的块同步头所组成的接收序列,该循环移位寄存器每次循环移位两个比特;参考序列存储器,用于保存由2M个比特组成的参考序列;相关运算器,用于对循环移位寄存器和参考序列存储器进行按位相关运算,得到相关值。
[0116] 用相关值定量地指示各种循环位移结果与参考序列接近的程度,通过将K个比特组中对应相同循环移位次数的相关值相加,在输入误码率比较高时,仍然能够可靠地知道哪一种循环位移结果与参考序列最为接近,从而准确知道帧头的位置。
[0117] 通过实验测试,对于结构如图5所示的信息帧,当K=3,F_offset=5,BER=10-3时,采用本实施方式对3个信息帧的数据进行帧同步的正确帧同步的概率接近100%,而采-2用现有技术正确帧同步的概率为78.7%;当K=3,F_offset=5,BER=10 时,采用本实施方式正确帧同步的概率为96.7%,而采用现有技术正确帧同步的概率仅为9.1%。从测试结果可以看出本发明的设计方案与现有技术相比,在BER比较高时,能够维持较高的正确同步率。
[0118] 综上所述,在本发明的实施方式中,检测N个比特组,对每一个比特组中各个位置出现与块同步头相同的比特片段的次数进行统计,如果只有一个位置的统计值大于第一门限,则该位置即为块同步头的位置。在输入误码率比较高时只是使各个位置的统计值较为接近,但块同步头位置的统计值明显大于其它位置的统计值的概率依然很大,因此仍然能够准确地完成同步。
[0119] 在检测过程中,如果有至少两个计数器的计数值大于第一门限,则重新进行块同步,这样可以在检测完N个比特组之前尽早结束不可能成功的检测,节省检测时间。
[0120] 第一门限可以设置成N-块偏置值,通过灵活设置块偏置值可以适应不同的输入误码率。
[0121] 第一门限也可以设置成N-块偏置值-P,在N个块中有P个块的块同步头不属于预设的块同步头之一,从而可以在有多种块共存的帧中,成功找到块同步头的位置。
[0122] 通过比较两个相邻比特是否互异,可以在块同步头只有两个比特,且预设的块同步头为“10”或“01”时,快速地判断两个相邻比特是否为预设的块同步头之一。
[0123] 对由M个块同步头所组成的接收序列进行M-1次循环位移,可以得到接收序列各种可能的循环位移结果,将这些循环位移结果与参考序列进行相关运算,可以用相关值定量地指示各种循环位移结果与参考序列接近的程度,通过将K个比特组中对应相同循环移位次数的相关值相加,在输入误码率比较高时,仍然能够可靠地知道哪一种循环位移结果与参考序列最为接近,从而准确知道帧头的位置。
[0124] 虽然通过参照本发明的某些优选实施方式,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。