非[I,P]结构的生成矩阵如何巧妙计算校验矩阵

核心在于:通过初等行变换得到[I,P]结构的生成矩阵

以 F 2 F_{2} F2上的矩阵为例

G = [ 0 0 1 0 1 1 1 1 0 0 1 0 1 1 1 1 0 0 1 0 1 1 1 1 1 1 1 1 ] . \boldsymbol{G}=\begin{bmatrix}0&0&1&0&1&1&1\\1&0&0&1&0&1&1\\1&1&0&0&1&0&1\\1&1&1&1&1&1&1\end{bmatrix}. G= 0111001110010101101111011111 .

这是二元线性码 C C C的生成矩阵, [ n , k ] = [ 7 , 4 ] [n,k]=[7,4] [n,k]=[7,4].现在求 C C C的一个校验矩阵. G \boldsymbol{G} G的 4 个行向量为 C C C的一组基,所以它们的线性组合都是 C C C中码字.因此 C C C中有如下的码字:

(1000110)( G G G的 4 行之和),

(0100011)( G G G的第1,2,4行之和),
( 0010111 ) ( G 的第 1 行 ) (0010111)\left(G\text{ 的第 }1\text{ 行}\right) (0010111)(G 的第 1 行),

(0001101)( G G G的第1,3,4行之和),

初等行变换即可得到上述矩阵

这 4 个码字是线性无关的,所以它们也是 C C C的一组基.从而 C C C又有生成矩阵

G ′ = [ 1 0 0 0 1 1 0 0 1 0 0 0 1 1 0 0 1 0 1 1 1 0 0 0 1 1 0 1 ] = [ I 4 P ] \boldsymbol{G}'=\begin{bmatrix}1&0&0&0&1&1&0\\0&1&0&0&0&1&1\\0&0&1&0&1&1&1\\0&0&0&1&1&0&1\end{bmatrix}=[\boldsymbol{I}_4\boldsymbol{P}] G′= 1000010000100001101111100111 =[I4P]

所以, H = [ P T \boldsymbol{H}= [ \boldsymbol{P}^{\mathrm{T} } H=[PT I 3 ] = [ 1011 100 1110 010 0111 001 ] \boldsymbol{I}_{3}] = \begin{bmatrix} 1011& 100\\ 1110& 010\\ 0111& 001\end{bmatrix} I3]= 101111100111100010001

便是 C C C的一个校验矩阵。