0% encontró este documento útil (0 votos)
30 vistas12 páginas

Tema 5

Este documento introduce conceptos básicos de la teoría de la codificación. Define un código como un conjunto de palabras formadas por símbolos de un alfabeto. Explica que un código sirve para transmitir información a través de un canal que puede introducir ruido y errores. Finalmente, introduce la distancia de Hamming como una métrica para medir la distancia entre palabras de un código y la probabilidad de error al transmitir una palabra.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
30 vistas12 páginas

Tema 5

Este documento introduce conceptos básicos de la teoría de la codificación. Define un código como un conjunto de palabras formadas por símbolos de un alfabeto. Explica que un código sirve para transmitir información a través de un canal que puede introducir ruido y errores. Finalmente, introduce la distancia de Hamming como una métrica para medir la distancia entre palabras de un código y la probabilidad de error al transmitir una palabra.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 12

Capítulo 5

Teoría de la codicación
En este último capítulo realizaremos una breve introducción a la teoría de la codicación,
estudiando los conceptos fundamentales y las bases de los códigos lineales.

5.1. Elementos de la teoría de la codicación


Vamos a comenzar deniendo el concepto de código y de canal por el cual se transmite la
información.

Denición 5.1.1. Sea A un conjunto no vacío. A este conjunto A lo llamaremos alfabeto y diremos
que los elementos de A son símbolos del alfabeto. De este modo, si n ∈ N, deniremos una palabra
de longitud n (en el alfabeto A) como una secuencia o cadena de n símbolos de A.
Ejemplo 5.1.2. El conjunto A = {1, 2, ∗, #, &} es un alfabeto y 111, 12, 2&, ∗, & ∗ 21# son
palabras en ese alfabeto.

En este caso, la palabra 111 tiene longitud 3, las palabras 12, 2& tienen longitud 2, ∗ tiene
longitud 1 y & ∗ 21# tiene longitud 5.
Denición 5.1.3. Sea A un alfabeto. Denimos un código C sobre el alfabeto A como cualquier
conjunto formado por palabras en el alfabeto A. Si m ∈ N y A es un alfabeto con m símbolos del
alfabeto, diremos entonces que C es un código m-ario.

Ejemplo 5.1.4.
1. Si consideramos como alfabeto el abecedario usual, entonces las palabras del diccionario de
la Real Academia Española es un código sobre el abecedario.

2. El código binario en un código sobre el alfabeto {0, 1}.


Observación 5.1.5. Si A un alfabeto con m=2 símbolos del alfabeto, un código sobre A se dirá
que es un código binario. Si m = 3, diremos entonces que un código sobre A es terciario.

Denición 5.1.6. Sea A un alfabeto y sea n ∈ N. Un código C sobre el alfabeto A se dirá que es
un código bloque de longitud n si todas las palabras de C tienen longitud n.
Ejemplo 5.1.7. Si A = {0, 1}, entonces C = {000, 010, 111, 101} es un código bloque (binario) de
longitud 3.

108
CAPÍTULO 5. TEORÍA DE LA CODIFICACIÓN 109

Observación 5.1.8. Para que se puede establecer una comunicación se necesita un emisor, que
enviará un mensaje, un canal a través del cual será enviado el mensaje, y un receptor.

Emisor y receptor deben acordar un alfabeto y un código que contendrá las palabras que
consituirán los mensajes o las unidades de mensajes a intercambiar. El tipo de código a elegir en
cada entorno dependerá de muchos factores.

En teoría de la codicación, un factor fundamental a tener en cuenta es el canal de transmisión


y, en particular, el ruido que puede ocasionarse en él.

Hablamos de existencia de ruido en un canal cuando hay cierta probabilidad de que durante la
transmisión de un mensaje se produzca un error que modique su contenido.

Ejemplo 5.1.9. Consideremos el alfabeto A formado por las letras de nuestro abecedario y sea C
el código formado por las palabras del diccionario de la Real Academia Española.

Si suponemos que dos personas que se encuentran físicamente están teniendo una conversación,
podemos considerar el aire como canal, y el ruido del canal podría ser el viento.

1. Supongamos que una de las palabras recibida por uno de los interlocutores es palo.

En este caso, no podríamos detectar un error en esta palabra, ya que palo ∈ C . Sin embargo,
el ruido del canal podría haber dado lugar a la recepción de esta palabra, siendo la palabra
emitida pato o pelo.

2. Si el receptor hubiera recibido la palabra sa, entonces claramente detectamos un error en


esta palabra, ya que sa ∈
/ C. Además, a simple vista este error no podría corregirse, ya que
la palabra emitida podría haber sido sı́, se, la, da, etc.

Denición 5.1.10. Sea A un alfabeto y sea C un código sobre el alfabeto A. Si x ∈ C, diremos


que el receptor detecta un error en la transmisión de x si el emisor envía la palabra x y el receptor
′ ′
recibe la palabra x , con x ∈ / C . Se dirá que el receptor intenta corregir el error si sustituye la
′ ′′ ′′
palabra x por la palabra x ∈ C tal que la probabilidad de que se haya enviado x cuando se
′ ′′
recibe x sea máxima. Y diremos que se ha corregido el error si x = x .

Ejemplo 5.1.11. A = {0, 1}


Sea y consideremos el código bloque binario de longitud cuatro
C = {0000, 0101, 1010, 1111}.

Si recibimos la palabra 0001, entonces detectamos un error en la plabra 0001, ya que 0001 ∈
/ C.

Si intentamos corregir el error, tendríamos que sustituir la palabra recibida por otra palabra
de C tal que la probabilidad de recibir esta palabra sea máxima.

En este caso, las palabras 0000 y 0101 tiene ambas la misma probabilidad máxima al sistituir
0001 por cualquiera de ellas, ya que tan solo cambia un dígito entre 0001 y 0000 o 0101.

Por lo tanto, o bien la palabra emitida fue 0000, o bien fue 0101.
CAPÍTULO 5. TEORÍA DE LA CODIFICACIÓN 110

5.2. Métrica de Hamming


Para poder tratar formalmente con el número de errores que se producen en la transmisión
de un palabra, y la probabilidad de que se haya producido un error, utilizaremos la distancia de
Hamming.

Denición 5.2.1. Sea n ∈ N y sea A un alfabeto. Sean x = x1 x2 ...xn e y = y1 y2 ...yn dos palabras
de longitudn sobre el alfabeto A, es decir, xi , yi ∈ A para todo i = 1, 2, ..., n. Denimos la distancia
de Hamming entre x e y (o de x a y ), y lo denotamos por d(x, y), como

d(x, y) = |{i ∈ {1, 2, ..., n} : xi ̸= yi }| .

Ejemplo 5.2.2.
1. Si A es el alfabeto formado por las letras de nuestro abecedario, entonces

d(matematicas, macemoticas) = 2

y
d(natillas, patillas) = 1.

2. Si A = {0, 1}, entonces d(0001, 0101) = d(0001, 0000) = 1.

Proposición 5.2.3. Sea n∈N A un alfabeto. Si denotamos por An al conjunto de todas las
y sea
palabras de longitud n en el alfabeto A, entonces la distancia de Hamming es una distancia en el
conjunto An , es decir, la aplicación d : An × An −→ R denida por

d(x, y) = |{i ∈ {1, 2, ..., n} : xi ̸= yi }|

para todo x = x1 x2 ...xn , y = y1 y2 ...yn ∈ An , con xi , yi ∈ A para todo i = 1, 2, ..., n, verica las
siguientes propiedades:

1. d(x, y) ≥ 0 para todo x, y ∈ An y d(x, y) = 0 si y solo si x = y.

2. d(x, y) = d(y, x) para todo x, y ∈ An y

3. d(x, z) ≤ d(x, y) + d(y, z) para todo x, y, z ∈ An .

Demostración. En primer lugar, nótese que d : An × An −→ R, denida por

d(x, y) = |{i ∈ {1, 2, ..., n} : xi ̸= yi }|

para todo x = x1 x2 ...xn , y = y1 y2 ...yn ∈ An , con xi , yi ∈ A para todo i = 1, 2, ..., n, está bien
denida, ya que a cada elemento de An × An le corresponde un único valor de R.

Veamos entonces que d : An × An −→ R es una distancia sobre el conjunto An .

x = x1 x2 ...xn , y = y1 y2 ...yn , z = z1 z2 ...zn ∈ An , con xi , yi , zi ∈ A para todo i = 1, 2, ..., n.


Sean
Tenemos que ver que d verica las tres propiedades de distancia sobre el conjunto An .
CAPÍTULO 5. TEORÍA DE LA CODIFICACIÓN 111

1. Claramente d(x, y) ≥ 0, ya que d(x, y) = |{i ∈ {1, 2, ..., n} : xi ̸= yi }| ∈ N∪{0} ⊆ R. Además,


es obvio que d(x, x) = 0 para todo x ∈ An , por ser

{i ∈ {1, 2, ..., n} : xi ̸= xi } = ∅.

Recíprocamente, si d(x, y) = 0, entonces

{i ∈ {1, 2, ..., n} : xi ̸= yi } = ∅,

con lo que x i = yi para todo i ∈ {1, 2, ..., n} y, por tanto, x = y.

2. Es evidente que

{i ∈ {1, 2, ..., n} : xi ̸= yi } = {i ∈ {1, 2, ..., n} : yi ̸= xi }.

Luego

d(x, y) = |{i ∈ {1, 2, ..., n} : xi ̸= yi }| = |{i ∈ {1, 2, ..., n} : yi ̸= xi }| = d(y, x).

3. Por último, veamos que d(x, z) ≤ d(x, y) + d(y, z).

Sea k ∈ {i ∈ {1, 2, ..., n} : xi ̸= zi }, es decir, k ∈ {1, 2, ..., n} es tal que xk ̸= zk . Vamos a ver
que
k ∈ {i ∈ {1, 2, ..., n} : xi ̸= yi } ∪ {i ∈ {1, 2, ..., n} : yi ̸= zi }.
Distinguiremos dos casos:

a ) Si xk = yk , entonces yk ̸= zk , con lo que k ∈ {i ∈ {1, 2, ..., n} : yi ̸= zi }.


