第四章 循环码
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2
码矢C0= (cn-1,…,c1,c0) 右循环一位C1= (cn-2,…,c1, c0, cn-1,)也是码矢。它们各自对应的码多项式是: C0(x)= cn-1 xn-1+ cn-2 xn-2+…+c1 x+c0 C1(x)= cn-2 xn-1+ cn-3 xn-2+…+c0 x+cn-1 比较两者,可知
110
1101001
111
1110100
码集未变(2个循环环)而映射规则变了。
16
根据定理4.3,应有
xn-1=g(x) h(x)
(4-7)
如果g(x)是循环码的生成多项式,那么h(x)一定 就是循环码的校验多项式。这是因为对于任意 一个码多项式C(x),必有
C(x)h(x)=0 mod (xn-1)
8
例4. 2 分析码长n=7的所有可能二进制循环码 解:将GF(2)上多项式 (x7+1)因式分解,或查 表4.6 m=3一行,得:
(x7+1)= (x+1) (x3+x+1) (x3+x2+1) 因此(x7+1)因式的次数可以有以下四种 1次 (x+1) 3次 (x3+x+1)或(x3+x2+1) 4次 (x+1) (x3+x+1) 或 (x+1) (x3+x2+1) 6次 (x3+x+1) (x3+x2+1) (n-k)=可取1、3、4、6, 因此我们断言: 存在(7,6), (7,4) , (7,3) , (7,1) 循环码, 而不存在(7,2) , (7,5) 循环码。
定理4. 1 (n,k)循环码的码多项式是模(xn -1)乘运算 下多项式交换环的一个主理想。反之,多项式交换 环的一个主理想一定可以产生一个循环码。
由于主理想的所有元素(码多项式)都可以由一个 元素的幂次组成,这个元素(码多项式)称为该主 理想的生成元,或叫作该(n, k)循环码的生成多项式 生成多项式不是唯一的,但总有一个是次数最低的
= A(x) C0(x)
mod (xn +1)
(4-3)
C0(x)是码多项式,A(x)是n-1次多项式,但不一定是码 多项式。式(4-3)给出的结论是:码多项式与任意n -1 次多项式作运算后,结果一定回落到码空间。
码多项式构成一个理想子环
4
用近世代数来分析,GF(q)域上次数小于n的多项式 在模q加法和模(xn-1)乘法运算下构成一个多项式剩 余类环,该环是交换环,环上任一理想子环一定是 主理想(P39)。
C1(x)=xC0(x), mod (+1)
(4-2)
以此类推,循环码循环移2位、移3位、移n-1位后
仍然应是码字, 我们于是得到下面一系列等式:
C2(x)= xC1(x) = x2C0(x), C3(x)= xC2(x) = x3C0(x),
:
mod (xn +1) mod (xn +1)
:
9 (0,2,3,4,5,7,8) 11 (0,1,2,5,6,7,8) 13
17
(0,1,4)
19 (0,2,5,6,8) 21
25 (0,1,3,4,8) 27 (0,1,2,3,4,5,8) 29
(0,1,3,5,8) (0,l,3,7,8) (0,2,3,7,8)
15 (0,1,2,4,6,7,8)
r(x)是与码字中(n-k)个校验元相对应的(n-k-1)次多
项式,可将式(4-5)写成
xn-k m(x)= C(x) + r (x)
等 式 两 边 除 以 生 成 多 项 式 g(x) , 由 于 g(x) 能 整 除
C(x) ,deg[r (x)] < deg[g(x)] ,因此有
r (x)= xn-k m(x) mod g(x)
g(x)一定是某(n,k)循环码的生成多项式。
7
上述三定理告诉了我们构造(n,k)循环码
的方法如下: ①对xn-1 (在二元域中等效于对xn+1)实行 因式分解, 找出其中的(n-k)次因式。 ② 以找出的(n-k)次因式为循环码生成 多项式g(x),与信息多项式m(x)相乘,即 得码多项式:C(x)= m(x) g(x)。
信息位 m
000
码矢C 0000000
③C(x)=xn-km(x)+r(x) =(x5+x4)+(x3+x),
001
0011101
010
0100111
011
0111010
对应码矢(0111010) 依次将(000)…(111)代入 可得表4-2。表4-1对比,
100
1001110
101
1010011
例4.3 (7,3)循环码的生成多项式是g(x)=x4+x3+x2+1,
用式(4-6)产生循环码集。
解:当输入信息 m=(011)即m(x) = ( x +1)时,
① xn-km(x) = x4( x +1) = x5+ x4
②( x5+ x4)除以(x4+ x3+ x2+ 1) 得余式(x3+ x)
循环码的定义:一个(n, k)线性分组码,若将其任意 一个码字的码元向右或向左循环移一位,所得的或 仍然是码字,则称该码为循环码。 例4.1.1汉明循环码C的生成矩阵G和校验矩阵H 依次令m=(0000) …(1111)代入方程C=mG 可得16 个码字。经分析,将16个码字归结为4个循环环
第一循环 第二循环 第三循环 第四循环
11 (0,1,3,4,5) 15
(0,3,5)
m=6 1
(0,1,6)
3 (0,l,2,4,6) 5 (0,l,2,5,6) 7
(0,3,6)
9 21 m=7 1
(0,2,3) (0,1,2) (0,3,7)
11 (0,2,3,5,6) 13 (0,1,3,4;6) 15 (0,2,4,5,6)
23 (0,1,4,5,6) 27
C n-1 (x)= xC n-2(x) = xn-1C0(x),
mod (xn +1)
3
由码空间的封闭性,可知码多项式C0(x),…, C n-1(x) 的线性组合仍应是码多项式:
C(x)=an-1xn-1C0(x)+an-2xn-2C0(x)+…+a1xC0(x)+a0C0(x)
= (an-1 xn-1+ an-2 xn-2+…+a1 x+a0)C0(x)
23 (0,1,5,6,8)
31 (0,2,3,5,8)
10
表2-3 共轭元及相应的最小多项式(m=4)
共轭元
最小多项式
元素阶
0
1(x)= x+1
1
1,2,4,8
2(x)= x4+ x+1
15
3,6,9,12 3(x)= x4+ x3+ x2+ x +1 5
5,10
4(x)= x2+ x +1
3
7,11,13,14 5(x)= x4+ x3+ 1
“所有小于n次的g(x)的倍式都是码多项式” 意味着 m(x)g(x)一定是码字,其中m(x)是GF(2)上小于k次 的任意多项式,以致它与(n-k)次的g(x)相乘后所得 倍式的次数一定小于n次。
6
定理4. 3 (n,k)循环码的生成多项式g(x)一定是(xn-1) 的因式,即一定存在一个多项式h(x),满足 (xn-1)=g(x) h(x) 或 g(x)| (xn-1) 反之,如果g(x)是(xn-1)的(n-k)次因式,
要么两个33crc码生成多项式crc最大码长crc12111204715132767crc1611615132767crc32311检错能力以1213的概率检出长度17的单个突发差错以1212的概率检出长度17的单个突发差错以1217的概率检出长度17的单个突发差错以1216的概率检出长度17的单个突发差错所有长度各2的两个突发差错同上crcitut以1233的概率检出长度33的单个突发差错以1232的概率检出长度33的单个突发差错所有长度各2的两个突发差错crcitut34bch码是纠错能力可控的纠随机差错码是循环码的子类
5
定理4. 2 在一个GF(2)域上的 (n, k)循环码中,一定 存在唯一的一个次数最低的(n-k)次首一码多项式
g(x) = xn-k+ gn-k -1 x n-k -1+…+g1 x+1 使所有码多项式都是g(x)的倍式,且所有小于n次 的g(x)的倍式都是码多项式。
即 C(x)=m(x)g(x) 及 g(x)| C(x)
信息位m
000 001
类推,得全部码集。
010
经检验,符合
011 100
“码字的循环仍是码字” 101
码矢C
0000000 0011101 0111010 0100111 1110100 1101001
110
1001110
111
1010011
12
构码也有好坏之分。比如构造一个(15,10)循环码, x15+1=(x+1)(x2+x+1)(x4+x+1)(x4+x3+1)(x4+x3+x2+x+1) 由于n-k=5 方案1: g1(x)= (x+1) (x4+ x+1)= x5+ x4+x2+1 方案2: g2(x)= (x+1) (x4+x3+x2+x+1)= x5 + 1
∵C(x)h(x) = m(x)g(x) h(x) = m(x) (xn-1)是(xn-1) 的倍式,一定能被(xn-1)整除 ∴ mod (xn-1) 运算后必定为零。
17
C( x ) ( mk1xk1 m1x m0 )g( x ) mk1xk1g( x ) m1xg( x ) m0g( x )
9
表4-6二元扩域GF(2m)中连续幂次根所对应的最小多项式
i 最小多项式 i 最小多项式 i 最小多项式 i 最小多项式
m=2 1
(0,1,2)
m=3 1
(0,1,3)
3
(0,2,3)
m=4 1
(0,1,4)
3 (0,1,2,3,4) 5
(0,1,2)
7
(0,3,4)
m=5 1
(0,2,5)
3 (0,2,3,4,5) 5 (0,1,2,4,5) 7 (0,1,2,3,5)
1
循环码的多项式描述 GF(2)上n维矢量空间Vn中的任一矢量 V= (vn-1,…,v1,v0) vi GF(2) 可与GF(2)域上多项式V(x) 一一对应如下: V= (vn-1,…,v1,v0) V(x)= vn-1 xn-1+…+v1 x+v0 多项式的各系数就是矢量各元素的值,x的幂次指 示对应元素所在位置。 码空间是矢量空间Vn的一个子空间,因此 n重矢量不一定是码矢量,n次多项式不一定是码多 项式。位于码空间的矢量叫码矢,对应的多项式为 码多项式。我们约定:以下所说的码字、码组、码 矢和码多项式等术语具有相同的物理意义,只是描 述角度和表达方式不同而已。
(1011000) (1110100) (0000000) (1111111) (0110001) (1101001) (1100010) (1010011) (1000101) (0100111) (0001011) (1001110) (0010110) (0011101) (0101100) (0111010)
g(x)一般就是最轻码, g1(x) 、 g2(x)的重量分别是 4和2,因此g1(x)优于g2(x)。
13
用上述方法可得循环码,但未必是系统的。若想 得到系统循环码,即码字的前k位原封不动照搬信 息位而后(n-k)位为校验位,具有如下形式
C(x) = xn-k m(x) + r (x)
(4-5)
(0,6,7)
27 (0,1,4,6,7)
29 (0,1,3,5,7) 31 (0,4,5,6,7) 43 (0,l,2,5,7) 47 (0,3,4,5,7)
55 (0,2,3,4,5,6,7) 63
(0,4,7)
m = 8 1 (0,2,3,4,8) 3 (0,1,2,4,5,6,8) 5 (0,1,4,5,6,7,8) 7 (0,3,5,6,8)
g(x)=(x+1)(x3+x+1)=(x4+x3+x2+1)作生成多项式, 令
C(x)= m(x) g(x) =(m2x2+m1x+m0) (x4+x3+x2+1) 可产生循环码集。例如m=(011)即 m(x)=( x +1)时
( x+ 1)(x4+x3+x2+1) = x5+ x2+ x1+ 1 对应码矢C = ( 0100111 )
即r(x)等于xn-k m(x)除以g(x)的余式
14
于是我们得到了产生系统循环码的具体 方法 ①. 将信息多项式m(x)预乘xn-k,
即右移(n-k)位。 ②. 将xn-km(x)除以g(x),得余式r (x)。 ③. 系统循环码的码多项式可写成:
C(x) =xn-km(x) + r (x)
15
(0,1,3)
31
(0,5,6)
3 (0,1,2,3,7) 5 (0,2,3,4,7) 7 (0,1,2,4,5,6,7)
9 (0,1,2,3,4,5,7) 11 (0,2,4,6,7) 13
(0,1,7)
15 (0,1,2,3,5,6,7)
19 (0,1,6,7) 21 (0,2,5,6,7) 23
15
m=3, 7 = 1
共轭元
最小多项式
0 1,2,4 3,6 , 5
1(x)= x+1 2(x)= x3+ x+1 3(x)= x3+ x2+1
元素阶
1 7 7
11
要构成(7,3)循环码,(n-k)=4的因式有(x+1) (x3+x
+1) 或(x+1) (x3+x2+1)两个,任选其中一个,比如
码矢C0= (cn-1,…,c1,c0) 右循环一位C1= (cn-2,…,c1, c0, cn-1,)也是码矢。它们各自对应的码多项式是: C0(x)= cn-1 xn-1+ cn-2 xn-2+…+c1 x+c0 C1(x)= cn-2 xn-1+ cn-3 xn-2+…+c0 x+cn-1 比较两者,可知
110
1101001
111
1110100
码集未变(2个循环环)而映射规则变了。
16
根据定理4.3,应有
xn-1=g(x) h(x)
(4-7)
如果g(x)是循环码的生成多项式,那么h(x)一定 就是循环码的校验多项式。这是因为对于任意 一个码多项式C(x),必有
C(x)h(x)=0 mod (xn-1)
8
例4. 2 分析码长n=7的所有可能二进制循环码 解:将GF(2)上多项式 (x7+1)因式分解,或查 表4.6 m=3一行,得:
(x7+1)= (x+1) (x3+x+1) (x3+x2+1) 因此(x7+1)因式的次数可以有以下四种 1次 (x+1) 3次 (x3+x+1)或(x3+x2+1) 4次 (x+1) (x3+x+1) 或 (x+1) (x3+x2+1) 6次 (x3+x+1) (x3+x2+1) (n-k)=可取1、3、4、6, 因此我们断言: 存在(7,6), (7,4) , (7,3) , (7,1) 循环码, 而不存在(7,2) , (7,5) 循环码。
定理4. 1 (n,k)循环码的码多项式是模(xn -1)乘运算 下多项式交换环的一个主理想。反之,多项式交换 环的一个主理想一定可以产生一个循环码。
由于主理想的所有元素(码多项式)都可以由一个 元素的幂次组成,这个元素(码多项式)称为该主 理想的生成元,或叫作该(n, k)循环码的生成多项式 生成多项式不是唯一的,但总有一个是次数最低的
= A(x) C0(x)
mod (xn +1)
(4-3)
C0(x)是码多项式,A(x)是n-1次多项式,但不一定是码 多项式。式(4-3)给出的结论是:码多项式与任意n -1 次多项式作运算后,结果一定回落到码空间。
码多项式构成一个理想子环
4
用近世代数来分析,GF(q)域上次数小于n的多项式 在模q加法和模(xn-1)乘法运算下构成一个多项式剩 余类环,该环是交换环,环上任一理想子环一定是 主理想(P39)。
C1(x)=xC0(x), mod (+1)
(4-2)
以此类推,循环码循环移2位、移3位、移n-1位后
仍然应是码字, 我们于是得到下面一系列等式:
C2(x)= xC1(x) = x2C0(x), C3(x)= xC2(x) = x3C0(x),
:
mod (xn +1) mod (xn +1)
:
9 (0,2,3,4,5,7,8) 11 (0,1,2,5,6,7,8) 13
17
(0,1,4)
19 (0,2,5,6,8) 21
25 (0,1,3,4,8) 27 (0,1,2,3,4,5,8) 29
(0,1,3,5,8) (0,l,3,7,8) (0,2,3,7,8)
15 (0,1,2,4,6,7,8)
r(x)是与码字中(n-k)个校验元相对应的(n-k-1)次多
项式,可将式(4-5)写成
xn-k m(x)= C(x) + r (x)
等 式 两 边 除 以 生 成 多 项 式 g(x) , 由 于 g(x) 能 整 除
C(x) ,deg[r (x)] < deg[g(x)] ,因此有
r (x)= xn-k m(x) mod g(x)
g(x)一定是某(n,k)循环码的生成多项式。
7
上述三定理告诉了我们构造(n,k)循环码
的方法如下: ①对xn-1 (在二元域中等效于对xn+1)实行 因式分解, 找出其中的(n-k)次因式。 ② 以找出的(n-k)次因式为循环码生成 多项式g(x),与信息多项式m(x)相乘,即 得码多项式:C(x)= m(x) g(x)。
信息位 m
000
码矢C 0000000
③C(x)=xn-km(x)+r(x) =(x5+x4)+(x3+x),
001
0011101
010
0100111
011
0111010
对应码矢(0111010) 依次将(000)…(111)代入 可得表4-2。表4-1对比,
100
1001110
101
1010011
例4.3 (7,3)循环码的生成多项式是g(x)=x4+x3+x2+1,
用式(4-6)产生循环码集。
解:当输入信息 m=(011)即m(x) = ( x +1)时,
① xn-km(x) = x4( x +1) = x5+ x4
②( x5+ x4)除以(x4+ x3+ x2+ 1) 得余式(x3+ x)
循环码的定义:一个(n, k)线性分组码,若将其任意 一个码字的码元向右或向左循环移一位,所得的或 仍然是码字,则称该码为循环码。 例4.1.1汉明循环码C的生成矩阵G和校验矩阵H 依次令m=(0000) …(1111)代入方程C=mG 可得16 个码字。经分析,将16个码字归结为4个循环环
第一循环 第二循环 第三循环 第四循环
11 (0,1,3,4,5) 15
(0,3,5)
m=6 1
(0,1,6)
3 (0,l,2,4,6) 5 (0,l,2,5,6) 7
(0,3,6)
9 21 m=7 1
(0,2,3) (0,1,2) (0,3,7)
11 (0,2,3,5,6) 13 (0,1,3,4;6) 15 (0,2,4,5,6)
23 (0,1,4,5,6) 27
C n-1 (x)= xC n-2(x) = xn-1C0(x),
mod (xn +1)
3
由码空间的封闭性,可知码多项式C0(x),…, C n-1(x) 的线性组合仍应是码多项式:
C(x)=an-1xn-1C0(x)+an-2xn-2C0(x)+…+a1xC0(x)+a0C0(x)
= (an-1 xn-1+ an-2 xn-2+…+a1 x+a0)C0(x)
23 (0,1,5,6,8)
31 (0,2,3,5,8)
10
表2-3 共轭元及相应的最小多项式(m=4)
共轭元
最小多项式
元素阶
0
1(x)= x+1
1
1,2,4,8
2(x)= x4+ x+1
15
3,6,9,12 3(x)= x4+ x3+ x2+ x +1 5
5,10
4(x)= x2+ x +1
3
7,11,13,14 5(x)= x4+ x3+ 1
“所有小于n次的g(x)的倍式都是码多项式” 意味着 m(x)g(x)一定是码字,其中m(x)是GF(2)上小于k次 的任意多项式,以致它与(n-k)次的g(x)相乘后所得 倍式的次数一定小于n次。
6
定理4. 3 (n,k)循环码的生成多项式g(x)一定是(xn-1) 的因式,即一定存在一个多项式h(x),满足 (xn-1)=g(x) h(x) 或 g(x)| (xn-1) 反之,如果g(x)是(xn-1)的(n-k)次因式,
要么两个33crc码生成多项式crc最大码长crc12111204715132767crc1611615132767crc32311检错能力以1213的概率检出长度17的单个突发差错以1212的概率检出长度17的单个突发差错以1217的概率检出长度17的单个突发差错以1216的概率检出长度17的单个突发差错所有长度各2的两个突发差错同上crcitut以1233的概率检出长度33的单个突发差错以1232的概率检出长度33的单个突发差错所有长度各2的两个突发差错crcitut34bch码是纠错能力可控的纠随机差错码是循环码的子类
5
定理4. 2 在一个GF(2)域上的 (n, k)循环码中,一定 存在唯一的一个次数最低的(n-k)次首一码多项式
g(x) = xn-k+ gn-k -1 x n-k -1+…+g1 x+1 使所有码多项式都是g(x)的倍式,且所有小于n次 的g(x)的倍式都是码多项式。
即 C(x)=m(x)g(x) 及 g(x)| C(x)
信息位m
000 001
类推,得全部码集。
010
经检验,符合
011 100
“码字的循环仍是码字” 101
码矢C
0000000 0011101 0111010 0100111 1110100 1101001
110
1001110
111
1010011
12
构码也有好坏之分。比如构造一个(15,10)循环码, x15+1=(x+1)(x2+x+1)(x4+x+1)(x4+x3+1)(x4+x3+x2+x+1) 由于n-k=5 方案1: g1(x)= (x+1) (x4+ x+1)= x5+ x4+x2+1 方案2: g2(x)= (x+1) (x4+x3+x2+x+1)= x5 + 1
∵C(x)h(x) = m(x)g(x) h(x) = m(x) (xn-1)是(xn-1) 的倍式,一定能被(xn-1)整除 ∴ mod (xn-1) 运算后必定为零。
17
C( x ) ( mk1xk1 m1x m0 )g( x ) mk1xk1g( x ) m1xg( x ) m0g( x )
9
表4-6二元扩域GF(2m)中连续幂次根所对应的最小多项式
i 最小多项式 i 最小多项式 i 最小多项式 i 最小多项式
m=2 1
(0,1,2)
m=3 1
(0,1,3)
3
(0,2,3)
m=4 1
(0,1,4)
3 (0,1,2,3,4) 5
(0,1,2)
7
(0,3,4)
m=5 1
(0,2,5)
3 (0,2,3,4,5) 5 (0,1,2,4,5) 7 (0,1,2,3,5)
1
循环码的多项式描述 GF(2)上n维矢量空间Vn中的任一矢量 V= (vn-1,…,v1,v0) vi GF(2) 可与GF(2)域上多项式V(x) 一一对应如下: V= (vn-1,…,v1,v0) V(x)= vn-1 xn-1+…+v1 x+v0 多项式的各系数就是矢量各元素的值,x的幂次指 示对应元素所在位置。 码空间是矢量空间Vn的一个子空间,因此 n重矢量不一定是码矢量,n次多项式不一定是码多 项式。位于码空间的矢量叫码矢,对应的多项式为 码多项式。我们约定:以下所说的码字、码组、码 矢和码多项式等术语具有相同的物理意义,只是描 述角度和表达方式不同而已。
(1011000) (1110100) (0000000) (1111111) (0110001) (1101001) (1100010) (1010011) (1000101) (0100111) (0001011) (1001110) (0010110) (0011101) (0101100) (0111010)
g(x)一般就是最轻码, g1(x) 、 g2(x)的重量分别是 4和2,因此g1(x)优于g2(x)。
13
用上述方法可得循环码,但未必是系统的。若想 得到系统循环码,即码字的前k位原封不动照搬信 息位而后(n-k)位为校验位,具有如下形式
C(x) = xn-k m(x) + r (x)
(4-5)
(0,6,7)
27 (0,1,4,6,7)
29 (0,1,3,5,7) 31 (0,4,5,6,7) 43 (0,l,2,5,7) 47 (0,3,4,5,7)
55 (0,2,3,4,5,6,7) 63
(0,4,7)
m = 8 1 (0,2,3,4,8) 3 (0,1,2,4,5,6,8) 5 (0,1,4,5,6,7,8) 7 (0,3,5,6,8)
g(x)=(x+1)(x3+x+1)=(x4+x3+x2+1)作生成多项式, 令
C(x)= m(x) g(x) =(m2x2+m1x+m0) (x4+x3+x2+1) 可产生循环码集。例如m=(011)即 m(x)=( x +1)时
( x+ 1)(x4+x3+x2+1) = x5+ x2+ x1+ 1 对应码矢C = ( 0100111 )
即r(x)等于xn-k m(x)除以g(x)的余式
14
于是我们得到了产生系统循环码的具体 方法 ①. 将信息多项式m(x)预乘xn-k,
即右移(n-k)位。 ②. 将xn-km(x)除以g(x),得余式r (x)。 ③. 系统循环码的码多项式可写成:
C(x) =xn-km(x) + r (x)
15
(0,1,3)
31
(0,5,6)
3 (0,1,2,3,7) 5 (0,2,3,4,7) 7 (0,1,2,4,5,6,7)
9 (0,1,2,3,4,5,7) 11 (0,2,4,6,7) 13
(0,1,7)
15 (0,1,2,3,5,6,7)
19 (0,1,6,7) 21 (0,2,5,6,7) 23
15
m=3, 7 = 1
共轭元
最小多项式
0 1,2,4 3,6 , 5
1(x)= x+1 2(x)= x3+ x+1 3(x)= x3+ x2+1
元素阶
1 7 7
11
要构成(7,3)循环码,(n-k)=4的因式有(x+1) (x3+x
+1) 或(x+1) (x3+x2+1)两个,任选其中一个,比如