1 目标
本文旨在解决如下几个问题:
1、 ECC 编解码算法的数学原理及推导
2、 ECC 编解码算法与 C 语言实现的对应关系,如何一一对应
3、 C 语言实现与 RTL 代码实现的对应关系,如何一一对应
4、 RTL 代码实现的优化方向
2 概述
BCH(Bose一Chaudhuri一Hocquenghem)码是1959年由霍昆格姆
(Hocquenghem),1960年由博斯(Bose)和雷·查德胡里(Ray Chaudhuri)提出的纠正多
个随机错误的循环码,可以用生成多项式g(x)的根来描述。它是具有严格的代数结构,纠
错能力强、构造简单、编码较其它码容易等特点的线性分组码。
定义:给定任一有限域GF(q)及其扩域GF(q
m
),其中q是素数或素数的幂,m为某一正
整数。若码元取自GF(q)上的一循环码,它的生成多项式g(x)的根集合R中含有以下δ-1个
连续根:{α
M0
,α
M0+1
,…,α
M0+δ-2
}时,则由g(x)生成的循环码称为q进制BCH码。
在实 际 应 用中用得最多的是码元取自有限域GF(2)中的二进制BCH码,对于一个正
整数m
0
则有:取m
0
=1, δ=2t十1,设α是伽罗华域GF(2
m
)的本原域元素,则码以α,α
2
,
…,α
2t
为根生成多项式:g(x)= LCM(m
1
(x) m
2
(x)…m
2t
(x)),式中m
i
(x)是α
i
(1≤i≤2t)相应
的最小多项式,t为纠正错误个数。由于在特征为2的G(2
m
)域上,α
2i
的最小多项式与α
i
的
相同,所以生成多项式简化为: g(x)= m
1
(x) m
3
(x)…m
2t-1
(x).相应地,二进制BCH码以
α,α
3
,α
5
,…, α
2t-1
为 根 ,码长n=LCM(φ
1
,φ
3
,…,φ
1t-1
),码的校验矩阵就为
其中φ
1
,φ
3
,…,φ
2t-1
分别是α,α
3
,α
5
,…, α
2t-1
对 应元素的级,所以二进制BCH码的码
长是n≤2
m
-1,当n=2
m
-1时,称为本原长码,当n<2
m
-1时则称为缩短码(shortenedc
ode)。校验位数目至多为ð
0
g(x)=mt个,设计最短距离d
min
=2t十1,可纠正≤t个随机错
误。