性质
n = q − 1 n − k = 2 t k = q − 1 − 2 t d m i n = 2 t + 1 n=q-1\\ n-k=2t\\ k=q-1-2t\\ d_{min}=2t+1 n=q−1n−k=2tk=q−1−2tdmin=2t+1
编译码步骤
编码
- 令α是
G
F
(
2
m
)
GF(2^m)
GF(2m)的一个本原元,查表找
m
m
m次本原多项式
P
(
x
)
P(x)
P(x),长
n
=
2
m
−
1
n=2m-1
n=2m−1,信息位为
k
k
k,纠正
t
=
(
n
−
k
)
2
t=\frac{(n-k)}{2}
t=2(n−k)个错误的本原RS码生成多项式为
g ( x ) = ( x + α ) ( x + α 2 ) … ( x + α 2 t ) g(x)=(x+α)(x+α^2)…(x+α^{2t}) g(x)=(x+α)(x+α2)…(x+α2t) - 待编码信息多项式
u
(
x
)
u(x)
u(x)为
u ( x ) = u 0 x k − 1 + u 1 k − 2 + … + u k − 1 u(x)=u_0x^{k-1}+u_1^{k-2}+…+u_{k-1} u(x)=u0xk−1+u1k−2+…+uk−1
将待编码信息多项式升 x n − k x^{n-k} xn−k位后除以 g ( x ) g(x) g(x),获得余式 r ( x ) r(x) r(x)。
联合 r ( x ) r(x) r(x)和 x n − k u ( x ) x^{n-k}u(x) xn−ku(x),获得码多项式 x n − k u ( x ) + r ( x ) x^{n-k}u(x)+r(x) xn−ku(x)+r(x),即
c ( x ) = x 2 t u ( x ) + x 2 t u ( x ) m o d g ( x ) c(x)=x^{2t}u(x)+x^{2t}u(x)mod\ g(x) c(x)=x2tu(x)+x2tu(x)mod g(x)
译码
- 由接收多项式 r ( x ) r(x) r(x)计算校正子 S = ( S 1 , S 2 , … , S 2 t ) S=(S_1,S_2,…,S_{2t}) S=(S1,S2,…,S2t)。
- 由校正子分量 S 1 , S 2 , … , S 2 t S_1,S_2,…,S_{2t} S1,S2,…,S2t确定错误位置多项式 σ ( x ) σ(x) σ(x)。(Berlekamp迭代算法,见本原BCH码)
- 通过求解 σ ( x ) σ(x) σ(x)的根,确定错误位置数 β 1 , β 2 , … , β v β_1,β_2,…,β_v β1,β2,…,βv。
- 求解错误数值,并纠正 r ( x ) r(x) r(x)中的错误。
求解错误估值函数
定义
Z
0
(
x
)
Z_0(x)
Z0(x)
Z
0
(
x
)
≜
∑
l
=
1
v
δ
l
β
l
∏
i
=
1
,
i
≠
l
v
(
1
−
β
i
x
)
Z
0
(
x
)
=
S
1
+
(
S
2
+
σ
1
S
1
)
x
+
(
S
3
+
σ
1
S
2
+
σ
2
S
1
)
x
2
+
…
+
(
S
v
+
σ
1
S
v
−
1
+
…
+
σ
v
−
1
S
v
)
x
v
−
1
Z_0(x)\triangleq \sum^v_{l=1}δ_lβ_l\prod_{i=1,i≠l}^{v}(1-β_ix)\\ Z_0(x)=S_1+(S_2+σ_1S_1)x+(S_3+σ_1S_2+σ_2S_1)x^2+…\\+(S_v+σ_1S_{v-1}+…+σ_{v-1}S_v)x^{v-1}
Z0(x)≜l=1∑vδlβli=1,i=l∏v(1−βix)Z0(x)=S1+(S2+σ1S1)x+(S3+σ1S2+σ2S1)x2+…+(Sv+σ1Sv−1+…+σv−1Sv)xv−1
δ
i
δ_i
δi——错误数值
β
i
β_i
βi——错误位置
Z
0
(
x
)
Z_0(x)
Z0(x)的次数为
v
−
1
v-1
v−1次。
Z
0
(
β
k
−
1
)
=
δ
k
β
k
∏
i
=
1
,
i
≠
l
v
(
1
−
β
i
β
k
)
Z_0(β_k^{-1})=δ_kβ_k\prod_{i=1,i≠l}^{v}(1-β_iβ_k)
Z0(βk−1)=δkβki=1,i=l∏v(1−βiβk)
对
σ
(
x
)
σ(x)
σ(x)求导得
σ
′
(
x
)
=
−
∑
l
=
1
v
β
l
∏
i
=
1
,
i
≠
l
v
(
1
−
β
i
x
)
σ'(x)=-\sum^v_{l=1}β_l\prod_{i=1,i≠l}^{v}(1-β_ix)
σ′(x)=−l=1∑vβli=1,i=l∏v(1−βix)
σ
′
(
β
k
−
1
)
=
−
β
k
∏
i
=
1
,
i
≠
l
v
(
1
−
β
i
β
k
−
1
)
σ'(β_k^{-1})=-β_k\prod_{i=1,i≠l}^{v}(1-β_iβ_k^{-1})
σ′(βk−1)=−βki=1,i=l∏v(1−βiβk−1)
在位置
β
k
β_k
βk上的错误数值
δ
k
δ_k
δk可由下式给出
δ
k
=
−
Z
0
(
β
k
−
1
)
σ
′
(
β
k
−
1
)
δ_k=\frac{-Z_0(β_k^{-1})}{σ'(β_k^{-1})}
δk=σ′(βk−1)−Z0(βk−1)
例.RS(7,3)编译
编码
- 码长
n
=
2
3
−
1
=
7
n=2^3-1=7
n=23−1=7,信息位
k
=
3
k=3
k=3,
t
=
2
t=2
t=2。本原多项式
P
(
x
)
=
x
3
+
x
+
1
P(x)=x^3+x+1
P(x)=x3+x+1,产生扩域
G
F
(
2
3
)
GF(2^3)
GF(23)。
幂表示 多项式表示 3维向量表示 最小多项式 0 0 000 000 000 x x x 1 1 001 001 001 x + 1 x+1 x+1 α α α α α α 010 010 010 x 3 + x + 1 x^3+x+1 x3+x+1 α 2 α^2 α2 α 2 α^2 α2 100 100 100 x 3 + x + 1 x^3+x+1 x3+x+1 α 3 α^3 α3 1 + α 1+α 1+α 011 011 011 x 3 + x 2 + 1 x^3+x^2+1 x3+x2+1 α 4 α^4 α4 α + α 2 α+α^2 α+α2 110 110 110 x 3 + x + 1 x^3+x+1 x3+x+1 α 5 α^5 α5 1 + α + α 2 1+α+α^2 1+α+α2 111 111 111 x 3 + x 2 + 1 x^3+x^2+1 x3+x2+1 α 6 α^6 α6 1 + α 2 1+α^2 1+α2 101 101 101 x 3 + x 2 + 1 x^3+x^2+1 x3+x2+1 - 生成多项式
g
(
x
)
g(x)
g(x)
g ( x ) = ( x + α ) ( x + α 2 ) ( x + α 3 ) ( x + α 4 ) = x 4 + α 3 x 3 + x 2 + α x + α 3 g(x)=(x+α)(x+α^2)(x+α^3)(x+α^4)=x^4+α^3x^3+x^2+αx+α^3 g(x)=(x+α)(x+α2)(x+α3)(x+α4)=x4+α3x3+x2+αx+α3 - 假设发送八进制码字
(
α
5
,
α
3
,
α
)
(α^5,α^3,α)
(α5,α3,α),则待编码信息多项式升
x
n
−
k
x^{n-k}
xn−k后为
x n − k m ( x ) = x 7 − 3 ( α 5 x 2 + α 3 x + α ) = α 5 x 6 + α 3 x 5 + α x 4 x^{n-k}m(x)=x^{7-3}(α^5x^2+α^3x+α)=α^5x^6+α^3x^5+αx^4 xn−km(x)=x7−3(α5x2+α3x+α)=α5x6+α3x5+αx4
用 g ( x ) g(x) g(x)除 x n − k m ( x ) x^{n-k}m(x) xn−km(x)得余式 r ( x ) = α 6 x 3 + α 4 x 2 + α 2 x + 1 r(x)=α^6x^3+α^4x^2+α^2x+1 r(x)=α6x3+α4x2+α2x+1
联合 x n − k m ( x ) x^{n-k}m(x) xn−km(x)和 r ( x ) r(x) r(x)得码多项式 x n − k m ( x ) + r ( x ) = α 5 x 6 + α 3 x 5 + α x 4 + α 6 x 3 + α 4 x 2 + α 2 x + 1 x^{n-k}m(x)+r(x)=α^5x^6+α^3x^5+αx^4+α^6x^3+α^4x^2+α^2x+1 xn−km(x)+r(x)=α5x6+α3x5+αx4+α6x3+α4x2+α2x+1,码字为 ( α 5 , α 3 , α , α 6 , α 4 , α 2 , 1 ) (α^5,α^3,α,α^6,α^4,α^2,1) (α5,α3,α,α6,α4,α2,1),即 ( 111 , 011 , 010 , 101 , 110 , 100 , 001 ) (111,011,010,101,110,100,001) (111,011,010,101,110,100,001)
译码
计算校正子
假设发送码字
(
α
5
,
α
3
,
α
,
α
6
,
α
4
,
α
2
,
1
)
(α^5,α^3,α,α^6,α^4,α^2,1)
(α5,α3,α,α6,α4,α2,1),接收码字为
r
=
(
1
,
α
3
,
α
,
α
6
,
α
,
α
2
,
1
)
r=(1,α^3,α,α^6,α,α^2,1)
r=(1,α3,α,α6,α,α2,1),则有接收码字
r
(
x
)
=
x
6
+
α
3
x
5
+
α
x
4
+
α
6
x
3
+
α
x
2
+
α
2
x
+
1
r(x)=x^6+α^3x^5+αx^4+α^6x^3+αx^2+α^2x+1
r(x)=x6+α3x5+αx4+α6x3+αx2+α2x+1
计算校正子得
S
1
=
r
(
α
)
=
α
6
+
α
8
+
α
5
+
α
9
+
α
3
+
α
3
+
1
=
α
2
+
1
=
α
6
S
2
=
r
(
α
2
)
=
1
S
3
=
r
(
α
3
)
=
0
S
4
=
r
(
α
4
)
=
α
S
=
(
S
1
,
S
2
,
S
3
,
S
4
)
=
(
α
6
,
1
,
0
,
α
)
S_1=r(α)=α^6+α^8+α^5+α^9+α^3+α^3+1=α^2+1=α^6\\ S_2=r(α^2)=1\\ S_3=r(α^3)=0\\ S_4=r(α^4)=α\\ \mathbf S=(S_1,S_2,S_3,S_4)=(α^6,1,0,α)
S1=r(α)=α6+α8+α5+α9+α3+α3+1=α2+1=α6S2=r(α2)=1S3=r(α3)=0S4=r(α4)=αS=(S1,S2,S3,S4)=(α6,1,0,α)
确定错误位置多项式
应用Berlekamp迭代算法,得错误位置多项式为
σ
(
x
)
=
1
+
x
+
α
x
2
σ(x)=1+x+αx^2
σ(x)=1+x+αx2
迭代过程如下表
μ μ μ | σ μ ( x ) σ^{μ}(x) σμ(x) | d μ d_μ dμ | l μ l_μ lμ | μ − l μ μ-l_μ μ−lμ | ρ ρ ρ |
---|---|---|---|---|---|
− 1 -1 −1 | 1 1 1 | 1 1 1 | 0 0 0 | − 1 -1 −1 | |
0 0 0 | 1 1 1 |
α
6
α^6
α6 | 0 0 0 | 0 0 0 | − 1 -1 −1 |
1 1 1 |
1
+
α
6
x
1+α^6x
1+α6x | α 4 α^4 α4 | 1 1 1 | 0 0 0 | 0 0 0 |
2 2 2 | 1 + α x 1+αx 1+αx | α α α | 1 1 1 | 1 1 1 | 0 0 0 |
3 3 3 | 1 + α x + α 2 x 2 1+αx+α^2x^2 1+αx+α2x2 | α 4 α^4 α4 | 2 2 2 | 1 1 1 | 2 2 2 |
4 4 4 | 1 + x + α x 2 1+x+αx^2 1+x+αx2 |
纠错
求得错误位置多项式
σ
(
x
)
=
1
+
x
+
α
x
2
σ(x)=1+x+αx^2
σ(x)=1+x+αx2的根为
α
,
α
5
α,α^5
α,α5,得错误位置为
x
6
,
x
2
x^6,x^2
x6,x2。
Z
0
(
x
)
=
S
1
+
(
S
2
+
σ
1
S
1
)
x
+
(
S
3
+
σ
1
S
2
+
σ
2
S
1
)
x
2
+
…
+
(
S
v
+
σ
1
S
v
−
1
+
…
+
σ
v
−
1
S
v
)
x
v
−
1
=
α
6
+
(
1
+
α
6
)
x
+
(
0
+
1
+
α
⋅
α
6
)
x
2
=
α
6
+
α
2
x
Z
0
(
α
−
6
)
=
α
4
Z
0
(
α
−
2
)
=
α
2
σ
′
(
α
−
6
)
=
α
6
(
1
+
α
2
α
−
6
)
=
1
σ
′
(
α
−
2
)
=
α
2
(
1
+
α
6
α
−
2
)
=
1
Z_0(x)=S_1+(S_2+σ_1S_1)x+(S_3+σ_1S_2+σ_2S_1)x^2+…\\+(S_v+σ_1S_{v-1}+…+σ_{v-1}S_v)x^{v-1}\\ =α^6+(1+α^6)x+(0+1+α·α^6)x^2\\ =α^6+α^2x\\\ \\ Z_0(α^{-6})=α^4\\ Z_0(α^{-2})=α^2\\\ \\ σ'(α^{-6})=α^6(1+α^2α^{-6})=1\\ σ'(α^{-2})=α^2(1+α^6α^{-2})=1
Z0(x)=S1+(S2+σ1S1)x+(S3+σ1S2+σ2S1)x2+…+(Sv+σ1Sv−1+…+σv−1Sv)xv−1=α6+(1+α6)x+(0+1+α⋅α6)x2=α6+α2x Z0(α−6)=α4Z0(α−2)=α2 σ′(α−6)=α6(1+α2α−6)=1σ′(α−2)=α2(1+α6α−2)=1
得到位置
x
6
,
x
2
x^6,x^2
x6,x2上的错误数值为
e
6
=
−
Z
0
(
a
−
6
)
σ
′
(
α
−
6
)
=
α
4
e
2
=
−
Z
0
(
a
−
2
)
σ
′
(
α
−
2
)
=
α
2
e_6=\frac{-Z_0(a^{-6})}{σ'(α^{-6})}=α^4\\\ \\ e_2=\frac{-Z_0(a^{-2})}{σ'(α^{-2})}=α^2
e6=σ′(α−6)−Z0(a−6)=α4 e2=σ′(α−2)−Z0(a−2)=α2
于是错误模式为
e
(
x
)
=
α
4
x
6
+
α
2
x
2
e(x)=α^4x^6+α^2x^2
e(x)=α4x6+α2x2
与接收码字
r
(
x
)
r(x)
r(x)相加得解。