CN111030709A - 基于bch译码器的译码方法、bch译码器及应用其的电路 - Google Patents
基于bch译码器的译码方法、bch译码器及应用其的电路 Download PDFInfo
- Publication number
- CN111030709A CN111030709A CN201911409691.XA CN201911409691A CN111030709A CN 111030709 A CN111030709 A CN 111030709A CN 201911409691 A CN201911409691 A CN 201911409691A CN 111030709 A CN111030709 A CN 111030709A
- Authority
- CN
- China
- Prior art keywords
- algorithm
- polynomial
- syndrome
- error
- bch decoder
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
Abstract
本申请实施例提供了一种BCH译码器和基于BCH译码器的译码方法,BCH译码器上配置有限域信息,有限域信息包括针对多个域元素的元素存储表及针对多个域元素的索引查询表,该方法包括:依据预定义的伴随式算法以及针对伴随式算法的有限域信息,对BCH译码器接收到的待译码数据进行伴随式计算,得到多个伴随式;基于多个伴随式,并依据预定义的错误位置多项式算法以及针对预定义的错误位置多项式算法的有限域信息,对错误位置多项式进行迭代计算,确定错误图样;依据预定义的钱搜索算法以及针对钱搜索算法的有限域信息,对错误图样进行验证,并依据验证结果对待译码数据进行纠错处理,得到BCH码。本申请实施例利用有限域进行计算提高了译码速度。
Description
技术领域
本申请涉及通信技术领域,具体涉及一种基于BCH译码器的译码方法、BCH译码器及应用其的电路。
背景技术
BCH码是最重要的循环码之一,具有很强的纠错能力,特别在短和中等码长下,其性能很接近于理论值,并且构造方便,编码简单。BCH码的译码过程主要分为:伴随式计算、错位多项式计算和钱搜索计算。相关技术中,BCH码的译码主要存在算法复杂度高,译码速度慢的问题,尤其是错误位置多项式的算法因迭代次数多,导致的算法复杂度较高,且实现过程对硬件资源消耗较大的问题。
发明内容
为了解决上述任一技术问题,本申请提供一种基于BCH译码器的译码方法、BCH译码器及应用其的电路。
第一方面,本申请提供了一种基于BCH译码器的译码方法,BCH译码器上配置有限域信息,有限域信息包括针对多个域元素的元素存储表及针对多个域元素的索引查询表,该方法包括:
依据预定义的伴随式算法以及针对所述伴随式算法的有限域信息,对所述BCH译码器接收到的待译码数据进行伴随式计算,得到多个伴随式;
基于多个所述伴随式,并依据预定义的错误位置多项式算法以及针对预定义的错误位置多项式算法的有限域信息,对错误位置多项式进行迭代计算,确定错误图样;
依据预定义的钱搜索算法以及针对所述钱搜索算法的有限域信息,对所述错误图样进行验证,并依据验证结果对所述待译码数据进行纠错处理,得到BCH码。
第二方面,本申请提供了一种BCH译码器,该BCH译码器包括伴随式计算模块、错误位置多项式计算模块、钱搜索模块和至少一个存储模块,所述存储模块上存储有限域信息,所述有限域信息包括针对多个域元素的元素存储表及针对多个域元素的索引查询表,其中,
所述伴随式计算模块,用于依据预定义的伴随式算法以及针对所述伴随式算法的有限域信息,对所述BCH译码器接收到的待译码数据进行伴随式计算,得到多个伴随式;
所述错误位置多项式计算模块,用于基于多个所述伴随式,并依据预定义的错误位置多项式算法以及针对预定义的错误位置多项式算法的有限域信息,对错误位置多项式进行迭代计算,确定错误图样;
所述钱搜索模块,用于依据预定义的钱搜索算法以及针对所述钱搜索算法的有限域信息,对所述错误图样进行验证,并依据验证结果对所述待译码数据进行纠错处理,得到BCH码。
第三方面,本申请实施例提供了一种基于BCH译码器的译码电路,该电路包括:伴随式计算电路、错误位置多项式计算电路、钱搜索电路以及至少一个存储有有限域信息的存储芯片,所述有限域信息包括针对多个域元素的元素存储表及针对多个域元素的索引查询表,所述伴随式计算电路、所述错误位置多项式计算电路、所述钱搜索电路分别与至少一个所述存储芯片电路连接,其中,
所述伴随式计算电路,用于依据预定义的伴随式算法以及针对所述伴随式算法的有限域信息,对所述BCH译码器接收到的待译码数据进行伴随式计算,得到多个伴随式;
所述错误位置多项式计算电路,用于基于多个所述伴随式,并依据预定义的错误位置多项式算法以及针对预定义的错误位置多项式算法的有限域信息,对错误位置多项式进行迭代计算,确定错误图样;
所述钱搜索电路,用于依据预定义的钱搜索算法以及针对所述钱搜索算法的有限域信息,对所述错误图样进行验证,并依据验证结果对所述待译码数据进行纠错处理,得到BCH码。
第四方面,本申请实施例提供了一种终端,该终端包括:
存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时以实现上述基于BCH译码器的译码方法。
第五方面,本申请实施例提供一种计算机可读存储介质,存储有计算机可执行指令,该计算机可执行指令用于执行上述基于BCH译码器的译码方法。
本申请实施例的有益效果:通过有限域信息的配置,为后续伴随式算法、错位多项式算法以及钱搜索算法各自的计算过程中,能够依据这三种算法各自对应的有限域信息来简化计算,从而提高译码速度,解决了现有技术中这三种算法每次都需要计算各自所需的有限域元素,导致的计算消耗高,运算速度慢的问题。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种基于BCH译码器的译码方法的流程示意图;
图2为本申请实施例提供的一种基于BCH译码器的译码方法一个实施例工作原理示意图;
图3为本申请实施例提供的一种BCH译码器的框图结构示意图;
图4为本申请实施例提供的一种基于BCH译码器的译码电路一个实施例的应用框架结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。
实施例一
本申请实施例提供了一种基于BCH译码器的译码方法,BCH译码器上配置有限域信息,所述有限域信息包括针对多个域元素的元素存储表及针对多个域元素的索引查询表。如图1所示,该方法包括:
步骤S101:依据预定义的伴随式算法以及针对伴随式算法的有限域信息,对所述BCH译码器接收到的待译码数据进行伴随式计算,得到多个伴随式;
步骤S102:基于多个伴随式,并依据预定义的错误位置多项式算法以及针对预定义的错误位置多项式算法的有限域信息,对错误位置多项式进行迭代计算,确定错误图样;
步骤S103:依据预定义的钱搜索算法以及针对钱搜索算法的有限域信息,确定错误图样进行验证,并依据验证结果对待译码数据进行纠错处理,得到BCH码。
本申请实施例通过有限域信息的配置,为后续伴随式算法、错位多项式算法以及钱搜索算法各自的计算过程中,能够依据这三种算法各自对应的有限域信息来简化计算,从而提高译码速度,解决了现有技术中这三种算法每次都需要计算各自所需的有限域元素,导致的计算消耗高,运算速度慢的问题。
具体应用时,可以通过两个存储模块来存储有限域信息,例如,一个存储模块存储针对伴随式算法的有限域信息和针对钱搜索算法的有限域信息;另一个存储模块存储针对错误位置多项式算法的有限域信息。即一个存储模块提供的有限域信息可以在不同时间被伴随式算法和钱搜索算法进行复用,而另一个存储模块提供的有限域信息则为错误位置多项式算法提供计算数据。
需要说明的是,具体应用时针对伴随式算法的有限域信息、针对钱搜索算法的有限域信息以及针对钱搜索算法的有限域信息,均可以存储在一个存储模块,也可以各自存储在不同的存储模块,具体应用时,可以根据实际需要进行选定。
在一个实施例中,如图1所示,步骤S101依据预定义的伴随式算法以及针对伴随式算法的有限域信息,对BCH译码器接收到的待译码数据进行伴随式计算,得到多个伴随式,包括:
步骤S1011(图中未示出):确定伴随式矩阵,伴随式矩阵是依据针对伴随式算法的有限域信息确定的;
步骤S1012(图中未示出):依据待译码数据,确定第一多项式;
步骤S1013(图中未示出):根据伴随式矩阵与第一多项式的乘积,确定多个伴随式。
具体地,伴随式矩阵的确定方式如下:
例如,假设伴随式矩阵为H,那么:
式中,α2t表示针对伴随式计算模块对应有限域信息中的元素,n表示接收到的待译码数据的位数。具体应用时,可以通过索引查询表进行查询,从而在元素查找表中进行查询从而确定需要用到的元素。
例如,假设伴随式S=(S1,S2,…,S2t),接收到的码字多项式为R(x)=rn-1xn-1+rn- 2xn-2+…+r1x+r0,由伴随式的定义知ST=HRT,即得到下式
因此,计算得到的伴随式表示为:Si=R(αi),i=1,2,3…,2t,其中,Si表示第i次迭代计算得到的伴随式,t表示纠错能力值。
在一个实施例中,错误位置多项式算法为无逆BM迭代算法。
在错误位置多项式算法为无逆BM迭代算法的实施例中,如图1所示,步骤S102基于多个伴随式,并依据预定义的错误位置多项式算法以及针对预定义的错误位置多项式算法的有限域信息,对错误位置多项式进行迭代计算,确定错误图样,包括:
步骤S1021(图中未示出):依据错误位置多项式算法的各轮迭代对应的所述伴随式,计算下一轮迭代所需的修正项参数;
步骤S1022(图中未示出):若任一轮迭代所需的修正项参数不为0,更新错误位置多项式算法对应的第二多项式的各项系数,并将更新后的第二多项式作为所述错误图样。
相关错误位置多项式算法一般包括Peterson算法、Euclid算法以及BM迭代算法,其中,Peterson算法能够直接解线性方程,原理简单,但当纠错能力值t比较大时,即在纠错能力t大于预定纠错能力值阈值的条件下,Peterson算法的运算量太大。因此,当纠错能力值t大于预定纠错能力值阈值时,一般采用Euclid算法或BM迭代算法进行求解。具体应用时,虽然Euclid算法相对于BM算法更容易理解,但硬件实现更复杂,而BM迭代算法则因其良好的硬件实现结构能够被广泛应用到工程实践,因此,本申请实施例中采用无逆BM迭代算法。
具体地,无逆BM迭代算法一般通过有逆迭代算法来确定,例如:
在有逆BM迭代算法中,第j+1次迭代的错误位置多项式为式中是一个逆元,即该式涉及到求逆运算,而在硬件实现中,求逆运算会占用较多的资源,不适合译码器的高速实现,因此本申请实施例对有逆BM迭代算法的改进,过程如下:
将有逆BM迭代算法公式左右两边同乘以di,可得diσ(j+1)(x)=diσ(j)(x)+djxj-iσ(i)(x),该式中逆元不存在了,σ(x)相当于乘了个系数。为了在硬件实现时更结构化得完成译码,对上式做修改即得到有逆BM迭代算法公式:σ(j+1)(x)=r(j)σ(j)(x)+djxiB(j)(x)。
在另一个实施例中,步骤S1022依据错误位置多项式算法的各轮迭代对应的伴随式,计算下一轮迭代所需的修正项参数,包括:
依据错误位置多项式算法获取到的伴随式,确定本轮迭代对应的第二多项式和下一轮迭代对应的第二多项式;
将下一轮迭代对应的第二多项式与本轮迭代对应的第二多项式的差值,确定为下一轮迭代所需的修正项参数,直至得到各轮迭代各自所需的修正项参数。
具体应用时,多个伴随式分别为:
即,通过步骤S101中伴随式计算得到上述2t个伴随式,通过对上述伴随式的迭代计算,来获取错误图样。
在又一个实施例中,如图1所示,步骤S103依据针对钱搜索算法的有限域信息,对错误图样进行验证,并依据验证结果对待译码数据进行纠错处理,包括:
步骤S1031(图中未示出):确定错误图样对应的第三多项式;
步骤S1032(图中未示出):基于针对钱搜索算法的有限域信息,确定第三多项式的根,并根据第三多项式的根,对第三多项式进行钱搜索处理,以得到第三多项式对应的至少一个错误位置;
步骤S1033(图中未示出):对第三多项式对应的至少一个错误位置进行译码处理,得到BCH码。
具体应用时,假设待译码数据的多项式为:
R(x)=rn-1xn-1+rn-2xn-2+…+r1x+r0;
针对该多项式的最高位rn-1的校验为:将αn-1的逆(αn-1)-1=α代入σ(x),因此,若错误图样σ(α)=1+σ1α+σ2α2+…+σtαt=0,说明rn-1有错,否则,说明rn-1无错;
同理,要检验次高位rn-2是否错误,把αn-2的逆(αn-2)-1=α2代入σ(x),如果错误图样σ(α2)=1+σ1(α2)+σ2(α2)2+…+σt(α2)t=0,说明rn-2有错,否则,说明rn-2无错。
依此类推,要判断rn-k是否错误,只要检验σ(αk)=1+σ1(αk)+σ2(αk)2+…+σt(αk)t=0是否成立即可。按照上述方式,依次对每一位rn-k(k=1,2,…,n)进行检验,即可得到σ(x)的根,从而完成钱搜索,该方法不必等全部差错数验算完毕后再译码输出,而是可以逐位译码,高位先译先出,大大降低了译码延时。
在一个实施例中,BCH译码器还配置有配置参数,以使BCH译码器依据所述配置参数来执行所述伴随式算法、错误位置多项式算法和所述钱搜索算法;
配置参数至少包括:
BCH译码器中预定义的多项式因子的阶数;
BCH译码器输出的码字的长度;
待译码数据的信息位长度;及
纠错能力。
本申请实施例中,纠错能力用于表征BCH译码器能纠正的错位的最大值。
具体应用时,BCH译码器接收到待译码数据时,既可以直接利用伴随式计算模块进行计算,也可以先利用预设的缓存模块(如FIFO模块)进行缓存以使伴随式计算模块通过读取缓存模块中存储的待译码数据来进行计算。
本申请实施例中,BCH译码器依据BCH译码器输出的码字的长度和待译码数据的信息位长度来控制接收到的译码,并使得伴随式算法依据BCH译码器中接收码字的多项式,以及预定义的多项式因子的阶数、BCH译码器中预定义的多项式因子的阶数以及纠错能力来确定用于伴随式算法信息多项式各项的系数、伴随式的个数,并进行伴随式计算,以确定伴随式的值,从而完成错位多项式计算耦合钱搜索。
为了进一步说明本申请实施例提供的基于BCH译码器的译码方法,下面以图2所示的流程示意图进行说明。
应用前,在BCH译码器中设置配置参数m,n,k,t,其中,m表示BCH编解码对应的生成多项式的阶数,n表示输出的BCH码的长度,k表示信息位长度,t表示纠错能力。
配置参数设置好之后,BCH译码器的译码流程如下:
步骤S201:计算伴随式S,即伴随式计算按照该参数获取待译码数据,即获取长度为n的待译码数据,以确定码字多项式;
步骤S202:错误位置多项式算法依据步骤S201中计算得到的伴随式来进行迭代计算,确定各轮迭代的修正项dj,若dj为零,则确定无需更新错误图样;若dj不为零,确定更新错误图样,直至迭代2t次,得到最终的错误图样;
步骤S203:对步骤S202中得到最终的错误图样中各个错误位置进行钱搜索并纠错,得到译码并输出。
实施例二
本申请实施例提供了一种BCH译码器。如图3所示,该BCH译码器30包括伴随式计算模块301、错误位置多项式计算模块302、钱搜索模块303以及至少一个用于存储有限域信息的存储模块304,有限域信息包括针对多个域元素的元素存储表及针对多个域元素的索引查询表。
伴随式计算模块301,用于依据预定义的伴随式算法以及针对伴随式算法的有限域信息,对BCH译码器接收到的待译码数据进行伴随式计算,得到多个伴随式;
错误位置多项式计算模块302,用基于多个所述伴随式,并依据预定义的错误位置多项式算法以及针对预定义的错误位置多项式算法的有限域信息,对错误位置多项式进行迭代计算,确定错误图样;
钱搜索模块303,用于依据预定义的钱搜索算法以及针对所述钱搜索算法的有限域信息,对所述错误图样进行验证,并依据验证结果对所述待译码数据进行纠错处理,得到BCH码。
相比较现有BCH译码器,本申请实施例通过在BCH译码器中配置的至少一个存储有有限域信息的存储模块来为伴随式计算模块、错误位置多项式计算模块、钱搜索模块提供运算所需的有限域,从而在译码过程中通过查询已存储的有限域来完成运算,实现简化译码过程的目的,解决现有BCH译码器的译码过程需要每次来计算要需要用到的域元素导致的译码过程复杂的问题。
在一个实施例中,如图3所示,伴随式计算模块301包括:
矩阵确定单元3011(图中未示出),用于确定伴随式矩阵,所述伴随式矩阵是依据针对所述伴随式计算模块的有限域信息确定的;
待译码数据处理单元3012(图中未示出),用于依据所述待译码数据,确定第一多项式;
伴随式计算单元3013(图中未示出),用于根据伴随式矩阵与第一多项式的乘积,确定多个伴随式。
在一个实施例中,所述错误位置多项式算法为无逆BM迭代算法。
在错误位置多项式算法为无逆BM迭代算法的实施例中,错误位置多项式计算模块302包括:
多项式确定单元3021(图中未示出),用于依据所述错误位置多项式算法的各轮迭代对应的所述伴随式,计算各轮迭代所需的修正项参数;
错位位置确定单元3022(图中未示出),用于若任一轮迭代所需的修正项参数不为0,更新错误位置多项式算法对应的第二多项式的各项系数,并将更新后的第二多项式作为所述错误图样。
在又一个实施例中,错位位置确定单元(图中未示出)包括:
修正项确定子单元,用于依据所述错误位置多项式算法获取到的所述伴随式,确定本轮迭代对应的所述第二多项式和所述下一轮迭代对应的所述第二多项式:
图样确定子单元,用于将下一轮迭代对应的所述第二多项式与本轮迭代对应的所述第二多项式的差值,确定为下一轮迭代所需的修正项参数,直至得到各轮迭代各自所需的修正项参数。
在又一个实施例中,如图3所示,钱搜索模块303包括:
钱搜索多项式确定子单元3031(图中未示出),用于确定所述错误图样对应的第三多项式;
钱搜索多项式根确定子单元3032(图中未示出),用于基于针对所述钱搜索算法的有限域信息,确定所述第三多项式的根,并根据所述第三多项式的根,对所述第三多项式进行钱搜索处理,以得到所述第三多项式对应的至少一个错误位置;
钱搜索多项式验证子单元3033(图中未示出),用于对所述第三多项式对应的至少一个错误位置进行译码处理,得到所述BCH码。
在又一个实施例中,BCH译码器还配置有配置参数,以使所述BCH译码器依据所述配置参数来执行所述伴随式算法、错误位置多项式算法和所述钱搜索算法;
所述配置参数至少包括:
所述BCH译码器中预定义的多项式因子的阶数;
所述BCH译码器输出的码字的长度;
所述待译码数据的信息位长度;及
纠错能力。
在又一个实施例中,BCH译码器包括第一存储模块和第二存储模块,其中,
第一存储模块用于向将伴随式计算模块和钱搜索模块提供各自运算所需的有限域信息;
第二存储模块用于向错误位置多项式计算模块提供运算所需的有限域信息。
具体地,第一存储模块和第二存储模块可以均设为ROM,即通过两个ROM来提供译码过程所需的有限域,其中一个ROM在不同时间被伴随式计算模块和钱搜索模块进行复用,而另一个ROM则为错误位置多项式计算模块的计算提供数据。
本实施例的基于BCH码的译码装置可执行本申请实施例一提供的基于BCH译码器的译码方法,其实现原理相类似,此处不再赘述。
实施例三
本申请实施例提供了一种基于BCH译码器的译码电路。如图4所示,该译码电路100包括伴随式计算电路101、错误位置多项式计算电路102、钱搜索电路103以及至少一个用于存储有限域信息的存储芯片,所述有限域信息包括针对多个域元素的元素存储表及针对多个域元素的索引查询表,所述伴随式计算电路、所述错误位置多项式计算电路、所述钱搜索电路分别与至少一个所述存储芯片电路连接,其中,
所述伴随式计算电路,用于依据预定义的伴随式算法以及针对所述伴随式算法的有限域信息,对所述BCH译码器接收到的待译码数据进行伴随式计算,得到多个伴随式;
所述错误位置多项式计算电路,用于基于多个所述伴随式,并依据预定义的错误位置多项式算法以及针对预定义的错误位置多项式算法的有限域信息,对错误位置多项式进行迭代计算,确定错误图样;
所述钱搜索电路,用于依据预定义的钱搜索算法以及针对所述钱搜索算法的有限域信息,对所述错误图样进行验证,并依据验证结果对所述待译码数据进行纠错处理,得到BCH码。
本申请实施例提供的基于BCH译码器的译码电路中存储芯片数量为4,分别设置为ROM1 Value 105、ROM1 Index 106、ROM2 Value 107与ROM2 Index 108。
本申请实施例提供的伴随式计算模块Syndrome 101的输入主要包括译码输入I_din、译码输入使能I_din_en、有限域域元素rom1_val_data1、有限域域元素索引rom_index_data1,输出包括数据缓存写使能ram_wr_en、数据缓存写地址ram_wr_addr、数据缓存写数据ram_wr_data、有限域域元素地址rom_val_addr1、有限域域元素索引地址rom_index_addr1、计算的伴随式值Syn_val、伴随式计算完成使能Syn_val_en。该伴随式计算模块Syndrome 101用于接收待译码数据并将其写入读写数据缓存模块RAM Data里,同时根据接收的待译码数据计算伴随式,在完成信息长度的数据接收时得到最终的伴随式的值,用并行方式将该值送入下一个模块(即错误位置多项式计算模块Sigma 102)使用。该过程采用并行方式进行数据接收及传输、写操作,同时计算伴随式,缩小了处理延时,有效地加快译码速度;而且计算伴随式模块与钱搜索模块时复用ROM1,该操作降低了硬件资源的使用。
本申请实施例提供的错误位置多项式计算模块Sigma 102的输入主要包括算的伴随式值Syn_val、伴随式计算完成使能Syn_val_en、有限域域元素地址rom_val_data3及rom_val_data4、有限域域元素索引rom_index_data3及rom_index_data4,输出包括有限域域元素地址rom_val_addr3及rom_val_addr4、计算的错误位置多项式值Sigma_val、错误位置多项式计算完成使能Sigma_val_en。该模块用于计算错误位置多项式,在迭代译码过程中,采用流水线处理方式计算修正项,该操作省去很多过程变量的存储,可以大大节省硬件资源;且采用并行方式计算错误位置多项式的前半部分和后半部分,可以缩小计算延时,使得迭代过程更加快速高效,之后将最终的错误位置多项式的值并行输出给下一个模块,也能加快译码速度。
本申请实施例提供的钱搜索模块Chien 103的输入主要包括计算的错误位置多项式值Sigma_val、错误位置多项式计算完成使能Sigma_val_en、有限域域元素rom_val_data2、有限域域元素索引rom_index_data2、数据缓存读数据ram_rd_data,输出包括有限域域元素地址rom_val_addr2、有限域域元素索引地址rom_index_addr2、数据缓存读地址ram_rd_addr、译码输出O_dout、译码输出使能O_dout_en。该模块用于求解错误位置多项式的根,读取读写数据缓存RAM Data里待译码数据并逐比特代入错误位置多项式,根据相应条件判断当前输入是否为多项式的根,以确定错误位置,将对应错误位置上的输入进行纠错即可得到译码数据,该过程与计算伴随式复用只读数据缓存ROM。
本申请实施例提供的ROM1 value 105与ROM1 index 106,均为单端口只读数据缓存ROM,分别存放有限域的多个域元素与针对多个域元素的索引查找表,以便在不同时间被伴随式计算模块Syndrome 101与钱搜索模块Chien 103复用,节省了硬件资源。
本申请实施例提供的ROM2 Value 107与ROM2 index 108,均为双端口只读数据缓存ROM,分别存放有限域的多个域元素与针对多个域元素的索引查找表。在错误位置多项式计算模块Sigma 102计算时进行使用,以使得错误位置多项式Sigma 102的前半部分和后半部分可以并行计算,这种处理方式缩小了译码延时,节省了硬件资源的使用,这就使得实现BCH译码的过程中用更少的硬件资源更快速地计算出错误位置多项式。
具体应用时,针对同一算法的有限域信息中针对多个域元素的元素查找表及针对多个域元素的索引查询表可以存储在一个ROM中,也可以分别存储在两个ROM中。例如,将该任一有限域信息中针对多个域元素的元素查找表存储在ROM_value中,将该任一有限域信息中针对多个域元素的索引查询表存储在ROM_add中,即通过两个ROM表来确定一个有限域信息,为后续译码过程中提供两组固定的数。这样在译码过程中,就直接依据这两个ROM表进行查询,从而加快译码速度。
具体地,针对不同算法的有限域信息均相同,有限域信息可以根据实际需要进行设定。例如,本申请实施例中采用的有限域为二扩域,即通过GF(2m)来确定多个域元素和针对多个域元素的索引查找表,GF(2m)中m为自然数,2m用于表示有限域的最大值。
本申请实施例通过至少一个有限域信息的设置,以便在译码过程中能够直接依据至少一个有限域信息中针对多个域元素的元素查询表和针对多个域元素的索引查找表进行查询,而无需每次来计算要需要用到的域元素,因此,本申请实施例支持算法过程里的流水线结构处理;同时简化了对有限域信息的计算。
具体应用时,还可以参照图4所示的基于BCH译码器的译码电路,增设RAM 104,其中,RAM 104输入主要包括数据缓存写使能ram_wr_en、数据缓存写地址ram_wr_addr、数据缓存写数据ram_wr_data、数据缓存读地址ram_rd_addr,输出为数据缓存读数据ram_rd_data。该RAM是一个读写数据缓存RAM,用于存储变化的待译码数据,提供给钱搜索模块使用。
本申请实施例通过ROM1 value 105、ROM1 index 106、ROM2 Value 107与ROM2index108的设置,使得BCH译码器支持算法过程里的流水线结构处理,同时有利于将有限域的乘法和异或转换为加法运算。
需要说明的是,本申请实施例提供的基于BCH译码器的译码电路中设置有四个存储芯片,具体应用时,还可以通过调整存储芯片的数量来调整译码电路的架构,例如,可以设置两个存储芯片,通过这两个存储芯片分别存储元素存储表和索引查询表,以使得随式计算模块Syndrome、错误位置多项式计算模块Sigma、钱搜索模块Chien通过查询ROM1value 105与ROM1 index 106提供的有限域信息来进行计算;或者设置六个存储芯片,任意两个存储芯片存储同一有限域信息的存储元素存储表和索引查询表。
实施例四
本申请实施例提供了一种终端,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行计算机程序时以实现上述基于BCH码的译码方法。
具体地,终端一般设置为接收机;处理器可以是CPU,通用处理器,DSP,ASIC,FPGA或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
具体地,处理器通过总线与存储器连接,总线可包括一通路,以用于传送信息。总线可以是PCI总线或EISA总线等。总线可以分为地址总线、数据总线、控制总线等。
存储器可以是ROM或可存储静态信息和指令的其他类型的静态存储设备,RAM或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM、CD-ROM或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
可选的,存储器用于存储执行本申请方案的计算机程序的代码,并由处理器来控制执行。处理器用于执行存储器中存储的应用程序代码,以实现图2所示实施例提供的基于BCH码的译码装置的动作。
本申请实施例通过在BCH译码器中配置的存储模块来架构BCH译码器,以便架构得到的BCH译码器能够确定针对伴随式计算模块、错位多项式计算模块以及钱搜索计算模块各自的有限域信息,从而实现BCH译码器的伴随式计算、错误多项式计算以及钱搜索均能够利用有限域进行计算的目的,进而提高译码速度;同时,在DVB系统中在同样的传输条件下能够增加数据容量,并能在同样的谱效率下提供更强劲的接收能力。
实施例五
本申请实施例提供了一种计算机可读存储介质,存储有计算机可执行指令,计算机可执行指令用于执行上述基于BCH码的译码方法。
本申请实施例通过在BCH译码器中配置的存储模块来架构BCH译码器,以便架构得到的BCH译码器能够确定针对伴随式计算模块、错位多项式计算模块以及钱搜索计算模块各自的有限域信息,从而实现BCH译码器的伴随式计算、错误多项式计算以及钱搜索均能够利用有限域进行计算的目的,进而提高译码速度;同时,在DVB系统中在同样的传输条件下能够增加数据容量,并能在同样的谱效率下提供更强劲的接收能力。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
以上是对本申请的较佳实施进行了具体说明,但本申请并不局限于上述实施方式,熟悉本领域的技术人员在不违背本申请精神的前提下还可作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
Claims (11)
1.一种基于BCH译码器的译码方法,其特征在于,BCH译码器上配置有限域信息,所述有限域信息包括针对多个域元素的元素存储表及针对多个域元素的索引查询表,该方法包括:
依据预定义的伴随式算法以及针对所述伴随式算法的有限域信息,对所述BCH译码器接收到的待译码数据进行伴随式计算,得到多个伴随式;
基于多个所述伴随式,并依据预定义的错误位置多项式算法以及针对预定义的错误位置多项式算法的有限域信息,对错误位置多项式进行迭代计算,确定错误图样;
依据预定义的钱搜索算法以及针对所述钱搜索算法的有限域信息,对所述错误图样进行验证,并依据验证结果对所述待译码数据进行纠错处理,得到BCH码。
2.根据权利要求1所述的基于BCH译码器的译码方法,其特征在于,所述依据预定义的伴随式算法以及针对所述伴随式算法的有限域信息,对所述BCH译码器接收到的待译码数据进行伴随式计算,得到多个伴随式,包括:
确定伴随式矩阵,所述伴随式矩阵是依据针对所述伴随式算法的有限域信息确定的;
依据所述待译码数据,确定第一多项式;
根据所述伴随式矩阵与所述第一多项式的乘积,确定多个伴随式。
3.根据权利要求1所述的基于BCH译码器的译码方法,其特征在于,所述错误位置多项式算法为无逆BM迭代算法。
4.根据权利要求3所述的基于BCH译码器的译码方法,其特征在于,所述基于多个所述伴随式,并依据预定义的错误位置多项式算法以及针对预定义的错误位置多项式算法的有限域信息,对错误位置多项式进行迭代计算,确定错误图样,包括:
依据所述错误位置多项式算法的各轮迭代对应的所述伴随式,计算各轮迭代各自所需的修正项参数;
若任一轮迭代所需的修正项参数不为0,更新所述错误位置多项式算法对应的第二多项式的各项系数,并将更新后的所述第二多项式作为所述错误图样。
5.根据权利要求4所述的基于BCH译码器的译码方法,其特征在于,所述依据所述错误位置多项式算法的各轮迭代对应的所述伴随式,计算各轮迭代所需的修正项参数,包括:
依据所述错误位置多项式算法获取到的所述伴随式,确定本轮迭代对应的所述第二多项式和所述下一轮迭代对应的所述第二多项式;
将下一轮迭代对应的所述第二多项式与本轮迭代对应的所述第二多项式的差值,确定为下一轮迭代所需的修正项参数,直至得到各轮迭代各自所需的修正项参数。
6.根据权利要求1所述的基于BCH译码器的译码方法,其特征在于,所述依据针对所述钱搜索算法的有限域信息,对所述错误图样进行处理,包括:
确定所述错误图样对应的第三多项式;
基于针对所述钱搜索算法的有限域信息,确定所述第三多项式的根,并根据所述第三多项式的根,对所述第三多项式进行钱搜索处理,以得到所述第三多项式对应的至少一个错误位置;
对所述第三多项式对应的至少一个错误位置进行译码处理,得到所述BCH码。
7.根据权利要求1所述的基于BCH译码器的译码方法,其特征在于,所述BCH译码器还配置有配置参数,以使所述BCH译码器依据所述配置参数来执行所述伴随式算法、错误位置多项式算法和所述钱搜索算法;
所述配置参数至少包括:
所述BCH译码器中预定义的多项式因子的阶数;
所述BCH译码器输出的码字的长度;
所述待译码数据的信息位长度;及
纠错能力。
8.一种BCH译码器,其特征在于,该BCH译码器包括伴随式计算模块、错误位置多项式计算模块、钱搜索模块和至少一个存储有有限域信息的存储模块,所述有限域信息包括针对多个域元素的元素存储表及针对多个域元素的索引查询表,其中,
所述伴随式计算模块,用于依据预定义的伴随式算法以及针对所述伴随式算法的有限域信息,对所述BCH译码器接收到的待译码数据进行伴随式计算,得到多个伴随式;
所述错误位置多项式计算模块,用于基于多个所述伴随式,并依据预定义的错误位置多项式算法以及针对预定义的错误位置多项式算法的有限域信息,对错误位置多项式进行迭代计算,确定错误图样;
所述钱搜索模块,用于依据预定义的钱搜索算法以及针对所述钱搜索算法的有限域信息,对所述错误图样进行验证,并依据验证结果对所述待译码数据进行纠错处理,得到BCH码。
9.一种基于BCH译码器的译码电路,其特征在于,包括伴随式计算电路、错误位置多项式计算电路、钱搜索电路以及至少一个用于存储有限域信息的存储芯片,所述存储芯片中存储的所述有限域信息包括针对多个域元素的元素存储表及针对多个域元素的索引查询表,所述伴随式计算电路、所述错误位置多项式计算电路、所述钱搜索电路分别与至少一个所述存储芯片电路连接,其中,
所述伴随式计算电路,用于依据预定义的伴随式算法以及针对所述伴随式算法的有限域信息,对所述BCH译码器接收到的待译码数据进行伴随式计算,得到多个伴随式;
所述错误位置多项式计算电路,用于基于多个所述伴随式,并依据预定义的错误位置多项式算法以及针对预定义的错误位置多项式算法的有限域信息,对错误位置多项式进行迭代计算,确定错误图样;
所述钱搜索电路,用于依据预定义的钱搜索算法以及针对所述钱搜索算法的有限域信息,对所述错误图样进行验证,并依据验证结果对所述待译码数据进行纠错处理,得到BCH码。
10.一种终端,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1至7中任一项所述的基于BCH译码器的译码方法。
11.一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行权利要求1至7中任一项所述的基于BCH译码器的译码方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911409691.XA CN111030709A (zh) | 2019-12-31 | 2019-12-31 | 基于bch译码器的译码方法、bch译码器及应用其的电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911409691.XA CN111030709A (zh) | 2019-12-31 | 2019-12-31 | 基于bch译码器的译码方法、bch译码器及应用其的电路 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111030709A true CN111030709A (zh) | 2020-04-17 |
Family
ID=70197564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911409691.XA Pending CN111030709A (zh) | 2019-12-31 | 2019-12-31 | 基于bch译码器的译码方法、bch译码器及应用其的电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111030709A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111669185A (zh) * | 2020-06-24 | 2020-09-15 | 湖南国科微电子股份有限公司 | 一种bch译码方法、装置、存储介质及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1561005A (zh) * | 2004-02-20 | 2005-01-05 | 汇智系统股份有限公司 | 快速纠双错bch码译码器 |
CN103762991A (zh) * | 2013-12-20 | 2014-04-30 | 记忆科技(深圳)有限公司 | 一种bch码译码方法及系统 |
CN107204782A (zh) * | 2017-04-10 | 2017-09-26 | 北京大学 | 一种bch译码器及生成该译码器的编译器的实现方法 |
US20180205398A1 (en) * | 2017-01-19 | 2018-07-19 | Samsung Electronics Co., Ltd. | Bm-based fast chase decoding of binary bch codes through degenerate list decoding |
CN109347489A (zh) * | 2018-11-23 | 2019-02-15 | 清华大学 | 一种用于通信的基于图形处理器的bch码并行译码方法 |
-
2019
- 2019-12-31 CN CN201911409691.XA patent/CN111030709A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1561005A (zh) * | 2004-02-20 | 2005-01-05 | 汇智系统股份有限公司 | 快速纠双错bch码译码器 |
CN103762991A (zh) * | 2013-12-20 | 2014-04-30 | 记忆科技(深圳)有限公司 | 一种bch码译码方法及系统 |
US20180205398A1 (en) * | 2017-01-19 | 2018-07-19 | Samsung Electronics Co., Ltd. | Bm-based fast chase decoding of binary bch codes through degenerate list decoding |
CN107204782A (zh) * | 2017-04-10 | 2017-09-26 | 北京大学 | 一种bch译码器及生成该译码器的编译器的实现方法 |
CN109347489A (zh) * | 2018-11-23 | 2019-02-15 | 清华大学 | 一种用于通信的基于图形处理器的bch码并行译码方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111669185A (zh) * | 2020-06-24 | 2020-09-15 | 湖南国科微电子股份有限公司 | 一种bch译码方法、装置、存储介质及电子设备 |
CN111669185B (zh) * | 2020-06-24 | 2023-09-26 | 湖南国科微电子股份有限公司 | 一种bch译码方法、装置、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6639865B2 (en) | Memory device, method of accessing the memory device, and reed-solomon decoder including the memory device | |
US10243589B2 (en) | Multi-bit error correction method and apparatus based on a BCH code and memory system | |
JP4038518B2 (ja) | 低密度パリティ検査コードを効率的に復号する方法及び装置 | |
KR100683624B1 (ko) | 가속화된 리드-솔로몬 오류정정 | |
US7853854B2 (en) | Iterative decoding of a frame of data encoded using a block coding algorithm | |
US8683293B2 (en) | Method and system for fast two bit error correction | |
US10790857B1 (en) | Systems and methods for using decoders of different complexity in a hybrid decoder architecture | |
US20190108093A1 (en) | Encoding and decoding of permuted cyclic codes | |
US5983389A (en) | Error correction decoding apparatus | |
KR100403634B1 (ko) | 고속 파이프라인 리드-솔로몬 디코더에 적용하기 위한메모리 장치와 메모리 액세스 방법 및 그 메모리 장치를구비한 리드-솔로몬 디코더 | |
KR101314232B1 (ko) | 에러 정정 코드의 부호화 및 복호화 방법 그리고 코덱 | |
CN111030709A (zh) | 基于bch译码器的译码方法、bch译码器及应用其的电路 | |
US10193574B1 (en) | Efficient syndrome calculation in processing a GLDPC code | |
CN108880567B (zh) | 错误检查和纠正解码器 | |
CN107688506B (zh) | 一种流水结构的bch译码系统 | |
US8255777B2 (en) | Systems and methods for locating error bits in encoded data | |
US8042026B2 (en) | Method for efficiently calculating syndromes in reed-solomon decoding, and machine-readable storage medium storing instructions for executing the method | |
KR100594002B1 (ko) | 가변 처리가 가능한 파이프라인 구조의 리드 솔로몬 복호기 | |
US9236890B1 (en) | Decoding a super-code using joint decoding of underlying component codes | |
CN111384976B (zh) | 稀疏校验矩阵的存储方法和读取方法 | |
CN111769839A (zh) | 快速的比特翻转译码方法 | |
CN117081611B (zh) | 一种基于并行处理的译码方法和设备 | |
WO2008069465A1 (en) | Method and apparatus for checking correction errors using cyclic redundancy check | |
CN111211792B (zh) | Turbo译码方法、装置及系统 | |
CN114237969A (zh) | 并行bch纠错译码的方法及装置 |
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 | ||
CB02 | Change of applicant information |
Address after: 211135 floor 1-3, auxiliary building, building 6, artificial intelligence Industrial Park, Nanjing City, Jiangsu Province Applicant after: Zhongke Nanjing mobile communication and computing Innovation Research Institute Address before: 211135 floor 1-3, auxiliary building, building 6, artificial intelligence Industrial Park, Nanjing City, Jiangsu Province Applicant before: INSTITUTE OF COMPUTING TECHNOLOGY, CHINESE ACADEMY OF SCIENCES, NANJING INSTITUTE OF MOBILE COMMUNICATIONS AND COMPUTING INNOVATION |
|
CB02 | Change of applicant information |