一种BCH软解码算法及其实现电路.pdf

上传人:t**** 文档编号:1521330 上传时间:2018-06-20 格式:PDF 页数:11 大小:907.83KB
返回 下载 相关 举报
摘要
申请专利号:

CN201510102389.5

申请日:

2015.03.09

公开号:

CN104716965A

公开日:

2015.06.17

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):H03M 13/15申请日:20150309|||公开

IPC分类号:

H03M13/15

主分类号:

H03M13/15

申请人:

复旦大学

发明人:

关天婵; 韩军; 曾晓洋

地址:

200433上海市杨浦区邯郸路220号

优先权:

专利代理机构:

上海正旦专利代理有限公司31200

代理人:

陆飞; 盛志范

PDF下载: PDF下载
内容摘要

本发明属纠错控制编码技术领域,具体为一种BCH软解码算法及其实现电路。本发明在传统的II型Chase BCH软解码算法的基础上,提出了一种新的迭代算法,能够提前结束迭代从而减小迭代次数,进而减小解码功耗。此外本发明还提出了一种新的输出编码判决方式,免去了传统Chase软解码器中耗能耗时很大的欧氏距离比较单元,进一步减小了解码功耗,提升整体效能。本发明还提出了该软解码算法的电路结构,由有限状态机与硬解码模块交互,并控制测试序列生成模块和候选码字缓存完成整个解码过程。

权利要求书

权利要求书1.   一种BCH软解码算法,其特征在于具体步骤为: (1)设置最小错误数为码型的最大可纠正错误数t,接收输入码字和可信度最小的t个位置;解码开始前设置最小错误数为0;(2)根据输入码字和可信度最小的t个位置生成测试序列;(3)对生成的测试序列进行BCH硬解码;(4)若测试序列的硬解码结果显示序列中无错,停止软解迭代,将该测试序列存入候选码字缓存;若测试序列的硬解码结果显示序列中错误数量超过纠错范围,则放弃该序列;若测试序列的硬解码结果显示序列中错误可纠正,则比较该序列中错误数量与已解码的可纠正测试序列中最小错误数;若序列中错误数量小于已解码的可纠正测试序列中最小错误数,则将本次解码后的测试序列存入候选码字缓存,并更新最小错误数为此测试序列的错误数;若序列中错误数量大于已解码的可纠正测试序列中最小错误数,放弃该序列;完成以上步骤后,若仍有测试序列未解码,则返回步骤(2),继续对剩余的测试序列进行硬解码及之后的步骤;若所有测试序列均已解码完成,则停止软解迭代;在停止软解迭代后,判断迭代过程中硬解码模块是否解出过有效码字,若没有则控制候选码字缓存输出全零,解码正确信号设为无效;否则输出候选码字缓存中的内容,解码正确信号设为有效。2.   根据权利要求1所述的BCH软解码算法,其特征在于:输入码字为二进制码。3.   根据权利要求1所述的BCH软解码算法,其特征在于:测试序列为原输入码字在其可信度最小的t个位置上,其值为码字本身的原值或该原值取反;测试序列的集合即为这种序列的所有排列组合情况。4.   如权利要求1所述BCH软解码算法的实现电路,其特征在于包括硬解码模块、有限状态机、测试序列生成模块和候选码字缓存四个模块;整个解码电路在有限状态机的控制下完成解码算法;其中:所述有限状态机根据解码电路的控制输入,控制测试序列生成模块生成每次解码迭代解码的测试序列;此外,有限状态机与硬解码模块进行控制交互、数据交互,控制硬解码电路完成解码算法;解码过程中有限状态机控制将符合条件的候选码字存入候选码字缓存中;所述硬解码模块对解码过程中每次迭代生成的测试向量进行硬解码,并向有限状态机输出错误标志、错误数信号、解码成功标志、错误位置向量、开始/结束标志;其中,错误标志表征测试序列是否有错误,错误数信号表示输入硬解码模块的码字中所含的错误数、解码成功标志表征输入码字中的错误是否可纠正、错误位置向量表征了错误的位置,在有错的位置为1其余为0,开始/结束标志表示输出错误位置向量的开始时刻与结束时刻。5.   根据权利要求4所述BCH软解码算法的实现电路,其特征在于在外界输入开始信号有效时开始解码过程,当硬解码模块解码出无错的测试序列,即错误标志无效,则有限状态机控制停止解码迭代,缓存并输出该测试序列;在硬解码模块解码出有错但可纠正的测试序列时,有限状态机判断其是否小于错误数,据此判断是否将接收其解码结果并存入候选码字缓存,以及是否更新最小错误数;若硬解码模块解码出不可纠正的测试序列,有限状态机直接丢弃其解码结果;每一次硬解码过程结束,有限状态机根据当前是否有未解码的测试序列确定是否需要停止解码迭代;停止迭代后有限状态机根据迭代过程中硬解码模块是否解出过有效码字判断解码是否成功,并控制候选码字缓存,若解码成功则输出缓存内数据,否则输出全零。6.  根据权利要求4所述BCH软解码算法的实现电路,其特征在于所述硬解码模块由伴随式计算模块31、错误位置多项式计算模块32、钱搜索模块33等3个模块组成,硬解码主要分为三个步骤:伴随式生成、错误位置多项式生成、错误位置多项式求解;其中计算待解码字的伴随式生成的步骤由伴随式计算模块完成,并根据伴随式是否为0判断码字中是否有错误;伴随式结果输入到错误位置多项式计算模块中,该模块据此计算待解码字的错误位置多项式;钱搜索模块负责对错误位置多项式进行求解,结果为待解码字中有错误的位置,由错误向量表征,并在求解过程中根据多项式的次数与t的关系判断待解码字中的错误是否可解。7.  根据权利要求4所述BCH软解码算法的实现电路,其特征在于所述测试序列生成模块,包括3个复用器(41、42、43),码字寄存器组,计数器,比较器;码字寄存器组用来缓存待解码字,它由若干和1比特寄存器组成,寄存器个数由解码器所解的码字长度决定;内部的计数器由有限状态机控制,用于计算当前时钟周期码字寄存器组输出的数据在待解码字中的所在位置,比较器将其与不确定位置1至不确定位置t中的某一个比较,被比较的数据由有限状态机控制第二复用器(42)来选择;当相等时,将码字寄存器组输出的数据取反,通过控制第三复用器(43)选择其输出值,即与码字寄存器组输出数据的异或值为1来实现;在软解码每一次迭代的过程中,将本次的测试向量输出给硬解码模块的同时,由状态机控制第一复用器(41)将其存储在码字寄存器组中;在下一次迭代时,状态机控制第二复用器(42)选择不同的位置值,这样相对应位置的码字将会被取反。8.  根据权利要求4所述BCH软解码算法的实现电路,其特征在于所述候选码字缓存包括复用器、码字寄存器组,码字寄存器组由若干个1比特寄存器组成的单向移位寄存器,个数为待解码字中信息比特的位数,用于缓存候选码字;当状态机判断硬解码的解码输出可以作为有效输出时,就控制候选码字缓存的时钟端,并向第一个一位寄存器中串行输入解码结果,解码结果依次移位至缓存的寄存器中;最终当解码结束时,状态机根据是否在解码迭代过程中产生过有效码字,控制复用器将缓存中的候选码字或输出全零作为最终解码数据输出。

说明书

说明书一种BCH软解码算法及其实现电路
技术领域
本发明属于纠错控制编码技术领域,具体为一种BCH软解码算法及实现该解码算法的电路结构。
背景技术
纠错控制编码广泛运用在各类通信系统中,除了能够增加通信的可靠性之外,引入纠错编码还可以减小通信系统的功耗,提升系统的能量效率。通过编码,发射端可以在更小的发射功率下达到相应的可靠性指标。当发射端由于引入纠错控制编码而节省的功耗大于编解码的功耗时,就可以获得系统功耗的降低和能量效率的提升。
 BCH码的编码增益与解码算法相关,软解码可以达到更好的编码增益,但是相比于硬解码,软解码的代价要更高。软解码的代价主要体现在:1.更多解码迭代次数:最常用的II型Chase BCH解码算法,需要对所有测试序列进行一次硬解码过程,迭代次数等于BCH码最多能纠正的错误个数。2.额外的硬件开销,软解码除了硬解码模块之外,还要增加额外的模块,计算并比较候选码字与原始未进行硬判决的序列之间的欧氏距离,这其中涉及到的乘加、比较运算,都要占用相当大的面积,并造成大量的功耗。因此,在获得比硬解码更好的编码增益的前提下,降低软解码的代价,是亟待解决的问题。
发明内容
本发明针对现有BCH软解码代价高的问题,对传统的II型Chase解码算法进行了改进,设计了一种新的BCH软解码算法,并设计了实现该算法的电路结构。该算法在传统Chase算法的基础上,减少了迭代次数,并避免了欧式距离的计算与比较,提升了解码效能。
本发明提出的BCH软解码算法,具体步骤为:
(1)设置最小错误数为码型的最大可纠正错误数t,接收输入码字和可信度最小的t个位置;
(2)根据输入码字和可信度最小的t个位置生成测试序列,即,原输入码字在其可信度最小的t个位置上,其值为码字本身的原值或该原值取反;测试序列的集合即为这种序列的所有排列组合情况;
(3)对生成的测试序列进行BCH硬解码;
(4)若测试序列的硬解码结果显示序列中无错,停止软解迭代,将该测试序列存入候选码字缓存;若测试序列的硬解码结果显示序列中错误数量超过纠错范围,则放弃该序列;若测试序列的硬解码结果显示序列中错误可纠正,则比较该序列中错误数量与已解码的可纠正测试序列中最小错误数;若序列中错误数量小于已解码的可纠正测试序列中最小错误数,则将本次解码后的测试序列存入候选码字缓存,并更新最小错误数为此测试序列的错误数;若序列中错误数量大于已解码的可纠正测试序列中最小错误数,放弃该序列;
完成以上步骤后,若仍有测试序列未解码,则返回步骤(2)继续对剩余的测试序列进行硬解码及之后的步骤。若所有测试序列均已解码完成,则停止软解迭代。
在停止迭代后,判断迭代过程中硬解码模块是否解出过有效码字,若没有则控制候选码字缓存输出全零,解码正确信号设为无效;否则输出候选码字缓存中的内容,解码正确信号设为有效。
实现该算法的解码电路结构包括硬解码模块、有限状态机、测试序列生成模块和候选码字缓存四个模块。整个解码电路在有限状态机的控制下完成解码算法。有限状态机根据解码电路的控制输入,控制测试序列生成模块生成每次解码迭代解码的测试序列。此外,有限状态机与硬解码模块进行控制交互、数据交互,控制硬解码电路完成解码算法。解码过程中有限状态机控制将符合条件的候选码字存入候选码字缓存中。硬解码模块对解码过程中每次迭代生成的测试向量进行硬解码,并向有限状态机输出错误标志、错误数信号、解码成功标志、错误位置向量、开始/结束标志。这些信号中错误标志表征测试序列是否有错误,错误数信号表示输入硬解码模块的码字中所含的错误数、解码成功标志表征输入码字中的错误是否可纠正、错误位置向量表征了错误的位置,在有错的位置为1其余为0,开始/结束标志表示输出错误位置向量的开始时刻与结束时刻。
本发明中,在外界输入开始信号有效时开始解码过程,当硬解码模块解码出无错的测试序列,即错误标志无效,则有限状态机控制停止解码迭代,缓存并输出该测试序列;在硬解码模块解码出有错但可纠正的测试序列时,有限状态机判断其是否小于错误数,据此判断是否将接收其解码结果并存入候选码字缓存,以及是否更新最小错误数;若硬解码模块解码出不可纠正的测试序列,有限状态机直接丢弃其解码结果;每一次硬解码过程结束,有限状态机根据当前是否有未解码的测试序列确定是否需要停止解码迭代;停止迭代后有限状态机根据迭代过程中硬解码模块是否解出过有效码字判断解码是否成功,并控制候选码字缓存,若解码成功则输出缓存内数据,否则输出全零。
本发明在传统的II型Chase BCH软解码算法的基础上,提出了一种新的迭代算法,能够提前结束迭代从而减小迭代次数,进而减小解码功耗。此外本发明还提出了一种新的输出编码判决方式,免去了传统Chase软解码器中耗能耗时很大的欧氏距离比较单元,进一步减小了解码功耗,提升整体效能。
附图说明
图 1 是BCH解码算法流程图。
图 2 是实现该解码算法的解码电路结构框图。
图 3 是硬解码模块的内部结构框图。
图 4 是测试序列生成模块的内部结构框图。
图 5 是候选码字缓存的内部结构框图。
图 6 是有限状态机状态转移图。
具体实施方式
为更加清楚明白地阐述本发明的目的、技术方案及优势,下文结合附图及实施例,对本发明进一步进行阐释。
图1为本发明所提出的BCH解码算法的流程图,开始之后,步骤11设置最小错误数为码型的最大可纠正错误数t,接收输入码字和可信度最小的t个位置。接下来步骤12 根据输入码字和可信度最小的t个位置生成测试序列,即,原输入码字在其可信度最小的t个位置上,其值为码字本身的原值或该原值取反。然后进行步骤13将生成的测试序列送入BCH硬解码模块进行解码。解码后步骤14先根据解码得到的信息确定测试序列中是否有错误,若测试序列的硬解码结果显示序列中无错,停止软解迭代,进行步骤15将该测试序列存入候选码字缓存然后进入步骤21输出缓存中的码字,将编码正确信号设置为有效;若序列中有错,则进行步骤16,若测试序列的硬解码结果显示序列中错误数量超过纠错范围,则放弃该序列;若测试序列的硬解码结果显示序列中错误可纠正,则进行步骤17比较该序列中错误数量与已解码的可纠正测试序列中最小错误数;若小于,则进行步骤18将本次解码后的测试序列存入候选码字缓存,并更新最小错误数为此测试序列的错误数,然后进行步骤19;若大于,放弃该序列直接进入步骤19。步骤19判断是否仍有未进行解码的的候选码字,若有,返回步骤12;若没有,停止迭代进入步骤20,判断候选码字缓存有候选码字,若有,则进行步骤21;若无,则输出全零,将解码正确信号设置为无效。
图2为实现本发明所提出的BCH解码算法的电路结构,电路有2+t个输入端:包括开始信号、码字输入端、表示还有t个置信度最低的位置的信号;四个输出端:包括表征解码是否成功的解码正确标志,在输出解码数据是有效的输出数据有效标志,数据输出,表征解码电路可以开始工作的ready信号。
电路结构包括硬解码模块、有限状态机、测试序列生成模块和候选码字缓存四个模块。整个解码电路在有限状态机的控制下完成解码算法。有限状态机根据解码电路的控制输入,控制测试序列生成模块生成每次解码迭代解码的测试序列。此外,有限状态机与硬解码模块进行控制交互、数据交互,控制硬解码电路完成解码算法。解码过程中有限状态机控制将符合条件的候选码字存入候选码字缓存中。硬解码模块对解码过程中每次迭代生成的测试向量进行硬解码,并向有限状态机输出错误标志、错误数信号、解码成功标志、错误位置向量、开始/结束标志。这些信号中错误标志表征测试序列是否有错误,错误数信号表示输入硬解码模块的码字中所含的错误数、解码成功标志表征输入码字中的错误是否可纠正、错误位置向量表征了错误的位置,在有错的位置为1其余为0,开始/结束标志表示输出错误位置向量的开始时刻与结束时刻。
本发明所提出的解码电路结构中的硬解码模块结构如图3所示,硬解码模块由伴随式计算模块31,错误位置多项式计算模块32,钱搜索模块33等3个模块组成。硬解码主要分为三个步骤:伴随式生成、错误位置多项式生成、错误位置多项式求解。其中计算待解码字的伴随式的步骤由伴随式计算模块完成,并根据伴随式是否为0判断码字中是否有错误。接下来伴随式结果输入到错误位置多项式计算模块中,模块据此计算待解码字的错误位置多项式;钱搜索模块负责对错误位置多项式进行求解,结果为待解码字中有错误的位置,由错误向量表征,并能在求解过程中根据多项式的次数与t的关系判断待解码字中的错误是否可解。伴随式计算模块31在由状态机输入的开始信号有效之后开始工作,串行接收解码输入,计算其伴随式;计算完毕后,模块31的计算完成信号有效,同时将伴随式串行输出;同时,模块31判断伴随式是否为0,若是,则错误存在标志无效,表示待解码字中没有错误,否则信号有效。错误位置多项式计算模块32的开始信号由模块32的ready信号和模块31的计算完成信号相与生成。输入模块32的开始信号有效后,其ready信号为低,模块32对伴随式进行迭代计算,采用BERLEKAMP-MASSEY算法计算错误位置多项式。计算完毕后,模块32的ready信号拉高,计算完成信号有效,计算结果由错误位置多项式串行输出。钱搜索模块33的开始信号由模块12的计算完成信号与钱搜索模块13的ready信号相与得到。输入开始信号有效后,模块33开始求解模块32计算出的错误位置多项式,求解后的根为表征错误位置的错误向量。错误向量的值在待解码码字无错的位置为0,无错的位置为1,由模块33串行输出。求解过程完成之后模块33的错误输出开始信号有效,下一个时钟周期开始输出错误向量的第一位数据,输出到最后一 位数据时,错误输出结束标志有效。此外,模块33还判断错误位置多项式的次数来判定待解码字中的错误是否可解,若次数小于t则待解码字中的错误可解,则解码成功标志有效,否则无效。输入的计算开始信号有效后模块的ready信号拉低,错误位置多项式全部输出完毕后ready信号拉高。
测试序列生成模块结构如图4所示,包括3个复用器41、42、43,码字寄存器组,计数器,比较器,等等;码字寄存器组用来缓存待解码字,它由若干和1比特寄存器组成,寄存器个数由解码器所解的码字长度决定。内部的计数器由有限状态机控制,计算当前时钟周期码字寄存器组输出的数据在待解码字中的所在位置,将其与不确定位置1至不确定位置t中的某一个比较,被比较的数据由有限状态机控制复用器42来选择。当相等时,将码字寄存器组输出的数据取反,通过控制复用器43选择其输出值,即与码字寄存器组输出数据的异或值为1来实现。在软解码每一次迭代的过程中,将本次的测试向量输出给硬解码模块的同时,由状态机控制复用器41将其存储在码字寄存器组中;在下一次迭代时,状态机控制复用器42选择不同的位置值,这样相对应位置的码字将会被取反。可以看出,相邻测试序列之间只有一位码字不同,因此可以调整状态机,使测试序列生成的顺序是格雷码的顺序。
本发明的候选码字缓存结构如图5所示。包括复用器、码字寄存器组,码字寄存器组由若干个1比特寄存器组成的单向移位寄存器,个数为待解码字中信息比特的位数,用于缓存候选码字。当状态机判断硬解码的解码输出可以作为有效输出时,就控制候选码字缓存的时钟端,并向第一个一位寄存器中串行输入解码结果,解码结果依次移位至缓存的寄存器中。最终当解码结束时,状态机根据是否在解码迭代过程中产生过有效码字,控制复用器将缓存中的候选码字或输出全零作为最终解码数据输出。
图6为本发明提出的解码电路中有限状态机的状态转移图。复位后状态机进入等待码字输入状态IDLE,设置最小错误数为0;在输入开始信号有效后进入有效码字输入状态DATA_COLLECTED,在该状态下有限状态机控制测试序列生成模块内部的寄存器组,缓存输入码字或测试序列,生成并向硬解码模块输出相应的解码数据。当伴随式计算结束,且硬解码模块输出的错误标志有效时,状态机进入等待错误位置向量模式ERR_WAIT;若错误标志无效,则进入否则直接进入解码输出模式DATA_OUT。在ERR_WATI模式下,当硬解码模块完成错误位置多项式生成、求解后,错误位置向量输出开始信号有效。此时需判断硬解码输出的错误数量是否小于最小错误数,若是,有限状态机进入错误位置向量输入模式ERR_COLLECTED;若否或者硬解码模块的解码成功标志无效,且仍有测试序列未被生成和解码,则返回DATA_COLLECTED模式;若所有测试序列均已生成解码完毕,则进入编码输出模式DATA_OUT。在ERR_COLLECTED状态下有限状态机将本次解码迭代所解码的测试序列与硬解码模块输出的错误位置向量进行异或后存入候选码字缓存中,当错误位置向量输出完毕后硬解码单元结束信号有效,有限状态机根据工作模式判断下一状态:若为硬解码模式,则进入编码输出模式DATA_OUT;若为软解码模式,则需判断是否仍有未解码的测试序列,若有,则返回DATA_COLLECTED状态,若无,则进入DATA_OUT状态。有限状态机在DATA_OUT状态下输出候选码字缓存中的数据,判断迭代过程中硬解码模块是否解出过有效码字,若没有则控制候选码字缓存输出全零,解码正确信号设为无效;否则输出候选码字缓存中的内容,解码正确信号设为有效。输出完成后,状态机返回IDLE状态。除IDLE状态外,当状态机处于其他所有状态时,ready信号均无效,表示解码电路正忙。

一种BCH软解码算法及其实现电路.pdf_第1页
第1页 / 共11页
一种BCH软解码算法及其实现电路.pdf_第2页
第2页 / 共11页
一种BCH软解码算法及其实现电路.pdf_第3页
第3页 / 共11页
点击查看更多>>
资源描述

《一种BCH软解码算法及其实现电路.pdf》由会员分享,可在线阅读,更多相关《一种BCH软解码算法及其实现电路.pdf(11页珍藏版)》请在专利查询网上搜索。

本发明属纠错控制编码技术领域,具体为一种BCH软解码算法及其实现电路。本发明在传统的II型Chase BCH软解码算法的基础上,提出了一种新的迭代算法,能够提前结束迭代从而减小迭代次数,进而减小解码功耗。此外本发明还提出了一种新的输出编码判决方式,免去了传统Chase软解码器中耗能耗时很大的欧氏距离比较单元,进一步减小了解码功耗,提升整体效能。本发明还提出了该软解码算法的电路结构,由有限状态机与硬。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 基本电子电路


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1