2.5 多项式码

本章用有限域上的多项式来构造一批好的线性码, 它们都是 $MDS$ 码, 即达到 $Singleton$ 界 $n=k+d-1$. 我们假设读者比较熟悉关于多项式的一些记号和部分简单的结论。重要的结论我们会再次提及。

引理 1(带余除法) 设 \(f(x), g(x) \in F_p[x], g(x) \neq 0\). 则存在唯一决定的 \(q(x), r(x)\) \(\in F_p[x]\), 使得

\[\begin{gathered} f(x)=q(x) g(x)+r(x), \\ \operatorname{deg}(r(x))<\operatorname{deg}(g(x)) . \end{gathered} \]

证明: 可以像实系数多项式一样的证明,此处从略.
\(q(x)\)\(r(x)\) 分别叫用 \(g(x)\) 去除 \(f(x)\)部分商式余式. 举一个例子可以说明.对于 \(F_3[x]\) 中多项式 \(f(x)=x^3+x+1\)\(g(x)\) \(=2 x^2+x\), 用 \(g(x)\) 去除 \(f(x)\) 的算式为 \(f(x)=(2 x+2) g(x)+(2 x+1)\)
上例表明,对于 \(F_p[x]\) 中两个多项式 \(f(x)\)\(g(x) \neq 0, f(x)\) 不一定被 \(g(x)\) 除尽. 所以在多项式环 \(F_p[x]\) 中可以像整数环 \(\mathbb{Z}\) 中那样定义整除性.
如果用 \(g(x)\) 去除 \(f(x)\) 的余式 \(r(x)\) 为零,即存在多项式 \(q(x) \in F_p[x]\), 使得 \(f(x)=q(x)\) \(g(x)\), 则称 \(f(x)\)\(g(x)\) 整除, 表示成 \(g(x)\) | \(f(x)\). 否则 (即 \(r(x) \neq 0\) ) 称 \(f(x)\) 不被 \(g(x)\) 整除,表示成 \(g(x) \not \mid f(x)\). 当 \(g(x) \mid f(x)\) 时, \(g(x)\)\(f(x)\)因式, 而 \(f(x)\)\(g(x)\)倍式.
\(F_p[x]\) 中的一个次数 \(\geqslant 1\) 的多项式 \(f(x)\) 叫做不可约的, 是指它不能表成两个多项式的乘积 \(f(x)=g(x) h(x)\), 使得 \(g(x)\)\(h(x)\) 的次数均小于 \(f(x)\) 的次数, 即 \(g(x)\)\(h(x)\) 都不是非零常数. 多项式环 \(F_p[x]\) 中也有和整数环类似的分解定理:

$F_p[x]$ 中每个次数 $\geqslant 1$ 的多项式都是有限个不可约多项式的乘积.

一个多项式叫做\(1\) 多项式, 是指它的最高次项的系数为 \(1\) . 如果 \(f(x)\) 的最高次项的系数为 \(a\) ( \(F_p\) 中非零元素), 则 \(a^{-1} f(x)\) 是首 \(1\) 多项式, 而环 \(F_p[x]\) 中的因式分解可以更确切地表述成:

$F_p[x]$ 中每个首 $1$ 多项式都可分解成有限个首 $1$ 不可约多项式的乘积, 并且若不计因式的次序, 这个分解式是唯一的.

引理 2 (读者自证)
\((1)\)\(f(x)\)\(F_p[x]\) 中多项式, \(a\)\(F_p\) 中元素, 则 \(a\)\(f(x)\) 的根 (即指 \(f(a)=0\)) 当且仅当 \((x-a)\)\(f(x)\) 的因式.
\((2)\) \(F_p[x]\) 中一个 \(n\) 次多项式在 \(F_p\) 中至多有 \(n\) 个不同的根.
\((3)\) (拉格朗日插值公式)设 \(n \geqslant 1, a_1, \cdots, a_n\)\(F_p\)\(n\) 个不同的元素 (所以 \(n \leqslant p\)), \(b_1, \cdots, b_n\)\(F_p\) 中任意 \(n\) 个元素, 则在 \(F_p[x]\) 中存在唯一的次数 \(\leqslant n-1\) 的多项式 \(f(x)\), 使得

\[f\left(a_i\right)=b_i, \quad 1 \leqslant i \leqslant n . \]


现在利用上述的有限域上多项式性质来构造一些 \(MDS\) 线性码.

\(a_1, \cdots, a_n\)\(F_p\)\(n\) 个不同的元素 (于是 \(n \leqslant p\)),$ 1 \leqslant k \leqslant n$, 对 \(F_p[x]\) 中每个次数 \(\leqslant k-1\)的多项式 \(f(x)\), 可以得到 \(F_p^n\) 中一个向量

