CN111628780B - 数据编码、解码方法及数据处理系统 - Google Patents
数据编码、解码方法及数据处理系统 Download PDFInfo
- Publication number
- CN111628780B CN111628780B CN202010375811.5A CN202010375811A CN111628780B CN 111628780 B CN111628780 B CN 111628780B CN 202010375811 A CN202010375811 A CN 202010375811A CN 111628780 B CN111628780 B CN 111628780B
- Authority
- CN
- China
- Prior art keywords
- data
- bch
- crc
- decoding
- code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000012545 processing Methods 0.000 title claims description 14
- 125000004122 cyclic group Chemical group 0.000 claims abstract description 21
- 230000005540 biological transmission Effects 0.000 claims description 8
- 230000000903 blocking effect Effects 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 6
- 238000012937 correction Methods 0.000 abstract description 34
- 238000013461 design Methods 0.000 description 14
- 238000005516 engineering process Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 239000002360 explosive Substances 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- JJWKPURADFRFRB-UHFFFAOYSA-N carbonyl sulfide Chemical compound O=C=S JJWKPURADFRFRB-UHFFFAOYSA-N 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
本发明公开了一种数据编码方法,应用于发送设备包括:将第一待编码数据分为m块第一信息序列,m≥2且为正整数;对m块第一信息序列进行循环冗余码校验CRC编码,生成m块CRC码;将m块CRC码合并为第二待编码数据;对第二待编码数据进行BCH编码,获得BCH码;将BCH码发送至接收设备,以使接收设备对BCH码进行解码,然后将BCH解码数据分块,获得m块第二信息序列,再对m块第二信息序列进行CRC解码;然后根据m个CRC校验结果,确定在BCH解码数据中是否存在错误数据。上述方法实现了在BCH解码阶段通过CRC校验及时检测和判断待BCH解码的数据中的数据错误量是否溢出了BCH码纠错能力,从而确定输出数据的可靠性。
Description
技术领域
本申请涉及通信技术领域,尤其涉及数据编码、解码方法及数据处理系统。
背景技术
随着数字技术的不断发展,目前社会正处于一个大数据的时代,大量数据需要进行可靠的存储和传输,这就需要差错控制编码(ECC)技术的支持,以保证数据在传输和存储过程中较高的正确率。在ECC技术中得到广泛应用的是BCH码,其是在1959年由Bose、Chaudhuri及Hocquenghem各自独立发现的二元线性循环码,它具有多比特纠错能力,其硬件电路实现相对简单;人们可以根据需求的纠错能力,构造具有特定纠错范围的BCH码。除了编码后的信息在传输和存储过程中产生的错误,BCH编码、译码过程本身也存在一定的误码率,对于大数据传输中的ECC系统,BCH码的误码率导致数据出错的次数会随着数据量的增加而显著增多;当数据中的错误数据量超出了该BCH码的纠错能力范围时,经过BCH译码电路译码后的数据可能会出现更多的错误,而此时BCH译码电路本身并没有可以检测出数据的出错量是否溢出纠错范围的情况,且对超出纠错能力的数据无法实现正确纠错。虽然在设计BCH码时,已经综合考虑了纠错能力设计与信息传输效率(码率)、硬件资源占用之间的矛盾,尽可能的确定出最佳的纠错能力设计,但在BCH编码后的数据存储或传输过程中的不确定因素,会导致BCH编码后的数据随机出现大量突发性的软错误,容易超过常用的BCH码的纠错能力设计,导致解码后的数据中存在错误,而在BCH解码过程中并不能检测或确定出这一问题的存在;故而,若继续增加BCH码的纠错能力,则将消耗大量硬件资源;而维持原先纠错能力设计,则可能输出错误数据;而在系统级应用中,错误数据的输出可能会直接导致系统出错,导致事故和经济损失。
发明内容
本发明提供了一种数据编码、解码方法,以解决或者部分解决现有的BCH码无法判断待解码数据中的错误量是否超过了BCH码的纠错能力设计,造成解码后的数据准确度存疑,影响系统稳定的技术问题。
为解决上述技术问题,本发明提供了一种数据编码方法,应用于发送设备,包括:
将第一待编码数据分为m块第一信息序列,m≥2且为正整数;
对m块第一信息序列进行循环冗余码校验CRC编码,生成m块CRC码;将m块CRC码合并为第二待编码数据;
对第二待编码数据进行BCH编码,获得BCH码;
将BCH码发送至接收设备,以使接收设备对BCH码进行解码,获得BCH解码数据;将BCH解码数据分块,获得m块第二信息序列,其中,第二信息序列的信息长度与CRC码的信息长度相同;对m块第二信息序列进行CRC解码,获得m个CRC校验结果和m块CRC解码数据;根据m个CRC校验结果,确定在BCH解码数据中是否存在错误数据。
可选的,第一信息序列的长度范围为128~1024比特。
可选的,对m块第一信息序列进行循环冗余码校验CRC编码,具体包括:
采用m段串行编码或m段并行编码的方式,对m块第一信息序列进行循环冗余码校验CRC编码。
基于前述技术方案相同的发明构思,本发明还提供了一种数据解码方法,应用于接收设备,包括:
接收BCH码;其中,BCH码是在发送设备处将第一待编码数据分为m块第一信息序列,m≥2且为正整数;对m块第一信息序列进行循环冗余码校验CRC编码,生成m块CRC码;将m块CRC码合并为第二待编码数据;对第二待编码数据进行BCH编码后获得;
对BCH码进行解码,获得BCH解码数据;
将BCH解码数据分块,获得m块第二信息序列;其中,第二信息序列的信息长度与CRC码的信息长度相同;
对m块第二信息序列进行CRC解码,获得m个CRC校验结果和m块CRC解码数据;
根据m个CRC校验结果,确定在BCH解码数据中是否存在错误数据。
可选的,根据m个CRC校验结果,确定在BCH解码数据中是否存在错误数据,具体包括:
当m个CRC校验结果中存在一个以上的校验错误结果时,表明BCH解码数据中存在错误数据。
进一步的,方法还包括:
当BCH解码数据中存在错误数据时,重新执行接收BCH码、对BCH码进行解码、将BCH解码数据分块和对m块第二信息序列进行CRC解码的步骤,并再次判断BCH解码数据中是否存在错误数据;
当BCH解码数据中不存在错误数据时,将m块CRC解码数据合并获得第一待编码数据。
基于前述技术方案相同的发明构思,本发明还提供了一种数据处理系统,系统包括:
发送设备,用于将第一待编码数据分为m块第一信息序列,m≥2且为正整数;对m块第一信息序列进行循环冗余码校验CRC编码,生成m块CRC码;将m块CRC码合并为第二待编码数据;对第二待编码数据进行BCH编码,获得BCH码;将BCH码发送至接收设备;
接收设备,用于接收BCH码;将BCH码解码;将BCH解码数据分块,获得m块第二信息序列;其中,第二信息序列的信息长度与CRC码的信息长度相同;对m块第二信息序列进行CRC解码,获得m个CRC校验结果和m块CRC解码数据;根据m个CRC校验结果,确定在BCH解码数据中是否存在错误数据。
进一步的,接收设备具体用于:
当m个CRC校验结果中存在一个以上的校验错误结果时,确定BCH解码数据中存在错误数据;
当BCH解码数据中存在错误数据时,重新执行对BCH码进行接收、解码、将BCH解码数据分块和对m块第二信息序列进行CRC校验的步骤,并再次判断BCH解码数据中是否存在错误数据。
基于前述技术方案相同的发明构思,本发明还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现前述技术方案中的任一项方法的步骤。
基于前述技术方案相同的发明构思,本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述技术方案中的任一项方法的步骤。
通过本发明的一个或者多个技术方案,本发明具有以下有益效果或者优点:
本发明提供了一种数据编码方法,通过对待编码的数据分块后,先CRC编码再BCH编码,以增加很小的编译码复杂度和电路成本,使数据在解码阶段能够通过CRC校验及时检测BCH解码后的数据中是否含有错误数据,从而进一步确定待BCH解码的数据中的数据错误量是否溢出了BCH码纠错能力,以保证输出数据的可靠性和系统的稳定性。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的数据编码方法的流程示意图;
图2示出了根据本发明一个实施例的数据编码过程原理图;
图3示出了根据本发明一个实施例的数据解码方法的流程示意图;
图4示出了根据本发明一个实施例的数据解码过程原理图。
具体实施方式
为了使本申请所属技术领域中的技术人员更清楚地理解本申请,下面结合附图,通过具体实施例对本申请技术方案作详细描述。在整个说明书中,除非另有特别说明,本文使用的术语应理解为如本领域中通常所使用的含义。因此,除非另有定义,本文使用的所有技术和科学术语具有与本发明所属领域技术人员的一般理解相同的含义。若存在矛盾,本说明书优先。除非另有特别说明,本发明中用到的各种设备等,均可通过市场购买得到或者可通过现有方法制备得到。
传统的BCH编码解码方案,需要保证数据出错量在BCH码的设计纠错能力范围内,对于出错量超出BCH纠错能力的数据,无法保证数据的正确性,并且BCH解码时也无法检测和判断数据的出错量是否溢出了纠错范围。另外在航天领域,由于空间环境更加错综复杂,如磁场、高能粒子、宇宙射线等,不仅会显著增加数据的出错量,还存在数据错误波动无规律、随机突发大量数据软错误的情况,表现在某一时刻下数据中的误码率急剧增加,因此无法通过设计一套“最佳”纠错能力的BCH编码方法,以适应复杂多变的航天空间数据通信。
为了解决这个问题,本申请提出了一种结合循环冗余校验(Cyclic RedundancyCheck,CRC)的BCH编码方案,CRC码性能优良且易于实现,码率和实现代价都较小,是一种通用的检错编码方案。但是CRC只能检验数据是否出错,不能定位并纠正错误,因此单独使用CRC码无法降低误码率。故而,在一个可选的实施例中,将BCH码与CRC码结合,提出了一种新的数据编码方法,其整体思路如下:
一种数据编码方法,应用于发送设备,如图1~图2所示,包括如下步骤:
S1:将第一待编码数据分为m块第一信息序列,m≥2且为正整数;
为了实现BCH、CRC等差错控制编码,通常在发送设备端中增加ECC系统,主要包括相应的编码器,在第一待编码数据中加入一定量的校验/监督码元,然后在接收设备端对校验码元进行校验。第一待编码数据是信源编码器将信号源发出的各种类型的信源数据(如文字、图像等)转换为二进制或其它多进制形式的信息序列。目前随着数据量的爆发式增长,信息序列的长度急剧增大。为了提高后续解码的效率和校验数据的准确性,首先将第一待编码数据分块。可选的,每块第一信息序列的信息元位数k1相同,即分块后的信息序列具有相同的长度。
S2:对m块第一信息序列进行循环冗余码校验CRC编码,生成m块CRC码;将m块CRC码合并为第二待编码数据;
具体的,在本步骤中对每块第一信息序列进行CRC编码,获得相应的CRC分块码。以二进制信息序列为例,一种在发送设备端的CRC的编码过程可以是:
确定一个r1+1位标准除数,然后在每块第一信息序列的k1位信息元后,使用标准除数以一定的规则生成一个校验用的r1位监督码(CRC校验元);例如,在要发送的数据(k1位)后面加上r1位0,然后将这个新数(k1+r1位)以模2除法的方式除以前述的标准除数,所得到的r1位余数即为CRC校验码;将CRC校验码附在第一信息序列之后,构成了一个新的二进制信息序列,即CRC码,每块CRC码包括k1位信息元和r1位CRC校验元。
可选的,采用m段串行编码或m段并行编码的方式,对m块第一信息序列进行CRC编码,以提高CRC编码的效率。
接下来可以按分块的顺序,将m块CRC码合并成一个完整的信息序列,其总长度k2=m(k1+r1),用来作为BCH编码的输入信息序列,即第二待编码数据。
S3:对第二待编码数据进行BCH编码,获得BCH码;
具体的,本步骤将包括m块CRC编码的信息序列作为整体,进行BCH编码,其编码的主要原理如下:
BCH码是可以纠正多个随机错误的循环码,由于循环码是模xn-1剩余代数中的一个以g(x)作生成元的理想,每一个码多项式都是g(x)的倍式,因此可以用生成多项式g(x)的根描述:
给定任意一个有限域GF(q)及其扩展域GF(qm),其中q是素数或素数的幂,m为正整数。若码元取自扩展域GF(q)上的一循环码,它的生成多项式g(x)的根基合R中含有δ-1个连续的根:
{αm0,αm0+1,…,αm0,αm0+δ-2}∈R;
则由生成多项式g(x)生成的循环码称为q进制的BCH码。
设mi(x)和ei分别是αm0+i(i=0,1,…,δ-2)元素的最小多项式和级,则BCH码的生成多项式和码长分别是:
g(x)=LCM[m0(x),m1(x),…,mδ-2(x)];
n=LCM(e0,e0,…,eδ-2);
其中,LCM为最小公倍式,若g(x)的根中有一个GF(qm)的本原域元素,则码长n=qm-1,称为本原BCH码,否则称为非本原BCH码。
以实际中应用最多的码元取自GF(2)中的二进制BCH码为例,根据定义,对任意一个正整数m,一定可以构建出以下的二进制码:
取m0=1,δ=2t+1,又设α是GF(2m)的本原域元素,则根据BCH码的定义,若以α,α2,…,α2t为根,则二进制BCH码的生成多项式为
g(x)=LCM[m1(x),m2(x),…,m2t(x)]
mi(x)是αi(1≤i≤2t)的最小多项式,该BCH码一定能纠正t个错误。
由于在特征为2的GF(2m)域上,α2i的最小多项式与αi的相同,所以生成多项式可以写成:
g(x)=m1(x)m3(x)…m2t-1(x)
因此,构建的二进制BCH码以α,α3,α5,…,α2t-1为根,码长:n=LCM(e1,e3,…,e2t-1);
码的校验矩阵H:
由g(x)生成的BCH码的最小码距d≥d0=2t+1,d0为设计码距,它可以纠正t个随机独立差错。BCH码可以记为[n,k,d],其中,n为码长,k为BCH码的信息元长度,即有效信息位的长度;n-k为BCH码的校验位长度;k/n为编码效率(码率)。
根据生成多项式,即可构建相应的BCH编码器进行编码。编码后获得的BCH码,其BCH的数据位长度k2=m(k1+r1);BCH校验位长度r2=n-k2。
S4:将BCH码发送至接收设备,以使接收设备对BCH码进行解码,获得BCH解码数据;将BCH解码数据分块,获得m块第二信息序列,其中,第二信息序列的信息长度与CRC码的信息长度相同;对m块第二信息序列进行CRC解码,获得m个CRC校验结果和m块CRC解码数据;根据m个CRC校验结果,确定在BCH解码数据中是否存在错误数据。
即,编码完成后,将BCH码发送至接收设备端,接收设备端处的ECC系统将对BCH码进行译码并进行校验,判断BCH解码后的数据中是否存在错误。
在本实施例中,数据的编码可以使用CRC编码器和BCH编码器实现;其中,信息序列分块的功能可以在CRC编码器中实现,而信息序列合并的功能既可以在CRC编码器中实现,也可以在后续的BCH编码器中实现。另一方面,在编码时BCH还可以采用BCH缩短码的形式实现。
本实施例提供了一种应用于数据发送设备的基于BCH与CRC的二级编码方法,首先将待编码的数据(或信息序列)分块,先进行CRC编码,然后再将全部分块的CRC码合并,作为新的待编码数据进行BCH编码;由于采用了先CRC编码再BCH编码的二级编码方案,故而在解码时,首先需要通过BCH解码,在解码过程中将纠正BCH编码中的错误数据,接着再按照与每块CRC码相同的信息长度对BCH解码后的信息序列分块,再对分块后的信息序列进行CRC校验/解码,根据校验结果,即可确定BCH解码后的信息中是否存在错误数据,从而可以进一步判断出在BCH解码前,接收到的数据中的错误数据量是否超过了BCH码的设计纠错能力,因为只有当接收到的BCH编码数据中的错误数据量超过了BCH码的设计纠错能力,才会在BCH解码后的数据中发现错误数据。总的来说,上述方案通过分块后先CRC编码再BCH编码,以增加很小的编译码复杂度和电路成本,使数据在解码阶段能够通过CRC校验及时检测BCH解码后的数据中是否含有错误数据,从而进一步确定待BCH解码的数据中的数据错误量是否溢出了BCH码纠错能力,以保证输出数据的可靠性和系统的稳定性。上述方案尤其适用于在复杂多变的空间环境下的通信场景。
另一方面,本实施例提供的方案,在进行CRC编码前需要先进行分块,是因为:在大数据时代,数据量呈现爆发式增长,为了提高数据处理效率,每一组需要进行BCH编码的原始信息序列也随之显著增长,而CRC码的信息元k越长,需要保证良好的校验准确性的CRC校验位随之增加,从而传输过程中CRC校验位的信息出错的概率增加,若CRC校验位信息出错,且经过BCH解码后校验位信息仍然错误,则无法实现正确的CRC码检错功能。而通过分块可以良好的解决这个问题,可选的,第一信息序列的长度的取值范围为128~1024,即分块后进行CRC编码的信息元长度为128~1024比特,校验位r的长度可选为1~2比特。
基于前述实施例相同的发明构思,在另一个可选的实施例中,如图3~图4所示,提供了一种数据解码方法,应用于接收设备,包括如下步骤:
S5:接收BCH码;其中,BCH码是在发送设备处将第一待编码数据分为m块第一信息序列,m≥2且为正整数;对m块第一信息序列进行循环冗余码校验CRC编码,生成m块CRC码;将m块CRC码合并为第二待编码数据;对第二待编码数据进行BCH编码后获得;
同理,在接收设备端中增加ECC系统,主要包括相应的译码器,对BCH码数据进行解码,具体如下:
S6:对BCH码进行解码,获得BCH解码数据;
BCH码的解码(或译码)与线性码的解码步骤相同可分为3步:
(1)接收到的R(x)计算出伴随式S;
(2)由伴随式找出错误图样E(x);
(3)由R(x)-E(x)得到最可能发送的码字C(x),完成解码。
其中,对于GF(q)上的[n,k,d]BCH码,它的生成多项式为g(x)。发送设备端发送的码字C(x)=q(x)g(x),接收的n重为R(x)=C(x)+E(x),错误图样为E(x);
由伴随式的定义可知:
ST=H·RT=H·ET;H为BCH码的校验矩阵。
S7:将BCH解码数据分块,获得m块第二信息序列;其中,第二信息序列的信息长度与CRC码的信息长度相同;
具体的,根据在发送设备端处采用的相同分块长度,将BCH解码后的信息分为m块,保证分块后的第二信息序列的结构与发送设备端处的CRC码相同,即每块第二信息序列包括k1位信息元和r1位CRC校验元。
S8:对m块第二信息序列进行CRC解码,获得m个CRC校验结果和m块CRC解码数据;
CRC解码的过程包括CRC校验,利用发送设备端在生成CRC校验元的标准除数在接收设备端进行CRC校验。例如,对于二进制编码,可以将每一块第二信息序列以模2除法计算此选定的标准除数,若余数为0,则说明接收到的信息序列正确,获得校验正确结果;若除数不为0,则说明接收到的信息序列错误与发送的信息序列不同,则获得校验错误结果。
同时,CRC解码过程还包括m块第二信息序列中的有效数据的合并,成为一个完整的数据序列,有效数据即为k1位信息元;若CRC校验结果全部正确,则合并后的有效数据序列与第一待编码数据相同,否则不同。合并数据后,可视情况将数据发送至下级处理装置,如信源译码器。
S9:根据m个CRC校验结果,确定在BCH解码数据中是否存在错误数据。
可选的,根据m个CRC校验结果,确定在BCH解码数据中是否存在错误数据,具体包括:当m个CRC校验结果中存在一个以上的校验错误结果时,表明BCH解码数据中存在错误数据。
即,通过检测CRC校验结果中的错误结果数量,即可得知BCH解码后的数据出错数量,还可以确定出具体是哪一分块的数据出错,有助于定位数据错误位置。
在本实施例中,数据的解码可以使用CRC译码器和BCH译码器实现;其中,信息序列合并的功能可以在CRC译码器中实现,而信息序列分块的功能可以在CRC译码器中实现,也可以在BCH译码器中实现。根据CRC校验结果判断数据是否存在错误的功能可以通过ECC控制器实现。
在进行CRC解码时,可采用m段串行解码方式或m段数据并行同步解码方式,可根据具体系统需求确定采用哪一种解码方式,提高CRC解码的效率。
本实施例提供了一种数据解码方法,在接收到发送设备端先分块、然后CRC编码再BCH编码的数据时,首先通过BCH解码,在解码过程中将纠正BCH编码中的错误数据,接着再按照与发送设备端每块CRC码相同的信息长度对BCH解码后的信息序列分为m块,以保证在CRC解码时不会出错,然后根据CRC解码后获得的CRC校验结果,即可确定BCH解码后的信息中是否存在错误数据,从而可以进一步判断出在BCH解码前,接收到的数据中的错误数据量是否超过了BCH码的设计纠错能力,因为只有当接收到的BCH编码数据中的错误数据量超过了BCH码的设计纠错能力,才会在BCH解码后的数据中发现错误数据。
总的来说,上述方案通过先BCH解码、分块后再CRC解码,使数据在解码阶段能够通过CRC校验及时检测和判断待BCH解码的数据中的数据错误量是否溢出了BCH码纠错能力,从而进一步确定BCH解码后的数据中是否含有错误数据,以保证输出数据的可靠性和系统的稳定性。上述方案尤其适用于在复杂多变的空间环境下的通信场景。
在通过CRC解码发现BCH解码数据中存在错误后,应当采取相应的措施,避免将错误数据发送到下级处理设备,如信源译码器。因此,基于前述实施例相同的发明构思,在又一个可选的实施例中,还包括:
当BCH解码数据中存在错误数据时,重新执行接收BCH码、对BCH码进行解码、将BCH解码数据分块和对m块第二信息序列进行CRC解码的步骤,并再次判断BCH解码数据中是否存在错误数据;
当BCH解码数据中不存在错误数据时,将m块CRC解码数据合并获得第一待编码数据。
即,若经过CRC校验结果发现经BCH解码纠错后的数据中仍然存在错误数据,则重新从发送设备端处接收BCH码进行解码和CRC校验,若此时CRC校验结果为数据正确结果,再将数据合并后发往下一处理装置,如信源译码器。这里的第一待编码数据即表示CRC校验数据正确,与发送设备端分块前的待编码数据相一致的解码后的数据。
此处重读数据重新解码,是由于:在一些特殊环境或特殊情况下,编码后的数据在存储或传输过程中随机出现的突发性的大量数据软错误,此类错误无明显规律,且容易超出常用的BCH纠错能力设计,使BCH解码器无法正确纠错;若仅因为此继续增加BCH解码器的纠错能力,则会消耗大量的硬件资源。而根据上述方案,当从校验结果中检验到一个以上的错误时,则重新对接收到BCH码进行解码、分块、CRC校验,直至结果显示所有的CRC校验结果均正确为止。
之所以重读数据并进行解码,是由于在当前时刻可能已经不再存在会导致突发性数据错误的内外因素,待解码的BCH码中的错误数据量没有超过BCH解码器的纠错能力,可以正常的通过BCH解码纠错,从而在节省了硬件资源消耗、保证信息传输效率的同时,可以显著降低由于突发性的出错量溢出导致的ECC系统将错误数据当成正确数据进行处理的情况,从而提高了数据可靠性。
但在一些情况下,重读并BCH解码数据多次,依然在解码后的数据中校验出错误,说明导致数据突发大量错误的因素仍然存在,而无限制的重读显然也是不可取的。故而,可选的,在连续重新执行接收BCH码、对BCH码进行解码、将BCH解码数据分块和对m块第二信息序列进行CRC解码的步骤n次之后,判断BCH解码数据中仍然存在错误数据时,执行如下步骤中的其中一种:
将m块CRC解码数据合并为第三信息序列后发出;
将BCH码发出;
删除m块CRC解码数据,发出CRC校验错误信号。
其中,n≥2且为正整数,优选重读次数n值可以是3~8次,既可以避免突发因素的影响,且不至于增加太多的重读-译码的硬件资源占用。
具体的,可将数据发送至下级装置进行处理,下级装置可以是信源译码器,将二进制的信息序列转成实际的文字、图像数据。第一种方案是将经过纠错后的数据发送至下级装置处理;第二种方案时将未经纠错的原始数据发送至下级装置处理;第三种方案是不发送数据,只发送校验失败信号,交给下级装置判断是继续解码下一组数据,还是选择发送第一种方案或第二种方案中的数据。
基于前述实施例相同的发明构思,在又一个可选的实施例中,提供了一种数据处理系统,包括:
发送设备,用于将第一待编码数据分为m块第一信息序列,m≥2且为正整数;对m块第一信息序列进行循环冗余码校验CRC编码,生成m块CRC码;将m块CRC码合并为第二待编码数据;对第二待编码数据进行BCH编码,获得BCH码;将BCH码发送至接收设备;
接收设备,用于接收BCH码;将BCH码解码;将BCH解码数据分块,获得m块第二信息序列;其中,第二信息序列的信息长度与CRC码的信息长度相同;对m块第二信息序列进行CRC解码,获得m个CRC校验结果和m块CRC解码数据;根据m个CRC校验结果,确定在BCH解码数据中是否存在错误数据。
本实施例提供的数据处理系统,即使用ECC技术的数据处理系统,通过在发送设备端先将待编码的数据(或信息序列)分块,然后进行CRC编码,再将全部分块的CRC码合并,作为新的待编码数据进行BCH编码;在接收设备端先通过BCH解码,在解码过程中将纠正BCH编码中的错误数据,接着再按照与发送设备端每块CRC码相同的信息长度对BCH解码后的信息序列分为m块,以保证在CRC解码时不会出错,然后根据CRC解码后获得的CRC校验结果,即可确定BCH解码后的信息中是否存在错误数据,从而可以进一步判断出在BCH解码前,接收到的数据中的错误数据量是否超过了BCH码的设计纠错能力,因为只有当接收到的BCH编码数据中的错误数据量超过了BCH码的设计纠错能力,才会在BCH解码后的数据中发现错误数据。从而进一步确定BCH解码后的数据中是否含有错误数据,以保证输出数据的可靠性和系统的稳定性。
进一步的,接收设备具体用于:当m个CRC校验结果中存在一个以上的校验错误结果时,确定BCH解码数据中存在错误数据;
当BCH解码数据中存在错误数据时,重新执行对BCH码进行接收、解码、将BCH解码数据分块和对m块第二信息序列进行CRC校验的步骤,并再次判断BCH解码数据中是否存在错误数据。
基于前述实施例相同的发明构思,在又一个可选的实施例中,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现前述实施例中任一项方法的步骤。
基于前述实施例相同的发明构思,在又一个可选的实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述实施例中任一项方法的步骤。
通过本发明的一个或者多个实施例,本发明具有以下有益效果或者优点:
本发明提供了一种数据编码方法,通过对待编码的数据分块后,先CRC编码再BCH编码,以增加很小的编译码复杂度和电路成本,使数据在解码阶段能够通过CRC校验及时检测BCH解码后的数据中是否含有错误数据,从而进一步确定待BCH解码的数据中的数据错误量是否溢出了BCH码纠错能力,以保证输出数据的可靠性和系统的稳定性。
尽管已描述了本申请的优选实施例,但本领域内的普通技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种数据编码方法,应用于发送设备,其特征在于,所述方法包括:
将第一待编码数据分为m块第一信息序列,每块所述第一信息序列的信息元位数相同,m≥2且为正整数;
对所述m块第一信息序列进行循环冗余码校验CRC编码,生成m块CRC码;将所述m块CRC码合并为第二待编码数据;
对所述第二待编码数据进行BCH编码,获得BCH码;
将所述BCH码发送至接收设备,以使所述接收设备对所述BCH码进行解码,获得BCH解码数据;将所述BCH解码数据分块,获得m块第二信息序列,其中,所述第二信息序列的信息长度与所述CRC码的信息长度相同;对所述m块第二信息序列进行CRC解码,获得m个CRC校验结果和m块CRC解码数据;根据所述m个CRC校验结果,确定在所述BCH解码数据中是否存在错误数据。
2.如权利要求1所述的方法,其特征在于,所述第一信息序列的长度范围为128~1024比特。
3.如权利要求1所述的方法,其特征在于,所述对所述m块第一信息序列进行循环冗余码校验CRC编码,具体包括:
采用m段串行编码或m段并行编码的方式,对所述m块第一信息序列进行循环冗余码校验CRC编码。
4.一种数据解码方法,应用于接收设备,其特征在于,所述方法包括:
接收BCH码;其中,所述BCH码是在发送设备处将第一待编码数据分为m块第一信息序列,每块所述第一信息序列的信息元位数相同,m≥2且为正整数;对所述m块第一信息序列进行循环冗余码校验CRC编码,生成m块CRC码;将所述m块CRC码合并为第二待编码数据;对所述第二待编码数据进行BCH编码后获得;
对所述BCH码进行解码,获得BCH解码数据;
将所述BCH解码数据分块,获得m块第二信息序列;其中,所述第二信息序列的信息长度与所述CRC码的信息长度相同;
对所述m块第二信息序列进行CRC解码,获得m个CRC校验结果和m块CRC解码数据;
根据所述m个CRC校验结果,确定在所述BCH解码数据中是否存在错误数据。
5.如权利要求4所述的方法,其特征在于,所述根据所述m个CRC校验结果,确定在所述BCH解码数据中是否存在错误数据,具体包括:
当所述m个CRC校验结果中存在一个以上的校验错误结果时,表明所述BCH解码数据中存在错误数据。
6.如权利要求5所述的方法,其特征在于,所述方法还包括:
当所述BCH解码数据中存在错误数据时,重新执行所述接收BCH码、所述对所述BCH码进行解码、所述将所述BCH解码数据分块和所述对所述m块第二信息序列进行CRC解码的步骤,并再次判断所述BCH解码数据中是否存在错误数据;
当所述BCH解码数据中不存在错误数据时,将所述m块CRC解码数据合并获得所述第一待编码数据。
7.一种数据处理系统,其特征在于,所述系统包括:
发送设备,用于将第一待编码数据分为m块第一信息序列,每块所述第一信息序列的信息元位数相同,m≥2且为正整数;对所述m块第一信息序列进行循环冗余码校验CRC编码,生成m块CRC码;将所述m块CRC码合并为第二待编码数据;对所述第二待编码数据进行BCH编码,获得BCH码;将所述BCH码发送至接收设备;
所述接收设备,用于接收所述BCH码;将所述BCH码解码;将所述BCH解码数据分块,获得m块第二信息序列;其中,所述第二信息序列的信息长度与所述CRC码的信息长度相同;对所述m块第二信息序列进行CRC解码,获得m个CRC校验结果和m块CRC解码数据;根据所述m个CRC校验结果,确定在所述BCH解码数据中是否存在错误数据。
8.如权利要求7所述的系统,其特征在于,所述接收设备,具体用于:
当所述m个CRC校验结果中存在一个以上的校验错误结果时,确定所述BCH解码数据中存在错误数据;
当所述BCH解码数据中存在错误数据时,重新执行对所述BCH码进行接收、解码、将所述BCH解码数据分块和对所述m块第二信息序列进行CRC校验的步骤,并再次判断所述BCH解码数据中是否存在错误数据。
9.一种电子设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1~3、4~6中任一项所述方法的步骤。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,该程序被处理器执行时实现权利要求1~3、4~6中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010375811.5A CN111628780B (zh) | 2020-05-07 | 2020-05-07 | 数据编码、解码方法及数据处理系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010375811.5A CN111628780B (zh) | 2020-05-07 | 2020-05-07 | 数据编码、解码方法及数据处理系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111628780A CN111628780A (zh) | 2020-09-04 |
CN111628780B true CN111628780B (zh) | 2023-04-25 |
Family
ID=72258935
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010375811.5A Active CN111628780B (zh) | 2020-05-07 | 2020-05-07 | 数据编码、解码方法及数据处理系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111628780B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116346278A (zh) * | 2021-12-22 | 2023-06-27 | 华为技术有限公司 | 发送方法、接收方法、装置、系统、设备及存储介质 |
CN114696953B (zh) * | 2022-03-01 | 2023-12-12 | 重庆理工大学 | 一种自由空间光通信的信道编码和译码方法 |
CN116996169A (zh) * | 2022-04-22 | 2023-11-03 | 华为技术有限公司 | 一种信息传输方法和装置 |
CN115037415B (zh) * | 2022-05-31 | 2024-02-09 | 江苏屹信航天科技有限公司 | 基于crc的纠错编码的方法、装置、终端 |
CN115037414B (zh) * | 2022-05-31 | 2023-12-22 | 江苏屹信航天科技有限公司 | 基于crc的纠错解码的方法、装置、终端 |
CN115173995A (zh) * | 2022-07-01 | 2022-10-11 | 华北电力大学 | 一种基于crc和bch编码的重型燃气轮机控制系统数据容错方法 |
CN115208516A (zh) * | 2022-07-11 | 2022-10-18 | 上海恩阶电子科技有限公司 | 一种基于crc校验码的数据存储及校验方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1214828A (zh) * | 1996-04-01 | 1999-04-21 | 艾利森公司 | 在自动重复请求系统中恢复数据的方法和设备 |
CN101552659A (zh) * | 2008-04-01 | 2009-10-07 | 普天信息技术研究院有限公司 | 一种选择型数据重传的方法和设备 |
CN104518847A (zh) * | 2013-09-29 | 2015-04-15 | 中国科学院上海高等研究院 | 基于bch码与短ldpc码级联的信令编码方法及系统 |
CN104618072A (zh) * | 2015-02-16 | 2015-05-13 | 中国科学院上海高等研究院 | Ngb-w系统中逻辑帧信令信道的编码与调制方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8522121B2 (en) * | 2010-02-19 | 2013-08-27 | Broadcom Corporation | Low complexity error correction using cyclic redundancy check (CRC) |
US11101925B2 (en) * | 2017-12-14 | 2021-08-24 | Intel Corporation | Decomposable forward error correction |
-
2020
- 2020-05-07 CN CN202010375811.5A patent/CN111628780B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1214828A (zh) * | 1996-04-01 | 1999-04-21 | 艾利森公司 | 在自动重复请求系统中恢复数据的方法和设备 |
CN101552659A (zh) * | 2008-04-01 | 2009-10-07 | 普天信息技术研究院有限公司 | 一种选择型数据重传的方法和设备 |
CN104518847A (zh) * | 2013-09-29 | 2015-04-15 | 中国科学院上海高等研究院 | 基于bch码与短ldpc码级联的信令编码方法及系统 |
CN104618072A (zh) * | 2015-02-16 | 2015-05-13 | 中国科学院上海高等研究院 | Ngb-w系统中逻辑帧信令信道的编码与调制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111628780A (zh) | 2020-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111628780B (zh) | 数据编码、解码方法及数据处理系统 | |
CN111597072B (zh) | 差错控制编码ecc系统及包括ecc系统的存储器设备 | |
US10243589B2 (en) | Multi-bit error correction method and apparatus based on a BCH code and memory system | |
US7171591B2 (en) | Method and apparatus for encoding special uncorrectable errors in an error correction code | |
JPS6346615B2 (zh) | ||
CN101459431B (zh) | 一种信道纠错码bch码和rs码的译码方法 | |
US8806295B2 (en) | Mis-correction and no-correction rates for error control | |
JPH0812612B2 (ja) | 誤り訂正方法及び装置 | |
US8694872B2 (en) | Extended bidirectional hamming code for double-error correction and triple-error detection | |
US20100299575A1 (en) | Method and system for detection and correction of phased-burst errors, erasures, symbol errors, and bit errors in a received symbol string | |
US8032812B1 (en) | Error correction decoding methods and apparatus | |
US20050149834A1 (en) | (18, 9) Error correction code for double error correction and triple error detection | |
US11119847B2 (en) | System and method for improving efficiency and reducing system resource consumption in a data integrity check | |
US10236913B2 (en) | Error checking and correcting decoder | |
US20110083062A1 (en) | Method for Encoding and/or Decoding Multimensional and a System Comprising Such Method | |
WO2011000176A1 (zh) | 错误修正码的编码及解码方法以及编码解码器 | |
CN110492889B (zh) | 检测纠正两位错误的编码解码方法、编码解码器及处理器 | |
CN103631669B (zh) | 一种纠错sram的回写方法 | |
CN111752747A (zh) | 一种增强检错能力的内存安全校验方法 | |
JPH0442854B2 (zh) | ||
Dugar et al. | A survey on Hamming codes for error detection | |
US12088322B2 (en) | Method and system for on-ASIC error control decoding | |
US20240419541A1 (en) | Low Complexity System and Method for Detection and Correction of Data with additional Metadata from Corruption | |
US20240348267A1 (en) | Devices, systems, and methods for encoding and decoding codewords | |
Faraj | ’Design Error Detection and Correction System based on Reed_Muller Matrix for Memory Protection’ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |