2.7 循环码

用移位循环的方式构作码我们已经见过很多次(例如例$1.2.6$、定理$2.4.1$等等),这让我们感到需要对这类码进行系统的研究。本节我们介绍循环码的一种看待方式————视作商环$R=\mathrm{F}_q[x] /\left(x^n-1\right)$的元素,并且把集合$\mathrm{F}_q^n$等同于$R$。

定义 1 循环码

码长为\(n\)\(q\)元线性码\(C\)叫作循环码, 是指若\(\boldsymbol{c}=(c_0, c_1, \cdots c_{n-1}) \in C\), 则\(\boldsymbol{c}\)的循环移位\((c_{n-1}, c_0, c_1, \cdots, c_{n-2}) \in C\)(从而\(\boldsymbol{c}\)的任意多次循环移位所得向量均属于\(C\))
把码字\(\boldsymbol{c}=(c_0, c_1 \cdots, c_{n-1})\)写成多项式形式(向量形式与多项式形式是一一对应关系)

\[c(x)=c_0+c_1 x+\cdots+c_{n-1} x^{n-1} \in \mathrm{F}_q[x], \quad \operatorname{deg} c(x) \leqslant n-1 。 \]

易知商环\(R=\mathrm{F}_q[x] /\left(x^n-1\right)\)中的每个元素在商运算下总存在唯一的次数\(\leq n-1\)的代表元,形如\(r(x)=r_0+r_1 x+\cdots+\)\(r_{n-1} x^{n-1}\)

按这种方式, 我们把线性空间\(\mathrm{F}_q^n\)等同于(同构)\(R=\mathrm{F}_q[x] /\left(x^n-1\right)\)
\(\mathrm{F}_q^n\)中的\(\mathrm{F}_q\)-线性子空间 (\(q\)元线性码\(C\)) 按上述方式(\(\boldsymbol{c}\)看成\(c(x)\)) 等同于\(R\)的一个\(\mathrm{F}_q\)-线性子空间 (仍记为\(C\))。

这是一个很简单的同构关系,但是有趣的是左边\(\mathrm{F}_q^n\)通常来说不定义乘法结构,但是右边\(R=\mathrm{F}_q[x] /\left(x^n-1\right)\)作为环却具有比较丰富的乘法结构(非零元关于乘法构成一个含幺交换半群),我们把循环码看作两者的线性子空间,如果只考虑加法,由于两者加法同构,则对解决问题没有任何意义,不会提供新的信息。但是如果我们把\(R\)的乘法结构考虑进来,则会发现循环码在\(R\)中有比在\(F_q^n\)中有更多的意味。

注意到

\[\begin{aligned} x c(x) & =c_0 x+c_1 x^2+\cdots+c_{n-2} x^{n-1}+c_{n-1} x^n \\ & \equiv c_{n-1}+c_0 x+\cdots+c_{n-2} x^{n-1}\left(\bmod x^n-1\right) 。 \end{aligned} \]

所以\(C\)是循环码相当于\(C\)满足如下条件:

\[c(x) \in C \Rightarrow x c(x) \in C \text { 。 } \]

由此易知:

定理 2
\(C\)是循环码当且仅当\(C\)是环\(R\)中的一个理想。

于是在分析和研究循环码时, 我们不仅有线性代数工具, 还有抽象代数, 特别是多项式环\(\mathrm{F}_q[x]\)作为工具。
熟知\(R\)中每个理想\(C\)都是主理想。(域上多项式环都是主理想整环,由商环的理想对应定理可知\(R\)仍为主理想整环)

\[C=(g(x))=g(x) R=\{a(x) g(x) \in R \mid a(x) \in R\}, \]

并且可取\(g(x)\)\(x^n-1\)\(\mathrm{F}_q[x]\)中的首\(1\)多项式因子。

这是因为\((g(x))=(g(x)p(x))\),其中\(g(x)\)\(x^n-1\)的首一多项式因子,\(p(x)\)是与\(x^n-1\)互素的多项式。由裴蜀定理,\(\exists~u(x)\)\(v(x)\)s.t.\(u(x)p(x)+v(x)(x^n-1)=1\),故\(g(x)=g(x)(up+v(x^n-1))\equiv g(x)u(x)p(x)\in (g(x)p(x))\).也就是说与\(x^n-1\)互素的多项式都“不重要”。

