1 循环码基础
1.1 循环码的概念
在线性分组码中有一类重要的码,称为循环码。循环码是在严密的现代代数学理论的基础上建立起来的。这种码的编码和解码设备都不太复杂,而且检错和纠错的能力都较强。循环码除了具有线性码的一般性质外,还具有循环性。
循环性: 任一码组循环一位后仍然是该编码中的一个码组。
这里的“循环”是指将码组中最右端的一个码元移至左端;或反之,即将最左端的一个码元移至右端。在表1中给出一种(7,3)循环码的全部码组。由此表中列出的码组可以直观地看出它的循环性。例如,表中第2码组向右移一位即得到第5码组;第6码组向右移一位即得到第3码组。
表1 一种(7,3)循环码的全部码组
码组编号 | 信息位 (a_6a_5a_4) | 监督位 (a_3a_2a_1a_0) | 码组编号 | 信息位 (a_6a_5a_4) | 监督位 (a_3a_2a_1a_0) |
---|---|---|---|---|---|
1 | 000 | 0000 | 5 | 100 | 1011 |
2 | 001 | 0111 | 6 | 101 | 1100 |
3 | 010 | 1110 | 7 | 110 | 0101 |
4 | 011 | 1001 | 8 | 111 | 0010 |
一般来说,若(an−1an−2⋯a0)(a_{n - 1}a_{n - 2}\cdots a_0)(an−1an−2⋯a0)是循环码的一个码组,则循环移位后的码组:
(an−2an−3⋯a0an−1)(an−3an−4⋯an−1an−2)⋮(a0an−1⋯a2a1) \begin{align*} &(a_{n - 2}a_{n - 3}\cdots a_0a_{n - 1})\\ &(a_{n - 3}a_{n - 4}\cdots a_{n - 1}a_{n - 2})\\ &\vdots\\ &(a_0 a_{n - 1} \cdots a_2a_1) \end{align*} (an−2an−3⋯a0an−1)(an−3an−4⋯an−1an−2)⋮(a0an−1⋯a2a1)
仍然是该编码中的码组。
1.2 码组的多项式表示
在代数编码理论中,为了便于计算,把码组中的各个码元当做一个多项式的系数。这样,一个长度为(n)的码组就可以表示成:
T(x)=an−1xn−1+an−2xn−2+⋯+a1x+a0(1−1)T(x) = a_{n - 1}x^{n - 1} + a_{n - 2}x^{n - 2} + \cdots + a_1x + a_0 \quad (1- 1)T(x)=an−1xn−1+an−2xn−2+⋯+a1x+a0(1−1)
应当注意,上式中 xxx 的值没有任何意义,我们也不必关心它,仅用它的幂代表码元的位置。这种多项式有时被称为码多项式。
例如,表1中的任意一个码组可以表示为:
T(x)=a6x6+a5x5+a4x4+a3x3+a2x2+a1x+a0(1−2) T(x) = a_{6}x^{6} + a_{5}x^{5} + a_{4}x^{4} + a_{3}x^{3} + a_{2}x^{2} + a_{1}x + a_{0} (1 - 2)T(x)=a6x6+a5x5+a4x4+a3x3+a2x2+a1x+a0(1−2)
其中第7个码组可以表示为:T(x)=1×x6+1×x5+0×x4+0×x3+1×x2+0×x+1=x6+x5+x2+1(1−3) \begin{align*} T(x)&= 1\times x^{6} + 1\times x^{5} + 0\times x^{4} + 0\times x^{3} + 1\times x^{2} + 0\times x + 1\\ &= x^{6} + x^{5} + x^{2} + 1 \end{align*} (1 - 3) T(x)=1×x6+1×x5+0×x4+0×x3+1×x2+0×x+1=x6+x5+x2+1(1−3)
2 循环码的运算
2.1 模2运算的启发
在整数运算中,有模nnn运算。例如,在模2运算中,有:
1+1=2≡0(模 2)1+2=3≡1(模 2)2×3=6≡0(模 2) 1 + 1 = 2 \equiv 0(\text{模 }2) \quad 1 + 2 = 3 \equiv 1(\text{模 }2) \quad 2 \times 3 = 6 \equiv 0(\text{模 }2) 1+1=2≡0(模 2)1+2=3≡1(模 2)2×3=6≡0(模 2)
一般来说,若一个整数mmm可以表示为:
mn=Q+pnp<n−−−−−−−(1−4)\frac{m}{n} = Q + \frac{p}{n} \quad p < n \quad -------(1 - 4)nm=Q+npp<n−−−−−−−(1−4)
式中,Q为整数。则在模n运算下Q为整数。则在模n运算下Q为整数。则在模n运算下,有:
m≡p(模 n)−−−−−−−−−(1−5)m \equiv p \quad (\text{模 }n) \quad---------(1 - 5)m≡p(模 n)−−−−−−−−−(1−5)
所以:
在模n运算下,一个整数m等于它被n除得的余数。在模n运算下,一个整数m等于它被n除得的余数。在模n运算下,一个整数m等于它被n除得的余数。
2.2 码多项式按模运算
上面是复习整数的按模运算。现在码多项式也可以按模运算。
若任意一个多项式F(x)被一个n次多项式N(x)除,得到商式Q(x)和一个次数小于n的余式R(x)若任意一个多项式F(x)被一个n次多项式N(x)除,得到商式Q(x)和一个次数小于n的余式R(x)若任意一个多项式F(x)被一个n次多项式N(x)除,得到商式Q(x)和一个次数小于n的余式R(x),即:
F(x)=N(x)Q(x)+R(x)−−−−−−−(1−6) F(x) = N(x)Q(x) + R(x) \quad -------(1 - 6)F(x)=N(x)Q(x)+R(x)−−−−−−−(1−6)
则在按模N(x)运算下,有则在按模N(x)运算下,有则在按模N(x)运算下,有: