循环码和 BCH 码
-
Upload
kadeem-emerson -
Category
Documents
-
view
254 -
download
0
description
Transcript of 循环码和 BCH 码
循环码和 BCH 码
简述
1957 年开始研究 循环码的优点:
编码和校正子的计算容易实现 具有固定的代数结构,能找到很多实用的方法来译
码
循环码定义
对一个 n 维码字向量 v=(v0,v1,…,vn-1) 做一次向右循环移位,得到 v(1)=(vn-1,v0,…,vn-2) ,类似,向右做 i 次移位,得到 v(i)=(vn-i,vn-i+1,…,vn-i-1) ,等价于向左移位 n-i 次
循环码:一个 (n,k) 线性码 C ,若每个码字的循环移位仍然是 C 的码字,则称其为循环码 为研究循环码的代数结构,将码字 v 的分量看做多
项式的系数: v(x)=v0+v1X+v2X2+…+vn-1Xn-1
每个码字对应于一个次数等于或小于 n-1 的多项式 码字和多项式是一一对应的, v(x) 叫做码多项式
码多项式
若 v 的码多项式为 v(x)=v0+v1X+v2X2+…+vn-1Xn-1
则 v(i) 的码多项式为 vn-i+vn-i+1X+…+vn-i-1Xn-1
计算 xiv(x)-v(i) 得到 :
(1) 也就是说 v(i) 就是 xiv(x) 除 Xn+1 后的余式
循环码的性质
1. 循环码中非零次数最低的多项式是唯一的 证明: ( 反证法 ) 假设有两个最低次数一样的多项式,这这
两个多项式之和的次数更低,而且应该是码多项式(线性,封闭性),矛盾。
2. 循环码中非零次数最低多项式常数项为 1 证明: ( 反证法 ) 假设常数项为 0 ,则码多项式可提取公因
子 X ,另一个因子是次数更低的码多项式(循环左移 1次),矛盾。
3. 设 g(X)=1+g1X+…+Xr 是 (n,k) 循环码非零次数最低的多项式,次数小于或等于 n-1 的二进制多项式是码多项式当且仅当它是 g(X) 的整倍数。
循环码的性质
证明: 1 )若 v(X) 是 g(X) 的整倍数,即 v(X)=(1+u1X+...+uiXi)g(X) , Xig(X) 是 g(X) 向
左循环移位 i 次的码多项式,故 v(X) 是码的线性组合; 2 )设 v(X) 是码多项式,有 v(X)= a(X)g(X)+ b(X) , b(X) 次数小于 g(X) , b(X) 可以写成 b(X)= a(X)g(X)+v(X) ,故 b(X) 是码多项式或 0 ,因 g(X) 是次数最低的非零多项式,故 b(X)=0 ,即 v(X) 是 g(X) 的整倍数
循环码的性质
4. (n,k) 循环码有且仅有一个 n-k 次的码多项式 g(X)=1+…+Xn-k ,这就是次数最小的码多项式,也称为码的生成多项式
循环码的性质
5. (n,k) 循环码的生成多项式 g(X) 是 Xn+1 的一个因子
证明:由公式 (1) 显然。6. 若 g(X) 是次数为 n-k ,且是 Xn+1 的一个因子,
则 g(X) 是生成多项式,生成一个 (n,k) 循环码 证明 : 略。
性质 6 说明 Xn+1 任何一个 n-k 次多项式都可以生成一个 (n,k) 循环码,当 n 很大时,可以构造很多的 (n,k) 循环码,有好有坏,如何选择?
例子: X7+1
X7+1=(1+ X)(1+X+X3)(1+X2+X3) 故有两个 (7,4) 循环码
循环码的系统形式
码字前 n-k 分量为校验位,后 k 分量是信息位
编码步骤:1. 用 Xn-k 乘信息序列 u(X)
2. 用生成多项式 g(X) 除 Xn-ku(X) ,得余式 b(X) 为校验位
3. 得到码多项式 Xn-ku(X)+b(X)
循环码的生成矩阵
设 g(x)=g0+…+gn-kXn-k, 则有生成矩阵如下:
若不是系统形式,可通过行变换变成系统形式
校验矩阵 H
令 h(X) 满足, Xn+1=g(X)h(X), 则 h(X) 的 k 个系数张成矩阵 ,h(X) 称为校验多项式
循环码的对偶码
设码 C 的生成多项式为 g(X) ,校验多项式为 h(X)
其对偶码的生成多项式为 Xkh(X-1) ,也是一个循环码
一个循环码被其校验矩阵唯一确定
例子
( 7,4 )循环码 C ,生成多项式 g(X)=1+X+X3
其校验多项式为 h(X)=Xn+1/g(X)=1+X+X2+X4
码 C 的对偶码的生成多项式为 X4h(X-1)=1+X2+X3+X4
循环码的编码
编码步骤:1. 用 Xn-k 乘信息序列 u(X)
2. 用生成多项式 g(X) 除 Xn-ku(X) ,得余式 b(X) 为校验位
3. 得到码多项式 b(X) +Xn-ku(X)
循环码的译码
同线性码 计算校正子 求错误模式 纠错或计算码字
查错
令 v(X) 表示输入码字, e(X) 为错误模式,则接受向量 r(X)=v(X)+e(X)=a(X)g(X)+e(X) ,故有:e(X)=a(X)g(X)+b(X)g(X)+s(X)=c(X)g(X)+s(X) ,即校正子是错误模式除以生成多项式的余式
从接受向量 r(X) 可以计算校正子 s(X) ,错误模式 e 是未知的,故需要从 s(X) 去求 e(X) 。若 e(X) 是标准阵的陪集首,则可用查表译码,由校正子获得错误模式。
若 e(X) 是 0 ,则 s(X)=0 ;若 e(X) 是码多项式,则 e(X) 是漏检错误模式。
计算校正子
设接受序列为 r(X) ,则有: r(X)=a(X) g(X)+s(X) ,当且仅当 r(X) 是码多项
式时, s(X) 是 0 , s(X) 就是校正子 性质: r(1)(X) 的校正子 s(1)(X) 是 s(X) 的一次循
环移动。 也就是说码字循环位移得到新码字的校验子是
原校验子循环位移后除以生成多项式的余式,即: s(i)(X) =Xis(X)-b(X)g(X)=ri(X)-c(X)g(X) , s(i)(X) 的次数低于 g(X)
译码
串行译码 每次只译一个接收比特 , 然后循环移位,继续译
下一个接受比特 若校正子 s(X) 与 Xn-1 有错所对应的错误模式对
应,则接受比特 vn-1 有错 得到修正接收多项式 r1(X)=r0+r1X+…+rn-2Xn-2 +
(rn-1+en-1)Xn-1 ,循环位移得到 r1(1)(X)=(rn-1+en-1) +
r0X+r1X2+…+rn-2Xn-1 ,且 s1(1)(X)=s(1)(X)+1
Meggitt 译码器(算法)
假设错误是突发错误,即错误模式 e 包含连续若干个 1 , (n,k) 循环码能检测长度小于等于n-k 的突发错误 证明: e(X)=XjB(X),B(X) 的次数小于等于 n-k-1 ,小
于 g(X) 的次数,又因为 g(X) 和 Xj 互素,因此 e(X)不是 g(x) 的倍式,故 s(X) 不为 0 。检测出错误。
长度为 n-k+1 的突发错误中,不能被检测的数目占 2-(n-k-1); 长度 >n-k+1, 不能被检测的 2-(n-k)
证明:共有 2 (n-k-1) 种突发错误,不能被检测的只有当 e(X) 是 g(x) 的倍式 ; 共有 2 (n-k) 种突发错误,不能被检测的 2l-(n-k)-2 种。
循环码的差错检测能力
差错检测能力强!
( 23 , 12 )格雷码
生成多项式 : 若 g1(X)=1+X2+X4+X5+X6+X10+X11, g2(X)=1+X+X5+
X6+X7+X9+X11
X23+1=(1+X)g1(X)g2(X)
( 23 , 12 )格雷码的系统搜索译码 通过循环位移,不大于 3 个错误的错误模式在特定 11
个连续位 ( 校验位 ) 之外至多有 1 个错误 步骤:
计算校正子 接收向量和校正子循环位移 23 次,检查校正子重量是否小
于等于 3 ,若满足则可纠错 若否,则对第一个信息位取反,重复上一步,检查是否有重
量小于 2 的校正子,若有则第 1 位错,校正子指出其他两个错,完成译码
若上一步判断是否定的,则第 1 位正确,恢复第 1 位,类似检查第二个信息位,第三个…,直到第 12 个信息位
每种错误数目不大于 3个错误模式,至少 1个错误,一旦纠正了,会令其他的错误在连续的 11位中,可用普通方式来纠正(通过逐一取反 12个
信息位,假设检验)。
准循环码
每次循环移动 n0 位, 若 n0=1 ,就是循环码,否则就是准循环码
N0 叫做移位约束 准循环码的对偶码也是准循环码
BCH 码
BCH三个人: Bose, Chaudhuri, Hocquenghem 是一类循环码,是汉明码的推广,可纠正多个
错误 定义:
对任意正整数 m(m>2) 和 t(t<2m-1) ,存在具有如下参数的 BCH 码
分组长度 n=2m-1 奇偶校验位数目 n-k<=mt 最小距离 dmin>=2t+1
该码能校正小于等于 t个错
误
BCH 码的生成多项式(本原 BCH码) 设 a 是 GF(2m) 的生成元。码长为 2m-1 ,纠正 t 个
或少于 t 个错误的 BCH 码的生成多项式 就是以
为根的最低次多项式。 设 的最小多项式为 ,则
任何整数 i 都可以写成 i=i’2l ,其中 i’ 是奇数 ,我们有 ,当 l>1 时, 是 的共轭元,具有相同的最小多项式 ,故 g(X) 可写为
g(X) 的次数最多为mt,因为每个多项式的次数至多为
m,也就是 n-k<=mt
非本原 BCH 码
给定正整数 m(m>2) 和 t(t<2m-1) 之后,通过选择 FG(2m) 中的本原元构建生成多项式获得本原 BCH 码
若选择的不是本原元,则得到非本原 BCH 码,n!=2m-1
BCH 码就是循环码的生成多项式的根是连续的 FG(2m) 的元素 ,该码的最小距离至少为 2t+1
BCH 的码多项式
设码 ,其码多项式为:
故码多项式有生成多项式 g(X) 的全部根,也就是 及其共轭元,有一个码多项式的定义:当且仅当包含有 为根的多项式 称为码多项式
对 1<=i<=2t ,码多项式
BCH 的码多项式
也就是向量内积: 对任意的 1<=i<=2t ,上式都成立,即码向量
v 和下列矩阵 H 的乘积为 0
vHT=0 , H 是该码的校验矩阵
简化的校验矩阵 H
码多项式 其共轭元 必然满足 H 中偶数行的 是某个奇数行的共轭元,故 H
可以简化为如下:
BCH 码的译码
假设发送码字 ,传输中的错误导致了 令错误模式为
有 译码第一步,计算校正子 令 的最小多项式为 ,并将接收向量写为:
,故有 S的第 i 个分量 ,即在用 r(X) 除以 的余式 中代入 ,得到 Si
BCH 码的译码步骤
1. 由接收多项式 r(X) 计算校正子
2. 由校正子分量确定错误位置多项式3. 通过求解 的根,确定错误位置,并纠正 r
(X) 中的错误 注意到校正子分量 即校正子仅取决于错误模式 假设错误模式包含 v 个错误,位置在