循环码\(C\)\(g(x)\)是一一对应的, 称\(g(x)\)为循环码\(C\)生成 (多项)式。令

\[x^n-1=g(x) h(x), \quad \operatorname{deg} g(x)=n-k, \quad \operatorname{deg} h(x)=k 。 \]

\(h(x)\)(\(\mathrm{F}_q[x]\)中首\(1\)多项式)为循环码\(C\)校验 (多项)式
对于循环码\(C=(g(x))\)中每个码字\(c(x)=a(x) g(x) \in R\), 用\(h(x)\)去除\(a(x)\)得到

\[a(x)=q(x) h(x)+r(x), \quad \operatorname{deg} r(x)<k(=\operatorname{deg} h(x)), \]

其中\(q(x) \in \mathrm{F}_q[x], \quad r(x)=r_0+r_1 x+\cdots+r_{k-1} x^{k-1} \quad\left(r_i \in \mathrm{F}_q\right)\)。于是

\[\begin{aligned} c(x) & =a(x) g(x)=[q(x) h(x)+r(x)] g(x)=q(x)\left(x^n-1\right)+r(x) g(x) \\ & =\left(r_0+r_1 x+\cdots+r_{k-1} x^{k-1}\right) g(x) \in R . \end{aligned} \]

这就表明\(g(x), x g(x), \cdots, x^{k-1} g(x)\)是线性码\(C\)的一组\(\mathrm{F}_q\)-基 (因为每个码字均是它们的\(\mathrm{F}_q\)-线性组合, 而它们是\(\mathrm{F}_q\)-线性无关的)。所以\(C\)的维数(信息位数)为\(k=\operatorname{deg} h(x)\)。并且\(C\)生成阵

\[\boldsymbol{G}=\left(\begin{array}{l} g(x) \\ x g(x) \\ \cdots \\ x^{k-1} g(x) \end{array}\right)= \left(\begin{array}{ccccccc} g_0 & g_1 & \cdots & g_{n-k} & & & \\ & g_0 & g_1 & \cdots & g_{n-k} & & \\ & & \cdots & \cdots & \cdots & \cdots & \\ & & & g_0 & g_1 & \cdots & g_{n-k} \end{array}\right)(k 行 n 列), \]

其中\(g(x)=g_0+g_1 x+\cdots+g_{n-k} x^{n-k}, g_i \in \mathrm{F}_q, g_{n-k}=1, g_0 \neq 0\)。类似地, 考虑循环码\(C\)的校验式

\[h(x)=h_0+h_1 x+\cdots+h_k x^k \in \mathrm{F}_q[x], \quad\left(h_k=1, h_0 \neq 0\right) 。 \]

则对每个\(f(x) \in R\),

\[\begin{aligned} & f(x) \in C=(g(x)) \Leftrightarrow g(x)\left|f(x) \Leftrightarrow x^n-1=g(x) h(x)\right| f(x) h(x) \\ & \Leftrightarrow f(x) h(x)=0 \in R 。 \end{aligned} \]

\(f(x)=v_0+v_1 x+\cdots+v_{n-1} x^{n-1}=\left(v_0, v_1 \cdots, v_{n-1}\right) \quad\left(v_i \in \mathrm{F}_q\right)\)

\[\begin{aligned} f(x) h(x)& = \left(v_0+v_1 x+\cdots+v_{n-1} x^{n-1}\right)\left(h_0+h_1 x+\cdots+h_k x^k\right) \\ & \equiv s_0+s_1 x+\cdots+s_{n-1} x^{n-1} \quad\left(\bmod x^n-1\right) \end{aligned} \]

其中

