CN101459431B - 一种信道纠错码bch码和rs码的译码方法 - Google Patents
一种信道纠错码bch码和rs码的译码方法 Download PDFInfo
- Publication number
- CN101459431B CN101459431B CN2008102411188A CN200810241118A CN101459431B CN 101459431 B CN101459431 B CN 101459431B CN 2008102411188 A CN2008102411188 A CN 2008102411188A CN 200810241118 A CN200810241118 A CN 200810241118A CN 101459431 B CN101459431 B CN 101459431B
- Authority
- CN
- China
- Prior art keywords
- centerdot
- error
- polynomial
- code
- obtains
- 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 15
- 238000012937 correction Methods 0.000 claims description 12
- 238000004891 communication Methods 0.000 abstract description 8
- 230000005540 biological transmission Effects 0.000 description 6
- 238000012360 testing method Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 5
- 230000003139 buffering effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Landscapes
- Error Detection And Correction (AREA)
Abstract
本发明公开了一种信道纠错码BCH码和RS码的译码方法,属于数字通信领域。该方法包括:由接收到的码字R(x)计算伴随多项式S(x);利用Euclid算法,求解Berlekamp关键方程,得到错误位置多项式σ(x);若错误位置多项式σ(x)中的常数项σ0为0,则可以正确译码;若错误位置多项式σ(x)中的常数项σ0不为0,利用Chien搜索计算错误位置和对应的错误值;如搜出的错误位置的个数等于其最大纠错能力,则可以正确译码,否则,发出接收信号错误个数超出最大纠错能力的报警指示信号并将接收码字原样输出。本发明避免了接收码字错误个数超出信道纠错码最大纠错能力时,出现“越纠越错”的情况,从而降低了整个通信系统的误码率。
Description
技术领域
本发明是关于数字通信领域中的信道纠错码技术,具体涉及BCH(Bose ChaudhuriHocquenghem)码和RS(Reed-Solomon)码的译码方法。
背景技术
在数字通信系统中,实际信道上传输数字信号时,由于信道传输特性的不理想和加性噪声的干扰,所收到的数字信号不可避免地会发生错误。信道纠错码正是为提高传输质量,保证信息传输的可靠性而设计的一种编码译码方式。它的基本做法是在发送端被传输的信息序列上附加一些校验位,这些多余的校验位与信息位之间通过某种确定的规则相互关联。接收端按照既定的规则检验信息位和校验位之间的关系,一旦传输过程中发生差错,则信息位与校验位之间的约束关系遭到破坏,从而可以发现错误乃至纠正错误。
按照信息位和校验位之间的约束方式不同,信道编码又可以分为分组码和非分组码(卷积码)。BCH码是线性分组码中应用最为普遍的一类二进制码,RS码是纠错能力更强的非二进制BCH码。它们的编译码原理类似,并且都是在伽罗华域上进行运算的。人们可以根据所要求的纠错能力,很容易地构造出一个适合的BCH码或RS码。由于BCH码、RS码具有纠错能力强、编码简单、译码也较易实现等一系列优点,因而被广泛采用。
一般情况下,BCH码或者RS码都有“最大纠错能力”这个参数指标。以RS码为例,假设某RS码的最大纠错能力是t个符号,那么等在信道中发生的错误小于或等于t个符号的情况下,通信系统接收端的RS译码器才能纠正全部错误符号,最终得到正确信息;而当信道中发生的错误大于t个符号时,RS译码器不但不能纠正错误比特,还会导致原先正确的比特出错。BCH码也类似,只是传输的数据以比特为单位,而不是以符号为单位,相当于将RS码中的1个符号看成只包含1比特。
目前,根据通信系统需要所设计出的RS或者BCH码的纠错能力在大多情况下都能满足系统纠错的要求。但由于通信系统中信道的不确定性,极少数情况下也会出现信道产生的错误超出了纠错码最大纠错能力。在这种情况下仍然采用系统中原有的译码方法,有可能会导致译出的码字比接收到的码字错误还多,使得情况进一步恶化,系统的误码率较高。
发明内容
本发明的目的是提供了一种在信道纠错码BCH/RS码译码中,能够检测出错误码字个数超出最大纠错能力的方法。
本发明的技术方案是:
一种信道纠错码BCH码的译码方法,其步骤包括:
1)设BCH码的最大纠错能力为t个比特,对接收到的码字R(x)进行计算,得到伴随多项式S(x);
2)利用Euclid算法,由伴随多项式S(x)求解Berlekamp关键方程,得到错误位置多项式σ(x);
3)若步骤2)中得到的错误位置多项式σ(x)中的常数项σ0为0,则进一步进行Chien搜索,从错误位置多项式σ(x)中搜索出错误位置,根据Chien搜索结果对接收码字进行正确译码;
4)若步骤2)中得到的错误位置多项式σ(x)中的常数项σ0不为0,则使用Chien搜索,从错误位置多项式σ(x)中计算出错误位置,若得到的错误位置的个数等于t,则根据Chien搜索结果对接收码字进行正确译码;而当得到的错误位置的个数小于t,则发出报警指示信号,将接收码字原样输出。
一种信道纠错码RS码的译码方法,其步骤包括:
1)设RS码的最大纠错能力为t个符号,对接收到的码字R(x)进行计算,得到伴随多项式S(x);
2)利用Euclid算法,由伴随多项式S(x)求解Berlekamp关键方程,得到错误位置多项式σ(x)和错误值多项式ω(x);
3)若步骤2)中得到的错误位置多项式σ(x)中的常数项σ0为0,则进一步进行Chien搜索和Forney算法从错误位置多项式σ(x)和错误值多项式ω(x)中计算出错误位置和对应的错误值,根据得到的错误位置和对应的错误值对接收码字进行正确译码;
4)若步骤2)中得到的错误位置多项式σ(x)中的常数项σ0不为0,则使用Chien搜索和Forney算法从错误位置多项式σ(x)和错误值多项式ω(x)中计算出错误位置和对应的错误值,若得到的错误位置的个数等于t,则根据得到的错误位置和对应的错误值对接收码字进行正确译码;而当得到的错误位置的个数小于t,则发出报警指示信号,将接收码字原样输出。
上述两方法中的所述步骤1)中得到的接收码字的伴随多项式为: 即伴随多项式S(x)的阶数为2t-1,共有2t个伴随多项式系数:S1,S2,......,S2t。
上述两方法中的所述步骤2)中Berlekamp关键方程S(x)σ(x)=ω(x)modx2t,所述的错误位置多项式为:σ(x)=σ0+σ1·x+σ2·x2+…+σt·xt,共有t+1个错误位置多项式系数。
与现有技术相比,本发明的有益效果是:
本发明通过在信道纠错码BCH/RS码的译码器中,根据错误位置多项式和Chien搜索搜出的错误位置个数的关系,指示当前接收码字的错误码字个数是否超出了纠错码的最大纠错能力,进而判断是否要对接收码字进行纠正,从而避免了在接收码字错误个数超出纠错码最大纠错能力时出现“越纠越错”的情况,降低了整个通信系统的误码率。
附图说明
图1本发明的RS码译码器结构框图;
图2本发明的BCH码译码器结构框图;
图3本发明BCH码/RS码的译码流程图;
图4本发明实施例的译码器与现有译码器的误码率性能比较仿真结果图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细描述:
RS译码器包括五个部分,如图1所示,缓冲模块对接收到的码字进行缓冲,缓冲后的接收码字送到后续的纠错模块进行纠错,或者直接输出;伴随多项式计算模块根据接收码字计算得到伴随多项式;Euclid算法模块根据伴随多项式迭代求得错误位置多项式和错误值多项式;Chien搜索和Forney算法模块由错误位置多项式和错误值多项式求得错误位置和错误值,如果该模块的报警指示信号没有产生报警,则RS纠错模块根据错误位置和错误值对缓冲后的接收码字进行纠正,如果该模块的报警指示信号产生报警,说明接收信号的错误个数超出了纠错码的最大纠错能力,则将缓冲后的接收码字原样输出,如图1中虚线箭头所示。
BCH译码器也包括五个部分,如图2所示,缓冲模块对接收到的码字进行缓冲,缓冲后的接收码字送到后续的纠错模块进行纠错,或者直接输出;伴随多项式计算模块根据接收码字计算得到伴随多项式;Euclid算法模块根据伴随多项式迭代求得错误位置多项式;Chien搜索模块由错误位置多项式求得错误位置,如果该模块的报警指示信号没有产生报警,则BCH纠错模块根据错误位置对缓冲后的接收码字进行纠正,如果该模块的报警指示信号产生报警,说明接收信号的错误个数超出了纠错码的最大纠错能力,则将缓冲后的接收码字原样输出,如图2中虚线箭头所示。
BCH/RS码的译码流程为:
由接收到的码字R(x)计算伴随多项式S(x),根据Euclid算法,得到错误位置多项式σ(x)或/和错误值多项式ω(x),错误位置多项式为σ(x)=σ0+σ1·x+σ2·x2+…+σt·xt,共有t+1个错误位置多项式系数:σ0,σ1,......,σt。若接收数据的实际错误个数e<t时,则系数σ0,σ1,......,σt-e-1为零;若接收数据的实际错误个数e≥t时,则系数σ0不为零。因此,如得到的错误位置多项式σ(x)中的σ0为0,则可以正确纠错;如得到的错误位置多项式σ(x)中的σ0不为0,则使用Chien搜索或/和Forney算法,从错误位置多项式σ(x)或/和错误值多项式ω(x)中计算出错误位置或/和对应的错误值,如图3所示。
Chien搜索和Forney算法可以用下面的伪码描述为:
for i=1 to n
if(σ(αi)=0)then
end if
end for
其中,n为所选定的RS码的码长,αi为伽罗华域的元素,σ′(αi)为错误位置多项式的导数,En-i为相应的错误值。
用Chien搜索算法,将伽罗华域的元素α1至αn分别代入错误位置多项式看是否使多项式得0,若得0则该元素序号的倒数n-i即为错误位置。
每得到一个使错误位置多项式为0的αi,则再利用错误值多项式,根据Forney算法可得到该错误位置n-i对应的错误值En-i。
在Chien搜索模块中,检测接收到的错误位置多项式中的常数项σ0是否为0,若为0,则可以正确译码,若不为0,则继续计算Chien搜索搜出的错误位置个数是否为t,若为t,则可以正确译码,若不为t,则报警信号发出指示,并且将接收码字原样输出。
下面列举本发明的2个具体实施例,以BCH码为例,RS码同理。
例1:一个本原BCH(511,475)码的主要参数为:
码字长度n=29-1=511bits;
信息位长度k=475bits;
最大纠错能力t=(n-k)/m=(511-475)/9=4bits;
译码中的运算都是在伽罗华域GF(29)域中进行的,伴随多项式系数都是GF(29)域中的数。
发射码字为472个1加上3个0,人为地在信道中设置第48比特、第187比特、第356比特出错,共3比特错误,小于该BCH码的最大纠错能力4比特。接收端根据Euclid算法求得的错误位置多项式为σ(x)=0+338·x+366·x2+29·x3+172·x4,σ0等于0,Chien搜索算法搜出的错误位置个数为3,报警指示信号没有产生报警,最终译出的码字为472个1加上3个0,和最初发射的码字完全一样。
发射码字为472个1加上3个0,人为地在信道中设置第1比特、第2比特、第48比特、第187比特、第356比特出错,共5比特错误,大于该BCH码的最大纠错能力4比特。接收端根据Euclid算法求得的错误位置多项式为σ(x)=221+290·x+116·x2+414·x3+193·x4,σ0不等于0,而Chien搜索算法搜出的使错误位置多项式为0的元素个数为0,此时报警指示信号产生报警,并将含有5比特错误的接收码字原样输出。
例2:在一个采用BPSK调制方式的单载波通信系统中,发端和收端分别加入BCH编码器和译码器,且BCH译码器采用Euclid算法。对系统的误码率进行仿真测试,使用了本发明的超出纠错能力检测机制系统和没使用超出纠错能力检测机制系统的误码率对比关系如图4所示。图4中最上面的无符号实线是不加BCH编译码时系统的理论误码率曲线;下面两条带符号的曲线是加入BCH编译码,译码中采用上述两种不同机制的误码率曲线。可以看出,采用本发明的超出纠错能力检测机制的系统,比没加超出纠错能力检测机制的系统的误码率低,性能上大概有0.2dB的提高。
以上通过详细实施例描述了本发明所提供的信道纠错码BCH码和RS码的译码方法,本领域的技术人员应当理解,在不脱离本发明实质的范围内,可以对本发明做一定的变形或修改;其制备方法也不限于实施例中所公开的内容。
Claims (2)
1.一种信道纠错码BCH码的译码方法,其步骤包括:
1)设BCH码的最大纠错能力为t个比特,对接收到的码字R(x)进行计算,得到伴随多项式S(x);其中,伴随多项式为: 即伴随多项式S(x)的阶数为2t-1,共有2t个伴随多项式系数:S1,S2,......,S2t;
2)利用Euclid算法,由伴随多项式S(x)求解Berlekamp关键方程,得到错误位置多项式σ(x);其中,Berlekamp关键方程为:S(x)σ(x)=ω(x)mod x2t,ω(x)为错误值多项式,σ(x)=σ0+σ1·x+σ2·x2+…+σt·xt;
3)若步骤2)中得到的错误位置多项式σ(x)中的常数项σ0为0,则进一步进行Chien搜索,从错误位置多项式σ(x)中搜索出错误位置,根据Chien搜索结果对接收码字进行正确译码;
4)若步骤2)中得到的错误位置多项式σ(x)中的常数项σ0不为0,则使用Chien搜索,从错误位置多项式σ(x)中计算出错误位置,若得到的错误位置的个数等于t,则根据Chien搜索结果对接收码字进行正确译码;而当得到的错误位置的个数小于t,则发出报警指示信号,并将接收码字原样输出。
2.一种信道纠错码RS码的译码方法,其步骤包括:
1)设RS码的最大纠错能力为t个符号,对接收到的码字R(x)进行计算,得到伴随多项式S(x);其中,伴随多项式为: 即伴随多项式S(x)的阶数为2t-1,共有2t个伴随多项式系数:S1,S2,......,S2t;
2)利用Euclid算法,对伴随多项式S(x)求解Berlekamp关键方程,得到错误位置多项式σ(x)和错误值多项式ω(x);其中,Berlekamp关键方程为:S(x)σ(x)=ω(x)mod x2t,σ(x)=σ0+σ1·x+σ2·x2+…+σt·xt;
3)若步骤2)中得到的错误位置多项式σ(x)中的常数项σ0为0,则进一步进行Chien搜索和Forney算法从错误位置多项式σ(x)和错误值多项式ω(x)中计算出错误位置和对应的错误值,根据得到的错误位置和对应的错误值对接收码字进行正确译码;
4)若步骤2)中得到的错误位置多项式σ(x)中的常数项σ0不为0,则使用Chien搜索和Forney算法从错误位置多项式σ(x)和错误值多项式ω(x)中计算出错误位置和对应的错误值,若搜出的错误位置的个数等于t,则根据得到的错误位置和对应的错误值对接收码字进行正确译码;而当得到的错误位置的个数小于t,则发出报警指示信号,并将接收码字原样输出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102411188A CN101459431B (zh) | 2008-12-30 | 2008-12-30 | 一种信道纠错码bch码和rs码的译码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102411188A CN101459431B (zh) | 2008-12-30 | 2008-12-30 | 一种信道纠错码bch码和rs码的译码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101459431A CN101459431A (zh) | 2009-06-17 |
CN101459431B true CN101459431B (zh) | 2012-03-07 |
Family
ID=40770088
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008102411188A Active CN101459431B (zh) | 2008-12-30 | 2008-12-30 | 一种信道纠错码bch码和rs码的译码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101459431B (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102045073B (zh) * | 2009-10-26 | 2013-04-17 | 成都市华为赛门铁克科技有限公司 | 一种bch码译码方法和装置 |
CN101771504B (zh) * | 2009-12-31 | 2013-04-10 | 中国工程物理研究院电子工程研究所 | 一种循环码盲识别方法 |
CN103138770B (zh) * | 2010-01-12 | 2016-09-28 | 北京忆恒创源科技有限公司 | 有限域平方计算电路 |
CN101820289A (zh) * | 2010-03-18 | 2010-09-01 | 清华大学 | 一种用于空间环境的弹性交换装置 |
CN102170327B (zh) * | 2011-04-06 | 2014-01-22 | 烽火通信科技股份有限公司 | 超强前向纠错的硬件译码方法及装置 |
CN102394662A (zh) * | 2011-10-27 | 2012-03-28 | 优能通信科技(杭州)有限公司 | 一种bch码的译码方法 |
CN104639282B (zh) * | 2013-11-14 | 2018-09-11 | 杭州海康威视数字技术股份有限公司 | 通信系统中rs译码方法及其装置 |
CN103873196B (zh) * | 2014-03-07 | 2017-08-01 | 成都信息工程学院 | 一种错误比特流的恢复方法 |
CN103944584A (zh) * | 2014-04-24 | 2014-07-23 | 胡建国 | 一种二维码译码的方法及其装置 |
CN104899612A (zh) * | 2015-06-26 | 2015-09-09 | 信码互通(北京)科技有限公司 | 具有纠错功能的字符编码方法、字符解码方法及其产品 |
CN105242982B (zh) * | 2015-10-22 | 2018-05-15 | 宁波三星医疗电气股份有限公司 | 用于采用了nand flash的电力采集终端的纠错方法 |
CN106341211B (zh) * | 2016-08-17 | 2019-07-19 | 天津大学 | 一种针对多种信道环境的自适应译码方法 |
CN108683425B (zh) * | 2018-05-18 | 2022-08-26 | 中国科学院微电子研究所 | 一种bch译码器 |
CN111130568B (zh) * | 2018-10-31 | 2023-05-23 | 中国科学院微电子研究所 | 一种bch译码器及其译码方法、ecc系统 |
CN110739977B (zh) * | 2019-10-30 | 2023-03-21 | 华南理工大学 | 一种基于深度学习的bch码译码方法 |
CN112953570B (zh) * | 2021-02-04 | 2022-08-19 | 山东云海国创云计算装备产业创新中心有限公司 | 一种纠错解码方法、装置、设备及计算机可读存储介质 |
CN113489570B (zh) * | 2021-06-30 | 2023-05-09 | 郑州云海信息技术有限公司 | 一种PCIe链路的数据传输方法、装置及设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0204576A3 (en) * | 1985-06-07 | 1988-09-07 | Sony Corporation | Apparatus for and methods of decoding a bch code |
EP0825533A1 (en) * | 1996-08-15 | 1998-02-25 | Nec Corporation | Method and circuit for calculating and processing error correction |
CN1188375A (zh) * | 1996-10-29 | 1998-07-22 | 大宇电子株式会社 | 在高级电视中使用的里德-所罗门解码器 |
US6673685B2 (en) * | 2001-09-06 | 2004-01-06 | Hitachi, Ltd. | Method of manufacturing semiconductor devices |
CN1467918A (zh) * | 2002-06-07 | 2004-01-14 | ��ķɭ���ó��˾ | 里得-索罗门解码器 |
-
2008
- 2008-12-30 CN CN2008102411188A patent/CN101459431B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0204576A3 (en) * | 1985-06-07 | 1988-09-07 | Sony Corporation | Apparatus for and methods of decoding a bch code |
EP0825533A1 (en) * | 1996-08-15 | 1998-02-25 | Nec Corporation | Method and circuit for calculating and processing error correction |
CN1188375A (zh) * | 1996-10-29 | 1998-07-22 | 大宇电子株式会社 | 在高级电视中使用的里德-所罗门解码器 |
US6673685B2 (en) * | 2001-09-06 | 2004-01-06 | Hitachi, Ltd. | Method of manufacturing semiconductor devices |
CN1467918A (zh) * | 2002-06-07 | 2004-01-14 | ��ķɭ���ó��˾ | 里得-索罗门解码器 |
Also Published As
Publication number | Publication date |
---|---|
CN101459431A (zh) | 2009-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101459431B (zh) | 一种信道纠错码bch码和rs码的译码方法 | |
US10992416B2 (en) | Forward error correction with compression coding | |
US5907563A (en) | Error control method and apparatus for wireless data communication | |
US7831884B2 (en) | Method of correcting message errors using cyclic redundancy checks | |
EP2528239A1 (en) | Multi-layer cyclic redundancy check code in wireless communication system | |
EP2482464A1 (en) | Encoding apparatus, decoding apparatus, encoding method, decoding method, and communication system | |
CN111628780B (zh) | 数据编码、解码方法及数据处理系统 | |
EP2501046A1 (en) | Decoding method and device for concatenated code | |
CN111597072B (zh) | 差错控制编码ecc系统及包括ecc系统的存储器设备 | |
Shrivastava et al. | Error detection and correction using Reed Solomon codes | |
CN105634506A (zh) | 基于移位搜索算法的平方剩余码的软判决译码方法 | |
CN105024706A (zh) | 一种基于bch+rs级联纠错编码方法及系统 | |
CN112994838B (zh) | 信道编码及译码方法和装置、信息传输系统 | |
CN106506011B (zh) | 电力线工频通信编码纠错方法 | |
US9379847B2 (en) | Method and apparatus for transmitting and receiving in a communication/broadcasting system | |
RU2295196C1 (ru) | Способ контроля качества канала связи | |
CN113541871B (zh) | 一种生成码字的方法及编解码器 | |
US8601353B2 (en) | Apparatus and method for transmitting data using repeat accumulate coding scheme in communication system | |
CN101626248A (zh) | 迭代译码方法及装置 | |
CN101510803A (zh) | 无线激光通信GF(q)域上的纠错系统及其纠错方法 | |
Rudolph et al. | Forward error correction techniques for mobile satellite communications | |
Costello | Undetected error probability and throughput analysis of a concatenated coding scheme | |
CRC | ECE 5325/6325: Wireless Communication Systems Lecture Notes, Spring 2013 | |
Kaur et al. | VHDL IMPLEMENTATION OF UNIVERSAL LINEAR BLOCK ERROR DETECTOR AND CORRECTOR IN DIGITAL COMMUNICATION | |
Cooper III | CODE ITERATION FOR NOISY CILANNELS |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |