2.3 线性码的对偶性
定义 1 设 \(\boldsymbol{a}=\left(a_1, \cdots, a_n\right)\) 和 \(\boldsymbol{b}=\) \(\left(b_1, \cdots, b_n\right)\) 是 \(F_p^n\) 中的向量. \(\boldsymbol{a}\) 和 \(\boldsymbol{b}\) 的内积定义为
容易验证内积有如下性质.
\((1)\) (对称性) \(\quad(\boldsymbol{a}, \boldsymbol{b})=(\boldsymbol{b}, \boldsymbol{a})\);
\((2)\) (双线性) 若 \(\alpha, \beta \in F_p, \boldsymbol{a}, \boldsymbol{b}, \boldsymbol{c} \in F_p^n\),则
如果 \((\boldsymbol{a}, \boldsymbol{b})=0\), 称 \(\boldsymbol{a}\) 和 \(\boldsymbol{b}\) 正交. 这里要注意有限域和通常实数域R 上内积的区别. 对于通常实向量空间 \(\mathbb{R}^n\) 中的非零向量 \(\boldsymbol{a}=\left(a_1, \cdots, a_n\right)\left(a_i\right.\) \(\in \mathbb{R}), \boldsymbol{a}\) 和自身的内积 \((\boldsymbol{a}, \boldsymbol{a})=\sum_{i=1}^n a_i^2\) 为正实数 (它的正平方根是向量 \(\boldsymbol{a}\) 的长度). 特别地,非零实向量不可能和自己正交(即垂直)。但是在有限域上,一个非零向量可以自正交. 例如,对于 \(\boldsymbol{a}=(1,1) \in F_2^2,(\boldsymbol{a}, \boldsymbol{a})=1 \cdot 1+1 \cdot 1=0 \in F_2\).
设 \(C\) 是一个 \(p\) 元线性码,参数 为 \([n, k, d]\).从而 \(C\) 是 \(F_p^n\) 的一个 \(k\) 维向量子空间. 考虑 \(F_p^n\)中的如下子集合:
即 \(C^{\perp}\) 是与 \(C\) 中所有码字都正交的那些向量所组成的集合.
引理 2 若 \(C\) 是参数为 \([n, k]\) 的 \(p\) 元线性码, 则 \(C^{\perp}\) 也是 \(p\) 元线性码, 码长和信息位数分别为 \(n\) 和 \(n-k\).
证明: 设 \(\alpha, \beta \in F_p, \boldsymbol{a}, \boldsymbol{b} \in C^{\perp}\). 则对每个 \(\boldsymbol{c} \in\) \(C,(\boldsymbol{a}, \boldsymbol{c})=(\boldsymbol{b}, \boldsymbol{c})=0\). 由内积的性质 (2), 可知 \((\alpha \boldsymbol{a}+\beta \boldsymbol{b}, \boldsymbol{c})=\alpha(\boldsymbol{a}, \boldsymbol{c})+\beta(\boldsymbol{b}, \boldsymbol{c})=0\),对每个 \(c \in C\).于是 \(\alpha \boldsymbol{a}+\beta \boldsymbol{b} \in C^{\perp}\). 这就表明 \(C^{\perp}\) 是 \(F_p^n\) 的向量子空间, 即 \(C^{\perp}\) 是 \(p\) 元线性码. \(C^{\perp}\) 的码长显然为 \(n\).
现在设 \(v_1, \cdots, v_k\) 是线性码 \(C\) 的一组基,则
是 \(C\) 的一个生成矩阵.由内积的双线性性质 (2) 可知,对于每个向量 \(v \in F_p^n, v\)属于 \(C^{\perp}\) 当且仅当 \(v\) 与 \(G\) 中每个码字都正交. 所以 \(C^{\perp}\) 就是满足 \(\boldsymbol{G} v^{\mathrm{T}}=\mathbf{0}\) 的那些向量 \(\boldsymbol{v}^{\mathrm{T}}\) 组成的线性码. 由于 \(\operatorname{rank}(\boldsymbol{G})=k\), 可知 \(C^{\perp}\) 的维数是 \(n-k\) . 证毕.
定义 3 设 \(C\) 是 \(p\) 元线性码, 称 \(C^{\perp}\) 为 \(C\) 的对偶码. 如果 \(C \subseteq C^{\perp}\), 称 \(C\) 为自正交码. 如果 \(C=C^{\perp}\), 称 \(C\) 为自对偶码.
设 \(v_1, \cdots, v_k\) 是线性码 \(C\) 的一组基,由定义 (3) 可知, \(C\) 为自正交码当且仅当 \(v_1, \cdots, v_k\) 中任意两个向量 (包含每个 \(v_i\) 和它自身)都正交,即对任何 \(1 \leqslant\) \(i, j \leqslant k\), 均有 \(\left(\boldsymbol{v}_i, \boldsymbol{v}_j\right)=0\).
此外, 若 \(C\) 是 \(F_p^n\) 中的自正交码并且维数为 \(k\). 由 \(C \subseteq C^{\perp}\) 可知 \(k=\operatorname{dim} C \leqslant \operatorname{dim} C^{\perp}=n-k\). 所以 \(k \leqslant \frac{n}{2}\). 特别地,自正交码 \(C\) 是自对偶码 \(\Leftrightarrow k=n-k\), 即 \(k=\frac{n}{2}\).
由此我们也可以知道:只有当 \(n\) 是偶数时, \(F_p^n\) 中才存在自对偶码.
引理 4 设 \(C\) 为 \(F_p^n\) 中的 \(k\) 维线性码,则
\((1)\) \(C\) 的生成矩阵是 \(C^{\perp}\) 的校验矩阵, \(C\) 的校验矩阵是 \(C^{\perp}\) 的生成矩阵.
\((2)\) \(C^{\perp}\) 的对偶码为 \(C\), 即 \(\left(C^{\perp}\right)^{\perp}=C\).
证明:
\((1)\) 设 \(\boldsymbol{G}\) 是 \(C\) 的生成矩阵, 在引理 2 中已经证明了对于每个向量 \(v \in F_p^n, \boldsymbol{v}\) 属于 \(C^{\perp}\) 当且仅当 \(\boldsymbol{G} \boldsymbol{v}^{\mathrm{T}}=\mathbf{0}\). 这正好表明 \(\boldsymbol{G}\) 是 \(C^{\perp}\)的校验矩阵. 设 \(\boldsymbol{H}\) 是 \(C\) 的一个校验矩阵, 则对于 \(C\) 中每个码字 \(\boldsymbol{c}, \boldsymbol{H} \boldsymbol{c}^{\mathrm{T}}=\mathbf{0}\). 所以 \(\boldsymbol{H}\) 的每一行都与 \(C\) 中所有码字 \(\boldsymbol{c}\) 正交. 从而 \(\boldsymbol{H}\) 的每个行向量都属于 \(C^{\perp}\). 但是 \(\boldsymbol{H}\) 的 \(n-k\) 行是线性无关的, 而 \(\mathbf{C}^{\perp}\) 的维数为 \(n-k\), 这表明 \(\boldsymbol{H}\) 的 \(n-k\) 个行向量是 \(C^{\perp}\) 的一组基,所以 \(\boldsymbol{H}\) 是 \(C^{\perp}\) 的生成矩阵.
\((2)\) 由 (1) 知 \(C\) 的生成矩阵 \(\boldsymbol{G}\) 是 \(C^{\perp}\) 的校验矩阵, 从而 \(\boldsymbol{G}\) 又是 \(\left(C^{\perp}\right)^{\perp}\) 的生成矩阵. 于是 \(\left(C^{\perp}\right)^{\perp}=C\). 证毕.
定理 5 设 \(C\) 是参数为 \([n, k, d]\) 的 \(p\) 元线性码, \(\boldsymbol{G}\) 和 \(\boldsymbol{H}\) 分别为码 \(C\) 的一个生成矩阵和校验矩阵,则以下 \(4\) 个条件彼此等价:
\((1)\) \(C\) 是 \(MDS\) 码, 即 \(n=k+d-1\);
\((2)\) \(\boldsymbol{H}\) 中任意 \(n-k\) 个不同的列都线性无关;
\((3)\) \(\boldsymbol{G}\) 中任意 \(k\) 个不同的列均线性无关;
\((4)\) \(C^{\perp}\) 是 \(MDS\) 码.
证明: \((1)\Leftrightarrow (2)\). 若 \(n=k+d-1\), 则 \(d=n-k+1\), 则 \(C\) 的校验矩阵 \(\boldsymbol{H}\) 中任意 \(n-k\)个不同列都是线性无关的。(定理 \(2.2.1\)). 反之,若 \(\boldsymbol{H}\) 中任意 \(n-k\) 列都线性无关, 则 \(d \geqslant n-k+ 1\). 但是 \(Singleton\) 界给出 \(d \leqslant n-k+1\), 所以 \(d=\) \(n-k+1\). 这就证明了 \((1)\) 和 \((2)\) 是等价的.
\((3)\Leftrightarrow (4)\). 设 \(C^{\perp}\) 的 \(3\) 个基本参数为 \(\left[n^{\perp}, k^{\perp}, d^{\perp}\right]\), 则 \(n^{\perp}=n, k^{\perp}=n-k\). 所以 \(C^{\perp}\) 是 \(MDS\) 码 \(\Leftrightarrow d^{\perp}=n^{\perp}-k^{\perp}+1=n-(n-k)+1=k+1 \Leftrightarrow G\) 的任意 \(k\) 个不同列均线性无关.
最后一个推断是因为 \(\boldsymbol{G}\) 为 \(C^{\perp}\) 的校验矩阵且 \(\operatorname{rank} \boldsymbol{G}=k\). 这就证明了 \((3)\) 和 \((4)\) 等价.
最后证明 \((1)\) 和 \((3)\) 等价. 记
其中, \(v_1, \cdots, v_k\) 是线性码 \(C\) 的一组基,而 \(\boldsymbol{u}_1, \cdots, \boldsymbol{u}_n \in F_p^k\). 如果 \(C\) 不是 \(MDS\) 码, 即 \(d \leqslant n-\) \(k\), 则 \(C\) 中有非零码字 \(\boldsymbol{c}=\alpha_1 \boldsymbol{v}_1+\cdots+\alpha_k \boldsymbol{v}_k\), 使得 \(1 \leqslant w_H(\boldsymbol{c}) \leqslant n-k\). 于是 \(\boldsymbol{c}=\left(c_1, \cdots, c_n\right)\) 中至少有 \(k\) 位为零. 不妨设 \(c_1=\cdots=c_k=0\), 则
由 \(c_1=\cdots=c_k=0\) 给出 \(\left(\alpha_1, \cdots, \alpha_k\right) u_i^T=0(1 \leqslant i \leqslant k)\). 由于 \(c \neq 0\), 可知 \(F_p\) 中元素 \(\alpha_1, \cdots, \alpha_k\) 不全为 \(0 \) , 即齐次线性方程组 \(\left(x_1, \cdots, x_k\right) \boldsymbol{u}_i^{\mathrm{T}}=0(1 \leqslant i \leqslant k)\) 在 \(F_p\) 中有非零解 \(\left(x_1, \cdots, x_k\right)=\left(\alpha_1, \cdots, \alpha_k\right)\).所以 \(\boldsymbol{G}\) 中前 \(k\) 列 \(\boldsymbol{u}_1^{\mathrm{T}}, \cdots, \boldsymbol{u}_k^{\mathrm{T}}\) 是线性相关的.(这里用到了线性代数的一个结论——矩阵的行秩等于列秩) 反过来推理可以知道, 若 \(\boldsymbol{G}\) 有 \(k\) 个不同的列是线性相关的, 则 \(C\) 中有码字 \(\boldsymbol{c}\), 使得 \(1 \leqslant w_H(\boldsymbol{c}) \leqslant\) \(n-k\). 这就证明了 \((1)\) 和 \((3)\) 等价. 证毕.
我们实际证明了: \(d\leq n-k \Leftrightarrow \boldsymbol{G}\) 有 \(k\) 个不同的列线性相关。请思考:这番推导过程能否进行推广以证明: \(d\leq n-m(m\geq k) \Leftrightarrow \boldsymbol{G}\) 有 \(m\) 列线性相关。从而建立了一个像定理 \(2.2.1\) 那样的揭示生成矩阵和最小距离 \(d\) 关系的定理。(很遗憾,这是不能做到的,不过还是请读者想一想为什么。)
定理 \(5\) 表明, 若 \(C\) 是参数为 \([n, k, d]\) 的 \(MDS\) 线性码, 则 \(C^{\perp}\) 也是 \(MDS\) 码, 参数为 \([n\), \(\left.n-k, d^{\perp}\right]\), 其中, \(d^{\perp}=n-(n-k)+1=k+1\).但是, 若 \(C\) 不是 \(MDS\) 码时, 决定对偶码 \(C^{\perp}\) 的最小距离 \(d^{\perp}\) 不是一件容易的事情. 事实上, \(d^{\perp}\) 不是由码 \(C\) 的参数 \([n, k, d]\) 所决定的.
例 6 设 \(C_1\) 和 \(C_2\) 分别是以 \(\boldsymbol{H}_1=\) \(\left[\begin{array}{llll}1 & 0 & 1 & 1 \\ 0 & 1 & 0 & 0\end{array}\right]\) 和 \(\boldsymbol{H}_2=\left[\begin{array}{llll}1 & 0 & 1 & 1 \\ 0 & 1 & 0 & 1\end{array}\right]\) 为校验阵的二元线性码, 它们的参数都是 \([n, k, d]=[4,2,2]\) (由于 \(\boldsymbol{H}_1\) 和 \(\boldsymbol{H}_2\) 中每列都不是零向量, 并且都有两列相同, 所以 \(C_1\) 和 \(C_2\) 的最小距离都是 \(2\)). \(C_1\) 和 \(C_2\) 的生成矩阵分别是 \(\boldsymbol{G}_1=\left[\begin{array}{llll}1 & 0 & 1 & 0 \\ 1 & 0 & 0 & 1\end{array}\right]\) 和 \(\boldsymbol{G}_2=\) \(\left[\begin{array}{llll}1 & 0 & 1 & 0 \\ 1 & 1 & 0 & 1\end{array}\right]\), 它们分别是 \(C_1^{\perp}\) 和 \(C_2^{\perp}\) 的校验矩阵.由于 \(\boldsymbol{G}_1\) 中有列向量为 \(\mathbf{0}\), 所以 \(C_1^{\perp}\) 的最小距离是 \(1\) , 而 \(C_2^{\perp}\) 的最小距离是 \(2\).
定义 7 设 \(C\) 是码长为 \(n\) 的 \(p\) 元线性码. 对每个 \(i, 0 \leqslant i \leqslant n\), 用 \(A_i\) 表示 \(C\) 中汉明重量为 \(i\) 的码字个数, 称 \(\left\{A_0, A_1, \cdots, A_n\right\}\) 为线性码 \(C\) 的重量分布. 而关于 \(z\) 的整系数多项式
叫做码 \(C\) 的重量多项式,其中, 系数 \(A_i\) 都是非负整数.
首先, 线性码中只有一个重量为 0 的码字,即零向量, 所以必然 \(A_0=1\). 其次, \(C\) 中一共有 \(p^k\) 个码字, 因此
最后, 若 \(d\) 是 \(C\) 的最小距离, 则 \(C\) 中没有重量为 \(1,2, \cdots, d-1\) 的码字, 但是有重量为 \(d\) 的码字,即 \(A_1=A_2=\cdots=A_{d-1}=0, A_d \geqslant 1\), 所以 \(d\) 就是满足 \(A_i=0\) 的最小正整数 \(i\). 这就表明由 \(C\) 的重量分布可以决定 \(C\) 的信息位数 \(k\) 和最小距离 \(d\).
(关于马克威廉姆斯发现的恒等式,由于笔者复分析学的糟糕暂时还不能完全理解,不理解的内容我是不会打出来的,所以这一节有大量内容被我省略了,望海涵,待更)
例 8 给一个自正交码的有启发性的例子。考虑以
为生成矩阵的二元线性码 \(C\),我们计算 \(C\) 的重量分布. 可直接验证 \(\boldsymbol{G}\) 的 \(4\) 个行向量彼此正交,每个行向量也都自正交.由于它们是 \(C\) 的一组基, 所以 \(C\) 是自正交码, 即 \(C \subseteq C^{\perp}\). 但是 \(C\) 的参数为 \([n, k]=[8,4]\), 而 \(\operatorname{dim} C^{\perp}=n-\operatorname{dim} C=n-k=4=\operatorname{dim} C\), 从而 \(C=\) \(C^{\perp}\), 即 \(C\) 是自对偶码.
首先, 由于 \(C\) 的基向量(即 \(\boldsymbol{G}\) 的 \(4\) 行)的汉明重量都为偶数, 可知 \(C\) 的每个码字的汉明重量都是偶数 (原因请读者思考). 进一步, 要证明 \(C\) 的每个码字 \(\boldsymbol{c}\) 的汉明重量 \(w(\boldsymbol{c})\) 都是 \(4\) 的倍数. 对于任意向量 \(\boldsymbol{u}=\left(u_1, \cdots, u_8\right)\) 和 \(\boldsymbol{v}=\left(v_1, \cdots, v_8\right) \in\) \(F_2^8\), 定义
则当 \(\boldsymbol{u}\) 和 \(\boldsymbol{v}\) 都是 \(C\) 中码字时, \((\boldsymbol{u}, \boldsymbol{v})=0 \in F_2\).于是
即 \(w(\boldsymbol{u} \cap \boldsymbol{v})\) 为偶数. 进而对每个 \(\alpha \in F_2\), 以 \(w(\alpha)\) 表示 \(\alpha\) 的汉明重量, 即 \(w(0)=0, w(1)=\) 1 , 则容易验证 \(w\left(u_i+v_i\right)=w\left(u_i\right)+w\left(v_i\right)-\) \(2 w\left(u_i v_i\right)\). 对 \(i=1,2, \cdots, 8\) 相加, 可知对 \(F_2^8\) 中任意两个向量 \(\boldsymbol{u}\) 和 \(\boldsymbol{v}\), 都有
\(C\) 中每个码字都是生成矩阵的行向量 \(\boldsymbol{c}_1\), \(\boldsymbol{c}_2, \boldsymbol{c}_3, \boldsymbol{c}_4\) 的线性组合. 这些基向量 \(\boldsymbol{c}_i\) 的汉明重量都是 \(4\) 的倍数. 由式 \((1)\) 知 \(w\left(\boldsymbol{c}_i \cap \boldsymbol{c}_j\right)\) 都是偶数,所以由 \((2)\) 式知 \(w\left(\boldsymbol{c}_i+\boldsymbol{c}_j\right)\) 是 \(4\) 的倍数. 再令 \(\boldsymbol{u}=\boldsymbol{c}_i+\boldsymbol{c}_j, \boldsymbol{v}=\boldsymbol{c}_k(1 \leqslant i, j, k \leqslant 4)\). 由 \(\boldsymbol{u}, \boldsymbol{v} \in C\) 和 \((1)\) 式知 \(w(\boldsymbol{u} \cap \boldsymbol{v})\) 是偶数, 再由 \((2)\) 式又知 \(w(\boldsymbol{u}+\boldsymbol{v})=w\left(\boldsymbol{c}_i+\boldsymbol{c}_j+\boldsymbol{c}_k\right)\) 是 \(4\) 的倍数. 继续下去, 便知 \(C\) 中所有码字的汉明重量都是 \(4\) 的倍数.
以上实际上证明了对于一个二元自正交码 \(C\), 若 \(C\) 的一组基向量中每个基向量的汉明重量都是 \(4\) 的倍数, 则 \(C\) 的所有码字的汉明重量都是 \(4\) 的倍数. \(2.4\) 节研究二元戈莱码时要用这个结果.
这样一来, 例中二元线性码 \(C([n, k]=[8\), \(4])\) 的重量分布 \(A_i(0 \leqslant i \leqslant 8)\) 当中, 只可能 \(A_0\), \(A_4\) 和 \(A_8\) 是正的. 已知 \(A_0=1, A_0+A_4+A_8=\) \(2^k=16,A_8=1\). 于是 \(A_4=16-A_1-\) \(A_8=14\). 所以 \(C\) 的重量多项式为 \(1+14 z^4+z^8\).
习题
\(1.\) 证明矩阵的行秩等于列秩。回忆线性代数中我们得到这个定理的过程,是否有非常自然的看出这个定理的方式?

浙公网安备 33010602011771号