核心在于:通过初等行变换得到[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的一个校验矩阵。