Está en la página 1de 6

TEORÍA DE LA CODIFICACIÓN

ELEMENTOS DE LA TEORÍA DE LA CODIFICACIÓN

Para m, n ∈ Z+ , sea n > m. Consideremos ∅ 6= W ⊆ Zm 2 . Diremos que el conjunto W está con-


formado por los mensajes a ser transmitidos. Añadimos a cada w ∈ W n − m señales adicionales
para formar la palabra codificada c, donde c ∈ Zn2 . Este proceso es llamado codificación y lo repre-
sentaremos mediante la función E : W → Zn2 . Entonces , E(w) = c y E(W ) = C ⊆ Zn2 . Puesto
que la función E sólo añade bits a los mensajes (distintos), el proceso de codificación es inyectivo.
Después de la transmisión, c se recibe como T (c), donde T (c) ∈ Zn2 . Lamentablemente, T no es una
función, pues T (c) puede ser diferente en distintos tiempos de transmisión (ya que el ruido en el
canal cambian con el tiempo).

Después de la recepción de T (c), queremos aplicar una función de decodificación


D : Zn2 → Zm 2 para eliminar las señales adicionales y, esperamos, recibir el mensaje original w.
Lo ideal serı́a que D ◦ T ◦ E fuese la función identidad sobre W , con D : C → W . Puesto que no
podemos esperar esto, la idea será buscar funciones E y D de modo que haya una probabilidad bas-
tante alta de decodificar correctamente la palabra recibida T (c) y volver a tomar la palabra original
w. Además, queremos que m − n sea lo más pequeño posible, de modo que no se añada un número
excesivo de señales a w para obtener la palabra codificada c = E(w). Por último, E y D deberı́an
ser algo más que resultados teóricos; deben ser prácticos en el sentido de que puedan implementarse
en forma electrónica.

LA MÉTRICA DE HAMMING

En esta sección desarrollaremos los principios generales para el análisis de las capacidades de
detección y corrección de errores de un particular esquema de codificación desarrollado por Richard
Hamming.

Definición: Para cualquier elemento x = x1 x2 . . . xn ∈ Zn2 , donde n ∈ Z+ , el peso de x, que


denotaremos por p(x), es el número de componentes xi de x, para 1 ≤ i ≤ n, tales que xi = 1. Si
y ∈ Zn2 , la distancia entre x e y, que denotaremos por d(x, y), es el número de componentes tales
que xi 6= yi , para 1 ≤ i ≤ n.
Propiedades: Para todos x, y, z ∈ Zn2 se cumple que

(a) d(x, y) = p(x + y).

(b) p(x + y) ≤ p(x) + p(y).

(c) d(x, y) ≥ 0.

(d) d(x, y) = 0 ⇔ x = y.

(e) d(x, y) = d(y, x).

(f) d(x, z) ≤ d(x, y) + d(y, z).

Cuando una función satisface las cuatro propiedades (c), (d), (e) y (f) descritas anteriormente
decimos que es una función distancia o métrica y decimos que (Zn2 , d) es un espacio métrico. Por lo
tanto la función d definida previamente se conoce, con frecuencia, como la métrica de Hamming.

Teorema 1: Sea E : W → C una función de codificación con el conjunto de mensajes W ⊆ Zm 2 y


el conjunto de palabras codificadas E(W ) = C ⊆ Zn2 , donde m < n. Para k ∈ Z+ , podemos detectar
los errores de transmisión de peso menor o igual a k si y sólo si la distancia mı́nima entre las palabras
codificadas es al menos k + 1.

Teorema 2: Sea E : W → C una función de codificación con el conjunto de mensajes W ⊆ Zm 2 y


el conjunto de palabras codificadas E(W ) = C ⊆ Zn2 , donde m < n. Para k ∈ Z+ , podemos construir
una función de decodificación D : Zn2 → W que corrija los errores de transmisión de peso menor o
igual a k si y sólo si la distancia mı́nima entre las palabras codificadas es al menos 2k + 1.

MATRICES GENERADORAS Y DE VERIFICACIÓN DE PARIDAD

Definición: Para m, n ∈ Z+ con m < n, definiremos una función de codificación


E : Zm n
2 → Z2 con ayuda de una matriz G de orden m × n sobre Z2 . Diremos que esta matriz
G es la matriz generadora del código y tiene la forma [Im | A], donde A es una matriz de orden
m × (n − m). En este caso, E(w) = wG para cada mensaje w ∈ Zm m n
2 y el código C = E(Z2 ) ⊆ Z2 .

La matriz de verificación de paridad asociada H es una matriz de orden (n − m) × n de la forma


t
[A | In−m ].

CÓDIGOS DE GRUPO

