欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

本原BCH码

发布时间:2024/8/1 122 豆豆
生活随笔 收集整理的这篇文章主要介绍了 本原BCH码 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

目录

  • 性质
  • 编译码步骤
    • 编码
    • 译码
      • Berlekamp迭代算法
        • 牛顿恒等式
        • Berlekamp迭代
          • 具体步骤
  • 例.BCH(15,5)编译
    • 编码
    • 译码&纠错
      • 计算校正子
      • 确定错误位置多项式
      • 纠错

参考书籍《信息论与编码》、《差错控制编码》。

性质

n=2m−1n−k≤mtdmin≥2t+1n=2^m-1\\ n-k≤mt\\ d_{min}≥2t+1n=2m1nkmtdmin2t+1
式中,m≥3m≥3m3,纠错能力t<2m−1t<2^m-1t2m1
基本特征为其生成多项式g(x)g(x)g(x)包含2t2t2t个连续幂次的根。

编译码步骤

编码

  • 由关系n=2m−1n=2^m-1n=2m1算出mmm,查表找mmm次本原多项式P(x)P(x)P(x),用它产生一个GF(2m)GF(2^m)GF(2m)扩域。
  • 以本原多项式P(x)P(x)P(x)的根为本原元ααα,分别计算2t2t2t个连续幂次αααα2α^2α2,…,α2tα^{2t}α2t所对应的二元域上的最小多项式m1(x)m_1(x)m1(x)m2(x)m_2(x)m2(x),…,m2t(x)m_{2t}(x)m2t(x)
  • 计算这些最小多项式的最小公倍数,得到生成多项式为
    g(x)=LCM[m1(x),m2(x),…,m2t(x)]g(x)=LCM[m_1(x),m_2(x),…,m_{2t}(x)] g(x)=LCM[m1(x),m2(x),,m2t(x)]
    如果iii是偶数,则可表示为i=i′2li=i'2^li=i2l,其中i′i'i是奇数,且l≥1l≥1l1。由于αi=(αi′)2lα^i=(α^{i'})^{2^l}αi=(αi)2lαi′α^{i'}αi的共轭元,因此αiα^iαiαi′α^{i'}αi具有相同的最小多项式,即mi(x)=mi′(x)m_i(x)=m_{i'}(x)mi(x)=mi(x),在上式中,ααα的每个偶次幂都与前面某个ααα的奇次幂具有相同的最小多项式,因此可简化为:
    g(x)=LCM[m1(x),m3(x),…,m2t−1(x)]g(x)=LCM[m_1(x),m_3(x),…,m_{2t-1}(x)] g(x)=LCM[m1(x),m3(x),,m2t1(x)]
  • 待编码信息多项式u(x)u(x)u(x)
    u(x)=u0xk−1+u1k−2+…+uk−1u(x)=u_0x^{k-1}+u_1^{k-2}+…+u_{k-1} u(x)=u0xk1+u1k2++uk1
    将待编码信息多项式升xn−kx^{n-k}xnk位后除以g(x)g(x)g(x),获得余式r(x)r(x)r(x)
    联合r(x)r(x)r(x)xn−ku(x)x^{n-k}u(x)xnku(x),获得码多项式xn−ku(x)+r(x)x^{n-k}u(x)+r(x)xnku(x)+r(x)
  • 译码

  • 由接收多项式r(x)r(x)r(x)计算校正子S=(S1,S2,…,S2t)S=(S_1,S_2,…,S_{2t})S=(S1,S2,,S2t)
  • 由校正子分量S1,S2,…,S2tS_1,S_2,…,S_{2t}S1,S2,,S2t确定错误位置多项式σ(x)σ(x)σ(x)。(Berlekamp迭代算法)
  • 通过求解σ(x)σ(x)σ(x)的根,确定错误位置数β1,β2,…,βvβ_1,β_2,…,β_vβ1,β2,,βv,并纠正r(x)r(x)r(x)中的错误。
  • Berlekamp迭代算法

    牛顿恒等式

    {S1=αj1+αj2+…αjvS2=(αj1)2+(αj2)2+…(αjv)2S3=(αj1)3+(αj2)3+…(αjv)3…S2t=(αj1)2t+(αj2)2t+…(αjv)2t\begin{cases} S_1=α^{j_1}+α^{j_2}+…α^{j_v}\\ S_2=(α^{j_1})^2+(α^{j_2})^2+…(α^{j_v})^2\\ S_3=(α^{j_1})^3+(α^{j_2})^3+…(α^{j_v})^3\\ …\\ S_{2t}=(α^{j_1})^{2t}+(α^{j_2})^{2t}+…(α^{j_v})^{2t} \end{cases} S1=αj1+αj2+αjvS2=(αj1)2+(αj2)2+(αjv)2S3=(αj1)3+(αj2)3+(αjv)3S2t=(αj1)2t+(αj2)2t+(αjv)2t
    βl=αjlβ_l=α^{j_l}βl=αjl,该元素称为错误位置数,则有
    {S1=β1+β2+…βvS2=β12+β22+…βv2S3=β13+β23+…βv3…S2t=β12t+β22t+…βv2t\begin{cases} S_1=β_1+β_2+…β_v\\ S_2=β_1^2+β_2^2+…β_v^2\\ S_3=β_1^3+β_2^3+…β_v^3\\ …\\ S_{2t}=β_1^{2t}+β_2^{2t}+…β_v^{2t} \end{cases} S1=β1+β2+βvS2=β12+β22+βv2S3=β13+β23+βv3S2t=β12t+β22t+βv2t
    定义以下多项式
    σ(x)≜(1+β1x)(1+β2x)…(1+βvx)=σ0+σ1x+σ2x2+…+σvxvσ(x)\triangleq(1+β_1x)(1+β_2x)…(1+β_vx)\\=σ_0+σ_1x+σ_2x^2+…+σ_vx^v σ(x)(1+β1x)(1+β2x)(1+βvx)=σ0+σ1x+σ2x2++σvxv
    σ(x)σ(x)σ(x)的根是错误位置数的倒数β1−1β_1^{-1}β11β2−1β_2^{-1}β21,…,βv−1β_v^{-1}βv1σ(x)σ(x)σ(x)被称为错误位置多项式,其系数与错误位置数的关系如下:
    {σ0=1σ1=β1+β2+…+βvσ2=β1β2+β2β3+…+βv−1βv…σv=β1β2…βv\begin{cases} σ_0=1\\ σ_1=β_1+β_2+…+β_v\\ σ_2=β_1β_2+β_2β_3+…+β_{v-1}β_v\\ …\\ σ_v=β_1β_2…β_v \end{cases} σ0=1σ1=β1+β2++βvσ2=β1β2+β2β3++βv1βvσv=β1β2βv
    σiσ_iσiβlβ_lβl的初等对称函数,σiσ_iσi与校正子之间的关系由如下牛顿恒等式确实:
    {S1+σ1=0S2+σ1S1+2σ2=0S3+σ1S2+σ2S1+3σ3=0…Sv+σ1Sv−1+…+σv−1S1+vσv=0Sv+1+σ1Sv+…+σv−1S2+σvS1=0\begin{cases}S_1+σ_1=0\\ S_2+σ_1S_1+2σ_2=0\\ S_3+σ_1S_2+σ_2S_1+3σ_3=0\\ …\\ S_{v}+σ_1S_{v-1}+…+σ_{v-1}S_1+vσ_v=0\\ S_{v+1}+σ_1S_{v}+…+σ_{v-1}S_2+σ_{v}S_1=0\end{cases} S1+σ1=0S2+σ1S1+2σ2=0S3+σ1S2+σ2S1+3σ3=0Sv+σ1Sv1++σv1S1+vσv=0Sv+1+σ1Sv++σv1S2+σvS1=0
    在二进制情况下,由于1+1=01+1=01+1=0,有
    iσi={σi,i为奇数0,i为偶数iσ_i=\begin{cases}σ_i,i为奇数\\0,i为偶数\end{cases} iσi={σii0i

    Berlekamp迭代

  • 求最低次数多项式σ(1)(x)σ^{(1)}(x)σ(1)(x),使它的系数满足第一个牛顿恒等式S1+σ1=0S_1+σ_1=0S1+σ1=0
  • 检验σ(1)(x)σ^{(1)}(x)σ(1)(x)是否满足第二个牛顿恒等式S2+σ1S1+2σ2=0S_2+σ_1S_1+2σ_2=0S2+σ1S1+2σ2=0
  • 满足,则取σ(2)(x)=σ(1)(x)σ^{(2)}(x)=σ^{(1)}(x)σ(2)(x)=σ(1)(x)
  • 不满足,则对σ(1)(x)σ^{(1)}(x)σ(1)(x)增加一个修正项构成σ(2)(x)σ^{(2)}(x)σ(2)(x),使σ(2)(x)σ^{(2)}(x)σ(2)(x)具有最低次数且其系数满足前两个牛顿恒等式。
  • 检验σ(2)(x)σ^{(2)}(x)σ(2)(x)是否满足第三个牛顿恒等式S3+σ1S2+σ2S1+3σ3=0S_3+σ_1S_2+σ_2S_1+3σ_3=0S3+σ1S2+σ2S1+3σ3=0
  • 满足,则取σ(3)(x)=σ(2)(x)σ^{(3)}(x)=σ^{(2)}(x)σ(3)(x)=σ(2)(x)
  • 不满足,则对σ(2)(x)σ^{(2)}(x)σ(2)(x)增加一个修正项构成σ(3)(x)σ^{(3)}(x)σ(3)(x),使σ(3)(x)σ^{(3)}(x)σ(3)(x)具有最低次数且其系数满足前两个牛顿恒等式。
  • 迭代一直进行到获得σ(2t)(x)σ^{(2t)}(x)σ(2t)(x)σ(2t)(x)σ^{(2t)}(x)σ(2t)(x)即错误位置多项式σ(x)σ(x)σ(x)。若接收多项式r(x)r(x)r(x)中错误数目为ttt或小于ttt,则σ(x)σ(x)σ(x)将产生正确的错误模式。
  • 具体步骤
    μμμσμ(x)σ^{μ}(x)σμ(x)dμd_μdμlμl_μlμμ−lμμ-l_μμlμρρρ
    −1-11111111000−1-11
    000111S1S_1S1
    000000
    111
    222
    ……
    2t2t2t

    μμμ步所确定的最低次数多项式σ(μ)(x)σ^{(μ)}(x)σ(μ)(x)
    σ(μ)(x)=1+σ1(μ)x+σ2(μ)x2+…+σlμ(μ)xlμσ^{(μ)}(x)=1+σ^{(μ)}_1x+σ^{(μ)}_2x^2+…+σ^{(μ)}_{l_μ}x^{l_μ} σ(μ)(x)=1+σ1(μ)x+σ2(μ)x2++σlμ(μ)xlμ
    μμμ步差值dμd_μdμ
    dμ=Sμ+1+σ1(μ)Sμ+σ2(μ)Sμ−1+…+σlμ(μ)Sμ+1−lμd_μ=S_{μ+1}+σ^{(μ)}_1S_μ+σ^{(μ)}_2S_{μ-1}+…+σ^{(μ)}_{l_μ}S_{μ+1-l_μ} dμ=Sμ+1+σ1(μ)Sμ+σ2(μ)Sμ1++σlμ(μ)Sμ+1lμ
    lρl_ρlρ——σ(ρ)(x)σ^{(ρ)}(x)σ(ρ)(x)的次数

  • dμ=0d_μ=0dμ=0,则σ(μ+1)(x)=σ(μ)(x)σ^{(μ+1)}(x)=σ^{(μ)}(x)σ(μ+1)(x)=σ(μ)(x)
  • dμ≠0d_μ≠0dμ=0,则寻找第μ行之前的另一行ρ,dρ≠0d_ρ≠0dρ=0ρ−lρρ-l_ρρlρ具有最大值。则有
    σ(μ+1)(x)=σ(μ)(x)+dμdρ−1x(μ−ρ)σ(ρ)(x)lμ+1=max(lμ,lρ+μ+ρ)σ^{(μ+1)}(x)=σ^{(μ)}(x)+d_μd_ρ^{-1}x^{(μ-ρ)}σ^{(ρ)}(x)\\\ \\ l_{μ+1}=max(l_μ,l_ρ+μ+ρ) σ(μ+1)(x)=σ(μ)(x)+dμdρ1x(μρ)σ(ρ)(x) lμ+1=max(lμ,lρ+μ+ρ)
  • 例.BCH(15,5)编译

    编码

  • 码长n=15n=15n=15,信息位k=5k=5k=52m−1=15→m=42^m-1=15→m=42m1=15m=4t=3t=3t=3dmin≥7d_{min}≥7dmin7。由表得mmm次本原多项式P(x)=1+x+x4P(x)=1+x+x^4P(x)=1+x+x4,产生扩域GF(24)GF(2^4)GF(24)
  • αααGF(24)GF(2^4)GF(24)的本原元,域中元素及最小多项式计算结果如下表,可知αααα3α^3α3α5α^5α5的最小多项式分别为
    m1(x)=1+x+x4m3(x)=1+x+x2+x3+x4m5(x)=1+x+x2m_1(x)=1+x+x^4\\ m_3(x)=1+x+x^2+x^3+x^4\\ m_5(x)=1+x+x^2 m1(x)=1+x+x4m3(x)=1+x+x2+x3+x4m5(x)=1+x+x2
  • 幂表示多项式表示4维向量表示最小多项式
    00000000000000xxx
    11000100010001x+1x+1x+1
    αααααα001000100010x4+x+1x^4+x+1x4+x+1
    α2α^2α2α2α^2α2010001000100x4+x+1x^4+x+1x4+x+1
    α3α^3α3α3α^3α3100010001000x4+x3+x2+x+1x^4+x^3+x^2+x+1x4+x3+x2+x+1
    α4α^4α41+α1+α1+α001100110011x4+x+1x^4+x+1x4+x+1
    α5α^5α5α+α2α+α^2α+α2011001100110x2+x+1x^2+x+1x2+x+1
    α6α^6α6α2+α3α^2+α^3α2+α3110011001100x4+x3+x2+x+1x^4+x^3+x^2+x+1x4+x3+x2+x+1
    α7α^7α71+α+α31+α+α^31+α+α3101110111011x4+x3+1x^4+x^3+1x4+x3+1
    α8α^8α81+α21+α^21+α2
    010101010101x4+x+1x^4+x+1x4+x+1
    α9α^9α9α+α3α+α^3α+α3101010101010x4+x3+x2+x+1x^4+x^3+x^2+x+1x4+x3+x2+x+1
    α10α^{10}α101+α+α21+α+α^21+α+α2011101110111x2+x+1x^2+x+1x2+x+1
    α11α^{11}α11α+α2+α3α+α^2+α^3α+α2+α3111011101110x4+x3+1x^4+x^3+1x4+x3+1
    α12α^{12}α121+α+α2+α31+α+α^2+α^31+α+α2+α3111111111111x4+x3+x2+x+1x^4+x^3+x^2+x+1x4+x3+x2+x+1
    α13α^{13}α131+α2+α31+α^2+α^31+α2+α3110111011101x4+x3+1x^4+x^3+1x4+x3+1
    α14α^{14}α141+α31+α^31+α3100110011001x4+x3+1x^4+x^3+1x4+x3+1
  • 生成多项式g(x)g(x)g(x)
    g(x)=LCM{m1(x),m3(x),m5(x)}=(1+x+x4)(1+x+x2+x3+x4)(1+x+x2)=1+x+x2+x4+x5+x8+x10g(x)=LCM\{m_1(x),m_3(x),m_5(x)\}\\=(1+x+x^4)(1+x+x^2+x^3+x^4)(1+x+x^2)\\ =1+x+x^2+x^4+x^5+x^8+x^{10} g(x)=LCM{m1(x),m3(x),m5(x)}=(1+x+x4)(1+x+x2+x3+x4)(1+x+x2)=1+x+x2+x4+x5+x8+x10
  • 假设发送码字(10010)(10010)(10010),则待编码信息多项式升xn−kx^{n-k}xnk后为
    xn−km(x)=x15−5(x4+x)=x14+x11x^{n-k}m(x)=x^{15-5}(x^4+x)=x^{14}+x^{11} xnkm(x)=x155(x4+x)=x14+x11
    g(x)g(x)g(x)xn−km(x)x^{n-k}m(x)xnkm(x)得余式r(x)=x7+x6+x5+x4+x2+1r(x)=x^7+x^6+x^5+x^4+x^2+1r(x)=x7+x6+x5+x4+x2+1
    联合xn−km(x)x^{n-k}m(x)xnkm(x)r(x)r(x)r(x)得码多项式xn−km(x)+r(x)=x14+x11+x7+x6+x5+x4+x2+1x^{n-k}m(x)+r(x)=x^{14}+x^{11}+x^7+x^6+x^5+x^4+x^2+1xnkm(x)+r(x)=x14+x11+x7+x6+x5+x4+x2+1,码字为(100100011110101)(100100011110101)(100100011110101)
  • 译码&纠错

    计算校正子

    假设发送码字(100100011110101)(100100011110101)(100100011110101),接受码字为r=(101100111100101)r=(101100111100101)r=(101100111100101),则有接收码字
    r(x)=x14+x12+x11+x8+x7+x6+x5+x2+1r(x)=x^{14}+x^{12}+x^{11}+x^8+x^7+x^6+x^5+x^2+1 r(x)=x14+x12+x11+x8+x7+x6+x5+x2+1
    由上表可知αααα2α^2α2α4α^4α4的最小多项式为m1(x)=m2(x)=m4(x)=x4+x+1m_1(x)=m_2(x)=m_4(x)=x^4+x+1m1(x)=m2(x)=m4(x)=x4+x+1α3α^3α3α6α^6α6的最小多项式为m3(x)=m6(x)=x4+x3+x2+x+1m_3(x)=m_6(x)=x^4+x^3+x^2+x+1m3(x)=m6(x)=x4+x3+x2+x+1α5α^5α5的最小多项式为m5(x)=x2+x+1m_5(x)=x^2+x+1m5(x)=x2+x+1。用r(x)r(x)r(x)分别除以m1(x)—m6(x)m_1(x)—m_6(x)m1(x)m6(x)得余式:
    b1(x)=b2(x)=b4(x)=x3+1b3(x)=b6(x)=x+1b5(x)=x2+x+1b_1(x)=b_2(x)=b_4(x)=x^3+1\\ b_3(x)=b_6(x)=x+1\\ b_5(x)=x^2+x+1 b1(x)=b2(x)=b4(x)=x3+1b3(x)=b6(x)=x+1b5(x)=x2+x+1
    α,α2,α4α,α^2,α^4αα2α4代入b1(x)b_1(x)b1(x)得到校正子分量:S1=α14,S2=α13,S4=α11S_1=α^{14},S_2=α^{13},S_4=α^{11}S1=α14S2=α13S4=α11
    α3,α6α^3,α^6α3α6代入b3(x)b_3(x)b3(x)得到校正子分量:S3=α14,S6=α13S_3=α^{14},S_6=α^{13}S3=α14S6=α13
    α5α^5α5代入b5(x)b_5(x)b5(x)得到校正子分量:S5=0S_5=0S5=0
    S=(S1,S2,S3,S4,S5,S6)=(α14,α13,α14,α11,0,α13)\mathbf S=(S_1,S_2,S_3,S_4,S_5,S_6)=(α^{14},α^{13},α^{14},α^{11},0,α^{13}) S=(S1,S2,S3,S4,S5,S6)=(α14,α13,α14,α11,0,α13)

    确定错误位置多项式

    应用前述Berlekamp迭代算法,得错误位置多项式为
    σ(x)=1+α14x+α7x2+α9x3σ(x)=1+α^{14}x+α^7x^2+α^9x^3 σ(x)=1+α14x+α7x2+α9x3
    迭代过程如下表

    μμμσμ(x)σ^{μ}(x)σμ(x)dμd_μdμlμl_μlμμ−lμμ-l_μμlμρρρ
    −1-11111111000−1-11
    000111α14α^{14}α14
    000000−1-11
    1111+α14x1+α^{14}x1+α14x
    000111000
    2221+α14x1+α^{14}x1+α14xα5α^5α51111110
    3331+α14x+α6x21+α^{14}x+α^6x^21+α14x+α6x2000222111
    4441+α14x+α6x21+α^{14}x+α^6x^21+α14x+α6x21112222222
    5551+α14x+α7x2+α9x31+α^{14}x+α^7x^2+α^9x^31+α14x+α7x2+α9x3
    000333222
    6661+α14x+α7x2+α9x31+α^{14}x+α^7x^2+α^9x^31+α14x+α7x2+α9x3

    纠错

    求得错误位置多项式σ(x)=1+α14x+α7x2+α9x3σ(x)=1+α^{14}x+α^7x^2+α^9x^3σ(x)=1+α14x+α7x2+α9x3的根为α11,α7,α3α^{11},α^7,α^3α11α7α3,得错误模式为
    e(x)=x12+x8+x4e(x)=x^{12}+x^8+x^4 e(x)=x12+x8+x4
    与接收多项式r(x)r(x)r(x)相加得
    r(x)+e(x)=x14+x11+x7+x6+x5+x4+x2+1r(x)+e(x)=x^{14}+x^{11}+x^7+x^6+x^5+x^4+x^2+1 r(x)+e(x)=x14+x11+x7+x6+x5+x4+x2+1
    得码字(100100011110101)(100100011110101)(100100011110101)

    总结

    以上是生活随笔为你收集整理的本原BCH码的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。