Solución:
$ G $ representa el mapeo de la entrada a las palabras de código del código. Obtiene el vector de palabra de código $ c $ multiplicando el vector de entrada $ v $ de la izquierda de $ G $: $$ c = vG. $$
Entonces, ves que el vector de entrada $ begin {pmatrix} 1 & 0 & 0 & 0 end {pmatrix} $ se asigna a la primera fila de $ G $ (si dudas de mí, haz el cálculo), y la otra los vectores de base estándar se asignan a las otras filas de $ G $.
Por lo tanto, puede construir una matriz $ G $ tomando una base de sus vectores de entrada y decidiendo en qué palabras de código se mapean, estas palabras de código serán las filas de sus $ G $. Por supuesto, cuando hace esto, no se garantiza que su matriz $ G $ esté en el desde $ left[I mid P right]$, para lograr esto, tendrá que realizar reducciones de fila en su matriz.
Esto describe en términos muy generales cómo se construye un código lineal. Suele ser más fácil para los códigos Hamming.
Entonces, construyamos $ G $ para el código $ (7,4) $ Hamming. Tenga en cuenta que estamos trabajando sobre el campo finito con dos elementos $ mathbb F_2 $.
Tenemos cuatro bits de entrada $ b_1, b_2, b_3, b_4 $. Definimos tres bits de paridad como: $$ begin {align} p_1 & = b_1 + b_2 + b_3 \ p_2 & = b_2 + b_3 + b_4 \ p_3 & = b_1 + b_2 + b_4 \ end {align} $ PS
y nuestra palabra en clave es $$ begin {pmatrix} b_1 & b_2 & b_3 & b_4 & p_1 & p_2 & p_3 end {pmatrix}. $$
Podemos ver que esto facilita la construcción de la primera parte de nuestro $ G $, será solo la matriz de identidad, ya que podemos ver que $$ begin {pmatrix} b_1 & b_2 & b_3 & b_4 end {pmatrix } begin {pmatrix} I_4 & P end {pmatrix} = begin {pmatrix} b_1 & b_2 & b_3 & b_4 & – & – & – end {pmatrix} $$ independientemente de lo que sea $ P $. Ahora solo usamos las ecuaciones para $ p_1, p_2, p_3 $ anteriores y las transformamos en una matriz: $$ begin {pmatrix} p_1 & p_2 & p_3 end {pmatrix} = begin {pmatrix} b_1 & b_2 & b_3 & b_4 end {pmatrix} underbrace { begin {pmatrix} 1 & 0 & 1 \ 1 & 1 & 1 \ 1 & 1 & 0 \ 0 & 1 & 1 end {pmatrix}} _ {= P} $$
Aquí tienes una forma alternativa de verlo. Usamos la base estándar para nuestras palabras de entrada y calculamos cuáles serán las palabras de código para los vectores base, usando las ecuaciones de paridad anteriores. Esto nos da las filas de nuestra matriz $ G $.
Para $ e_1 = begin {pmatrix} 1 & 0 & 0 & 0 end {pmatrix} $ obtenemos $ p_1 = 1, p_2 = 0, p_3 = 1 $, entonces $$ e_1G = begin {pmatrix} 1 & 0 & 0 & 0 & 1 & 0 & 1 end {pmatrix} $$ Lo mismo ocurre con los otros vectores base: $$ begin {align} e_2G & = begin {pmatrix} 0 & 1 & 0 & 0 & 1 & 1 & 1 end {pmatrix} \ e_3G & = begin {pmatrix} 0 & 0 & 1 & 0 & 1 & 1 & 0 end {pmatrix} \ e_4G & = begin {pmatrix} 0 & 0 & 0 & 1 & 0 & 1 & 1 end {pmatrix} end {align} $$ y estas serán las filas de nuestro $ G $, es decir, $$ G = begin {pmatrix} e_1G \ e_2G \ e_3G \ e_4G end {pmatrix} $$
La forma estándar de encontrar la matriz de paridad $ G_ {k, n} $ para un código de Hamming es construir primero la matriz de paridad de verificación $ H_ {nk, n} $ en forma sistemática.
Para ello, recordamos que un código de Hamming tiene $ d = 3 $ (distancia mínima). Por lo tanto, las columnas de $ H $ tienen la propiedad de que podemos encontrar un conjunto de columnas de $ 3 $ linealmente dependientes, pero no columnas de $ 2 $ o menos. Debido a que estamos en $ GF (2) $ (código binario), esto equivale a decir que las columnas de $ H $ deben ser distintas (y diferentes de cero). Entonces, las columnas de $ H $ simplemente corresponden a las tuplas binarias distintas de cero de $ 2 ^ {nk} -1 $. Podemos optar por construirlo de forma sistemática, de ahí, por ejemplo:
$$ H = begin {pmatrix} 1 & 1 & 0 & 1 & 1 & 0 & 0 \ 0 & 1 & 1 & 1 & 0 & 1 & 0 \ 1 & 1 & 1 & 0 & 0 & 0 & 1 end {pmatrix} = [P^t mid I_{n-k}]
$$
Tenga en cuenta que también puede elegir otras permutaciones de las primeras 4 columnas.
De esto, obtienes $ G =[I_k mid P ]PS