发明内容
为了解决现有技术的问题,本发明实施例提供了一种前向纠错编码、译码方法和装置、通信设备及系统。所述技术方案如下:
一方面,本发明实施例提供了一种前向纠错编码方法,所述方法包括:
获取第i行待传输数据,所述第i行待传输数据的数据结构包括有效净荷部分和开销部分,所述第i行待传输数据的所述开销部分为空,其中,i为任意值;
对第i-1~i-h行编码后的待传输数据进行交织处理,得到第i行交织数据,每行所述编码后的待传输数据的数据结构与所述待传输数据的数据结构相同,且每行所述编码后的待传输数据的所述开销部分填充有编码数据,其中,h≥2且h为整数;
将所述第i行待传输数据与所述第i行交织数据拼接合并,得到第i行待编码数据;
对所述第i行待编码数据进行BCH编码,得到所述第i行待编码数据对应的编码数据;
采用所述第i行待编码数据对应的编码数据,填充所述第i行待传输数据的所述开销部分,得到第i行编码后的待传输数据,并发送所述第i行编码后的待传输数据。
其中,所述对第i-1~i-h行编码后的待传输数据进行交织处理,包括:
对所述第i-1~i-h行编码后的待传输数据进行块交织,得到第i行块交织数据。
具体地,所述对所述第i-1~i-h行编码后的待传输数据进行块交织,包括:
将所述第i-1~i-h行编码后的待传输数据分别平均分成x个数据块,x=K×h,其中,K为正整数;
选取第i-j行编码后的待传输数据的第(k-1)h+j个数据块,作为所述第i行块交织数据的第(h-j)K+k个数据块,其中,j∈{a,1≤a≤h且a为整数},k∈{a,1≤a≤K且a为整数}。
进一步地,所述对第i-1~i-h行编码后的待传输数据进行交织处理,还包括:
在所述对所述第i-1~i-h行编码后的待传输数据进行块交织,得到第i行块交织数据之后,对所述第i行块交织数据进行比特交织。
具体地,所述对所述第i行块交织数据进行比特交织,包括:
对所述第i行块交织数据按码字进行拆分,所述码字的个数为m;
对所述码字进行比特交织,以使第s个码字的第p个比特为所述第i行块交织数据的第p个数据块的第q个比特,其中,p和q满足以下关系式:
其中,s∈{a,1≤a≤m且a为整数},^为二进制异或运算。
其中,所述对所述第i行待编码数据进行BCH编码,包括:
对所述第i行待编码数据按码字进行拆分;
根据生成多项式G(x),对各个码字进行BCH编码,得到第i行待编码数据对应的编码数据;
其中,G(x)=M1(x)*M3(x)*M5(x)*…*M2*t-1(x)*CRC(x),t为一个码字中可以纠正的比特数,M1(x),M3(x),M5(x),…,M2*t-1(x)分别为以α1,α3,α5,…α2*t-1为根的多项式,α为P(x)的根,P(x)为GF(2N)域上的本原多项式,CRC(x)为循环冗余校验式,2N>n。
另一方面,本发明实施例还提供了一种前向纠错译码方法,所述方法包括:
接收第i行传输数据,所述第i行传输数据的数据结构包括有效净荷部分和开销部分,所述第i行传输数据的所述开销部分填充有编码数据,其中,i为任意值;
对第i-1~i-h行传输数据进行交织处理,得到第i行交织数据,其中,h≥2且h为整数;
将所述第i行传输数据与所述第i行交织数据拼接合并,得到第i行待译码数据;
对所述第i行待译码数据进行BCH译码。
其中,所述对第i-1~i-h行传输数据进行交织处理,包括:
对所述第i-1~i-h行传输数据进行块交织,得到第i行块交织数据。
具体地,所述对所述第i-1~i-h行传输数据进行块交织,包括:
将所述第i-1~i-h行传输数据分别平均分成x个数据块,x=K×h,其中,K为正整数;
选取第i-j行传输数据的第(k-1)h+j个数据块,作为所述第i行块交织数据的第(h-j)K+k个数据块,其中,j∈{a,1≤a≤h且a为整数},k∈{a,1≤a≤K且a为整数}。
进一步地,所述对第i-1~i-h行传输数据进行交织处理,还包括:
在所述对所述第i-1~i-h行传输数据进行块交织,得到第i行块交织数据之后,对所述第i行块交织数据进行比特交织。
具体地,所述对所述第i行块交织数据进行比特交织,包括:
对所述第i行块交织数据按码字进行拆分,所述码字的个数为m;
对所述码字进行比特交织,以使第s个码字的第p个比特为所述第i行块交织数据的第p个数据块的第q个比特,其中,p和q满足以下关系式:
其中,s∈{a,1≤a≤m且a为整数},^为二进制异或运算。
其中,所述对所述第i行待译码数据进行BCH译码,包括:
对所述第i行待译码数据按码字进行拆分;
求各个所述码字的伴随式;
根据所述伴随式计算所述码字中的误码位置,得到所述码字的误码位置信息;
根据所述码字的误码位置信息对所述码字进行纠错;
当被纠错的码字对应的所述误码位置出现在所述第i行待译码数据中的所述第i行交织数据中时,根据交织对应关系,对所述第i-1~i-h行待译码数据的码字中与被纠错的比特对应的比特进行纠错;
当被纠错的码字对应的所述误码位置出现在所述第i行待译码数据中的所述第i行传输数据中时,根据交织对应关系,获得第i+1~i+h行待译码数据对应的附加误码位置信息,以采用所述附加误码位置信息更新所述第i+1~i+h行待译码数据的误码位置信息。
具体地,所述求各个所述码字的伴随式,包括:
用M1(x)*M3(x)*M5(x)*…*M2*t-1(x)除各个所述码字,得到与所述码字对应的余式;
将所述余式转换到GF(2N)域,得到所述码字的伴随式;
其中,t为一个码字中可以纠正的比特数,M1(x),M3(x),M5(x),…,M2*t-1(x)分别为以α1,α3,α5,…α2*t-1为根的多项式,α为P(x)的根,P(x)为GF(2N)域上的本原多项式,2N>n。
具体地,所述根据所述码字的误码位置信息对所述码字进行纠错,包括:
将所述码字中,与所述码字的误码位置信息中表示误码位置的比特对应的比特取反。
进一步地,所述方法还包括:
在所述对所述第i行待译码数据进行BCH译码之后,按照j逐渐增大的方式,依次对第i-j行待译码数据进行BCH译码,其中,j∈{a,1≤a≤N且a为整数},N≥1且N为整数。
优选地,在所述根据所述码字的误码位置信息对所述码字进行纠错之后,在所述对所述第i-1~i-h行待译码数据的码字中与被纠错的比特对应的比特进行纠错和所述获得第i+1~i+h行待译码数据对应的附加误码位置信息之前,所述方法还包括:
对纠错后的码字进行循环冗余校验;
若所述纠错后的码字不能通过所述循环冗余校验,则取消对所述码字进行的纠错。
具体地,所述对纠错后的码字进行循环冗余校验,包括:
计算所述纠错后的码字对应的循环冗余校验值;
若所述循环冗余校验值为0,则所述纠错后的码字通过所述循环冗余校验;
若所述循环冗余校验值不为0,则所述纠错后的码字不能通过所述循环冗余校验。
又一方面,本发明实施例还提供了一种前向纠错编码装置,所述装置包括:
获取模块,用于获取第i行待传输数据,所述第i行待传输数据的数据结构包括有效净荷部分和开销部分,所述第i行待传输数据的所述开销部分为空,其中,i为任意值;
交织模块,用于对第i-1~i-h行编码后的待传输数据进行交织处理,得到第i行交织数据,每行所述编码后的待传输数据的数据结构与所述待传输数据的数据结构相同,且每行所述编码后的待传输数据的所述开销部分填充有编码数据,其中,h≥2且h为整数;
合并模块,用于将所述获取模块获取的所述第i行待传输数据与所述交织模块得到的所述第i行交织数据拼接合并,得到第i行待编码数据;
编码模块,用于对所述合并模块得到的所述第i行待编码数据进行BCH编码,得到所述第i行待编码数据对应的编码数据;
发送模块,用于采用所述编码模块得到的所述第i行待编码数据对应的编码数据,填充所述第i行待传输数据的所述开销部分,得到第i行编码后的待传输数据,并发送所述第i行编码后的待传输数据。
其中,所述交织模块包括:
块交织单元,用于对所述第i-1~i-h行编码后的待传输数据进行块交织,得到第i行块交织数据。
具体地,所述块交织单元用于,
将所述第i-1~i-h行编码后的待传输数据分别平均分成x个数据块,x=K×h,其中,K为正整数;
选取第i-j行编码后的待传输数据的第(k-1)h+j个数据块,作为所述第i行块交织数据的第(h-j)K+k个数据块,其中,j∈{a,1≤a≤h且a为整数},k∈{a,1≤a≤K且a为整数}。
进一步地,所述交织模块还包括:
比特交织单元,用于在所述块交织单元对所述第i-1~i-h行编码后的待传输数据进行块交织,得到第i行块交织数据之后,对所述第i行块交织数据进行比特交织。
具体地,所述比特交织单元用于,
对所述第i行块交织数据按码字进行拆分,所述码字的个数为m;
对所述码字进行比特交织,以使第s个码字的第p个比特为所述第i行块交织数据的第p个数据块的第q个比特,其中,p和q满足以下关系式:
其中,s∈{a,1≤a≤m且a为整数,^为二进制异或运算。
其中,所述编码模块用于,
对所述第i行待编码数据按码字进行拆分;
根据生成多项式G(x),对各个码字进行BCH编码,得到第i行待编码数据对应的编码数据;
其中,G(x)=M1(x)*M3(x)*M5(x)*…M2*t-1(x)*CRC(x),t为一个码字中可以纠正的比特数,M1(x),M3(x),M5(x),…,M2*t-1(x)分别为以α1,α3,α5,…α2*t-1为根的多项式,α为P(x)的根,P(x)为GF(2N)域上的本原多项式,CRC(x)为循环冗余校验式,2N>n。
又一方面,本发明实施例还提供了一种前向纠错译码装置,所述装置包括:
接收模块,用于接收第i行传输数据,所述第i行传输数据的数据结构包括有效净荷部分和开销部分,所述第i行传输数据的所述开销部分填充有编码数据,其中,i为任意值;
交织模块,用于对第i-1~i-h行传输数据进行交织处理,得到第i行交织数据,其中,h≥2且h为整数;
合并模块,用于将所述接收模块接收的所述第i行传输数据与所述交织模块得到的所述第i行交织数据拼接合并,得到第i行待译码数据;
译码模块,用于对所述合并模块得到的所述第i行待译码数据进行BCH译码。
其中,所述交织模块包括:
块交织单元,用于对所述第i-1~i-h行传输数据进行块交织,得到第i行块交织数据。
具体地,所述块交织单元用于,
将所述第i-1~i-h行传输数据分别平均分成x个数据块,x=K×h,其中,K为正整数;
选取第i-j行传输数据的第(k-1)h+j个数据块,作为所述第i行块交织数据的第(h-j)K+k个数据块,其中,j∈{a,1≤a≤h且a为整数},k∈{a,1≤a≤K且a为整数}。
进一步地,所述交织模块还包括:
比特交织单元,用于在所述块交织单元对所述第i-1~i-h行传输数据进行块交织,得到第i行块交织数据之后,对所述第i行块交织数据进行比特交织。
具体地,所述比特交织单元用于,
对所述第i行块交织数据按码字进行拆分,所述码字的个数为m;
对所述码字进行比特交织,以使第s个码字的第p个比特为所述第i行块交织数据的第p个数据块的第q个比特,其中,p和q满足以下关系式:
其中,s∈{a,1≤a≤m且a为整数},^为二进制异或运算。
其中,所述译码模块包括:
拆分单元,用于对所述第i行待译码数据按码字进行拆分;
伴随式计算单元,用于求所述拆分单元得到的各个所述码字的伴随式;
误码位置计算单元,用于根据所述伴随式计算单元得到的所述伴随式计算所述码字中的误码位置,得到所述码字的误码位置信息;
纠错单元,用于根据所述误码位置计算单元得到的所述码字的误码位置信息对所述码字进行纠错,当被纠错的码字对应的所述误码位置出现在所述第i行待译码数据中的所述第i行交织数据中时,根据交织对应关系,对所述第i-1~i-h行待译码数据的码字中与被纠错的比特对应的比特进行纠错,当被纠错的码字对应的所述误码位置出现在所述第i行待译码数据中的所述第i行传输数据中时,根据交织对应关系,获得第i+1~i+h行待译码数据对应的附加误码位置信息,以采用所述附加误码位置信息更新所述第i+1~i+h行待译码数据的误码位置信息。
具体地,所述伴随式计算单元用于,
用M1(x)*M3(x)*M5(x)*…*M2*t-1(x)除各个所述码字,得到与所述码字对应的余式;
将所述余式转换到GF(2N)域,得到所述码字的伴随式;
其中,t为一个码字中可以纠正的比特数,M1(x),M3(x),M5(x),…,M2*t-1(x)分别为以α1,α3,α5,…α2*t-1为根的多项式,α为P(x)的根,P(x)为GF(2N)域上的本原多项式,2N>n。
具体地,所述纠错单元用于,
将所述码字中,与所述码字的误码位置信息中表示误码位置的比特对应的比特取反。
进一步地,所述译码模块还用于,
在所述译码模块对所述第i行待译码数据进行BCH译码之后,按照j逐渐增大的方式,依次对第i-j行待译码数据进行BCH译码,其中,j∈{a,1≤a≤N且a为整数},N≥1且N为整数。
优选地,所述装置还包括:
校验模块,用于在所述纠错单元根据所述码字的误码位置信息对所述码字进行纠错之后,在所述纠错单元对所述第i-1~i-h行待译码数据的码字中与被纠错的比特对应的比特进行纠错和获得第i+1~i+h行待译码数据对应的附加误码位置信息之前,对纠错后的码字进行循环冗余校验;若所述纠错后的码字不能通过所述循环冗余校验,则取消对所述码字进行的纠错。
具体地,所述校验模块包括:
校验值计算单元,用于计算所述纠错后的码字对应的循环冗余校验值;
判断单元,用于对所述校验值计算单元得到的所述循环冗余校验值进行判断,若所述循环冗余校验值为0,则所述纠错后的码字通过所述循环冗余校验;若所述循环冗余校验值不为0,则所述纠错后的码字不能通过所述循环冗余校验。
又一方面,本发明实施例还提供了一种通信设备,所述设备包括前述编码装置和译码装置。
又一方面,本发明实施例还提供了一种通信系统,所述系统包括至少两个前述通信设备。
本发明实施例提供的技术方案带来的有益效果是:
通过对第i-1~i-h行编码后的待传输数据进行交织处理,得到第i行交织数据,并对第i行待传输数据与第i行交织数据合并后的第i行待编码数据进行BCH编码,与现有技术中仅对待传输数据进行BCH编码相比,码长增大了一倍,由于BCH编码中,码长越长,纠错能力越长,因此,对合并后得到的第i行待编码数据进行BCH编码,可以有效提高编码增益,降低错误平层,从而提高FEC的纠错能力,进而提高传输距离。同时,由于第i行待编码数据由第i行交织数据和第i行待传输数据合并而成,使得编码数据可以同时指示待传输数据和交织数据中的误码位置,在译码时,对同一行数据来说,误码位置可以从待传输数据和交织数据两处得到,进一步提高了FEC的净编码增益和纠错能力。并且,由于在BCH编码完成后,仅发送编码后的待传输数据(填充编码数据的待传输数据),因此可以在提高纠错能力的情况下,保证传输带宽不变。此外,本发明实施例只进行了一次BCH编码,算法简单,因此处理时延时较短、实现代价较低。综上所述,本发明实施例的纠错能力强、处理时延短、实现代价低,可以满足需要高速传输的数据帧的要求。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例一
本发明实施例一提供了一种前向纠错编码方法,参见图1,该方法包括:
步骤101:获取第i行待传输数据,第i行待传输数据的数据结构包括有效净荷部分和开销部分,第i行待传输数据的开销部分为空,其中,i为任意值。
其中,在待传输数据中,该有效净荷部分中填充的是没有进行编码的原始数据,该开销部分用于填充编码数据。
另外,容易知道,i为正整数。
步骤102:对第i-1~i-h行编码后的待传输数据进行交织处理,得到第i行交织数据,每行编码后的待传输数据的数据结构与待传输数据的数据结构相同,且每行编码后的待传输数据的开销部分填充有编码数据,其中,h≥2且h为整数。
具体地,以第i-1行为例,第i-1行编码后的待传输数据是指将第i-1行待传输数据的开销部分填充编码数据后得到的待传输数据。
步骤103:将第i行待传输数据与第i行交织数据拼接合并,得到第i行待编码数据。
优选地,第i行待编码数据的前半部分为第i行交织数据,第i行待编码数据的后半部分为第i行待传输数据。
容易知道,第i行待编码数据的前半部分也可以为第i行待传输数据,而第i行待编码数据的后半部分为第i行交织数据。
步骤104:对第i行待编码数据进行BCH编码,得到第i行待编码数据对应的编码数据。
步骤105:采用第i行待编码数据对应的编码数据,填充第i行待传输数据的开销部分,得到第i行编码后的待传输数据,并发送第i行编码后的待传输数据。
本发明实施例通过对第i-1~i-h行编码后的待传输数据进行交织处理,得到第i行交织数据,并对第i行待传输数据与第i行交织数据合并后的第i行待编码数据进行BCH编码,与现有技术中仅对待传输数据进行BCH编码相比,码长增大了一倍,由于BCH编码中,码长越长,纠错能力越长,因此,对合并后得到的第i行待编码数据进行BCH编码,可以有效提高编码增益,降低错误平层,从而提高FEC的纠错能力,进而提高传输距离。同时,由于第i行待编码数据由第i行交织数据和第i行待传输数据合并而成,使得编码数据可以同时指示待传输数据和交织数据中的误码位置,在译码时,对同一行数据来说,误码位置可以从待传输数据和交织数据两处得到,进一步提高了FEC的净编码增益和纠错能力。并且,由于在BCH编码完成后,仅发送编码后的待传输数据(填充编码数据的待传输数据),因此可以在提高纠错能力的情况下,保证传输带宽不变。此外,本发明实施例只进行了一次BCH编码,算法简单,因此处理时延时较短、实现代价较低。综上所述,本发明实施例的纠错能力强、处理时延短、实现代价低,可以满足需要高速传输的数据帧的要求。
实施例二
本发明实施例二提供了一种前向纠错编码方法,参见图2,该方法包括:
步骤201:获取第i行待传输数据,其中,i为任意值。
具体地,该待传输数据的数据结构如图3所示,包括有效净荷部分和开销部分,该待传输数据的开销部分为空。该有效净荷部分中填充的是没有进行编码的原始数据,该开销部分用于填充编码数据。
通常,待传输数据以帧为单位进行传输,一帧包括多行数据,每帧所包含数据的行数由帧结构决定。比如,对于OTU2帧而言,每帧包括4行数据。
步骤202:对第i-1~i-h行编码后的待传输数据进行块交织,得到第i行块交织数据,h≥2且h为整数。
其中,编码后的待传输数据的数据结构与待传输数据的数据结构相同,且编码后的待传输数据的开销部分填充有编码数据。以第i-1行为例,第i-1行编码后的待传输数据是指将第i-1行待传输数据的开销部分填充编码数据后得到的待传输数据。
具体地,h的取值可以根据实际需要设置,优选为8。
优选地,该步骤202包括:
步骤202a:将第i-1~i-h行编码后的待传输数据分别平均分成x个数据块,x=K×h,其中,K为正整数。
具体地,每行编码后的待传输数据被分成x个数据块后,每个数据块的大小均为M bit(比特),M≥1。
步骤202b:选取第i-j行编码后的待传输数据的第(k-1)h+j个数据块,作为第i行块交织数据的第(h-j)K+k个数据块,其中,j∈{a,1≤a≤h且a为整数},k∈{a,1≤a≤K且a为整数}。
具体地,如图4所示,该步骤202b包括:
将第i-h行编码后的待传输数据的第h个数据块作为第i行块交织数据的第1个数据块,第i-h行编码后的待传输数据的第2h个数据块作为第i行块交织数据的第2个数据块,…第i-h行编码后的待传输数据的第Kh个数据块作为第i行块交织数据的第K个数据块;
第i-h+1行编码后的待传输数据的第h-1个数据块作为块交织后的第i行数据的第K+1个数据块,第i-h+1行编码后的待传输数据的第2h-1个数据块作为块交织后第i行数据的第K+2个数据块,...第i-h+1行编码后的待传输数据的第Kh-1个数据块作为块交织后的第i行数据的第2K个数据块;
直到第i行编码后的待传输数据的第1个数据块作为块交织后的第i行数据的第K(h-1)+1个数据块,第i行编码后的待传输数据的第h+1个数据块作为块交织后的第i行数据的第K(h-1)+2个数据块,...第i行编码后的待传输数据的第(K-1)h+1个数据块作为块交织后的第i行数据的第Kh个数据块。
更具体地,以h=8,i=9,x=64,K=8为例,该步骤202b包括:
将第1行编码后的待传输数据的第8个数据块作为块交织后的第9行数据的第1个数据块,第1行编码后的待传输数据的第16个数据块作为块交织后的第9行数据的第2个数据块,…第1行编码后的待编码数据的第64个数据块作为块交织后的第9行数据的第8个数据块;
第2行编码后的待传输数据的第7个数据块作为块交织后的第9行数据的第9个数据块,第2行编码后的待传输数据的第15个数据块作为块交织后的第9行数据的第10个数据块,...第2行编码后的待传输数据的第63个数据块作为块交织后的第9行数据的第16个数据块;
直到第8行编码后的待传输数据的第1个数据块作为块交织后的第9行数据的第57个数据块,第8行编码后的待传输数据的第9个数据块作为块交织后的第9行数据的第58个数据块,…第8行编码后的待传输数据的第57个数据块作为块交织后的第9行数据的第64个数据块。
可选地,在另一实施例中,该步骤202可以包括:
202a’:将第i-1~i-h行编码后的待传输数据分别平均分成x个数据块,x=K×h,其中,K为正整数。
具体地,每行编码后的待传输数据被分成x个数据块后,每个数据块的大小均为M bit,M≥1。
202b’:选取第i-j行编码后的待传输数据的第(k-1)h+j个数据块,作为第i行块交织数据的第(k-1)h+j个数据块,其中,j∈{a,1≤a≤h且a为整数},k∈{a,1≤a≤K且a为整数}。
具体地,该步骤202b’包括:
将第i-1行编码后的待传输数据的第1个数据块作为第i行块交织数据的第1个数据块,第i-2行编码后的待传输数据的第2个数据块作为第i行块交织数据的第2个数据块,…第i-h行编码后的待传输数据的第h个数据块作为第i行块交织数据的第h个数据块;
第i-1行编码后的待编码数据的第h+1个数据块作为第i行块交织数据的第h+1个数据块,第i-2行编码后的待编码数据的第h+2个数据块作为第i行块交织数据的第h+2个数据块,…第i-h行编码后的待传输数据的第2h个数据块作为第i行块交织数据的第2h个数据块;
直到第i-1行编码后的待编码数据的第(K-1)h+1个数据块作为第i行块交织数据的第(K-1)h+1个数据块,第i-2行编码后的待编码数据的第(K-1)h+2个数据块作为第i行块交织数据的第(K-1)h+2个数据块,…第i-h行编码后的待传输数据的第Kh个数据块作为第i行块交织数据的第Kh块。
更具体地,以h=8,i=9,x=64,K=8为例,该步骤202b’包括:
将第8行编码后的待传输数据的第1个数据块作为块交织后的第9行数据的第1个数据块,第7行编码后的待传输数据的第2个数据块作为块交织后的第9行数据的第2个数据块,…第1行编码后的待编码数据的第8个数据块作为块交织后的第9行数据的第8个数据块;
第8行编码后的待传输数据的第9个数据块作为块交织后的第9行数据的第9个数据块,第7行编码后的待传输数据的第10个数据块作为块交织后的第9行数据的第10个数据块,...第1行编码后的待传输数据的第16个数据块作为块交织后的第9行数据的第16个数据块;
直到第8行编码后的待传输数据的第57个数据块作为块交织后的第9行数据的第57个数据块、第7行编码后的待传输数据的第58个数据块作为块交织后的第9行数据的第58个数据块,…第1行编码后的待传输数据的第64个数据块作为块交织后的第9行数据的第64个数据块。
需要说明的是,当获取的第i行待传输数据为第1~h行待传输数据时,采用预设数据作为第i-1~i-h行编码后的待传输数据,该预设数据可以为随机数据,也可以为预先赋值的数据(比如全部赋值为0)。
步骤203:对第i行块交织数据进行比特交织,得到第i行交织数据。
具体地,该步骤203包括:
203a:对第i行块交织数据按码字进行拆分,码字的个数为m。
具体地,参见图5,第i行块交织数据拆分为m个码字,第i行块交织数据的第s个码字由第i行块交织数据的每个数据块的第s个bit数据组成,s∈{a,1≤a≤m且a为整数}。
优选地,在本实施例中,m=M。
203b:对m个码字进行比特交织,以使第s个码字的第p个bit为第i行块交织数据的第p个数据块的第q个bit,其中,p和q满足以下关系式:
其中,s∈{a,1≤a≤m且a为整数},^为二进制异或运算。
采用比特交织可以使误码率均匀化,有效提高FEC的纠错性能。
通过上述步骤202~203完成了对第i-1~i-h行编码后的待传输数据进行交织处理的步骤。在本实施例中,为了进一步提高编码算法的可靠性,采用了块交织与比特交织结合交织处理方法,而在其它实施例中,交织处理也可以仅采用块交织来实现。
步骤204:将第i行待传输数据与第i行交织数据拼接合并,得到第i行待编码数据。
优选地,参见图6,将第i行待传输数据与第i行交织数据拼接合并为将第i行待传输数据加到第i行交织数据的后面,成为第i行待编码数据。此时,第i行待编码数据的前半部分为第i行交织数据,第i行待编码数据的后半部分为第i行待传输数据。
可选地,将第i行待传输数据与第i行交织数据拼接合并为将第i行交织数据加到第i行待传输数据的后面,成为第i行待编码数据。此时,第i行待编码数据的前半部分为第i行待传输数据,第i行待编码数据的后半部分为第i行交织数据。
步骤205:对第i行待编码数据进行BCH编码,得到第i行待编码数据对应的编码数据。
具体地,该步骤205包括:
205a:对第i行待编码数据按码字进行拆分。
具体地,该步骤205a包括:
将第i行待编码数据拆分为m个码字,以第i行待编码数据的第r个bit作为第r mod m码字的第
个bit,其中,1≤r≤2x×M。
在具体实现中,可以采用以下方式实现步骤205a:
以待编码数据的第1个bit作为第1个码字的第1个bit,待编码数据的第2个bit作为第2个码字的第1个bit,…待编码数据的第m个bit作为第m个码字的第1个bit;
待编码数据的第(m+1)个bit作为第1个码字的第2个bit,待编码数据的第(m+2)个bit作为第2个码字的第2个bit,…待编码数据的第2m个bit作为第m个码字的第2个bit;
直到待编码数据的第(2x-1)m+1个bit作为第1个码字的第2x个bit,待编码数据的第(2x-1)m+2个bit作为第2个码字的第2x个bit,…待编码数据的第2xm个bit作为第m个码字的第2x个bit。
205b:根据生成多项式G(x),对各个码字进行BCH编码,得到第i行待编码数据对应的编码数据。
优选地,在本实施例中,G(x)=M1(x)*M3(x)*M5(x)*…M2*t-1(x)*CRC(x),t为一个码字中可以纠正的比特数,M1(x),M3(x),M5(x),…,M2*t-1(x)分别为以α1,α3,α5,…α2*t-1为根的多项式,α为P(x)的根,P(x)为GF(2N)域上的本原多项式,CRC(x)为CRC(Cyclic Redundancy Check,循环冗余校验)校验式,2N>n。
进一步地,在具体实现中,可以采用CRC(x)=x2+1。
步骤206:采用第i行待编码数据对应的编码数据,填充第i行待传输数据的开销部分,得到第i行编码后的待传输数据,并发送第i行编码后的待传输数据。
本发明实施例通过对第i-1~i-h行编码后的待传输数据进行交织处理,得到第i行交织数据,并对第i行待传输数据与第i行交织数据合并后的第i行待编码数据进行BCH编码,与现有技术中,仅对待传输数据进行BCH编码相比,码长增大了一倍,由于BCH编码中,码长越长,纠错能力越长,因此,对合并后得到的第i行待编码数据进行BCH编码,可以有效提高编码增益,降低错误平层,从而提高FEC的纠错能力,进而提高传输距离。同时,由于第i行待编码数据由第i行交织数据和第i行待传输数据合并而成,使得编码数据可以同时指示待传输数据和交织数据中的误码位置,在译码时,对同一行数据来说,误码位置可以从待传输数据和交织数据两处得到,进一步提高了FEC的净编码增益和纠错能力。并且,由于在BCH编码完成后,仅发送编码后的待传输数据(填充编码数据的待传输数据),因此可以在提高纠错能力的情况下,保证传输带宽不变。此外,本发明实施例只进行了一次BCH编码,算法简单,因此处理时延时较短、实现代价较低。综上所述,本发明实施例的纠错能力强、处理时延短、实现代价低,可以满足需要高速传输的数据帧的要求。另外,本发明实施例采用了块交织与比特交织相结合,对第i-1~i-h行编码后的待传输数据进行交织处理,可以进一步提高纠错能力。最后,由于本发明实施例在BCH码的生成多项式中添加了CRC校验式,所以在译码时,可以通过该CRC校验式来检验纠错的可靠性,从而进一步提高纠错的可靠性。
实施例三
本发明实施例三提供了一种前向纠错译码方法,该方法与实施例一提供的前向纠错编码方法相对应,参见图7,该方法包括:
步骤301:接收第i行传输数据,第i行传输数据的数据结构包括有效净荷部分和开销部分,第i行传输数据的开销部分填充有编码数据,其中,i为任意值。
具体地,该传输数据的数据结构与实施例一中的待传输数据的数据结构相同,在此不再详述。
步骤302:对第i-1~i-h行传输数据进行交织处理,得到第i行交织数据,其中,h≥2且h为整数。
步骤303:将第i行传输数据与第i行交织数据拼接合并,得到第i行待译码数据。
优选地,第i行待译码数据的前半部分为第i行交织数据,第i行待译码数据的后半部分为第i行传输数据。
可选地,在其它实施例中,第i行待译码数据的前半部分为第i行传输数据,第i行待译码数据的后半部分为第i行交织数据。
步骤304:对第i行待译码数据进行BCH译码。
本发明实施例通过对第i-1~i-h行编码后的待传输数据进行交织处理,得到第i行交织数据,并对第i行待传输数据与第i行交织数据合并后的第i行待编码数据进行BCH编码,与现有技术中仅对待传输数据进行BCH编码相比,码长增大了一倍,由于BCH编码中,码长越长,纠错能力越长,因此,对合并后得到的第i行待编码数据进行BCH编码,可以有效提高编码增益,降低错误平层,从而提高FEC的纠错能力,进而提高传输距离。同时,由于第i行待编码数据由第i行交织数据和第i行待传输数据合并而成,使得编码数据可以同时指示待传输数据和交织数据中的误码位置,在译码时,对同一行数据来说,误码位置可以从待传输数据和交织数据两处得到,进一步提高了FEC的净编码增益和纠错能力。并且,由于在BCH编码完成后,仅发送编码后的待传输数据(填充编码数据的待传输数据),因此可以在提高纠错能力的情况下,保证传输带宽不变。此外,本发明实施例只进行了一次BCH编码,算法简单,因此处理时延时较短、实现代价较低。综上所述,本发明实施例的纠错能力强、处理时延短、实现代价低,可以满足需要高速传输的数据帧的要求。
实施例四
本发明实施例四提供了一种前向纠错译码方法,该方法与实施例二提供的前向纠错编码方法相对应,参见图8,该方法包括:
步骤401:接收第i行传输数据,第i行传输数据的数据结构包括有效净荷部分和开销部分,第i行传输数据的开销部分填充有编码数据,其中,i为任意值。
具体地,该传输数据的数据结构与实施例二中的待传输数据的数据结构相同,在此不再详述。
步骤402:对第i-1~i-h行传输数据进行交织处理,得到第i行交织数据,其中,h≥2且h为整数。
具体地,对第i-1~i-h行传输数据进行交织处理,包括:
对第i-1~i-h行传输数据进行块交织,得到第i行块交织数据。
具体地,对第i-1~i-h行传输数据进行块交织的过程与实施例二中的步骤202相同,在此不再详述。
进一步地,对第i-1~i-h行传输数据进行交织处理,还包括:
对第i行块交织数据进行比特交织,得到第i行交织数据。
具体地,对第i行块交织数据进行比特交织的过程与实施例二中的步骤203相同,在此不再详述。
步骤403:将第i行传输数据与第i行交织数据拼接合并,得到第i行待译码数据。
优选地,第i行待译码数据的前半部分为第i行交织数据,第i行待译码数据的后半部分为第i行传输数据。
可选地,在其它实施例中,第i行待译码数据的前半部分为第i行传输数据,第i行待译码数据的后半部分为第i行交织数据。
具体地,将第i行传输数据与第i行交织数据拼接合并的过程与实施例二中的步骤204相同,待译码数据的数据结构与实施例二中的待编码数据的数据结构相同,在此不再详述。
步骤404:对第i行待译码数据进行BCH译码。
具体地,该步骤404包括:
步骤4041:对第i行待译码数据按码字进行拆分。
具体地,对第i行待译码数据按码字进行拆分的过程与实施例二中的步骤205a相同,在此不再详述。
步骤4042:求各个码字的伴随式S(x)。
具体地,该步骤4042包括:
步骤4042a:用M1(x)*M3(x)*M5(x)*…*M2*t-1(x)除各个码字,得到与各个码字对应的余式;
步骤4042b:将余式转换到GF(2N)域,得到码字的伴随式S(x)。
其中,t为一个码字中可以纠正的比特数,M1(x),M3(x),M5(x),…,M2*t-1(x)分别为以α1,α3,α5,…α2*t-1为根的多项式,α为P(x)的根,P(x)为GF(2N)域上的本原多项式,2N>n。
步骤4043:根据伴随式S(x)计算码字中的误码位置,得到码字的误码位置信息。
具体地,该步骤4043包括:根据码字的伴随式S(x)计算出码字的误码位置方程σ(x),根据码字的误码位置方程σ(x)计算出码字中的误码位置。此为本领域现有技术,在此省略详细描述。
进一步地,该误码位置信息的长度与码长相同,通常由0、1组成,采用1表示码字中的误码位置。
步骤4044:根据码字的误码位置信息对该码字进行纠错。
具体地,将该码字中,与该码字的误码位置信息中表示误码位置的比特(如1)对应的比特取反。
步骤4045:对纠错后的码字进行CRC校验;若纠错后的码字不能通过CRC校验,则取消对该码字进行的纠错。
具体地,该步骤4045包括:
第一步:计算纠错后的码字对应的CRC校验值。
具体地,计算CRC校验值为用CRC(x)除各个码字,其中CRC(x)为CRC校验式。
在具体实现中,可以采用CRC(x)=x2+1。
第二步:若CRC校验值为0,则纠错后的码字通过CRC校验;若CRC校验值不为0,则纠错后的码字不能通过CRC校验。
容易知道,若纠错后的码字通过CRC校验,表示该码字被纠正为合法码字,执行步骤4046;若纠错后的码字不能通过CRC校验,则不执行步骤4046。
优选地,在纠错后的码字通过CRC校验之后,该方法还包括:输出误码位置信息,以便于后续伴随式更新以及纠错。
步骤4046:当被纠错的码字对应的误码位置出现在第i行待译码数据中的第i行交织数据中时,根据交织对应关系,对第i-1~i-h行待译码数据的码字中与被纠错的比特对应的比特进行纠错;当被纠错的码字对应的误码位置出现在第i行待译码数据中的第i行传输数据中时,根据交织对应关系,获得第i+1~i+h行待译码数据对应的附加误码位置信息,以采用附加误码位置信息更新第i+1~i+h行待译码数据的误码位置信息。
在具体实现中,在根据交织对应关系,对第i-1~i-h行待译码数据的码字中与被纠错的比特对应的比特进行纠错后,需要重新计算被纠错的比特所在的码字的伴随式。同样地,在采用附加误码位置信息更新第i+1~i+h行待译码数据的误码位置信息,并根据更新后的误码位置信息进行纠错后,也需要更新被纠错的比特所在的码字的伴随式。
需要说明的是,在其它实施例中,也可以不执行步骤4045,在执行完步骤4044后直接执行步骤4046。
优选地,该方法还包括步骤405:
在对第i行待译码数据进行BCH译码之后,按照j逐渐增大的方式,依次对第i-j行待译码数据进行BCH译码,其中,j∈{a,1≤a≤N且a为整数},N≥1且N为整数。
具体地,该步骤406的译码过程如图9所示,当完成第i行待译码数据的BCH译码后,根据第i-1行待译码数据中纠错后的各个码字进行第i-1行待译码数据的BCH译码;当完成第i-1行待译码数据的BCH译码后,根据第i-2行待译码数据中纠错后的各个码字进行第i-2行待译码数据的BCH译码;直至当完成第i-N+1行待译码数据的BCH译码后,根据第i-N行待译码数据中纠错后的各个码字进行第i-N行待译码数据的BCH译码;并将第i-N行译码后的传输数据作为最终的译码结果输出。
其中,N可以根据实际需要设置。
本发明实施例通过对第i-1~i-h行编码后的待传输数据进行交织处理,得到第i行交织数据,并对第i行待传输数据与第i行交织数据合并后的第i行待编码数据进行BCH编码,与现有技术中,仅对待传输数据进行BCH编码相比,码长增大了一倍,由于BCH编码中,码长越长,纠错能力越长,因此,对合并后得到的第i行待编码数据进行BCH编码,可以有效提高编码增益,降低错误平层,从而提高FEC的纠错能力,进而提高传输距离。同时,由于第i行待编码数据由第i行交织数据和第i行待传输数据合并而成,使得编码数据可以同时指示待传输数据和交织数据中的误码位置,在译码时,对同一行数据来说,误码位置可以从待传输数据和交织数据两处得到,进一步提高了FEC的净编码增益和纠错能力。并且,由于在BCH编码完成后,仅发送编码后的待传输数据(填充编码数据的待传输数据),因此可以在提高纠错能力的情况下,保证传输带宽不变。此外,本发明实施例只进行了一次BCH编码,算法简单,因此处理时延时较短、实现代价较低。综上所述,本发明实施例的纠错能力强、处理时延短、实现代价低,可以满足需要高速传输的数据帧的要求。另外,本发明实施例采用了块交织与比特交织相结合,对第i-1~i-h行编码后的待传输数据进行交织处理,可以进一步提高纠错能力。最后,由于本发明实施例在BCH码的生成多项式中添加了CRC校验式,所以在译码时,可以通过该CRC校验式来检验纠错的可靠性,从而进一步提高纠错的可靠性。
实施例五
参见图10,本发明实施例五提供了一种前向纠错编码装置,适用于实现实施例一提供的前向纠错编码方法,该装置包括:
获取模块501,用于获取第i行待传输数据,第i行待传输数据的数据结构包括有效净荷部分和开销部分,第i行待传输数据的开销部分为空,其中,i为任意值;
交织模块502,用于对第i-1~i-h行编码后的待传输数据进行交织处理,得到第i行交织数据,每行编码后的待传输数据的数据结构与待传输数据的数据结构相同,且每行编码后的待传输数据的开销部分填充有编码数据,其中,h≥2且h为整数;
合并模块503,用于将获取模块501获取的第i行待传输数据与交织模块502得到的第i行交织数据拼接合并,得到第i行待编码数据;
编码模块504,用于对合并模块503得到的第i行待编码数据进行BCH编码,得到第i行待编码数据对应的编码数据;
发送模块505,用于采用编码模块504得到的第i行待编码数据对应的编码数据,填充第i行待传输数据的开销部分,得到第i行编码后的待传输数据,并发送第i行编码后的待传输数据。
本发明实施例通过对第i-1~i-h行编码后的待传输数据进行交织处理,得到第i行交织数据,并对第i行待传输数据与第i行交织数据合并后的第i行待编码数据进行BCH编码,与现有技术中仅对待传输数据进行BCH编码相比,码长增大了一倍,由于BCH编码中,码长越长,纠错能力越长,因此,对合并后得到的第i行待编码数据进行BCH编码,可以有效提高编码增益,降低错误平层,从而提高FEC的纠错能力,进而提高传输距离。同时,由于第i行待编码数据由第i行交织数据和第i行待传输数据合并而成,使得编码数据可以同时指示待传输数据和交织数据中的误码位置,在译码时,对同一行数据来说,误码位置可以从待传输数据和交织数据两处得到,进一步提高了FEC的净编码增益和纠错能力。并且,由于在BCH编码完成后,仅发送编码后的待传输数据(填充编码数据的待传输数据),因此可以在提高纠错能力的情况下,保证传输带宽不变。此外,本发明实施例只进行了一次BCH编码,算法简单,因此处理时延时较短、实现代价较低。综上所述,本发明实施例的纠错能力强、处理时延短、实现代价低,可以满足需要高速传输的数据帧的要求。
实施例六
参见图11,本发明实施例六提供了一种前向纠错编码方法,适用于实现实施例二提供的前向纠错编码方法,该装置包括:
获取模块601,用于获取第i行待传输数据,第i行待传输数据的数据结构包括有效净荷部分和开销部分,第i行待传输数据的开销部分为空,其中,i为任意值;
交织模块602,用于对第i-1~i-h行编码后的待传输数据进行交织处理,得到第i行交织数据,每行编码后的待传输数据的数据结构与待传输数据的数据结构相同,且每行编码后的待传输数据的开销部分填充有编码数据,其中,h≥2且h为整数;
合并模块603,用于将获取模块601获取的第i行待传输数据与交织模块602得到的第i行交织数据拼接合并,得到第i行待编码数据;
编码模块604,用于对合并模块603得到的第i行待编码数据进行BCH编码,得到第i行待编码数据对应的编码数据;
发送模块605,用于采用编码模块604得到的第i行待编码数据对应的编码数据,填充第i行待传输数据的开销部分,得到第i行编码后的待传输数据,并发送第i行编码后的待传输数据。
其中,交织模块602包括:
块交织单元,用于对第i-1~i-h行编码后的待传输数据进行块交织,得到第i行块交织数据。
具体地,块交织单元用于,
将第i-1~i-h行编码后的待传输数据分别平均分成x个数据块,x=K×h,其中,K为正整数;
选取第i-j行编码后的待传输数据的第(k-1)h+j个数据块,作为第i行块交织数据的第(h-j-)K+k个数据块,其中,j∈{a,1≤a≤h且a为整数},k∈{a,1≤a≤K且a为整数}。
优选地,交织模块还包括:
比特交织单元,用于在块交织单元对第i-1~i-h行编码后的待传输数据进行块交织,得到第i行块交织数据之后,对第i行块交织数据进行比特交织。
具体地,比特交织单元用于,
对第i行块交织数据按码字进行拆分,码字的个数为m;
对码字进行比特交织,以使第s个码字的第p个比特为第i行块交织数据的第p个数据块的第q个比特,其中,p与q满足以下关系式:
其中,s∈{a,1≤a≤m且a为整数},^为二进制异或运算。
其中,编码模块604用于,
对第i行待编码数据按码字进行拆分;
根据生成多项式G(x),对各个码字进行BCH编码,得到第i行待编码数据对应的编码数据;
其中,G(x)=M1(x)*M3(x)*M5(x)*…*M2*t-1(x)*CRC(x),t为一个码字中可以纠正的比特数,M1(x),M3(x),M5(x),…,M2*t-1(x)分别为以α1,α3,α5,…α2*t-1为根的多项式,α为P(x)的根,P(x)为GF(2N)域上的本原多项式,CRC(x)为循环冗余校验式,2N>n。
本发明实施例通过对第i-1~i-h行编码后的待传输数据进行交织处理,得到第i行交织数据,并对第i行待传输数据与第i行交织数据合并后的第i行待编码数据进行BCH编码,与现有技术中,仅对待传输数据进行BCH编码相比,码长增大了一倍,由于BCH编码中,码长越长,纠错能力越长,因此,对合并后得到的第i行待编码数据进行BCH编码,可以有效提高编码增益,降低错误平层,从而提高FEC的纠错能力,进而提高传输距离。同时,由于第i行待编码数据由第i行交织数据和第i行待传输数据合并而成,使得编码数据可以同时指示待传输数据和交织数据中的误码位置,在译码时,对同一行数据来说,误码位置可以从待传输数据和交织数据两处得到,进一步提高了FEC的净编码增益和纠错能力。并且,由于在BCH编码完成后,仅发送编码后的待传输数据(填充编码数据的待传输数据),因此可以在提高纠错能力的情况下,保证传输带宽不变。此外,本发明实施例只进行了一次BCH编码,算法简单,因此处理时延时较短、实现代价较低。综上所述,本发明实施例的纠错能力强、处理时延短、实现代价低,可以满足需要高速传输的数据帧的要求。另外,本发明实施例采用了块交织与比特交织相结合,对第i-1~i-h行编码后的待传输数据进行交织处理,可以进一步提高纠错能力。最后,由于本发明实施例在BCH码的生成多项式中添加了CRC校验式,所以在译码时,可以通过该CRC校验式来检验纠错的可靠性,从而进一步提高纠错的可靠性。
实施例七
参见图12,本发明实施例七提供了一种前向纠错译码装置,适用于实现实施例三提供的前向纠错译码方法,该装置包括:
接收模块701,用于接收第i行传输数据,第i行传输数据的数据结构包括有效净荷部分和开销部分,第i行传输数据的开销部分填充有编码数据,其中,i为任意值;
交织模块702,用于对第i-1~i-h行传输数据进行交织处理,得到第i行交织数据,其中,h≥2且h为整数;
合并模块703:用于将接收模块701接收的第i行传输数据与交织模块702得到的第i行交织数据拼接合并,得到第i行待译码数据。
译码模块704,用于对合并模块703得到的第i行待译码数据进行BCH译码。
本发明实施例通过对第i-1~i-h行编码后的待传输数据进行交织处理,得到第i行交织数据,并对第i行待传输数据与第i行交织数据合并后的第i行待编码数据进行BCH编码,与现有技术中仅对待传输数据进行BCH编码相比,码长增大了一倍,由于BCH编码中,码长越长,纠错能力越长,因此,对合并后得到的第i行待编码数据进行BCH编码,可以有效提高编码增益,降低错误平层,从而提高FEC的纠错能力,进而提高传输距离。同时,由于第i行待编码数据由第i行交织数据和第i行待传输数据合并而成,使得编码数据可以同时指示待传输数据和交织数据中的误码位置,在译码时,对同一行数据来说,误码位置可以从待传输数据和交织数据两处得到,进一步提高了FEC的净编码增益和纠错能力。并且,由于在BCH编码完成后,仅发送编码后的待传输数据(填充编码数据的待传输数据),因此可以在提高纠错能力的情况下,保证传输带宽不变。此外,本发明实施例只进行了一次BCH编码,算法简单,因此处理时延时较短、实现代价较低。综上所述,本发明实施例的纠错能力强、处理时延短、实现代价低,可以满足需要高速传输的数据帧的要求。
实施例八
参见图13,本发明实施例八提供了一种前向纠错译码装置,该装置适用于实现实施例四提供的前向纠错译码方法,该装置包括:
接收模块801,用于接收第i行传输数据,第i行传输数据的数据结构包括有效净荷部分和开销部分,第i行传输数据的开销部分填充有编码数据,其中,i为任意值;
交织模块802,用于对第i-1~i-h行传输数据进行交织处理,得到第i行交织数据,其中,h≥2且h为整数;
合并模块803,用于将接收模块801接收的第i行传输数据与交织模块802得到的第i行交织数据拼接合并,得到第i行待译码数据。
译码模块804,用于对合并模块803得到的第i行待译码数据进行BCH译码。
其中,交织模块802包括:
块交织单元,用于对第i-1~i-h行传输数据进行块交织,得到第i行块交织数据。
具体地,块交织单元用于,
将第i-1~i-h行传输数据分别平均分成x个数据块,x=K×h,其中,K为正整数;
选取第i-j行编码后的待传输数据的第(k-1)h+j个数据块,作为第i行块交织数据的第(h-j)K+k个数据块,其中,j∈{a,1≤a≤h且a为整数},k∈{a,1≤a≤K且a为整数}。
优选地,交织模块802还包括:
比特交织单元,用于在块交织单元对第i-1~i-h行传输数据进行块交织,得到第i行块交织数据之后,对第i行块交织数据进行比特交织。
具体地,比特交织单元用于,
对第i行块交织数据按码字进行拆分,码字的个数为m;
对码字进行比特交织,以使第s个码字的第p个比特为第i行块交织数据的第p个数据块的第q个比特,其中,p和q满足以下关系式:
其中,s∈{a,1≤a≤m且a为整数},^为二进制异或运算。
其中,译码模块804包括:
拆字单元,用于对第i行待译码数据按码字进行拆分;
伴随式计算单元,用于求拆字单元得到的各个码字的伴随式;
误码位置计算单元,用于根据伴随式计算单元得到的伴随式计算码字中的误码位置,得到码字的误码位置信息;
纠错模块,用于根据误码位置计算单元得到的码字的误码位置信息对该码字进行纠错,当被纠错的码字对应的误码位置出现在第i行待译码数据中的第i行交织数据中时,根据交织对应关系,对第i-1~i-h行待译码数据的码字中与被纠错的比特对应的比特进行纠错,当被纠错的码字对应的误码位置出现在第i行待译码数据中的第i行传输数据中时,根据交织对应关系,获得第i+1~i+h行待译码数据对应的附加误码位置信息,以采用附加误码位置信息更新第i+1~i+h行待译码数据的误码位置信息。
具体地,伴随式计算单元用于,
用M1(x)*M3(x)*M5(x)*…M2*t-1(x)除各个码字,得到与码字对应的余式;
将余式转换到GF(2N)域,得到码字的伴随式S(x);
其中,t为一个码字中可以纠正的比特数,M1(x),M3(x),M5(x),…,M2*t-1(x)分别为以α1,α3,α5,…α2*t-1为根的多项式,α为P(x)的根,P(x)为GF(2N)域上的本原多项式,2N>n。
具体地,纠错单元用于,
将该码字中,与该码字的误码位置信息中表示误码位置的比特对应的比特取反。
另外,译码模块804还用于,
在译码模块804对第i行待译码数据进行BCH译码之后,按照j逐渐增大的方式,依次对第i-j行待译码数据进行BCH译码,其中,j∈{a,1≤a≤N且a为整数},N≥1且N为整数。
具体地,N的取值可以根据实际需要设置。
优选地,该装置还包括:
校验模块805,用于在纠错单元根据码字的误码位置信息对该码字进行纠错之后,在纠错单元对第i-1~i-h行待译码数据的码字中与被纠错的比特对应的比特进行纠错和获得第i+1~i+h行待译码数据对应的附加误码位置信息之前,对纠错后的码字进行CRC校验;若纠错后的码字不能通过CRC校验,则取消对该码字进行的纠错。
具体地,校验模块805包括:
校验值计算单元,用于计算纠错后的码字对应的CRC校验值;
判断单元,用于对校验值计算单元得到的CRC校验值进行判断,若CRC校验值为0,则纠错后的码字通过CRC校验;若CRC校验值不为0,则纠错后的码字不能通过CRC校验。
更具体地,校验值计算单元用于,
将CRC(x)除各个码字,其中CRC(x)为CRC校验式。
本发明实施例通过对第i-1~i-h行编码后的待传输数据进行交织处理,得到第i行交织数据,并对第i行待传输数据与第i行交织数据合并后的第i行待编码数据进行BCH编码,与现有技术中,仅对待传输数据进行BCH编码相比,码长增大了一倍,由于BCH编码中,码长越长,纠错能力越长,因此,对合并后得到的第i行待编码数据进行BCH编码,可以有效提高编码增益,降低错误平层,从而提高FEC的纠错能力,进而提高传输距离。同时,由于第i行待编码数据由第i行交织数据和第i行待传输数据合并而成,使得编码数据可以同时指示待传输数据和交织数据中的误码位置,在译码时,对同一行数据来说,误码位置可以从待传输数据和交织数据两处得到,进一步提高了FEC的净编码增益和纠错能力。并且,由于在BCH编码完成后,仅发送编码后的待传输数据(填充编码数据的待传输数据),因此可以在提高纠错能力的情况下,保证传输带宽不变。此外,本发明实施例只进行了一次BCH编码,算法简单,因此处理时延时较短、实现代价较低。综上所述,本发明实施例的纠错能力强、处理时延短、实现代价低,可以满足需要高速传输的数据帧的要求。另外,本发明实施例采用了块交织与比特交织相结合,对第i-1~i-h行编码后的待传输数据进行交织处理,可以进一步提高纠错能力。最后,由于本发明实施例在BCH码的生成多项式中添加了CRC校验式,所以在译码时,可以通过该CRC校验式来检验纠错的可靠性,从而进一步提高纠错的可靠性。
实施例九
本发明实施例九提供了一种通信设备,该设备包括实施例五或实施例六中提供的编码装置901、和实施例七或实施例八中提供的译码装置902。
本发明实施例通过对第i-1~i-h行编码后的待传输数据进行交织处理,得到第i行交织数据,并对第i行待传输数据与第i行交织数据合并后的第i行待编码数据进行BCH编码,与现有技术中仅对待传输数据进行BCH编码相比,码长增大了一倍,由于BCH编码中,码长越长,纠错能力越长,因此,对合并后得到的第i行待编码数据进行BCH编码,可以有效提高编码增益,降低错误平层,从而提高FEC的纠错能力,进而提高传输距离。同时,由于第i行待编码数据由第i行交织数据和第i行待传输数据合并而成,使得编码数据可以同时指示待传输数据和交织数据中的误码位置,在译码时,对同一行数据来说,误码位置可以从待传输数据和交织数据两处得到,进一步提高了FEC的净编码增益和纠错能力。并且,由于在BCH编码完成后,仅发送编码后的待传输数据(填充编码数据的待传输数据),因此可以在提高纠错能力的情况下,保证传输带宽不变。此外,本发明实施例只进行了一次BCH编码,算法简单,因此处理时延时较短、实现代价较低。综上所述,本发明实施例的纠错能力强、处理时延短、实现代价低,可以满足需要高速传输的数据帧的要求。
实施例十
本发明实施例十提供了一种通信系统,该系统包括至少两个实施例九中提供的通信设备。
本发明实施例通过对第i-1~i-h行编码后的待传输数据进行交织处理,得到第i行交织数据,并对第i行待传输数据与第i行交织数据合并后的第i行待编码数据进行BCH编码,与现有技术中仅对待传输数据进行BCH编码相比,码长增大了一倍,由于BCH编码中,码长越长,纠错能力越长,因此,对合并后得到的第i行待编码数据进行BCH编码,可以有效提高编码增益,降低错误平层,从而提高FEC的纠错能力,进而提高传输距离。同时,由于第i行待编码数据由第i行交织数据和第i行待传输数据合并而成,使得编码数据可以同时指示待传输数据和交织数据中的误码位置,在译码时,对同一行数据来说,误码位置可以从待传输数据和交织数据两处得到,进一步提高了FEC的净编码增益和纠错能力。并且,由于在BCH编码完成后,仅发送编码后的待传输数据(填充编码数据的待传输数据),因此可以在提高纠错能力的情况下,保证传输带宽不变。此外,本发明实施例只进行了一次BCH编码,算法简单,因此处理时延时较短、实现代价较低。综上所述,本发明实施例的纠错能力强、处理时延短、实现代价低,可以满足需要高速传输的数据帧的要求。
需要说明的是:上述实施例提供的一种前向纠错编码、译码装置在前向纠错编码、译码时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的一种前向纠错编码、译码装置和前向纠错编码、译码方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。