\[\boldsymbol{c}_f=\left(f\left(a_1\right), f\left(a_2\right), \cdots, f\left(a_n\right)\right) \in F_p^n . \]

\(C\) 表示 \(F_p^n\) 中所有这些向量所构成的集合.
定理 3 上面构造的 \(C\) 是参数为 \([n, k, d]\)\(p\) 元线性码, 其中 \(d=n-k+1\), 从而是 \(MDS\) 码.
证明: 容易知道, \(F_p[x]\) 中次数 \(\leqslant k-1\) 的全体多项式组成的集合 \(S_k\)\(F_p\) 上的 \(k\) 维向量空间. 现在考虑映射

\[\varphi: S_k \longrightarrow F_p^n, \]

其中, 对每个 \(f(x) \in S_k\) (即 \(f(x)\)\(F_p[x]\) 中次数 \(\leqslant k-1\) 的多项式) , \(\varphi\)\(f(x)\) 映成 \(\boldsymbol{c}_f\) :

\[\varphi(f)=\boldsymbol{c}_f=\left(f\left(a_1\right), \cdots, f\left(a_n\right)\right) \in F_p^n . \]

读者验证 \(\varphi\)\(F_p\) 上的线性映射, 即对于 \(f, g \in\) \(S_k\)\(\alpha, \beta \in F_p\), 有 \(\varphi(\alpha f+\beta g)=\alpha \varphi(f)+\beta \varphi(g)\).
线性映射的象 \(\operatorname{Im}(\varphi)\) 就是 \(C\), 所以 \(C\)\(F_p^n\)的向量子空间,即 \(C\)\(p\) 元线性码. \(C\) 的码长显然是 \(n\), 而 \(C\) 的信息位数 \(k\)\(\operatorname{dim} C=\operatorname{dim}\) \((\operatorname{Im} \varphi)\). 根据线性代数, 有

\[\operatorname{dim}(\operatorname{ker} \varphi)+\operatorname{dim}(\operatorname{Im} \varphi)=\operatorname{dimS}_k=k . \]

为决定 \(\operatorname{dim}(\operatorname{Im} \varphi)\), 只需决定 \(\varphi\) 的核

\[\operatorname{ker} \varphi=\left\{f \in S_k \mid \varphi(f)=c_f=0 \in F_p^n\right\} \]

的维数. 设 \(f \in S_k\) (即 \(f(x) \in F_p[x]\), 并且 \(\operatorname{deg}\) \((f) \leqslant k-1)\), 则

\[f \in \operatorname{ker} \varphi \Leftrightarrow \boldsymbol{c}_f=\left(f\left(a_1\right), \cdots, f\left(a_n\right)\right)=0 \in F_p^n \Leftrightarrow a_1, \cdots, a_n 均是 f(x) 的根.\]

但是 \(f(x)\) 的次数 \(\leqslant k-1<n\). 如果 \(f(x)\)\(n\) 个不同的根 \(a_1, \cdots, a_n\), 必然 \(f=0\) (引理 \(2\)). 这就证明了 \(\operatorname{ker} \varphi=(0)\). 于是 \(C\) 的信息位数为 \(\operatorname{dim} S_k-\operatorname{dim}(\operatorname{ker} \varphi)=k-0=k\).
最后来决定 \(C\) 的最小距离 \(d\), 证明 \(d \geqslant n-k+1\).如果 \(d \leqslant n-k\), 则 \(C\) 中存在汉明重量 \(\leqslant n-\) \(k\) 的非零码字 \(\boldsymbol{c}_f=\left(f\left(a_1\right), \cdots, f\left(a_n\right)\right)\), 其中, \(f(x) \in F_p[x], \operatorname{deg}(f) \leqslant k-1\). 这时, \(\boldsymbol{c}_f\) 的分量至多有 \(n-k\) 个不为零, 即至少有 \(k\) 个分量为 \(0\) ,所以 \(a_1, \cdots, a_n\) 当中至少有 \(k\) 个是 \(f(x)\) 的根. 但是 \(\operatorname{deg}(f) \leqslant k-1\), 所以必然 \(f=0\), 于是 \(\boldsymbol{c}_f\) 为零向量. 这就与 \(\boldsymbol{c}_f\) 是非零码字的假设相矛盾, 从而证明了 \(d \geqslant n-k+1\). 另一方面, \(Singleton\) 界给出 \(d \leqslant n-k+1\). 所以 \(d=n-k+1\). 证毕.

定理 \(3\) 给出了一批好的线性码, 叫做多项式码. 它的缺点是由于 \(a_1, \cdots, a_n\)\(F_p\) 中不同元素, 所以要求 \(n \leqslant p\). 当 \(p\) 是小素数时, 多项式码的码长太小. 所以只对 \(p\) 为大素数的情形才能构造出有用的多项式码.