\[\left.\begin{array}{c} s_0=v_0 h_0+v_{n-1} h_1+\cdots+v_{n-k} h_k, \\ s_1=v_1 h_0+v_0 h_1+v_{n-1} h_2+\cdots+v_{n-k+1} h_k, \\ \cdots \\ s_k=v_kh_0+v_{k-1}h_1+v_{k-2}h_2+\cdots +v_0h_k,\\ s_{k+1}=v_{k+1}h_0+v_{k}h_1+v_{k-1}h_2+\cdots +v_1h_k,\\ \cdots \\ s_{n-1}=v_{n-1} h_0+v_{n-2} h_1+\cdots+v_{n-k-1} h_k \end{array}\right\}\tag{1} \]

所以若\(f(x) \in C\), 则\(f(x) h(x) \equiv 0\left(\bmod x^n-1\right)\), 即\(s_i=0(1 \leqslant i \leqslant n-1)\)。由式\((1)\)\(s_i=0(k \leqslant i \leqslant n-1)\)给出(这里只提取了\(k\)行到\(n-1\)行等于\(0\)的信息,这些信息足以确定校验矩阵,前面\(k-1\)行的信息是多余的)

\[\boldsymbol{H}\left(\begin{array}{c} v_0 \\ v_1 \\ \cdots \\ v_{n-1} \end{array}\right)=\mathbf{0} \]

其中

\[\boldsymbol{H}=\left(\begin{array}{cccccccc} h_k & h_{k-1} & \cdots & h_1 & h_0 & & & \\ & h_k & h_{k-1} & \cdots & h_1 & h_0 & & \\ & & \ddots & \ddots & \ddots & \ddots & \ddots & \\ & & & h_k & h_{k-1} & \cdots & h_1 & h_0 \end{array}\right)(n-k \text { 行 } n \text { 列 }) 。 \]

\(h_k=1\)\(\boldsymbol{H}\)的秩为\(n-k\)。所以由定理\(2.1.8.(1)\),\(\boldsymbol{H}\)为循环码\(C\)的一个校验阵
我们知道, 循环码\(C\)的对偶码\(C^{\perp}\)\(\boldsymbol{H}\)\(\boldsymbol{G}\)分别为生成阵和校验阵, 由矩阵\(\boldsymbol{G}\)\(\boldsymbol{H}\)的形式可以看出如下的定理\(3\)

定理 3 循环码的对偶码

\(q\)元循环码\(C\)的对偶码\(C^{\perp}\)也是循环码。确切地说, 若\(g(x)=\)\(g_0+g_1 x+\cdots+g_{n-k} x^{n-k}\)\(h(x)=h_0+h_1 x+\cdots+h_k x^k\)分别为\(C\)的生成式和校验式, 其中\(g_i, h_i \in \mathrm{F}_q, g_{n-k}=h_k=1, x^n-1=g(x) h(x)\)(从而\(g_0 h_0=1 \neq 0\))。则对于\(g(x)\)\(h(x)\)的反向多项式

\[\begin{aligned} & g^*(x)=g_0 x^{n-k}+g_1 x^{n-k-1}+\cdots+g_{n-k}=x^{n-k} g\left(x^{-1}\right), \\ & h^*(x)=h_0 x^k+h_1 x^{k-1}+\cdots+h_k=x^k h\left(x^{-1}\right), \end{aligned} \]

它们给出的首\(1\)多项式\(h^{\perp}(x)=g_0^{-1} g^*(x)\)\(g^{\perp}(x)=h_0^{-1} h^*(x)\)(乘一个非零系数不会改变线性空间) 分别为循环码\(C^{\perp}\)的校验式和生成式。

本书中讨论的\(q\)元循环码, 均假定码长\(n\)\(q\)互素 (好的纠错码均是这种情形)。这时\(x^n-1\)\(\mathrm{F}_q\)的扩域中没有重根。

对于任意域上的多项式环,我们都有\((f,f^{\prime})=1\Leftrightarrow f\)没有重根。

所以它在\(\mathrm{F}_q[x]\)中分解成有限个(设为\(g\)个)不同的首\(1\)不可约多项式之乘积

\[x^n-1=p_1(x) \cdots p_g(x) 。 \]

\(x^n-1\)\(\mathrm{F}_q[x]\)中的每个首\(1\)多项式因子\(g(x)\)均是这\(g\)个不同因子\(p_i(x)(1 \leqslant i \leqslant g)\)当中一部分的乘积。所以当\((n, q)=1\)时, 码长为\(n\)\(q\)元循环码共有\(2^g\)个。

我们提到过把循环码可以同时看作\(F_q^n\)\(R=F_q[x]/(x^n-1)\)的线性子空间。而且视作后者的子空间时由于后者额外的乘法结构对我们讨论问题有好处。现在这个好处已经显现了出来——正是依靠这种方式我们轻易的得到了码长为\(n\)\(q\)元循环码共有\(2^g\)\(((n,q)=1)\).

循环码理论的一个基本问题是决定这些码的最小距离, 并且从中发现良好的纠错码。为此,我们将用有限域\(\mathrm{F}_q\)上多项式环\(\mathrm{F}_q[x]\)的理论和性质, 给出刻画循环码的其他方式(下一节)。这里先举两个例子。

例 4

\(q=3, n=10\)\(x^{10}-1\)\(\mathrm{F}_3[x]\)中分解成\(4\)个首\(1\)不可约多项式之积

\[x^{10}-1=(x-1)(x+1)\left(x^4+x^3+x^2+x+1\right)\left(x^4-x^3+x^2-x+1\right) \text { 。 } \]

所以码长为\(10\)的三元循环码共\(2^4=16\)个。比如, 取生成式为\(g(x)=x^4-x^3+x^2-x+1\), 给出三元循环码\(C=(g(x))\)的参数\([n, k, d]\), 其中\(n=10, k=10-\)\(\operatorname{deg} g(x)=6\)。生成阵可取

\[\boldsymbol{G}=\left(\begin{array}{llllllllll} 1 & 2 & 1 & 2 & 1 & 0 & 0 & 0 & 0 & 0 \\ 0 & 1 & 2 & 1 & 2 & 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 2 & 1 & 2 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 & 2 & 1 & 2 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 & 2 & 1 & 2 & 1 & 0 \\ 0 & 0 & 0 & 0 & 0 & 1 & 2 & 1 & 2 & 1 \end{array}\right) . \]

由于校验式为\(h(x)=\left(x^{10}-1\right) / g(x)=\left(x^5-1\right)(x+1)=x^6+x^5-x-1\), 可以取校验阵为

\[\boldsymbol{H}=\left(\begin{array}{llllllllll} 1 & 1 & 0 & 0 & 0 & 2 & 2 & 0 & 0 & 0 \\ 0 & 1 & 1 & 0 & 0 & 0 & 2 & 2 & 0 & 0 \\ 0 & 0 & 1 & 1 & 0 & 0 & 0 & 2 & 2 & 0 \\ 0 & 0 & 0 & 1 & 1 & 0 & 0 & 0 & 2 & 2 \end{array}\right) . \]

因为\(\boldsymbol{H}\)的第\(1\)和第\(6\)列线性相关, 可知\(d=2\)。对偶码\(C^{\perp}\)有参数\([10,4,d^{\perp}]\)\(C^{\perp}\)也是循环码,生成式为\(g^{\perp}(x)=-\left(-x^6-x^5+x+1\right)=h(x)\), 校验式为\(h^{\perp}(x)=g(x) 。 \boldsymbol{H}\)是线性码\(C^{\perp}\)的生成阵。由\(\boldsymbol{H}\)的形式可知\(C^{\perp}\)的每个码字可表示成\(\boldsymbol{c}=\left(\boldsymbol{c}_1, 2 \boldsymbol{c}_1\right)\), 其中\(\boldsymbol{c}_1 \in \mathrm{F}_3^5\), 是以\(\boldsymbol{H}\)的前\(5\)\(\left(\begin{array}{lllll}1 & 1 & 0 & 0 & 0 \\ 0 & 1 & 1 & 0 & 0 \\ 0 & 0 & 1 & 1 & 0 \\ 0 & 0 & 0 & 1 & 1\end{array}\right)\)为生成阵的三元线性码中的码字。此码的最小距离为\(2\), 因此\(d^{\perp}=4\)

例 5

对每个\(m \geqslant 2\), 取\(g(x)\)\(\mathrm{F}_2[x]\)中一个\(m\)次本原多项式, 根据本原多项式的定义,\(g(x) \mid x^n-1\left(n=2^m-1\right)\), 并且\(g(x)\)的周期为\(n\), 即\(n=2^m-1\)是满足\(g(x) \mid x^d-1\)的最小正整数\(d\)。于是

\[x^n-1=g(x) h(x), \quad \operatorname{deg} g(x)=m, \quad \operatorname{deg} h(x)=n-m=2^m-1-m 。 \]

\(C\)是以\(g(x)\)为生成式的二元循环码, 它的参数为\([n, k, d]\), 其中\(k=2^m-1-\)\(m\)\(\mathrm{F}_2^n\)\(\mathrm{Hamming}\)权为 1 和 2 的向量可表示成\(x^l(0 \leqslant l \leqslant n)\)\(x^l+x^l=x^l(1-\)\(\left.x^{l-l}\right)\left(0 \leqslant l<l^{\prime} \leqslant n\right)\)。由于\(g(x)\)的周期为\(n\), 可知它们不可能为\(g(x)\)的倍式, 所以\(C\)中没有权为 1 和 2 的非零码字。于是\(d \geqslant 3\)。再由\(\mathrm{Hamming}\)界可知\(d=3\).

上述介绍的诸多性质,也可以用更有抽象代数风格的方式进行证明。

定理 6

\(R=\mathbb{F}_q[x]/\braket{x^n-1}\)是主理想整环,对于\(R\)上的一个理想\(I\),考虑其生成元\(g(x)\),则\(g(x)|x^n-1\).并且理想\(I\)对应的循环码的维数\(\mathrm{dim}I_C=n-l\).(\(\mathrm{deg} g(x)=l< n\)

证明:考虑\(R\)\(\mathbb{F}_q[x]\)中的理想对应关系以及对应的方式,可知\(R\)是主理想整环,那么自然的,\(I\)的生成多项式\(g(x)\)的次数\(l\leq n\),且\(g(x)\)\(I\)中次数最小的首一多项式。

然后,在\(\mathbb{F}_q[x]\)中使用欧式除法得到\(x^n - 1 = q(x) g(x) + r(x)\)其中\(r(x)\)要么为\(0\),要么其次数严格小于\(\ell\)。将等式放到\(R\)上考虑,我们有\(r(x) = -q(x) g(x) \in I\),根据\(\ell\)的最小性,\(r(x) = 0\)\(R\)中成立。因此,\(r(x) = 0\)\(\mathbb{F}_q[x]\)中也成立,因为否则\(x^n - 1\)会整除\(r(x)\),这使得\(r(x)\)的度数至少为\(n > \ell\)

最后,设\(\mathbf{c} \in C\)是任意的码字。则\(\mathbf{c}(x) \in \langle g(x) \rangle \subset R\),所以存在某个\(f(x) \in R\),使得\(\mathbf{c}(x) = f(x) g(x)\)。在\(\mathbb{F}_q[x]\)中,我们有\(\mathbf{c}(x) = f(x) g(x) + e(x)(x^n - 1)\),其中\(e(x) \in \mathbb{F}_q[x]\)是某个多项式。且由于\(g(x)|\braket{x^n-1}\),我们有\(\mathbf{c}(x) = g(x)(f(x) + e(x) q(x))\),其中\(g(x) q(x) = x^n - 1\)。设\(h(x) = f(x) + e(x) q(x)\),我们得到\(\mathbf{c}(x) = g(x) h(x)\),并且\(\operatorname{deg}(h(x)) \leq n - \ell - 1\)。因此,将\(C\)中的码字视为\(\mathbb{F}_q[x]\)中的元素时,它们恰好是形如\(g(x) h(x)\)的多项式,其中\(h(x) \in L_{n - \ell - 1}\),所以\(\operatorname{dim} C = \operatorname{dim} L_{n - \ell - 1} = n - \ell\)\(\square\)

posted @ 2024-07-07 23:19  沙棘数学社  阅读(272)  评论(5)    收藏  举报