[0036] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0037] 实施例一
[0038] 本发明实施例提供了一种实现软判决FEC译码的方法,用于一种本发明提供的译码装置中,本发明提供的译码装置包括数据接收端以及由多个逐级相连的译码器构成的译码器组,所述译码器组中的译码器拥有相同的译码控制逻辑,如图1所示,所述方法包括:
[0039] 101、数据接收端接收多个FEC帧,并将接收到的每个FEC帧分解为n个子帧,将分解得到的子帧按照译码周期依次发送给所述译码器组中,所述n为正整数。
[0040] 具体的,为了便于理解,本实施例以所述译码器组中的任意译码器(记作第一FEC译码器)为例进行说明,具体如下:
[0041] 在第k(k大于等于n)个译码周期中,如果所述第一FEC译码器接收子帧后,所述第一FEC译码器中的子帧的达到n个,则执行102;如果所述第一FEC译码器接收子帧后,所述第一FEC译码器中的子帧的达到n+1个,则执行103。
[0042] 102、所述第一FEC译码器将所述n个子帧组成待译码FEC帧,并对所述待译码FEC帧进行软判决FEC译码。
[0043] 103、所述第一FEC译码器首先将所述第一FEC译码器中最先到达的子帧发送给与其相连的第二FEC译码器,然后将余下的n个子帧组成待译码FEC帧,并对所述待译码FEC帧进行软判决译码。
[0044] 值得说明的是,所述译码器组中包括多个FEC译码器,所述多个FEC译码器相互串联、具备相同的译码控制逻辑,用于进行多次的迭代译码。
[0045] 本实施例中,由FEC译码器对所述待译码FEC帧进行一次译码处理,通过多个相互串联的FEC译码器实现对FEC帧的多次迭代译码。同时,所述FEC译码器每接收/发送一个子帧进行一次译码处理,即在一个子帧周期时间内完成一次FEC帧译码,能够有效降低FEC译码器中的电路规模。
[0046] 本发明实施例提供的实现软判决FEC译码的方法,将接收到的每个FEC帧分解为n个子帧,由每个FEC译码器依次对每n个子帧进行一次译码处理,通过多个相互串联的FEC译码器实现对每n个子帧的多次迭代译码。采用本发明实施例提供的方法,对FEC帧进行迭代译码的次数并不受FEC帧长的限制,能高提供FEC译码器的纠错能力;另一方面,将FEC帧分解为n个子帧,可以根据子帧的帧长灵活设计FEC译码器中运算电路的分时调度周期,能够降低FEC译码器中运算电路的规模,便于实现且成本较低。
[0047] 实施例二
[0048] 本发明实施例提供了一种实现软判决FEC译码的方法,,该方法应用于一种译码装置,所述译码装置包括数据接收端以及由多个逐级相连的译码器构成的译码器组,所述译码器组中的译码器拥有相同的译码控制逻辑,具体的,如图2所示,所述方法包括:
[0049] 201、数据接收端接收多个FEC帧,将接收到的每个FEC帧分解为n个子帧,将分解得到的子帧按照译码周期依次发送至所述译码器组,其中,所述n为正整数。
[0050] 其中,所述FEC帧包括用于纠错的FEC报文头和数据报文,不同协议类型通信系统中FEC报文头的存在形式可以不同。例如,在采用IP协议的通信系统中,FEC报文头可以通过增加封装层(或采用已有的封装层)对数据报文进行封装以增加FEC报文头。其他协议类型的通信系统中的FEC报文头的存在形式此处不再赘述。
[0051] 202、所述译码器组中的第一FEC译码器按照所述译码周期逐个接收所述子帧。
[0052] 值得说明的是,所述第一FEC译码器为所述译码器组中的任意译码器。在本实施例中,以第一FEC译码器、第二FEC译码器、第三FEC译码器......为多个逐级相连的译码器为例进行说明。
[0053] 具体的,在第k(k为大于等于n的正整数)个译码周期中,如果所述第一FEC译码器接收子帧后,所述第一FEC译码器中的子帧的达到n个,则执行203;如果所述第一FEC译码器接收子帧后,所述第一FEC译码器中的子帧的达到n+1个,则执行204。
[0054] 203、所述第一FEC译码器将所述n个子帧组成待译码FEC帧。
[0055] 204、所述第一FEC译码器首先将所述第一FEC译码器中最先到达的子帧发送给与其相连的第二FEC译码器,然后将余下的n个子帧组成待译码FEC帧。
[0056] 205、所述第一FEC译码器对在所述第k个译码周期接收到的子帧进行输入数据位宽变换处理,确定所述子帧的软信息位数。
[0057] 例如,可以通过ADC(Analog-to-Digital Converter,模数转换器)进行调制以实现输入数据位宽变换处理,其中,所述子帧的软信息位数取决于ADC的能力。
[0058] 206、所述第一FEC译码器将经过数据位宽变换的子帧和所述第一FEC译码器中已存的n-1个子帧级联成待译码FEC帧,将所述待译码FEC帧发送至校验节点更新模块进行校验处理得到校验节点信息,所述校验节点信息用于表征所述待译码FEC帧中各数据位的误差。
[0059] 值得说明的是,所述FEC译码器中包括所述校验节点更新模块、以及变量更新模块;所述校验节点更新模块用于对FEC帧进行校验处理,确定校验节点信息;所述变量更新模块用于根据所述校验节点信息对所述待译码FEC帧的各个数据位进行纠错。具体的,所述校验节点更新模块和变量更新模块可以由特定运算电路实现,例如ASIC(Application Specific Integrated Circuit,专用集成电路)。
[0060] 207、所述变量更新模块根据所述校验节点信息对所述待译码FEC帧进行变量处理,对所述待译码FEC帧中的各数据位进行纠错以减少误差。
[0061] 通过203-207,即实现了在第k个译码周期中对FEC帧的译码处理。
[0062] 可选的,为了得到译码处理后完整的FEC帧,可以在所述译码装置中增加一个整合译码器,在所述整合译码器与所述译码器组中末尾的译码器相接,用于从所述译码器组中接收译码处理后的子帧,并将接收到的n个子帧整合为一个FEC帧。
[0063] 208、在第k+1个译码周期,所述第一FEC译码器将组成所述待译码FEC帧的n个子帧中最先接收到的一个子帧进行输出数据位宽变换处理,将经过所述数据位宽变化处理的该子帧发送给与所述第一FEC译码器相串联的第二FEC译码器。
[0064] 209、所述第二FEC译码器接收所述第一FEC译码器发送的子帧,按照与所述第一FEC译码器相同的方法进行译码处理。
[0065] 值得说明的是,本实施例提供的方法中存在多个FEC译码器,所述多个FEC译码器与所述第一FEC译码器相串联进行迭代软判决FEC译码,所述多个FEC译码器与所述第一FEC译码器功能相同。每个FEC译码器对一个FEC帧进行一次译码处理,相互串联的FEC译码器数量越多,对一个FEC帧进行的迭代译码次数越多,纠错能力越强。
[0066] 优选的,为了确定满足不同指标的纠错能力的FEC译码器的数量,在每一个FEC译码器完成软判决FEC译码之后,还可以对当前的纠错性能进行统计,确定FEC帧经过每个FEC译码器之后的误码率。例如,如果对指定报文进行软判决FEC译码,要求该指定报文的误码率低于预设阈值A;那么可以统计该指定报文经过每个FEC译码器处理后的误码率;如果在经过10个FEC译码器后误码率低于预设阈值A,那么则将该指定报文通过10个FEC译码器之后进行判决输出,无需再进行更多的迭代译码,在满足预设指标的前提下设定数量最少的FEC译码器,节省译码时间以及译码成本。
[0067] 本实施例提供的实现软判决FEC译码的的方法,可以应用于所有采用FEC技术的通信系统,尤其适合应用于传输速率大的光通信系统,例如100G光通信系统。接下来以100G光通信系统为例对上述方法进行详细说明:
[0068] 以业务时钟频率500Mhz、一个完整的FEC帧为8000bit为例,则一个业务时钟周期为2ns,输入接口的位宽为200bit(由于100G光通信系统的传输速率为100Gbps,所以每个业务时钟周期传输200bit)。在100G光通信系统中,优选n=4,即将一个FEC帧分解为4个子帧,每个子帧的帧长为2000bit。
[0069] S1、100G光通信系统的接收端持续的依次接收完整的FEC帧,可以记作FEC帧A、FEC帧B、FEC帧C、......等多个FEC帧,并转发给FEC译码器进行软判决FEC译码。
[0070] S2、FEC译码器将接收到的FEC帧分解为4个子帧,例如,将FEC帧A按照发送时间的先后顺序分解为子帧0、子帧1、子帧2、子帧3,将FEC帧B分解为子帧4、子帧5、子帧6、子帧7,其中,子帧编号小的子帧发送时间早,子帧编号大的子帧发送时间晚。采用同样的方法,FEC译码器会对接收到的所有FEC帧进行分解,此处不再赘述。
[0071] S3、在对FEC帧完成分解后,FEC译码器对分解得到的子帧进行输入数据位宽变换处理,处理后的子帧帧长为200×6bit。其中,6为经过输入数据位宽变换处理的软信息的bit数。例如,可以通过ADC对子帧的位宽进行变换,其中,软信息的bit数取决于ADC的能力。
[0072] 值得说明的是,S2-S3描述的过程是采用先分解、再进行位宽变换的方法。可选的,也可以采用先进行位宽变换、再分解的方法,此处不做限定。
[0073] S4、FEC译码器通过内部的变量节点更新模块和校验节点更新模块对接收到的4个子帧进行译码处理。例如,FEC译码接收到的子帧0、子帧1、子帧2、子帧3之后,会将上述4个子帧进行软判决FEC译码处理;然后,将子帧0进行输出数据位宽变换并发送至下一FEC译码器,同时接收子帧4,对子帧1、子帧2、子帧3、子帧4进行软判决FEC译码处理。
[0074] 也就是说,FEC译码器在每个业务时钟周期接收一个新的子帧,同时将本地缓存的最旧的子帧发送至下一个译码器;同时,FEC译码器会依次对接收到的新子帧以及本地的3个子帧进行FEC译码处理。
[0075] 例如,第一个业务时钟周期,FEC译码器对子帧0、子帧1、子帧2、子帧3进行软判决FEC译码处理;
[0076] 在第二个业务时钟周期,FEC译码器对子帧1、子帧2、子帧3、子帧4进行软判决FEC译码处理;
[0077] 在第三个业务时钟周期,FEC译码器对子帧2、子帧3、子帧4、子帧5进行软判决FEC译码处理,依次类推。
[0078] 综上所述,一个子帧会在一个FEC译码器内进行4次迭代译码处理,通过串联的多个FEC译码器,可以有效的增加FEC译码的迭代次数。例如,如果有N个FEC译码器,则可以实现对每个子帧的N×4次迭代译码,能够极大的提高纠错能力。
[0079] 同时,根据上述方法,FEC译码器对4个子帧(即一个完整的FEC帧)完成一次译码的时间最大为10个业务时钟周期(因为一个子帧为2000bit,FEC译码器的位宽为200bit)。如果采用现有技术的FEC译码方法,FEC译码器接收一个完整的FEC帧需要10×4个业务时钟周期,即FEC译码器需要在40个业务时钟周期内完成对FEC帧的多次迭代译码。如果现有技术在10个业务时钟周期内对FEC帧完成一次译码,则在40个业务时钟周期内只能对FEC帧完成4次迭代译码,而4次迭代译码后的纠错能力远远达不到大多数通信系统的要求。所以,现有技术中需要提高FEC译码器内运算电路的处理能力,对FEC帧进行并行处理,以提高FEC译码的迭代次数。所以,本实施例提供的方法对FEC译码器中运算电路的要求较低,便于实现。
[0080] 本发明实施例提供的实现软判决FEC译码的方法,将接收到的每个FEC帧分解为n个子帧,由每个FEC译码器依次对每n个子帧进行一次译码处理,通过多个相互串联的FEC译码器实现对每n个子帧的多次迭代译码。采用本发明实施例提供的方法,对FEC帧进行迭代译码的次数并不受FEC帧长的限制,能够提高FEC译码器的纠错能力;另一方面,将FEC帧分解为n个子帧,可以根据子帧的帧长灵活设计FEC译码器中运算电路的分时调度周期,能够降低FEC译码器中运算电路的规模,便于实现且成本较低。
[0081] 实施例三
[0082] 本发明实施例提供了一种实现软判决FEC译码的装置,能够实现上述图1和图2所示的方法实施例,如图3所示,所述装置包括数据接收端31和译码器组32,所述译码器组32包括多个逐级相连的、并拥有相同的译码控制逻辑的译码器,如图中所示的第一FEC译码器321、第二FEC译码器322等。
[0083] 所述数据接收端31用于接收多个FEC帧,并将接收到的每个FEC帧分解为n个子帧,将分解得到的子帧按照译码周期依次发送至所述译码器组32,所述n为正整数;
[0084] 所述译码器组32用于按照所述译码周期依次接收所述子帧,并对接收到的子帧进行译码处理;
[0085] 具体的,所述译码器组中的译码器(如图3中的第一FEC译码器321和第二FEC译码器322)的译码控制逻辑为:第k个译码周期中,如果在接收子帧后,所述译码器组中的第一FEC译码器321中的子帧的达到n个,则所述第一FEC译码器321将所述n个子帧组成待译码FEC帧,并对所述待译码FEC帧进行软判决FEC译码;如果在接收子帧后,所述第一FEC译码器321中存储的子帧的达到n+1个,则所述第一FEC译码器321将所述第FEC一译码器321中最先到达的子帧发送给下一级的译码器(即第二FEC译码器322),并且所述第一FEC译码器321将余下的n个子帧组成待译码FEC帧,对所述待译码FEC帧进行软判决译码,其中,k为大于等于n的正整数,所述第一FEC译码器为所述译码器组中的任意译码器。
[0086] 具体的,图3所示的装置中的多个相互串联的FEC译码器在接收到上一个FEC译码器发送的子帧后,按照与所述第一FEC译码器321相同的方法进行迭代软判决FEC译码处理。
[0087] 为了便于理解,本实施例以第一FEC译码器321为例进行说明:
[0088] 如图4所示,所述第一FEC译码器321包括:输入数据处理模块3211、变量节点更新模块3212和校验节点更新模块3213,其中:
[0089] 所述输入数据处理模块3211用于逐个接收子帧,对接收到的子帧进行输入数据位宽变换处理,确定所述子帧的软信息位数;
[0090] 所述变量节点更新模块3212用于将经过所述输入数据处理模块3211处理的子帧和所述第一FEC译码器321中已存的n-1个子帧级联成待译码FEC帧,将所述待译码FEC帧发送至所述校验节点更新模块3213;
[0091] 所述校验节点更新模块3213用于从所述变量节点更新模块3212接收所述完整的FEC帧进行校验处理,得到校验节点信息,所述校验节点信息用于表征所述完整的FEC帧中各数据位的误差;
[0092] 所述校验节点更新模块3213还用于根据得到的校验节点信息对所述待译码FEC帧进行变量处理,对所述待译码FEC帧中的各数据位进行纠错以减少误差。
[0093] 如图4所示,所述第一FEC译码器321还包括输出数据处理模块3214,用于在所述变量节点更新模块3212对所述待译码FEC帧中的各数据位进行纠错以减少误差之后,在下一个译码周期将组成所述待译码FEC帧的n个子帧中最先接收到的一个子帧进行输出数据位宽变换处理,将经过所述数据位宽变化处理的该子帧发送给与所述第一FEC译码器321相串联的第二FEC译码器322。
[0094] 如图4所示,所述装置还包括性能统计模块33,用于在每一级FEC译码器完成软判决FEC译码之后,对当前的纠错性能进行统计。
[0095] 进一步的,如图5所示,所述装置还包括整合译码器34,所述整合译码器34与所述译码器组32中末尾的译码器相接,用于从所述译码器组32中接收子帧,并将n个子帧整合为一个FEC帧。
[0096] 本发明实施例提供的实现软判决FEC译码的装置,包括多个相互串联的FEC译码器,每个FEC译码器在一个译码周期内对待译码FEC帧进行一次译码处理,通过多个相互串联的FEC译码器实现多次的迭代译码。采用本发明实施例提供的装置,对FEC帧进行迭代译码的次数并不受FEC帧长的限制,能够提高FEC译码器的纠错能力;另一方面,将FEC帧分解为n个子帧,可以根据子帧的帧长灵活设计FEC译码器中运算电路的分时调度周期,能够降低FEC译码器中运算电路的规模,便于实现且成本较低。
[0097] 通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0098] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。