b ) Si xk ̸= yk , entonces k ∈ {i ∈ {1, 2, ..., n} : xi ̸= yi }.

Luego

{i ∈ {1, 2, ..., n} : xi ̸= zi } ⊆ {i ∈ {1, 2, ..., n} : xi ̸= yi } ∪ {i ∈ {1, 2, ..., n} : yi ̸= zi }

y, por tanto,
d(x, z) ≤ d(x, y) + d(y, z).

Luego d : An × An −→ R es una distancia sobre el conjunto An .


Observación 5.2.4. Al recibir una palabra x′ ∈
/ C , decíamos que, el receptor intenta corregir el
′ ′′
error si se sustituye la palabra x por la palabra x ∈ C de manera que la probabilidad de que se
′′ ′ ′′
hubiera enviado x al recibir x fuera máxima. Esto no es más que buscar una palabra x ∈ C más

próxima a x en la distancia de Hamming.

A esta forma de proceder se le denomina argumento del vecino más próximo. Nótese que el
vecino mas próximo no tiene por qué ser la palabra que se ha enviado. Además, como vimos en el
ejemplo anterior, tampoco tiene por qué ser único.

Denición 5.2.5. Sea A un alfabeto y sea C un código bloque sobre A. Llamaremos distancia
mínima de C al número
d(C) = mín{d(x, y) : x, y ∈ C, x ̸= y}.
CAPÍTULO 5. TEORÍA DE LA CODIFICACIÓN 112

Ejemplo 5.2.6. Sea A = {0, 1} y consideremos el código bloque C = {00000, 01010, 11000, 11101}.
En este caso, la distancia mínima de C es 2.

De esta forma, si en la transmisión de una palabra de C se produce un solo error, el receptor


lo detectará, ya que no hay dos palabras en C cuya distancia de Hamming sea 1.
Denición 5.2.7. Sea A un alfabeto y sea C r ∈ N, diremos que el
un código bloque sobre A. Si
código C detecta r errores si, cuando en la transmisión de x∈C
r errores, entonces se producen

la palabra recibida x no pertenece al código. Se dirá que el código C corrige r errores si, cuando

en la transmisión de x ∈ C se producen r errores, entonces la palabra recibida x no pertenece al
código y su único vecino más próximo es x.

Ejemplo 5.2.8. Sea A = {0, 1} y consideremos el código bloque C = {00000, 01101, 10110, 11011}.
En este caso, como d(C) = 3, entonces el código C detecta 2 errores, ya que siempre que en
la transmisión de una palabra de C se produzcan 2 errores el receptor lo detectará, por no haber
palabras en C con distancia de Hamming igual a 2. Del mismo modo, se tiene que el código C
detecta 1 error.

Sin embargo, el código C no corrige 2 errores, ya que al transmitir 00000 ∈ C podríamos recibir
01001 ∈
/ C , pero d(01001, 01101) = 1 < 2 = d(01001, 0000), con lo que el vecino más próximo de
01001 es 01101, en lugar de ser el mensaje original 00000.
Teorema 5.2.9. Sea A un alfabeto y sea C un código bloque sobre A con distancia mínima d=
d(C). Entonces se verica:

1. C detecta hasta d − 1 errores.


 d−1 
2. C corrige hasta 2
errores.

Demostración.

1. Supongamos que se envía la palabra x∈C y, durante su transmisión, se producen r errores,


con 0 < r ≤ d − 1, recibiéndose la palabra x′ , ′
es decir, d(x, x ) = r < d.

Como d(x, x′ ) = r < d y d es la distancia mínima de C, entonces x′ ∈


/ C, con lo que se
detectará el error.


2. Supongamos ahora que se envía la palabra x ∈ C y, durante su transmisión, se producen r
′ ′ ′ ′ ′
 d−1 
errores, con 0 < r ≤

 d−1  2d−1 ,recibiéndose la palabra x , es decir, d(x, x ) = r , con 2r ≤ d − 1,
por ser r ≤ y 2 ≤ d − 1.
2 2

Veamos que el único vecino más próximo a x es x por reducción al absurdo. Supongamos
′ ′ ′
que existe z ∈ C , con z ̸= x, tal que d(z, x ) ≤ d(x, x ) = r .

Como d(z, x′ ) ≤ d(x, x′ ) = r′ , entonces

d(x, z) ≤ d(x, x′ ) + d(x′ , z) ≤ r′ + r′ = 2r′ ≤ d − 1 < d = d(C),


lo cual es una contradicción, ya que x, z ∈ C y d(C) = mín{d(x, y) : x, y ∈ C, x ̸= y}.
Por lo tanto, x es el único vecino más próximo a x′ .
CAPÍTULO 5. TEORÍA DE LA CODIFICACIÓN 113

Ejemplo 5.2.10. En el ejemplo anterior, teníamos el código C = {00000, 01101, 10110, 11011}
sobre el alfabeto A = {0, 1}.

Vimos que este código C no corregía 2 errores. Sin embargo, aplicando el teorema anterior,
 3−1 
tenemos que el código C corrige 1 error, ya que d(C) = 3 y
2
= 1.

5.3. Códigos lineales