读者自然会问到: 作为线性码, 如何给出多项式码的一个生成矩阵和校验矩阵?

利用线性代数知识, 很容易给出 \(C\) 的一组基. 因为 \(\left\{1, x, x^2, \cdots, x^{k-1}\right\}\)\(S_k\) 的一组基, 而 \(\varphi: S_k \rightarrow F_p^n\) 是线性映射并且是单射(单线性映射保持线性无关组), 所以 \(f(x)=1, x, x^2, \cdots, x^{k-1}\)\(\varphi\) 之下的象 \(\boldsymbol{c}_f=\left(f\left(a_1\right), \cdots, f\left(a_n\right)\right)\) 就是 \(C\) 的一组基.它们作为行向量就给出 \(C\) 的如下生成矩阵:

\[\boldsymbol{G}=\left[\begin{array}{cccc} 1 & 1 & \cdots & 1 \\ a_1 & a_2 & \cdots & a_n \\ \vdots & \vdots & & \vdots \\ a_1^{k-1} & a_2^{k-1} & \cdots & a_n^{k-1} \end{array}\right]=\left[\begin{array}{c} c_1 \\ c_x \\ \vdots \\ c_{x^{k-1}} \end{array}\right] \]

利用这个生成矩阵也可证明 \(C\)\(MDS\) 码.因为 \(\boldsymbol{G}\) 的任何 \(k\) 列构成的行列式均为范德蒙德行列式. 由于 \(a_1, \cdots, a_n\) 是两两不同的元素, 这些行列式均不为零. 这表明 \(\boldsymbol{G}\) 的任何 \(k\) 列都是线性无关的. 根据定理 \(2.3.5\), \(C\)\(MDS\) 码, 即 \(d=n-k+1\).

下面是构造 \(\boldsymbol{C}\) 的校验阵的一种方法. 利用拉格朗日插值公式, 可以求出 \(F_p[x]\)\(k\) 个次数 \(\leqslant k-1\) 的多项式 \(f_i(x)(1 \leqslant i \leqslant k)\), 使得

\[f_i\left(a_j\right)=\left\{\begin{array}{ll} 1, & i=j, \\ 0, & i \neq j, \end{array} \quad 1 \leqslant i, j \leqslant k .\right. \]

由于 \(f_i \in S_k(1 \leqslant i \leqslant k)\), 从而又有 \(C\) 的生成矩阵

\[\boldsymbol{G}^{\prime}=\left[\begin{array}{ccc} f_1\left(a_1\right) & \cdots & f_1\left(a_n\right) \\ \vdots & & \vdots \\ f_k\left(a_1\right) & \cdots & f_k\left(a_n\right) \end{array}\right]=\left[\boldsymbol{I}_k \boldsymbol{P}\right], \]

其中,

\[\boldsymbol{P}=\left[\begin{array}{ccc} f_1\left(a_{k+1}\right) & \cdots & f_1\left(a_n\right) \\ \vdots & & \vdots \\ f_k\left(a_{k+1}\right) & \cdots & f_k\left(a_n\right) \end{array}\right] . \]

于是给出 \(C\) 的一个校验矩阵

\[\boldsymbol{H}=\left[\begin{array}{ll} -\boldsymbol{P}^{\mathrm{T}} & \boldsymbol{I}_{n-k} \end{array}\right] . \]

例 4\(F_7\) 中元素 \(a_1, \cdots, a_6\) 分别为 \(0,1, \cdots, 5\). 取 \(k=2\). 对应的多项式码为

\[\begin{aligned} C & =\left\{\boldsymbol{c}_f=(f(0), f(1), \cdots, f(5)) \in F_7^6 \mid f(x)=a+b x \in F_7[x]\right\}, \end{aligned} \]

这是参数为 \([n, k, d]=[6,2,5]\)\(7\) 元线性码.由 \(f(x)=1\)\(x\) 给出的 \(\boldsymbol{c}_f\)\(C\) 的一组基, 从而 \(C\) 有生成矩阵

\[\boldsymbol{G}=\left[\begin{array}{llllll} 1 & 1 & 1 & 1 & 1 & 1 \\ 0 & 1 & 2 & 3 & 4 & 5 \end{array}\right]=\left[\begin{array}{l} c_1 \\ c_x \end{array}\right] . \]

由于 \(c_1-c_x=\left(\begin{array}{ll}106543\end{array}\right)\)\(c_x\) 也是 \(C\) 的一组基, 所以 \(C\) 也有生成矩阵

\[\boldsymbol{G}^{\prime}=\left[\begin{array}{c} c_1-c_x \\ c_x \end{array}\right]=\left[\begin{array}{llllll} 1 & 0 & 6 & 5 & 4 & 3 \\ 0 & 1 & 2 & 3 & 4 & 5 \end{array}\right]=\left[\boldsymbol{I}_2 \boldsymbol{P}\right] . \]

由此给出 \(C\) 的一个校验矩阵

\[\boldsymbol{H}=\left[\begin{array}{ll} -\boldsymbol{P}^{\mathrm{T}} & \boldsymbol{I}_4 \end{array}\right]=\left[\begin{array}{llllll} 1 & 5 & 1 & 0 & 0 & 0 \\ 2 & 4 & 0 & 1 & 0 & 0 \\ 3 & 3 & 0 & 0 & 1 & 0 \\ 4 & 2 & 0 & 0 & 0 & 1 \end{array}\right] \]

如果在构造多项式码时, \(a_1, \cdots, a_n\)\(F_p\) 中全部元素 \(\{0,1,2, \cdots, p-1\}\), 则这种多项式码具有特别的性质.

定理 5\(n=p\), 取 \(a_1, \cdots, a_p\) 分别为 \(F_p\) 中元素 \(0,1, \cdots, p-1,1 \leqslant k \leqslant p-1\), 以 \(C_k\) 表示由此构造的 \(p\) 元多项式码, 即

\[\begin{aligned} C_k=\left\{\boldsymbol{c}_f=\right. & (f(0), f(1), \cdots, f(p-1)) \in F_p^p \mid \\ & \left.f(x) \in F_p[x], \operatorname{deg}(f) \leqslant k-1\right\}, \end{aligned} \]


\((1)\) \(C_k\) 是参数为 \([p, k, d]\)\(p\)\(MDS\) 线性码, 其中 \(d=p-k+1\).
\((2)\) \(C_k^{\perp}=C_{p-k}\). 特别若 \(2 k \leqslant p\) 时, \(C_k\) 是自正交码.
证明:
\((1)\) 是定理 \(3\) 的直接推论.
\((2)\) \(C_k\) 有如下的生成矩阵:

\[\boldsymbol{G}_k=\left[\begin{array}{ccccc} 1 & 1 & 1 & \cdots & 1 \\ 0 & 1 & 2 & \cdots & p-1 \\ \vdots & \vdots & \vdots & & \vdots \\ 0 & 1^{k-1} & 2^{k-1} & \cdots & (p-1)^{k-1} \end{array}\right] . \]

为证 \(C_k^{\perp}=C_{p-k}\), 只需证 \(C_{p-k}\) 的生成矩阵

\[\boldsymbol{G}_{p-k}=\left[\begin{array}{ccccc} 1 & 1 & 1 & \cdots & 1 \\ 0 & 1 & 2 & \cdots & p-1 \\ \vdots & \vdots & \vdots & & \vdots \\ 0 & 1^{p-k-1} & 2^{p-k-1} & \cdots & (p-1)^{p-k-1} \end{array}\right] \]

\(C_k\) 的校验矩阵, 也就是要证 \(\boldsymbol{G}_k \boldsymbol{G}_{p-k}^{\mathrm{T}}=0\). 这相当于要证明

\[\sum_{i=0}^{p-1} i^l=0 \in F_p, \quad 0 \leqslant l \leqslant p-2 .\tag{1} \]

这里规定 \(0^0=1\). 当 \(l=0\) 时, \(\sum_{i=0}^{p-1} i^0=\sum_{i=0}^{p-1} 1=p=\) \(0 \in F_p\). 当 \(1 \leqslant l \leqslant p-2\) 时, \(F_p\) 中有 \(p-1\) 个非零元素, 而多项式 \(x^l-1\) 的次数 \(\leqslant p-2\), 所以 \(F_p\)中必有非零元素 \(a\) 不是 \(x^l-1\) 的根, 即 \(a^l \neq 1\).当 \(i\)\(F_p\) 中所有元素时, \(a i\) 也过 \(F_p\) 中所有元素. 因此

\[\sum_{i=0}^{p-1} i^l=\sum_{i=0}^{p-1}(a i)^l=a^l \sum_{i=0}^{p-1} i^l . \]

\(a^l \neq 1\) 可知 \(\sum_{i=0}^{p-1} i^l=0\). 于是证明了式 \((1)\),从而也证明了 \(C_k^{\perp}=C_{p-k}\).

\(C_k\) 的定义可知当 \(1 \leqslant k \leqslant l \leqslant p-1\) 时, \(C_k \leqslant C_l\). 如果 \(2 k \leqslant p\), 则 \(k \leqslant p-k\), 所以 \(C_k \subseteq C_{p-k}\) \(=C_k^{\perp}\). 因此 \(C_k\) 是自正交码. 证毕.

posted @ 2024-07-03 15:00  沙棘数学社  阅读(96)  评论(0)    收藏  举报