Definición: Sea E : Zm n m
2 → Z2 una función de codificación. El código C = E(Z2 ) es un código
de grupo si C es un subgrupo de Zn2 .

Teorema 3: En un código de grupo, la distancia mı́nima entre las palabras codificadas distintas
es el mı́nimo de los pesos de los elementos distintos de cero en el código.

Teorema 4: Sea E : Zm n
2 → Z2 una función de codificación dada por una matriz generadora G o
la matriz de verificación de paridad H asociada. Entonces, C = E(Zm 2 ) es un código de grupo.

2
EJERCICIOS Y PROBLEMAS

1. Sea E : Z52 → Z25


2 una función de codificación en el que la distancia mı́nima entre las palabras
codificadas es 9. ¿Cuál es el máximo valor de k para el que podemos detectar errores de peso
menor o igual a k? Si queremos corregir errores de peso menor o igual a n, ¿cuál es el valor
máximo de n?

2. La función de codificación E : Z22 → Z52 está dada por la matriz generadora


 
1 0 1 1 0
G=
0 1 0 1 1

a) Determina todas las palabras codificadas. ¿Qué se puede decir de la capacidad de detección
de errores de este código? ¿Qué se puede decir de sus capacidad de corrección de errores?
b) Encuentra la matriz de verificación de paridad H asociada.
c) Utiliza H para decodificar cada una de las siguientes palabras recibidas:
i) 11011 ii) 10101 iii) 11010 iv) 00111 v) 11101 vi) 00110

3. Sea  
1 1 0 1 1 0 0
H= 1 0 1 1 0 1 0 
0 1 1 1 0 0 1
la matriz de verificación de paridad asociada a una función de codificación E : Z42 → Z72 .

a) Codifica los siguientes mensajes: 1000, 1100, 1011, 1110, 1001, 1111
b) Construye una tabla de decodificación que conste de los sı́ndromes y los lı́deres de clase
del código.
c) Decodifica las siguientes palabras recibidas: 1100001, 1110111, 0010001, 0011100.

4. Sea E : Z42 → Z20


2 una función de codificación en el que la distancia mı́nima entre las palabras
codificadas es 8.

a) ¿Cuál es el máximo valor de k para el que podemos detectar errores de peso menor o igual
a k?
b) Si queremos corregir errores de peso menor o igual a n, ¿cuál es el valor máximo de n?

5. La función de codificación E : Z22 → Z52 está dada por la matriz generadora


 
1 0 1 0 1
G=
0 1 1 1 0

a) Determina todas las palabras codificadas.


b) ¿Qué se puede decir de la capacidad de detección de errores de este código?
c) ¿Qué se puede decir de su capacidad de corrección de errores?
d ) Encuentra la matriz de verificación de paridad H asociada a la función E.

3
e) Decodifica cada una de las siguientes palabras recibidas usando sı́ndromes y lı́deres de
clase del código: (i) 10011 ; (ii) 11000.

6. Sea  
1 1 1 1 0 0
H= 0 1 1 0 1 0 
1 1 0 0 0 1
la matriz de verificación de paridad asociada a una función de codificación E : Z32 → Z62 .

a) Determina todas las palabras codificadas.


b) Determina la matriz generadora G correspondiente a la función E.
c) ¿Cuál es la mayor cantidad de errores de transmisión que se pueden detectar con esta
función de codificación?
d ) ¿Cuál es la mayor cantidad de errores de transmisión que se pueden corregir con esta
función de codificación?
e) Decodifica cada una de las siguientes palabras recibidas usando sı́ndromes y lı́deres de
clase del código: (i) 010001 ; (ii) 110010.

7. Definamos la función de codificación E : Z32 → Z62 por medio de la matriz generadora


 
1 0 0 1 0 1
G= 0 1 0 1 1 0 
0 0 1 0 1 1

a) Encuentra la matriz de verificación de paridad H relativa a la función E.


b) ¿Cuál es la mayor cantidad de errores de transmisión que se pueden detectar con esta
función de codificación?
c) ¿Cuál es la mayor cantidad de errores de transmisión que se pueden corregir con esta
función de codificación?
d ) Decodifica (usando sı́ndromes y lı́deres de clase del código) y traduce el mensaje:

011011 110000 010110 100000 110110 110111 011111

usando las equivalencias: 000 = (espacio en blanco), 100 = A, 010 = E, 001 = T , 110 = N ,
101 = R, 011 = D, 111 = H.

8. Dada la matriz generadora  


1 0 0 0 1 1 1
 0 1 0 0 1 0 0 
G=
 0

0 1 0 0 0 1 
0 0 0 1 1 1 0
de la función de codificación E : Z42 → Z72 .

a) Encuentra la tabla de decodificación de sı́ndromes y lı́deres de clase del código.


b) Decodifica las palabras r1 = 0100110 y r2 = 1110011.

4
9. Dada la matriz generadora de la función de codificación E : Z42 → Z82 .
 
1 0 0 0 1 0 1 0
 0 1 0 0 0 1 1 0 
G=  0 0

1 0 1 0 0 1 
0 0 0 1 0 1 0 1

a) Decodifica la palabra 11010110 usando una tabla de sı́ndromes y lı́deres de clase del código.
b) Determina la cantidad máxima de errores que detecta la función E.
c) Determina la cantidad máxima de errores que corrige la función E.

10. Considera la función de codificación E : Z32 → Z72 cuya matriz generadora es:
 
1 0 0 1 0 1 1
G= 0 1 0 0 1 1 1 
0 0 1 1 1 0 1

a) Encuentra la matriz H de verificación de paridad.


b) Describe, por extensión, al código de grupo.
c) Determina la cantidad máxima de errores que detecta la función E.
d ) Determina la cantidad máxima de errores que corrige la función E.
e) Muestra una tabla de decodificación de sı́ndromes y lı́deres de clase del código.
f ) Decodifica los siguientes mensajes recibidos: 1101110, 1110001,1010011, 1101010.
g) Elabora una lista de todas las palabras de Z72 que tienen sı́ndrome 1101.

11. Considera la función de codificación E : Z32 → Z62 determinada por la matriz generadora
 
1 0 0 1 1 1
G= 0 1 0 1 0 1 
0 0 1 0 1 1

a) Encuentra la matriz H de verificación de paridad.


b) Encuentra todos los elementos que conforman al código de grupo asociado a la función E.
c) Si para este código, queremos detectar todos los errores de transmisión de peso menor o
igual a k, ¿cuál es el máximo valor posible de k?
d ) Si para este código, queremos corregir todos los errores de transmisión de peso menor o
igual a n, ¿cuál es el máximo valor posible de n?
e) Muestra una tabla de decodificación de sı́ndromes y lı́deres de clase del código.
f ) Decodifica los siguientes mensajes recibidos: 001001, 100010, 011101 y 011000.
g) Elabora una lista de todas las palabras de Z62 que tienen sı́ndrome 101.

12. Se sabe que algunas de las palabras codificadas determinadas por una función de codificación
E : Z32 → Z62 son las siguientes: 111001, 011100 y 001111.

a) Encuentra la matriz generadora G relativa a la función E.

5
b) Determina el resto de la lista de las palabras codificadas.
c) Encuentra la matriz de verificación de paridad H correspondiente a la función E.
d ) Construye una tabla de decodificación que conste de todos los sı́ndromes y los lı́deres de
clase del código.
e) Decodifica (usando sı́ndromes y lı́deres de clase del código) y traduce el mensaje:

010110 − 100001 − 110001

usando las equivalencias: 000 = A, 100 = I, 010 = E, 001 = B, 110 = D, 101 = M ,


011 = F , 111 = S.

13. Sea E : Z11


2 → Z2
121
una función de codificación en el que la distancia mı́nima entre las palabras
codificadas es 22.

a) Si para este código, queremos detectar todos los errores de transmisión de peso menor o
igual a k, ¿cuál el máximo valor posible de k?
b) Si para este código, queremos corregir todos los errores de transmisión de peso menor o
igual a n, ¿cuál el máximo valor posible de n?

14. Definamos la función de codificación E : Z32 → Z72 por medio de la matriz generadora
 
1 0 0 1 0 1 1
G= 0 1 0 1 1
 1 0 
0 0 1 1 1 0 1

a) Determina todas las palabras codificadas.


b) Encuentra la matriz de verificación de paridad H relativa a la función E.
c) Construye una tabla de decodificación que conste de los sı́ndromes y los lı́deres de clase
del código.
d ) Elabora una lista de todas las palabras de Z72 que tienen sı́ndrome 1011.
e) Decodifica (usando sı́ndromes y lı́deres de clase del código) y traduce el mensaje:

1100101 − 1111010 − 0111101

usando las equivalencias: 000 = C, 100 = X, 010 = L, 001 = B, 110 = W , 101 = M ,


011 = F , 111 = T .

15. Sea E : Z72 → Z49


2 una función de codificación en el que la distancia mı́nima entre las palabras
codificadas es 14.

a) Si para este código, queremos detectar todos los errores de transmisión de peso menor o
igual a k, ¿cuál el máximo valor posible de k?
b) Si para este código, queremos corregir todos los errores de transmisión de peso menor o
igual a n, ¿cuál el máximo valor posible de n?

También podría gustarte