Consideremos el alfabeto {0, 1} dotado con las operaciones de suma y producto con las que
obtiene estructura de cuerpo, es decir, vamos a considerar el cuerpo Z2 . Como Z2 es un cuerpo
n
entonces, si n ∈ N, tenemos que Z2 es un espacio vectorial sobre Z2 de dimensión n.

Denición 5.3.1. Sean ∈ N y sea C un código bloque binario de longitud n. Diremos que C es
n
un código lineal (binario) si C es un subespacio vectorial de Z2 .

Observación 5.3.2. Aunque nosotros vamos a trabajar con códigos lineales binarios (subespacios
n n
vectoriales de Z2 ), se pueden denir códigos lineales sobre Zp para cualquier número primo p.

Ejemplo 5.3.3.
1. El código bloque binario C = {000, 010, 111, 001} no es lineal ya que, si representamos
010 ≡ (0, 1, 0) ∈ Z32 y 111 ≡ (1, 1, 1) ∈ Z32 , entonces

(0, 1, 0) + (1, 1, 1) = (1, 2, 1) = (1, 0, 1) ≡ 101 ∈


/ C.

Esto lo resumiremos mediente la notación 010 + 111 = 101 ∈


/ C.

2. El código C ′ = {000, 011, 101, 110} sí es lineal, ya que B = {011, 110} es base de C ′ , es decir,

C ′ = ⟨011, 110⟩ ≡ {a(0, 1, 1) + b(1, 1, 0) : a, b ∈ Z2 }.

3. El código bloque C ′′ = {1111, 0101, 1010} no es un código lineal ya que, aunque 0101+1010 =
1111, se tiene que 0000 ∈/ C ′′ .

Observación 5.3.4. Para comprobar si un código bloque binario C es lineal, basta vericar que
x+y ∈C para todo x, y ∈ C .

Denición 5.3.5. n ∈ N y consideremos Zn2 . Sea C un código lineal de dimensión m, es decir,


Sea
m = dim(C) ≤ n. Sea B = {v1 , v2 , ..., vm } una base de C . Denimos una matriz generadora del
código C , y la denotamos por G, como la matriz
 
v11 v12 ... v1n
 v21 v22 ... v2n 
G=  ∈ Mm×n (Z2 ),
 ... ... ... ... 
vm1 vm2 ... vmn

donde vi = (vi1 , vi2 , ..., vin ) para todo i = 1, 2, ..., m.


CAPÍTULO 5. TEORÍA DE LA CODIFICACIÓN 114

n
Observación 5.3.6. Si B = {v1 , v2 , ..., vm }, con m= dim(C) ≤n= dim(Z2 ), es una base de un
código lineal C, entonces cada palabra de C se expresa de forma única como combinación lineal
de los elementos de B, es decir,

C = {λ1 v1 + λ2 v2 + ... + λm vm : λ1 , λ2 , ..., λm ∈ Z2 }.


m
De esta forma, podemos identicar el espacio vectorial Z2 con C , asignando a cada vector
m
(λ1 , λ2 , ..., λm ) ∈ Z2 la palabra λ1 v1 + λ2 v2 + ... + λm vm ∈ C , con λ1 , λ2 , ..., λm ∈ Z2 . Es decir,
m
la aplicación φ : Z2 −→ C , denida por φ(λ1 , λ2 , ..., λm ) = λ1 v1 + λ2 v2 + ... + λm vm para todo
(λ1 , λ2 , ..., λm ) ∈ Z2 , es un isomorsmo entre Zm
m
2 y C.

Esto puede expresarse en forma matricial utilizando una matriz generadora del código C,
 
v11 v12 ... v1n
  v21 v22 ... v2n 
λ1 v1 + λ2 v2 + ... + λm vm = λ1 λ2 ... λm 
 ...
,
... ... ... 
vm1 vm2 ... vmn

donde vi = (vi1 , vi2 , ..., vin ) para todo i = 1, 2, ..., m.

Por lo tanto, conociendo una matriz generadora de un código C, podemos obtener todas las
palabras del código. Además, si dim(C) = m, entonces C tendrá 2m palabras, ya que el espacio
vectorialZm m m
2 tiene P R(2, m) = 2 elementos y C es isomorfo a Z2 .

Ejemplo 5.3.7. Sea C un código lineal binario con matriz generadora


 
1 0 0 0 1 1 1
 0 1 0 0 1 1 0 
G=
 0
.
0 1 0 1 0 1 
0 0 0 1 0 1 1

Gracias a la matriz generadora de C , sabemos que C tiene dimensión 4 y, por tanto, |C| =
24 = 16. Además, como la matriz generadora tiene 7 columnas, entonces las 16 palabras de C tiene
longitud 7, es decir, C es un código bloque de longitud 7.

Por la observación anterior, cada una de estas 16 palabras será el resultado de multiplicar los
P R(2, 4) = 24 = 16 elementos de Z42 por la matriz G:
 
0 0 0 0 G= 0 0 0 0 0 0 0 ,
 
0 0 0 1 G= 0 0 0 1 0 1 1 ,
 
0 0 1 0 G= 0 0 1 0 1 0 1 ,
 
0 0 1 1 G= 0 0 1 1 1 1 0 ,
 
0 1 0 0 G= 0 1 0 0 1 1 0 ,
 
0 1 0 1 G= 0 1 0 1 1 0 1 ,
 
0 1 1 0 G= 0 1 1 0 0 1 1 ,
 
0 1 1 1 G= 0 1 1 1 0 0 0 ,
CAPÍTULO 5. TEORÍA DE LA CODIFICACIÓN 115

 
1 0 0 0 G= 1 0 0 0 1 1 1 ,
 
1 0 0 1 G= 1 0 0 1 1 0 0 ,
 
1 0 1 0 G= 1 0 1 0 0 1 0 ,
 
1 0 1 1 G= 1 0 1 1 0 0 1 ,
 
1 1 0 0 G= 1 1 0 0 0 0 1 ,
 
1 1 0 1 G= 1 1 0 1 0 1 0 ,
 
1 1 1 0 G= 1 1 1 0 1 0 0 ,
 
1 1 1 1 G= 1 1 1 1 1 1 1 .

Observación 5.3.8. Si C es un código lineal binario de dimensión m ≤ n, donde n es la longitud


de C como código bloque, entonces sabemos que C tiene n−m ecuaciones cartesianas, ya que

número de ecuaciones cartesianas de C = dim(Zn2 ) − dim(C) = n − m.

Por lo tanto, existe una matriz H ∈ M(n−m)×n (Z2 ) tal que (x1 , x2 , ..., xn ) ∈ C si y solo si

   
x1 0
 x2   0 
H  ...  =  ...  .
  

xn 0

Denición 5.3.9. n ∈ N y consideremos Zn2 . Sea C un código lineal


Sea de dimensión m ≤ n. A
una matriz H ∈ M(n−m)×n (Zn ) tal que (x1 , x2 , ..., xn ) ∈ C si y solo si
   
x1 0
 x2   0 
H  ...  =  ... 
  

xn 0

se le denomina matriz de control del código C.

Observación 5.3.10. Como a partir de una base de un subespacio vectorial podemos determinar
sus ecuaciones cartesianas y viceversa, entonces a partir de una matriz generadora de un código
podremos obtener una matriz de control del código y viceversa. Además, como ni la base ni las
ecuaciones cartesianas de un subespacio vectorial son únicas, entonces estas matrices no son únicas.

Ejemplo 5.3.11.
1. Sea C un código lineal binario con matriz de control

 
1 1 0 0 0 0 1
H =  0 1 1 0 0 1 1 .
0 0 0 1 0 1 1

Vamos a determinar una matriz generadora del código C a partir de la matriz de control H.
Para ello, necesitamos determinar una base de C como subespacio vectorial de Z72 .
CAPÍTULO 5. TEORÍA DE LA CODIFICACIÓN 116

Sea x = (x1 , x2 , x3 , x4 , x5 , x6 , x7 ) ∈ Z72 . Por denición de matriz de control, tenemos que


x ∈ C si y solo si
HX t = 0,
es decir,
   
x1 0


 x2  
  0 

1 1 0 0 0 0 1  x3  
  0 

H =  0 1 1 0 0 1 1 
 x4 =
  0 ,

0 0 0 1 0 1 1  x5  
  0 

 x6   0 
x7 0
con lo que obtenemos que 
 x1 + x2 + x7 = 0
x2 + x3 + x6 + x7 = 0
x4 + x 6 + x7 = 0

son unas ecuaciones cartesianas de C.


Pasando estas ecuaciones cartesianas a ecuaciones paramétricas obtendremos una base de C.
Al tener 3 ecuaciones con 7 incógnitas, necesitamos 7 − 3 = 4 parámetros. De esta forma,


 x1 = λ
x = λ + η

 2


 x3 = λ + ν


x4 = ν + η , con λ, µ, ν, η ∈ Z2 ,
x5 = µ




x = ν

 6



x7 = η

son las ecuaciones paramétricas de C y, por tanto,

B = {(1, 1, 1, 0, 0, 0, 0), (0, 0, 0, 0, 1, 0, 0), (0, 0, 1, 1, 0, 1, 0), (0, 1, 0, 1, 0, 0, 1)}

es una base de C.
Luego
 
1 1 1 0 0 0 0
 0 0 0 0 1 0 0 
G=
 0

0 1 1 0 1 0 
0 1 0 1 0 0 1
es una matriz generadora de C.

2. Sea C un código lineal binario con matriz generadora


 
1 0 0 0 1 1 1
 0 1 0 0 1 1 0 
G=
 0
.
0 1 0 1 0 1 
0 0 0 1 0 1 1

Vamos a calcular una matriz de control del código C a partir de la matriz generadora G.
CAPÍTULO 5. TEORÍA DE LA CODIFICACIÓN 117

Como  
1 0 0 0 1 1 1
 0 1 0 0 1 1 0 
G=
 0

0 1 0 1 0 1 
0 0 0 1 0 1 1
es una matriz generadora del código C, entonces

B = {(1, 0, 0, 0, 1, 1, 1), (0, 1, 0, 0, 1, 1, 0), (0, 0, 1, 0, 1, 0, 1), (0, 0, 0, 1, 0, 1, 1)}

es una base de C.
Por lo tanto, si (x1 , x2 , x3 , x4 , x5 , x6 , x7 ) ∈ C , entonces la matriz
 
x1 x2 x3 x4 x5 x6 x7
 1 0 0 0 1 1 1 
 
 0 1 0 0 1 1 0 
 
 0 0 1 0 1 0 1 
0 0 0 1 0 1 1
tiene rango 4, con lo que todos los menores de orden 5 deben ser cero.

Luego
x1 x2 x3 x4 x5
1 0 0 0 1
0 1 0 0 1 = 0 ⇔ x1 + x2 + x3 + x5 = 0,
0 0 1 0 1
0 0 0 1 0
x1 x2 x3 x4 x6
1 0 0 0 1
0 1 0 0 1 = 0 ⇔ x1 + x2 + x4 + x6 = 0,
0 0 1 0 0
0 0 0 1 1
x1 x2 x3 x4 x7
1 0 0 0 1
0 1 0 0 0 = 0 ⇔ x1 + x3 + x4 + x7 = 0,
0 0 1 0 1
0 0 0 1 1
con lo que 
 x1 + x2 + x3 + x5 = 0
x1 + x2 + x4 + x6 = 0
x1 + x3 + x4 + x7 = 0

son unas ecuaciones cartesianas de C y, por tanto,


 
1 1 1 0 1 0 0
H= 1 1 0 1 0 1 0 
1 0 1 1 0 0 1
es una matriz de control del código C.
CAPÍTULO 5. TEORÍA DE LA CODIFICACIÓN 118

Ejercicios
1. Si C n, denimos el peso de x = x1 x2 ...xn ∈ C , y lo
es un código bloque de longitud
denotamos por ω(x), como ω(x) = |{xi ̸= 0 : i = 1, 2, ..., n}|. Demostrar que si C es un código
lineal binario, entonces d(C) = mín{ω(x) : x ∈ C, x ̸= 0}.

2. Sea C un código lineal binario y sea H una matriz de control del código C . Demostrar que,
n t t t
dados dos vectores x, y ∈ Z2 , se tiene que x + y ∈ C ⇔ Hx = Hy , donde Hx es el vector
n t
de Z2 obtenido tras realizar la multiplicación matricial HX (denominado síndome de x).

3. Sea C un código lineal binario con matriz generadora

 
1 0 0 0 1 1 1
 0 1 0 0 1 1 0 
G=
 0
.
0 1 0 1 0 1 
0 0 0 1 0 1 1

a ) Determina todas las palabras del código C.


b ) Calcular la distancia mínima de C.
c ) ¾Cuántos errores puede detectar el código? ¾Cuántos errores puede llegar a corregir?

d ) Calcula las ecuaciones cartesianas de C como subespacio vectorial de Z72 .

4. Sean n, m, r ∈ N y sea C un código lineal binario de dimensión m y longitud n. Sea H ∈


M(n−m)×n (Z2 ) una matriz de control del código C . Demostrar que d(C) = r si y solo si cada
n−m
conjunto formado por r − 1 vectores columna de H es linealmente independiente en Z2 y
existen r columnas de H linealmente dependientes.

5. Sea C un código lineal binario con matriz de control

 
1 1 0 1 1 0 0
H =  1 0 0 1 0 1 0 .
0 1 1 0 0 0 1

Determina una matriz generadora del código C.

6. Sea C un código lineal binario con matriz de control

 
1 1 0 ... 0
 1 0 1 ... 0 
H=
 ... ... ...
.
... ... 
1 0 0 ... 1

Hallar una matriz generadora del código C.

7. Sea C un código lineal con matriz generadora

 
1 0 0 1 1 1 0
G =  0 1 0 1 1 0 1 .
0 0 1 1 0 1 1
CAPÍTULO 5. TEORÍA DE LA CODIFICACIÓN 119

a ) Determina la longitud de C como código bloque y la dimensión de C como código lineal.

b ) Dar una base de C, el peso mínimo y la distancia mínima de C.


c ) ¾Cuántos errores puede detectar el código C? ¾Y corregir?

d ) Calcula una matriz de control de C.

8. Sean n, m ∈ N y sea C un código lineal de dimensión m y longitud n. Sea H ∈ M(n−m)×n (Z2 )


una matriz de control del código C. ¾Cuántas columnas debe tener H para que nunca ten-
gamos que pedir retransmisión al recibir una palabra con un error?

9. Sea C un código lineal con matriz de control

 
0 1 1 1 1 0 0 0
 1 0 1 1 0 1 0 0 
H=
 1
.
1 0 1 0 0 1 0 
1 1 1 0 0 0 0 1

a ) Determina la longitud de C como código bloque y la dimensión de C como código lineal.

b ) Dar una base de C y una matriz de control de C.


c ) Calcula la distancia mínima de C. ¾Cuántos errores detecta y corrige el código C?
d ) Da un ejemplo de una palabra emitida x ∈ C y de una recibida y ∈
/ C tales que el
código C detecte el error pero no pueda corregirlo.

También podría gustarte