CN106506011A - 电力线工频通信编码纠错方法 - Google Patents
电力线工频通信编码纠错方法 Download PDFInfo
- Publication number
- CN106506011A CN106506011A CN201610957698.5A CN201610957698A CN106506011A CN 106506011 A CN106506011 A CN 106506011A CN 201610957698 A CN201610957698 A CN 201610957698A CN 106506011 A CN106506011 A CN 106506011A
- Authority
- CN
- China
- Prior art keywords
- code
- error
- polynomial
- calculating
- syndrome
- 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.)
- Granted
Links
- 238000012937 correction Methods 0.000 title claims abstract description 38
- 230000006854 communication Effects 0.000 title claims abstract description 30
- 238000004891 communication Methods 0.000 title claims abstract description 30
- 208000011580 syndromic disease Diseases 0.000 claims abstract description 43
- 238000000034 method Methods 0.000 claims description 40
- 238000004364 calculation method Methods 0.000 claims description 10
- 230000005540 biological transmission Effects 0.000 description 8
- 125000004122 cyclic group Chemical group 0.000 description 8
- 238000009826 distribution Methods 0.000 description 3
- 229910002056 binary alloy Inorganic materials 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000009897 systematic effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000007175 bidirectional communication Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
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
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/1525—Determination and particular use of error location polynomials
-
- 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
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/1545—Determination of error locations, e.g. Chien search or other methods or arrangements for the determination of the roots of the error locator polynomial
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明涉及一种电力线工频通信编码纠错方法,包括:接收R(x)码,根据接收到的所述R(x)码计算伴随式S(x),根据所述伴随式S(x)计算获取错误位置多项式σ(x),解出所述多项式σ(x)的根,得到错误位置数,根据所述错误位置数计算获得错误图样E(x),通过所述R(x)码和所述错误图样E(x)计算得出纠错后的C(x)码,本发明能够纠正随机错误和突发错误,有效提高了编码的纠错效率,有效提高电力线工频通信的准确性。
Description
技术领域
本发明涉及电力线工频通信技术领域,特别是涉及电力线工频通信编码纠错方法。
背景技术
电力线工频通信利用电网电压和电流波形的微小畸变携带信息来实现双向通信,由于低频畸变信号可以跨变压器台区直接传输,该技术有望在配电自动化等领域发挥重要作用;同时,由于电力线并非专门的通信线路,配电网的复杂结构和各类用电负荷产生的干扰噪声会造成工频通信数据的误码,为了在强噪声环境中提高通信性能,纠错编码是必须采用的技术手段。
纠错编码是提高信息传输可靠性的一种重要手段。目前在数据传输中,主要有自动请求重发(ARQ)、前向纠错(FEC)、混合纠错(HEC)、BCH纠错编码等方式。汉明码只能纠正一位,但不能纠正多位随机错误甚至突发错误。BCH码可以纠正多位随机错误,但不能纠正多个突发错误。局限于单一码长及固定纠错能力的信道编码已经不能满足高效纠错需求。
发明内容
基于此,有必要针对传统电力线工频通信中编码错误率高,准确性低,效率低下的缺陷,提供一种电力线工频通信编码纠错方法。
一种电力线工频通信编码纠错方法,包括:
接收R(x)码;
根据接收到的所述R(x)码计算伴随式S(x);
根据所述伴随式S(x)计算获取错误位置多项式σ(x);
解出所述多项式σ(x)的根,得到错误位置数;
根据所述错误位置数计算获得错误图样E(x);
通过所述R(x)码和所述错误图样E(x)计算得出纠错后的C(x)码。
在一个实施例中,所述根据接收到的所述R(x)码计算伴随式S(x)步骤包括:
通过将校验多项式代入所述R(x)码,计算获得所述伴随式S(x)。
在一个实施例中,所述根据接收到的所述R(x)码计算伴随式S(x)的步骤之后还包括:
判断伴随式S(x)是否为0,若否,则执行所述根据所述伴随式S(x)计算获取错误位置多项式σ(x)的步骤,若是,则输出所述R(x)码。
在一个实施例中,所述根据所述伴随式S(x)计算获取错误位置多项式σ(x)的步骤包括:
根据所述伴随式S(x),采用BM迭代算法计算获取所述错误位置多项式σ(x)。
在一个实施例中,所述解出所述多项式σ(x)的根,得到错误位置数的步骤之后还包括:
根据所述伴随式S(x)和所述多项式σ(x)计算获得差错幅值;
所述根据所述错误位置数计算获得错误图样E(x)的步骤包括:
根据所述错误位置数和所述差错幅值计算获得错误图样E(x)。
在一个实施例中,所述解出所述多项式σ(x)的根,得到错误位置数的步骤包括:
采用钱氏搜索法解出所述多项式σ(x)的根,得到所述错误位置数。
在一个实施例中,所述通过所述R(x)码和所述错误图样E(x)计算得出纠错后的C(x)码的步骤包括:
对所述R(x)码和所述错误图样E(x)进行求差计算得出纠错后的所述C(x)码。
在一个实施例中,在所述接收R(x)码的步骤之前还包括:
获取本原多项式;
根据所述本原多项式计算获取GF(q)域上的一个本原元;
根据所述本原元生成待发送的所述C(x)码。
在一个实施例中,所述根据所述本原元生成待发送的多项式C(x)码的步骤包括:
根据所述本原元,采用除法求余计算生成待发送的所述C(x)码。
在一个实施例中,所述根据所述本原元,采用除法求余计算生成待发送的所述C(x)码的步骤包括:
根据所述本原元,采用除法求余计算生成用于纠正t个符号错误的多项式g(x);
根据所述多项式g(x)计算生成待发送的所述C(x)码。
上述电力线工频通信编码纠错方法,通过接收R(x)码,根据接收到的所述R(x)码计算伴随式S(x),根据所述伴随式S(x)计算获取错误位置多项式σ(x),解出所述多项式σ(x)的根,得到错误位置数,根据所述错误位置数计算获得错误图样E(x),通过所述R(x)码和所述错误图样E(x)计算得出C(x)码,从而获取到放的C(x)码,能够纠正随机错误和突发错误,有效提高了编码的纠错效率,有效提高电力线工频通信的准确性。
附图说明
图1为一实施例的电力线工频通信编码纠错方法的流程示意图;
图2为另一实施例的电力线工频通信编码纠错方法的流程示意图;
图3为另一实施例的电力线工频通信编码纠错方法的流程示意图
图4为另一实施例的电力线工频通信编码纠错方法的流程示意图;
图5为一实施例的RS编码电路示意图。
具体实施方式
为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的较佳实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目标是使对本发明的公开内容的理解更加透彻全面。
在一个实施例中,如图1所示,一实施例的一种电力线工频通信编码纠错方法,包括以下步骤:
步骤104,接收R(x)码。
具体地,该R(x)码为多项式R(x),该多项式R(x)由接收端接收。例如,接收端接收数据包,该数据包包含多项式R(x)。
步骤106,根据接收到的所述R(x)码计算伴随式S(x)。
求伴随式的方法是将校验多项式代入,得到相应的伴随式S(x)。
步骤108,根据所述伴随式S(x)计算获取错误位置多项式σ(x)。
步骤110,解出所述多项式σ(x)的根,得到错误位置数。
具体地,求出错位多项式σ(x)的根,这些根的倒数即差错位置,进而获得错误位置数。
步骤112,根据所述错误位置数计算获得错误图样E(x)。
步骤114,通过所述R(x)码和所述错误图样E(x)计算得出纠错后的C(x)码。
具体地,该C(x)码为多项式C(x),该多项式C(x)由发送端生成并发送,例如,发送端发送数据包,该数据包包含了多项式C(x),通过所述R(x)码和所述错误图样E(x)即可计算得出发送端生成并发送的C(x)码,从而能够对发送过程中发生的错误进行有效纠错。
通过接收R(x)码,根据接收到的所述R(x)码计算伴随式S(x),根据所述伴随式S(x)计算获取错误位置多项式σ(x),解出所述多项式σ(x)的根,得到错误位置数,根据所述错误位置数计算获得错误图样E(x),通过所述R(x)码和所述错误图样E(x)计算得出C(x)码,从而获取到放的C(x)码,能够纠正随机错误和突发错误,有效提高了编码的纠错效率,有效提高电力线工频通信的准确性。
在一个实施例中,所述步骤106包括:
通过将校验多项式代入所述R(x)码,计算获得所述伴随式S(x)。
在一个实施例中,如图2所示,所述步骤106之后还包括:
步骤107,判断伴随式是否为0,若否,则执行步骤108,若是,则输出所述R(x)码。
具体地,如果伴随式不为0,则信息在传输过程中有错误产生,需纠正;如果伴随式为0,则说明信息接受正确无错,则直接输出R(x)码,该接收到的R(x)码与发送的C(x)码完全一致。
在一个实施例中,所述步骤108包括:
根据所述伴随式S(x),采用BM迭代算法计算获取所述错误位置多项式σ(x)。
在一个实施例中,如图2所示,所述步骤110之后还包括:
步骤111,根据所述伴随式S(x)和所述多项式σ(x)计算获得差错幅值。
所述步骤112包括:根据所述错误位置数和所述差错幅值计算获得错误图样E(x)。
在一个实施例中,所述步骤110包括:
采用钱氏搜索法解出所述多项式σ(x)的根,得到所述错误位置数。
在一个实施例中,所述步骤114包括:
对所述R(x)码和所述错误图样E(x)求差计算得出C(x)码。
在一个实施例中,如图3所示,在步骤104之前还包括:
步骤101,获取本原多项式。
步骤102,根据所述本原多项式计算获取GF(q)域上的一个本原元。
步骤103,根据所述本原元生成待发送的所述C(x)码。
在一个实施例中,所述步骤102包括:根据所述本原元,采用除法求余计算生成待发送的所述C(x)码。
在一个实施例中,步骤102包括:
步骤102a,根据所述本原元,采用除法求余计算生成用于纠正t个符号错误的多项式g(x)。
步骤102b,根据所述多项式g(x)计算生成待发送的所述C(x)码。
本实施例为编码过程,为发送端的C(x)码生成过程:
RS编码时,首先应确定GF(q)域上一个本原元α,构成生成多项式g(x)。编码后生成大发送码字c(x),其中m(x)为信息多项式。
RS译码时,若发送的码字多项式为C(x),接收码字多项式R(x),错误多项式E(x)。通过迭代算法从接收码字多项式R(x)中求得错误位置数及错误幅值,最后用R(x)减去E(x),即得发送的码字C(x)的估值。
RS编码时,首先找出GF(q)域上一个本原元α,构成生成多项式。以RS(31,15)编码为例,RS(31,15)是伽罗华域GF(25)的多进制码,信息位k=15,本原码长n=31,校验位n-k=16,其中n=q-1=2m-1,m=5,即每一个RS码符号含有5比特。可纠错t=8个符号长的25进制的随机或突发性错误。
GF(25)域上元素的本原多项式为p(x)=x5+x2+1。设α为本原多项式为p(x)=x5+x2+1的根,即α5=α2+1。
具体地,RS码是循环码的一种它的编码方法与一般循环码的编码方法完全一致。设输入信息码为m(x),编码后的码组为c(x),生成多项式为g(x)。
一般的循环码可以用一个多项式乘法器产生,α5=α2+1。对于系统循环码,码字的前k位是信息位本身,后n-k位是校验位,是m(x)xn-k除以g(x)的余式r(x)。这样,RS编码也可以用一个多项式除法器实现。因此RS码的编码变成用除法求余的过程由于纠t个符号错误的生成多项式为:
g(x)=g2tx2t+g2t-1x2t-1+...+g1x+g0(g2t=1) (公式16)
该除法电路最后输出结果为:
c(x)=m(x)xn-k+[m(x)xn-k]modg(x) (公式17)
其中:
m(x)xn-k=mkxn-1+mk-1xn-2+...+m1xn-k+0xn-k-1+...+0x+0 (公式18)
RS(31,15)编码时,要求输入信息位k=15,输出RS码码长n=31,校验位n-k=16,可纠错t=8。其生成多项式为:
根据公式2,编码后生成待发送码字c(x)可表示为:
c(x)=m(x)x16+[m(x)x16]modg(x) (公式20)
下面是一个具体的实施例:RS码,即Reed-solomon codes,是一种特殊的非二进制前向纠错的信道编码,对由校正过采样数据所产生的多项式有效。当接收器正确地收到足够的点后,它就可以恢复原来的多项式,即使接收到的多项式上有很多点被噪声干扰失真。RS码具有良好的检错和纠错能力,不但能够纠正一般的随机差错,而且擅长纠正突发差错。
对于一个能纠正t个错误的RS码(n,k),具体由如下参数:码长为n=q-1,校验位为n-k=2t,最小距离为dmin=2t+1,生成多项式为g(x)=(x-α)(x-α2)...(x-α2t),其中α为GF(q)域上的本原元。
RS码码长为n=q-1,监督元数目为r=2t,能纠正t个错误。若每个q禁止码元用其对应的m位二进制码元表示,那么可得到一个二进制码参数:码长为n=m(2m-1)个二进元,监督元数目为r=2tm个码元。RS码具有如下性质:
(1)任何一个GF(q)上的(n,k)RS码,对于任何k个符号位置,将只有一个与这个位置内qk中符号组合之一的码字。
(2)RS码最小码距是dmin=2t+1=n-k+1,由于(n,k)线性分组码的最小距离必定小于等于n-k+1,即RS码的最小距离达到了所能到达的最大值,其设计距离和设计距离一致,故它是纠错能力最佳的线性分组码。
基于矩阵RS码可描述为:发码C=(cn-1,...c1,c0),收码R=(rn-1,...r1,r0),差错图案E=(en-1,...e1,e0),伴随式S=(sn-k-1,...s1,s0)及关系式R=C+E和S=RHT=EHT。
多项式RS码可描述为:码多项式C(x)=cn-1xn-1+cn-2xn-2+...+c1x+c0,收码R(x)=rn-1xn-1+rn-2xn-2+...+r1x+0r,差错图案E(x)=en-1xn-1+en-2xn-2+...+e1x+e0,
伴随式S(x)=sn-k-1xn-k-1+sn-k-2xn-k-2+...+e1x+e以及关系式C(x)+E(x)=R(x),S(x)=R(x)modg(x)=E(x)modg(x)。
RS编码时,首先应确定GF(q)域上一个本原元α,构成生成多项式g(x)。编码后生成大发送码字c(x),其中m(x)为信息多项式。
RS译码时,若发送的码字多项式为C(x),接收码字多项式R(x),错误多项式E(x)。通过迭代算法从接收码字多项式R(x)中求得错误位置数及错误幅值,最后用R(x)减去E(x),即得发送的码字C(x)的估值。
RS编码时,首先找出GF(q)域上一个本原元α,构成生成多项式。以RS(31,15)编码为例,RS(31,15)是伽罗华域GF(25)的多进制码,信息位k=15,本原码长n=31,校验位n-k=16,其中n=q-1=2m-1,m=5,即每一个RS码符号含有5比特。可纠错t=8个符号长的25进制的随机或突发性错误。
GF(25)域上元素的本原多项式为p(x)=x5+x2+1。设α为本原多项式为p(x)=x5+x2+1的根,即α5=α2+1。
RS码是循环码的一种它的编码方法与一般循环码的编码方法完全一致。设输入信息码为m(x),编码后的码组为c(x),生成多项式为g(x)。
一般的循环码可以用一个多项式乘法器产生,α5=α2+1。对于系统循环码,码字的前k位是信息位本身,后n-k位是校验位,是m(x)xn-k除以g(x)的余式r(x)。这样,RS编码也可以用一个多项式除法器实现。由此RS码的编码变成用除法求余的过程,由于纠正t个符号错误的生成多项式为:
g(x)=g2tx2t+g2t-1x2t-1+...+g1x+g0(g2t=1) (公式1)
该除法电路最后输出结果为:
c(x)=m(x)xn-k+[m(x)xn-k]modg(x) (公式2)
其中:
m(x)xn-k=mkxn-1+mk-1xn-2+...+m1xn-k+0xn-k-1+...+0x+0 (公式3)
RS(31,15)编码时,要求输入信息位k=15,输出RS码码长n=31,校验位n-k=16,可纠错t=8。其生成多项式为:
根据公式2,编码后生成待发送码字c(x)可表示为:
c(x)=m(x)x16+[m(x)x16]modg(x) (公式5)
至此RS(31,15)码编码结束。
RS编码时,当发送数据为14字节(112bit)时釆用RS(31,23)编码;发送8字节(64bit)数据时采用RS(31,15)编码。发送14字节(112bit)数据时,则112bit在后加入3位二进制0,使其组成23位码字长度(115bit)的信息段。满足RS(31,23)编码信息位位数之后即可进行编码。
在接收端,译码方法同RS(31,23),译码后将添加到信息位后面的3位二进制0去掉后即得到原始数据。
对于8字节(64bit)长度的数据编译码,采用相同的方法,在64bit的信息位后面添加11bit二进制0,得到15个码字符号(75bit)后进行RS(31,15)编码,译码后将添加的零删除即可。
工频通信传输数据采用RS(127,115)编码时:当发送数据为k(98≤k≤100)个字节时,则在k个字节后通过加入全零bit,组成115个码字长度的信息段,满足相应编码器信息位长度后再进行RS(127,115)编码。在接收端,译码方法同RS(127,115),译码结束后将信息位后面的0去掉后即得到k位原始数据。
根据RS码的生成多项式得到各码的生成多项式:
RS(31,15)码:
RS(31,23)码:
g(x)=x8+α3x7+α22x6+α19x5+α21x4+α16x3+α24x2+α29x+α5 (公式7)
RS(127,115)码:
根据公式6,RS编码电路即是完成信息位多项式m(x)×n-k的乘法运算及[m(x)×n-k]modg(x)的求余运算。
三种不同长度的RS编码器电路可分为三部分,如图5所示,第一部分(Ⅰ)为计数及控制选择器,通过计数器前的选择端选择该对其进行哪一种RS编码;第二部分(Ⅱ)为基于GF(25)上的乘除法电路,该电路实现短数据RS(31,23)及RS(31,15)编码;第三部分(Ⅲ)为基于GF(27)上的乘除法电路,该电路实现长数据RS(127,115)编码。
该编码电路的原理是RS编码电路的求余运算用n-k级的移位寄存器来实现,因此可以选取n-k级移位寄存器。电路的工作原理描述如下:
计数器counter前加一选择端sel,控制进入哪一种RS编码。信息输入接counter后,由于计数器counter与selector2相连,则输入的信息计数后从selector2输出,同时counter输出一个控制信号,该信号控制信息位与校验位的输出。selector2输出端将k个信息码字送入求余运算电路,进行相应的RS编码。求余后得到n-k位监督码由selector1送入selector2,与原k位信息码字一起通过out输出,即生成n位RS码。
要对15位码字进行编码,则选择sel端置为01,编码电路进入RS(31,15)码的编码状态;对23位码字进行编码则sel置为10,编码电路进行RS(31,23)码编码,这时由于该编码求余运算只需8级移位寄存器来实现,于是选择端sel1控制后面8级移位寄存器(D8...D15)不参加工作。对115位长数据码字编码时,sel置为11,进行RS(127,115)码编码,编码电路选择GF(27)的12级的移位寄存器(D16...D27)来实现。
在本实施例中,RS码的译码算法包括:Peterson-Gorensten-Zierler译码算法,Berlekamp-Massey译码算法,Forney算法,欧几里德译码算法,对于码字长度较大、码率高的RS码,例如,RS码的译码算法为采用BM算法和Euclid算法译码,BM算法和Euclid算法译长码具有性能好,结构较为规则的特点。
接收端接收到RS码后,对其解码,如图4所示,解码过程包括:
(1)由接收到的R(x)计算伴随式S(x)。
(2)由伴随式S(x)求得错误位置多项式σ(x)。
(3)用钱搜索解出σ(x)的根,得到错误位置数,从而确定错误位置。
(4)由错误位置数求得错误值,从而得到错误图样E(x)。
(5)通过计算R(x)-E(x),完成纠错。
发送的码多项式为C(x),信道造成的差错多项式为E(x),接收码多项式为R(x),具体译码步骤为:
计算伴随式:
求伴随式的方法是将校验多项式代入,得到相应的伴随式。如果伴随式不为0,则信息在传输过程中有错误产生,需纠正;反之信息接受正确无错。
其中,
把x=α代入R(x)可得s1,把x=α2代入R(x)可得s2,依次类推,把x=α2t代入R(x)可得s2t。以及S=RHT=[R(α),R(α2),..R(α2t)],或表示为Sj=R(αj)j=1,2,...,2t。
确定错位位置多项式:
纠错不仅要考虑差错位置还要考虑差错幅值。假设有v个差错分布在j1,j2...jv位上,其中,0≤j1≤j2<...<jv≤n-1,ji表示第i个差错所在的位置。差错幅值分别是ej1,ej2,...,ejv,则
E(x)=ej1xj1+ej2xj2+...+ejvxjv (公式11)
令xji=βi,(i=1,2,...,v),代入(公式3)式得:
E(x)=ej1β1+ej2β2+...+ejvβv (公式12)
将2t个连续根依次代入生成多项式,可得2t个伴随式元素:
根据第一步求出的伴随式元素S1,S2,...S2t,即可解方程求出这2v个未知数。即2v个差错位置S1,S2,...S2t和2v个差错幅值ej1,ej2,...,ejv。
求错位位置及差错幅值:
令错误位置多项式为:
σ(x)=1+σ1x+σ2x2+...+σvxv=(1-β1x)(1-β2x)...(1-βvx) (公式14)
采用BM迭代算法求解σ(x):
根据迭代法得到可得σ1,σ2,...,σv,进而求出β1,β2,...,βv。这里采用钱氏搜索来求σ(x)的根,具体地,把“求根”变为“验根”。即把GF(2m)中所有元素α0,α1,...,αn-1逐一代入σ(x)中检验,判断是否是根,从而得出差错位置数。若是错误位置多项式的根,表明有错;反之,若不是错误位置多项式的根,则无错。这样逐一进行检验后,即得到了σ(x)的根,所得出的结果就是错误发生的位置。
经过上一步计算,差错个数v和差错位置数β1,β2,...,βv已成为巳知数。根据伴随式和σ(x)的系数求出差错幅值ej1,ej2,...,ejv。即:
求错误图样E(x),得出C(x):
求出错位多项式σ(x)的根,这些根的倒数即差错位置,进而求得错误图样多项式E(x)。E(x)与接收到的码字R(x)叠加,得到最后译码估值
在译码前首先对输入信息长度计数,若信息长度大于31位,则进入RS(127,115)译码。若信息长度等于31,进入RS(31,15)和RS(31,23)译码程序,根据有效信息本身携带的控制位C及数据长度L判断原信息是15位或者是23位,若不是这两种信息则纠错失败,丢弃该数据包。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种电力线工频通信编码纠错方法,其特征在于,包括:
接收R(x)码;
根据接收到的所述R(x)码计算伴随式S(x);
根据所述伴随式S(x)计算获取错误位置多项式σ(x);
解出所述多项式σ(x)的根,得到错误位置数;
根据所述错误位置数计算获得错误图样E(x);
通过所述R(x)码和所述错误图样E(x)计算得出纠错后的C(x)码。
2.根据权利要求1所述的电力线工频通信编码纠错方法,其特征在于,所述根据接收到的所述R(x)码计算伴随式S(x)步骤包括:
通过将校验多项式代入所述R(x)码,计算获得所述伴随式S(x)。
3.根据权利要求1所述的电力线工频通信编码纠错方法,其特征在于,所述根据接收到的所述R(x)码计算伴随式S(x)的步骤之后还包括:
判断伴随式S(x)是否为0,若否,则执行所述根据所述伴随式S(x)计算获取错误位置多项式σ(x)的步骤,若是,则输出所述R(x)码。
4.根据权利要求1所述的电力线工频通信编码纠错方法,其特征在于,所述根据所述伴随式S(x)计算获取错误位置多项式σ(x)的步骤包括:
根据所述伴随式S(x),采用BM迭代算法计算获取所述错误位置多项式σ(x)。
5.根据权利要求1所述的电力线工频通信编码纠错方法,其特征在于,所述解出所述多项式σ(x)的根,得到错误位置数的步骤之后还包括:
根据所述伴随式S(x)和所述多项式σ(x)计算获得差错幅值;
所述根据所述错误位置数计算获得错误图样E(x)的步骤包括:
根据所述错误位置数和所述差错幅值计算获得错误图样E(x)。
6.根据权利要求1所述的电力线工频通信编码纠错方法,其特征在于,所述解出所述多项式σ(x)的根,得到错误位置数的步骤包括:
采用钱氏搜索法解出所述多项式σ(x)的根,得到所述错误位置数。
7.根据权利要求1所述的电力线工频通信编码纠错方法,其特征在于,所述通过所述R(x)码和所述错误图样E(x)计算得出纠错后的C(x)码的步骤包括:
对所述R(x)码和所述错误图样E(x)进行求差计算得出纠错后的所述C(x)码。
8.根据权利要求1所述的电力线工频通信编码纠错方法,其特征在于,在所述接收R(x)码的步骤之前还包括:
获取本原多项式;
根据所述本原多项式计算获取GF(q)域上的一个本原元;
根据所述本原元生成待发送的所述C(x)码。
9.根据权利要求8所述的电力线工频通信编码纠错方法,其特征在于,所述根据所述本原元生成待发送的多项式C(x)码的步骤包括:
根据所述本原元,采用除法求余计算生成待发送的所述C(x)码。
10.根据权利要求9所述的电力线工频通信编码纠错方法,其特征在于,所述根据所述本原元,采用除法求余计算生成待发送的所述C(x)码的步骤包括:
根据所述本原元,采用除法求余计算生成用于纠正t个符号错误的多项式g(x);
根据所述多项式g(x)计算生成待发送的所述C(x)码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610957698.5A CN106506011B (zh) | 2016-11-02 | 2016-11-02 | 电力线工频通信编码纠错方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610957698.5A CN106506011B (zh) | 2016-11-02 | 2016-11-02 | 电力线工频通信编码纠错方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106506011A true CN106506011A (zh) | 2017-03-15 |
CN106506011B CN106506011B (zh) | 2018-03-20 |
Family
ID=58321443
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610957698.5A Active CN106506011B (zh) | 2016-11-02 | 2016-11-02 | 电力线工频通信编码纠错方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106506011B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110673925A (zh) * | 2019-09-06 | 2020-01-10 | 苏州浪潮智能科技有限公司 | 一种基于循环码的虚拟机迁移数据的方法、设备及介质 |
CN112213578A (zh) * | 2020-09-23 | 2021-01-12 | 青岛鼎信通讯股份有限公司 | 一种中压线变关系识别方法 |
CN113595687A (zh) * | 2021-09-28 | 2021-11-02 | 佛山冠湾智能科技有限公司 | 一种通讯数据的错误纠正系统及方法 |
CN113642276A (zh) * | 2021-08-18 | 2021-11-12 | 电子科技大学 | 一种基于数据预编码的sram架构 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009130652A (ja) * | 2007-11-23 | 2009-06-11 | Mitsubishi Materials Corp | 電力線通信システム、電力線通信方法及び電力線通信プログラム |
CN101621299A (zh) * | 2008-07-04 | 2010-01-06 | 华为技术有限公司 | 一种突发纠错的方法、设备和装置 |
CN102868575A (zh) * | 2012-09-24 | 2013-01-09 | 航天科工深圳(集团)有限公司 | 一种电力线载波通信系统的仿真方法、系统 |
CN104022784A (zh) * | 2013-02-28 | 2014-09-03 | 国际商业机器公司 | 纠正突发错误的解码方法、解码设备和解码器 |
-
2016
- 2016-11-02 CN CN201610957698.5A patent/CN106506011B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009130652A (ja) * | 2007-11-23 | 2009-06-11 | Mitsubishi Materials Corp | 電力線通信システム、電力線通信方法及び電力線通信プログラム |
CN101621299A (zh) * | 2008-07-04 | 2010-01-06 | 华为技术有限公司 | 一种突发纠错的方法、设备和装置 |
CN102868575A (zh) * | 2012-09-24 | 2013-01-09 | 航天科工深圳(集团)有限公司 | 一种电力线载波通信系统的仿真方法、系统 |
CN104022784A (zh) * | 2013-02-28 | 2014-09-03 | 国际商业机器公司 | 纠正突发错误的解码方法、解码设备和解码器 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110673925A (zh) * | 2019-09-06 | 2020-01-10 | 苏州浪潮智能科技有限公司 | 一种基于循环码的虚拟机迁移数据的方法、设备及介质 |
CN112213578A (zh) * | 2020-09-23 | 2021-01-12 | 青岛鼎信通讯股份有限公司 | 一种中压线变关系识别方法 |
CN113642276A (zh) * | 2021-08-18 | 2021-11-12 | 电子科技大学 | 一种基于数据预编码的sram架构 |
CN113642276B (zh) * | 2021-08-18 | 2023-05-05 | 电子科技大学 | 一种基于数据预编码的sram架构 |
CN113595687A (zh) * | 2021-09-28 | 2021-11-02 | 佛山冠湾智能科技有限公司 | 一种通讯数据的错误纠正系统及方法 |
CN113595687B (zh) * | 2021-09-28 | 2021-12-03 | 佛山冠湾智能科技有限公司 | 一种通讯数据的错误纠正系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106506011B (zh) | 2018-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100683624B1 (ko) | 가속화된 리드-솔로몬 오류정정 | |
US20040177312A1 (en) | Parallel decoding of a BCH encoded signal | |
KR100881192B1 (ko) | 에러 패턴 검출 방법, 에러 정정 장치, 및 데이터 부호화 방법 | |
US10992416B2 (en) | Forward error correction with compression coding | |
CN106506011B (zh) | 电力线工频通信编码纠错方法 | |
US20060031742A1 (en) | Decoding device and decoding method | |
Shrivastava et al. | Error detection and correction using Reed Solomon codes | |
US8136013B2 (en) | Burst error correction based on fire code | |
CN107565981A (zh) | 一种基于fpga的rs编译码器实现方法 | |
US20080082896A1 (en) | Burst error correction with offset for correction vector based on fire code | |
US20010037483A1 (en) | Error correction structures and methods | |
US8943391B2 (en) | Cyclic code decoding method and cyclic code decoder | |
RU2295198C1 (ru) | Способ кодовой цикловой синхронизации | |
US10826533B2 (en) | Methods, systems, and computer-readable media for decoding a cyclic code | |
Pandey et al. | Comparative performance analysis of block and convolution codes | |
KR100202945B1 (ko) | 리드 솔로몬 복호기의 비트 에러율 측정 장치 | |
KR100192801B1 (ko) | 리드 솔로몬 디코더의 비트 에러율 측정 회로 | |
US9032277B1 (en) | Parallel low and asymmetric rate Reed Solomon coding | |
CN102263607B (zh) | 错误检测解码模组及错误检测更正装置 | |
KR102611828B1 (ko) | 에러 정정을 위한 리드-솔로몬 디코더 | |
Babrekar et al. | Review of FPGA Implementation of Reed-Solomon Encoder-Decoder | |
Deshmukh et al. | DESIGN OF REED SOLOMON FORWARD ERROR CORRECTION (RSFEC) AND DEVELOPMENT OF VERIFICATION MODEL | |
KR20040073642A (ko) | 다양한 오류 정정 능력을 갖는 리드-솔로몬 부호의 복호기 | |
KR100192793B1 (ko) | 리드 솔로몬 복호기의 에러 정정기 | |
Chi et al. | A fast Reed-solomon decoder using step-by-step algorithm |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |