Professional Documents
Culture Documents
JJCC
ALGEBRA Curso 2008/09
1.
Introduccion
2. Codigos
lineales y
funciones
codificadoras.
3. Codigos
lineales y
funciones
Tema 4.
CODIGOS LINEALES.
sndrome.
4. Distancia y
peso de un
codigo. Jose Juan Carreno
Carreno
5. Descodifi-
cacion
Metodo de Departamento de Matematica Aplicada
por
descodificacion
distancia mnima
Escuela Universitaria de Informatica
Metodo de
por
descodificacion
Universidad Politecnica de Madrid
sndrome
1
ALGEBRA INDICE
JJCC
Tema 4.
CODIGOS LINEALES.
1.
Introduccion
1
Introduccion.
2. Codigos
lineales y
funciones
2
Codigos lineales y funciones codificadoras.
codificadoras.
Matriz generadora.
3. Codigos
lineales y
Codigo
sistematico.
funciones
sndrome.
Codigos equivalentes.
4. Distancia y
peso de un
Matriz de control.
codigo.
5. Descodifi- 3
Codigos lineales y funciones sndrome.
cacion
Metodo de
por
descodificacion
distancia mnima
4
Distancia y peso de un codigo.
Metodo de
por
descodificacion
sndrome
5
Descodificacion.
Metodo por distancia mnima.
de descodificacion
Metodo por sndrome.
de descodificacion
Sndrome, orbita
y lder.
6
Eficiencia de los metodos
de descodificacion. 2
ALGEBRA
1
Introduccion.
JJCC
1.
Introduccion
2. Codigos
lineales y
funciones
codificadoras.
El proceso basico de la informacion
de transmision
3. Codigos comienza con un emisor que escribe los mensajes
lineales y
funciones utilizando smbolos de un alfabeto fuente A y sigue un
sndrome.
4. Distancia y
esquema del tipo siguiente:
peso de un
codigo.
5. Descodifi-
cacion
Metodo de
mA m = f 1 (y 0 )
por
descodificacion
distancia mnima
f 1
Metodo de
por
descodificacion
sndrome
EMISOR f RECEPTOR
canal
y = f (m) V y0 V
3
ALGEBRA
2
Introduccion.
JJCC
1.
de caracteres es mas
Como la manipulacion compleja que
Introduccion la de los numeros:
2. Codigos
lineales y
funciones
A cada smbolo de A se le asigna un equivalente numerico
codificadoras. en V , siendo V un espacio vectorial sobre un cuerpo finito
3. Codigos
lineales y
biyectiva f : A V .
K, mediante una funcion
funciones
sndrome.
1.
Introduccion
Entonces pueden ocurrir dos casos:
2. Codigos
lineales y
Si no se produce ruido en el canal se tendra que
funciones
codificadoras.
y 0 = f (m) y el receptor, utilizando la funcion
inversa
3. Codigos
f 1 , puede recuperar el smbolo m A enviado.
lineales y
funciones
sndrome.
Si el ruido del canal produce un error en la
4. Distancia y transmision se recibira y 0 6= f (m) pero el receptor no
peso de un
codigo. podra detectar que se ha producido el error ya que
5. Descodifi- y 0 V y se obtendra f 1 (y 0 ) 6= m.
cacion
Metodo de
por
descodificacion
distancia mnima
Metodo de
por
descodificacion
? Notacion: Trabajaremos fundamentalmente, con
sndrome
espacios vectoriales de la forma Zn2 .
El vector (x1 , x2 , . . . , xn ) Zn2 se identificara con la
cadena
x1 x2 . . . xn
5
ALGEBRA
4
Introduccion.
JJCC
? Ejemplo: Consideremos el alfabeto fuente
1.
Introduccion
A = { a, b, c, d, e, f , g, h }
2. Codigos
lineales y
Para calcular los equivalentes numericos utilizamos la
funciones
codificadoras.
biyectiva f : A Z32 que asigna a cada smbolo
funcion
3. Codigos
de A el numero
del rango { 0, . . . , 7 } correspondiente a
lineales y
funciones
su posicion con el orden alfabetico
escrito en binario con
sndrome. tres dgitos. Como f es biyectiva el alfabeto A se
4. Distancia y
peso de un
identifica con Z32 :
codigo.
5. Descodifi- A Z32 = { 000, 001, 010, 011, 100, 101, 110, 111 }
cacion
Metodo de
por
descodificacion
Al enviar la palabra y = 001 por el canal puede que el
distancia mnima
Metodo de
ruido no la altere y el receptor recupera el smbolo de
por
descodificacion
sndrome partida.
Pero, que ocurre si el ruido la altera modificando, por
ejemplo, su primer bit?
En este caso, el receptor recibe y 0 = 101 y no detecta que
hay un error, puesto que la palabra 101 Z32 . 6
ALGEBRA
5
Introduccion.
JJCC
Ambas situaciones se pueden observar en el esquema:
1.
f canal f 1
Introduccion
A Z32 Z32 A
2. Codigos
lineales y
funciones
codificadoras. a 000 000 a
y=f (m)= sin ruido y 0 = f 1 (y 0 )=
3. Codigos
lineales y
m= b
001 001 b =m
funciones
sndrome.
c 010 010 c
4. Distancia y
d 011 011 d
peso de un
codigo.
e 100 con & 100 e
5. Descodifi-
f 101 ruido y 0 = 101 f 1 (y 0 )= f 6= m
cacion
Metodo de
g 110 110 g
por
descodificacion
distancia mnima h 111 111 h
Metodo de
por
descodificacion
sndrome
3. Codigos
lineales y
mA mA
funciones
sndrome.
m f (m).
8
ALGEBRA
7
Introduccion.
JJCC
b) Antes de enviar f (m) se transforma en un elemento
1.
Introduccion
y de otro espacio vectorial W sobre K, con
2. Codigos dim(W ) dim(V ), mediante una funcion
lineales y
funciones codificadora:
codificadoras.
3. Codigos
c : V W lineal inyectiva, que verifica:
aplicacion
lineales y
funciones
sndrome. El subespacio vectorial C = Im c W , se llama
4. Distancia y
codigo codificadora c
lineal asociado a la funcion
peso de un
codigo. con dim C = dim V .
5. Descodifi-
cacion Si dim(W ) > dim(V ) = c NO es sobreyectiva
Metodo de
por
descodificacion
y C = Im c W.
distancia mnima
Metodo de
por
descodificacion
El elemento f (m) se transforma por c en la palabra
sndrome
y = c(f (m)) C.
c) La palabra y C se enva a traves del canal, se
recibe y 0 W pudiendo ocurrir debido al ruido del
canal que y 0 6= y. El receptor solo detectara el error
si y 0
/ C (posible cuando C W ). 9
ALGEBRA
8
Introduccion.
JJCC
1.
Introduccion
2. Codigos
lineales y
funciones consiste en dos procesos:
d) La descodificacion
codificadoras.
3. Codigos
lineales y 1 Detectar si ha habido algun a
error en la transmision
funciones
sndrome. del canal y en caso de que lo haya habido
traves
4. Distancia y ha sido la palabra enviada y = c(f (m)).
averiguar cual
peso de un
codigo.
10
ALGEBRA
8
Introduccion.
JJCC
1.
Introduccion
? Ejemplo: Con el alfabeto fuente del ejemplo anterior
2. Codigos
lineales y
funciones
codificadoras. A = { a, b, c, d, e, f , g, h }
3. Codigos
lineales y que se identifica con Z32 :
funciones
sndrome.
4. Distancia y
A Z32 = { 000, 001, 010, 011, 100, 101, 110, 111 }
peso de un
codigo. lineal:
Consideremos la aplicacion
5. Descodifi-
c : Z32 Z62
cacion
Metodo de
por
descodificacion
distancia mnima
Metodo de
por
descodificacion
sndrome
Definida por
c(x1 , x2 , x3 ) = (x1 , x2 , x3 , x1 + x2 , x1 + x3 , x2 + x3 )
11
ALGEBRA
9
Introduccion.
JJCC
1.
Introduccion
2. Codigos matricial de c respecto de las bases
La expresion
lineales y
funciones
canonicas de Z32 y Z62 es:
codificadoras.
3. Codigos
lineales y y1 1 0 0
funciones x1
sndrome.
y2
0 1 0
4. Distancia y y3 0 0 1
x2
peso de un
=
codigo.
y4
1 1 0
5. Descodifi- y5 1 0 1
cacion x3 B
Metodo de
por
descodificacion
y6 0
Bc
0 1 1 c
distancia mnima
Metodo de
por
descodificacion y abreviadamente: YB 0 = Mc XBc .
sndrome c
12
ALGEBRA
10
Introduccion.
JJCC
se verifica:
Ademas,
1.
Introduccion
C = Im c = L(100110, 010101, 001011) Z62 .
2. Codigos
lineales y
funciones dim(C) = rg(Mc ) = 3.
codificadoras.
3. Codigos Las columnas de Mc son una base del codigo
C:
lineales y
funciones
sndrome. [100110, 010101, 001011] es base de C.
4. Distancia y
peso de un
codigo.
El codigo C = Im c asociado a c es un subespacio
5. Descodifi-
cacion vectorial propio de Z62 (dim(Z62 ) > dim(Z32 )) y como su
Metodo de
por
descodificacion
distancia mnima
es 3, C tiene 23 = 8 palabras:
dimension
Metodo de
por
descodificacion
sndrome
1.
Introduccion
2. Codigos
Todo esto se ilustra en el esquema de la pagina siguiente.
lineales y
funciones
codificadoras. emplea mas
Esta codificacion bits de los que en principio
3. Codigos
lineales y
son necesarios pues c va de Z32 a Z62 y ademas se
funciones
sndrome.
verifica:
4. Distancia y
peso de un
al comienzo aparece la palabra enviada y los ultimos
codigo.
tres bits son redundantes.
5. Descodifi-
cacion
Metodo de
los tres ultimos
actuan
como bits de control y permiten
por
descodificacion
distancia mnima
de errores, y en algunos casos, la
la deteccion
Metodo de
por
descodificacion
sndrome
correccion.
truncandolos
se obtiene la palabra de partida.
14
ALGEBRA
12
Introduccion.
JJCC
1.
Introduccion f c canal
A Z32 Z62 Z62
2. Codigos
lineales y
funciones
codificadoras. a 000 000000 000000
b 001 001011 sin ruido 001011
3. Codigos
lineales y
funciones c 010 010101 010101
sndrome.
d 011 011110 011110
4. Distancia y
peso de un e 100 100110 100110
codigo.
5. Descodifi-
f 101 101101 con & 101101
cacion g 110 110011 ruido 110011
Metodo de
por
descodificacion
distancia mnima
h 111 111000 111000
Metodo de
por
descodificacion
sndrome
C = Im c & C = Im c
101011
c(x1 , x2 , x3 ) = (x1 , x2 , x3 , x1 + x2 , x1 + x3 , x2 + x3 )
15
ALGEBRA
13
Introduccion.
JJCC
1.
Introduccion
2. Codigos
lineales y
funciones
codificadoras.
Observacion:
3. Codigos
lineales y
funciones Puesto que los smbolos del alfabeto fuente carecen de
sndrome.
en s mismos, supondremos en todo el desarrollo
interes
4. Distancia y
peso de un
teorico posterior que el alfabeto es el espacio vectorial V ,
codigo.
al que pertenecen los equivalentes numericos,
5. Descodifi-
cacion prescindiendo entonces de la funcion
Metodo de
por
descodificacion
distancia mnima
Metodo de
por
descodificacion f : A V .
sndrome
16
ALGEBRA
Codigos lineales y funciones codificadoras. 1
JJCC
1. Definiciones:
Introduccion
Un codigo lineal de longitud n sobre Zp es un
2. Codigos
lineales y subespacio vectorial C de Znp .
funciones
codificadoras.
3. Codigos
Si dim(C) = k se dice que C es un (n, k)-codigo lineal
lineales y
funciones
y podemos interpetrar que C es el codigo asociado a una
sndrome.
codificadora c : Zkp Znp , es decir:
funcion
4. Distancia y
peso de un
codigo. lineal inyectiva.
c es aplicacion
5. Descodifi-
cacion C = Im c = c(Zkp ) Znp .
Metodo de
por
descodificacion
distancia mnima
Metodo de
por
descodificacion
y que Zkp es el alfabeto fuente numerico.
sndrome
Los elementos de C se llaman palabras codigo.
Si C es un (n, k)-codigo lineal se dice que su
redundancia es r = n k. En general, n > k y r > 0. 17
ALGEBRA
Codigos lineales y funciones codificadoras. 2
JJCC
1.
Introduccion
Definiciones:
2. Codigos
lineales y
funciones
codificadoras.
Si C es un codigo sobre Z2 se dice que es binario.
3. Codigos
lineales y
funciones
Si C es un codigo sobre Z3 se dice que es ternario.
sndrome.
4. Distancia y
peso de un ? Ejemplo: En Z62 consideramos el subespacio vectorial
codigo.
5. Descodifi-
C = L(100110, 010101, 001011). Se verifica:
cacion
Metodo de
por
descodificacion
C Z62 y dim(Z62 ) = 6 = n = 6.
distancia mnima
Metodo de
por
descodificacion dim(C) = 3 = k = 3.
sndrome
Por tanto, C es un (6, 3)-codigo lineal binario.
C tiene redundancia r = n k = 6 3 = 3.
Ademas,
18
ALGEBRA
Codigos lineales y funciones codificadoras. 3
JJCC
1.
Introduccion Si llamamos G a la matriz cuyas filas son las palabras de
2. Codigos
lineales y
la base de C,
funciones
codificadoras.
1 0 0 1 1 0
3. Codigos
lineales y G = 0 1 0 1 0 1 M 36 (Z2 )
funciones
sndrome. 0 0 1 0 1 1
4. Distancia y
peso de un podemos construir la aplicacion lineal c : Z32 Z62 cuya
codigo.
matricial, respecto de las bases canonicas,
expresion es
5. Descodifi-
cacion YB 0 = G t XB c . Se verifica:
Metodo de c
por
descodificacion
distancia mnima
Metodo de Im c = C.
por
descodificacion
sndrome
1.
Definicion:
Si C es un (n, k)-codigo lineal llamamos
Introduccion matriz generadora de C a cualquier matriz G cuyas filas
2. Codigos
lineales y
sean las coordenadas de los vectores de una base de C,
funciones
codificadoras.
respecto de la base canonica del espacio ambiente Znp .
3. Codigos
lineales y
funciones Observaciones: Sea C un (n, k )-codigo
lineal.
sndrome.
1.
Introduccion
2. Codigos
lineales y lineal inyectiva.
c es aplicacion
funciones
codificadoras.
C = Im c = c(Zkp ) Znp .
3. Codigos
lineales y
funciones
sndrome.
Observese que cada base de C proporciona una
4. Distancia y
codificadora c distinta.
funcion
peso de un
codigo. Ademas, una palabra u del alfabeto fuente Zkp se
5. Descodifi-
cacion
codifica como la palabra c(u) que se obtiene al
Metodo de
por
descodificacion multiplicar la matriz G t por la matriz columna de las
distancia mnima
Metodo de
por
descodificacion
coordenadas de u respecto de la base canonica de
sndrome
Zkp , y si, abusando de la notacion,
identificamos esta
matriz columna con u se tiene que:
C = { G t u / u Zkp }.
23
ALGEBRA
Codigos lineales y funciones codificadoras. 8
JJCC
1.
Introduccion con un (n, k)-codigo
3.) La codificacion lineal C es muy
2. Codigos requiere el almacenamiento en
simple pues solo
lineales y
funciones memoria de una matriz generadora G de C, esto es,
codificadoras.
de n k elementos de Zp y no de todos los
3. Codigos
lineales y
elementos del codigo C, que son pk vectores, es
funciones k
sndrome. decir n p elementos de Zp .
4. Distancia y
peso de un
codigo.
? Ejemplo:
Se considera el codigo lineal binario
5. Descodifi-
cacion
Metodo de
por
descodificacion
C 0 = L(100110, 010101, 0111110, 101101). Se tiene:
distancia mnima
Metodo de
por
descodificacion
sndrome
1 0 0 1 1 0 1 0 0 1 1 0
0 1 0 1 0 1 0 1 0 1 0 1
0 1 1 1 1 0 0 0 1 0 1 1
1 0 1 1 0 1 0 0 0 0 0 0
24
ALGEBRA
Codigos lineales y funciones codificadoras. 9
JJCC
1.
Introduccion Se puede quitar la ultima
fila y se vuelve a escalonar:
2. Codigos
lineales y
funciones
1 0 0 1 1 0 1 0 0 1 1 0
codificadoras.
G 0 = 0 1 0 1 0 1 0 1 0 1 0 1 = G 00
3. Codigos
lineales y 0 1 1 1 1 0 0 0 1 0 1 1
funciones
sndrome.
4. Distancia y
Por tanto, G 0 y G 00 M 36 (Z2 ) son dos matrices
peso de un
codigo.
generadores de C 0 .
5. Descodifi-
cacion
Metodo de
Por supuesto, G 0 y G 00 tienen el mismo tamano y el
por
descodificacion
distancia mnima mismo rango, rg(G 0 ) = rg(G 00 ) = 3 = dim(C 0 ) y cada una
Metodo de
por
descodificacion
sndrome
proporciona una base del codigo.
Observese que C 0 coincide con el (6, 3)-codigo
lineal C
del ejemplo anterior, pues G 00 = G.
25
ALGEBRA
Codigos lineales y funciones codificadoras. 10
JJCC
1.
Introduccion lineal asociada a G 0 , c 0 : Z32 Z62 , tiene
La aplicacion
2. Codigos como expresion matricial respecto de las bases canonicas:
lineales y
funciones
codificadoras. y1 1 0 0 x1
y2 0 1 1 x1
3. Codigos x2 + x3
lineales y
funciones y3 0 0 1 x3
sndrome. = x2 =
y4 1 1 1 x1 + x2 + x3
4. Distancia y
peso de un y5 1 0 1 x1 + x3
codigo. x3 B
5. Descodifi-
y6 B 0 0 1 0 c x2 B
0
c c
cacion
Metodo de
por
descodificacion
distancia mnima
Por tanto:
Metodo de
por
descodificacion
sndrome
c 0 (x1 , x2 , x3 ) = (x1 , x2 + x3 , x3 , x1 + x2 + x3 , x1 + x3 , x2 )
1.
Introduccion Ahora u = 111 se codifica por c 0 (u) = 101101.
2. Codigos
lineales y
funciones Ambas matrices generadoras de C poseen solo 18
codificadoras.
elementos de Z2 (bits) mientras que C tiene 23 palabras
3. Codigos
lineales y distintas y cada una de ellas es de longitud 6, por tanto es
funciones
sndrome. necesario almacenar 6 23 = 48 elementos de Z2 (bits).
4. Distancia y
peso de un
codigo.
La primera de las representaciones vistas para el codigo C
5. Descodifi-
cacion
interesante que la segunda pues facilita la
es mas
Metodo de
por
descodificacion
como vemos a continuacion.
descodificacion
distancia mnima
Metodo de
por
descodificacion
sndrome
Observacion:
Si C es un (n, k)-codigo lineal y una
codificadora suya es del tipo
funcion
27
ALGEBRA
Codigos lineales y funciones codificadoras. 12
JJCC
cuando se codifica una palabra u Zkp se tiene que:
1.
Introduccion Los primeros k smbolos de la palabra c(u) C
2. Codigos
lineales y
que se quiere enviar (es decir,
contienen la informacion
funciones
codificadoras.
la palabra u).
3. Codigos
lineales y
Los n k restantes son smbolos de control.
funciones
sndrome.
es automatica.
De este modo la descodificacion 28
ALGEBRA
Codigos lineales y funciones codificadoras. 13
JJCC
1.
Introduccion
2. Codigos
Definicion: codificadora c : Zkp Znp
Una funcion
lineales y
funciones
se dice que es sistematica si es del tipo
codificadoras.
3. Codigos
lineales y c(u) = (u, z), con z Znk
p .
funciones
sndrome.
4. Distancia y
peso de un matricial de c respecto de las
En este caso, la expresion
0
codigo.
bases Bc y Bc de Zkp y Znp respectivamente es
5. Descodifi-
cacion YB 0 = G t XBc , siendo G una matriz generadora que
Metodo de c
por
descodificacion
distancia mnima
verifica
Metodo de
por
descodificacion
sndrome G = (Ik R).
En este caso, se dice que la matriz generadora G de C
esta en forma estandar.
29
ALGEBRA
Codigos lineales y funciones codificadoras. 14
JJCC
1.
Introduccion
2. Codigos 1 0 0 1 1 0
lineales y
funciones ? Ejemplo: G= 0 1 0 1 0 1 esta en
codificadoras.
0 0 1 0 1 1
3. Codigos
lineales y
funciones
forma estandar codificadora es sistematica:
y la funcion
sndrome.
4. Distancia y
peso de un
codigo. y1 1 0 0 x1
x1
5. Descodifi-
y2
0 1 0
x2
cacion y3 0 0 1
x2 = x3
Metodo de
por
descodificacion
=
distancia mnima y4 1 1 0 x1 + x2
Metodo de
por
descodificacion y5 1 0 1 x1 + x3
sndrome
x3 B
y6 0
Bc
0 1 1 c x2 + x3 0
Bc
30
ALGEBRA
Codigos lineales y funciones codificadoras. 15
JJCC
1.
Introduccion
2. Codigos
lineales y
1 0 0 1 1 0
funciones
codificadoras.
? Ejemplo: La matriz G 0 = 0 1 0 1 0 1
3. Codigos 0 1 1 1 1 0
lineales y
funciones
sndrome.
es matriz generadora del mismo codigo
tambien
4. Distancia y
peso de un
codigo.
C = L(100110, 010101, 001011) Z62
5. Descodifi-
cacion
Metodo de
por
descodificacion
distancia mnima
pero NO esta en forma estandar
y, por tanto, la funcion
Metodo de
por
descodificacion
codificadora asociada NO es sistematica:
sndrome
c 0 (x1 , x2 , x3 ) = (x1 , x2 + x3 , x3 , x1 + x2 + x3 , x1 + x3 , x2 )
31
ALGEBRA
Codigos lineales y funciones codificadoras. 16
JJCC
1.
Introduccion
Definicion:
Si C es un (n, k)-codigo lineal se dice
2. Codigos
lineales y
que es sistematico si posee alguna matriz generadora en
funciones
codificadoras.
forma estandar, es decir, si esta asociado a una funcion
3. Codigos k n
codificadora c : Zp Zp que sea de codificacion
lineales y
funciones
sistematica.
sndrome.
4. Distancia y
peso de un
codigo.
? Ejemplo:
El (6, 3)-codigo lineal
5. Descodifi-
cacion
Metodo de
C = L(100110, 010101, 001011)
por
descodificacion
distancia mnima
Metodo de
es sistematico, pues su matriz generadora G esta en
por
descodificacion
sndrome
forma estandar.
Por tanto, C esta asociado a una funcion
codificadora
3 6
c : Z2 Z2 que es de codificacion sistematica.
32
ALGEBRA
Codigos lineales y funciones codificadoras. 17
JJCC
1.
? Ejemplo:
Se considera el (5, 3)-codigo lineal
Introduccion
2. Codigos
C = L(10111, 11100, 11001) Z52 .
lineales y
funciones
codificadoras.
1 0 1 1 1
3. Codigos
lineales y G= 1 1 1 0 0 es una matriz generadora de C
funciones
sndrome. 1 1 0 0 1
4. Distancia y
peso de un que NO esta en forma estandar.
codigo.
5. Descodifi-
El codigo
C es sistematico?
cacion
Metodo de
por
descodificacion
distancia mnima
Aplicando el algoritmo de Gauss-Jordan a la matriz G se
Metodo de
por
descodificacion obtiene:
sndrome
1 0 1 1 1 1 0 0 1 0
G = 1 1 1 0 0 0 1 0 1 1 = EscR(G).
1 1 0 0 1 0 0 1 0 1
33
ALGEBRA
Codigos lineales y funciones codificadoras. 18
JJCC
1.
La matriz EscR(G) es otra matriz generadora de C pues
Introduccion proporciona una nueva base: [10010, 01011, 00101].
2. Codigos
lineales y
funciones
Como EscR(G) s esta en forma estandar
C s es un
codificadoras.
codigo
sistematico.
3. Codigos
lineales y
funciones
lineal c 0 : Z32 Z52 tiene por expresion
La aplicacion
sndrome.
matricial:
4. Distancia y
peso de un
YB 0 = EscR(G) t XBc , es decir:
c
codigo.
5. Descodifi-
cacion
Metodo de
por
descodificacion
y1 1 0 0 x1 x1
distancia mnima
Metodo de
y2
0 1 0
x2
por
descodificacion
sndrome
y3
=
0 0 1
x2 =
x3
y4 1 1 0 x1 + x2
y5 0
Bc
0 1 1 x3 B x2 + x3 0
Bc
c
codificadora sistematica
y, por tanto, es una funcion
asociada a C. 34
ALGEBRA
Codigos lineales y funciones codificadoras. 19
JJCC
Cualquier codigo
lineal es sistematico?
1.
Introduccion
2. Codigos
La respuesta es NO, como se ve en el ejemplo siguiente.
lineales y
funciones
codificadoras. ? Ejemplo:
Se considera el (4, 3)-codigo lineal
3. Codigos
lineales y C = L(1011, 1101, 1100) Z42 .
funciones
sndrome.
4. Distancia y
peso de un
1 0 1 1
codigo. Su matriz generadora G = 1 1 0 1 NO esta
5. Descodifi-
cacion
1 1 0 0
Metodo de
por
descodificacion
en forma estandar y al aplicar el algoritmo de Gauss-Jordan
distancia mnima
Metodo de a G se obtiene:
por
descodificacion
sndrome
1 0 1 1 1 0 1 0
G = 1 1 0 1 0 1 1 0 = EscR(G).
1 1 0 0 0 0 0 1
que tampoco esta en forma estandar.
35
ALGEBRA
Codigos lineales y funciones codificadoras. 20
JJCC
1.
Puede ser C sistematico?
Introduccion
2. Codigos Para ello una palabra del tipo 001 debera pertenecer a
lineales y
funciones C, pero no puede ocurrir pues se tiene que:
codificadoras.
3. Codigos
lineales y
1 0 1 0 1 0 1 0
funciones 0 1 1 0 0 1 1 0
G= 0 0 0 1 0 0 1 = dim(C) = 4.
sndrome.
4. Distancia y
peso de un
codigo.
0 0 1 0 0 0 1
5. Descodifi-
cacion con dim(C) = 3. Luego no existe una base
Contradiccion
Metodo de
por
descodificacion
distancia mnima
de C que proporcione una matriz generadora que este en
Metodo de
por
descodificacion
forma estandar
y, por tanto, C NO es sistematico.
sndrome
4. Distancia y
respecto de B, esta en forma estandar.
peso de un
codigo. la expresion
matricial respecto de Bc y B de la
5. Descodifi-
cacion
codificadora c : Z32 Z42 asociada es
funcion
Metodo de
por
descodificacion
sistematica:
distancia mnima
Metodo de
por
descodificacion
sndrome
y1 1 0 0 x1
y2 0 x1
1 0
x2
y3 = 0
x2 =
0 1 x3
x3 B
y4 B 1 1 0 c x1 + x2 B
37
ALGEBRA
Codigos lineales y funciones codificadoras. 22
JJCC
1.
Introduccion
2. Codigos
lineales y El inconveniente es que ya no trabajamos con la base
funciones
codificadoras.
canonica en el espacio ambiente.
3. Codigos
lineales y
funciones Ahora bien, si consideramos el subespacio vectorial de Z42
sndrome.
4. Distancia y
peso de un C 0 = L(1001, 0101, 0010)
codigo.
5. Descodifi-
cacion
obtenemos un nuevo (4, 3)-codigo lineal que s es
Metodo de
por
descodificacion
sistematico
y que tiene los mismos parametros que C, esto
distancia mnima
Metodo de es, los mismos valores de n y k : n = 4 y k = 3.
por
descodificacion
sndrome
38
ALGEBRA
Codigos lineales y funciones codificadoras. 23
JJCC
1.
Definicion:
Se dice que dos (n, k)-codigos lineales
Introduccion C1 y C2 sobre Zp son equivalentes si existe una
2. Codigos
lineales y
permutacion
funciones
codificadoras. : { 1, 2, . . . , n } { 1, 2, . . . , n }
3. Codigos
lineales y
funciones de modo que
sndrome.
5. Descodifi-
Es decir, dos (n, k)-codigos lineales son equivalentes si
cacion sus palabras difieren unicamente
en el orden de sus
Metodo de
por
descodificacion
distancia mnima
coordenadas segun una permutacion .
Metodo de
por
descodificacion
sndrome
Observacion: es una biyeccion
La permutacion
que denotaremos:
1 2 n
=
(1) (2) (n)
39
ALGEBRA
Codigos lineales y funciones codificadoras. 24
JJCC
1.
Caracterizacion:
Dos (n, k )-codigos lineales C1 y
Introduccion C2 son equivalentes existe una matriz generadora de
2. Codigos
lineales y
C1 tal que al reordenar sus columnas se obtiene una matriz
funciones
codificadoras.
generadora de C2 .
3. Codigos
lineales y
funciones
? Ejemplo:
Los codigos lineales
sndrome.
4. Distancia y
peso de un C = L(1011, 1101, 1100)
codigo.
4. Distancia y
0 0 1 0
peso de un
codigo.
Teorema: Todo (n, k)-codigo
lineal es equivalente a
5. Descodifi-
cacion
un codigo
que es sistematico.
Metodo de
por
descodificacion
distancia mnima
Metodo de
D EM . Basta aplicar el algoritmo de Gauss-Jordan a una
por
descodificacion
sndrome
matriz generadora del codigo dado C para hallar la
escalonada reducida asociada a ella y deducir que
de los vectores de la base canonica
permutacion del
espacio ambiente es la necesaria para conseguir una
matriz que esta en forma estandar.
41
ALGEBRA
Codigos lineales y funciones sndrome. 1
JJCC
1.
Introduccion
2. Codigos
Recordemos que todo subespacio vectorial S puede
lineales y como el conjunto de soluciones de un
definirse tambien
funciones
codificadoras.
sistema lineal homogeneo
de rango maximo que son sus
3. Codigos
lineales y
ecuaciones implcitas minimales.
funciones
sndrome.
4. Distancia y
En particular, si C es un (n, k)-codigo lineal, como su
peso de un
codigo.
es k y el espacio ambiente es Znp , esta definido
dimension
5. Descodifi- por n k ecuaciones implcitas minimales:
cacion
Metodo de
por
descodificacion
distancia mnima
c11 x1 + c12 x2 + . . . + c1n xn = 0
Metodo de
c21 x1 + c22 x2 + . . . + c2n xn = 0
por
descodificacion
sndrome
C ..
.
cnk 1 x1 + cnk 2 x2 + . . . + cnk n xn = 0 B
c
42
ALGEBRA
Codigos lineales y funciones sndrome. 2
JJCC
1.
Introduccion
c11 c12 ... c1n
2. Codigos
lineales y
c21 c22 ... c2n
con rg = n k.
funciones
codificadoras.
..
.
3. Codigos
lineales y cnk 1 cnk 2 . . . cnk n
funciones
sndrome.
El sistema puede escribirse matricialmente como sigue:
4. Distancia y
peso de un
codigo. c11 c12 ... c1n x1 0
5. Descodifi- c21 c22 . . . c 2n
x2 0
cacion
.. = .. .
Metodo de ..
por
descodificacion
distancia mnima
. . .
Metodo de
por
descodificacion cnk 1 cnk 2 . . . cnk n xn Bc
0
sndrome
y esta matriz H, con rango maximo, recibe el nombre de
matriz de control o de paridad del subespacio vectorial
C.
43
ALGEBRA
Codigos lineales y funciones sndrome. 3
JJCC
1.
Introduccion
Definicion:
Sea C un (n, k )-codigo lineal definido,
2. Codigos
respecto de la base canonica de Znp , por n k
lineales y
funciones ecuaciones implcitas minimales.
codificadoras.
3. Codigos
lineales y
La matriz H de coeficientes del sistema se llama matriz
funciones
de control o matriz de paridad del codigo C.
sndrome.
4. Distancia y
peso de un
codigo.
Observacion:
La matriz de control de un (n, k )-codigo
5. Descodifi-
lineal C verifica:
cacion
Metodo de
por
descodificacion
H M (nk )n (Zp ), es decir, el tamano
de H es
distancia mnima
Metodo de
por
descodificacion
(n k ) n.
sndrome
44
ALGEBRA
Codigos lineales y funciones sndrome. 4
JJCC
1.
Introduccion
x1 0
2. Codigos
lineales y x2 0
funciones x1 x2 . . . xn C H = .
codificadoras. .. ..
. .
3. Codigos
lineales y xn Bc
0
funciones
sndrome.
4. Distancia y
peso de un Utilizaremos esta ultima
propiedad para detectar errores en
codigo.
5. Descodifi-
la transmision.
cacion
Metodo de
por
descodificacion
distancia mnima ? Ejemplo: Hallar el parametro
k del
(n, k)-codigo lineal
Metodo de
por
descodificacion
sndrome
siguiente
x1 + x2 + x3 = 0
C x1 + x3 + x4 = 0
x2 + x4 = 0
Bc
45
ALGEBRA
Codigos lineales y funciones sndrome. 5
JJCC
1 1 1 0 1 0 1 1
1.
Introduccion
Se tiene que: 1 0 1 1 0 1 0 1
2. Codigos
0 1 0 1 0 0 0 0
lineales y
funciones
codificadoras.
x1 + x3 + x4 = 0
son ec. implcitas minimales de C
3. Codigos x2 + x4 = 0 B
c
lineales y
funciones
sndrome. 1 0 1 1
y H= es una matriz de control de C.
4. Distancia y
peso de un
0 1 0 1
codigo.
1.
Introduccion
Como se halla la matriz de control de C a partir de la
2. Codigos
lineales y
matriz generadora G de C?
funciones
codificadoras.
3. Codigos
Como G proporciona la base [1010, 1101] de C se
lineales y
funciones
verifica que:
sndrome.
5. Descodifi-
Utilizando el algoritmo de Gauss para escalonar
cacion
Metodo de
parcialmente se obtiene:
por
descodificacion
distancia mnima
Metodo de
por
descodificacion
1 1 x1 1 0 x3
sndrome
0 1 x2 0 1 x4
A= 1 0 x3 0 0 x1 + x3 + x4
.
0 1 x4 0 0 x2 + x4
47
ALGEBRA
Codigos lineales y funciones sndrome. 7
JJCC
Por tanto:
1.
Introduccion
x1 + x3 + x4 = 0
2. Codigos x1 x2 x3 x4 C rg(A) = 2
lineales y x2 + x4 = 0 Bc
funciones
codificadoras.
3. Codigos
x1 x1
lineales y
funciones 1 0 1 1 x2 0 x2 0
sndrome. = H
=
0 1 0 1 x3 0 x3 0
4. Distancia y
peso de un x4 B x4 B
codigo. c c
5. Descodifi- x1 + x3 + x4 = 0
cacion Luego, C son ecuaciones
Metodo de
por
descodificacion
x2 + x4 = 0 B
c
distancia mnima
Metodo de
por
descodificacion
sndrome
implcitas minimales de C respecto de Bc y a partir de
ellas se obtiene una matriz de control de C:
1 0 1 1
H=
0 1 0 1
48
ALGEBRA
Codigos lineales y funciones sndrome. 8
JJCC
1.
Este procedimiento para hallar la matriz de control a partir
Introduccion
de la matriz generadora es largo pero podemos
2. Codigos
lineales y automatizarlo si G esta en forma estandar,
apoyandonos
funciones
codificadoras. en los resultados siguientes:
3. Codigos
lineales y
funciones Como las columnas de G t coinciden con los vectores de
sndrome.
una base de C y estos implcita que
verifican la ecuacion
4. Distancia y
peso de un define a C se tiene que:
codigo.
5. Descodifi-
cacion
H G t = 0 (nk )k
Metodo de
por
descodificacion
distancia mnima
Metodo de
? Ejemplo: En el ejemplo anterior:
por
descodificacion
sndrome
1 1
1 0 1 1 0 1 0 0
H Gt =
= .
0 1 0 1 1 0 0 0
0 1
49
ALGEBRA
Codigos lineales y funciones sndrome. 9
JJCC
1.
Introduccion
Proposicion:
Sea C un (n, k)-codigo lineal sobre
2. Codigos
lineales y Zp . Si G y H son una matriz generadora y una matriz de
funciones
codificadoras. control de C, respectivamente, entonces:
3. Codigos
lineales y
funciones H G t = 0(nk )k .
sndrome.
4. Distancia y
peso de un si G es una matriz generadora de C y
Ademas,
codigo.
H M (nk )k (Zp ) verifica:
5. Descodifi-
cacion
Metodo de
por
descodificacion
distancia mnima
rg(H) = n k
Metodo de
por
descodificacion
sndrome
H G t = 0(nk )k
50
ALGEBRA
Codigos lineales y funciones sndrome. 10
JJCC
1.
Introduccion
Proposicion:
Sea C un (n, k)-codigo lineal sobre
2. Codigos
Zp . Se verifica que:
lineales y
funciones
codificadoras.
G = (Ik |X ) es una matriz generadora de C
3. Codigos
lineales y H = (X t | Ink ) es una matriz de control de C.
funciones
sndrome.
4. Distancia y
peso de un D EM . Basta comprobar que
codigo.
5. Descodifi-
cacion
H G t = (X t | Ink ) (Ik |X ) t = 0(nk )k .
Metodo de
por
descodificacion
distancia mnima
Metodo de
por
descodificacion
sndrome
Definicion:
Sea C un (n, k)-codigo lineal sobre Zp y
H es una matriz de control de C. Se dice que H esta en
forma estandar si es de la forma
H = (Y | Ink ).
51
ALGEBRA
Codigos lineales y funciones sndrome. 11
JJCC
1.
? Ejemplo: Para el (4, 2)-codigo
lineal C del ejemplo
Introduccion anterior la matriz generadora y la matriz de control
2. Codigos
lineales y
obtenidas no estan en forma estandar:
funciones
codificadoras.
1 0 1 0 1 0 1 1
3. Codigos G= y H=
lineales y 1 1 0 1 0 1 0 1
funciones
sndrome.
Veamos si C es sistematico.
4. Distancia y
peso de un
codigo.
1 0 1 0 1 0 1 0 0
5. Descodifi-
G= =G
cacion
Metodo de
1 1 0 1 0 1 1 1
por
descodificacion
distancia mnima
0
Metodo de
por
descodificacion
sndrome
Como EscR(G) = G esta en forma estandar C es
sistematico y podemos obtener una matriz de control en
0
forma estandar H = (X t | I2 ):
0 1 1 1 0
H = M 24 (Z2 ).
0 1 0 1
52
ALGEBRA
Codigos lineales y funciones sndrome. 12
JJCC
0
1. Se tiene que rg(H ) = 3 y
Introduccion
2. Codigos
lineales y 1 0
funciones 0 0 t 1 1 1 0 0 1
= 0 0 .
codificadoras. H G =
3. Codigos
0 1 0 1 1 1 0 0
lineales y
funciones
0 1
sndrome.
4. Distancia y
Observese que en general una matriz de control que esta
peso de un
codigo.
en forma estandar NO es una matriz escalonada reducida.
5. Descodifi- 0
cacion
A partir de H se puede obtener H en forma estandar
Metodo de
por
descodificacion realizando operaciones elementales (por filas).
distancia mnima
Metodo de
por
descodificacion
sndrome
(Nota: el metodo no es el algoritmo de Gauss-Jordan.)
1 0 1 1 1 1 1 0 0
H= F1 :=F1 +F2 =H .
0 1 0 1 0 1 0 1
53
ALGEBRA
Codigos lineales y funciones sndrome. 13
JJCC
1.
Introduccion
2. Codigos
lineales y
funciones
codificadoras. ? Ejemplo: Queremos hallar una matriz de control del
3. Codigos
lineales y
(4, 3)-codigo lineal binario C cuya matriz generadora es
funciones
sndrome. 1 0 0 1
4. Distancia y
peso de un G = 0 1 0 1 .
codigo.
0 0 1 0
5. Descodifi-
cacion
Metodo de
Como G esta en forma estandar
se tiene que:
por
descodificacion
distancia mnima
H = (X t | I1 ) = 1 1 0 1 .
Metodo de
por
descodificacion
sndrome
54
ALGEBRA
Codigos lineales y funciones sndrome. 14
JJCC
1.
Introduccion
? Ejemplo: Sea C un (5, 2)-codigo
lineal binario cuya
2. Codigos
matriz de control es:
lineales y
funciones
codificadoras.
1 1 1 0 0
3. Codigos H = 0 1 0 1 0 M 35 (Z2 ).
lineales y
funciones
1 0 0 0 1
sndrome.
55
ALGEBRA
Codigos lineales y funciones sndrome. 15
JJCC
1.
Introduccion
Definicion:
Sea C un (n, k )-codigo lineal y H es
2. Codigos
lineales y una matriz de control de C. Se llama funcion sndrome
S : Znp Znk
funciones
codificadoras.
del codigo C a la aplicacion p tal que su
0
3. Codigos
lineales y
matricial respecto de las bases Bc y Bc de Znp
expresion
funciones
sndrome.
y Znk
p respectivamente es
4. Distancia y
peso de un
codigo. YB 0 = H XBc .
c
5. Descodifi-
cacion
Metodo de
por
descodificacion
Para cada u Znp se llama sndrome de la palabra u al
S(u) Znk
distancia mnima
Metodo de
por
descodificacion
vector p .
sndrome
56
ALGEBRA
Codigos lineales y funciones sndrome. 16
JJCC
1.
Introduccion
2. Codigos ? Propiedades: Sea S : Znp Znk
p
una funcion
lineales y
funciones sndrome de C.
codificadoras.
3. Codigos 1 C = ker(S).
lineales y
funciones
sndrome.
5. Descodifi-
cacion
2 S es sobreyectiva: Im(S) = Zpnk
Metodo de
por
descodificacion
distancia mnima
Metodo de
por
descodificacion
de mensajes el receptor
Si en el proceso de transmision
sndrome
recibe una palabra tal que S(y) 6= 0 0 entonces y
/C
y detecta que se ha cometido un error en el paso por el
canal.
57
ALGEBRA
Codigos lineales y funciones sndrome. 17
JJCC
1.
Introduccion
2. Codigos ? Ejemplo: Sea C el (5, 2)-codigo
lineal binario cuya
lineales y
funciones matriz de control es:
codificadoras.
3. Codigos
lineales y 1 1 1 0 0
funciones
sndrome. H = 0 1 0 1 0 M 35 (Z2 ).
4. Distancia y 1 0 0 0 1
peso de un
codigo. 0
La expresion matricial, respecto de las bases Bc y Bc de
5. Descodifi-
cacion Z52 y Z32 , de la funcion
sndrome sistematica
asociada
Metodo de
por
descodificacion
distancia mnima
Metodo de
por
descodificacion S : Z52 Z32 es YB 0 = H XBc .
sndrome c
Entonces se verifica:
58
ALGEBRA
Codigos lineales y funciones sndrome. 18
JJCC
1.
Introduccion
explcita de S es:
1. La expresion
2. Codigos
lineales y S(x1 , x2 , x3 , x4 , x5 ) = (x1 + x2 + x3 , x2 + x4 , x1 + x5 )
funciones
codificadoras.
3. Codigos
pues
lineales y
funciones
sndrome.
x1
4. Distancia y
peso de un 1 1 1 0 0 x2 x1 + x2 + x3
codigo.
0 1 0 1 0 x3 = x2 + x4
5. Descodifi-
cacion 1 0 0 0 1 x4 x1 + x5 B
0
Metodo de c
por
descodificacion
distancia mnima
x5 Bc
Metodo de
por
descodificacion
sndrome
x1 + x2 + x3 = 0
2. C = ker(S) x2 + x4 = 0
x1 + x5 = 0 B 0
c
1.
Introduccion
3. dim(Im(S)) = dim(Z52 ) dim(ker(S)) = 5 2 = 3 =
2. Codigos
lineales y
funciones
= dim(Im(S)) = dim(Z32 ) = S es sobreyectiva.
codificadoras.
3. Codigos
lineales y
Observese
que al estar H en forma estandar:
funciones
sndrome.
4. Distancia y
peso de un
codigo. 0
5. Descodifi- 1 1 1 0 0 0
x3
cacion 0 1 0 1 0
Metodo de x3
= x4
por
descodificacion
distancia mnima 1 0 0 0 1 x4 x5 B 0
Metodo de c
por
descodificacion
sndrome
x5 Bc
1.
Introduccion
2. Codigos
lineales y
funciones
codificadoras. 4. Si las palabras y1 = 11111 e y2 = 11011 son
3. Codigos
lineales y
recibidas por el receptor, este detecta error?
funciones
sndrome.
4. Distancia y
peso de un 1 1
codigo. 1 1 1 0 0 1 1
1 0
5. Descodifi- 0 1 0 1 0 1 0 = 0 0
cacion
Metodo de
por
descodificacion
1 0 0 0 1 1 1 0 0 B0
distancia mnima c
Metodo de
por
descodificacion
1 1 Bc
sndrome
61
ALGEBRA
Distancia y peso de un codigo. 1
JJCC
3. Codigos
Dado v = (v1 , . . . , vn ) Znp llamamos peso de la
lineales y
funciones
palabra v al numero
natural
sndrome.
4. Distancia y
(v ) = card({ i / vi 6= 0, 1 i n })
peso de un
codigo. Es decir, el peso de v es el numero
de componentes
5. Descodifi-
cacion
no nulas de v .
Metodo de
por
descodificacion
distancia mnima
Observese
que, por definicion:
Metodo de
por
descodificacion
sndrome (u) = (u) para todo u Znp .
Llamamos peso del (n, k)-codigo lineal C al numero
natural
(C) = min({ (v ) / v C, v 6= 0 }).
62
ALGEBRA
Distancia y peso de un codigo. 2
JJCC
1.
? Ejemplo:
Introduccion
2. Codigos a) En Z32 se tiene que:
lineales y
funciones (100) = (010) = (001) = 1.
codificadoras.
3. Codigos (101) = 2.
lineales y
funciones
sndrome. (111) = 3.
4. Distancia y
peso de un
codigo. (Z32 ) = 1, pues en Z32 hay palabras de peso 1.
5. Descodifi-
cacion
b) Se considera el (6, 3)-codigo lineal C dado por la
Metodo de
por
descodificacion
distancia mnima
matriz generadora:
Metodo de
por
descodificacion
sndrome
1 0 0 1 1 1
G= 0 1 0 1 1 1
0 0 1 1 1 1
es el peso de C, (C)?
Cual
63
ALGEBRA
Distancia y peso de un codigo. 3
JJCC
Para calcular (C) es necesario hallar el peso de todas
1.
Introduccion
las palabras del codigo C:
2. Codigos
lineales y C = { 000000, 001111, 010111, 011000,
funciones
codificadoras.
3. Codigos
100111, 101000, 110000, 111111 }.
lineales y
funciones
sndrome.
(C) = peso de las palabras no nulas de menor peso = 2.
4. Distancia y
peso de un
codigo.
Definiciones:
5. Descodifi-
cacion Se define la distancia entre las palabras
Metodo de
por
descodificacion
distancia mnima
Metodo de
u = (u1 , . . . , un ) y v = (v1 , . . . , vn ) Znp
por
descodificacion
sndrome
como el numero
natural
d(u, v ) = card({ i / ui 6= vi , 1 i n })
es decir, la distancia de u a v coincide con el numero
de componentes en que difieren las dos palabras. 64
ALGEBRA
Distancia y peso de un codigo. 4
JJCC
Se define la distancia del codigo C:
1.
Introduccion
2. Codigos d(C) = min({ d(u, v ) / u, v C con u 6= v })
lineales y
funciones
codificadoras. es decir, la distancia de u a v coincide con el numero
3. Codigos de componentes en que difieren las dos palabras.
lineales y
funciones
sndrome.
4. Distancia y
? Notacion:
Llamaremos (n, k, d)-codigo lineal sobre
peso de un n
codigo.
Zp a todo codigo lineal C Zp de dimension
k y
5. Descodifi- distancia d.
cacion
1.
Introduccion ? Propiedades:
2. Codigos
lineales y 1 d(u, v ) d(u, w) + d(w, v ) para todo u, v , w Znp .
funciones
codificadoras.
2 (u + v ) (u) + (v ) para todo u, v Znp .
3. Codigos
lineales y
funciones 3
Si C es un (n, k)-codigo lineal se verifica que:
sndrome.
Por tanto, para calcular la distancia de un codigo lineal
basta hallar el peso de sus palabras no nulas y tomar el
menor de estos pesos.
66
ALGEBRA
Distancia y peso de un codigo. 6
JJCC
1.
Introduccion
? Ejemplo: 1. En Z32 comprueba que se verifica:
2. Codigos
lineales y
funciones
codificadoras. d(111, 011) d(111, 001) + d(001, 011)
3. Codigos
lineales y
funciones
(111 + 011) (111) + (011).
sndrome.
4. Distancia y
peso de un
codigo.
2. Calcula la distancia de los codigos lineales
5. Descodifi-
cacion
Metodo de
C = { 000000, 001111, 010111, 011000,
por
descodificacion
distancia mnima
Metodo de
por
descodificacion
100111, 101000, 110000, 111111 }.
sndrome
67
ALGEBRA
Distancia y peso de un codigo. 7
JJCC
1.
Introduccion
Observacion: Si d(C) = d entonces para transformar
2. Codigos
una palabra del codigo este en el
en otra que tambien es
lineales y
funciones necesario modificar al menos d de sus bits.
codificadoras.
3. Codigos
lineales y
funciones
Proposicion:
Si C1 y C2 son dos (n, k)-codigos
sndrome. lineales equivalentes entonces tienen igual distancia y
4. Distancia y
peso de un
peso.
codigo.
5. Descodifi-
cacion ? Ejemplo:
Vimos que los codigos lineales
Metodo de
por
descodificacion
distancia mnima
Metodo de
por
descodificacion
C = L( 1011, 1101, 1100 )
sndrome
1.
Introduccion
Al comienzo del tema vimos que con el (6, 3)-codigo lineal
2. Codigos
lineales y
funciones
codificadoras. C = L( 100110, 010101, 001011 ),
3. Codigos
lineales y
funciones
sndrome.
si se recibe la palabra y 0 = 101011 se detecta el error
4. Distancia y pues y 0 / C, pero si ademas suponemos que el canal, es
peso de un
codigo.
bueno, en el sentido de que la probabilidad de error es
5. Descodifi- podemos pensar que la palabra enviada
pequena,
cacion
Metodo de
originalmente es la palabra de C mas cercana a ella, es
por
descodificacion
distancia mnima decir, aquella palabra de C que tiene mayor numero
de
Metodo de
por
descodificacion
componentes iguales a y . 0
sndrome
69
ALGEBRA
Distancia y peso de un codigo. 9
JJCC
1.
Introduccion y 0 = 101011 :
2. Codigos d(y 0 , 001011) = 1,
d(y 0 , 101101) = d(y 0 , 110011) = 2,
lineales y
funciones
3. Codigos
lineales y d(y 0 , 000000) = d(y 0 , 011110) = 4,
funciones
sndrome. d(y 0 , 010101) = 5.
4. Distancia y
peso de un
codigo. Entonces, descodificamos y 0 como u = 001011 C.
5. Descodifi-
cacion
Metodo de
por
descodificacion
Si el numero
de errores ha sido realmente uno entonces u
distancia mnima
Metodo de
se
coincide con la palabra enviada y, en este caso, no solo
por
descodificacion
sndrome detecta que ha existido error sino que se puede corregir.
Esta estrategia da lugar al metodo simple de
mas
descodificacion,
el metodo de la distancia mnima que se
expone en la proxima
seccion.
70
ALGEBRA
1
Descodificacion.
JJCC
Sea C un (n, k , d)-codigo lineal. Supongamos que se ha
1.
Introduccion enviado la palabra y C a traves de un canal y, a causa
2. Codigos del ruido, se recibe la palabra y 0 C .
lineales y
funciones
codificadoras. Si y 0
/ C se detecta que ha habido algun error en la
3. Codigos
lineales y
y se procede a intentar obtener, a partir de la
transmision
funciones palabra y 0 Znp recibida, la palabra y C enviada.
sndrome.
4. Distancia y
peso de un
a esta
En lo que sigue, llamaremos descodificacion
codigo. y correccion
primera fase de deteccion de errores.
5. Descodifi-
cacion
Metodo de
Vamos a ver dos metodos
de descodificacion.
por
descodificacion
distancia mnima
Metodo de
por
descodificacion
1
Metodo por distancia mnima:
de descodificacion
sndrome
general y se puede aplicar a cualquier codigo,
es mas
aunque no sea lineal.
2
Metodo de descodificacion por sndrome: solo
es
valido
para los codigos eficiente,
lineales pero es mas
hay que realizar menos operaciones. 71
ALGEBRA
por distancia mnima. 1
Descodificacion
JJCC
1.
Entrada: Todas las palabras de un (n, k , d)-codigo lineal
Introduccion
C e y 0 la palabra recibida.
2. Codigos
lineales y
funciones de y 0 (posible valor de la
Salida: y C descodificacion
codificadoras.
palabra enviada y C).
3. Codigos
lineales y
funciones
sndrome. 1 Calcular y de modo que sea la palabra de C mas
4. Distancia y
proxima a y 0 . Debe verificar que:
peso de un
codigo.
5. Descodifi-
d(y , y 0 ) = min{ d(c, y 0 ) / c C }.
cacion
Metodo de
por
descodificacion
Si hay varias palabras que minimicen la distancia a y 0 ,
distancia mnima
Metodo de elegir una cualquiera de ellas.
por
descodificacion
sndrome
2 Devolver y .
Observacion:
El metodo se puede aplicar a
tambien
codigos no lineales.
72
ALGEBRA
por distancia mnima. 2
Descodificacion
JJCC
1.
Introduccion ? Ejemplo: C = { 00011, 11001, 10101, 11111 } es un
2. Codigos
lineales y
codigo no lineal que verifica que d(C) = 2.
funciones
codificadoras. Si se reciben las palabras y 0 = 01100 e y 00 = 11110, se
3. Codigos
lineales y
detecta que se ha producido error?
funciones
sndrome.
Empleamos el metodo de la distancia mnima:
4. Distancia y
peso de un
codigo. C d(01100, u) con u C
5. Descodifi-
cacion
00011 d(01100, 00011) = 4
Metodo de
por
descodificacion
11001 d(01100, 11001) = 3
distancia mnima
Metodo de 10101 d(01100, 10101) = 3
por
descodificacion
sndrome
11111 d(01100, 11111) = 3
Como hay tres codigos a la misma mnima
que estan
distancia de la palabra recibida, no se puede descodificar.
73
ALGEBRA
por distancia mnima. 3
Descodificacion
JJCC
Para la otra palabra
1.
Introduccion
2. Codigos C d(11110, u) con u C
lineales y
funciones 00011 d(11110, 00011) = 4
codificadoras.
11001 d(11110, 11001) = 3
3. Codigos
lineales y 10101 d(11110, 10101) = 3
funciones
sndrome. 11111 d(11110, 11111) = 1
4. Distancia y
peso de un
Como hay un solo codigo que esta a distancia mnima, 1, s
codigo.
se puede descodificar la palabra recibida por el codigo:
5. Descodifi-
cacion 11111.
Metodo de
por
descodificacion
distancia mnima
Metodo de
Si el cardinal del codigo
es elevado el metodo es muy
por
descodificacion
sndrome costoso, pues para calcular la distancia entre dos palabras
se necesita comparar n parejas de bits.
Si el codigo es lineal y binario se simplifican algo los
calculos pues:
d(u, v ) = (u + v ).
74
ALGEBRA
por distancia mnima. 4
Descodificacion
JJCC
? Ejemplo: Se considera el (6, 3, 3)-codigo
lineal binario
1.
Introduccion
C = L( 100110, 011110, 001011 ) =
2. Codigos
lineales y
= { 000000, 100110, 011110, 001011,
funciones
codificadoras. 010101, 101101, 110011, 111000 }
3. Codigos
lineales y
funciones
Al recibir la palabra y 0 = 111111, se detecta que se ha
sndrome. cometido error? Por que?
4. Distancia y
peso de un
codigo. C d(111111, u) = (111111 + u) con u C
5. Descodifi- 000000 (111111 + 000000) = (111111) = 6
cacion
Metodo de
por
descodificacion
100110 (111111 + 100110) = (100110) = 3
distancia mnima
Metodo de
011110 (111111 + 011110) = (011110) = 2
por
descodificacion
sndrome 001011 (111111 + 001011) = (001011) = 3
010101 (111111 + 010101) = (010101) = 3
101101 (111111 + 101101) = (101101) = 2
110011 (111111 + 110011) = (110011) = 2
111000 (111111 + 111000) = (111000) = 3
75
ALGEBRA
por distancia mnima. 5
Descodificacion
JJCC
1.
Introduccion
2. Codigos
lineales y
funciones
codificadoras. y1 = 011110 C
3. Codigos
lineales y
funciones
sndrome. 2
4. Distancia y
peso de un 111111 = y' 2
codigo.
y2 = 101101 C
5. Descodifi-
cacion
Metodo de 2
por
descodificacion
distancia mnima
y3 = 110011 C
Metodo de
por
descodificacion
sndrome
76
ALGEBRA
2
Descodificacion.
JJCC
1.
Introduccion
Proposicion:
2. Codigos
lineales y
Si C es un (n, k, d)-codigo lineal se verifica que:
funciones
codificadoras.
1 C es capaz de detectar d 1 errores.
3. Codigos
lineales y
funciones
d 1
sndrome.
2 C es capaz de corregir t = errores.
2
4. Distancia y
peso de un
codigo.
5. Descodifi-
cacion Teorema:
Sea C un (n, k, d)-codigo lineal y
Metodo de
por
descodificacion d 1
distancia mnima t= .
Metodo de
por
descodificacion
2
sndrome
1.
Introduccion
2. Codigos
lineales y Observaciones:
funciones
codificadoras.
3. Codigos
lineales y
1 Si se han producido s errores, con t < s d 1, es
funciones
sndrome.
posible detectar que se han producido errores pero no
4. Distancia y
sea
se puede garantizar que la descodificacion
peso de un
codigo.
correcta.
5. Descodifi-
cacion
Metodo de
2 Si s d, puede ocurrir que la palabra recibida y 0
por
descodificacion
distancia mnima
sea una palabra codigo y ni siquiera es posible detectar
que ha habido error. O bien que y 0 diste menos de
Metodo de
por
descodificacion
sndrome
otra palabra del codigo que de y y la descodificacion
sea incorrecta.
tambien
78
ALGEBRA
por distancia mnima. 6
Descodificacion
JJCC
1.
Intuitivamente, vemos en el ejemplo siguiente como la
Introduccion
2. Codigos
capacidad de un codigo lineal para detectar y corregir
lineales y
funciones
errores depende de la distancia entre sus palabras.
codificadoras.
3. Codigos
lineales y
funciones
sndrome.
4. Distancia y
peso de un
codigo.
5. Descodifi-
cacion
Metodo de
por
descodificacion
distancia mnima
Metodo de
y2
por
descodificacion
sndrome
y4
y1 y3
79
ALGEBRA
Metodo por sndrome. 1
de descodificacion
JJCC
1.
Introduccion
2. Codigos
Sea C un (n, k , d)-codigo lineal. Si se recibe la palabra
lineales y
funciones y0
/ C, el metodo de descodificacion por sndrome
codificadoras.
devuelve tambien la palabra de C mas cercana a y 0 pero
3. Codigos
lineales y de un modo mas eficiente que el calculo
de las distancias
funciones
sndrome. de y 0 a todas las palabras del codigo
C.
4. Distancia y
peso de un
codigo. Definicion:
Sea C un (n, k , d)-codigo lineal. Si se
5. Descodifi-
cacion
enva la palabra y C y se recibe la palabra y 0 llamamos
Metodo de
por
descodificacion
vector de error al vector e = y 0 y Znp .
distancia mnima
Metodo de
por
descodificacion
sndrome
Observacion: Para descodificar la palabra recibida y 0
vamos a buscar el vector de error e en lugar de buscar
directamente la palabra y C.
80
ALGEBRA
Metodo por sndrome. 2
de descodificacion
JJCC
El peso de e, (e), es el numero
de componentes no
1.
Introduccion nulas de la palabra e y coincide con el numero
de
2. Codigos componentes en que difieren las palabra y e y 0 .
lineales y
funciones
codificadoras. Por tanto, (e) es el numero
de alteraciones que ha
3. Codigos sufrido la palabra y para transformarse en y 0 .
lineales y
funciones
sndrome. Si se han producido s errores, (e) = s.
4. Distancia y
peso de un
codigo. sndrome de C, S : Znp Znk
La funcion p permite:
5. Descodifi-
cacion
Metodo de
1 puesto
Averiguar si ha habido error en la transmision,
por
descodificacion
distancia mnima
que caracteriza a las palabras de codigo:
Metodo de
por
descodificacion nk
sndrome uC S(u) = 0 0.
1. de la
A la vista de la propiedad 2), en la descodificacion
Introduccion
palabra recibida y 0 Znp elegiremos como estimacion del
2. Codigos
lineales y vector de error e la palabra de menor peso dentro del
funciones
codificadoras. conjunto de palabras de Znp que tienen el mismo sndrome
3. Codigos que y 0 . A partir de ella construiremos una estimacion
de la
lineales y
funciones palabra y.
sndrome.
4. Distancia y
peso de un
codigo. Esto justifica las siguientes definiciones:
5. Descodifi-
cacion
Definicion: Sea S : Znp Znk
p
una funcion
Metodo de
por
descodificacion
distancia mnima
sndrome del codigo C. Se define para cada u Znp :
Metodo de
por
descodificacion
sndrome
orbita de u, y se denota orb(u), como el conjunto
Sndrome de la orbita de u es el vector S(u) Znk
p .
82
ALGEBRA
Metodo por sndrome. 4
de descodificacion
JJCC
1.
Introduccion
2. Codigos
lineales y
Definicion:
funciones
codificadoras.
Lder de la orbita de u, y se denota por l(u), a un
3. Codigos
lineales y vector de peso mnimo del conjunto orb(u). Si hubiese
funciones
sndrome. varios, se elige uno cualquiera de ellos, es decir:
4. Distancia y
peso de un l(u) orb(u).
codigo.
83
ALGEBRA
Metodo por sndrome. 5
de descodificacion
JJCC
4. Distancia y
peso de un 2
Orbita de u: orb(u) = u + C = { u + x / x C }.
codigo.
5. Descodifi-
cacion
3 orb(u) 6= y |orb(u)| = |C| = pk .
Metodo de
por
descodificacion
distancia mnima 4
Las orbitas distintas son disjuntas, es decir:
Metodo de
por
descodificacion
sndrome
84
ALGEBRA
Metodo por sndrome. 6
de descodificacion
JJCC
1.
Introduccion
sndrome S es sistematica,
6. Si la funcion se verifica
2. Codigos k
lineales y que dado s Znk p , la palabra 0 0 s Znp
funciones
codificadoras.
pertenece a la orbita cuyo sndrome es s, es decir:
3. Codigos
lineales y k
funciones S(0 0 s) = s.
sndrome.
4. Distancia y
peso de un
codigo.
5. Descodifi-
cacion
Definicion:
Metodo de
por
descodificacion
distancia mnima
Metodo de
Sea C un (n, k, d)-codigo lineal y S : Znp Znk
p una
por
descodificacion
sndrome sndrome del codigo
funcion C.
Se llama tabla de sndromes del codigo C a una tabla
que empareja para cada orbita u + C su sndrome S(u) y
su lder l(u).
85
ALGEBRA
Metodo por sndrome. 7
de descodificacion
JJCC
1.
Introduccion
2. Codigos
lineales y
funciones Sndrome Lder
codificadoras.
3. Codigos nk n
lineales y 0 0 0 0
funciones
sndrome.
nk 1
4. Distancia y 0 01
peso de un
codigo.
nk 2
5. Descodifi- 0 0 10
cacion
Metodo de
por
descodificacion
distancia mnima
Metodo de
por
descodificacion
sndrome
nk
1 1
86
ALGEBRA
Metodo por sndrome. 8
de descodificacion
JJCC
1.
Introduccion
Observaciones: Sea C un (n, k , d)-codigo
lineal.
2. Codigos
lineales y
1 La tabla de sndromes no es unica,
pues depende de la
funciones
codificadoras.
del lder de cada orbita.
eleccion
3. Codigos
lineales y 2 La tabla de sndromes se construye una sola vez y
funciones
sndrome.
tiene pnk registros (la primera columna son todos los
4. Distancia y sndromes, los elementos de Znk
p ).
peso de un
codigo.
3
El registro de la tabla correspondiente a la orbita de la
5. Descodifi- n n
cacion palabra 0 0 Zp es:
Metodo de
por
descodificacion
distancia mnima
Metodo de
por
descodificacion
sndrome
nk
Sndrome 0 0
n
Lder 0 0
87
ALGEBRA
Metodo por sndrome. 9
de descodificacion
JJCC
DE LA TABLA DE SINDROMES
CONSTRUCCION
1.
Introduccion
2. Codigos
Sea C un (n, k , d)-codigo lineal y S : Znp Znk
p una
lineales y
funciones sndrome del codigo
funcion C.
codificadoras.
3. Codigos
lineales y I.) Una forma de construir la tabla de sndromes asociada
funciones
sndrome.
al codigo C es:
4. Distancia y
peso de un a) Elegir una palabra u Znp .
codigo.
5. Descodifi-
b) Calcular el sndrome de u, S(u).
cacion
Metodo de
por
descodificacion
c) Calcular la orbita de u, orb(u) = u + C.
distancia mnima
Metodo de
por
descodificacion
d) Obtener un lder de la orbita, l(u).
sndrome
1. DE LA TABLA DE SINDROMES
CONSTRUCCION
Introduccion
2. Codigos
lineales y
funciones
sndrome es sistematica
II.) Si la funcion
una forma mas
codificadoras. eficaz de construir la tabla de sndromes es:
3. Codigos
lineales y
funciones a) Elegir un sndrome s Znk
p y
sndrome.
k
4. Distancia y b) Construir la palabra u = 0 0 s Znp que verifica
peso de un
codigo. S(u) = s.
5. Descodifi-
cacion
c) Calcular la orbita de u, orb(u) = u + C.
Metodo de
por
descodificacion
distancia mnima
d) Obtener un lder de la orbita, l(u).
Metodo de
por
descodificacion
sndrome
e) Rellenar el registro correspondiente de la tabla de
sndromes.
de la tabla tomando otra
f) Continuar la construccion
palabra de Znk
p { s }.
89
ALGEBRA
Metodo por sndrome. 11
de descodificacion
JJCC
1.
Introduccion
de errores del codigo
Entonces la capacidad de deteccion
2. Codigos
es: d 1 = 3 1 = 2.
lineales y
funciones de errores es:
Y la capacidad de correccion
codificadoras.
3. Codigos d 1 31
lineales y t= = = 1.
funciones 2 2
sndrome.
4. Distancia y
peso de un Como la matriz generadora esta en forma estandar,
codigo.
esta en forma
entonces la matriz de control tambien
5. Descodifi-
cacion
estandar:
Metodo de
por
descodificacion
distancia mnima
1 0 1 0 0 0
Metodo de
por
descodificacion
1 0 0 1 0 0
sndrome H= 0 1 0 0 1 0
0 1 0 0 0 1
El numero
de orbitas, es decir, el numero
de registros de la
tabla de sndromes es: pnk = 24 = 16.
91
ALGEBRA
Metodo por sndrome. 13
de descodificacion
JJCC
1.
Introduccion sndrome es sistematica,
Como la funcion podemos utilizar
2. Codigos
el segundo metodo a partir de cada
de construccion,
lineales y
funciones sndrome s Znk
p se pueden ir construyendo su registro:
codificadoras.
3. Codigos
lineales y s = u = 00 s Znp = orb(u) = u + C = { u + x / x C }.
funciones
sndrome.
2) s2 = 1000 = u2 = 001000 =
92
ALGEBRA
Metodo por sndrome. 14
de descodificacion
JJCC
1.
Introduccion
2. Codigos
lineales y
funciones
codificadoras.
Entonces la tabla de sndromes queda como:
3. Codigos
lineales y
funciones
sndrome.
4. Distancia y
peso de un
codigo. Sndrome 0000 1000
5. Descodifi-
cacion
Metodo de Lder 000000 001000
por
descodificacion
distancia mnima
Metodo de
por
descodificacion
sndrome
93
ALGEBRA
Metodo por sndrome. 15
de descodificacion
JJCC
Con todo lo anterior podemos describir el metodo de
1.
Introduccion
descodificacion por sndromes.
2. Codigos
lineales y Tomaremos como estimacion del vector de error e un lder
funciones
codificadoras.
de la orbita de la palabra recibida y 0 y lo denotaremos e .
3. Codigos
lineales y se supone que el canal es bueno en el sentido
Si, ademas,
funciones
sndrome.
de que la probabilidad de producirse errores es pequena
4. Distancia y e
entonces el vector de error e y su estimacion coinciden
peso de un
codigo. con probabilidad alta.
5. Descodifi-
cacion Como y = y 0 e, para lograr la descodificacion
de y 0
Metodo de
por
descodificacion e
utilizaremos la estimacion que coincide con el lder de la
distancia mnima
Metodo de
por
descodificacion
orbita de y 0 y luego tomaremos
sndrome
y = y 0 e
.
Entonces, la palabra obtenida y es una de las palabras del
codigo C mas proximas
a y 0 (igual que en el metodo
de
la distancia mnima, la diferencia entre ambos metodos
94
radica en su eficiencia).
ALGEBRA
Metodo por sndrome. 16
de descodificacion
JJCC
1.
Metodo por sndromes.
de descodificacion
Introduccion
2. Codigos
Entrada: Un (n, k, d)-codigo lineal C, la tabla de
lineales y
funciones sndromes de C e y 0 la palabra recibida.
codificadoras.
3. Codigos
lineales y de y 0 (posible valor de la
Salida: y C descodificacion
funciones
sndrome. palabra enviada y C).
4. Distancia y
peso de un
codigo.
5. Descodifi-
1 Calcular el sndrome de y 0 , S(y 0 ).
cacion
Metodo de
por
descodificacion
distancia mnima 2 A partir del valor obtenido S(y 0 ) buscar en la tabla de
Metodo de
por
descodificacion
sndrome
sndromes el lider l(y 0 ) de la orbita
de y 0 .
3 el valor l(y 0 ), e
Asignar a e := l(y 0 ).
4 Devolver y := y 0 e
.
95
ALGEBRA
Metodo por sndrome. 17
de descodificacion
JJCC
1.
Introduccion
2. Codigos
lineales y
funciones Teorema:
codificadoras.
d 1
3. Codigos
lineales y
Sea C un (n, k , d)-codigo lineal y t = .
funciones 2
sndrome.
4. Distancia y
peso de un
Si en el canal se han producido s errores, con 0 s t,
codigo.
descrita en el metodo
la descodificacion del sndrome es
5. Descodifi-
cacion correcta, es decir, la palabra y C elegida para
Metodo de
por
descodificacion descodificar y 0 coincide con la palabra enviada y ,
distancia mnima
Metodo de
por
descodificacion
sndrome
y = y 0 l(y 0 ) = y .
96
ALGEBRA
Metodo por sndrome. 18
de descodificacion
JJCC
? Ejemplo: Veamos como
se descodifica por el metodo
1. del sndrome con el ejemplo anterior.
Introduccion
2. Codigos
lineales y
a) Se enva la palabra: y = 101100 y llega: y = 100100.
funciones
codificadoras. 1) Calculamos el sndrome S(y ):
3. Codigos
lineales y
1
funciones 0 1
sndrome.
t 0 0
4. Distancia y H y0 =H 0
1 = 0 = S(y ) = 1000.
peso de un
codigo. 0 0
5. Descodifi-
cacion
0
Metodo de
por
descodificacion
distancia mnima
Metodo de
2) l(y 0 ) = 001000.
por
descodificacion
sndrome
= l(y 0 ) = 001000.
3) e
4) Se descodifica como:
y = y 0 e
= 100100 + 001000 = 101100 = y.
1.
b) Se enva la palabra: y = 111111 y llega: y = 011011.
Introduccion
1) Calculamos el sndrome S(y ):
2. Codigos
lineales y
funciones 0
codificadoras. 1
1
3. Codigos
t 1 0
lineales y H y0 =H 0
0 = 0 = S(y ) = 1000.
funciones
sndrome.
1 0
4. Distancia y
peso de un 1
codigo.
y = y 0 e
= 011011 + 001000 = 010011.
es erronea,
La descodificacion y = 010011 6= 111111 = y,
porque el numero
de bits cambiados, 2, excede la
de errores del codigo,
capacidad de correccion t = 1. 98