Vous êtes sur la page 1sur 490

Teora de la Informacin y

Codificacin

Cndido Lpez Manuel Veiga

Universidad de Vigo
Teora de la Informacin y
Codificacin

Cndido Lpez Garca


Manuel Fernndez Veiga

UNIVERSIDAD DE VIGO
c 2002, los autores

Ninguna parte de esta publicacin puede ser reproducida, almacenada, registrada o
transmitida cualquiera que sea la forma o el medio, impreso, mecnico, electrnico,
fotoqumico, fotogrfico o de otra naturaleza, sin el permiso expreso por escrito
del editor.
A Jacobo Lpez
ndice general

1. Introduccin 1
1.1. Un modelo de sistema de comunicacin . . . . . . . . . . . . 2
1.2. Los modelos matemticos de las fuentes discretas y los canales discretos 8
1.3. La codificacin de fuente . . . . . . . . . . . . . . . . . . . . 11
1.4. La codificacin de canal . . . . . . . . . . . . . . . . . . . . 17
1.5. Estructura del libro . . . . . . . . . . . . . . . . . . . . . . . 23

I Teora de la Informacin

2. La entropa 29
2.1. Definicin de entropa . . . . . . . . . . . . . . . . . . . . . 29
2.2. Funciones convexas . . . . . . . . . . . . . . . . . . . . . . . 33
2.3. Propiedades de la entropa . . . . . . . . . . . . . . . . . . . 40
2.4. Entropa conjunta . . . . . . . . . . . . . . . . . . . . . . . . 47

3. Codificacin de fuente 51
3.1. Cdigos de bloques . . . . . . . . . . . . . . . . . . . . . . . 52
3.2. Sntesis de cdigos instantneos . . . . . . . . . . . . . . . . 58
3.3. Cdigos ptimos . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.4. Algoritmo de Huffman . . . . . . . . . . . . . . . . . . . . . 67
3.5. Tasa de entropa de un proceso estocstico . . . . . . . . . 73
3.6. Tasa de entropa de una cadena de Markov . . . . . . . . . 75

v
vi ndice general

3.A. La propiedad de equiparticin asinttica . . . . . . . . . . . 83


3.B. Tcnicas de compresin . . . . . . . . . . . . . . . . . . . . . 87

4. Informacin mutua y capacidad de canal 91


4.1. Entropa condicional . . . . . . . . . . . . . . . . . . . . . . 92
4.2. Informacin mutua . . . . . . . . . . . . . . . . . . . . . . . 97
4.3. Informacin mutua condicional . . . . . . . . . . . . . . . . 101
4.4. El teorema de procesamiento de la informacin . . . . . . . 102
4.5. Informacin mutua entre vectores aleatorios . . . . . . . . . 102
4.6. Capacidad de canal: concepto y propiedades . . . . . . . . . 106
4.7. Clculo de la capacidad . . . . . . . . . . . . . . . . . . . . 107

5. El teorema de codificacin de canales ruidosos 115


5.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
5.2. El teorema de Shannon de codificacin de canales ruidosos . 115
5.3. Interpretacin del teorema . . . . . . . . . . . . . . . . . . . 129
5.A. Decodificacin ptima . . . . . . . . . . . . . . . . . . . . . 133

II Conceptos bsicos de control de errores

6. Cdigos lineales 139


6.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
6.2. Cdigos lineales . . . . . . . . . . . . . . . . . . . . . . . . . 143
6.3. Matriz generadora . . . . . . . . . . . . . . . . . . . . . . . . 145
6.4. Matriz de comprobacin de paridad . . . . . . . . . . . . . . 148
6.5. Decodificacin por sndrome . . . . . . . . . . . . . . . . . . 152
6.6. Matriz tpica . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
6.7. Deteccin y correccin de errores . . . . . . . . . . . . . . . 160
6.8. Probabilidad de error . . . . . . . . . . . . . . . . . . . . . . 166
6.9. Cdigos Hamming . . . . . . . . . . . . . . . . . . . . . . . 170
6.10. Identidad de MacWilliams . . . . . . . . . . . . . . . . . . 172
6.A. Cotas de distancia . . . . . . . . . . . . . . . . . . . . . . . 181
ndice general vii

7. Cdigos cclicos 197


7.1. Definicin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
7.2. Descripcin matricial . . . . . . . . . . . . . . . . . . . . . . 203
7.3. Cdigos cclicos sistemticos . . . . . . . . . . . . . . . . . . 206
7.4. Circuitos codificadores . . . . . . . . . . . . . . . . . . . . . 208
7.5. Deteccin de errores . . . . . . . . . . . . . . . . . . . . . . 216
7.6. Decodificacin de cdigos cclicos . . . . . . . . . . . . . . . 221
7.7. Estructura cclica de los cdigos Hamming . . . . . . . . . 229
7.8. Cdigos cclicos acortados . . . . . . . . . . . . . . . . . . . 234
7.9. Cdigos cclicos irreducibles . . . . . . . . . . . . . . . . . . 235
7.A. Cdigos cclicos, anillos e ideales . . . . . . . . . . . . . . . 237

8. Protocolos de retransmisin 243


8.1. Estrategias ARQ . . . . . . . . . . . . . . . . . . . . . . . . 244
8.2. Anlisis de la cadencia eficaz . . . . . . . . . . . . . . . . . . 258
8.A. Sobre la cadencia eficaz . . . . . . . . . . . . . . . . . . . . . 267

III Cdigos BCH, cdigos ReedSolomon y cdigos convolucionales

9. Cuerpos finitos 271


9.1. Definicin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
9.2. Construccin de cuerpos finitos . . . . . . . . . . . . . . . . 274
9.3. Estructura . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
9.4. Polinomios mnimos . . . . . . . . . . . . . . . . . . . . . . . 286
9.5. Factorizacin de xn 1 . . . . . . . . . . . . . . . . . . . . . 290
9.6. Periodo de un polinomio . . . . . . . . . . . . . . . . . . . . 297

10. Cdigos BCH 303


10.1. Construccin y propiedades . . . . . . . . . . . . . . . . . . 304
10.2. Cdigos BCH binarios . . . . . . . . . . . . . . . . . . . . . 313
10.3. Dimensin y distancia . . . . . . . . . . . . . . . . . . . . . 316
10.4. Mtodos de decodificacin algebraica . . . . . . . . . . . . . 320
viii ndice general

11. Cdigos ReedSolomon 337


11.1. Definicin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
11.2. Cdigos RS modificados . . . . . . . . . . . . . . . . . . . . 346
11.3. Decodificacin de cdigos RS . . . . . . . . . . . . . . . . . 351
11.4. Decodificacin por localizacin . . . . . . . . . . . . . . . . . 351
11.5. Decodificacin por lista . . . . . . . . . . . . . . . . . . . . . 367
11.6. Decodificacin con smbolos borrados . . . . . . . . . . . . . 373
11.7. Cdigos RS generalizados . . . . . . . . . . . . . . . . . . . 380
11.A. Los cdigos cclicos y la transformada de Fourier . . . . . . 387
11.B. El algoritmo de BerlekampMassey . . . . . . . . . . . . . . 389

12. Cdigos convolucionales 399


12.1. Definicin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
12.2. Representacin reticular . . . . . . . . . . . . . . . . . . . . 411
12.3. Terminacin de un cdigo convolucional . . . . . . . . . . . 420
12.4. Decodificacin . . . . . . . . . . . . . . . . . . . . . . . . . . 422
12.5. Enumeracin de caminos . . . . . . . . . . . . . . . . . . . . 434
12.6. Distancia mnima y codificadores catastrficos . . . . . . . . 437
12.7. Probabilidad de error . . . . . . . . . . . . . . . . . . . . . . 444
12.8. Puncin de cdigos convolucionales . . . . . . . . . . . . . . 449

Bibliografa 455

ndice alfabtico 461


Prefacio

Acaso por ser la capacidad de comunicacin la facultad ms propiamen-


te humana, ha existido desde la antigedad un fuerte inters en desvelar
la naturaleza de los procesos de transmisin de la informacin, a menudo
siguiendo ms una aproximacin filosfica que cientfica. Sin embargo, no
es hasta mediados del siglo xx cuando el progreso tcnico en los medios
y sistemas de telecomunicacin modernos demanda la formulacin firme y
precisa del concepto de informacin y, en general, la concepcin de una
teora objetiva de la comunicacin. Este libro versa precisamente sobre los
fundamentos matemticos de los procesos de transmisin digital de la infor-
macin. En l pretendemos exponer los contenidos fundamentales de dos
cuerpos tericos complementarios (la Teora de la Informacin y la Teo-
ra de la Codificacin), cuyo origen se sita en un monumental artculo de
C. E. Shannon (19162001) publicado en 1948 con el ttulo A Mathematical
Theory of Communication. En este artculo, Shannon establece los princi-
pales conceptos y resultados de la Teora de la Informacin, y sienta las
bases para el posterior desarrollo de la Teora de la Codificacin. Ambas
teoras contienen los conceptos, modelos y resultados que han hecho posible
la presente era de la comunicacin digital.
La obra se ha organizado en tres partes:

En la primera se desarrollan los principios de la Teora de la Informa-


cin. La finalidad es plantear una medida objetiva de la informacin y
estudiar sus propiedades matemticas para analizar los lmites tericos
de cualquier proceso de transmisin fiel de la informacin sobre cana-
les discretos, tanto ideales como ruidosos. En esta parte se esbozarn
adems las principales tcnicas de compresin de datos.

La segunda parte presenta, en un primer bloque, las principales tcni-


cas algebraicas de codificacin de canal para la deteccin y correccin
de errores de transmisin (cdigos lineales y cdigos cclicos). En el
planteamiento se persigue un equilibrio entre la exposicin de los prin-

ix
x Prefacio

cipios tericos y la indispensable aplicacin prctica de tales tcnicas


a la construccin de dispositivos reales eficaces de codificacin y de-
codificacin.
En un segundo bloque se discuten las caractersticas bsicas de los pro-
tocolos de retransmisin, tanto desde la perspectiva de la correccin
lgica como de la obtencin cuantitativa de su rendimiento.

La tercera parte est dedicada a tcnicas de codificacin avanzadas, de


gran inters prctico por su aplicacin en numerosos sistemas reales.
Su objetivo es introducir las propiedades fundamentales de los cdigos
BCH, los cdigos ReedSolomon y los cdigos convolucionales, con un
inters especial en explicar mtodos de decodificacin eficiente.

Se ha adoptado en la elaboracin del texto un enfoque acadmico, que


se concreta en el desarrollo sistemtico y completo de la materia, la demos-
tracin rigurosa de los resultados, el nfasis en los conceptos bsicos y las
relaciones entre ellos, las referencias a obras de consulta ms especializadas,
y la utilizacin de abundantes ejemplos ilustrativos, tablas y diagramas a lo
largo de cada captulo. Esta obra se complementa adems con un libro de
problemas para verificar la comprensin de la teora.
El libro se ha pensado, fundamentalmente, como libro de texto para cur-
sos bsicos de Transmisin de Datos en los estudios de Ingeniera de Teleco-
municacin e Ingeniera Informtica. As, las dos primeras partes contienen
el material bsico necesario para la comprensin cabal del problema de la
comunicacin digital fiable y eficiente. Por este motivo, excepcin hecha
de algunas secciones o apndices que incluyen material suplementario, se
ha empleado en las dos primeras partes un lenguaje matemtico simple y
directo.
Pero, adems, pensando tambin en quienes necesiten profundizar ms
en el conocimiento de la materia (profesionales, estudiantes de cursos espe-
cializados o, incluso, estudiantes de doctorado), se han incluido en el texto
algunas secciones y captulos avanzados, que en cursos elementales habr
que soslayar. Los captulos ms avanzados se han relegado a la parte terce-
ra; las secciones de los restantes captulos que, por su dificultad, no forman
parte esencial de una primera lectura se han identificado con asterisco o se
han incluido como apndices.
De esta manera, el libro ofrece dos niveles de lectura: uno introductorio
y otro ms avanzado. Segn creemos, esto le confiere un valor pedaggico
aadido como obra de consulta o referencia puntual, y le aporta suficiente
flexibilidad para adaptarse a diferentes programas.
Este libro es fruto de la experiencia docente acumulada durante ms de
una dcada de imparticin de la asignatura de Fundamentos de Telemtica
Prefacio xi

en la E.T.S.I. de Telecomunicacin de la Universidad de Vigo. Y, al final del


camino, justo es proclamar que el libro no habra sido escrito sin la contri-
bucin de muchas personas que inspiraron nuestro trabajo. En varios de los
captulos el lector avezado reconocer un tributo especial a los admirables
textos, ya clsicos, de R. Gallager y de F. J. MacWilliams y N. J. A. Sloane,
que han tenido una influencia decisiva en nuestra comprensin bsica de la
disciplina. En nuestro entorno ms cercano, agradecemos la inestimable y
desinteresada colaboracin de Ral F. Rodrguez Rubio y Alberto Gil Solla,
compaeros de labores docentes durante algunos aos, quienes aplicaron sus
conocimientos y una buena parte de su tiempo a revisar los borradores de
la obra. Al resto de compaeros del Grupo de Redes e Ingeniera del Soft-
ware Ana F. Vilas, Andrs Surez, Beln Barragns, Estela Sousa, Jorge
Garca, Jos C. L. Ardao, Jos J. Pazos, Manolo Ramos y Rebeca Daz
les damos las gracias por tejer un mbito de trabajo tan grato y estimulante
para todos.

Cndido Lpez Garca


Manuel Fernndez Veiga
Vigo, junio de 2002
CAPTULO 1

Introduccin

Es el propsito de este libro abordar el anlisis matemtico de algunas


cuestiones fundamentales de la ingeniera de los sistemas de comunicacin,
entendindose aqu por comunicacin toda transmisin de seales mediante
un cdigo comn al emisor y al receptor.1 As, si se deja de lado el proceso de
configuracin de los estados de emisor y receptor que las seales representan
(cuestin sta que, en el caso de la comunicacin humana, es ms propia del
campo de la Psicologa), admitindose como punto de partida que emisor y
receptor comparten un mismo espacio de estados que se conoce de antemano,
la cuestin fundamental de la comunicacin es la eleccin del cdigo, es decir,
la eleccin de las seales adecuadas para la representacin de los distintos
estados de emisor y receptor.
El medio fsico que se utiliza para la transmisin de las seales entre
emisor y receptor se denomina canal de comunicacin o simplemente canal.
Como es lgico, la eleccin del cdigo idneo estar determinada por la na-
turaleza del canal. En consecuencia, resulta tambin fundamental disponer
de canales adecuados.
Precisamente, en su afn por ampliar su capacidad de comunicacin, el
hombre ha ideado diversos procedimientos para la transmisin de seales
a grandes distancias de forma prcticamente instantnea. Para designar
tales procedimientos, que hoy da constituyen una rama fundamental de
la Tcnica, se ha acuado el trmino telecomunicacin.2 El objetivo de la
1 Tercera acepcin del Diccionario de la Lengua Espaola de la Real Academia Espa-

ola.
2 La U.I.T. (Unin Internacional de Telecomunicacin) ha definido la telecomunicacin

como toda emisin, transmisin y recepcin de signos, seales, escritos e imgenes, so-
nidos e informaciones de cualquier naturaleza, por hilo, radioelectricidad, medios pticos
u otros sistemas electromagnticos.

1
2 Introduccin

Ingeniera de Telecomunicacin es, en definitiva, la creacin de nuevos y


mejores canales de comunicacin y el uso eficiente de los mismos.
En funcin del tipo de seal que pueden transmitir (analgica o digital),
se distinguen dos tipos de canales, que se denominan, respectivamente, ca-
nales analgicos y canales digitales. En la prctica, es fcil encontrar casos
de canales tanto de un tipo como de otro. Sin embargo, la posibilidad de
digitalizar3 cualquier seal analgica, dadas las ventajas que comporta la
utilizacin de seales digitales,4 ha desembocado en que los sistemas de te-
lecomunicacin actuales sean predominantemente digitales y estn basados
tanto en el empleo de redes de ordenadores como en la digitalizacin de la
informacin. As, en este libro se considerar nicamente el caso de la utili-
zacin de canales digitales, y ms concretamente de canales punto a punto,5
y la cuestin de inters ser la ptima utilizacin de los mismos.

1.1. Un modelo de sistema de comunicacin

En definitiva, el objetivo de este libro es abordar un anlisis matemtico


general de los sistemas de transmisin de seales o mensajes digitales en los
que se utilizan canales punto a punto. Empecemos, pues, por formular una
abstraccin conveniente de los dos elementos bsicos de tales sistemas: el
mensaje digital y el canal punto a punto.

Mensaje digital: Se denominar mensaje digital a cualquier secuencia de


elementos de un cierto alfabeto, entendindose a su vez por alfabeto
3 Se entiende por digitalizacin la conversin de una seal analgica en digital. El

proceso de digitalizacin tiene dos fases diferenciadas: la fase de muestreo (el teorema de
muestreo de Nyquist establece que se puede recuperar cualquier seal analgica a partir
de una secuencia de valores puntuales de la misma convenientemente equiespaciados) y
la fase de cuantificacin (cada uno de los valores de la secuencia anterior se representa,
con tanta fidelidad como se requiera, mediante una cierta secuencia de bits).
4 Actualmente, el empleo de seales digitales para la comunicacin goza de varias im-

portantes ventajas: primero, los ordenadores pueden manipular fcilmente cualquier tipo
de informacin digital; adems, cualquier informacin digital se puede copiar o transmitir
tantas veces como se quiera sin sufrir ningn tipo de alteracin; por ltimo, se pueden
emplear los mismos procedimientos, es decir, una red nica, para el envo de cualquier
tipo de informacin digital.
5 Se denominan canales punto a punto los canales con un nico emisor y un nico

receptor. Si bien estos canales son los que se utilizan en mayor medida para la construccin
de redes de comunicaciones, algunos sistemas de comunicacin se basan en otro tipo de
canales, con mltiples emisores y/o receptores, que se denominan tpicamente canales
multipunto o canales de acceso mltiple. La utilizacin de canales de acceso mltiple
no es ms que un caso particular de una disciplina ms general que se ocupa de la
construccin de redes de comunicaciones. Desde el punto de vista de la Teora de la
Informacin, el problema general de las comunicaciones en red, del que se ocupa la Teora
de la Informacin de Red, no est todava bien resuelto. En todo caso, tal problema cae
fuera del mbito de este libro.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 3

cualquier conjunto numerable y finito de smbolos. El nmero de ele-


mentos que forman la secuencia se denominar longitud del mensaje.
Se considerar nicamente el caso de que las caractersticas individua-
les de los smbolos sean intrascendentes para la transmisin, siendo as
lo nico importante de los alfabetos su tamao. En el caso particu-
lar (muy habitual, por otra parte) de que el alfabeto tenga slo dos
elementos, se denomina alfabeto binario. Los smbolos de un alfabeto
binario se representan tpicamente por los dgitos 0 y 1, que reciben
el nombre de bits.6
Los mensajes digitales se suponen generados por un dispositivo que
denominaremos fuente discreta. As pues, se supondr la existencia de
una fuente discreta capaz de generar de forma ininterrumpida smbolos
de un cierto alfabeto, caracterstico de la fuente, que se denomina ha-
bitualmente alfabeto de la fuente. Naturalmente, las fuentes discretas
de inters generan los mensajes de forma aleatoria, ya que de lo con-
trario sera innecesaria su transmisin.

Canal punto a punto: Se denominar canal punto a punto cualquier me-


dio fsico apto para la transmisin de mensajes de un punto (fuente)
a otro (destino).
Si por el canal slo pueden transmitirse mensajes digitales, se dice que
se trata de un canal digital, tambin conocido como canal discreto, que
ser la denominacin que se emplear preferentemente en el resto del
libro.
El canal punto a punto discreto estar caracterizado por un cierto
alfabeto (el conjunto de los smbolos que puede transmitir), as como
por un cierto rgimen uniforme de transmisin (la inversa del tiempo
necesario para la transmisin de cada smbolo) y por un cierto retardo
de propagacin7 (el tiempo necesario para que un smbolo atraviese el
canal). Idealmente, el mensaje que sale del canal debera ser siempre
idntico al que ha entrado;8 si as fuese, se dira que el canal empleado
es un canal ideal. Desafortunadamente, no ocurre siempre as; sino
que, a veces y de forma aleatoria, el mensaje que sale del canal es
distinto del que ha entrado. A la causa de tal efecto se la denomina
genricamente ruido; y el canal que se ve afectado por algn tipo de
ruido se denomina canal ruidoso. Aun ms, por razones de generalidad
del anlisis, vamos a suponer que no slo el mensaje que sale del canal
puede ser distinto del que ha entrado, sino que tambin puede contener
6 El termino bit procede de la contraccin de las palabras inglesas binary digit (dgito

binario), y se usa para denominar a cualquiera de los smbolos de un alfabeto binario.


7 Este retardo no tiene ninguna relevancia para la mayor parte de las cuestiones con-

sideradas en este libro, por lo que en tales casos se ignorar su existencia.


8 O el mensaje entrante debera poder deducirse unvocamente del mensaje saliente.
4 Introduccin

smbolos de un alfabeto distinto al utilizado para conformar el mensaje


que se transmite.9 Por tanto, y adems del rgimen de transmisin y
el retardo, un canal discreto estar caracterizado por:

un alfabeto de entrada, con un nmero de elementos igual al de


smbolos distintos que puedan formar parte de los mensajes que
se introducen en el canal;
un alfabeto de salida (no necesariamente igual al alfabeto de en-
trada), con un nmero de elementos igual al de smbolos distintos
que se puedan identificar en los mensajes que salen del canal;
y una representacin estocstica del ruido que afecta a la transmi-
sin de los mensajes.

1.1.1. Requisitos del sistema

Para que resulte satisfactorio, un sistema de transmisin de mensajes


digitales debe cumplir determinados requisitos, fundamentalmente de fiabi-
lidad y coste.10 Tales requisitos dependen, en general, de la naturaleza de
los mensajes que se van a transmitir. En algunos casos se pueden producir
distorsiones en los mensajes transmitidos que son, no obstante, impercepti-
bles para el destinatario de los mismos, o cuando menos tolerables. En tales
casos, puede aprovecharse la tolerancia al error del destinatario para la con-
secucin de menores costes de transmisin de los mensajes. Aun as, en este
texto se considerarn nicamente aquellos sistemas de transmisin de men-
sajes digitales cuyo objetivo es la reproduccin fiel en el punto de destino
del mensaje generado por la fuente. Es decir, en este texto nos interesare-
mos por determinar en qu condiciones y cmo es posible la consecucin
de una transmisin fiable. Y adems, aun sin establecer una restriccin de
coste a priori, nos interesa determinar la manera ms econmica de hacerlo.
Establezcamos, pues, tanto un criterio de fidelidad en la copia de mensajes
como una medida del coste de uso de un canal dado.

Criterio de fidelidad: Se dir que es posible la reproduccin fiel de los


mensajes cuando la probabilidad de que la copia del mensaje que se
obtiene en el punto de destino sea distinta del mensaje originalmente
9 Aunque puede parecer sorprendente a primera vista, existen situaciones prcticas en

las que conviene considerar en la salida smbolos adicionales a los de entrada (vase 11.6).
10 A veces, es tambin importante garantizar el secreto o la autenticidad de un mensaje,

y se han desarrollado una serie de tcnicas matemticas para abordar la solucin de estos
problemas. No obstante, tanto porque tales problemas son de diferente ndole de los que
aqu se van a considerar, como por la amplitud de los mismos, se han excluido del presente
texto.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 5

   
 $
 %&
$&
  ( $ ' ($
 %)&
$&   

  

!#"
$

Figura 1.1.

enviado por la fuente pueda hacerse tan pequea como se quiera. Ob-
srvese que, en rigor, no se exige que la copia del mensaje sea idntica
al original siempre; si bien, a efectos prcticos, puede suponerse as.

Coste de transmisin: Se supondr que el coste de la transmisin de un


mensaje es la suma de los costes de las transmisiones sucesivas de los
smbolos que lo componen; y se supondr que el coste de transmisin
de todos los smbolos es siempre el mismo, para un canal dado. Enton-
ces, el coste de transmisin de los mensajes es proporcional al nmero
de smbolos que lo componen, es decir, a su longitud.

1.1.2. Codificacin de los mensajes

Como un mensaje digital no es sino la representacin simblica de un


cierto estado de una fuente, y como en nuestro estudio se supondr que tanto
la fuente como el canal estn dados de forma independiente, debe admitirse
que la representacin de los estados de la fuente es independiente de la na-
turaleza del canal. Puede ocurrir, por tanto, que tales representaciones no
sean las ms convenientes para el propsito que se persigue (transmisin fiel
y eficiente de los mensajes de la fuente). En tales casos, cabe considerar la
posibilidad de encontrar una forma alternativa para su representacin (co-
dificacin) que sirva mejor a nuestros propsitos. El proceso de codificacin
de los mensajes de una fuente consistir en la aplicacin de alguna regla de
transformacin para la reescritura de los mensajes de la fuente utilizando
como alfabeto de codificacin el alfabeto de entrada del canal. Tal regla
deber ser, obviamente, invertible; es decir, en el destino ha de ser siempre
posible recuperar la forma original del mensaje (decodificacin).
En definitiva, el sistema de transmisin de mensajes que vamos a consi-
derar puede esquematizarse de la siguiente manera (figura 1.1):

La fuente discreta genera, aleatoriamente, mensajes digitales ar-


bitrariamente largos, es decir, secuencias arbitrariamente largas de
smbolos de un cierto alfabeto (alfabeto de la fuente).
6 Introduccin

El codificador transforma los mensajes generados por la fuente; es


decir, convierte una secuencia de smbolos dada en otra distinta (en
general, con smbolos de un alfabeto tambin distinto del alfabeto de
la fuente, que se denomina alfabeto de codificacin, y que habr de
ser necesariamente igual que el alfabeto de entrada del canal). Esta
transformacin, cuyo objetivo es la transmisin fiel y eficiente de los
mensajes de la fuente dada, utilizando el canal dado, deber hacerse
teniendo en cuenta tanto las caractersticas estadsticas de los men-
sajes de la fuente (es decir, de la fuente) como las del ruido que se
produce en el canal.
El canal discreto ruidoso realiza, aleatoriamente, una transforma-
cin indeseable sobre los mensajes que lo atraviesan, de forma que el
mensaje que recibe el decodificador no es, en general, el mismo que
ha generado el codificador.
El decodificador tiene que adivinar qu mensaje de la fuente corres-
ponde al mensaje recibido, conocidas las reglas de transformacin que
aplica el codificador.
Finalmente, el destino simplemente recoge el mensaje que le entrega
el decodificador.

La posibilidad de construir un codificador y el correspondiente decodi-


ficador con unas determinadas prestaciones, dados un canal y una fuente,
as como las cuestiones de diseo de los mismos, sern precisamente el obje-
to de nuestro inters. Ahora bien, en la prctica, resulta conveniente aislar
el efecto que tiene la fuente en el sistema del efecto que tiene el canal,
descomponiendo el codificador (y, correspondientemente, tambin el deco-
dificador) de la figura 1.1 en dos partes:

un codificador de fuente, cuya construccin ha de adaptarse a


las caractersticas de la fuente de forma que consiga representar los
mensajes de la fuente con el menor nmero posible de smbolos de un
cierto alfabeto de codificacin (tpicamente los smbolos que se pueden
transmitir por el canal dado); y
un codificador de canal, cuya construccin ha de adaptarse a las
caractersticas del canal de forma que permita la consecucin de una
transmisin fiable sobre un canal ruidoso con un coste mnimo.

La descomposicin del proceso de codificacin en dos subprocesos inde-


pendientes, codificacin de fuente y codificacin de canal (figura 1.2), tal
y como se acaba de exponer, facilita el anlisis del sistema, por una parte;
y, por otra parte, proporciona una gran flexibilidad en la implementacin,
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 7

 '()*+,
 

    ! -   .  !


 $#&% 
  $#&% 


    !    -   .  !


 "    
  "  

Figura 1.2.

porque hace virtualmente independientes los diseos del codificador de canal


y del codificador de fuente. Ahora bien, decidir si esta forma de proceder
impone alguna limitacin a las prestaciones del sistema de transmisin de
informacin no es una cuestin trivial. Sin embargo, uno de los resultados
importantes de la teora que se va a exponer es que tal divisin puede hacerse
sin menoscabo de las prestaciones del sistema.

El problema de la comunicacin, tal y como est planteado, fue formu-


lado y resuelto originalmente por el matemtico e ingeniero estadounidense
C. E. Shannon (19162001)11 en un artculo celebrrimo publicado en la
revista Bell Systems Technical Journal en 1948.12 En dicho artculo, Shan-
non formula los conceptos de entropa de la fuente y capacidad de canal;
conceptos que cobran significado fsico en dos teoremas fundamentales, hoy
conocidos, respectivamente, como primer y segundo teoremas de Shannon o
como teoremas de Shannon de codificacin de fuente y de canal. El primero
establece la longitud mnima de codificacin sin prdidas de los mensajes
de una fuente dada; y el segundo, la redundancia mnima necesaria para
la comunicacin fiable de los mensajes. Este trabajo ha sido el germen de
un nuevo campo de las Matemticas que hoy se conoce como Teora de la
Informacin.13

11 Recientemente, R. G. Gallager, profesor del MIT y antiguo colaborador de Shannon,

ha publicado un artculo [27] en el que glosa la trascendencia de su obra. Unos aos antes,
en 1993, se publicaba una recopilacin de sus escritos [65].
12 El artculo apareci publicado en dos partes: la primera [59] en julio y la segunda [60]

en octubre.
13 Si bien Shannon cre la Teora de la Informacin para resolver una serie de cuestio-

nes fundamentales de la ingeniera de los sistemas de comunicacin, que son asimismo


las que a nosotros nos ocupan en este libro, con el paso del tiempo esta teora se ha enri-
quecido considerablemente, encontrando tambin aplicaciones en campos diversos como
la Estadstica o la Economa.
8 Introduccin

1.2. Los modelos matemticos de las fuentes discretas y


los canales discretos

Se exponen en este apartado los modelos matemticos que se utilizarn


en nuestro estudio para la representacin de las fuentes discretas y los ca-
nales discretos. Mas debe advertirse que no es cuestin que vaya a tratarse
en este libro el problema general del modelado de las fuentes y de los canales
reales (es decir, el problema de cmo decidir cul es el modelo que mejor
caracteriza una fuente real o un canal real, lo que, adems, es fuertemente
dependiente del problema que se considere); sino que se supondr que los
modelos matemticos de los mismos estn dados. De hecho, cuando en este
libro se habla de una fuente dada o de un canal dado, se habla en realidad
de un modelo dado de fuente o de un modelo dado de canal. Aun ms,
inicialmente consideraremos nicamente los modelos ms sencillos, tanto
de fuente como de canal, con el fin de reducir al mximo la complejidad
matemtica de nuestro anlisis.

1.2.1. Los modelos de las fuentes discretas

Definicin 1.1 (Fuente discreta). Una fuente discreta es un dispositivo


que emite con regularidad y de forma aleatoria smbolos pertenecientes a un
cierto conjunto discreto y finito llamado alfabeto de la fuente.

Una fuente discreta podr representarse matemticamente, por tanto,


mediante un proceso estocstico de tiempo discreto, es decir, mediante una
secuencia de variables aleatorias {Xi }i=1,2,..., donde Xi es la variable alea-
toria discreta que representa el i-simo smbolo del mensaje de la fuente.
En la prctica, no resulta habitualmente sencillo desarrollar un modelo
totalmente preciso de una fuente, ni tampoco desarrollar esquemas de codi-
ficacin convenientes que aprovechen todas las caractersticas de una fuente
real. Tpicamente, los esquemas de codificacin ms empleados soslayan la
relacin entre los sucesivos smbolos de los mensajes (memoria), limitn-
dose a capturar la frecuencia de aparicin de los distintos smbolos para
conseguir una mayor eficiencia de codificacin a travs de la asignacin de
representaciones ms cortas a los smbolos ms frecuentes.14
Por tal motivo, en una primera etapa, nosotros vamos a interesarnos
nicamente por un tipo particular de fuentes discretas, las ms simples, que
son las denominadas fuentes discretas sin memoria.

Definicin 1.2 (Fuente discreta sin memoria). Una fuente discreta


sin memoria es una fuente discreta en la que la emisin de cada smbolo es
14 Tal es el caso, por ejemplo, del conocido sistema telegrfico de Morse.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 9

independiente de los smbolos que se hayan emitido con anterioridad.

En este caso, las variables aleatorias Xi de la secuencia son independien-


tes y tienen idntica distribucin, por lo que una fuente discreta sin memoria
queda perfectamente representada mediante una variable aleatoria discreta
que representa la emisin de un smbolo de la fuente en cualquier instante
de tiempo.
Esta restriccin, sin embargo, no es tan severa como pudiera parecer,
porque se puede obtener de esta forma una aproximacin tan buena como
se quiera a una fuente con memoria por el simple artificio de considerar que
la fuente no produce smbolos elementales, sino pares, ternas, etc., con las
probabilidades adecuadas.15 No obstante lo anterior, existen modelos mate-
mticos ms adecuados para la caracterizacin de las fuentes con memoria,
como las cadenas de Markov, que finalmente tambin sern considerados.

Ejemplo 1.1 (Fuente binaria simtrica). Se denomina fuente binaria


simtrica a una fuente de alfabeto binario que, en todo instante, genera
ambos smbolos equiprobablemente. As, una fuente binaria simtrica se
representara por una variable aleatoria X de rango X = {0, 1} y funcin
de probabilidad p(x):

p(x) = P(X = x) = 1/2 x X .

1.2.2. Los modelos de los canales discretos

Definicin 1.3 (Canal discreto). Se denomina canal discreto al canal


por el que slo se pueden enviar secuencias de smbolos de un cierto alfabeto.
Nosotros supondremos, adems, que tales smbolos se envan con un rgimen
uniforme, que es caracterstico del canal.

Si el smbolo recibido es siempre igual al enviado, o el smbolo enviado se


deduce unvocamente del smbolo recibido, se tiene un canal ideal; en caso
contrario, se dice que el canal es ruidoso.
En general, el comportamiento del canal en un cierto instante puede
depender de la historia pasada; por lo que deber considerarse el canal, en
general, como un autmata (que se supone finito). As, un canal discreto
ruidoso podr representarse por medio de una serie de distribuciones de
probabilidad {P,i (, j)}, una para cada posible estado del canal, donde
P,i (, j) representa la probabilidad de que, estando el canal en el estado
15 Elmismo Shannon [59] pone como ejemplo una imitacin del idioma ingls a travs
de una fuente que produce aleatoriamente pares, ternas, etc., de letras.
10 Introduccin

, al transmitir el smbolo i, se reciba el smbolo j y el canal pase al estado


.
Pero, en primera aproximacin, y para simplificar el estudio, se conside-
rar que el comportamiento del canal es el mismo en todo instante.16 Un
canal con tal caracterstica se denomina canal discreto sin memoria.

Definicin 1.4 (Canal discreto ruidoso sin memoria). Un canal dis-


creto ruidoso sin memoria es un canal discreto ruidoso en el que el ruido
afecta de forma independiente a la transmisin de todos los smbolos, de
manera que se verifica
n
 Y
P (y 1 , y 2 , . . . , y n ) | (x1 , x2 , . . . , xn ) = P(y i | xi )
i=1

siendo (y 1 , y 2 , . . . , y n ) la secuencia de salida del canal correspondiente a la


secuencia de entrada (x1 , x2 , . . . , xn ), para cualquier valor de n.

En este caso el canal tendr un nico estado, por lo que quedar per-
fectamente representado mediante la especificacin, para cada uno de los
smbolos del alfabeto de entrada X = {x1 , x2 , . . . , xi , . . . , xr }, de las proba-
bilidades de que su transmisin d lugar a los distintos smbolos del alfabeto
de salida Y = {y1 , y2 , . . . , yj , . . . , ys }. Tal especificacin suele adoptar la for-
ma de una matriz de probabilidades como la siguiente:

p(y1 | x1 ) p(yj | x1 ) p(ys | x1 )
.. .. ..
. . .

Qrs = p(y
1 i | x ) p(y j | x i ) p(y s | x )
i

.. .. ..
. . .
p(y1 | xr ) p(yj | xr ) p(ys | xr )

donde las probabilidades p(yj | xi ), que representan la probabilidad de obte-


ner el smbolo yj a la salida del canal cuando se ha transmitido el smbolo
xi , se denominan probabilidades de transicin del canal. Obsrvese que en
tales matrices los elementos de cada fila suman siempre uno (matrices esto-
csticas).

Ejemplo 1.2 (Canal binario simtrico). En un canal binario simtrico,


tanto el alfabeto de entrada como el de salida son binarios, y la probabilidad
de error en la transmisin de cada smbolo es siempre la misma, tanto si
16 Si bien en la prctica no es fcil encontrar canales sin memoria, puede conseguirse

que, a los efectos de la transmisin de un mensaje, cualquier canal se comporte como un


canal sin memoria con el simple artificio de entremezclar aleatoriamente los smbolos del
mensaje antes de su transmisin.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 11

se trata de un cero como si se trata de un uno. Esto es, su matriz de


probabilidades de transicin es de la forma
 
1p p
Q22 = .
p 1p

1.3. La codificacin de fuente

El problema de la codificacin de fuente es el de decidir la forma ms


conveniente de representar los mensajes de la fuente utilizando los smbolos
que pueden transmitirse a travs del canal (es decir, los smbolos de un
cierto alfabeto de codificacin) cuando se ignoran los problemas derivados
de los errores en la transmisin.
Antes de formalizar el estudio del problema en captulos posteriores, en
este apartado vamos a tratar de explicar con la mayor claridad posible las
caractersticas del mismo utilizando algunos ejemplos sencillos de transmi-
sin de mensajes a travs de un canal binario ideal, es decir, un canal cuyos
alfabetos de entrada y salida coinciden y son binarios, y en el que la transmi-
sin de cualquier smbolo siempre es correcta. Sea B = {0, 1} el alfabeto
binario.
Considrese una fuente discreta sin memoria representada por la variable
aleatoria discreta X de rango X = {0, 1, 2, 3} y funcin de probabilidad
p(x) = P(X = x):

p(0) = 0,7
p(x) = 0,1 x {1, 2, 3}.

Un mensaje de la fuente de longitud k es cualquier secuencia de k


smbolos sucesivos de X , o lo que es lo mismo, cualquier smbolo de X k ,
donde X k representa el producto cartesiano
k
z }| {
k
X = X X ...X .

Como por el canal slo pueden transmitirse mensajes binarios (mensa-


jes compuestos por smbolos binarios), para poder transmitir el mensaje de
la fuente a travs del canal, ser preciso realizar una transformacin que
convierta el mensaje de la fuente en una secuencia de smbolos binarios.
Pero, para obtener una copia fiel del mensaje en el destino, no basta que la
transmisin sea fiable (canal ideal); sino que, adems, la transformacin en
cuestin ha de ser invertible para cualquier valor de k, es decir, en recepcin
12 Introduccin

debe poderse recuperar siempre el mensaje original a partir de su versin bi-


naria: una regla de codificacin tal se denomina unvocamente decodificable.

1.3.1. Codificacin de longitud constante

Resulta obvio que una codificacin vlida puede conseguirse de manera


muy simple asignando a cada uno de los smbolos del mensaje de la fuente
(smbolos de X ) un par de smbolos del alfabeto B (alfabeto de codificacin),
o lo que es lo mismo, un smbolo del producto cartesiano B 2 . Por ejemplo:

C
X 1
C1 (X ) = B 2
0 00
1 01
2 10
3 11

donde, para mayor comodidad en la notacin, los pares de smbolos del


producto cartesiano B 2 se han representado sin los parntesis y la coma de
separacin entre smbolos habituales, pero respetando, eso s, el orden de los
smbolos. Este mismo convenio se emplear a menudo en el resto del libro
para la representacin de cualquier n-tupla.
Procediendo de esta forma, para enviar un mensaje de la fuente de k
smbolos, habremos de transmitir 2k smbolos a travs del canal. Esta ope-
racin requerir 2k unidades de tiempo (tomando como referencia temporal
el tiempo necesario para la transmisin de un smbolo por el canal); o lo que
es lo mismo, la velocidad del canal habr de ser el doble de la de la fuente.

1.3.2. Codificacin de longitud variable

Cabe preguntarse ahora si no habra alguna otra manera de realizar la


codificacin que nos permitiese ahorrar tiempo en la transmisin. Si se sigue
manteniendo todava la idea de realizar la transformacin del mensaje de la
fuente smbolo a smbolo,17 la nica manera de ahorrar tiempo es acortar la
representacin binaria de algn smbolo de X . Pero, como con un solo bit
no se pueden construir cuatro secuencias distintas, est claro que la nica
manera de poder asignar un solo smbolo binario a algn elemento de X es
permitiendo secuencias de smbolos binarios de distintas longitudes, como
se propone, a modo de ejemplo, en el siguiente esquema de codificacin:
17 Se ver a continuacin que sta no es la nica manera en la que se puede proceder

para realizar la codificacin de los mensajes de la fuente, ya que tambin se pueden


codificar los smbolos de las fuentes por grupos.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 13

C
2
X C2 (X )
0 0
1 101
2 110
3 111

En general, no es sencillo decidir si una transformacin de este tipo es


o no invertible; aunque, como se ver en el captulo 3, existe una clase de
cdigos de inters en los que se decide de forma trivial la univocidad de la
decodificacin. ste es precisamente uno de tales cdigos. En cualquier caso,
resulta fcil verificar que la transformacin de cualquier mensaje realizada
con el esquema que se propone en este ejemplo s lo es. Pero ahora las
secuencias de bits que codifican los smbolos de la fuente no tienen una
longitud constante. Como consecuencia de ello, el nmero de dgitos binarios
necesarios para representar un mensaje de la fuente de longitud k, represen-
tmoslo por lk , no ser una funcin determinista de k; sino que, para un
valor dado de k, habr varios valores posibles de lk , pudiendo determinarse
fcilmente la probabilidad de cada uno de ellos: en definitiva, lk es ahora
una variable aleatoria discreta.

Siendo as, lk podr ser mayor, menor o igual que 2k, segn cul sea la
secuencia de k smbolos generada por la fuente; es decir, en algunos casos la
representacin del mensaje ser ms eficiente que la anterior, pero en otros
casos lo ser menos. Cmo se puede, entonces, determinar la conveniencia
o no de este esquema? Si se tratase de enviar un nico mensaje de longitud
finita, tal cosa no sera posible; pero si se piensa en una fuente que genera
smbolos de forma continuada, es decir, si se piensa que los mensajes pueden
tener una longitud arbitrariamente grande (k tan grande como se quiera),
entonces lk , en virtud de la ley de los grandes nmeros, deja de ser una
variable aleatoria para convertirse en una constante de valor18 lk = L k
donde L es el nmero medio de dgitos binarios necesarios para representar
los smbolos de X . Obsrvese que L es, por tanto, el valor medio de la
variable aleatoria l1 .

En tales condiciones, este ltimo esquema de codificacin ser ms efi-


ciente que el anterior si L < 2. Veamos si es as. En este ejemplo, l1 es una
variable aleatoria discreta que puede tomar dos valores, es decir, el rango
de la variable aleatoria l1 es L1 = {1, 3}: tomar el valor 1 cuando el sm-
bolo generado por la fuente sea el 0, lo que ocurre con probabilidad 0,7; y
tomar el valor 3 en cualquier otro caso, es decir, con probabilidad 0,3. Por

 de los  grandes nmeros


18 Para expresarlo con mayor rigor matemtico, la ley (dbil)
establece que, dado cualquier > 0, se cumple que lm P   lk
L  <  = 1.
k k
14 Introduccin

tanto, en este caso,


L(C2 ) = 1 0,7 + 3 0,3 = 1,6
y, en consecuencia, se obtiene un ahorro de tiempo en el envo del mensaje
del 20 %.
Se puede utilizar, entonces, como mtrica de eficiencia de los cdigos el
valor del parmetro L; de forma que el cdigo ser tanto mejor cuanto menor
sea el valor de L. Este parmetro del cdigo se denominar en adelante
longitud del cdigo.
Obsrvese ahora que la obtencin de un valor de L lo ms pequeo
posible requiere una asignacin conveniente de las secuencias de bits a los
smbolos de la fuente. Efectivamente, si en lugar de asignar la secuencia
ms corta al smbolo de la fuente ms probable (el smbolo 0 en nuestro
ejemplo), se hubiese asignado a cualquier otro, por ejemplo:
C
3
X C3 (X )
0 100
1 101
2 110
3 0

se obtendra un cdigo igualmente vlido para una comunicacin fiable, pero


ms ineficiente, ya que en este caso la longitud del cdigo valdra
L(C3 ) = 3 0,9 + 1 0,1 = 2,8 .

En resumidas cuentas, se acaba de mostrar que una codificacin conve-


niente de los mensajes de una fuente permite ahorrar tiempo en su transmi-
sin. Por tanto, dada una fuente, parece lgico preguntarse cul es la codi-
ficacin que proporciona un mayor ahorro de tiempo.
Para el caso particular de fuente que estamos considerando, y codifican-
do los smbolos de la fuente de uno en uno, siempre de la misma forma,
mediante secuencias de bits que pueden tener distintas longitudes, resulta
relativamente sencillo convencerse de que no hay otro cdigo unvocamente
decodificable con una longitud L menor que el siguiente:
C
4
X C4 (X )
0 0
1 10
2 110
3 111
L(C4 ) = 1 0,7 + 2 0,1 + 3 0,2 = 1,5 .
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 15

Los cdigos como ste, cuya longitud L es la menor de las posibles, se deno-
minan cdigos compactos. Y, llegados a este punto, surgen algunas cuestiones
fundamentales:

1. No ser posible encontrar un mtodo que permita la obtencin siste-


mtica de un cdigo compacto para una fuente cualquiera?
Se ver ms adelante, en el captulo 3, que la respuesta es afirmativa;
y se explicar adems un mtodo para la construccin de cdigos
compactos de una fuente cualquiera: el algoritmo de Huffman.

2. Los cdigos compactos obtenidos mediante la codificacin de los sm-


bolos de la fuente de uno en uno nos proporcionan siempre la repre-
sentacin ms corta, en media, de los mensajes de la fuente?
Vamos a ver inmediatamente a continuacin que la respuesta a esta
pregunta es negativa: se pueden obtener cdigos ms convenientes
codificando los smbolos de la fuente en grupos.

1.3.3. Codificacin de bloques de smbolos

En lugar de codificar los smbolos de la fuente uno a uno, podran co-


dificarse por grupos o en bloques; y, en tal caso, lo ms sencillo es hacer la
codificacin utilizando bloques de longitud fija: el nico requisito adicional
del codificador sera una cierta cantidad de memoria.
As, si se codifican, por ejemplo, los smbolos de la fuente por pares,
la situacin sera equivalente a la de tener una fuente distinta cuyo alfa-
beto vendra dado por el producto cartesiano X 2 y cuya distribucin de
probabilidad sera

p(x, y) = p(x)p(y) x, y X .

Esta nueva fuente as obtenida se dice que es una extensin de orden dos
de la fuente considerada originalmente.
Si se considera ahora la fuente dada por la extensin de orden dos de
la fuente cuaternaria que habamos tomado como ejemplo, y a esta nueva
fuente se le aplica el algoritmo de Huffman para la construccin de un cdigo
compacto, se obtiene el cdigo de la tabla 1.1, cuya longitud (nmero medio
de bits por smbolo de X 2 ), que representaremos por L2 , es

L2 = 1 0,49 + 6 4 0,07 + 7 6 0,01 + 2 7 0,01


= 2,73 .
16 Introduccin

X2 P() C(X 2 )
00 0,49 0
01 0,07 1000
02 0,07 1001
03 0,07 1010
10 0,07 1011
20 0,07 1100
30 0,07 1101
11 0,01 111000
12 0,01 111001
13 0,01 111010
21 0,01 111011
22 0,01 111100
23 0,01 111101
31 0,01 111110
32 0,01 1111110
33 0,01 1111111

Tabla 1.1.

Si se tiene en cuenta que ahora se asignan secuencias de bits a pares de


smbolos de X , no a elementos individuales, el nmero medio de bits por
cada smbolo de X (cantidad que representbamos por L) ser la mitad:
L2
L= = 1,365 < 1,5 .
2

Pero tambin se podran considerar longitudes de bloques mayores que


dos; es decir, tambin se podran considerar como alfabetos de la fuente X 3 ,
X 4 , etc., y se obtendran cada vez menores valores de L. Y esto nos lleva a
plantearnos nuevas cuestiones:

1. Puede hacerse L tan pequeo como se quiera sin ms que aumentar


lo suficiente el orden de la extensin de la fuente, o, por el contrario,
existe alguna cota inferior no nula para L? Y si tal cota existe, cul
es su valor?
Pues bien, se ver que no se puede hacer L, en general, arbitrariamente
pequea; sino que existe una cota inferior no nula para L, y que tal cota
depende de las caractersticas de la fuente considerada. En realidad,
dicha cota ha resultado ser una funcin de las probabilidades de los
smbolos de la fuente que se denomina entropa, que es la magnitud
fundamental de la Teora de la Informacin. Y en el caso particular de
la fuente que estamos considerando como ejemplo, la entropa de la
fuente, y por tanto el valor de la cota inferior para L, es igual a 1,356
bits.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 17

2. Finalmente, conocido que el valor de L no puede bajar de determinado


umbral, parece lgico que nos preguntemos si tal umbral se puede
alcanzar siempre; y en caso afirmativo, cmo se alcanza dicho umbral?
La respuesta es que, en algunos casos, es sencillo obtener un cdigo
con el valor ptimo de L; y que, en general, siempre se podr obtener
un cdigo con un valor de L tan prximo como se quiera al ptimo
sin ms que considerar una extensin de la fuente lo suficientemente
grande.
Este resultado constituye uno de los dos teoremas fundamentales de
codificacin obtenidos por C. E. Shannon en [59], y es uno de los
principales resultados de la Teora de la Informacin; se lo conoce
habitualmente como primer teorema de Shannon o como teorema de
Shannon de codificacin de fuente.

1.4. La codificacin de canal

El problema de la codificacin de canal es el de decidir si existe alguna


forma de representar los mensajes de una fuente que permita una transmi-
sin libre de errores aun en el caso de utilizar un canal ruidoso.
Antes de formalizar el estudio del problema en captulos posteriores, en
este apartado vamos a tratar de explicar con la mayor claridad posible las
caractersticas del mismo utilizando algunos ejemplos sencillos de transmi-
sin de mensajes binarios a travs de un canal binario ruidoso.
Consideremos un canal binario simtrico sin memoria, es decir, un canal
cuyos alfabetos de entrada y salida son binarios, y en el que la transmisin
de cualquier smbolo tiene siempre la misma probabilidad de error, p (p <
1/2).19
Un canal tal est caracterizado por la siguiente matriz de probabilidades
de transicin:  
1p p
Q22 =
p 1p
o tambin mediante un diagrama como el de la figura 1.3, en el que se
representan las transiciones mediante flechas, cada una con su probabilidad
asociada.
19 Si p > 1/2, parecera lgico considerar la transicin de probabilidad p como la co-

rrecta, etiquetando el smbolo obtenido a la salida igual que el de la entrada, que es lo


mismo que decir que el canal funciona ms veces bien que mal. Si p fuese 1/2, el canal
sera totalmente intil, ya que la probabilidad de obtener a la salida del canal un smbolo
cualquiera sera 1/2 con independencia del smbolo que se hubiese transmitido, de forma
que el mensaje que saliese del canal sera siempre indistinguible de una secuencia alea-
toria de bits en la que cada bit se obtiene con probabilidad 1/2, como sera el caso, por
ejemplo, de lanzar una moneda al aire para decidir el smbolo de la secuencia aleatoria.
18 Introduccin




  


Figura 1.3. Canal binario simtrico sin memoria.

Consideremos tambin una fuente binaria sin memoria que genere ambos
smbolos equiprobablemente; es decir, sea la fuente una variable aleatoria
X de rango X = {0, 1} y medida de probabilidad P(x) = 1/2 x {0, 1}.
Como se ver ms adelante, en el captulo 3, una fuente de este tipo es una
fuente incompresible, es decir, una fuente que no requiere codificador de
fuente.
Si se transmite sobre el canal dado un mensaje de la fuente de longitud
n (es decir, una secuencia de n bits), se sabe que, siempre que n sea sufi-
cientemente grande, en virtud de la ley de los grandes nmeros, se tendr
en destino otro mensaje de n bits que diferir del generado por la fuente
en aproximadamente pn bits; aunque no se sabe en qu bits, puesto que
los errores se distribuyen aleatoriamente en el mensaje. Si se supiese qu
bits son los errneos, podra recuperarse el mensaje original, y los errores
de transmisin no tendran trascendencia.
Como no es as, nos enfrentamos a un problema: la utilizacin de un
canal introduce errores en el mensaje transmitido, de suerte que no podemos
estar seguros de que el mensaje recibido en destino sea igual al emitido por
la fuente. Cabe entonces preguntarse si puede conseguirse la eliminacin de
los errores en la transmisin.20 Por otra parte, parece claro que tal cosa slo
ser posible si se restringen los mensajes que se envan por el canal (mensajes
vlidos) a algn subconjunto de todos los mensajes posibles, ya que resulta
imposible detectar algn error si no se puede afirmar con seguridad que un
cierto mensaje no puede haber sido enviado.
Una forma sencilla de hacer tal cosa consiste en fragmentar el mensaje
de la fuente en secuencias de smbolos de longitud fija, digamos k smbolos,
y asignar a cada una de tales secuencias una secuencia distinta de longitud
n fija (n > k). Cuando se emplea un cdigo tal para la transmisin de
los mensajes de una fuente, slo se transmiten por el canal 2k mensajes
(secuencias de n bits) distintos. Y, si como consecuencia de un error, se
20 El criterio de fiabilidad que hemos elegido no exige la eliminacin de todos los errores.

As, cuando en este texto se habla de transmisin sin errores, debe entenderse, en rigor,
que se habla de una transmisin con una proporcin de errores que se puede hacer tan
pequea como se quiera.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 19

obtiene a la salida del canal una secuencia de n bits que no corresponde al


cdigo, entonces es infalible la deteccin del error.
Es obvio, por tanto, que la consecucin de un sistema de transmisin
fiable tiene un coste, puesto que es preciso transmitir ms smbolos que los
que genera la fuente. La proporcin de smbolos adicionales ( nk
n = 1 n)
k

representa el coste (redundancia) del cdigo. Por tanto, la ratio k/n, a la


que denominaremos tasa de codificacin, es una medida de la eficiencia de
la codificacin.
Veamos a continuacin, mediante un sencillo ejemplo, cmo el empleo
de redundancia permite una transmisin fiable, sin ms que disponer de la
cantidad de redundancia necesaria.

1.4.1. Cdigos de repeticin

Imagine que entre la fuente y el canal introducimos un dispositivo (co-


dificador de canal) que reproduce por triplicado los smbolos que recibe, es
decir, que realiza la siguiente transformacin:

X X3
0 000
1 111

Por su parte, el decodificador de canal agrupar los smbolos que reciba


del canal de tres en tres y les har corresponder un nico smbolo, que
entregar al destino.
Al haber errores en la transmisin de los smbolos, el decodificador de
canal podr recibir cualquier terna. Sea (x1 , x2 , x3 ) X 3 una terna cualquie-
ra de bits obtenida en recepcin, cmo debe realizarse la decodificacin?
Pueden haberse transmitido slo dos cosas: o tres ceros o tres unos. Resul-
ta claro que siempre podemos equivocarnos en la interpretacin, sigamos
el procedimiento que sigamos, porque incluso habiendo recibido tres ceros
(anlogamente tres unos) no puede haber certeza de que no se hayan trans-
mitido tres unos (tres ceros). As que parece lo ms razonable tratar de
minimizar la probabilidad de fallo al decidir, es decir, elegir aquel suceso
que tenga mayor probabilidad.
Calculemos entonces la probabilidad de que se hayan transmitido tres
ceros21 a posteriori de saber que se ha recibido una terna cualquiera x1 x2 x3
21 Anlogamente se har para el caso de tres unos.
20 Introduccin

de bits, es decir, calculemos P(transm. = 000 | rec. = x1 x2 x3 ):


P (transm. = 000 | rec. = x1 x2 x3 ) =
P (rec. = x1 x2 x3 | transm. = 000) P(transm. = 000)
.
P(rec. = x1 x2 x3 )

Como

P(rec. = x1 x2 x3 ) =
P (rec. = x1 x2 x3 | transm. = 000) P(transm. = 000) +
P (rec. = x1 x2 x3 | transm. = 111) P(transm. = 111)
y puesto que P(transm. = 000) = P(transm. = 111) = 1/2, entonces

P (transm. = 000 | rec. = x1 x2 x3 ) =


P (rec. = x1 x2 x3 | transm. = 000)
.
P (rec. = x1 x2 x3 | transm. = 000) + P (rec. = x1 x2 x3 | transm. = 111)

Ahora bien, como por la independencia de las sucesivas transmisiones


sobre el canal se tiene que
3
Y
P (rec. = x1 x2 x3 | trasm. = iii) = P (rec. = xj | transm. = i)
j=1

y dado que se cumple:

P(xj | i) = q si xj = i
P(xj | i) = p si xj 6= i

se obtienen los resultados que se recogen a continuacin, en la tabla adjunta,


para las probabilidades de que se hayan transmitido o bien tres ceros o bien
tres unos, para cada una de las ternas que pueden llegar al decodificador de
canal.

iii
P (iii | x1 x2 x3 ) 000 111
q3 p3
000 q 3 +p3 q 3 +p3
001 q p
010 q p
x1 x2 x3 100 q p
011 p q
101 p q
110 p q
p3 q3
111 q 3 +p3 q 3 +p3
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 21

As, por ejemplo, si se reciben tres ceros, no podemos estar seguros de que
se hayan transmitido tambin tres ceros; podra haber ocurrido tambin que
se hubieran transmitido tres unos, pero esto ltimo es normalmente mucho
menos probable (para p = 0,1, por ejemplo, la probabilidad de que se hubie-
sen transmitido tres unos sera 1,37 103 , mientras que se habran trans-
mitido tres ceros con probabilidad 0,9986; lo que significa que, suponiendo
que se han transmitido tres ceros cada vez que se reciben tres ceros, nos
equivocaremos para un nmero suficientemente grande de decisiones
slo un 0,137 % de las veces).
Aplicando esta regla de decisin al caso concreto que estamos consideran-
do, resulta, a la vista de las probabilidades de la tabla, que debe suponerse
que se ha transmitido un cero cuando haya una mayora de ceros en la terna
recibida; y debe suponerse que se ha transmitido un uno cuando haya una
mayora de unos. Es decir, debe suponerse que se ha enviado el smbolo
que aparece ms veces, por lo que esta regla de decisin se denomina de
decodificacin por mayora.
Procediendo as, slo habr error en la transmisin de un smbolo de la
fuente cuando se produzcan al menos dos errores en la transmisin de cada
terna de smbolos por el canal. En consecuencia, la probabilidad de error en
la transmisin de un smbolo vendr dada por P(3)e :

P(3)
e = P(2 errores) + P(3 errores)
= 3p2 q + p3 .

Como q = 1 p, entonces se tiene que


P(3) 2
e = 3p 2p
3

= p2 (3 2p)
y es inmediato comprobar que P(3)
e < p:

P(3)
e p = 2p(p 1)(p 1/2) < 0 p (0, 1/2).

As, el conjunto codificadorcanaldecodificador es equivalente


a un nuevo canal binario simtrico con probabilidad de error P(3)
e .

Puede comprobarse fcilmente que, al aumentar la redundancia, aumen-


ta tambin, como caba esperar, la reduccin de la probabilidad de error en
la transmisin de smbolos de la fuente. As, con cinco repeticiones, resul-
tara un canal binario simtrico equivalente con una probabilidad de error
P(5)
e :

P(5)
e = P(nmero de errores 3)
   
5 3 2 5 4
= p q + p q + p5 .
3 4
22 Introduccin

Como q = 1 p, entonces se tiene que

P(5) 3 2
e = p (10 15p + 6p )

y es inmediato comprobar que P(5) (3)


e < Pe :

P(5) (3) 2 2
e Pe = 6p (p 1) (p 1/2) < 0, p (0, 1/2).

En general, con 2n + 1 repeticiones se tiene un canal binario simtrico


equivalente con una probabilidad de error P(2n+1)
e :

P(2n+1)
e = P(nmero de errores n + 1)
Xn  
2n + 1
= pn+1+i (1 p)ni .
i=0
n + 1 + i

Y se puede comprobar que lm P(2n+1)


e = 0. Basta para ello considerar
n
que, como consecuencia de la ley (dbil) de los grandes nmeros, la propor-
cin de bits errneos de un mensaje converge en probabilidad a p (p < 1/2)
segn n .

1.4.2. Existencia de cdigos ptimos

Ha quedado patente, entonces, que siempre es posible conseguir una


transmisin fiable; si bien, posiblemente, a costa del uso de una cantidad
de redundancia no acotada, lo que significara que la transmisin de cada
smbolo de la fuente requerira una cantidad ilimitada de tiempo. Pero tal
solucin es insatisfactoria, por lo que debe replantearse el problema en otros
trminos:

a) Ser posible conseguir una transmisin fiable con una redundancia


acotada?

b) Si as fuese, cul sera la redundancia necesaria en cada caso?

c) Y por ltimo, cmo habra de generarse dicha redundancia?

Pues bien, la Teora de la Informacin responde a las dos primeras pre-


guntas:

a) S que es posible conseguir una transmisin fiable con una cantidad


acotada de redundancia.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 23

b) La cantidad de redundancia necesaria depende de las caractersticas


del canal, y viene dada por un parmetro caracterstico del mismo
denominado capacidad del canal.

Pero todava no se conoce una respuesta plenamente satisfactoria para la


ltima cuestin. Existen, no obstante, mltiples esquemas de codificacin de
canal que, si no ptimos, s se aproximan al lmite de redundancia mnima
establecido por Shannon. Se ver que, para conseguirlo sin que el proceso de
decodificacin resulte excesivamente complicado, es preciso emplear reglas
de transformacin que elijan representaciones de los mensajes de la fuente
de forma que stas posean una estructura matemtica bien fundada.
Tales reglas de transformacin pertenecen a uno de dos esquemas pro-
totipo: en el ms sencillo, ya conocido, se hace corresponder a cada secuencia
distinta de smbolos de la fuente de una longitud fija una misma secuencia
de smbolos de cierta longitud mayor, tambin fija. El nombre genrico que
recibe este proceso es el de codificacin de bloques. En el segundo esquema,
cada grupo de smbolos de la fuente se completa igualmente con un cierto
nmero (fijo) de smbolos de redundancia; pero stos, ahora, no son siempre
los mismos, sino que se hacen depender de los grupos de smbolos codifi-
cados con anterioridad, de forma que exista cierta relacin conocida entre
los grupos consecutivos de smbolos codificados. Por tanto, los cdigos de
esta segunda familia se caracterizan por precisar dispositivos codificadores
y decodificadores con memoria.
Pero las clases de cdigos de bloques (sin memoria) y de cdigos con me-
moria son demasiado amplias como para permitir un anlisis matemtico
cabal. Ante tal hecho, nos limitaremos a analizar, en ambos casos, transfor-
maciones lineales entre los grupos de smbolos de entrada y de salida. Esta
condicin no supone ningn obstculo para la bsqueda de cdigos con bue-
nas propiedades de control de errores, y, en cambio, da pie al desarrollo de
un vasto campo de conceptos tericos, procedentes del lgebra, la geometra
y la teora de nmeros. Los cdigos de bloques lineales se denominan, sim-
plemente, cdigos lineales, y a ellos dedicaremos la segunda parte del libro y
varios captulos de la tercera. Los cdigos con memoria lineales se denomi-
nan cdigos convolucionales, y se ver que, aun a pesar de exigir un proceso
de decodificacin con cierta complejidad, son equiparables o superiores en
eficiencia a los cdigos lineales.

1.5. Estructura del libro

Aparte de este captulo introductorio, el libro contiene otros 11 captulos,


divididos en tres partes: la primera dedicada a la Teora de la Informacin,
24 Introduccin

la segunda a los principios bsicos de la correccin de errores, y la tercera


al estudio ms detallado de los principales cdigos de control de errores.

La primera parte est dedicada a la exposicin de los conceptos y re-


sultados bsicos de la Teora de la Informacin, para el caso de fuentes y
canales discretos. En el captulo 2 se define el concepto de entropa y se ana-
lizan sus propiedades fundamentales. En el captulo 3 se establece uno de
los resultados fundamentales de la Teora de la Informacin: el teorema de
Shannon de codificacin de fuente, que nos ofrece una interpretacin fsica
del concepto de entropa. Adems, aunque de forma secundaria, se conside-
ra el problema de la construccin de cdigos compactos. En el captulo 4
se presentan una serie de funciones derivadas de la entropa, como son la
entropa condicional, la informacin mutua y la capacidad del canal; y se
analizan seguidamente sus propiedades ms relevantes. Por ltimo, en el
captulo 5 se establece el resultado probablemente ms trascendental de la
Teora de la Informacin: el teorema de Shannon de codificacin de canales
ruidosos, que nos ofrece una interpretacin fsica del concepto de capacidad.

La segunda parte se inicia con un captulo, el 6, dedicado a exponer la


teora bsica general de los cdigos lineales. Fundamentalmente, la teora
consiste en una caracterizacin matricial de los cdigos lineales y en el ma-
nejo de algunas propiedades mtricas en un espacio de Hamming, ya sea
para la sntesis de cdigos concretos o para la deduccin de un algoritmo de
decodificacin genrico. El captulo 7 se centra en la teora de los cdigos
cclicos, el subconjunto de los lineales caracterizado por la particularidad de
ser invariantes ante todas las permutaciones cclicas. Esta propiedad confiere
a la familia de los cdigos cclicos una estructura algebraica mucho ms rica
que la de espacio vectorial, lo que facilita la deteccin de grupos de errores
y al tiempo permite ingeniar mtodos de decodificacin muy eficientes. La
utilizacin de cdigos de canal con potentes propiedades de correccin de
errores no es, sin embargo, la nica alternativa cuando de lo que se trata
es de la transmisin fiable. En el captulo 8 se describen una serie de estra-
tegias basadas en la utilizacin conjunta de cdigos detectores de errores
y de retransmisiones automticas de bloques de informacin. All se presta
atencin a dos aspectos de tales estrategias: por una parte, a garantizar
la coherencia de las reglas lgicas con que operan los extremos emisor y
receptor; y por otra, a calcular el rgimen efectivo de transmisin de cada
estrategia particular.

La parte tercera profundiza en la teora de cdigos algebraicos, presen-


tando las tres familias de cdigos de mayor importancia prctica hoy en da.
Para cada una de estas familias, se dan sus propiedades y se describen los
fundamentos de los mtodos de decodificacin algebraica. Puesto que se tra-
ta por lo comn de cdigos no binarios, el captulo 9 establece previamente
las propiedades fundamentales de los cuerpos finitos, sus representaciones y
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 25

su estructura. En el captulo 10 se estudian los cdigos BCH, una familia


de cdigos cclicos polinmicos con excelentes propiedades de correccin de
rfagas de errores. La familia BCH con alfabeto no binario contiene a la
clase de cdigos ReedSolomon, objeto del captulo 11, cuyo inters reside
en que constituyen un conjunto de cdigos lineales de mxima distancia pa-
ra el que se dispone de un algoritmo de decodificacin computacionalmente
eficiente. El captulo 12, ltimo, desplaza el centro de atencin hacia los
cdigos convolucionales, que son cdigos lineales con memoria. El captulo
se ocupa de dar, adems de la caracterizacin clsica de stos en el contexto
de la teora de sistemas discretos lineales, una descripcin algebraica til
para la sntesis de los dispositivos de codificacin y para la identificacin
de los codificadores catastrficos. Adems, se explican en detalle los princi-
pios del algoritmo de Viterbi para la decodificacin ptima de los cdigos
convolucionales.
PARTE I

Teora de la Informacin

27
CAPTULO 2

La entropa

En este captulo se propone una medida de la cantidad de informacin


que contienen los mensajes de una fuente discreta. Tal medida se basa en
la interpretacin de la generacin de un mensaje como el resultado de un
experimento aleatorio, pudindose representar la cantidad de informacin
del mismo como una funcin (logartmica) de la inversa de la probabilidad
de que tal resultado ocurra. As, la informacin media de los mensajes depen-
der de la distribucin de probabilidades de los mismos, y ser por tanto
caracterstica de la fuente que los genera. Esta medida de informacin recibe
el nombre de entropa y constituye el pilar bsico de toda la Teora de la
Informacin.
Como se ver en el captulo siguiente, la entropa representa el nmero
mnimo de smbolos necesarios para codificar sin prdida de informacin los
estados (mensajes) de la fuente, siempre que el nmero de stos sea suficien-
temente grande (desde un punto de vista estadstico): a menor cantidad de
informacin, mensajes ms cortos. Este es uno de los resultados centrales
de la Teora de la Informacin y se lo conoce habitualmente como teorema
de Shannon de codificacin de fuente.
Este captulo se dedicar por entero a la definicin del concepto de entro-
pa de una variable aleatoria discreta, as como al anlisis de sus propiedades
fundamentales.

2.1. Definicin de entropa

Sea X una variable aleatoria discreta de rango finito X={x1 , x2 , . . . , xn }


que no incluya valores de probabilidad nula, y sea p(x) = P(X = x) su
funcin de probabilidad.

29
30 La entropa

Definicin 2.1 (Entropa). Se define la entropa de la variable aleatoria


X como
Xn
1
H(X) = p(xi ) log .
i=1
p(x i)

Para mayor claridad del concepto, as como de la notacin asociada,


conviene tener presentes las siguientes observaciones.

Observacin 1. Dado que log p(x1 i ) = log p(xi ), la entropa de la variable


aleatoria X se puede escribir tambin como
n
X
H(X) = p(xi ) log p(xi ).
i=1

Observacin 2. Por razones de generalidad, y dado que

lm p(xi ) log p(xi ) = 0


p(xi )0

se puede extender la definicin anterior para incluir en el rango de la


variable aleatoria X valores de probabilidad nula sin que vare el valor
de la entropa, adoptando el convenio de que

p(xi ) = 0, p(xi ) log p(xi ) = 0.

Observacin 3. El valor numrico de la entropa depende de la base del


logaritmo; pero en la definicin anterior no se ha especificado, porque
un cambio de base no supone ms que un cambio de escala. As pues,
la adopcin de una determinada base, b, no supone ms que la eleccin
de una cierta unidad de medida (que denominaremos unidad de base
b); y la entropa expresada en unidades de base b se representar por
Hb (X). Para ciertos valores de la base b, las unidades suelen recibir
denominaciones especiales:
base 2 las unidades se denominan bits
base e (natural) las unidades se denominan nats1
base 10 las unidades se denominan hartleys2
1 El origen del trmino parece ser la contraccin de la expresin inglesa natural units

(unidades naturales).
2 En honor de R. V. L. Hartley, que fue el primero en establecer el principio de que la

informacin es el resultado de una seleccin entre un nmero finito de posibilidades [31].


Hartley introdujo, adems, la letra H para denotar la cantidad de informacin asociada
con n selecciones
H = n log s
donde s es el nmero de smbolos disponibles en cada seleccin.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 31

La equivalencia entre las distintas unidades de medida se obtiene en


virtud de la conocida frmula del cambio de base del logaritmo:
logb x
loga x =
logb a
de la que resulta que
Hb (X)
Ha (X) =
logb a
o bien que
Ha (X) = Hb (X) loga b.

As, por ejemplo, se tiene que


n
X 1
H2 (X) = p(xi ) log2
i=1
p(xi )
n
1 X 1
= p(xi ) ln
ln 2 i=1 p(xi )
1
= Hn (X).
ln 2

Observacin 4. Obsrvese que la entropa no depende de los valores que


pueda tomar la variable aleatoria X, sino slo de sus probabilidades.
As pues, la entropa es en realidad funcin de una cierta distribu-
cin3 de probabilidades p = (p1 , p2 , . . . , pn ), por lo que tambin se
suele representar como H(p). Y en el caso de una distribucin de pro-
babilidad binaria, p = (p, 1 p), la entropa es funcin nicamente de
la variable p, y se representa simplemente por H(p).
Observacin 5. Puede considerarse pX (x) como una funcin de la variable
aleatoria X que a cada valor x X le hace corresponder su probabili-
dad pX (x). Para explicitar la dependencia de la variable aleatoria X,
representamos tal funcin como p(X). Por su definicin, esta nueva
variable aleatoria tiene la peculiaridad de que los distintos elementos
de su rango y sus probabilidades respectivas coinciden numricamen-
te; pero es, por lo dems, una variable aleatoria absolutamente igual
que las dems.
De manera anloga, se puede definir otra funcin de la variable alea-
toria X:
1
I(X) = log
p(X)
3 Aun ms, en realidad del conjunto de las probabilidades de una distribucin (funcin

de masa de probabilidad): una distribucin de probabilidad implica un cierto secuen-


ciamiento de las probabilidades, que tampoco influye en el valor de la entropa.
32 La entropa

cuyo valor medio ser:


X 1
E [I(X)] = p(x) log = H(X).
x
p(x)
Segn este resultado, la entropa viene a ser el valor medio de una
variable aleatoria, I(X), que es una variable aleatoria discreta cuyos
valores, I(xi ) = log p(x1 i ) , son inversamente proporcionales a las proba-
bilidades de los mismos, p(xi ). Por tanto, si se interpreta I(xi ) como
la informacin que se obtiene cuando ocurre xi (los sucesos menos
probables aportan ms informacin), entonces H(X) es la informa-
cin que proporcionan, en media, los distintos resultados posibles de
la variable aleatoria X. O lo que es lo mismo, es la informacin que
proporciona, en media, la fuente X por cada smbolo transmitido. Ms
adelante, en este mismo captulo, se abundar en esta interpretacin
de la entropa como medida de informacin.
Observacin 6. Tal y como se ha definido la entropa, sta no tiene en
cuenta el rgimen de transmisin de la fuente. Ahora bien, si se mul-
tiplica la entropa de la fuente, H(X), por su rgimen de transmisin,
vf , se tiene una funcin que representa la informacin que transmite
la fuente, en media, por unidad de tiempo:
H t (X) = vf H(X).

Ejemplo 2.1. Si X es una variable aleatoria con distribucin de probabi-


lidad p = (1/2, 1/4, 1/8, 1/8), su entropa en bits valdr:
1 1 1 1 1 1 1 1
H2 (X) = log2 log2 log2 log2
2 2 4 4 8 8 8 8
7
= bits.
4
Ejemplo 2.2. La entropa de la variable aleatoria binaria
(
1 con probabilidad p,
X=
0 con probabilidad 1 p
vale:
H(X) = p log p (1 p) log(1 p) = H(p).
En particular, H2 (X) = 1 bit cuando p = 1/2; es decir, un bit es la cantidad
de entropa obtenida al elegir uno de entre dos smbolos equiprobables. La
grfica de la figura 2.1 representa la funcin H2 (p) e ilustra alguna de sus
propiedades: H(p) es una funcin con mnimo en p = 0 o p = 1, cuando la
variable X es determinista, y mximo cuando p = 1/2; H(p) es una funcin
estrictamente convexa.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 33

0.8

0.6

0.4

0.2

0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

Figura 2.1. Grfica de Hk (p)/ log k 2.

2.2. Funciones convexas

Algunas de las ms notables propiedades de la entropa son consecuencia


directa de la convexidad de la funcin logaritmo; y se ver que aun la propia
entropa es tambin una funcin convexa. Por tal motivo, detengmonos
brevemente para repasar la nocin de convexidad.
Sea p = (p1 , p2 , . . . , pn ) un vector n-dimensional de componentes reales
definido en una regin R del espacio vectorial.

Definicin 2.2 (Regin convexa). Se dice que una regin R es convexa


si p, q R se cumple que

p + (1 )q R, IR, 0 < < 1.

Geomtricamente, al variar entre 0 y 1, p + (1 )q traza una lnea


recta de p a q:

p + (1 )q = q + (p q), IR, 0 < < 1.

As, una regin es convexa si, para cada par de puntos de la regin, la lnea
recta que une dichos puntos pertenece por entero a la regin (es decir, todos
los puntos de la lnea recta pertenecen a la regin).

Ejemplo 2.3. Es, por tanto, una regin convexa cualquier intervalo (a, b)
de puntos de la recta real IR: resulta fcil verificar que para cualesquiera
34 La entropa

dos puntos x1 , x2 (a, b) se cumple que

x1 + (1 )x2 (a, b), IR, 0 < < 1.

Ejemplo 2.4. Otro ejemplo de regin convexa de inters para nosotros es la


regin de vectores de probabilidad, denominando vectores de probabilidad a
todos aquellos vectores cuyas componentes sean todas no negativas y sumen
uno. Para comprobar que es as, basta comprobar que todos los puntos de
la recta que une dos vectores de probabilidad cualesquiera, p y q:

v = p + (1 )q, IR, 0 < < 1

son tambin vectores de probabilidad; es decir, que IR, 0 < < 1, se


cumplen las dos condiciones siguientes:
n
X
vi 0, vi = 1
i=1

cuya verificacin es trivial ya que simplemente se tiene que

vi = pi + (1 )qi
n
X n
X n
X
vi = pi + (1 ) qi .
i=1 i=1 i=1

Definicin 2.3 (Funcin convexa). Se dice que una funcin real f defi-
nida en una regin convexa R de un espacio vectorial es una funcin convexa
si para cualesquiera dos puntos p, q R y IR, 0 < < 1, se cumple
que 
f p + (1 )q f (p) + (1 )f (q). (2.1)

Geomtricamente, la interpretacin de la ecuacin (2.1) es que el arco


de cuerda que une los puntos f (p) y f (q) est siempre por debajo de la
superficie f (p + (1 )q), lo que aparece ilustrado en la figura 2.2 para
una funcin convexa de variable real definida en cualquier intervalo de la
recta real (a, b) que contenga a los puntos x1 y x2 .
Ahora bien, si se considera la curva simtrica respecto al eje de abscisas,
es decir, si se considera la grfica de la funcin f (x), se tiene justo lo
contrario: que el arco de cuerda est por encima de la curva. Puede decirse
que las funciones convexas tienen dos caras; y para distinguirlas es habitual
emplear los trminos convexidad y convexidad , o tambin convexidad
y concavidad.4
4 En este punto, y para evitar confusiones con la terminologa empleada en otros textos,
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 35

y
f (x2 ) f (x1 )
y = f (x) + x2 x 1 (x x1 )
f (x2 )
y = f (x)

f (x1 + (1 )x2 )

f (x1 ) + (1 )f (x2 )

f (x1 )

x1 x1 + (1 )x2 x2 x

Figura 2.2. Convexidad de f (x).

Definicin 2.4 (Funcin estrictamente convexa). Se dice que una


funcin real f definida en una regin convexa R de un espacio vectorial es
estrictamente convexa si para cualesquiera dos puntos p, q R y
IR, 0 < < 1, se cumple que

f p + (1 )q > f (p) + (1 )f (q).

2.2.1. Algunas propiedades de las funciones convexas

Por su utilidad en el desarrollo del tema, se enuncian a continuacin


algunas propiedades bien conocidas de las funciones convexas.

Teorema 2.1. Si f1 (p), . . . , fK (p) son funciones convexas, y 1 , . . . , K


son nmeros reales positivos, entonces

K
X
i fi (p)
i=1

es tambin convexa; siendo estrictamente convexa si cualquiera de las f i (p)


es estrictamente convexa.
es preciso decir que cuando se emplean los trminos concavidad y convexidad, es frecuente
en la literatura matemtica denominar funcin cncava a la que aqu hemos llamado
funcin convexa, y viceversa.
36 La entropa

Demostracin. La propiedad se deduce de forma inmediata


P aplicando la
definicin que se acaba de dar de funcin convexa a Ki=1 i f i (p).

Teorema 2.2 (Criterio de la segunda derivada). Siendo f una fun-


cin de variable real que admite derivadas de segundo orden, f (x) es convexa
en un intervalo abierto (a, b) si y slo si

d2 f (x)
0
dx2
en ese intervalo; siendo estrictamente convexa si la desigualdad es estricta.

Demostracin. Supongamos primero que d2 f (x)/dx2 es no positiva en


(a, b). Entonces df (x)/dx es no creciente en (a, b). As, a < x < y <
b, 0 < < 1, z = (1 )x + y, se tiene:
Z z
f (z) f (x) = f 0 (t) dt f 0 (z)(z x)
x
Z y
f (y) f (z) = f 0 (t) dt f 0 (z)(y z).
z

Puesto que z x = (y x) e y z = (1 )(y x), se tiene:

f (z) f (x) + f 0 (z)(y x)


f (z) f (y) (1 )f 0 (z)(y x).

Multiplicando las dos desigualdades por 1 y , respectivamente, y


sumndolas, se obtiene que

(1 )f (z) + f (z) (1 )f (x) + f (y).

Pero el lado izquierdo de la desigualdad es precisamente f (z) = f ((1)x+


y), lo que prueba la convexidad de f en (a, b) de acuerdo con la definicin.
Supongamos ahora que d2 f (x)/dx2 es positiva en un cierto subintervalo
(a0 , b0 ). Argumentando de la misma forma que acabamos de hacer, en (a0 , b0 )
tendramos:

f (z) f (x) < f 0 (z)(z x)


f (y) f (z) > f 0 (z)(y z)

y de aqu que

f (1 )x + y < (1 )f (x) + f (y).

As, f no sera convexa en (a, b).


C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 37

Esta propiedad es bien conocida porque nos proporciona un criterio sen-


cillo para la determinacin de la convexidad de una funcin. As, resulta
fcil verificar que la funcin logaritmo es una funcin convexa.

Ejemplo 2.5 (Convexidad de la funcin logaritmo). Considrese la


funcin f (x) = ln(x), que est definida x IR, x > 0. En todo su dominio
de definicin, la funcin admite derivadas de primer y segundo orden:

df (x) 1 d2 f (x) 1
= ; = 2.
dx x dx2 x

Como
d2 f (x)
<0 x IR, x > 0,
dx2
entonces f (x) es una funcin estrictamente convexa en todo su dominio de
definicin.

A continuacin se establece una desigualdad ampliamente utilizada en


matemticas, y de gran inters para nosotros porque en ella se basan muchos
de los resultados bsicos de la Teora de la Informacin.

Teorema 2.3 (Desigualdad de Jensen). Si f es una funcin convexa y


X es una variable aleatoria discreta, entonces

E [f (X)] f (E[X]) .

Demostracin. Apliquemos el mtodo de induccin. Para una variable


aleatoria binaria X, la desigualdad de Jensen no es ms que la definicin de
convexidad:

p(x1 )f (x1 ) + p(x2 )f (x2 ) f p(x1 )x1 + p(x2 )x2 .

Supngase ahora que la desigualdad es cierta para distribuciones de pro-


babilidad con k 1 valores, es decir, que se cumple que

k1
X k1
X 
p(xi )f (xi ) f p(xi )xi .
i=1 i=1

Probemos que tambin se cumple para una distribucin de probabilidad con


38 La entropa

k valores:

k
X k1
X
p(xi )f (xi ) = p(xk )f (xk ) + p(xi )f (xi )
i=1 i=1

 k1
X
= p(xk )f (xk ) + 1 p(xk ) q(xi )f (xi )
i=1

 k1
X 
p(xk )f (xk ) + 1 p(xk ) f q(xi )xi
i=1
  k1
X 
f p(xk )xk + 1 p(xk ) q(xi )xi
i=1
X
k 
=f xi p(xi )
i=1

p(xi )
donde la segunda igualdad se sigue del cambio q(xi ) = 1p(x k)
, de forma que
las q(xi ) forman una distribucin de probabilidad; la primera desigualdad
se sigue de la hiptesis de induccin; la segunda desigualdad se sigue de la
convexidad de la funcin f ; y la ltima igualdad, de deshacer el cambio en
las q(xi ).

Utilizando la desigualdad de Jensen, puede obtenerse otra notable desi-


gualdad, tambin de amplio alcance en el campo de la Teora de la Infor-
macin, conocida habitualmente como desigualdad de Gibbs.

Teorema 2.4 (Desigualdad de Gibbs). Sean dos distribuciones de pro-


babilidad de n elementos:

p = (p1 , p2 , . . . , pn )
q = (q1 , q2 , . . . , qn ).

Se cumple la siguiente desigualdad:

n
X X n
1 1
pi log pi log .
i=1
pi i=1
qi

Asimismo, se cumple la igualdad si y slo si las dos distribuciones de pro-


babilidad son idnticas.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 39

Demostracin. Demostremos en primer lugar que se satisface la desi-


gualdad:
n
X X n X n
1 1 qi
pi log pi log = pi log
i=1
pi i=1 qi i=1
p i
n
X qi
log pi
i=1
pi
n
X
= log qi
i=1
= log 1
=0
siguindose la desigualdad de la demostracin de la desigualdad de Jensen.
Consideremos ahora las condiciones para que se verifique la igualdad. La
suficiencia de la condicin es evidente. Demostremos, pues, que la condicin
es tambin necesaria.
Como la base del logaritmo es irrelevante para la demostracin, tomare-
mos logaritmos neperianos por razones de conveniencia. Por ser la funcin
logaritmo una funcin convexa, la grfica de la funcin logaritmo no est
nunca por encima de la tangente a la misma en cualquier punto; en particu-
lar, no est por encima de la tangente a la curva en el punto x = 1, que para
el logaritmo neperiano ser la recta x 1. Por otra parte, al ser la funcin
logaritmo estrictamente convexa, slo coincidir con la recta tangente en el
punto de tangencia, es decir, el punto de abscisa 1; en este caso:
(
ln x = 0; x=1
ln x < x 1; x 6= 1 (x > 0)
En virtud de lo anterior, se cumple que
qi qi
ln < 1 pi 6= qi .
pi pi
Por tanto, si y slo si i tal que pi 6= qi , se cumple que
X n X n   X n Xn
qi qi
pi ln < pi 1 = qi pi = 0
i=1
pi i=1
pi i=1 i=1
n
X n
X
ya que pi = qi = 1; con lo que queda demostrado que
i=1 i=1
n
X qi
pi log = 0 = pi = qi i.
i=1
pi
40 La entropa

1
y

-1

-2

-3
0 1 2 3 4 5
x

Figura 2.3. Grficas de ln x y de x 1.

2.3. Propiedades de la entropa

De acuerdo con la definicin de entropa, se trata de una funcin definida


en una regin convexa (la regin de vectores de probabilidad), continua en
todo el dominio de definicin de la funcin. Se ver ahora, adems, que
tal funcin es tambin convexa en todo el dominio de definicin y que est
acotada tanto superior como inferiormente.
La cota inferior es el cero, valor que se alcanza solamente cuando el vec-
tor de probabilidades tiene una nica componente no nula, es decir, cuando
corresponde a un fenmeno en el que no hay aleatoriedad (fenmeno deter-
minista). Esto significa, de entrada, que la entropa permite distinguir entre
aleatoriedad (entropa no nula) y determinismo (entropa nula).
Por otra parte, la cota superior de la entropa depende del nmero de
componentes no nulas del vector de probabilidad, siendo una funcin estric-
tamente creciente de dicho nmero. Y tal cota superior se alcanza solamente
para una distribucin de probabilidad uniforme. Es decir, de entre todas las
distribuciones de probabilidad con un nmero de elementos de probabilidad
no nula dados, la uniforme es la que tiene un mayor valor de la entropa.
Si se tiene en cuenta que una distribucin uniforme es aqulla en la que
la probabilidad de acertar lo que va a ocurrir, siempre que se adopte una
hiptesis razonable, es mnima, puede decirse que una distribucin uniforme
representa la incertidumbre mxima, por lo que tambin el mximo de la
entropa se corresponde con el mximo de la incertidumbre.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 41

Habida cuenta, adems, de que H(p) es una funcin continua de p, y que,


como se ver ms adelante, tal funcin es convexa, puede pensarse en utilizar
la entropa como una medida de la incertidumbre de un fenmeno aleatorio.
En este sentido, si se tiene en cuenta que la incertidumbre acerca de un
experimento o fenmeno aleatorio desaparece una vez conocido el resultado
del mismo, puede decirse que la realizacin del experimento o la observacin
del fenmeno nos proporciona informacin, y en la misma medida, adems,
en que antes haba incertidumbre. Por este motivo, puede considerarse la
entropa una medida de la cantidad de informacin que proporciona un
experimento o fenmeno. Obviamente, esta medida no es nica; pero s
que es la nica que satisface una propiedad adicional, que denominaremos
propiedad de particin, segn la cual la adquisicin del conocimiento por
partes no requiere ms informacin.5

2.3.1. Propiedad de particin

Teorema 2.5. Sea X una variable aleatoria discreta de rango X . Conside-


remos una particin de X dada por dos subconjuntos del mismo, A1 y A2 ; es
decir, sean A1 y A2 dos subconjuntos disjuntos de X tales que A1 A2 = X .
Entonces se cumple que

H(X) = H(p) + pH(A1 ) + (1 p)H(A2 )

siendo p = P(A1 ) y siendo H(Ai ) la incertidumbre remanente si se sabe que


el valor que toma la variable aleatoria X pertenece a A i .

Demostracin. Sean

p(xi )
q(xi ) = P(X = xi | xi A1 ) =
p
p(xi )
r(xi ) = P(X = xi | xi A2 ) =
1p

las funciones de masas de probabilidad de los elementos de A1 y A2 , res-


pectivamente.

5 En todo caso, no es claro que la entropa sea una medida de la informacin ms

adecuada por el hecho de satisfacer la propiedad de particin; de hecho, la entropa se


usa porque una cantidad de inters, como la longitud mnima de los mensajes de una
fuente para una comunicacin fiable, se determina a travs del concepto de entropa.
42 La entropa

n
X X X
1 1 1
H(X) = p(xi ) log = p(xi ) log + p(xi ) log
p(x i ) p(x i ) p(x i)
i=1 xi A1 xi A2
X 1 X 1
=p q(xi ) log + (1 p) r(xi ) log
pq(xi ) (1 p)r(xi )
xi A1 xi A2
!
X 1 X 1
=p q(xi ) log + q(xi ) log
q(xi ) p
xi A1 xi A1
!
X 1 X 1
+ (1 p) r(xi ) log + r(xi ) log .
r(xi ) 1p
xi A2 xi A2

Teniendo en cuenta que


X 1
q(xi ) log = H(A1 )
q(xi )
xi A1
X 1
r(xi ) log = H(A2 )
r(xi )
xi A2

y que
X 1 1 X 1
q(xi ) log = log q(xi ) = log
p p p
xi A1 xi A1
X 1 1
r(xi ) log = log
1p 1p
xi A2

entonces resulta que


1 1
H(X) = pH(A1 ) + (1 p)H(A2 ) + p log + (1 p) log
p 1p
= pH(A1 ) + (1 p)H(A2 ) + H(p).

Esta propiedad nos dice que un experimento aleatorio que se pueda


descomponer en varios otros ms elementales tendr una entropa igual a la
suma de las entropas de todos los experimentos elementales.

Ejemplo 2.6. Supongamos que tenemos en una urna ocho bolas numeradas
del 1 al 8. Supongamos adems que las bolas impares estn dentro de una
caja etiquetada con un 1; y las pares, dentro de una caja etiquetada con un
2. Imaginemos en primer lugar un experimento E1 consistente en extraer al
azar una bola de la urna (sin reparar en qu caja estaba) y observar cul
es su nmero. Representemos por X la variable aleatoria que caracteriza
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 43

dicho experimento. El rango de X contiene ocho valores equiprobables, por


lo que la informacin que nos suministra la realizacin del experimento E1
es H(X) = log 8 = 3 bits.
Imaginemos ahora que el experimento anterior se realiza en dos pasos
consecutivos. Representemos tal experimento por F1 F2 , siendo F1 el pri-
mer paso del experimento, consistente en elegir al azar una de las cajas de
bolas de la urna y observar cul es el nmero de su etiqueta, y siendo F2 el
segundo paso del experimento, consistente en extraer finalmente una bola
de la caja elegida en el primer paso del experimento y observar cul es su
nmero. El conocimiento que se obtiene al final de este nuevo experimento
es exactamente el mismo que el que se obtiene con el experimento E1 .
Representemos por Y1 la variable aleatoria que caracteriza el experi-
mento F1 . El rango de Y1 contiene dos valores equiprobables, por lo que
la informacin que nos suministra la realizacin del experimento F1 es
H(Y1 ) = log 2 = 1 bit.
El resultado del experimento F2 estar condicionado, obviamente, por el
resultado de F1 . Representemos por Y21 la variable aleatoria que caracteriza
el experimento F2 cuando en el primer paso se ha elegido la caja etique-
tada con el 1. El rango de Y21 contiene cuatro valores equiprobables, por lo
que la informacin que nos suministra la realizacin del segundo paso del
experimento es, en este caso, H(Y21 ) = log 4 = 2 bits. Representemos por Y22
la variable aleatoria que caracteriza el experimento F2 cuando en el primer
paso se ha elegido la caja etiquetada con el 2. El rango de Y22 contiene
igualmente cuatro valores equiprobables, por lo que la informacin que nos
suministra la realizacin del segundo paso del experimento es, tambin en
este caso, H(Y22 ) = log 4 = 2 bits. Finalmente, si se denomina H(Y2 ) al
promedio de las entropas del segundo experimento, se tiene que
H(Y2 ) = H(Y21 ) P(Y1 = 1) + H(Y22 ) P(Y1 = 2) = 2 bits
y por tanto, efectivamente, se cumple que
H(X) = H(Y1 ) + H(Y2 ).

2.3.2. Definicin axiomtica de la entropa

Se puede demostrar que la entropa es la nica funcin de una distri-


bucin de probabilidad, H(p1 , p2 , . . . , pn ), que cumple las siguientes propie-
dades:

1. H(p1 , p2 , . . . , pn ) es una funcin continua de los pi ;


2. si todos los pi son iguales, H(p1 , p2 , . . . , pn ) es una funcin montona
creciente de n;
44 La entropa

3. H(p1 , p2 , . . . , pn ) cumple la propiedad de particin anterior;

motivo por el que las tres condiciones expuestas pueden ser utilizadas para
una introduccin axiomtica del concepto de entropa.

Teorema 2.6. La nica funcin H(p1 , p2 , . . . , pn ) que satisface las tres con-
diciones anteriores es de la forma
n
X
H = K pi log pi .
i=1

Demostracin. Como ya se sabe que la funcin anterior satisface las tres


propiedades fijadas, lo que habr que probar es que no puede satisfacer
dichas propiedades ninguna otra funcin.
Como, por la condicin 2, H(p1 , p2 , . . . , pn ) debe ser una funcin de n
cuando todos los pi son iguales, sea A(n) = H(1/n, 1/n, . . . , 1/n). Vamos a
demostrar en primer lugar que, por las condiciones 2 y 3, debe ser A(n) =
K log n.
Supongamos que la eleccin aleatoria de un elemento de entre un conjun-
to de ms elementos equiprobables, siendo m y s nmeros enteros positivos
cualesquiera, y cuya entropa por tanto es A(ms ), se descompone en s elec-
ciones sucesivas de forma que en cada una de ellas se elija entre m valores
equiprobables. Por la condicin 3, se cumple que:
A(ms ) = A(m) + A(ms1 )
A(ms1 ) = A(m) + A(ms2 )
..
.
A(m2 ) = A(m) + A(m)
de donde se sigue que A(ms ) = sA(m).
De manera anloga, A(nt ) = tA(n). Podemos elegir t arbitrariamente
grande y encontrar un s que satisfaga
ms nt ms+1 .
As, tomando logaritmos y dividiendo por t log m, se tiene que
s log n s 1
+
t log m t t
por lo que la diferencia entre s/t y log n/ log m puede hacerse arbitra-
riamente pequea:
s
log n < 
t log m
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 45

donde  es una cantidad arbitrariamente pequea.


Por otra parte, por ser A(n) una funcin montona creciente de n:

A(ms ) A(nt ) A(ms+1 )


sA(m) tA(n) (s + 1)A(m)
s A(n) s 1
+
t A(m) t t

por lo que la diferencia entre s/t y A(n)/A(m) puede hacerse arbitra-


riamente pequea como antes:

s
A(n) < .
t A(m)

De todo lo anterior se concluye que



A(n) log n

A(m) log m < 2

y por lo tanto, necesariamente, A(n) = K log n, donde K debe ser una


constante positiva para que se satisfaga la condicin 2.
Consideremos ahora el caso ms general de que las n posibilidades de
eleccin arbitraria no sean equiprobables; pero supongamos que tales proba-
bilidades son nmeros racionales. En tal caso, dichas probabilidades sern
de la forma pi = X ni donde los n son enteros positivos.
i
ni
P
La eleccin aleatoria de un elemento de entre ni elementos Pequiproba-
bles tendr, segn se ha visto hasta ahora, una entropa K log ni . Pero si
se descompusiese dicha eleccin en dos pasos, de forma que en el primer pa-
so se escogiese entre n posibles conjuntos con n1 , n2 , . . . , nn elementos cada
uno (es decir, de probabilidades p1 , p2 , . . . , pn ), y a continuacin se eligiese
un elemento del conjunto, al ser todas las elecciones equiprobables, por la
condicin 3 se tendra que
X X
K log ni = H(p1 , p2 , . . . , pn ) + K pi log ni .

P
De la anterior igualdad, y teniendo en cuenta que pi = 1, se sigue que
X X X 
H(p1 , p2 , . . . , pn ) = K pi log ni pi log ni
X ni
= K pi log P
ni
X
= K pi log pi .
46 La entropa

Para finalizar, slo hay que demostrar que la misma igualdad se obten-
dra en el caso de que los pi fuesen irracionales, lo que se sigue de la con-
tinuidad de los pi (condicin 1), ya que existe un nmero racional que se
aproxima tanto como se quiera a un nmero irracional cualquiera.

2.3.3. Convexidad de la entropa

Teorema 2.7 (Convexidad de la entropa). Sea p = (p1 , . . . , pn ) una


distribucin de probabilidades; H(p) es una funcin convexa de p.

Demostracin. Dado que por definicin


n
X
H(p) = pi log pi
i=1

y dado que, por el teorema 2.2 (criterio de la segunda derivada), pi log pi


es una funcin convexa de pi ; entonces, en virtud del teorema 2.1, se tiene
que H(p) es convexa.

Corolario 2.8. En particular, para distribuciones de probabilidad binarias,


dadas dos distribuciones de probabilidad (p, q) y (p0 , q 0 ) tales que |p0 q 0 |
|p q|, se tiene que H(p) H(p0 ).

Demostracin. Sean p1 = (p, q) y p2 = (q, p); y sea p0 = (p0 , q 0 ), con


p0 = p1 + (1 )p2 , 0 < < 1. Entonces, en virtud del teorema anterior:

H(p0 ) H(p1 ) + (1 )H(p2 )


H(p0 ) H(p) + (1 )H(p) = H(p).

2.3.4. Acotacin de la entropa

Los teoremas que se establecen a continuacin enuncian que la entropa


de una variable aleatoria discreta tiene una cota inferior (el cero) y una cota
superior (el logaritmo del cardinal del rango de la variable aleatoria), y nos
dan adems las condiciones para alcanzar tales cotas.

Teorema 2.9. El valor de la entropa es o positivo o nulo; y es condicin


necesaria y suficiente para que H(X) = 0 que la distribucin de probabili-
dades de la variable aleatoria X tenga un nico elemento no nulo.

Demostracin. Es obvio que el valor de la entropa es o positivo o nulo,


ya que, de acuerdo con su definicin, la entropa es una suma de trminos
no negativos.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 47

Es obvio tambin que si slo hay un p(xi ) 6= 0 ste debe valer 1; y resulta
entonces que H(X) = 1 log 1 = 0.
Por otra parte, dado que la entropa es, por definicin, una suma de
trminos no negativos, tal suma slo valdr cero cuando todos los trminos
sean nulos. De lo que se deduce que, necesariamente, habr de cumplirse
siempre que p(xi ) = 0 o que p(xi ) = 1 i; y como todos los p(xi ) deben
sumar necesariamente uno, entonces existe un valor y slo uno de i para el
que p(xi ) = 1.

Teorema 2.10. Siendo n el nmero de elementos de la distribucin de


probabilidades de la variable aleatoria X, se verifica que

H(X) log n.

Es adems condicin necesaria y suficiente para que H(X) = log n que la


distribucin de probabilidades de la variable aleatoria X sea uniforme, es
decir, que p(xi ) = n1 i.

Demostracin. En virtud de la desigualdad de Gibbs se tiene que


n
X 1
H(X) = p(xi ) log
i=1
p(xi )
n
X 1
p(xi ) log
i=1
1/n
= log n

cumplindose la igualdad si y slo si p(xi ) = 1/n i.

2.4. Entropa conjunta

En la seccin anterior hemos definido la entropa de una variable alea-


toria X. Se da el caso de que, a veces, interesa considerar fenmenos en
los que aparecen dos variables aleatorias. Sea una de ellas la anterior varia-
ble aleatoria X; y sea Y otra variable aleatoria de rango discreto y finito
Y = {y1 , y2 , . . . , ym }, cuya funcin de masa de probabilidad es pY (y) =
P(Y = y).
Consideradas conjuntamente las dos variables aleatorias, X e Y , tenemos
una nueva variable aleatoria: la variable aleatoria bidimensional (X, Y ), cuyo
rango, tambin discreto y finito, ser

X Y = {(xi , yi ) : xi X , yi Y}
48 La entropa

y cuya funcin de masa de probabilidad ser p(x, y) = P(X = x, Y = y).


Como, a la hora de calcular la entropa, lo nico relevante son los valores
de las probabilidades, pero no los valores que puede tomar la variable aleato-
ria, entonces no hay ninguna dificultad para extender la definicin de entro-
pa a variables aleatorias bidimensionales (o, en general, n-dimensionales).
As, la entropa de la variable aleatoria bidimensional (X, Y ) vendr dada
por
X n X m
1
H(X, Y ) = p(xi , yj ) log .
i=1 j=1
p(x i , yj )

Definicin 2.5 (Entropa conjunta). Se define la entropa conjunta


de las variables aleatorias X e Y como la entropa de la variable aleatoria
bidimensional (X, Y ).

Por supuesto, la definicin anterior puede extenderse sin ninguna difi-


cultad para cualquier nmero arbitrario de variables aleatorias discretas.

2.4.1. Relacin entre las entropas individuales y la conjunta

Vamos a probar a continuacin que la entropa conjunta de dos variables


aleatorias no puede superar a la suma de las entropas de dichas variables
aleatorias consideradas por separado. Y, ms an, que es condicin necesaria
y suficiente para que la entropa conjunta valga lo mismo que la suma de las
entropas individuales que ambas variables aleatorias sean independientes
entre s.

Teorema 2.11. Se verifica en general que

H(X, Y ) H(X) + H(Y )

siendo condicin necesaria y suficiente que las variables aleatorias X e Y


sean independientes entre s para que se cumpla que

H(X, Y ) = H(X) + H(Y ).

Demostracin. Dado que


X X
p(xi ) = p(xi , yj ), p(yj ) = p(xi , yj )
j i
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 49

entonces:
XX 1
H(X) = p(xi , yj ) log
i j
p(xi )
XX 1
H(Y ) = p(xi , yj ) log .
i j
p(yj )

Por tanto,
XX 1
H(X) + H(Y ) = p(xi , yj ) log
i j
p(xi )p(yj )
XX 1
p(xi , yj ) log
i j
p(xi , yj )
= H(X, Y )

donde la desigualdad se sigue de la desigualdad de Gibbs; por lo que se tiene,


adems, que se cumplir la igualdad si y slo si se verifica que p(xi , yj ) =
p(xi )p(yj ) (xi , yj ).

Resulta fcil verificar que esta propiedad es extensible para cualquier


nmero de variables aleatorias discretas.

Notas bibliogrficas

El concepto de entropa se debe a Shannon [59], as como tambin el


anlisis de sus propiedades fundamentales. El trmino entropa lo introdujo
Clausius en 1876 en el campo de la Termodinmica, donde este concepto
sirve para enunciar la segunda ley de la Termodinmica. Shannon utiliz
este trmino por la semejanza de H(X) con la expresin de la entropa
introducida por Boltzmann en 1896 en la Mecnica Estadstica. La relacin
entre la entropa de la Teora de la Informacin y la segunda ley de la
Termodinmica se explora brevemente en [15].
Shannon extendi asimismo en [60] los conceptos de este captulo al caso,
matemticamente un poco ms complejo, de variables y vectores aleatorios
continuos. Puede consultarse tambin en prcticamente cualquier libro de
Teora de la Informacin, siendo especialmente recomendables [26, 45, 15].
CAPTULO 3

Codificacin de fuente

En este captulo se va a analizar el problema de la codificacin de fuente,


entendido ste como el de decidir la forma ms conveniente de representar
los mensajes de la fuente para la consecucin de una transmisin fiel y
eficiente de los mismos si se ignoran los errores que se producen en el medio
de transmisin, tal y como ya se expuso en el primer captulo del libro.
Dada una fuente discreta con alfabeto finito F y dado un alfabeto de
codificacin tambin finito D, se considerarn nicamente los cdigos con-
sistentes en asignar unvocamente a cada elemento de F n , para un valor de
n dado, una secuencia de elementos de D, que denominaremos palabra del
cdigo. Los cdigos de este tipo reciben habitualmente la denominacin de
cdigos de bloques.1 La caracterstica ms notable de los cdigos de bloques
es que asignan siempre a cada secuencia de smbolos de longitud n de la
fuente la misma secuencia de elementos del alfabeto de codificacin, con
independencia de lo que haya ocurrido con anterioridad, por lo que estos
cdigos tambin se denominan cdigos sin memoria.
Ahora bien, no todos los cdigos de bloques son igualmente convenientes
para nuestro propsito. En primer lugar, el requisito de la transmisin fiel de
los mensajes impone una restriccin en la eleccin del cdigo: los cdigos de
bloques vlidos reciben el nombre de cdigos unvocamente decodificables.
Son cdigos unvocamente decodificables todos aqullos con los que siempre
es posible recuperar sin error el mensaje original (el mensaje de la fuente)
a partir de su versin codificada.2
1 A veces se utiliza esta denominacin con una acepcin ms restringida, para referirse

nicamente a aquellos cdigos de este tipo en que todas las secuencias de elementos de
D consideradas tienen tambin la misma longitud.
2 Esto no quiere decir que los cdigos que no son unvocamente decodificables sean

intiles para la comunicacin. Bien al contrario, existen algunos servicios de comunicacin

51
52 Codificacin de fuente

Aun ms, dentro de los cdigos unvocamente decodificables hay un


subconjunto especialmente conveniente: el de los cdigos instantneos. A
definir tanto los cdigos unvocamente decodificables, en general, como los
cdigos instantneos, en particular, y a analizar su necesidad o conveniencia,
dedicaremos el siguiente apartado de este captulo.

Se denomina longitud de una palabra del cdigo al nmero de smbolos


de D que la forman. Pues bien, la sntesis de cdigos instantneos con pala-
bras de longitud constante es bastante elemental. Pero, a veces, es ms
conveniente utilizar palabras de diferentes longitudes para la sntesis de un
cdigo. As, en el apartado 3.2 se analiza la cuestin de la sntesis de cdigos
instantneos con palabras de diferentes longitudes, y se define una medida
de la eficiencia de los mismos.

Seguidamente, se establece el teorema de Shannon de codificacin de


fuente (si bien slo para fuentes discretas sin memoria), resultado central de
este captulo, que establece la posibilidad (asinttica) de construir siempre
cdigos ptimos (cdigos de eficiencia unidad).

Dado que la posibilidad de construir cdigos ptimos es, en general, slo


asinttica, en el siguiente apartado se considera el problema de la asigna-
cin ptima de palabras a un conjunto dado de smbolos. Tales cdigos,
que no son necesariamente ptimos (en el sentido apuntado en el prrafo
anterior), se denominan comnmente cdigos compactos. Pues bien, se ver
que existe un mtodo sistemtico para la obtencin de un cdigo compacto:
el algoritmo de Huffman.

Finalmente, en los dos ltimos apartados del captulo se extiende el


teorema de Shannon para considerar modelos ms generales de fuentes.

3.1. Cdigos de bloques: cdigos unvocamente


decodificables y cdigos instantneos

Sea F = {0, 1, . . . , q 1} el alfabeto de una fuente discreta dada, y sea


F n el producto cartesiano formado por n conjuntos F, es decir, el conjunto
formado por todas las n-tuplas de elementos de F. Sea D = {0, 1, . . . , D1}
el alfabeto de codificacin.

que requieren del empleo de estos cdigos. Esto ocurre cuando existe una restriccin
para la longitud del mensaje codificado que no satisface ningn cdigo unvocamente
decodificable. Por supuesto, en tales casos, la decodificacin introducir una distorsin
en el mensaje original; y se tiene entonces otro problema, que aunque relacionado con
el nuestro no consideraremos en este texto: el de la minimizacin de la distorsin del
mensaje original para una restriccin de longitud de codificacin dada.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 53

Definicin 3.1 (Cdigo de bloques). Se llama cdigo de bloques a aqul


que a cada elemento de F n , para un valor de n cualquiera dado, le hace
corresponder unvocamente una secuencia fija de elementos de D.

As pues, matemticamente, un cdigo de bloques es una aplicacin


[
f : F n Di
i=1,2,...

siendo Di el producto cartesiano formado por i conjuntos D.


De acuerdo con la definicin anterior, dos aplicaciones distintas con el
mismo dominio de la aplicacin y la misma imagen seran dos cdigos de
bloques distintos. Pero a veces nicamente es de nuestro inters el conjunto
de secuencias de smbolos de D que se utilizan para la codificacin, es decir,
la imagen de la aplicacin; y en tales casos tambin se suele denominar
cdigo a tal conjunto, recibiendo sus elementos la denominacin de palabras
del cdigo.
Precisamente, nicamente del conjunto de palabras del cdigo depende
que sea posible siempre recuperar el mensaje original a partir de su versin
codificada, es decir, que sea posible la transmisin fiable.
Efectivamente, resulta fcil deducir que es condicin necesaria para la
fiabilidad de la transmisin que la aplicacin f sea inyectiva,3 es decir, que
todas las palabras del cdigo sean distintas. Los cdigos resultantes cuando
la aplicacin f es inyectiva se denominan cdigos no singulares. Se puede
establecer, por tanto, la siguiente definicin.

Definicin 3.2 (Cdigo no singular). Un cdigo de bloques se denomi-


na no singular cuando todas las palabras del cdigo son distintas.

Resulta fcil verificar, adems, que si todas las palabras del cdigo son de
longitud constante, la condicin de no singularidad del cdigo es condicin
suficiente para la transmisin fiel.4 Pero si las palabras del cdigo son de
distintas longitudes, la condicin de no singularidad no es suficiente para
la recuperacin fidedigna del mensaje en el receptor; ilustrmoslo con un
ejemplo.

Ejemplo 3.1. Sean D = {0, 1} y F = {a, b, c, d}, y considrese el siguiente


cdigo de bloques no singular:
3 Una funcin f se dice inyectiva si siempre ocurre que elementos distintos del conjunto

de partida tienen imgenes distintas en el conjunto de llegada, x 6= y f (x) 6= f (y).


4 Se est suponiendo implcitamente que hay tantas palabras en el cdigo como

smbolos tiene el alfabeto de la fuente.


54 Codificacin de fuente

a0
b 01
c 001
d 0001

Cuando el decodificador se encuentra con la siguiente secuencia


001001
qu debe interpretar?, es decir, cmo debe descomponer la secuencia de
bits recibida en una secuencia de palabras del cdigo? Obsrvese que existen
mltiples posibilidades:
0 01 0 01 (abab)
o bien 001 001 (cc)
o bien 0 01 001 (abc)
Como puede verse, en este caso la decodificacin no es unvoca, y as la
transmisin no puede ser fiable.

Pueden distinguirse, en consecuencia, dos grandes grupos de cdigos:


aqullos en que todas las palabras del cdigo constan de un mismo nmero
de elementos de D (cdigos de longitud constante) y aqullos en que no
(cdigos de longitud variable).
Los primeros conducen a codificadores y decodificadores ms sencillos;
pero no siempre minimizan la representacin de los mensajes de la fuente,
pues es bien conocido que, en algunos casos, cuando las probabilidades no
se reparten uniformemente, puede obtenerse una codificacin ms compacta
de los mensajes de la fuente si se asignan palabras del cdigo muy cortas
a los smbolos ms probables, aunque eso implique que haya que asignar
palabras del cdigo largas a los smbolos menos probables (como es el caso
del cdigo Morse).
Entonces, si las palabras del cdigo son de longitud variable, no basta
para la transmisin fiel con que sean distintas, sino que han de ser tales que
mensajes distintos tengan siempre secuencias distintas de elementos del alfa-
beto de codificacin de forma que no quepa ms que una interpretacin para
cada mensaje recibido. Se dice que tales cdigos son cdigos unvocamente
decodificables o de decodificacin unvoca. Formalicemos matemticamente
esta restriccin, introduciendo previamente el concepto de extensin de un
cdigo.

Definicin 3.3 (Extensin de orden n de un cdigo de bloques).


Considrese un cdigo de bloques cualquiera de un cierto alfabeto discreto
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 55

F, y sea i la palabra del cdigo correspondiente a un smbolo i F. La


extensin de orden n del cdigo de bloques anterior es el cdigo que resulta de
asignar a cada smbolo (i1 , i2 , . . . , in ) F n la secuencia (i1 , i2 , . . . , in )
de palabras del cdigo original.

Es claro, de acuerdo con la definicin anterior, que la extensin de orden


n de un cdigo de bloques es tambin un cdigo de bloques. Y tambin que
cualquier mensaje digital codificado, por largo que sea, puede considerarse
como una nica palabra del correspondiente cdigo de bloques extendido.

Definicin 3.4 (Cdigo unvocamente decodificable). Un cdigo de


bloques se dice unvocamente decodificable si y slo si su extensin de orden
n es no singular para cualquier valor finito de n.

Restringiremos nuestra atencin, por tanto, a los cdigos unvocamen-


te decodificables, ya que son los nicos en los que no hay posibilidad de
ambigedad en la descomposicin de una secuencia de elementos de D en
palabras del cdigo. Y dentro de los cdigos unvocamente decodificables
centraremos nuestro inters en el subconjunto formado por aquellos cdigos
en los que no slo se identifica sin ambigedad cada palabra del cdigo, sino
que se hace tal identificacin nada ms recibir el ltimo smbolo que la in-
tegra. Tales cdigos, que reciben por tal motivo la denominacin de cdigos
instantneos, permiten simplificar el proceso de decodificacin sin sacrifi-
car a cambio eficiencia de codificacin, tal y como se ver en el siguiente
apartado (teoremas de Kraft y de McMillan).

Definicin 3.5 (Cdigo instantneo). Un cdigo de bloques unvoca-


mente decodificable se denomina instantneo cuando es posible decodificar
las palabras de una secuencia sin precisar el conocimiento de los smbolos
que las suceden.

Ejemplo 3.2. Un claro ejemplo de cdigo unvocamente decodificable y no


instantneo es el siguiente:

a0
b 01
c 011
d 0111

Basta ver, para cerciorarse de que no puede haber ambigedad en la deco-


dificacin, que todas las palabras del cdigo empiezan por un nico cero,
diferencindose unas de otras por el nmero de unos que siguen al cero: nin-
guno (a), uno (b), dos (c) o tres (d). As pues, la estrategia de decodificacin
56 Codificacin de fuente

es simple: despus de recibir un cero, se cuenta el nmero de unos hasta el


siguiente cero. Queda claro, adems, que slo se identifica cada una de las
palabras del cdigo al recibir el siguiente cero, es decir, el primer smbolo de
la siguiente palabra del cdigo, y por tanto este cdigo no es instantneo; lo
que se puede deducir tambin simplemente de un examen de las palabras del
cdigo, ya que la primera palabra del cdigo es prefijo de todas las dems,
la segunda es prefijo de la tercera y la cuarta, y la tercera es prefijo de la
cuarta.

Ejemplo 3.3. Un claro ejemplo de cdigo instantneo es el siguiente:

a0
b 10
c 110
d 1110

Basta ver, para cerciorarse de que no puede haber ambigedad en la deco-


dificacin, que todas las palabras del cdigo terminan con un nico cero,
diferencindose unas de otras por el nmero de unos que preceden al cero:
ninguno (a), uno (b), dos (c) o tres (d). As pues, la estrategia de decodi-
ficacin es simple: basta contar el nmero de unos hasta el siguiente cero.
Y ahora, adems, se identifican todas las palabras del cdigo al recibir el
cero, es decir, el ltimo smbolo de la palabra del cdigo. Esto se deduce
tambin, como hemos dicho, del hecho de que ninguna palabra del cdigo
es prefijo de otra.

Ejemplo 3.4. Una variante del cdigo instantneo anterior, ms eficiente,


es el cdigo siguiente:

a0
b 10
c 110
d 111

Obsrvese que no es necesario que todas las palabras del cdigo finalicen
con un cero. Sabra cul es ahora el proceso de decodificacin?

A la vista de los ejemplos anteriores, es claro, adems, que se cumple el


siguiente teorema.

Teorema 3.1. Es condicin necesaria y suficiente para que un cdigo sea


instantneo que ninguna palabra del cdigo sea prefijo de otra, es decir, que
ninguna palabra del cdigo se forme aadiendo smbolos al final de otra
palabra del cdigo.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 57

En virtud de este teorema, por tanto, se puede verificar por simple ins-
peccin si un cdigo dado es instantneo (y por tanto unvocamente deco-
dificable) o no. Obsrvese que el hecho de que un cdigo no sea instantneo
no implica necesariamente que el cdigo no sea unvocamente decodificable.
La figura 3.1 representa por medio de diagramas de Venn la relacin
entre los distintos tipos de cdigos considerados.

Cdigos de bloques

Cdigos no singulares

Cdigos unvocamente decodificables

Cdigos instantneos

Figura 3.1.

A nosotros nos interesa, pues, en este libro la sntesis del cdigo instan-
tneo ms conveniente para representar los mensajes de una fuente dada. Y
ser mas conveniente aqul para el que sea menor el nmero de smbolos del
alfabeto de codificacin necesarios (en media) para representar cada smbolo
de la fuente. Tal parmetro se denomina longitud del cdigo.

Definicin 3.6 (Longitud del cdigo). Sea F el alfabeto de la fuente


considerada y sea D el alfabeto de codificacin. Consideremos un cdigo de
bloques general dado por
[
f : F n Di
i=1,2,...

Sea Ln el nmero medio de smbolos de D que tienen los elementos de la


imagen de f . Se define la longitud del cdigo como
Ln
L= .
n

Naturalmente, el valor de Ln , y por tanto el de L, depende no slo de los


elementos de la imagen de f , sino tambin de su probabilidad, que depende
de la probabilidad del smbolo de F n al que representa:
X
Ln = p i li
i

siendo li la longitud de la palabra del cdigo que representa al smbolo


i F n y siendo pi = P(X = i) la probabilidad de dicho smbolo.
58 Codificacin de fuente

Raz del rbol

0 1
Nodos de primer orden
0
0 1
Nodos de segundo orden
10
0 1
Nodos de tercer orden
110 111

Figura 3.2.

3.2. Sntesis de cdigos instantneos con palabras de


longitud variable

Una representacin grfica de las palabras de un cdigo instantneo


puede obtenerse simplemente representando cada palabra del cdigo por un
nodo terminal de un rbol. A ttulo de ejemplo, se muestra en la figura 3.2
el rbol que representa las palabras del cdigo del ejemplo 3.4. Los dgitos
sucesivos de cada palabra del cdigo pueden entenderse como instrucciones
para subir5 desde la raz del rbol hasta el nodo terminal que representa la
letra de la fuente deseada.
Se define un rbol completo de orden n y alfabeto de tamao D como
un rbol con D nodos de orden i provenientes de cada nodo de orden i 1
para cada 1 i n; es decir, un rbol completo de orden n es aqul en el
que todas las ramas se extienden por igual hasta los nodos de orden n.
Obsrvese que, en un rbol completo, una fraccin D 1 de los nodos de
cada orden i 1 provienen de cada uno de los D nodos de orden 1. De
igual forma, una fraccin D 2 de los nodos de cada orden i 2 provienen
de cada uno de los D 2 nodos de orden 2; y una fraccin D i de los nodos
de cada orden mayor o igual que i provienen de cada uno de los D i nodos
de orden i.
As, un cdigo instantneo cuya palabra del cdigo ms larga tenga
longitud nmax se corresponde con un subrbol de un rbol completo de orden
nmax . Y todo rbol con q ramas se corresponde con un cdigo instantneo
de cualquier alfabeto fuente de q elementos. Habr, naturalmente, mltiples
5 En el caso de la figura 3.2, para bajar, dado que el rbol se ha representado invertido.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 59

posibles cdigos instantneos, de los que nos interesar saber cul es el de


longitud mnima.
Dejando de lado momentneamente la bsqueda de la mejor manera de
construir cdigos instantneos, lo que s parece claro es que la eleccin de
un valor pequeo para unas li hace que otras li tengan que superar un cierto
umbral. El teorema de Kraft formaliza este hecho.

Teorema 3.2 (de Kraft). Es condicin necesaria para que un cdigo sea
instantneo que se verifique
q1
X
Dli 1 (3.1)
i=0

siendo li la longitud de la palabra del cdigo correspondiente al smbolo


i F. Adems, dicha condicin es suficiente para construir un cdigo ins-
tantneo con palabras del cdigo de longitudes li .

Demostracin. Sean l0 , . . . , lq1 tales que satisfagan la ecuacin (3.1), y


supongamos, para simplificar la notacin, que l0 l1 lq1 .
Veamos primero cmo construir un cdigo instantneo con estas longi-
tudes. Considrese el rbol completo de orden n = lq1 y eljase un nodo
cualquiera de orden l0 , llammosle x0 ; tenemos disponibles an todos los
nodos de orden mayor o igual que l0 excepto los que provienen del nodo x0 ,
cuyo nmero ser como mucho la fraccin D l0 del total de nodos terminales
del rbol completo. A continuacin se selecciona cualquier nodo disponible
de orden l1 , llammosle x1 ; despus de esto permanecen todava disponi-
bles todos los nodos de orden mayor o igual que l1 del rbol completo a
excepcin de los que provienen de x0 o x1 , cuyo nmero ser como mucho
la fraccin Dl0 + Dl1 del total de nodos terminales del rbol completo.
Continuando de esta manera, despus de la asignacin del j-simo nodo
quedarn disponibles todos los nodos del rbol completo de orden igual o
mayor que lj a excepcin de los que provienen de los nodos x0 a xj , cuyo
Pj
nmero ser como mucho la fraccin i=0 Dli del total de nodos del rbol
completo. Por la desigualdad (3.1), esta fraccin es siempre estrictamente
menor que 1 para j < q 1, y por tanto siempre hay algn nodo disponible
para ser asignado como siguiente nodo terminal.
Para probar la segunda parte del teorema, ntese que el rbol correspon-
diente a cualquier cdigo instantneo puede insertarse en un rbol completo
cuyo orden sea igual a la longitud mayor de las palabras del cdigo. Un nodo
terminal de orden li en el rbol del cdigo dar lugar a una fraccin D li de
los nodos terminales del rbol completo. Puesto que los conjuntos de nodos
terminales del rbol completo provenientes de diferentes nodos terminales
60 Codificacin de fuente

del rbol del cdigo son disjuntos, estas fracciones sumarn como mucho 1,
obtenindose la desigualdad (3.1).

Ejemplo
P 3.5. Sea D = 3 y sean las longitudes (1, 1, 2, 2, 3, 3, 4, 4, 4). Enton-
ces, i 3li = 1. Y un cdigo instantneo cuyas longitudes sean las dadas
es el que se representa en el siguiente rbol:

0 1 2

0 1
0 1 2

20 21
0 1 2

220 221
0 1 2

2220 2221 2222

Como consecuencia inmediata de este teorema se puede demostrar una


importante desigualdad.

Corolario 3.3. La longitud de un cdigo instantneo, L, cumple que

L HD (X).

Demostracin. Para un cdigo de bloques con n = 1 se tiene:


q1
X X q1
1
HD (X) L1 = pi logD p i li
i=0
pi i=0
q1
X Dli
= pi logD
i=0
pi
q1
X Dli
log pi
i=0
pi
0
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 61

verificndose la primera desigualdad en virtud de la desigualdad de Jensen


y la segunda en virtud del teorema de Kraft.
Anlogamente, para un valor arbitrario de n se tiene que

Ln HD (X n )

siendo X n la variable aleatoria que representa las n-tuplas de smbolos de


la fuente.
Pero como, por otra parte, se sabe que Ln = nL; y que HD (X n ) =
nHD (X), por ser las componentes de X n independientes e idnticamente
distribuidas; entonces se obtiene el resultado del corolario.

El resultado anterior nos proporciona una interesante interpretacin del


concepto de entropa:

La entropa de una fuente representa el nmero mnimo de sm-


bolos del alfabeto de codificacin que son necesarios (en media)
para representar cada smbolo de la fuente.

Podramos preguntarnos ahora si no existir algn cdigo unvocamente


decodificable no instantneo para el que L < HD (X). Pues bien, el teorema
de McMillan responde negativamente a esta pregunta.

Teorema 3.4 (de McMillan). Es condicin necesaria para que un cdigo


sea unvocamente decodificable que se cumpla
q1
X
Dli 1.
i=0

Demostracin. Sea C k la k-sima extensin del cdigo unvocamente de-


codificable C, es decir, el cdigo formado por todas las secuencias que se
pueden formar concatenando k palabras del cdigo C. Por definicin, C k es
un cdigo no singular.
Sean 0 , 1 , . . . , q1 las palabras del cdigo C, y sean l0 , l1 , . . . , lq1 sus
respectivas longitudes.
Sea ik C k una secuencia de k palabras del cdigo C cuya longitud
(igual a la suma de las longitudes de las k palabras del cdigo C que la
forman) representaremos por |ik |. Entonces se verifica que

q1
!k
X X k
Dli = D|i |
i=0 ik C k
62 Codificacin de fuente

donde |ik | estar acotada inferiormente por klmin y superiormente por


klmax , siendo

lmin = mn (li ; 0 i q 1)
ax (li ; 0 i q 1).
lmax = m

Si se representa por nl el nmero de palabras de C k de longitud l, en-


tonces resultar que

q1
!k kl
X X max
li
D = nl Dl .
i=0 l=klmin

Y como, por ser C unvocamente decodificable, nl Dl , entonces

q1
!k kl
X X max

Dli 1
i=0 l=klmin

Por otra parte, al ser klmin 0, se cumple que

q1
!k
X
Dli klmax
i=0

Pq1 1
de donde i=0 Dli (klmax ) k k.
1
Obsrvese por ltimo que (klmax ) k es una funcin decreciente de k, y
1
tambin que lmk (klmax ) k = 1; y se tiene como conclusin que
q1
X
Dli 1.
i=0

3.3. Cdigos ptimos

Se ha establecido en el apartado anterior la existencia de una cota inferior


para la longitud de un cdigo instantneo (unvocamente decodificable) de
una fuente dada: L HD (X). Es fcil asimismo verificar que tal cota es
alcanzable codificando los smbolos de la fuente de uno en uno, pero slo
en el caso de que las probabilidades de los smbolos de la fuente cumplan
cierta condicin, que se establece a continuacin.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 63

Teorema 3.5. Dado un cdigo instantneo (unvocamente decodificable) de


longitud L, es condicin necesaria y suficiente para que L = HD (X) que se
cumpla que pi = Dli i.

Demostracin. Ya se ha visto en el apartado anterior que


X Dli
HD (X) L = pi logD .
i
pi

Resulta, pues, obvio que es condicin suficiente para que HD (X) L = 0


que se cumpla pi = Dli i. Demostremos ahora que dicha condicin es
tambin necesaria.
Dli P
Sea qi = P li . Se verifica que qi > 0 i, y i qi = 1. Por tanto,
iD
en virtud de la desigualdad de Gibbs, se tiene que
X 1
HD (X) pi logD
i
q i
X 1 X X
= pi logD li + pi logD Dli
i
D i i
X X
li
= pi li + logD D
i i
X
li
= L + logD D .
i
P
Y dado que, por el teorema de Kraft (teorema de McMillan), i Dli 1,
entonces X
logD Dli 0
i

por lo que, para que se cumpla que HD (X) = L, se tienen que cumplir
simultneamente las dos condiciones siguientes:
P li
iD =1
li
D
pi = qi = X l i
D i
i

es decir, se tiene que cumplir que D li = pi i.

Una consecuencia interesante de este teorema es el siguiente corolario:

Corolario 3.6 (Fuente incompresible). Si X es una variable aleatoria


uniforme con un rango de D valores de probabilidad no nula, los mensajes
de la fuente X no se pueden compactar.
64 Codificacin de fuente

Demostracin. Efectivamente, en este caso L = HD (X) = 1, por lo que


no se puede hacer nada mejor que dejar el mensaje de la fuente invariado.

Desafortunadamente, en general logD p1i no es una cantidad entera, y no


se puede hacer siempre li = logD p1i i. En tales casos, para que se cumpla
la inecuacin de Kraft, podramos tomar
 
1
li = logD
pi
P
ya que as se garantiza el cumplimiento de la condicin i Dli 1; ve-
moslo:
1
li logD Dli pi
pi
X X
Dli pi Dli pi = 1.
i i

Por otra parte, los valores de li as elegidos verifican que

1
li < logD +1 i
pi

por lo que se puede obtener una cota superior para la longitud del cdigo.

Teorema 3.7. Dada una distribucin de probabilidades {pi } cualquiera,


siempre es posible construir un cdigo instantneo de longitud

L < HD (X) + 1
1
tomando li = dlogD pi e.

Demostracin.
X
L= p i li
i
X  
1
< pi logD +1
i
pi
X 1 X
= pi logD + pi
i
pi i
= HD (X) + 1.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 65

3.3.1. Teorema de Shannon de codificacin de fuente

Acabamos de ver que, para algunas fuentes particulares, se puede obtener


fcilmente un cdigo instantneo de longitud L = HD (X). Pero esto no es
siempre posible; lo que s es posible siempre, sin embargo, es obtener un
cdigo instantneo de longitud acotada superiormente, L < HD (X) + 1, si
bien en algunos casos, como muestra el siguiente ejemplo, sta puede ser
una cota muy conservadora.

Ejemplo 3.6.

p = (0,7, 0,1, 0,1, 0,1);


H2 (p) = 1,36;
H2 (p) + 1 = 2,36

Vamos a probar ahora un hecho trascendental: vamos a demostrar que


siempre sera posible representar los smbolos de la fuente con un nmero
de smbolos del alfabeto de codificacin igual (en media) a la entropa.

Teorema 3.8 (Teorema de Shannon de codificacin de fuente).


Sea X una fuente discreta sin memoria. Siempre es posible hallar un cdigo
instantneo para los mensajes de dicha fuente cuya longitud sea tan prxima
como se quiera a HD (X), o lo que es lo mismo, que se cumpla que

1
L < HD (X) +
n
con n tan grande como se quiera.

Demostracin. Codifiquemos los smbolos de la fuente en bloques de lon-


gitud n. En virtud del teorema anterior, se sabe que es posible hacerlo de
forma que se cumpla que

Ln < HD (X n ) + 1

siendo X n la variable aleatoria que representa las n-tuplas de smbolos de


la fuente.
Pero como, por otra parte, Ln = nL por definicin, y HD (X n ) =
nHD (X) por ser las componentes de X n independientes e idnticamente
distribuidas; entonces, dividiendo ambos trminos de la desigualdad por n,
se tiene que
1
L < HD (X) + .
n
66 Codificacin de fuente

En consecuencia, se dir que un cdigo de una fuente dada, X, es ptimo


cuando se cumpla que L = HD (X). Adems, el conocimiento del valor de
la longitud de un cdigo ptimo permite conocer la eficiencia de cualquier
otro cdigo sin ms que comparar su longitud con la del cdigo ptimo.

Definicin 3.7 (Eficiencia de un cdigo). Si D es el nmero de ele-


mentos del alfabeto de codificacin, se define la eficiencia de un cdigo de
una fuente X como
HD (X)
= .
L

Obviamente, se verifica que 0 1.


Que la eficiencia de un cdigo sea significa que HD (X) = L, de donde
se sigue que
L = HD (X) + (1 )L
es decir, que la longitud de dicho cdigo excede de la longitud del cdigo
ptimo en una cantidad (1 )L. En virtud de esto, (1 ) puede conside-
rarse como una medida de la ineficiencia de un cdigo, y la denominaremos
redundancia del mismo.

Definicin 3.8 (Redundancia de un cdigo). Se define la redundancia


de un cdigo como 1 .

Obsrvese que un codificador de una fuente dada estar, entonces, ca-


racterizado por su eficiencia (o, equivalentemente, por su redundancia).
Adems, se va a ver a continuacin que la fuente equivalente que resulta
de considerar conjuntamente la fuente dada y el codificador de fuente tiene
una entropa igual a la eficiencia del codificador de fuente.

Lema 3.9. Considrese un cdigo de fuente no singular de una fuente dada.


La entropa por unidad de tiempo de la salida del codificador de fuente es
igual a la entropa por unidad de tiempo de la fuente.

Demostracin. Sea X la variable aleatoria que representa el conjunto


de posibles mensajes elementales que transforma el codificador de fuente.
Sea Y la variable aleatoria que representa los distintos mensajes que se
utilizan para codificar los smbolos de la variable X. Por tratarse de un
cdigo de fuente no singular, el nmero de elementos del rango de la variable
aleatoria Y no puede ser inferior al nmero de elementos del rango de la
variable aleatoria X; y a dos elementos distintos del rango de X se le asignan
dos elementos distintos del rango de Y . En consecuencia, se cumple que
H(Y ) = H(X) y que vy = vx , siendo vx y vy los regmenes de generacin
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 67

de smbolos de las fuentes X e Y , respectivamente. Por tanto, se tiene,


efectivamente, que H(Y )vy = H(X)vx .

Teorema 3.10. Considrese un cdigo de fuente de eficiencia de una


fuente dada X. Sea D el nmero de elementos del alfabeto de codificacin y
sea Y la variable aleatoria discreta que representa la salida del codificador
de fuente. Se tiene entonces que

HD (Y ) = .

Demostracin. En virtud del lema anterior, se tiene que

HD (X)vf = HD (Y )vcf

siendo vf y vcf los regmenes de generacin de smbolos de la fuente y del


codificador de fuente, respectivamente.
Adems, se cumple que

HD (X)
vcf = vf Lf = vf

siendo Lf la longitud del cdigo de fuente.


Por tanto, resulta que, efectivamente, HD (Y ) = .

Una consecuencia inmediata del teorema anterior es la siguiente.

Corolario 3.11. Los mensajes que salen de un codificador de fuente pti-


mo no se pueden compactar adicionalmente.

Demostracin. Efectivamente, basta considerar = 1 en el teorema an-


terior.

3.4. Algoritmo de Huffman

La consecucin de una eficiencia tan prxima a la unidad como se quiera


se obtiene, en general, a travs del aumento del valor de n, con independencia
de que el mtodo empleado para la obtencin del cdigo (eleccin de unas
longitudes li para las palabras del cdigo en funcin de las probabilidades
l los elementos
de m que vayan a representar de acuerdo con la frmula li =
1
logD pi ) sea o no ptimo. De hecho, es fcil comprobar que tal mtodo
no es siempre ptimo; ilustrmoslo con un ejemplo.
68 Codificacin de fuente

Ejemplo 3.7. Considere el siguiente caso:

l m
pi li = log p1i
0,7 1
0,1 4
0,1 4
0,1 4

En un ejemplo sencillo como ste resulta evidente que se puede construir


tambin un cdigo instantneo con palabras de longitudes {1, 2, 3, 3}, que
tiene, claro est, una longitud menor:

pi Ci
0,7 0
0,1 10
0,1 110
0,1 111

En un caso tan sencillo como el anterior es fcil convencerse de que


no existe un conjunto de longitudes {li } con una longitud media menor
que la del ltimo cdigo. Pero en un caso general, cmo obtener las li
con la menor longitud media posible?, o equivalentemente, cmo construir
un cdigo cuya L sea la menor posible? Pues bien, en esta seccin se va
a explicar un procedimiento constructivo, descubierto por D. A. Huffman,
para encontrar un conjunto ptimo de palabras para representar un conjunto
dado de mensajes. Por ptimo se entender aqu que ningn otro conjunto
de palabras del cdigo tenga una longitud media menor. A tales cdigos los
denominaremos cdigos compactos.
Sean los smbolos del alfabeto fuente 0, 1, . . . , q 1, y sean sus probabi-
lidades respectivas p0 , p1 , . . . , pq1 . Supngase, para simplificar la notacin,
que p0 p1 pq1 . Sea 0 , 1 , . . . , q1 el conjunto de palabras
del cdigo para la fuente considerada, y sean l0 , l1 , . . . , lq1 las longitudes
respectivas de dichas palabras del cdigo. Se ver a continuacin que existe
al menos un cdigo compacto que cumple ciertas condiciones; y veremos
tambin cmo usar dichas condiciones para encontrar el cdigo.
Consideremos en primer lugar, por razn de simplicidad, el caso de c-
digos binarios; para a continuacin generalizar el procedimiento para un
alfabeto de codificacin arbitrario.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 69

3.4.1. Alfabeto de codificacin binario

Lema 3.12. Existe al menos un cdigo instantneo compacto en el que

lq1 li i = 0, 1, . . . , q 2.

Demostracin. Suponga que existe un i tal que li > lq1 . Bastara con
intercambiar las palabras del cdigo i y q1 para obtener el cdigo com-
pacto deseado, ya que tal intercambio no incrementa la longitud del cdigo

L = pi lq1 + pq1 li pi li pq1 lq1


= (pi pqi )(lqi li ) 0.

Teorema 3.13. Para cualquier fuente con q 2 existe un cdigo instant-


neo binario compacto en el que las dos palabras del cdigo menos probables,
q2 y q1 , tienen la misma longitud y difieren slo en el ltimo smbolo.

Demostracin. En cualquier cdigo instantneo binario compacto en el


que lq1 sea la longitud mayor, debe haber otra palabra del cdigo i (i 6=
q 1) de la misma longitud que q1 y que difiera de esta ltima nicamente
en el ltimo bit; ya que de lo contrario, no siendo i prefijo de q1 , podra
eliminarse el ltimo bit de q1 para obtener un cdigo instantneo de
menor longitud que el dado, lo que es imposible.
Si no fuese i = q 2, resultara que li lq2 (recurdese que li = lq1
es la mayor longitud). Y, de acuerdo con la demostracin del lema anterior,
podran intercambiarse i y q2 sin incremento de la longitud del cdigo,
con lo que queda probado que siempre existe un cdigo instantneo binario
compacto en el que lq2 = lq1 , difiriendo q2 y q1 nicamente en el
ltimo bit.

Como corolario del teorema anterior, se puede probar fcilmente que


el problema de la construccin de un cdigo instantneo compacto para
un conjunto de q mensajes (C) se reduce al de construir 0 , 1 , . . . , q3 y
encontrar los lq1 1 dgitos comunes de q2 y q1 , es decir, construir un
cdigo compacto (C 0 ) para un conjunto de q1 mensajes con probabilidades
p0i (i = 0, 1, . . . , q 2) tales que
(
0 pi iq3
pi =
pi + pi+1 i = q 2.

Corolario 3.14. Si C es un cdigo instantneo compacto, entonces C 0


tambin lo es.
70 Codificacin de fuente

Demostracin. Sean L0 y L, respectivamente, las longitudes de los cdigos


C 0 y C. Se tiene que
q3
X
L= pi li + lq1 (pq2 + pq1 )
i=0
q3
X
= p0i n0i + (n0q2 + 1)p0q2
i=0
q2
X
= p0i n0i + p0q2
i=0
= L + p0q2 .
0

Segn esto, L y L0 difieren en un valor constante; y por tanto L no sera


mnimo si L0 no lo fuese.

Si se aplica recurrentemente este procedimiento, nos encontramos con


que el problema se reduce finalmente al problema de encontrar un cdigo
instantneo compacto para una fuente binaria, problema que se resuelve de
forma trivial asignando el smbolo 0 a uno de los elementos de la fuente y
el smbolo 1 al otro.

Ejemplo 3.8. Para una fuente cuaternaria con distribucin de probabilidad

p = (0,7, 0,1, 0,1, 0,1)

y un alfabeto de codificacin binario, el algoritmo de Huffman se aplica del


modo siguiente:

pi p0i p00i C
0
0,7 0,7 0,7 0
0 1
0,1 0,2 0,3 11
0 1
0,1 0,1 100
1
0,1 101

3.4.2. Alfabeto de codificacin arbitrario

Al extender este procedimiento al caso ms general de alfabetos de co-


dificacin no binarios surge un problema nuevo: el teorema 3.13 deja de ser
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 71

vlido, surgiendo el problema de que haya ms palabras que q2 que difie-


ran de q1 en el ltimo bit. Ahora bien, es fcil acotar el nmero mximo
de palabras que pueden diferir de q1 en el ltimo bit.

Teorema 3.15. El nmero de palabras del cdigo que difieren de q1 en


el ltimo bit es
1 + RD1 (q 2)
siendo RD1 (q 2) el resto de dividir q 2 entre D 1.

Demostracin. El rbol completo ms pequeo que representa un cdigo


instantneo tiene D nodos terminales (que son todos los nodos de primer
orden del rbol). Si este nmero de nodos no bastase para representar todas
las palabras del cdigo, entonces habra que extender el rbol a partir de
alguno de los nodos terminales de primer orden. Por cada nodo de primer
orden que se extienda completamente (es decir, que genere D nuevos nodos
de segundo orden), se tendrn D 1 nuevos nodos terminales: los nuevos
D nodos de segundo orden menos el nodo de primer orden del que stos
proceden (que ha dejado de ser nodo terminal). Realizando esta misma
operacin tantas veces como se precise, el nmero de nodos terminales del
rbol ser D + m(D 1) para algn entero m.
Ahora bien, es ciertamente posible que alguno de los nodos terminales
no se utilice para la construccin del cdigo (porque haya ms nodos termi-
nales de los necesarios para el cdigo); llamemos nodos libres a tales nodos
terminales. Resulta claro tambin que en un cdigo ptimo todos los nodos
terminales libres deben tener el mismo orden que la longitud de la palabra
del cdigo ms larga. O dicho de otra forma, intercambiando nodos termi-
nales utilizados y libres, pueden disponerse los nodos libres de forma que
difieran entre s slo en el ltimo smbolo.
As, el nmero de nodos libres del rbol correspondiente a un cdigo
ptimo, representmoslo por V , no pueden exceder de D 2, dado que, si se
agrupasen juntos D 1 nodos libres, la palabra del cdigo correspondiente
al nodo utilizado restante podra acortarse sin violar la condicin del prefijo.
Como, por otra parte, el nmero de palabras del cdigo ms el nmero de
nodos libres del correspondiente rbol es de la forma D+m(D1) para algn
entero m, el nmero de nodos libres de tal rbol queda as unvocamente
determinado:

V + q = D + m(D 1); 0V D2

Reescribiendo la igualdad anterior de la siguiente forma:

q 2 = m(D 1) + D 2 V
72 Codificacin de fuente

se observa que D 2 V es el resto de dividir q 2 entre D 1:


D 2 V = RD1 (q 2)
de donde se obtiene inmediatamente que D V = 2 + RD1 (q 2).

As, el primer paso en el proceso de codificacin consistir en agrupar


juntos los 2+RD1 (q 2) nodos menos probables. A partir de ese paso, deja
de haber nodos libres, y se puede hacer que los D nodos menos probables
difieran entre s en el ltimo smbolo. Continuando de esta forma, finalmente
se obtendr un conjunto de D mensajes, para el que se obtiene fcilmente
un cdigo compacto por el simple procedimiento de asignar cada uno de los
D smbolos del alfabeto de codificacin a cada uno de dichos mensajes.

Ejemplo 3.9. Considere una fuente de alfabeto de 7 smbolos con probabi-


lidades p = (0,2, 0,2, 0,15, 0,15, 0,1, 0,1, 0,1), y sea el alfabeto de codificacin
ternario. El algoritmo de Huffman proporciona el siguiente resultado:

pi p0i p00i C
0
0,2 0,3 0,5 2
1
0,2 0,2 0,3 00
0 2
0,15 0,2 0,2 01
1
0,15 0,15 02
0 2
0,1 0,15 10
1
0,1 11
2
0,1 12

Obsrvese que, en este caso, no hay nodos libres.

Ejemplo 3.10. Considere ahora una fuente de alfabeto de 6 smbolos con


probabilidades p = (0,3, 0,2, 0,15, 0,15, 0,1, 0,1), y sea el alfabeto de codifi-
cacin ternario como antes. Ahora, el algoritmo de Huffman proporciona el
siguiente resultado:

pi p0i p00i C
0
0,3 0,3 0,5 1
1
0,2 0,2 0,3 00
0 2
0,15 0,2 0,2 01
1
0,15 0,15 02
0 2
0,1 0,15 20
1
0,1 21

Obsrvese que, en este caso, habra un nodo libre.


C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 73

3.5. Tasa de entropa de un proceso estocstico

En el apartado 3.3.1 se ha establecido el teorema de Shannon de codifi-


cacin de fuente para el caso particular, ms sencillo, de fuentes discretas sin
memoria. Abordemos ahora el teorema de Shannon de codificacin de fuente
para un modelo ms general de fuente. Si se aplican los resultados del corola-
rio 3.3 y del teorema 3.7 al vector aleatorio n-dimensional (X1 , X2 , . . . , Xn ),
donde Xi es la variable aleatoria discreta que representa el smbolo i-simo
emitido por la fuente, se tiene que
H(X1 , X2 , . . . , Xn ) Ln H(X1 , X2 , . . . , Xn ) 1
< + .
n n n n
Si existiese el lmite
H(X1 , X2 , . . . , Xn )
lm (3.2)
n n
tal lmite sera el mnimo nmero medio de smbolos del alfabeto de codifi-
cacin por cada smbolo de la fuente.
Si X1 , X2 , . . . , Xn son variables aleatorias i.i.d. de entropa H(X), en-
tonces se cumple que H(X1 , X2 , . . . , Xn ) = nH(X); y, por tanto,
H(X1 , X2 , . . . , Xn )
= H(X); n.
n

Ahora bien, en el caso ms general de que {Xi }i=1,2,... sea un proceso


estocstico arbitrario, puede o no existir el lmite (3.2). Cuando dicho lmite
existe recibe el nombre de tasa de entropa del proceso estocstico.

Definicin 3.9 (Tasa de entropa). Se define la tasa de entropa de un


proceso estocstico de tiempo discreto {Xi }i=1,2,... como
H(X1 , X2 , . . . , Xn )
H(X ) = lm
n n
cuando el lmite existe.

Teorema 3.16. Si el proceso estocstico {Xi }i=1,2,... es estacionario, en-


H(X1 , X2 , . . . , Xn )
tonces existe el lm y se cumple que
n n
H(X1 , X2 , . . . , Xn )
lm = lm H(Xn | Xn1 , Xn2 , . . . , X1 ).
n n n

Demostracin. Por la regla de la cadena,


n
H(X1 , X2 , . . . , Xn ) 1X
= H(Xi | Xi1 , Xi2 , . . . , X1 ).
n n i=1
74 Codificacin de fuente

Por otra parte, para un proceso estocstico estacionario


H(Xn+1 | Xn , Xn1 , . . . , X1 ) H(Xn+1 | Xn , Xn1 , . . . , X2 )
= H(Xn | Xn1 , . . . , X1 )
donde la igualdad se sigue de la estacionariedad del proceso. Es decir,
H(Xn | Xn1 , . . . , X1 )
es una secuencia de nmeros no negativos que decrece con n, por lo que
tiene lmite.
A continuacin vamos a probar que si existe lm H(Xn | Xn1 , . . . , X1 ),
n
entonces se cumple que
n
1X
lm H(Xi | Xi1 , . . . , X1 ) = lm H(Xn | Xn1 , . . . , X1 ).
n n n
i=1

Sean
H(Xi | Xi1 , Xi2 , . . . , X1 ) = ai
lm an = a
n
Xn
1
ai = b n .
n i=1

Por ser lmn an = a, entonces existe un nmero N () tal que


|an a|  n N ().
De aqu que, n N ():

1 Xn

|bn a| = (ai a)
n
i=1
n
1X
|ai a|
n i=1
N ()
1 X n N ()
|ai a| + 
n i=1 n

N ()
1 X
|ai a| N () + .
n i=1

De forma que, tomando n suficientemente grande (n ), podemos


hacer |bn a| .
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 75

3.6. Tasa de entropa de una cadena de Markov

De entre todos los procesos estocsticos, los procesos de Markov merecen


especial atencin por su sencillez y utilidad.
En esencia, un proceso estocstico es una familia de variables aleatorias
X(t) donde t es un parmetro ndice (tpicamente temporal). Tres son las
caractersticas definitorias de un proceso estocstico:

El espacio de estados, o conjunto de posibles valores (estados) de las


variables aleatorias X(t), que puede ser un conjunto discreto (y en ese
caso el proceso estocstico se denomina habitualmente cadena) o un
conjunto continuo.
El parmetro ndice (tiempo), que puede tomar valores en un conjun-
to discreto (y se tiene entonces un proceso de parmetro tiempo
discreto) o continuo (y se tiene entonces un proceso de parmetro
tiempo continuo). En el primer caso, es habitual referirse al pro-
ceso estocstico como secuencia aleatoria y representarla usando X n
en lugar de X(t).
Y por ltimo, la ms importante de todas, que es la relacin entre
las variables aleatorias de la familia. En general, para caracterizar
un proceso estocstico hay que especificar la funcin de distribucin
conjunta de todas las variables aleatorias de la familia, lo que puede
resultar una tarea inabordable. Afortunadamente, muchos procesos
estocsticos de inters, como por ejemplo los procesos de Markov,
admiten una descripcin mucho ms sencilla.

Un proceso de Markov es un proceso estocstico en el que el estado


siguiente depende nica y exclusivamente del estado actual; y si el espacio
de estados del proceso es discreto suele denominarse, como ya hemos dicho,
cadena de Markov. Adems, como nos interesan nicamente los procesos de
tiempo discreto, definiremos una cadena de Markov de la siguiente manera:

Definicin 3.10 (Cadena de Markov). Se dice que una secuencia esto-


cstica {Xi , i = 1, 2, . . . } de espacio de estados discreto X es una cadena
de Markov si para todo valor de n y para cualesquiera x1 , . . . , xn+1 X se
cumple que
P(Xn+1 = xn+1 | Xn = xn , Xn1 = xn1 , . . . , X1 = x1 ) =
P(Xn+1 = xn+1 | Xn = xn ).

La propiedad anterior, que define a una cadena de Markov, suele deno-


minarse propiedad markoviana. Y en virtud de esta propiedad tenemos una
76 Codificacin de fuente

secuencia aleatoria en la que la dependencia se extiende hacia atrs en el


tiempo una sola unidad.
La expresin P(Xn+1 = j | Xn = i) se denomina probabilidad de transi-
cin en un paso y es la probabilidad condicional de que se produzca una
transicin del estado i en el instante de tiempo n al estado j en el instante
de tiempo n + 1.
Si ocurre, como vamos a suponer de ahora en adelante, que las proba-
bilidades de transicin son independientes del valor de n, entonces se tiene
una cadena de Markov invariante con el tiempo (u homognea), y en ese
caso se representar por Pij la probabilidad de transicin en un solo paso
del estado i al estado j,
Pij = P(Xn+1 = j | Xn = i).

De manera anloga, se puede definir la probabilidad de transicin en


(n)
n pasos, que representaremos por Pij , como la probabilidad de que un
proceso que est en el estado i llegue al estado j tras n transiciones, es
decir, n instantes de tiempo ms tarde. Esto es,
(n)
Pij = P(Xm+n = j | Xm = i), n > 0, i, j X .

Se dice que se puede acceder al estado j desde el estado i si para algn


(n)
n > 0, Pij > 0. Se dice, adems, que dos estados i y j se comunican si
desde cualquiera de ellos se puede acceder al otro. Es trivial, entonces, la
verificacin de que la comunicacin entre dos estados de una cadena de Mar-
kov es una relacin de equivalencia. Esta relacin de equivalencia permite
agrupar los estados de una cadena de Markov en clases de equivalencia; y
se dice que una cadena de Markov es irreducible si existe una nica clase
de equivalencia, es decir, si cada estado de la misma se comunica con todos
los dems estados.

Definicin 3.11 (Cadena de Markov irreducible). Se dice que una


cadena de Markov es irreducible si cada estado de la misma se comunica
con todos los dems estados.

Adems, se dice que un subconjunto de los estados de una cadena de


Markov es cerrado si ninguno de sus estados se comunica con ningn otro
estado que no pertenezca al mismo subconjunto. Si el conjunto de los estados
de una cadena de Markov es cerrado y no contiene ningn subconjunto pro-
pio que tambin lo sea, entonces se tiene una cadena de Markov irreducible.
De lo contrario, la cadena se dice reducible; y los subconjuntos cerrados que
no contengan otros subconjuntos cerrados se denominan subcadenas de Mar-
kov irreducibles. Estas subcadenas pueden estudiarse independientemente
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 77

del resto de estados, por lo que de ahora en adelante consideraremos ni-


camente cadenas irreducibles de Markov.
Una caracterstica de los estados de la cadena que resulta de inters es
la posibilidad de que el sistema vuelva al mismo estado en algn instante
futuro, y la frecuencia con la que este hecho se produce. Si el nmero de
pasos necesarios para alcanzar de nuevo el estado j slo puede ser un nmero
d (d > 1) y sus mltiplos enteros, entonces se dice que el estado es peridico,
siendo su periodo d. En caso contrario, se dice que el estado es aperidico. Se
puede demostrar tambin que la periodicidad de un estado es una propiedad
de clase, de forma que en una cadena de Markov irreducible o todos los
estados son aperidicos o todos son peridicos (y con idntico periodo).

Definicin 3.12 (Cadena de Markov aperidica). Una cadena de


Markov es aperidica si todos los estados de la misma son aperidicos.

(n)
Representemos por fj la probabilidad de que el primer regreso al esta-
do j se produzca al cabo de exactamente n instantes de tiempo. Est claro
que la probabilidad de regresar alguna vez al estado j est dada por

X (n)
fj = fj .
n=1

Los estados de una cadena de Markov se pueden clasificar ahora en


funcin del valor obtenido para fj :

si fj = 1, se dice que el estado es recurrente;


si fj < 1, se dice que el estado es transitorio.

Se puede demostrar que tambin la recurrencia, al igual que la periodici-


dad, es una propiedad de clase. Por tal motivo, los estados de una cadena de
Markov irreducible o son todos transitorios o son todos recurrentes. Ahora
bien, puesto que si un estado j es recurrente, con probabilidad uno se vuelve
alguna vez a l, con probabilidad uno el nmero de visitas a j ser infinito;
y por tanto ser infinito el nmero medio de regresos a j. Por otra parte,
si el estado j es transitorio, hay una probabilidad (1 fj ) de que nunca se
regrese de nuevo a l; por lo que el nmero de visitas a ese estado es una
variable aleatoria geomtrica de media finita 1/(1 fj ). Lo que nos lleva a
la conclusin de que en una cadena de Markov de estados finitos no todos
los estados pueden ser transitorios; ya que si as fuese, pasado un tiempo
finito no se visitara ningn estado, lo que es imposible. En consecuencia,
en una cadena de Markov irreducible de estados finitos, todos los estados
son recurrentes.
78 Codificacin de fuente

Para los estados recurrentes de una cadena de Markov se puede definir


el tiempo medio de recurrencia de un estado j como

X (n)
Tj = nfj
n=1

y, de acuerdo con este parmetro, los estados recurrentes pueden clasificarse


a su vez en:

recurrentes positivos, si Tj < ;

recurrentes nulos, en caso contrario.

Tambin la recurrencia positiva (nula) es una propiedad de clase. Y


todos los estados de una cadena de Markov irreducible de estados finitos
son recurrentes positivos.

Definicin 3.13 (Cadena de Markov ergdica). Un estado aperidico


y recurrente positivo se denomina ergdico. Y se dice que una cadena de
Markov es ergdica cuando todos sus estados son ergdicos.

Por consiguiente, una cadena de Markov de estados finitos, irreducible


y aperidica es ergdica.
(n)
Definamos ahora j como la probabilidad de que en el instante de
tiempo n el sistema se encuentre en el estado j, esto es,

(n)
j = P(Xn = j).

Una distribucin de probabilidad de los estados que sea independiente


del instante de tiempo n se llama distribucin estacionaria. Y recibe tal
nombre porque si el estado inicial de una cadena de Markov se elige de forma
que la distribucin sea estacionaria, entonces la cadena de Markov es un
proceso estocstico estacionario. En tales casos, una cuestin fundamental
es la obtencin de la distribucin de probabilidad estacionaria {j }, que se
aborda en el siguiente teorema.

Teorema 3.17. Si la cadena de Markov es ergdica, entonces la distribu-


cin estacionaria es nica y la distribucin de Xn tiende a la distribucin
estacionaria segn n , sin importar cual sea la distribucin inicial.
Adems, la distribucin se obtiene como la nica solucin no negativa del
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 79

siguiente sistema de ecuaciones lineales:


X
j = i Pij
i
X
j = 1.
j

Ejemplo 3.11. Considere una cadena de Markov de dos estados con matriz
de probabilidades de transicin
 
1
P = .
1

Representemos la distribucin estacionaria por un vector = (1 , 2 )


cuyas componentes sern las probabilidades estacionarias del estado 1 y del
estado 2, respectivamente.

1 estado estado 1
1 2

Entonces las probabilidades estacionarias deben cumplir:


1 = 2
2 = 1 1 ,

cuya solucin es 1 = , 2 = .
+ +

Teorema 3.18 (Tasa de entropa de una cadena de Markov). Sea


una cadena de Markov estacionaria, con distribucin estacionaria y ma-
triz de transicin P . Entonces la tasa de entropa est dada por
X
H(X ) = i Pij log Pij .
i,j

Demostracin. Por definicin, la tasa de entropa de la cadena de Markov


es
H(X ) = lm H(Xn | Xn1 , . . . , X1 ) = lm H(Xn | Xn1 )
n n
= H(X2 | X1 )
X  X 
= i Pij log Pij .
i j
80 Codificacin de fuente

Ejemplo 3.12. Consideremos una fuente binaria. Supongamos que se ha


observado que dicha fuente genera uno de los smbolos (digamos el smbolo
0) en mayor cantidad que el otro (digamos que el 60 % de las veces se genera
el smbolo 0). De acuerdo con esta observacin, se podra modelar la fuente
en cuestin como una variable aleatoria binaria X, con P(X = 0) = 0,6. En
tal caso, dicha fuente tendr una entropa H(X) = 0,97 bits; por lo que,
si se dispone de un codificador de fuente ideal, un mensaje de la fuente de
longitud n podra representarse perfectamente con 0,97n smbolos binarios,
pero no con menos.
Pero supongamos ahora que una observacin ms detallada de las ca-
ractersticas de la fuente nos permite darnos cuenta de una peculiaridad de
la misma: nunca genera de forma consecutiva dos smbolos 1, ni ms de dos
smbolos 0. Esto significa, obviamente, que existe una fuerte correlacin en-
tre smbolos consecutivos (memoria); y, con toda seguridad, tal correlacin
permitir una representacin ms compacta de los mensajes de la fuente
que sean suficientemente largos.
A la luz de lo que se acaba de exponer en este apartado, la fuente que
estamos considerando puede modelarse de forma ms precisa mediante una
cadena de Markov de tres estados: un estado (estado 1) en el que transmite
un smbolo 1, y otros dos estados (estado 2 y estado 3) en los que transmite
un smbolo 0. El diagrama de transiciones de esta cadena de Markov sera
el siguiente:

Por tanto, se tiene que:

1 = p2 + 3
q2 = 3

o lo que es lo mismo, 1 = 2 = 3 /q, de donde, teniendo en cuenta que


1 + 2 + 3 = 1, se tiene que:

1
1 = = 2
2+q
q
3 = .
2+q
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 81

La tasa de entropa vendr dada por


1
H(X ) = 2 H(q) = H(q).
2+q

Y como, en este caso, se tiene que:

1 = 0,4
1
2 = 1 =
2+q
resulta que q = 0,5, por lo que H(X ) = 0,4 bits; con lo que un mensaje de la
fuente de longitud n (suficientemente grande) podra representarse slo con
0,40n smbolos binarios. Obsrvese el notabilsimo aumento de la eficiencia
de la representacin de los mensajes de la fuente.

Ejemplo 3.13. Existe otra cadena de Markov que puede emplearse, alter-
nativamente, para el modelado de la fuente anterior. Observe que podramos
modelar igualmente la fuente en cuestin mediante una cadena de Markov
de dos estados: un estado 1, en el que se transmitira una secuencia de dos
smbolos diferentes, 01 (o 10, segn cul fuese el primer bit del mensaje);
y un estado 2, en el que se transmitira una secuencia de tres smbolos,
001 (o 100). El diagrama de transiciones de esta cadena de Markov sera el
siguiente

    


donde H(X ) = H() + H() = 0,4 bits.
+ +
Obsrvese que esta cadena de Markov consta de dos estados en los que
se puede permanecer indefinidamente, por lo que este modelo es equivalente
a una fuente binaria sin memoria cuyos smbolos sean las secuencias de
dos y tres bits que se transmiten, respectivamente, en los estados 1 y 2
de la cadena de Markov anterior. Y ntese, entonces, cmo una adecuada
definicin de los smbolos permite recoger cierto grado de memoria con un
modelo de fuente sin memoria. Modelaramos entonces la fuente como una
variable aleatoria binaria X de rango X = {01, 001} y P(X = 01) = 0,5.
As definida X, resulta que H(X) = 1 bit. Es decir, se necesita, en media,
un bit para representar cada smbolo de esta fuente. Pero los smbolos de
esta fuente tienen una longitud media de 2,5 bits; lo que quiere decir que un
mensaje suficientemente largo de la fuente puede reducirse hasta un 40 %
de su longitud original, que es el mismo resultado de antes.
82 Codificacin de fuente

Notas bibliogrficas

Shannon estableci [59] el teorema de codificacin de fuente que lleva su


nombre para el caso de fuentes markovianas, si bien de una forma diferente a
como se ha presentado aqu, basndose en un resultado original hoy conocido
como propiedad de equiparticin asinttica. Esta denominacin, as como
una generalizacin de la misma para procesos estacionarios ergdicos con
alfabeto finito, se debe a McMillan [48].
La desigualdad de Kraft aparece en [37], y la demostracin de que tam-
bin se cumple para cualquier cdigo unvocamente decodificable se debe
a McMillan [49] (la demostracin de este teorema aqu empleada aparece
en [35].
El procedimiento de codificacin de Huffman y la demostracin de que
es ptimo aparecen en [34].
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 83

3.A. La propiedad de equiparticin asinttica

Shannon formul su famoso teorema de codificacin de fuente [59] de


una forma diferente a como lo hemos hecho en este captulo, a travs de
un resultado original que ahora se conoce como propiedad de equiparticin
asinttica, y que no es sino una consecuencia directa de la ley de los grandes
nmeros (para secuencias de variables aleatorias independientes e idnti-
camente distribuidas) o del teorema ergdico (para procesos estacionarios).
Nosotros nos limitaremos aqu a considerar el caso ms sencillo de las se-
cuencias de variables aleatorias independientes e idnticamente distribuidas
y la convergencia en probabilidad. Para este caso particular, la propiedad
de equiparticin asinttica se formaliza con el siguiente teorema.

Teorema 3.19. Si X1 , X2 , . . . , son variables aleatorias independientes y


todas ellas con idntica distribucin que la variable aleatoria X, entonces
se verifica la siguiente convergencia en probabilidad
1
log p(X1 , X2 , . . . , Xn ) H(X).
n

Demostracin. Las funciones de variables aleatorias independientes son


tambin variables aleatorias independientes. As, puesto que las Xi son va-
riables aleatorias independientes e idnticamente distribuidas, tambin lo
son las log p(Xi ). De aqu que, por la ley dbil de los grandes nmeros,
n
1 1X
log p(X1 , X2 , . . . , Xn ) = log p(Xi )
n n i=1
E[log p(X)] en probabilidad
= H(X).

El teorema anterior implica que se puede estimar, con una probabilidad


tan prxima a uno como se quiera, la entropa H(X) a partir de una se-
cuencia suficientemente grande de muestras independientes de la variable
aleatoria X. O lo que es lo mismo, que las secuencias de muestras de X
se pueden dividir en dos clases: aqullas en las que la proporcin de los
distintos smbolos converge en probabilidad a la distribucin de probabili-
dades de X, y todas las dems. Las primeras, que se denominan secuencias
tpicas, tienen una probabilidad conjunta tan prxima a uno como se quiera
sin ms que hacer n arbitrariamente grande; y las otras, en cambio, ocurren
con una probabilidad arbitrariamente prxima a cero. Las primeras, ade-
ms, tendrn probabilidades aproximadamente iguales, hecho que da origen
a la denominacin del teorema. El conjunto de las secuencias tpicas recibe
el nombre de conjunto tpico y se puede formalizar de la siguiente manera.
84 Codificacin de fuente

(n)
Definicin 3.14 (Conjunto tpico). El conjunto tpico T con res-
pecto a la variable aleatoria X, de rango X , es el conjunto de secuencias
(x1 , x2 , . . . , xn ) X n que tienen la siguiente propiedad:

2n(H2 (X)+) p(x1 , x2 , . . . , xn ) 2n(H2 (X)) .

Se puede demostrar fcilmente (vase [15]) que, como consecuencia de la


propiedad de equiparticin asinttica, el conjunto tpico tiene las siguientes
propiedades:

Teorema 3.20.
(n)
1. Si (x1 , x2 , . . . , xn ) T , entonces
1
H(X)  log p(x1 , x2 , . . . , xn ) H(X) + .
n
(n)
2. P(T ) > 1  para n suficientemente grande.
(n)
3. El nmero de elementos del conjunto tpico es |T | 2n(H2 (X)+) .
(n)
4. |T | (1 )2n(H2 (X)) para n suficientemente grande.

Es decir, ms informalmente, el conjunto tpico tiene probabilidad casi


uno, todos sus elementos son aproximadamente equiprobables y el nmero
de los mismos es aproximadamente 2nH2 (X) .
Teniendo en cuenta las propiedades anteriores, resulta fcil disear un
procedimiento para la codificacin (que supondremos binaria, sin prdida
de generalidad) de secuencias arbitrariamente largas de smbolos indepen-
dientes de X de forma que la longitud del cdigo se aproxime tanto como se
quiera a H2 (X). Basta asignar un nmero de secuencia a cada uno de los ele-
mentos tanto del conjunto tpico como de su complementario, diferenciando
los nmeros de secuencia idnticos correspondientes a elementos distintos
con un prefijo de un bit: por ejemplo, un 0 para los nmeros de secuencia
correspondientes a secuencias del conjunto tpico, y un 1 para los otros.
Ahora, si estos nmeros de secuencia se representan mediante secuencias de
bits de longitud fija:

las palabras del cdigo correspondientes a los elementos del conjunto


(n)
tpico tendrn una longitud l1 dnH2 (X) + e + 1, ya que |T |
2n(H2 (X)+) y nH2 (X) +  puede no ser una cantidad entera;
las palabras del cdigo correspondientes a los dems elementos tendrn
una longitud l2 ndlog2 |X |e + 1.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 85

(n)
As, si n es suficientemente grande para que P(T ) > 1 , la longitud
media del cdigo, L, es
X X
L= l1 p(x1 , . . . , xn ) + l2 p(x1 , . . . , xn )
(n) (n)
(x1 ,...,xn )T (x1 ,...,xn )T
/ 
X
< (nH2 (X) +  + 2)p(x1 , . . . , xn )
(n)
(x1 ,...,xn )T
X
+ (n log2 |X | + 2)p(x1 , . . . , xn )
(n)
(x1 ,...,xn )T
/ 
 
= P(T(n) ) nH2 (X) +  + 2 + 1 P(T(n) ) (n log2 |X | + 2)
< n(H2 (X) + ) + n log2 |X | + 2
= n(H2 (X) + 0 )

donde 0 =  +  log2 |X | + n2 puede hacerse arbitrariamente pequea con una


eleccin apropiada de  y n.
Otra manera de ver lo anterior es la siguiente. Podran utilizarse secuen-
cias de bits de la misma longitud N para representar las distintas secuencias
de longitud n, de forma que, segn el valor de N , podra haber en el cdigo
menos palabras de las necesarias para una codificacin sin prdida. Defina-
mos Pe como la probabilidad de todas las secuencias de la fuente de longitud
n para las que no se ha proporcionado una palabra del cdigo.
Si se elige N de forma que sea N n(H2 (X) + ), entonces

2N 2n(H2 (X)+)

y resulta, por tanto, que existen palabras suficientes en el cdigo al menos


para todas las secuencias del conjunto tpico; por lo que se tendr que

Pe < .

En cambio, si se elige N de forma que N < nH2 (X), entonces se puede


demostrar que Pe 1 a medida que n . Vemoslo. Elijamos un valor de
N que satisfaga N n(H2 (X) 2). Entonces el nmero total de palabras
del cdigo, 2N , ser como mucho 2n(H2 (X)2) . Puesto que cada secuencia del
conjunto tpico (secuencia tpica) tiene una probabilidad de, como mximo,
2n(H2 (X)) , la probabilidad de todas las secuencias tpicas para las que
hay palabras del cdigo es como mucho

2n(H2 (X)) 2n(H2 (X)2) = 2n .

Por otra parte, la probabilidad de todas las secuencias no pertenecientes al


conjunto tpico es, como mucho, . As pues, la probabilidad del conjunto
86 Codificacin de fuente

de secuencias de la fuente, tpicas o no, para las que no hay palabras del
cdigo ser tal que
1 Pe  + 2n .

En la discusin precedente, se ha elegido un alfabeto de codificacin


binario por simple comodidad notacional. Todo lo anterior es igualmente
vlido para un alfabeto de codificacin de D smbolos (D arbitrario) sin
ms que sustituir H2 (X) por HD (X).
Resumiendo todo lo anterior, puede enunciarse el teorema de codificacin
de fuente de la siguiente manera:

Teorema 3.21 (Teorema de codificacin de fuente). Sea una fuen-


te sin memoria discreta X y considere una codificacin de secuencias de
n smbolos de la fuente en secuencias de N smbolos de un alfabeto de co-
dificacin de D smbolos. Asignemos cada palabra del cdigo a una nica
secuencia de smbolos de la fuente y sea Pe la probabilidad de que ocurra
una secuencia de la fuente a la que no se le ha asignado ninguna palabra
del cdigo. Entonces, para cualquier  > 0, si
N
HD (X) + 
n
Pe puede hacerse arbitrariamente pequeo sin ms que hacer n suficien-
temente grande. A la inversa, si
N
HD (X) 
n
entonces Pe 1 si n se hace suficientemente grande.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 87

3.B. Tcnicas de compresin

Aun siendo el mtodo de Huffman el que proporciona el conjunto de


palabras del cdigo de longitud media mnima para un conjunto de smbolos
de la fuente dado, la consecucin de un cdigo eficiente (de longitud prxima
a la entropa) requiere, en general, que la unidad elemental de codificacin
sea no un smbolo de la fuente sino una secuencia de smbolos (de cuanta
mayor longitud mejor). En realidad, existen otros mtodos de codificacin
de secuencias de smbolos que dan resultados comparables a los del mtodo
de Huffman y presentan, adems, grandes ventajas de ndole prctica; como
la codificacin aritmtica, por ejemplo, que es otro mtodo que tambin se
basa en el conocimiento de la naturaleza estadstica de la fuente; o como
el mtodo LempelZiv, que es de naturaleza completamente distinta a los
anteriores, pues ignora por completo las caractersticas de la fuente.

3.B.1. Codificacin aritmtica

El inconveniente del mtodo de Huffman es que requiere el clculo previo


de las probabilidades de todas las secuencias de la fuente de una longitud
prefijada. La codificacin aritmtica, en cambio, es un mtodo que puede
extenderse fcilmente a longitudes mayores de las secuencias de la fuente
sin rehacer todos los clculos.
La codificacin aritmtica se basa en utilizar como palabra del cdigo
correspondiente a una cierta secuencia de la fuente de cualquier longitud
n (representmoslas por xn ) una representacin en base D (donde D es el
nmero de smbolos del alfabeto de codificacin) del nmero que expresa
el valor de su funcin de distribucin, F (xn ). Y la ventaja de este mtodo
radica en que, si existe un procedimiento sencillo para calcular p(xn ) para
cualquier xn , entonces F (xn ) se puede calcular de manera incremental, es
decir, se puede calcular F (xn ) conocidos F (xn1 ) y el n-simo smbolo de
la secuencia que se est codificando. As se pueden codificar y decodificar
los smbolos de la fuente de manera secuencial, es decir, a medida que se
reciben.
Consideremos en primer lugar la cuestin de la representacin D-aria
de F (x) para un smbolo cualquiera de la fuente x, que, sin prdida de ge-
neralidad, se puede suponer perteneciente al conjunto X = {1, 2, . . . , m}.
En general, F (x) es un nmero real expresable slo por un nmero infinito
de bits, de manera que habr que usar un valor aproximado, es decir, con
un cierto nmero finito de sus smbolos l(x), dependiendo obviamente la
precisin de la aproximacin del nmero de smbolos empleados en la repre-
sentacin. Representemos por Fl(x) (x) dicha aproximacin a F (x). Se tiene
88 Codificacin de fuente

entonces que
1
F (x) Fl(x) (x) < .
Dl(x)
1
Por otra parte, si l(x) = dlogD p(x) e + 1, entonces

1 1 
< F (x) F (x 1) .
Dl(x) 2

Se pone as de manifiesto que las representaciones aproximadas de F (x)


para los distintos valores de la variable x pertenecen a conjuntos disjuntos,
lo que garantiza la univocidad de la decodificacin.
1
Por otra parte, puesto que se usan con este procedimiento dlogD p(x) e+1
smbolos para representar el smbolo x de probabilidad p(x), entonces la
longitud de este cdigo ser
X  1
 
L= logD + 1 p(x) < H(X) + 2.
x
p(x)

Los detalles para el clculo paso a paso de F (xn ), as como en general


todas las cuestiones prcticas de implementacin del mtodo exceden con
mucho el mbito del presente captulo. El lector interesado puede consultar
alguna obra especializada en tcnicas de compresin de datos, como por
ejemplo [58].

3.B.2. Codificacin de fuente universal

Hasta ahora hemos supuesto que se conocan de antemano las caracte-


rsticas de la fuente; pero rara vez esto es as. Los mtodos de codificacin
que se emplean cuando no se conocen a priori las caractersticas de la fuente
se denominan universales.
Son ejemplos de este tipo de mtodos versiones adaptativas (tambin
llamadas dinmicas) de los mtodos ya comentados: el mtodo de Huffman
y la codificacin aritmtica. En ambos casos, la idea esencial del mtodo
consiste en la estimacin dinmica (a medida que se procesan los smbolos
de los mensajes tanto en el codificador como en el codificador) de las carac-
tersticas estadsticas de la fuente.
Pero el mtodo ms ampliamente usado de codificacin universal (puede
considerarse actualmente el mtodo estndar para compresin de ficheros),
el denominado mtodo LempelZiv, es de naturaleza totalmente diferente
ya que no se basa en la estimacin de las caractersticas de la fuente; est
basado, en cambio, en el anlisis gramatical de la secuencia de la fuente.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 89

Existen varias versiones del mtodo [38, 79, 81], ligeramente diferentes entre
s, pero la regla ms sencilla de anlisis es la siguiente: el siguiente trmino es
el trmino ms corto que todava no se ha observado. Siendo as, el siguiente
trmino estar compuesto por un trmino anterior (y podr representarse
simplemente mediante un nmero de ndice que indicar su posicin en una
lista ordenada de trminos diccionario) ms un smbolo adicional. Los
detalles de implementacin se discuten en [73] y [9]. Sorprendentemente,
pese a su sencillez y aun sin tener en cuenta las caractersticas estadsticas
de la fuente, el mtodo LempelZiv codifica cualquier fuente estacionaria
ergdica a su tasa de entropa, como se demuestra en [80, 15, 76].
CAPTULO 4

Informacin mutua y capacidad de


canal

En este captulo se introduce el concepto de entropa condicional de una


fuente X como la cantidad de informacin que nos proporcionan los mensa-
jes de dicha fuente una vez que ya se conoce el mensaje de otra fuente Y que
pueda guardar alguna relacin con la primera. Se ver que esta informacin
no puede ser mayor que la que nos proporcionaran los mensajes de la fuente
X si se ignorase el mensaje de la fuente Y .
La reduccin en la cantidad de informacin que nos proporcionan los
mensajes de una fuente X despus de conocer los mensajes de otra fuente
Y puede interpretase, en consecuencia, como la informacin que la fuente
Y proporciona sobre la fuente X. Dicha informacin, que, como se ver, es
exactamente la misma que la que la fuente X proporciona sobre la fuente
Y , se denomina por este motivo informacin mutua.
El concepto de informacin mutua es til para determinar la informa-
cin que sera necesaria para conocer el mensaje que se ha enviado a travs
de un canal (fuente X), despus de ver el mensaje que ha llegado al destino
(fuente Y ). Si no hiciese falta informacin adicional, significara que sabra-
mos con certeza qu mensaje se envi, por lo que dicha transmisin habra
sido absolutamente fiable. Por contra, cuanta ms informacin adicional se
requiriese, menos fiable habra sido la transmisin. Esta cantidad de infor-
macin depende, obviamente, tanto de las caractersticas de los mensajes
que se envan a travs del canal (es decir, de las caractersticas de la fuente)
como de las propias caractersticas del canal de transmisin. Pero veremos
tambin que, si se consideran todas las posibles fuentes que pueden hacer uso
del canal, existe un valor mximo para la informacin que se puede trans-

91
92 Informacin mutua y capacidad de canal

mitir, que es un parmetro caracterstico del canal. Tal parmetro recibe el


nombre de capacidad del canal. La capacidad de un canal es un parmetro
fundamental del mismo, ya que, como se ver en el captulo siguiente, la
capacidad del canal es una medida de la cantidad de informacin que se
puede transmitir fielmente a travs del mismo por unidad de tiempo. Tal
resultado, con seguridad el ms trascendental de la Teora de la Informa-
cin, se conoce habitualmente como teorema de Shannon de codificacin de
canales ruidosos.
Este captulo se dedicar enteramente a las definiciones de entropa con-
dicional, informacin mutua y capacidad, as como tambin al anlisis de
sus propiedades fundamentales.

4.1. Entropa condicional

Cuando se consideran dos variables aleatorias, X e Y , el hecho de conocer


que Y = yj puede modificar las probabilidades a priori de los distintos
valores de la variable aleatoria X.
Representemos por p(xi | yj ) = P(X = xi | Y = yj ) los distintos valores
de la distribucin de probabilidades a posteriori de la variable aleatoria X;
y representemos por H(X | Y = yj ) la entropa de dicha distribucin de
probabilidades. Entonces, esta entropa ser:
n
X 1
H(X | Y = yj ) = p(xi | yj ) log .
i=1
p(xi | yj )

As, para cada valor yj de la variable aleatoria Y , se tiene una entropa


H(X | Y = yj ), por lo que tal entropa puede considerarse una funcin de
la variable aleatoria Y , siendo su valor medio
m
X
p(yj )H(X | Y = yj ).
j=1

Tal valor medio recibe la denominacin de entropa condicional.

Definicin 4.1 (Entropa condicional). Se define la entropa condi-


cional de la variable aleatoria X, dada Y , como
m
X
H(X | Y ) = p(yj )H(X | Y = yj )
j=1
Xn X m
1
= p(xi , yj ) log .
i=1 j=1
p(xi | yj )
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 93

Ejemplo 4.1. Sea (X, Y ) una variable aleatoria bidimensional con la si-
guiente distribucin conjunta:

Y \X 1 2 3 4
1 1 1 1
1 8 16 32 32
1 1 1 1
2 16 8 32 32
1 1 1 1
3 16 16 16 16
1
4 4 0 0 0

La distribucin marginal de la variable X es (1/2, 1/4, 1/8, 1/8), y la de


la variable Y es (1/4, 1/4, 1/4, 1/4). Por lo tanto, se tiene que
H2 (X) = 7/4 bits,
H2 (Y ) = 2 bits,
H2 (X, Y ) = 27/8 bits.

Adems,
4
X
H2 (X | Y ) = P(Y = i)H2 (X | Y = i)
i=1
   
1 1 1 1 1 1 1 1 1 1
= H2 , , , + H2 , , ,
4 2 4 8 8 4 4 2 8 8
 
1 1 1 1 1 1
+ H2 , , , + H2 (1, 0, 0, 0)
4 4 4 4 4 4
1 7 1 7 1 1
= + + 2+ 0
4 4 4 4 4 4
11
= bits
8

4
X
H2 (Y | X) = P(X = i)H2 (Y | X = i)
i=1
   
1 1 1 1 1 1 1 1 1
= H2 , , , + H2 , , ,0
2 4 8 8 2 4 4 2 4
   
1 1 1 1 1 1 1 1
+ H2 , , , 0 + H2 , , ,0
8 4 4 2 8 4 4 2
1 7 1 3 1 3 1 3
= + + +
2 4 4 2 8 2 8 2
13
= bits.
8
94 Informacin mutua y capacidad de canal

4.1.1. Propiedades de la entropa condicional

De acuerdo con la definicin anterior, la entropa condicional es un


promedio de entropas, por lo que adopta siempre un valor no negativo, que
ser nulo nicamente en el caso de que todas las entropas que se promedian
lo sean, cosa que slo puede ocurrir si el valor que adopta la variable alea-
toria X depende funcionalmente del valor que adopta la variable aleatoria
Y.
Obsrvese adems, en el ejemplo anterior, que, en general, H(X | Y ) 6=
H(Y | X). Sin embargo, se cumple el siguiente teorema:

Teorema 4.1 (Regla de la cadena).

H(X) + H(Y | X) = H(Y ) + H(X | Y ) = H(X, Y ).

Demostracin.
X 1 XX 1
H(Y ) + H(X | Y ) = p(yj ) log + p(xi , yj ) log
j
p(yj ) i j
p(xi | yj )
XX  
1 1
= p(xi , yj ) log + log
i j
p(yj ) p(xi | yj )
XX  
1
= p(xi , yj ) log
i j
p(yj ) p(xi | yj )
XX 1
= p(xi , yj ) log
i j
p(xi , yj )
= H(X, Y ).

De manera anloga se probara que H(X) + H(Y | X) = H(X, Y ).

Asimismo, modificando ligeramente la demostracin anterior, se demues-


tra fcilmente el siguiente corolario:

Corolario 4.2. H(X, Y | Z) = H(X | Z) + H(Y | X, Z).

Siendo H(X, Y ) la informacin que proporcionan las variables aleatorias


X e Y conjuntamente, y siendo H(Y ) la informacin que proporciona la
variable aleatoria Y por s sola, la propiedad anterior permite interpretar
H(X | Y ) como la informacin suministrada por la variable aleatoria X si
ya se conoce el resultado de la variable aleatoria Y . A continuacin veremos
tambin que, como parece que debera ocurrir, esta informacin no puede
ser mayor que H(X); es decir, que nunca los mensajes de otra fuente Y
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 95

pueden aumentar nuestra incertidumbre acerca de una fuente cualquiera


dada X.

Teorema 4.3. Se cumple en general que

H(X | Y ) H(X)

siendo condicin necesaria y suficiente que las variables aleatorias X e Y


sean independientes entre s para que se cumpla la igualdad.

Demostracin. La desigualdad se sigue inmediatamente de la regla de la


cadena:
H(X, Y ) = H(Y ) + H(X | Y )
y de la relacin entre las entropas individuales y la conjunta:

H(X, Y ) H(X) + H(Y ).

Por otra parte, se cumplir la igualdad si y slo si se cumple la igualdad


en la desigualdad anterior, cosa que, como ya se sabe, ocurre si y slo si las
variables aleatorias X e Y son independientes entre s.

4.1.2. Desigualdad de Fano

Un caso en el que aparecen dos fenmenos aleatorios relacionados es


precisamente el de la transmisin de mensajes digitales a travs de un ca-
nal discreto. En tal caso, se suele representar por X la aleatoriedad de los
mensajes que se introducen en el canal y por Y la de los mensajes que salen
del mismo. La variable aleatoria X depende nicamente de la fuente de los
mensajes, pero la variable aleatoria Y depende tanto de la fuente como del
canal. Precisamente, el rango de Y coincidir con el alfabeto de salida del
canal; y su funcin de probabilidad, pY (yj ) = P(Y = yj ), depender tanto
de la funcin de probabilidad de X, pX (xi ) = P(X = xi ), como de la matriz
de probabilidades de transicin del canal:
X X
p(yj ) = p(xi , yj ) = p(yj | xi )p(xi ).
i i

Si el canal fuese ideal, es decir, si la entrada pudiese deducirse con certeza


de la salida, se verificara que

H(X | Y ) = H(Y | X) = 0.

Por contra, si el canal no fuese ideal, se tendra necesariamente que


H(X | Y ) > 0. En tal caso, aun despus de conocido el mensaje que sale
96 Informacin mutua y capacidad de canal

del canal, no se podra conocer con absoluta certeza qu mensaje habra


enviado la fuente, siendo H(X | Y ) la medida de la cantidad de informacin
adicional que sera precisa para averiguarlo. Obviamente, al no conocer con
certeza el mensaje enviado por la fuente, habr una cierta probabilidad de
cometer un fallo al deducir el mensaje enviado por la fuente del obtenido
a la salida del canal; y dicha probabilidad de error debera ser tanto ms
pequea cuanto menor fuese el valor de H(X | Y ). La desigualdad de Fano
cuantifica esta idea.

Teorema 4.4 (Desigualdad de Fano). Sean X e Y dos variables alea-


torias con el mismo rango, siendo n el nmero de elementos del mismo. Sea
Pe = P(Y 6= X). Se cumple que

H(X | Y ) H(Pe ) + Pe log(n 1).

Demostracin. Definamos una variable aleatoria error:


(
0 si Y = X
E=
1 si Y 6= X

De acuerdo con la regla de la cadena, se tiene:

por un lado:

H(E, X | Y ) = H(X | Y ) + H(E | X, Y )


= H(X | Y )

ya que la incertidumbre sobre el error es nula si se conocen los valores


de X e Y ;
y por otro lado:

H(E, X | Y ) = H(E | Y ) + H(X | E, Y )


H(Pe ) + Pe log(n 1)

por las dos desigualdades siguientes:

H(E | Y ) H(E) = H(Pe )


H(X | E, Y ) = P(E = 0)H(X | E = 0, Y ) + P(E = 1)H(X | E = 1, Y )
(1 Pe )0 + Pe log(n 1).

Obsrvese que H(X | E = 1, Y ) log(n 1) puesto que, al ser E = 1,


los posibles valores de la variable X son todos los que difieren del valor
de Y .
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 97
 


     

  
Figura 4.1. Relacin entre la informacin mutua y la entropa.

La desigualdad de Fano admite una formulacin intuitiva simple utili-


zando la propiedad de particin: la informacin necesaria para determinar
el valor de X, una vez conocido el de Y , se puede descomponer en dos par-
tes: la primera sera la informacin necesaria para saber si ha habido o no
error; y la segunda (nicamente necesaria si ha habido error) sera la infor-
macin necesaria para determinar cul de las n 1 posibles alternativas de
X restantes ha ocurrido, que depender obviamente de las probabilidades
de estas alternativas, pero que est acotada superiormente por log(n 1).

4.2. Informacin mutua

Sean X e Y dos variables aleatorias discretas, tal y como hemos venido


considerando hasta ahora. Segn se ha visto, H(X) es una medida de nues-
tra incertidumbre a priori acerca del resultado del experimento aleatorio
representado por la variable aleatoria X; y H(X | Y ) es una medida de la
incertidumbre a posteriori.
Tal y como se ha visto tambin en la seccin anterior, se cumple que
H(X | Y ) H(X), y por tanto la diferencia H(X) H(X | Y ) ser la re-
duccin de la incertidumbre debida al conocimiento del resultado del ex-
perimento representado por la variable aleatoria Y . Se dice por eso que
H(X) H(X | Y ) es la informacin que la variable aleatoria Y nos propor-
ciona sobre la variable aleatoria X.
Pero, adems, resulta que:

H(X) H(X | Y ) = H(X) + H(Y ) H(Y ) + H(X | Y )

= H(X) + H(Y ) H(X) + H(Y | X)
= H(Y ) H(Y | X)
obtenindose la primera igualdad sin ms que sumar y restar H(Y ), y la
segunda de la aplicacin de la regla de la cadena.
98 Informacin mutua y capacidad de canal

Es decir, X da tanta informacin sobre Y como la que Y da sobre X; y


por ese motivo esa informacin se denomina informacin mutua.

Definicin 4.2 (Informacin mutua). Dadas dos variables aleatorias


discretas, X e Y , se define la informacin mutua I(X; Y ) como

I(X; Y ) = H(X) H(X | Y ).

Ejemplo 4.2. La informacin mutua entre las variables aleatorias definidas


por la distribucin conjunta del ejemplo 4.1 es

7 11 3
I(X; Y ) = H(X) H(X | Y ) = = bits.
4 8 8

4.2.1. Propiedades de la informacin mutua

De acuerdo con la definicin dada, se tiene que


X 1 XX 1
I(X; Y ) = p(xi ) log p(xi , yj ) log
i
p(xi ) i j
p(xi | yj )
XX  
1 1
= p(xi , yj ) log log
i j
p(xi ) p(xi | yj )
XX p(xi | yj )
= p(xi , yj ) log
i j
p(xi )
 
p(xi | yj )
= E log
p(xi )

donde queda puesto de manifiesto explcitamente que la informacin mutua


depende tanto de la distribucin de las probabilidades a priori como de
la distribucin de las probabilidades a posteriori de una cualquiera de las
variables aleatorias.
Es fcil comprobar que esta funcin, al igual que la entropa, tiene las
siguientes caractersticas:

nunca es negativa,

tiene una cota superior, y

es convexa con respecto a la distribucin de las probabilidades a priori


(cncava con respecto a la distribucin de las probabilidades a poste-
riori).
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 99

Teorema 4.5. El valor de I(X; Y ) es o positivo o nulo, siendo condicin


necesaria y suficiente para que I(X; Y ) = 0 que las variables aleatorias X
e Y sean independientes entre s.

Demostracin. Es I(X; Y ) 0 ya que H(X | Y ) H(X).


Por otra parte, por definicin, I(X; Y ) = 0 si y slo si H(X) = H(X | Y ),
lo cual a su vez es cierto si y slo si las variables aleatorias X e Y son
independientes entre s.

Teorema 4.6. 
I(X; Y ) mn H(X), H(Y ) .

Demostracin. Se sigue inmediatamente de las siguientes desigualdades:

I(X; Y ) = H(X) H(X | Y ) H(X)


I(X; Y ) = H(Y ) H(Y | X) H(Y ).

Teorema 4.7. I(X; Y ) es convexa con respecto a la distribucin de proba-


bilidad (p(x1 ), p(x2 ), . . . , p(xn )).

Demostracin.
I(X; Y ) = H(Y ) H(Y | X)
X
= H(Y ) p(xi )H(Y | X = xi )
i
X X 1
= H(Y ) p(xi ) p(yj | xi ) log .
i j
p(yj | xi )

Si las probabilidades p(yj | xi ) son fijas, entonces las probabilidades p(yj )


son funciones lineales de las probabilidades p(xi ), ya que
X X
p(yj ) = p(xi , yj ) = p(yj | xi )p(xi ).
i i

Se tiene pues que:

H(Y ) es una funcin convexa con respecto a la distribucin de pro-


babilidades (p(x1 ), p(x2 ), . . . , p(xn )), ya que lo es con respecto a la
distribucin de probabilidades (p(y1 ), p(y2 ), . . . , p(ym ));
P
i p(xi )H(Y | X = xi ) es una funcin lineal de las probabilidades
p(xi ),
100 Informacin mutua y capacidad de canal

y la diferencia de una funcin convexa y una funcin lineal resulta ser una
funcin convexa.

Esta propiedad resulta muy importante ya que, en virtud de la conve-


xidad de I(X; Y ) con respecto a p, I(X; Y ) tiene un mximo.

Teorema 4.8. I(X; Y ) es cncava con respecto a las distribuciones de pro-


babilidad (p(y1 | xi ), p(y2 | xi ), . . . , p(ym | xi )).

Demostracin. Dadas dos familias de distribuciones de probabilidad con-


dicionales (p1 (yj | xi )) y p2 (yj | xi )), y dado un nmero real tal que 0 <
< 1, se definen las siguientes probabilidades condicionales:

p (yj | xi ) = p1 (yj | xi ) + (1 )p2 (yj | xi ).

Tales probabilidades caracterizan a una nueva variable aleatoria, Y , de


distribucin marginal dada por las probabilidades:
X
p (yj ) = p(xi )p (yj | xi )
i
X X
= p1 (yj |xi )p(xi ) + (1 ) p2 (yj | xi )p(xi )
i i
= p1 (yj ) + (1 )p2 (yj ).

Si ahora se calcula la informacin mutua entre esta nueva variable alea-


toria Y y la variable aleatoria X, se tiene que
X X p (yj | xi )
I(X; Y ) = p(xi ) p (yj | xi ) log
i j
p (yj )
X X p1 (yj | xi ) + (1 )p2 (yj | xi )
= p(xi ) p (yj | xi ) log .
i j
p1 (yj ) + (1 )p2 (yj )

Pero como f (x) = x log x es una funcin cncava en x:

X p1 (yj ) + (1 )p2 (yj )


p (yj | xi ) log
j
p1 (yj | xi ) + (1 )p2 (yj | xi )
X p1 (yj | xi ) X p2 (yj | xi )
p1 (yj | xi ) log + (1 ) p2 (yj | xi ) log .
j
p1 (yj ) j
p2 (yj )

Aplicando esta desigualdad a cada sumando de I(X; Y ), resulta:

I(X; Y ) I(X; Y1 ) + (1 )I(X; Y2 ).


C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 101

4.3. Informacin mutua condicional

El hecho de conocer una tercera variable aleatoria Z puede hacer variar


la distribucin marginal o conjunta de dos variables aleatorias dadas, X e
Y.

Definicin 4.3. Sean X, Y y Z tres variables aleatorias discretas. Se dice


que X e Y son condicionalmente independientes dado Z si la distribucin
condicional de Y , cuando se conoce Z, es independiente de la de X:

P(X = x, Y = y | Z = z) = P(X = x | Z = z) P(Y = y | Z = z).

Definicin 4.4 (Informacin mutua condicional). La informacin


mutua condicional de las variables aleatorias X e Y , dada la variable Z, es

I(X; Y | Z) = H(X | Z) H(X | Y, Z).

Se puede verificar fcilmente que la informacin mutua condicional con-


serva todas las propiedades de la informacin mutua. En particular, se cum-
ple el siguiente teorema.

Teorema 4.9.
I(X; Y | Z) 0

con igualdad estricta si y solamente si, dada Z, las variables X e Y son


condicionalmente independientes.

Adems, la informacin mutua satisface tambin una regla de la cadena:

Teorema 4.10.

I(X, Y ; Z) = I(X; Z) + I(Y ; Z | X).

Demostracin.

I(X, Y ; Z) = H(X, Y ) H(X, Y | Z)



= H(X) + H(Y | X) H(X | Z) + H(Y | X, Z)
 
= H(X) H(X | Z) + H(Y | X) H(Y | X, Z)
= I(X; Z) + I(Y ; Z | X).
102 Informacin mutua y capacidad de canal

4.4. El teorema de procesamiento de la informacin

Dado que la informacin mutua es una medida de la cantidad de in-


formacin que una variable, Y , aporta sobre otra, X, cabra preguntarse:
existe alguna transformacin de Y que nos proporcione mayor cantidad de
informacin sobre X que I(X; Y )? El teorema de procesamiento de la infor-
macin niega tal posibilidad: ninguna manipulacin determinista o aleatoria
de las observaciones incrementa la cantidad de informacin de stas.

Teorema 4.11. Sea Z el resultado de cualquier transformacin de Y que


sea condicionalmente independiente de X. Entonces
I(X; Z) I(X; Y ).

Demostracin.
I(X; Y, Z) = I(X; Z) + I(X; Y | Z) = I(X; Y ) + I(X; Z | Y ).
Pero, como X y Z son condicionalmente independientes, I(X; Z | Y ) = 0; y
como I(X; Y | Z) 0, se tiene que
I(X; Z) I(X; Y ).

La inecuacin es simtrica con respecto a X y Z, y del mismo modo se


prueba que I(Y ; Z) I(X; Z).

4.5. Informacin mutua entre vectores aleatorios

La definicin de informacin mutua se puede aplicar, al igual que la


definicin de entropa, al caso ms general de variables aleatorias discre-
tas n-dimensionales, tambin denominadas vectores aleatorios discretos de
dimensin n. Y de la misma manera que existe una relacin entre las entro-
pas individuales y la conjunta, se puede probar que existen ciertas relacio-
nes entre la informacin mutua entre vectores aleatorios y las informaciones
mutuas entre las componentes de los vectores.
Sean pues X = (X1 , X2 , . . . , Xn ) e Y = (Y1 , Y2 , . . . , Yn ) dos vectores
aleatorios discretos de dimensin n. Se tiene que la informacin mutua entre
ellos est dada por:

 
p(x | y)
I(X; Y) = E log
p(x)
 
p(y | x)
= E log .
p(y)
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 103

Teorema 4.12. Si se verifica que


n
 Y
P (y1 , y2 , . . . , yn ) | (x1 , x2 , . . . , xn ) = p(yi | xi ),
i=1

entonces se cumple que


n
X
I(X; Y) I(Xi ; Yi ).
i=1

Demostracin.
   Qn 
p(y | x) i=1 p(yi | xi )
I(X; Y) = E log = E log
p(y) p(y)

donde la primera igualdad se obtiene de la definicin de informacin mutua


y la segunda se sigue inmediatamente de la hiptesis del teorema.
Por otra parte,
n
X n
X  
p(yi | xi )
I(Xi ; Yi ) = E log
i=1 i=1
p(yi )
" n #
X p(yi | xi )
=E log
i=1
p(yi )
 Qn 
i=1 p(yi | xi )
= E log Qn .
i=1 p(yi )

Entonces, se tiene que


n
X  Qn 
p(yi )
I(X; Y) I(Xi ; Yi ) = E log i=1
i=1
p(y)
 Qn 
i=1 p(yi )
log E
p(y)
=0

siguindose la desigualdad de la demostracin de la desigualdad de Jensen;


y la ltima igualdad, del hecho de que se cumple que
 Qn  X Qn n
i=1p(yi ) p(yi ) X Y
E = p(y) i=1 = p(yi ) = 1.
p(y) y
p(y) y i=1
104 Informacin mutua y capacidad de canal

Si se considera que (Y1 , Y2 , . . . , Yn ) representa las n salidas de un canal


correspondientes a las entradas (X1 , X2 , . . . , Xn ), este teorema dice que,
cuando el canal no tiene memoria, Y proporciona sobre X una cantidad de
informacin que no puede ser mayor que la cantidad total de informacin
suministrada acerca de cada Xi por la correspondiente Yi .
Existen, sin embargo, unas condiciones en las que ocurre todo lo contra-
rio, tal y como establece el siguiente teorema.

Teorema 4.13. Si se verifica que las componentes del vector aleatorio X


son independientes entre s, entonces se cumple que
n
X
I(X; Y) I(Xi ; Yi ).
i=1

Demostracin.
   
p(x | y) p(x | y)
I(X; Y) = E log = E log Qn
p(x) i=1 p(xi )

donde la primera igualdad se obtiene de la definicin de informacin mutua


y la segunda se sigue inmediatamente de la hiptesis del teorema.
Por otra parte,
n
X n
X  
p(xi | yi )
I(Xi ; Yi ) = E log
i=1 i=1
p(xi )
" n #
X p(xi | yi )
=E log
i=1
p(xi )
 Qn 
i=1 p(xi | yi )
Q
= E log n .
i=1 p(xi )

Entonces, se tiene que


n
X  Qn 
p(xi | yi )
I(Xi ; Yi ) I(X; Y) = E log i=1
i=1
p(x | y)
 Qn 
i=1 p(xi | yi )
log E
p(x | y)
=0

siguindose la desigualdad de la demostracin de la desigualdad de Jensen;


C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 105

y la ltima igualdad, del hecho de que se cumple que


 Qn  XX Qn
i=1 p(xi | yi ) p(xi | yi )
E = p(x, y) i=1
p(x|y) x y
p(x | y)
XX n
Y
= p(y) p(xi | yi )
x y i=1
X XYn
= p(y) p(xi | yi )
y x i=1
X
= p(y)
y

= 1.

Como consecuencia inmediata de los dos teoremas anteriores se tiene el


siguiente

Corolario 4.14. Es condicin suficiente para que se cumpla


n
X
I(X; Y) = I(Xi ; Yi )
i=1

que se verifiquen simultneamente las dos siguientes condiciones:

a) las componentes del vector aleatorio X son independientes entre s;


 Qn
b) P (y1 , y2 , . . . , yn ) | (x1 , x2 , . . . , xn ) = i=1 p(yi | xi ).

Resulta tambin interesante notar que estas dos condiciones son tam-
bin condiciones necesarias. Basta para ello verificar en los dos teoremas
anteriores que, como consecuencia de la desigualdad de Gibbs, es condicin
necesaria y suficiente para que se cumpla la igualdad que:

las componentes del vector aleatorio Y sean independientes entre s,


en el teorema 4.12;

n
Y
P (x | y) = p(xi | yi ), en el teorema 4.13.
i=1
106 Informacin mutua y capacidad de canal

4.6. Capacidad de canal: concepto y propiedades

Como se recordar, las caractersticas de un canal discreto sin memoria


se especifican mediante una matriz de probabilidades de transicin

p(y1 | x1 ) p(yj | x1 ) p(ys | x1 )
.. .. ..
. . .

Qrs = p(y1 | xi ) p(yj | xi ) p(ys | xi )


.. .. ..
. . .
p(y1 | xr ) p(yj | xr ) p(ys | xr )

donde p(yj | xi ) representa la probabilidad de que se obtenga el smbolo yj


a la salida del canal cuando se ha transmitido el smbolo xi .
Para un canal dado, la informacin que los mensajes recibidos propor-
cionan sobre los enviados (que est dada por la informacin mutua I(X; Y ))
depender de la naturaleza de los mensajes enviados, es decir, de la variable
aleatoria X. Se sabe tambin que la informacin mutua I(X; Y ) es una fun-
cin convexa de las probabilidades de la distribucin de la variable aleatoria
X, por lo que existe una distribucin de las probabilidades de X para la
que la informacin mutua alcanza su mximo valor. Tal valor mximo se
denomina capacidad del canal.

Definicin 4.5 (Capacidad del canal). Sea X la variable aleatoria dis-


creta que representa la introduccin de un smbolo en el canal, y sea Y la
variable aleatoria discreta que representa la salida de un smbolo del canal.
Se define la capacidad del canal como el mximo valor posible que puede
adoptar la informacin mutua entre las variables aleatorias X e Y cuando
se consideran todas las posibles distribuciones de probabilidad de la variable
aleatoria X:
C = m ax I(X; Y ).
p(x)

Las propiedades de la capacidad del canal se deducen inmediatamente


de las propiedades de la informacin mutua.

Teorema 4.15. C 0.

Demostracin. Se sigue inmediatamente del hecho de que I(X; Y ) 0.

Teorema 4.16. C m
ax H(X).
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 107

Demostracin. Se sigue inmediatamente de los dos resultados siguientes:

I(X; Y ) = H(X) H(X | Y )


H(X | Y ) 0.

En virtud del teorema anterior, habida cuenta de que H(X) log r,


resulta que, expresando la informacin en unidades de base r, el valor de C
no puede exceder de la unidad.

4.7. Clculo de la capacidad

La obtencin de la capacidad del canal es un problema de clculo, en


general complejo, pero para el que existen mtodos de resolucin bien co-
nocidos. La exposicin de tales mtodos cae, no obstante, fuera del mbito
de este libro. Aun as, para muchos casos de inters prctico, el clculo de
la capacidad es una cuestin sencilla. As sucede, por ejemplo, para todos
los canales con alfabeto de entrada binario como el del ejemplo siguiente.

Ejemplo 4.3. Considrese el canal de matriz de probabilidades de transi-


cin  
1p p 1
Q= ; p< .
0 1 2
Sea = P(X = 1). En consecuencia, resultar que P(X = 0) = 1 . A
partir de aqu resulta fcil establecer tanto la distribucin de probabilidades
conjunta de X e Y :

P(X = 0, Y = 0) = 1
P(X = 1, Y = 0) = p
P(X = 0, Y = 1) = 0
P(X = 1, Y = 1) = (1 p)

como la distribucin marginal de Y :

P(Y = 0) = 1 (1 p)
P(Y = 1) = (1 p).

As, resulta que


XX p(xi , yj )
I(X; Y ) = p(xi , yj ) log
i j
p(xi )p(yj )
1 p 1
= (1 ) log + p log + (1 p) log .
1 (1 p) 1 (1 p)
108 Informacin mutua y capacidad de canal

Se tiene entonces que, en este caso, I(X; Y ) es una funcin de una va-
riable real, , cuya maximizacin es trivial: se obtiene el valor de que
maximiza I(X; Y ), max , resolviendo la ecuacin dI(X;Y
d
)
= 0. As, resulta
que:
1
max = p
1 p + p 1p
y que h i
p
C = I(X; Y )|=max = log 1 + (1 p)p 1p .

Existen tambin, aun para canales de alfabeto de entrada no binario,


casos particulares en los que la maximizacin se simplifica por aplicacin de
las propiedades de la informacin mutua.

Ejemplo 4.4. Considrese el canal de matriz de probabilidades de transi-


cin

1p 0 0 0 p
0 1p 0 0 p 1

QM (M +1) = . ; p< .
.. 2
0 0 0 1p p
Un canal de este tipo suele denominarse canal M -ario con borrado.
Sea pi = P(X = i). En este caso particular slo tienen probabilidad no
nula 2M pares de los M (M + 1) pares posibles: son los pares de la forma
(i, i) y los pares de la forma (i, M ), para los que se tiene que
P(X = i, Y = i) = pi (1 p)
P(X = i, Y = M ) = pi p
de donde resulta la distribucin marginal de Y
P(Y = i) = P(X = i, Y = i) = pi (1 p)
X
P(Y = M ) = P(X = i, Y = M ) = p.
i

As, resulta que


XX p(xi , yj )
I(X; Y ) = p(xi , yj ) log
i j
p(xi )p(yj )
M
X  
1
= (1 p)pi log
i=1
pi
= (1 p)H(X)
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 109

que ser mxima cuando lo sea H(X). Pero de las propiedades de la entropa
se sabe que el mximo de H(X) se alcanza cuando la distribucin de la
variable aleatoria X es uniforme (pi = 1/M i), y vale H(X) = log M ;
por lo que, en este caso, se obtiene directamente la capacidad del canal:

C = (1 p) log M.

Vamos a considerar, por ltimo, una serie de casos especiales de canales


con propiedades bien conocidas.

4.7.1. Canales simtricos

Definicin 4.6 (Canal simtrico). Se dice que un canal discreto sin me-
moria es simtrico cuando su matriz de probabilidades de transicin cumple
las dos propiedades siguientes:

todas sus filas tienen los mismos elementos, y

todas sus columnas tienen los mismos elementos.

Obsrvese que, en la definicin anterior, no se exige que todas las filas


sean iguales, pues los elementos de las mismas pueden disponerse en distinto
orden. Lo mismo cabe decir de las columnas. Obsrvese, adems, que filas y
columnas no tienen por qu tener los mismos elementos (ni siquiera tienen
por qu tener el mismo nmero de elementos).

Ejemplo 4.5. Un ejemplo de canal simtrico sera el siguiente:


 
1p p 1
Q= ; p< .
p 1p 2

Este canal se denomina canal binario simtrico.

Ejemplo 4.6. Es tambin simtrico un canal de la forma

Y =X +Z (m
od K)

donde los alfabetos de X y Z son ambos {0, 1, . . . , K 1}, y donde Z es


independiente de X. Resulta fcil verificar que tanto las filas como las co-
lumnas de la matriz de probabilidades de transicin no son ms que permu-
taciones de los elementos de la distribucin de probabilidad de la variable
aleatoria Z.
110 Informacin mutua y capacidad de canal

Teorema 4.17. Un canal discreto sin memoria simtrico con r entradas y


s salidas alcanza su capacidad cuando las entradas son equiprobables; y el
valor de la capacidad es

C = log s H(Y | X = xi ) i.

Demostracin. De acuerdo con la definicin de informacin mutua,

I(X; Y ) = H(Y ) H(Y | X).

Y, por la definicin de entropa condicional,


r
X
H(Y | X) = p(xi )H(Y | X = xi )
i=1
r
X
= H(Y | X = xi ) p(xi )
i=1
= H(Y | X = xi )

ya que H(Y | X = xi ) es constante i al ser la entropa de una cualquiera


de las filas de la matriz de probabilidades de transicin del canal.
Por tanto, se tiene que H(Y | X) = H(Y | X = xi ), constante i. Y as,
por ser H(Y | X) constante, I(X; Y ) ser mxima cuando lo sea H(Y ).
Se sabe, por las propiedades de la entropa, que H(Y ) log s, alcan-
zndose la igualdad nicamente en el caso de que los distintos valores de la
variable aleatoria Y sean equiprobables. As que habr que preguntarse si
los distintos valores de la variable aleatoria Y pueden ser equiprobables, es
decir, si existe alguna distribucin de la variable aleatoria X que conduzca
a valores de Y equiprobables. Y es fcil verificar que s existe tal distribu-
cin, y es la distribucin uniforme; es decir, que, en un canal simtrico, los
valores de Y son equiprobables cuando lo son los de la variable aleatoria X.
En efecto:
r
X
p(yj ) = p(xi , yj )
i=1
Xr
= p(yj | xi )p(xi )
i=1
r
X
= p(xi ) p(yj | xi )
i=1

por
Pr ser p(xi ) constante i. Y como, por ser el canal simtrico, la suma
i=1 p(yj | xi ) es constante j, entonces tambin p(yj ) es constante j.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 111

Si se examina cuidadosamente la demostracin anterior, puede apreciarse


que las condiciones de simetra de la definicin que hemos dado para canal
simtrico podran relajarse un poco sin alterar el resultado que acabamos
de obtener, a saber:

bastara que todas las filas de la matriz Q tuviesen la misma entropa;


y

bastara que todas las columnas de la matriz Q sumasen lo mismo.

Por tal motivo estas dos condiciones podran constituir una definicin
alternativa de la simetra del canal.

4.7.2. Yuxtaposicin de canales

Puede darse el caso de que la matriz de probabilidades de transicin de


un canal sea de la forma
 1 
Qr0 s0 0
Qrs = .
0 Q2(rr0 )(ss0 )

Un canal de este tipo puede considerarse formado por la yuxtaposicin


de dos canales independientes (con matrices de probabilidades de transicin
Q1 y Q2 ) que se usan aleatoriamente.

Teorema 4.18. La capacidad de un canal formado por la yuxtaposicin de


dos subcanales de capacidades C1 y C2 (medidas ambas en bits) es

C = log2 2C1 + 2C2

obtenindose dicha capacidad cuando la probabilidad de uso del canal de


capacidad C1 est dada por

2 C1
p= .
2 C1+ 2 C2

Demostracin. Sean X e Y las variables aleatorias discretas que repre-


sentan, respectivamente, los smbolos que se introducen en el canal y que
salen del mismo en un momento dado. Considere que se pueden establecer
particiones binarias en ambas variables aleatorias de forma que las entradas
de un elemento de la particin de X slo pueden dar salidas de un elemento
de la particin de Y , y viceversa; y sean Xi e Yi las variables aleatorias
que representan sendos elementos de las particiones de X e Y que estn en
correspondencia (es decir, sean Xi e Yi las variables aleatorias discretas que
112 Informacin mutua y capacidad de canal

representan, respectivamente, los smbolos que se introducen en el subcanal


i-simo y que salen del mismo en un momento dado).
Por definicin, la capacidad del canal ser
C = m
ax I(X; Y ).
p(x)

A su vez,
I(X; Y ) = H(X) + H(Y ) H(X, Y ).

Y como, en virtud de la propiedad de particin, se tiene:


H(X) = H(p) + pH(X1 ) + (1 p)H(X2 )
H(Y ) = H(p) + pH(Y1 ) + (1 p)H(Y2 )
H(X, Y ) = H(p) + pH(X1 , Y1 ) + (1 p)H(X2 , Y2 )
entonces resulta que
I(X; Y ) = H(p) + pI(X1 ; Y1 ) + (1 p)I(X2 ; Y2 ).
Finalmente, por ser la maximizacin de las I(Xi ; Yi ) independiente del valor
de p, se tiene que
m ax (H(p) + pC1 + (1 p)C2 )
ax I(X; Y ) = m
y derivando esta expresin con respecto a p e igualando a 0 se obtiene el
valor de p que maximiza la informacin mutua:
2 C1
p= .
2 C1 + 2 C2

As, resulta que la capacidad C vale


 
2 C1 2 C1 2 C2
H + C 1 + C2
2 C1 + 2 C2 2 C1 + 2 C2 2 C1 + 2 C2
2 C1 2 C1 + 2 C2 2 C2 2 C1 + 2 C2 C1 2 C1 + C 2 2 C2
= log2 + C1 log2 +
2 C1
+2 C 2 2 C 1 2 +2 C 2 2 C 2 2 C1 + 2 C2
C1 C2

= log2 2 + 2 .

Ejemplo 4.7.

1p p 0 0
p 1p 0 0 1
Q44 =
0
; p< .
0 1p p 2
0 0 p 1p
En este caso, C1 = C2 = 1 H2 (p) bits; y por tanto C = 2 H2 (p) bits,
obtenindose dicha capacidad para entradas equiprobables.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 113

4.7.3. Canales en serie

Cabe la posibilidad de concatenar varios canales para formar un nuevo


canal. Consideraremos aqu nicamente la concatenacin de dos canales de
forma que la salida del primero se introduzca directamente en el segundo,
sin ningn procesamiento intermedio. Ser preciso, entonces, que ambos
canales tengan idnticas tasas de transferencia de datos, y que el alfabeto
de entrada del segundo canal sea idntico al alfabeto de salida del primero.
Resulta evidente que tal concatenacin de canales producir los mismos
resultados que un nico canal con un alfabeto de entrada igual al del primer
canal y un alfabeto de salida igual al del segundo con tal de que las pro-
babilidades de transicin del canal nico sean las mismas que las obtenidas
extremo a extremo para los canales concatenados. Diremos que un tal canal
nico es el canal equivalente a la concatenacin de los dos canales dados. Y
es inmediato verificar que la matriz de probabilidades de transicin del ca-
nal equivalente no es ms que el producto de las matrices de probabilidades
de transicin de los canales que se concatenan:

Qe = Q 1 Q 2

siendo Qe la matriz del canal equivalente, Q1 la matriz del primero de los


canales que se concatenan y Q2 la matriz del segundo.

Ejemplo 4.8. Considere dos canales binarios simtricos idnticos. En este


caso, se tiene que
 
1p p 1
Q1 = Q 2 = ; p<
p 1p 2

y el canal equivalente de la concatenacin de los dos canales dados tendr


la siguiente matriz de probabilidades de transicin:
 2 
e p + (1 p)2 2p(1 p)
Q = = Q1 Q2 .
2p(1 p) p2 + (1 p)2

Es decir, el canal equivalente es otro canal binario simtrico, pero con pro-
babilidad de error 2p(1 p).

Notas bibliogrficas

La idea de la informacin mutua y su relacin con la capacidad del canal


fue desarrollada por Shannon en [59] y [60]. La desigualdad de Fano, en la
que se basa la demostracin del teorema inverso de codificacin de canales
ruidosos, que se ver en el captulo siguiente, apareci publicada en [17].
114 Informacin mutua y capacidad de canal

Un libro ya clsico de Teora de la Informacin, recomendable por su


legibilidad, en el que los tpicos de este tema se tratan con cierta amplitud
es [1].
Los conceptos de este captulo se pueden extender para el caso de varia-
bles y vectores aleatorios continuos, si bien un tratamiento riguroso de esta
materia es difcil. El tratamiento ms completo de la misma se encuentra
en los tres primeros captulos de [50].
CAPTULO 5

El teorema de codificacin de
canales ruidosos

5.1. Introduccin

Este tema est dedicado por entero al establecimiento e interpretacin


del que es sin lugar a dudas el resultado central de la Teora de la Informa-
cin: el llamado teorema de Shannon de codificacin de canales ruidosos.
De forma sinttica, este teorema establece la posibilidad de establecer una
comunicacin fiable a travs de cualquier canal con un coste (por smbolo
de la fuente) acotado e inversamente proporcional a la capacidad del canal.

5.2. El teorema de Shannon de codificacin de canales


ruidosos

En el tema precedente se ha definido la capacidad del canal como el m-


ximo valor de la informacin que, en media, cada smbolo que sale del mismo
proporciona sobre el que realmente se ha introducido. Si se multiplica este
valor, C, por el rgimen de transmisin de smbolos del canal, vc , se obtiene
el mximo de dicha informacin por unidad de tiempo; representemos esta
ltima cantidad por C t .
Por su definicin, tanto C como C t son parmetros caractersticos del
canal. Pero hasta ahora nada se ha dicho sobre si tales parmetros tienen
o no algn significado prctico para la resolucin de las cuestiones de inte-
rs en este libro. Ese es precisamente el objeto de este captulo, ya que la
trascendencia de la capacidad del canal se deriva del teorema de Shannon

115
116 El teorema de codificacin de canales ruidosos

de codificacin de canales ruidosos. Este teorema, tal y como fue enunciado


originalmente por el propio Shannon, consta de dos proposiciones:

Tenga un canal discreto capacidad C t y una fuente discreta entropa


H t . Si H t < C t , existe un sistema de codificacin tal que la salida
de la fuente puede transmitirse sobre el canal con una frecuencia de
errores arbitrariamente pequea.

Si H t > C t , lo anterior es imposible.

En lo que sigue consideraremos ambas proposiciones por separado y se


denominarn, respectivamente, teorema directo y teorema inverso.

5.2.1. Teorema directo

Ocupmonos en primer lugar de la primera proposicin. Se va a demos-


trar que si la entropa de la fuente (por unidad de tiempo) es menor que la
capacidad del canal (tambin por unidad de tiempo), entonces es posible,
con ciertas condiciones, una recepcin arbitrariamente fiable.
El mtodo de demostracin no se basar en la obtencin de un cdigo
que tenga las propiedades deseadas, sino en mostrar que tal cdigo puede
existir. Bastar, pues, encontrar un procedimiento cualquiera para la cons-
truccin de una cierta clase de cdigos (por lo que pueden imponerse tantas
restricciones como se deseen al codificador y al decodificador), promediar
la frecuencia de errores entre todos los cdigos considerados y mostrar que
esta frecuencia puede hacerse arbitrariamente pequea. Siendo as, como al
menos uno de los cdigos habr de tener una frecuencia de errores al menos
tan pequea como el promedio, entonces la frecuencia de los errores de este
cdigo podr hacerse tambin arbitrariamente pequea.
Pues bien, la primera restriccin que impondremos ser precisamente la
de realizar la descomposicin (ya comentada en el primer captulo del libro)
de la pareja codificadordecodificador en un codificadordecodificador de
fuente y en un codificadordecodificador de canal.

Codificacin de fuente: El codificador de fuente transformar los men-


sajes de la fuente en secuencias de smbolos binarios. Y conocido el
teorema de Shannon de codificacin de fuente (que garantiza la posi-
bilidad de realizar una codificacin de fuente asintticamente ptima),
para realizar la codificacin de canal puede ignorarse la naturaleza de
la fuente, ya que, tras una codificacin de fuente ptima, siempre se
tiene que los distintos smbolos del mensaje son equiprobables. De esta
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 117

forma, el proceso de codificacin del canal se independiza de la fuen-


te, y depender nicamente del canal, lo que, por lo dems, tambin
resulta muy conveniente en la prctica.
Por otra parte, en virtud del mencionado teorema de codificacin de
fuente, el codificador de fuente ptimo transforma los smbolos de la
fuente en una secuencia de smbolos binarios, de forma que existe una
relacin conocida entre las velocidades a la que generan los smbolos
la fuente, vf , y el codificador de fuente, vcf :

vcf = H2 (X)vf

siendo H2 (X) la entropa de la fuente (expresada en bits).


Codificacin de canal: En cuanto al proceso de codificacin de canal,
restringiremos nuestra atencin a la codificacin en bloques.
En transmisin, se separa la secuencia de smbolos que se va
a enviar en bloques de smbolos del mismo tamao. Sea k el
nmero de smbolos de cada bloque. Existen entonces M = 2k
diferentes bloques posibles; y el codificador debe asignar a cada
uno de tales bloques otro bloque de smbolos del alfabeto de
entrada del canal, que se supondr de longitud tambin fija n,
al que llamaremos palabra del cdigo. Representemos cada una
de las M = 2k palabras del cdigo por xi = (x1i , x2i , . . . , xni ). Un
cdigo tal se denominar cdigo (M, n). Ntese que, en virtud
de la existencia de un proceso de codificacin de fuente ptimo,
pueden suponerse equiprobables todas las palabras del cdigo
aqu consideradas.
Un parmetro tpico de un cdigo de bloques tal es la tasa R,
que se define como R = k/n y representa el nmero de smbolos
del mensaje a transmitir que se envan por cada uso del canal; o
lo que es lo mismo, dicha tasa es la razn entre las velocidades
de los smbolos a la salida del codificador, vc , y a su entrada, vcf :
vcf
R=
vc
por lo que, en las condiciones en que vcf = H2 (X)vf , es equiva-
lente la condicin R < C(bits) a la condicin

H2 (X)vf < C(bits)vc

es decir, que la entropa de la fuente por unidad de tiempo sea


menor que la capacidad del canal por unidad de tiempo.
En recepcin, el decodificador debe adivinar, para cada bloque
de smbolos de longitud n, qu palabra del cdigo se envi; y
118 El teorema de codificacin de canales ruidosos

decimos que se ha producido un error de decodificacin si no la


adivina correctamente.
Puesto que no nos interesan los smbolos particulares que cons-
tituyen una determinada palabra del cdigo, puede considerarse
la codificacin simplemente como una correspondencia entre los
enteros comprendidos entre 1 y M y las palabras del cdigo x1
a xM : si se quiere enviar el mensaje i, se transmite la palabra
xi . El decodificador, a partir del bloque recibido como conse-
cuencia de la transmisin de xi , produce un entero i0 . Y habr
ocurrido un error si i0 6= i. Sea Pe,i la probabilidad de tal error.
Dicha probabilidad (que ser, obviamente, funcin tanto del ca-
nal de transmisin empleado como de los mtodos de codificacin
y decodificacin) no tiene por qu ser la misma para todas las pa-
labras del cdigo. Ahora bien, por transmisin fiable se entiende
aqu que la probabilidad de error en la transmisin de cualquiera
de las palabras del cdigo puede hacerse arbitrariamente peque-
a, o lo que es lo mismo, puede hacerse arbitrariamente pequea
la mayor de todas las Pe,i , llammosla Pe .

Es bien sabido que se puede hacer Pe tan pequea como se quiera dismi-
nuyendo R. Pero lo que ahora se va a probar es algo que a primera vista re-
sulta verdaderamente sorprendente: no es necesario reducir indefinidamente
R para hacer Pe tan pequea como se quiera; basta que R < C (expresada
C en bits). As, para cualquier R < C, puede hacerse Pe tan pequea como
se quiera sin que disminuya R, incrementando el valor de n.
Obsrvese finalmente que, dado que R = k/n, y habida cuenta de que
k = log2 M , resulta que
log2 M
R=
n
o, equivalentemente,
M = 2nR
expresiones ambas que ligan el nmero de palabras del cdigo, M , con su
tasa, R. Obviamente, esta tasa R no puede tomar cualquier valor. No obs-
tante, a veces interesa considerar una variacin continua de R, y en dichos
casos ser necesario corregir la expresin anterior de la siguiente forma:
 
M = 2nR .

Teniendo en cuenta toda la exposicin anterior, el teorema directo de


codificacin de canal puede enunciarse como sigue:

Teorema 5.1. Si se considera una fuente binaria de entropa mxima, para


cualquier tasa R < C(bits), existe una secuencia de cdigos (d2nR e, n) cuya
mxima probabilidad de error Pe 0.
n
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 119

Demostracin. Queremos investigar la mnima probabilidad conseguible


de decodificar con error como una funcin de la tasa R, de la longitud de
los bloques n y del canal. Se ver que existe una cota superior para esta
probabilidad, que decae exponencialmente con la longitud de los bloques
para todas las tasas por debajo de la capacidad. Esta cota se obtiene anali-
zando un conjunto de cdigos, no nicamente un buen cdigo. Esta peculiar
aproximacin est motivada por el hecho de que, para valores interesantes
de n y R, no se conoce ninguna forma de encontrar cdigos que minimicen
la probabilidad de decodificar con error, e, incluso si pudiesen encontrarse
tales cdigos, el nmero de posibles secuencias recibidas hara prohibitivo
un clculo directo de la probabilidad de error.
Para definir el conjunto de los cdigos de bloques que se van a conside-
rar, sea Qn (x) una asignacin arbitraria de probabilidades al conjunto de
secuencias de longitud n que van a enviarse a travs del canal, y elijamos
todas las palabras del cdigo independientemente con estas mismas proba-
bilidades. As, en el conjunto de cdigos considerado, la probabilidad de un
cdigo particular, digamos x1 , x2 , . . . , xm , es
m
Y
Qn (xi ).
i=1

Obsrvese que no se excluye la posibilidad de que en el cdigo haya pala-


bras repetidas, aun cuando tal cdigo sera claramente inadecuado. Cada
cdigo del conjunto tiene su propia probabilidad de error de decodificacin.
Acotaremos la esperanza, sobre todo el conjunto de cdigos, de esta pro-
babilidad de error. Como al menos un cdigo del conjunto debe tener una
probabilidad de error tan pequea como el promedio de las probabilidades
del conjunto, sta ser una cota superior para la probabilidad de error del
mejor cdigo.

Caso de cdigo de dos palabras

Consideremos un canal discreto arbitrario donde P(y | x) representa la


probabilidad de que se reciba una secuencia y cuando se ha enviado la se-
cuencia x. Sean x1 y x2 dos palabras del cdigo de longitud n, y supongamos
que se usa la regla de decodificacin de mxima verosimilitud, decodificando
el mensaje 1 si P(y | x1 ) > P(y | x2 ), y decodificando el mensaje 2 en caso
contrario.
La probabilidad de error cuando se enva el mensaje 1 es
X
Pe,1 = P(y | x1 )
yY1C
120 El teorema de codificacin de canales ruidosos

siendo Y1C , que es el complemento de Y1 , el conjunto de todas las secuencias


de longitud n que no se decodifican como el mensaje 1.
Para cualquier y Y1C , y para cualquier s > 0, se tiene que P(y | x2 )s
P(y | x1 )s ; y por tanto, se cumple que

P(y | x1 ) P(y | x1 )1s P(y | x2 )s ; 0 < s < 1.

Entonces, se puede escribir:


X
Pe,1 P(y | x1 )1s P(y | x2 )s ; 0 < s < 1.
y

De la misma forma:
X
Pe,2 P(y | x2 )1r P(y | x1 )r ; 0 < r < 1.
y

Obsrvese que, si en la cota de Pe,2 se sustituye r por (1 s), se obtiene


la misma cota que para Pe,1 . Por tanto, sin prdida de generalidad, se puede
escribir:
X
Pe,i P(y | x1 )1s P(y | x2 )s ; i = 1, 2; 0 < s < 1.
y

Si se considera ahora el conjunto de cdigos donde las palabras del c-


digo se seleccionan independientemente usando la asignacin de probabili-
dades Qn (x), entonces la probabilidad del cdigo de palabras x1 y x2 es
Qn (x1 )Qn (x2 ). As, la probabilidad de error media sobre el conjunto de
cdigos est acotada por:
XX
E [Pe,i ] = Qn (x1 )Qn (x2 ) Pe,i (x1 , x2 )
x1 x2
XXX
Qn (x1 )Qn (x2 ) P(y | x1 )1s P(y | x2 )s
x1 x2 y
X X X 
1s s
= Qn (x1 ) P(y | x1 ) Qn (x2 ) P(y | x2 ) .
y x1 x2

Y tomando s = 1/2:

XX p
2
E [Pe,i ] Qn (x) P(y | x) .
y x
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 121

Ahora bien, como, si el canal no tiene memoria, se cumple que


n
Y
P(y | x) = P(yi | xi )
i=1

Qn
entonces, si se elige Qn (x) = i=1 Q(xi ), se tiene:

X X X n
XY p
2
E [Pe,i ] Q(xi ) P(yi | xi )
y1 yn x1 xn i=1
X X Y
n X p
2
= Q(xi ) P(yi | xi )
y1 yn i=1 xi
n 
YX X 2
p
= Q(xi ) P(yi | xi )
i=1 yi xi
!2 n
J1
X K1
X p
= Q(k) P(j | k)
j=0 k=0

siguindose la ltima igualdad del hecho de que todos los xi tienen el mis-
mo recorrido (que es el alfabeto de entrada del canal, que hemos supuesto
dado por {0, 1, . . . , K 1}) y tambin todos los yi tienen el mismo reco-
rrido (que es el alfabeto de salida del canal, que hemos supuesto dado por
{0, 1, . . . , J 1}). Se tiene, entonces, una cota para la probabilidad de error
media cuando el cdigo tiene slo dos palabras. Dicha cota es funcin de las
probabilidades con las que se eligen independientemente los diferentes sm-
bolos de las palabras del cdigo, Q(k), y de las probabilidades de transicin
del canal (supuesto sin memoria), P(j | k).

Cdigo con un nmero arbitrario de palabras

Existe una forma alternativa de derivar la cota obtenida para E [Pe,i ] que
es ms fcilmente generalizable para cdigos con un nmero arbitrario de
palabras. Observe que E [Pe,i ] es un promedio sobre x1 , x2 e y. Cuando se
enva el mensaje 1 codificado como x1 , y ocurre con probabilidad P(y | x1 ),
y suponemos que ha ocurrido un error si P(y | x2 ) P(y | x1 ). As:
X X
E [Pe,1 ] = Qn (x1 ) P(y | x1 ) P(error | i = 1, x1 , y)
x1 y

donde P(error | i = 1, x1 , y) es la probabilidad, sobre el conjunto de posi-


bilidades de x2 , de que se produzca un error cuando se enva el mensaje 1
122 El teorema de codificacin de canales ruidosos

codificado como x1 y se recibe y, por lo que:


X
P(error | i = 1, x1 , y) = Qn (x2 )
x2 :P(y | x2 )P(y | x1 )
X  s
P(y | x2 )
Qn (x2 ) , para cualquier s > 0.
x2
P(y | x1 )

Siguiendo esta misma lnea argumental, para un cdigo con un nmero


arbitrario de palabras M , se tiene que
XX
E [Pe,i ] = Qn (xi ) P(y | xi ) P(error | i, xi , y)
xi y

y que !
[
P(error | i, xi , y) P A i0
i0 6=i

siendo Ai0 , para cada i0 6= i, el evento consistente en la eleccin de la palabra


del cdigo xi0 de forma que P(y | xi0 ) P(y | xi ); y dndose la desigualdad
(en lugar de la igualdad) por el hecho de que un decodificador de mxima
verosimilitud no necesariamente comete error si P(y | xi0 ) = P(y | xi ) para
algn i.
Por otra parte, es fcil verificar que se cumple que:
! " #
[ X
P A i0 P(Ai0 ) , para cualquier : 0 < 1
i0 6=i i0 6=i

X
P(Ai0 ) = Qn (xi0 )
xi0 :P(y | xi0 )P(y | x)
X  s
P(y | xi0 )
Qn (xi0 ) , cualquier s > 0.
xi 0
P(y | xi )

As pues, dado que hay M 1 casos posibles de valores i0 6= i, se cumple


que: (
X  s )
P(y | x)
P(error | i, xi , y) (M 1) Qn (x)
x
P(y | xi )
de donde se sigue que
X X X 
E [Pe,i ] (M 1) Qn (xi ) P(y | xi )1s Qn (x) P(y | x)s .
y xi x
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 123

Finalmente, tomando 1 s = s, es decir, s = 1/(1 + ), y teniendo en


cuenta que xi no es ms que una variable auxiliar de suma, se tiene que
X X 1+
1/(1+)
E [Pe,i ] (M 1) Qn (x) P(y | x) , 0 < 1.
y x

Es fcil verificar que tambin se cumple la desigualdad anterior en el


caso particular de que = 0, sin ms que verificar que, para ese valor de ,
el segundo trmino de la desigualdad vale 1.
Si se particulariza esta desigualdad, al igual que hicimos para el caso
de cdigo de dos palabras, para el caso particular de canal sin memoria y
eleccin independiente de los smbolos de cada palabra del cdigo de acuerdo
con una distribucin de probabilidades Q(k), k = 0, 1, . . . , K 1, se obtiene
que
X X X X Y n 1+
1/(1+)
E [Pe,i ] (M 1) Q(xi ) P(yi | xi )
y1 yn x1 xn i=1
n X X
Y 1+
= (M 1) Q(xi ) P(yi | xi )1/(1+)
i=1 yi xi
!1+ n
J1
X K1
X
= (M 1) Q(k) P(j | k)1/(1+) .
j=0 k=0

Si ahora se tiene en cuenta que R = logK n


M
, entonces M = K nR ; por lo
que, para R fija, M vara exponencialmente con n. Pero, como la variacin
continua con n, para valores de R fijos, da a veces valores no enteros para
K nR , debe tomarse como nmero de palabras del cdigo M = dK nR e,
es decir, el menor nmero entero mayor o igual que K nR . As, dado que
M 1 < K nR , se tiene que
!1+ n
X K1
J1 X
E [Pe,i ] K nR Q(k) P(j | k)1/(1+) ; 0 1.
j=0 k=0

Es decir, se tiene que


E [Pe,i ] K n[E0 (,Q)R] , 01
donde
J1
" #1+
X K1
X
1/(1+)
E0 (, Q) = logK Q(k) P(j | k)
j=0 k=0

Q = (Q(0), Q(1), . . . , Q(K 1)) .


124 El teorema de codificacin de canales ruidosos

Como la desigualdad anterior es vlida para cada mensaje del cdigo,


vemos que el promedio de las probabilidades de error, considerados todos
los posibles mensajes, con probabilidades arbitrarias P(i), satisface

M
X
E[Pe ] = P(i) E[Pe,i ] K n[E0 (,Q)R] .
i=1

Finalmente, puesto que y Q son arbitrarios, obtenemos la cota ms


cercana eligiendo y Q de forma que se maximice E0 (, Q) R. Esto nos
lleva a la siguiente definicin de exponente de codificacin aleatoria:

Ea (R) = ax [E0 (, Q) R]
m
01,Q

de forma que se cumple que

E[Pe ] K nEa (R) .

Anlisis de Ea (R)

Veamos, finalmente, que Ea (R) es una funcin positiva, decreciente y


cncava 0 R < C. Para comprender la naturaleza de Ea (R) hay que
analizar la variacin con de E0 (, Q), pudiendo observarse que se cumple
que:

1. E0 (, Q) 0; 0 (cumplindose la igualdad si y slo si = 0);

E0 (, Q)
2. 0 < I(Q); 0 (cumplindose la igualdad en la

segunda desigualdad de la cadena si = 0);

2 E0 (, Q)
3. 0; 0 (cumplindose la igualdad si y slo si j, k :
2
Q(k) P(j | k) > 0, se tiene que I(Q) es determinista);

donde I(Q) es la informacin mutua para el canal considerado, que es fun-


cin nicamente de Q:
K1
X J1
X P(j | k)
I(Q) = Q(k) P(j | k) log P
i Q(i) P(j | i)
k=0 j=0

E0 (, Q)
= .
=0
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 125

Teniendo en cuenta las propiedades anteriormente enumeradas, es fcil


maximizar E0 (, Q) R sobre para obtener Ea (R, Q):

ax [E0 (, Q) R] .
Ea (R, Q) = m
01

El mximo se obtendr para aquel valor de (0 1) que satisfaga


la ecuacin
E0 (, Q)
R =0

2 E0 (, Q)
puesto que 0, 0.
2
E0
Adems, como es continua y decreciente con , el rango de variacin

de R para ese mximo ser:

E0 (, Q) E0 (, Q)
R = I(Q)
=1 =0

por lo que, para los valores de R en ese rango, se tiene que

E0 (, Q)
R= , 01 (5.1)

E0 (, Q)
Ea (R, Q) = E0 (, Q) . (5.2)

Por otra parte,



E0
Si > R, entonces la funcin es estrictamente creciente con
=1
en el intervalo 0 1, por lo que alcanzar su mximo para = 1,
que ser
Ea (R, Q) = E0 (1, Q) R.

Si I(Q) < R, entonces la funcin es estrictamente decreciente con


en el intervalo 0 1, por lo que alcanzar su mximo para = 0,
que ser
Ea (R, Q) = 0.

En resumen, pues, Ea (R, Q) es estrictamente decreciente con R, y posi-


tiva para todo R < I(Q).
126 El teorema de codificacin de canales ruidosos

Adems, derivando con respecto a las dos expresiones de (5.1)-(5.2) se


tiene que:

R 2 E0
=
2
Ea 2 E0
=
2

de donde se sigue que:

Ea (R, Q)
=
R
 2 1
2 Ea (R, Q) E0
= 0
R2 2

por lo que Ea (R, Q) es cncava en R R 0.


As, dado que
Ea (R) = m
ax Ea (R, Q)
Q

y que Ea (R, Q) es decreciente con R, positiva R < I(Q) y cncava R 0,


entonces tambin es Ea (R) decreciente con R, positiva R < I(Q) = C y
cncava R 0.

5.2.2. Teorema inverso

El teorema directo establece, segn acabamos de ver, que si la entropa


(por unidad de tiempo) de la fuente es menor que la capacidad del canal
(por unidad de tiempo), entonces puede reducirse la probabilidad de error en
la transmisin de los mensajes a un valor arbitrariamente pequeo usando
una codificacin adecuada. Pues bien, en este apartado se va a establecer el
resultado inverso, es decir, la imposibilidad de conseguir una probabilidad
arbitrariamente pequea cuando la entropa de la fuente es mayor que la
capacidad del canal.

Teorema 5.2. Si la entropa (por unidad de tiempo) de la fuente es mayor


que la capacidad del canal (por unidad de tiempo), entonces no existe ningn
esquema de codificacin con el que pueda reducirse la probabilidad de error
en la transmisin de los mensajes a un valor arbitrariamente pequeo.

Demostracin. A diferencia de la demostracin del teorema directo, en la


que haba libertad para escoger el esquema de codificacin, aqu es inadmi-
sible la imposicin de restriccin alguna en el proceso de codificacin. Para
cualquier mtodo de codificacin, en las condiciones enunciadas, debe haber
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 127

una cota inferior no nula para la probabilidad de error en la transmisin de


los mensajes, sea cual sea la naturaleza de stos.
As pues, en lo que sigue se supondr que:

un mensaje de la fuente ser una secuencia de smbolos del alfabeto


de la fuente de longitud arbitraria L, u = (u1 , u2 , . . . , uL );

el codificador transforma cada mensaje u en una secuencia arbitraria


de smbolos del alfabeto de entrada del canal de longitud N , x =
(x1 , x2 , . . . , xN );

la secuencia y = (y1 , y2 , . . . , yN ) es el mensaje que sale del canal cuan-


do se transmite la secuencia x;

la salida del decodificador correspondiente a la secuencia y es tambin


una secuencia de smbolos del alfabeto de la fuente de longitud L,
v = (v1 , v2 , . . . , vL ).

El objetivo del sistema de comunicacin es conseguir que la secuencia v


reproduzca la secuencia u. Si ui 6= vi , entonces se dice que se ha producido
un error en la transmisin del i-simo smbolo del mensaje. Sea la proba-
bilidad de tal error Pe,i , y definamos la probabilidad de error media por
smbolo en la transmisin del mensaje como
L
1X
Pe = Pe,i .
L i=1

Pues bien, el presente teorema establece que cuando la entropa de la


fuente es mayor que la capacidad del canal, existe una cota inferior no nula
para Pe , es decir, no puede hacerse Pe arbitrariamente pequea. Ntese que
el hecho de que pudiese hacerse Pe arbitrariamente pequea no implica-
ra necesariamente una transmisin sin errores; en cambio, no puede haber
transmisin sin errores si no es posible hacer Pe arbitrariamente pequea.
Sea U = (U1 , U2 , . . . , UL ) la variable aleatoria L-dimensional que repre-
senta todos los mensajes de longitud L que se pueden enviar, y sea V =
(V1 , V2 , . . . , VL ) la variable aleatoria L-dimensional que representa todos los
mensajes de longitud L que se pueden recibir. Por la regla de la cadena, se
cumple que

H(U | V) = H(U1 | V) + H(U2 | U1 V) + + H(UL | U1 . . . UL1 V)


L
X
H(Ui | Vi )
i=1
128 El teorema de codificacin de canales ruidosos

siguindose la desigualdad del hecho de que H(X | Z) H(X | Y, Z) (vase


el apartado 4.3).
Ahora, aplicando la desigualdad de Fano a cada uno de los trminos del
sumatorio anterior, si el alfabeto de la fuente tiene M elementos, se tiene
que
L
X
H(U | V) [Pe,i log(M 1) + H(Pe,i )]
i=1
L
1 1X
H(U | V) Pe log(M 1) + H(Pe,i )
L L i=1

y dado que, como consecuencia de la convexidad de la entropa, se cumple


que
L
1X
H(Pe,i ) H(Pe )
L i=1
se tiene finalmente que
1
H(U | V) Pe log(M 1) + H(Pe ).
L
Por otra parte, en virtud del teorema de procesamiento de la informa-
cin, se tiene que
I(U; V) I(X; Y)
siendo X e Y las variables aleatorias que representan, respectivamente, las
secuencias que entran y salen del canal para el envo de un mensaje.
En virtud de las dos anteriores desigualdades, se tiene que
1
Pe log(M 1) + H(Pe ) H(U | V)
L
1 1
= H(U) I(U; V)
L L
1 1
H(U) I(X; Y)
L L
1 N
H(U) C
L L
verificndose la ltima desigualdad para el caso de canales discretos sin
memoria.
Es posible ahora relacionar N y L a travs de las velocidades de gene-
racin de smbolos de la fuente, vf , y de transmisin de smbolos del canal,
vc , de forma que se tiene que
vc
N L.
vf
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 129

Y, por otra parte, se tiene que

1
H(U) H(U)
L
siendo H(U) la tasa de entropa de la fuente (vase el apartado 3.5).

5.3. Interpretacin del teorema

Dado el papel central que juega este teorema en la Teora de la Infor-


macin, y dado que su demostracin resulta farragosa en exceso, en este
apartado vamos a detenernos a comentar sucintamente las implicaciones
del mismo, que lgicamente estarn todas ellas relacionadas entre s. Esen-
cialmente, este teorema establece que la exigencia de fiabilidad de la comu-
nicacin impone:

una cota superior al rgimen de transmisin de la fuente;

una cota inferior para el coste de transmisin de los smbolos de la


fuente;

una cota inferior para la cantidad de redundancia que es preciso in-


troducir en los mensajes codificados;

y a estas cotas es posible acercarse tanto como se quiera.

Rgimen de transmisin de la fuente. La capacidad del canal impone


una cota superior al rgimen de transmisin de smbolos de la fuente
para la posibilidad de una comunicacin fiable. Tal cota superior, a la
que es posible aproximarse tanto como se desee, viene dada por

C
vc
H(X)

donde vc representa el rgimen de transmisin de smbolos del canal


y H(X) representa la entropa de la fuente expresada en las mismas
unidades que la capacidad del canal C.
Efectivamente, puesto que para que sea posible la comunicacin fiable
ha de cumplirse que H t < C t , es decir, vf H(X) < vc C, entonces
habr de ser
C
vf < vc .
H(X)
130 El teorema de codificacin de canales ruidosos

Coste de transmisin. Este teorema establece tambin que el coste de


transmisin por smbolo (de la fuente) tiene una cota inferior, a la
que es posible aproximarse tanto como se quiera. Vemoslo. El coste
de transmisin por smbolo es, en media, directamente proporcional
al nmero de smbolos de canal que es necesario transmitir, en media,
por cada smbolo de la fuente. Y dicho nmero viene dado simplemente
por la razn vc0 /vf , donde vf representa el rgimen de generacin de
los smbolos de la fuente y vc0 representa el rgimen de transmisin
por el canal de los smbolos que representan el mensaje de la fuente.
Ahora bien, como deben cumplirse las dos condiciones siguientes:
vc0 vc
C
vf < vc
H(X)
entonces resulta que
vc0 H(X)
> .
vf C
Redundancia Este teorema asegura, adems, que se puede realizar la co-
municacin fiable de forma ptima (es decir, con coste mnimo) sepa-
rando la codificacin en dos procesos independientes, codificacin de
fuente y codificacin de canal, al garantizar la existencia de un cdigo
de canal ptimo: un cdigo que, con una cantidad mnima de redun-
dancia (es decir, con una longitud mnima), permite la comunicacin
fiable.
El cdigo de canal tendr una longitud, Lc , que vendr dada por
vc
Lc =
v f Lf
donde Lf representa la longitud del cdigo de fuente. En virtud del
teorema de Shannon de codificacin de fuente, el valor ptimo de Lf
es
Lf = H2 (X)
supuesto que el alfabeto de codificacin es binario.
Si se tiene en cuenta ahora que, en virtud del teorema de codificacin
de canal, para que sea posible la comunicacin fiable ha de cumplirse
que
C
vf < vc
H(X)
entonces se deduce la posibilidad de la comunicacin fiable con un
cdigo de canal de longitud
1
Lc >
C
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 131

siempre que se exprese C en unidades de base el nmero de elementos


del alfabeto de codificacin de fuente.
Sentido del trmino capacidad Por ltimo, el hecho de que alguno de
los smbolos que se transmiten por el canal no contengan informacin
de la fuente implica que la fuente slo dispone realmente de una frac-
cin del tiempo de uso del canal. Y esa fraccin es precisamente, en el
mejor de los casos, la capacidad del canal (expresada en unidades de
base el nmero de elementos del alfabeto de entrada del canal). Efecti-
vamente, si se supone que el alfabeto de codificacin de fuente coincide
con el alfabeto de entrada del canal, tal fraccin es simplemente
1
=C
Lc
es decir, la razn entre el nmero de smbolos del canal que seran
necesarios para representar cada smbolo del codificador de fuente si
el canal fuese ideal (1 smbolo) y el nmero mnimo de smbolos del
canal que son necesarios cuando no lo es (Lc smbolos).
En definitiva, por tanto, la capacidad (por unidad de tiempo) mide
efectivamente los smbolos de informacin que puede transmitir el ca-
nal por unidad de tiempo, propiedad que confiere al trmino de capa-
cidad verdadero sentido.

Ejemplo 5.1. Suponga que se quieren transmitir de forma fiable los men-
sajes de una fuente binaria sin memoria dada, de entropa H(X) = 0,5 bits,
sobre un cierto canal binario sin memoria ruidoso, de capacidad C = 0,8
bits y rgimen de transmisin vc = 1 smbolo por unidad de tiempo.

De acuerdo con lo que se acaba de exponer, el rgimen de transmisin


de la fuente puede aproximarse tanto como se desee a
C
vf = vc = 1,6 smbolos fuente/unidad de tiempo,
H(X)
valor que en ningn caso se podr superar si se mantiene la exigencia
de la fiabilidad de la transmisin.
Cmo es posible que sea vf > vc ? La respuesta es sencilla: porque
no se introducen directamente en el canal los smbolos generados por
la fuente, sino que los mensajes de la fuente se codifican previamente.
Supongamos que tal codificacin se hace en dos etapas: se emplea en
primer lugar un codificador de fuente, y a continuacin un codificador
de canal. Supongamos tambin que ambos codificadores son ptimos,
puesto que sabemos de su existencia por los teoremas de Shannon de
codificacin de fuente y de canal.
132 El teorema de codificacin de canales ruidosos

El cdigo de fuente ptimo tiene una longitud Lf = H2 (X) = 0,5. Eso


significa que el codificador de fuente compacta los mensajes de la fuen-
te, reduciendo el nmero de sus smbolos a la mitad. En consecuencia,
el rgimen de transmisin de smbolos del codificador de fuente, vcf ,
es la mitad del rgimen de transmisin de smbolos de la fuente:

vcf = vf /2 = 0,8.

Se tiene, ahora s, un rgimen inferior al del canal. Y como el rgimen


de la fuente no puede aumentarse, so pena de falibilidad, se puede
concluir que el codificador de canal tiene que introducir smbolos re-
dundantes a razn de 0,2 smbolos por unidad de tiempo. Es decir, la
longitud del cdigo de canal ptimo es, como se esperaba,

Lc = 1/0,8 = 1/C(bits).

Por ltimo, si se supone que la transmisin de smbolos por un canal


dado tiene un coste unitario de k, entonces el coste de transmisin de
los smbolos de la fuente no podr en ningn caso ser inferior a 85 k
(pudindonos acercar a ese coste mnimo tanto como queramos), ya
que el nmero de smbolos de canal que representan, en media, cada
smbolo de la fuente es
vc H(X) 5
> = .
vf C 8

Notas bibliogrficas

El teorema de codificacin de canales ruidosos se debe a Shannon [59]


y es, indudablemente, el resultado ms importante de la Teora de la In-
formacin. No obstante, en el artculo anterior no se demuestra el teorema
inverso, que se sigue directamente de la desigualdad de Fano. La primera
demostracin rigurosa del teorema directo fue dada por Feinstein [18]. Pos-
teriormente, Shannon [61] y Wolfowitz [77] proporcionaron demostraciones
ms sencillas. El mtodo de demostracin usado en este captulo se debe a
Gallager [25].
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 133

5.A. Decodificacin ptima

Vamos a considerar en este apndice la bondad de la regla de mxima


verosimilitud como criterio de decodificacin.
En un canal discreto y sin memoria dado, representemos la palabra del
cdigo transmitida con el smbolo genrico u = (u1 , . . . , un ), el vector recibi-
do con el smbolo genrico y = (y1 , . . . , yn ) y la palabra del cdigo estimada
por el decodificador con el signo u . Empleando esta notacin, la proba-
bilidad de cometer una equivocacin en el decodificador se podr escribir
como
Perror = P(u 6= u ).

Por la frmula de la probabilidad total, si condicionamos sobre el valor


del vector recibido y aplicamos la hiptesis de que el canal carece de memoria
tendremos que
X
Perror = P(u 6= u
| y) P(y)
yY

en donde Y es el conjunto de todos los vectores que se pueden recibir, P(y)


es la probabilidad de que se haya recibido el vector y a la salida del canal
discreto y P(u 6= u | y) es la probabilidad de error al decodificar cuando
se ha recibido y. Advirtase que son las suposiciones de canal y cdigo sin
memoria (ambas) las que de manera implcita nos permiten escribir que el
vector estimado depende solamente del vector recibido actual, por lo que
P(u 6= u | y) tiene perfecto sentido. Si, como parece lgico, interesa minimi-
zar la probabilidad de equivocacin, tengamos en cuenta dos observaciones:

P(y) depende slo del modelo de canal y de la distribucin de proba-


bilidad {P(u)} de los mensajes, pero es independiente del criterio de
decisin;

y P(
u 6= u | y) solamente es funcin, para cualquier y fijo, de la regla
de decodificacin.

En consecuencia, para elegir la regla de decodificacin que hace mnima la


probabilidad de equivocacin en el receptor es condicin necesaria y suficien-
te adoptar la regla que hace mnimo cada uno de los trminos P( u 6= u | y),
para todo y Y.
Ahora bien, fijo el parmetro y

u 6= u | y) = 1 m
mn P( u = u | y).
ax P(
u
u

134 El teorema de codificacin de canales ruidosos

Por tanto, el mnimo global se obtiene cuando, para cada posible vector
recibido, y, se elige como estimacin de vector transmitido aqul que hace
mxima la probabilidad1 P(u | y)
ax P(u | y).
= f (y) = arg m
u (5.3)
u

El criterio (5.3) se denomina mximo a posteriori (MAP) y resulta ser el


ptimo en cualquier problema de decisin cuando la funcin objetivo que se
desea minimizar es una probabilidad de error.
Pero, por la frmula de probabilidad de Bayes,
P(y | u) P(u)
P(u | y) =
P(y)
de manera que
P(y | u) P(u)
ax P(u | y) = arg m
arg m ax .
u u P(y)

En esta expresin P(y) es una constante, y puede prescindirse de su


valor para calcular el vector u con el que se alcanza el mximo buscado. La
regla ptima de decisin (MAP) queda, por tanto, como
ax P(y | u) P(u)
arg m (5.4)
u

expresada ahora en funcin de las probabilidades de transicin del canal


P(y | u) relativas a los vectores del cdigo.
Si los mensajes son equiprobables, entonces P(u) es constante y la expre-
sin (5.4) se simplifica a
ax P(y | u).
= f (y) = arg m
u
u

Este criterio se conoce como de mxima verosimilitud o ML (maximum


likelihood ) y consiste en elegir la palabra del cdigo que hace mxima la
probabilidad de recibir el vector y. El criterio ML depende nicamente de
las probabilidades de transicin en el canal e ignora la distribucin de los
mensajes.
En el caso especial de considerar un canal binario simtrico con proba-
bilidad de equivocacin 0 < p < 12 , an es posible simplificar ms el criterio
de decisin, pues por la independencia de los errores
n
Y
P(y | u) = P(yi | ui ) = pj (1 p)nj
i=1
1 La notacin arg m
ax g(x) significa calcular el valor de la variable x que hace mxima
la funcin g.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 135

cuando u e y difieren en j de sus n componentes. Pero la expresin

pj (1 p)nj

es estrictamente decreciente para j = 0, . . . , n cuando p < 21 (pues pj (1


p)nj (p/(1 p))j , y p/(1 p) < 1). Y esto implica que, para canales
binarios simtricos, la decodificacin de mxima verosimilitud se reduce a
seleccionar la palabra del cdigo con menor nmero de smbolos distintos
del vector recibido o, como tambin se denomina, a la regla de seleccin del
vecino ms prximo

= f (y) = arg mn |{i : yi 6= ui }| .


u
u
PARTE II

Conceptos bsicos de control de


errores

137
CAPTULO 6

Cdigos lineales

En este captulo se presentan la estructura de la familia de cdigos linea-


les, sus algoritmos de codificacin y decodificacin, y las nociones bsicas
sobre sus propiedades de deteccin y correccin de errores. La discusin se
restringe, tanto por sencillez como por ser los de ms frecuente aplicacin
prctica, a los cdigos lineales binarios. Pero no se pierde generalidad al
proceder de esta forma, pues los resultados y propiedades de ms alcance
pueden extenderse sin gran esfuerzo a cdigos no binarios.

6.1. Introduccin

6.1.1. Cdigos de bloques

Un cdigo de control de errores es cualquier transformacin invertible


que, de acuerdo con unas reglas dadas, representa con redundancia (con
ms smbolos de los necesarios) las secuencias de smbolos de una fuente
discreta dada que se supone que genera los smbolos equiprobablemente;
la adicin de smbolos redundantes introduce cierto grado de dependencia
entre los smbolos del mensaje codificado, restringindose el universo de las
secuencias vlidas, de forma que habr ocurrido ineludiblemente algn error
si se observa a la salida del canal una secuencia cuya emisin por la fuente
sea imposible. Si se aade suficiente redundancia a la representacin del
mensaje original, la secuencia recibida ser la mayor parte de las veces ms
parecida a la secuencia emitida que a cualquier otra que se pudiera haber
emitido.
El sistema encargado de la conversin de los smbolos de la fuente es
el codificador de canal. Y el que, a la salida del canal discreto, realiza una

139
140 Cdigos lineales

estimacin del mensaje emitido es el decodificador de canal. En realidad,


un decodificador no es sino un dispositivo de decisin o clasificacin de
las secuencias de smbolos a su entrada que, dada la naturaleza aleatoria
de los errores, no siempre podr inferir con exactitud qu mensaje se ha
transmitido. Por tanto, una medida objetiva de la calidad del sistema (ca-
nal equivalente) compuesto por el codificador de canal, el propio canal y el
decodificador es la probabilidad de error de decodificacin: la pequea pro-
babilidad no nula con que el decodificador yerra al reconstruir el mensaje.
Hasta la publicacin de los trabajos de Shannon era una creencia exten-
dida que el incremento en la velocidad de transmisin en un sistema de
comunicaciones digital provocaba tambin un aumento uniforme en la pro-
babilidad de error. Shannon consigui probar, sin embargo, que mientras
la velocidad de transferencia de la informacin pretendida no superase un
lmite calculable (la capacidad del canal), era posible disminuir la proba-
bilidad de error a un nivel arbitrariamente pequeo sin otro requisito que
introducir cierta cantidad de (mnima) redundancia en la representacin de
la secuencia de datos original. Es decir, que cualquier canal se puede con-
vertir en uno ideal (entendiendo aqu por ideal tan fiable como se quiera)
aadiendo a los mensajes cierta proporcin acotada de redundancia.1 Por
desgracia, en la demostracin de este resultado se sigue una argumentacin
probabilstica y no se describe ningn procedimiento constructivo de los
buenos cdigos de canal predichos.
Pero el resultado fundamental de existencia que establece el teorema de
capacidad de canal de Shannon estimul de inmediato el anlisis formal y la
bsqueda de tales transformaciones. En principio, este cambio de represen-
tacin es arbitrario y se puede realizar de mltiples maneras. Atendiendo
tan slo al mtodo, parece claro que la forma ms simple de codificar es
asignar a cada secuencia de una longitud prefijada de smbolos de la fuente
una nica secuencia del cdigo tambin de longitud fija.2 El nombre gen-
rico de este proceso es el de codificacin de bloques (cf. la definicin 3.1, en
la pgina 53).
Dada una fuente discreta sin memoria que emite smbolos (que supon-
dremos equiprobables) pertenecientes a un alfabeto finito F, un codifica-
dor de bloques asigna a cada secuencia (u1 , u2 , . . . , uk ) F k una nica
secuencia de smbolos (v1 , v2 , . . . , vn ) F n para cierto n > k fijo. Dire-
mos que (v1 , v2 , . . . , vn ) es la palabra del cdigo que corresponde al mensaje
(u1 , u2 , . . . , uk ). El cociente Rc = nk < 1 se llama tasa del cdigo, y es un im-
portante parmetro (adimensional) de eficiencia puesto que mide la propor-
1 De no ser cierta esta afirmacin, carecera de sentido el concepto de capacidad de

un canal; slo se podra hablar con propiedad de la capacidad de un canal para una
probabilidad de error dada.
2 Forma que, por cierto, ya utiliz C. Shannon para deducir la existencia de cdigos

de canal ptimos.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 141

cin de smbolos del mensaje en cada palabra del cdigo; y 1Rc = (nk)/n
mide la proporcin de redundancia por cada smbolo de la secuencia codi-
ficada. La diferencia n k es la redundancia (en nmero de smbolos) del
cdigo, y n es su longitud. Representaremos normalmente un cdigo con
tales parmetros por C[n, k].
Aunque, en sentido estricto, un cdigo es una aplicacin entre F k y F n ,
las propiedades de inters de un cdigo dado dependen nicamente de la
eleccin de las palabras del cdigo, y no de la asignacin particular de stas
a mensajes, que debe ser conocida pero puede ser arbitraria. Por esta razn,
cuando se trata con cdigos de control de errores se entiende que un cdigo
de bloques es un conjunto de n-tuplas, en nmero igual al de las k-tuplas
que deben representarse.
El problema de los cdigos de bloques genricos es que, en ausencia de
una estructura regular en el proceso de codificacin:

a) es imposible sistematizar su estudio; y


b) la realizacin prctica de los dispositivos de codificacin y decodifica-
cin es excesivamente costosa: exige mantener en ambos una tabla o
diccionario con la correspondencia completa entre los mensajes y las
secuencias del cdigo, tabla cuyo tamao aumenta exponencialmente
con k.

Con la finalidad de soslayar estas dos limitaciones (la inexistencia de


una estructura matemtica definida y el coste, en trminos de memoria y
tiempo, de la (de)codificacin) vamos a restringir el anlisis de los cdigos de
bloques a aqullos en que los procedimientos de codificacin y decodificacin
consisten en operaciones aritmticas simples (sumas y multiplicaciones) con
los elementos del conjunto F. A tal efecto, es imprescindible contar con
operaciones internas bien definidas en el conjunto de smbolos F con las
que dotar al conjunto de palabras del cdigo de una estructura algebraica
sobre la que fundamentar el estudio matemtico del cdigo.

6.1.2. Aritmtica binaria

Nuestro inters se limita en lo sucesivo a los cdigos binarios, que son


aqullos cuyo alfabeto de codificacin contiene dos nicos elementos, F =
{0, 1}. As pues, un codificador de bloques binario opera asignando a cada
una de las 2k posibles secuencias de k smbolos a su entrada una secuencia
distinta de n smbolos binarios (n > k) seleccionada libremente entre las 2n
disponibles.
En el conjunto {0, 1}, la operacin + (suma) definida por la tabla si-
guiente
142 Cdigos lineales

+ 0 1
0 0 1
1 1 0

posee las siguientes propiedades:

a) es asociativa: a, b, c {0, 1}, a + (b + c) = (a + b) + c;

b) existe elemento neutro, el 0: a {0, 1}, a + 0 = 0 + a = a;

c) todo elemento posee simtrico (opuesto), pues 1 + 1 = 0; y

d ) es conmutativa: a, b {0, 1}, a + b = b + a.

Lo que significa que ({0, 1}, +) es un grupo abeliano o conmutativo.


Anlogamente, para la operacin (producto) definida por la tabla

0 1
0 0 0
1 0 1

se satisfacen las propiedades conmutativa y asociativa, 1 es el elemento


neutro (o unidad) y tambin el simtrico (inverso) de s mismo. Por tanto,
({1}, ) es tambin un grupo abeliano.
Adems, el producto es distributivo respecto de la suma, pues para cua-
lesquiera a, b, c {0, 1}, a (b + c) = (a b) + (a c). Por todo lo cual, si
se consideran conjuntamente ambas operaciones, ({0, 1}, +, ) es un cuerpo
conmutativo con dos elementos, que simbolizaremos por GF(2).3 Un cuerpo
con un nmero finito de elementos se denomina cuerpo finito o cuerpo de
Galois. Esta clase de objetos matemticos desempean un papel fundamen-
tal en la construccin de cdigos de control de errores y de cdigos crip-
togrficos, as como tambin en otras reas del lgebra como la geometra
3 Es evidente que GF(2) es el cuerpo con menor nmero de elementos que es posible
construir, y que los smbolos 0 y 1 son arbitrarios; todo cuerpo binario consta del
elemento neutro para la suma y del elemento identidad para la multiplicacin. Ocurre, en
general, que dos cuerpos finitos con el mismo nmero de elementos son isomorfos, y resulta
entonces irrelevante la manera de simbolizar esos elementos. Si existe, por tanto, un
cuerpo con q elementos es, salvo isomorfismos, nico y se representa por GF(q). Aunque
en este libro se tratar de los cuerpos finitos en un captulo posterior, es procedente
sealar aqu que no todo conjunto con un nmero finito de elementos puede ser dotado
de estructura de cuerpo: se puede demostrar que slo existen los cuerpos finitos GF(p m )
en donde p es un nmero primo y m es un nmero natural. El concepto algebraico de
cuerpo formaliza y extiende la idea de un conjunto numrico en el que las operaciones de
suma, resta, multiplicacin y divisin entre sus elementos estn bien definidas, salvo la
divisin por cero.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 143

finita, la combinatoria o la teora de nmeros. En el captulo 9 se estudiar


detenidamente cul es su estructura y cmo representar sus elementos.
Las operaciones + y son, respectivamente, las conocidas operaciones
aritmticas de suma y multiplicacin mdulo-2 con nmeros enteros, o tam-
bin las operaciones lgicas o-exclusivo (xor) e y (and) del lgebra de
Boole. Al manejar expresiones con esta clase de operadores resulta til re-
cordar la propiedad de que la suma y la resta mdulo-2 son la misma ope-
racin, debido a que 1 es su propio elemento opuesto.
Cuando se extiende la operacin de suma mdulo-2 (+) en GF(2) a los
vectores de k elementos de {0, 1} sin ms que definir la suma vectorial por

(u1 , u2 , . . . , uk ) + (v1 , v2 , . . . vk ) = (u1 + v1 , u2 + v2 , . . . , uk + vk );

y cuando, partiendo de la multiplicacin (), se define la operacin externa


del producto entre un elemento a de {0, 1} y una secuencia u de {0, 1}k
como
a (u1 , u2 , . . . , uk ) = (a u1 , a u2 , . . . , a uk )
entonces la terna Lk = ({0, 1}k , +, ) es un espacio vectorial de dimensin k
sobre GF(2). Es inmediato comprobar la axiomtica de espacio vectorial:

a) ({0, 1}k , +) es un grupo conmutativo, el producto directo de orden k


del grupo abeliano ({0, 1}, +);
b) a {0, 1}, x, y Ln , a (x + y) = a x + a y;
c) a, b {0, 1}, x Ln , (a + b) x = a x + b x;
d ) a, b {0, 1}, x Ln , (a b) x = a (b x);
e) si 1 es el elemento unitario de GF(2), 1 x = x, x Ln .

Expresado de manera equivalente: el conjunto GF(2)k de secuencias de k


smbolos binarios junto con las operaciones de suma y producto arriba defi-
nidas es un espacio vectorial de dimensin k sobre el cuerpo binario GF(2).
El nmero de vectores de Lk es 2k .
Para simplificar la notacin, se suprimir el signo en la operacin
producto de un escalar por un vector cuando no haya lugar a la confusin.

6.2. Cdigos lineales

Definicin 6.1 (Cdigo lineal). Un cdigo de bloques binario C[n, k]


es un cdigo lineal si el conjunto de palabras del cdigo es un subespacio
vectorial de Ln de dimensin k.
144 Cdigos lineales

Mensaje Palabra del cdigo Mensaje Palabra del cdigo


0000 0000000 1000 1000110
0001 0001101 1001 1001011
0010 0010111 1010 1010001
0011 0011010 1011 1011100
0100 0100011 1100 1100101
0101 0101110 1101 1101000
0110 0110100 1110 1110010
0111 0111001 1111 1111111

Tabla 6.1. H3 , un cdigo lineal binario [7, 4].

Son consecuencia inmediata de la definicin, para cualquier cdigo lineal


C[n, k], las siguientes propiedades:

1. 0n es una palabra del cdigo, pues todo subespacio vectorial contiene


al vector nulo.
2. Cualquier combinacin lineal de palabras del cdigo es otra palabra
del cdigo. En particular, C[n, k] es un subgrupo aditivo de Ln .

De hecho, la segunda condicin (que contiene a la primera) es condicin


necesaria y suficiente para que un cdigo sea lineal.
El hecho de que el conjunto de secuencias de longitud finita con elementos
pertenecientes a un cuerpo finito pueda ser dotado de estructura de espacio
vectorial permite estudiar los cdigos lineales aplicando los conceptos y
las tcnicas del lgebra lineal. Conviene recordar, sin embargo, que no se
estudian porque sean los cdigos ms potentes conocidos (aunque, como se
ver, muchos de los cdigos ptimos descubiertos ptimos de acuerdo con
algn criterio matemtico o aplicado bien definido s son lineales), sino
por el doble motivo que se seal en la introduccin:

a) Por simplicidad, al no contar todava con mtodos de anlisis generales


para los cdigos de bloques no lineales.
b) Porque la complejidad de implementar un cdigo de bloques sin es-
tructura matemtica interna alguna es prohibitiva. En general, un
dispositivo codificador/decodificador de un cdigo de bloques binario
no lineal necesitara almacenar en su memoria un diccionario con las
2k palabras del cdigo, ocupando en total n2k bits.

Ejemplo 6.1. El cdigo definido por la tabla 6.1 es un cdigo lineal binario
[7, 4], que se identificar por H3 . Es fcil comprobar que la suma de dos
palabras del cdigo da siempre otra palabra del cdigo.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 145

6.3. Matriz generadora

Todo subespacio lineal de dimensin k queda completamente caracteriza-


do cuando se conocen los k vectores de una de sus bases. As, si {g1 , . . . , gk }
es una base del cdigo C[n, k], toda palabra del cdigo x C[n, k] es com-
binacin lineal de los vectores {g1 , . . . , gk }:

x = u 1 g1 + + u k gk

para ciertos escalares ui {0, 1}.


Con notacin matricial podemos escribir la expresin anterior como

g1,1 g1,2 . . . g1,n
Xk
g2,1 g2,2 . . . g2,n
x= ui gi = u
. . . . . . . . . . . . . . . . . . . . = u G
i=1
gk,1 gk,2 . . . gk,n
P
en donde el smbolo debe interpretarse como suma en mdulo-2, u es un
vector fila con los escalares ui por elementos, y G es una matriz cuyas filas
son los vectores gi . Una vez conocida G es inmediato calcular el conjunto
de palabras del cdigo: es el subespacio engendrado por sus vectores fila.

Definicin 6.2 (Matriz generadora). Una matriz



g1 g1,1 g1,2 . . . g1,n
g2 g2,1 g2,2 . . . g2,n
Gkn =
. . = . . . . . . . . . . . . . . . . . . . .
gk gk,1 gk,2 . . . gk,n

de k vectores linealmente independientes del cdigo C[n, k] se denomina ma-


triz generadora del cdigo C[n, k].

Obsrvese que, tal como se ha definido, una matriz generadora sirve para
calcular el conjunto de vectores del cdigo, pero no para conocer el mensaje
que cada uno representa. Para hacer explcita esta asignacin es preciso
suponer que G es la matriz asociada a la aplicacin lineal de codificacin en
ciertas bases de los espacios de partida y de llegada.
Por consiguiente, la matriz generadora G de un cdigo lineal no es nica
al no serlo las bases de las que procede. Un resultado bsico del lgebra
matricial ensea que, tras realizar una secuencia de operaciones elementales
(el mtodo de Gauss) en G:

intercambiando filas o columnas,


146 Cdigos lineales

sumando una fila a otra,


multiplicando una fila por un escalar no nulo,

siempre es posible encontrar una matriz G0 , transformada de G, que tenga


la estructura

1 0 . . . 0 a1,1 . . . a1,nk
 0 1 . . . 0 a2,1 . . . a2,nk
G0kn = Ik Ak(nk) =
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
0 0 . . . 1 ak,1 . . . ak,nk
donde Ik es la matriz identidad de k filas y k columnas, y Ak(nk) es una
matriz de k filas y n k columnas con elementos de GF(2). Una matriz
de esta forma se denomina sistemtica, y un cdigo caracterizado por una
matriz sistemtica se denomina cdigo sistemtico.
La adicin a una fila de G de una combinacin lineal de las otras filas
convierte la base original de C[n, k] en un sistema equivalente de vectores,
dejando invariado el conjunto de palabras del cdigo. El intercambio de dos
filas tampoco altera, como es lgico, el conjunto de vectores del cdigo. Am-
bas operaciones equivalen tan slo a una permutacin en la correspondencia
entre los mensajes y las palabras del cdigo. Sin embargo, el intercambio de
dos columnas se traduce en una permutacin de dos coordenadas en todas
las palabras del cdigo.
Se deduce de aqu que G y G0 no definen en general la misma funcin
de codificacin, aunque s el mismo conjunto de vectores, salvo intercam-
bio en las posiciones de los smbolos. Habida cuenta de que las secuencias
de smbolos de entrada al codificador se suponen equiprobables y estads-
ticamente independientes, la asignacin particular entre los mensajes y un
conjunto dado de vectores del cdigo carece de importancia, debido a que
con tales hiptesis las propiedades del cdigo relativas a la deteccin y co-
rreccin de errores dependen solamente de cules sean los smbolos de los
vectores del cdigo, y no del orden particular de sus elementos ni del mensaje
al que representan (vase el apartado 6.7).
Por lo anterior, se dice que las matrices G y G0 son equivalentes y,
anlogamente, que son equivalentes los cdigos que representan.
Las matrices sistemticas resultan mucho ms convenientes desde el pun-
to de vista operacional, porque de la ecuacin

x = u G0 = u Ik | Ak(nk)
se deduce que los k primeros smbolos de la palabra del cdigo x coinciden
ahora con los del vector mensaje u:
xi = u i , i = 1, . . . , k.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 147

As, para obtener una palabra del cdigo slo es preciso calcular los n k
smbolos de redundancia xk+1 , . . . , xn con las n k ecuaciones lineales
k
X
xk+j = ui ai,j j = 1, . . . , n k.
i=1

Ejemplo 6.2. Supngase que la matriz generadora de cierto cdigo lineal


binario [4,3] es
1 0 1 0
G1 = 0 1 1 0 .
1 0 1 1
Vea que la matriz no es sistemtica, y no resulta posible obtener una matriz
equivalente sistemtica realizando solamente operaciones elementales con
las filas.
Pero sumando a la tercera fila la primera resulta la matriz equivalente

1 0 1 0
G2 = 0 1 1 0
0 0 0 1

e intercambiando las columnas tercera y cuarta de G2 , el resultado



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

es una matriz sistemtica equivalente a G1 . En la tabla siguiente se puede


comprobar cmo las palabras del cdigo definidas por G1 y G3 no coinciden.
Si se intercambian las coordenadas tercera y cuarta de los vectores en la
ltima columna, se obtienen los mismos vectores del cdigo que con G1 ,
aunque corresponden a mensajes diferentes.

Mensaje (u) (uG1 ) (uG3 )


000 0000 0000
001 1011 0010
010 0110 0101
011 1101 0111
100 1010 1001
101 0001 1011
110 1100 1100
111 0111 1110
148 Cdigos lineales

Reuniendo los conceptos presentados hasta el momento, se ha probado


entonces que:

Teorema 6.1. Todo cdigo lineal es equivalente a un cdigo lineal siste-


mtico.

Luego, para cualquier matriz generadora G de un cdigo lineal, exis-


ten una matriz no singular F y una matriz de permutacin P tales que el
producto F G P da como resultado una matriz sistemtica. Por ello, en
todo lo que sigue no se pierde nada esencial por suponer, cuando as con-
venga, que los cdigos objeto de estudio son sistemticos y que las matrices
generadoras son tambin sistemticas.

6.4. Matriz de comprobacin de paridad

Otra forma til de caracterizar un cdigo lineal C[n, k] es a travs de


cierto subespacio lineal unvocamente relacionado con l.

Definicin 6.3 (Conjunto ortogonal). Se llama conjunto ortogonal de


un cdigo lineal al conjunto C formado por los vectores ortogonales a todas
las palabras del cdigo:

C = x Ln : hx, yi = 0, y C[n, k] .

El signo hx, yi indica


Pnel producto escalar o interno de los vectores x e y,
4

definido por hx, yi = i=1 xi yi , donde suma y producto deben entenderse


como operaciones en mdulo-2. Con la terminologa usual, se dir que dos
vectores x e y son ortogonales si hx, yi = 0.
4 En un espacio vectorial real V , un producto escalar es cualquier aplicacin
h, i : V V IR
(x, y) hx, yi
que satisface las propiedades:
1. hx, y + zi = hx, yi + hx, zi; hx + y, zi = hx, zi + hy, zi (es bilineal).
2. hx, yi = hy, xi (es simtrica).
3. hx, xi 0, hx, xi = 0 x = 0 (es definida positiva).
Como consecuencia inmediata de esta ltima se tienen que: a) dos vectores ortogonales
no nulos son linealmente independientes; b) el producto escalar induce una norma en V ,
kxk = hx, xi2 .
En el espacio de vectores binarios Ln , el producto escalar hx, yi = xi yi define una
forma bilineal simtrica no degenerada pero no definida positiva, de modo que ni la
ortogonalidad implica independencia lineal ni existe una norma deducida del producto
escalar.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 149

No entraa dificultad comprobar que, por la linealidad del producto


escalar, si x1 , x2 C entonces x1 + x2 C , y que 0n C ; esto es, que
C es un subespacio vectorial de Ln , y por tanto un cdigo lineal. Segn
se desprende de la definicin, los vectores de C son las soluciones, x, del
sistema de ecuaciones lineal y homogneo

hx, gi i = 0, i = 1, . . . , k

que consta de k ecuaciones independientes y de n incgnitas, en donde


{g1 , . . . , gk } es una base de C. Por lo tanto, C tiene longitud n y dimensin

n rango({g1, . . . , gk }) = n rango(G) = n k.

As pues, siempre es posible localizar n k vectores linealmente indepen-


dientes y ortogonales a C[n, k].

Teorema 6.2 (Cdigo dual). El conjunto ortogonal C de un cdigo


lineal C[n, k] es un cdigo lineal [n, n k], al que se denomina cdigo dual
de C[n, k].

Es obvio que la relacin de dualidad es simtrica: (C ) = C. Pero con-


viene sealar que un cdigo lineal C[n, k] y su dual no siempre son disjuntos
(sin incluir al vector nulo), porque, en los espacios vectoriales construidos
sobre cuerpos finitos, la ortogonalidad no implica independencia lineal. Por
ejemplo, existen vectores x Ln no nulos tales que hx, xi = 0. Por esta ra-
zn pueden presentarse situaciones en las que C C , es decir, que el cdigo
dual contenga (o sea igual) a C[n, k]. Cuando un cdigo coincida con su dual
se dir de l que es autodual ; y cuando C C , y C 6= C , es decir, cuan-
do est estrictamente contenido en su dual, se dir que es autoortogonal.
Advirtase que, para cualquier cdigo autodual, la longitud n es par y la
dimensin es n/2; que para cualquier cdigo autoortogonal, k/n < 21 ; y
que si un cdigo es autodual (autoortogonal), entonces todas las palabras
del cdigo son ortogonales entre s, hx, yi = 0 x, y C. Si el cdigo es
binario, la condicin hx, xi = 0 equivale a decir que todas las palabras del
cdigo no nulas tienen un nmero par de unos.

Ejemplo 6.3. El cdigo [8, 4] generado por



0 1 1 1

1 0 1 1
G= I
4 1 1 0

1
1 1 1 0

es autodual.
150 Cdigos lineales

Si H es una matriz generadora del cdigo dual, matriz que tendr n k


filas y n columnas, como, por construccin, las palabras del cdigo dual son
ortogonales a las de C[n, k], ocurre, en particular, que todos los vectores fila
de G, una matriz generadora de C[n, k], son ortogonales a las filas de H (a
las columnas de H T ). En consecuencia,
G H T = [0]knk .

Definicin 6.4 (Matriz de comprobacin de paridad). Supuesto que


Gkn es matriz generadora de un cdigo lineal C[n, k], se llama matriz de
comprobacin de paridad del cdigo a toda matriz Hnkn de rango n k
ortogonal a G; es decir, a cualquier matriz de rango mximo que verifique
la identidad
G H T = [0]knk .

Conviene mencionar que la matriz de comprobacin de paridad define


inequvocamente al cdigo, y proporciona entonces la misma informacin
acerca de l que la matriz generadora G; es decir, todo parmetro de inters
deducible de G es tambin deducible de H, y a la inversa. En numerosas
ocasiones resulta ms fcil analizar las propiedades del cdigo dual que las
del cdigo original, sobre todo cuando n k  k.
La ortogonalidad entre un cdigo lineal y su dual puede escribirse de
manera concisa con la expresin
x C[n, k] x H T = 0nk . (6.1)
Estas n k identidades expresan el hecho conocido de que en la opera-
cin de codificacin se ha introducido de forma controlada cierto grado de
dependencia (lineal) entre los n smbolos de una palabra del cdigo. Pro-
porcionan, adems, una condicin necesaria y suficiente de pertenencia a un
cdigo lineal.
Si se consideran los elementos y = (y1 , . . . , yn ) de un vector de longitud
n como incgnitas, entonces la expresin
yH T = 0
o equivalentemente el sistema de ecuaciones
n
X
yi hji = 0, j = 1, 2, . . . , n k
i=1

son las ecuaciones de comprobacin de paridad.


En caso de manejar un cdigo sistemtico, una matriz de comprobacin
de paridad se obtiene de manera directa a partir de su matriz generadora
sistemtica G.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 151

Teorema 6.3. Si G = [Ik | A] es una matriz generadora sistemtica de


C[n, k], entonces H = [AT | Ink ] es una matriz generadora para C .

Demostracin. Sea G = [I | A] la matriz generadora sistemtica del cdi-


go C[n, k]. El cdigo lineal generado por H = [AT | Ink ] tiene parmetros
[n, n k]. Como adems
 
T
 Aknk
GH = Ik Aknk = A + A = 0
Ink

resulta que los vectores fila de G son ortogonales a los de H y, en conse-


cuencia, todas las palabras del cdigo que H define son ortogonales a las
palabras de C[n, k]. Se infiere, pues, que H es matriz generadora del cdigo
dual C .

La estructura explcita de H deducida de una generadora sistemtica es



a1,1 ... ak,1 1 0 ... 0
a1,2 ... ak,2 0 1 . . . 0
Hnkn =
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
a1,nk . . . ak,nk 0 0 . . . 1

Si se desarrolla para ella la expresin (6.1), las ecuaciones


n
X
xi hji = 0, j = 1, . . . , n k
i=1

significan, sencillamente, que para toda palabra del cdigo, x, ha de ser


k
X
xk+j xi aij = 0, j = 1, . . . , n k. (6.2)
i=1

Pero estas ecuaciones de comprobacin de paridad gozan de una interpreta-


cin lgica inmediata. Sea y una secuencia de longitud n recibida a la salida
de un canal a travs del cual se transmiten palabras de un cdigo sistemti-
co. El j-simo smbolo de P redundancia calculado a partir de los k primeros
k
dgitos del vector y vale i=1 yi aij ; y el j-simo smbolo de redundancia
recibido es yk+j . La secuencia y pertenecer al cdigo solamente si ambos
coinciden para j = 1, . . . , n k; pero esto es precisamente lo que significan
las ecuaciones de comprobacin de paridad
k
X
yk+j + yi aij = 0, j = 1, . . . , n k
i=1

cuando la suma mdulo-2 se interpreta como una comparacin binaria.


152 Cdigos lineales

Ejemplo 6.4. Una matriz de comprobacin de paridad de H3 , el cdigo


lineal binario [7, 4] presentado en el ejemplo 6.1, es

 1 0 1 1 1 0 0
H = AT Ink = 1 1 1 0 0 1 0 .
0 1 1 1 0 0 1

Las ecuaciones de comprobacin de paridad para el vector recibido v se


escriben a partir de las filas de H y, en este caso, son

v1 + v 3 + v 4 + v 5 = 0
v1 + v 2 + v 3 + v 6 = 0
v2 + v 3 + v 4 + v 7 = 0

El cdigo dual lo componen los vectores

0000000 1011100
1110010 0111001
0101110 1001011
1100101 0010111

Comprense las ecuaciones de comprobacin de paridad con las que dan el


valor de los dgitos de redundancia v5 , v6 y v7 . Comprubese de paso, como
ejercicio, que G H T = [0].

6.5. Decodificacin por sndrome

Cuando se transmite un vector del cdigo, x, por un canal discreto con


ruido, el vector recibido y no siempre coincide con el transmitido. La dife-
rencia entre el vector que se transmite y el que se obtiene a la salida del
canal es un vector e que tendr una componente distinta de cero en las
posiciones de aquellos smbolos en los que el canal haya introducido errores,
lo que podemos representar con la expresin

x + e = y.

Definicin 6.5 (Vector de error). Se denomina vector de error (o,


simplemente, vector error), y se representa con el signo e, a la diferencia
entre el vector recibido y y el vector x que se ha transmitido:

e = y x.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 153

A la salida del canal, el decodificador, ignorando el valor de e y de


x, dispone tan slo del vector recibido para inferir la palabra del cdigo
transmitida x. Cmo debe realizar tal inferencia? En primer lugar debe
decidir la presencia de posibles errores de transmisin, determinando si y
pertenece al cdigo. Cuando el cdigo carece de estructura interna, slo se
puede averiguar esto comparando la secuencia recibida con cada una de las
palabras del cdigo, y es evidente que este proceso de bsqueda slo puede
llevarse a cabo en un tiempo reducido si tal nmero de palabras del cdigo
no es demasiado grande. Sin embargo, cuando el cdigo es lineal, existe un
mtodo muy simple de decidir cundo es y un vector del cdigo: basta con
verificar si se cumplen las ecuaciones de comprobacin de paridad (6.2),

?
y H T = 0.

El resultado de este clculo, que constituye el procedimiento bsico de deco-


dificacin de un cdigo lineal, recibe la denominacin de sndrome.

Definicin 6.6 (Sndrome). Sea H una matriz de comprobacin de pa-


ridad de un cdigo lineal C[n, k]. Se llama sndrome de x, para cualquier
x Ln , al vector s(x) = x H T .

Habitualmente, el contexto deja claro a qu vector se refiere el sndrome,


por lo que s(x) se representar simplemente por s si con ello no se introduce
confusin.
El sndrome s de un vector x tendr, por consiguiente, n k elemen-
tos, entre los que habr tantos ceros como ecuaciones de comprobacin de
paridad se satisfagan para x.
Una consecuencia directa de haber modelado aditivamente los errores de
transmisin es que el sndrome de un vector recibido y

s = y H T = (x + e)H T = x H T + e H T = 0 + e H T = e H T (6.3)

depende exclusivamente del vector de error y no de la palabra del cdigo


transmitida, x, de modo que s no es ms que una combinacin lineal de
ciertas columnas de la matriz H tomando como escalares las componentes
de e. Utilizando el concepto de sndrome, es posible enunciar de nuevo la
condicin necesaria y suficiente de pertenencia a un cdigo lineal presentada
en el apartado anterior.

Teorema 6.4. Sea H una matriz de comprobacin de paridad de un cdigo


lineal C[n, k]; y sea y un vector de longitud n; y es una palabra del cdigo
C[n, k] si y slo si su sndrome es nulo, y H T = 0nk .
154 Cdigos lineales

El teorema proporciona un mtodo directo y eficiente para averiguar


si una secuencia de smbolos pertenece o no al cdigo: si el sndrome s
del vector recibido y no es nulo, entonces y no es una palabra del cdigo, y
necesariamente se ha debido producir algn error durante la transmisin. En
cambio, cuando s es nulo, se sabe que el vector recibido pertenece al cdigo,
si bien esto no significa siempre ausencia de errores de transmisin, ya que
una secuencia de error puede haber transformado la palabra del cdigo
emitida en otra palabra del cdigo. Ahora bien, cuando la secuencia de
smbolos recibida pertenece al cdigo, el decodificador debe suponer siempre
que el canal ha transmitido sin errores, porque, en condiciones normales, se
trata del suceso ms probable. Se tiene entonces que son precisamente las
secuencias de error que transforman una palabra del cdigo en otra las
nicas indetectables con este criterio de decodificacin.
Por tanto, un sndrome no nulo es condicin suficiente para detectar la
presencia de errores en la transmisin. Pero, en qu smbolos de la secuencia
recibida? Responder a esta cuestin equivale a resolver la ecuacin vectorial

s = e HT (6.4)

en la que el sndrome s y la matriz de comprobacin de paridad H son


conocidos y e es la incgnita. Segn (6.3), esta ecuacin dispone de 2k
soluciones diferentes:5 los 2k vectores y + xi , con xi C, cuyo sndrome
es s. Por consiguiente, el decodificador debe recurrir a alguna regla (bien
arbitraria o bien deducida de la adopcin de un criterio matemtico definido)
para seleccionar una solucin particular. Ntese que la consecuencia prctica
de elegir una solucin e0 del sistema (6.4) es que implica corregir el error
e0 : el decodificador obtiene la verdadera palabra del cdigo transmitida (el
mensaje, en definitiva) si el vector error en el canal es en verdad e0 .
Un criterio de decisin intuitivo y simple es aqul que consiste en elegir
la secuencia de error ms probable que produce el mismo sndrome que el
de la secuencia recibida. En los canales sin memoria, tales como un canal
binario simtrico, y suponiendo mensajes equiprobables, esto es equivalente
a decidir en favor del vector error con menor nmero de elementos no nulos.
El motivo de la equivalencia de ambas reglas es que la probabilidad de que se
produzca un determinado patrn de error depende entonces nada ms que
del nmero de smbolos incorrectos, no de su posicin (los errores afectan a
cada smbolo con igual probabilidad, y son estadsticamente independientes
del mensaje y entre s), y disminuye a medida que aumenta la cantidad de
smbolos errneos (vase el apndice 5.A).
La seleccin del vector de error ms probable, conocida la secuencia de
5 Se trata, por supuesto, de la variedad lineal o afn de soluciones y + C = {y + x :
i
xi C[n, k]}, siendo y una solucin particular de la ecuacin y C[n, k] (el conjunto de
soluciones de la ecuacin homognea e H T = 0) la direccin de la variedad.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 155

smbolos de salida del canal, se conoce como regla de mxima verosimilitud


(o regla ML, por Maximum Likelihood ); y se puede demostrar que, con las
hiptesis que se han establecido, es la ptima cuando se pretende minimi-
zar la probabilidad de error de decodificacin. En general, la dependencia
funcional entre esta probabilidad y el conjunto de palabras del cdigo es
complicada. Aun cuando no se tratarn otras situaciones en este libro, es
oportuno advertir, no obstante, que el criterio de decodificacin de mxi-
ma verosimilitud no es necesariamente ptimo cuando los mensajes no son
igualmente probables.
Una vez estimado el vector de error, el decodificador finaliza entregando
como estimacin del vector del cdigo transmitido la suma del vector reci-
bido y el vector de error ms probable de entre aqullos con sndrome igual
al de la secuencia recibida. Como el sndrome es independiente del vector
del cdigo transmitido, tambin lo es el vector de error que se elige con la
regla de decodificacin ML.
Segn el criterio de mxima verosimilitud, el algoritmo de decodificacin
consta, entonces, de los siguientes pasos:

1. Calcular el sndrome s del vector recibido y, s = y H T .


2. Calcular el vector de error emin con menor nmero de elementos dis-
tintos de cero tal que s = emin H T .
3. Estimar la palabra del cdigo transmitida como xest = y emin .

Para aplicar el algoritmo es suficiente con almacenar, en el extremo


receptor, en una tabla indexada por el valor del sndrome, su correspondiente
vector de error asociado con menor nmero de elementos no nulos, que
se habr calculado previamente. Esta tabla es la tabla de decodificacin
por sndrome; y una vez construida, todo lo que el receptor debe hacer es
consultarla, tras obtener el sndrome del vector recibido, para averiguar una
estimacin del vector de error. Se necesitan n2nk bits para almacenar la
tabla de decodificacin de un cdigo lineal binario [n, k].

6.6. Matriz tpica

Sea C[n, k] un cdigo lineal y considrese la clase de los conjuntos (co-


grupos) de vectores de Ln de la forma

z + C = z + x : x C[n, k]

en donde, para z 6= 0, z es un vector de Ln que no pertenece a C; y para


z = 0, el conjunto 0 + C es simplemente el cdigo C.
156 Cdigos lineales

Dados dos vectores arbitrarios, z1 y z2 , si los conjuntos



z1 + C = z1 + x : x C[n, k]

z2 + C = z2 + x : x C[n, k]
tuviesen en comn algn vector u, entonces existiran dos vectores del c-
digo, w1 y w2 , tales que
u = z 1 + w1 = z 2 + w2
y, por tanto, z1 z2 = w2 w1 = w sera una palabra del cdigo. Pero en
este supuesto se podra escribir que z2 = z1 w z1 + C y, en consecuencia,
que z1 + C = z2 + C. Se presentan as dos nicas alternativas: los cogrupos
z1 + C y z2 + C o bien son disjuntos o bien coinciden, y lo ltimo ocurre si
y solamente si z1 z2 C, es decir, si la diferencia entre dos representantes
es un vector del cdigo.
De acuerdo con esto, es claro que la unin de todos los posibles cogrupos
es el propio espacio de vectores Ln :

Ln = j zj + C C, zj Ln , zj 6 C.
Y puesto que existen 2n vectores binarios de n elementos, y cada cogrupo
contiene 2k vectores, se deduce que deben existir un total de 2nk cogrupos
diferentes que constituyen una particin de Ln con respecto a C

Ln = j rj + C , (ri + C) (rj + C) = , i, j = 1, . . . , 2nk , i 6= j
particin que se representa como Ln /C. Los vectores rj , 1 j 2nk , son
los representantes de las clases de equivalencia de la particin.
Construyamos ahora una tabla cuya primera fila est formada por todas
las palabras del cdigo C, comenzando por el vector nulo. En la primera co-
lumna de la fila siguiente incluyamos un representante no nulo cualquiera de
la particin Ln /C, y completemos la fila sumando cada una de las palabras
del cdigo escritas en la primera fila a este vector y anotando el resulta-
do en la columna correspondiente a cada palabra del cdigo. Repitamos
el mismo procedimiento, eligiendo para cada fila un representante distinto,
hasta completar 2nk filas en la tabla, de manera que hayamos escrito cada
cogrupo en una fila
0n = c 1 c2 c3 ... c 2k
r2 c2 + r 2 c3 + r 2 ... c 2k + r 2
...................................................
r2nk c2 + r2nk c3 + r2nk . . . c2k + r2nk

Esta matriz de vectores constituye la matriz tpica del cdigo. En ella,


por construccin, la diferencia entre dos vectores de una misma fila es una
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 157

palabra del cdigo, y la diferencia entre dos vectores de una misma columna
es un vector independiente de las palabras del cdigo. La suma de dos
vectores cualesquiera de una misma fila es una palabra del cdigo slo si el
alfabeto de codificacin es binario.
Pues bien, partiendo de que el conjunto de vectores binarios de longitud
n junto con la operacin de suma forman un grupo aditivo del que C[n, k]
es un subgrupo (es decir, sin ms que recurrir a las propiedades de la suma
de vectores binarios), es posible establecer una propiedad fundamental de la
matriz tpica, que aclara la relacin directa entre los sndromes y los errores
en el canal.

Teorema 6.5. Todos los vectores de una misma fila de la matriz tpica
tienen el mismo sndrome, y el sndrome asociado a cada fila es distinto.

Demostracin. Cualquier vector de la fila m es la suma de un repre-


sentante rm y una palabra del cdigo. En estas condiciones, su sndrome
depende solamente de rm . Adems, si dos filas, i y j, tuviesen el mismo
sndrome, ri H T = rj H T . Luego (ri rj )H T = 0, y el vector ri rj sera
una palabra del cdigo, xk . Pero esto es imposible, porque, de ser cierto, el
vector ri = rj + xk debera figurar ya en la fila j-sima, y no podra haber
sido elegido como representante para encabezar la fila i (i > j).

Expresado de manera menos formal, este teorema constata que existe


una relacin uno a uno entre los 2nk sndromes y las filas de la matriz
tpica, es decir, cada cogrupo est asociado a un nico sndrome. Ahora
resulta claro que la matriz tpica tabula todas las soluciones de la ecuacin
s = y H T para cada posible valor de s, y que cada una de las filas contiene
todos los vectores que producen un determinado vector sndrome. As pues,
dado un sndrome s, su fila en la matriz tpica contiene todos los vectores de
error que pueden haberse producido durante la transmisin de una palabra
del cdigo por el canal.
La importancia de la matriz tpica para el proceso de decodificacin de
cdigos lineales reside, entonces, en el hecho de que representa una particin
del conjunto de vectores de Ln (los posibles vectores recibidos) segn el
sndrome que generan. Ms concretamente, cada fila ri + C de la matriz
tpica es una clase de equivalencia de la relacin binaria R entre vectores
definida por el predicado6 x R y xH T = yH T , clase a la que pertenecen
todos los vectores con sndrome igual a si = ri H T o, lo que es lo mismo,
todas las soluciones y de la ecuacin si = y H T .
6O tambin x R y x y C[n, k]. Las filas de la matriz tpica de un cdigo lineal
C son las clases adjuntas del grupo cociente Ln /C.
158 Cdigos lineales

Palabras del cdigo


00000 01011 10101 11110
00001 01010 10100 11111
00010 01001 10111 11100
00100 01111 10001 11010
01000 00011 11101 10110
10000 11011 00101 01110
11000 10011 01101 00110
10010 11001 00111 01100

Tabla 6.2. Matriz tpica para el cdigo [5, 2] del ejemplo 6.5.

Sndrome Vector error Sndrome Vector error


000 00000 011 01000
001 00001 101 10000
010 00010 110 11000
100 00100 111 10010

Tabla 6.3. Tabla de decodificacin por sndrome para el cdigo lineal


binario [5, 2] del ejemplo 6.5.

Segn lo visto, a la hora de decodificar bastara con localizar en la matriz


tpica el vector recibido y estimar como vector de error el que figura en la
primera columna de la misma fila. Sin embargo, ste es, simplemente, un
vector con igual sndrome que el vector recibido y, en general, no tiene por
qu resultar el ms conveniente para hacer mnima la probabilidad de error.
Pero si se tiene en cuenta el criterio de mxima verosimilitud, y se supone
que el canal carece de memoria, la probabilidad de error del decodificador
se hace mnima al seleccionar para la primera columna de cada fila de la
matriz tpica aquel vector de la fila con menos elementos no nulos. O bien,
lo que es igual, al situar en la primera posicin de cada fila de la matriz
tpica el vector con menos elementos distintos de cero que no figure an en
ninguna de las filas anteriores. En caso de haber ms de uno, la eleccin
entre ellos es indiferente, debido a que implican la correccin del mismo
nmero de smbolos errneos.
El decodificador puede almacenar solamente los 2nk vectores de la pri-
mera columna junto con su sndrome, y estimar como vector error aqul
cuyo sndrome coincida justamente con el del vector recibido.
La tabla que refleja la asociacin uno a uno entre sndromes y vectores
de error corregibles es la tabla de decodificacin por sndrome. El espacio
de memoria necesario para almacenarla es, para cdigos binarios, de n2nk
bits, el correspondiente a n funciones lgicas de n k variables.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 159

Ejemplo 6.5. Una matriz tpica del cdigo binario lineal [5, 2] de matriz
generadora  
1 0 1 0 1
G=
0 1 0 1 1
se da en la tabla 6.2, y la tabla 6.3 es la de decodificacin por sndrome. En
sta, los vectores de la primera columna son el vector nulo, todos los de 1
bit y dos vectores de 2 bits, los nicos errores corregibles.

Ejemplo 6.6. Consideremos de nuevo el cdigo con la matriz de compro-


bacin de paridad dada en el ejemplo 6.4

1 0 1 1 1 0 0
H = 1 1 1 0 0 1 0
0 1 1 1 0 0 1

y supongamos que el vector transmitido es x = 1111111 y el recibido es


y = 1101111.
Tras observar y, el decodificador calcula el sndrome: s = y H T = 111.
Los vectores de error e = (e1 , . . . , e7 ) que cumplan

e1 + e 3 + e 4 + e 5 = 1
e1 + e 2 + e 3 + e 6 = 1
e2 + e 3 + e 4 + e 7 = 1

poseen todos el sndrome 111. De entre ellos, e = 0010000 es el de menor


cantidad de bits distintos de cero; y si el canal es binario simtrico, se trata
del error ms probable, lo que conduce a estimar como vector transmitido
= y + 0010000 = 1111111. En este caso el receptor ha tomado la decisin
x
correcta.
Supongamos ahora que la palabra del cdigo transmitida hubiese sido
x = 1000110 y la secuencia recibida el vector y = 0000111, de suerte que el
canal hubiese alterado los bits primero y ltimo de x; o, de manera equiva-
lente, e = 1000001.
En estas condiciones el sndrome de y vale s = 111, y el vector de
error ms probable con este sndrome es, como se sabe, emin = 0010000. El
decodificador estima, por tanto, como palabra del cdigo transmitida

y + emin = 0010111

y comete un error.
La tabla de decodificacin por sndrome (tabla 6.4) tiene, para este cdi-
go, una estructura especialmente sencilla, por ser las columnas de la matriz
160 Cdigos lineales

s emin s emin
000 0000000 100 0000100
001 0000001 101 0001000
010 0000010 110 1000000
011 0100000 111 0010000

Tabla 6.4. Tabla de sndromes para el cdigo del ejemplo 6.6.

H todos los vectores binarios no nulos de tres elementos. En consecuencia,


para cualquier sndrome s, el vector error de menor nmero de elementos
no nulos correspondiente a s es el vector con un 1 en la misma posicin que
s ocupa entre las columnas de H y los restantes elementos nulos. El cdigo
puede corregir todos los errores de un bit.

6.7. Deteccin y correccin de errores

La cantidad de errores que un cdigo lineal puede corregir aplicando


la tcnica de decodificacin por sndrome depende nicamente del nmero
de dgitos de redundancia, y es independiente del conjunto de palabras del
cdigo. Resulta muy sencillo constatarlo.

Teorema 6.6. Un cdigo lineal binario C[n, k] es capaz de corregir 2 nk


vectores de error.

Demostracin. La matriz tpica permite corregir los 2nk patrones de


error que aparecen en su primera columna, incluido el vector cero, y estima
incorrectamente todos los dems vectores de error.

Es obvio tambin que todos los cdigos de bloques (no necesariamente


lineales) de longitud n y 2k palabras detectan el mismo nmero de errores.

Teorema 6.7. Un cdigo de bloques binario C[n, k] es capaz de detectar


2n 2k vectores de error.

Demostracin. De los 2n posibles vectores binarios recibidos, slo 2k son


palabras del cdigo. Los 2n 2k restantes son siempre detectables, bien
por tener sndrome no nulo, si el cdigo es lineal, bien por no pertenecer a
C[n, k], en general, si el cdigo no es lineal.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 161

Los vectores de error indetectables son aqullos y slo aqullos que


transforman una palabra del cdigo en otra. Si el objetivo es minimizar
la probabilidad de que un error pase inadvertido, entonces es de desear que
estos vectores de error tengan la mxima cantidad posible de elementos no
nulos, de modo que sea necesario alterar un nmero elevado de smbolos de
una palabra del cdigo para obtener otra palabra del cdigo. Y en el caso
particular de que el cdigo sea lineal, los nicos vectores de error indetec-
tables son justamente los que coinciden con alguna palabra del cdigo no
nula.
Parece as claro que el subconjunto de errores que es posible detectar y/o
corregir debe depender de alguna nocin de diferencia o distancia entre las
palabras del cdigo. Las dos definiciones siguientes establecen una mtrica
de distancia.

Definicin 6.7 (Peso Hamming). Se denomina peso (Hamming) de un


vector x, y se representa por pH (x), al nmero de elementos no nulos de x.

Definicin 6.8 (Distancia Hamming). La distancia (Hamming) entre


dos vectores x e y es el nmero de smbolos en que difieren

dH (x, y) = pH (x y).

Observacin: la distancia Hamming es una mtrica bien definida en


el espacio Ln . Es obvio que dH (x, y) 0 y que dH (x, y) = dH (y, x),
dH (x, y) = 0 x = y, y no presenta especial dificultad comprobar la
desigualdad triangular dH (x, z) dH (x, y) + dH (y, z). Adems, se da la
circunstancia de que la distancia Hamming es una mtrica invariante por
traslacin: dH (x + z, y + z) = dH (x, y).
Las propiedades de deteccin estarn entonces dominadas, de alguna
forma, por el nmero mnimo de smbolos que es preciso modificar en una
palabra del cdigo para conseguir otra palabra del cdigo. Esta cantidad
es el peso Hamming del vector de error con peso Hamming mnimo que
convierte una palabra del cdigo en otra, y se la conoce como distancia del
cdigo.

Definicin 6.9 (Distancia de un cdigo). Se define la distancia de un


cdigo C como la mnima de las distancias entre todos los pares de palabras
del cdigo:

dC = mn dH (x, y) ; x, y C, x 6= y.

Segn esto, para calcular la distancia de un cdigo es suficiente formar


162 Cdigos lineales

todos los posibles pares de palabras del cdigo diferentes, obtener la distan-
cia Hamming que las separa, y conservar el mnimo de todas las distancias.
El procedimiento es trivial, pero impracticable si el nmero de palabras del
cdigo es elevado. Por fortuna, la tarea es algo ms sencilla si se tiene en
cuenta la linealidad.

Teorema 6.8. La distancia de un cdigo lineal es el peso Hamming de


cualquier palabra del cdigo no nula de peso mnimo:

dC = mn pH (x) .
xC,x6=0

Demostracin. En un cdigo lineal, la diferencia entre dos palabras del


cdigo cualesquiera es otra palabra del cdigo; as que, al formar todos
los pares distintos de palabras del cdigo, su diferencia recorrer todo el
conjunto de palabras del cdigo no nulas.

Luego para calcular la distancia de un cdigo lineal basta con conocer


las palabras del cdigo y averiguar el peso Hamming mnimo de todas las
palabras no nulas.
La distancia es un invariante bsico de un cdigo, y adquiere especial
importancia a la hora de evaluar la capacidad de deteccin y correccin de
errores. Por eso, cuando la distancia de un cdigo [n, k] sea conocida, se
escribir [n, k, dC ].

Teorema 6.9. Con un cdigo de bloques de distancia dC se pueden corregir


todos los vectores de error e tales que
 
dC 1
pH (e)
2

o se pueden detectar todos los vectores de error e tales que

pH (e) dC 1.

Demostracin. Toda vez que se dispone del concepto de distancia Ham-


ming, la regla de decodificacin de mxima verosimilitud admite, para ca-
nales discretos y sin memoria, una elegante interpretacin geomtrica: el
clculo del vector error de peso Hamming mnimo equivale a estimar como
palabra del cdigo transmitida la ms cercana, en distancia Hamming, al
vector recibido. Formalmente, la decisin del decodificador ser

xest = arg mn dH (x, y).


xC
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 163

!#"

       $&% ' (*),0
. +#- /


      
Figura 6.1. Relacin geomtrica entre la distancia de un cdigo y la
capacidad de control de errores.

Sea x la palabra del cdigo transmitida y e un vector de error con


pH (e) b dC21 c. Se cometera un error de decodificacin si existiese otra
palabra del cdigo z 6= x ms cercana que x al vector recibido y. Pero
entonces, aplicando la desigualdad triangular (la distancia Hamming es una
mtrica), se tendra que
   
dC 1 dC 1
dH (x, z) dH (x, y) + dH (y, z) + dC 1.
2 2

De modo que habra dos palabras del cdigo a distancia menor que dC ,
lo que por hiptesis es imposible y obliga a rechazar la existencia de otra
palabra del cdigo ms cercana al vector recibido que x.
Por otra parte, si el peso de e es menor o igual que dC 1, resulta
imposible transformar una palabra del cdigo en otra, y por tanto el error
e es detectable.

Conviene hacer hincapi en dos observaciones acerca del teorema:

a) El teorema no dice que los nicos errores e detectables sean los de


pH (e) dC 1, ni los nicos corregibles aqullos de pH (e) b dC21 c;
estas expresiones son nada ms que condiciones suficientes, no nece-
sarias.

b) El teorema se puede aplicar a cualquier clase de cdigos de bloques,


ya que en ningn punto de la demostracin se hace uso de la hiptesis
de linealidad.
164 Cdigos lineales

Pero en el caso de un cdigo lineal existe, a travs del concepto de sndrome,


una relacin adicional muy til entre la distancia y la estructura de la matriz
comprobadora de paridad.

Teorema 6.10. Sea H la matriz de comprobacin de paridad de un cdigo


lineal de distancia dC . Cualesquiera s 1 columnas de H son linealmente
independientes si y solamente si dC s.

Demostracin. El sndrome es una combinacin lineal de los vectores


columna de la matriz H. Luego si el cdigo es de distancia dC , cualquier
vector error de peso menor que dC es detectable y su sndrome s = e H T
es no nulo. Es decir, cualquier conjunto de menos de dC columnas de H es
linealmente independiente.

Corolario 6.11. Se verifica que dC = s si y solamente si

a) cualquier conjunto de s 1 columnas de H es linealmente indepen-


diente, y

b) existe un conjunto de s columnas de H linealmente dependientes.

Demostracin. Es claro que

dC = s dC s, dC < s + 1.

Pero si dC s, cualquier subconjunto de s 1 columnas de H es, por el


teorema anterior, linealmente independiente; y, segn el mismo argumento,
si dC < s+1, no todos los grupos de s columnas de H pueden ser linealmente
independientes, porque entonces se cumplira dC s + 1.

La aplicacin prctica del corolario es obvia. La distancia mnima de


un cdigo lineal se puede obtener tambin calculando el nmero mnimo
de columnas de la matriz comprobadora de paridad que son linealmente
dependientes. En un cdigo binario esto equivale a descubrir s columnas
cuya suma sea el vector nulo, algo que puede hacerse por inspeccin si el
nmero de smbolos de redundancia y la longitud del cdigo no son dema-
siado grandes. El ejemplo siguiente ilustra el procedimiento a seguir.

Ejemplo 6.7. La matriz de comprobacin de paridad del cdigo introducido


en el ejemplo 6.1 es
1 0 1 1 1 0 0
H = 1 1 1 0 0 1 0 .
0 1 1 1 0 0 1
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 165

Ninguna de sus columnas es el vector cero, as que la distancia del cdigo


debe ser mayor que 1. Pero tampoco hay dos columnas iguales, lo que sig-
nifica que la suma de dos de ellas nunca puede dar como resultado el vector
nulo. Entonces, la distancia del cdigo es al menos 3. En cambio s hay
varios grupos de tres columnas que suman cero; por ejemplo, la primera, la
quinta y la sexta. Llegamos as, finalmente, a la conclusin de que el cdigo
posee distancia 3, y corroboramos este clculo viendo que en la tabla 6.1
todas las palabras del cdigo distintas de cero tienen no menos de tres unos.
En virtud del teorema 6.9, todos los errores de un bit se pueden corregir y
todos los de dos bits se pueden detectar. Como existen en total 7 vectores
de error de peso 1, y hay 8 sndromes distintos, se concluye que slo los
errores simples son corregibles.

Otra consecuencia directa del teorema 6.9 es que, para cdigos lineales,
todos los vectores no nulos de peso menor o igual que b dC21 c deben aparecer
en filas distintas de la matriz tpica. Lo cual equivale a afirmar que tienen
sndromes distintos. El teorema siguiente formaliza esta propiedad, aunque
realmente es una versin alternativa del propio teorema 6.9 teniendo en
cuenta la linealidad.

Teorema 6.12. Sea C[n, k] un cdigo lineal con matriz de comprobacin de


paridad H. Si
 
dC 1
0 < pH (x), pH (y) x, y Ln x, y 6= 0
2

entonces xH T 6= yH T .

Demostracin. Supongamos que la tesis no fuese cierta y que existiese


un vector y en la misma fila de x en la matriz tpica tal que

pH (y) pH (x).

Pero x y C[n, k] y adems

pH (x y) pH (x) + pH (y) dC 1

lo que quiere decir que existira una palabra del cdigo distinta de cero,
x y, de peso menor que dC . Y esto es imposible en un cdigo lineal de
distancia dC .

Cuando lo que se pretende es caracterizar la mxima capacidad de co-


rreccin de un cdigo, se ha de analizar otro invariante bsico suyo, el radio
de cobertura.
166 Cdigos lineales

Definicin 6.10 (Radio de cobertura). El radio de cobertura de C se


define como
(C) = m ax d(x, C).
ax mn d(x, v) = m
xLn vC xLn

As pues, (C) es el menor entero r tal que las esferas de radio r con
centro en los vectores cdigo de C son un recubrimiento de Ln . En lenguaje
ms geomtrico: ningn vector de Ln est a distancia mayor que (C) de
alguna palabra del cdigo C. Es obvio que
 
dC 1
(C) .
2

En cdigos lineales, el radio de cobertura puede hallarse a travs de la


matriz tpica o de una matriz de comprobacin de paridad.

Teorema 6.13.

a) Se llama peso de un cogrupo al mnimo peso Hamming de los vectores


del cogrupo. (C) es el peso del cogrupo de mayor peso.
b) (C) es el menor entero r tal que cualquier sndrome es combinacin
lineal de r o menos columnas de H, una matriz de comprobacin de
paridad de C.

Demostracin.

a) Una consecuencia inmediata de la definicin.


b) Del apartado anterior y del teorema 6.5.

6.8. Probabilidad de error

La caracterizacin del conjunto de errores detectables y corregibles con


un cdigo exige el conocimiento completo de las palabras del cdigo, por
lo que el problema se torna demasiado laborioso en los casos de inters.
Es as que, para describir la capacidad de control de errores de un cdigo
lineal, normalmente se recurre a resumir todas sus propiedades de deteccin
y correccin en dos parmetros sintticos: la probabilidad de no detectar un
error y la probabilidad de cometer un error de decodificacin. Por supuesto,
ambas probabilidades dependern del modelo de canal que se considere.
Aqu se supondr el caso de un canal binario simtrico sin memoria con una
probabilidad de error de bit p < 12 .
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 167

La probabilidad de que se produzca un error de transmisin no detectable


por el receptor es, con un cdigo lineal C[n, k], la probabilidad de que el
vector error coincida con alguna de las palabras del cdigo no nulas. Si los
coeficientes Ai , i = 1, . . . , n, representan el nmero de palabras de C[n, k]
de peso Hamming i, entonces dicha probabilidad admite la expresin
n
X
Ped = Ai pi (1 p)ni (6.5)
i=1

al haber Ai vectores de error distintos indetectables (tantos como pala-


bras del cdigo) de peso Hamming i, sucediendo cada uno con probabilidad
pi (1 p)ni . La distribucin de pesos {A1 , A2 , . . . , An }, y no las palabras
del cdigo individuales, fijan as el valor de la probabilidad de error residual.
En cuanto a la posibilidad de decodificar incorrectamente, se sabe que
sucede slo cuando el vector de error no es corregible, es decir, cuando no
es ninguno de los que figuran en la tabla de decodificacin por sndrome.
Designando por i , para i = 0, . . . , n, al nmero de vectores de la tabla de
decodificacin por sndrome con peso Hamming i, se tiene entonces que
n
X
P(error de decodificacin) = Pec = 1 i pi (1 p)ni . (6.6)
i=0

Dado que un error no detectado implica una decodificacin incorrecta,


siempre es Ped Pec .
Si la distancia del cdigo es dC = 2t+1 o dC = 2t+2, todos los vectores de
error de peso menor o igual a t se pueden corregir (teorema 6.9), y entonces
 
n
i = , i = 0, . . . , t.
i

Pero, por lo general, es muy difcil calcular i para i > t, y de hecho se


desconoce su valor para la mayor parte de las familias de cdigos.
Un cdigo capaz de corregir todos los errores de peso Hamming menor o
igual que t, y slo stos (es decir, tal que i = ni , i = 0, . . . , t, y i = 0 para
i > t), se llama cdigo perfecto, en virtud de sus especiales caractersticas
geomtricas: las esferas de radio t centradas en una palabra del cdigo son
todas disjuntas y cubren todo el espacio Ln de vectores binarios. Es decir,
en los cdigos perfectos se cumple que (C) = t.
Y si es capaz de corregir todos los vectores de error de peso Hamming
menor que t, algunos de peso t + 1 y ninguno de peso mayor que t + 1 (esto
es, i = ni , i = 0, . . . , t, 0 < t+1 < t+1
n
, y i = 0 para i > t + 1),
entonces se trata de un cdigo quasiperfecto. En trminos geomtricos, en
168 Cdigos lineales

un cdigo quasiperfecto se cumple que (C) = t+1, de modo que las esferas
centradas en una palabra del cdigo con radio t + 1 se solapan, pero cubren
todo el espacio de vectores binarios.
Aplicando, por ejemplo, la frmula (6.5) al cdigo H3 (pgina 144), se
obtiene
Ped = 7p3 (1 p)4 + 7p4 (1 p)3 + p7 .
Y para particularizar la expresin (6.6), recordemos del ejemplo 6.6 que la
tabla de sndromes contiene, para este cdigo, el vector nulo, 0 = 1, y
todos los vectores de error de 1 bit, 1 = 7. Por lo tanto

Pec = 1 (1 p)7 7p(1 p)6 .

Cuando n es grande resulta muy laborioso calcular los valores de Ai , y se


recurre a veces a la simplificacin consistente en aproximar Ped por el primer
o, a lo sumo, los dos primeros trminos, que suelen ser los dominantes,

Ped Aj pj (1 p)nj j = mn{1 i n : Ai 6= 0} = dC .

Esta aproximacin est justificada cuando p  1.


En cambio, resulta mucho menos complicado estimar la probabilidad
promedio de un error no detectado para el conjunto de todos los posibles
cdigos lineales sistemticos [n, k]. Un cdigo sistemtico puede definirse
mediante una matriz generadora sistemtica. Cada uno de los k (n k)
coeficientes de la submatriz A puede valer 0 o 1, y cada combinacin da
lugar a un cdigo diferente. En total hay, pues, 2k(nk) cdigos lineales
sistemticos [n, k]. Si se elige uno, Ci , de manera aleatoria con probabilidad
P(Ci ) = 2k(nk) , y {Aji , j = 0, . . . , n} es su distribucin de pesos, la
probabilidad de error indetectado sobre un BSC con este cdigo particular
valdr
n
X
P(error no detectado | Ci ) = Aji pj (1 p)nj (6.7)
j=1

y la probabilidad de error promedio ser

2k(nk)
X
P(error no detectado) = P(Ci ) P(error no detectado | Ci ).
i=1

Introduciendo (6.7) en la expresin anterior, y cambiando el orden de las


sumas,

n
X 2k(nk)
X
k(nk) j nj
P(error no detectado) = 2 p (1 p) Aji . (6.8)
j=1 i=1
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 169

Vectores Tabla de sndromes


del cdigo s emn pH (emn ) s emn pH (emn )
0000000 0000 0000000 0 1000 0001000 1
0100111 0001 0000001 1 1001 0001001 2
0011101 0010 0000010 1 1010 0001010 2
0111010 0011 0000011 2 1011 0001011 3
1001110 0100 0000100 1 1100 0001100 2
1101001 0101 0000101 2 1101 0010000 1
1010011 0110 0000110 2 1110 1000000 1
1110100 0111 0100000 1 1111 1000001 2

Tabla 6.5. Cdigo y tabla de sndromes del ejemplo 6.8.

Un vector binario o bien no pertenece a ningn cdigo sistemtico (si sus


k primeros smbolos son nulos y alguno de los n k restantes no lo es) o
bien est contenido en 2(k1)(nk) de ellos, porque en cada una de las n k
ltimas columnas de la matriz
 generadora es posible elegir k 1 coeficientes
libremente. Por haber nj vectores binarios de peso j, se cumple que

2k(nk)
X  
n (k1)(nk)
Aji 2 .
i=1
j

Incorporando esta expresin en la probabilidad de error promedio (6.8),


obtenemos finalmente
n  
X n
P(error no detectado) 2(nk) pj (1 p)nj
j=1
j
(nk)
=2 (1 (1 p)n )
2(nk) .

En otras palabras, existen cdigos lineales sistemticos [n, k] en los que


la probabilidad de que un error pase inadvertido decrece exponencialmente
con el nmero de bits de redundancia. Aun con valores moderados de n k,
este nmero se hace rpidamente muy pequeo.

Ejemplo 6.8. La matriz generadora de un cierto cdigo lineal binario es



1 0 0 1 1 1 0
G = 0 1 0 0 1 1 1
0 0 1 1 1 0 1
170 Cdigos lineales

y su matriz comprobadora de paridad



1 0 1 1 0 0 0
1 1 1 0 1 0 0
H= 1 1 0
.
0 0 1 0
0 1 1 0 0 0 1

Es sencillo ver que ninguna combinacin de tres columnas de H puede


dar el vector 0000, pero que existen combinaciones de cuatro columnas cuya
suma s es el vector nulo; la distancia del cdigo es, por lo tanto, igual a 4.
A partir de la matriz comprobadora de paridad podemos construir la tabla
de sndromes 6.5. Ntese que, en todas las entradas de la tabla en las que
pH (emn ) > 1, existe al menos otra solucin con el mismo peso Hamming;
la que hemos listado es, de entre todas, arbitraria.
En la tabla tpica se ve que todos los errores simples son corregibles,
como lo son tambin 7 errores dobles y un error triple. No son corregibles
los restantes 14 errores dobles, 34 errores triples, 35 errores cudruples, 21
errores quntuples, 7 sxtuples y el vector de error de 7 bits. Sobre un canal
binario simtrico, la probabilidad de un error no detectado es la probabilidad
de que el vector error coincida con alguna de las palabras del cdigo, que
tambin se indican en la tabla 6.5

Perror no detectado = 1 Perror detectado = 7p4 (1 p)3 .

6.9. Cdigos Hamming

Descubiertos entre 1947 y 1948 por R. W. Hamming y M. J. E. Golay, se


trata de un conjunto de cdigos lineales ptimos para corregir errores que
afecten a un solo smbolo. Aunque nos interesan principalmente los cdigos
Hamming binarios, vamos a definirlos y a deducir sus propiedades supo-
niendo que se utiliza un alfabeto de codificacin general. La construccin
de cdigos Hamming es muy sencilla.

Definicin 6.11 (Cdigo Hamming). Un cdigo Hamming es un cdigo


lineal 1-perfecto.

Los parmetros [n, k] de un cdigo Hamming binario son, por tanto, las
soluciones de la ecuacin n = 2nk 1. Existen, entonces, cdigos Hamming
binarios [2m 1, 2m m 1] para m = 2, 3, . . . , y Hm ser en adelante el
de m smbolos de redundancia.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 171

Ejemplo 6.9. De acuerdo con la definicin anterior, y a la vista de su


matriz de comprobacin de paridad

1 0 1 1 1 0 0
H = 1 1 1 0 0 1 0
0 1 1 1 0 0 1

el cdigo descrito en los ejemplos 6.1, 6.4 y 6.6 es el cdigo Hamming H3 ,


de parmetros [7, 4], sistemtico.

Por definicin, los cdigos Hamming tienen distancia 3, y cualquier vec-


tor binario de longitud 2m 1 o bien pertenece a Hm o bien dista una
unidad de algn vector de Hm . Adems, segn el teorema 6.10, para que
estas condiciones se cumplan, dos columnas cualesquiera de H deben ser
linealmente independientes (distintas, cuando el cdigo es binario) y no nu-
las. En consecuencia, una matriz de comprobacin de paridad de Hm tendr
por columnas todos los vectores binarios no nulos de longitud m. Conocida
la estructura de H es fcil concluir que los cdigos Hamming (los binarios
Hm en particular) son cdigos lineales correctores nicamente de errores
simples que, salvo equivalencia, son nicos.
Adems de los Hamming, se ha encontrado que el nico cdigo lineal
binario perfecto no trivial es el Golay[23,12] (vase el ejemplo 7.4 en la
pgina 211), y se ha demostrado que cualquier cdigo binario perfecto no
lineal tiene los mismos parmetros que un cdigo Golay o que un cdigo
Hamming [41]. Los cdigos perfectos son raros.
La distancia de un subcdigo nunca es inferior a la del cdigo que lo
contiene. As, la de Hm se puede incrementar si se eliminan l columnas
cualesquiera de H, resultando una matriz H 0 , de dimensiones m2m l 1,
comprobadora de paridad de un cdigo lineal con parmetros n = 2m l1,
k = 2m m l 1, n k = m y d 3. Que la distancia del cdigo acortado
definido por H 0 es mayor o igual que 3 se deduce de ser H 0 una submatriz
de H. Eligiendo adecuadamente qu columnas borrar, se pueden obtener
cdigos de distancia mnima igual a 4. Por ejemplo, si se prescinde de todas
las columnas con un nmero par de unos, la suma de tres de las restantes
no puede ser el vector nulo; es siempre un vector de peso impar, y existe
por ello otra columna en H 0 idntica a esa suma, lo cual implica que d = 4.
En lugar de acortar el cdigo reduciendo smbolos de informacin y de
redundancia, es posible a veces incrementar la distancia de un cdigo lineal
binario aadiendo un bit de paridad par, proceso que se conoce como exten-
sin del cdigo. Puesto que los cdigos Hamming poseen distancia 3, es
claro que la distancia del cdigo Hamming extendido [2m , 2m m 1], Hbm ,
ser 4. El cdigo dual de un Hamming extendido pertenece a la clase de los
172 Cdigos lineales

cdigos ReedMuller de primer orden, cuya principal ventaja es que existe


para ellos un algoritmo de decodificacin muy simple [41].

Examinaremos an en mayor profundidad la estructura de los cdigos


Hamming en el apartado 7.7.

6.10. Identidad de MacWilliams

Hemos visto en el apartado 6.7 que la distribucin de pesos de las pa-


labras del cdigo (el vector (A0 , A1 , . . . , An ) con Ai el nmero de palabras
del cdigo de peso i) determina la probabilidad de detectar un error de
transmisin.

Cuando un cdigo lineal no posee ninguna propiedad definitoria especial


o si, de existir alguna, no nos es conocida, entonces para calcular el vector
(A0 , . . . , An ) no se dispone de otro mtodo que tabular todas las palabras
del cdigo con sus pesos. Obviamente, este es un procedimiento inviable
para cdigos de dimensin grande, por lo que, en general, la distribucin de
pesos de un cdigo dado no es conocida a priori.

Sin embargo, ciertas clases de cdigos exhiben propiedades estructurales


ms restrictivas que la simple linealidad (por ejemplo, los cdigos Hamming
o los cdigos BCH), y, en ocasiones, esta informacin sobre la manera en que
estn construidos permite determinar su distribucin de pesos sin necesidad
de obtener todos los vectores del cdigo.

Veremos a continuacin que existe una relacin analtica sorprenden-


temente sencilla entre la distribucin de pesos de un cdigo lineal y la dis-
tribucin de pesos de su cdigo dual. Esta relacin, que adems es una
transformacin lineal, es muy til en la prctica cuando uno de los dos
cdigos es de un tamao reducido, de manera que para l s tenga sentido
evaluar (A0 , A1 , . . . , An ) por simple enumeracin. De aqu se podr entonces
deducir la distribucin de pesos del otro cdigo, lo que normalmente sera
imposible por el mtodo directo. Aun en el caso de que la distribucin de
pesos se haya obtenido por otras vas, esta relacin simplifica muchas veces
el estudio de las propiedades del dual del cdigo original.

Para hacer ms sencillo el estudio de esa relacin, se define el siguiente


polinomio.7

7 Aunque la deduccin de la identidad de MacWilliams se efecta, en este libro, a

partir de los polinomios enumeradores homogneos, el resultado final se puede obtener


igualmente aplicando otras tcnicas matemticas [53].
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 173

Definicin 6.12 (Polinomio enumerador). Sea C[n, k] un cdigo lineal


con distribucin de pesos {Ai }. Se llama polinomio enumerador de pesos de
C a
n
X
WC (x, y) = Ai xni y i .
i=0

El polinomio enumerador es un polinomio homogneo (de orden n) en


dos variables, cuya utilidad es combinar todos los valores de los coeficientes
Ai en una expresin compacta. Aunque reducindolo a una variable (fijando
x = 1) no se pierde ninguna informacin esencial, existen buenas razones
para conservar la notacin en dos variables. Puesto que Ai es el nmero de
palabras del cdigo de peso Hamming i, WC (x, y) se podr escribir como
X X
WC (x, y) = xnpH (x) y pH (x) = Px (x, y)
xC xC

si se conviene en definir Px (x, y) = xnpH (x) y pH (x) .


Ahora, para cualquier y Ln , sea
X
gn (y) = (1)hx,yi Px (x, y) (6.9)
xLn

una transformacin8 de los polinomios Px (x, y), en donde hx, yi representa


el producto escalar de los vectores x e y. Se cumple entonces que:

Lema 6.14. Para cualquier cdigo binario C[n, k]


X 1 X 1 X X
Px (x, y) = gn (y) = (1)hx,yiPx (x, y).
|C| |C|
xC yC yC xLn

8 La ecuacin (6.9) define la transformada de Hadamard de los polinomios P (x, y),


x
x Ln . El vector y es un parmetro de tal transformacin. En trminos ms generales,
un homomorfismo

: G {z : |z| = 1}
(a + b) (a)(b)

entre un grupo abeliano (aqu con notacin aditiva) G y el conjunto de los nmeros
complejos de mdulo 1 es un carcter ; por consiguiente, la transformada de Hadamard

x : G {1, 1}
y x (y) = (1)hx,yi

es un carcter algebraico.
174 Cdigos lineales

Demostracin. Segn (6.9),


X X X X X
gn (x) = (1)hx,yi Py (x, y) = Py (x, y) (1)hx,yi .
xC xC yLn yLn xC

Si el vector y C , entonces hx, yi = 0 x C, y por tanto


X X
(1)hx,yi = (1)0 = |C|.
xC xC

Si el vector y 6 C , consideremos los conjuntos



C0 (y) = x C : hx, yi = 0

C1 (y) = x C : hx, yi = 1

de palabras del cdigo ortogonales (C0 ) y no ortogonales (C1 ) a y. Cuando el


conjunto C1 (y) no es vaco, entonces contiene el mismo nmero de elementos
que C0 (y); en efecto, si z C1 (y) entonces C1 (y) = {z + u, u C0 (y)}.
Puesto que C1 (y) 6= si y 6 C ,
X X X
(1)hx,yi = (1)hx,yi + (1)hx,yi = 0.
xC xC0 (y) xC1 (y)

Por lo tanto
X X X X X
gn (x) = Px (x, y) (1)hx,yi + Px (x, y) (1)hx,yi
xC x6C yC xC yC
X
= |C| Px (x, y).
xC

Revisando todos los pasos de esta demostracin, no es difcil ver que


el lema se cumple, en general, para cualquier funcin Q(x) definida sobre
los vectores de Ln , sin necesidad de que sta coincida con el polinomio
enumerador Px (x, y).
Entonces, si fuera posible hallar una expresin explcita para el polinomio
transformado gn (x), este lema permitira deducir la relacin que se busca.
Tal expresin existe y se calcula en el lema siguiente.

Lema 6.15. Para todo x Ln

gn (x) = (x + y)npH (x) (x y)pH (x) .


C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 175

Demostracin. Se proceder por induccin en n. Para n = 1 tenemos que


los nicos vectores de L1 = GF(2) son los elementos 0 y 1, y

gn (x) = (1)hx,0i P0 (x, y) + (1)hx,1i P1 (x, y)


(
(x + y), si x = 0
=
(x y), si x = 1
= (x + y)1pH (x) (x y)pH (x) .

Supongamos que la identidad se verifica para n = k, y consideremos el caso


n = k + 1. Representemos por

x = (x1 , . . . , xk+1 )
y = (y1 , . . . , yk+1 )

dos vectores de k + 1 elementos, y por u y v dos vectores con las k primeras


componentes de x e y, respectivamente,

u = (x1 , . . . , xk )
v = (y1 , . . . , yk )

Con esta notacin, gk+1 (x) se podr escribir como


X X
gk+1 (x) = (1)hx,yiPy (x, y) + (1)hx,yi Py (x, y)
yLk+1 yLk+1
yk+1 =0 yk+1 =1
X
= (1)hu,vixk+1pH (v) y pH (v)
vLk
X
+ (1)hu,vi+xk+1 xkpH (v) y pH (v)+1
vLk

= xgk (u) + y(1)xk+1 gk (u) = gk (u)(x + y(1)xk+1 ).

Aplicando ahora la hiptesis de induccin, obtenemos

gk+1 (x) = (x + y)kpH (u) (x y)pH (u) (x + y(1)xk+1 ).

Y considerando por separado los casos xk+1 = 0 y xk+1 = 1, se deduce


finalmente
gk+1 (x) = (x + y)k+1pH (x) (x y)pH (x) .

Teorema 6.16 (Identidad de MacWilliams). Sea C[n, k] un cdigo li-


neal binario, y sea C [n, n k] su cdigo dual. Se cumple entonces que
1
WC (x, y) = WC (x + y, x y).
2k
176 Cdigos lineales

Demostracin. Sea (A0 , . . . , An ) la distribucin de pesos de C[n, k].


X 1 X
P (x) = gn (x)
|C|
xC xC
1 X
= (x + y)npH (x) (x y)pH (x)
|C|
xC
n
1 X 1
= Ai (x + y)ni (x y)i = WC (x + y, x y)
|C| i=0 |C|

donde la primera igualdad se sigue del lema 6.14 y la segunda del lema 6.15.

La identidad de MacWilliams resulta ms fcil de utilizar cuando el


polinomio enumerador se reduce a una sola variable fijando x = 1. Pues as
WC (x, y) se puede expresar como
n
X
B(x) = WC (1, x) = Bi xi = (teorema (6.16)) 2k WC (1 + x, 1 x)
i=0
n
X n
X  i
k ni i k n 1x
=2 Ai (1 + x) (1 x) = 2 (1 + x) Ai
i=0 i=0
1+x
 
k n 1x
=2 (1 + x) A
1+x
P
siendo A(x) = WC (1, x) = ni=0 Ai xi el polinomio enumerador en una va-
riable de C. Si se intercambian en las expresiones anteriores los papeles de
C y C , y se repite el desarrollo, la frmula
 
(nk) n 1x
A(x) = 2 (1 + x) B
1+x

indica cmo calcular la distribucin de pesos de C una vez conocida la del


cdigo dual. Desarrollando trmino a trmino ambos miembros de estas dos
igualdades se llega a dos sistemas de ecuaciones lineales:
n  
X
X  
j nj
Aj = 2k (1)j Bj , 0n
j=0
j=0
n
X
n
nj
 X 
nj

Aj = 2k Bj , 0n
j=0
j=0
n

que las distribuciones de pesos de un cdigo y su dual deben satisfacer.


C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 177

Cualquiera de estos sistemas se puede resolver para obtener explci-


tamente los coeficientes Bi en funcin de los Ai , o viceversa. Para poder
expresar la solucin de manera compacta, definamos antes los polinomios
de Krawtchouk
Xk   
j x nx
Kk,n (x) = (1) , para 0 k n.
j=0
j kj

Kk,n (x) es un polinomio de grado k en la variable x, comenzando la sucesin


con
K0,n (x) = 1
K1,n (x) = n 2x
 
2 n
K2,n (x) = 2x 2nx +
2
 
4 3 2 2 2 n
K3,n (x) = x + 2nx n + n + +
3 3 3
Los polinomios satisfacen numerosas propiedades, entre ellas algunas inte-
resantes de simetra:
Kk,n (x) = (1)k Kk,n (n x)
y de ortogonalidad:
n  
X  
n n n
Kk,n (i)Kl,n (i) = kl 2
i=0
i k

en donde kl es el smbolo de Kronecker. Pues bien, dados A0 , A1 , . . . , An ,


la distribucin de pesos de un cierto cdigo lineal, el nmero de palabras
del cdigo de peso j en su cdigo dual es
n
1 X
Bj = Ai Kj,n (i) 0 j n. (6.10)
|C| i=0

Ejemplo 6.10. El conjunto de palabras del cdigo Hamming [7,4,3] aparece


en la tabla 6.6. Hay una palabra del cdigo de peso 0, 7 de peso 3, otras 7
de peso 4 y una de peso 7. El polinomio enumerador del cdigo Hamming
es entonces
WH3 (x, y) = x7 + 7x4 y 3 + 7x3 y 4 + y 7
que exhibe la peculiaridad de ser simtrico, WH3 (x, y) = WH3 (y, x), refle-
jando la simetra de la distribucin de pesos. La identidad de MacWilliams
permite afirmar que el cdigo dual tiene un polinomio enumerador
WH
3
(x, y) = x7 + 7x3 y 4
178 Cdigos lineales

Palabra del cdigo Peso Palabra del cdigo Peso


0000000 0 1000110 3
0001101 3 1001011 4
0010111 4 1010001 3
0011010 3 1011100 4
0100011 3 1100101 4
0101110 4 1101000 3
0110100 3 1110010 4
0111001 4 1111111 7

Tabla 6.6. El cdigo Hamming H3 .

Kj,7 (i) j
1 7 21 35 35 21 7 1
1 5 9 5 5 9 5 1
1 3 1 5 5 1 3 1
i 1 1 3 3 3 3 1 1
1 1 3 3 3 3 1 1
1 3 1 5 5 1 3 1
1 5 9 5 5 9 5 1
1 7 21 35 35 21 7 1

Tabla 6.7. Valores de los polinomios de Krawtchouk.

de donde se deduce que este cdigo dual consta de una palabra de peso 0 y
7 de peso 4. La tabla 6.7 lista los coeficientes Kj,7 (i) con los que verificar la
expresin (6.10). El cdigo dual de un Hamming se estudia con ms detalle
en el apartado 7.7.
Si se extiende H3 , se obtiene un cdigo [8, 4, 4] autodual, H b3 , compuesto
por el vector nulo, 14 vectores de peso 4 y un vector de peso 8. Por tanto,
WH3 (x, y) = x8 + 14x4 y 4 + y 8 .
Puede comprobarse sin dificultad que WH3 (x, y) = WH (x, y) y, aun ms,
3
que WH3 (x, y) es el nico polinomio enumerador posible de un cdigo [8, 4, 4]
autodual.

Ejemplo 6.11. Ms en general, la distribucin de pesos del dual de un cdi-



go Hamming binario, Hm , se conoce y est dada por B0 = 1, B2m1 = 2m 1
y Bi = 0 para cualquier otro ndice i. Haciendo uso de las ecuaciones (6.10),
se puede determinar la distribucin de pesos de Hm :

Aj = 2m Kj,n (0) + (2m 1)Kj,n (2k1 ) , 0 j n
para n = 2m 1.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 179

Notas bibliogrficas

Muchas de las construcciones matemticas que luego se propondran


como cdigos de control de errores se conocan desde tiempo antes en
otros contextos. Por ejemplo, C. E. Shannon ya menciona el trabajo de
R. W. Hamming, y los cdigos epnimos, en [59]; Fisher descubri los c-
digos smplex binarios en 1942, mientras estudiaba el problema de cmo
disear experimentos estadsticos factoriales; los cdigos ReedMuller eran
conocidos en 1952 como matrices ortogonales; y los cdigos Golay apare-
cieron como objetos geomtricos con anterioridad al descubrimiento de sus
propiedades algebraicas.
La teora general de los cdigos lineales, que unificaba en cierto mo-
do entes matemticos tan dispares, fue tomando cuerpo durante el dece-
nio de los cincuenta, con contribuciones singulares de D. E. Slepian [62] y
R. W. Hamming. El artculo de Slepian [63] resume bien todo este desa-
rrollo. Berlekamp [4] y el mismo Slepian [64] reunieron el estado del arte
de la disciplina a mediados de los setenta. Los tratados de MacWilliams y
Sloane [41], de finales de los setenta, y de Pless y Huffman [53] son obras
enciclopdicas de obligada referencia, tanto por la extensin y rigor con que
se presentan los temas como por la exhaustividad de las citas bibliogrficas
que los acompaan. De hecho, el captulo primero de [53] es una completa
exposicin de la teora de cdigos lineales; [53, cap. 3] trata enteramente los
cdigos autoduales y [53, cap. 8] discute una serie de resultados acerca del
radio de cobertura. La identidad de MacWilliams admite varias versiones
no lineales que se describen ampliamente en [41, cap. 5], as como una gene-
ralizacin que da lugar a los llamados momentos de Pless [52, 54]. Las cotas
de distancia para cdigos de bloques tienen una larga historia, y se tratan
en profundidad tanto en [41, cap. 17] como en [69, cap. 5].
Otras familias de cdigos no incluidas en el presente texto son las de los
cdigos QR, ReedMuller, Goppa y de geometra algebraica, que s se cubren
en [41] y [53]. Los cdigos no lineales de Hadamard, Kerdock, Preparata,
Delsarte y DelsarteGoethals tambin se discuten en estas dos obras.
Si al lector le interesa conocer las aplicaciones de los cdigos de control
de errores, el artculo de Costello et al. [14] contiene una relacin extensa
de casos prcticos. Calderbank [11] traza un recorrido histrico, siguiendo
el desarrollo de la teora de la codificacin desde los orgenes hasta nuestros
das. Ambos trabajos forman parte del volumen conmemorativo [70].
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 181

6.A. Cotas de distancia

Llegados a este punto, debe resultar claro que la posibilidad de construir


un buen cdigo lineal parte de la respuesta al siguiente problema inverso:
dados n, k < n y d > 0, existe algn cdigo lineal [n, k] de distancia mnima
(al menos) d? O bien, conocidos d > 0 y Rc < 1, es posible construir algn
cdigo lineal de distancia d con tasa Rc ? Ambas son versiones simplificadas
del problema bsico general de la existencia de cdigos de bloques, que se
puede formular de la manera siguiente: dados un alfabeto finito F y un
nmero natural d > 0, cul es el nmero mximo de secuencias del cdigo
en F n con distancia Hamming al menos d entre dos cualesquiera de ellas?
Generalizar el problema en esta forma es conveniente y necesario, puesto
que, en ocasiones, para poder encontrar el mximo nmero de palabras del
cdigo a una determinada distancia se deben construir cdigos no lineales.
As, por ejemplo, el nico cdigo binario de longitud 16, distancia 6, con
256 palabras es no lineal (el cdigo NordstromRobinson).
No obstante la dificultad de responder genricamente a la cuestin, s es
posible llegar a deducir lmites superiores e inferiores a la distancia d de un
cdigo haciendo solamente consideraciones de ndole geomtrica o combina-
toria sobre el espacio de vectores binarios. En este apartado se discuten una
serie de teoremas que determinan el valor de algunas de estas cotas.
Comenzaremos por presentar varias cotas superiores, a cual ms preci-
sa, para la distancia mxima que puede alcanzar un cdigo de bloques de
longitud n y M palabras, cdigo que se representar como (n, M ).

Teorema 6.17 (Singleton). Para el nmero M de palabras de un cdigo


binario de longitud n y distancia d se cumple siempre que

M 2nd+1 .

En particular, si C es un cdigo lineal C[n, k], entonces su distancia satisface


la inecuacin
d n k + 1.

Demostracin. Suponga que existen M vectores binarios de longitud n


con distancia d o mayor entre dos cualesquiera de ellos. Si se borran d 1
smbolos de todas las secuencias del cdigo, se tiene un cdigo de bloques
de longitud n d + 1, distancia al menos 1 y M palabras, es decir, las M
palabras del cdigo son distintas entre s. Por lo tanto, M 2nd+1 .
Si el cdigo es lineal, M = 2k . Tambin basta con observar que la dis-
tancia es una unidad mayor que r, el nmero mximo tal que todo grupo
de r columnas de la matriz comprobadora de paridad son linealmente inde-
pendientes; y este nmero no es mayor que el rango de H, que es n k.
182 Cdigos lineales

Un cdigo [n, k] con distancia d = n k + 1 se llama cdigo separable de


mxima distancia. Excepto los cdigos [n, n 1] de paridad par y los duales
de stos, los cdigos [n, 1] de repeticin (que son aqullos cuyas palabras
del cdigo se construyen repitiendo un nmero n generalmente impar,
por qu? de veces los smbolos del mensaje), no hay cdigos binarios
separables de mxima distancia; en cambio, s existen cdigos no binarios
de distancia ptima d = n k + 1, como por ejemplo los de ReedSolomon.
En la prctica, en la mayora de los cdigos, el lmite superior de Singleton
suele estar bastante alejado de su distancia real.
Por otra parte, segn establece el teorema 6.9, si un cdigo ha de corregir
t errores, su distancia mnima tendr que cumplir d 2t+1. Pero, aplicando
la cota de Singleton

2t + 1 d n k + 1 n k 2t,

se concluye inmediatamente que el nmero de bits de redundancia deber


ser al menos el doble que la capacidad de correccin.
A menudo interesa determinar si toda una coleccin de cdigos con idn-
tica estructura interna es eficiente. Puesto que las propiedades de control
de los errores dependen directamente de la distancia, y como, segn el teo-
rema de Shannon, los buenos cdigos tienen longitud grande, una manera
intuitiva de medir la bondad de una familia infinita de cdigos es estudiar
la convergencia, si existe, de la distancia relativa nd cuando n . En
otras palabras, para cdigos de una misma clase, se trata de determinar
si, a medida que su longitud aumenta, lo hace tambin, y en qu propor-
cin, su capacidad de deteccin y correccin de errores. Pero si la nocin de
convergencia ha de tener algn sentido, se han de comparar cdigos con la
misma cantidad de redundancia por cada smbolo del mensaje, es decir con
el mismo valor de Rc . La siguiente definicin expone de manera ms precisa
estos conceptos.

Definicin 6.13 (Cdigos no degenerados). Una familia de cdigos


C se denomina no degenerada si contiene una secuencia infinita de cdigos
C1 (n1 , M1 ), C2 (n2 , M2 ), . . . , tal que existen
log Mi d Ci
lm y lm
i ni i ni
y son distintos de cero.

Ejemplo 6.12. Para la clase de cdigos Hamming se comprueba con faci-


lidad que
k dC
lm =1 lm =0
n n n n
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 183

y, por ello, que no constituyen una familia no degenerada.

El supuesto ms habitual en la prctica es examinar familias de cdigos


C = {Ci (ni , Mi ), i 1} para las cuales (log Mi )/ni = Rc , i 1. Y aunque
el clculo explcito de lmi dCi /ni no es posible en la mayor parte de los
casos, podemos emplear las cotas de distancia que iremos presentando para
calcular tambin cotas lmite de distancia que nos ayudarn a comprender
las propiedades de los cdigos de longitud grande.
De acuerdo con esto, si se dividen ambos miembros de la desigualdad de
Singleton entre n, y se toma el lmite cuando n , resulta la siguiente
frmula asinttica.

Teorema 6.18. En cualquier cdigo de bloques (n, 2k )

d
R 1 .
n

(La notacin f (n) g(n) significa que f (n) g(n)(1+o(1)), con o(1)
0, cuando n ). As que, en el caso ms favorable, la convergencia de
las distancias de una familia no degenerada de cdigos es lineal en n y no
supera el valor 1 R, la proporcin de redundancia del mensaje codificado.
El siguiente resultado elemental establece un lmite superior al nmero
de errores que se pueden corregir con un cdigo de bloques binario; o, dicho
de otro modo, da un lmite inferior a la redundancia que se necesita para
que exista un cdigo con distancia 2t + 1.

Teorema 6.19 (Hamming). Si C(n, 2k ) es un cdigo binario corrector de


t errores, entonces se verifica que
t  
X n
n k log2 .
i=0
i

Demostracin. Las 2k esferas con centro en una Ppalabra del cdigo y


t
radio t son disjuntas entre s y contienen, cada una, i=0 ni vectores. Pero
el nmero total de vectores del espacio es 2n . Por tanto, como el nmero de
vectores contenidos en alguna esfera con centro en una palabra del cdigo y
radio t evidentemente no puede ser mayor que el nmero de vectores binarios
de longitud n, se podr escribir
t  
X
n k n
2 2 .
i=0
i
184 Cdigos lineales

Tomando logaritmos en ambos miembros se tiene la desigualdad del enun-


ciado.
Una vez ms, en la demostracin no ha sido necesario apelar a la con-
dicin de linealidad, por lo que la desigualdad de Hamming es vlida para
cualquier cdigo de bloques.

Slo los cdigos perfectos, por definicin, satisfacen la cota de Ham-


ming con igualdad, de manera que, cuando son lineales, cada columna
j = 1, . . . , 2k de su matriz tpica est formada por todos los vectores perte-
necientes a la esfera con centro en la palabra del cdigo Cj que encabeza la
columna y radio t.
Para la deduccin de la cota asinttica de Hamming necesitaremos el
siguiente lema, que da una estimacin precisa de la suma de coeficientes
binomiales.

Lema 6.20.
np  
X n 1
2nH2 (p) O(n1/2 ) 2nH2 (p) 0p< .
i=0
i 2

Por tanto
Xnp  
1 n 1
lm log2 = H2 (p) 0p< .
n n i 2
i=0

Demostracin. Probemos en primer lugar la cota superior. Primero,


np  
X n  
X
n n
=
i=0
i i
i=n

con = 1 p. Para cualquier nmero positivo r


n  
X n
X   X n  
n n n ri n
2rn 2ri 2 = (1 + 2r )
i i i=0
i
i=n i=n

y por tanto
n  
X n n
2r + 2r .
i
i=n

Eligiendo r = log2 (/(1 )) y operando se tiene que


n  
X n n
2nH2 () (1 + ) = 2nH2 () = 2nH2 (p) .
i
i=n
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 185

La cota inferior se sigue de la desigualdad


Xn    
n n
.
i=np
i np

Aplicando la frmula de Stirling


1
2nnn en < n! < 2nnn en+ 12n

tenemos
 
n n!
=
np (np)!(n(1 p))!
1 1 1 1
p np n(1p)
e 12np 12n(1p)
2np(1 p) p (1 p)
1
=p 2nH2 (p) e1/(12np(1p)) = 2nH2 (p) O(n1/2 ).
2np(1 p)
Tomando el lmite n de las cotas superior e inferior
m  
X
1 n
lm log2 = H2 (p).
n n i
i=np

Tomando lmites en ambos miembros de la desigualdad de Hamming y


aplicando este lema, obtenemos directamente el siguiente resultado.

Teorema 6.21 (Cota asinttica de Hamming).


 
d
R 1 H2 .
2n

Teorema 6.22 (Plotkin). La distancia mnima de un cdigo binario de


longitud n y M palabras cumple
1 nM
d .
2M 1
En cdigos lineales
n2k1
d .
2k 1

Demostracin. Calculemos
X
d(x, y),
x,yC
186 Cdigos lineales

la suma de las distancias entre todos los posibles pares ordenados de palabras
del cdigo, de dos formas distintas.
Escribiendo las palabras del cdigo C como las filas de una matriz M n,
y si ci , 1 i n, es el nmero de unos en la columna i de esa matriz, se
tiene n
X X M2
d(x, y) = 2ci (M ci ) n .
i=1
2
x,yC

Por otra parte, hay M (M 1) pares ordenados diferentes de palabras del


cdigo con distancia mnima d entre ellas. Luego
X
d(x, y) M (M 1)d.
x,yC

Por consiguiente,
1 nM
d .
2M 1
En los cdigos lineales basta fijar M = 2k . Observe que en la inecuacin de
Plotkin se pueden suponer conocidos dos parmetros cualesquiera y tomar
el otro como incgnita. As,
2d
M
2d n
da un lmite al nmero mximo de secuencias de un cdigo de bloques de
longitud n y distancia d, si n < 2d.

La cota de Plotkin viene a decir simplemente que la distancia de un


cdigo lineal binario no es mayor que el nmero medio de smbolos no nulos
en una palabra del cdigo.
Una familia de cdigos lineales que satisface con igualdad la inecuacin
de Plotkin es la familia de cdigos smplex [2m 1, m] con m 2, cuyas
palabras no nulas tienen todas peso 2m1 y son ortogonales entre s. De he-
cho, se aprecia de inmediato en la demostracin que, de alcanzar la igualdad
estricta, un cdigo debe constar slo de secuencias de igual peso Hamming.
En el apartado 7.7 se analizarn las propiedades de los cdigos smplex con
ms detenimiento. Asimismo, en virtud del denominado teorema de Levens-
htein [41] (que es una versin ms general del teorema de Plotkin), se sabe
que tambin para algunos cdigos no lineales, como los cdigos Hadamard,
la desigualdad se convierte en una igualdad.
k
Si en la inecuacin de Plotkin consideramos que Rc = n se mantiene
constante cuando n , entonces
d 2k1 1
lm lm k =
n n k 2 1 2
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 187

por lo que, en general, podemos suponer que para cualquier familia de c-


digos no degenerada, nd < 12 .
El resultado siguiente muestra cmo es posible mejorar la cota de Sin-
gleton cuando se consideran cdigos lineales.

Teorema 6.23 (Griesmer). Sea N (k, d) la longitud mnima de cualquier


cdigo lineal binario de dimensin k y distancia d. Entonces

X
k1
d

N (k, d) .
i=0
2i

Demostracin. Sea C un cdigo lineal binario (N (k, d), k) con distancia


d. Su matriz generadora se podr escribir en la forma
 
0 0 ... 0 1 1 ... 1
G=
G1 G2

con G1 una matriz (k 1)(N (k, d)d) de rango k 1: si el rango de G1 no


fuese k 1, se podra hacer nula su primera fila y G no generara un cdigo
con distancia d. Por tanto, G1 genera un cdigo lineal (N (k, d) d, k 1)
con distancia d 0 .
Pero si (u, v) C (u un vector binario de longitud N (k, d) d y peso
d 0 ), como (u, v + 1) C, resulta

d 0 + pH (v) d
d 0 + d pH (v) d

y, sumando ambas miembro a miembro, 2d 0 d o bien d 0 dd/2e.


Ocurre, entonces, que N (k, d) d + N (k 1, dd/2e), y por induccin,
que
X d 
k1
N (k, d) .
i=0
2i

Una familia de cdigos que alcanza la cota de Griesmer es la familia de


los cdigos duales de los cdigos Hamming.
El prximo resultado generaliza el argumento utilizado en la deduccin
de la cota de Plotkin, aplicndolo a una regin adecuadamente elegida de
GF(2)n .

Teorema 6.24 (Elias). Sean C(n, M, d) un cdigo de bloques binario, x


un vector binario de longitud n, y K el nmero medio de palabras del cdigo
contenidas en cualquier bola B de centro x Ln y radio t > 0, B = {y
188 Cdigos lineales

Ln : dH (x, y) t}. Entonces, la distancia mnima del cdigo satisface la


desigualdad  
t K
d 2t 1 .
n K 1

Demostracin. La prueba de esta cota superior es un tanto laboriosa, as


que se expondr por partes:

1. Fijemos t > 0. Para cualquier secuencia binaria xi de longitud n, sea


Ki el nmero de palabras de C contenidas en la P bola de centro xi
t n
y radio t. La palabra del cdigo cj pertenece a j=0 j bolas de
radio menor o igual que t, todas aqullas cuyo centro es justamente
un vector situado a distancia Hamming menor o igual que t de cj . Por
Pn P 
tanto, 2i=1 Ki = M tj=0 nj .
P2n Pt 
2. Si se define K = 2n i=1 Ki , entonces M j=0 nj = 2n K. Luego
existe al
Pmenos una bola BK de radio t y centro x que contiene K =
t
M 2n j=0 nj o ms palabras del cdigo, siendo K el nmero medio
de palabras del cdigo en una bola de radio t.

3. Supongamos ahora que A es una matriz cuyas filas son los vectores
cj x para todo cj BK C, j = 1, . . . , K, que i es el nmero de
unos en la columna i = 1, . . . , n de A y que i es el nmero de ceros
en la columna i. La suma del peso Hamming Pn de los K 1 vectores
fila de A puede escribirse tambin como i=1 i = Kn , en donde
K(n t) es el nmero total de ceros en A ya que pH (cj x) t.
Sea Pn
j=1 j
=
n
la media aritmtica de la secuencia j . Como
n
X n
X 2
(j )2 = j2 n 0
j=1 j=1

por ser positivos todos los sumandos de la primera suma, resulta


n
X 2
j2 n n1 (Kn )2 , 2j = (K j )2 .
j=1

4. Fijemos una columna j y una fila i de A. Si el elemento ai,j vale 1,


entonces a la hora de sumar las distancias de todos los posibles pares
ordenados de las filas de A hemos de contabilizar K j unidades
debidas a los ceros de la columna j. Del mismo modo, si ai,j vale 0, se
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 189

han de contabilizar K j unidades contribuidas por los unos de la


columna j. Por lo tanto, la columna
Pn j aporta j (K j ) + j (K j )
a la suma total, que valdr j=1 j (K j ) + j (K j ). Pero la
suma de las distancias entre todos los posibles pares ordenados de A
es la suma dT de las K(K 1) distancias entre las filas de A. As que
n
X
dT = j (K j ) + j (K j )
j=1
Xn n
X 
= (j + j )K 2j + j2
j=1 j=1
n
X
nK 2 (K 2 2K + 2j2 )
j=1

nK 2 (nK 2 2K + 2n1 2 ).

Utilizando que K(n t), y tomando t n/2, se tiene que


K(n t) nK/2. Introduciendo esta desigualdad, la suma de
distancias satisface  
2 2t
dT K t 2 .
n

5. Y si dmin es la distancia mnima entre las filas de A, es tambin la


distancia mnima entre las palabras del cdigo que pertenecen a BK ,
de manera que K(K 1)dmin dT . La distancia mnima de C es
d dmin . Finalmente,
 
t K
d dmin 2t 1
n K 1

lo que concluye la demostracin del enunciado.

Una extensin de este argumento lleva a la siguiente cota superior para


el tamao de un cdigo de longitud n y distancia d, conocida como cota de
Elias.

Teorema 6.25 (Elias). Sea C un cdigo de bloques binario (n, M, d) y t


un nmero natural positivo tal que 2t2 2nt + nd > 0. Se cumple que

dn 2n
M Pt n
.
2t2 2nt + nd i=0 i

Demostracin. Fijemos cualquier t > 0. De acuerdo con laPtdemostra-



cin del teorema 6.24, C contiene un subcdigo con K M i=0 ni /2n
190 Cdigos lineales

palabras. Por lo tanto,


Pt n

dn
M i=0n i
K
2 2t2 2nt + nd
si el denominador es una cantidad positiva.

Hasta el descubrimiento de la cota de McElieceRodemichRumsey


Welch [45], la cota asinttica de Elias era la mejor cota superior conocida
para los parmetros de un cdigo. La formulacin precisa de esta ltima es
la siguiente.

Teorema 6.26 (Cota asinttica de Elias). Existen cdigos de bloques


(n, M, d) tales que
r !
1 1 2d
R 1 H2 1
2 2 n

siendo R = log2 M/n.

Demostracin. Fijemos
r !
1 2d
< 1 1
2 n

y tomemos t = bnc, de tal modo que 2t2 2nt + nd > 0. Por el teorema
anterior
!
log2 M 1 nd 2n
log2 2 + log2 Pt n
 .
n n 2t 2nt + nd i=0 i

Tomando en ambos miembros el lmite cuando n , tenemos

R 1 H2 (),

ya que
nd
log2 log2 2 cuando n
2t2 2nt + nd 2 2 +
1
para cierto < 1/2. Dado que R 1 H2 () para cualquier < 2 (1
q
1 2d
n ), se cumple que
r !!
1 2d
R 1 H2 1 1 .
2 n
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 191

Disponer de todo este conjunto de cotas superiores no resuelve el pro-


blema bsico que se enunci al comienzo de este apartado: existen cdigos
con distancia mnima mayor que una dada? He aqu una condicin suficiente
para poder afirmarlo.

Teorema 6.27 (GilbertVarshamov). Existe un cdigo lineal [n, k] bi-


nario de distancia al menos d si
d2 
X 
n1
< 2nk .
i=0
i

Demostracin. Probaremos la desigualdad mostrando que, si se satisface


la condicin del enunciado, entonces existe una matriz de comprobacin
de paridad de dimensiones (n k) n con la propiedad de que ningn
subconjunto de d 1 o menos columnas suyas es linealmente dependiente.
Por el teorema 6.10, esto bastar para establecer que la distancia del cdigo
que define es por lo menos d.
Supongamos que para algn j > n k se tiene una matriz (n k) j tal
que no hay d 1 columnas suyas linealmente dependientes. El nmero total
de combinaciones lineales de d 2 o menos vectores que es posible formar
con las j columnas es de
     
j j j
+ ++ .
1 2 dC 2

Si este nmero es menor que 2nk 1, entonces se puede elegir un vector


no nulo distinto de cualquiera de estas combinaciones lineales, y aadirlo
a las columnas de la matriz manteniendo la propiedad de que ningn sub-
conjunto con menos de d columnas de la nueva matriz (n k) (j + 1) sea
linealmente dependiente. Y esto se podr seguir haciendo mientras que
d2 
X 
n1
< 2nk 1
i=1
i

n1

o bien, como 0 = 1, mientras que

d2 
X 
n1
< 2nk
i=0
i

que es el resultado que se pretenda demostrar.


La matriz que se acaba de construir es la de un cdigo de longitud n,
con dimensin al menos k y distancia al menos d.
192 Cdigos lineales

El de GilbertVarshamov es un teorema de existencia que proporciona


una cota inferior a la distancia de un buen cdigo lineal. En la proposicin
siguiente se indica cmo obtenerla.

Teorema 6.28 (Cota asinttica de GilbertVarshamov). Dado 0


1/2, existe para cualquier n un cdigo binario lineal [n, k, d] tal que
   
d d k
, y R 1 H2 R= .
n n n

Demostracin. Basta con hacer uso de la desigualdad del lema 6.21

n  
X n
2nH2 () , [0, 1/2]
i=0
i

que, interpretada a la luz del teorema 6.27, significa que existe un cdigo
lineal binario de distancia mayor o igual que n y con no ms de nH2 ()
smbolos de redundancia, esto es
 
d
n k nH2 () nH2
n

o bien
 
d
R 1 H2 .
n

Vea que cualquier familia de cdigos que satisfaga la cota asinttica de


GilbertVarshamov es no degenerada.

Se conocen varias familias (alternantes, Goppa, doblecirculantes y au-


toduales) que contienen algunos cdigos que alcanzan la cota con igualdad;
pero, en general, excepto en los casos triviales R = 0 o R = 1, se ignora
cules son estos cdigos. Para dar una idea de la dificultad de encontrar
por medios sistemticos cdigos eficientes, baste decir que no se obtuvo una
construccin explcita de cdigos con prestaciones por encima de la cota de
GilbertVarshamov hasta 1982, y esto slo para alfabetos de codificacin
con no menos de 49 elementos. Este mtodo constructivo utiliza conceptos
avanzados de geometra algebraica, y se ha convertido en un activo campo
de investigacin [53].
Las siguientes son condiciones suficientes para poder afirmar que en una
familia de cdigos se cumple la desigualdad de GilbertVarshamov.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 193

Teorema 6.29. Sea C una familia de cdigos de bloques binarios (n, 2 k )


con las propiedades

k
a) n R
b) cualquier vector binario no nulo de longitud n pertenece al mismo
nmero de cdigos de C.

En estas condiciones, existen cdigos de C que satisfacen asintticamente la


cota de GilbertVarshamov,
 
d
1 R = H2 lm .
n n

Demostracin. Sea NT el nmero de cdigos de longitud n de C y Nc el


nmero de cdigos que contienen a un vector no nulo cualquiera. Entonces

(2n 1)Nc = (2k 1)NT .

El nmero de vectores binarios no nulos de longitud n y peso Hamming


menor que d es
d1  
X n
i=1
i
por lo que el nmero total de cdigos con distancia mnima menor que d es
como mximo
d1  
X n
Nc .
i=1
i
Si este nmero es menor que el nmero total de cdigos NT , entonces se
cumple
d1  
X n 2n 1
< k < 2nk
i=1
i 2 1
y C contiene un cdigo binario de longitud n y distancia mayor o igual que
d. Pero
1 2n 1
lm log2 k =1R
n n 2 1
y
Xd    
1 n d
lm log2 = H2 lm ,
n n i n n
i=1

lo que prueba que existen cdigos de C que asintticamente satisfacen


 
d
1 R H2 lm .
n n
194 Cdigos lineales

1
McEliece-Rodemich-Rumsey-Welch
Gilbert-Varshamov
Singleton
Elias
Hamming
0.8

0.6
R

0.4

0.2

0
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5
d/n

Figura 6.2. Cotas asintticas para los mejores cdigos binarios.

Gracias a estas condiciones, se puede dar otra demostracin sencilla de


la existencia de cdigos lineales que satisfacen la inecuacin de Gilbert
Varshamov.

Teorema 6.30. Dado 0 < R < 1, existen cdigos binarios lineales [n, k]
con distancia d que verifican
 
k d
R = , 1 R H2 .
n n

Demostracin. Consideremos el conjunto Ci de todos los cdigos lineales


binarios de longitud i y dimensin dRie. Es obvio que

dRie
R, i 1
i
de modo que la primera condicin del teorema 6.29 es verdadera.
Para comprobar que la segunda tambin lo es, y por tanto la veracidad
del enunciado, tomemos un vector binario no nulo de longitud i. Este vector
pertenece a
(2i 2)(2i 4) (2i 2k2 )
(2k 1)(2k 2) (2k 2k1 )
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 195

subespacios lineales distintos de dimensin k, pues los k1 restantes vectores


de una base del subespacio se pueden escoger de (2i 2)(2i 4) (2i
2k2 ) maneras diferentes, y hay exactamente (2k 1)(2k 2) (2k 2k1 )
conjuntos de k vectores linealmente independientes en cada cdigo.

La mejor estimacin, por exceso, de la distancia de un cdigo de bloques


es la cota superior de McElieceRodemichRumseyWelch, que no se va
a formular en este texto aunque se puede consultar, por ejemplo, en [41].
Junto con la inferior de GilbertVarshamov y las de Singleton, Hamming
y Elias, se ha representado en la figura 6.2. Todos los cdigos de bloques
se sitan sobre o por debajo de la grfica de la cota de McEliece, mientras
que slo los mejores cdigos lineales se sitan por encima de la curva de
GilbertVarshamov.
CAPTULO 7

Cdigos cclicos

Los cdigos cclicos son un subconjunto de los cdigos lineales que, por
gozar de una estructura matemtica ms restrictiva, presentan una significa-
tiva ventaja: sus algoritmos de codificacin y, en especial, de decodificacin
admiten una realizacin ms simple. La de los cclicos es por ello una de
las familias de cdigos ms tiles; contiene buenos grupos de cdigos (como
los Golay, BCH, ReedSolomon, de residuo cuadrtico, ...), que se emplean
solos o como componentes en esquemas de codificacin iterativos (cdigos
concatenados).
En este captulo se definen y caracterizan los cdigos cclicos enfatizando
su carcter lineal. Se describen asimismo los circuitos generadores y compro-
badores de redundancia; se identifican luego las propiedades de control de
errores; y, para finalizar, se analizan los fundamentos de los algoritmos de
decodificacin.

7.1. Definicin

El cdigo lineal C es cclico si es invariante para cualquier rotacin de


sus coordenadas.

Definicin 7.1 (Cdigo cclico). Un cdigo lineal C[n, k] sobre un alfa-


beto finito S es un cdigo cclico si cualquier desplazamiento cclico de una
palabra del cdigo es tambin una palabra del cdigo (propiedad cclica):

(vn1 , vn2 , . . . , v0 ) C (vn2 , . . . , v0 , vn1 ) C, vi S i.

Debido a la condicin de linealidad, se supone implcitamente que sobre

197
198 Cdigos cclicos

los elementos de S hay definidas dos operaciones con las cuales se dota
a S de estructura de cuerpo finito. En particular, para cdigos binarios,
S = GF(2).
Un vector v = (vn1 , . . . , v0 ) de un cdigo cclico binario admite una
representacin unvoca en forma de polinomio en la variable x con coefi-
cientes en GF(2):

v(x) = vn1 xn1 + vn2 xn2 + + v0

en la que el subndice de cada smbolo se ha hecho coincidir, por simple


convenio notacional, con el exponente de su trmino polinmico corres-
pondiente.
Es el caso que para cualesquiera escalares , GF(2) y cualesquiera
vectores v1 , v2 de un cdigo lineal, la representacin polinmica del vec-
tor del cdigo v1 + v2 es el polinomio v1 (x) + v2 (x); por lo tanto, el
conjunto F2 [x] de polinomios con coeficientes binarios es un espacio vecto-
rial isomorfo (tiene idntica estructura algebraica) al espacio Ln de vectores
binarios, de donde se infiere que resulta indistinto utilizar la notacin vec-
torial o la notacin polinmica para operar con las palabras del cdigo.
Sin embargo, la representacin polinmica de los vectores no se ha in-
troducido arbitrariamente, sino porque resulta extremadamente til para la
manipulacin algebraica de los desplazamientos cclicos.

Teorema 7.1. El polinomio correspondiente a un desplazamiento cclico de


la palabra del cdigo v(x) es el resto de la divisin de xv(x) entre x n 1.

Demostracin. Operando directamente se tiene que

xv(x) = vn1 xn + vn2 xn1 + + v0 x


= vn1 (xn 1) + vn2 xn1 + + v0 x + vn1 .

El resto de dividir entre xn 1 vale, en efecto,

xv(x) mod (xn 1) = vn2 xn1 + + v0 x + vn1 .

Anlogamente, podemos escribir para cualquier i > 1 y cualquier poli-


nomio del cdigo v(x),

xi v(x) = vn1 xn+i1 + + v0 xi


= (vn1 xi1 + vn2 xi2 + + vni+1 x + vni )(xn 1)
+ vni1 xn1 + + v0 xi + vn1 xi1 + + vni .
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 199

Y como los coeficientes del polinomio resto

vni1 xn1 + vni2 xn2 + + v0 xi + vn1 xi1 + + vni

son los de v desplazados cclicamente i posiciones, podemos afirmar en ge-


neral que:

Teorema 7.2. El desplazamiento cclico de i posiciones de v(x) es

v (i) (x) = xi v(x) mod xn 1

para i = 1, . . . , n 1.

Aunque la operacin de desplazamiento cclico de un vector se ha presen-


tado como una rotacin cclica en un solo sentido (hacia la izquierda), es
obvio que una rotacin de i posiciones en uno de los sentidos es equivalente
a una rotacin de n i posiciones en sentido contrario. En este captulo,
por coherencia, un desplazamiento cclico de i posiciones ser siempre la
operacin simblica definida en el teorema 7.2.
La siguiente definicin es innecesaria en el caso de los cdigos cclicos
binarios, pero se incluye aqu por generalidad.

Definicin 7.2 (Polinomio mnico). Se denomina polinomio mnico a


aqul cuyo coeficiente del trmino de mayor grado es 1.

El motivo de hacerlo as slo se aclarar tras exponer el teorema 7.4. De


momento, mostraremos que, debido a la linealidad y a la propiedad cclica,
algunos polinomios del cdigo satisfacen ciertas restricciones algebraicas.

Teorema 7.3. En un cdigo cclico, el polinomio mnico de menor grado


del cdigo es nico y su trmino independiente es no nulo.

Demostracin. Sean g1 (x) y g2 (x) dos polinomios mnicos de un cdi-


go cclico C, distintos y ambos de grado m mnimo. Por la linealidad de
C, g1 (x) g2 (x) representa una palabra del cdigo y es de grado m 1
como mximo; luego g1 (x) g2 (x) 6= 0 es de grado menor que m, contra la
hiptesis.
Por otra parte, si fuese g0 = 0, entonces g(x) = x(xm1 + gm1 xm2 +
+ g1 ); y existira, por la propiedad cclica, un polinomio mnico del
cdigo de grado menor que m, xm1 + gm1 xm2 + + g1 , lo que est en
contradiccin con la premisa de que m es mnimo.
200 Cdigos cclicos

La caracterstica fundamental de g(x) es que a partir de l se pueden


obtener todas las dems palabras del cdigo.1 El polinomio mnico de me-
nor grado de un cdigo cclico se llama polinomio generador, y se suele
representar por g(x).

Teorema 7.4 (Caracterizacin de un cdigo cclico).

a) Un cdigo lineal C[n, k] es cclico si y solamente si todas las palabras


del cdigo son mltiplos de g(x), el polinomio mnico de menor grado
del cdigo.
b) El polinomio generador g(x) divide a xn 1 y es de grado n k.

Demostracin. Sea m = grado(g(x)). Para cualquier a(x) F2 [x] de


grado menor que n m, el producto
nm1
X nm1
X 
a(x)g(x) = ai xi g(x) = ai xi g(x)
i=0 i=0

es una combinacin lineal de las palabras del cdigo xi g(x); y por tanto, en
virtud de la condicin de linealidad, cualquier mltiplo de g(x) con grado
inferior a n es tambin una palabra del cdigo.
Por otra parte, cualquier polinomio del cdigo v(x) se puede escribir,
de manera nica (merced al algoritmo de divisin eucldeo), como v(x) =
a(x)g(x) + r(x), siendo a(x) el polinomio cociente de la divisin de v(x)
entre g(x), y r(x) el polinomio resto. El resto es o bien el polinomio nulo
o bien un polinomio de grado menor que el de g(x). Si r(x) no fuese nulo,
entonces r(x) = v(x)a(x)g(x) sera una palabra del cdigo de grado menor
que g(x), lo que es imposible por definicin. En consecuencia, r(x) = 0 y
todo polinomio del cdigo es divisible por g(x), es decir, v(x) = a(x)g(x).
Puesto que v(x) = a(x)g(x), es fcil deducir de aqu que, para engendrar
las 2k palabras de un cdigo binario [n, k], es preciso que el grado de g(x)
sea n k.
Por ltimo, si se divide xk g(x) entre xn 1,
xk g(x) = xn 1 + r(x)
el resto r(x) = g (k) (x) = xk g(x) mod xn 1 es la palabra del cdigo
que resulta del desplazamiento cclico de k posiciones de g(x) y, por todo lo
anterior, contiene a g(x) como factor. Por lo tanto, xn 1 = xk g(x)r(x) =
xk g(x) b(x)g(x) = h(x)g(x), siendo h(x) un polinomio mnico de grado k
con trmino independiente no nulo. As pues, el polinomio generador es un
divisor de xn 1.
1 Pero g(x) no es el nico polinomio del cdigo con esta propiedad.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 201

Este teorema nos capacita para resolver dos cuestiones bsicas:

Cmo identificar un cdigo cclico, y cmo calcular sus vectores. Todos


los polinomios del cdigo de un subespacio cclico [n, k] son mltiplos
del polinomio generador, y ste es el polinomio mnico de grado mni-
mo del cdigo. Obsrvese que esto no quiere decir que sea el de menor
peso Hamming, aun cuando a veces coinciden.
Cmo construir cdigos cclicos. Cualquier polinomio mnico de grado
nk con trmino independiente distinto de cero y divisor de xn 1 ge-
nera un cdigo cclico [n, k]. En otras palabras, existe una relacin uno
a uno entre los cdigos cclicos de longitud n y los divisores mnicos
de xn 1.2

La propiedad algebraica que liga a todos los polinomios de un cdigo


cclico puede enunciarse, adems, de esta otra manera equivalente: si v(x)
es un polinomio del cdigo y es una raz de g(x), entonces es tambin
raz de v(x), por ser v() = b()g() = 0b() = 0. Ocurre, en consecuencia,
que los polinomios no nulos de un cdigo cclico son aqullos y slo aqullos
que admiten como races a todas las del polinomio generador con la misma
o mayor multiplicidad, races que, conocida la longitud n, definen el cdi-
go. Pese a que permite desarrollar un cuerpo de teora ms general, esta
caracterizacin no resulta esencial en el presente captulo, y no insistiremos
por el momento ms en ella. Habr ocasin de estudiar ms adelante, en
los captulos 10 y 11, dos importantes familias de cdigos cclicos definidas
precisamente por los ceros de su polinomio generador.
En este punto, una cuestin natural es la de averiguar si, dados cua-
lesquiera valores de n y k, existe algn cdigo cclico [n, k]. El resultado
que se acaba de presentar garantiza la existencia cuando xn 1 contiene
un factor de grado n k. El problema de la bsqueda de cdigos cclicos
binarios se transforma as en otro equivalente, aunque del mismo grado de
dificultad: la factorizacin de xn 1 en polinomios mnicos irreducibles
binarios. Para que la descomposicin resulte fcil de describir, es condicin
bsica que mcd(q, n) = 1, siendo q el cardinal del alfabeto de codificacin.
Por tanto, en los cdigos binarios (q = 2), supondremos siempre que n es
impar.

Ejemplo 7.1.

a) El polinomio xn 1 admite siempre estos dos divisores

xn 1 = (x 1)(1 + x + + xn1 ).
2 Parano incurrir en problemas formales, definiremos el polinomio generador del cdigo
C = {0} como xn 1.
202 Cdigos cclicos

Mensaje Vector del cdigo Polinomio del cdigo


0000 0000000 0 = 0g(x)
0001 0001011 x3 + x + 1 = g(x)
0010 0010110 x4 + x2 + x = xg(x)
0011 0011101 x4 + x3 + x2 + 1 = (x + 1)g(x)
0100 0101100 x5 + x3 + x2 = x2 g(x)
0101 0100111 x5 + x2 + x + 1 = (x2 + 1)g(x)
0110 0111010 x5 + x4 + x3 + x = (x2 + x)g(x)
0111 0110001 x5 + x4 + 1 = (x2 + x + 1)g(x)
1000 1011000 x6 + x4 + x3 = x3 g(x)
1001 1010011 x6 + x4 + x + 1 = (x3 + 1)g(x)
1010 1001110 x6 + x3 + x2 + x = (x3 + x)g(x)
1011 1000101 x6 + x2 + 1 = (x3 + x + 1)g(x)
1100 1110100 x6 + x5 + x4 + x2 = (x3 + x2 )g(x)
1101 1111111 x 6 + x5 + x4 + x3 + x2 + x + 1 =
= (x3 + x2 + 1)g(x)
1110 1100010 x6 + x5 + x = (x3 + x2 + x)g(x)
1111 1101001 x6 + x5 + x3 + 1 = (x3 + x2 + x + 1)g(x)

Tabla 7.1. Palabras y polinomios cdigo del cdigo cclico binario [7,4]
generado por g(x) = x3 + x + 1.

dimensin polinomio generador


1 1 + x + x 2 + + x6
3 1 + x 2 + x3 + x4
3 1 + x + x 2 + x4
4 1 + x + x3
4 1 + x 2 + x3
6 1+x
7 1

Tabla 7.2. Cdigos cclicos binarios de longitud 7.

Peso 0 7 8 11 12 15 16 23
Palabras del cdigo 1 253 506 1288 1288 506 253 1

Tabla 7.3. Distribucin de pesos del cdigo Golay(23, 12).


C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 203

El polinomio 1 + x + + xn1 genera el cdigo binario de repeticin


de longitud n, que es obviamente cclico. El factor x 1 genera el
cdigo cclico compuesto por los vectores de peso par de Ln . Estos
dos cdigos son duales.
b) En la tabla 7.1 se han incluido las palabras de un cdigo cclico binario
[7, 4] con polinomio generador g(x) = x3 +x+1, as como sus respecti-
vas representaciones polinmicas. Verifique que se trata realmente un
cdigo cclico.
c) La tabla 7.2 contiene todos los cdigos cclicos binarios de longitud 7.
Los dos cdigos de dimensin 4 son cdigos Hamming [7, 4, 3].
d ) El cdigo Golay(23, 12) es un cdigo cclico binario perfecto de dis-
tancia 7 generado por

g1 (x) = x11 + x9 + x7 + x6 + x5 + x + 1

o bien por

g2 (x) = x11 + x10 + x6 + x5 + x4 + x2 + 1 = x11 g1 (x1 ).

Las palabras del cdigo generadas por g2 (x) son las mismas que las
engendradas por g1 (x), pero escribiendo los smbolos en orden inverso,
de manera que ambos cdigos son equivalentes (por permutacin). La
tabla 7.3 muestra la distribucin simtrica de los pesos de las palabras
del cdigo.

7.2. Descripcin matricial

Todo cdigo cclico, por ser lineal, admite la caracterizacin vista en el


captulo anterior en forma de subespacio lineal y de su matriz asociada.
Examinemos qu forma particular adoptan, en el caso de los cdigos ccli-
cos, las matrices generadora y comprobadora de paridad, y cmo pueden
obtenerse a partir del conocimiento del polinomio generador.
Teniendo en cuenta que xi g(x), para i = 0, . . . , k 1, son k palabras del
cdigo linealmente independientes, y considerando que el polinomio genera-
dor es de la forma g(x) = xnk + gnk1 xnk1 + + g1 x + g0 , con g0 6= 0,
una matriz generadora del cdigo cclico [n, k] engendrado por g(x) es

1 gnk1 ... g0 0 0 ... 0
0 1 gnk1 . . . g0 0 ... 0
Gkn =
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
0 0 ... 0 1 gnk1 . . . g0
204 Cdigos cclicos

que, evidentemente, no es sistemtica. Las filas de esta matriz son los coe-
ficientes del polinomio generador y sus k 1 primeros desplazamientos,
xi g(x), i = 0, . . . , k 1, considerados como polinomios de grado n 1.
La matriz comprobadora de paridad del cdigo puede deducirse partien-
do de la relacin g(x)h(x) = 0 mod xn 1, que implica

v(x) C(n, k) v(x)h(x) = 0 mod xn 1 (7.1)

ya que v(x)h(x) = a(x)g(x)h(x) = 0 mod xn 1.


La ecuacin (7.1) significa que v(x)h(x) es un polinomio cuyos coefi-
cientes de grado k i < n son nulos solamente si v(x) es una palabra
Pn1
del cdigo. El desarrollo algebraico del producto entre v(x) = i=0 vi xi y
Pk
h(x) = i=0 hi xi vale
n+k1
X n+k1
X i
X
v(x)h(x) = c i xi = xi hj vij ,
i=0 i=0 j=0

de manera que v(x) es un polinomio del cdigo slo cuando


i
X
hj vij = 0, i = k, . . . , n 1. (7.2)
j=0

El sistema de ecuaciones (7.2) significa que el vector (vn1 , . . . , v1 , v0 ) es


ortogonal a los desplazamientos cclicos de (0, 0, . . . , h0 , h1 , . . . , hk ). Escritas
en forma matricial, estas n k ecuaciones se convierten en

v H T = 0nk

con

h0 h1 . . . hk1 1 0 ... 0
0 h 0 h1 . . . hk1 1 . . . 0
Hnkn =
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (7.3)
0 ....... h0 h1 . . . hk1 1

Resulta interesante observar que la ltima fila de H es el polinomio


hr (x) = h0 xk + h1 xk1 + + hk1 x + hk = xk h(x1 ), es decir, es el
polinomio recproco de h(x); y que las filas de G son ortogonales a las de
H. H es, naturalmente, una matriz de comprobacin de paridad de C[n, k]
(generadora de C [n, n k]), por lo que el polinomio recproco hr (x) es el
polinomio generador del cdigo cclico dual del C[n, k].
En general, los polinomios g(x) y h(x) no son ortogonales. Ahora bien,
como h(x) es un polinomio mnico de grado k divisor de xn 1, es a su
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 205

C + D = Ln
C = hg(x)i D = hh(x)i
x C D = {0} x



C1 D 1 C 1

D1
y y
xnk g(x1 ) C + D = Ln xk h(x1 )
D = h i C = h i
g0 C D = {0} h0

Tabla 7.4. Relaciones entre los cdigos cclicos engendrados por g(x),
h(x) y por sus polinomios recprocos cuando g(x)h(x) = xn 1. C1 es
el cdigo que resulta al aplicar a todas las palabras de C la permutacin
de coordenadas i 7 i mod n, es decir, al escribir las palabras de C
en sentido contrario.

vez generador de un cdigo cclico [n, n k], cuya matriz generadora tendr
por filas los coeficientes de h(x) y sus sucesivos desplazamientos. El cdigo
engendrado por h(x) es equivalente al cdigo dual del engendrado por g(x).
En realidad, est formado por todas las palabras de ste ltimo cdigo, es-
critos sus elementos en orden inverso, lo que no es ms que una permutacin
de los smbolos en todos sus vectores.3

Ejemplo 7.2. Tomando de nuevo el polinomio generador g(x) = x3 + x + 1,


una matriz generadora del cdigo [7, 4] dado por l es

1 0 1 1 0 0 0
0 1 0 1 1 0 0

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

que tiene por filas a los polinomios cdigo xi g(x), i = 0, 1, 2, 3. Es fcil


comprobar que la factorizacin de x7 1 en polinomios binarios irreducibles
da
x7 1 = (x + 1)(x3 + x2 + 1)(x3 + x + 1)
3 La relacin entre ambos es ms fuerte. Sea C 0 el conjunto formado por todos los

vectores que no pertenecen al cdigo cclico C. C 0 es un cdigo cclico llamado cdigo


complementario, que por construccin satisface

C + C 0 = Ln
C C 0 = {0}.

Pues bien, C 0 es el cdigo generado por h(x).


206 Cdigos cclicos

por lo que el polinomio h(x) vale x4 + x2 + x + 1, y el polinomio recproco


es x4 h(x1 ) = x4 + x3 + x2 + 1. Entonces, es posible construir una matriz
comprobadora de paridad escribiendo en sus filas los coeficientes desplazados
de x4 h(x1 ):

1 1 1 0 1 0 0
H = 0 1 1 1 0 1 0 .
0 0 1 1 1 0 1
Por supuesto, otra alternativa es, como se sabe, obtener una matriz genera-
dora del cdigo en forma sistemtica, G0 = [Ik Ak(nk) ], y escribir a partir
de ella una matriz ortogonal H 0 = [AT Ink ]. Las palabras del cdigo dual
[7, 3] son las combinaciones lineales de las filas de H. Se indican en la tabla
siguiente.

Cdigo dual
0000000 1010011
1101001 0100111
1001110 0011101
0111010 1110100

De qu cdigo es H matriz comprobadora de paridad?

7.3. Cdigos cclicos sistemticos

El mtodo de multiplicar el mensaje por el polinomio generador para


construir los polinomios cdigo no produce, en general, un cdigo sistem-
tico. Pero es posible hallar una tcnica de codificacin sistemtica (y una
matriz generadora sistemtica) con el procedimiento siguiente.
Supngase que la matriz sistemtica

a1,1 . . . a1,nk

 a2,1 . . . a2,nk
G = Ik Ak(nk) =
Ik . . . . . . . . . . . . . . . . .

ak,1 . . . ak,nk

es generadora de un cdigo cclico. Sus filas son, entonces, los coeficientes


de k polinomios (palabras del cdigo) linealmente independientes. Pero los
elementos de la fila i = 1, . . . , k representan al polinomio
nk
X
fi (x) = xni + ai,j xnkj = xni + ri (x) (7.4)
j=1
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 207

siendo ri (x) de grado mximo nk1. Por ser fi (x) una palabra del cdigo,

fi (x) = 0 mod g(x).

Introduciendo (7.4) en esta expresin, se tiene

fi (x) = xni + ri (x) = 0 mod g(x)

de donde resulta que el polinomio ri (x) es el resto de la divisin de xni


entre el polinomio generador g(x).
Para codificar el mensaje m(x) = mk1 xk1 + + m1 x + m0 , basta
con considerar que, aplicando la propiedad de linealidad, la suma de los
polinomios del cdigo

mk1 [xn1 + (xn1 mod g(x))]


mk2 [xn2 + (xn2 mod g(x))]
................................
m0 [xnk + (xnk mod g(x))]

es un polinomio del cdigo cuyos k primeros coeficientes son justamente los


smbolos (mk1 , . . . , m0 ) del mensaje. Pero esta suma vale

mk1 xn1 + + m0 xnk + [(mk1 xn1 + + m0 xnk ) mod g(x)]

lo que significa que la redundancia es

mk1 xn1 + + m1 xnk+1 + m0 xnk = xnk m(x) mod g(x).

En resumen, para calcular, en un cdigo cclico sistemtico, los dgitos de re-


dundancia de un bloque cualquiera de k bits, representado por el polinomio
m(x) de grado mximo k 1, se deben efectuar las siguientes operaciones:

1. Calcular xnk m(x), o, de manera ms grfica, desplazar los smbolos


del mensaje n k posiciones hacia la izquierda.

2. Obtener el resto de la divisin del mensaje desplazado entre el poli-


nomio generador, rm (x) = xnk m(x) mod g(x).

3. Sumar el resto rm (x) a xnk m(x), o lo que es igual, concatenar los


coeficientes de rm (x) tras los de m(x): el resultado es la palabra del
cdigo a transmitir.

Ejemplo 7.3. El cdigo del ejemplo 7.1-(b) no es sistemtico. Segn se


acaba de explicar, dividiendo xi , para i = 3, 4, 5, 6, entre g(x) = x3 + x + 1,
208 Cdigos cclicos

y sumando el resto a xi , se calculan los coeficientes de las filas de la matriz


generadora sistemtica. As pues, como
x6 = x2 + 1 mod g(x)
x5 = x2 + x + 1 mod g(x)
x4 = x2 + x mod g(x)
x3 = x + 1 mod g(x)
esa matriz vale
1 0 0 0 1 0 1
0 1 0 0 1 1 1
G=
0
.
0 1 0 1 1 0
0 0 0 1 0 1 1
Supongamos ahora que se desea calcular, para el cdigo cclico sistemtico,
el polinomio del cdigo correspondiente al mensaje 1101, o lo que es lo
mismo, de m(x) = x3 + x2 + 1. Los pasos del algoritmo son:

1. Multiplicar m(x) por x3 . El resultado es x3 m(x) = x6 + x5 + x3 .


2. Calcular el resto de la divisin de x3 m(x) entre g(x). Como
x6 + x5 + x3 = (x3 + x2 + x + 1)g(x) + 1
los dgitos del resto son 001.
3. Sumar el resto a x3 m(x). El vector del cdigo resultante es 1101001.

Por supuesto,

1 0 0 0 1 0 1
0 1 0 0 1 1 1
(1101001) = (1101)
0

0 1 0 1 1 0
0 0 0 1 0 1 1
pero se mostrar en el prximo apartado que el circuito de clculo del resto
de la divisin polinmica es ms simple que el codificador de un cdigo lineal
no cclico.

7.4. Circuitos codificadores

El clculo de los smbolos de redundancia de un cdigo cclico sistemtico


se realiza en la prctica con un registro de desplazamiento realimentado
y con sumadores con aritmtica finita. Existen dos formas de generar la
redundancia:
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 209

a) Con un circuito lineal multiplicativo basado en las ecuaciones de com-


probacin de paridad v H T = 0nk .

b) Mediante un circuito lineal divisor que lleva a cabo el clculo R(x) =


xnk m(x) mod g(x).

Se expone a continuacin el funcionamiento de los circuitos con cada


mtodo.

7.4.1. Circuitos multiplicadores

El procedimiento ms directo para obtener las palabras de un cdigo


cclico C[n, k] es la multiplicacin del polinomio mensaje por el polinomio
generador. En la figura 7.1 (pgina 210) se representa la estructura de un
filtro lineal de respuesta impulsional finita que lleva a cabo la multiplicacin
de dos polinomios cualesquiera, m(x) y g(x) = gm xm + + g1 x + g0 .
Aplicado al caso de un cdigo cclico binario, el funcionamiento es como se
pasa a describir.
Inicialmente, las n k celdas de memoria (las cajas rectangulares, cada
una de las cuales permite almacenar un smbolo) estn a cero. Los k smbolos
del polinomio mensaje se introducen en el circuito en secuencia, comenzando
por el del trmino de mayor exponente. A continuacin, el bit contenido
en cada posicin de memoria se multiplica (mdulo-2) por el coeficiente
correspondiente de g(x), y el resultado de todos estos productos se suma
(mdulo-2) para obtener un bit del polinomio producto. Al final de cada
etapa, el contenido global del registro de memoria se desplaza una posicin
hacia la derecha. Se requieren en total n etapas para producir la palabra del
cdigo, y durante las n k ltimas es preciso introducir ceros a la entrada
del codificador. El inconveniente ms severo de esta clase de codificadores
es que no son sistemticos.
Consideremos ahora las n k ecuaciones lineales

v H T = 0nk

y recordemos la forma de la matriz H, introducida en el apartado 7.2. A par-


tir de la estructura particular de H se ve que los smbolos de redundancia
v0 , v1 , . . . , vnk1 , en un cdigo sistemtico, se pueden calcular de manera
recurrente multiplicando los smbolos (vn1 , . . . , vnk ) del mensaje por los
sucesivos desplazamientos de los coeficientes del polinomio recproco hr (x).
Esta operacin produce como resultado los coeficientes de orden k i < n
del polinomio resultante de multiplicar el polinomio del cdigo, v(x), por el
polinomio comprobador de paridad h(x).
210 Cdigos cclicos

 
 

   
  

 

Figura 7.1. Circuito genrico para multiplicar los polinomios m(x) y


g(x).

 ()&*+ ()&*%, (, (%+ (-

 !#"%$ !#"%$&"' !#"%. !#"%'




Figura 7.2. Circuito codificador basado en el polinomio de comproba-


cin de paridad h(x).

/65 /4 /12 /10

Figura 7.3. Codificador multiplicativo del cdigo cclico binario de


polinomio generador g(x) = x3 + x + 1.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 211

El producto
n+k1
X n+k1
X k
X n+k1
X n1
X
v(x)h(x) = c i xi = xi hj vij = xi hij vj
i=0 i=0 j=0 i=0 j=0

implica, para todo polinomio del cdigo, que


k
X
hj vij = 0, i = n 1, . . . , k
j=0

y al ser hk = 1
k1
X
vik = hj vij , i = n 1, . . . , k (7.5)
j=0

que son las ecuaciones recurrentes anunciadas para calcular los dgitos de
redundancia en funcin de los smbolos del mensaje y los smbolos de re-
dundancia obtenidos en las iteraciones previas.
En la figura 7.2 se ha dibujado el esquema de un circuito lineal genrico
para llevar a cabo el clculo de la recurrencia (7.5). Cada una de las cajas
representa una celda de memoria capaz de almacenar un bit (un biestable),
cada crculo es un multiplicador binario (una puerta lgica and), y todos
los sumadores emplean aritmtica mdulo-2 (puertas lgicas xor).
Los k bits del mensaje se almacenan inicialmente en las celdas del regis-
tro de desplazamiento, con el primer smbolo, mk1 , en la posicin xn1 .
En cada etapa j = 1, . . . , n k se realizan las multiplicaciones y sumas
indicadas, con lo que el j-simo coeficiente de redundancia, vnkj , est
disponible en el punto R. A continuacin, el contenido de cada celda se
desplaza una posicin a la derecha, al tiempo que vnkj entra en la pri-
mera celda de la memoria. En cada iteracin sucesiva se calcula un nuevo
bit de redundancia, temporalmente almacenado en la primera celda, cuyo
valor depende de los bits del mensaje y de todos los bits de redundancia
generados antes que l. Despus de k iteraciones, la posicin xn1 contie-
ne el primer bit de redundancia, que se extrae del circuito por la rama de
salida a la vez que se realimenta para continuar calculando los dgitos de
redundancia restantes. Al cabo de n k desplazamientos ms, todos los bits
de redundancia habrn sido calculados y transmitidos por el circuito.
El circuito de multiplicacin realimentado es sencillamente un filtro lineal
recurrente (o autorregresivo) con aritmtica binaria. No se debe olvidar que,
en codificadores binarios, h0 = 1 y 1 = 1.

Ejemplo 7.4. El codificador multiplicativo correspondiente a g(x) = x3 +


x+1 se ha dibujado en la figura 7.3. El proceso de clculo de la redundancia
212 Cdigos cclicos

del mensaje 1010 se resume en la tabla adjunta, donde figuran el contenido


del registro de desplazamiento y el valor del bit de realimentacin en cada
etapa.

Iteracin R = m 1 + m2 + m3 m0 m1 m2 m3
1 0 1 0 1
2 0 0 0 1 0
3 1 1 0 0 1
4 1 1 1 0 0

Al trmino de la etapa 4, los biestables m0 m1 m2 guardan el valor de los


bits de redundancia del mensaje.

7.4.2. Circuitos divisores

Los bits de redundancia de un cdigo sistemtico tambin pueden ser


generados realizando explcitamente la divisin del polinomio xnk m(x) en-
tre el generador g(x) mediante un registro de desplazamiento realimentado
de n k posiciones como el de la figura 7.4.
El registro tiene sus n k celdas de memoria inicialmente a 0. Los
coeficientes del polinomio desplazado xnk m(x) se introducen en el circuito
por la izquierda, en orden de mayor a menor exponente, de manera que
los primeros n k desplazamientos sencillamente sirven para almacenar los
n k primeros smbolos de xnk m(x) en el registro, porque el coeficiente
de la rama de realimentacin vale siempre cero.
En cada una de las siguientes k iteraciones, el smbolo de realimentacin
es el coeficiente j = k, k 1, . . . , 1 del polinomio cociente, que se multiplica
por g(x), y el resultado se sustrae (recurdese que la suma y la resta en
mdulo-2 son la misma operacin) del resto parcial almacenado en el regis-
tro. El resultado se desplaza una posicin a la derecha para dar lugar a la
entrada de un nuevo bit, y se contina con la siguiente iteracin. Despus de
haber introducido los n dgitos en el circuito, el registro de desplazamiento
contiene los bits de redundancia, que se extraen mediante el conmutador de
la lnea de realimentacin realizando n k desplazamientos ms. En cdigos
binarios, 1 = 1 y g0 = 1.
Formalmente, el circuito ejecuta el siguiente par de ecuaciones recurren-
tes: sea Q(r) (x) el cociente parcial, en la iteracin r, de la divisin polinmica
de v(x) entre g(x), con v(x) y g(x) arbitrarios; y sea R (r) (x) el resto par-
cial en la iteracin r de esa misma divisin. El cociente y el resto parciales
en esta iteracin se obtienen a partir de los de la etapa anterior con las
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 213

ecuaciones:
(r1)
Q(r) (x) = Q(r1) (x) + Rnr xkr
(r1)
R(r) (x) = R(r1) (x) Rnr xkr g(x)

y las condiciones iniciales Q(0) (x) = 0 y R(0) (x) = v(x). En el caso de la


codificacin de cdigos cclicos, basta con fijar R (0) (x) = xnk m(x) para,
al cabo de k iteraciones, obtener el resto de la divisin entre g(x). Observe
que, en el circuito, son n las iteraciones necesarias, pues las n k primeras
sirven nicamente para establecer la condicin inicial R (0) (x) = xnk m(x).
Puesto que el circuito es lineal, puede obtenerse el mismo resultado final
con el esquema de la figura 7.5, en el que los bits del mensaje m(x) se
introducen en el sumador del extremo derecho. En este caso, el contenido
del registro de memoria en cada etapa son los coeficientes del producto
de g(x) por el cociente parcial de la divisin de xnk m(x) entre g(x). El
sumador del extremo derecho acta realmente como un comparador binario,
calculando sucesivamente los coeficientes del polinomio cociente. Despus de
k iteraciones, el registro contendr el resto final de la divisin, es decir, los
n k dgitos de redundancia. Al igual que antes, para el caso particular de
cdigos binarios, g0 = 1 y 1 = 1.
Este procedimiento se puede simbolizar como sigue. Sea P (r) (x) el pro-
ducto de g(x) por el resto parcial de la divisin de v(x) entre g(x); P (r+1) (x)
es funcin de P (r) (x) conforme a las ecuaciones:
(r1)
(r) vnr + pkr
pkr =
gnk
(r1)
P (r) (x) = P (r1) (x) + pkr xkr g(x)
(r)
para r = 1, . . . , k, con la condicin de partida P (0) (x) = 0 y siendo pj
el coeficiente de xj en P (r) (x). Observe que slo es necesario memorizar k
coeficientes de P (r) (x) dado que, por construccin, sus r primeros trminos
los de las potencias ms altas, coiciden con los del dividendo, que ya se
han procesado y no intervienen en las iteraciones posteriores. Despus de k
iteraciones, el resto de la divisin de v(x) entre g(x) es justamente

v(x) P (k) (x).

En el supuesto de aplicar este algoritmo a un cdigo cclico, el circuito de


la figura 7.5 es el resultado de haberlo particularizado para gnk = 1 y
v(x) = xnk m(x).
Los circuitos divisores requieren menos memoria que los multiplicadores
cuando n k < k, es decir, cuando Rc = nk > 12 . En la prctica, slo en los
214 Cdigos cclicos

 !" #%$

  

+-, +  +-/ +-. / +-. 




   
 
 '&)( *

Figura 7.4. Circuito divisor de polinomios genrico.

8S 83 86 8 T 5 6 8T 573 UV

0 1 0-1 2%3 0'45 6 0 4573

9;: <'= >? : @BA C D FGH GJI'K GL'M HN7P O L'Q R P


E A C-D

Figura 7.5. Circuito divisor polinmico equivalente.

X Y\ YZ Y[

Figura 7.6. Circuito codificador del cdigo cclico sistemtico genera-


do por g(x) = x3 + x + 1.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 215

E R r0 r1 r2
0 0 0
1 0 1 0 0
1 0 1 1 0
1 0 1 1 1
1 1 0 0 1
0 1 1 1 0
0 0 0 1 1
0 1 1 1 1

Tabla 7.5. Operaciones del circuito divisor de la figura 7.6.

canales limitados severamente por una tasa de error inaceptable se necesita


recurrir a cdigos con tasas menores que 1/2, por lo que, en la mayor parte
de las aplicaciones, los clculos de generacin y verificacin de los smbolos
de redundancia se realizan con circuitos divisores.

Tanto los circuitos multiplicadores como los divisores son ms simples


que el circuito de generacin de bits de paridad de un cdigo de bloques
sistemtico que no sea cclico, que precisa una memoria de k bits y n k
funciones lgicas para generar todos los smbolos de redundancia.

Ejemplo 7.5. La figura 7.6 representa el circuito codificador por divisin


del cdigo cclico sistemtico [7, 4] engendrado por x3 +x+1. Las operaciones
que lleva a cabo para calcular la redundancia del mensaje 1111 se ilustran
en detalle en la tabla 7.5.

La primera columna contiene los bits entrantes al circuito, que son los
del mensaje ms tantos ceros como smbolos de redundancia; la segunda
columna seala el valor del bit de la rama de realimentacin en cada etapa;
y la tercera, el valor almacenado en cada una de las celdas del registro de
desplazamiento.

Es fcil verificar que

m(x)x3 = x6 + x5 + x4 + x3 = (x3 + x2 + 1)(x3 + x + 1) + x2 + x + 1

y que el contenido de las celdas del registro de desplazamiento en cada etapa


coincide con los restos parciales de esta divisin.
216 Cdigos cclicos

7.5. Deteccin de errores

La propiedad cclica implica que las ecuaciones de comprobacin de pa-


ridad, en las que se basa el funcionamiento del decodificador, equivalen al
clculo del resto de una divisin polinmica; esta divisin se puede llevar
a cabo, por ejemplo, mediante un registro de desplazamiento realimentado
como los vistos en el apartado anterior. En efecto, si tomamos H como la
nica matriz de la forma (7.3), entonces, para cualquier vector y, el vector
yH T coincide con los coeficientes de grado k, . . . , n 1 del polinomio

y(x)h(x) mod xn 1.

Pero estos coeficientes son, precisamente, los del mismo grado en



h(x) y(x) mod g(x)

y dependen nicamente del resto de la divisin de y(x) entre g(x).4 Por


tanto, existe una relacin uno a uno entre los vectores yH T y los polinomios
de grado menor que n k, en virtud de la cual podemos adoptar, para un
cdigo cclico, la siguiente definicin de sndrome.

Definicin 7.3 (Sndrome). Dado un cdigo cclico [n, k] de polinomio


generador g(x), se define el sndrome de un polinomio y(x) de grado menor
que n como
s(x) = y(x) mod g(x).

Para la representacin del vector error se va a utilizar tambin la nota-


cin polinmica. La siguiente definicin es obvia.

Definicin 7.4 (Polinomio error). El polinomio error es la representa-


cin polinmica del vector error,

e(x) = en1 xn1 + + e1 x + e0 .

As pues, el polinomio y(x) recibido cuando se transmite la palabra del


cdigo v, y = v + e, se puede escribir como y(x) = v(x) + e(x). En estas
condiciones, su sndrome

y(x) = v(x) + e(x) = e(x) mod g(x)

es un polinomio de grado mximo n k 1 que depende solamente del


polinomio error e(x). Como todas las palabras de un cdigo cclico contienen
4 Si F [x] es el conjunto de polinomios con coeficientes binarios, entonces dichos coefi-
2
cientes dependen nicamente de la clase de equivalencia del conjunto cociente F 2 [x]/g(x)
a la que pertenece y(x).
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 217

como factor al polinomio generador, es inmediata la validez del siguiente


teorema.

Teorema 7.5. El polinomio y(x) es una palabra del cdigo si y solamente


si su sndrome es nulo.

Demostracin. Del teorema 7.4 y la definicin de sndrome

y(x) C y(x) = 0 mod g(x) s(x) = 0.

Se van a analizar de inmediato algunas circunstancias en que un cierto


polinomio y(x) es indivisible entre el generador de un cdigo cclico, con-
dicin suficiente para que aqul posea sndrome no nulo, y sea as posible
detectar un error en la transmisin. A causa de su estructura algebraica y
geomtrica, se presentan para los cdigos cclicos situaciones que no se dan
en otros cdigos lineales.
Una primera diferencia simple es que todos los polinomios del cdigo
difieren en dos smbolos cuanto menos, es decir, que la distancia de un
cdigo cclico no puede ser menor que 2.

Teorema 7.6. Un cdigo cclico detecta todos los errores simples.

Demostracin. La nica raz de e(x) = xi , 0 i < n, es x = 0. Por otra


parte, g(0) 6= 0 por ser su trmino independiente no nulo. Por lo tanto e(x)
no puede ser un mltiplo de g(x), y resulta que e(x) 6= 0 mod g(x).

Una segunda caracterstica es que, seleccionando con propiedad el poli-


nomio generador, resulta sencillo detectar errores mltiples.

Teorema 7.7. Si el polinomio generador de un cdigo cclico binario es


de la forma g(x) = (xh 1) m(x), para algn h > 0, entonces todos
los polinomios de error con un nmero impar de trminos no nulos son
detectables.

Demostracin. Si e(x) tiene un nmero impar de trminos no nulos,


e(1) = 1. Por otra parte, g(1) = (xh 1) m(x)|x=1 = 0. Por lo tanto,
g(x) no puede ser factor de e(x), y se cumple que e(x) mod g(x) 6= 0.
Obsrvese que este teorema equivale a afirmar que si g(x) = (xh 1)
m(x), entonces todas las palabras del cdigo son de peso Hamming par.

Cierta clase de polinomios, la de los polinomios primitivos, es til en


especial en la deteccin de los errores de dos posiciones. Definamos de forma
precisa ambos conceptos, el de error doble y el de polinomio primitivo.
218 Cdigos cclicos

Grado Polinomio primitivo Grado Polinomio primitivo


2 x2 + x + 1 16 x16 + x12 + x3 + x + 1
3 x3 + x + 1 17 x17 + x3 + 1
4 x4 + x + 1 18 x18 + x7 + 1
5 x5 + x 2 + 1 19 x19 + x5 + x2 + x + 1
6 x6 + x + 1 20 x20 + x3 + 1
7 x7 + x 3 + 1 21 x21 + x2 + 1
8 x8 + x 4 + x 3 + x + 1 22 x22 + x + 1
9 x9 + x 4 + 1 23 x23 + x5 + 1
10 x10 + x3 + 1 24 x24 + x7 + x2 + x + 1
11 x11 + x2 + 1 25 x25 + x3 + 1
12 x12 + x6 + x4 + x + 1 26 x26 + x6 + x2 + x + 1
13 x13 + x4 + x3 + x + 1 27 x27 + x5 + x2 + x + 1
14 x14 + x10 + x6 + x + 1 28 x28 + x3 + 1
15 x15 + x + 1

Tabla 7.6. Algunos polinomios primitivos sobre GF(2).

Definicin 7.5 (Polinomio primitivo). Se dice que un polinomio de


grado s con coeficientes binarios, ps (x), es un polinomio primitivo si cumple
las siguientes condiciones:5

a) es irreducible, es decir, no es divisible por ningn otro polinomio con


coeficientes binarios salvo l mismo y el polinomio constante 1;

b) mn{m : ps (x) | xm 1} = 2s 1.

Definicin 7.6 (Error doble). Un polinomio de error de la forma e(x) =


xi + xj se denomina error doble de distancia |i j|.

Teorema 7.8. Si el polinomio generador es mltiplo de un polinomio pri-


mitivo de grado s, todos los errores dobles de distancia menor que 2 s 1
son detectables.

Demostracin. Si e(x) = xi + xj = xj (xij + 1), como ni xj ni xij + 1


(cuando i j < 2s 1) son, por definicin, mltiplos de g(x), e(x) no es
divisible por g(x), y el error es detectable.

Corolario 7.9. Si g(x) contiene como factor un polinomio primitivo de


grado s tal que n 2s 1, todos los errores dobles son detectables.
5 Estascondiciones son equivalentes a afirmar que las races del polinomio son elemen-
tos primitivos de GF(2s ), que es el menor cuerpo que las contiene.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 219

Existen polinomios primitivos binarios de cualquier grado,6 algunos de


los cuales se listan en la tabla 7.6. Bastan para casi todas las aplicaciones
prcticas, dado que la seleccin de un polinomio primitivo de grado bajo
como (divisor del) polinomio generador de un cdigo cclico enseguida lleva
a longitudes de cdigo muy elevadas.
Una tercera consecuencia de la ciclicidad, sumamente importante, es que
los cdigos cclicos aseguran la deteccin de errores que afectan a posiciones
consecutivas en una palabra del cdigo, una situacin frecuente en los ca-
nales con memoria. Los patrones de error con esta caracterstica se conocen
como rfagas de errores. A continuacin se define de manera ms precisa el
concepto de rfaga de errores.

Definicin 7.7 (Rfaga de errores). Un polinomio error es una rfaga


de longitud s si es posible escribirlo como

xi (1 + e1 x + + es2 xs2 + xs1 ) mod xn 1, ej GF(2)

y s es el menor entero con esta propiedad.

Obsrvese que la longitud de una rfaga est, en realidad, determinada


por la mnima distancia posible entre los unos de los extremos en cualquiera
de los desplazamientos del vector error, de manera que, por ejemplo, el
vector 010001 (e(x) = 1 + x4 ) no es una rfaga de longitud 5, sino una
rfaga de longitud 3, pues dos desplazamientos producen el vector 000101,
es decir
e(x) = x4 (1 + x2 ) mod x6 1.

El teorema siguiente establece parcialmente en qu condiciones es posible


detectar rfagas de error.

Teorema 7.10. Un cdigo cclico [n, k] detecta todas las rfagas de error
de longitud menor o igual que n k.

Demostracin. Supongamos que

e(x) = xi (xs1 + e1 xs2 + + es2 x + 1) mod xn 1.

Su sndrome ser

s(x) = xi (xs1 + e1 xs2 + + es2 x + 1) mod g(x),

y como xi no es factor de g(x), si s n k, xs1 + e1 xs2 + + es2 x + 1


no es divisible por g(x), resulta que s(x) 6= 0.
6 En el teorema 9.22 se demuestra la existencia de polinomios primitivos de grado
cualquiera.
220 Cdigos cclicos

Pero, adems, la probabilidad de detectar rfagas de error de longitud


mayor es muy elevada, como ponen de manifiesto los siguientes dos teoremas.

Teorema 7.11. En un cdigo cclico binario [n, k], la probabilidad de que


una rfaga de error de longitud n k + 1 no sea detectada es menor que
( 21 )nk1 .

Demostracin. En efecto, suponiendo que los smbolos del vector recibido


son equiprobables (lo que para el receptor equivale al caso peor), hay un total
de 2nk1 rfagas distintas de longitud n k + 1 y solamente una de ellas
(e(x) = g(x)) es indetectable.

Teorema 7.12. En un cdigo cclico binario [n, k], la probabilidad de que


una rfaga de error de longitud l > n k + 1 sea indetectable es menor que
2(nk) .

Demostracin. Una rfaga de longitud l, e(x) = xi e0 (x), es indetectable


solamente si e0 (x) = a(x)g(x), lo que puede suceder de 2l2(nk) formas
diferentes. Pero hay en total 2l2 rfagas de longitud l; si stas se suponen
equiprobables, la probabilidad de una rfaga no detectada es 2(nk) .

Ejemplo 7.6. El polinomio g(x) = x16 + x12 + x5 + 1 es el producto de


x + 1 y un polinomio primitivo de grado 15,

x16 + x12 + x5 + 1 = (x + 1)(x15 + x14 + x13 + x12 + x4 + x3 + x2 + x + 1).


15
Al ser x+1 divisor de x2 1 +1 = x32767 +1, y primo relativo del polinomio
primitivo, g(x) divide a x32767 + 1. Luego es polinomio generador de un
cdigo cclico binario [32767, 32751]. Dicho cdigo goza de las siguientes
propiedades de deteccin:

a) Detecta todos los errores simples (vase el teorema 7.6).

b) Detecta todos los errores impares, porque contiene un factor x + 1


(vase el teorema 7.7).

c) Detecta todos los errores dobles, pues su polinomio generador contiene


un polinomio primitivo de grado 15, y 215 1 32 767 (vase el
corolario 7.9).

d ) Detecta todas las rfagas de errores de longitud menor o igual a 16


(vase el teorema 7.10).

e) Detecta las rfagas de error de longitud 17 con probabilidad al menos


1 2115 1 3,05 105 (vase el teorema 7.11).
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 221

f ) Detecta las rfagas de error de longitud mayor que 17 con probabilidad


mayor que 1 2116 1 1,52 105 (vase el teorema 7.12).

7.6. Decodificacin de cdigos cclicos

7.6.1. Correccin de errores

Hasta el momento slo se han explorado las consecuencias que se derivan


de la propiedad cclica con el propsito de simplificar el circuito de codifica-
cin, en tanto que se mantiene inalterado el procedimiento de decodificacin:
clculo del sndrome (con el mismo circuito codificador, eso s), asociacin a
un vector de error tabulado y posible correccin del error. Se podra pensar
que la propiedad cclica tambin implica relaciones algebraicas interesantes
para el proceso de decodificacin, que aprovechadas de manera conveniente
simplificaran en parte la construccin de los circuitos decodificadores. As
ocurre, y la clave de esta idea descansa en la siguiente identidad entre poli-
nomios.

Teorema 7.13 (Meggitt). Sean g(x), h(x), s(x) y e(x) polinomios tales
que

a) g(x)h(x) = xn 1

b) s(x) = e(x) mod g(x).

Se verifica entonces que

[xe(x) mod xn 1] mod g(x) = xs(x) mod g(x).

Demostracin. Operando simblicamente

xs(x) mod g(x) = x [e(x) mod g(x)] mod g(x)


= xe(x) mod g(x)
= [xe(x) mod xn 1] mod g(x)

en donde la ltima igualdad es una consecuencia simple de que g(x) sea un


divisor de xn 1.

En particular, si e(x) es un polinomio error con sndrome s(x), el sn-


drome de su desplazamiento cclico xe(x) mod xn 1 ser

s(1) (x) = xs(x) mod g(x)


222 Cdigos cclicos

g g g g g -1
0 1 k+2 n-k-2
n-k-1

xk x k+1 x n-2 x n-1

Circuito de deteccin de errores


Tabla de decodificacin por sndrome
Vector
corregido
Buffer

Figura 7.7. Esquema genrico de un decodificador con correccin de


errores.

la reduccin mdulo g(x) del sndrome s(x) desplazado en una posicin. Por
induccin, el sndrome del i-simo desplazamiento cclico de e(x) ser

s(i) (x) = xi s(x) mod g(x)

la reduccin mdulo g(x) del i-simo desplazamiento cclico del sndrome


original, considerando a ste como un vector de n k componentes.
As pues, el teorema de Meggitt nos dice que no es preciso calcular
previamente ni tampoco mantener en memoria los sndromes de los despla-
zamientos cclicos de un vector de error del cual ya se conoce su sndrome;
se pueden calcular iterando una o ms veces el registro de desplazamien-
to realimentado del decodificador, partiendo del contenido inicial s(x) (re-
cordemos que el desplazamiento equivale a la multiplicacin por x, y la
realimentacin, al clculo del resto de la divisin entre g(x)).
Por lo tanto, para la tarea de corregir errores, es suficiente comparar los
sucesivos desplazamientos del sndrome presente en el circuito decodificador
con un subconjunto de 1/n de las entradas de la tabla de sndromes original.
Los decodificadores con una arquitectura como la descrita se conocen como
decodificadores Meggitt, y su esquema general se muestra en la figura 7.7.
La principal ventaja de un decodificador Meggitt estriba en que el re-
ceptor puede decodificar la secuencia recibida en serie, smbolo a smbolo,
y corregir los errores (verificar si pertenecen a la tabla de sndromes) con
el mismo circuito combinacional. Sea sr (x) el sndrome del vector recibi-
do, se (x) el de una secuencia de error corregible con un error en el primer
smbolo (en1 = 1), y z(x) el sndrome de xn1 . Un decodificador Meggitt
realiza este algoritmo:
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 223

1. Inicializacin: s(0) (x) = sr (x), i = 0; almacenar en un registro el


vector recibido (yn1 , . . . , y0 ).
2. Iteracin:
a) si s(i) (x) 6= se (x), entonces el vector recibido no contiene error
en el smbolo yn1i ; emitir yn1i y desplazar cclicamente el
vector recibido y el contenido del registro de sndrome

s(i+1) (x) = xs(i) (x) mod g(x);

b) si s(i) (x) = se (x), entonces el smbolo recibido yn1i es errneo;


emitir yn1i +en1 , sumar el sndrome de xn1 al contenido del
registro de sndrome y desplazarlo cclicamente

s(i+1) (x) = x s(i) (x) + z(x) mod g(x);

c) i = i + 1; repetir los pasos anteriores si i < n.

Ejemplo 7.7. Para concretar los pasos del algoritmo, consideremos el c-


digo Hamming binario [15, 11] de polinomio generador x4 + x + 1. Por ser
un cdigo perfecto corrector de errores simples, hay en su tabla de decodi-
ficacin un solo vector de error, e(x) = x14 , con el bit ms significativo a
uno, cuyo sndrome vale s(x) = x3 + 1. El circuito decodificador de Meggitt
se ha representado en la figura 7.8 y opera como sigue. Tras haber introdu-
cido en el circuito los 15 smbolos de la secuencia observada a la salida del
canal, el registro s0 s1 s2 s3 contiene el sndrome del vector recibido. Si este
sndrome es igual a 1001, entonces el decodificador seleccionar e(x) = x14
y el error se habr corregido; caso de no coincidir, si, tras un desplazamiento
ms, s0 s1 s2 s3 es ahora igual a 1001, se habr descubierto que el error era
e(x) = x13 ; y as se continuara sucesivamente. El proceso de decodificacin
en serie con eliminacin de errores simples termina, para este cdigo, en el
instante en que se corrige un error, y requiere en total, en el caso peor, 30
desplazamientos del registro de sndrome. A cambio de este retardo, vea que
el circuito corrector de errores consta de una sola puerta lgica.

Si el cdigo permite corregir ms errores que los simples, entonces apa-


rece una dificultad: cada vez que se corrige un bit se ha de introducir en
el registro de desplazamiento el sndrome del vector corregido, que posi-
blemente conste de ms de un coeficiente no nulo. As pues, habra que
acceder a cada uno de los biestables del registro de sndrome para escribir
en ellos los nuevos coeficientes, complicando la circuitera del decodificador.
En lugar de la definicin original, supongamos que el sndrome se calcu-
lase como
s0 (x) = xnk y(x) mod g(x),
224 Cdigos cclicos

&(' ) *
!" !# !$ !%

  
     
  

Figura 7.8. Decodificador Meggitt del cdigo Hamming [15,11].

es decir, como el sndrome del desplazamiento cclico de n k posiciones


de y(x). Esta nueva formulacin no supone cambio alguno en la regla de
decisin: existe una relacin uno a uno entre los cogrupos del cdigo y los
sndromes, y puesto que xnk y g(x) son primos relativos, las palabras del
cdigo siguen siendo las nicas con sndrome s0 (x) nulo.
Asociado a e(x) = xn1 , un error en el bit situado ms a la izquierda,
se tendr ahora el nuevo sndrome

s0 (x) = xnk xn1 = x2nk1 = xnk1 mod g(x)

que consta de un nico coeficiente, justo en el bit ms significativo. El


efecto del error s0 (x) puede, por consiguiente, eliminarse cambiando el bit
ms significativo del registro de desplazamiento del divisor.
En la figura 7.9 se ha modificado el circuito decodificador de la figura 7.8
para tener en cuenta este caso. Los bits del mensaje se introducen ahora por
el extremo derecho del registro (una operacin equivalente a la premultipli-
cacin por xnk ), que tras 15 desplazamientos contendr el valor del sn-
drome modificado s0 (x) = x4 y(x) mod g(x). El sndrome correspondiente
ahora al error x14 es el polinomio x3 . Cuando se detecta, el bit de realimen-
tacin entre la salida del detector y el registro de desplazamiento provoca
que, en la siguiente iteracin, el registro contenga ceros, sealando con ello
el final de la decodificacin.

7.6.2. Captura de errores

En la prctica, con cdigos de gran longitud, el circuito de correccin de


errores puede volverse en exceso complicado. Sin embargo, si nos limitamos
a corregir slo ciertos vectores de error, es posible simplificarlo y construir
decodificadores Meggitt sencillos y eficientes.
Supongamos un cdigo lineal sistemtico con matriz de comprobacin
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 225

$&% ')(

* 
++, 
-. , / 0

 ! " #

  
    


Figura 7.9. Decodificador Meggitt con correccin de errores simples


para un cdigo Hamming [15,11].

de paridad 
Hnkn = AT Ink
e imaginemos que al transmitir una de las palabras del cdigo slo ocurren
errores en  
dC 1
t = t
2
smbolos, siendo dC la distancia del cdigo.

Teorema 7.14. Si el vector error en el canal, e, tiene peso t, y si el sn-


drome del vector recibido, s = eH T , es de peso Hamming menor o igual que
t, entonces los errores estn confinados en las posiciones de los smbolos de
redundancia y vienen dados por el vector s. Si el peso Hamming del vector
sndrome es mayor que t , entonces al menos un smbolo de informacin es
incorrecto.

Demostracin.

a) Si el vector error e = (en1 , . . . , e0 ) slo contiene t errores en la parte


de redundancia (ei 6= 0 i < n k), entonces su sndrome

eH T = e(AT I)T = (enk1 , . . . , e0 )T

tiene peso Hamming t, y e es el vector de peso mnimo asociado a ese


sndrome.
b) Si al menos uno de los smbolos de informacin de e es errneo, la
palabra del cdigo

(en1 , . . . , enk )(I A) = (en1 , . . . , enk , (en1 , . . . , enk )A)


= (e1 , e2 )
226 Cdigos cclicos

es no nula y tiene peso pH (e1 ) + pH (e2 ) 2t + 1. Pero como


T
s = eH T = [(en1 , . . . , enk )A + (enk1 , . . . , e0 )]
= eT2 + (enk1 , . . . , e0 )T

resulta que
 
pH (s) pH (en1 , . . . , enk )A pH (enk1 , . . . , e0 )
2t + 1 pH (e1 ) pH (e2 )
= 2t + 1 pH (e)
t + 1.

Esto es, todos los vectores de error que sealan que algn smbolo de
informacin es incorrecto estn asociados a sndromes de peso mayor
que t .

En otras palabras, cuando en un cdigo lineal sistemtico los errores en el


canal afectan a t (o menos) smbolos de redundancia, el sndrome del vector
recibido da directamente los smbolos errneos, y el vector transmitido es

x = y + (0, . . . , 0, s).

Por tanto, en cdigos sistemticos, los errores corregibles que afectan ni-
camente a la parte de redundancia son fcilmente identificables: basta con
verificar si el peso de su sndrome es menor o igual a t . Esa deteccin
del peso del sndrome se puede realizar con un circuito combinacional muy
sencillo. Y, adems, la correccin del error es trivial, porque es suficiente
con sumar el contenido del registro del sndrome al vector recibido.
Consideremos ahora la coleccin de automorfismos del cdigo. Estos au-
tomorfismos son simplemente todas las permutaciones de coordenadas que
convierten una palabra del cdigo en otra palabra del cdigo. De la misma
manera, los vectores de error corregibles se transforman en otros vecto-
res corregibles por la accin de cualquiera de estas permutaciones. Como
acabamos de ver, algunos patrones de error son particularmente fciles de
descubrir y de corregir, lo que significa que para ellos el circuito de deco-
dificacin es ms sencillo. Podemos, por lo tanto, abordar la decodificacin
de un cdigo cclico sin necesidad de un circuito lgico complejo aplicando
la siguiente idea. Elijamos un subconjunto de automorfismos del cdigo ca-
paces de transformar cualquier error corregible en uno que el decodificador
pueda reconocer con facilidad. Apliquemos al vector recibido cada una de
estas permutaciones hasta que se convierta en un vector que el circuito de
decodificacin pueda detectar y, cuando esto ocurra, procedamos a corregir
el error. Por ltimo, invirtamos la permutacin aplicada para obtener el
vector transmitido.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 227

La aplicacin general de este razonamiento da el siguiente algoritmo


formal de decodificacin (debido a F. J. MacWilliams) para corregir en un
cdigo lineal todos los vectores de error de peso menor o igual a t con
t b(dC 1)/2c.
Sea P una familia de permutaciones de las posiciones {0, 1, . . . , n 1}
de los smbolos en las palabras del cdigo con las siguientes propiedades:

a) j P preserva el conjunto de palabras del cdigo, es decir,

x C j (x) = (xj (n1) . . . xj (0) ) C

j pertenece al grupo de automorfismos de permutacin de C.


b) Para cualquier vector de error con peso Hamming menor o igual que t,
al menos una permutacin j P traslada todos los smbolos errneos
a las ltimas n k posiciones.

Algoritmo de decodificacin por permutacin

1. Si se recibe el vector y, para cada permutacin j P con las propie-


dades citadas, calcular los vectores j (y) y su sndrome hasta obtener
un sndrome sj = (enk1 , . . . , e0 ) con peso Hamming menor o igual
a t.
2. Decodificar el vector recibido como

j1 j (y) + (0, . . . , 0, enk1 , . . . , e0 ) .

3. Cuando, para toda permutacin de P, el peso Hamming de sj es mayor


que t, han ocurrido ms de t errores y stos no son corregibles.

Es claro que la posibilidad de aplicar con eficacia este algoritmo depende de


haber obtenido un conjunto mnimo de permutaciones con las propiedades
indicadas, algo que para un cdigo lineal arbitrario constituye un problema
nada trivial.

Ejemplo 7.8.

a) Sea la permutacin cclica, la definida por la rotacin cclica de


los smbolos de un vector cdigo, e I la permutacin identidad. El
conjunto de permutaciones {I, 2 , 4 } traslada cualquier error simple
del cdigo Hamming [7, 4] hacia la parte de redundancia.
228 Cdigos cclicos

b) Considrese el cdigo Golay (23, 12). La permutacin 2 definida por


i2 = 2i mod 23 para 0 i 22 es un automorfismo del cdigo
cuando se aplica a los ndices de las coordenadas. El conjunto de 92
permutaciones { i 2j , 0 i 22, j = 0, 1, 2, 11} traslada cualquier pa-
trn de error de peso menor o igual que 3 a la parte de redundancia, y
se podra utilizar para el algoritmo de decodificacin por permutacin
con cualquiera de las representaciones cclicas del cdigo.

c) El cdigo cclico [31, 21, 5] generado por (x5 + x2 + 1)(x5 + x4 + x3 +


x2 + 1) tiene a 2 : i 2i mod 31 como uno de sus automorfismos,
con la particularidad de que 25 = I. El conjunto de 155 automorfismos
{ i 2j , 0 i 30, 0 j 4} desplazan todos los errores dobles a la
parte de redundancia, por lo que podran utilizarse en un algoritmo
de decodificacin por permutacin.

Pero, en el caso de un cdigo cclico, un conjunto (no siempre mnimo)


de permutaciones que satisface las condiciones anteriores es el formado por
todas las rotaciones cclicas de los smbolos, lo que nos da entonces el si-
guiente algoritmo para corregir todas las rfagas de error de longitud menor
o igual que n k y peso no mayor que b(dC 1)/2c:

1. Calcular el sndrome del vector recibido y(x).

2. Iterar i veces el registro de sndrome hasta que su contenido tenga


peso Hamming menor o igual que t .

3. Sumar el contenido del registro de sndrome al i-simo desplazamiento


cclico del vector recibido, y desplazar la suma cclicamente i veces
hacia la derecha; el resultado es la palabra del cdigo emitida.

4. Si, tras n desplazamientos del registro de sndrome, no se ha conse-


guido ninguno con peso Hamming menor o igual que t , entonces han
ocurrido ms de t errores.

Este mtodo de iterar el registro de sndromes hasta que su contenido coin-


cida con un vector de error corregible se denomina mtodo de captura de
errores. En particular, garantiza que se corregirn todos los errores de peso
menor o igual que  
n1
k
que es un nmero pequeo si el cdigo tiene una tasa elevada. Por ejemplo,
para un cdigo Hamming binario [7, 4], indica que se podrn corregir los
errores simples (b6/4c = 1), pero en un cdigo cclico [31, 21], que corrige
adems errores dobles, el mtodo de captura de errores slo corrige todos
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 229

los de peso b30/21c = 1, dejando algunos dobles sin corregir. As pues, el


inters prctico de la decodificacin por permutacin o captura de errores
se limita a unos pocos cdigos pequeos.
Los decodificadores Hamming de las figuras 7.8 y 7.9 son efectivamente
decodificadores de captura de errores de 1 bit.

7.7. Estructura cclica de los cdigos Hamming

Un cdigo Hamming binario de longitud 2m 1 con m 3 es equivalente


a un cdigo cclico generado por un polinomio primitivo pm (x) de grado m.
Para probar esta aseveracin no hay ms que relacionar propiedades que ya
resultan conocidas.7

Teorema 7.15. El menor cdigo cclico binario con un polinomio binario


primitivo de grado m como generador es el cdigo Hamming Hm .

Demostracin. [1] Sea pm (x) un polinomio binario primitivo de grado


m, que existe siempre. Por la propia definicin de polinomio primitivo, es
claro que el menor cdigo cclico engendrado por pm (x) tiene parmetros
[2m 1, 2m m 1] y distancia mayor o igual que 3. Ahora bien, cualquier
cdigo [2m 1, 2m m1] corrector de errores simples es, salvo equivalencia,
nico, y equivalente por tanto al cdigo Hamming Hm .

Cabe una prueba alternativa igualmente directa empleando el lenguaje


de los cuerpos finitos.8

Demostracin. [2] Sea GF(2m ) un elemento primitivo y


m1
Y i
pm (x) = (x 2 )
i=0

un polinomio primitivo de grado m.


P2m 1
El polinomio v(x) = i=0 vi xi pertenece al cdigo cclico engendrado
m1
por pm (x) solamente si admite a , . . . , 2 como races, es decir, si
m
2X 1
2k k
v( ) = vj j2 = 0, k = 0, . . . , m 1.
j=0

7 Obviamos el caso m = 2 porque se trata de un simple cdigo de repeticin de longi-

tud 3.
8 Omita la lectura de la segunda demostracin si no piensa estudiar los conceptos

presentados en el captulo 9.
230 Cdigos cclicos

k k
Pero como vj GF(2), v(2 ) = v()2 , y lo anterior se cumple si v() = 0.
O bien si T
m
(v2m 1 , . . . , v0 ) 2 1 . . . 1 = 0
lo que quiere decir que
m
1

H = 2 ... 1

es matriz de comprobacin de paridad del cdigo. H se puede convertir en


una matriz binaria sustituyendo cada elemento de GF(2m ) por el correspon-
diente vector columna de m smbolos binarios que lo representa, y se tiene
as que las columnas de H son todos los posibles vectores binarios no nulos
de longitud m.

Para hacer esta equivalencia ms explcita, vamos a deducir de nuevo


la ciclicidad de los cdigos Hamming analizando la estructura de la matriz
comprobadora de paridad deducida de la matriz generadora sistemtica del
cdigo G = [I2m m1 | A2m m1m ].
Al dividir el polinomio xm+i por el polinomio generador primitivo pm (x),
para 0 i < 2m m 1, se obtiene

xm+i = ai (x)pm (x) + ri (x)

en donde el resto ri (x) es un polinomio de grado menor que m cuyos coefi-


cientes son una de las filas en la submatriz A. Como x no es factor del polino-
mio primitivo pm (x), pm (x) no divide a xm+i , y en consecuencia ri (x) 6= 0.
Pero adems de ser distinto de cero, ri (x) contiene al menos dos trminos
no nulos. De no ser as, si ri (x) fuese de la forma xj con 0 j < m, se
podra escribir
xm+i = ai (x)pm (x) + xj
o bien que
xj (xm+ij 1) = ai (x)pm (x).
No obstante, esta ecuacin implica que pm (x) divide a xm+ij 1, lo que
no es posible porque pm (x) es primitivo de grado m, y m + i j < 2m 1.
Tambin se deduce que dos filas cualesquiera de A son distintas entre s,
porque si i 6= j, los restos ri (x) y rj (x) son diferentes. Por contradiccin,
supuesto que ri (x) = rj (x), la resta de las relaciones

ri (x) + xm+i = ai (x)pm (x)


rj (x) + xm+j = aj (x)pm (x)

dara como resultado, suponiendo que i < j,



xm+i (xji 1) = ai (x) aj (x) pm (x)
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 231

que, de nuevo, debe ser rechazado porque, como j i < 2m 1, xji 1 no


puede contener como factor a pm (x).
Resumiendo todo lo anterior: las 2m m 1 filas de la submatriz A
son todas distintas entre s y contienen no menos de dos elementos distintos
de cero. As que las columnas de H = [AT | Im ] son los 2m 1 vectores
binarios no nulos de longitud m, y H es matriz comprobadora de paridad
de un cdigo Hamming.

7.7.1. Cdigos smplex

Consideremos ahora la estructura del cdigo dual del cdigo Hamming


engendrado por pm (x). Este cdigo dual es un cdigo cclico de parmetros
[2m 1, m], y su polinomio generador es, segn resulta ya conocido (vase
el apartado 7.2), el polinomio recproco de pm (x), esto es, el polinomio de
grado 2m m 1
m
x2 1 1
gd (x) = m .
x pm (x1 )

El denominador, xm pm (x1 ), resulta ser un polinomio mnico de grado


m, irreducible (por serlo pm (x)), y tal que xn 1 es un mltiplo suyo si
n = 2m 1, pero no cuando n < 2m 1. Luego qm (x) = xm pm (x1 ) es
tambin un polinomio primitivo de grado m.
Pues bien, ocurre que al cdigo dual as construido pertenecen ni-
camente el vector nulo y los 2m 1 desplazamientos cclicos del polino-
mio generador gd (x). El mtodo ms directo para probar esta afirmacin
es confirmar que todos los desplazamientos cclicos de gd (x) son distintos
entre s; de no cumplirse esto, habra al menos dos desplazamientos cclicos,
(i) (j)
gd (x) y gd (x), de i y j posiciones, respectivamente, que daran lugar al
mismo vector cdigo
m (i)
1
xi gd (x) = ai (x)(x2 1) + gd (x)
m (j)
1
xj gd (x) = aj (x)(x2 1) + gd (x).
(i) (j)
Y si, de acuerdo con la hiptesis, gd (x) = gd (x), la resta de las ecuaciones
anteriores permite escribir
 m
xi (xji 1)gd (x) = ai (x) aj (x) (x2 1 1)

= ai (x) aj (x) gd (x)qm (x)

o, lo que es lo mismo,

xi (xji 1) = ai (x) aj (x) qm (x).
232 Cdigos cclicos

Pero, por ser qm (x) primitivo, ninguno de los factores xi o xji 1 (j i <
(i) (j)
2m 1) puede ser mltiplo suyo, de donde se tiene que gd (x) 6= gd (x)
m
i 6= j, 0 i, j < 2 1, como se quera probar.
Una matriz generadora del cdigo dual [2m 1, m] es la propia ma-
triz comprobadora de paridad del cdigo Hamming cclico en cuestin, que
podemos escribir por bloques como

Hm2m 1 = Im Am2m m1 .

Las columnas de la submatriz A son todos los vectores binarios de longitud


m con al menos dos unos. En cada una de las filas de H hay 2m1 unos
y 2m1 1 ceros, y puesto que las filas son palabras del cdigo, se puede
asegurar que todas las palabras del cdigo no nulas del dual constan de
2m 1 unos, por ser todas ellas desplazamientos cclicos de una cualquiera.
Por lo tanto, si C(n, k) es el cdigo dual de un cdigo Hamming con
m 3 bits de redundancia, se ha visto que

n = 2m 1
k=m
dC = 2m1

y tambin que C[n, k] es un cdigo cclico, y que sus palabras son el vector
nulo y todos los desplazamientos cclicos del polinomio generador. Adems,
como
dH (x, y) = pH (x + y) = 2m1
la distancia entre dos palabras del cdigo cualesquiera es un invariante,
hecho que motiva que a los cdigos duales de un Hamming se los denomine
cdigos smplex. La de los smplex es, por tanto, una de las familias de
cdigos que satisfacen con igualdad la cota de Griesmer: en efecto,

X
m1
dC
 m1
X
= 2i = 2m 1 = n.
i=0
2i i=0

En general, si f (x) es un divisor irreducible de xn 1, el cdigo cclico


generado por (xn 1)/f (x) es irreducible o mnimo (no contiene ningn
subcdigo cclico no trivial). Los cdigos smplex son irreducibles.

Ejemplo 7.9. Para ilustrar un cdigo smplex sencillo, considrese el cdigo


Hamming [3, 1] binario, que es tambin un elemental cdigo de repeticin
de tres bits:
C[3, 1] = {000, 111}.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 233









Figura 7.10. Cdigo smplex dual del Hamming[3, 1].

Su cdigo dual [3, 2] tiene por palabras del cdigo a

C = {000, 101, 011, 110}

que son todos los desplazamientos cclicos de x + 1 ms el vector nulo. La


representacin grfica en ejes coordenados de estas palabras del cdigo son
los vrtices de un tetraedro regular (figura 7.10). En n > 3 dimensiones, la
figura geomtrica resultante sera un smplex, un conjunto de n+1 puntos de
un hipercubo n-dimensional situados a la misma distancia (eucldea, adems
de Hamming) unos de otros. De ah el nombre de esta clase de cdigos.

Puesto que todos los vectores del cdigo no nulos tienen el mismo peso
Hamming, resulta sencillo escribir el polinomio enumerador de pesos del
dual:
m1
B(x) = 1 + (2m 1)x2 .

Y utilizando la identidad de MacWilliams (vase el apartado 6.10), obte-


nemos el polinomio enumerador del cdigo Hamming original de longitud
n = 2m 1:
 
(nk) n 1x
A(x) = 2 (1 + x) B
1+x
  n+1 !
1 x 2
(7.6)
= 2(nk) (1 + x)n 1 + n
1+x
 n1

= 2(nk) (1 + x)n + n(1 x2 ) 2 (1 x) .
234 Cdigos cclicos

Ejemplo 7.10. Tomemos m = 3. El polinomio enumerador de pesos del


cdigo dual del Hamming [7, 4] vale
B(x) = 1 + 7x4
pues, como se ha probado, todas las palabras del cdigo no nulas son de
peso 4. Sustituyendo n = 23 1 = 7 y n k = 3 en la frmula (7.6), el
polinomio enumerador de pesos del cdigo Hamming es
1 
A(x) = (1 x)7 + 7(1 x2 )3 (1 x) .
8
Desarrollando esta expresin y cancelando trminos comunes, se deduce que
A(x) = 1 + 7x3 + 7x4 + x7
lo que confirma una vez ms que el cdigo Hamming [7, 4] consta del vector
nulo, 7 vectores de peso 3, 7 vectores de peso 4 y un vector de peso 7.

7.8. Cdigos cclicos acortados

A menudo ocurre que no es posible encontrar un cdigo cclico con una


longitud o nmero de bits de informacin por bloque que se ajusten a las
condiciones en las que opera un sistema de transmisin de datos dado. Por
fortuna, es sencillo modificar un cdigo existente para adaptarlo a una lon-
gitud determinada.
En un cdigo cclico sistemtico C[n, k], considrense los vectores del
cdigo cuyos primeros l < k bits de informacin son nulos, correspondientes
a mensajes con sus l primeros bits a cero. Existen en total 2kl vectores
de esta forma, y es obvio que constituyen un subcdigo lineal de C. Si se
eliminan los l primeros bits de estas palabras del cdigo, que valen cero y
no aportan informacin alguna, se obtiene un conjunto de 2kl vectores que
forman un cdigo lineal binario [n l, k l]. Este cdigo se denomina cdigo
acortado, y no es en general un cdigo cclico. De todas formas, pese a no ser
cclico, el cdigo acortado posee, al menos, la misma capacidad detectora y
correctora de errores que el cdigo del que se deduce, porque sus secuencias
cdigo extendidas con l ceros son un subconjunto de las de aqul.
Las operaciones de codificacin y clculo del sndrome en un cdigo
acortado pueden llevarse a cabo con los mismos circuitos que se emplean
con el cdigo original, ya que los l ceros iniciales de los que se prescinde
no afectan al resultado de ninguno de esos dos procesos de clculo. Por el
contrario, la decodificacin con correccin o con captura de errores s precisa
de modificaciones en los circuitos que tengan en cuenta ahora la no ciclicidad
de las palabras del cdigo. No es difcil desarrollar los circuitos apropiados,
pero no se describirn aqu esas modificaciones.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 235

7.9. Cdigos cclicos irreducibles

Un cdigo cclico contiene a otro cuando el polinomio generador del de


mayor dimensin divide al del menor dimensin.

Teorema 7.16. Sea C1 un cdigo cclico de longitud n y polinomio genera-


dor g1 (x), y sea C2 un cdigo cclico de longitud n y polinomio generador
g2 (x);
C1 C2 g2 (x) | g1 (x).

Demostracin.

v(x) C1 g1 (x) | v(x) g2 (x) | v(x) v(x) C2 .

Diremos que un cdigo cclico es irreducible o mnimo si no contiene a


ningn otro cdigo cclico (salvo el vector 0). A la vista del teorema anterior,
los cdigos irreducibles son fciles de caracterizar.

Teorema 7.17. Sea Fq [x] el conjunto de todos los polinomios con coeficien-
tes tomados de un cuerpo de q elementos. Sea xn 1 = f1 (x)f2 (x) fs (x)
la descomposicin en factores irreducibles en Fq [x].

a) El cdigo cclico de polinomio generador xn 1/fi (x) es irreducible.

b) Fq [x]/xn 1 es el espacio vectorial suma directa de los cdigos cclicos


irreducibles.

Demostracin.

a) El nico polinomio al que xn 1/fi (x) divide es xn 1.

b) Los cdigos irreducibles son disjuntos dos a dos. Adems, puesto que
f1 (x), . . . , fs (x) son irreducibles, por el algoritmo de divisin eucldeo
s
X
1= ai (x)fi (x)
i=1

de donde se concluye que

hxn 1/f1 (x)i + hxn 1/f2 (x)i + + hxn 1/fs (x)i = Rn

en donde hg(x)i representa el cdigo cclico generado por g(x). Esto


es, cualquier vector de Rn se puede escribir de manera nica como
una suma de vectores de sus cdigos cclicos irreducibles.
236 Cdigos cclicos

Una consecuencia til de este teorema es la siguiente. Llamemos cdigo


complementario de un cdigo cclico al cdigo formado por la suma de todos
los cdigos irreducibles que no estn contenidos en C. El cdigo complemen-
tario satisface las condiciones

C + C 0 = Ln
C C 0 = {0}.

Si xn 1 = f1 (x) fs (x)fs+1 (x) fr (x) es la descomposicin de xn 1


en factores irreducibles sobre Fq [x], y el polinomio generador de C es g(x) =
f1 (x) fs (x), es claro que
r
X
C0 = hxn 1/fj (x)i = h(xn 1)/(fs+1 (x) fr (x))i .
j=s+1

Por tanto, el cdigo complementario tiene por polinomio generador a (xn


1)/h(x).

Notas bibliogrficas

La teora algebraica de los cdigos cclicos se desarroll desde finales de


los aos cincuenta, cuando comenzaron a investigarse los primeros cdigos
polinmicos de la clase BCH como extensiones de los Hamming binarios
[10]. Muchas de las contribuciones iniciales pertenecen a Asmuss et al. [2].
Adems de una presentacin exhaustiva de los aspectos bsicos, Pless y
Huffman [53, cap. 1 y cap. 11] ofrecen una discusin sobre algunas cuestio-
nes tericas irresueltas. El problema de la obtencin de la distancia de un
cdigo cclico, en particular, ha originado numerosas publicaciones, y en [68]
se presenta una manera unificada de abordar la deduccin de las cotas ms
conocidas. El mtodo de decodificacin por permutacin es original de Mac-
Williams [41]. Blahut [7, 8] y Lin y Costello [39] contienen amplio material
sobre los circuitos de codificacin y decodificacin de los cdigos cclicos.
Blahut [7, 8] tambin dedica amplio espacio a la caracterizacin espectral
de los cdigos cclicos, un enfoque que inicialmente formularon G. Solomon
y H. Mattson [44].
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 237

7.A. Cdigos cclicos, anillos e ideales

Los cdigos cclicos poseen una estructura algebraica simple y elegante, a


la que se llega sin ms que analizar las propiedades de la suma y el producto
de polinomios (mdulo xn 1) definidos sobre un cuerpo finito.
Sea Fq [x] el conjunto de polinomios en la variable x con coeficientes del
cuerpo GF(q). Fq [x] es un conjunto que, con las operaciones usuales de suma
y multiplicacin de polinomios, cumple las siguientes propiedades:

a) (Fq [x], +) es un grupo conmutativo; esto es, la suma de polinomios es


asociativa, conmutativa, posee elemento neutro y cualquier polinomio
tiene simtrico.
b) El producto de polinomios es asociativo y conmutativo.
c) El producto de polinomios es distributivo respecto de la suma.

Considrense slo estas propiedades y hgase abstraccin de la natura-


leza concreta de los elementos del conjunto soporte.

Definicin 7.8 (Anillo). Sea R un conjunto de elementos y sean (+, ),


suma y producto, dos operaciones internas definidas sobre pares de ele-
mentos de R. Si

a) (R, +) es un grupo conmutativo


b) El producto es asociativo
c) El producto es distributivo respecto de la suma

entonces la estructura algebraica (R, +, ) se denomina anillo.

Cuando para el producto existe elemento unidad, un anillo se llama


unitario; cuando el producto es una operacin conmutativa, se dice que el
anillo es conmutativo. Fq [x] es un anillo unitario y conmutativo. En general,
si F es un cuerpo, el conjunto F [x] de polinomios con coeficientes de F
junto con las operaciones de suma y producto entre polinomios es un anillo
unitario, que ser conmutativo cuando lo sea F .
Vase que los axiomas que definen un anillo son menos restrictivos que
los que definen un cuerpo nada ms que en lo referente al producto, pues no
se exige que un elemento posea inverso. Pueden existir en un anillo unitario,
no obstante, ciertos elementos para los que s se disponga de inverso, los
cuales se designan entonces como elementos invertibles: en el caso de Fq [x]
los nicos elementos invertibles son los polinomios constantes distintos de
cero. Los elementos invertibles de un anillo unitario forman grupo para la
238 Cdigos cclicos

operacin producto. Si dos elementos a y b no nulos son tales que ab = 0,


se llaman divisores de cero. Por ejemplo, el conjunto de las matrices reales
de orden n es un anillo con divisores de cero para las operaciones ordinarias
de suma y producto entre matrices. Un anillo (no trivial) sin divisores de
cero es un dominio de integridad (por ejemplo, el conjunto de los nmeros
enteros), y en l es vlida la regla de simplificacin para el producto: ac =
bc a = b cuando c 6= 0. Todo dominio de integridad compuesto por un
nmero finito de elementos es un cuerpo.
Fijo (x) Fq [x], dos polinomios a(x) y b(x) de Fq [x] son congruentes
si proporcionan el mismo resto al ser divididos por (x). Es fcil compro-
bar que la relacin de congruencia es una equivalencia compatible con las
operaciones de suma y producto definidas en Fq [x]. El conjunto cociente de
esta relacin se simboliza por Fq [x]/(x) y consta de las clases

[r(x)] = {r(x) + a(x)(x), a(x) Fq [x]}

de representante r(x) Fq [x], siendo r(x) un polinomio cualquiera de gra-


do menor que (x). Las operaciones de suma y producto inducidas por la
congruencia en Fq [x]/(x) se definen, para cualesquiera operandos a(x) y
b(x), por

a(x) + b(x) (a(x) + b(x)) mod (x)


a(x) b(x) (a(x)b(x)) mod (x)

Consisten simplemente en tratar a los operandos como polinomios ordinarios


de Fq [x] y en reducir el resultado mdulo (x). Por consiguiente, satisfacen
las mismas propiedades que la suma y el producto de Fq [x].

Teorema 7.18. (x) Fq [x], (Fq [x]/(x), +, ) es un anillo unitario con-


mutativo.

La demostracin del siguiente teorema se apoya en la unicidad de la


factorizacin de polinomios por medio del algoritmo de divisin eucldeo,
pero se pospone hasta el captulo 9.

Teorema 7.19. (Fq [x]/(x), +, ) es un cuerpo conmutativo si y solamente


si (x) Fq [x] es irreducible en Fq [x].

Si un subconjunto S 6= de un anillo A es cerrado para las operaciones


de suma y producto, es decir, si

s1 , s2 S, s1 s2 S, s1 s2 S, s2 s1 S

entonces S es un subanillo de A.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 239

En muchos anillos se da una situacin ms general: para algunos subani-


llos suyos ocurre que el producto entre un elemento del anillo y un elemento
del subanillo pertenece tambin al subanillo.

Definicin 7.9 (Ideal). Sea (A, +, ) un anillo e I 6= un subconjunto


suyo. Si

s1 , s2 I, s1 s2 I
a A, i I, a i I, i a I

entonces (I, +, ) es un ideal del anillo A.

Por ejemplo, para p fijo, el conjunto p = {np : n } de mltiplos


enteros de p es un ideal de .
Un tipo particularmente sencillo de ideal es un ideal principal, compuesto
por todos los mltiplos de un elemento i del ideal. Es habitual designar a ese
elemento como generador y representar el ideal por hii. Cuando todos los
ideales de un anillo son principales, se tiene un anillo de ideales principales.
De las definiciones anteriores resultan las siguientes proposiciones.

Teorema 7.20. Fq [x]/xn 1 es un anillo de ideales principales.

Demostracin. Cualquier ideal I Fq [x]/xn 1 debe contener un poli-


nomio no nulo g(x) de grado mnimo. Si a(x) I, entonces escribiendo

a(x) = b(x)g(x) + r(x) r(x) = a(x) b(x)g(x) I

vemos que necesariamente r(x) = 0 y, por tanto, I = hg(x)i.

Teorema 7.21. Un cdigo cclico C[n, k] sobre GF(q) es un ideal (principal)


del anillo de polinomios Fq [x]/xn 1.

Demostracin. Es obvio que C[n, k] Fq [x]/xn 1. Adems,

p1 (x), p2 (x) C[n, k], p1 (x) p2 (x) C[n, k]

y p(x) C[n, k], a(x) Fq [x],

grado de a(x)
X
a(x) p(x) = p(x) a(x) = ai p(i) (x) C[n, k]
i=0

de suerte que C[n, k] es un ideal de Fq [x]/xn 1.


240 Cdigos cclicos

Teorema 7.22. Si C a es el cdigo acortado obtenido al eliminar los pri-


meros l < k smbolos de un cdigo cclico C[n, k], entonces C a es un ideal
de Fq [x]/f (x), para cierto f (x) Fq [x]. Recprocamente, un ideal del anillo
Fq [x]/f (x) es un cdigo cclico acortado.

Demostracin. Sea v(x) C a un vector del cdigo acortado y sea f (x)


una palabra de C de grado n l. Entonces
(
xv(x), si grado(xv(x)) < n l
xv(x) mod f (x) =
xv(x) f (x), si grado(xv(x)) = n l.
En cualquiera de los dos casos, grado(xv(x) mod f (x)) < n l, y por tanto
xv(x) mod f (x) C a , ya que es una palabra del cdigo con los l primeros
smbolos a cero. Esto prueba que C a es un ideal de Fq [x]/f (x).
Recprocamente, si f (x) es cualquier palabra del cdigo de grado nl de
C, e I un ideal de Fq [x]/f (x), el menor ideal que contiene a los polinomios
I = {xj i(x) mod xn 1 : i(x) I, j 0}
es un ideal de Fq [x]/xn 1 que contiene a f (x), o sea un cdigo cclico del
cual I es un cdigo acortado.

Ejemplo 7.11. A partir del cdigo cclico binario [7, 3] generado por g(x) =
x4 + x3 + x2 + 1 se obtiene el cdigo recortado [6, 2]
C a = {000000, 111010, 100111, 011101}
= {0, x5 + x4 + x3 + x, x5 + x2 + x + 1, x4 + x3 + x2 + 1},
un conjunto de polinomios del cual el mnico de menor grado, x4 +x3 +x2 +1,
es generador, porque
x5 + x4 + x3 + x = x(x4 + x3 + x2 + 1)
x5 + x2 + x + 1 = (x + 1)(x4 + x3 + x2 + 1).
Pues bien, si f (x) = a(x)(x4 + x3 + x2 + 1) es un polinomio binario de
grado 6, C a es un ideal de GF(2)[x]/f (x). Por ejemplo, para f (x) = x2 (x4 +
x3 + x2 + 1) = x6 + x5 + x4 + x2 , se tiene
x(x4 + x3 + x2 + 1) mod f (x) = x5 + x4 + x3 + x C a
x(x5 + x4 + x3 + x) mod f (x) = 0 C a
x(x5 + x2 + x + 1) mod f (x) = x5 + x4 + x3 + x C a
lo que prueba que C a es un ideal. Observe que xj C a = 0 mod f (x) para
j 2. Para finalizar, compruebe que
hg(x)i = C a x C a x2 C a x3 C a .
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 241

n Factorizacin (en octal)


1 6
7 6.54.64
9 6.7.444
15 6.7.46.62.76
17 6.471.727
21 6.7.54.64.634.724
23 6.5343.6165
25 6.76.4102041
27 6.7.444.4004004
31 6.45.51.57.67.73.75
33 6.7.4522.6106.7776
35 6.54.64.76..57134.72364
39 6.7.57074.74364.77774
41 6.5747175.6647133
43 6.47771.52225.64213
45 6.7.46.62.76.444.40044.44004
47 6.43073357.75667061
49 6.54.64.40001004.40200004
51 6.7.433.471.637.661.727.763
55 6.76.7776.5551347.7164555
57 6.7.5604164.7565674.7777774
63 6.7.54.64.414.444.534.554.604.634.664.714.724
127 6.406.422.436.442.472.516.526.562.576.602.626.646.
652.712.736.742.756.772

Tabla 7.7. Factorizacin de xn 1 en polinomios binarios irreducibles


para n 63 y n = 127. Los factores de los polinomios de exponente
par, x2m 1, no se han incluido, ya que x2m 1 = (xm 1)2 . Tampoco
aparece la factorizacin de algunos polinomios cuyo exponente n es un
nmero primo porque para ellos es xn 1 = (x 1)(xn1 + + 1),
con ambos factores irreducibles. La representacin de los factores se
ha codificado en octal, con los trminos de menor grado a la izquier-
da, y el punto actuando de separador de los factores. As, por ejem-
plo, la segunda entrada en la tabla significa que 1 + x7 = 6.54.64 =
110.101100.110100(en binario) = (1 + x)(1 + x2 + x3 )(1 + x + x3 ).
CAPTULO 8

Protocolos de retransmisin

En un sistema de comunicaciones los cdigos de control de errores se


pueden utilizar cuando menos de dos formas distintas:

Como cdigos correctores de errores. Los sistemas de transmisin de


datos concebidos para operar con tcnicas de correccin de errores
en recepcin (tcnicas FEC, Forward Error Correction) intentan de-
terminar los errores producidos, y corregirlos si los hubiera, en cada
bloque de bits recibido. En caso de no poder hacerlo, la decodificacin
del mensaje es incorrecta y se entregan datos equivocados en el punto
de destino. Para que la probabilidad de este evento se mantenga en
unos lmites tolerables, se requiere un nmero elevado de bits de re-
dundancia por bloque (alrededor de dos por cada bit de informacin)
que permitan asegurar la correccin de suficientes patrones de error.
El uso de las tcnicas FEC exige, por tanto, equipos de codificacin y
decodificacin con una capacidad computacional grande.
Como cdigos de deteccin de errores. Con este modo de operar, cada
vez que el receptor detecta un error en un bloque de bits, solicita al
emisor la retransmisin del bloque afectado, envindole una seal por
un canal de retorno. Por lo tanto, la nica posibilidad de que el destino
obtenga datos errneos con esta clase de tcnicas de peticin autom-
tica de retransmisin (tcnicas ARQ, Automatic Repeat reQuest) es
que falle la deteccin de la presencia de errores. La ventaja fundamen-
tal de este esquema es, claro est, que se requiere menor redundancia
por cada smbolo de la fuente para la deteccin que para la correccin
de los posibles fallos. A cambio, algunos datos hay que transmitirlos
ms de una vez. Tampoco es una tcnica posible en todos los siste-
mas de telecomunicaciones. En particular, no sirve si no hay canal de

243
244 Protocolos de retransmisin

retorno o si los requisitos temporales impiden utilizarlo, como sucede


por ejemplo cuando hay que transmitir o reproducir informacin en
tiempo real.

El uso de las tcnicas ARQ plantea la necesidad de definir un conjunto de


normas para determinar en qu casos y cundo pedir (el destino) o generar
(la fuente) las retransmisiones. Tal conjunto de reglas lgicas ha de ser:

Completo: debe prever todos los casos que puedan producirse.

Coherente: no debe haber reglas contradictorias.

El conjunto de reglas lgicas, convenios de representacin y procedimien-


tos operativos que gobiernan el intercambio de datos entre dos entidades
(sean ya equipos de telecomunicaciones, ya usuarios) se denomina protoco-
lo. Puesto que se trata, en lo fundamental, nada ms que de una secuencia de
instrucciones que especifica las acciones coordinadas del emisor y del recep-
tor, tambin se podra definir un protocolo como un algoritmo distribuido,
con la importante particularidad aadida de que los protocolos operan en
canales que presentan errores de transmisin. En general, los algoritmos dis-
tribuidos son ms difciles de comprender y de concebir que los algoritmos
secuenciales clsicos.
Este captulo presenta los mecanismos de operacin de los protocolos
de retransmisin. Se tratan, en primer lugar, las diversas estrategias ARQ
para el control de los errores, analizando sus reglas de funcionamiento y
sus propiedades lgicas. Despus, se cuantifica un importante parmetro de
prestaciones: la utilizacin eficaz de la capacidad de transmisin.

8.1. Estrategias ARQ

El objetivo de una estrategia ARQ es el de proporcionar a los extremos


de origen y de destino la abstraccin de un canal fiable, es decir, de un
canal capaz de preservar la integridad y la secuencia de los mensajes que se
transmiten a travs de l.
Para nuestros propsitos, se puede suponer que la informacin generada
por la fuente estar representada como una secuencia de bits de contenido
y longitud arbitrarios. Pero el emisor no va a transmitir esta cadena como
un grupo contiguo e ininterrumpido de bits, sino que dividir la secuencia
de bits en fragmentos ms pequeos, a los que aadir cierta informacin
adicional de control (por ejemplo, bits de redundancia), y transmitir cada
uno de los fragmentos individualmente. Estas unidades de transmisin de
datos, compuestas por bits de informacin de la fuente (datos) y bits de
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 245

control, reciben el nombre de tramas. En cuanto que secuencias de bits a


las que se aaden smbolos redundantes para el control de errores, lo que
aqu hemos definido como tramas son, por tanto, palabras de un cdigo de
control de errores dado.
La divisin de los mensajes en tramas de longitud acotada, por lo general
de unos pocos cientos o miles de bits, obedece a varias razones:

a) La probabilidad de un error de transmisin en un bloque de bits au-


menta casi proporcionalmente a su longitud; por lo que es muy poco
probable transmitir una secuencia larga de bits sin errores, salvo si se
emplea un cdigo de canal sofisticado, sacrificando con ello la eficien-
cia.

b) En algunos casos, el emisor ha de esperar a que la fuente genere todos


los bits de datos de la trama antes de construirla y proceder a su
transmisin; por lo que mayor nmero de bits por trama implica mayor
retardo.

c) Los sistemas de transmisin suelen imponer un lmite mximo a la


longitud de un bloque de bits consecutivos que pueden enviar, nor-
malmente para no incurrir en problemas de sincronizacin entre los
equipos de transmisin y recepcin.

Adoptaremos, por conveniencia, la hiptesis de que el receptor es capaz


de detectar todas las tramas recibidas con algn error. Es conocido que la
deteccin de todos los errores no es una suposicin realista. Se justifica, en
todo caso, porque el mbito de la presente discusin se limita a probar que
las estrategias ARQ funcionan con correccin y eficiencia, excepto cuando
hay errores indetectables.
Se dice que una estrategia funciona correctamente cuando el usuario o
el proceso destino obtienen una y slo una copia sin errores de cada trama
enviada; y se dice que la eficiencia es mayor cuando el tiempo que el canal
permanece ocupado por tiempos de espera y retransmisiones innecesarias
es pequeo. Precisaremos estos conceptos ms adelante. De momento es
suficiente con sealar que se trata de dos propiedades independientes, que
es posible disociar. Porque, para determinar si un protocolo es correcto,
basta con estudiar sus propiedades lgicas, prescindiendo de la cantidad
de tiempo que transcurre entre una accin y otra; pero, para calcular la
eficiencia, es preciso evaluar el tiempo que consume cada accin o realizacin
del protocolo, sin que sea preciso examinar por completo el significado de
cada una de las acciones elementales.
Por lo dems, el modelo de canal punto a punto que se considera en este
captulo se basa en las siguientes hiptesis:
246 Protocolos de retransmisin

1. Provoca errores y/o prdidas de algunas tramas. Cuando se detecta


error en una trama, el receptor no hace ningn intento de corregirlas;
simplemente las ignora y solicita su retransmisin. Las prdidas ocu-
rren cuando se interrumpe el paso de los bits en el canal o cuando, por
ejemplo, el receptor no delimita correctamente el principio o el final
de alguna trama. A efectos del receptor, una trama perdida es en todo
equivalente a una trama no recibida.

2. Entrega al nodo de destino todas las tramas exactamente en el mismo


orden en que fueron transmitidas.

3. Afecta a cada trama con un retardo de propagacin variable aunque


finito. El retardo de propagacin es el tiempo que la seal electro-
magntica tarda en recorrer el enlace y su valor es tp = vLp si L es la
longitud fsica del medio de transmisin y vp la velocidad de propa-
gacin de la seal. Sin embargo, la coherencia lgica de las reglas de
retransmisin que se van a explicar no va a depender de este tiempo,
de modo que, por generalidad, supondremos que el retardo de propa-
gacin es arbitrario, que no tiene por qu ser idntico para todas las
tramas y que est acotado.

Al margen de la idoneidad de estas hiptesis, conviene subrayar que


conllevan una generalizacin de cualquier canal de comunicaciones punto a
punto porque eliminan todos los requisitos temporales. Ms all de conser-
var el orden total de las tramas recibidas y mantener la causalidad,1 no se
supone ningn sincronismo entre los instantes de comienzo de transmisin
de las tramas, ni entre stos y los instantes en que se reciben. En otras pala-
bras, las estrategias ARQ no deben conducir a errores lgicos de operacin,
cualesquiera que sean los retardos que introduzcan el emisor, el receptor o
el canal, debiendo ser, por lo tanto, absolutamente independientes de las
caractersticas de ste ltimo.
Para apreciar el alcance de este requisito, conviene reparar en que la
naturaleza de la comunicacin entre dos puntos conectados por un medio
de transmisin directo es doblemente asncrona. Por una parte, el retar-
do desde que una trama comienza a ser transmitida hasta que es recibida
completamente libre de errores es, como se ver, variable, debido a la posi-
bilidad de tener que retransmitirla. Y, por otra parte, el intervalo de tiempo
que transcurre entre la transmisin de dos tramas consecutivas es tambin
variable, como consecuencia del carcter aleatorio segn el cual una fuente

1 Formalmente: para cualesquiera dos tramas p y p que se transmiten, respectiva-


1 2
mente, en los instantes de tiempo t1 y t2 (t1 < t2 ), y se reciben en los instantes t01 y t02 ,
siempre ocurre que t01 t1 , t02 t2 y t02 > t01 .
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 247
!"!#
 

$  &%

  
  

Figura 8.1. Modelo de transmisin de tramas.

produce informacin.2 Planteado en trminos genricos, el problema final


consiste en convertir un canal digital sometido a una tasa de error por bit
inaceptable en un canal digital virtual, asncrono y libre de errores.
La figura 8.1 resume en un diagrama de tiempos esquemtico las carac-
tersticas del canal sobre el que operan las estrategias de retransmisin cuya
descripcin se acomete en los siguientes apartados.

8.1.1. Parada y espera

El mecanismo ms simple de retransmisin se denomina parada y espera.


Su principio de funcionamiento es que el transmisor se asegure de que una
trama haya sido recibida correctamente antes de transmitir la siguiente. Las
reglas bsicas de operacin son sencillas:

R1 El emisor transmite una trama y permanece a la espera de recibir una


confirmacin por parte del receptor.

R2 Por cada trama recibida, el destino responde con un mensaje de con-


trol denominado asentimiento, que indica al emisor si en la trama se
han detectado o no errores. El receptor acepta todas las tramas en
las que no detecta error, y descarta (elimina o prescinde de) las de-
ms. Los asentimientos que informan de algn error de transmisin se
denominan asentimientos negativos, en tanto que los que sealan la
ausencia de error reciben el nombre de asentimientos positivos.

R3 Si el emisor recibe un asentimiento negativo, entonces retransmite la


ltima trama enviada. Si el asentimiento es positivo, transmitir la
siguiente trama cuando disponga de ella.

2 A este respecto puede argumentarse que todas las fuentes generan informacin a tasa

variable, y que es slo el proceso de codificacin de fuente el que convierte los datos en
una secuencia de smbolos a intervalos regulares. De hecho, los codificadores modernos de
seales de voz o vdeo generan secuencias de bits con velocidad no constante, reflejando
as el comportamiento dinmico de la seal.
248 Protocolos de retransmisin

Este elemental procedimiento de intercambio de tramas y confirmaciones


funciona perfectamente siempre y cuando no se pierda ninguna trama de
datos ni de asentimiento. Ante un suceso as, y en concordancia con las reglas
anteriores, ambos extremos permaneceran indefinidamente a la espera de un
evento que no ocurrira: el emisor aguardara una respuesta que no llegar,
mientras que el destino no recibir jams la trama que espera. Una situacin
como la descrita, en la que dos (o ms si los hubiera) participantes en un
sistema distribuido no progresan por estar a la espera de que se realicen
acciones externas, se conoce como situacin de bloqueo (deadlock ).
Una posibilidad para la ruptura de las situaciones de bloqueo es el uso de
temporizadores en el extremo emisor. Si, agotado un tiempo de espera tras
finalizar la transmisin de una trama, el emisor no ha recibido ningn asen-
timiento vlido, entonces supone que se han perdido los datos y retransmite
la ltima trama. Por supuesto, un valor elevado de temporizacin desper-
dicia tiempo de espera, mientras que un valor demasiado pequeo genera
retransmisiones innecesarias. La seleccin de un valor ptimo para un canal
dado depende de mltiples factores y no es, en general, una tarea simple.
Pero es justamente la nueva posibilidad de efectuar retransmisiones,
combinada con la presencia de errores en el canal, la causa que puede inducir
a confusin al receptor, y ello por dos motivos:

Porque el nodo receptor no es capaz de distinguir entre una trama


nueva y la retransmisin de una trama antigua.

Porque el emisor asocia un asentimiento con la ltima trama de datos


enviada.

En la figura 8.2 se han representado las dos causas posibles de ambige-


dad: la incapacidad de distinguir entre una trama nueva y la retransmisin
de la anterior, y la imposibilidad de asociar un asentimiento con la trama
de datos que lo gener. En el escenario de la parte izquierda de la figura,
el receptor no tiene forma de averiguar que la segunda trama no es sino
una retransmisin de la primera trama recibida, causada por el vencimiento
del temporizador. Comparar los datos de ambas tramas no sirve, ya que
es perfectamente posible que el proceso emisor enve dos mensajes con el
mismo contenido. En el escenario de la parte derecha de la figura, el emisor
desconoce si el ltimo asentimiento recibido corresponde a la ltima trama
enviada o a una trama anterior, puesto que los asentimientos se pueden
perder o pueden llegar con retraso.
En ambos casos el fallo se soluciona numerando secuencialmente tanto
las tramas de datos como los asentimientos, de forma que a todas las trans-
misiones de una misma trama se les asigne el mismo nmero de secuencia,
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 249
!" !" !$# !$# %&!'






(-)+   (*),+ (*),+

Figura 8.2. Problemas potenciales en parada y espera cuando las tra-


mas de datos y los asentimientos no estn numerados.

mientras que tramas distintas llevan siempre nmeros de secuencia distin-


tos. La numeracin de las tramas de datos permite al receptor descubrir
tramas duplicadas, y la numeracin de los asentimientos sirve al emisor pa-
ra determinar a qu trama de datos corresponde cada uno. El nmero de
secuencia acta en realidad como un nombre, un identificador nico de cada
trama de datos o asentimiento que establece una asociacin biunvoca entre
ellas.
Ahora bien, en parada y espera, el nodo receptor slo necesita diferenciar
entre una trama i y la anterior, i1, por cuanto es imposible recibir la trama
i+1 mientras el receptor no confirme la i. Si el receptor est a la espera de la
trama i es porque ha recibido correctamente y ha confirmado la trama i 1.
Pero antes de haber transmitido por primera vez la trama i 1, el emisor
debe haber recibido la confirmacin de la i2. De modo que al receptor slo
pueden llegar o bien la trama i que se espera, o bien una retransmisin de
la trama i 1 si en el emisor no consta an el ltimo asentimiento enviado.
Razonando anlogamente, el nodo emisor slo debe distinguir entre el
asentimiento de la ltima trama de datos enviada, digamos la i, y el de la
penltima, i1. Es imposible recibir un asentimiento de la trama i2, pues,
para poder transmitir la i-sima, el emisor necesita antes un asentimiento
de la i 1.
En definitiva, bastan dos nmeros de secuencia (0 y 1, un nico bit) tan-
to en las tramas de datos como en los asentimientos para tener la seguridad
de que ambos extremos detectan todas las tramas duplicadas por retrans-
misin. De ah que parada y espera se conozca tambin como protocolo de
bit alternante.
En las implementaciones reales los asentimientos suelen llevar como n-
mero de secuencia el correspondiente a la siguiente trama de datos que el
nodo destino espera recibir. Se trata nada ms que de un convenio semnti-
co, con un importante corolario prctico. De esta manera, en el emisor, un
asentimiento con el mismo nmero de secuencia que el de la ltima trama
de datos enviada se interpreta como un asentimiento negativo, es decir, el
nmero de secuencia que transporta un asentimiento es siempre el nmero
250 Protocolos de retransmisin

de trama que el receptor solicita.


Tras incorporar estas modificaciones a las reglas originales, el funciona-
miento de los nodos con parada y espera es como sigue:

R1 El emisor transmite una trama con el siguiente nmero de secuencia en


mdulo-2, inicia un temporizador y permanece a la espera de recibir
una confirmacin por parte del receptor.

R2 Si la trama se recibe correctamente, el receptor la acepta y responde


con un asentimiento con nmero de secuencia igual al de la siguiente
trama que espera recibir. Si se detectan errores, el receptor descarta la
trama y responde con un asentimiento con nmero de secuencia igual
al de la trama que espera recibir.

R3 Si el emisor recibe un asentimiento con nmero de secuencia igual


al de la ltima trama que envi, o expira el temporizador sin haber
obtenido respuesta, entonces retransmite la ltima trama; si recibe un
asentimiento con nmero de secuencia distinto al de la ltima trama
enviada, incrementa el nmero de secuencia y transmite la siguiente
trama, en caso de disponer de ella.

Hay en estas reglas varios aspectos deliberadamente indefinidos. No in-


dican en qu forma se han de representar en la trama los asentimientos ni
los bits de control, ni tampoco sealan el valor del intervalo de temporiza-
cin. Simplemente es notorio que la especificacin de estas caractersticas
no afecta a la forma de operar de la estrategia, aunque, como es natural, un
protocolo real debe definir con precisin estos detalles.
Pese a que una prueba formal completa es muy laboriosa, se puede com-
probar de manera intuitiva que ningn intercambio de tramas compatible
con las reglas anteriores conduce a fallos de operacin. Sin embargo, en
general, la dificultad de comprensin de un algoritmo distribuido aumenta
notablemente con el nmero de condiciones lgicas impuestas a cada par-
ticipante. Por ello, en protocolos menos elementales no cabe confiar a la
intuicin la tarea de deducir la total coherencia lgica del comportamiento
del sistema, y ms an cuando la descripcin de este comportamiento suele
hacerse en un lenguaje poco preciso como es el lenguaje natural.
Asegurarse de la correccin de un protocolo significa, como mnimo, ga-
rantizar dos propiedades fundamentales de comportamiento, una de avance
y otra de coordinacin. La primera de ellas es la ausencia de bloqueo, es
decir, la inexistencia de algn estado en el que ninguno de los participan-
tes del sistema pueda evolucionar. La nocin de bloqueo debe entenderse
de manera amplia: tampoco es tolerable la existencia de ciclos improduc-
tivos, aqullos que consisten en una sucesin repetitiva de estados en los
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 251

cuales no se produce ningn avance neto del algoritmo. La segunda condi-


cin debe ser la certeza de que, desde cualquier estado inicial vlido, todas
las evoluciones posibles del sistema tambin son vlidas, es decir, llevan a
estados vlidos de acuerdo con el comportamiento global que se desea. La
verificacin de ambas propiedades en un sistema complejo es un problema
que se aborda sistemticamente mediante mtodos de especificacin formal,
que son lenguajes matemticos algebraicos o lgicos (o, ms a menudo, una
combinacin de ambos tipos) creados para facilitar el razonamiento simb-
lico y la deduccin automtica. Existen multitud de tcnicas de verificacin
y validacin formal de protocolos (tales como la teora de autmatas finitos,
el lgebra de procesos, diferentes clases de lgica o las redes de Petri) con
diferente expresividad, pero este campo de estudio es muy amplio y excede
con mucho el mbito del presente texto. El lector interesado puede consultar
alguna obra especializada, como [33].

8.1.2. Envo continuo con rechazo simple

Parada y espera resulta ser una estrategia poco eficaz porque el tiempo
de espera por un asentimiento no se utiliza para transmitir nuevas tramas.
Este tiempo es, como mnimo, la suma del tiempo de transmisin del asen-
timiento ms dos veces el retardo de propagacin de la seal elctrica por
el canal,3 y puede llegar a ser relativamente grande frente al tiempo de
transmisin de una trama de datos. En la estrategia de envo continuo con
rechazo simple se elimina esa restriccin superflua: el emisor puede transmi-
tir varias tramas consecutivas sin haber recibido todava el asentimiento de
la primera. O, expresado de manera equivalente, al emisor le est permitido
tener varias tramas pendientes de asentimiento.
El receptor opera, en esencia, del mismo modo que en parada y espera:
acepta las tramas recibidas sin error en el orden correcto (en nmero de
secuencia creciente) y responde individualmente a cada una con un asen-
timiento cuyo nmero indica el nmero de secuencia de la siguiente trama
esperada. En la prctica, para prevenir las retransmisiones originadas por
posibles prdidas de los asentimientos, se adopta como convenio que una
trama de asentimiento con nmero de secuencia i confirma no slo la i 1
de datos sino tambin todas las anteriores. Segn este criterio, los asenti-
mientos positivos son acumulativos.
Un parmetro n 1 limita el nmero mximo de tramas pendientes de
confirmacin en el emisor. As, cuando i es el nmero de secuencia recibido
en el ltimo asentimiento, el emisor podr transmitir las tramas con los n-
3 Cuando en el enlace hay transmisin de datos en ambos sentidos, el tiempo de espera

puede llegar a ser hasta dos veces el tiempo mximo de transmisin de una trama de
datos ms el retardo de propagacin de ida y vuelta.
252 Protocolos de retransmisin
 !#"$
% !&('*)+&()-. , 
 
 
  
     

   
H . " .#I 

H . " .#J
/021DC /0214B /021435/0617 /E021GF 8:9<;-=?>@9*A

Figura 8.3. Estrategia de retransmisin de envo continuo con rechazo


simple: operacin sin errores de transmisin.

meros de secuencia i, i+1, . . . , i+n1. El intervalo de nmeros de secuencia


permisibles [i, i + n 1] se puede visualizar como una ventana deslizante de
emisin, un rango de nmeros de secuencia vlidos cuyos extremos inferior y
superior se modifican cada vez que se recibe un asentimiento, de acuerdo con
la siguiente regla: si el nmero del ltimo asentimiento sin errores recibido
es j i, la ventana de emisin se desplaza de inmediato a [j, j + n 1].
En caso de que el emisor haya transmitido n tramas consecutivas y no
disponga del asentimiento de la primera de ellas, debe retroceder y trans-
mitir de nuevo toda la ventana, comenzando por la primera trama sin con-
firmar. Este procedimiento es la razn de que el rechazo simple se conozca
en la literatura anglosajona como go-back-n.
El receptor descarta todas las tramas con errores y todas aqullas cuyo
nmero de secuencia est fuera de orden, aun si son correctas. Puede decirse,
por tanto, que su ventana de recepcin es de tamao uno.4
En cuanto a la numeracin, se demuestra que, para evitar fallos de pro-
tocolo, es condicin necesaria y suficiente numerar tramas y asentimientos
mdulo m, siendo m > n. Porque si el nmero de secuencia de la trama de
datos que el receptor espera es j, entonces ste debe haber recibido correc-
tamente y debe haber confirmado todas las tramas hasta la j 1. Y, para
que eso suceda, el extremo inferior de la ventana de emisin debe valer al
menos j n, porque de otro modo el emisor no podra haber transmitido la
trama con nmero de secuencia j 1. Y el extremo inferior podr valer como
mximo j, puesto que el receptor todava no ha recibido correctamente la
trama con nmero j y no ha podido asentirla.
As pues, el extremo inferior de la ventana de emisin estar en el rango
[j n, j], y el emisor podr transmitir n tramas consecutivas numeradas a
partir de l. Para que sepa sin ambigedad a qu trama de datos corresponde
el ack-j, necesita un mnimo de n+1 nmeros de secuencia, de modo que el
4A este respecto, la estrategia de parada y espera es un caso particular del envo
continuo con rechazo simple con ventana de emisin de tamao 1.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 253
 
 
  
   !"$#  ?@

% & ' ( & ' (


)  + -
 *
)  +,
78:9<; 78=9>; 78:9<; 78=9>; 78=9BA .0/+1$2435/ 6
Figura 8.4. Estrategia de retransmisin de envo continuo con rechazo
simple. Efecto de los errores en las tramas de datos.

extremo inferior de la ventana de emisin no comprenda nunca dos nmeros


de secuencia iguales. Para ello es suficiente numerar tramas y asentimientos
mdulo-m, siendo m > n. En realidad ni siquiera es necesario que se trate
de nmeros correlativos, sino que bastara con cualquier secuencia peridica
de m > n nmeros.

Ejemplo 8.1. Para constatar que la estrategia de retransmisin con envo


continuo y rechazo simple es incorrecta cuando el mdulo de la numeracin
secuencial de las tramas es menor o igual que el tamao de la ventana,
considrese, por ejemplo, m = n y la siguiente secuencia de eventos ordenada
en el tiempo:

1. El emisor transmite las tramas de datos 0, ..., n 1, y se detiene a la


espera de su confirmacin.

2. Todas las tramas de datos se reciben sin error, son aceptadas y el


receptor responde con los asentimientos ack-1, ack-2, ..., ack-0. El
receptor queda a la espera de la prxima trama de datos, cuyo nmero
de secuencia ser 0.

3. Todos los asentimientos se pierden.

4. Acabado el plazo de temporizacin en el emisor, se retransmiten las


tramas de datos 0, ..., n 1.

5. Las tramas retransmitidas se reciben sin error y en secuencia, y son


aceptadas por el receptor como tramas de datos nuevas.

Es evidente que el fallo se debe a que el nmero de secuencia de la trama


que se espera recibir pertenece a la ventana que el emisor todava no ha
desplazado.
254 Protocolos de retransmisin

Reuniendo todas las piezas descritas hasta aqu, procede especificar de


forma ms precisa las reglas de operacin de emisor y receptor en la estra-
tegia de rechazo simple con tamao de ventana n 1 y numeracin mdulo
m > n. El emisor utiliza dos variables internas, NSinf y NSsup : NSinf repre-
senta el menor nmero de secuencia de las tramas que no han sido an
asentidas; NSsup indica el nmero de secuencia que le corresponder a la
prxima trama de datos nueva. El receptor necesita slo una variable, NA,
el nmero de secuencia del prximo asentimiento.
En el emisor:

1. Inicialmente, las variables NSinf y NSsup deben valer 0.


2. Si la ventana no se ha agotado, (NSsup NSinf ) mod m < n, y hay
una trama nueva pendiente de transmisin, asignarle el nmero NSsup ,
transmitir la trama e incrementar NSsup en una unidad, (NSsup +1)
mod m.
3. Si se recibe un asentimiento libre de errores con nmero de secuencia
NA dentro de la ventana,
(NA NSinf ) mod m (NSsup NSinf ) mod m,
entonces actualizar el extremo inferior de la ventana, NSinf = NA.
4. Si hay tramas pendientes de confirmacin (NSinf 6= NSsup ), retrans-
mitirlas en orden creciente mdulo-m de nmero de secuencia.

Los pasos 2, 3 y 4 pueden ejecutarse en cualquier orden.


En el receptor:

1. Inicialmente, la variable NA debe valer 0.


2. Si se recibe una trama sin errores con nmero de secuencia igual a
NA, aceptarla. Incrementar NA a (NA +1) mod m y transmitir un
asentimiento con este nmero.
3. En otro caso, descartar la trama recibida y enviar un asentimiento con
nmero de secuencia NA.

El incremento de eficiencia con esta estrategia en relacin con la de


parada y espera depende cualitativamente del cumplimiento de cuatro con-
diciones:

Que el tiempo que tarda en llegar un asentimiento sea grande en re-


lacin al tiempo necesario, en media, para transmitir una trama de
datos. As, durante ese intervalo cabe la posibilidad de enviar un n-
mero de tramas elevado.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 255
 
   
 
       
*

! " # $ ! " #
%  ' )
 &
%  '(
5687:9 5687<; 5=6>7@? 5687=A +-,./102,43
Figura 8.5. Estrategia de retransmisin de rechazo simple: efecto de
los errores en los asentimientos.

Que la ventana no se agote antes de recibir el ack de la primera trama,


de forma que, en ausencia de errores de transmisin, el emisor no
deba retroceder nunca. El diseador del protocolo puede imponer esta
condicin adoptando un tamao de ventana suficientemente grande,
de al menos dos veces el tiempo de propagacin en el canal. Existen,
sin embargo, algunas penalizaciones al empleo de ventanas de gran
tamao.
Que el emisor sea advertido cuanto antes de los errores producidos
en una trama de datos, pues todas las tramas posteriores a ella son
rechazadas.
Que los errores o prdidas de asentimientos positivos no provoquen
retransmisiones, pues son innecesarias. Hemos garantizado esta con-
dicin obligando a utilizar asentimientos acumulativos.

Las necesidades de memoria se han incrementado a n bferes en el emisor


para mantener copia de las n ltimas tramas de datos enviadas.

8.1.3. Envo continuo con rechazo selectivo

En la estrategia de envo continuo con rechazo selectivo, el receptor


acepta todas las tramas de datos recibidas sin errores, aunque no lleguen en
secuencia. Al igual que en el caso de rechazo simple, el nmero mximo de
tramas pendientes de asentimiento en el emisor se limita a n. La diferencia
estriba ahora en que el receptor tambin utiliza una ventana de tamao n
para los nmeros de secuencia de las tramas que acepta: si i es el nmero de
secuencia del ltimo asentimiento enviado, cualquier trama de datos correcta
con nmero de secuencia en el rango [i, i + n 1] es aceptada.5 Por tanto, y
se trata de una diferencia sustancial en relacin a las estrategias de parada
5 Laestrategia de envo continuo con rechazo simple resulta ser un caso particular del
rechazo selectivo con un tamao de ventana de recepcin igual a 1.
256 Protocolos de retransmisin

y espera y de rechazo simple, en envo continuo con rechazo selectivo las


tramas de datos sin error pueden recibirse en el destino en un orden distinto
al de transmisin.
Los asentimientos se numeran estrictamente en secuencia; as es posible
mantener el convenio de que confirman la trama i y todas las anteriores.
En ausencia de la limitacin del tamao mximo de la ventana (que es
de naturaleza prctica, porque ni emisor ni receptor disponen de memoria
infinita), la estrategia de rechazo selectivo es ideal. De hecho, cada trama
se transmite siempre el nmero mnimo de veces para hacerla llegar al nodo
destino, puesto que el receptor la solicita expresamente con un asentimiento
cada vez que percibe su ausencia. Si se parte de la interpretacin de un
asentimiento como solicitud de una trama de datos, debe resultar claro que
la estrategia de envo continuo con rechazo selectivo es, ms correctamente,
una estrategia de envo continuo con retransmisin selectiva slo de las
tramas de datos con error.
De nuevo aparecen dificultades al considerar un campo de numeracin
de tamao finito. En este caso, la condicin necesaria y suficiente para no
generar fallos es que los nmeros de secuencia se calculen mdulo m, sien-
do m al menos igual a dos veces el tamao de las ventanas de emisin y
recepcin, m 2n.
Veamos por qu: supongamos que la ventana de recepcin, en un instante
de tiempo dado, es [j, j + n 1]. Ello significa dos cosas:

1. Que el extremo inferior de la ventana de transmisin vale como mni-


mo j n. Si as no ocurriera, el emisor no habra podido transmitir
la trama con nmero de secuencia j 1, que no podra haber sido
confirmada por el receptor, resultando imposible que ste quede a la
espera de la trama j.
2. Que el extremo superior de la ventana de transmisin vale como m-
ximo j + n 1. De no ser as, el extremo inferior de la ventana de
emisin valdra al menos j + 1, lo que querra decir que el receptor
habra confirmado la recepcin correcta de la trama j. Pero esto es
imposible si el receptor espera precisamente la trama j.

Resulta, de estas dos observaciones, que al receptor slo llegarn, en el peor


de los casos, tramas de datos con nmero de secuencia en el rango [j
n, j + n 1], dependiendo de cul sea el ltimo asentimiento correctamente
recibido en el emisor. Y para distinguir esas 2n tramas bastan un mnimo
de 2n nmeros de secuencia diferentes. Al igual que en la estrategia de
envo continuo con rechazo simple, tampoco aqu es preciso que los m 2n
nmeros de secuencia sean consecutivos. Cualquier secuencia peridica de
periodo al menos 2n servira.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 257

Ejemplo 8.2. Un contraejemplo puede aclarar mejor este razonamiento.


Imagine una estrategia de envo continuo con rechazo selectivo, tamao
de ventana n y numeracin mdulo-m, siendo m < 2n. Y considrese la
sucesin ordenada de eventos:

1. El emisor enva las tramas de datos 0, . . . , n 1.


2. Las tramas de datos se reciben sin error, se aceptan y son confirmadas
con los asentimientos ack-1, . . . , ack-n. La ventana de recepcin se
desplaza por lo tanto a [n, . . . , 0, . . . , 2n m 1].
3. Todos los asentimientos se pierden.
4. Una vez agotado el plazo de espera de los asentimientos, el emisor
retransmite las tramas de datos con nmeros de secuencia 0, 1, . . . ,
n 1.
5. Las retransmisiones se reciben sin error y, puesto que m < 2n, las
tramas con nmero de secuencia 0, . . . , 2n m 1 son errneamente
aceptadas como vlidas por el receptor.

Resulta patente que, para evitar el fallo, es condicin necesaria y suficiente


asegurar que los nmeros de secuencia contenidos en la ventana de recepcin
desplazada no se solapen con los nmeros de secuencia de la ventana de
emisin, es decir, m 2n.

Las reglas formales de operacin de emisor y receptor en la estrategia


de rechazo selectivo con tamao de ventana n 1 y numeracin mdulo
m 2n son las siguientes. Sea NSinf , en el nodo emisor, el menor nmero de
secuencia de las tramas que no han sido an asentidas; sea NS sup el nmero
de secuencia de la prxima trama de datos nueva. Y, en el receptor, sea NA
el nmero de secuencia del prximo asentimiento, NA inf el extremo inferior
de la ventana de recepcin y sea Map un vector de n elementos.
Para el emisor:

1. Inicialmente, las variables NSinf y NSsup valen 0.


2. Si la ventana no se ha agotado, (NSsup NSinf ) mod m < n, y hay
una trama nueva pendiente de transmisin, asignarle el nmero NSsup
e incrementar NSsup en una unidad, (NSsup +1) mod m. Transmitir
la trama.
3. Si se recibe un asentimiento libre de errores con nmero de secuencia
NA dentro de la ventana,

(NA NSinf ) mod m (NSsup NSinf ) mod m,


258 Protocolos de retransmisin

entonces actualizar el extremo inferior de la ventana, NSinf = NA.


4. Si hay tramas pendientes de confirmacin, NSinf 6= NSsup , retransmi-
tirlas, no importa en qu orden.

Los pasos 2, 3 y 4 pueden ejecutarse en cualquier orden relativo.


Para el receptor:

1. Inicialmente, las variables NA y NAinf , y el vector Map a 0.


2. Si se recibe una trama sin errores con nmero de secuencia igual a NA
dentro de la ventana, (NA NAinf ) mod m < n, aceptarla y activar
Map[(NA NAinf ) mod m] = 1.
3. Si Map[0] = 1, incrementar NAinf a (NAinf +1) mod m y desplazar
el vector Map una posicin hacia la izquierda.
4. Si Map[0] = 0, enviar un asentimiento con nmero de secuencia NAinf .

Ha de advertirse que en rechazo selectivo tanto el emisor como el receptor


precisan de n bferes para las tramas, y que el receptor adems debe ser
capaz de reordenarlas.

8.2. Anlisis de la cadencia eficaz

Estudiaremos a continuacin la tasa efectiva de transferencia de bits de


informacin en presencia de retransmisiones, cuantificando el impacto de
la estrategia ARQ en el uso de la capacidad del canal. Los resultados que
desarrollemos confirmarn la intuicin de que rechazo simple debe ser mejor
que parada y espera, y que rechazo selectivo es, a su vez, mejor que ambos.
El parmetro objetivo de prestaciones ser la cadencia eficaz, que defini-
remos como el cociente entre el nmero medio de bits de datos por trama, n,
y el tiempo medio toc que el canal permanece ocupado transmitiendo dicha
trama:
E[n] bits
Ce = .
E[toc ] unidad de tiempo

En el apndice 8.A se elabora con ms cuidado esta definicin. Por el


momento, obsrvese que en el caso particular de que todas las tramas fuesen
de la misma longitud, ni = n i, el rgimen efectivo de transmisin sera,
simplemente,
n
Ce = .
E[toc ]

Con objeto de simplificar los clculos se harn las siguientes hiptesis:


C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 259

1. El emisor siempre dispone de tramas que transmitir, y stas son de


longitud constante l = m + n bits, donde m es el nmero de bits de
control de la trama, esto es, los bits que no llevan informacin de la
fuente.

2. El receptor asiente cada trama de datos inmediatamente.

3. No se pierden tramas, y el receptor detecta todas las tramas con error.

4. No hay errores en los asentimientos, y la probabilidad de error en una


trama de datos es proporcional a su longitud l.

5. El tiempo de asentimiento, Tas , es constante. Se define el tiempo de


asentimiento como el tiempo que transcurre desde que se termina de
transmitir una trama de datos hasta que su asentimiento se recibe
completo y libre de errores en el emisor.

6. El tamao de ventana es suficientemente grande para que no tenga


que interrumpirse la transmisin en caso de envo continuo.

Discusin de las hiptesis

La suposicin de que el emisor siempre dispone de tramas pendientes


modela un enlace de datos saturado, condicin con la que se obtiene la
utilizacin mxima del canal. No es imprescindible suponer tramas con lon-
gitud constante; el anlisis sera el mismo si se considerase en cada paso la
longitud media de stas. Pero suponer que no se pierden tramas es, por el
contrario, una simplificacin que evita tener que considerar no ya el efecto
sino siquiera el uso de los temporizadores. En una situacin normal, el valor
de temporizacin suele ser mayor que el tiempo de asentimiento, de manera
que, al obviarlo en el anlisis, se calcula una cota superior a la cadencia efi-
caz real. Adems, en envo continuo se toma un tamao de ventana infinito,
de nuevo para tratar con un enlace saturado.
En lo que respecta al tiempo de asentimiento, Tas , ste incluye el tiem-
po de procesamiento de una trama de datos en el receptor, el retardo de
propagacin de la seal de ida y vuelta y el tiempo de transmisin del
asentimiento. No es constante, porque el tiempo de procesamiento no lo es,
as como por el efecto de posibles prdidas en los asentimientos, aunque se
pueden argumentar las mismas consideraciones que para la longitud de las
tramas: Tas se puede sustituir, en sentido estadstico, por el tiempo medio
de asentimiento, y el anlisis se mantiene correcto.
Las expresiones aproximadas de la probabilidad de error se justifican
con el siguiente razonamiento: en un canal binario simtrico sin memoria
con probabilidad de transicin , la probabilidad de error en un bloque de
260 Protocolos de retransmisin

   
  


  

Figura 8.6. Clculo del caudal eficaz en la tcnica de parada y espera.

Pn 
n bits es 1 (1 )n = 1 i=0 ni ()i , que podemos escribir como
1 (1 n + o(n)). Cuando n  1, se puede despreciar el trmino6
o(n), y entonces 1 (1 )n n. Tambin en canales con memoria se
verifica esta misma condicin, no siendo ahora la probabilidad de error
en la transmisin de un smbolo, sino un promedio denominado tpicamente
tasa de error de bit. Esto explica que se trate la probabilidad de error como
proporcional a la longitud de trama, y que no se tengan en cuenta posibles
errores en los asentimientos, por ser mucho ms cortos que las tramas de
datos.

8.2.1. Parada y espera

En parada y espera no es posible comenzar a transmitir una trama hasta


que la anterior ha sido confirmada. El tiempo de ocupacin del canal debido
a la transmisin de una trama es, por tanto, (ver la figura 8.6)
 
l
toc = + Tas nt
C

si C es el rgimen nominal de transmisin del canal (bits/segundo) y nt el


nmero total de transmisiones necesarias. Pero nt es una variable aleatoria
discreta con distribucin de probabilidad geomtrica, P{nt = k} = pk1 (1
p), k 1, siendo p la probabilidad de error en la transmisin de una trama.
Tomando esperanzas se obtiene:
   
l 1 l
toc = + Tas nt = + Tas
C 1p C

que, sustituido en la definicin de la cadencia eficaz, da:


n
Ce = (1 p) C
n + m + CTas
6 Una f (p)
funcin f (p) es o(p) si lmp0 p
= 0.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 261


 


  


  
 


     

Figura 8.7. Clculo del caudal eficaz en la tcnica de envo continuo


con rechazo simple.

El trmino CTas que aparece en el denominador representa la cantidad de


bits que el canal podra transmitir durante un periodo de tiempo igual a
Tas . Cuando el factor dominante en el tiempo de asentimiento es el retardo
de propagacin de la seal elctrica, CTas es casi directamente proporcional
al producto ancho de banda distancia del canal. Si n  m y se define
a(n) = CT n , se deduce la aproximacin
as

Ce 1
(1 p) .
C 1 + a(n)

La cadencia eficaz relativa, Ce /C, depende entonces de p y del nmero de


tramas de n bits de datos, a(n), que se podran enviar durante el intervalo
Tas . Esto explica por qu parada y espera resulta poco adecuada cuando el
retardo de propagacin es grande en relacin al tiempo de transmisin de
una trama, bien porque se utiliza un canal de alta capacidad, bien porque
el tiempo de propagacin es de magnitud apreciable.

8.2.2. Rechazo simple

En rechazo simple todos los asentimientos negativos hacen retroceder al


emisor, mientras que la ltima (re)transmisin ocupa solamente el tiempo
de envo de la trama. Se puede escribir, por tanto, (ver la figura 8.7)
 
l l
toc = + Tas (nt 1) + .
C C
El tiempo medio de ocupacin vale, en este caso,
 
p l l
toc = + Tas +
1p C C
y la cadencia eficaz
n
Ce = (1 p) C.
n + m + pCTas
262 Protocolos de retransmisin

La diferencia con la frmula de parada y espera es el trmino pCTas del


denominador: expresa que en rechazo simple slo se desaprovecha el interva-
lo de asentimiento para la fraccin p de tramas que deben ser retransmitidas.
Al igual que antes, si n  m y a(n) = CT n , entonces
as

Ce 1
(1 p) .
C 1 + pa(n)

8.2.3. Rechazo selectivo

Con un tamao de ventana infinito, cada trama ocupa nada ms que el


tiempo de sus nt transmisiones. Entonces

l
toc = nt
C
1 l
toc =
1pC
n
Ce = (1 p) C.
n+m
La expresin para la cadencia eficaz es ptima en el sentido de que ninguna
estrategia de retransmisin puede conseguir que una fraccin 1 p de sus
tramas lleguen correctamente a su destino en un nmero de intentos de
transmisin menor que el rechazo selectivo ideal.
Si la comparamos con la cadencia eficaz de la estrategia de rechazo sim-
ple, podemos observar que la diferencia entre ambas ser pequea cuando
lo sea el factor pTas C frente a n, es decir, si el tiempo de asentimiento es
pequeo en comparacin con el tiempo de transmisin de las tramas, o si
slo una muy pequea fraccin p de tramas se reciben con errores. En el
primer caso el tiempo desperdiciado cada vez que el emisor debe retroceder
es de poca magnitud, mientras que en el segundo caso la frecuencia con la
que el receptor se ve obligado a retransmitir es baja.

8.2.4. Tamao ptimo de trama

Las frmulas a las que hemos llegado para la cadencia eficaz en los tres
casos son funciones convexas de n, la longitud del campo de datos de la
trama. Considerando a n como una variable continua, el valor ptimo n
que hace mxima la cadencia eficaz es la solucin nica de la ecuacin

dCe (n)
= 0.
dn n=n
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 263

1
Exacto
Aproximacin
0.9
Rechazo selectivo
0.8

Rechazo simple
0.7

0.6
Ce / C

0.5

0.4

0.3
C = 64 kbps
0.2 Tas = 100 ms.
Parada y espera
pb = 3 105

0.1

0
0 2000 4000 6000 8000 10000
Bits

Figura 8.8. Curvas de cadencia eficaz, segn estrategia ARQ.

0.9

0.8

0.7

0.6
Ce / C

0.5

0.4

0.3
C = 1 Mbps
0.2 Tas = 5 ms.
pb = 106

0.1 Parada y espera


Rechazo simple
Rechazo selectivo
0
0 2000 4000 6000 8000 10000
Bits

Figura 8.9. Curvas de cadencia eficaz, segn estrategia ARQ.


264 Protocolos de retransmisin

La expresin ms simple de la longitud ptima del campo de datos se obtiene


para la cadencia eficaz en rechazo selectivo. Tras algunos clculos sencillos
se obtiene que r
m
n |R. Selectivo = m
pb
donde pb es la probabilidad de error de bit.

8.2.5. Nmero medio de transmisiones por trama

En el anlisis de la cadencia eficaz de las estrategias ARQ aparece conti-


nuamente como una variable el nmero nt de transmisiones necesarias para
hacer llegar una trama sin error al destino. La variable nt es una variable
aleatoria que, suponiendo errores de transmisin estadsticamente indepen-
dientes en cada intento con probabilidad p, tiene como funcin de masas de
probabilidad a
P(nt = k) = pk1 (1 p), k 1.
La esperanza matemtica de nt representa el nmero medio de intentos
requeridos por trama, y puesto que nt es una variable no negativa, vale

X
X 1
E[nt ] = P (nt k) = pk1 = .
1p
k=1 k=1

El nmero medio de retransmisiones por cada trama es simplemente


p
E[nt ] 1 = .
1p

Notas bibliogrficas

Son pocos los libros que tratan simultneamente la teora de la codifica-


cin y las estrategias de retransmisin automtica. Entre ellos cabe citar [39]
y [75]. Bien al contrario, prcticamente cualquier libro sobre redes de orde-
nadores incluye una exposicin de las tcnicas ARQ, y la mayora realiza
anlisis de prestaciones similares al de este captulo. Dentro de este grupo es
particularmente recomendable el texto de Bertsekas y Gallager [5]. Por otra
parte, las estrategias de retransmisin son slo un aspecto de los protocolos
de enlace de datos. Se pueden consultar detalles prcticos de especificacin
e implementacin de estos protocolos en [6].
La verificacin y validacin formal de protocolos es una disciplina in-
dependiente, bien desarrollada y que requiere otro tipo de conceptos. Dos
buenas obras especializadas en este campo son [29] y [33].
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 265

La combinacin de cdigos correctores de errores y de tcnicas de re-


transmisin (ARQ hbrida) es una solucin que este captulo no explora,
pero a la que sin embargo otros autores prestan una atencin especfica.
Vase [75] para una exposicin rigurosa del tema.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 267

8.A. Sobre la cadencia eficaz

En este apndice se analiza ms detenidamente la definicin del concepto


de cadencia eficaz.
Considrese una sucesin arbitrariamente larga de tramas, de longitudes
n1 , n2 , . . . , y sea toci el tiempo efectivo de transmisin sin error de la i-sima
trama. Si todas estas cantidades fuesen deterministas, entonces el lmite
n1 + + n k
lm
k toc1 + + tock

representara el rgimen efectivo de transmisin por el canal, promediado


tras un tiempo de observacin arbitrariamente largo. Ahora bien, en gene-
ral, las secuencias N = (n1 , n2 , . . .) y Toc = (toc1 , toc2 , . . .) son dos procesos
estocsticos, pues ni hay motivo para suponer que las longitudes de las tra-
mas son conocidas de antemano ni los tiempos de ocupacin son constantes
incluso si las tramas tienen una longitud fija. Si se suponen las longitudes
de las distintas tramas y los tiempos de ocupacin de las mismas estads-
ticamente independientes e idnticamente distribuidos (iid), entonces tanto
N como Toc son dos procesos estacionarios en sentido estricto, lo que signi-
fica que la funcin de distribucin conjunta de nj1 , . . . , njk (anlogamente
la de tocj1 , . . . , tocjk ), para cualesquiera j1 < j2 < < jk y cualquier valor
de k, no depende ni del conjunto de subndices temporales ni del orden en
que stos sean dados, sino slo de k. Observe que toci no ser, en general,
independiente de ni , ya que las tramas ms largas tienden a ocupar por ms
tiempo el canal.
En estas condiciones, el teorema ergdico7 para procesos estacionarios
en sentido estricto permite escribir
n1 + n 2 + + n k
lm = E[n] con prob. 1
k k
toc1 + toc2 + + tock
lm = E [toc ] con prob. 1.
k k
Los lmites anteriores significan que los promedios temporales de las longi-
tudes de las tramas y de los tiempos de ocupacin convergen, para cualquier
7 El teorema ergdico es una importante generalizacin de la ley de los grandes n-

meros y afirma que, en ciertas condiciones, la media temporal de un proceso estocstico


estacionario (en sentido estricto o estacionario de segundo orden) converge, en un senti-
do matemtico bien definido, a una variable aleatoria. Segn el tipo de convergencia se
tienen distintas versiones del teorema ergdico: J. von Neumann dio la prueba para la
convergencia en media entre variables aleatorias, mientras que para el caso, notoriamen-
te ms difcil, de la convergencia con probabilidad 1, la demostracin es un logro de D.
Birkhoff. Vese el captulo 9 de G. Grimmet, D. Stirzaker, Probability and random proces-
ses, Oxford University Press, 3a edicin, 2001, para una formulacin y una demostracin
rigurosas del teorema ergdico.
268 Protocolos de retransmisin

posible realizacin excepto un conjunto de trayectorias de probabilidad nu-


la, al valor medio estadstico de longitud de una trama y del tiempo de
ocupacin, respectivamente. Por tanto,

n1 + + n k k 1 (n1 + + nk ) E[n]
lm = lm 1 =
k toc1 + + tock k k (toc1 + + tock ) E[toc ]

con probabilidad 1, puesto que los lmites del numerador y del denominador
existen con probabilidad 1 y son constantes.
PARTE III

Cdigos BCH, cdigos


ReedSolomon y cdigos
convolucionales

269
CAPTULO 9

Cuerpos finitos

Los cuerpos finitos son uno de los entes matemticos en los que se sus-
tentan la construccin y los procedimientos de decodificacin de los cdigos
algebraicos. Este captulo se ocupa de estudiar qu estructura tiene esta cla-
se de objetos, cmo se representan sus elementos y qu propiedades poseen.

9.1. Definicin

Un cuerpo es cualquier conjunto abstracto en el que hay una aritmtica


bien definida entre sus elementos. Siendo ms precisos:

Definicin 9.1. Un cuerpo es una estructura algebraica formada por un


conjunto de elementos C y dos operaciones binarias internas, que se simbo-
lizan aqu con los signos + y , tales que

a) (C, +) es un grupo conmutativo (la operacin + es asociativa, conmu-


tativa, existe para ella un elemento neutro, que se representa por 0, y
todo elemento de C tiene simtrico).

b) (C, ) es un grupo; el elemento neutro o unidad se suele representar


en este caso como 1.

c) La operacin es distributiva por la izquierda y por la derecha respecto


de la operacin +.

Un cuerpo es conmutativo (o abeliano) si lo es su operacin , o sea, si


(C, ) es un grupo conmutativo.

271
272 Cuerpos finitos

Se utilizan los smbolos + y para las dos operaciones, y se suelen desig-


nar, respectivamente, como suma y producto, porque son una abstraccin
de las operaciones de suma y producto de los conjuntos numricos. La es-
tructura algebraica de cuerpo no es sino la formalizacin de un conjunto en
el que las operaciones de suma y producto y sus inversas, resta y divisin,
estn bien definidas, salvo la divisin por cero.
Como consecuencia inmediata de la definicin se tienen, para dos ele-
mentos cualesquiera a y b de un cuerpo, las siguientes propiedades, que son
sencillamente las reglas aritmticas usuales:

a) a b = 0 a = 0 o b = 0.

b) Regla de los signos: (ab) = (a)b = a(b); (a)(b) = ab.

c) Todo elemento no nulo es simplificable para el producto: si a 6= 0,


ab = ac b = c. (Consecuencia de la propiedad 1.)

Son ejemplos bien conocidos de cuerpos el conjunto de los nmeros racio-


nales, el conjunto de los nmeros reales y el conjunto de los nmeros comple-
jos, todos ellos con un nmero infinito de elementos. Pero en la construccin
de cdigos se manejan conjuntos (alfabetos) finitos, y por ello las estructuras
algebraicas que surgen constan siempre de un nmero finito de elementos.

Definicin 9.2. Un cuerpo con un nmero finito de elementos se llama


cuerpo finito o cuerpo de Galois.

Definicin 9.3. El nmero de elementos de un cuerpo finito es el cardinal


del cuerpo.

Tambin es habitual el trmino orden para referirse al nmero de ele-


mentos de un cuerpo.
Los cuerpos no conmutativos poseen una estructura ms complicada que
los conmutativos. Por fortuna, todo cuerpo finito es conmutativo, proposi-
cin que constituye uno de los llamados teoremas de estructura de Wedder-
burn.

Ejemplo 9.1 (El cuerpo GF(p)). En el conjunto de los nmeros en-


teros, la relacin de congruencia mdulo p IN, p > 1, segn la cual dos
nmeros enteros a y b se dicen congruentes si ambos producen el mismo
resto al ser divididos entre p (o lo que es igual, si su diferencia a b es
un mltiplo de p), es una relacin de equivalencia. El conjunto cociente
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 273

que induce esta relacin se simboliza por /p , o tambin por p, y est


compuesto por las p clases de nmeros enteros

[r] = r + p = {r + pn : n }, 0r p1

a las que se conoce por clases residuales (o de residuos) mdulo p. El signo


[r] indica la clase de representante r.
En el conjunto de representantes de /p ,

{0, 1, . . . , p 1}

considrense las operaciones de suma y producto definidas por las siguientes


identidades

a + b (a + b) mod p
ab (ab) mod p, a, b {0, 1, . . . , p 1}

en donde la notacin a b mod p se lee a es congruente con b mdulo


p. Es decir, suma y producto en /p se llevan a cabo considerando a los
operandos nmeros enteros ordinarios y reduciendo el resultado mdulo p.
No es difcil probar que, si p es un nmero primo, entonces el conjunto
( /p , +, ) de residuos mdulo p es efectivamente un cuerpo. La nica pro-
piedad que no es trivial verificar es la de existencia de inverso multiplicativo
de cualquier elemento no nulo. Pero sea a 6= 0 (y tambin a 6= 1, puesto que
1 es obviamente el inverso de s mismo) uno de tales elementos, primo rela-
tivo de p, por tanto. Existen, entonces, en virtud del algoritmo de divisin
eucldeo, dos nmeros enteros b y q no nulos tales que ab + pq = 1. Y, en
consecuencia, ab + pq ab 1 mod p, lo que muestra que a1 b mod p
es el inverso de a. En el resto del captulo se utilizar el smbolo GF(p) para
referirse a este cuerpo de p elementos (p primo).
Por el contrario, si p no es primo, ( /p , +, ) no es un cuerpo, pues
p = rs 0 mod p, con r 6= 0 y s 6= 0 por hiptesis.
Los cuerpos de cardinal pequeo se pueden definir o presentar de forma
explcita indicando en un par de tablas, llamadas tablas de Cayley, el resul-
tado de operar aditiva o multiplicativamente con dos elementos cualesquiera
suyos. Por ejemplo, GF(2) = {0, 1} con

+ 0 1 0 1
0 0 1 0 0 0
1 1 0 1 0 1

y GF(3) = {0, 1, 2} con


274 Cuerpos finitos

+ 0 1 2 0 1 2
0 0 1 2 0 0 0 0
1 1 2 0 1 0 1 2
2 2 0 1 2 0 2 1

En breve se vern formas mucho ms compactas de describir los cuerpos


finitos.

A la vista del ejemplo anterior, se presenta de manera natural la siguiente


cuestin: existen cuerpos finitos cuyo cardinal no sea un nmero primo?
Y, si existen, cules son y cmo se construyen?

9.2. Construccin de cuerpos finitos

Se ver ms adelante en este mismo captulo que slo existen cuerpos


finitos de cardinal pm , con p un nmero primo y m un nmero natural, y
adems, que hay, salvo isomorfismos, un solo cuerpo de cardinal pm , por lo
que tiene perfecto sentido escribirlo como GF(pm ).
Entre tanto, mostraremos una manera de construir GF(pm ) cuando
m > 1. La idea central del mtodo que se expone en el teorema 9.1 es la de
construir este cuerpo tomando como elementos suyos las clases de equiva-
lencia de un cierto dominio eucldeo,1 en este caso el dominio formado por
el conjunto de polinomios de una variable con coeficientes en GF(p).

Definicin 9.4. En el conjunto Fp [x] de polinomios con coeficientes del


cuerpo GF(p), dos polinomios se dicen congruentes mdulo (x) Fp [x] si
tienen el mismo resto al ser divididos por (x).

La relacin de congruencia mdulo (x) es una equivalencia compatible


con la suma y el producto ordinario de polinomios en Fp [x]. Su conjunto
cociente se representa por Fp [x]/(x), y es el conjunto de polinomios de
grado menor que el de (x), con coeficientes tomados del cuerpo GF(p), en
el que las operaciones de suma y producto de polinomios se realizan mdulo
(x).
1 Formalmente, (E, +, ) es un dominio eucldeo si
a) (E, +, ) es un dominio de integridad (un anillo conmutativo sin divisores de cero).
b) Existe una funcin de orden g(), con valores enteros no negativos, tal que g(a)
g(ab) si b 6= 0; y tal que, para cualesquiera a, b 6= 0, existen q, r E de modo que
o bien a = qb, o bien a = qb + r con g(r) < g(b).
Son ejemplos inmediatos de dominios eucldeos el conjunto con g(n) = |n|, o bien el
conjunto de los polinomios con coeficientes en un cuerpo y con g(f (x)) = grado(f (x)).
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 275

Teorema 9.1. Fp [x]/(x) es un cuerpo de cardinal pm si y solamente si


(x) Fp [x] es un polinomio irreducible de grado m.

Demostracin. Un polinomio con coeficientes de GF(p) se dice irreducible


en Fp [x] cuando no es posible escribirlo como producto de otros dos poli-
nomios de Fp [x] de menor grado.2 En el teorema 9.23 se prueba que, para
todo nmero primo p y todo nmero natural m, existen en Fp [x] polinomios
irreducibles de grado m. Por el momento, dse por cierta esta proposicin.
Una vez precisado este punto, la demostracin del teorema se reduce a
verificar cada uno de los axiomas estipulados en la definicin de cuerpo.
As, la suma de dos polinomios de Fp [x] de grado menor que m es una
operacin interna asociativa, conmutativa, con elemento neutro y tal que
todo polinomio posee opuesto. Si ahora, como se indica en el enunciado, se
define el producto de dos polinomios como

a(x)b(x) (a(x)b(x)) mod (x)

se tiene en Fp [x]/(x) una operacin interna asociativa, conmutativa y con


elemento neutro e(x) = 1. Adems, este producto es distributivo respecto de
la suma de polinomios, es decir, Fp [x]/(x) es un anillo unitario y conmuta-
tivo. De manera que, para probar que el conjunto as formado es en efecto
un cuerpo con las dos operaciones consideradas, slo hay que asegurarse de
que todo polinomio no nulo a(x) de grado m 1 o menor posee inverso para
la operacin producto. Pero, por el algoritmo de divisin eucldeo, y como
(x) es irreducible, y por lo tanto a(x) 6= 1 es primo relativo suyo, se tiene
garantizada la existencia de dos polinomios b(x) y q(x) no nulos tales que

a(x)b(x) + (x)q(x) = 1.

De tal forma que a(x)b(x) 1 mod (x) y a1 (x) b(x) mod (x) es
el inverso de a(x). Advirtase que es esencial para la existencia de inverso
multiplicativo que (x) sea irreducible.
El nmero de elementos del cuerpo es igual al nmero de polinomios de
grado menor que m con coeficientes de GF(p), es decir, pm .

Ms en general, el razonamiento seguido en la demostracin podra ha-


berse aplicado igualmente a cualquier dominio eucldeo abstracto D y a
cualquier elemento primo en l, de suerte que D/ sera un cuerpo.
Para referirse a un elemento a(x) Fp [x]/(x) basta entonces con co-
nocer la secuencia ordenada de m coeficientes del polinomio a(x). Ahora
bien, el conjunto de secuencias de m elementos de GF(p) es un espacio vec-
torial de dimensin m sobre el cuerpo GF(p) y la aplicacin que a cada
2 Un polinomio irreducible en Fp [x] puede no serlo en Fq [x], p 6= q.
276 Cuerpos finitos

a(x) Fp [x]/(x) le asigna la m-tupla de coeficientes de a(x) es un iso-


morfismo entre Fp [x]/(x) y GF(p)m . Por tanto, se infiere que Fp [x]/(x)
es, para la operacin de suma, un espacio vectorial m-dimensional sobre el
cuerpo de escalares GF(p). Ms adelante resultar conveniente recurrir a
la caracterizacin de un cuerpo finito como espacio vectorial para deducir
ciertas propiedades con mayor comodidad.

Ejemplo 9.2. El polinomio (x) = x4 + x + 1 es irreducible en F2 [x] (com-


prubese como ejercicio). En virtud del teorema 9.1, el cuerpo GF(24 ) es, por
tanto, isomorfo a F2 [x]/(x), el conjunto de polinomios binarios de grado
menor que 4 con las operaciones de suma y producto mdulo x4 + x + 1.
Si se representa por el elemento x F2 [x]/(x), entonces, por defi-
nicin, () = 4 + + 1 mod (x) = 0, o lo que es igual, 4 + 1
mod (x). Pues bien, se da el caso de que es posible representar cualquier
elemento de F2 [x]/(x) como una potencia de . Por ejemplo,

x3 + x x 9 mod x4 + x + 1 = 9 .

Aplicando reiteradamente la identidad 4 = + 1 (mdulo (x)), y calcu-


lando las sucesivas potencias de , se obtiene el conjunto de elementos de
F2 [x]/(x), recogidos en la tabla 9.1.
Existen, pues, dos maneras de representar los elementos del cuerpo, una
aditiva y otra multiplicativa. En la tabla 9.1, la primera columna indica la
secuencia de coeficientes de la representacin polinmica, con el coeficiente
del trmino de menor exponente situado ms a la derecha, y la columna
central es el polinomio correspondiente. Como se puede ver, para sumar dos
elementos cualesquiera es suficiente sumar sus polinomios respectivos (siem-
pre en F2 [x]!) o bien sumar elemento a elemento sus vectores de coeficientes
asociados.
La ltima columna de la tabla contiene la representacin de los elementos
del cuerpo en trminos de potencias de . El mtodo ms directo para
multiplicar dos de ellos consiste en representar ambos factores con esta
notacin y operar con los exponentes. Por ejemplo, es as que

(x2 + x)(x3 + 1) 5 14 = 15 4 x + 1 mod (x)

ya que 15 1 mod (x).


En el apartado siguiente se analizarn las estructuras aditiva y multipli-
cativa de un cuerpo finito. Se mostrar, en particular, que en todo cuerpo
finito existe al menos un elemento, llamado primitivo o generador, tal que to-
dos los dems excepto el cero son una potencia suya. Para F2 [x]/x4 + x + 1,
el lector debe convencerse, examinando la tabla 9.1, de que 2 , 4 y 8
tambin son elementos primitivos, adems de . Aunque todos ellos han
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 277

Vector Polinomio Elemento


0000 0 0
0001 1 1
0010 x
0100 x2 2
1000 x3 3
0011 x+1 4
0110 x2 + x 5
1100 x 3 + x2 6
3
1011 x +x+1 7
0101 x2 + 1 8
1010 x3 + x 9
0111 x2 + x + 1 10
1110 x 3 + x2 + x 11
1111 x + x2 + x + 1
3
12
1101 x 3 + x2 + 1 13
1001 x3 + 1 14

Tabla 9.1. El cuerpo F2 [x]/(x), con (x) = x4 + x + 1.

resultado ser, en este caso, races del polinomio (x) que se ha utilizado
para construir el cuerpo, no es sta una propiedad general.

9.3. Estructura

Los cuerpos finitos poseen realmente una estructura bastante simple.


Para establecer cules son sus propiedades ms bsicas, comencemos por
identificar qu cuerpos contienen en su seno a otros ms pequeos.

Definicin 9.5. Se dice de un cuerpo E que contiene a otro C que es una


extensin de C.

Por ejemplo, el cuerpo complejo es una extensin del cuerpo real, el cual,
a su vez, es una extensin del cuerpo racional. Y todo cuerpo de cardinal
pm es una extensin de GF(p), como se ver a continuacin.
Considrese un cuerpo finito arbitrario, C, de cardinal q. C contiene al
elemento unidad 1. Contiene tambin a la sucesin de elementos 1 + 1 = 2,
1 + 1 + 1 = 3, . . . ; pero, por ser el cuerpo finito, stos no podrn ser todos
distintos entre s. En consecuencia, debe existir el menor entero p q tal
que p = 1 + 1 + + 1(p veces) = 1p = 0, y adems este nmero p debe ser
278 Cuerpos finitos

primo. Pues si p no fuese primo, entonces p = rs = 0 y, por la definicin de


cuerpo, o bien r = 0 o bien s = 0, en contradiccin con la premisa de ser p
mnimo. El nmero p es la caracterstica del cuerpo y es evidente que si C
tiene caracterstica p entonces p = 0, C.3
Pero, adems, el producto o la suma de dos de los elementos 1, 1 + 1,
. . . , 1p = 0 es un elemento de la misma forma, ya que

1j 1k = 1(jk) mod p
1j + 1k = 1(j+k) mod p

lo que significa que los p elementos

0, 1, 1 + 1 = 2, . . . , 1 + + 1 = p 1

son un subcuerpo de C; esto es, se trata de un conjunto de elementos cerrado


para la suma y el producto. Se concluye, por tanto, que todo cuerpo finito es
una extensin de un cuerpo de cardinal igual a su caracterstica, siendo ste
el menor cuerpo contenido en l. Si q = p, entonces C contiene p elementos y
C = GF(p) es un cuerpo primo, en el sentido de que no contiene subcuerpos.
Es obvio que el cuerpo primo de un cuerpo de caracterstica p es isomorfo
a GF(p).
Si q > p, sea m el nmero mximo de elementos 0 , 1 , . . . , m1 del
cuerpo linealmente independientes sobre los escalares de GF(p). Entonces C
contiene todos los elementos de la forma

e0 0 + e1 1 + + em1 m1 , ej GF(p)

y, recprocamente, todo elemento de C se puede escribir de forma nica


como combinacin lineal de 0 , . . . , m1 ; porque si se pudiese expresar
algn elemento de dos formas diferentes

= e0 0 + e1 1 + + em1 m1
= f0 0 + f1 1 + + fm1 m1 , ei , fi GF(p)

entonces se tendra que

0 = (e0 f0 )0 + (e1 f1 )1 + + (em1 fm1 )m1

y los elementos 0 , . . . , m1 no seran linealmente independientes sobre


GF(p), en contra de lo supuesto. Por consiguiente, C es isomorfo a un espacio
vectorial de dimensin m sobre GF(p) y contiene pm elementos, para algn
m > 1.
3 En un cuerpo infinito, si n 1 6= 0 para todo n 6= 0, se dice que el cuerpo tiene

caracterstica infinita o, tambin, caracterstica cero (pues n 1 = 0 n = 0). Conviene


sealar que existen cuerpos infinitos con caracterstica finita, por ejemplo GF(p) , las
sucesiones en GF(p).
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 279

Teorema 9.2. El cardinal de un cuerpo finito es pm , para algn p primo y


algn m 1.

A veces puede ser til pensar en este teorema como en un aserto ele-
mental de inexistencia; nos permite afirmar, por ejemplo, que no es posible
tener un cuerpo con 6 elementos.
Puesto que GF(pm ) es un espacio vectorial, se dispone de inmediato de la
siguiente caracterizacin de su grupo aditivo, que muestra que la estructura
aditiva de un cuerpo finito es esencialmente la de su subcuerpo primo.

Teorema 9.3 (Estructura aditiva de un cuerpo finito). (C, +),


el grupo aditivo de un cuerpo C de cardinal pm (p primo), es isomorfo al
grupo ( /p , +) ( /p , +), el producto directo de orden m del grupo
( /p , +).

Demostracin. Sea B = {1 , 2 , . . . , m } un conjunto mximo de ele-


mentos de C linealmente independientes sobre GF(p). La aplicacin

: (C, +) ( /p , +) ( /p , +)

que a cada C le hace corresponder sus coordenadas en la base B es


claramente un isomorfismo de grupos.

Analicemos ahora la estructura de un cuerpo finito en relacin con la


operacin producto. Sea un elemento no nulo de C. Los elementos ,
2 = , 3 = , ... son todos no nulos y, de nuevo, como C consta
de un nmero finito de elementos, debe existir un entero r < q para el que
r = 1, de tal forma que la secuencia 1, , 2 , . . . es peridica de periodo
r. Es fcil comprobar que el primer elemento que se repite en la sucesin
1, , 2 , . . . es en verdad r = 1, ya que si para algn j 6= 0 fuese i = j
entonces ij = 1, e i j < i.
El menor ndice r tal que r = 1 se llama orden del elemento y es
obvio que el conjunto
{1, , 2 , . . . , r1 }
compuesto por todas las potencias distintas de es un subgrupo multiplica-
tivo de C . Si se conoce el orden de un elemento de un grupo multiplicativo,
se puede obtener de inmediato el orden de cualquiera de sus potencias.

Lema 9.4. Si es un elemento de orden r de un grupo multiplicativo, el


orden de i es
r
(i, r)
en donde (i, r) representa el mximo comn divisor de i, r.
280 Cuerpos finitos

Demostracin. Es fcil ver que


 (i,r)
r i
i = (r ) (i,r) = 1.

Sea x el orden de i , (i )x = 1. Entonces r divide a ix, lo que implica que


r/(i, r) divide a x. Pero, por la identidad anterior, x divide a r/(i, r). Por
lo tanto, el orden de es r/(i, r).

Teorema 9.5. Si es un elemento no nulo de un cuerpo de cardinal q,


entonces q1 = 1.

Demostracin. Sean 1 , 2 , . . . , q1 todos los elementos del cuerpo dis-


tintos de 0. Entonces

(1 )(2 ) (q1 ) = q1 1 2 q1 = 1 2 q1

puesto que {1 , . . . , q1 } es una permutacin de {1 , . . . , q1 }. Por


lo tanto, q1 = 1 o, lo que es igual, es raz del polinomio xq1 1.

Teorema 9.6. El orden de un elemento no nulo de GF(q) es un divisor de


q 1.

Demostracin. Este resultado es elemental: vea que, por definicin, si


GF(q) tiene orden r, entonces n = 1 si y solamente si r divide a n;
ya que de no cumplirse esto, se podra escribir que n = rs + t con t 6= 0, y
entonces n = t sr = t = 1 con t < r, lo que no es posible. En particular,
como segn el teorema anterior q1 = 1, resulta que r es un divisor de q1.
Por otro lado, si GF(q) es un elemento de orden r, el conjunto
{1, , . . . , r1 } es un subgrupo multiplicativo de r elementos del grupo
GF(q) \ {0}. En virtud del teorema de Lagrange,4 r divide a q 1.

Por tanto, como consecuencia de este teorema y del lema 9.4, se tiene
que, en un cuerpo de caracterstica q, los elementos y q tienen igual
orden. Si en un cuerpo de cardinal q existiese un elemento de orden q 1,
entonces al subgrupo multiplicativo

Fq = {, 2 , . . . , q1 = 1}

perteneceran todos los elementos no nulos del cuerpo, y se podra escribir


que GF(q) = {0, 1, , 2 , . . . , q2 }. Cuando en un grupo finito existe algn
4 El teorema de Lagrange establece que cualquier subgrupo (H, ) de un grupo (G, )

posee un nmero de elementos que divide al nmero de elementos de G. Para probar tal
cosa, basta con definir los cogrupos a H, a G, que tienen cada uno tantos elementos
como H y forman una particin de G.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 281

elemento tal que todos los dems son, con notacin multiplicativa, una
potencia suya, se llama a elemento generador del grupo, y se dice de ste
que es un grupo cclico. Un elemento de un cuerpo con la propiedad de que
sus potencias engendran todos los dems elementos distintos de cero recibe
el nombre de elemento primitivo (vase de nuevo el ejemplo 9.2). Pues bien,
en todo cuerpo finito hay al menos un elemento primitivo; o, por expresarlo
de otra forma, (C , ), el conjunto de elementos del cuerpo distintos de cero,
es siempre un grupo multiplicativo cclico.

Teorema 9.7 (Estructura multiplicativa de los cuerpos finitos).


En todo cuerpo finito existe un elemento primitivo.

Demostracin. Sea un elemento de orden r mximo. Por supuesto,


segn se desprende del teorema 9.5, es r q 1. Sea otro elemento de
orden s < r, y, para cualquier nmero primo p, supngase que r = pa r0 y
a
que s = pb s0 , con r0 y s0 no divisibles por p. As, p es un elemento de
0
orden r0 , s es un elemento de orden pb y, por ser r0 y pb primos entre s,
a 0
p s es un elemento de orden pb r0 . Luego b a, o de otro modo r no
sera mximo. En suma, cualquier factor primo que divida a s tambin debe
dividir a r, y en consecuencia s es un divisor de r, de donde se sigue que el
orden de cualquier elemento no nulo de un cuerpo divide siempre al mayor
de los rdenes de todos los elementos.
Como cualquier elemento no nulo es, por todo lo anterior, raz del poli-
nomio xr 1, este polinomio es divisible por
Y
(x ).
GF(q)\{0}

Dado que GF(q) contiene q1 elementos no nulos, necesariamente r q1.


Combinando esta desigualdad con la que afirma que r q 1, se concluye
finalmente que r = q 1, lo que significa que es un elemento primitivo.

Aplicando el lema 9.4, es un corolario inmediato verificar que si es un


elemento primitivo de un cuerpo de caracterstica p, tambin son primitivos
2 m1
p , p , . . . , p .
As pues, el producto de dos elementos no nulos de un cuerpo de cardinal
q se reduce al producto mdulo-(q 1) de sus exponentes.

Teorema 9.8 (Estructura multiplicativa de los cuerpos finitos).


(Fq , ), el grupo multiplicativo de los elementos no nulos del cuerpo GF(q),
es isomorfo a ( q1, ).

Demostracin. Obviamente, la aplicacin (i ) = i, con un elemento


primitivo de GF(q), es un isomorfismo de grupos entre (Fq , ) y ( q1, ).
282 Cuerpos finitos

Combinando el lema 9.4 con el teorema 9.7, se obtiene directamente el


nmero de elementos de un orden dado en GF(q). Para un entero positivo
t, sea (t) la funcin de Euler, que se define como el nmero de enteros i
en {1, 2, . . . , t 1} tales que mcd(i, t) = 1.

Teorema 9.9.

a) El nmero de elementos de orden t en GF(q) es 0 si t no es un divisor


de q 1; o es (t) si t divide a q 1.
X
b) (t) = q 1.
t|q1

Demostracin.

a) Sea un elemento de GF(q) de orden t. El orden de i es igual a t


si y slo si (i, t) = 1. El nmero de estos elementos es, por definicin,
(t).

b) El nmero de elementos no nulos de GF(q) es precisamente


X
(t).
t|q1

P
La identidad t|q1 (t) = q 1 es un caso particular de un teorema
debido
P a Gauss que afirma que para cualquier entero m se cumple que
t|m (t) = m.

El teorema 9.7 tambin trae como consecuencia un hecho notable: las


q races de la ecuacin algebraica xq x = 0 son todas distintas y poseen
estructura de cuerpo cuando q es potencia de un nmero primo.

Corolario 9.10 (Teorema de Fermat). Todo elemento de un cuerpo


de cardinal q es raz de la ecuacin xq = x, y entonces
Y
xq x = (x ).
GF(q)

La prxima proposicin indica cules son los posibles subcuerpos de un


cuerpo dado. Antes de analizarla se precisa un resultado preparatorio.

Lema 9.11. El polinomio xa 1 divide a xb 1 si y solamente si a es un


divisor de b.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 283

Demostracin. La prueba de la condicin suficiente es inmediata, ya que


si b = ac,
xb 1 = xac 1 = (xa 1)(xa(c1) + xa(c2) + + x2a + xa + 1).
Para probar que tambin es condicin necesaria, supngase que b no fuese
mltiplo de a
b = qa + r, 0 < r < a.
Entonces
xb 1 rx
qa
1 xr 1
= x + a .
xa 1 xa 1 x 1
Pero xa 1 siempre es factor de xqa 1, mientras que, en cambio, xa 1
nunca divide a xr 1 porque r < a. Y como, por hiptesis, xa 1 divide a
xb 1, necesariamente ha de ocurrir que r = 0, es decir, a divide a b.

Teorema 9.12 (Caracterizacin de subcuerpos).

a) El cardinal de un subcuerpo de GF(pm ) es ps , siendo s un divisor


positivo de m. Recprocamente, si s divide a m, entonces GF(ps )
GF(pm ).
b) Adems, si es un elemento primitivo de GF(pm ), entonces = t ,
t = (pm 1)/(ps 1), es un elemento primitivo de GF(ps ), y
n s
o
GF(ps ) = GF(pm ) : p = .

Demostracin.

a) Sea F un subcuerpo de GF(pm ). Es claro que F tiene caracterstica p


y debe tener cardinal ps para algn s m. Sin embargo, GF(pm ) es
tambin un espacio vectorial sobre F , por lo que, si su dimensin es
r, pm = (ps )r y s divide a m.
s
Si s es un divisor de m, entonces ps 1 divide a pm 1 y xp 1 1
m s m
divide a xp 1 1. Por consiguiente, xp x es un divisor de xp x, y
las races del primer polinomio lo son tambin del segundo. Pero, por
s
el teorema de Fermat, las races de xp x son un cuerpo isomorfo a
m
GF(ps ) y las de xp x son un cuerpo isomorfo a GF(pm ). Se concluye,
en consecuencia, que GF(ps ) GF(pm ).
b) Por ltimo, si es un elemento primitivo de GF(pm ) y
pm 1
t=
ps 1
es claro que = t es un elemento de orden ps 1 y que GF(ps ) =
s
{0, , 2, . . . , p 2 }.
284 Cuerpos finitos

As, los subcuerpos contenidos en GF(pm ) podrn obtenerse sin ms


que enumerar todos los enteros positivos divisores de m. Y, en particular,
el subcuerpo primo de un cuerpo finito de caracterstica p es el subconjunto
de elementos que verifican p = .

Ejemplo 9.3. Con frecuencia se representan esquemticamente los subcuer-


pos de un cuerpo finito, por ejemplo de GF(230 ), en un diagrama reticular
como el siguiente, en el que los arcos y caminos del grafo simbolizan la inclu-
sin. Las relaciones de inclusin mutuas entre estos cuerpos son las mismas
que las relaciones de divisibilidad entre los factores enteros de 30.

GF(230 )

GF(26 ) GF(210 ) GF(215 )

GF(23 )
GF(22 ) GF(25 )

GF(2)

Por ltimo, he aqu un par de identidades que simplifican un sinnmero


de expresiones aritmticas en un cuerpo de caracterstica finita. Ambas son
una consecuencia de la estructura aditiva del mismo.

Teorema 9.13. En un cuerpo conmutativo de caracterstica p,

(a + b)p = ap + bp .

Demostracin. En cualquier cuerpo conmutativo (finito o infinito),


p  
X p
(a + b)p = ai bpi
i=0
i

donde, por definicin,    


p p
= =1
0 p
y  
p p(p 1) (p i + 1)
= , i = 1, . . . , p 1.
i i(i 1) 1
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 285

Pero pi 0 mod p para i = 1, . . . , p 1, porque siendo el numerador
mltiplo de p y el denominador no, pi es mltiplo de p.

Corolario 9.14. Si 1 , 2 , . . . , n son elementos del cuerpo GF(pm ), en-


tonces, para cualquier r 0,
r r r r
(1 + 2 + + n )p = p1 + p2 + + pn .

Demostracin. Por induccin en r y en n.

La aplicacin

p : GF(pm ) GF(pm )
p

es un automorfismo de GF(pm ), conocido como automorfismo de Galois. p


tiene orden m (pm es la aplicacin identidad), y sus puntos fijos son los
del subcuerpo primo GF(p). Tomando como producto la composicin de
aplicaciones, el conjunto de todos los automorfismos de un cuerpo de carac-
terstica p forma un grupo cclico generado por el automorfismo de Galois,
ya que cualquier automorfismo transforma elementos primitivos en elemen-
tos primitivos. La accin del automorfismo de Galois se extiende de forma
natural al anillo de los polinomios de Fp [x], como se expone seguidamente.

Corolario 9.15. Si Q(x) es un polinomio con coeficientes en GF(p), con


p primo, entonces
p (Q(x)) = (Q(x))p = Q(xp )
en GF(pm ).

Demostracin. Si
n
X
Q(x) = q i xi , qi GF(p)
i=0

entonces, por el teorema 9.13,

Qp (x) = (q0 + + qn xn )p = (q0p + q1p xp + + qnp xnp ).

Y como, segn el teorema de Fermat, qi GF(p) qip = qi , resulta


p
(Q(x)) = q0 + q1 xp + + qn xnp = Q(xp ).
286 Cuerpos finitos

9.4. Polinomios mnimos

El teorema de Fermat afirma que cualquier elemento de un cuerpo


de cardinal q y caracterstica p es una raz del polinomio xq x Fp [x].
Pero bien pudiera ocurrir que existiesen otros polinomios con coeficientes de
GF(p) que no fuesen mltiplos de xq x y que tuviesen tambin a como
un cero.
Siendo P (x) uno de ellos, como es evidente que si P () = 0 entonces
para cualquier escalar distinto de cero es P () = 0, se puede suponer
sin prdida de generalidad que P (x) es mnico, esto es, que el coeficiente
de su trmino de mayor exponente vale 1.

Definicin 9.6. Sea F un subcuerpo del cuerpo C. El polinomio mnimo


M (x) de C sobre F es el polinomio mnico de menor grado con coefi-
cientes de F que admite a como raz, M () = 0.

Ejemplo 9.4. La tabla siguiente da la lista de los polinomios mnimos de


los elementos de F2 [x]/x4 + x + 1 sobre F2 [x]; es el elemento primitivo x.

Elemento Polinomio mnimo Elemento Polinomio mnimo


7
0 x x4 + x 3 + 1
1 x+1 8 x4 + x + 1
x4 + x + 1 9 x + x3 + x2 + x + 1
4

2 x4 + x + 1 10 x2 + x + 1
3 x4 + x 3 + x 2 + x + 1 11 x4 + x 3 + 1
4 x4 + x + 1 12 x4 + x 3 + x 2 + x + 1
5 x2 + x + 1 13 x4 + x 3 + 1
6 x4 + x 3 + x 2 + x + 1 14 x4 + x 3 + 1

Observe que los elementos {1 , 2 , 4 , 8 } poseen el mismo polinomio m-


nimo; y que lo mismo les sucede a {3 , 6 , 9 , 12 }, a {7 , 11 , 13 , 14 } y
a {5 , 10 }.

Dos elementos de un cuerpo con idntico polinomio mnimo sobre el


mismo subcuerpo F son conjugados.5 De la definicin se desprenden varias
propiedades sencillas e importantes acerca de los polinomios mnimos.

Teorema 9.16. Sea GF(pm ) una extensin de GF(p), y sea un elemento


de GF(pm ) con polinomio mnimo M (x) en Fp [x].

a) M (x) es irreducible en Fp [x] y nico.


5 Esta es la razn de que en el cuerpo de los nmeros complejos los nmeros i y i se
digan conjugados: ambos tienen al polinomio real x2 + 1 como polinomio mnimo.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 287

b) Si g(x) es un polinomio de Fp [x] y g() = 0, M (x) divide a g(x).


m
c) M (x) divide a xp x.

d) El grado de M (x) es un divisor de m.

e) El polinomio mnimo de un elemento primitivo de GF(pm ) es de grado


m.

Demostracin.

a) La prueba procede por simple contradiccin. Si M (x) no fuese irredu-


cible en Fp [x], sera el producto de otros dos de menor grado, M (x) =
Q1 (x)Q2 (x). Pero M () = 0 implica Q1 () = 0 o Q2 () = 0, y
M (x) no sera mnimo. Para probar la unicidad, supngase que exis-
tiesen en Fp [x] dos polinomios mnicos distintos de grado mnimo con
P () = Q() = 0. P (x) Q(x) sera entonces un polinomio de grado
inferior a ambos, y uno de sus ceros.

b) Llamemos r(x) 6= 0 al resto de dividir g(x) entre M (x): g(x) =


c(x)M (x) + r(x). Pero r() = g() c()M () = 0, con r(x) de
grado inferior a M (x), lo que no es posible. Por tanto, r(x) = 0.

c) Se trata de una consecuencia del teorema de Fermat y de un caso


m
particular del punto anterior: p = para todo GF(pm ).

d ) Si M (x) tiene grado s, como es irreducible, se puede utilizar para


construir el cuerpo GF(ps ) GF(pm ). Pero entonces s es un divisor
de m.

e) Sea un elemento primitivo. Si M (x) es de grado n, entonces con l se


puede construir GF(pn ). Pero, por ser primitivo, GF(pm ) GF(pn ).
Y como n es un divisor de m, solamente puede ser m = n.

Definicin 9.7. El polinomio mnimo de un elemento primitivo es un po-


linomio primitivo.

Gracias a estas propiedades se probarn ahora los dos resultados ms


importantes de este captulo. En primer lugar, la unicidad de todos los
cuerpos de igual cardinal.

Teorema 9.17. Todos los cuerpos de cardinal pm son isomorfos.


288 Cuerpos finitos

Vector Polinomio F2 [x]/x4 + x3 + 1 F2 [x]/x4 + x + 1


0000 0 0 0
0001 1 1 1
0010 x
0100 x2 2 2
1000 x3 3 3
3
1001 x +1 4 14
1011 x3 + x + 1 5 7
1111 x 3 + x2 + x + 1 6 12
0111 x2 + x + 1 7 10
1110 x 3 + x2 + x 8 11
0101 x2 + 1 9 8
1010 x3 + x 10 9
1101 x 3 + x2 + 1 11 13
0011 x+1 12 4
0110 x2 + x 13 5
1100 x 3 + x2 14 6

Tabla 9.2. Dos versiones del cuerpo de cardinal 16.

Demostracin. Tomemos dos cuerpos, C1 y C2 , de cardinal pm . Sea


un elemento primitivo del primero, y M (x) su polinomio mnimo, que di-
m
vide a xp x y es de grado m. En este supuesto, el teorema de Fermat
implica la existencia en C2 de un elemento cuyo polinomio mnimo es
precisamente M (x). Para comprender por qu, es suficiente con observar
que si M1 (x), . . . , Mr (x) son todos los polinomios mnimos distintos de los
m
elementos de C1 , dado que son irreducibles y divisores de xp x, entonces
r
Y
m
xp x = Mj (x)
j=1

m
es la nica descomposicin de xp x en factores irreducibles sobre Fp [x];
acontece siempre, en suma, que dos cuerpos del mismo cardinal tienen el
mismo conjunto de polinomios mnimos.
Pero C1 puede interpretarse como el conjunto de polinomios de grado
menor que m en la indeterminada , o como el conjunto de polinomios de
Fp [x] mdulo M (x). De manera anloga, C2 incluye (y, por lo tanto, es) el
conjunto de polinomios de grado menor que m en la indeterminada . La
transformacin es, obviamente, un isomorfismo entre C1 y C2 .

Ejemplo 9.5. El polinomio x4 + x3 + 1 es irreducible en F2 [x], y genera el


cuerpo F2 [x]/x4 + x3 + 1, que se relaciona en la tabla 9.2, siendo = x un
elemento primitivo suyo. El polinomio mnimo del elemento 7 es M7 (x) =
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 289

x4 + x + 1, lo que hace de la transformacin 7 una biyeccin entre


los cuerpos F2 [x]/x4 + x + 1 y F2 [x]/x4 + x3 + 1. En la tabla 9.2 se han
representado las dos versiones de estos cuerpos de cardinal 16. As, por
ejemplo, la expresin + 2 = 5 en el primero se convierte en 7 + ( 7 )2 =
( 7 )5 en el segundo. Note que 7 es un elemento primitivo de F2 [x]/x4 +
x3 + 1, pues un isomorfismo entre dos cuerpos necesariamente convierte
elementos primitivos en elementos primitivos.
Un isomorfismo entre dos cuerpos es simplemente una forma de reescribir
los elementos del primero sin cambiar la aritmtica, es decir, preservando
formalmente la suma y la multiplicacin.

Y en segundo lugar, que el cuerpo de Galois GF(pm ) existe siempre o,


por expresarlo de otro modo, que existen polinomios irreducibles en Fp [x],
para p primo, de cualquier grado m 1.

Teorema 9.18. Dados p primo y m 1, existe un cuerpo de orden pm .

Demostracin. Si m = 1 el cuerpo es simplemente GF(p), construido


como en el ejemplo 9.1. Para m > 1, la tcnica de la demostracin ser
construir una sucesin de cuerpos finitos hasta obtener uno que contenga a
m
todas las races de xp x y conste exactamente de pm elementos.
Sea, entonces, p1 (x) un polinomio irreducible de grado al menos 2 sobre
m
C1 = GF(p), factor de xp x (vid. el teorema 9.23 que afirma que existen
polinomios irreducibles de grado cualquiera). A partir de l construyamos
el cuerpo C2 tal como se hizo en el apartado 9.2: C2 ser el conjunto de
polinomios de grado menor que p1 (x) con coeficientes de C1 . Si C2 es de
m
cardinal menor que pm , seleccionemos un factor irreducible de xp x sobre
C2 , y apliquemos de nuevo la construccin del apartado 9.2 para obtener
una extensin C3 del cuerpo C2 . Procediendo de esta forma, tras un nmero
m
finito de etapas habremos obtenido un cuerpo con todas las races de xp x.
Observacin: el teorema 9.22 garantiza la existencia de al menos un
m
factor irreducible de xp x sobre Fp [x] con grado s divisor de m, por
lo que la construccin de un cuerpo finito a partir de un subcuerpo suyo
siempre podr realizarse en un nico paso.

Ejemplo 9.6. Podemos construir GF(24 ) de dos formas distintas extendien-


4
do GF(2). El polinomio x2 + x + 1 es un factor irreducible de x2 x sobre
C1 = GF(2), razn por la que se puede afirmar que GF(4) es isomorfo al
conjunto C2 = {0, 1, x, x + 1} = {0, 1, , 2 } de residuos polinmicos mdulo
4
x2 + x + 1. Y, sobre C2 , x2 + x + 1 es un divisor irreducible de x2 x, de
manera que podemos utilizar x2 + x + 1 para construir un cuerpo isomorfo
4
a GF(24 ). Por otro lado, (x) = x4 +x+1 es un factor irreducible de x2 x
290 Cuerpos finitos

sobre el cuerpo binario; el conjunto de residuos polinmicos mdulo (x)


engendra, pues, (otro cuerpo isomorfo a) GF(24 ).

9.5. Factorizacin de xn 1

El problema de la factorizacin del polinomio xn 1 sobre un cuerpo


GF(q) es fundamental en el estudio de los cdigos cclicos. Adems, cuando
n = q m 1, tal factorizacin da los polinomios mnimos de los elementos de
GF(q m ) sobre GF(q). Se ver en este apartado que la estructura bsica de
la descomposicin de xn 1 en factores irreducibles depende tan slo de q
y n.
Para ello, basta suponer el caso en que q y n son primos entre s. De lo
contrario, si n = rq, sera xn 1 = (xr 1)q , y xn 1 tendra races con
multiplicidad q. Por tanto, si mcd(n, q) = 1, todas las races de xn 1 son
simples y distintas, y se conocen como races n-simas de la unidad.
Un importante resultado de la teora de nmeros, el teorema de Fermat
Euler, establece que, para q y n primos relativos, existe un entero positivo
m mnimo tal que q m 1 es divisible por n. El exponente m se conoce
como orden multiplicativo de q mdulo n, y es posible probar que, como
m
consecuencia, el polinomio xn 1 divide a xq 1 1 pero no divide a
q s 1
x 1 para ningn s < m. Quiere esto decir que las races de xn 1
pertenecen al cuerpo finito GF(q m ), y que no hay ningn otro cuerpo menor
de caracterstica q que las contenga. Las races n-simas de la unidad son un
subgrupo cclico de GF(q m ) cuyo elemento generador recibe el nombre de
raz primitiva n-sima de la unidad. Cuando n = pm 1, el menor cuerpo
de caracterstica p al que pertenecen las races n-simas de la unidad es
precisamente GF(pm ) y una raz primitiva es un elemento primitivo del
cuerpo.
El siguiente resultado da una caracterizacin de los polinomios que tie-
nen entre sus ceros a alguna raz n-sima de la unidad.

Teorema 9.19. Sean f (x) un polinomio con coeficientes en GF(q) y una


raz de f (x) en la extensin GF(q s ).

a) q es una raz de f (x) en GF(q s ).


b) Si tiene orden n y t es el orden multiplicativo de q mdulo n, en-
t1
tonces , q , ..., q son races distintas de f (x) en GF(q s ).

Demostracin. Ambas partes son una consecuencia inmediata del coro-


lario 9.15. En el caso particular de que f (x) sea el polinomio mnimo de ,
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 291

t1
ello implica que , q , ..., q son elementos conjugados.

De acuerdo con el resultado precedente, si es una raz primitiva de la


k1
unidad y 0 s < n, los elementos s , sq , ..., sq son conjugados, siendo
k el menor entero tal que sq k s mod n. Por consiguiente, la operacin de
multiplicar por q (mdulo n) induce una particin de los enteros 0 s < n
en los conjuntos
As = {s, sq, . . . , sq k1 } mod n.
As es el conjunto q-ciclotmico (mdulo n) de representante s. Visto de
manera equivalente, los conjuntos q-ciclotmicos definen una particin de
las races n-simas de la unidad en las clases de elementos conjugados
k1
Cs = {s , sq , . . . , sq }

que son clases de elementos del mismo orden.

Ejemplo 9.7. Los conjuntos 2-ciclotmicos mdulo 15 son:

A0 = {0} A5 = {5, 10}


A1 = {1, 2, 4, 8} A7 = {7, 14, 13, 11}
A3 = {3, 6, 12, 9}

y {0 }, {1 , 2 , 4 , 8 }, {3 , 6 , 12 , 9 }, {5 , 10 }, {7 , 14 , 13 , 11 } son
las clases de elementos conjugados de GF(16) ( un elemento primitivo) con
rdenes respectivos 1, 15, 5, 3 y 15. Los conjuntos ciclotmicos de 2 mdulo
31 son:

B0 = {0}
B1 = {1, 2, 4, 8, 16}
B3 = {3, 6, 12, 24, 17}
B5 = {5, 10, 20, 9, 18}
B7 = {7, 14, 28, 25, 19}
B11 = {11, 22, 13, 26, 21}
B15 = {15, 30, 29, 27, 23}

Tenga presente que cualquier elemento no nulo de GF(32), a excepcin de


la unidad, tiene orden 31. Normalmente se elige como representante de un
conjunto ciclotmico, por comodidad, al menor de sus elementos, aunque
este convenio no tiene la menor trascendencia.

El teorema 9.19 apunta una relacin directa entre polinomios mnimos


y conjuntos ciclotmicos.
292 Cuerpos finitos

Teorema 9.20. Sea GF(q s ) una extensin de GF(q) y sea una raz pri-
mitiva n-sima en GF(q s ).

a) El polinomio mnimo de s sobre GF(q) es


Y
Ms (x) = (x i ),
iAs

siendo As el conjunto q-ciclotmico de representante s.


Q
b) xn 1 = j Mj (x), en donde el ndice j recorre todos los represen-
tantes distintos de los conjuntos q-ciclotmicos.

Demostracin.
Q
a) Se probar en primer lugar que iAr (x i ) es un polinomio con
coeficientes en GF(q).
w1
r rq
Supngase que el conjunto ciclotmico . . . , rq
Q Ar = {i , P, w }
tiene w elementos. Los coeficientes de iAr (x ) = j=0 aj xj son
w1
las funciones elementales simtricas de los elementos r , . . . , rq .
Explcitamente
w1
a0 = (r ) (rq )
w1
X k
a1 = (1) rq
k=0
..
.
X
aj = (1)j i 1 i j , i1 , . . . , ij {r, rq, . . . , rq w1 }
i1 6=i2 6=6=ij
..
.
aw = 1
Esto es, para j < w, el coeficiente aj es la suma de productos de la
forma i1 i2 ij , recorriendo todas las combinaciones de j expo-
nentes i1 , . . . , ij del conjunto ciclotmico Ar , distintos entre s. Ahora
bien, 0 0
(i1 i2 ij )q = qi1 qij = i1 ij
en donde {i01 , . . . , i0j } es una permutacin de {i1 , . . . , ij }. As pues,
aqj = aj para j = 0, . . . , w, lo que significa que aj GF(q).
Q
Para probar que iAr (x i ) es el polinomio mnimo de r , es
suficiente observar que ningn otro polinomio mnico de menor grado
se anula en r y en todos sus conjugados.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 293

b) Es obvio que
Y Y Y Y
xn 1 = (x i ) = (x i ) = Mj (x)
ij Aj j iAj j

en donde j recorre el conjunto de representantes de los conjuntos ci-


clotmicos.

En consecuencia, los grados de los factores irreducibles de xn 1 son los


cardinales de los conjuntos q-ciclotmicos.
Aplicando el teorema 9.20 a un elemento primitivo tenemos que

Teorema 9.21. Sea un elemento primitivo de GF(q m )


m Y
xq x = x Mj (x).
jA

m
Habiendo observado que xp x es el producto de todos los polinomios
mnimos del cuerpo GF(pm ) sobre Fp [x], y recordando que estos polinomios
mnimos son siempre irreducibles y de grado menor o igual que m, cabra
m
preguntarse qu polinomios irreducibles sobre Fp [x] dividen a xp x? La
respuesta es que son todos los polinomios mnicos irreducibles cuyo grado
m
es un divisor de m. As que la descomposicin de xp x que se acaba de
deducir sirve no slo para calcular los polinomios mnimos, sino tambin
para calcular de paso todos los posibles polinomios irreducibles de cierto
grado.

Teorema 9.22. Cualquier polinomio mnico irreducible en Fq [x] cuyo grado


m
sea un divisor de m es factor de xq x.

Demostracin. Sea p(x) mnico e irreducible en Fq [x], con grado r divisor


de m. Como el caso p(x) = x es trivial, supongamos que p(x) 6= x. Con p(x)
se puede construir el cuerpo GF(q r ) GF(q m ), en el que existir, por tanto,
un elemento que tenga a p(x) como polinomio mnimo, y adems p(x) ser
r r m
divisor de xq 1 1. Como, por el lema 9.11, xq 1 1 divide a xq 1 1,
m m
se concluye que p(x) es factor de xq 1 1 y tambin de xq x.

Ejemplo 9.8. Hallemos todos los polinomios binarios irreducibles de gra-


5
do 5 calculando la factorizacin de x2 x en polinomios mnimos. Los
conjuntos ciclotmicos de 2 mdulo 31 son:
A0 = {0} A7 = {7, 14, 28, 25, 19}
A1 = {1, 2, 4, 8, 16} A11 = {11, 22, 13, 26, 21}
A3 = {3, 6, 12, 24, 17} A15 = {15, 30, 29, 27, 23}
A5 = {5, 10, 20, 9, 18}
294 Cuerpos finitos

Si para construir GF(25 ) se parte del polinomio irreducible y primitivo


x5 + x2 + 1, los polinomios mnimos asociados a los anteriores conjuntos
ciclotmicos valen, aplicando directamente el teorema 9.21:

M0 (x) = x + 1 M7 (x) = x5 + x3 + x2 + x + 1
M1 (x) = x5 + x2 + 1 M11 (x) = x5 + x4 + x3 + x + 1
M3 (x) = x5 + x4 + x3 + x2 + 1 M15 (x) = x5 + x3 + 1
M5 (x) = x5 + x4 + x2 + x + 1

Entonces

x31 1 = M0 (x)M1 (x)M3 (x)M5 (x)M7 (x)M11 (x)M15 (x).

Observe que, como 5 es un nmero primo, los factores de x32 x slo pueden
tener grado 1 o grado 5, y GF(2) es el nico subcuerpo de GF(25 ). Observe
tambin que x5 + x2 + 1 y x5 + x3 + 1 son recprocos, en el sentido de que los
coeficientes de uno son los del otro escritos en sentido inverso. La relacin
algebraica general entre un polinomio p(x) y su recproco pr (x) es

pr (x) = xgrado de p(x) p(x1 ),

que expresa que las races del polinomio recproco son, aparte del cero, los
inversos de las races de p(x). En el caso presente, tambin son recprocos
los factores M3 (x) y M7 (x), as como M5 (x) y M11 (x).

Finalmente, otra importante implicacin del teorema 9.22 es que permite


asegurar que en Fp [x] existen polinomios irreducibles de cualquier grado.

Teorema 9.23. Sea Ip (m) el nmero de polinomios mnicos irreducibles


de grado m 1 con coeficientes en GF(p). Se verifica que

Ip (m) 1 m, p.

Demostracin. Elijamos p primo y m 1 arbitrarios. En virtud del teo-


m
rema 9.21, el polinomio xp x es igual al producto de todos los polinomios
mnicos irreducibles sobre GF(p) cuyo grado sea un divisor de m. As pues,
igualando los grados X
pm = dIp (d)
d|m

en donde d | m indica que d es un divisor de m. A partir de esta identidad,


se tiene en primer lugar que p = Ip (1). Tomando slo el primer y el ltimo
sumandos, y como Ip (d) 0, se obtiene la cota

pm p
pm p + mIp (m) Ip (m)
m
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 295

en la que se alcanza la igualdad estricta slo si m es un nmero primo. Esto


significa, en particular, que Ip (2) = (p2 p)/2 > 0. Pero adems, el nmero
de polinomios irreducibles se puede acotar inferiormente viendo que
m/2
X
m
p mIp (m) + pi < mIp (m) + pm/2+1 ,
i=1

es decir, que
pm pm/2+1 pm  
Ip (m) > = 1 pm/2+1
m m
y que Ip (m) > 0 para cualquier m 2. Puesto que ya se dedujo que tanto
Ip (1) como Ip (2) son no nulos, el teorema queda probado.

Ntese que, como el polinomio mnimo de los elementos primitivos de


GF(pm ) es irreducible y de grado m, e Ip (m) 1, resulta que existen
polinomios primitivos de cualquier grado m 1 sobre GF(p). Es decir, para
construir GF(pm ) (apartado 9.2) siempre es posible elegir un polinomio
primitivo de grado m.
Por otro lado, es posible formalizar un argumento de cuenta distinto
para obtener el nmero de polinomios irreducibles. Sea ak el nmero de
polinomios mnicos de grado k en Fp [x] y definamos el siguiente polinomio
enumerador de polinomios mnicos:

X
A(z) = ak z k .
k=0

Puesto que ak = pk , es inmediato ver que A(z) = (1 pz)1 . Ahora, sea


p(x) un polinomio irreducible en Fp [x] de grado r y considrese el conjunto
formado por todas las potencias de p(x). El enumerador de grados de los
polinomios de este conjunto es el polinomio
1 + z r + z 2r + = (1 z r )1 .
Si un polinomio mnico de Fp [x] es el producto de k factores irreducibles, de
grados m1 , m2 , . . . , mk , cada uno de ellos elevado a las potencias i1 , i2 . . . , ik ,
entonces podemos identificar este polinomio mnico con uno y slo uno de
los trminos de grado i1 + i2 + + ik del producto
(1 z m1 )1 (1 z m2 )1 (1 z mk )1
y viceversa, cualquiera de los trminos que aparece al desarrollar este pro-
ducto representa un nico polinomio mnico. Si existen Ip (m) polinomios
irreducibles de grado m en Fp [x], podemos extender este argumento de la
siguiente manera.
296 Cuerpos finitos

Teorema 9.24.

Y
1 Ip (m)
(1 pz) = (1 z m ) .
m=1

Demostracin. El conjunto de todos los polinomios mnicos de Fp [x] es


igual al conjunto de todos los posibles productos entre los polinomios irre-
ducibles de Fp [x].

Derivando con respecto a z ambos miembros de la anterior identidad,


resulta
X
p mIp (m)z m1
2
=
(1 pz) m=1
(1 pz)(1 z m )
o bien

X
pz zm
= mIp (m) .
1 pz m=1 1 zm
Sustituyendo las fracciones por su desarrollo en serie, esta igualdad se puede
escribir como

X
X
X
X X
(pz)k = mIp (m) z mj = mIp (m) zk
k=1 m=1 j=1 m=1 k:m|k

X X
= zk mIp (m).
k=1 m|k

E igualando los coeficientes asociados al mismo exponente queda finalmente


X
pm = dIp (d)
d|m

tal y como fue utilizada en el teorema 9.23.


El clculo explcito del nmero de polinomios irreducibles de un grado
dado puede efectuarse apelando a la frmula de inversin de Moebius
1 X
Ip (m) = (d)pm/d
m
d|m

en donde (d) es la funcin de Moebius




1 si d = 1
r
(d) = (1) si d es el producto de r primos distintos


0 en otro caso.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 297

9.6. Periodo de un polinomio

Un problema ntimamente relacionado con la factorizacin de xn 1 y,


en cierto modo, inverso a aqul es el siguiente: dado un polinomio mnico
f (x) Fq [x], cul es el menor entero n tal que f (x) divide a xn 1? O bien,
en lenguaje de la teora de cdigos, cul es, en el alfabeto Fq , la longitud
n del menor cdigo cclico engendrado por f (x)? Tal entero, que siempre
existe, se llama periodo de f (x).
Supongamos inicialmente que f (x) es un polinomio irreducible en Fq [x].
En tal caso, su periodo n es un divisor del orden multiplicativo de sus races,
es decir, n divide a q grado(f (x)) 1. Si f (x) fuese primitivo, su periodo sera
exactamente q grado(f (x)) 1.
El periodo de una potencia de f (x) puede hallarse con el siguiente razo-
namiento. f (x) solamente divide a xa 1 si a es un mltiplo de n. Supon-
gamos que a = pi j, con p la caracterstica de Fq y j un entero que no tiene
a p entre sus factores. Entonces
i
xa 1 = (xj 1)p .
Pero xj 1 no contiene races repetidas en ninguna extensin de Fq , pues q
y j son coprimos. Por lo tanto, xa 1 tiene races con multiplicidad pi . En
tal caso, el periodo de f (x)m ser igual a n, el periodo de f (x), multiplicado
por la menor potencia de p que es mayor o igual que m. Generalizando este
razonamiento, tendremos que

Teorema 9.25. Sea f (x) = f1 (x)e1 f2 (x)e2 fs (x)es la descomposicin de


f (x) en factores irreducibles sobre Fq [x], y sean n1 , n2 , . . . , ns los periodos
de estos factores. El periodo de f (x) es
mcm (n1 , n2 , . . . , ns ) pdlogp max1is ei e .

Por lo tanto, el problema queda reducido a hallar el periodo de los fac-


tores irreducibles de f (x). Puesto que el periodo de un factor de grado r es
un divisor de q r 1, un mtodo r
Q dei clculo consiste en descomponer q 1
en factores primos, q r 1 = pm i ; si
r mi
1)/(pi
x(q )
6 1 mod f (x)
entonces pm
i
i
es el periodo de f (x). En otro caso, repetiremos la misma
comprobacin con los factores psi , s < mi , y con el resto de los factores
primos de q r 1.

Ejemplo 9.9. Calculemos el periodo del polinomio irreducible g(x) = x8 +


x6 + x5 + x3 + 1. La tabla siguiente contiene los residuos mdulo g(x) de
algunas potencias xs
298 Cuerpos finitos

xi mod g(x) xi mod g(x)


x8 x6 + x 5 + x 3 + 1 x16 x+1
x10 x7 + x 6 + x 3 + x 2 + 1 x32 x2 + 1
x12 x7 + x 3 + x 2 + x + 1 x64 x4 + 1
x14 x7 + x 6 + x 5 + x 3 + x 2 + x x128 x6 + x 5 + x 3

El periodo debe ser un divisor de 28 1 = 3 5 17. Pues bien, se puede


comprobar directamente, haciendo uso de la tabla, que x15 6 1 mod g(x) y
que x17 6 1 mod g(x), de modo que el periodo no es ni 15 ni 17. Probando
con 5 7 = 35
x35 x32 x2 x 6 1 mod g(x)
y con 3 17 = 51

x51 x32 x16 x2 x 6 1 mod g(x).

Haciendo lo mismo con 5 17 = 85, x85 x64 x16 x4 x 6 1 mod g(x). De lo


que se concluye que el periodo es, necesariamente, 255.

Notas bibliogrficas

La teora de cuerpos finitos es una rama ya clsica del lgebra formal, y se


encuentra descrita en numerosos textos. Berlekamp [3] se ocupa de revisar
no slo los fundamentos sino tambin algunas relaciones con la teora de
nmeros y la factorizacin de polinomios. La obra de McEliece [47] aporta
un carcter ms bsico y asequible.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 299

Conjuntos Polinomio
+ ciclotmicos mnimo
00 0
01 1 {0} x+1
10 {1, 2} x2 + x + 1
11 2

Tabla 9.3. 4 , p(x) = x2 + x + 1.

Conjuntos Polinomio
+ + ciclotmicos mnimo
000 0 011 3
001 1 110 4 {0} x+1
010 111 5 {1, 2, 4} x3 + x + 1
100 2 101 6 {3, 6, 5} x 3 + x2 + 1

Tabla 9.4. 8 , p(x) = x3 + x + 1.

Conjuntos Polinomio
+ + ciclotmicos mnimo
0000 0 1011 7
0001 1 0101 8
0010 1010 9 {0} x+1
0100 2 0111 10 {1, 2, 4, 8} x4 + x + 1
1000 3 1110 11 {3, 6, 12, 9} x 4 + x3 + x2 + x + 1
0011 4 1111 12 {5, 10} x2 + x + 1
0110 5 1101 13 {7, 14, 13, 11} x 4 + x3 + 1
1100 6 1001 14

Tabla 9.5. 16 , p(x) = x4 + x + 1.


300 Cuerpos finitos

Conjuntos Polinomio
+ + ciclotmicos mnimo
00000 0 11111 15
00001 1 11011 16
00010 10011 17
00100 2 00011 18
01000 3 00110 19
10000 4 01100 20 {0} x+1
00101 5 11000 21 {1, 2, 4, 8, 16} x 5 + x2 + 1
01010 6 10101 22 {3, 6, 12, 24, 17} x 5 + x4 + x3 + x2 + 1
10100 7 01111 23 {5, 10, 20, 9, 18} x 5 + x4 + x2 + x + 1
01101 8 11110 24 {7, 14, 28, 25, 19} x 5 + x3 + x2 + x + 1
11010 9 11001 25 {11, 22, 13, 26, 21} x 5 + x4 + x3 + x + 1
10001 10 10111 26 {15, 30, 29, 27, 23} x 5 + x3 + 1
00111 11 01011 27
01110 12 10110 28
11100 13 01001 29
11101 14 10010 30

Tabla 9.6. 32 , p(x) = x5 + x2 + 1.

Conjuntos
+ + + + ciclotmicos
00 0 50 15 45 31 47 47
01 1 23 16 11 32 15 48 {0}
02 46 17 22 33 32 49 {1, 2, 4, 8, 16, 32}
04 2 17 18 44 34 64 50 {3, 6, 12, 24, 48, 33}
10 3 36 19 13 35 53 51 {5, 10, 20, 40, 17, 34}
20 4 74 20 26 36 25 52 {7, 14, 28, 56, 49, 35}
40 5 73 21 54 37 52 53 {9, 18, 36}
03 6 65 22 33 38 27 54 {11, 22, 44, 25, 50, 37}
06 7 51 23 66 39 56 55 {13, 26, 52, 41, 19, 38}
14 8 21 24 57 40 37 56 {15, 30, 60, 57, 51, 39}
30 9 42 25 35 41 76 57 {21, 42}
60 10 07 26 72 42 77 58 {23, 46, 29, 58, 53, 43}
43 11 16 27 67 43 75 59 {27, 54, 45}
05 12 34 28 55 44 71 60 {31, 62, 61, 59, 55, 47}
12 13 70 29 31 45 61 61
24 14 63 30 62 46 41 62

Tabla 9.7. 64 , p(x) = x6 +x+1. Los nmeros de las columnas impares


estn en octal.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 301

Polinomios mnimos
M0 (x) = x + 1 M13 (x) = x6 + x4 + x3 + x + 1
M (x) = x6 + x + 1 M15 (x) = x6 + x5 + x4 + x2 + 1
M3 (x) = x6 + x4 + x2 + x + 1 M23 (x) = x6 + x5 + x4 + x + 1
M5 (x) = x6 + x5 + x2 + x + 1 M21 (x) = x2 + x + 1
M7 (x) = x6 + x3 + 1 M27 (x) = x3 + x + 1
M9 (x) = x3 + x2 + 1 M31 (x) = x6 + x5 + 1
M11 (x) = x6 + x5 + x3 + x2 + 1

Tabla 9.8. Polinomios mnimos de 64 .

+ + + + +
25 51 77 103
000 0 065 037 047 007
001 1 152 26 076 52 116 78 016 104
002 135 27 174 53 025 79 034 105
004 2 063 28 161 54 052 80 070 106
010 3 146 29 153 55 124 81 160 107
020 4 105 30 137 56 041 82 151 108
040 5 003 31 067 57 102 83 133 109
100 6 006 32 156 58 015 84 077 110
011 7 014 33 125 59 032 85 176 111
022 8 030 34 043 60 064 86 165 112
044 9 060 35 106 61 150 87 143 113
110 9 140 36 005 62 131 88 117 114
031 10 111 37 012 63 073 89 027 115
062 11 033 38 024 64 166 90 056 116
144 13 066 39 050 65 145 91 134 117
101 14 154 40 120 66 103 92 061 118
013 15 121 41 051 67 017 93 142 119
026 16 053 42 122 68 036 94 115 120
054 17 126 43 055 69 074 95 023 121
130 18 045 44 132 70 170 96 046 122
071 19 112 45 075 71 171 97 114 123
162 20 035 46 172 72 173 98 021 124
155 21 072 47 175 73 177 99 042 125
123 22 164 48 163 74 167 100 104 126
057 23 141 49 157 75 147 101
136 24 113 50 127 76 107 102

Tabla 9.9. 128 , p(x) = x7 + x3 + 1. Los nmeros de las columnas


impares estn en octal.
302 Cuerpos finitos

Conjuntos ciclotmicos Polinomios mnimos


{0} x+1
{1, 2, 4, 8, 16, 32, 64} x 7 + x3 + 1
{3, 6, 12, 24, 48, 65, 96} x 7 + x3 + x2 + x + 1
{5, 10, 20, 33, 40, 66, 80} x 7 + x4 + x3 + x2 + 1
{7, 14, 28, 56, 67, 97, 112} x 7 + x6 + x5 + x4 + x2 + x + 1
{9, 17, 18, 34, 36, 68, 72} x 7 + x5 + x4 + x3 + x2 + x + 1
{11, 22, 44, 49, 69, 88, 98} x 7 + x6 + x4 + x2 + 1
{13, 26, 35, 52, 70, 81, 104} x7 + x + 1
{15, 30, 60, 71, 99, 113, 120} x + x + x + x4 + x3 + x2 + x + 1
7 6 5

{19, 25, 38, 50, 73, 76, 100} x 7 + x6 + x2 + x + 1


{21, 37, 41, 42, 74, 82, 84} x 7 + x6 + x5 + x2 + 1
{23, 46, 57, 75, 92, 101, 114} x 7 + x6 + 1
{27, 51, 54, 77, 89, 102, 108} x + x6 + x4 + x + 1
7

{29, 39, 58, 78, 83, 105, 116} x 7 + x5 + x3 + x + 1


{31, 62, 79, 103, 115, 121, 124} x 7 + x6 + x5 + x4 + 1
{43, 45, 53, 85, 86, 90, 106} x 7 + x5 + x2 + x + 1
{47, 61, 87, 94, 107, 117, 122} x 7 + x5 + x4 + x3 + 1
{55, 59, 91, 93, 109, 110, 118} x + x6 + x5 + x4 + x3 + x2 + 1
7

{63, 95, 111, 119, 123, 125, 126} x 4 + x4 + 1

Tabla 9.10. Conjuntos ciclotmicos y polinomios mnimos de 27 .


CAPTULO 10

Cdigos BCH

Durante 1959 y 1960, A. Hocquenghem y, en un trabajo independiente,


R. C. Bose y A. K. RayChaudhuri construyeron una familia de cdigos
cclicos binarios con capacidad para corregir errores mltiples que, como
caso particular, contena a la clase de cdigos Hamming. Poco despus de
ser descubiertos, los nuevos cdigos fueron generalizados para alfabetos no
binarios.
Los cdigos de Bose, Chaudhuri y Hocquenghem (BCH) son una amplia
e importante subclase de cdigos cclicos. Se encuentran entre los mejores
cdigos conocidos para longitudes de bloque moderadas, de hasta varias
centenas o pocos miles de bits, y se han desarrollado para ellos algoritmos
eficientes de decodificacin. Se sabe, sin embargo, que su capacidad de co-
rreccin de errores se deteriora asintticamente con la longitud. Es decir,
que para una tasa de codificacin fija, la distancia no aumenta proporcio-
nalmente con la longitud. No obstante, esta disminucin de la eficiencia no
comienza a mostrarse hasta longitudes de cdigo realmente muy elevadas,
y no supone ninguna limitacin seria en la mayora de las aplicaciones.
Adems del inters que presentan en s mismos, los cdigos BCH se utili-
zan en la sntesis de otros muchos tipos de cdigos. Por mencionar algunos,
los ReedSolomon (RS), a los que dedicaremos el prximo captulo, son una
especializacin de los BCH no binarios, y poseen notables propiedades que
los hacen aptos para ser utilizados bien por s solos o bien formando parte
de otras categoras de cdigos. Los cdigos de Justesen se construyen preci-
samente a partir de los RS, y destacan por constituir la primera familia de
cdigos no degenerados en ser descubierta, es decir, la primera en la que ni
la tasa de codificacin ni la razn entre distancia y longitud se aproximan a
cero a medida que la longitud aumenta. Los propios BCH son una subclase

303
304 Cdigos BCH

de una familia ms amplia, la de los cdigos alternantes, en la que se conoce


la existencia de algunos cdigos asintticamente eficientes, como los Goppa.
En el resto de este captulo se comenzar definiendo la clase general de
cdigos BCH, y se presentarn sus propiedades ms importantes. Despus,
se describirn los mtodos de decodificacin algebraica aplicables a los c-
digos binarios y se expondr un algoritmo de este tipo computacionalmente
eficiente.

10.1. Construccin y propiedades

Comencemos por recordar que las races n-simas de la unidad son todas
las soluciones de la ecuacin algebraica xn 1 = 0, y que constituyen un
subgrupo cclico de cierto cuerpo q m = GF(q m ), subgrupo cuyo elemento
generador se llama raz primitiva n-sima de la unidad. A lo largo de este
captulo, el smbolo se referir siempre a una raz primitiva n-sima de la
unidad, y se supondr que q y n son coprimos, es decir, mcd(q, n) = 1.

Definicin 10.1 (Cdigo BCH). El cdigo BCH, definido sobre el cuerpo


q , de longitud n y distancia de diseo es el mayor cdigo cclico entre
cuyos ceros hay 1 potencias consecutivas

b , b+1 , . . . , b+2 , b 0, 1

de una n-sima raz primitiva qm de la unidad (siendo m el orden


multiplicativo de q mdulo n, es decir, el menor entero m tal que n divide
a q m 1).

Como el mayor cdigo cclico es, para una longitud dada, aqul de menor
nmero de smbolos de redundancia, se puede formular esta otra definicin
equivalente.

Definicin 10.2 (Cdigo BCH). Un cdigo cclico C de longitud n defi-


nido sobre el cuerpo q es un cdigo BCH con distancia de diseo si su
polinomio generador es

g(x) = mcm{Mb (x), Mb+1 (x), . . . , Mb+2 (x)}

el mnimo comn mltiplo de los polinomios mnimos sobre Fq [x] de b ,


b+1 , ..., b+2 , en donde b y son enteros arbitrarios.1 O, lo que es lo
mismo, C es un cdigo BCH si g(x) es el polinomio mnico de menor grado
sobre q que admite a b , ..., b+2 como races.
1 Si = 1, se conviene en definir el cdigo BCH como aqul cuyo polinomio generador
tiene cero races, o sea g(x) = 1.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 305

Cuando mcd(q, n) = 1, el polinomio xn 1 se descompone en factores


lineales sobre qm [x], y todo cdigo cclico de longitud n sobre el alfabeto q
queda completamente especificado por el conjunto de ceros de su polinomio
generador, que lo son tambin de cualquier otro polinomio del cdigo. As
pues, la definicin de los cdigos BCH simplemente aade esta condicin:
el conjunto de ceros es
 b+2
[ 
i : i Aj
j=b

en donde Aj es el conjunto q-ciclotmico (mdulo n) que contiene a j.


Esta restriccin aparentemente arbitraria es suficiente para hallar una cota
inferior al nmero de smbolos de informacin del cdigo, tal y como se ver
en el teorema 10.1.
Asimismo, obsrvese que la definicin implica que, fijos b y n, un cdigo
BCH con distancia de diseo 1 est contenido en el cdigo BCH de distancia
de diseo 2 < 1 .
En los casos en que n = q m 1, la raz primitiva, , resulta ser un
elemento primitivo del cuerpo qm , y el cdigo BCH se dice tambin pri-
mitivo. Cuando b = 1 se habla de cdigos BCH en sentido restringido o
estricto. Otro importante subconjunto de cdigos BCH se obtiene al fijar
n = q 1 (naturalmente q > 2, es decir, son no binarios) y es el de los cdi-
gos ReedSolomon. En este captulo se tratar nicamente con cdigos BCH
en sentido restringido (lo que no supone prdida alguna de generalidad) y
primitivos.

Ejemplo 10.1. Los conjuntos 2-ciclotmicos mdulo 31, y sus respectivos


polinomios mnimos, son:

A0 = {0} M0 (x) = x + 1
A1 = {1, 2, 4, 8, 16} M1 (x) = x5 + x2 + 1
A3 = {3, 6, 12, 17, 24} M3 (x) = x5 + x4 + x3 + x2 + 1
A5 = {5, 9, 10, 18, 20} M5 (x) = x5 + x4 + x2 + x + 1
A7 = {7, 14, 19, 25, 28} M7 (x) = x5 + x3 + x2 + x + 1
A11 = {11, 13, 21, 22, 26}M11 (x) = x5 + x4 + x3 + x + 1
A15 = {15, 23, 27, 29, 30}M15 (x) = x5 + x3 + 1.

El polinomio binario con ceros {i , i A1 A3 } genera un cdigo binario


BCH[31, 21] con distancia de diseo = 5; el de ceros {i , i A1 A3 A5 },
un cdigo BCH[31, 16] con = 7; y el de ceros {i , i A1 A3 A5 A7 },
un cdigo BCH[31, 11] con = 11. Todos estos cdigos son primitivos.
306 Cdigos BCH

Los conjuntos 2-ciclotmicos mdulo 15 son:


A0 = {0} A5 = {5, 10}
A1 = {1, 2, 4, 8} A7 = {7, 11, 13, 14}
A3 = {3, 6, 9, 12}.

El dual del cdigo BCH primitivo definido por los ceros


T = {i : i A1 A3 A7 }
es el que tiene por ceros a T = {i : i A0 A5 }, que, al contrario
que T , no es BCH en sentido restringido porque 5 no es una raz primitiva
15-sima de la unidad.

Una primera y fundamental consecuencia de haber elegido 1 potencias


sucesivas de un elemento como races del polinomio generador es que
la distancia del cdigo nunca es inferior a . Esto explica la terminologa
distancia de diseo para el parmetro y justifica la utilidad de esta clase
de cdigos.

Teorema 10.1 (Cota de distancia BCH). Dados dos nmeros enteros


b 0, 1, un cdigo cclico con un polinomio generador g(x) que verifique
g(b ) = g(b+1 ) = = g(b+2 ) = 0
tiene distancia mnima al menos .

Demostracin. Se va a probar directamente que, en las condiciones del


enunciado, no existe ninguna palabra del cdigo no nula de peso menor que
, la distancia de diseo.
Pn1
Sea v = (vn1 , . . . , v1 , v0 ) un vector del cdigo y v(x) = i=0 vi xi su
polinomio asociado. Las 1 ecuaciones
v(b ) = v(b+1 ) = = v(b+2 ) = 0
son lineales en el cuerpo q m (m es el menor ndice que cumple q m 1
mod n = 0), y se pueden escribir en forma matricial como
v QT = 0
si se conviene en definir la matriz Q como

b(n1) ... b 1
(b+1)(n1) ... b+1 1
Q=
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
(b+2)(n1) . . . b+2 1
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 307

Q no tiene por qu ser idntica a la matriz de comprobacin de paridad del


cdigo, sino que, en general, la matriz de comprobacin de paridad es una
submatriz de filas suya.
Para probar que la distancia vale al menos , es suficiente con mostrar
que ningn conjunto de 1 o menos columnas de la matriz Q son linealmen-
te dependientes sobre el cuerpo qm . Supngase que v tuviese peso Ham-
ming menor que , es decir, que menos de de sus smbolos, vi1 , vi2 , . . . , vir
(r < ), fuesen distintos de cero. Si as ocurriera, la condicin v QT = 0
implicara que
T
bi1 bi2 ... bir
(b+1)i1 (b+1)i2 ... (b+1)ir
(vi1 , vi2 , . . . , vir )
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = 0
(b+r1)i1 (b+r1)i2 . . . (b+r1)ir

para ciertos escalares vi1 , . . . , vir no simultneamente nulos. Observe que


la matriz anterior es cuadrada, puesto que se han eliminado en ella las
columnas de Q que no se utilizan en la evaluacin de esas r ecuaciones de
comprobacin de paridad, esto es, se ha prescindido de las columnas que no
son i1 , . . . , ir .
Pero si este sistema homogneo de r ecuaciones lineales tuviera solucin
no trivial, entonces el determinante de

bi1 bi2 ... bir
(b+1)i1 (b+1)i2 ... (b+1)ir
A=
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
(b+r1)i1 (b+r1)i2 . . . (b+r1)ir

debera ser nulo. Ahora bien, sacando factor comn bi1 en la primera co-
lumna, bi2 en la segunda, ..., bir en la ltima, el determinante de A vale

1 1 ... 1
i 1 i 2 ... ir
det A = b(i1 +i2 ++ir ) det
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
(r1)i1 (r1)i2 . . . (r1)ir
= b(i1 +i2 ++ir ) det Vr .

Esta ltima matriz, Vr , es una matriz de Vandermonde; y es un hecho


bien conocido que su determinante es no nulo si y solamente si los elementos
i1 , i2 , ..., ir son todos distintos entre s, pues si a cada una de sus filas
308 Cdigos BCH

j = 2, 3, . . . , r le sumamos la anterior multiplicada por i1 , entonces



1 1 ... 1
i 1 i 2 ... ir
det Vr = det
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
(r1)i1 (r1)i2 . . . (r1)ir

1 1 ... 1
0 i2 i1 ... ir i1

= det 0 i2
( ) i2 i1
... ( )
ir ir i1
.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
0 (r2)i2 (i2 i1 ) . . . (r2)ir (ir i1 )

Desarrollndolo por los elementos de la primera columna y sacando de nuevo


factor comn en cada una de las otras columnas, resulta

1 1 ... 1
Yr
i 2 i 3 ... ir
det Vr = (ij i1 ) det
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
j=2
(r2)i2 (r2)i2 . . . (r2)ir
Yr
= (ij i1 ) det Vr1 .
j=2

Y de aqu es fcil deducir, iterando la expresin, que el determinante de la


matriz de Vandermonde vale, por tanto,
r1
Y r
Y
det Vr = (ij ik )
k=1 j=k+1

y que es distinto de cero por ser todas las potencias de distintas entre s.
Esta conclusin es incompatible con la premisa de existencia de un vector
del cdigo con peso menor que , como se quera probar.

Conviene hacer dos observaciones acerca de este teorema. En primer


lugar, el resultado es vlido para cualquier cdigo cclico con 1 ceros
cclicamente consecutivos: los cdigos BCH son tan slo un subconjunto de
todos los que satisfacen esta condicin. En segundo lugar, resulta de indis-
cutible utilidad, porque establece una condicin de diseo entre la distancia
de un cdigo cclico y (los ceros de) su polinomio generador. Sin embargo,
este conjunto de ceros depende de la eleccin del elemento primitivo del
cuerpo. Si, por ejemplo, se toma como elemento primitivo a = s , en
donde s y n son coprimos, entonces es tambin una raz primitiva n-sima
de la unidad. Y si s1 es el inverso de s mdulo n los polinomios mnimos
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 309

Mr (x) y M s1 r (x) son idnticos, lo que significa que un conjunto de ce-


ros T referido al elemento primitivo es el conjunto de ceros s1 T mod n
referido al elemento primitivo . La cota BCH, por consiguiente, puede pro-
ducir resultados diferentes segn cul sea el elemento primitivo elegido para
definir el cuerpo. Si bien existen diversos resultados que proporcionan, en
algunos casos, estimaciones mejores que la cota BCH (por ejemplo, las co-
tas de HartmannTzengRoos [41] y van LintWilson [69]), determinar la
distancia de un cdigo cclico, conocidos sus ceros, es an un importante
problema algebraico abierto.

Ejemplo 10.2. Sea C el cdigo cclico binario de longitud 7 definido por


los ceros {i : i T = {0, 3, 6, 5}}, con una raz primitiva sptima de
la unidad. T contiene tres elementos consecutivos {5, 6, 0} y C es un cdigo
con distancia de diseo 4. C resulta ser el subcdigo de palabras de peso par
de H3 .
Sea D el cdigo [31, 25, d] binario definido por los ceros {i : i T },
con T = {0, 3, 6, 12, 24, 17}} y un elemento primitivo de 32 . Para este
conjunto de ceros, la cota BCH produce d 2. Sin embargo, tomando como
elemento primitivo a = 3 , y dado que 31 21 mod 31, el conjunto de
ceros se convierte en { i : i {0, 1, 2, 4, 8, 16}} que contiene 3 elementos
consecutivos e implica que d 4. De hecho, D es el subcdigo de peso par
del cdigo Hamming binario H5 y d = 4.

Ejemplo 10.3. En el captulo 7, apartado 7.7, se vio que el cdigo cclico


generado por un polinomio primitivo binario de grado r tiene distancia 3 y
es el cdigo Hamming binario Hr . Vamos a deducir este mismo hecho por
otro camino, y a probar, de paso, que los cdigos Hamming binarios estn
incluidos en la clase de los BCH binarios.
Supngase g(x) primitivo y binario de grado r, y 2r un elemento
primitivo. Entonces g() = g(2 ) = 0, ya que, por definicin, g(x) es el
polinomio mnimo de y 2 . El cdigo [2r 1, 2r r 1] engendrado por
g(x) posee un par de ceros consecutivos; en consecuencia es, por definicin,
un cdigo BCH binario primitivo, y su distancia es mayor o igual a 3,
segn el teorema 10.1. Un vector suyo se define por la condicin v() =
Pn1 i
i=0 vi = 0, o bien
T
(vn1 , . . . , v1 , v0 ) n1 n2 . . . 1 = 0
en 2r . Sea : 2r 2r la aplicacin que a cada elemento de 2r le hace
corresponder sus r coordenadas en cierta base. Si en la matriz

n1 n2 . . . 1
cada uno de sus elementos i se reemplaza por el vector columna binario de
longitud r, (i ), se obtiene una matriz de dimensiones r (2r 1) cuyas
310 Cdigos BCH

columnas recorren el conjunto de vectores binarios no nulos de r elementos.


De donde se sigue que la distancia del cdigo engendrado por g(x) es 3 y
que es (equivalente a) un cdigo Hamming.

Ejemplo 10.4. El teorema 10.1 se puede utilizar directamente para cons-


truir cdigos BCH binarios primitivos correctores de dos (o ms) errores,
generalizando as las propiedades de correccin de los cdigos Hamming.

Considrese, por fijar un caso concreto, q = 2, b = 1, y una raz primitiva


24 de x15 1. Del requisito de correccin de errores dobles se desprende
que la distancia del cdigo debe ser al menos 5, y entonces el cdigo BCH
que se busca tendr que tener 4 ceros consecutivos: , 2 , 3 y 4 . Por ser
el cdigo primitivo, es elemento primitivo del cuerpo 24 , y el polinomio
binario de menor grado del que es raz es su polinomio mnimo (y primitivo)
M (x) = x4 + x + 1. Tambin son races de M (x) los elementos 2 y 4 .
El polinomio mnimo de 3 es

M3 (x) = x4 + x3 + x2 + x + 1,

por supuesto irreducible y sin factores en comn con M (x). Luego el poli-
nomio producto de ambos

g(x) = (x4 + x + 1)(x4 + x3 + x2 + x + 1)

cumple con todas las condiciones exigibles para poder afirmar de l que
engendra un cdigo cclico binario [15, 7] capaz de corregir dos errores. Sus
polinomios v(x) son aqullos y slo aqullos que satisfacen v() = v(2 ) =
v(3 ) = v(4 ) = 0. Pero, como v(2 ) = v 2 () en cualquier cuerpo de
caracterstica 2, entonces v(4 ) = v(2 ) = 0 v() = 0, y las ecuaciones
v(4 ) = v(2 ) = 0 son redundantes. O, lo que es igual, si el polinomio del
cdigo admite una raz , entonces tambin sern races suyas los elementos
conjugados de . Por tanto, las dos nicas ecuaciones de comprobacin de
paridad son v() = v(3 ) = 0, esto es, v H T = 0 operando en el cuerpo
24 . En esta expresin, la matriz H de comprobacin de paridad es

 
14 13 12 11 10 9 8 7 6 5 4 3 2 1
.
12 9 6 3 1 12 9 6 3 1 12 9 6 3 1

La razn de que no aparezcan todas las potencias de en su segunda fila


es que 3 no es un elemento primitivo.

Al sustituir cada uno de los elementos de H por su correspondiente


vector columna de 4 smbolos binarios (como se recordar, el cuerpo 24
es un espacio vectorial de dimensin 4 sobre 2 ), se consigue una matriz
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 311

binaria de comprobacin de paridad del cdigo:



1 1 1 0 1 0 1 1 0 0 1 0 0 0 1
0 0 1 1 1 1 0 1 0 1 1 0 0 1 0

0 1 1 1 1 0 1 0 1 1 0 0 1 0 0

1 1 1 1 0 1 0 1 1 0 0 1 0 0 0
H= 1 0 0
.
0 1 1 0 0 0 1 1 0 0 0 1
1 1 0 0 0 1 1 0 0 0 1 1 0 0 0

1 0 1 0 0 1 0 1 0 0 1 0 1 0 0
1 1 1 1 0 1 1 1 1 0 1 1 1 1 0

Este ltimo ejemplo ilustra el proceso general para la obtencin de una


matriz de comprobacin de paridad de un cdigo BCH, C q . Pues, supuesto
un polinomio v(x) C q , las 1 ecuaciones
v(b ) = v(b+1 ) = = v(b+2 ) = 0
son linealmente independientes en la extensin qm , y su expresin en forma
matricial es
T 0T
(n1)b ... ... b 1
(n1)(b+1) 0
... ... b+1 1 =
(vn1 , . . . , v0 )
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .
.
(n1)(b+2) . . . . . . b+2 1 0
La matriz

(n1)b ... ... b 1
(n1)(b+1) ... ... b+1 1
H =
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ,
(n1)(b+2) . . . . . . b+2 1
vista como una matriz de comprobacin de paridad, define un cdigo lineal
C en q m . Pues bien, es obvio que los vectores de C compuestos slo por
smbolos de q son precisamente C q ; es decir, C q es el subcdigosubcuerpo
de C, o la restriccin a q del cdigo C.
Pero, adems, H se puede convertir directamente en una matriz de com-
probacin de paridad de C q . Para ello, basta con elegir una base de q m
sobre q , y sustituir despus cada uno de los elementos de H por el vector
columna de m coordenadas que lo representa en la base elegida. H ser
ahora una matriz con elementos en q de dimensiones m( 1) n, pero en
general no se dar la circunstancia de que las m( 1) filas sean linealmente
independientes sobre q . Suprimiendo las filas linealmente dependientes de
H (que representan ecuaciones de comprobacin de paridad redundantes
para los vectores de C q ), se llega a una matriz H 0 de comprobacin de
paridad de C q .
312 Cdigos BCH

Teorema 10.2. El nmero de smbolos de informacin de un cdigo BCH


definido sobre q , con distancia de diseo y longitud n es mayor o igual
que n m( 1).

Demostracin. H es de dimensiones m( 1) n una vez sustituidos sus


elementos por vectores de m elementos de q . Pero:

Es posible que dos o ms filas representen ecuaciones redundantes; y


por tanto, salvo una, las dems se pueden omitir.

Sobre el cuerpo q, no todas las filas son siempre linealmente inde-


pendientes.

De estas dos observaciones se deduce que el rango de H es siempre menor o


igual que m(1), y entonces la dimensin del cdigo verifica la desigualdad
k = n rango(H) n m( 1).

Una aplicacin del razonamiento arriba expuesto nos permitir probar


que la clase de cdigos BCH primitivos contiene muchos cdigos Hamming.

Teorema 10.3. Si n = (q r 1)/(q 1), r y q 1 no tienen divisores


comunes, y es una raz primitiva n-sima de la unidad, el cdigo BCH
primitivo de longitud n generado por M (x) es el cdigo Hamming de r
smbolos de redundancia sobre q .

Demostracin. Sea un elemento primitivo de qr y = q1 una raz


primitiva n-sima de la unidad. Los escalares de q en qr son aquellas
potencias de cuyo exponente divide a n. Ahora bien, puesto que se puede
escribir
r1
X
n = (q 1) jq r1j + r
j=1

es obvio que mcd(n, q 1) = mcd(r, q 1) = 1 y, por tanto, que el nico


elemento de q que resulta ser una potencia de es la identidad. Entonces,
si se escriben los elementos de q r como r-tuplas de qr , ninguna de las
r-tuplas correspondientes a 0 , . . . , n1 son proporcionales entre s usando
los elementos de q como escalares. La matriz r n que tiene por columnas
precisamente las r-tuplas de 0 , . . . , n1 es, as, la matriz de comprobacin
de paridad del cdigo Hamming de r smbolos de redundancia sobre q .
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 313

10.2. Cdigos BCH binarios

Con motivo del gran nmero de situaciones prcticas en que se utilizan,


parece oportuno estudiar con atencin especial las propiedades de los cdi-
gos BCH binarios. Fijemos, por lo tanto, q = 2, y supongamos un cdigo
con distancia de diseo y definido por el conjunto de ceros 1
j=1 Aj , en
donde Aj es el conjunto 2-ciclotmico mdulo n.
Dado que Aj = A2j mod n , el polinomio generador del cdigo con dis-
tancia de diseo es el mnimo comn mltiplo de los polinomios mnimos
de las potencias impares de :
 
1
g(x) = mcm{M (x), M3 (x), . . . , M2t1 (x)}, t = .
2

En rigor, basta considerar tan slo los cdigos de distancia de diseo =


2t + 1 impar, debido a que el cdigo de distancia de diseo 2t tambin tiene
a
g(x) = mcm{M (x), M3 (x), . . . , M2t1 (x)}
como polinomio generador, y es, obviamente, idntico al primero. Como
resultado de la estructura del polinomio generador, es sencillo deducir una
cota inferior a la dimensin del cdigo mejor que la dada en el teorema 10.2.

Teorema 10.4. El nmero de smbolos de informacin en un cdigo BCH


binario de longitud n y distancia de diseo = 2t o = 2t + 1 es como
mnimo n mt.

Demostracin. El polinomio g(x) es el mnimo comn mltiplo de t po-


linomios mnimos binarios de elementos de 2m , cada uno de los cuales es
de grado m (teorema 9.10). Luego el grado de g(x) nunca es mayor que
mt, y por consiguiente la dimensin del cdigo no es inferior a n mt.

La matriz de comprobacin de paridad de un cdigo BCH binario de


longitud n y distancia de diseo 2t + 1 es de la forma

n1 ... 1
3(n1) ... 3 1
H=
. . . . . . . . . . . . . . . . . . . . . . . . . . .
(2t1)(n1) . . . 2t1 1

ya que las filas con conjuntos de exponentes pertenecientes al mismo conjun-


to 2-ciclotmico mdulo n son redundantes; esto es,
s s
j = i2s v(j ) = 0 v (i )2 = 0 v(i )2 = 0 v(i ) = 0.
314 Cdigos BCH

Distancia Polinomio
n de diseo generador (k, d)
1 1 (7, 1)
7 3 x3 + x + 1 (4, 3)
5,7 (x3 + x + 1)(x3 + x2 + 1) (1, 7)
1 1 (15, 1)
3 g1 (x) = x4 + x + 1 (11, 3)
15 5 g2 (x) = g1 (x)(x4 + x3 + x2 + x + 1) (7, 5)
7 g3 (x) = g2 (x)(x2 + x + 1) (5, 7)
9, 11, 13, 15 g4 (x) = g3 (x)(x4 + x3 + 1) (1, 15)
1 1 (31, 1)
3 g1 (x) = x5 + x2 + 1 (26, 3)
5 g2 (x) = g1 (x)(x5 + x4 + x3 + x2 + 1) (21, 5)
31 7 g3 (x) = g2 (x)(x5 + x4 + x2 + x + 1 (16, 7)
9, 11 g4 (x) = g3 (x)(x5 + x3 + x2 + x + 1) (11, 11)
13, 15 g5 (x) = g4 (x)(x5 + x4 + x3 + x + 1) (6, 15)
17, 19, ..., 31 g6 (x) = g5 (x)(x5 + x3 + 1) (1, 31)

Tabla 10.1. Cdigos BCH binarios de longitudes 7, 15 y 31.

Por ejemplo, el cdigo BCH binario de longitud 15 y distancia de diseo 11


es el engendrado por
g(x) = mcm{M (x), M3 (x), M5 (x), M7 (x), M9 (x)}.
Pero los polinomios mnimos de 3 y 9 son el mismo (porque 3 y 9 perte-
necen al mismo conjunto ciclotmico mdulo 15), y g(x) se reduce a
g(x) = mcm{M (x), M3 (x), M5 (x), M7 (x)}
que es el mismo que el del cdigo BCH binario de distancia de diseo 9,
e igual asimismo al generador de los cdigos de distancias de diseo 13 y
15. Este sencillo ejemplo ensea que cdigos BCH con distancias de diseo
diferentes no tienen por qu ser distintos.

Ejemplo 10.5. La tabla 10.1 clasifica los posibles cdigos BCH binarios
primitivos de longitudes 7, 15 y 31, junto con su dimensin y su distancia.
El cdigo [7, 4, 3] es H3 , y el [7, 1, 7] es un simple cdigo de repeticin.

Definicin 10.3 (Distancia de Bose). La mayor de las distancias de


diseo de un conjunto de cdigos BCH idnticos es la distancia de Bose del
cdigo.

Entonces, a tenor del teorema 10.1, la distancia real del cdigo es como
mnimo su distancia de Bose, y puede en ciertos casos ser mayor que sta.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 315

Otro ejemplo en que as ocurre es el cdigo BCH no primitivo de longitud


23 y distancia de diseo 5, con polinomio generador

g(x) = x11 + x9 + x7 + x6 + x5 + x + 1
ceros {i | i {1, 2, 4, 8, 16, 9, 18, 13, 3, 6, 12}} = {i | i A1 } y dimensin
12. Su distancia de Bose es 5, pero no es difcil probar que se trata de
un cdigo equivalente del Golay(23, 12), cuya distancia es 7. En ocasiones,
conocer la distancia de Bose facilita la tarea de descubrir la distancia mnima
de un cdigo BCH, recurriendo para ello a las proposiciones del prximo
apartado.
En sistemas que requieran una capacidad de correccin de errores mode-
rada en comparacin con la longitud de los mensajes, resultan especialmente
adecuados los cdigos BCH binarios primitivos; para m 3 y t 1, el c-
digo BCH binario de longitud n = 2m 1 y distancia de diseo 2t + 1 es un
cdigo corrector de t errores con parmetros

n = 2m 1
n k mt
dC 2t + 1.
Si, adems, t = 2s 1 para algn s 1, entonces la distancia es exactamente
2t + 1.
De hecho, vamos a mostrar que la distancia de un cdigo BCH binario
y primitivo siempre es impar. Sea C un cdigo BCH primitivo (no necesa-
riamente binario) y Cb el cdigo extendido que se obtiene aadiendo a los
vectores de C un smbolo de paridad, que simbolizaremos como c :
n1
X
b
(cn1 , . . . , c0 ) C (c , cn1 , . . . , c0 ) C, c = ci .
i=0

El polinomio c x +cn1 xn1 + +c0 representar formalmente al vector


del cdigo (c , cn1 , . . . , c0 ), y el elemento i de qm a la coordenada i. Por
convenio, se establece que 1 = 1 y que i = 0 para i 6 0 mod n (y as
la coordenada queda representada por el elemento 0 del cuerpo).
Habiendo identificado las coordenadas de las palabras del cdigo Cb con
los elementos de qm , es obvio que cualquier permutacin de stos corres-
ponde a una permutacin en los smbolos de C.b

Teorema 10.5. El grupo afn de permutaciones


Pa,b : qm qm

i ai + b
316 Cdigos BCH

(a, b q m , a 6= 0), actuando sobre las posiciones de los smbolos de las


b
palabras del cdigo, es un automorfismo de C:

(c , cn1 , . . . , c0 ) Cb (cP 1 ( ) , . . . , cP 1 (0 ) ) C.
b
a,b a,b

Demostracin. Pa,0 es una rotacin cclica que deja la coordenada


invariada.
Sea (c0 , c0n1 , . . . , c00 ) el vector del cdigo (c , cn1 , . . . , c0 ) transfor-
mado por Pa,b , con b 6= 0. Entonces, si {, 2 , . . . , 1 } son los ceros que
definen C e I = {0, 1, . . . , n 1} {}

X X X k  
X k
c0i ik = i k
ci (a + b) = ci al il bkl
l
iI iI iI l=0
k 
X  X
k l kl
= ab ci il = 0, 0k 1
l
l=0 iI

ya que el sumatorio interior se anula para 0 l 1. En consecuen-


b Observe que, para que el grupo afn deje a Cb
cia, (c0 , c0n1 , . . . , c00 ) C.
invariado, es esencial que C sea primitivo (esto es, que sea un elemento
primitivo).

Teorema 10.6. Un cdigo BCH binario primitivo tiene distancia impar.

Demostracin. Por el teorema anterior, el cdigo extendido es invariante


ante la accin del grupo afn de permutaciones. En particular, el conjunto de
palabras de Cb de peso mnimo es invariante. Ahora bien, siempre se podr
encontrar una permutacin del grupo afn que traslade un 1 a la posicin
. Luego Cb contiene vectores con c = 1, lo que slo puede ocurrir si la
distancia de C es impar.

La extensin de un cdigo BCH binario primitivo produce siempre un


cdigo con distancia una unidad mayor. Sin embargo, advierta que, en ge-
neral, la extensin de un cdigo BCH ni incrementa la distancia ni produce
un cdigo cclico.

10.3. Dimensin y distancia

Los teoremas 10.1 y 10.2 han dejado abiertas dos cuestiones: en qu


condiciones es la distancia de un cdigo BCH igual a su distancia de diseo?;
y, conocidas la longitud y la distancia de diseo, cul es la dimensin de
un cdigo BCH?
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 317

Respecto a la primera, a pesar de que se conocen una variedad de casos


particulares en los que la distancia real y la de diseo coinciden, se ignora
por el momento qu condiciones son necesarias y suficientes para lograrlo.
Con todo, algunas proposiciones de este tipo resultan muy tiles.

Teorema 10.7. El cdigo BCH binario de longitud n = 2m 1 y distancia


de diseo 2t + 1 tiene distancia 2t + 1 si
t+1  m
X 
2 1
> 2mt .
i=0
i

Demostracin. Supngase que la distancia del cdigo es impar (por el


teorema 10.6) y mayor que 2t + 1. La dimensin del cdigo es como mnimo
n mt (vase el teorema 10.4), de modo que la desigualdad de Hamming
implica que
t+1  m
X 
nmt 2 1
2 2n
i=0
i

lo que contradice la desigualdad del enunciado. Por lo tanto, si aqulla se


cumple, dC = 2t + 1.

Teorema 10.8. Si n = rs, el cdigo BCH de longitud n y distancia de


diseo r tiene distancia r.

Demostracin. Siendo una raz primitiva n-sima de la unidad, js 6= 1


para todo j < r. En consecuencia, los elementos , 2 , . . . , r1 no pueden
ser races del polinomio xs 1. Pero

xn 1 = xrs 1 = (xs 1)(xs(r1) + + x2s + xs + 1)

y , . . . , r1 deben, pues, ser races de v(x) = xs(r1) + + x2s + xs + 1;


luego v(x) es una palabra del cdigo de peso r, y el cdigo tiene distancia
r exactamente.

La prueba de la siguiente proposicin es relativamente complicada y se


omite. Puede encontrarse en [41].

Teorema 10.9. Un cdigo BCH sobre q de longitud q m 1 y distancia de


diseo q r 1 tiene distancia q r 1.

Por otro lado, la distancia real de un cdigo BCH no puede ser arbitra-
riamente mayor que la distancia de diseo. La siguiente cota superior slo
posee alguna utilidad si y el alfabeto de codificacin son pequeos.
318 Cdigos BCH

Teorema 10.10. La distancia de un cdigo BCH primitivo sobre q con


distancia de diseo no es mayor que q 1. En particular, la distancia de
un cdigo BCH binario primitivo con distancia de diseo est en el rango
dC 2 1.

Demostracin. Sea r0 el menor entero tal que q r0 1 > q r0 1 . El


cdigo de distancia de diseo contiene al de distancia de diseo q r0 1;
pero, segn el teorema anterior, la distancia de ste ltimo es exactamente
q r0 1. Por lo tanto, dC q r0 1 q 1.

El clculo de la dimensin entraa menor dificultad. Dado un cdigo


BCH primitivo sobre q de longitud n y polinomio generador g(x), su di-
mensin ser n grado de g(x) = n rango(H). Pero, por definicin, g(x)
es el polinomio de menor grado que admite a , . . . , 1 y sus conjuga-
dos como ceros. As, para hallar el grado de g(x) es suficiente con contar
cuntos conjugados distintos tiene cada raz j , j = 1, . . . , 1, y sumar
estas cantidades. El nmero de conjugados de j (incluido l mismo) es por
supuesto el nmero de elementos del conjunto ciclotmico de representante
j mdulo q m 1, e igual tambin al grado del polinomio mnimo de j .
Si m es el orden de j , el nmero de sus conjugados es tambin el orden
multiplicativo de j mdulo m.
Para contar los elementos del conjunto ciclotmico de representante j,
se puede escribir el nmero entero j en base q como una secuencia de m
smbolos. La operacin de multiplicar j por q (mdulo q m 1) equivale a un
desplazamiento cclico hacia la izquierda de esa representacin. As pues, el
nmero de desplazamientos cclicos distintos de j, expresado en base q, es
el tamao buscado del conjunto ciclotmico. El teorema siguiente resume
esta argumentacin.

Teorema 10.11. El grado de g(x) es igual al nmero de enteros en el


intervalo 1 i q m 1 tales que algn desplazamiento cclico de su repre-
sentacin en base q es menor o igual que 1.

Demostracin. Un poco de reflexin debe convencer al lector de que el


enunciado equivale a afirmar que i es una raz de g(x), puesto que existe
r
un conjugado suyo, iq , con 1 iq r 1, que lo es.

Ejemplo 10.6. Evaluando la frmula


t+1  m
X 
2 1
i=0
i

para los valores correspondientes de m y t, se obtiene la tabla 10.2. En


C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 319

n m t = 2t + 1 Distancia del cdigo


15 4 1 3 3
2 5 5
31 5 1 3 3
2 5 5
3 7 7
63 6 1 3 3
2 5 5
3 7 7

Tabla 10.2. Algunos cdigos BCH con distancia igual a la de diseo.

un caso prctico general, la condicin dada en el teorema 10.7 es de difcil


comprobacin, pues ambos miembros de la desigualdad aumentan con rapi-
dez. De todos modos, se puede observar de manera intuitiva en la frmula
que, para valores pequeos de t (la capacidad de correccin de errores) y
n = 2m 1 (la longitud), los cdigos BCH con distancia de diseo 2t + 1
tienen, en efecto, distancia mnima 2t + 1. Por ejemplo, para t = 1

t+1  m
X 
2 1
= 1 + (2m 1) + (2m 1)(2m1 1) > 2m
i=0
i

y acontece que todo cdigo BCH binario primitivo con distancia de diseo
3 es un cdigo Hamming.

El cdigo BCH de longitud 1023 y distancia de diseo 341 tiene distancia


mnima 341, y el de distancia de diseo 511 tiene distancia mnima igual a
511.

Los nmeros enteros en el rango 1 i 31 con una representacin


binaria que, desplazada cclicamente, d un entero menor que 11 son 20:

00001 00010 00011 00100


00101 00110 00111 01000
01001 01010 01100 01110
10000 10001 10010 10011
10100 11000 11001 11100

El grado del polinomio generador del cdigo BCH de longitud 31 y distancia


de diseo 11 tiene entonces grado 20, y la dimensin del cdigo es 31 20 =
11. La distancia del cdigo es 11.
320 Cdigos BCH

10.4. Mtodos de decodificacin algebraica

Para cdigos lineales, y en el supuesto de pretender hacer mnima la


probabilidad de equivocacin en el receptor, el mtodo de decodificacin
por sndrome es, segn se sabe ya, ptimo y adems completo, en el sentido
de que cualquiera que sea la secuencia de smbolos que se reciba, se emite
siempre la mejor estimacin de la palabra del cdigo transmitida. En la
prctica, no obstante, la construccin de dispositivos decodificadores de c-
digos lineales con una capacidad de correccin moderada o grande basados
directamente en este mtodo no es factible, a causa del tamao que alcanza
dicha tabla. La de un cdigo BCH[32, 28] con smbolos en 28 (corrector de
errores dobles) requiere, por ejemplo, 232 entradas.
Cabe, empero, una estrategia de decodificacin diferente con la que sos-
layar esta limitacin. Consiste en realizar un decodificador que resuelva
acerca de la palabra del cdigo emitida slo cuando estima que la secuencia
ms probable de errores de transmisin tiene peso Hamming o menor.
En otro caso (supuesto que se infieren ms de errores en la secuencia de
smbolos que se acaba de recibir), el decodificador se inhibe de corregirlos
y tan slo seala el fallo. Por tanto, para aquellas secuencias recibidas que
se encuentren a distancia mayor que de todas las palabras del cdigo, el
decodificador no produce a su salida ninguna palabra del cdigo. Este modo
de proceder se denomina decodificacin incompleta o, tambin, decodifica-
cin de distancia acotada, y resulta satisfactorio slo cuando la probabilidad
de que se d una secuencia de error incorregible (entre las que se cuentan
algunas con ms de errores) es suficientemente pequea.
En tal caso, se puede definir el problema que afrontan los algoritmos de
decodificacin de distancia acotada por diciendo que consiste en encontrar,
supuesto un vector recibido r, una palabra del cdigo, x, con dH (x, r) , si
esta palabra existe. Cuando b(dC 1)/2c, de existir solucin al problema,
sta es nica.
La decodificacin incompleta se puede explicar de un modo muy grfico
en trminos de la matriz tpica: basta con eliminar en ella las filas en las
que el vector de la primera columna es uno de peso mayor que ; ahora, si
el vector recibido aparece en esta nueva tabla, se decodifica como la palabra
del cdigo que encabeza su columna; en otro caso, se declara un error de
decodificacin.
A consecuencia de sus propiedades algebraicas, se dispone de algoritmos
eficientes (con una complejidad no exponencial) de decodificacin comple-
ta de los cdigos BCH correctores de errores dobles y triples. En cambio,
se desconoce todava si existen tambin para otros cdigos BCH de mayor
capacidad de correccin. Como quiera que estos ltimos son precisamen-
te los que ms interesan en las aplicaciones, se han desarrollado para ellos
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 321

varios algoritmos especficos de decodificacin incompleta, cuyos fundamen-


tos explicaremos en este apartado. Por el momento, slo se va a analizar
la decodificacin de cdigos binarios, y se pospone la de los no binarios al
captulo 11.
Considrese un cdigo BCH binario de longitud n y distancia de diseo
= 2t + 1 impar. Su matriz de comprobacin de paridad en la extensin
2m es, como se sabe,


n1 ... ... 1
3(n1) ... ... 3 1
H=
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
(2)(n1) . . . . . . 2 1

Sea = (n1 , . . . , 0 ) la secuencia binaria recibida en el extremo de salida


del canal. El sndrome que corresponde a es

H T = (), (3 ), . . . , (2 ) (10.1)

siendo (x) = n1 xn1 + +1 x+0 . No se olvide que, en esta expresin,


el producto del vector por la matriz H T se realiza con las operaciones
de suma y producto del cuerpo 2m , y que las componentes del sndrome
pertenecen tambin a 2m .
La ecuacin (10.1) muestra que los elementos del vector sndrome son los
valores del polinomio (x) (asociado al vector recibido ) evaluado en los
puntos , 3 , ..., 2 . Sin embargo, existe una manera ms eficiente que
sta de calcular el sndrome a partir de (x). Porque, si se divide (x) entre
el polinomio mnimo Mi (x) del elemento i , entonces se puede escribir

(x) = q(x)Mi (x) + ri (x)

y de aqu se desprende que (i ) = ri (i ) i = 1, . . . , 1. Esto es, el


elemento j-simo del vector de sndromes es el valor del polinomio resto
r2j1 (x) evaluado en el punto 2j1 . Ahora bien, el valor r(2j1 ) se puede
calcular fcilmente con un circuito divisor de polinomios, para obtener pri-
mero el resto, seguido de un sencillo circuito lgico combinacional.2 Este
mtodo de divisin reduce el nmero de operaciones del anterior, dado que
el resto ri (x) es siempre un polinomio de grado menor que Mi (x) y, cla-
ro est, tambin menor o igual que (x). Veamos con un ejemplo cmo se
sintetizaran los circuitos de cmputo del sndrome.

2 Con cdigos binarios, este circuito combinacional solamente requiere sumadores bi-

narios. Con cdigos no binarios haran falta dispositivos sumadores y multiplicadores en


q.
322 Cdigos BCH

 
    



Figura 10.1. Divisor por x5 + x2 + 1 y clculo de R().

 
    

! " $#

Figura 10.2. Divisor por x5 + x4 + x3 + x2 + 1 y clculo de S(3 ).

+, -.
%* %) %( %' %&

%/ 0132

Figura 10.3. Divisor por x5 + x4 + x2 + x + 1 y clculo de T (5 ).


C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 323

Ejemplo 10.7. El cdigo BCH[31, 16], binario y primitivo, de polinomio


generador

g(x) = M (x)M3 (x)M5 (x)


= (x5 + x2 + 1)(x5 + x4 + x3 + x2 + 1)(x5 + x4 + x2 + x + 1)

tiene distancia 7.
Sus sndromes son vectores de tres elementos del cuerpo 25 ; el primer
elemento es R(), en donde R(x) es el resto de dividir la secuencia recibida
(x) entre M (x):
(x) = q1 (x)M (x) + R(x),
y es un elemento primitivo de 25 . Si se escriben, en general, los coefi-
cientes de R(x) como R(x) = R4 x4 + R3 x3 + R2 x2 + R1 x + R0 , entonces
es R() = R4 4 + R3 3 + R2 2 + R1 + R0 . El esquema de la figura 10.1
ilustra el circuito de divisin y el clculo posterior de R().
De la misma manera, si S(x) es el resto de dividir el vector recibido entre
el polinomio mnimo M3 (x),

(x) = q2 (x)M3 (x) + S(x)

y se escribe S(x) = S4 x4 + S3 x3 + S2 x2 + S1 x + S0 , entonces la segunda


componente del vector sndrome es S(3 ) = S3 4 + (S1 + S2 + S3 + S4 )3 +
S4 2 + (S4 + S3 + S2 ) + S0 . El correspondiente circuito divisor se ha
representado en la figura 10.2.
Y el ltimo elemento del sndrome es el resto T (x), valorado en 5 , de
la divisin de (x) entre M5 (x). Su expresin general es

T (5 ) = T0 +T1 +T2 +T3 +T3 +(T1 +T3 +T4 )2 +(T3 +T4 )3 +(T2 +T3 )4

si se toma T (x) = T4 x4 +T3 x3 +T2 x2 +T1 x+T0 . El diagrama de la figura 10.3


muestra el correspondiente circuito de clculo.

Una vez hallado el sndrome, si no fuese nulo, analicemos qu relacin


algebraica se da entre su valor y las posiciones errneas. Esta dependencia
explcita, si existe, podr en algunos casos resolverse, y proporcionar un
mtodo con el que corregir los errores de transmisin.
Supongamos entonces que el vector recibido difiere de la palabra del
cdigo emitida en las s coordenadas i1 , . . . , is o, de manera equivalente, que
el polinomio error vale

e(x) = xi1 + + xis . (10.2)


324 Cdigos BCH

Entonces, las componentes del sndrome estn contenidas en la secuencia de


2t coeficientes3

Sj = (j ) = v(j ) + e(j ) = e(j ), j = 1, 2, . . . , 1

la cual depende slo del vector de error e, ya que, por definicin de los
cdigos BCH, v(j ) = 0. Pero, por (10.2),
s
X
e(j ) = jik
k=1

que, si se define Xk = ik 2m , se podr escribir como


s
X
Sj = e(j ) = Xkj , j = 1, . . . , 1.
k=1

Es decir, las componentes del sndrome son una combinacin lineal de las
potencias sucesivas de los elementos Xk . Tal cambio de variables resulta muy
conveniente porque permite ver con facilidad que, a partir de la secuencia
de elementos Xk , es factible localizar las posiciones errneas, pues para
averiguarlas basta con resolver las ecuaciones

Xk = i k , k = 1, . . . , s

por simple enumeracin o consultando una tabla de logaritmos del cuerpo


2m . Los elementos {X1 , X2 , . . . , Xs } indican inequvocamente las posicio-
nes errneas en el vector recibido, por lo que se denominan elementos lo-
calizadores de errores. Segn lo expuesto, acabamos de ver que decodificar
equivale a hallar el valor de los localizadores.
As los hechos, necesitaremos un procedimiento para resolver el sistema
de ecuaciones
Xs
Sj = Xkj , j = 1, . . . , 1 (10.3)
k=1

en las incgnitas {X1 , X2 , . . . , Xs }. Este es un sistema algebraico no lineal


que consta de no ms de t = 1 2 ecuaciones independientes (tratamos con
cdigos binarios) y, por cmo se han definido las componentes del sndrome
y los localizadores de error, siempre admite al menos una solucin. Pero
su propiedad crucial es que el conjunto de elementos {X1 , X2 , . . . , Xw } de
menor longitud w que lo resuelve es nico y, en consecuencia, correcto (los
valores Xk coinciden con los localizadores del vector de error) slo cuando
el nmero de errores que se producen durante la transmisin, s, es menor o
3 Observe que, en cdigos binarios, al menos la mitad de los trminos de la secuencia
son redundantes: S2j = (2j ) = 2 (j ) = Sj2 .
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 325

igual que t (teorema 10.13). En otro caso, es decir, si s > t, el sistema (10.3)
posee mltiples soluciones. De tal manera que, cuando el canal introduce
t o menos errores, un mtodo para resolver (10.3) es un procedimiento de
decodificacin incompleta del cdigo.
La dificultad de averiguar, cuando exista, la solucin nica de las ecua-
ciones (10.3) estriba en que son no lineales y s es desconocido. Las ecuaciones
presentan, no obstante, una pauta regular reconocible: los segundos miem-
bros son funciones simtricas de suma de potencias con los localizadores Xk ,
para k = 1, . . . , s

S1 = X 1 + X 2 + + X s
S2 = X12 + X22 + + Xs2
..
.
S2t = X12t + X22t + + Xs2t .

A efectos de simplificar la resolucin del sistema, se conviene en definir


un nuevo polinomio que, primero, va a permitir transformar las ecuaciones
anteriores en un sistema lineal, y, segundo, posee un conjunto de ceros que
harn posible posteriormente identificar los errores. Antes, presentemos la
clase a la que pertenece este nuevo polinomio.

Definicin 10.4 (Polinomio localizador). En el anillo de polinomios


Fq [x]/xn 1, con mcd(q, n) = 1, se llama polinomio localizador de P (x) a
cualquier polinomio L(x) no nulo para el que se cumple

L(x)P (x) = 0 mod xn 1.

De modo que si L(x) es el polinomio localizador de P (x),

L(i )P (i ) = 0, i = 0, . . . , n 1

y L(x) contar entre sus ceros a todas las races n-simas de la unidad, i ,
que no son ceros de P (x): P (i ) 6= 0 L(i ) = 0. Es fcil ver que el
conjunto de todos los polinomios localizadores de uno dado, P (x), forman
un ideal principal de Fq [x]/xn 1, generado por cualquiera de los polinomios
localizadores de menor grado.
De vuelta al problema de la decodificacin de un cdigo BCH binario,
y dado un vector de error (e1 , . . . , en ) de peso s, formemos a partir de l el
polinomio transformado
n1
X
S(x) = S k xk
k=0
326 Cdigos BCH
Ps Ps
con Sk = j=1 eij kij = j=1 kij . Los coeficientes S1 , S2 , . . . , S2t de este
polinomio son conocidos, ya que se trata de las componentes del sndrome
del vector error. Pues bien, se puede demostrar que el polinomio
s
Y
L(x) = (1 Xj x)
j=1

con Xj = ij para j = 1, . . . , s, es el localizador de grado mnimo de


S(x). Esto es, el localizador L(x) de S(x) es el polinomio de grado s cuyos
ceros son Xj1 , los recprocos de los elementos localizadores de errores. Los
Ps m
coeficientes de L(x) = m=0 Lm x se pueden expresar directamente en
trminos de los {Xj }:

L0 = 1
s
X
L1 = (1) Xj
i=1
X
L2 = (1)2 Xi Xj
i<j
X
L3 = (1)3 Xi Xj Xk (10.4)
i<j<k
..
.
X s
Y
Ls = (1)s Xi1 Xi2 Xis = (1)s Xi
i1 <i2 <<is i=1

y resultan ser las funciones elementales simtricas de los localizadores. Pero


en lgebra es bien conocida la existencia de un conjunto de ecuaciones li-
neales simultneas que relacionan las funciones elementales simtricas de un
conjunto de variables con las funciones de suma de potencias de esas mismas
variables. Se trata de las identidades de Newton, y se suelen presentar en la
forma directa que se enuncia a continuacin.

Teorema 10.12 (Identidades de Newton). En cualquier cuerpo IK, las


sumas de potencias
s
X
Sj = Xkj , j1
k=1
s
en las que {X1 , . . . , Xs } IK son elementos distintos del cuerpo, y los
coeficientes del polinomio
s
Y s
X
L(z) = (1 Xj z) = Lj z j
j=1 j=0
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 327

satisfacen el siguiente sistema de ecuaciones lineales

S1 + L 1 = 0
S2 + L1 S1 + 2L2 = 0
..................... (10.5)
Ss + L1 Ss1 + + Ls1 S1 + sLs = 0

y
Si + L1 Si1 + + Ls Sis = 0, i > s. (10.6)

En el caso de un cdigo BCH binario, estas ecuaciones implican que



1 0 ............... 0 L1 S1
S2 S1 1 0 ...... 0

L 2 S3

S4 S S S 1 . . . 0
3 2 1 L 3 = S5

(10.7)
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

.. ..

S2s4 S2s5 . . . . . . . . . . . . . . . Ss3 . .
S2s2 S2s3 . . . . . . . . . . . . . . . Ss1 Ls S2s1

si S1 , S2 , . . . , S1 son las componentes del vector sndrome, y L0 , L1 , . . . , Ls


son los coeficientes del polinomio localizador de errores.

Demostracin. Sea el polinomio



X s
X
S(z) = Sj z j con Sj = Xkj .
j=1 k=1

El producto de z por la derivada formal4 de L(z) vale


s
X Y s
X
L(z)
zL0 (z) = z Xj (1 Xi z) z Xj
j=1 j=1
1 Xj z
i6=j
s
X
X X
X s 
= L(z) zXj (Xj z)k = L(z) Xjk z k
j=1 k=0 k=1 j=1

= L(z)S(z)
P
aplicando la identidad formal k=0 (Xj z)k = 1/(1 Xj z). Es decir, se tiene
que L(z)S(z) + zL0(z) = 0. Igualando coeficientes de esta expresin, resulta
el conjunto de ecuaciones (10.5)-(10.6).
4 La nocin de lmite carece de sentido en un cuerpo finito.
328 Cdigos BCH

En el caso particular de que el cuerpo base tenga caracterstica 2, basta


con introducir las simplificaciones
jLj = Lj si j es impar
jLj = 0 si j es par
S2j = Sj2
para eliminar todas las ecuaciones pares, que son redundantes, y obtener el
sistema (10.7).

Por la forma en que se definen las sumas de potencias, las identidades de


Newton adquieren una gran utilidad en el caso de que el cdigo sea binario.
En el problema de la decodificacin, existen dos mtodos diferentes de ex-
plotar las identidades de Newton para obtener los coeficientes del polinomio
localizador a partir de los del sndrome.

10.4.1. Algoritmo de Peterson

En virtud del teorema 10.12, los coeficientes del sndrome y los del poli-
nomio localizador verifican las ecuaciones (10.7). Aunque s es desconocido,
el teorema siguiente proporciona un mtodo iterativo para resolverlas. B-
sicamente, muestra que existe una submatriz de sndromes regular si se
producen menos de t errores de transmisin.

Teorema 10.13 (Peterson). Sean X1 , . . . , Xs elementos Ps distintos de un


cuerpo IK de caracterstica 2 y, para j 1, sea Sj = k=1 Xkj . La matriz
rr
1 0 0 0 0 ... 0
S2 S1 1 0 0 ... 0

S4 S S S 1 . . . 0

Ar = 3 2 1

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
S2r4 S2r5 . . . . . . . . . . . . . . . Sr3
S2r2 S2r3 . . . . . . . . . . . . . . . Sr1
es regular si s = r o s = r 1, y es singular si s < r 1.

Demostracin.

a) Si
Qss < r 1 y L1 , . . . , Lr2 son los coeficientes del polinomio L(x) =
i=1 (1 xXi ), entonces
T
Ar 0 1 L1 . . . Lr2 = 0
en virtud de las ecuaciones de Newton (10.7), de modo que Ar es
singular.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 329
Ps2
b) Si s = r y fijamos Xi = Xj para algn i 6= j, entonces Sj = k=1 Xkj
(la caracterstica del cuerpo es 2), y, por el apartado anterior, Ar sera
singular. Por tanto,
Y
det Ar = K (Xi + Xj )
i<j

para cierta constante K. De hecho, K = 1, ya que, sin ir ms lejos,


det A2 = X1 + X2 . Como, por hiptesis, Xi 6= Xj , det Ar 6= 0, y Ar
no es singular.
c) Si s = r 1, bastara con fijar Xi = 0 para comprobar, segn el caso
previo, que det Ar 6= 0.

Aplicndolo al problema que nos ocupa, si el cdigo BCH es de distancia


de diseo = 2t + 1 y ocurren s t errores, entonces podemos intentar re-
solver (10.7) suponiendo que el nmero de posiciones errneas es t, es decir,
postulando s = t. Segn el teorema anterior, si se han producido t o t 1
errores, existe solucin nica del sistema, lo que significa que, continuan-
do con el proceso de decodificacin, ser posible descubrir las posiciones
errneas. Pero si han ocurrido menos de t 1 errores (o ms de t), las ecua-
ciones (10.7) son las de un sistema indeterminado. En ese caso, supongamos
que el nmero de errores era de t 2, e intentemos de nuevo resolver (10.7)
con s = t 2. Repitamos el procedimiento de reducir en cada paso dos
errores, eliminando las dos ltimas filas de la matriz Ar , hasta llegar a una
de estas dos alternativas:

a) Una nica solucin de las ecuaciones, en cuyo caso se contina con el


resto del algoritmo de decodificacin.
b) Ninguna solucin nica de las ecuaciones, y entonces con certeza se
sabe que deben haberse producido ms de t errores. Ya que no son
corregibles y se asume decodificacin incompleta, la decodificacin ter-
mina en este punto.

Conviene sealar que, aunque exista una solucin de las ecuaciones de


Peterson, sta puede no corresponder al polinomio localizador de errores
del vector transmitido. En particular, si se recibe un vector a distancia
mayor que t de cualquier palabra del cdigo, el polinomio evaluador que se
calcula puede poseer races mltiples o que no pertenecen al cuerpo al que
pertenecen las races n-simas de la unidad. Tal situacin, sin embargo, se
detecta con facilidad, aunque es ajena al algoritmo. Tambin puede darse el
caso de que el vector recibido se encuentre a distancia menor que t de una
palabra del cdigo incorrecta, lo que llevara a un error de decodificacin
indetectable.
330 Cdigos BCH

En resumen, los pasos del algoritmo de decodificacin de Peterson para


un cdigo corrector de t errores son:

1. Calcular los elementos {Sj , j = 1, . . . , 2t} del sndrome.


2. Construir la matriz de sndromes At .
3. Hallar el mayor s t tal que el determinante de As es distinto de
cero.
4. Calcular los coeficientes del polinomio localizador de errores L(x) re-
solviendo el sistema (10.7).
5. Obtener las races de L(x); si no son todas distintas o no pertenecen
al menor cuerpo de caracterstica q que contiene a todas las races
n-simas de la unidad, entonces se han producido ms de t errores de
transmisin y se debe declarar un fallo de decodificacin.
6. Obtener el vector error (los localizadores) a partir de L(x).
7. Si el vector corregido tiene sndrome nulo, emitirlo; en caso contrario,
sealar un error de decodificacin.

El inconveniente de este mtodo es que se basa en la resolucin de una


sucesin de t/2 sistemas lineales, por lo que no resulta prctico a menos que
t sea pequeo (t = 6 o t = 7) y se puedan manejar frmulas analticas sen-
cillas para el determinante de At . Por referencia, damos a continuacin las
expresiones formales de los coeficientes del polinomio localizador en funcin
del sndrome en cdigos correctores de errores simples, dobles y triples:

Correccin de errores simples

L1 = S 1

Correccin de errores dobles

L1 = S 1
S3
L2 = + S12
S1

Correccin de errores triples

L1 = S 1
S12 S3 + S5
L2 =
S13 + S3
L3 = (S13 + S3 ) + S1 L2
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 331

Ejemplo 10.8. Con cdigos BCH correctores de errores dobles, el proce-


dimiento de decodificacin de Peterson puede describirse as:

1. Calcular el sndrome (S1 , S3 )


2. Si S1 6= 0 y S3 = S13 , entonces se ha producido un error y el polinomio
localizador vale
L(z) = 1 + S1 z.

3. Si S1 6= 0 y S3 6= S13 , entonces han ocurrido dos errores, y para hallar


el polinomio localizador se ha de resolver
    
1 0 L1 S1
= .
S2 S1 L2 S3

Como su solucin es

L1 = S 1
S3 S3
L2 = + S2 = + S12
S1 S1
el polinomio localizador de errores vale
 
S3
L(x) = + S12 x2 + S1 x + 1
S1

expresado en funcin de los elementos del sndrome (S1 , S3 ). Con la


sustitucin y = S1 x, el clculo de las races del polinomio localizador
consiste en la resolucin de la ecuacin cuadrtica
 
2 S3
y + 1 + y + 1 = 0,
S13
que mediante otro cambio de variable se puede escribir en la forma
cannica
y2 + y + u = 0
para cierto u 2m . El mtodo de resolucin de esta clase de ecua-
ciones cuadrticas en 2m resulta ser muy sencillo, y aparece descrito
en [41, cap. 9], por ejemplo.
4. Si S1 = 0 y S3 6= 0, entonces han ocurrido al menos tres errores,
puesto que la matriz
   
1 0 1 0
=
S2 S1 0 0

es singular.
332 Cdigos BCH

Ejemplo 10.9. Consideremos el cdigo BCH[31, 16, 7] binario de polinomio


generador

g(x) = x15 + x11 + x10 + x9 + x8 + x7 + x5 + x3 + x2 + x + 1

y supongamos que el vector que se recibe es

vb(x) = x15 + x12 + x6 + x5 + 1.

Apliquemos el algoritmo de Peterson para proceder a la decodificacin. El


sndrome de vb(x) tiene por componentes a

S1 = vb() = 15
S2 = vb(2 ) = 30 = S12
S3 = vb(3 ) = 5
S4 = vb(4 ) = 29 = S22
S5 = vb(5 ) = 15
S6 = vb(6 ) = 10 = S32 .

La matriz de sndromes

1 0 0
A3 = 30 15 1
29 5 30

es no singular, y por tanto los coeficientes del polinomio localizador se obtie-


nen tras resolver 15
L1
A 3 L 2 = 5 .
L3 15
La solucin de este sistema de ecuaciones en 32 es (15 , 2 , 27 ), de modo
que el polinomio localizador vale

L(x) = 1 + 15 x + 2 x2 + 27 x3 .

Las races de L(x) son los puntos 16 , 7 y 4 , por lo que el receptor


estima un error de transmisin

e(x) = x16 + x7 + x4 .

La salida del decodificador ser, pues,

vb(x) + e(x) = x16 + x15 + x12 + x7 + x6 + x5 + x4 + 1 = (x + 1)g(x).


C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 333

10.4.2. Algoritmo de Berlekamp

El mtodo de Peterson se sirve de una solucin simple y directa para el


clculo de los coeficientes del polinomio localizador de errores: la inversin
de una matriz de sndromes. Puesto que la complejidad de esta operacin
matricial es O(n3 ) (para una matriz de tamao n), parece claro que la carga
de cmputo se vuelve excesiva en cdigos con una capacidad de correccin
moderada o grande.
La complejidad del algoritmo de Berlekamp, en cambio, se incrementa
slo cuadrticamente con la capacidad t de correccin; es, por tanto, mucho
ms eficiente que el de Peterson, y permite decodificar de forma prctica
cdigos correctores de decenas de errores. El fundamento del algoritmo es
la identidad algebraica que se expone a continuacin.
Formalmente, sea

X
S(x) = S j xj
j=1

el polinomio sndrome, del que slo son conocidos en recepcin los coeficien-
tes de los trminos de grado no superior a 2t. El producto de 1 + S(x) por
el polinomio localizador de errores vale

V (x) = 1 + S(x) L(x)
= (1 + S1 x + S2 x2 + )(1 + L1 x + + Ls xs )
= 1 + (S1 + L1 )x + (S2 + L1 S1 + L2 )x2 +

Pero, como los coeficientes del polinomio sndrome y del localizador sa-
tisfacen las identidades de Newton (10.5), entonces los coeficientes impares
de V (x) son nulos. Puesto que solamente S1 , . . . , S2t son conocidos y se re-
quieren L1 , , Ls , el problema de la decodificacin equivale a encontrar
dos polinomios L(x) y V (x), de grado menor o igual que t, que verifiquen

1 + S(x) L(x) (1 + V2 x2 + V4 x4 + + V2t x2t ) V (x2 ) mod x2t+1 .

El algoritmo de Berlekamp resuelve esta ecuacin mediante un procedimien-


to iterativo que se compone de los pasos siguientes:

1. Inicializacin: k = 0, L0 (x) = 1, T0 (x) = 1


2. Iteracin:
a) Calcular
L2k+2 (x) = L2k (x) + 2k xT2k (x)
donde 2k es el coeficiente de x2k+1 en el producto L2k (x)(1 +
S(x)).
334 Cdigos BCH

b) Calcular
(
x2 T2k (x) si 2k = 0 o grado(L2k (x)) > k
T2k+2 (x) = 1
2k xL2k (x) si 2k 6= 0 y grado(L2k (x)) k

c) k = k + 1; si k < t volver al paso (a).


d ) Determinar las races de L(x) = L2t (x); si son todas distintas y
pertenecen al cuerpo adecuado, corregir las posiciones errneas;
en otro caso, sealar un error de decodificacin.

El algoritmo calcula explcitamente un L(x) de grado mnimo que satisface


la ecuacin (1 + S(x))L(x) V (x2 ) mod x2t+1 . Es una simplificacin del
algoritmo de BerlekampMassey para la decodificacin de cdigos BCH no
binarios, que se explica en el apartado 11.4.2.

Ejemplo 10.10. Tomemos el cdigo BCH[15, 7] de distancia 5 y polinomio


generador
g(x) = (x4 + x + 1)(x4 + x3 + x2 + x + 1)

y supongamos que se producen errores en las posiciones primera y ltima


del vector del cdigo que se transmite, esto es,

e(x) = x14 + 1.

Por tanto, el polinomio localizador de errores vale

L(x) = (1 x)(1 14 x) = 1 (14 + 1)x + 14 x2 = 1 + 3 x + 14 x2

y el polinomio sndrome

S(x) = 1 + 3 x + 6 x2 + 11 x3 + 12 x4 +

Al aplicar el algoritmo de Berlekamp, se obtiene la secuencia de polino-


mios que recoge la tabla siguiente

k L2k (x) T2k (x) 2k


0 1 1 3
1 1 + 3 x 12 x 2
2 1 + 3 x + 14 x2

donde, en efecto, L4 (x) = L(x).


C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 335

 
 



 
 



!#"

Figura 10.4. Circuito de bsqueda de Chien.

10.4.3. Bsqueda de las races

El ltimo paso en la decodificacin incompleta consiste en hallar las


races del polinomio localizador de errores, que son justo los recprocos de
los localizadores. Basta para ello con comprobar si con cada uno de los
elementos j , j = 0, 1, . . . , n 1, es L(j ) = 0.
El mecanismo de correccin de errores es, en cdigos binarios, igualmen-
te sencillo, puesto que se habr producido un error en el smbolo j de la
secuencia recibida si, y solamente si, L(j ) = 0. La bsqueda exhaustiva
de los ceros de L(x) (por simple evaluacin) recibe el nombre de bsque-
da de Chien, y se puede realizar con un circuito secuencial no demasiado
complicado.
Este circuito consta de t registros de desplazamiento. El registro j es un
multiplicador por j que se inicializa con la representacin binaria del coe-
ficiente Lj . El contenido de cada registro se itera n veces, para ir calculando
Lj ij (i = 0, . . . , n 1). A la salida de los registros de desplazamiento,
un circuito lgico detector verifica la condicin L(j ) = 0. Un ejemplo
ilustrar mejor el proceso.

Ejemplo 10.11. En el ejemplo anterior se obtuvo un polinomio localizador

L(x) = 1 + 3 x + (3 + 1)x2

para errores en las posiciones 0 (primera) y 14 (ltima). El recproco del


elemento 0 = 1 es 1, y, en efecto,

L(1) = 3 + 1 + 3 + 1 = 0.
336 Cdigos BCH

Asimismo, el recproco del elemento 14 es 14 = , y es inmediato veri-


ficar que
L() = (3 + 1)2 + 3 + 1 = 0
pues 5 = 2 + y 4 = + 1.
La figura 10.4 es el esquema del circuito de bsqueda de Chien para este
cdigo. El primer registro de desplazamiento se carga inicialmente con la
representacin binaria de L1 , y el segundo, con la de L2 ; cada iteracin de
los registros sirve para calcular L1 i + L2 2i , y cuando se detecta L1 i +
L2 2i = 1, se procede a corregir el error.

En resumen, la decodificacin algebraica de cdigos BCH se ha dividido


en tres etapas: a) obtencin del sndrome; b) clculo de los coeficientes del
polinomio localizador, bien con el algoritmo de Peterson o bien con el de
Berlekamp (se precisa del polinomio localizador para convertir un problema
no lineal en uno lineal); c) bsqueda exhaustiva de las races del polinomio
localizador de errores.

Notas bibliogrficas

La investigacin de mtodos algebraicos de decodificacin de cdigos


polinmicos, y muy especialmente de cdigos BCH, ocup la primera mitad
de la dcada de los sesenta [10]. La solucin de Peterson al problema de
resolver un sistema lineal con los elementos localizadores como incgnitas
es muy similar a la dada por de Prony en 1795 al mismo problema en
un cuerpo infinito. Las cotas de distancia BCH, de HartmannTzeng y de
Roos se estudian con detalle en [68]. En general, no se conocen an ni la
distancia ni la distribucin de pesos ni el grupo de automorfismos de los
cdigos BCH, excepto en casos limitados como el de los cdigos BCH en
sentido restringido.
Las referencias ms autorizadas sobre el algoritmo de BerlekampMassey
continan siendo [3] y [43], aunque una revisin ms actualizada se puede
encontrar en [53, cap. 19].
CAPTULO 11

Cdigos ReedSolomon

Los cdigos ReedSolomon forman una clase preferente dentro de los


cdigos BCH no binarios, dado que tienen la mxima distancia que puede
alcanzar cualquier cdigo lineal de su misma longitud y dimensin. Han
adquirido una gran relevancia en las aplicaciones no slo por su capacidad
para corregir largas rfagas de errores y de smbolos borrados, sino tambin
porque se conoce para ellos un algoritmo de decodificacin computacional-
mente eficiente, el algoritmo de BerlekampMassey. Adems, resultan muy
convenientes para construir otros cdigos. Por ejemplo, se pueden transfor-
mar directamente en cdigos binarios de distancia elevada, se suelen utilizar
como cdigos exteriores en los sistemas de cdigos concatenados y fueron
en su momento la base para desarrollar la teora de cdigos algebraico
geomtricos, de la que constituyen uno de los ejemplos ms simples.
Hoy, los sistemas de transmisin o de almacenamiento de la informacin
que utilizan alguno de los cdigos ReedSolomon son cada vez ms numero-
sos, y abarcan desde las comunicaciones espaciales o la transmisin digital
terrena (por ejemplo, la televisin digital de alta definicin) hasta productos
de electrnica de consumo como los grabadores y reproductores de discos
compactos de audio y vdeo (DVD).
Este captulo est dedicado a describir la construccin (cf. apartados 11.1
y 11.2) y los algoritmos de decodificacin (apartados 11.3 a 11.5) de la
familia de cdigos ReedSolomon. El apartado 11.7 presenta los cdigos
ReedSolomon generalizados. El apndice 11.A establece el fuerte vnculo
existente entre cierta clase de cdigos polinmicos y la transformada de
Fourier en un cuerpo finito. Los fundamentos algebraicos de la tcnica de
decodificacin por localizacin y del algoritmo de BerlekampMassey son la
materia del apndice 11.B.

337
338 Cdigos ReedSolomon

11.1. Definicin

Existen varias maneras alternativas de definir la familia de cdigos Reed


Solomon, pero tal vez la ms directa sea considerarlos en relacin con los
cdigos BCH.

Definicin 11.1 (Cdigo RS). Un cdigo ReedSolomon (RS) sobre el


cuerpo q es un cdigo BCH de longitud q 1.

Por tanto, la longitud de un cdigo RS es el nmero de elementos no


nulos del cuerpo base; y, naturalmente, q 6= 2, es decir, los cdigos RS no
son binarios.

En los trminos de la definicin 11.1, el procedimiento de construccin


de un cdigo RS es sencillo. Una raz primitiva (q 1)-sima de la unidad
es cualquier elemento primitivo, , del cuerpo q . El polinomio mnimo de
i sobre Fq [x] es x i . As, el polinomio generador de un cdigo RS de
distancia (de diseo) 2t + 1 es

g(x) = (x b )(x b+1 ) (x b+2t1 ).

Normalmente se elige b = 0 o b = 1.

Se desprenden de inmediato de la definicin algunas proposiciones sen-


cillas:

a) El dual de un cdigo RS-[n, k] es otro cdigo RS-[n, n k]; en efecto,


as ocurre, ya que el conjunto de elementos no nulos de q es un grupo
multiplicativo cclico. Si Z es el conjunto de ceros del cdigo RS-[n, k],
los ceros del dual tambin son consecutivos

Z = {j : nj 6 Z}.

Obsrvese que esta propiedad no es cierta en el caso de un cdigo BCH


general: el dual de un cdigo BCH no siempre es otro cdigo BCH.
Adems, si C es un cdigo RS, uno de los cdigos C o C es par y el
otro es impar, porque slo uno de ambos tiene a 1 entre sus races. Un
cdigo
Pn q-ario es par si para cualquier palabra del cdigo x1 x2 . . . xn es
i=1 i = 0, e impar si no se cumple tal condicin.
1
x

1 Luego un cdigo binario es par si est compuesto slo por vectores de peso Hamming
par.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 339

b) Una matriz de comprobacin de paridad de un cdigo RS-[n, k] es



n1 ... 2 1
2(n1) ... 4 2 1
H=
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
(nk)(n1) . . . 2(nk) nk 1

n1 . . . 2 1 1
2n1 . . . 22 21 1
=
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
nk
n1 . . . 2nk 1nk 1

en donde 1, 1 , . . . , n1 son los elementos no nulos de q.

c) Una matriz generadora de RS-[n, k] es



(n1)(k1) . . . 2(k1) k1 1 k1
(n1)(k2) . . . 2(k2) k2 1 k2

G= . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = ..

.
n1 ... 2 1 1
1 ... 1 1 1 0

en donde i = (in1 . . . 1i 0i ) y i = i para 0 i < k. Es sencillo


verificar que el producto escalar entre la fila k j de G y la fila h de
H vale
n1
X n1
X 1 n(j+h)
ij ih = i(j+h) = =0
i=0 i=0
1 j+h
ya que, por definicin, n = 1 y 1 j + h < n.
Entonces, si (ck1 , ck2 , . . . , c0 ) es cualquier secuencia de k smbolos
de q , un vector del cdigo se puede calcular como

v = (ck1 , ck2 , . . . , c0 ) G.

Pero, atendiendo a la estructura de G, este producto se puede escribir


tambin como
k1
X k1
X k1
X k1 
X
v= ci i(n1) , ci i(n2) , . . . , c i i , ci
i=0 i=0 i=0 i=0

= P (n1 ), P (n2 ), . . . , P (), P (1)

siendo P (x) el polinomio ck1 xk1 + + c1 x + c0 . En consecuencia,


un cdigo RS es el conjunto de puntos

v = P (n1 ), P (n2 ), . . . , P (), P (1)
340 Cdigos ReedSolomon

con P (x) un polinomio arbitrario en q de grado inferior a k y


una raz primitiva n-sima de la unidad. sta es una definicin muy
similar a la original, elegante y simple, de Reed y Solomon.2 Como
para la mayora de las cuestiones relativas a la decodificacin es ms
cmoda la caracterizacin algebraica en trminos de los ceros del po-
linomio generador, en el resto del captulo se utilizar preferiblemente
la definicin 11.1.
d ) El cdigo RS-[2m 1, k] contiene al BCH binario primitivo de longitud
2m 1 y distancia de diseo 2m k: en efecto, los elementos , 2 , . . . ,
m
2 k1 , que definen al polinomio generador del cdigo RS, tambin
son ceros del polinomio generador del cdigo BCH.

La propiedad ms importante de un cdigo RS es que su distancia es


igual al nmero de smbolos de redundancia ms uno, la mayor posible. En
otras palabras, la distancia de diseo es la distancia del cdigo y es mxima.

Teorema 11.1 (Distancia de un cdigo RS). Un cdigo RS-[n, k] es


separable y de mxima distancia (MDS), es decir, tiene distancia n k + 1.

Demostracin. La cota de Singleton (teorema 6.17, pgina 181) establece


que la distancia de cualquier cdigo est acotada superiormente por

dC n k + 1

mientras que la cota de distancia BCH (teorema 10.1) establece que la


distancia del cdigo est acotada inferiormente por la distancia de diseo,
que, en el caso de un cdigo RS, es igual al grado n k del polinomio
generador ms uno,
dC n k + 1.
Por lo tanto, dC = n k + 1, y los cdigos RS son ptimos en cuanto a
distancia en q , ya que alcanzan la cota de Singleton.

En realidad, la mayora de las propiedades de inters de los cdigos RS


son una consecuencia de la propiedad MDS. Veamos algunas de ellas.
2 I. Reed y G. Solomon estudiaron los cdigos formados por los conjuntos de puntos
P (n1 ), P (n2 ), . . . , P (), P (1), P (0) 

para P (x) un polinomio cualquiera de grado inferior a k en q . Tales cdigos son lineales
pero no cclicos. Generalicemos esta situacin como sigue. Sea X un objeto geomtrico
cualquiera que contiene a una familia finita de puntos P = {p1 , . . . , pn } (por ejemplo, la
recta afn X = q y los puntos P = q ). Sea L un espacio lineal de funciones de P en
q , como por ejemplo L = Fq [x]. El conjunto C = {((p1 ), (p2 ), . . . , (pn )), L} es
un cdigo lineal. Esta es precisamente la forma en que se definen los cdigos algebraico
geomtricos. Los casos ms interesantes (y menos triviales) se obtienen al tomar una
curva o una superficie plana para X .
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 341

Teorema 11.2. El dual de un cdigo separable de mxima distancia es otro


cdigo separable de mxima distancia.

Demostracin. Si un cdigo C[n, k] es separable, de mxima distancia,


cualquier conjunto de n k columnas de su matriz de comprobacin de
paridad H es linealmente independiente. Pero, como H engendra el c-
digo dual, esto significa que el nico vector de C [n, n k] con n k o
ms ceros es el vector nulo. Porque si existiese un vector del cdigo dual
con n k componentes {c1 , . . . , cnk } a cero, entonces, dado que es una
combinacin lineal de las filas de H, la submatriz compuesta por las co-
lumnas c1 , c2 , . . . , cnk de H sera singular y su rango no podra ser n k.
En consecuencia, dC k + 1; y como, por la inecuacin de Singleton,
dC n (n k) + 1 = k + 1, se concluye que dC = k + 1.

Teorema 11.3. En un cdigo MDS, cualquier conjunto de k coordenadas


de una palabra del cdigo se pueden tomar como smbolos de informacin.

Demostracin. Por el mismo argumento que el teorema anterior, cual-


quier conjunto de k columnas de una matriz generadora del cdigo es li-
nealmente independiente.

El trmino separable en la denominacin MDS alude precisamente a esta


propiedad: sin ms que elegir k posiciones arbitrarias (es decir, sin necesidad
de realizar ninguna transformacin lineal), los vectores del cdigo quedan
sistematizados, divididos en una parte de smbolos de informacin y otra
parte compuesta por los smbolos de redundancia.
El corolario que sigue es, entonces, evidente.

Corolario 11.4 (Representacin sistemtica de un cdigo RS).


En un cdigo RS-[n, k], cualquier conjunto de k smbolos de las palabras del
cdigo se pueden tomar como smbolos de informacin.

Adems de la sencillez con que se puede disponer una representacin


sistemtica, se da el caso excepcional de que la distribucin de pesos de un
cdigo MDS es conocida; la de un cdigo RS, entonces, tambin.

Teorema 11.5 (Distribucin de pesos de un cdigo MDS). En un


cdigo MDS [n, k] sobre q existen
  jd
XC  
n j 1 jidC
Aj = (q 1) (1)i q , j = dC , . . . , n (11.1)
j i=0
i

vectores de peso Hamming j, siendo dC = n k + 1 la distancia del cdigo.


342 Cdigos ReedSolomon

Demostracin. Para cdigos q-arios, la identidad de MacWilliams se ex-


presa con la frmula
1
WC (x, y) = WC (x + (q 1)y, x y)
|C|
P
en la que WC (x, y) = P ni=0 Ai xni y i es el polinomio enumerador de pesos
n
de C, y WC (x, y) = i=0 Bi xni y i es el polinomio enumerador de pesos
del dual. Sustituyendo en ambos miembros de la identidad de MacWilliams
x por y + z, expandiendo los trminos e igualando despus los coeficientes,
resultan las ecuaciones lineales
ni 
X  Xi  
nj ki nj
Aj = q Bj , 0 i n, (11.2)
j=0
i j=0
ni

que relacionan explcitamente las distribuciones de pesos de un cdigo y su


dual.
Ahora, sea C un cdigo MDS de longitud n y distancia d. Obviamente
A0 = 1, Ai = 0 para 1 i < d. Como C tambin es MDS, B0 = 1 y Bi = 0
para 1 i k. Por tanto, segn (11.2),
ni 
X     
nj n nd+1i n
Aj = (q 1) = (q ki 1), 0 i n d.
i i i
j=d
(11.3)
Veremos que este sistema de ecuaciones recurrentes posee una nica solu-
cin, que es precisamente la dada por el enunciado del teorema.
En el sistema (11.3), para el ndice i = k 1 tenemos la ecuacin
   
n n
Ank+1 = (q 1) = (q 1)
k1 nk+1
que se ajusta a la frmula general (11.1). Procedamos ahora por induccin,
suponiendo que (11.1) se cumple para j = n k + 1, . . . , h 1. Para i = h,
de la ecuacin (11.3) se tiene que
  X n j 
nh1
n
Anh = (q kh 1) Aj .
h h
j=d

Introduciendo en el sumatorio del segundo miembro la hiptesis de induccin


 
n
Anh = (q kh 1)
h
X n j n
nh1 jd
X  
l j1
(q 1) (1) q jld .
h j l
j=d l=0
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 343

Ahora bien, como


     
nj n n nh
=
h j h j
podremos escribir igualmente
 
n
Anh = (q kh 1)
h
  X n h  X
nh1 jd  
n j 1 jld
(q 1) (1)l q .
h j l
j=d l=0

Efectuando un cambio de variable y permutando el orden de los sumatorios,


la ecuacin anterior queda en la forma
 
n
Anh = (q kh 1)
h
  nhd1
X nh1
X   
n nh j 1
(q 1) qm (1)md .
h m=0
md
=m+d
(11.4)

Considrense ahora los trminos definidos por


b  
X 
b i1
Ja,b = (1)ia
i=a
i ia

para a, b enteros, y la funcin real f (x) = x1 (1 + x)b , que satisface



dj
f (1) = 0, f (x) =0 para 1 j < b.
dxj x=1

Si expandimos los trminos de f (x), su derivada de orden p < b valdr



 b   
d p d p X b j1
p
f (x) = p
x1 + x
dx x=1 dx j=1
j
x=1

X b  
p
d 1 b
lp1
= p
x + (l 1)(l 2) (l p)x
dx x=1 l
l=p+1
x=1
= p! + p! Jp+1,b .

De lo que se concluye que Jp,b = 1 para todo 0 p b. En este punto, en


344 Cdigos ReedSolomon

la frmula (11.4) introduzcamos la sustitucin

nh1
X   
nh j1
(1)md
md
=m+d
 
nh1
= Jm+d,n+h (1)nh1(m+d)
n h (m + d)
 
n h 1
= 1 (1)nh1(m+d) .
n h (m + d)

Tendremos as
    nhd1
X
n kh n
Anh = (q 1) (q 1) qm
h h m=0
  nhd1
X  
n nh1
+ (q 1) (1)nh(m+d) qm .
h m=0
n h (m + d)

Pero la suma del primer y el segundo sumandos vale


 
n
(q 1)q nhd
h

y por tanto
  nhd
X  
n nh1
Anh = (q 1) (1)nh(m+d) qm .
h m=0
n h (m + d)

Haciendo en esta ltima expresin el cambio de variable i = n h (m +


d), obtenemos la ecuacin (11.1) en el caso particular j = n h, lo que
demuestra que la hiptesis de induccin se satisface para este caso.

A partir de la frmula explcita de la distribucin de pesos se deducen


con facilidad algunas cotas para la longitud y la dimensin de un cdigo
MDS.

Teorema 11.6. Si existe C, un cdigo MDS [n, k, dC ] sobre q:

a) Si k 2, entonces dC = n k + 1 q.

b) Si k n 2, entonces k + 1 q.

Demostracin.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 345

a) Si dC < n, por el teorema 11.5 se tiene


 
n
AdC +1 = (q 1)(q dC ).
dC + 1

Como AdC +1 0, se cumple dC q.

b) Como C es un cdigo MDS [n, nk, k+1], se cumple, por el apartado


a), que k + 1 q si n k 2, que es precisamente la proposicin
b).

Cuando k = 1 o k = n 1, existen cdigos MDS de longitud arbitraria,


que son equivalentes a un cdigo de repeticin sobre q o bien a uno de
sus duales. Todos ellos son cdigos triviales. Pero si k n 2, el teorema
anterior implica que k q 1 (parte b)), de modo que slo podrn existir
cdigos MDS no triviales con dimensin 2 k mn{n 2, q 1}. La parte
a) implica que n q + k 1, y significa que no existen cdigos MDS no
triviales con longitud arbitraria. Para los cdigos RS (que poseen parmetros
[q 1, k, q k]), aqullos que son no triviales satisfacen obviamente las
condiciones k q 1 (parte b) del teorema 11.6) y 2 k mn{n 2, q
1} = q 3 (parte a) de 11.6).

Ejemplo 11.1. Para conseguir un cdigo RS de longitud 7 capaz de corregir


errores dobles, sea una raz primitiva sptima de la unidad, 7 = 1. El
polinomio generador del cdigo habr de tener 4 potencias consecutivas de
como ceros, por ejemplo

g(x) = (x )(x 2 )(x 3 )(x 4 ) = x4 + 3 x3 + x2 + x + 3 .

El grado de g(x) es 4, y el cdigo RS que engendra es uno [7, 3] sobre 8 ;


consta, por tanto, de 83 = 512 vectores. Y tiene por matriz de comprobacin
de paridad a 6
5 4 3 2 1
5 3 6 4 2 1
H= 4 5 2 6 3 1 .

3 6 2 5 4 1

Ejemplo 11.2. Sea una raz del polinomio primitivo binario x2 + x + 1


y, por tanto, una raz primitiva tercera de la unidad (3 = 1). El cdigo RS
de longitud 3 sobre el cuerpo 4 , con distancia de diseo 2, que tiene por
polinomio generador a g(x) = x , consta de las 16 palabras siguientes:

000 10 2 0 2 0 01 102 12 2 1
02 111 2 10 02 1 12 01 2 2 2 .
346 Cdigos ReedSolomon

Dicho cdigo es irreducible e isomorfo a 16 este isomorfismo es a(x)(x


) a(x) mod (x2 + x + 1); el elemento primitivo es x mod (x2 + x +
1); y su distribucin de pesos es A0 = 1, A2 = 9, A3 = 6 y Ai = 0 para
cualquier otro i, tal y como anticipa el teorema 11.5.

11.2. Cdigos RS modificados

En este apartado veremos que los procedimientos de extensin, puncin


o recorte de un cdigo RS no producen, en general, cdigos RS (ni tan
siquiera, salvo en algunos casos aislados, cdigos cclicos), pero curiosamen-
te s producen cdigos separables de mxima distancia. En este sentido,
continan siendo ptimos.
Desde un punto de vista prctico, posee mayor inters la transforma-
cin de un cdigo RS en un cdigo binario; se va a ver que esta conversin
tambin suele dar cdigos de distancia grande, aunque asintticamente ine-
ficientes.

11.2.1. Extensin

Se llama extensin de un cdigo C a la operacin que consiste en aadir


a sus palabras (cn1 , . . . , c0 ) el smbolo
n1
X
cn = ci .
i=0

El cdigo extendido Cb tiene siempre longitud una unidad mayor y la misma


dimensin que el cdigo original pero, en general, su distancia no tiene por
qu incrementarse. Pues bien, en los cdigos RS la extensin s aumenta la
distancia.

Teorema 11.7. La extensin de un cdigo RS-[n, k] produce un cdigo MDS


[n + 1, k].

Demostracin. Si (cn1 . . . c0 ) es un vector de RS-[n, k] de peso n k + 1,


se va a probar que el smbolo de paridad
n1
X
cn = cj 6= 0
j=0

y que, por tanto, la distancia del cdigo extendido se incrementa en una


unidad.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 347

As, si c(x) simboliza el polinomio del cdigo, y c(1) = cn = 0, enton-


ces, puesto que c(x) = a(x)g(x) y

g(1) = (x ) (x nk ) x=1 6= 0

debe ser a(1) = 0. Pero, en este caso, c(x) sera un mltiplo de (x 1)g(x),
y, por la cota de distancia BCH, el peso de c(x) sera mayor o igual que
n k + 2.

Los cdigos RS extendidos pertenecen a la clase de los cdigos RS ge-


neralizados. stos, a su vez, pueden ser extendidos aadindoles un nuevo
smbolo, elegido de modo que la distancia aumente en una unidad. En ge-
neral, el nuevo cdigo no ser par.

Teorema 11.8. La extensin de un cdigo RS-[n, k] extendido produce un


cdigo MDS [n + 2, k].

Demostracin. La matriz de comprobacin de paridad de un cdigo RS


doblemente extendido se define por
qk
1 . . . qk q1 0 1
. . . . . . . . . . . . . . . . . . . . . . .

H=
1
2
. . . 2q1 0 0
1 . . . q1 0 0
1 ... 1 1 0

en donde 1 , . . . , q1 son los elementos no nulos de q, n = q1 y =


n k + 1 es la distancia de diseo.
Para mostrar que corresponde a un cdigo MDS es suficiente con probar
que cualesquiera q k + 1 columnas suyas son linealmente independientes.
Pero si estas q k + 1 columnas se eligen de entre las q 1 primeras, se tiene
una matriz de Vandermonde no singular; y si entre las q k + 1 columnas
estn incluidas alguna de las dos ltimas, entonces basta con desarrollar el
determinante por ellas para obtener una matriz de Vandermonde asimismo
no singular.

Se sabe que existen cdigos MDS cclicos sobre q con los mismos pa-
rmetros que un cdigo RS doblemente extendido. Y que existen cdigos
MDS [2m + 2, 3] y [2m + 2, 2m 1] que se obtienen por una extensin triple
de un RS.
348 Cdigos ReedSolomon

Ejemplo 11.3. La extensin simple del cdigo RS dado en el ejemplo 11.2


produce el cdigo

0000 102 2 01 2 01
2 2 2
01 10 01 2 10
2 2 2
0 1 1 0 1 0 2 10
2 2 2 2 2
0 1 1111 .

Vea que la distancia es 3 y que el cdigo no es cclico.

11.2.2. Puncin

La puncin o perforacin es la operacin de eliminar una o ms coorde-


nadas de todas las palabras del cdigo.

Teorema 11.9. Eliminando cualquier coordenada de un cdigo RS-[n, k],


se obtiene un cdigo MDS-[n 1, k].

Demostracin. Puesto que cualquier conjunto de k smbolos de un cdigo


RS-[n, k] se pueden tomar como smbolos de informacin, es claro que al
eliminar una coordenada cualquiera se obtiene un cdigo con longitud una
unidad menor e idntica dimensin. La distancia disminuye como mximo
en una unidad y ser, entonces, no inferior a n k; pero, por la desigualdad
de Singleton, tampoco puede ser mayor que n k. En consecuencia, la
supresin de un smbolo produce un cdigo MDS.

Ejemplo 11.4. Eliminando la primera coordenada del cdigo dado en el


ejemplo 11.2 resulta el siguiente cdigo cuaternario [2, 2, 1] trivial

00 0 2 0 0 1 02 12 1
2 11 10 2 1 2 01 2 2

que es sencillamente 4 4.

11.2.3. Cdigos acortados

Teorema 11.10. Acortar un cdigo RS-[n, k] produce un cdigo MDS-[n


1, k 1].

Demostracin. Una vez ms, dado que cualquier conjunto de k coorde-


nadas de un cdigo RS son linealmente independientes, al seleccionar todos
los vectores del cdigo con una coordenada a cero y eliminarla se obtiene
un cdigo con dimensin k 1, longitud n 1 y distancia n k + 1, es decir,
un cdigo MDS.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 349

Ejemplo 11.5. El cdigo {00, 1, 2 , 2 1} resulta de recortar, del dado


en el ejemplo 11.2, las palabras con la primera coordenada a cero. Es un
cdigo lineal cuaternario [2, 1], con distancia 2, no cclico.

11.2.4. Conversin de cdigos RS en cdigos binarios

En el captulo 9 se vio que el cuerpo pm es isomorfo a un espacio


vectorial de dimensin m sobre p . Esta propiedad da un procedimiento
inmediato para convertir un cdigo RS-[2m 1, k] en un cdigo binario.
Pues si B = {1 , 2 , . . . , m } es una base de 2m sobre 2 (es decir, cual-
quier elemento de 2m es una combinacin lineal de 1 , . . . , m utilizando
slo 0 y 1 como escalares), entonces la sustitucin que a 2m le hace
corresponder las coordenadas de en la base B transforma el cdigo RS
original en un cdigo binario de parmetros [m(2m 1), km] y distancia
mayor o igual que 2m k. Puesto que el cdigo RS de partida es separable
y de mxima distancia, tpicamente esta cota inferior acostumbra a ser con-
servadora, y la distancia del cdigo binario as construido es bastante ms
elevada.
Pero se puede incrementar an ms si se aade a cada conjunto de
m smbolos binarios un bit de paridad. Este nuevo cdigo binario tiene
parmetros [(m+1)(2m 1), km] y distancia no inferior a 2(2m k). Se puede
aplicar el mismo procedimiento de construccin a un cdigo RS extendido
para obtener un cdigo binario [(m + 1)2m , km] y distancia no inferior a
2(2m k + 1).

Ejemplo 11.6.

a) {1, } es una base de 4 . En ella, 0 admite la representacin 00; 1,


la representacin 10; , el par de coordenadas 01; y 2 , el par 11.
As pues, el cdigo RS del ejemplo 11.2 da, con estas sustituciones, el
cdigo binario [6, 4]

000000 100100 110001 110110


001001 011100 100011 101010
000111 111000 101101 010101
001110 010010 011011 111111

de distancia 2. Si a cada grupo de tres bits le aadimos un bit de


paridad par, tendremos un cdigo autodual binario [8, 4] con distancia
4 equivalente al dual de H3 extendido.

b) A partir del cdigo RS-[15, 10] y el cdigo RS extendido [16, 10] se


consiguen, respectivamente, dos cdigos binarios excelentes: un [75, 40]
350 Cdigos ReedSolomon

de distancia 12 y un [80, 40] de distancia 14. Ambos se sitan por


encima de la cota de GilbertVarshamov.

c) El cdigo RS-[7, 3] de polinomio generador g1 (x) = x2 + x + 4


se transforma, eligiendo la base binaria {1, , 6 } en 8 , en el cdigo
cclico BCH binario [21, 15] engendrado por g2 (x) = x6 +x4 +x2 +x+1;
se trata de uno de los escasos ejemplos conocidos de un cdigo RS que
origina otro cdigo cclico.

d ) Sea C el cdigo RS definido sobre el alfabeto 2n de parmetros


n
[2n 1, 1, 2n 1], generado por el vector cdigo (1, , . . . , 2 2 ) siendo
un elemento primitivo de 2n . Considrese el cdigo B que resul-
ta de sustituir cada uno de los smbolos de una palabra de C por su
representacin binaria en una base de 2n sobre 2 . B es un cdigo
binario lineal [n(2n 1), n] y, puesto que para todo vector de C cual-
quier smbolo no nulo de 2n aparece en l una sola vez, su distancia
es n2n1 . Por tanto B alcanza la cota de Griesmer.

A pesar de lo que sugiere este ejemplo, se puede probar que, si se fija una
tasa k/n constante, la distancia dm de los cdigos binarios [(m + 1)(2m
1), km] as construidos no es una fraccin constante de la longitud sino que,
en realidad,
dm
lm = 0,
m (m + 1)(2m 1)

de forma que, para longitudes grandes, no son buenos cdigos.


Los cdigos binarios obtenidos a partir de los RS s son, en todo caso,
especialmente convenientes para la deteccin y correccin de rfagas de
errores de larga longitud. Pues, por ser los RS cclicos, podrn detectar
todas las rfagas de errores de longitud menor o igual que n k smbolos de
2m . Pero una rfaga de error de r bits afecta, como mximo, a s smbolos
de 2m , donde s se define por

(s 2)m + 2 r (s 1)m + 1.

De lo que se desprende que, si nk es mucho mayor que s (o lo que es igual,


si m es grande), se podrn corregir gran cantidad de rfagas de longitud r
bits. Los datos almacenados en un disco compacto de audio, por ejemplo, se
protegen codificando cada bloque de 16 bits con dos cdigos RS (acortados,
de longitud 255) concatenados (esto es, la salida del primer codificador se
aplica a la entrada del segundo). La rfaga de errores corregible de mayor
longitud tiene alrededor de 4000 bits de datos, aproximadamente 2,5 mm
de longitud en la superficie del disco.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 351

11.3. Decodificacin de cdigos RS

Cualquier conjunto de k smbolos recibidos sin error en un vector de


un cdigo RS son suficientes para recuperar el mensaje transmitido. En
efecto, si se ha recibido la secuencia y = (yn1 , . . . , y0 ), cualquier grupo de
k ecuaciones del sistema

yn1 = x0 + x1 k1 + + xk1 (n1)(k1)


..
.
y1 = x0 + x1 + + xk1 k1
y0 = x0 + x1 + + xk1 ,

digamos las de los smbolos yi0 , yi1 , . . . , yik1 , admiten solucin nica, pues-
to que su matriz de coeficientes es de Vandermonde y no singular. Existen
n
k subsistemas diferentes de k ecuaciones y, en ausencia de errores de trans-
misin, todos proporcionan como solucin los smbolos (mk1 , . . . , m0 ) del
mensaje transmitido.
Supongamos, sin embargo, que se hubiesen producido t b(n k)/2c
errores de transmisin. En tal caso, el vector (mk1 , . . . , m0 ) ser la solucin
de cualquier conjunto de k ecuaciones tomadas de entre las n t coorde-
nadas correctas de y, esto es, de nt k subsistemas; en tanto que cualquier
otro vector distinto de (mk1 , . . . , m0 ) slo podr ser solucin, a lo sumo, de
aquellos subsistemas en los que al menos una de las ecuaciones  corresponde
a alguna de las t coordenadas con error, esto es, de t+k1 k subsistemas. Si
por cada una de las soluciones x de los subsistemas k k se anota un voto
favorable al vector x, entonces el razonamiento  que se acaba de exponer per-
mite afirmar que (mk1 , . . . , m0 ) recibe nt k votos, mientras que cualquier

otro vector distinto obtiene, en el mejor de los casos, t+k1 k votos. Y como
n t t + k 1, resulta obvio que el mensaje transmitido (mk1 , . . . , m0 )
recibe siempre ms votos que ningn otro vector candidato. Pero, si bien
una estrategia de decodificacin por mayora es perfectamente vlida para
corregir cualquier patrn de b(n k)/2c o menos errores con un cdigo RS,
este mtodo de decodificacin
 presenta un inters meramente terico ya que
exige la resolucin de nk sistemas lineales en el cuerpo base.

11.4. Decodificacin por localizacin de cdigos RS y


BCH no binarios

En este apartado se presentan tcnicas algebraicas de decodificacin de


cdigos RS o, para ser precisos, de cdigos BCH no binarios en general.
Bsicamente, los algoritmos son una extensin de los que se utilizan para
352 Cdigos ReedSolomon

decodificar cdigos BCH, extensin necesaria para resolver un nuevo as-


pecto: en la decodificacin de cdigos RS y BCH no binarios no basta con
determinar las posiciones errneas en un vector recibido, sino que tambin
se han de conocer las magnitudes de los smbolos errneos. De este mo-
do, el esquema general de un procedimiento de decodificacin algebraica se
compone de tres etapas:

1. Obtencin del sndrome.


2. Clculo del polinomio localizador de errores. Se darn tres mtodos
para resolver este paso: el algoritmo de PetersonGorensteinZierler,
el de BerlekampMassey y el de Sugiyama. El primero de ellos am-
pla el algoritmo de Peterson para cdigos binarios recurriendo al uso
de las identidades generalizadas de Newton pero, aparte de stas, no
introduce ninguna novedad conceptual. El algoritmo de Berlekamp
Massey parte, sin embargo, de un enfoque totalmente diferente. Sus
fundamentos tericos son ms complicados pero, gracias a su menor
complejidad computacional, se emplea mayoritariamente. Por ltimo,
se explicar el algoritmo de Sugiyama, que es bsicamente una ingenio-
sa interpretacin del algoritmo de divisin eucldeo. Aunque posee un
coste computacional comparable al algoritmo de BerlekampMassey,
es de aplicacin inusual.
3. Clculo de las magnitudes de error. Para esta tarea se presentan
dos posibles mtodos: la inversin directa de la matriz de localiza-
dores (que aparece como etapa integrante del algoritmo de Peterson
GorensteinZierler); y el algoritmo de Forney, mucho ms eficiente, y
cuya secuencia de operaciones se puede encajar en el propio algoritmo
de BerlekampMassey.

Sea, entonces, un cdigo RS (o BCH no binario) con distancia de diseo


2t + 1 y, sin prdida de generalidad, con el conjunto de ceros {, . . . , 2t }.
Partir de cualquier otro conjunto de 2t ceros cclicamente consecutivos slo
producira una rotacin cclica del vector de sndrome que se definir ms
adelante. Supongamos que el efecto del canal al transmitir un vector del
cdigo v(z) es el polinomio de error3
e(z) = e1 z i1 + + ew z iw
con {i1 , . . . , iw } las posiciones errneas (w t) y {e1 , . . . , ew }, ei 6= 0 para
todo i, las magnitudes de los errores. El vector que se recibe es r(z) =
v(z) + e(z).
3 a) En el resto del captulo utilizaremos polinomios en la variable z para que no haya

confusin con la notacin de los elementos localizadores. b) Esta forma del polinomio
error no significa que el canal tenga que transmitir smbolos no binarios; es slo el pro-
cedimiento de decodificacin el que se realiza con aritmtica no binaria para beneficiarse
de la estructura polinmica de los cdigos.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 353

Al igual que en el captulo anterior, se define el polinomio localizador de


errores por
Yw
L(z) = (1 Xj z), Xj = ij .
j=1
Con esta notacin, los elementos del vector sndrome son
w
X
j
Sj = r( ) = e( ) = j
ei Xij , j = 1, . . . , 2t
i=1

y con ellos se define de manera puramente formal, ya que slo se conocen


2t coeficientes suyos, el polinomio sndrome

X
S(z) = Sj z j .
j=1

11.4.1. Algoritmo de PetersonGorensteinZierler

El algoritmo de Peterson para cdigos binarios consista en la resolucin


de un sistema lineal de ecuaciones, las identidades de Newton (10.7), que
relacionaban los coeficientes del polinomio localizador con los del polinomio
sndrome. D. Gorenstein y N. Zierler lo generalizaron en 1961 haciendo uso
de esta otra versin de las identidades de Newton.

Teorema 11.11 (Identidades de Newton generalizadas). Dada en


un cuerpo IK la sucesin
w
X
Sj = ek Xkj , j 0,
k=1

definida por los elementos ek IK y Xk IK, para k = 1, . . . , w, y dados


los coeficientes del polinomio
w
Y w
X
L(z) = (1 Xj z) = Lj z j
j=1 j=0

se cumple la recurrencia lineal


Sj+w + L1 Sj+w1 + + Lw Sj = 0, j 0. (11.5)
En particular, para j = 1, . . . , w, se verifica el sistema lineal
L
Sw+1

Sw Sw1 . . . S1 1
Sw+1 L2 Sw+2
Sw . . . S2
Aw L = .
. . . . . . . . . . . . . . . . . . . . . . . . . = .. (11.6)
. .
S2w1 S2w2 . . . Sw Lw S2w
354 Cdigos ReedSolomon

en el que intervienen nicamente los elementos S1 , . . . , S2w y las incgnitas


L1 , . . . , L w .

Demostracin. Evaluando L(z) en el punto z = 1/Xi y multiplicando


por ei Xiw+j , j 0, se tiene
  w
X
1
ei Xiw+j L = Lk ei Xiw+jk = 0
Xi
k=0

que es igual a

ei Xiw+j + L1 ei Xiw+j1 + + Lw ei Xij = 0.

Sumar estas ecuaciones desde i = 1 hasta i = w produce como resultado


(11.5). El sistema (11.6) son las w primeras ecuaciones de la recurrencia
anterior escritas en forma matricial.

Por construccin, la existencia de una solucin del sistema (11.6) es


una condicin necesaria para que exista un vector de error de peso w con
polinomio localizador L(z) y vector de sndrome (S1 , S2 , . . . , S2t ). Adems,
se puede probar que la matriz Aw formada con los elementos del vector
sndrome (que es una matriz Toeplitz4 ) es no singular si el vector recibido
est a distancia Hamming w de alguna palabra del cdigo, pero es singular
si existe algn vector del cdigo a distancia menor que w del vector recibido.

Teorema 11.12. Si C es un cdigo BCH corrector de t errores y w t,


entonces la matriz de sndromes

Sm Sm1 . . . S1
Sm+1 Sm . . . S2
Am =
. . . . . . . . . . . . . . . . . . . . . . . . .
S2m1 S2m2 . . . Sm

es no singular si m w y es singular cuando m > w.

Demostracin. Am se puede descomponer como el producto



e 1 X1 0 0
0 e 2 X2 0
T T
V . .. V = V D V
.. .
0 e m Xm
4A es una matriz Toeplitz de orden n si aij = bji para ciertos b0 , b1 , . . . , bn1 .
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 355

siendo V la matriz

1 1 ... 1
X1 X2 ... Xm

V = .. ..
. .
X1m1 X2m1 m1
. . . Xm

Puesto que V es una matriz de Vandermonde y los localizadores son por


definicin elementos distintos, V es no singular. Si m w, las magnitudes
de error son todas no nulas, el determinante de la matriz diagonal es no
nulo y det(Am ) 6= 0. Si m > w, det(D) = 0 det(Am ) = 0.

Por consiguiente, hallando el mayor w t tal que el determinante de


Aw no es nulo y resolviendo despus

L1 Sw+1
L2 Sw+2

Aw . = . (11.7)
.. ..
Lw S2w

se obtienen los coeficientes del polinomio localizador cuando el error en el ca-


nal tiene peso menor o igual que t. En tal caso, los localizadores X1 , . . . , Xw
son los recprocos de las races de L(z).
Cuando el patrn de error tiene peso mayor que t y, adems, no es
corregible, el sistema (11.7)

O bien no tiene solucin para ningn w t (si las matrices de sndro-


mes son todas singulares).

O bien el polinomio definido por los coeficientes de la solucin no es un


polinomio localizador vlido. Esto sucede si sus races no son simples
o no pertenecen al cuerpo q .

Se habr producido entonces un fallo en la decodificacin que se detecta con


facilidad.
Suponiendo que w t, el polinomio L(z) sintetiza toda la informacin
sobre las posiciones de los smbolos errneos, pero nada dice sobre el valor
de estos smbolos. Para averiguar las magnitudes de los errores se aplica uno
de los dos mtodos que se introducen a continuacin.
356 Cdigos ReedSolomon

A. Inversin de la matriz de localizadores

El primer mtodo es directo y consiste en invertir la relacin entre los


sndromes y los propios elementos localizadores. Una vez conocidos los lo-
calizadores X1 , . . . , Xw ,
e S
X1 X2 . . . X w 1 1
X12 2 2 e2 S2
X 2 . . . X w
. . . . . . . . . . . . . . . . . . . . . . . = . (11.8)
.. ..
2w 2w 2w
X1 X2 . . . Xw e2w S2w
constituye un sistema lineal de 2w ecuaciones y w incgnitas. Pero las w
primeras ecuaciones son linealmente independientes, pues la matriz de coe-
ficientes es de Vandermonde no singular por ser todos los elementos locali-
zadores distintos. De modo que la decodificacin finaliza tras resolver
e S
X1 X2 . . . X w 1 1
X12 X22 . . . Xw2 e2 S2
. = .

.
. . . . . . . . . . . . . . . . . . . .
.. ..
w w w
X1 X2 . . . X w ew Sw
En trminos de coste computacional, la resolucin de este sistema lineal se
beneficia del hecho de que la matriz de coeficientes es de tipo Vandermonde
y requiere slo O(w 2 ) operaciones elementales.

B. Algoritmo de Forney

En el segundo mtodo se sustituye la resolucin del sistema lineal ante-


rior por la evaluacin de una expresin algebraica.
Supongamos que se define formalmente el polinomio evaluador de errores
E(z) como
w
X w
Y
E(z) = L(z) + zei Xi (1 Xj z).
i=1 j=1
j6=i

Evaluando E(z) en z = Xi1 ,


w
X w
Y w
Y
E(Xi1 ) = L(Xi1 ) + Xi1 Xj ej (1 Xk Xi1 ) = ei (1 Xj Xi1 ).
j=1 k=1 j=1
k6=j j6=i

Por tanto, si E(z) fuese conocido,


E(Xi1 ) Xi E(Xi1 )
ei = Q w 1 =
j=1,j6=i (1 Xj Xi ) L0 (Xi1 )
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 357

expresin en la que L0 (z) representa la derivada formal del polinomio loca-


lizador de errores
Xw
0
L (z) = jLj z j1 .
j=1

Pues bien, E(z) es conocido una vez que se conocen S(z) y L(z).

Teorema 11.13 (Ecuacin clave (Berlekamp)). En un cdigo RS (o


BCH no binario) de distancia de diseo = 2t + 1,

E(z) = 1 + S(z) L(z) mod z 2t+1 . (11.9)

Demostracin. A partir de las definiciones de E(z) y L(z)

Xw Xw X
E(z) zei Xi
=1+ =1+ ei (zXi )j = 1 + S(z) mod z 2t+1 .
L(z) i=1
1 zX i i=1 j=1

Vea que el grado de E(z) nunca es mayor que el de L(z). La reduccin


mdulo z 2t+1 significa sencillamente que los coeficientes de los trminos
de grado menor o igual que 2t de los polinomios E(z) y (1 + S(z))L(z)
coinciden.

Corolario 11.14 (Forney). Las componentes del vector de error satisfa-


cen la condicin

0 si L(i ) 6= 0,
ei = i
E( ) (11.10)
i 0 i si L(i ) = 0.
L ( )

Las ecuaciones (11.10) son el algoritmo de Forney para la obtencin


de las magnitudes de error una vez conocido el polinomio localizador. Una
gran ventaja del algoritmo de BerlekampMassey, que veremos en el prximo
apartado, es que se puede aprovechar su estructura para calcular de paso el
polinomio evaluador, sin necesidad de realizar la multiplicacin explcita de
los polinomios de sndrome y localizador.
En resumen, la decodificacin de un cdigo BCH no binario [n, k] sobre
q con distancia 2t + 1 puede llevarse a cabo como sigue.

Algoritmo de PetersonGorensteinZierler

1. Calcular los coeficientes del sndrome, Sj , para j = 1, . . . , 2t.


358 Cdigos ReedSolomon

Vector Elemento Vector Elemento


0000 0 1011 7
0001 1 0101 8
0010 1010 9
0100 2 0111 10
1000 3 1110 11
0011 4 1111 12
0110 5 1101 13
1100 6 1001 14

Tabla 11.1. Los elementos del cuerpo 16 .

2. Construir la matriz de sndromes Ar (ecuacin (11.6)) y hallar el m-


ximo r t tal que Ar tiene determinante distinto de cero.

3. Resolver el sistema (11.6) y formar el polinomio localizador.

4. Hallar las races del polinomio localizador: si son todas simples, dis-
tintas y pertenecientes a q , continuar; en otro caso, sealar un error
de decodificacin.

5. Formar el polinomio evaluador de errores con la ecuacin clave (11.9)


y calcular las magnitudes con la frmula de Forney (ecuacin (11.10))
o resolviendo el sistema lineal (11.8).

Ejemplo 11.7. Tomemos el cdigo RS-[15, 11], corrector de errores dobles,


engendrado por

g(z) = (z )(z 2 )(z 3 )(z 4 ) = z 4 + 13 z 3 + 6 z 2 + 3 z + 10

siendo un elemento primitivo de 16 (vase la tabla 11.1).


Supongamos que durante la transmisin de un vector del cdigo se pro-
ducen los errores descritos por el polinomio de error

e(z) = z 2 + 3 z

y se recibe el vector

r(z) = z 4 + 13 z 3 + 11 z 2 + 10 .

El polinomio localizador de errores vale, por tanto,

L(z) = (1 2 z)(1 z) = 1 + 5 z + 3 z 2 , L0 (z) = 5


C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 359

y el evaluador

E(z) = L(z) + z3 (1 z) + z4 (1 2 z) = 1 + 13 z + 10 z 2 .

El primer paso de decodificacin es la obtencin del polinomio sndrome:

S1 = r() = e() = 7
S2 = r(2 ) = e(2 ) = 0
S3 = r(3 ) = e(3 ) = 10
S4 = r(4 ) = e(4 ) = 1

y, as, S(z) = 7 z + 10 z 3 + z 4 . Para hallar el polinomio localizador a partir


de S(z), se resuelve el sistema
    
S2 S1 L1 S3
=
S3 S2 L2 S4

es decir,     
0 7 L1 10
=
10 0 L2 1
de donde se obtiene L1 = 5 y L2 = 3 . El polinomio evaluador que calcula
el decodificador valdr, entonces,

E(z) = 1 + S(z) (1 + L1 z + L2 z 2 ) = 1 + 13 z + 10 z 2 +

y, aplicando el algoritmo de Forney,

2 E(2 )
e1 = =
5
E(1 )
e2 = = 3
5
se llega a los valores correctos de las magnitudes de error.

Ejemplo 11.8. Tomemos ahora el cdigo RS-[15, 9] engendrado por el po-


linomio
Y6
g(z) = (z i ).
i=1

Utilizando la tabla 11.1, este polinomio generador vale

g(z) = 6 + 9 z + 6 z 2 + 4 z 3 + 14 z 4 + 10 z 5 + z 6 .

Supongamos que se recibe el vector

y(z) = ( + 3 z)g(z) + 1 + z + 2 z 2 + 3 z 3 + 4 z 4
360 Cdigos ReedSolomon

correspondiente a cuatro errores de transmisin. El clculo de los coeficientes


del sndrome produce el resultado

S1 = y() = 12 S2 = y(2 ) = 0
S3 = y(3 ) = 9 S4 = y(4 ) = 10
S5 = y(5 ) = 0 S6 = y(6 ) = .

A continuacin, el clculo de los oeficientes del polinomio localizador con-


siste en resolver el sistema lineal

S3 S2 S1 L1 S4
S4 S3 S2 L2 = S5
S5 S4 S3 L3 S6

es decir 10
9 0 12 L1
10 9 0 L 2 = 0
0 10 9 L3
cuya nica solucin es (L1 , L2 , L3 ) = (13 , 14 , 9 ), de modo que el polino-
mio localizador de errores valdr

L(z) = 1 + 13 z + 14 z 2 + 4 z 3 .

Ahora bien, la nica raz de L(z) en 16 es 5 , lo que significa que ste no


es un polinomio localizador vlido. El algoritmo no puede completarse y se
debe de concluir que se han producido ms de 3 errores.

11.4.2. Algoritmo de BerlekampMassey

Las identidades generalizadas de Newton (11.5), si se escriben de la


forma
w
X
Sj = L1 Sj1 L2 Sj2 Lw S0 = Lk Sjk , j w (11.11)
k=1

representan de manera evidente el hecho de que los elementos del sndrome


se pueden generar a partir de los del polinomio localizador por medio de un
filtro lineal recurrente con coeficientes (L1 , . . . , Lw ); es decir, con un regis-
tro de desplazamiento realimentado. La obtencin del polinomio localizador
equivale as a la sntesis de un filtro autorregresivo con memoria w mnima
tal que, si las condiciones iniciales del mismo son la secuencia S1 , ..., Sw , la
salida que se produce a continuacin es Sw+1 , ..., S2t . La figura 11.1 ilustra
el circuito que realiza la ecuacin (11.11).
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 361





 


       

Figura 11.1. Filtro lineal recurrente basado en las identidades de New-


ton.

La idea de interpretar la decodificacin como la recurrencia de memoria


mnima que produce una salida determinada pertenece a J. L. Massey. Ha-
br, en principio, muchas soluciones de (11.11) pero Massey demostr que,
bajo la condicin de poseer memoria mnima, existe un nico filtro reali-
mentado de longitud mxima t capaz de generar S1 , . . . , S2t partiendo de
un estado inicial dado. E. Berlekamp y el propio Massey dieron adems un
algoritmo constructivo de resolucin de este problema.
La manera de operar de este algoritmo consiste en calcular iterativamen-
te los coeficientes de realimentacin del filtro, comparando las salidas de ste
con los coeficientes (conocidos) del sndrome. Si hay alguna diferencia entre
ambos, se aplica un factor de correccin. Una vez sintetizado el filtro (o, lo
que es igual, hallado el polinomio localizador y verificadas sus races), slo
resta aplicar la ecuacin (11.10) para poder determinar la magnitud de los
errores.

Algoritmo de BerlekampMassey

Sin nimo de pretender una justificacin rigurosa del mtodo (cosa que
el lector puede hallar en el apndice 11.B de este captulo), stos son los
pasos a seguir para decodificar un cdigo BCH no binario con distancia de
diseo 2t + 1:

1. Calcular los coeficientes S1 , . . . , S2t del sndrome.

2. Obtener el polinomio localizador:

a) Inicializar las variables

i = 0, M0 = 0, L(0) (z) = 1, T (0) (z) = 1

b) i = i + 1; calcular la diferencia, i , entre el sndrome Si y el


i-simo smbolo de salida del filtro, de memoria Mi , definido por
362 Cdigos ReedSolomon

el polinomio L(i1) (z):


i1
X (i1)
i = Lj Sij .
j=0

Aplicar las ecuaciones recurrentes

Mi = i (i Mi1 ) + (1 i )Mi1
 (i)     (i1) 
L (z) 1 i z L (z)
=
T (i) (z) 1
i i (1 i )z T (i1) (z)
con i = 1 si i 6= 0 y 2Mi1 i 1, y i = 0 en otro caso.
c) si i < 2t, volver al paso (b)
3. Hallar las races de L(x) = L(2t) (x); si no son simples, distintas o no
pertenecen al cuerpo, sealar fallo en la decodificacin.
4. Obtener el polinomio evaluador de errores con la ecuacin (11.9).
5. Determinar la magnitud de los errores.

El polinomio evaluador de error se puede hallar tambin por medio de


la recurrencia matricial:
 (k)     (k1) 
E (z) 1 k z E (z)
=
A(k) (z) 1
k k (1 k )z A(k1) (z)

con las condiciones iniciales A(0) (z) = 0 y E (0) (z) = 1. Tras 2t iteraciones,
E(z) = E (2t) (z) es el polinomio buscado.
En cuanto a la complejidad de los mtodos de decodificacin algebraica,
se debe observar que el paso crucial es la obtencin del polinomio localizador
a partir del polinomio sndrome. Mientras que el algoritmo de Peterson
GorensteinZierler resuelve, para ello, un sistema de t ecuaciones lineales y
requiere O(t3 ) operaciones, el de BerlekampMassey aplica una recurrencia
lineal que termina en 2t iteraciones y requiere solamente operaciones de
suma y multiplicacin en q . Son, en el peor de los casos, 2t multiplicaciones
por iteracin para actualizar la matriz y no ms de t multiplicaciones por
iteracin para calcular la discrepancia i . Por tanto, el algoritmo precisa un
mximo de 6t2 multiplicaciones. Para hallar las magnitudes de error se puede
resolver un nuevo sistema lineal de ecuaciones o aplicar la frmula de Forney.
Se prefiere la frmula de Forney porque el algoritmo de BerlekampMassey
se puede modificar sin incremento de su complejidad para que produzca
directamente, adems del polinomio localizador, el polinomio evaluador. Un
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 363

pequeo inconveniente del algoritmo de Forney es que exige la divisin entre


elementos de q , que es una operacin costosa en comparacin con la suma
o la multiplicacin. Una manera muy sencilla de soslayar este problema
es utilizar una tabla de inversos de los elementos de q . Si el cardinal del
cuerpo es muy elevado, otra posibilidad mejor es la de elegir adecuadamente
la base en que se representan los elementos del cuerpo para poder efectuar
las divisiones con slo unas pocas operaciones elementales.

Ejemplo 11.9. Para ilustrar el algoritmo, tomemos el cdigo RS-[7, 3] ge-


nerado por
g(z) = (z )(z 2 )(z 3 )(z 4 ) = z 4 + 3 z 3 + z 2 + z + 3 .
Si suponemos que se recibe la secuencia r(z) = 2 z 6 + 2 z 4 + z 3 + 5 z 2 , el
decodificador calcula en primer lugar su polinomio sndrome S(z) = 6 z +
3 z 2 + 4 z 3 + 3 z 4 . Conocidos los sndromes, la ejecucin del algoritmo de
BerlekampMassey se resume en esta tabla:

i L(i) (z) i i Mi T (i) (z)


0 1 0 1
1 1 6 z 6 0 1
2 1 4 z 2 0 1 z
3 1 4 z 6 z 2 5 1 2 2 6 z
4 1 + 2 z + z 2 6 0

El polinomio localizador que se estima es, por tanto, 1 + 2 z + z 2 , cu-


yas races son, en 8 , los elementos 2 y 4 . La ecuacin clave se aplica
inmediatamente para deducir que

E(z) = 1 + S(z) L(z) mod z 5 E(z) = 3 z 2 + z + 1.
Y de aqu se obtiene, por la frmula de Forney, el polinomio de error
e(z) = 5 z 5 + z 3 .
Se puede verificar sin dificultad que
r(z) + e(z) = 2 z 2 g(z).
El cdigo es corrector de errores dobles, de modo que, si el error de trans-
misin es e(z), se habrn subsanado.

11.4.3. Algoritmo eucldeo o de Sugiyama

El tercer mtodo para hallar los coeficientes del polinomio localizador


a partir de los del sndrome presenta cierta conexin con el de Berlekamp
Massey, y se comporta en cierta forma como una generalizacin de aqul, ya
364 Cdigos ReedSolomon

que sirve asimismo para la decodificacin de los cdigos Goppa, una clase
que incluye a los BCH.
El punto de partida es la ecuacin clave de decodificacin, (11.9), que
implica la existencia de un polinomio Q(z) tal que

1 + S(z) L(z) + Q(z)z 2t+1 = E(z). (11.12)

Al formularlo de esta manera, el problema de la decodificacin puede enten-


derse como el de hallar un L(z) y un E(z), ambos de grado mnimo y
menor o igual que t, que verifiquen (11.12). El algoritmo eucldeo de divisin
de polinomios resuelve este problema, hecho que observ por primera vez
Y. Sugiyama en 1975 [66]. Vamos a precisar a continuacin cmo lo consigue.

Teorema 11.15 (Algoritmo de divisin eucldeo). El mayor divisor


comn de los polinomios 1 (z) y 0 (z), siendo 0 (z) el de menor grado de
ambos, es el ltimo resto k (z) no nulo de la sucesin de divisiones

k2 (z) = qk (x)k1 (z) + k (z), k 1.

Dadas las condiciones iniciales U1 (z) = V0 (z) = 0 y V1 (z) = U0 (z) = 1,


las sucesiones de polinomios definidas por las relaciones de recurrencia

Ui (z) = Ui2 (z) + qi (z)Ui1 (z)


Vi (z) = Vi2 (z) + qi (z)Vi1 (z)

verifican

(1)i Ui (z)0 (z) Vi (z)1 (z) = i (z).

Demostracin. Vamos a probar nicamente la identidad



(1)i Ui (z)0 (z) Vi (z)1 (z) = i (z).

Escribiendo la recurrencia

Ui (z) = Ui2 (z) + qi (z)Ui1 (z)


Vi (z) = Vi2 (z) + qi (z)Vi1 (z)

en forma matricial, se tiene que


    
Ui (z) Ui1 (z) Ui1 (z) Ui2 (z) qi (z) 1
= =
Vi (z) Vi1 (z) Vi1 (z) Vi2 (z) 1 0
    
1 0 q1 (z) 1 q (z) 1
= i . (11.13)
0 1 1 0 1 0
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 365

Escribiendo el algoritmo eucldeo tambin en forma matricial


    
i2 (z) qi (z) 1 i1 (z)
=
i1 (z) 1 0 i (z)
e iterando, resulta
       
1 (z) q1 (z) 1 qi1 (z) 1 qi (z) 1 i1 (z)
= .
0 (z) 1 0 1 0 1 0 i (z)
(11.14)
El determinante de la matriz que aparece en el segundo miembro de (11.13)
vale (1)i . Por lo tanto, combinando (11.13) y (11.14) se obtiene
    
i1 (z) Vi1 (z) Ui1 (z) 1 (z)
= (1)i .
i (z) Vi (z) Ui (z) 0 (z)
La segunda de estas ecuaciones es precisamente

i (z) = (1)i Ui (z)0 (z) Vi (z)1 (z) .

Vea, entonces, a partir de esta ltima expresin para i (z), que si identi-
ficamos 1 (z) = z 2t+1 y 0 (z) = 1 + S(z), el algoritmo de divisin eucldeo
genera soluciones sucesivas de la ecuacin (11.12). Por consiguiente, para
obtener el polinomio localizador L(z) basta iterar hasta que el grado de
i (z) sea menor o igual que t.
He aqu entonces las instrucciones para hallar E(z) y L(z) a partir de
S(z).

Algoritmo de Sugiyama

1. Iterar el algoritmo
Ps de divisin eucldeo para 1 (z) = z 2t+1 y 0 (z) =
j
1 + S(z) = 1 + j=1 Sj z hasta alcanzar un resto k (z) tal que
grado k1 (z) > t grado k (x) t.

2. Obtener el polinomio Ak (z) de la iteracin


Aj (z) = qj (z)Aj1 (z) + Aj2 (z), j1
con las condiciones iniciales A1 (z) = 0, A0 (z) = 1.
3. Calcular
E(z) = (1)k k (z) (11.15)
L(z) = Ak (z) (11.16)
siendo la constante que hace L(0) = 1.
366 Cdigos ReedSolomon

Es posible demostrar, aunque no se har en este libro,5 que (11.15) y (11.16)


son las nicas soluciones de

E(z) = L(z) 1 + S(z) mod z 2t+1

que cumplen L(0) = 1, grado L(z) t, grado E(z) t y con el grado de


E(z) el menor posible.
La recurrencia de BerlekampMassey es en realidad un mtodo eficiente
de aplicar el algoritmo eucldeo sin necesidad de efectuar multiplicaciones
y divisiones polinmicas, por lo que su implementacin con registros de
desplazamiento es simple. Se ha podido demostrar que el algoritmo eucldeo
directo es computacionalmente menos costoso que el de Berlekamp a partir
de longitudes de cdigo del orden de 106 (que en el momento presente se
encuentran fuera de todo rango prctico), aunque exige la multiplicacin
y divisin explcita de polinomios. De cualquier manera, no es ah donde
reside su mayor virtud, sino en el hecho de que resulta conceptualmente
mucho ms fcil de comprender que el algoritmo de BerlekampMassey.

Ejemplo 11.10. Tomemos, de nuevo, el cdigo RS-[15, 11] generado por

g(z) = z 4 + 13 z 3 + 6 z 2 + 3 z + 10

y supongamos esta vez el polinomio de error e(z) = 3 z 5 + 7 z 2 . El poli-


nomio sndrome asociado valdr S(z) = 2 z 4 + 8 z 3 + 4 z 2 + 12 z, y los
polinomios localizador y evaluador

L(z) = (1 5 z)(1 2 z) = 1 + z + 7 z 2
E(z) = L(z) + 8 z(1 2 z) + 9 z(1 5 z) = 1 + 13 z + 8 z 2 .

Se verifica, por supuesto, E(z) = (1+S(z))L(z) mod z 5 , pero veamos cmo


se hallan E(z) y L(z) aplicando el algoritmo eucldeo. Las dos primeras
iteraciones son

z 5 = 1 + S(z) (13 z + 4 ) + 7 z 3 + z 2 + 12 z + 4
1 + S(z) = (7 z 3 + z 2 + 12 z + 4 )(10 z + 1) + 9 z 2 + 14 z +

y el grado del resto de esta ltima divisin es menor o igual que t = 2;


as, 9 z 2 + 14 z + debe ser un mltiplo constante de E(z). Para hallar la
constante de proporcionalidad, basta aplicar la recurrencia

Aj (z) = qj (z)Aj1 (z) + Aj2 (z)


5 La demostracin puede hallarse en [41], pgs. 363364.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 367

con las condiciones iniciales A1 (z) = 0 y A1 (z) = 1. Puesto que slo ha


sido necesario dividir dos veces, se tiene que
A1 (z) = q1 (z) = 13 z + 4
A2 (z) = q2 (z)A1 (z) + 1 = 8 z 2 + 2 z + .
Y como 1 A2 (0) = 1, se deduce que
L(z) = 1 A2 (z) = 7 z 2 + z + 1
E(z) = 1 (9 z 2 + 14 z + ) = 8 z 2 + 13 + 1
como era lgico esperar. Las magnitudes de los errores se recuperarn pre-
feriblemente con el algoritmo de Forney.

11.5. Decodificacin por lista

M. Sudan y V. Guruswami [30] han ideado un algoritmo alternativo


capaz de corregir cualquier fraccin de errores menor o igual que 1 R
con un cdigo Reed-Solomon de tasa R. Este algoritmo, por tanto, supera
la capacidad de correccin del algoritmo de Peterson-Gorenstein-Zierler y,
para cualquier valor de la tasa R [0, 1), corrige una fraccin de errores
superior a la clsica cota (1 R)/2.
La idea principal del algoritmo consiste en considerar el vector recibido
como una coleccin de puntos del espacio bidimensional q2 y en encontrar
un polinomio de interpolacin en dos variables A(x, y) que pase por todos
estos puntos. Bajo determinadas condiciones, los factores de A(x, y) de la
forma y f (x), en donde f (x) es un polinomio con coeficientes en q ,
identifican
p las palabras del cdigo situadas a distancia relativa menor que
t = 1 k/n del vector recibido. Veamos el desarrollo del algoritmo de
Sudan-Guruswami.
Sea q [x] el anillo de los polinomios con coeficientes del cuerpo q en la
indeterminada x. Sean 1 , . . . , n elementos no nulos de q dados en cierto
orden, y recordemos que los cdigos Reed-Solomon se pueden definir como
la evaluacin de cierta clase de polinomios en estos puntos. Especficamente,
el cdigo Reed-Solomon [n, k] es el conjunto
  
C[n, k] = f (1 ), f (2 ), . . . , f (n ) : f (x) q [x], grado f (x) < k .
P i j
Definicin 11.2. Sea A(x, y) = i,j ai,j x y un polinomio de q [x, y] y
sean x y y dos nmeros enteros no negativos. El grado ponderado-(x , y )
del polinomio en dos variables A(x, y) es
ax{ix + jy : i 0, j 0, ai,j 6= 0}.
m
368 Cdigos ReedSolomon

El grado ponderado-(1, 1) de A(x, y) es sin ms el grado de A(x, y). El


nmero de monomios de grado ponderado-(x, y ) menor o igual que se
denota por Nx ,y (). El valor de N1,k () resulta de especial importancia
para el algoritmo y se puede calcular con un simple argumento de cuenta
de monomios [12].

Lema 11.16.
   
+1 k 2
N1,k () = +1 > .
k 2 k 2k

Demostracin.

b/kc
X
N1,k () = {i, j 0 : i + jk } = ( jk + 1)
j=0
     
k
= +1 +1 +1
k 2 k
   
+1 k +1
= +1
k 2 k

en donde la ltima igualdad se sigue inmediatamente de la identidad b/kc+


1 = d( + 1)/ke.

La cota inferior es, de hecho, un caso particular del resultado ms general


Nx ,y () > 2 /2xy .
Si y = x + e = (y1 , . . . , yn ) es el vector recibido a la salida del canal, los
pares
D = {(1 , y1 ), (2 , y2 ), . . . , (n , yn )}
pueden verse como una coleccin de puntos del espacio afn bidimensional
2
q . Observe que, en ausencia de errores de transmisin, y i = f (i ) para un
nico f (x) q [x].

Definicin 11.3. El polinomio A(x, y) pasa por el punto (, ) si A(, ) =


0. El polinomio A(x, y) pasa por el punto (, ) con multiplicidad m si
A(x + , y + ) contiene un monomio de grado m pero ningn monomio de
grado menor que m.

El concepto de multiplicidad de una raz de A(x, y) es una generalizacin


del familiar para polinomios en una sola variable. Si para f (x) q [x] es
f () = 0 con multiplicidad m entonces f (x) = (x )m g(x), con g() 6= 0.
O, de manera equivalente, f (x + ) = xm h(x) con h(0) 6= 0, y f (x + )
no contiene ningn trmino de grado inferior a m. Con los polinomios de
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 369

q [x, y] no es posible separar del mismo modo las races, pero s se mantiene
la propiedad de desplazamiento, en el sentido de que A(x + , y + ) no
contiene ningn monomio de grado inferior a la multiplicidad de (, ).
En el problema de la decodificacin de cdigos Reed-Solomon, si han
ocurrido errores de transmisin e yi 6= f (i ) para algn 1 i n, un poli-
nomio de interpolacin en dos variables que pase por todos los puntos de D
tendr la forma a(x, y) = p(x, y)(y f (x)) en donde p(j , f (j )) = 0 para
todas las coordenadas j en donde se haya producido error y f (x) sera un
polinomio del cdigo. Por tanto, si se pudiese calcular a(x, y), sus factores
de la forma y f (x) permitiran identificar cierto nmero de palabras del
cdigo entre las que puede hallarse el vector transmitido. El algoritmo de
Sudan-Guruswami resuelve precisamente estos dos pasos, imponiendo al-
gunas condiciones al polinomio a(x, y) para garantizar la correccin de los
errores.

Algoritmo de Sudan-Guruswami

1. Fijemos un entero arbitrario m y elijamos como el menor entero


positivo tal que
nm(m + 1)
N1,k1 () > .
2

Sea t = m + 1.

2. Paso de interpolacin. Calcular un polinomio p(x, y) q [x, y] de


grado ponderado-(1, k1) como mximo que pase por cada elemento
de
D = {(1 , y1 ), (2 , y2 ), . . . , (n , yn )}
con multiplicidad al menos m, en donde (y1 , . . . , yn ) es el vector reci-
bido.

3. Paso de factorizacin. Identificar todos los factores de p(x, y) de la


forma y f (x), con f (x) q [x] cumpliendo yi = f (i ) para al
menos t de los puntos de D.

Para verificar que el algoritmo es correcto y hallar sus condiciones de


validez se precisan los siguientes resultados.

Lema 11.17. Sea (, ) q2 una raz de p(x, y) q [x, y] con multiplicidad


m o mayor. Si f (x) q [x] y f () = entonces el polinomio g(x) =
p(x, f (x)) es divisible por (x )m .
370 Cdigos ReedSolomon

Demostracin. Sea f1 (x) = f (x + ) . Como f1 (0) = 0, f1 (x) =


xf2 (x) para cierto f2 (x) q [x]. Si definimos g1 (x) = p(x + , f1 (x) + ),
como (, ) es raz de p(x, y) con multiplicidad no menor que m, entonces
p(x + , y + ) no posee ningn monomio de grado inferior a m. Fijando
y = f1 (x) = xf2 (x) en p(x + , y + ) se deduce que g1 (x) es divisible por
xm lo que a su vez implica que g1 (x ) es divisible por (x )m . Ahora
bien, g1 (x ) = p(x, f1 (x ) + ) = p(x, f (x)) = g(x), lo que demuestra
que g(x) es divisible por (x )m .

Lema 11.18. Sean m, t y tres enteros positivos tales que mt > y sea
p(x, y) q [x, y] tal que (i , yi ) es una raz suya con multiplicidad al menos
m, para 1 i n. Supngase que el grado ponderado-(1, k 1) de p(x, y)
no es mayor que . En estas condiciones, si f (x) es un polinomio de q [x]
con grado menor que k que cumple yi = f (i ) para al menos t ndices de
{1, 2, . . . , n} entonces y f (x) es factor de p(x, y).

Demostracin. Puesto que p(x, y) tiene grado ponderado-(1, k 1) menor


o igual que , g(x) = p(x, f (x)) es o bien el polinomio nulo o bien un
polinomio de grado como mximo. Si g(x) fuese no nulo entonces, en
virtud del lema anterior, (x i )m dividira a g(x) para cualquier i T =
{j : 1 j n, f (j )Q= yj }, y como los elementos i son todos distintos se
tendra que h(x) = iT (x i )m divide a g(x). Pero h(x) es de grado al
menos mt > , lo que constituye una contradiccin. Por lo tanto, g(x) = 0
y el polinomio y f (x) es un factor de p(x, y).

Veamos, por ltimo, una relacin combinatoria entre los coeficientes de


p(x, y) y los del polinomio desplazado p(x + , y + ).
P
Lema 11.19. Dado (, ) q2 , sean p(x, y) = i,j pi,j xi y j , p(x + , y +
P
) = i,j p0i,j xi y j . Se cumple que
  
X
X k l ki lj
p0i,j = pk,l .
i j
k=i l=j

Demostracin. Desarrollando los binomios se tiene directamente


X X i
X j
X
pi,j (x + )i (y + )j = pi,j xk ik y l jl .
i,j i,j k=0 l=0

Efectuando un cambio de variable y reuniendo trminos se llega a la frmula


del lema.

Con estas piezas podemos enunciar el resultado fundamental que justifica


el algoritmo de Sudan-Guruswami.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 371

Teorema 11.20. Dados un vector recibido y = (y1 , . . . , yn ) y un entero


m, el paso de factorizacin del algoritmo de Sudan-Guruswami produce una
lista con todas las palabras del cdigo RS-[n, k] a distancia menor que
  $ r !%
m+1
e=n > n 1 R
m m

de y, siendo R = k/n la tasa de codificacin.

Demostracin. Una precondicin para que el teorema sea vlido es que


exista el polinomio p(x, y) buscado en la etapa de interpolacin. Para ello
es necesario que p(x + s , y + ys ) no posea trminos de grado menor que m,
para 1 s n. Segn el lema 11.19 esto ocurre si
  
X
X k l
ki lj pk,l = 0 (11.17)
i j
k=i l=j

para todo i, j 0 tales que i + j < m.


Para cualquier valor de s existen m(m+1)/2 ecuaciones del tipo (11.17) y
por tanto un total de nm(m+1)/2 ecuaciones lineales homogneas (no todas
independientes, posiblemente) en las incgnitas pi,j . Y como el nmero total
de incgnitas es N1,k1 (), ya que p(x, y) se busca con grado ponderado-
(1, k 1) menor o igual que , el sistema tendr una solucin no trivial
si
nm(m + 1)
N1,k1 () >
2
que es el primer paso del algoritmo.
Ahora, como t = b/mc + 1 y mt > , si f (x) q [x] es un polinomio
que cumple f (i ) = yi para al menos t puntos, el lema 11.18 garantiza que
yf (x) es un factor de p(x, y) y el algoritmo produce
 las palabras del cdigo

a distancia menor que e = n t + 1 = n m de y. Adems, por cmo se
elige , se tiene que

nm(m + 1)
N1,k1 ( 1) .
2
Pero N1,k1 ( 1) > 2 /2(k 1) > 2 /2k y por tanto

2 nm(m + 1)

2k 2
y r
k m+1
n
m n m
372 Cdigos ReedSolomon

o lo que es igual
r
t m+1
>1 R .
n m


Observe que, segn este teorema, t/n > 1 R si m . Sin embargo,
aumentar m rpidamente incrementa el nmero de ecuaciones que es preciso
resolver para hallar p(x, y).
En la literatura tcnica se pueden encontrar varios algoritmos computa-
cionalmente eficientes para los pasos de interpolacin y factorizacin necesa-
rios en el algoritmo de Sudan-Guruswami. Ms an, estos algoritmos poseen
complejidad polinmica, de donde se desprende que la decodificacin por lis-
ta tambin. Otra ventaja adicional de esta estrategia de decodificacin es
que se puede aplicar a cierta clase de cdigos BCH, a los cdigos algebraico-
geomtricos y a los cdigos Reed-Solomon generalizados que definiremos en
el apartado 11.7. Por ltimo, el algoritmo ha sido extendido al caso de la
decodificacin soft [36].

Ejemplo 11.11. El cdigo RS-[255, 144, 112] sobre 256 tiene una capacidad
de correccin de 55 errores. Si fijamos m = 1 el algoritmo de Sudan puede
corregir hasta 55 errores. A medida que m aumenta lo hace igualmente
la capacidad de correccin del algoritmo de Sudan, segn refiere la tabla
adjunta, en la que no se han indicado los valores intermedios de m para los
que no vara el nmero de errores corregibles.

m e Densidad
1 200 55 3,71 1079
2 398 56 3,38 1076
3 592 58 2,62 1070
4 782 60 1,86 1064
6 1164 61 1,51 1061
7 1357 62 1,21 1058
12 2314 63 9,45 1056

La ltima columna indica el nmero medio de palabras del cdigo conte-


nidas en una bola de radio e elegida al azar. Los valores significan que es
virtualmente imposible cometer un error de decodificacin cuando se pro-
ducen tal nmero de errores o, lo que es lo mismo, que el cdigo es capaz
de corregir prcticamente todos los errores de peso e. Vea que el paso de
62 a 63 errores corregibles requiere un incremento de m desde 7 hasta 12,
lo que podra suponer una carga computacional elevada en los pasos de
interpolacin y factoriazacin.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 373

11.6. Decodificacin con smbolos borrados

En algunos canales reales se presentan durante la transmisin, en oca-


siones, periodos en los que el subsistema encargado de detectar y procesar
la seal recibida no es capaz de decidir con una fiabilidad mnima cul fue el
smbolo emitido. Por ejemplo, la calidad de la seal puede haberse deterio-
rado, por lo general a causa del ruido o debido a la prdida de sincronismo,
hasta hacer irrecuperables uno o ms smbolos. En estas circunstancias, una
estimacin de los mismos no slo sera inservible (en el sentido de que la
probabilidad de acierto no es mayor que la de fallo), sino que, lo que es
an peor, destruira informacin: la incertidumbre acerca de los smbolos
transmitidos sera entonces mayor que si no se hubiese resuelto la decisin,
porque al hacerlo se pierde irreversiblemente la localizacin del error.
En lugar de obligar al receptor de la seal a realizar decisiones que con
gran probabilidad pueden ser incorrectas, se podra optar por utilizar un
smbolo ajeno al alfabeto de codificacin con el que sealar al decodificador
de canal la presencia de un smbolo errneo en la secuencia recibida que no
se sabe cmo clasificar. Vista desde el decodificador, se tiene de este modo
la misma situacin que se dara si algunos smbolos de la secuencia cdigo
se hubiesen borrado o eliminado, y otros se hubiesen transmitido con error.
Siguiendo con esta interpretacin, un smbolo borrado es a todos los efectos
equivalente a un error del que se conoce la posicin aunque se ignora la
magnitud.
Considerar la presencia de smbolos borrados no modifica la abstrac-
cin ideal de canal discreto, nocin con la que ha sido posible desarrollar
una amplia variedad de tcnicas de decodificacin basadas solamente en
las propiedades algebraicas de los cdigos. Pero acontece en la realidad, en
cambio, que el ruido en un canal es un fenmeno continuo, y lo que se ha
transmitido como un smbolo discreto se convierte, a la salida del canal,
en una observacin de una variable aleatoria continua. Hasta el momento
se ha venido suponiendo, por lo tanto, que estas observaciones continuas
eran discretizadas por alguna clase de dispositivo antes de ser procesadas
por el decodificador. Los que as operan se conocen como decodificadores de
canal basados en decisiones hard. Como alternativa lgica, cabe pensar que
un decodificador que procesara directamente los valores reales (continuos)
observados a la salida del canal obtendra mejores prestaciones (menor pro-
babilidad de equivocacin), dado que en el proceso de discretizacin siempre
se pierde informacin. Este argumento es esencialmente correcto y los de-
codificadores que aceptan a su entrada vectores de nmeros reales (vectores
que no enmascaran la magnitud del ruido en la seal recibida) se conocen
como decodificadores basados en decisiones soft.
Las tcnicas de decodificacin soft merecen un tratamiento especfico,
374 Cdigos ReedSolomon

que no se va a abordar en este texto. Son intrnsecamente distintas de las


tcnicas hard, por cuanto prescinden de toda estructura algebraica o geom-
trica presente en el cdigo y manejan tan slo operadores sobre funciones
de densidad de probabilidad. Adems, comportan que el diseo del decodi-
ficador no sea independiente de las seales que representan los smbolos de
una fuente. Sin embargo, se han discutido brevemente aqu porque guardan
cierta relacin con los modelos de canal con smbolos borrados. stos se
pueden interpretar como canales discretos en los que las salidas se clasifican
en un nmero diferente de niveles (o smbolos) que las entradas, de manera
que cada uno de estos niveles corresponde a diferentes grados de informa-
cin (o bien de incertidumbre) acerca del smbolo emitido. De acuerdo con
este punto de vista, la decodificacin soft aparece como el lmite continuo
de un clasificador con un nmero cada vez mayor de grados de clasificacin.
En este libro se van a ignorar los mtodos algortmicos de decodificacin
soft. Consecuentemente, el objetivo del presente apartado ser analizar en
qu casos es posible, y cmo, reconstruir un vector del cdigo cuando en
l puede haber errores y smbolos borrados. La decodificacin de smbolos
borrados no produce un incremento sustancial de la fiabilidad en canales
que distribuyen los errores uniformemente, pero s en canales con errores a
rfagas (por ejemplo, canales radioelctricos limitados en banda).
Un cdigo de bloques [n, k] es capaz de corregir t errores y b smbolos
borrados si, para cualquier vector recibido, r, con b o menos smbolos bo-
rrados, existe una nica palabra del cdigo, v, a distancia Hamming menor
o igual que t de w, donde w es cualquier vector que coincide con el recibido
en las n b posiciones de los smbolos no borrados. Dicho de otro modo, el
vector r se puede corregir si existe una nica palabra del cdigo tal que un
vector de error de peso no superior a t la convierte en un vector que coincide
con el recibido en los smbolos no borrados.

Teorema 11.21. Un cdigo de bloques [n, k] de distancia dC puede corregir


t errores y b smbolos borrados si 2t + b < dC .

Demostracin. Sea r un vector con t errores y b smbolos borrados, y S el


conjunto de vectores que coinciden con r en los n b smbolos no borrados.
Supongamos que existen dos vectores del cdigo, x1 y x2 , tales que
dH (x1 , y1 ) t; dH (x2 , y2 ) t
para ciertos y1 , y2 S. Puesto que y1 e y2 difieren como mximo en b
posiciones,
t + t + b dH (x1 , y1 ) + dH (x2 , y2 ) + dH (y1 , y2 ).
Pero, en virtud de la desigualdad triangular,
2t + b dH (x1 , y1 ) + dH (x2 , y1 ) dH (x1 , x2 )
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 375

 

  

    

Figura 11.2. Interpretacin geomtrica de la decodificacin con sm-


bolos borrados. S es el conjunto de vectores de qn que coinciden con
el vector recibido, r, en los smbolos no borrados; c1 y c2 son vectores
del cdigo, y B1 y B2 esferas de radio t.

y, entonces, dC 2t+b. Esta conclusin es imposible, de forma que x1 = x2 ,


y la combinacin de t errores y b smbolos borrados es corregible.

En particular, un cdigo de distancia dC corrige dC 1 smbolos borrados,


el doble que smbolos con errores.

Los cdigos BCH y, sobre todo, los RS permiten realizar la decodificacin


de smbolos borrados de manera muy eficiente. Por dos motivos:

Porque existen para ellos algoritmos de decodificacin intrnsecamente


eficientes.

En el caso de los cdigos RS, porque son de mxima distancia; o


dicho de otra forma, porque pueden corregir el mayor nmero posible
de smbolos borrados y errores.

Bajo la suposicin de que no se producen errores en los smbolos no borrados,


en un cdigo RS-[n, k] es suficiente con detectar k smbolos para deducir
(corregir) todos los borrados, ya que las k coordenadas de los smbolos
sin error son linealmente independientes y determinan un nico vector del
cdigo.

En un caso general, la decodificacin de solamente los smbolos borrados


equivale a la resolucin de un sistema de k ecuaciones lineales y precisa, en
consecuencia, O(k 3 ) operaciones.
376 Cdigos ReedSolomon

11.6.1. Decodificacin de cdigos binarios

En el caso binario, existe un mtodo muy simple para determinar el


vector del cdigo emitido utilizando slo decodificadores clsicos. Se trata
de construir, a partir del vector recibido, dos nuevos vectores, sustituyendo
en un caso los smbolos borrados por ceros y, en el otro, por unos. Segui-
damente, se decodifican ambos vectores. De los dos vectores del cdigo que
se obtienen, se selecciona finalmente el ms cercano en distancia Hamming
al vector recibido. Si 2t + b < dC , al menos en una de las dos sustituciones el
nmero de errores en el vector que se construye es menor o igual que t + b/2,
y sta se habr decodificado correctamente.

11.6.2. Decodificacin de cdigos RS y BCH no binarios

Se supondr que el vector recibido a la salida del canal consta de s t


errores y b smbolos borrados. Los errores ocurren en las posiciones i1 , . . . , is
y tienen magnitudes e1 , . . . , es , y los smbolos borrados afectan a las posi-
ciones j1 , . . . , jb .
Como antes, sea una raz primitiva n-sima de la unidad y sean
X1 = i1 , . . . , Xs = is los localizadores de error. De manera anloga,
se representarn ahora por Y1 = j1 , Y2 = j2 , . . . , Yb = jb los localizado-
res de los smbolos borrados, que, a diferencia de los localizadores de error,
s son conocidos.
Fijemos arbitrariamente el valor de los smbolos f1 , . . . , fb en las posi-
ciones que han sido borradas y calculemos el sndrome del vector recibido
r(z) mediante

s
X b
X
Sj = r(j ) = ei Xij + fi Yij j = 1, . . . , 2t
i=1 i=1

en donde Xl = il e Ym = jm . Definamos ahora el polinomio localizador


de errores
Ys
L(z) = (1 Xi z)
i=1

y el polinomio localizador de smbolos borrados


b
Y
(z) = (1 Yi z), (11.18)
i=1

ste ltimo conocido. A partir de ellos, se puede definir el siguiente polinomio


C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 377

evaluador de errores y de smbolos borrados

X
s b
X 
ei zXi fi zYi
E(z) = L(z)(z) 1 + +
i=1
1 Xi z i=1 1 Yi z

que recibe tal nombre a causa de estas dos sencillas propiedades que revelan
de qu manera se pueden recuperar las magnitudes de los smbolos errneos
y de los smbolos borrados:
Y 
E(Xj1 ) = (Xj1 )ej 1 Xi Xj1 , j = 1, . . . , s
i6=j
Y 
E(Yj1 ) = L(Yj1 )fj 1 Yi Yj1 , j = 1, . . . , s.
i6=j

En estas condiciones, se cumple la siguiente versin de la identidad clave



1 + S(z) L(z)(z) = E(z) mod z 2t+1

cuya demostracin es idntica a la del teorema 11.13, y que puede asimis-


mo ser resuelta tanto por el algoritmo de BerlekampMassey como por el
algoritmo eucldeo para obtener L(z).
En caso de aplicar el algoritmo de BerlekampMassey, el procedimiento
sera as:

1. Calcular los sndromes Sj , j = 1, . . . , 2t, evaluando el vector recibido


en j .
2. Formar el polinomio evaluador de smbolos borrados (11.18).
3. Aplicar el algoritmo de BerlekampMassey para obtener L(z). Em-
plear las condiciones iniciales i = b, L(b) (z) = T (b) (z) = (z) y
Mb = 0, y calcular la recurrencia
i1
X (i1)
i = Lj Sij
j=0

Mi = (i Mi1 b) + (1 )Mi1
 (i)
    (i1) 
L (z) 1 i z L (z)
=
T (i) (z) 1
i (1 )z T (i1)
(z)

con = 1 si i 6= 0 y 2Mi1 i 1 + b, y = 0 en otro caso. El


polinomio localizador de errores es L(x) = L(2t) (z)/(z).
4. Hallar las races de L(z) con el mtodo de bsqueda de Chien.
378 Cdigos ReedSolomon

5. Determinar los valores de las magnitudes de error y los smbolos bo-


rrados con las ecuaciones

E(Xi1 ) E(Xi1 )
ei = Q = X i
(Xi1 ) j6=i (1 Xj Xi1 ) (Xi1 )L0 (Xi1 )
E(Xi1 )
= Xi , i = 1, . . . , s
0 (Xi1 )
E(Yi1 ) E(Yi1 )
fi = 1 Q = Yi
L(Xi ) j6=i (1 Yj Yi1 ) L(Yi1 ) 0 (Yi1 )
E(Y 1 )
= Xi 0 i 1 , i = 1, . . . , b
(Yi )

en donde (z) = L(z)(z) y 0 (z) es la derivada formal de (z).

6. Corregir los errores y los smbolos borrados.

Es obvio que la eleccin ms cmoda para simplificar todos estos clculos


es tomar f1 = f2 = = fb = 0, esto es, sustituir al principio de la
decodificacin todos los smbolos borrados por ceros.

Ejemplo 11.12. Supongamos que se utiliza el cdigo RS-[7, 3] de polinomio


generador
g(z) = z 4 + 3 z 3 + z 2 + z + 3

y que se desea decodificar el vector r(z) = 3 z 2 + bz 3 + z 4 + z 6 , en donde b


seala un smbolo borrado que ocurre en el localizador Y1 = 3 . Si fijamos
b = 0, entonces el polinomio sndrome ser
4
X 
S(z) = 3 (i )2 + (i )4 + (i )6 z i = 2 z + 2 z 2 + 6 z 3 + z 4 .
i=1

El polinomio localizador de smbolos borrados es (z) = 1 + 3 z.


Ahora, estableciendo inicialmente L(1) (z) = T (1) (z) = 1 + 3 z, M1 = 0,
el algoritmo de BerlekampMassey produce

i L(i) (z) T (i) (z) i Mi


1 1 + 3 z 1 + 3 z 0
2 1 + 6 z 2 4 + z 3 1 1
3 1 + 2 z + z 2 2 + z 2 5 1 1
4 1 + 2 z + z 2 0
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 379

de manera que L(z)(z) = 1 + 2 z + z 2 , y por tanto se deduce que L(z) =


1 + 5 z es el polinomio localizador. Con la ecuacin clave E(z) = (1 +
S(z))L(z)(z) se llega a que el polinomio evaluador de errores y smbolos
borrados vale E(z) = 1. Por ltimo, teniendo en cuenta que L0 (z) = 5 y
0 (z) = 3 , hallamos las magnitudes de error con
1
e1 = 5 = 3
(2 )5
1
b = 3 =
L(4 )3
y se corrige en favor del vector recibido

3 z 2 + bz 3 + z 4 + z 6 b= + 3 z 5 = 3 z 2 + z 3 + z 4 + 3 z 5 + z 6
= z 2 g(z).

11.6.3. Decodificacin de cdigos RS acortados o perforados

Al inicio del captulo vimos que las operaciones de perforacin y recorte


de un cdigo RS preservaban la propiedad de mxima distancia en el cdigo
resultante, si bien, en general, ste no es cclico. Ahora bien, si interpretamos
como smbolos borrados las coordenadas que se han suprimido durante la
puncin o el recorte, entonces resulta posible decodificar directamente estos
cdigos modificados con los mismos procedimientos de decodificacin de
smbolos borrados.
Pues, si C es un cdigo RS perforado de longitud n y dimensin k,
y por tanto con distancia n k + 1, entonces el cdigo matriz C del que
procede es uno RS de longitud q 1, misma dimensin k y distancia q k.
La diferencia entre las distancias de C y C es de q n 1, igual al nmero
de coordenadas suprimidas. Si se aaden a un vector de C precisamente
q n 1 smbolos borrados, y el vector resultante (que tiene longitud q 1)
se considera como un posible vector de C, ocurre que la distancia de C es
suficiente para decodificar con las inserciones, ya que se podrn corregir e
errores si
2e + (q n 1) < q k,
es decir, si 2e < n k + 1, que es precisamente la capacidad de correccin
de errores de C .
En cuanto a los cdigos acortados, cabe emplear un argumento similar.
Un cdigo acortado se obtiene borrando smbolos de informacin nulos en
todas las palabras del cdigo. Ahora bien, como cualesquiera k coordenadas
de C sirven como smbolos de informacin, la operacin de recortar q
n 1 de ellas es, en realidad, equivalente a la supresin de esas q n 1
coordenadas en un subcdigo de C.
380 Cdigos ReedSolomon

11.7. Cdigos RS generalizados

La definicin dada en el apartado 11.1 se puede extender para dar lugar


a los cdigos RS generalizados. Sea = (0 , 1 , . . . , n1 ) un vector de
n elementos distintos de q , con n q, y sea = (0 , 1 , . . . , n1 ) una
n-tupla de elementos no nulos de q .

Definicin 11.4 (Cdigo RS generalizado). El cdigo RS generalizado


de dimensin k y longitud n es el conjunto de puntos
 
RSGk (, ) = 0 P (0 ), 1 P (1 ), . . . , n1 P (n1 ) : P (x) Fk [x]

siendo Fk [x] el conjunto de los polinomios de grado menor que k con coefi-
cientes en q .

Puesto que P (x) Fk [x] slo puede tener, como mximo, k 1 races
en q , cualquier palabra de RSGk (, ) tendr al menos n k + 1 elemen-
tos no nulos. Por tanto, en virtud de la cota de Singleton, la distancia de
RSGk (, ) es n k + 1 y los cdigos RS generalizados son cdigos MDS.
Obviamente, si y son dos vectores de ( q )n proporcionales, los c-
digos RSGk (, ) y RSGk (, ) son equivalentes. La familia de cdigos RS
son sencillamente RSGk (, ) cuando i = 1 y i = i , para i = 0, . . . , n1,
con una raz primitiva n-sima de la unidad y n = q 1.
Demostraremos seguidamente que el dual de un cdigo RS generalizado
es otro cdigo RS generalizado, definido sobre el mismo conjunto de puntos
pero con un vector de escala diferente.

n
Teorema 11.22. Existe un vector (0 , 1 , . . . , n1 ) q de elementos no
nulos tal que, para cualquier 0 k n 1,

RSG
k (, ) = RSGnk (, ).

Demostracin. El caso k = n 1 es el ms sencillo. Como RSG k (, )


es separable y de mxima distancia, su cdigo dual es [n, 1, n] y poseer
una base compuesta por un nico vector (0 , 1 , . . . , n1 ) con todas sus
componentes distintas de cero. Si h es un polinomio de grado menor que
k = n 1, entonces
n1
X
i i h(i ) = 0
i=0

ya que (0 h(0 ), 1 h(1 ), . . . , n1 h(n1 )) RSGk (, ). Y en particular,


C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 381

para cualesquiera f (x) Fk [x], g(x) Fnk [x], 0 k n 1, se tiene que


n1
X
i g(i )i f (i ) = 0.
i=0

En consecuencia, RSG
k (, ) RSGnk (, ). Y como RSGk (, ) tiene
dimensin n k, el teorema queda probado.

No obstante, el vector de escala que define el cdigo dual se puede calcu-


lar explcitamente haciendo uso directo del siguiente resultado, que requiere
de un lema previo.

Lema 11.23. Sea Kn el cuerpo de las funciones racionales en las variables


X0 , . . . , Xn1 . Si P (x) es un polinomio de q [x] de grado menor que m y
m 2, entonces
n1
X P (Xi )
Q = 0.
i=0 j6=i (Xj Xi )

Demostracin. Sea Z una variable distinta de cualquiera de las Xi , y


definamos la funcin
ZP (Z)
f (Z) = .
X0 X1 Xn1
Evaluando la funcin en el punto Xi

P (Xi )
f (Xi ) = Q 0 i n 1.
j6=i Xj

Por la frmula de interpolacin de Lagrange


n1
X Y Z Xi
f (Z) = f (Xi ) .
i=0
Xj X i
j6=i

Y evaluando esta expresin en Z = 0 resulta la condicin


n1
X P (Xi )
Q = 0.
i=0 j6=i (Xj Xi )

Teorema 11.24. Para n 2, RSG


k (, ) = RSGnk (, ) con

1
i = Q , 0 i n 1.
i j6=i j i )
(
382 Cdigos ReedSolomon

Demostracin. La condicin de ortogonalidad vista en la demostracin


del teorema 11.22
n1
X
i i h(i ) = 0
i=0

en donde h(x) es un polinomio arbitrario de grado menor que n 1, es


justamente la del lema anterior sin ms que identificar Xj = j .

Conforme a la definicin, una matriz generadora de RSG k (, ) es



0 0k1 1 1k1 . . . n1 n1 k1
0 k2 1 k2 . . . n1 k2
0 1 n1
G=
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ,
0 0 1 1 . . . n1 n1
0 1 ... n1

mientras que, por el teorema 11.22, una matriz de comprobacin de paridad


es cualquier generadora de RSGnk (, )

0 nk1
0 1 nk1
1 . . . n1 nk1 n1
0 nk2 1 nk2 . . . n1 nk2
0 1 n1
H =
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
0 0 1 1 ... n1 n1
0 1 ... n1

La matriz G tambin se puede escribir como


k1 k1

0 . . . n1 0
k2 . . . k2
0 n1 1
G=
. . . . . . . . . . . . . . . . . ..
0 .
. . . n1
1 ... 1 n1

lo que revela explcitamente que un cdigo RSG k (, ) es monomialmente6


equivalente a un cdigo RS perforado. Lo mismo es vlido para el cdigo
dual: nk1
0 . . . nk1
n1 0
nk2 . . . nk2
0 n1 1
H =
. . . . . . . . . . . . . . . . . . . . . . . .
0 . .
... n1
1 ... 1 n1

6 Dos cdigos lineales son monomialmente equivalentes cuando G 0 = G D es una

matriz generadora de uno de ellos si G lo es del otro, siendo D una matriz diagonal con
escalares no nulos.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 383

Sea ahora C un cdigo RS-[q 1, k], y sea f (x) un polinomio arbitrario


con coeficientes en el cuerpo q . Por evaluacin directa, es fcil comprobar
que X
f () = 0
q

de modo que el cdigo extendido


 
Cb = f (1), f (), f (2 ), . . . , f (q2 ), f (0) : f Fk [x]

es un cdigo RSG con longitud n = q, dimensin k, vector de escala i = 1,


i = i , para i = 0, . . . , n 2, y n1 = 0. Por lo tanto, Cb es un cdigo
MDS, con distancia n k + 2 y matriz generadora

1 1 1 ... 1 1
2 n1 0
b = 1
G
...
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1 k1 2(k1) . . . (k1)(n1) 0

Utilizando un mtodo similar, un cdigo RSGk (, ) de longitud n puede


ser extendido a un cdigo Ce aadiendo a G una nueva columna. La matriz
generadora de Ce es 
Ge = G uT

en donde u = (a, 0, 0, . . . , 0) para algn a q no nulo. Si se elige b q


no nulo tal que
n1
X
ab + i i in1 = 0,
i=0

cosa que siempre es posible pues a 6= 0, entonces una matriz de comproba-


cin de paridad del cdigo Ce es

0 0nk 1 1nk ... n1 n1 nk
b
0 nk1 1 nk1 . . . n1 nk1 0
0 1 n1
e
H =
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
0 0 1 1 ... n1 n1 0
0 1 ... n1 0

Cualquier conjunto de n k + 1 columnas de esta matriz es linealmente


independiente. Si la ltima columna no est entre las elegidas, entonces la
submatriz formada por las n k + 1 columnas es de Vandermonde, ya que
0 , . . . , n1 son todos distintos. Y si la ltima columna es una de las elegi-
das, entonces el determinante de la submatriz ser b veces el determinante
de una matriz de Vandermonde, producto que ser distinto de cero al ser
b 6= 0. Por lo tanto, Ce tiene distancia n k + 2 y es tambin un cdigo MDS.
384 Cdigos ReedSolomon

Para la decodificacin de los cdigos RS generalizados pueden seguirse


dos estrategias diferentes. Si los vemos simplemente como transformaciones
monomiales de un cdigo RS perforado, entonces basta con aplicar cualquier
algoritmo de decodificacin de un cdigo RS al vector

(01 y0 , . . . , n1
1
yn1 ),

siendo (y0 , . . . , yn1 ) el vector recibido a la salida del canal.


Pero cabe un planteamiento alternativo ms directo de la decodificacin.
Dado un vector recibido y = (y0 , . . . , yn1 ) con t o menos errores (t =
(n k)/2), su vector sndrome ser
1 ... 1
T
0
1 0 ... n1

s = y HT = y .. . . . . . . . . . . . . . . . . . . . . . .

.
. nk2
0 . . . nk2n1

n1 0 nk1
. . . n1 nk1

Es decir,
n1
X
sj = yi i ji , j = 0, . . . , 2t 1.
i=0

Si los errores ocurren en las posiciones i1 , . . . , it , y tienen magnitudes Y1 =


ei1 , . . . , Yt = eit , entonces las componentes del sndrome sern
t
X t
X
sj = ik eik jik = ik Yk Xkj ,
k=1 k=1

en donde Xk = ik son los localizadores de errores. Si ahora definimos los


polinomios
2t1
X
S(z) = sk z k (sndrome)
k=0
Yt
L(z) = (1 Xk z) (localizador)
k=1
t
X k
Y
E(z) = k Yk (1 Xk z) (evaluador de errores)
k=1 j=1
j6=k

se verifica la siguiente versin de la identidad clave:


E(z)
= S(z) mod z 2t .
L(z)
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 385

La identidad clave puede ser resuelta, como se sabe, por el algoritmo eucldeo
(apartado 11.4.3), y las magnitudes de error se deducen con el algoritmo de
Forney, por ejemplo.

Ejemplo 11.13. Si se toma como vector de escala i = n1i y i = i ,


siendo una raz primitiva sptima de la unidad, se obtiene la siguiente
matriz generadora de un cdigo RS generalizado, RSG 4 (, ), en 8
4
6 3 5
4 5 6 1
G=
4 4 4 4 4 .
4 3 2 1

Para obtener RSG j (, ), j 4, ser necesario, en primer lugar, hallar un


vector ortogonal a G. La resolucin (con la regla de Cramer, por ejemplo)
del sistema G T = 0T produce como resultado el vector

= (2 , 2 , 3 , , 1)

en donde la normalizacin de la ltima componente es arbitraria. Por lo


tanto,
RSGj (, ) = RSG5j (, ).

Las componentes del vector tambin se pueden calcular expresamente a


partir de con el teorema 11.24 sin necesidad de resolver ningn sistema
lineal.

Notas bibliogrficas

La descripcin original de los cdigos ReedSolomon apareci en [56], si


bien se conocan desde tiempo antes en otro contexto. La familia se puede
describir ya como cdigos polinmicos, ya como cdigos geomtricos [53,
cap. 16]. El primer algoritmo de decodificacin apareci en [28]. Berle-
kamp [3] contina siendo la referencia fundamental para entender la de-
codificacin algebraica. La descripcin del algoritmo de BerlekampMassey
que figura como apndice a este captulo sigue las lneas de Blahut en [53,
cap. 16]. El algoritmo de Sudan, una extensin del algoritmo de Berlekamp
Massey ideada para la decodificacin de cdigos bicclicos y de cdigos ccli-
cos definidos sobre curvas, tambin se explica en [53, cap. 16]. El algoritmo
de Forney para la obtencin de las magnitudes de error es, en realidad, la
bien conocida frmula de interpolacin polinmica de Lagrange. El algorit-
mo eucldeo fue propuesto por Sugiyama en [66]. Por ltimo, el algoritmo
de Sudan-Guruswami explota tcnicas de interpolacin polinmica que se
386 Cdigos ReedSolomon

retrotraen hasta Newton y puede modificarse sin excesiva complicacin para


decodificar cdigos definidos a partir de curvas algebraicas [30].
Wicker, primero en la monografa [74] y luego en [75], y Reed [57] ofrecen
abundante informacin sobre la aplicacin prctica de estos cdigos. Las dos
obras pueden resultar interesantes adems porque muestran arquitecturas
hardware de decodificadores RS.
Por otro lado, los cdigos ReedSolomon son uno de los puntos de par-
tida para llegar a los cdigos algebraicogeomtricos, una clase de cdigos
sofisticados que, si bien no posee an gran relevancia prctica, s tiene un
inters terico indudable. Baste mencionar que algunos cdigos de esta fa-
milia mejoran la cota inferior de GilbertVarshamov. Para ms informacin,
puede consultarse [53].
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 387

11.A. Los cdigos cclicos y la transformada de Fourier

La transformada de Fourier puede definirse en cualquier cuerpo abeliano,


incluidos los cuerpos de Galois. Las propiedades de la transformada son una
consecuencia de la propia estructura del cuerpo, no de la naturaleza particu-
lar de los elementos del mismo, por lo que se verifican con independencia
de cul sea el nmero de sus elementos.
La definicin de la transformada de Fourier en cualquier cuerpo sola-
mente precisa de la existencia de un elemento de orden n.

Definicin 11.5. La transformada de Fourier de un vector v de longitud


n con elementos del cuerpo q es el vector

n1
X
Vj = ij vi , j = 0, . . . , n 1
i=0

donde es un elemento de orden n de qm .

Si m = 1, es un elemento de q ; si m > 1, es un elemento de la


extensin q m de q . Cuando n = q m 1, es un elemento primitivo de
qm .

El vector V = (V0 , . . . , Vn1 ) formado por los coeficientes de la transfor-


mada de Fourier es el espectro de v. La notacin habitual para representar
la transformacin biunvoca de Fourier es v V.
Resulta sencillo verificar que se preservan todas las propiedades usuales
de la transformada de Fourier sobre el campo complejo:

a) Frmula de inversin:

n1
1 X ik
vi = Vk , i = 0, . . . , n 1
n i=0

b) Linealidad: u + v U + V para , q.

c) Modulacin: (vi il ) (V(k+l) ). (V(k+l) ) es la rotacin cclica del


espectro V en l posiciones. Los parntesis en el subndice indican la
reduccin mdulo n.

d ) Traslacin: (v(il) ) (Vk lk ).


388 Cdigos ReedSolomon

e) Convolucin cclica:

 n1
X 
ei = f(il) gl (Ek = Fk Gk )
l=0
n1
X
1
(fi gi ) n Gk F(ik) .
k=0

Pn1
f ) El polinomio v(x) = i=0 vi xi tiene un cero en k si y solamente si
Vk = 0.
g) En el cuerpo qm , la transformada de Fourier de v tiene componentes
en el subcuerpo q si y slo si vjq = v(jq) .

h) Diezmado: si n = n1 n2

 1 nX
2 1 
(v0 , vn2 , v2n2 , . . . , v(n1 1)n2 ) Vi+n1 j
n2 j=0 i=0,...,n1 1

i) Permutacin cclica: si (a, n) = 1, entonces


 
v(ai) V(bk)

con ab = 1 mod n.

La relacin entre ceros espectrales y races de un polinomio es espe-


cialmente til en el caso de los cdigos cclicos. Con ella, las palabras de
un cdigo BCH de distancia de diseo , definido sobre q y con ceros en
{ b , b+1 , . . . , b+2 } son el conjunto de secuencias v de qn cuya transfor-
mada de Fourier cumple V(b) = V(b+1) = = V(b+2) = 0 y V(jq) = Vjq .
En general, en un cdigo BCH con distancia de diseo , 1 coeficientes
(cclicamente) consecutivos del espectro de cualquier palabra del cdigo son
nulos. Consecuentemente, el clculo del sndrome con un cdigo BCH es el
clculo de n k coeficientes espectrales del vector recibido.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 389

11.B. El algoritmo de BerlekampMassey

Como ya se ha comentado en el captulo, el algoritmo de Berlekamp


Massey es un procedimiento computacional eficiente para la decodificacin
de cdigos cclicos y de cdigos algebraicos definidos sobre curvas. Pertenece
a la clase de algoritmos de decodificacin por localizacin, aqullos en los que
se calcula un polinomio localizador (x), basado en la estructura algebraica
del cdigo, que permite identificar los errores de transmisin. Este apndice
ofrece una explicacin ms rigurosa de los fundamentos del algoritmo.
Supngase un cdigo BCH de longitud n definido en el cuerpo q , con
ceros {1, , 2 , . . . , 2 }, = 2t + 1, y una raz primitiva n-sima de la
unidad. Sea e un vector de error de peso s t
e = e i 1 xi 1 + + e i s xi s .
El problema de la decodificacin consiste en resolver el sistema de ecuaciones
no lineal
n1
X
Sj = ij ei , j = 0, . . . , 2t 1
i=0

entre las 2t componentes conocidas del sndrome (que son las 2t primeras
componentes de la transformada de Fourier de e) y el vector de error e,
para un e de la menor longitud posible y peso no mayor que t.
En el procedimiento de decodificacin por localizacin, este problema no
lineal se descompone en dos pasos. Primero se establece una relacin lineal
entre los coeficientes del sndrome y los del polinomio localizador (x).
Luego, se resuelve una relacin no lineal sencilla (una recurrencia lineal)
entre los coeficientes de (x) y los de E, la transformada de Fourier de e,
para hallar el resto de valores desconocidos de E. Por ltimo, se invierte el
espectro E para recuperar el vector de error.

11.B.1. Polinomios localizadores

En el anillo de polinomios Fq [x]/xn 1 se llama polinomio localizador


de P (x) a cualquier polinomio (x) que cumpla
(x)P (x) = 0 mod xn 1.
El conjunto de polinomios localizadores de uno dado, P (x), es un ideal de
Fq [x]/xn 1. Como Fq [x]/xn 1 es un anillo de ideales principales, el ideal de
polinomios localizadores est generado por el localizador de grado mnimo.
Si es un elemento de orden n, entonces, para i = 0, 1, . . . , n 1,
(i )P (i ) = 0
390 Cdigos ReedSolomon

y (x) permite identificar, a travs de sus ceros, aquellas races n-simas de


la unidad que no son ceros de P (x).
En el caso de los cdigos BCH, y supuesto el vector de error e, el poli-
nomio
s
Y
(x) = (1 xil )
i=1
Pn1
es el polinomio localizador de grado mnimo de E(x) = i=0 Ei xi en el ani-
n
llo Fqm [x]/x 1, siendo E(x) el polinomio cuyos coeficientes son el espectro
de e.7 Para demostrarlo, vea que, por la definicin, i = (i )/n = 0 si
y slo si ei 6= 0, y por P
tanto ei i = 0 para cualquier ndice i. Adems, los
s
coeficientes de (x) = i=0 i xi son la transformada de Fourier de los i .
Por la propiedad de convolucin de la transformada de Fourier, la condicin
ei i = 0 equivale a

(x)E(x) = 0 mod xn 1.

Escrita componente a componente, esta relacin se convierte en la recurren-


cia lineal
X s
k E(jk) = 0, j = 0, 1, . . . , n 1.
k=0

Los parntesis en el subndice indican reduccin mdulo n. Si se advierte


que 0 = 1, se puede escribir
s
X
Ej = k E(jk) , j = 0, 1, . . . , n 1.
k=1

De estas n ecuaciones, hay t en las que figuran las 2t componentes conoci-


das de E (los sndromes) y las t incgnitas de (x). Expresadas en forma
matricial, estas t ecuaciones son:

Et1 Et2 . . . E0 1 Et
Et Et1 . . . E1 Et+1
2
.. .. .. = .. . (11.19)
. . . .
E2t2 E2t3 . . . Et1 t E2t1

Este sistema de ecuaciones posee al menos una solucin pues, por hipte-
sis, el vector de error consta de t errores o menos y su polinomio localizador
es una solucin. Esto significa que si ha habido t errores exactamente, en-
tonces tal solucin es la nica y el determinante de la matriz no es nulo. Si
7 Dada una palabra v de un cdigo cclico, al polinomio v(x) = n1 i
i=0 Vi x cuyos
coeficientes son la transformada de Fourier de v se lo denomina tambin polinomio de
MattsonSolomon de v.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 391

el determinante de la matriz de coeficientes del sistema fuese nulo, y como


mximo se han dado t errores, entonces existen mltiples soluciones. En tal
caso, se debe reducir en uno el tamao de la matriz y tratar de resolver el
problema en la misma forma (teorema 11.12). Es decir, se intenta descubrir
un vector de error con t 1 posiciones no nulas.
Por otra parte, las ecuaciones (11.19) son bien conocidas en lgebra: se
trata de las ecuaciones generalizadas de Newton, que relacionan los coefi-
cientes del polinomio (x) con las potencias de los elementos il .
El sistema de ecuaciones planteado se puede resolver con cualquier pro-
cedimiento conveniente (la matriz del sistema es una matriz de Toeplitz).
Una vez conocido (x), el resto del espectro del vector de error se obtiene
de
Xs
Ej = k E(jk) , j = 0, 1, . . . , n 1.
k=1

Realizando la transformada inversa de Fourier de E, se obtienen las compo-


nentes de e, que restadas del vector recibido dan los smbolos de la palabra
del cdigo transmitida.

11.B.2. Complejidad lineal de secuencias

Se define la complejidad lineal de la secuencia v = (v0 , v1 , . . . , vr1 ), con


elementos en q y en donde r 1 no tiene por qu ser finito, como el menor
valor de L para el que existe una recurrencia
L
X
vi = j vij , i = L, . . . , r 1
j=1

que produce el resto de trminos de la secuencia a partir de los L primeros.


La complejidad lineal de v se representar por el signo L(v). Si la secuencia
es de longitud finita, L(v) no ser mayor que dicha longitud; si la secuencia
es nula, su complejidad ser cero; y para secuencias infinitas, si no existe una
recurrencia como la descrita (por ejemplo, porque la sucesin no es lineal),
ser L(v) = .
La complejidad lineal de una secuencia puede verse, por tanto, como
la longitud mnima de un registro de desplazamiento con realimentacin
lineal que produce v cuando las condiciones iniciales son (v0 , . . . , vL1 ). Los
coeficientes j son los de realimentacin del registro. Si se define 0 = 1,
con los L coeficientes i se puede formar el polinomio de conexin
L
X
L(x) = i xi .
i=0
392 Cdigos ReedSolomon

Ahora bien, el polinomio L(x) no define unvocamente la recurrencia, ya


que puede ocurrir que L = 0: en tal caso, la secuencia definida por L(x)
es simplemente una versin desplazada y con un trmino inicial ms que
una recurrencia definida por (L(x), L 1). En general, slo se sabe que el
grado de L(x) no es mayor que L. En lo sucesivo, una recurrencia dada por
el polinomio de conexin L(x) y complejidad lineal L se representar por
(L(x), L).
El siguiente teorema dice que dos recurrencias distintas generan la misma
sucesin de elementos si generan un nmero suficiente de trminos iguales.

Teorema 11.25 (de concordancia). Si (L(x), L) y (L0 (x), L0 ) producen


ambas la secuencia (v0 , v1 , . . . , vr1 ), y r L + L0 , entonces
0
L
X L
X
k vrk = 0k vrk .
k=1 k=1

Demostracin. Por hiptesis


L
X
vi = j vij , i = L, . . . , r 1,
j=1
0
L
X
vi = 0j vij , i = L0 , . . . , r 1.
j=1

Adems, puesto que r L + L0 , se puede escribir


0
L
X
vrk = 0j vrkj , k = 1, . . . , L,
j=1
L
X
vrk = j vrkj , k = 1, . . . , L0
j=1

Por lo tanto,
0
L
X L
X L
X
k vrk = k 0j vrkj
k=1 k=1 j=1
L0
X L
X
= 0j k vrkj
j=1 k=1
0
L
X
= 0j vrj .
j=1
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 393

Teorema 11.26 (Massey). Si (L(x), L) es una recurrencia que produce


(v0 , v1 , . . . , vr2 ) pero no (v0 , v1 , . . . , vr1 ), entonces L(v) r L.

Demostracin. Suponga que existe una recurrencia lineal (L0 (x), L0 ) que
produce (v0 , . . . , vr1 ) y con L0 < r L. Entonces, (L(x), L) y (L0 (x), L0 )
producen ambas (v0 , . . . , vr2 ) y L + L0 r 1. Pero, por el teorema
anterior, esto implica que deben generar el mismo valor de la secuencia en
la iteracin r 1, contra lo que se haba supuesto.

Massey prob adems el siguiente corolario inmediato: si (L(x), L) es la


recurrencia de mnima longitud que genera (v0 , . . . , vr2 ), entonces L(v)
max{L, r L}.
El polinomio de conexin de la secuencia E = (E0 , . . . , En1 ) no tiene
por qu coincidir necesariamente con el polinomio localizador de E(x) =
Pn1 i
i=0 Ei x . Para ser iguales, el polinomio de conexin tiene que producir la
secuencia E repetida peridicamente, con periodo n, al igual que lo hace el
polinomio localizador. Esta observacin conduce al siguiente resultado.

Teorema 11.27. Sea E = (E0 , . . . , En1 ) una secuencia de longitud n y


Pn1
sea el polinomio asociado E(x) = i=0 Ei xi . El polinomio localizador de
E(x) y el polinomio de conexin de E coinciden si el grado del polinomio
localizador no es mayor que n/2.

Demostracin. La complejidad lineal de la secuencia no es mayor que la


de la secuencia repetida cclicamente. Por tanto, si el grado del polinomio
localizador no es mayor que n/2, las recurrencias que definen los polinomios
localizador y de conexin son como mximo de longitud n/2 y concuerdan
hasta el n-simo smbolo. Por el teorema de concordancia, deben coincidir
en las iteraciones siguientes.

11.B.3. El algoritmo de BerlekampMassey

El algoritmo de BerlekampMassey es un procedimiento para encontrar


la recurrencia
v
X
Ej = k Ejk , j = v, . . . , 2t 1
k=1

para el mnimo valor posible de v. Esta formulacin del problema es ms


general que el problema de resolver el sistema (11.19), porque puede suceder
394 Cdigos ReedSolomon

que aquel sistema de ecuaciones no posea solucin. Sin embargo, el algoritmo


de BerlekampMassey encuentra en este caso una recurrencia
v
X
Ej = k Ejk , j = v, . . . , 2t 1
k=1

con v > t.
La idea bsica del algoritmo es la de hallar, en cada etapa r 1, la
recurrencia ((r) (x), Lr ) de longitud mnima que produce los r primeros
trminos de la secuencia E. As pues,
Lr
X (r)
Ej = k Ejk , j = Lr , . . . , r 1.
k=1

La discrepancia o diferencia entre Er y el trmino r + 1 producido por


((r) (x), Lr ) es
Lr
! Lr
X (r)
X (r)
r = E r k Ejk = k Erk .
k=1 k=0

Si r = 0, es obvio que la recurrencia en la siguiente etapa es la misma

((r+1) (x), Lr+1 ) = ((r) (x), Lr ).

Pero, en general, r 6= 0.
Para plantear el algoritmo con una notacin conveniente, obsrvese que
la recurrencia se puede escribir de manera equivalente como

(r) (x)E(x) = p(r) (x) + xr g (r) (x)

con p(r) (x) un polinomio de grado menor que Lr , de manera que en esta
expresin los coeficientes de (r) (x)E(x) sean nulos para los ndices j =
Lr , . . . , r 1.
El teorema siguiente establece los clculos de la iteracin fundamental.

Teorema 11.28. Si se cumple que la recurrencia ((r) (x), Lr ) produce la


secuencia (E0 , . . . , Er2 ) pero no (E0 , . . . , Er1 ), y para algn m < r la
recurrencia ((m) (x), Lm ) produce (E0 , . . . , Em2 ) pero no (E0 , . . . , Em1 ),
entonces

((x), L) = ((r) (x) 1


m r x
rm (m)
ax{Lr , Lm + r m})
(x), m

produce (E0 , . . . , Er1 ).


C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 395

Demostracin. Sean E (r) (x), E (m) (x) los polinomios correspondientes a


las secuencias (E0 , . . . , Er1 ), (E0 , . . . , Em1 ). Por las hiptesis del teorema
se puede escribir que

(r) (x)E (r) (x) = p(r) (x) + r xr + xr+1 g (r+1) (x), grado(p(r) (x)) < Lr ,
(m) (x)E (m) (x) = p(m) (x) + m xm + xm+1 g (m+1) (x),
grado(p(m) (x)) < Lm < Lr .

r y m son distintos de cero, y los polinomios g (r+1) (x), g (m+1) (x) no


presentan inters alguno. Si se multiplica (m) (x) por E (r) (x), aparecen
nuevos monomios de grado mayor que m, de modo que simplemente se
tiene
(m) (x)E (r) (x) = p(m) (x) + m xm + xm+1 g (m+1) (x),
con grado(p(m) (x)) < Lm y para un g (m+1) (x) diferente.
Luego, operando miembro a miembro
   
(r) r rm (m) (r) (r) r rm (m)
(x) x (x) E (x) = p (x) x p (x) +
m m
 
r
r m xr + xr+1 [. . . ].
m
Pero esta ecuacin tiene la forma

(x)E (r) (x) = p(x) + xr+1 g(x)

con grado((x)) m ax{Lr , Lm + r m} y grado(p(x)) < max{Lr , Lm +


r m}. En consecuencia, ((x), m ax{Lr , Lm + r m}) es una recurrencia
que genera (E0 , . . . , Er1 ).

En general, existir ms de una iteracin previa m < r con m 6= 0, y el


teorema anterior no permite especificar una eleccin. El siguiente resultado
muestra que la iteracin ms reciente con m 6= 0 es la que produce la
recurrencia de longitud mnima.

Teorema 11.29 (BerlekampMassey). Sea En = (E0 , . . . , En1 ) y sea


L(En1 ) = L. Si ((x), L) produce En1 pero no En , entonces L(En ) =
ax{L, n L}.
m

Demostracin. Por el teorema de Massey, es suficiente con demostrar que


L(En ) m
ax{L, n L}. Sea 0n1 la secuencia compuesta por n 1 ceros.
Tenemos entonces dos casos

a) En1 = 0n1 y En = 0n1 , con 6= 0. El resultado es inmediato.


396 Cdigos ReedSolomon

b) El caso En1 6= 0n1 se demuestra por induccin. Sea m tal que


L(Em1 ) < L(Em ) = L(En1 ). La hiptesis de induccin consiste en
que L(En1 ) = m L(Em1 ) = m Lm1 . En virtud del teorema
anterior,
L(En ) m
ax{L, Lm1 + n m}
ax{L(En1 ), n L(En1 )} = m
= m ax{n L, L}.

Teorema 11.30 (Algoritmo de BerlekampMassey). Supngase que


S1 , S2 , . . . , S2t son elementos dados de un cuerpo cualquiera. Con las con-
diciones iniciales (0) (x) = 1, B (0) (x) = 1 y L0 = 0, el algoritmo siguiente
calcula el polinomio (2t) (x):
n1
X (r1)
r = j Srj
j=0

Lr = r (r Lr1 ) + (1 r )Lr1
 (r)     (r1) 
(x) 1 r x (x)
= , r = 1, . . . , 2t.
B (r) (x) 1
r r (1 r )x B (r1) (x)

en donde r = 1 si r 6= 0 y 2Lr1 r 1, y r = 0 en otro caso. (2t) (x)


(2t)
es el polinomio de grado mnimo con 0 = 1 que satisface
n1
X (2t)
Sr + j Srj = 0, r = L2t , . . . , 2t 1.
j=1

En la forma compacta de este teorema, r = 0 slo cuando r = 0, y


en ese caso debe entenderse que 1 r r = 0. En el algoritmo, el polinomio
B (r) (x) vale 1
m x rm (m)
(x). Si r = 1, B
(r)
(x) se sustituye por (r) (x);
(r)
y si r = 0, B (x) se multiplica por x.
Tal como se ha presentado, el algoritmo es vlido para cualquier cuerpo
(finito o no). En el caso especial de los cdigos binarios ocurre una simplifi-
cacin: como las magnitudes de error son conocidas, es suficiente con hallar
el polinomio localizador, ya que eil = 1 para l = 1, . . . , s. Pero con el algo-
ritmo de BerlekampMassey ocurre otra simplificacin adicional: r = 0 en
todas las iteraciones de ndice r par.

Teorema 11.31. En 2 , para cualquier polinomio de conexin (x) y cual-


quier secuencia de elementos S1 , . . . , S2t1 en la que S2j = Sj2 para 2j
2v 1, supngase
n1
X
Sj = j Sji , j = v, . . . , 2v 1.
k=1
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 397

Entonces, el valor siguiente que esta recurrencia produce cumple S 2v = Sv2 .

Demostracin. Sea v un vector de un cdigo binario. En consecuencia


 2
S2j = v 2j = v(j ) = Sj2 .

El teorema quedar demostrado si se hallan expresiones idnticas para S2v


y Sv2 . As, en primer lugar

n1
!2 n1 n1
X X X
Sv2 = i Svi = 2i Svi
2
= 2i S2v2i .
i=1 i=1 i=1

Y
n1
X n1
X n1
X
S2v = k S2vk = k i S2vki .
k=1 k=1 i=1

En esta suma doble, los trminos con i 6= k aparecen dos veces, por simetra,
y en 2 ambos suman cero. Por lo tanto, a la suma slo contribuyen los
trminos con i = k, y
n1
X
S2v = 2k S2v2k .
k=1

La aplicacin de este corolario es inmediata. Puesto que r = 0 en las


iteraciones pares, es posible combinarlas de dos en dos y tener, para r impar,
 (r)     (r2) 
(x) 1 r x2 (x)
= .
B (r) (x) 1
r r (1 r )x 2
B (r2)
(x)

De este modo, la complejidad del algoritmo de BerlekampMassey para


cdigos binarios es slo la mitad, aproximadamente.
CAPTULO 12

Cdigos convolucionales

El presente captulo se ocupa de la clase de cdigos convolucionales.


Esencialmente, los convolucionales son cdigos lineales con memoria. Pero
aunque conservan como aspecto fundamental la linealidad, la estructura
matemtica de los cdigos convolucionales es muy distinta a la de los cdigos
de bloques algebraicos.
En concreto, mientras que el proceso de codificacin en los cdigos de
bloques lineales consiste en una asignacin lineal de palabras del cdigo
de longitud fija a cada grupo de smbolos de una longitud dada, en los
cdigos convolucionales la generacin de la redundancia se realiza con un
proceso ms general: la secuencia del cdigo es la respuesta de un sistema
lineal e invariante en el tiempo a la secuencia completa de smbolos del
mensaje. Los cdigos convolucionales (introducidos en 1955 por P. Elias y
presentados de nuevo en 1959 por D. W. Hagelbarger bajo el nombre de
cdigos recurrentes) son conceptualmente simples y poseen, en la mayora
de los casos, una capacidad de control de errores tan buena o mejor, a igual
tasa de codificacin, que la de los cdigos de bloques; por contra, presentan
una estructura matemtica menos simple que la de stos ltimos, y eso
explica que sea ms difcil analizar con exactitud sus prestaciones, as como
que slo se hayan podido determinar hasta la fecha unos pocos criterios
empricos de diseo.
Desde el hallazgo de un algoritmo ptimo y eficiente de decodificacin (el
algoritmo de Viterbi), los cdigos convolucionales comenzaron a ser amplia-
mente aplicados a la construccin de sistemas de comunicaciones digitales.
Encuentran utilidad, sobre todo, en canales con fuertes limitaciones de an-
cho de banda (por ejemplo, en la transmisin de datos a travs de una lnea
telefnica, en ciertos sistemas de comunicaciones por satlite o en redes de

399
400 Cdigos convolucionales

telefona mvil digital) porque, cuando se combinan con tcnicas de modu-


lacin digital apropiadas, consiguen un notable incremento de la fiabilidad
del canal sin el coste de aumentar el ancho de banda de la seal modula-
da. El uso integrado de cdigos convolucionales y modulaciones digitales se
conoce como modulacin trellis, y ha demostrado ser uno de los avances
ms significativos en la aplicacin de las tcnicas de codificacin de canal
durante la dcada de los ochenta.
En este captulo se comienza por definir la clase de codificadores convo-
lucionales y se desarrollan despus ciertas tcnicas grficas para aprehender
su estructura dinmica, as como tcnicas analticas para investigar sus pro-
piedades de correccin de errores. A continuacin, se deduce el algoritmo de
decodificacin ptimo ML y se presenta una realizacin eficiente del mismo,
con un orden de complejidad igual al nmero de estados del codificador. El
captulo termina con un estudio de la probabilidad de error residual sobre
un canal discreto ruidoso.

12.1. Definicin

Sea u0 , u1 , . . . una secuencia de bloques de k smbolos del cuerpo


q = GF(q). Un codificador convolucional [n, k] sobre q es un mtodo
de transformar linealmente cada k-tupla uj en una n-tupla xj de smbolos
de q de tal forma que xj sea dependiente de uj , uj1 , . . . , ujm , . . . ; por
consiguiente, la respuesta de un codificador convolucional es funcin tanto
de los smbolos del bloque actual presentes en la entrada como de cierto
nmero de smbolos de los bloques anteriores, siendo stos ltimos los que
determinan en conjunto el estado o memoria del codificador. Tal estado
interno del codificador, que adopta siempre valores de un conjunto finito,
puede depender slo de un nmero finito de bloques anteriores, es decir,
slo de uj1 , . . . , ujm para algn m 1 fijo; o bien de toda la secuencia
de entradas previas, es decir, de ui , para cualquier i < j.
Dada esta forma de proceder, es claro que los smbolos de uj afec-
tan no slo a la n-tupla de salida xj , sino tambin a las m siguientes,
xj+1 , . . . , xj+m , . . . , en donde no hay por qu suponer m finito. Este gra-
do aadido de redundancia, inexistente en los cdigos de bloques y mayor
a medida que la memoria m aumenta, es justamente el que hace posible
la construccin de cdigos robustos (con baja probabilidad de error si la
memoria es grande).
He aqu una definicin genrica formal de un codificador convolucional.

Definicin 12.1. Un codificador convolucional C[n, k], con alfabeto de co-


dificacin q , es una mquina de estados finita con entradas u qk y
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 401



  
* + 

  !#"%$&'"()) $&


Figura 12.1. Esquema conceptual de un codificador convolucional.

n +
salidas x q , en la que en cada instante de tiempo t = 0, 1, . . . (t ):

a) el prximo estado del codificador es una combinacin lineal del estado


y la entrada actuales;
b) los smbolos de salida son combinacin lineal del estado y las entradas
actuales.

En un instante arbitrario de tiempo t, el modelo dinmico de variables


de estado de un codificador convolucional responde entonces al par de ecua-
ciones lineales

st+1 = ut A + st B (12.1)
xt = u t C + s t D (12.2)

siendo ut el vector de entrada en el instante t, xt el vector de salida en t y


st el vector de variables de estado en t (con dimensin M , por ejemplo); y
siendo A una matriz k M , B una matriz M M , C una matriz k n y
D una matriz M n, todas ellas con elementos de q . El parmetro M , la
dimensin del vector de estado, se denomina grado del codificador.

Definicin 12.2. El conjunto de todas las secuencias posibles de smbolos


de salida de un codificador convolucional es un cdigo convolucional.

Por decirlo de un modo equivalente: un codificador convolucional es un


sistema lineal discreto invariante en el tiempo; un dispositivo que transforma
linealmente una secuencia de vectores de dimensin k, u0 , u1 , . . . , en una
secuencia del cdigo de vectores1 de dimensin n, x0 , x1 , . . . , ambas sobre
1 Cabe, pues, definir un codificador convolucional como un operador lineal
k n
L : F( q ) F ( q )
a + b (a + b)L = aL + bL

entre el espacio funcional de las sucesiones de vectores de k y el espacio de las sucesiones


q
402 Cdigos convolucionales

el alfabeto q.

En la teora de sistemas lineales discretos, la relacin matemtica entre


secuencias de entrada y de salida se expresa de un modo ms adecuado no
en el dominio del tiempo sino en el dominio transformado-D. Dada una
sucesin s0 , s1 , . . . de smbolos de q , diremos que la expresin formal

X
s(D) = st D t
t=0

es su transformada-D.2 La suma de transformadas-D se define como



X
x(D) + y(D) = (xt + yt )Dt (12.3)
t=0

y el producto como
t
!
X X
x(D) y(D) = xi yti Dt , (12.4)
t=0 i=0

es decir, de manera anloga a como si los operandos fuesen polinomios


en la variable D. La transformada-D de una secuencia de vectores de qn ,
{st : t 0}, se puede definir entonces formalmente como

X
s(D) = st D t ,
t=0

expresin que debe entenderse como el vector cuyos elementos son las trans-
formadas-D de cada una de las n componentes de la secuencia {st : t 0}.
La suma de transformadas-D de dos sucesiones de vectores se define ahora
de la manera usual a partir de la operacin de suma de vectores

X
x(D) + y(D) = (xt + yt )Dt .
t=0

Multiplicando ambos miembros de las ecuaciones de estado (12.1)-(12.2)


de vectores de qn .
2 Esta transformada es una mera operacin formal en la que D admite el significado

de un operador de retardo. No se debe confundir D con una variable compleja como la


que aparece en otras transformaciones en el mbito del tratamiento de seales, como en
la transformada-z.
Por otra parte, resulta elemental ver que la transformada-D es una operacin invertible,
ya que la sucesin de smbolos son los coeficientes de la expansin nica en serie de
potencias de la funcin transformada.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 403

por Dt y sumando para todo t 0, se tiene


X X X
st+1 Dt = ut D t A + st D t B (12.5)
t0 t0 t0
X X X
xt D t = ut D t C + st Dt D. (12.6)
t0 t0 t0

Las expresiones
X X X
s(D) = si D i , u(D) = ui D i , x(D) = xi D i
i0 i0 i0

son, respectivamente, las transformadas-D de la secuencia de vectores de


estado, de la secuencia de vectores de entrada y de la secuencia de vectores
de salida. Por lo tanto, suponiendo que s0 = 0, las ecuaciones (12.5)-(12.6)
equivalen a

s(D)D1 = u(D)A + s(D)B


x(D) = u(D)C + s(D)D.

Despejando en ambas obtendremos expresiones explcitas para las transfor-


madas s(D) y x(D):

s(D) = u(D)(A(D 1 IM B)1 ) = u(D)E(D)


x(D) = u(D)(C + E(D)D) = u(D)G(D)

en funcin de las matrices E(D)kM y G(D)kn y la matriz identidad


IM . La matriz G(D) depende nicamente de la cuaterna (A, B, C, D), pe-
ro, en principio, nada impide que existan muchos conjuntos de matrices
(A, B, C, D) que den origen a la misma matriz transformada G(D).
En cualquier caso, la transformada de una secuencia del cdigo satisface
la ecuacin funcional
x(D) = u(D)G(D), (12.7)
en la que u(D) identifica a una secuencia posible de mensajes y x(D) a una
secuencia del cdigo particular. As pues, la matriz G(D) define un codifica-
dor convolucional, puesto que establece, en el seno del dominio transformado
D, la accin de ste sobre cualquier secuencia de smbolos de entrada. Por
esta razn se llama a G(D) matriz generadora del cdigo convolucional.
Cada uno de los elementos de los vectores x(D), u(D) y de la matriz
generadora G(D) es una serie causal de potencias en la variable P
D con coe-
ficientes en el cuerpo base q , o sea, una expresin de la forma i0 ai Di ,
con ai q . El conjunto de todas estas expresiones formales constituye un
404 Cdigos convolucionales

dominio de integridad conmutativo3 con las operaciones usuales de suma y


producto de polinomios en la indeterminada D (las operaciones que definen
las ecuaciones (12.3)-(12.4)), dominio que obviamente contiene a q y que
adems se puede ampliar P fcilmente a un cuerpo q (D) considerando las se-
ries formales de Laurent im ai Di para un entero m arbitrario, positivo,
negativo o nulo. Pero q (D) es un conjunto excesivamente amplio: contiene
funciones transformadas que no son realizables por ningn codificador con-
volucional ya que, por definicin, la matriz generadora G(D) se compone de
funciones racionales y toda funcin racional admite una expansin en serie
ilimitada con una parte peridica. El subconjunto de q (D) constituido por
todas aquellas series formales que s admiten una representacin racional,
esto es, que son expresables como cociente de dos polinomios p(D)/q(D),
q(D) 6= 0, es un subcuerpo de q (D), que representaremos por q [D]. Por
lo tanto, en virtud de la ecuacin (12.7), los espacios lineales de vectores y
de matrices con elementos en q [D] son el lgebra que describe los cdigos
convolucionales; y de hecho se puede definir sin ms un cdigo convolucional
como un subespacio lineal de ( q [D])n .
Puesto que los elementos de la matriz generadora son funciones racio-
nales en D, cualquier operacin elemental con las filas de G(D) (permutar
dos de ellas, multiplicar o dividir una cualquiera por un polinomio no nu-
lo) produce una matriz equivalente que genera el mismo cdigo. Es as que
cualquier cdigo convolucional admite siempre una matriz generadora cu-
yos elementos son polinomios en D, que se obtiene sin ms que multiplicar
cada fila de G(D) por el mnimo comn mltiplo de los denominadores de
los elementos de esa fila. Recprocamente, dada una matriz G(D) formada
por funciones racionales en D, existe una matriz G0 (D) equivalente a ella
formada por elementos causales en D (esto es, cuyos elementos son series
causales). De acuerdo con un teorema general de la teora de sistemas li-
neales, existe para G0 (D) una realizacin del modelo de variables de estado,
es decir, G(D) corresponde a un cierto codificador convolucional. As, se
concluye que el estudio de los codificadores convolucionales es equivalente
al estudio de las matrices G(D). Esa teora algebraica, que sienta un marco
formal riguroso para la comprensin de las propiedades estructurales de los
cdigos convolucionales, es una contribucin original de G. D. Forney y se
desarrolla ampliamente en [20, 22, 23] y en [53, cap. 11].
Desde un punto de vista prctico, una realizacin de un codificador con-
volucional es cualquier mecanismo material o lgico que reproduzca las ope-
raciones (12.1)-(12.2). Fsicamente, suele consistir en un circuito aritmtico
formado a partir de componentes sumadores, multiplicadores (innecesarios
en el caso binario) y elementos de memoria en q .

3 Undominio de integridad conmutativo es un anillo conmutativo sin divisores de cero;


por ejemplo, el conjunto de los nmeros enteros.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 405





     

Figura 12.2. Codificador convolucional G(D) = (1+D 1+D 2 1+D3 )


del ejemplo 12.1.

Ejemplo 12.1. Considrese el codificador convolucional binario [3, 1] de


grado 3 que responde a las ecuaciones de estado

0 1 0  1 0 0 
st+1 = st 0 0 1 + ut 1 0 0 ; xt = st 0 1 0 + ut 1 1 1 .
0 0 0 0 0 1
Si en ellas se elimina la dependencia explcita del vector de estado, las
ecuaciones de los smbolos de salida en el instante t 0 son:
(1)
xt = ut + ut1
(2)
xt = ut + ut2
(3)
xt = ut + ut3 .

Se ha representado en la figura 12.2 el esquema de una realizacin fsica


de las mismas. El circuito slo precisa un registro de memoria para conte-
ner los 3 smbolos anteriores de entrada. De acuerdo con las ecuaciones de
generacin que se acaban de escribir, la matriz generadora de este cdigo es

G(D) = 1 + D 1 + D2 1 + D3 .
El grado del codificador se puede reducir tomando la matriz generadora
equivalente
1 
G0 (D) = G(D) = 1 1 + D 1 + D + D2 .
1+D
De vuelta al dominio del tiempo, las ecuaciones de entradasalida del codi-
ficador dado por G0 (D) son
(1)
xt = ut
(2)
xt = ut + ut1
(3)
xt = ut + ut1 + ut2
y la figura 12.3 muestra el esquema de un circuito de codificacin para
G0 (D), ahora con grado 2. Observe que ambas realizaciones del codificador,
406 Cdigos convolucionales






   

Figura 12.3. Codificador convolucional G0 (D) = (1 1+D 1+D+D 2 ).

las de las figuras 12.2 y 12.3, son no recurrentes (no poseen conexiones
por realimentacin), siendo condicin necesaria y suficiente para ello que
su matriz generadora sea polinmica. Cuando un codificador [n, 1] es no
recurrente, el grado es el nmero mximo de smbolos futuros de cada una
de las salidas que se ven afectados por un smbolo a la entrada.
Observe adems que, con la segunda realizacin, el primer bit a la salida
es una copia del de la entrada. En general, un codificador [n, k] en el que,
en cada instante de tiempo, k smbolos de salida son una rplica de los de
entrada se denomina sistemtico, y su matriz generadora es sistemtica; y
es obvio que, salvo por permutacin de alguna de sus columnas, una matriz
sistemtica admitir la forma

G(D) = Ikk Q(D)knk

en donde Q(D) es una matriz cuyos elementos son funciones racionales en


la indeterminada D.

De entre todos los posibles codificadores de un mismo cdigo convolu-


cional, los que admiten una realizacin ms simple son los no recurrentes
con menor nmero de variables de estado.4 Sus matrices generadoras son
las matrices cannicas.

Definicin 12.3 (Grado externo). Se llama grado del vector de poli-


nomios (x1 (D), x2 (D), . . . , xn (D)) en la indeterminada D al mximo de los
grados de sus elementos. El grado externo de la matriz de polinomios G(D)
es la suma de los grados de cada una de sus filas.

Definicin 12.4 (Matriz cannica). Una matriz polinmica G(D) es ca-


nnica si tiene el menor grado externo entre todas las matrices polinmicas
generadoras del mismo cdigo convolucional que ella.
4 Se toma como medida de la complejidad de un codificador convolucional el nmero

de elementos de memoria que precisa. Adems de las matrices cannicas, las matrices
generadoras sistemticas tambin son mnimas pero, en general, recurrentes.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 407

Todo cdigo convolucional posee al menos una matriz generadora canni-


ca. Enunciado en un lenguaje matemtico ms general: cualquier subespacio
de ( q [D])n , el conjunto de vectores de funciones racionales en D, posee una
base compuesta por polinomios cuyos grados suman una cantidad mnima.
Este resultado, debido a G. D. Forney [23], posee importantes aplicaciones
en campos como la teora general de sistemas o la teora de autmatas finitos
y guarda ntima relacin con algunos problemas algebraicos clsicos.
En el ejemplo 12.1, (1 1 + D 1 + D + D 2 ) es una matriz polinmica,
cannica y sistemtica de grado externo 2. Al haber un solo smbolo de
entrada, el grado externo es tambin el grado del codificador. Es preciso
sealar que, en un caso general, un cdigo convolucional puede tener varias
matrices generadoras cannicas. Se puede probar, sin embargo, que en todas
ellas el conjunto de los grados externos de sus filas es invariante.
La relacin entre los cdigos convolucionales y los cdigos de bloques
lineales quedar un poco ms clara si se presenta una caracterizacin de
los primeros en el dominio del tiempo. Sin menoscabo alguno de la genera-
lidad del planteamiento, supngase, por conveniencia, que la memoria del
codificador son los m bloques previos al bloque actual de entrada

st = (ut1 , ut2 , . . . , utm )

y que el estado inicial es el estado nulo s0 = (0, . . . , 0).


En tal caso, la familia de ecuaciones

xt = ut C + st D, t0

se simplifica a una relacin lineal entre la secuencia (infinita) de vectores de


entrada u = (u0 , u1 , . . . ) y la secuencia cdigo x = (x0 , x1 , . . . ):

x =uG (12.8)

para una cierta matriz G semiinfinita con la estructura



G0 G1 G2 ... Gm
G0 G1 . . . Gm1 Gm

G= G0 . . . Gm2 Gm1 Gm .

.. .. .. ..
. . . .

A la vista de (12.8), y por analoga con los cdigos de bloques, tambin


se suele denominar a G matriz generadora del cdigo convolucional en el
(h)
dominio del tiempo. En ella, Gh = [gij ], para h = 0, . . . , m, son matrices de
dimensiones k n con elementos en el cuerpo q ; G0 y Gm son matrices no
(h)
nulas; y todos los bloques de G que no se indican valen 0. El elemento gij
408 Cdigos convolucionales

de la matriz Gh es distinto de cero si y solamente si el j-simo smbolo de


salida en el instante de tiempo t depende del i-simo smbolo de entrada en
el instante de tiempo t h. As pues, si la entrada al codificador en reposo
es el vector unitario ei con un uno en la coordenada i-sima, su secuencia
de smbolos de salida ser

(0) (m)
gi1 . . . gi1

. . . . . . . . . . . . . . .
(0) (m)
gin . . . gin

en donde las filas refieren cada una de las componentes de la salida y las
columnas representan instantes de tiempo. Escribiendo la ecuacin matri-
cial (12.8) en forma explcita, el smbolo 1 j n de salida en el instante
de tiempo t 0 se calcula como

m X
X k
(j) (i) (h)
xt = uth gij .
h=0 i=1

O bien, en notacin vectorial, como


m
X
xt = uth Gh
h=0

que es, por supuesto, la operacin de convolucin que da nombre a esta clase
de cdigos.
G muestra una evidente estructura repetitiva, pues cada bloque de k filas
son las k anteriores desplazadas n columnas hacia la derecha. Por convenio,
se dice que la matriz de dimensiones finitas

G0 G1 . . . Gm

que, junto con el par [n, k], identifica inequvocamente a G, es el patrn


generador del cdigo.
La semejanza estructural entre la matriz G y la matriz generadora de un
cdigo cclico no es casual: un cdigo cclico binario [n, k] puede verse como
un cdigo convolucional con un bit de entrada, un bit de salida y grado
n k, en el que la secuencia de salida se genera aadiendo, en la entrada,
n k ceros tras cada grupo de k smbolos consecutivos.
Por sencillez, en el resto del captulo se tratar slo con cdigos convolu-
cionales binarios. Cuando se precise especificar que disponen de k smbolos
de entrada, n de salida y grado m, se har con la notacin C[n, k, m].
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 409
 
 

   

 



 

Figura 12.4. Codificador convolucional G(D) = (1 + D + D 2 , 1 + D2 )


(ejemplo 12.2).

 

   

 

Figura 12.5. Esquema del codificador convolucional [2, 1] con matriz


generadora G0 (D) = (1 (1 + D 2 )/(1 + D + D 2 )).

Ejemplo 12.2. Las ecuaciones de estado que corresponden al codificador


convolucional binario [2, 1] de matriz generadora

G(D) = 1 + D + D2 1 + D2
son las siguientes:
st+1 = (ut , ut1 )
xt = (ut + ut1 + ut2 , ut + ut2 ).
El grado de este codificador es obviamente 2 y el esquema del mismo es el
de la figura 12.4.
Dividiendo las entradas de G(D) por 1 + D + D 2 resulta la matriz equi-
valente sistemtica
 
2
0
G (D) = 1 1 + D
1 + D + D2
cuya realizacin fsica (figura 12.5) tiene como antes grado 2, pero memoria
infinita; en efecto, el segundo bit de salida depende de un nmero ilimitado
de bits de entrada anteriores. Vemoslo explcitamente: las ecuaciones de
estado son, en este caso,
(1) (2) (1)
st+1 = (ut + st + st , st )
(1)
xt = (ut , ut + st ).
410 Cdigos convolucionales




   




Figura 12.6. Esquema del codificador con matriz generadora catas-


trfica G00 (D) = (1 + D 3 1 + D + D2 + D3 ).

(1)
Si en este sistema intentamos eliminar st en la segunda identidad utilizan-
do para ello la identidad primera, resultara
xt+1 = (ut , ut + ut1 + ut2 + )
que muestra que xt est afectado por entradas arbitrariamente distantes en
el pasado. Por lo tanto, la memoria infinita es una caracterstica del codifi-
cador elegido, no del cdigo convolucional. Como es obvio, los codificadores
asociados a matrices generadoras polinmicas tienen siempre memoria fi-
nita. Pero aun dentro de la clase de matrices generadoras polinmicas, no
todas son igual de convenientes. Por ejemplo, si se multiplica G(D) por
1 + D se obtiene la matriz

G00 (D) = 1 + D3 1 + D + D2 + D3
cuyo codificador asociado aparece en la figura 12.6. Si suponemos la secuen-
cia de entrada
1
u(D) = 1 + D + D2 + D3 + =
1+D
o lo que es igual, el mensaje compuesto por una secuencia ilimitada de unos,
entonces la secuencia del cdigo que le asignara el codificador G00 (D) sera
1 
x(D) = u(D)G00 (D) = G00 (D) = 1 + D + D2 1 + D2 .
1+D
Ahora bien, x(D) tiene peso Hamming 5; luego la regla de transformacin
elegida asigna a algunas secuencias de entrada de peso Hamming infinito
secuencias de salida con un nmero finito de smbolos no nulos. Esto significa
que existen secuencias del cdigo que, difiriendo entre s en un nmero finito
de smbolos, han sido generadas por secuencias de entrada que difieren en un
nmero infinito de posiciones. De ocurrir esta circunstancia, el decodificador
podra asignar a vectores de error con peso Hamming finito una estimacin
de un nmero infinito de errores en la secuencia transmitida, algo claramente
desaconsejable. Como habr ocasin de ver posteriormente, el problema es
que G00 (D) no posee una matriz pseudoinversa polinmica, sino racional:
 t
1 1
G00 (D) = 1.
D + D2 D + D2
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 411

Por esta razn, a los codificadores en que es posible que secuencias de


entrada de peso infinito den secuencias de salida con peso finito se los co-
noce como catastrficos. Es muy importante observar que no tiene sentido
hablar de cdigos convolucionales catastrficos, sino slo de codificadores
catastrficos. Esto es, no se debe identificar jams un cdigo convolucional
(que no es ms que un conjunto de secuencias del cdigo) con un codificador
convolucional (que es una asignacin particular entre secuencias del cdigo
y mensajes).

12.2. Representacin reticular de un cdigo


convolucional

Un cdigo (de bloques o convolucional) se puede representar por medio


de un grafo dirigido etiquetado en el que cada camino se corresponde con
una palabra del cdigo. Este grafo surge de manera natural al considerar una
realizacin de espacio de estados para el proceso de codificacin y adopta
a menudo una forma reticular5 que pone claramente de manifiesto algunas
de las caractersticas estructurales del cdigo aparte de la linealidad. La
regularidad de esta represantacin grfica permite, por ejemplo, desarrollar
algoritmos de decodificacin eficientes.
En el caso de los cdigos convolucionales, el diagrama es una represen-
tacin grfica de la evolucin dinmica de una mquina de estados finita.
Consiste en representar su diagrama de estados y transiciones, extendido en
el tiempo, por medio un grafo dirigido cuyos caminos sealan las posibles
secuencias de estados que puede atravesar el sistema, as como los smbolos
de entrada y de salida asociados a esos cambios de estado. La conveniente
sugerencia de representar las caractersticas de un cdigo convolucional a
travs de un diagrama reticular se debe tambin a G. D. Forney. Y si bien
una retcula es una representacin sobreabundante del cdigo, resultar de
gran utilidad ms adelante para comprender el proceso de decodificacin.
Supngase que C es un codificador convolucional binario [n, k] con grado
m. En los trminos a los que remite la definicin 12.1, C es el autmata
finito (, Lk , Ln , , ). En esta quntupla, denota el espacio de estados
5 En ingls, el trmino con el que se nombra a este diagrama es trellis, que nosotros

hemos preferido traducir por retcula por la siguiente razn: los nodos de un diagrama
trellis de un cdigo convolucional se pueden poner en biyeccin con un subconjunto de
los puntos de una retcula bidimensional
+
R = {1 e1 + 2 e2 : 1 , 2 }

en donde e1 = (0, 1) y e2 = (1, 0) son la base cannica de IR2 . R es un subgrupo aditivo


de IR2 . Conway [13] trata extensamente la teora de los cdigos definidos sobre grafos.
412 Cdigos convolucionales

del codificador, siendo el estado el conjunto de smbolos almacenados en los


m elementos de memoria del dispositivo. Naturalmente = 2m , el conjunto
de todas las secuencias binarias de longitud m. Los conjuntos Lk = 2k y
Ln = 2n son, respectivamente, el alfabeto de entrada y el alfabeto de salida
del codificador.
Cuando, en el instante de tiempo t, el estado del sistema es st y la
entrada es ut Lk , la dinmica del codificador est gobernada por y ,
que son las dos funciones que caracterizan a cualquier autmata:

a) es la funcin de transicin entre estados,


: Lk
(ut , st ) st+1
que indica el estado al que pasar el dispositivo tras introducir las
entradas ut en su memoria. Note, en consecuencia, que si la entrada
es aleatoria entonces la secuencia de estados {st }t0 es un proceso de
Markov de tiempo discreto con espacio de estados tambin discreto
(una cadena de Markov y que si la secuencia de entrada es estacionaria,
la secuencia de estados {st }t0 es una cadena de Markov homognea.
Por otra parte, cuando entre los elementos de memoria no existan
conexiones por realimentacin, algunos de los smbolos de entrada,
posiblemente todos, entrarn directamente a los elementos de memoria
del codificador, es decir, si
(1) (2) (k)
st = (s1 , s2 , . . . , sm ), ut = (ut , ut , . . . , ut )
entonces
(1) (j)
st+1 = (ut , st ) = (ut , . . . , ut , s1 , . . . , smj ), 0 < j k.

b) es la funcin de salida,
: Lk Ln
(ut , st ) xt
que determina los smbolos de salida correspondientes la entrada ut
cuando el estado es st ; como un cdigo convolucional admite un patrn
generador lineal, entonces

xt = (ut , st )
Xm m
X
= uth Gh = ut G0 + uth Gh
h=0 h=1
= ut G0 + f (st ).
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 413

Las funciones de transicin y salida son invariantes en el tiempo (no depen-


den del ndice temporal t).
En lo sucesivo, se seguir siempre el convenio de suponer que un codi-
ficador convolucional comienza en el estado inicial 0 = (0, 0, . . . , 0) en el
instante t = 0. En cualquier otro instante t, el codificador se encuentra en
un estado st de entre un conjunto finito de estados permitidos. En el diagra-
ma reticular asociado al codificador, un estado st permitido en el instante
t se representa como un nodo de un grafo, y se etiqueta si es necesario con
la secuencia de m smbolos que identifican al vector de variables de estado.
El conjunto de nodos (estados) posibles en el tiempo t conforman la etapa
t del diagrama reticular, Nt .
Ante la entrada ut , el codificador realiza un cambio de estado o transicin
instantnea desde el estado st al estado st+1 = (ut , st ), transicin que en
el diagrama reticular se representa como un arco dirigido desde el nodo st
en la etapa t al nodo st+1 en la etapa t + 1. Toda transicin se marca con el
par de valores (ut , xt = (ut , st )), es decir, con los smbolos de entrada que
originan la transicin y con los smbolos de salida que produce el codificador.
El arco o rama de una transicin (st , st+1 ) es un arco de salida del estado
st e incidente o de entrada en el estado st+1 . Dado un arco a = (st , st+1 , e),
en donde e es su etiqueta, el nodo para el cual a es incidente se representar
habitualmente por a; y aqul para el que a es una rama de salida, por a.
Dos nodos conectados por una transicin son adyacentes. Los smbolos de
salida xt se emiten instantneamente durante la transicin (st , st+1 ).
Un camino en la representacin reticular entre los estados st y st0 , para
t < t0 , es cualquier secuencia ordenada de nodos adyacentes con comienzo
en el nodo st y final en st0 . Un camino p queda completamente determinado
si se dan el estado inicial y la secuencia de t0 t entradas asociadas a las
transiciones del camino, o lo que es igual, si se especifica su secuencia de
arcos etiquetados: p = a1 a2 an .
Como se ha explicado, a cada camino del grafo reticular se le asigna
adems la secuencia ordenada de smbolos de salida de cada transicin que
lo constituye, de manera que los caminos de la retcula definen las secuencias
de salida vlidas del codificador (el cdigo). La siguiente definicin resume
las caractersticas fundamentales de los diagramas reticulares.

Definicin 12.5 (Diagrama reticular). Un diagrama reticular o ret-


cula es un grafo T = (N , A, E) dirigido, acclico y etiquetado, cuyo conjunto
de nodos N admite una particin (finita o numerable)

N = N 0 N1 N2 . . .

tal que (n, n0 , e) A i : n Ni , n0 Ni+1 , e E y para todo i cualquier


nodo de N0 Ni pertenece al menos a un camino con origen en algn
414 Cdigos convolucionales
 

      "! #$


 

Figura 12.7. Elementos de un diagrama reticular.

nodo de N0 y final en alguno de Ni .

Lo sustancial, por tanto, es que un nodo de una retcula puede ser orde-
nado segn el nmero de arcos en cualquier camino desde un nodo raz en
N0 hasta l. Los caminos formados por i arcos finalizan en algn nodo de
Ni , y Ni se denomina etapa i de la retcula. El alfabeto de etiquetas E de los
arcos es totalmente arbitrario y depende slo del dominio de aplicacin. En
el caso de la teora de cdigos, E es el alfabeto de codificacin y se dir que
la retcula T representa al cdigo C si el conjunto formado por las secuencias
de etiquetas de los caminos de T es C.
En una retcula deducida de un codificador convolucional C[n, k, m] hay
naturalmente un nico nodo en la etapa inicial N0 = {0}, el correspondiente
al vector de estado nulo en el codificador. Los nodos de la etapa i representan
los estados internos a los que es posible llegar en el instante de tiempo i,
y cualquier nodo posee 2k arcos de salida; asimismo, en cualquier nodo de
una etapa t > m convergen 2k arcos provenientes de nodos de la etapa t 1.
La etiqueta asociada a un arco a es (a) = (u; (u, si )), el resultado de
concatenar la secuencia de smbolos de entrada que causan la transicin a
con la secuencia de smbolos de salida que produce el codificador.
Tal como se ha definido, el diagrama reticular sirve, ante todo, para
mostrar grficamente la evolucin del codificador y as revelar ciertas pro-
piedades estructurales del cdigo. Veamos algunas de ellas.
Se dice que un estado st en la etapa t es alcanzable si existe una secuencia
de entradas que lleve al codificador del estado s0 al estado st en t transicio-
nes, es decir, si existe un camino de longitud t en el diagrama reticular de s0
a st . Por definicin, todos los estados en una retcula correspondiente a un
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 415

cdigo convolucional son alcanzables para t m. Por otra parte, el que las
funciones de transicin y de salida sean invariantes en el tiempo implica que
el propio diagrama reticular de un cdigo convolucional tambin posee una
estructura invariante. Cualquier estado s es alcanzable desde el estado
inicial s0 en m transiciones o menos. Por tanto, los estados alcanzables en
el tiempo t m son todos los de . Ms an, tambin para los tiempos
t m, por la propiedad de invariancia temporal, las transiciones entre dos
etapas sucesivas son siempre las mismas, y estn asociadas a las mismas
entradas. La retcula es, pues, a partir de la etapa t m, una estructura
regular, repetitiva, que se extiende indefinidamente en el tiempo.
La estructura de un diagrama reticular de un cdigo convolucional pre-
senta un patrn de interconexin entre etapas ciertamente regular: el con-
junto de transiciones entre dos etapas se puede dividir en componentes pa-
ralelos idnticos. Para ver cmo tal cosa es posible, definamos la siguiente
(1) (2)
relacin entre dos estados, st y st , de una misma etapa
(1) (2) (1) (2)
st F st u t , ut y st+1 Nt+1 :
(1) (1) (2) (2)
st+1 = ut A + st B = ut A + st B,

en donde A y B son las matrices que, en las ecuaciones del modelo de estados,
controlan la dinmica de la evolucin interna del codificador. Es decir, dos
estados estarn F -relacionados si existe algn estado en la etapa siguiente
alcanzable desde ambos. Pues bien, esta relacin binaria es una equivalencia.
La clase de equivalencia del estado st consta de = |(st , ut ) : ut Lk |
elementos, en donde (, ) es la funcin de transicin. Y puesto que en
una retcula asociada a un cdigo convolucional la funcin de transicin es
invariante en el tiempo, la relacin F divide a los 2m estados de una etapa
cualquiera en 2m / clases, de modo que, en cada clase, desde cualquiera de
sus estados slo existen transiciones hacia el mismo conjunto de estados en
la etapa siguiente.
De manera anloga, podemos definir otra relacin de equivalencia entre
los estados de llegada, en la etapa Nt+1 , como
(1) (2) (1) (2)
st+1 B st+1 ut , ut y s t Nt :
(1) (1) (2) (2)
st+1 = ut A + st B; st+1 = ut A + st B

esto es, llamando a ambos estados B -equivalentes si son alcanzables desde


un mismo estado en la etapa anterior. La relacin de equivalencia B define
una particin del conjunto de estados en la etapa Nt+1 con respecto a los
estados de la etapa previa. Sin ms que combinar las definiciones, es senci-
llo ver que existe una relacin uno a uno entre las clases de equivalencia de
F y de B . En consecuencia, los estados de dos etapas consecutivas y las
416 Cdigos convolucionales





 % %
!"#$"  

Figura 12.8. Estructura paralela de una retcula.

(*.) +-, & (*.3) 2+-, +


'
&
( .) /0, ' ( .3) 2/1, +
Figura 12.9. Propiedad de conectividad por emparejamiento de esta-
dos asociados.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 417

transiciones entre ellos pueden ser divididos en 2m / componentes estructu-


ralmente idnticas (paralelas), siendo cada componente un grafo completo
bipartito. Las componentes difieren nada ms que en las etiquetas asociadas
a los nodos y a las transiciones. Esta estructura paralela genrica se ilustra
en la figura 12.8.
En el caso particular de que el cdigo sea [n, 1], la descomposicin en
subgrafos paralelos implica las siguientes dos propiedades:

a) Propiedad de emparejamiento por pares de estados: si las transiciones


(1) (1) (2)
de salida del estado st en la etapa t alcanzan los estados st+1 y st+1
en la etapa t + 1, entonces estos dos estados tambin son alcanzables
(2)
desde un mismo estado st en la etapa t.
b) Propiedad de accesibilidad restringida: el conjunto de 2r estados alcan-
zables desde un estado de la etapa t m tras r transiciones tambin
son alcanzables desde otros 2r 1 estados en la etapa t.

La propiedad de accesibilidad restringida es una consecuencia simple de la


aplicacin iterativa de la propiedad de emparejamiento etapa por etapa. La
propiedad de emparejamiento significa que, en una etapa cualquiera t
m, se pueden descomponer las transiciones del diagrama reticular en 2k1
grupos de pares de transiciones independientes. Suponiendo, sin prdida
alguna de generalidad, que el codificador no es recurrente y que su vector
de estado se compone sencillamente de los m ltimos bits de entrada, la
estructura de estos grupos de pares de transiciones es la indicada en la
figura 12.9 con
(1) (1)
st = (ut1 , ut2 , . . . , utm+1 , 0) st+1 = (0, ut1 , ut2 , . . . , utm+1 )
(2) (2)
st = (ut1 , ut2 , . . . , utm+1 , 1) st+1 = (1, ut1 , ut2 , . . . , utm+1 )
y (ut1 , ut2 , . . . , utm+1 ) los m 1 ltimos smbolos de entrada. Este pa-
ralelismo estructural en el diagrama reticular de un cdigo convolucional
redunda en algoritmos de decodificacin ms eficientes porque se puede
aprovechar para realizar las operaciones de clculo necesarias en paralelo.

Ejemplo 12.3. La figura 12.10, en la pgina siguiente, es el diagrama re-


ticular del codificador convolucional binario [3, 1] visto en el ejemplo 12.1.
En cada etapa se han marcado slo las transiciones que ocurren por prime-
ra vez, segn el esquema u / x1 x2 x3 , con u el bit de entrada y x1 x2 x3 los
bits de salida. Observe que, en cada estado, a la entrada 0 le corresponde
como salida la propia etiqueta del nodo del que diverge; y a la entrada 1, el
complemento a 1 de esa etiqueta.
Un cdigo convolucional de tasa [n, 1] que, en cada estado, es tal que las
secuencias de salida correspondientes a los smbolos de entrada 0 y 1 son
418 Cdigos convolucionales




 

 



   
 


 
 

 





 

  





 


  

      

Figura 12.10. Diagrama reticular del cdigo convolucional generado


por G(D) = (1 + D 1 + D 2 1 + D3 ).

! ! !




"! """
"! """ "! """ !"


"! ""
!"" !""

"! "
"! "
!"


  "! ""
   

Figura 12.11. Diagrama reticular del codificador convolucional con


implementacin directa de G(D) = (1 1 + D 1 + D + D 2 ).
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 419
     


 
   

  
  

  
   


 

 
  

Figura 12.12. Diagrama reticular del codificador G(D) = (1 + D +


D2 1 + D2 ).

una la inversa de la otra se llama antipodal. En trminos algebraicos, si en


el patrn generador en el dominio del tiempo es G0 = [1 1 . . . 1], entonces el
cdigo es antipodal. Los mejores cdigos convolucionales [n, 1] son antipo-
dales, propiedad sta que se justifica con los argumentos del apartado 12.6.
El mismo cdigo admite como generador a

G0 (D) = 1 1 + D 1 + D + D2 .

El diagrama reticular correspondiente a G0 (D) (figura 12.11) es ms simple,


no tiene 8 sino 4 estados en cada etapa, porque el grado de G0 (D) es 2. Se
ver en el apartado dedicado a la decodificacin que el nmero de opera-
ciones necesarias para decodificar es proporcional al nmero de estados del
codificador, razn por la que conviene caracterizar un cdigo convolucio-
nal con el diagrama reticular ms sencillo posible, que es, como se sabe, el
deducido de una matriz cannica.

Ejemplo 12.4. El diagrama reticular del codificador convolucional dado en


el ejemplo 12.2 
G(D) = 1 + D + D2 1 + D2
consta de 4 estados y 8 transiciones, y se ha representado en la figura 12.12.
Note que todas las ramas que terminan en un nodo estn asociadas al mismo
bit de entrada al codificador. En cuanto a las secuencias de salida, vea que
cualquier par de bits aparece el mismo nmero de veces y que el cdigo es
antipodal.
Si se emplease el codificador equivalente sistemtico y recurrente dado
por  
G0 (D) = 1 1 + D2
1 + D + D2
420 Cdigos convolucionales
     


 
  
 

 

  

 
 
 
 
 

  
  

Figura 12.13. Diagrama reticular del codificador G(D) = (1 (1 +


D2 )/(1 + D + D 2 )).

se tendra el diagrama reticular de la figura 12.13. La retcula es idntica en


estructura a la anterior pero, naturalmente, al haber cambiado la estructura
interna del codificador varan tambin las etiquetas asignadas a los arcos.

12.3. Terminacin de un cdigo convolucional

En los sistemas de comunicaciones reales, la secuencia de smbolos de


informacin que se introduce en un codificador convolucional es de longitud
finita y produce una secuencia del cdigo tambin finita al trmino del
proceso de codificacin. La correspondencia entre mensajes y secuencias del
cdigo de longitud finita es uno a uno, de manera que la terminacin de un
cdigo convolucional convierte a ste en un cdigo de bloques lineal.
Normalmente, al terminar de codificar una secuencia finita se desea que
el codificador acabe en un estado interno conocido (a ser posible el estado
nulo) para que la (de)codificacin de las sucesivas secuencias finitas de sm-
bolos de informacin sea independiente. Un mtodo inmediato para finalizar
un cdigo convolucional es el de aadir al final de la secuencia de informa-
cin tantos ceros como se precisen para devolver al codificador al estado 0.
As, en un codificador [n, k] descrito por una matriz cannica en la que m
sea el mximo grado de sus filas, si u = (u0 , u1 , . . . , ul1 ) es la secuencia
original de informacin, la entrada al codificador ser u ms la adicin de m
bloques de k ceros: v = (u0 , u1 , . . . , ul1 , 0, 0, . . . , 0). La secuencia del cdi-
go x = (x0 , . . . , xl1 , xl , . . . , xm+l1 ) generada por v la forman m+l grupos
de n smbolos, siendo los m ltimos los que corresponden a las m entradas
nulas posteriores a u. El cdigo finito que resulta es, pues, un cdigo lineal
[n(m + l), kl], cuya matriz generadora son los l primeros desplazamientos
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 421

 

 

 

  

Figura 12.14. Diagrama reticular de un cdigo convolucional termi-


nado con ceros.

del patrn generador G = [G0 G1 . . . Gm ] del cdigo convolucional,



G0 G1 . . . Gm
G0 G1 . . . Gm

G = .. .. .
. .
G0 G1 . . . Gm lkn(l+m)

Esta forma de terminar un cdigo convolucional haciendo retornar al


codificador al estado inicial conlleva una reduccin de la tasa de codificacin,
que ahora pasar a valer kl/n(m + l). El diagrama reticular de este cdigo
lineal es asimismo finito, consta de m+l etapas y finaliza en el mismo estado
de partida, el estado 0.

Ejemplo 12.5. El diagrama reticular de la figura 12.14 corresponde al c-


digo convolucional generado por el codificador de la figura 12.2 y terminado
con 3 ceros tras 4 bits de informacin. El cdigo terminado tiene, as, par-
metros [21, 4] y sus palabras del cdigo son todas las secuencias de etiquetas
de los 16 caminos existentes entre el estado inicial y el final.

Es posible evitar la reduccin de tasa causada por la terminacin con


ceros utilizando la tcnica de terminar un cdigo convolucional por seccio-
namiento. El seccionamiento consiste en utilizar las secuencias del cdigo
definidas por m+l secciones completas (con todos los estados y transiciones)
consecutivas del diagrama reticular original. Ms exactamente, en utilizar
el cdigo lineal definido por los caminos que comienzan en uno de los 2s
estados de la retcula original y terminan, despus de m + l transiciones, en
el mismo estado que el inicial. La matriz generadora de este cdigo, en el
422 Cdigos convolucionales

dominio del tiempo, es [40]



Gm G0 G1 ... Gm1
Gm1 Gm G0 G1 ...

.. .. ..
. . .

G1 G2 ... Gm G0
G =

G0


G1 ... Gm1 Gm
G0 G1 ... Gm1 Gm

.. .. .. ..
. . . .
G0 G1 ... Gm1 Gm

de dimensiones (m + l)k (m + l)n, siendo nulos todos los bloques no


indicados. Si u = (u0 , u2 , . . . , um+l1 ) es cualquier secuencia de (m + l)k
bits de entrada, la secuencia del cdigo
m+l1
!
X
x = u G = ui G((m+ji))
i=0 j=0,...,m+l1

es la convolucin peridica de u y (G0 , G1 , . . . , Gm ). Los parntesis dobles


en ((a)) simbolizan el residuo mdulo-(m + 1) del operando.

12.4. Decodificacin

En un cdigo convolucional, parece claro que una estimacin ptima de


la secuencia de smbolos emitida debe tener en cuenta todos los smbolos de
la secuencia recibida, ya que por causa de la memoria del codificador cada
uno de los smbolos de la secuencia que se observa a la salida del canal de-
pende, posiblemente, de todos los anteriores a l. As planteado, un mtodo
de decodificacin ptimo consistir, en esencia, en establecer una mtrica
probabilstica con la que comparar cada una de las secuencias del cdigo
con la secuencia recibida. La secuencia del cdigo ms cercana (similar) a
la detectada constituir la eleccin del decodificador. Por tanto, el decodifi-
cador ptimo de un cdigo convolucional es un estimador de secuencias de
smbolos, no de smbolos individuales ni tampoco de n-tuplas de smbolos.
Sin embargo, carece de sentido realizar una bsqueda exhaustiva en el es-
pacio de secuencias del cdigo con el fin de decidir la ptima, ya que sera
preciso consumir un tiempo que aumenta de forma exponencial con la lon-
gitud de la secuencia. Interesan, por tanto, algoritmos de decodificacin no
slo ptimos para minimizar la probabilidad de error, sino tambin eficien-
tes. Entenderemos por eficientes aquellos algoritmos con una complejidad
polinmica en lugar de exponencial.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 423

Los primeros algoritmos de decodificacin ideados para cdigos convo-


lucionales (el algoritmo de Wozencraft, el de Fano o el algoritmo de pila,
ver [39]) s eran de decodificacin smbolo a smbolo, dado que hasta 1967
no se conoca ninguna manera eficiente de realizar la decodificacin ptima.
En este apartado se va a explicar precisamente esta realizacin eficiente,
el denominado algoritmo de Viterbi. Veremos que la clave de un algoritmo
con estas caractersticas es que la correlacin presente entre los sucesivos
grupos de n smbolos detectados va a permitir al decodificador desechar de
inmediato un gran nmero de secuencias del cdigo candidatas.
Las cuestiones relativas a la decodificacin se van a descomponer, por
claridad, en tres etapas:

a) Se va a describir el algoritmo de Viterbi. En su forma ms general,


ste es un algoritmo para calcular flujos en un grafo.
b) Se va a deducir el mtodo ptimo de decodificacin de secuencias de
un cdigo convolucional. El criterio de optimizacin elegido ser el de
maximizar la probabilidad de estimar sin error la secuencia del cdigo
emitida.
c) Se va a aplicar el algoritmo de Viterbi al problema de la decodificacin
de cdigos convolucionales caracterizados por su diagrama reticular.

12.4.1. El algoritmo de Viterbi

A. J. Viterbi ide en 1967 un algoritmo asintticamente ptimo de deco-


dificacin de cdigos convolucionales en canales ruidosos sin memoria. Fue
G. D. Forney quien, ms tarde (en 1973 [21]), consigui probar que este
algoritmo proporcionaba la decodificacin ptima ML de sucesiones de sm-
bolos y que, en su enunciado ms amplio, era la solucin al problema de la
estimacin ML de secuencias de estados en un proceso de Markov de estados
finitos discreto en el tiempo alterado por un proceso de ruido sin memoria.
Pero el algoritmo de Viterbi se puede formular de un modo muy general,
desprovisto del significado propio de un problema de decisin o decodifica-
cin. Es una aplicacin del mtodo matemtico de la programacin dinmi-
ca al problema del clculo de flujos en un grafo reticular, y como tal va a
ser descrito a continuacin. La formulacin abstracta que sigue es obra de
R. J. McEliece.
Sea T una retcula cuyos arcos estn etiquetados con elementos de un
cierto alfabeto E. La etiqueta de un arco a se representar por (a). Supn-
gase que E es un conjunto que cuenta con dos operaciones binarias internas,
que simbolizaremos con (producto) y + (suma), y que satisfacen los si-
guientes axiomas:
424 Cdigos convolucionales

a) El producto es asociativo y existe un elemento identidad 1, tal que


1 a = a 1 = a para cualquier a E. Dicho de otro modo, (E, ) es un
monoide o un semigrupo unitario.

b) La suma es asociativa, conmutativa y existe un elemento identidad 0


tal que 0 + a = a + 0 = a para todo a E. (E, +) es un monoide
conmutativo o semigrupo abeliano unitario.

c) El producto es distributivo por la derecha respecto de la suma: a, b, c


E, (a + b)c = ac + bc.

La estructura algebraica (E, +, ) es un semianillo o dioide. Tal y como


se ha definido, la nica diferencia entre un semianillo y un anillo es que
en el primero no existe necesariamente operacin inversa para la suma.
Observe que el producto no siempre es conmutativo, por lo que el orden de
los operandos puede ser significativo al multiplicar.

Definicin 12.6 (Flujo). Si p = a1 a2 an es un camino en la retcula


T , compuesto por los arcos a1 , a2 , . . . , an , se llama flujo de p al producto
ordenado (p) = (a1 ) (a2 ) (an ).

Definicin 12.7 (Flujo entre dos nodos). En la retcula T , se define


el flujo entre dos nodos si y sf , (si , sf ), como la suma de los flujos de
todos los caminos con origen en si y final en sf . Por convenio, si los nodos
si y sf no estn conectados, (si , sf ) = 0, y para cualquier nodo s se postula
(s, s) = 1.

El concepto de flujo es abstracto, pero su significado se vuelve aparente


si consideramos dos sencillos ejemplos.

Ejemplo 12.6. Identifiquemos E = 2 y la suma y el producto con las


operaciones booleanas or y and. Cada arco de una retcula T etiquetado
con un 1 se puede interpretar como activo; y cada arco con etiqueta 0, como
inactivo. Con este convenio, (p) = 1 slo y cuando el camino p no posee
arcos inactivos; en otro caso, (p) = 0; y (si , sf ) = 1 si y slo si existe
algn camino desde si hasta sf formado por arcos activos. El flujo, en este
caso, es indicador de la conectividad entre pares ordenados de estados.

Ejemplo 12.7 (El lgebra (IR+ {}, mn, +)). Sea E el conjunto de los
nmeros reales no negativos ms el smbolo . En E se define el producto
de dos de sus elementos como la suma ordinaria de nmeros reales, con la
salvedad de reservar el smbolo 0 para el elemento identidad. La suma de
dos elementos de E se define como el mnimo de ambos, e desempea el
papel de elemento identidad, es decir, a + = mn{a, } = a. Vea que
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 425

(IR+ {}, mn, +) es efectivamente un semianillo, en el que el producto


(que es la suma ordinaria de nmeros reales) es conmutativo. Si el nmero
real que etiqueta a cada arco se ve como su coste, entonces (si , sf ) es el
coste del camino de mnimo coste entre si y sf :
X
(si , sf ) = (p) = mn (p)
pP (si ,sf )
pP (si ,sf )

con P (si , sf ) el conjunto de caminos desde si a sf . Si no existe ningn


camino entre estos nodos, se conviene en identificar el flujo como el elemento
identidad para la suma, es decir, (si , sf ) = .
El lgebra (IR+ {}, mn, +) juega un importante papel no slo en
la decodificacin de cdigos convolucionales, como enseguida veremos, sino
tambin en reas como la teora de sistemas discretos.

Pues bien, el algoritmo de Viterbi es una simple ecuacin recurrente


para calcular los flujos (p) en una retcula sin tener que enumerar todos
los caminos.

Teorema 12.1 (Algoritmo de Viterbi). En cualquier retcula T , el


flujo desde el nodo raz 0 hasta el nodo s es
X
(s) = (a)(a). (12.9)
a:a=s

Demostracin. El enunciado se prueba por induccin. As, para el nodo


raz tenemos, por definicin, (0) = 1; y para cualquier nodo v en la etapa
1 de T ,
X X X X
(v) = (a)(a) = (0)(a) = 1 (a) = (a)
a:a=v a:0v a:0v a:0v

lo que evidentemente es cierto. Supongamos ahora que el teorema se cumple


para cualquier nodo en la etapa t de la retcula. Sea w un nodo cualquiera
en la etapa t + 1. En la frmula
X
= (a) (a)
a:a=w

a es un nodo de la etapa t de la retcula. Haciendo uso de la hiptesis de


induccin X
(a) = (p)
pPa

en donde Pa es el conjunto de caminos que acaban en a. Por tanto,


X X X
= (a) (a) = (p) (a)
a:a=w a:a=w pPa
426 Cdigos convolucionales

recurriendo a las propiedades conmutativa (de la suma) y distributiva (del


producto). Pero (p) (a) es el flujo del camino p extendido por el arco
a. Y como cualquier camino que finalice en el nodo w se puede construir
aadiendo un arco a algn camino que termine en un nodo de la etapa t
por la propia definicin de T
X
= (p) = (w)
pPw

que es precisamente la definicin del flujo desde 0 a w.

La frmula (12.9) del algoritmo de Viterbi toma la forma de una ope-


racin de convolucin en el semianillo (E, +, ). Expresa que para hallar el
flujo hasta un nodo cualquiera de la etapa t + 1 de una retcula es suficiente
con conocer los flujos hasta todos y cada uno de los nodos de la etapa t y
las etiquetas de los arcos entre la etapa t y la t + 1. Es fcil generalizar este
argumento y mostrar que para calcular un flujo se puede partir una retcula
por una etapa intermedia Nj y calcular por separado los flujos de cada una
de las dos retculas
X
(si , sf ) = (si , s? )(s? , sf ).
s? Nj

Asimismo, debe quedar claro que la naturaleza recurrente del algoritmo de


Viterbi es una consecuencia de la estructura reticular (en etapas) de un
grafo, y que la nica condicin necesaria para poder aplicarlo es que sea
posible encontrar en el grafo una particin N1 , . . . , Ns , . . . de sus nodos tal
que todos los arcos que egresen de nodos en la clase Ni terminen en nodos
de Ni+1 . La composicin de cada etapa y el conjunto de arcos entre los
nodos de etapas consecutivas pueden ser completamente arbitrarios.
Finalmente, note que el estado 0 slo desempea en el algoritmo de Vi-
terbi el papel de estado de referencia, en relacin al cual se calculan los flujos.
Es decir, en realidad el algoritmo permite calcular el flujo entre dos estados
cualesquiera del diagrama reticular. En particular, si la operacin producto
en E es conmutativa como en los ejemplos 12.6 y 12.7, la recurrencia de
Viterbi tambin puede aplicarse hacia atrs.

Ejemplo 12.8. El algoritmo de Viterbi, caracterizado en la forma abstracta


que se ha dado en este apartado, puede particularizarse para varios casos
interesantes:

a) Clculo de la distancia de un cdigo lineal. Como se ha apun-


tado anteriormente, cualquier cdigo de bloques puede representarse
con un grafo reticular finito, y esto trae consigo como ventaja la po-
sibilidad de emplear tambin con los cdigos de bloques algoritmos
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 427

probabilsticos eficientes de decodificacin basados en el algoritmo de


Viterbi. A modo de curiosidad, el algoritmo de Viterbi permite ob-
tener la distancia del cdigo directamente a partir del grafo. Sea T
una retcula que representa un cdigo lineal C, convolucional o de blo-
ques. Utilizando el algoritmo de Viterbi sobre el lgebra (IRn+ , mn, +)
que es simplemente la extensin natural a vectores de longitud n
del agebra (IR+ {}, mn, +), sin ms que realizar las operaciones
por componentes de los vectores se puede obtener la distancia del
cdigo. Slo es necesario tener la precaucin de excluir del clculo del
flujo el vector nulo, lo que puede lograrse con el siguiente reetiquetado:

Cualquier arco de T que una dos estados nulos y finalice en la


etapa i se etiqueta con el vector (0, 0, . . . , , 0, . . . , 0), donde
se sita en la componente i.
Cualquier otro arco se marca con el vector 0 o 1, segn produzca
el bit de salida 0 o 1, respectivamente.

El mnimo de las componentes del vector de flujo es la distancia del


cdigo.

b) Enumeracin de las palabras del cdigo. Es fcil observar que


el algoritmo de Viterbi es en lo fundamental una tcnica recurrente
para enumerar los caminos de un grafo con estructura regular. Como
aplicacin inmediata de este principio, veamos cmo se adaptara para
enumerar las palabras de un cdigo definido por la retcula T . Aqu
el lgebra a emplear sera (F , , ), en donde F es el alfabeto de
smbolos del cdigo (que no precisa de ninguna estructura algebraica
propia); F = i
i=1 F es el conjunto de secuencias que se pueden es-
cribir con el alfabeto F, completado con la cadena vaca; la operacin
de suma es la unin de conjuntos, con elemento neutro igual al con-
junto vaco; y la operacin de multiplicacin, , es la concatenacin
de dos elementos de F , cuyo elemento identidad es la cadena vaca.
Resulta claro en este ejemplo que el flujo de un camino es simplemente
la palabra del cdigo que el camino define.

12.4.2. Decodificacin ML de secuencias de smbolos

Pasemos ahora a analizar qu criterio de eleccin debe utilizar el deco-


dificador para conseguir hacer mnima la probabilidad de error.
Sea u = (u0 , u1 , . . . , uN 1 ) una secuencia de N bloques de smbolos de
entrada a un codificador convolucional, con N tan grande como se quiera,
y x = (x0 , x1 , . . . , xN 1 ) la secuencia unvoca de vectores de salida que
produce la excitacin u. Sea, por ltimo, r = (r0 , r1 , . . . , rN 1 ) la secuencia
428 Cdigos convolucionales

de smbolos que se observa a la salida del canal discreto.6 As planteado,


el problema de la decodificacin ptima consiste en decidir, para cada ob-
servacin r = (r0 , r1 , . . . , rN 1 ), qu secuencia x
emitida hace mnima la
probabilidad de error P( x 6= x). Aplicando directamente los resultados del
apartado 5.A, es el caso que la estrategia que minimiza la probabilidad de
equivocacin P( x 6= x) en el receptor, cuando la secuencia recibida es r,
consiste en seleccionar aquella secuencia del cdigo que hace mxima la
probabilidad condicional P( x | r) de haber emitido x. Esto es, se minimiza
el error si se toma la decisin MAP (mximo a posteriori):

MAP(r) = arg m x | r) = arg m


ax P( x | r).
ax log P(
x
x

Si se supone que las secuencias de smbolos de informacin (y por tanto


las secuencias del cdigo) son equiprobables, el criterio MAP se simplifica
y transforma en el criterio ML (de mxima verosimilitud7 ):

ax log P(r | x
ML(r) = arg m )
x

de seleccin de la secuencia x que, a priori (sin disponer de informacin


acerca de los estadsticos de x
), hace que la observacin de la trayectoria r
tenga probabilidad mxima.
La probabilidad de observar la secuencia r cuando se ha transmitido x

es, en un canal discreto y sin memoria,
N
Y 1
P(r | x
) = P(ri | x
i )
i=0

6 Tratamos, por tanto, con observaciones discretas y con ruido de las secuencias del

cdigo. Es habitual hablar de decodificacin hard cuando la entrada al decisor es una se-
cuencia de smbolos; cuando la entrada al decisor es una sucesin de muestras de la seal
que sirve de soporte a la transmisin del mensaje (o, con ms propiedad, una secuencia
de valores reales que constituyen un estadstico suficiente de la secuencia de smbolos
emitida) se habla, en cambio, de decodificacin soft. Las tcnicas de decodificacin soft
consiguen menor probabilidad de error que las hard, aunque son ligeramente ms com-
plicadas de implementar, y no sern consideradas en este texto, en el que se parte de la
idealizacin de canal discreto. En todo caso, el algoritmo ptimo de decodificacin hard
y soft de secuencias es el mismo, salvo por un cambio en la mtrica.
7 En cualquier experimento aleatorio, dadas dos alternativas posibles a priori, x
1 y x
2 ,
y una observacin ruidosa del resultado, r, la funcin
P(r | x
1 )
f (r) = log
P(r | x
2 )
es una medida de la posibilidad de que haya ocurrido x 1 y no x2 ; ms exactamente, si
f (r) > 0, es ms probable la hiptesis x
1 que la hiptesis x
2 . De ah, por tanto, que
la funcin f (r) (cuyo signo permite discriminar entre dos alternativas excluyentes) se
conozca tambin como funcin de verosimilitud.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 429

en donde P(ri | x
i ) indica la probabilidad de observar a la salida del canal
el vector ri en respuesta a la entrada x i . Tomando logaritmos en ambos
miembros de esta ecuacin, la regla de decodificacin ML queda, por ser la
funcin logaritmo una funcin estrictamente creciente, como
N
X 1
ax log P(r | x
arg m ) = arg m
ax log P(ri | x
i )
x
x

i=0
(12.10)
N
X 1
= arg mn log P(ri | x
i ).
x

i=0

PN 1
La funcin i ) es claramente una mtrica entre los
i=0 log P(ri | x
caminos r y x , la resultante de acumular un coste individual de valor igual a
i ) por cada arco del camino. En consecuencia, puede enunciarse
log P(ri | x
el principio de decodificacin ptima ML diciendo que consiste en la eleccin
del camino de coste mnimo con respecto a la secuencia observada a la salida
del canal, siendo el coste de un camino la suma del coste relativo de cada uno
de sus arcos, y ste el logaritmo cambiado de signo de cierta probabilidad
de transicin del canal.
Observe en la ecuacin (12.10) que la minimizacin de la mtrica no se
hace en cada arco individual, sino que es global, a lo largo de todo el ca-
mino candidato hasta la etapa N . Es por este motivo por el que la tcnica
recibe el nombre de deteccin ML de secuencias o deteccin MLSE (Maxi-
mum Likelihood Sequence Estimation). Obsrvese, adems, que la mtrica
es puramente probabilstica, es decir, que en absoluto depende de ningu-
na propiedad algebraica o estructural de las secuencias que se pretenden
estimar.
Cuando la transmisin se realiza por un canal binario simtrico, las
ecuaciones (12.10) adoptan una forma particularmente simple. Supngase
que la probabilidad de transicin es p y que, en la rama i = 0, . . . , N 1,
los smbolos de salida de la secuencia r (fija) y el camino x
T (arbitrario)
difieren en dH (
xi , ri ) posiciones. Por lo tanto,
i ) = log pdH (ri ,xi ) (1 p)ndH (ri ,xi )
log P(ri | x
que es una funcin afn creciente de dH (ri , x
i ). As pues, en un canal binario
simtrico se selecciona el camino ms cercano en distancia Hamming a la
secuencia de salida del canal.

12.4.3. Decodificacin de cdigos convolucionales

Fue la intuicin de Viterbi la que le hizo percatarse de que la ecua-


cin (12.10) poda escribirse en la forma recurrente dada por el teorema 12.1,
430 Cdigos convolucionales

el algoritmo de Viterbi. En el diagrama reticular T del cdigo convolucional,


supongamos que cada arco est etiquetado con la secuencia de smbolos de
salida que emite el decodificador al realizar esa transicin. Para cualquiera
de sus arcos, a, cambiemos su etiqueta aplicando la transformacin

L : (a) (a) = log P(ri | x


i ).

Esta transformacin tiene como efecto convertir el alfabeto de etiquetas de


T en el semianillo S = (IR+ {}, mn, +) presentado en el ejemplo 12.7.
De forma que la regla de decodificacin ML queda como
N
X 1
arg mn (ai ),
p=a1 ...aN TN
i=0
P
la minimizacin de i (ai ) sobre todos los caminos definidos por las N
primeras secciones de la retcula T modificada. Recordando que en S la
operacin de sumar nmeros reales se denominaba producto, lo anterior
corresponde simblicamente a

arg mn (p),
p=a1 ...aN TN

es decir, a elegir el camino de mnimo flujo (coste) de la retcula. La secuencia


del cdigo que define este camino se puede reconstruir concatenando los
smbolos de salida de cada uno de sus arcos.
Consideremos todos los caminos que terminan en un estado si de la
etapa i. A la hora de calcular caminos de coste mnimo hasta la etapa i + 1
que pasen por el estado si , es suficiente con memorizar slo el camino p de
menor medida de todos los que terminan en si , porque es obvio que si se
sumase el coste de una rama de salida de si a otro camino que no fuese el
ptimo se obtendra siempre un camino de mayor longitud que si se hubiese
sumado el coste de la misma rama a p . De donde se deduce, por lo tanto,
que para cada etapa del diagrama reticular es suficiente con almacenar un
solo camino ptimo desde 0 a cada uno de sus estados. Llamamos a este
camino el superviviente, siendo as que el nmero de supervivientes en cada
etapa ser igual al nmero de estados posibles en la misma. En caso de
que la retcula conste de un nmero finito de etapas y finalice en un nico
estado, slo sobrevive un camino. Pero conviene advertir que los caminos
candidatos x y el camino recibido r no tienen por qu terminar en el mismo
estado del diagrama reticular si ste, en la etapa N , consta de ms de un
estado alcanzable.
Formalicemos el algoritmo de Viterbi, con el propsito de mostrar toda
su simplicidad. A tal efecto, supongamos una retcula T de N etapas, con
origen en el estado 0 y fin en el estado s . Sea Ni el conjunto de nodos de
la etapa i. El algoritmo de Viterbi consta de los siguientes pasos:
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 431

1. Inicializacin: fijar (0) = 0.

2. Iteracin: para i = 1, . . . , N y para cualquier nodo v Ni

(v) = mn {(a) + (a)} ; (12.11)


a:a=v
s(v) = arg mn {(a) + (a)} . (12.12)
a:a=v

3. Reconstruir la secuencia del cdigo; para ello, fijar v = s y, para


i = N, . . . , 1,
ci = (s(v)); v = s(v).

4. Estimar como secuencia del cdigo transmitida (c1 , c2 , . . . , cN ).

La operacin de suma que aparece en las ecuaciones (12.11)-(12.12) es la


suma ordinaria entre nmeros reales. Por otro lado, para cada nodo v, la
variable s(v) slo tiene como propsito guardar el ltimo arco del camino
superviviente hasta v.
En caso de que el mnimo en la expresin (12.11) se alcanzase para dos
o ms arcos, note que la eleccin entre ellos es indistinta desde el punto de
vista de la deteccin de la secuencia del cdigo transmitida, pero no en lo
referente al mensaje; pues los smbolos de entrada al codificador que generan
los caminos respectivos pueden diferenciarse en un nmero variable de posi-
ciones de los smbolos de informacin transmitidos. Es decir, caminos en la
retcula con el mismo coste relativo respecto de la secuencia recibida pueden
haber sido generados por mensajes diferentes. Por lo tanto, la decodificacin
ML de secuencias del cdigo no minimiza necesariamente la probabilidad
de error en los smbolos de informacin. Sin embargo, las simulaciones nu-
mricas muestran que nicamente aparece una diferencia apreciable cuando
la probabilidad de error en la transmisin de un smbolo es elevada.
La evaluacin de las ecuaciones (12.11) puede dividirse, para cada estado
de una etapa t, en tres fases: (1) suma del coste de las ramas incidentes
en ese estado a los caminos supervivientes que terminan en los estados
predecesores; (2) comparacin del coste de los caminos supervivientes as
extendidos; (3) seleccin del camino extendido de menor coste. La unidad
bsica de cmputo de un decodificador Viterbi es, entonces, un circuito
aritmticolgico de suma, comparacin y seleccin.
La complejidad del algoritmo de Viterbi es absolutamente independiente
del marco de aplicacin. La ecuacin (12.11) se ejecuta para cada nodo de la
retcula (excepto el nodo raz), y requiere tantas multiplicaciones en S como
arcos de entrada al nodo; la seleccin del superviviente hasta ese nodo es
equivalente a la realizacin de g 1 sumas en S, siendo g el nmero de arcos
incidentes en el nodo. Por lo tanto, la ejecucin completa del algoritmo de
432 Cdigos convolucionales

Viterbi sobre un grafo reticular con P nodos (en total) y A arcos (en total)
precisa de A multiplicaciones y AP +1 sumas en el conjunto algebraico S.
En consecuencia, su complejidad aumenta slo linealmente con el nmero
de etapas (estados) de la retcula, en lugar de incrementarse de manera
exponencial como lo hace el nmero total de caminos.
En un sistema real de comunicaciones, N , la longitud en bloques del men-
saje, puede alcanzar valores muy grandes, de forma que, en primer lugar,
la decisin en el receptor se retrasara hasta ser inaceptable y, en segundo
lugar, la memoria necesaria para almacenar los caminos supervivientes, que
es directamente proporcional a N , crecera tambin hasta hacer poco eco-
nmica o incluso inviable la construccin del decodificador. Existen varias
alternativas para solucionar estos inconvenientes:

a) Se puede utilizar un cdigo convolucional truncado de longitud nN


smbolos, por ejemplo recurriendo a la terminacin con ceros o a la
tcnica de seccionamiento. En el diagrama reticular finito que corres-
ponde al cdigo terminado con ceros, en la ltima etapa slo hay un
estado y, por lo tanto, sobrevive un nico camino hasta l.

b) Si todos los caminos supervivientes hasta la etapa t coinciden en sus


q primeras transiciones (es decir, si los q primeros estados intermedios
de cada camino son idnticos), entonces el decodificador puede tomar
una decisin sobre los q primeros bloques de smbolos del mensaje.
Parece claro, sin embargo, que una condicin as puede no suceder con
suficiente frecuencia y exige adems que el decodificador disponga de
la capacidad de explorar prefijos en los caminos supervivientes hasta
una profundidad arbitraria.

c) Se puede forzar peridicamente, cada I intervalos de tiempo, una de-


cisin sobre los kI smbolos de informacin transmitidos; basta para
ello con elegir el camino superviviente de menor coste cada I transi-
ciones. Se reconocer, en cualquier caso, que ste es un procedimiento
de decodificacin subptimo.

d ) Se puede purgar peridicamente el conjunto de caminos supervivientes


memorizados si se desechan todos aqullos cuya medida difiera de la
del mejor camino superviviente en una cantidad mayor que un umbral
prefijado. Aunque mejor que el mtodo anterior, porque las decisiones
no se realizan a intervalos regulares, tambin ste es un procedimiento
subptimo.

Ejemplo 12.9. Supongamos que se utiliza sobre cierto canal binario sim-
trico el codificador convolucional de cuatro estados de la figura 12.15.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 433

 
 


 
 



 

Figura 12.15. Codificador convolucional [3, 1, 2].

      
     

! ! ! ! !

       
   
    
   
   


! ! ! !

     
           
  
  
  
         

             
               

Figura 12.16. Algoritmo de Viterbi para el ejemplo 12.9.

& ) ) ) -- + )
-- + -- + -- +
##
112 112 112 112 112

( & ' , ' , 3 )


, , , ,,
$# ,, ,, ,, ,,
0 0 0 0
00 00 00 00
0
00
112 112 112 112
#$
% ' ( ( ) )
0 0 ../ . ./ 0 . ./ ../ ../ . ./
00 00 00
0 0 0
00 0 0
& ( ' 0 ' ' 0 ' * )
$$
+ ++ + ++ + ++ + ++ + ++ +++ +++ + ++
" #$# #$$ $$# $## ##$ ##$ ### ##$

Figura 12.17. Algoritmo de Viterbi para el ejemplo 12.9.


434 Cdigos convolucionales

La secuencia de informacin u = 110101 produce la secuencia del cdigo

x = 111 000 001 001 111 001 111 110.

Imaginemos que se recibe la secuencia

r1 = 101 100 001 011 111 101 111 110

que contiene 4 smbolos errneos, marcados con letra negrita.


En la figura 12.16 se muestra el resultado del algoritmo de decodificacin
de Viterbi. Cada nodo se ha etiquetado con el coste del camino superviviente
hasta l, utilizando como medida de cada rama la distancia Hamming entre
la secuencia recibida y los smbolos de salida del diagrama reticular. Los
caminos que no sobreviven se han sealado con lneas discontinuas, y el
camino final seleccionado es el marcado con trazo grueso. El camino ML
coincide con la secuencia del cdigo transmitida.
Si la secuencia recibida hubiese sido

r2 = 101 100 001 011 110 110 111 110

la ejecucin del algoritmo de Viterbi habra seguido la trayectoria de caminos


supervivientes representada ahora en la figura 12.17. En este caso, en la
etapa 6 no sobrevive el camino correcto y la decisin ML del decodificador
no coincide con la secuencia del cdigo transmitida.

12.5. Enumeracin de caminos

Tomando como punto de partida el algoritmo de decodificacin de se-


cuencias, parece lgico pensar que la capacidad de detectar y corregir errores
con un cdigo convolucional va a depender de la distancia entre dos secuen-
cias del cdigo cualesquiera o, lo que es igual, del coste relativo entre dos
caminos en el diagrama reticular.
En diagramas simples, con pocos estados y transiciones, el coste relati-
vo de un camino puede hallarse sin dificultad por observacin. Pero, desde
luego, no es ste un mtodo aconsejable cuando se manejan diagramas reti-
culares complejos. En todos los casos, la obtencin del camino a distancia
mnima de uno dado puede lograrse aplicando el algoritmo de Viterbi.
Se va a dar a continuacin otra tcnica general para enumerar el coste
de los caminos en un diagrama reticular arbitrario de un cdigo convolu-
cional. Aunque no es necesariamente ms sencilla que la aplicacin directa
del algoritmo de Viterbi, tiene la ventaja aadida de que se puede extender
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 435


  
 


   



Figura 12.18.

de inmediato para enumerar tambin la longitud de las trayectorias y para


contar el nmero de bits de informacin en cada una.
El fundamento de esta tcnica es el hecho de que la codificacin convo-
lucional es lineal. As, en cualquier retcula existe siempre una trayectoria
fija bien definida: el camino generado por una secuencia de ceros a la en-
trada y que, en respuesta, produce otra secuencia ilimitada de ceros. Ahora
bien, por causa de la linealidad, sucede que el coste entre dos caminos r1
y r2 (producidos, respectivamente, por las secuencias de entrada u1 y u2 )
es igual al coste del camino r1 r2 respecto del camino nulo. Pensemos,
por tanto, en el estado (0, . . . , 0) como principio y fin de todos los caminos
errneos, y veamos la manera de medir todas las trayectorias que divergen
del estado cero en el instante inicial y regresan a l en algn instante futuro.
Podemos, para ello, transformar el diagrama de estados y transiciones
del codificador en otro grafo aumentado de acuerdo con estas reglas:

a) Eliminar del diagrama de estados original el arco del estado cero a s


mismo.

b) Separar el nodo inicial (0, . . . , 0) en dos nodos, (0, . . . , 0)1 y (0, . . . , 0)2 .

c) Sustituir todos los arcos con origen en el estado (0, . . . , 0) por arcos
con origen en el estado (0, . . . , 0)1 .

d ) Sustituir todos los arcos incidentes en el estado (0, . . . , 0) por arcos


incidentes en el estado (0, . . . , 0)2 .

e) Sustituir las etiquetas de todos los arcos por el polinomio z i , en donde


i es el peso Hamming de la secuencia de smbolos de salida asociada
a la transicin.

Una vez hecho esto, pasemos a calcular la funcin de transferencia del


nuevo grafo, interpretando los arcos como elementos de proceso de seal y
los nodos como sumadores, y suponiendo que la entrada tiene lugar en el
nodo (0, . . . , 0)1 y la salida en el (0, . . . , 0)2 .
Un ejemplo permitir aclarar mejor todo el proceso.
436 Cdigos convolucionales

Ejemplo 12.10. La figura 12.18 presenta el grafo transformado del diagra-


ma de estados y transiciones del codificador convolucional

G(D) = 1 1 + D 1 + D + D2 .

El grafo puede ser dibujado directamente a partir de una etapa de la retcula


del codificador, con la siguiente correspondencia entre nodos del grafo y
estados del codificador

nodo a b c d e
estado 00 10 11 01 00

Cada arco se ha etiquetado simblicamente con tres variables, sz x wy , cuyo


significado pasamos a aclarar. La variable s aparece en todos los arcos y su
exponente siempre vale 1, sirviendo como contador del nmero de transi-
ciones. La variable x, el exponente de la variable z, es el peso Hamming de
los smbolos de entrada que producen la transicin; en este caso slo existe
un smbolo de entrada, por lo que x valdr 0 o 1 segn corresponda. Por
ltimo, y, el exponente de la variable w, es el peso Hamming de los smbolos
de salida del codificador en esa transicin.
Si el grafo se interpreta como un esquema de procesado de seal en el
dominio transformado (s, z, w), y se consideran sus nodos como operaciones
de suma y las etiquetas de cada arco como operaciones de multiplicacin,
entonces la funcin de transferencia del diagrama se obtiene resolviendo el
sistema de ecuaciones:

Tb (s, z, w) = szw 3 Ta (s, z, w) + szw 2 Td (s, z, w)


Tc (s, z, w) = szwTb (s, z, w) + szw 2 Tc (s, z, w)
Td (s, z, w) = sw2 Tb (s, z, w) + swTc (s, z, w)
Te (s, z, w) = swTd (s, z, w)

en donde Ta (), . . . , Te () son las funciones transformadas en cada nodo del


grafo. Tal funcin de transferencia es

Te (z, s, w)
H(s, z, w) = .
Ta (s, z, w)

Utilizando las dos primeras ecuaciones del sistema anterior para sustituir
en la tercera, se tiene que
 
sw 
Td (s, z, w) = sw2 + szw3 Ta (s, z, w) + szw 2 Td (s, z, w)
1 szw2
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 437

de donde, despejando Td (s, z, w) e insertando su expresin en la cuarta


ecuacin, se llega a

2s2 zw5 s3 z 2 w7
H(s, z, w) = sw
1 szw2 2s2 zw4 + s3 z 2 w6

= sw 2s2 zw5 3s3 z 2 w7 z 2 +
= 2s3 zw6 3s4 z 2 w8 +

La expansin en serie infinita de la funcin de transferencia H(s, z, w) pro-


duce una sucesin de trminos cuyos exponentes enumeran, para todas las
posibles secuencias, el nmero de transiciones (el exponente de s), el pe-
so Hamming de la secuencia de salida en esa trayectoria (el exponente de
w) y el peso Hamming de la secuencia de entrada (el exponente de z). El
coeficiente de cada trmino seala el nmero de caminos diferentes con las
mismas caractersticas. As por ejemplo, los dos primeros trminos de la
expansin en serie ilimitada de H(s, z, w) nos indican que, para este cdigo,
existen dos caminos diferentes a distancia 6 del camino nulo, compuestos por
tres transiciones y generados por dos bits de entrada nulos y otro a uno; y
que existen 3 caminos a distancia 8 del camino nulo, con cuatro transiciones
y dos bits de entrada no nulos.
Si solamente se quisiera obtener la enumeracin de la distancia de los
caminos, bastara fijar s = z = 1 en la funcin de transferencia o, de manera
equivalente, etiquetar el grafo transformado slo con la variable w:

2w5 w7
T (w) = H(s, z, w)|z=s=1 = w .
1 w2 w + w6
Obsrvese que la funcin general de transferencia H(s, z, w) depende tanto
del cdigo como del codificador, mientras que T (w) depende nicamente del
cdigo.

12.6. Distancia mnima y codificadores catastrficos

El algoritmo de Viterbi que hemos presentado emplea como mtrica de


comparacin la distancia Hamming entre dos posibles secuencias del cdigo.
Suponiendo que x1 y x2 son dos secuencias del cdigo distintas con distancia
Hamming mnima entre ellas

dH (x1 , x2 ) = mn {dH (x, y) : x, y C[n, k]}

la secuencia x1 x2 representa la secuencia de error en el canal con menor


nmero de smbolos no nulos capaz de convertir una secuencia del cdigo en
438 Cdigos convolucionales

otra y, con ello, capaz de inducir al decodificador a un error indetectable.


Parece lgico pensar que tal distancia mnima va a tener una influencia
significativa en la capacidad de deteccin de errores del cdigo.

Definicin 12.8 (Distancia mnima libre). La distancia mnima libre


de un cdigo convolucional es la mnima distancia Hamming entre dos se-
cuencias del cdigo completas,

dl = mn{dH (r, r0 ) | r 6= r0 } = mn{pH (r) | r 6= 0}.

La definicin concuerda con la dada para los cdigos de bloques lineales,


salvo porque, como las secuencias del cdigo son de longitud infinita, puede
ocurrir pH (r) = . Por citar un caso, la distancia mnima libre del cdigo
convolucional utilizado en el ejemplo 12.6 es 3, el peso Hamming de la
secuencia del cdigo (10, 11, 00, 00, . . . ).
Pero, a diferencia de lo que sucede con los cdigos de bloques, la deter-
minacin de la distancia mnima libre de un cdigo convolucional dado
puede resolverse con facilidad, haciendo uso de la tcnica analtica de enu-
meracin de caminos expuesta en el apartado anterior. No obstante, queda
por resolver el problema, ms amplio, de hallar la mxima distancia mnima
libre de un cdigo convolucional [n, k], que es previo a la bsqueda de c-
digos con tal distancia mxima. Veremos a continuacin que del estudio de
cierta clase de subcdigos se deducen algunas cotas de distancia tiles que
responden parcialmente a esta cuestin. Bsicamente, estas cotas extraen
las consecuencias de la conexin entre cdigos de bloques lineales y cdigos
convolucionales.
Establezcamos antes el contexto y la notacin precisos. Sea C un cdigo
convolucional [n, k], y consideremos el conjunto CL formado por todas las
secuencias de C con grado menor o igual que L. Claramente, CL es un sub-
espacio vectorial cuya dimensin se representar por L . Por otro lado, sea
G(D) una matriz generadora cannica de C, y sean e1 , e2 , . . . , ek los grados
de sus filas (recurdese que el grado de un vector de polinomios es el mayor
grado de cualquiera de sus componentes). El siguiente teorema muestra que
la dimensin L se puede calcular a partir de e1 , . . . , ek .

Teorema 12.2.
X te1 + + t ek
a) L tL = .
(1 t)2
L0

k
X
b) L = ax (L + 1 ei , 0).
m
i=1
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 439

Demostracin. Para la primera parte, tomemos una matriz generadora


cannica G(D) de C y, sin prdida de generalidad, supongamos sus filas
ordenadas por grados e1 ek . Sean precisamente g1 (D), . . . , gk (D)
las filas, y sea x(D) una palabra del cdigo de grado menor o igual que L.
La secuencia x(D) ser la respuesta del codificador a una entrada u(D) =
(u1 (D), . . . , uk (D)) formada por polinomios tales que grado(ui (D))+ei L,
para i = 1, . . . , k. As pues, el conjunto {D j gi (D) : j + ei L} constituye
una base del subespacio CL . De esta manera, se puede escribir que

X k X
X 
L tL = tei +j + tei +j+1 +
L0 i=1 j0
k X ei +j
X t
=
i=1 j0
1t
k
X tei
= .
i=1
(1 t)2

P Para la segunda parte, introduciendo el desarrollo en serie (1 t)2 =


i
i0 (i + 1)t en la frmula anterior, se tiene que

X k
X tei
L tL =
i=1
(1 t)2
L0
k X
X
= (j + 1)tei +j
i=1 j0
k X
X
= (j + 1 ei )tj .
i=1 jei

Igualando coeficientes en ambos miembros, queda


k
X
L = ax(L + 1 ei , 0).
m
i=1

En resumen, la primera parte del teorema da la expresin analtica de


una funcin generadora de la sucesin de dimensiones 1 , 2 , . . . , mientras
que la segunda proporciona una frmula explcita para cada trmino de la
sucesin.
Puesto que m ax(x, 0) x, el siguiente enunciado es un corolario inme-
diato que acota inferiormente L .
440 Cdigos convolucionales

Teorema 12.3. Si C es un cdigo [n, k, m], para cualquier L 0,



L m ax k(L + 1) m, 0 .

Demostracin.
X
k 

L m
ax L + 1 ei , 0 ax k(L + 1) m, 0
= m
i=1
Pk
ya que i=1 ei = m.

No presenta excesiva dificultad mostrar que la igualdad estricta se logra


si y solamente si los grados e1 , . . . , ek toman nicamente los valores bm/kc y
dm/ke, habiendo exactamente m mod k de ellos que valen dm/ke, y k (m
mod k) que valen bm/kc.
Pues bien, dado que la distancia mnima libre de C no puede ser mayor
que la de ninguno de sus subcdigos CL , se llega al teorema 12.4.

Teorema 12.4. Sea C un cdigo convolucional [n, k, m] sobre q.

a) dl mn q (n(L + 1), L ), en donde q (a, b) representa la mxima


L0
distancia de un cdigo lineal sobre q con longitud a y dimensin b.
b) dl mn q (n(L + 1), k(L + 1) m).
L0

Demostracin. La primera parte es obvia. La segunda se sigue de com-


binar la primera con la cota inferior para L .

Una distancia mnima libre elevada reduce la probabilidad de error,


cuestin sta que ser analizada en el apartado 12.7. Pero un valor dado
de distancia no es suficiente para garantizar que el nmero de errores de
decodificacin que se cometen sea finito. En algunos codificadores convo-
lucionales, una pequea cantidad de errores en la secuencia recibida puede
llevar al decodificador a emitir un nmero ilimitado de smbolos de informa-
cin errneos. Intuitivamente, se entiende que esto ocurre cuando un error
de decisin en el receptor se propaga y afecta a las decisiones acerca de los
smbolos siguientes. En el diagrama reticular, esta situacin equivale a la
existencia de un camino debido a entradas no nulas que genera ceros a la
salida del codificador.

Definicin 12.9 (Codificador catastrfico). Un codificador convolu-


cional es catastrfico cuando alguna secuencia de entrada con un nmero
infinito de smbolos no nulos produce una secuencia del cdigo con un n-
mero finito de smbolos no nulos.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 441




  




Figura 12.19. Un codificador convolucional catastrfico.

Ejemplo 12.11. El codificador de la figura 12.19 es catastrfico. La se-


cuencia del cdigo que corresponde al mensaje (1 + D)1 = (1, 1, 1, . . . )
es (11, 10, 11, 00, 00, . . . ). Si el ruido en el canal provocase la deteccin en
el receptor de la secuencia (10, 00, 00, . . . ) (con cuatro errores), entonces el
algoritmo de decodificacin ML estimara como secuencia del cdigo trans-
mitida la secuencia cero, lo que resultara en un nmero ilimitado de errores
de decodificacin en el mensaje.

Es posible demostrar que un codificador convolucional es catastrfico si,


y solamente si, no existe un circuito secuencial sin realimentacin (es decir,
un filtro lineal no recurrente) que invierta las operaciones del codificador.
El siguiente teorema establece, en lenguaje algebraico, este hecho, adems
de varias condiciones equivalentes para discriminar cundo una matriz ge-
neradora polinmica es catastrfica.

Teorema 12.5 (MasseySain). Sea G(D) una matriz generadora polin-


mica de un cdigo convolucional C[n, k]. G(D) no es un codificador catas-
trfico si se cumple alguna de las siguientes condiciones:

a) No existe ninguna entrada de peso infinito u(D) que produzca una


salida x(D) = u(D)G(D) de peso finito.
b) El mximo comn divisor de los menores de orden k de G(D) es una
potencia de D.
c) G(D) tiene una matriz pseudoinversa de peso finito (con todos los
elementos de peso finito). Esto es, existe una matriz polinmica n k,
H(D), tal que G(D)H(D) = Ik .

Demostracin.  Probaremos en primer lugar que b) c). Sean Gi (D),


i = 1, . . . , nk , las submatrices k k de G(D) y i (D) los menores corres-
pondientes (los determinantes de Gi (D)). Sea, adems, Ci (D) la traspuesta
de la matriz de cofactores de Gi (D). Es un resultado bien conocido del lge-
bra lineal que Gi (D)Ci (D) = i (D)Ik . Por lo tanto, situando adecuadamen-
te n k columnas de ceros en la matriz de cofactores, siempre se puede con-
seguir una matriz polinmica n k, Ci0 (D), tal que G(D)Ci0 (D) = i (D)Ik .
442 Cdigos convolucionales

Ahora bien, puesto que el mximo comn divisor de los i (D) es DL pa-
ra algn L 0, por el algoritmo de Euclides se tiene que existen polinomios
gi (D) tales que
X
gi (D)i (D) = DL .
i
P
Luego, definiendo H(D) = i gi (D)Ci0 (D), se tiene que
X
G(D)H(D) = gi (D)G(D)Ci0 (D)
i
X
= gi (D)i (D)Ik
i
X 
= gi (D)i (D) Ik = DL Ik .
i

En consecuencia, la matriz D L H(D) es una pseudoinversa polinmica


por la derecha de G(D).
Para probar que c) a), supngase que x(D) = u(D)G(D) y que H(D)
es una matriz pseudoinversa polinmica de G(D). En tal caso se tiene que
x(D)H(D) = u(D)G(D)H(D) = u(D), y si x(D) es de peso finito entonces
u(D) tambin lo es, porque H(D) es de peso finito.
Por ltimo, supongamos que p(D) es un polinomio irreducible (que ade-
ms no es una potencia de D) que divide a todos los menores de orden k
de G(D). Sea una raz de p(D) en algn cuerpo y G() la matriz que
resulta de evaluar cada uno de los elementos de G(D) en . En estas condi-
ciones, cualquier menor de orden k de G() es nulo, por lo que el rango de
G() es menor que k. Por lo tanto, aplicando una secuencia de operaciones
elementales a G() se puede obtener una matriz G0 () con una ltima fila
de ceros. Esta secuencia de operaciones elementales significa que existe una
matriz elemental k k, U (), tal que G0 () = U ()G(). Si el elemento
se sustituye por la indeterminada D, entonces G0 (D) = U (D)G(D) con
U (D) una matriz unimodular (polinmica, con determinante 1) y con todos
los elementos de la ltima fila de G0 (D) divisibles por p(D). Ahora, si se
toma el vector  
1
u0 (D) = 0 0 . . .
p(D)
se tiene que u0 (D)G0 (D) es un vector de polinomios. Y si se define w(D) =
u0 (D)U (D), entonces w(D)G(D) = u0 (D)G0 (D). En consecuencia, w(D)
es una secuencia de entrada de peso infinito que produce una salida finita
y el codificador es catastrfico, lo que prueba que a) b).

Ejemplo 12.12. Consideremos el codificador convolucional [4, 2] generado


C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 443

por  
1+D 0 1 D
G(D) = .
D 1 + D + D2 D2 1
Los menores 2 2 de esta matriz son

12 = (1 + D)(1 + D + D 2 ) 23 = 1 + D + D2
13 = D(1 + D + D2 ) 24 = D(1 + D + D2 )
14 = 1 + D + D2 34 = 1 + D + D2

en donde los subndices se refieren a las columnas de G(D) que definen el


menor. Como es obvio, el mximo comn divisor de los menores es 1 + D +
D2 , de modo que la matriz es catastrfica. Sea una raz del polinomio
1 + D + D2 en 4 . Sustituyendo por D en G(D) tenemos la matriz de
rango 1  2 
0 1
G() = .
0 2 1
Multiplicando la primera fila por 2 y sumndola a la segunda fila
   2 
0 1 0 0 1
G () = G() = U ()G() = .
2 1 0 0 0 0

Deshaciendo el cambio entre y D en la matriz U ()


  
1 0 1+D 0 1 D
G0 (D) =
D2 1 D 1 + D + D2 D2 1
 
1+D 0 1 D
= .
D(1 + D + D2 ) 1 + D + D2 0 0

La segunda fila de G0 (D) es divisible por 1 + D + D 2 , de modo que


  
0 1 0
2 G (D) = D 1 0 0 .
1+D+D
As pues, la entrada
   
u(D) = 0
1
U (D) = D2 1
1 + D + D2 1 + D + D2 1 + D + D2

de peso infinito produce una salida de peso finito. dem para la entrada
   
1 1+D 1
u0 (D) = 0 0
2 U (D) = 2 2
1+D+D 1+D+D 1+D+D
si se toma como matriz unimodular a
 
1 0
U 0 (D) = .
1+D 1
444 Cdigos convolucionales

Este teorema de MasseySain no se puede aplicar directamente para


matrices generadoras no polinmicas, aunque admite la siguiente generali-
zacin, cuya demostracin, disponible en [53], se omite.

Teorema 12.6. Sea G(D) una matriz generadora racional de un cdigo


convolucional C[n, k]. G(D) es un codificador no catastrfico si se cumple
alguna de las siguientes condiciones:

a) No existe ninguna entrada de peso infinito u(D) que produzca una


salida x(D) = u(D)G(D) de peso finito.

b) Sea (D) el mnimo comn mltiplo de los denominadores de los ele-


mentos de G(D), y G0 (D) la matriz obtenida al multiplicar cada ele-
mento de G(D) por (D). Sea (D) el mximo comn divisor de los
menores de orden k de G0 (D). En el cociente (D)/(D), expresado
como una fraccin irreducible, (D) es una potencia de D.

c) G(D) tiene una matriz pseudoinversa de peso finito.

Un corolario de este resultado es que ninguna matriz generadora siste-


mtica es catastrfica, ya que para ellas (D) = 1 = D 0 .

12.7. Probabilidad de error

Al contrario de lo que sucede con los cdigos de bloques, la probabili-


dad de recuperar sin error un mensaje codificado no constituye una medida
til de las caractersticas de control de errores con un cdigo convolucional.
El intercambio de informacin entre emisor y receptor consiste ahora en
la transmisin de una secuencia del cdigo de longitud ilimitada. La pro-
babilidad de error al decodificar una secuencia equivale, en este caso, a la
probabilidad de que el camino seleccionado en el diagrama reticular por el
receptor difiera en uno o ms estados de la secuencia transmitida. Pero co-
mo la secuencia del cdigo es infinitamente larga, aunque la tasa de error
por cada smbolo del canal est acotada, se comprende que la probabilidad
de error al estimar la secuencia transmitida tiende a uno. Se explica as por
qu, en el anlisis de la probabilidad de error de los cdigos convoluciona-
les, el inters se centra en calcular la tasa de error por bit a la salida del
decodificador; esto es, en calcular el promedio entre el nmero de bits de
informacin errneos que produce el decodificador y el nmero de bits de
informacin que genera.
Supongamos que el decodificador realiza el algoritmo de Viterbi8 y, en
8 La decodificacin de mxima verosimilitud (ML) de secuencias del cdigo no es ne-

cesariamente la ptima para minimizar la probabilidad de error por bit de informacin.


Pero su implementacin es computacionalmente mucho ms sencilla que la de un al-
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 445

virtud del principio de linealidad, que se transmite el mensaje (la secuen-


cia del cdigo) (0, 0, 0, . . . ). Si el camino x que estima el decodificador al
observar la secuencia recibida es distinto del camino nulo, entonces x ne-
cesariamente debe diverger en algn momento del estado (0, 0, . . . , 0), para
volver a converger a l ms adelante (si no volviese a converger y el cdigo
no fuese catastrfico, la medida de x sera infinita, lo que es imposible si
el nmero de errores en el canal es finito). Cada una de las formas en que
sucede esto (cada uno de los distintos caminos que, partiendo del estado
cero, retornan luego a l tras pasar por una sucesin de estados intermedios
distintos del estado cero) representa un suceso de error, un subintervalo de
tiempo en el que el decodificador comete posiblemente errores al estimar la
secuencia de smbolos de informacin.

Definicin 12.10 (Secuencia de error). Una secuencia de error de


longitud N en un diagrama reticular de un cdigo convolucional es cualquier
camino s0 s1 . . . sN 1 s0 que parte del estado nulo y regresa por
primera vez a l tras N transiciones: s1 6= s0 , s2 6= s0 , . . . , sN 1 6= s0 .

Una secuencia de error concreta, e, da lugar a uno o varios errores de


decodificacin, tantos como el peso Hamming de la secuencia de smbolos
de informacin asociada a la trayectoria de estados e. Definamos E como el
conjunto de secuencias de error que comienzan en el instante t del diagrama
reticular. Una manera directa de caracterizar los errores de decodificacin
que origina un miembro cualquiera de E es por medio de una funcin indi-
cadora


r si e tiene r smbolos de informacin errneos

en el instante t + j;
Ij (
e) =


0 si e no contiene smbolos de informacin errneos

en el instante t + j.
As, la probabilidad de que el decodificador elija una determinada secuencia
de error con comienzo en t y un error en el instante t + j es sin ms
1 (Ij (
e) > 0) P(
e)
donde P( e) representa la probabilidad de decidir en favor de la secuencia
de error
e en lugar de optar por la secuencia 0.
La probabilidad de que en el instante t ocurra algn error de decodifi-
cacin ser
t
1 XX
Pt = Itj (
e) P(
e) (12.13)
k j=0
eE

goritmo ptimo y, adems, si las probabilidades de error en el canal son pequeas, la


discrepancia en el resultado final es despreciable.
446 Cdigos convolucionales

la suma de la contribucin de todas las secuencias de error que comienzan en


el instante j = 0, . . . , t, puesto que las distintas secuencias de error son even-
tos mutuamente excluyentes. Vea que en (12.13) se supone implcitamente
que P( e) es independiente del tiempo, es decir, se introduce un pequeo
error al despreciar la parte inicial transitoria del diagrama reticular.
Intercambiando en (12.13) el orden de las sumas se tiene que
t
1X X 1X
Pt = P(
e) Itj (
e) = f (
e) P(
e)
k k
eE
j=0 eE

con
t
X
f (
e) = Itj (
e)
j=0

el nmero de etapas con errores o fallos de decodificacin en los smbolos


de informacin de e. Si hacemos en estas expresiones t , considerando
que el sistema lleva largo tiempo en operacin y que la secuencia del cdigo
es de longitud ilimitada, entonces

X
X
f (
e) = Itj (
e) = Ij (
e)
j=0 j=0

es el nmero total de errores en los smbolos de informacin correspondiente


a la secuencia de error
e, y
1X
P = f (
e) P(
e) (12.14)
k
eE

es independiente de t. La ecuacin (12.14) significa que la probabilidad de


cometer algn error de decodificacin en rgimen permanente es igual al
nmero medio de etapas con errores de decodificacin, promediando sobre
todas las secuencias de error.
En general, es extremadamente difcil dar una expresin de la probabi-
lidad P(e) de que el decodificador seleccione la secuencia
e en lugar de la
secuencia nula emitida. Es posible, en cambio, hallar una cota superior de
P(e) razonando como sigue. Cuando pH ( e) = d, es claro que el decodifica-
dor decide en favor de alguna secuencia de error de peso d o menor si la
secuencia de smbolos que detecta a la salida del canal tiene peso Hamming
mayor o igual que  
d
d = .
2
Por consiguiente, P(
e) Pd cuando pH ( e) = d, con Pd designando la
probabilidad de que el ruido en el canal haya transformado la secuencia
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 447

nula en una secuencia con d o ms smbolos no nulos. Supongamos, para


simplificar la exposicin, que el canal es un canal binario simtrico con
probabilidad de equivocacin p. En estas condiciones,
 
Xd

d k

p (1 p)dk , d impar

k
k=(d+1)/2
Pd =   d  

1 d X d k

d/2
p (1 p) dd/2
+ p (1 p)dk , d par.

2 d/2 k
k=d/2+1

La expresin combinatoria Pd para el caso en que d es par supone que la


mitad de las veces que se observa una secuencia de peso d/2 se toma la
decisin correcta.
Cuando d es impar (si fuese par se razonara de manera anloga), Pd se
puede acotar aplicando el teorema de Chernoff
d
X    p d
d k
Pd = p (1 p)dk 2 p(1 p) .
k
k=(d+1)/2

Si se introduce esta frmula en (12.14), resulta



X f (
e)

1 XX
d
P = e)
P( i aid w
k k
eE
i=1 d=1 w=2(p(1p))1/2

en donde aid es el nmero de secuencias de error a distancia d que divergen


del estado cero y poseen i smbolos de informacin errneos. Para ver de
dnde procede esta expresin, note que

1X 1X d X
f ( e)
e) P( w f (
e)
k k
eE
d=1 eE:pH (
e)=d

y que, por definicin,


X
X
f (
e) = i aid .
eE:pH (
e)=d i=1

Es un sencilla transformacin algebraica verificar que


!
X
X

X
X
d
d i
i aid w = aid w z .
z
d=1 i=1 d=1 i=1 z=1

Pero X

X
T (z, w) = aid wd z i
d=1 i=1
448 Cdigos convolucionales



 


 
 

Figura 12.20. Codificador del ejemplo 12.13.

es la funcin enumeradora de distancias (en w) y errores en los bits de


informacin (en z) del cdigo convolucional, y por lo tanto se puede escribir
finalmente para la probabilidad de error por bit de informacin

1 T (z, w)
P < . (12.15)
k z w=2 p(1p),z=1

Cuando p es pequea, la cota (12.15) est dominada por la magnitud del


primer trmino, y entonces

1  p  dl 1
P Adl 2 p(1 p) Adl 2dl pdl /2 (12.16)
k k
siendo Adl la suma del nmero de smbolos de informacin errneos en todas
las secuencias de error a la distancia mnima libre dl .

Ejemplo 12.13. La funcin de transferencia del codificador convolucional


[2, 1] de la figura 12.20 es

w4 z 2 + w4 z w6 z 2
T (z, w) = .
1 w2 z w2 z 2 w2 z + w4 z 2
Tras realizar algunos clculos se obtiene

T (z, w) 3w4 3w6 + w8
=
z z=1 (1 3w2 + w4 )2

La grfica logartmica de esta funcin se ha representado en la figu-


ra 12.21. En el eje de abscisas se indica el valor de log(p) y en el de ordenadas
el de
3w4 3w6 + 4w8
log
(1 3w2 + w4 )2 w=2p(1p)

que, a tenor de (12.15), es una cota superior del logaritmo de la probabilidad


de error por bit.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 449

-2

-4

-6

-8
log P(error)

-10

-12

-14

-16
2 2.5 3 3.5 4 4.5 5 5.5 6
-log p

Figura 12.21. Grfica de la cota de la probabilidad de error de bit


(ejemplo 12.13). Por comparacin, se muestra con trazo discontinuo
la cota de la probabilidad de error de un cdigo convolucional ptimo
[2, 1, 2].

12.8. Puncin de cdigos convolucionales

En el diagrama reticular de un cdigo convolucional binario C[n, k, m]


aparecen 2m estados y 2k transiciones de salida (idem de entrada) en cada
estado. Cuando k o m o ambos son elevados, se dificulta la realizacin
del algoritmo de Viterbi, que en cada etapa debe procesar las medidas de
2m+k ramas. Se presenta entonces un compromiso entre la conveniencia de
utilizar un codificador con una tasa y un orden de memoria elevados (un
nmero elevado de estados), para incrementar la fiabilidad y la eficiencia, y
la inconveniencia de una retcula densamente conectada para el proceso de
decodificacin.

El procedimiento de puncin o perforacin de un cdigo convolucional


consiste en eliminar peridicamente ciertos smbolos de salida de un codifi-
cador [n, k] para obtener un cdigo de tasa mayor, al tiempo que se preserva
la estructura de la retcula del primero. Lo habitual en la prctica es que
k = 1, pero haremos la descripcin para un caso general. Consideremos,
en primer lugar, el cdigo convolucional que resulta al agrupar las secuen-
cias de smbolos de entrada de M en M ; esto es, el cdigo convolucional
C [M ] [nM, kM ]. El cdigo perforado se obtiene eliminando en cada conjunto
de nM smbolos de salida de C [M ] un cierto nmero de smbolos, que se
450 Cdigos convolucionales

especifican por medio de una matriz de perforacin P = {pij }nM , en la


que pij = 0 significa que el i-simo smbolo de salida del bloque j del grupo
de M bloques se borra, mientras que pij = 1 si se mantiene. Si la matriz de
perforacin tiene un total de elementos nulos, el cdigo perforado es de
parmetros [nM , kM ], es decir, de tasa kM/(nM ).
El diagrama reticular del cdigo perforado se obtiene a partir de la ret-
cula del cdigo [n, k] original simplemente prescindiendo en las etiquetas de
salida de cada rama de los smbolos que se han eliminado. El proceso de
perforacin produce, por tanto, un diagrama reticular con 2k transiciones
de salida (idem de entrada) en cada estado, diagrama que no es uniforme
en cada etapa,9 aunque es peridico con periodo M .
El cdigo obtenido por perforacin es un cdigo convolucional cuya ma-
triz generadora se puede obtener con el siguiente procedimiento. Sea G(D)
una matriz generadora cannica del cdigo de partida [n, k, m], que se podr
escribir como

G(D) = G0 + G1 D + G2 D2 + + Gm Dm

expresin en la cual el conjunto de matrices



G = G0 G1 . . . Gm

es el patrn generador del cdigo en el dominio del tiempo. El patrn gene-


rador del cdigo convolucional extendido M veces ser
1
G0 G1 .......... Gm
G0 G1 . . . . . Gm1 Gm 2
..
G[M ] =
..........................
.
.......................
G0 G1 ........ Gm M

Las dimensiones de G[M ] son kM n(M + m). Dentro de cada bloque


de nM columnas consecutivas [1, nM ], [nM + 1, 2nM ] . . . de esta matriz,
eliminemos las columnas i+(j1)M para los ndices i, j tales que pij = 0. En
[M ]
la matriz resultante, Gp , agrupemos las columnas en bloques de nM . El
patrn generador en el dominio del tiempo del cdigo perforado es, entonces,
 
Gp = G[M ] [M ]
p (1, nM ) Gp (nM + 1, 2(nM )) . . .
 
 m+M
= G0,p G1,p . . . Gr,p , r=
nM
9 No son constantes las secuencias de salida de las transiciones en etapas consecutivas;
la estructura de transiciones s es regular.
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 451

[M ] [M ]
en donde Gp (i, j) es la submatriz de Gp compuesta por las filas i, i +
1, . . . , j. La matriz generadora, en el dominio transformado D, del cdigo
obtenido por perforacin se obtiene directamente a partir del generador Gp
como
Gp (D) = G0,p + G1,p D + + Gr,p Dr .
Gp (D) es una matriz cannica si G(D) lo es, y el cdigo perforado es anti-
podal cuando el de partida es antipodal.
En general, la puncin es un mtodo con el que construir cdigos con-
volucionales de tasa kM/(nM ) a partir de uno de tasa k/n, de tal
manera que su diagrama reticular tenga la misma estructura de estados e
igual complejidad que la del cdigo matriz y, gracias a ello, la decodifica-
cin sea ms simple. Pero no se da la circunstancia, en general, de que los
cdigos perforados sean los ptimos (bajo el criterio de minimizacin de la
probabilidad de error) de entre la clase de cdigos [nM , kM ]. Por otro
lado, eligiendo adecuadamente la matriz de perforacin, es posible cambiar
la tasa de un dispositivo de codificacin, en funcin de las propiedades del
canal por ejemplo, sin variar en nada su estructura fsica.

Ejemplo 12.14. Para el cdigo C[3, 1, 3] del ejemplo 12.1, con matriz gene-
radora

G(D) = 1 + D 1 + D2 1 + D3
= (1, 1, 1) + (1, 0, 0)D + (0, 1, 0)D 2 + (0, 0, 1)D3
elijamos la matriz de perforacin

0 0 1
P = 1 0 0 .
1 1 0
P da lugar a un cdigo [4, 3] que se obtiene al borrar de C el primer bit
del primer grupo de tres bits a la salida, los bits primero y segundo de la
segunda terna de bits a la salida y los bits segundo y tercero de la siguiente
terna de salida.
El patrn generador de C extendido 3 intervalos de tiempo es

1 1 1 1 0 0 0 1 0 0 0 1
G[3] = 1 1 1 1 0 0 0 1 0 0 0 1 .
1 1 1 1 0 0 0 1 0 0 0 1
El patrn generador del cdigo perforado se obtiene tras borrar las columnas
1, 4, 5, 8 y 9 de cada grupo de 9 columnas de G[3]

1 1 0 0 0 1 0 0
G[3]
p =
0 0 1 1 1 0 1 0
0 0 0 1 0 0 0 0
452 Cdigos convolucionales

que, una vez agrupadas sus columnas de 4 en 4 y convertida al dominio D,


da como matriz generadora del cdigo perforado a

1 1+D 0 0
Gp (D) = D 0 1 + D 0 .
0 0 0 1

Obsrvese que la perforacin no preserva el grado: Gp (D) es un cdigo


convolucional [4, 3, 1].

Notas bibliogrficas

Los cdigos convolucionales fueron propuestos originalmente en 1955


[16]. Pronto se desarrollaron los primeros mtodos de decodificacin secuen-
cial ([78] y [42] constituyen dos buenas referencias tempranas), pero la falta
de un algoritmo eficiente ML de decodificacin y la inexistencia de una teora
formal apropiada hicieron decaer el inters inicial. La solucin por parte de
Viterbi [71] al problema de la decodificacin eficiente reactiv este campo de
estudio. El principal impulso por dotar a los cdigos convolucionales de una
fundamentacin formal slida es de Forney [20, 21]. La exposicin ms com-
pleta de la teora algebraica de los cdigos convolucionales es de Piret [51],
aunque McEliece [53, cap. 12] tambin ofrece una cobertura extensa.
El empleo de cdigos convolucionales como cdigos interiores en sistemas
de codificacin concatenada o multinivel es una tcnica bien conocida, y se
aplica en numerosos sistemas reales. La propuesta original de codificacin
concatenada con decodificacin soft es de G. D. Forney [19], pero se puede
hallar un tratamiento ms uniforme en [53].
El empleo integrado de cdigos convolucionales y modulaciones digitales
redundantes (llamado modulacin codificada [67]) constituye el avance ms
importante de las tcnicas de codificacin durante la dcada de los ochenta.
Permiti mejorar notablemente la fiabilidad de los canales limitados en ban-
da manteniendo una eficiencia espectral elevada. Una de las ideas centrales
de la modulacin codificada es la observacin por parte de G. Ungerboeck
de que la distancia eucldea entre las seales, y no la distancia Hamming en-
tre las palabras del cdigo, es el parmetro ms importante para conseguir
una buena proteccin frente a los errores. Los textos de transmisin digital,
como [55], dedican anlisis pormenorizados a esta solucin.
Las relaciones entre los cdigos de bloques, la representacin reticular
y los cdigos convolucionales, con particular nfasis en la decodificacin
Viterbi de cdigos de bloques, se exploran en [40].
En los ltimos aos, se ha producido un avance prctico muy significati-
vo, al descubrirse que el empleo de codificadores convolucionales recurrentes
C. Lpez, M. Veiga. Teora de la Informacin y Codificacin 453

en paralelo y de un procedimiento de decodificacin soft MAP iterativo con-


siguen resultados prcticamente idnticos al lmite de Shannon. El uso de
cdigos convolucionales resulta esencial en este esquema, llamado decodifi-
cacin turbo [32, 72]. Muy recientemente se ha dado forma a una teora que
unifica ciertos cdigos de bloques y los cdigos convolucionales como cdi-
gos definidos sobre grafos. Esta descripcin revela conexiones sorprendentes
entre ambos, y permite explicar en parte el funcionamiento de los algorit-
mos MAP de decodificacin iterativos. Resulta inslito descubrir que una
familia de cdigos de esta clase ya haba sido propuesta por R. G. Gallager
en 1962 [24].
Bibliografa

[1] N. Abramson. Information theory and coding. McGraw-Hill, 1963. Existe tra-
duccin al castellano, Teora de la informacin y la codificacin. Editorial
Paraninfo, 1986. 4.7.3
[2] E. F. Asmuss, Jr., H. F. Mattson, Jr. y R. J. Turyn. Research to develop the
algebraic theory of codes. Informe AFCRL-67-0365, Air Force Cambridge
Res. Labs., 1967. 7.9
[3] E. R. Berlekamp. Algebraic coding theory. McGraw-Hill, 1968. Tambin en:
Aegean Park Press, Laguna Hills, edicin revisada, 1984. 9.6, 10.4.3, 11.7
[4] E. R. Berlekamp. Key papers in the development of coding theory. IEEE Press,
1974. 6.10, 10, 28, 52
[5] D. Bertsekas, R. G. Gallager. Data networks. Prentice Hall, 2.a edicin, 1992.
8.2.5
[6] U. D. Black. Data link protocols. Prentice Hall, 1993. 8.2.5
[7] R. E. Blahut. Theory and practice of error control codes. Addison-Wesley,
1983. 7.9
[8] R. E. Blahut. Algebraic codes for data transmission. Cambridge Univ. Press,
2002. 7.9
[9] T. C. Bell, J. G. Cleary e I. H. Witten. Text compression. Prentice-Hall, 1990.
3.B.2
[10] R. C. Bose, D. K. RayChaudhuri, On a class of error correcting binary
group codes. Inform. and Control, vol. 3, pgs. 6879, 1960. Reimpreso
en [4], pgs. 7881. 7.9, 10.4.3
[11] A. R. Calderbank. The art of signaling: fifty years of coding theory. En In-
formation theory: 50 years of discovery, S. Verd y S. McLaughlin (editores),
pgs. 517551, IEEE Press, 2000. 6.10
[12] W. Cary Huffman, V. Pless. Fundamentals of error-correcting Codes. Cam-
bridge University Press, 2003. 11.5
[13] J. H. Conway, N. J. A. Sloane. Sphere packings, lattices and groups. Springer
Verlag, 1988. 5

455
456 Bibliografa

[14] D. J. Costello, Jr., J. Hagenauer, H. Imai y S. B. Wicker. Applications of


errorcontrol coding. En Information theory: 50 years of discovery, S. Verd
y S. McLaughlin (editores), pgs. 487516, IEEE Press, 2000. 6.10
[15] T. M. Cover, J. A. Thomas. Elements of information theory. Wiley, 1991.
2.4.1, 3.A, 3.B.2
[16] P. Elias. Coding for noisy channels. 1955 International Convention Record,
pgs. 3746, 1955. 12.8
[17] R. M. Fano. Class notes for course 6574: transmission of information. MIT,
1952. 4.7.3
[18] A. Feinstein. A new basic theorem of information theory. IRE Trans. Inf.
Theory, vol. 4, pgs. 222, 1954. 5.3
[19] G. D. Forney, Jr. Concatenated codes. MIT Press, 1966. 12.8
[20] G. D. Forney, Jr. Convolutional codes I: algebraic structure. IEEE Trans.
Inf. Theory, vol. 16, pgs. 720738, 1970. 12.1, 12.8
[21] G. D. Forney, Jr. The Viterbi algorithm. Proc. IEEE, vol. 61, pgs. 268
276, 1973. 12.4.1, 12.8
[22] G. D. Forney, Jr. Structural analysis of convolutional codes via dual codes.
IEEE Trans. Inf. Theory, vol. 19, pgs. 512518, 1973. 12.1
[23] G. D. Forney, Jr. Minimal bases of rational vector spaces, with applications
to multivariable linear systems. SIAM Journal on Control, vol. 13, no 3,
pgs. 493520, 1975. 12.1, 12.1
[24] R. G. Gallager. Low density parity-check codes. MIT Press, 1962. 12.8
[25] R. G. Gallager. A simple derivation of the coding theorem and some appli-
cations. IEEE Trans. Inf. Theory, vol. 11, pgs. 318, 1965. 5.3
[26] R. G. Gallager. Information theory and reliable communication. Wiley, 1968.
2.4.1
[27] R. G. Gallager. Claude E. Shannon: a retrospective of his Life, work and
impact. IEEE Trans. Inf. Theory, vol. 47, nm. 7, pgs. 26812695, 2001.
11
[28] D. C. Gorenstein, N. Zierler. A class of error-correcting codes in pm sym-
bols. J. SIAM, vol. 9, pgs. 207214, 1961. Reimpreso en [4], pgs. 8789.
11.7
[29] M. G. Gouda. Elements of network protocol design. Wiley, 1998. 8.2.5
[30] V. Guruswami, M. Sudan. Improved decoding of Reed-Solomon and
algebraic-geometric codes. IEEE Trans. Inf. Theory, vol. 45, pgs. 1757
1767, 1999. 11.5, 11.7
[31] R. V. L. Hartley. Transmission of information. Bell Systems Technical
Journal, vol. 7, pgs. 535563, julio 1928. 2
[32] C. Heegard, S. B. Wicker. Turbo coding. Kluwer Academic Publishers, 1998.
12.8
[33] G. J. Holzmann. Design and validation of computer protocols. Prentice Hall,
1991. 8.1.1, 8.2.5
Bibliografa 457

[34] D. Huffman. A method for the construction of minimum redundancy codes.


Proc. IRE, vol. 40, pgs. 10981101, 1952. 3.6
[35] J. Karush. A simple proof of an inequality of McMillan. IEEE Trans. Inf.
Theory, vol. 7, pg. 118, 1961. 3.6
[36] R. Koetter, A. Vardy. Algebraic soft-decision decoding of Reed-Solomon
codes. IEEE Trans. Inf. Theory, vol. 49, nm. 11, pgs. 28092825, 2003.
11.5
[37] L. Kraft. A device for quantizing, grouping and coding amplitude modulated
pulses. M. S. Thesis, Dept. Elec. Eng., MIT, 1949. 3.6
[38] A. Lempel, J. Ziv. On the complexity of an individual sequence. IEEE
Trans. Inf. Theory, vol. 22, pgs. 7581, 1976. 3.B.2
[39] S. Lin, D. J. Costello. Error control coding: fundamentals and applications.
Prentice Hall, 1983. 7.9, 8.2.5, 12.4
[40] S. Lin, T. Kasami, T. Fujiwara y M. Fossorier. Trellises and trellis-based
decoding algorithms for linear block codes. Kluwer Academic Publishers, 1998.
12.3, 12.8
[41] F. J. MacWilliams, N. J. A. Sloane. The theory of error correcting codes.
North Holland, 1977. 6.9, 6.10, 6.A, 6.A, 7.9, 10.1, 10.3, 3, 5
[42] J. L. Massey. Threshold decoding. MIT Press, 1963. 12.8
[43] J. L. Massey. Shift-register synthesis and BCH decoding. IEEE Trans. Inf.
Theory, vol. 15, pgs. 122127, 1969. 10.4.3
[44] H. F. Mattson, Jr., G. Solomon. A new treatment of BoseChaudhuri co-
des. J. SIAM, vol. 9, pgs. 654669, 1961. 7.9
[45] R. J. McEliece. The theory of information and coding. Encyclopedia of Math.
and its applications, Vol. 3. Addison Wesley, 1977. Tambin en Cambridge
Univ. Press, 2001, 2.a edicin. 2.4.1, 6.A
[46] R. J. McEliece, E. R. Rodemich, H. C. Rumsey y L. R. Welch. New upper
bounds on the rate of a code via the Delsarte-MacWilliams inequalities.
IEEE Trans. Inf. Theory, vol. 23, pgs. 157166, 1977.
[47] R. J. McEliece. Finite fields for computer scientists and engineers. Kluwer
Academic Publishers, 1987. 9.6
[48] B. McMillan. The basic theorems of information theory. Ann. Math. Sta-
tist., vol. 24, pgs. 196219, 1953. 3.6
[49] B. McMillan. Two inequalities implied by unique decipherability. IRE
Trans. Inf. Theory, vol. 2, pgs. 115116, 1956. 3.6
[50] M. S. Pinsker. Information and information stability of random variables and
processes. Holden Day, 1964. Publicado originalmente en ruso en 1960. 4.7.3
[51] Ph. Piret. Convolutional codes, an algebraic approach. MIT Press, 1988. 12.8
[52] V. S. Pless. Power moment identities on weight distributions in error co-
rrecting codes. Inform. and Control, vol. 6, pgs. 147152, 1963. Reimpreso
en [4], pgs. 266267. 6.10
458 Bibliografa

[53] V. S. Pless, W. C. Huffman. Handbook of coding theory. Vols. I y II. Elsevier,


1998. 7, 6.10, 6.A, 7.9, 10.4.3, 11.7, 12.1, 12.6, 12.8
[54] V. S. Pless. Introduction to the theory of error-correcting codes. Wiley, 3. a
edicin, 1998. 6.10
[55] J. G. Proakis. Digital communications. McGraw-Hill, 4.a edicin, 2001. 12.8
[56] I. S. Reed, G. Solomon. Polinomial codes over certain finite fields. J. SIAM,
vol. 8, pgs. 300304, 1960. 11.7
[57] I. S. Reed, X. Cheng. Error-control coding for data networks. Kluwer Acade-
mic Publishers, 1999. 11.7
[58] D. Salomon. Data compression. Springer, 2.a edicin, 2000. 3.B.1
[59] C. E. Shannon. A mathematical theory of communication. Bell Sys-
tems Technical Journal, vol. 27, pgs. 327423. Julio, 1948. Reimpreso en:
C. E. Shannon y W. Weaver (editores), A mathematical theory of commu-
nication. Univ. of Illinois Press, 1949 (primera reimpresin), 1963 (segunda
reimpresin). 12, 15, 2, 2.4.1, 3.6, 3.A, 4.7.3, 5.3, 6.10
[60] C. E. Shannon. A mathematical theory of communication. Bell Systems
Technical Journal, vol. 27, pgs. 623656. Octubre, 1948. Reimpreso en:
C. E. Shannon y W. Weaver (editores), A mathematical theory of commu-
nication. Univ. of Illinois Press, 1949 (primera reimpresin), 1963 (segunda
reimpresin). 12, 2.4.1, 4.7.3
[61] C. E. Shannon. Certain results in coding theory for noisy channels. Inform.
Contr., vol. 1, pgs. 625, 1957. 5.3
[62] D. Slepian. A class of binary signaling alphabets. Bell Systems Technical
Journal, vol. 39, pgs. 203234, 1956. 6.10
[63] D. Slepian. Some further theory of group codes. Bell Systems Technical
Journal, vol. 39, pgs. 12191252, 1960. 6.10
[64] D. Slepian. Key papers in the development of coding theory. IEEE Press, 1974.
6.10
[65] N. J. A. Sloane, A. D. Wyner. Claude Elwood Shannon: collected papers. IEEE
Press, 1993. 11
[66] Y. Sugiyama, M. Kasahara, S. Hirasawa y T. Namekawa. A method for
solving key equation for decoding Goppa codes. Infor. and Control, vol. 27,
pgs. 8799, 1975. 11.4.3, 11.7
[67] G. Ungerboeck. Channel coding with multilevel/phase signals. IEEE
Trans. Inf. Theory, vol. 28, pgs. 5567, 1982. 12.8
[68] J. H. van Lint, R. M. Wilson. On the minimum distance of cyclic codes.
IEEE Trans. Inf. Theory, vol. 32, pgs. 2340, 1986. 7.9, 10.4.3
[69] J. H. van Lint. Introduction to coding theory. Springer, 3.a edicin, 1998. 6.10,
10.1
[70] S. Verd, S. McLaughlin (editores). Information theory: 50 years of discovery.
IEEE Press, 2000. 6.10
Bibliografa 459

[71] A. J. Viterbi. Error bounds for convolutional codes and an asymptotically


optimum decoding algorithm. IEEE Trans. Inf. Theory, vol. 13, pgs. 260
269, abril 1967. 12.8
[72] B. Vucetic, J. Yuan. Turbo codes. principles and applications. Kluwer Acade-
mic Publishers, 2000. 12.8
[73] T. A. Welch. A technique for high performance data compression. Com-
puter, vol. 17, pgs. 819, 1984. 3.B.2
[74] S. B. Wicker, B. K. Barghawa. Reed-Solomon codes and their applications.
IEEE Press, 1994. 11.7
[75] S. B. Wicker. Error control systems for digital communications and storage.
Prentice Hall, 1995. 8.2.5, 11.7
[76] A. D. Wyner, J. Ziv. The sliding-window Lempel-Ziv algorithm is asymp-
totically optimal. Proc. IEEE, vol. 82, pgs. 872877, 1994. 3.B.2
[77] J. Wolfowitz. The coding of messages subject to chance errors. Illinois
Journal of Mathematics, vol. 1, pgs. 591606, 1957. 5.3
[78] J. M. Wozencraft, B. Reiffen. Sequential decoding. MIT Press, 1961. 12.8
[79] J. Ziv, A. Lempel. A universal algorithm for sequential data compression.
IEEE Trans. Inf. Theory, vol. 23, pgs. 337343, 1977. 3.B.2
[80] J. Ziv. Coding theories for individual sequences. IEEE Trans. Inf. Theory,
vol. 24, pgs. 405412, 1978. 3.B.2
[81] J. Ziv, A. Lempel. Compression of individual sequences via variable-rate
coding. IEEE Trans. Inf. Theory, vol. 24, pgs. 530536, 1978.

3.B.2
ndice alfabtico

A distribuido, 244
abeliano eucldeo, 363
anillo , 237 alternante
cuerpo , 271 cdigo(s) , 192, 303
grupo , 141 protocolo de bit , 249
semigrupo , 418 anillo, 237, 275
ACK, vase asentimiento abeliano, 237
acortado conmutativo, 237
cdigo(s) , 171, 233, 239, 348, 372 de ideales principales, 239
afn unitario, 237
grupo , 314 antipodal
alfabeto, 3 cdigo(s) , 414
binario, 3 rbol completo, 58
de codificacin, 5 arco, 407
de entrada, 4 aritmtica
de la fuente, 3 binario/a, 141
de salida, 4 mdulo-2, 143
lgebra ARQ, 243
de Boole, 143 correccin , 245
(IR+ {}, mn, +), 419 eficiencia , 245
algebraicogeomtrico envo continuo con rechazo
cdigo(s) , 337 selectivo, 255
algoritmo envo continuo con rechazo
de Berlekamp, 331 simple, 251
de BerlekampMassey, 359, 390 parada y espera, 247, 251
de bsqueda de Chien, 333 asentimiento, 247
de decodificacin por acumulativo, 251
permutacin, 226 negativo, 247, 249, 250, 261
de decodificacin por sndrome, positivo, 247, 249251, 255
155 autoortogonal
de divisin eucldeo, 273, 275, 363 cdigo(s) , 149
de Fano, 417 autodual
de Forney, 356, 357 cdigo(s) , 149
de Huffman, 67 automorfismos, 225, 285, 314
de Peterson, 327 de Galois, 285
de PetersonGorensteinZierler, de permutacin, 225
353
de pila, 417 B
de Sugiyama, 363 base, 145
de Viterbi, 393, 417, 419, 424 BCH
de Wozencraft, 417 cdigo(s) , 304

461
462 ndice alfabtico

cdigo(s) primitivo, 305 caracterstica de un cuerpo, 277


cota , 306 cardinal, 272
Berlekamp catastrfico
algoritmo de , 331 codificador , 405, 434
Berlekamp, E., 360 Cayley
BerlekampMassey tabla de , 273
algoritmo de , 359, 390 cclico
teorema de , 389 cdigo(s) , 197
binario/a grupo , 279
alfabeto, 3 permutacin , 226
aritmtica , 141 ciclotmico
cdigo(s) , 141 conjunto , 291
cuerpo , 141 polinomio , 291
producto , 141 clave
suma , 141 ecuacin , 357
bit, 3, 31 cobertura
bloqueo, 248 radio de , 165
bloques cociente
codificador de , 140 grupo , 157
cdigo(s) de , 51, 53, 139 codificacin
Boole alfabeto de , 5
lgebra de , 143 de longitud constante, 12
Bose de longitud variable, 12
distancia de , 313 tasa de , 19
Bose, R. C., 303 codificador, 5
bsqueda de Chien de bloques, 140
algoritmo de , 333 de canal, 139
catastrfico, 405, 434
C convolucional, 394, 395
cadena de Markov, 75 de canal, 6
aperidica, 77 de fuente, 6, 66
ergdica, 78 cdigo(s), 1
irreducible, 76 acortado, 171, 233, 239, 348, 372
cadencia eficaz, 258 algebraicogeomtrico, 337
camino(s), 407 alternante, 192, 303
enumeracin de , 428 antipodal, 414
superviviente, 424 autoortogonal, 149
canal, 2 autodual, 149
analgico, 2 BCH, 304
binario con borrado, 11 BCH primitivo, 305
binario simtrico, 11 binario/a, 141
canales en serie, 112 cclico, 197
codificador de , 139 compacto, 15, 52, 68
digital, 2 complementario, 205, 234
discreto, 3, 9 convolucional, 395
discreto sin memoria, 10 de bloques, 51, 53, 139
ideal, 3 de control de errores, 139
punto a punto, 3 de distancia mxima, 340
ruidoso, 3 de mxima distancia separable,
simtrico, 108 182
yuxtaposicin de canales, 110 de repeticin, 19, 182
capacidad doblecirculante, 192
de canal, 105 dual, 149
captura de error, 221 eficiente, 182
carcter, 173 equivalencia de , 146
ndice alfabtico 463

equivalente, 146 cdigo(s) , 205, 234


extendido, 171, 314 concordancia
Golay, 171, 203 teorema de , 386
Goppa, 192, 303 congruencia, 238, 272, 274
Hadamard, 186 congruente
Hamming, 170 polinomio , 238
impar, 338 conjugado
instantneo, 55 elemento , 286
irreducible, 231, 233 conjunto
Justesen, 303 ciclotmico, 291
lineal, 143 ortogonal, 148
longitud de , 14, 57, 141 conmutativo
MDS, 340 anillo , 237
mnimo, 231 cuerpo , 271
no degenerado, 182 grupo , 141
no lineal, 181 monoide , 418
no singular, 53 semigrupo , 418
ptimos, 62 control de errores
ortogonal, 148 cdigo(s) de , 139
palabra del , 51, 139 convexa
par, 338 funcin , 34
perfecto, 167 regin , 33
perforado, 372, 443 convolucin, 402, 421
puncin de , 443 peridica, 416
quasiperfecto, 167 convolucional
recurrente, 393 codificador , 394, 395
ReedMuller, 171 cdigo(s) , 395
ReedSolomon, 305, 337, 338 correccin
RS, 337, 338 ARQ, 245
RS generalizados, 373 coset, vase cogrupo
separable, 340 cota
sin memoria, 51, 141 BCH, 306
sistemtico, 146, 206 de distancia, 181
smplex, 186, 231 de Elias, 189
unvocamente decodificable, 12, de GilbertVarshamov, 191
51, 55 de Griesmer, 187
vector , 144 de Hamming, 183
cdigo convolucional, 395 de McEliece, 195
codificador catastrfico, 434 de Plotkin, 185
decodificacin, 423 de Singleton, 181
grado externo, 400 cuerpo, 271
matriz cannica, 400 abeliano, 271
matriz de perforacin, 443 binario/a, 141
matriz generadora, 397, 401 conmutativo, 271
patrn generador, 402 de Galois, 141
perforado, 443 estructura aditiva de un , 279
probabilidad de error, 438 estructura multiplicativa de un ,
puncin, 443 281
terminacin por seccionamiento, finito, 141, 272
415 primo, 278
terminacin de un , 414
cogrupo, 155 D
compacto deadlock, vase bloqueo
cdigo(s) , 15, 52, 68 decodificable
complementario cdigo(s) unvocamente , 51, 55
464 ndice alfabtico

decodificacin cdigo(s) , 149


completa, 318 dualidad, 149
con smbolos borrados, 366
de distancia acotada, 319 E
de mxima verosimilitud, 154 ecuacin
de secuencias, 417, 422 clave, 357
hard, 367, 421 eficiencia
incompleta, 319 ARQ, 245
MAP, 134, 418 de un cdigo, 66
ML, 134, 418 elemento
ptima, 133 conjugado, 286
por mayora, 21 divisor de cero, 238
por permutacin, 226 generador, 239, 279
por sndrome, 152 neutro, 141
soft, 367, 421 opuesto, 143
decodificador, 6 orden de un , 279
con captura de error, 221 primitivo, 281
Meggitt, 221 simtrica/o, 141
degenerado unidad, 271
cdigo(s) no , 182 Elias
desigualdad cota de , 189
de Fano, 96 Elias, P., 393
de Gibbs, 38 entropa, 29
de Jensen, 37 condicional, 92
desplazamiento cclico, 197 conjunta, 48
deteccin de secuencias, 422 tasa de , 73
diagrama reticular, 407 enumeracin
dimensin, 143 de camino(s), 428
discreta/o enumerador
canal , 3 polinomio , 172
fuente , 3 envo continuo
diseo con rechazo selectivo, 255
distancia de , 304 con rechazo simple, 251
distancia, 161 equivalencia
cdigo(s) de mxima, 340 de cdigo(s), 146
cota de , 181 relacin de , 272
de Bose, 313 equivalente
de diseo, 304 cdigo(s) , 146
de un cdigo, 161 matriz , 146
decodificacin de acotada, 319 error
Hamming, 161 captura de , 227
mnima libre, 431 polinomio , 215
distribucin polinomio evaluador de , 356, 360
estacionaria, 78 polinomio localizador de , 323,
de pesos, 166 352, 370
distribuido rfaga de , 217
algoritmo , 244 secuencia de , 438
divisor trapping, 227
elemento de cero, 238 escalar
doblecirculante producto , 148
cdigo(s) , 192 espacio vectorial, 143, 198
dominio estacionaria
de integridad, 238, 274, 397 distribucin , 78
eucldeo, 274, 275 estado, 405
dual estrategias ARQ, 244
ndice alfabtico 465

eucldeo matriz , 145


algoritmo de divisin , 273, 275 GF, vase cuerpo de Galois
dominio , 274, 275 Gibbs
extendido desigualdad de , 38
cdigo(s) , 171, 314 GilbertVarshamov
extensin cota de , 191
de un cdigo, 54, 171, 315, 346 go-back-n, vase envo continuo con
de un cuerpo, 277 rechazo simple
de una fuente, 15 Golay
externo cdigo(s) , 171, 203
grado , 400 Golay, M. J. E., 170
Goppa
F cdigo(s) , 192, 303
Fano Gorenstein, D., 353
algoritmo de , 417 grado, 395, 401
desigualdad de , 96 externo, 400
Fano, R. M., 417 grafo, 405
FEC, 243 Griesmer
Fermat cota de , 187
teorema de , 282 grupo
FermatEuler abeliano, 141
teorema de , 290 afn, 314
fiable cclico, 279
transmisin , 4 cociente, 157
flujo, 418 conmutativo, 141
forma bilineal, 148
Forney H
algoritmo de , 356, 357 Hadamard
Forney, G. D., 398, 405 cdigo(s) , 186
Fourier transformada de , 173
transformada de , 381 Hagelbarger, D. W., 393
fuente Hamming
binaria simtrica/o, 9 cdigo(s) , 170
discreta, 3, 8 cota de , 183
discreta sin memoria, 9 distancia , 161
funcin peso , 161
convexa, 34 Hamming, R. W., 170
de salida, 406 Hartley, R. V. L., 31
de transferencia, 429 hartleys, 31
de transicin, 406 Hocquenghem, A., 303
elemental simtrica, 292, 325 homogneo
estrictamente convexa, 34 polinomio , 172
indicadora, 438 Huffman
algoritmo de , 67
G Huffman, D. A., 68
Galois
automorfismos de , 285 I
cuerpo de , 141 ideal, 238
Gauss principal, 239
mtodo de , 145 identidad
generador clave, 378
elemento , 239, 279 de MacWilliams, 171
patrn , 402 identidades
polinomio , 200 de Newton, 325
generadora de Newton generalizadas, 353
466 ndice alfabtico

impar cadena de aperidica, 77


cdigo(s) , 338 cadena de ergdica, 78
incompleta cadena de irreducible, 76
decodificacin , 319 Massey
indicadora teorema de , 387
funcin , 438 Massey, J. L., 360, 387, 435
informacin MasseySain
cantidad de , 40 teorema de , 435
mutua, 97 matriz
mutua condicional, 101 cannica, 400
teorema de procesamiento de la ,
de comprobacin de paridad, 150
101
de perforacin, 443
instantneo
de Vandermonde, 307, 355
cdigo(s) , 55
integridad equivalente, 146
dominio de , 238, 397 estocstica, 11
irreducible generadora, 145
cdigo(s) , 231, 233 pseudoinversa, 435
polinomio , 274 tpica, 155
Toeplitz, 354
J mxima
Jensen verosimilitud, 134
desigualdad de , 37 mximo
Justesen a posteriori, 134, 421
cdigo(s) , 303 McEliece
cota de , 195
K McEliece, R. J., 418
Kraft McMillan
teorema de , 59 teorema de , 61
Krawtchouk MDS
polinomio de , 176 cdigo(s) , 340
Meggitt
L decodificador , 221
Lagrange memoria
teorema de , 280 cdigo(s) sin , 51
Levenshtein mensaje digital, 3
teorema de , 186 mtodo
lineal de Gauss, 145
cdigo(s) , 143
mnima libre
cdigo(s) no , 181
distancia , 431
localizador
mnimo
polinomio , 324, 383
cdigo(s) , 231
polinomio de smbolos borrados,
370 polinomio , 286
longitud ML, vase mxima verosimilitud, vase
de cdigo(s), 14, 57, 141 mxima verosimilitud
decodificacin , 134, 418
M mdulo-p
MacWilliams residuo , 273
identidad de , 171 mdulo-2
MacWilliams, F. J., 171 aritmtica , 143
MAP, vase mximo a posteriori mnico
decodificacin , 134, 418 polinomio , 199, 286
Markov monoide
cadena de , 75 conmutativo, 418
ndice alfabtico 467

N algoritmo de , 353
NACK, vase asentimiento negativo Peterson, W. W., 327
nats, 31 pila
negativo algoritmo de , 417
asentimiento , 261 Plotkin
neutro cota de , 185
elemento , 141 polinomio
Newton ciclotmico, 291
identidades de , 325 congruente, 238
nodo, 407 enumerador, 172
error, 215
O evaluador de error, 356, 360
ptima generador, 200
decodificacin , 133 homogneo, 172
ptimos irreducible, 274
cdigo(s) , 62 de Krawtchouk, 176
opuesto localizador, 324, 383
elemento , 143 localizador de error, 352, 370
orden localizador de smbolos borrados,
de un elemento, 279 370
ortogonal, 148 mnimo, 286
cdigo(s) , 148 mnico, 199, 286
conjunto , 148 primitivo, 216, 287
vector , 148 recproco, 204
sndrome, 353
P polinomio localizador de error, 323
palabra positivo
del cdigo(s), 139 asentimiento , 250, 255
par posteriori
cdigo(s) , 338 mximo a , 134, 421
parada y espera, 247, 251 primitivo
paridad elemento , 281
ecuaciones de comprobacin de , polinomio , 216, 287
150 primo
matriz de comprobacin de , 150 cuerpo , 278
patrn principal
generador, 402 ideal , 239
perfecto probabilidad
cdigo(s) , 167 de error de decodificacin, 166
perforacin de error no detectado, 166
matriz de , 443 de transicin, 76
perforado producto
cdigo(s) , 372, 443 binario/a, 141
permutacin escalar, 148
decodificacin por , 226 propiedad de particin, 41
permutacin protocolo, 244
automorfismos de , 225 de bit alternante, 249
cclico, 226 pseudoinversa
peso matriz , 435
Hamming, 161 puncin, 348
pesos de cdigo(s), 443
distribucin de , 166
Peterson Q
algoritmo de , 327 quasiperfecto
PetersonGorensteinZierler cdigo(s) , 167
468 ndice alfabtico

R teorema de de codificacin de
radio fuente, 65
de cobertura, 165 simtrica/o
rfaga elemento , 141
de error, 217 fuente binaria , 9
Ray-Chaudhuri, A. K., 303 simple
raz rechazo , 251, 255
n-sima de la unidad, 290 sndrome, 153
rechazo decodificacin por , 152
selectivo, 258 polinomio , 353
simple, 251, 255 vector , 153
recproco sndromes
polinomio , 204 tabla de , 155
recurrente Singleton
cdigo(s) , 393 cota de , 181
redundancia de un cdigo, 66, 141 singular
Reed, I., 340 cdigo(s) no , 53
ReedMuller sistema equivalente de vectores, 146
cdigo(s) , 171 sistemtico
ReedSolomon cdigo(s) , 146, 206
cdigo(s) , 305, 337, 338 Solomon, G., 340
rgimen subanillo, 238
de transmisin, 3 subcdigosubcuerpo, 311
regin subcuerpo, 278
convexa, 33 Sugiyama
relacin algoritmo de , 363
de equivalencia, 272 Sugiyama, Y., 363
residuo suma
mdulo-p, 273 binario/a, 141
superviviente
retardo, 3
camino(s) , 424
RS
smplex
cdigo(s) , 337, 338
cdigo(s) , 186, 231
cdigo(s) generalizados, 373
ruido, 4
T
tabla
S de Cayley, 273
salida de sndromes, 155
funcin de , 406 tasa
seccionamiento, 415 de entropa, 73
secuencia tasa de cdigo, 141
de error, 438 temporizador, 248
secuencias teorema
decodificacin de , 417, 422 de BerlekampMassey, 389
selectivo de concordancia, 386
rechazo , 258 de Fermat, 282
semianillo, 418, 423 de FermatEuler, 290
semigrupo de Kraft, 59
abeliano, 418 de Lagrange, 280
conmutativo, 418 de Levenshtein, 186
separable de Massey, 387
cdigo(s) , 340 de MasseySain, 435
Shannon de McMillan, 61
teorema de de codificacin de de procesamiento de la
canal, 118, 126 informacin, 101
ndice alfabtico 469

de Shannon de codificacin de
canal, 118, 126
de Shannon de codificacin de
fuente, 65
de Wedderburn, 272
tpica
matriz , 155
Toeplitz
matriz , 354
trama, 244
transferencia
funcin de , 429
transformada
de Fourier, 381
de Hadamard, 173
transformada-D, 395
transicin
funcin de , 406
probabilidad de , 76
trapping
error , 227

U
unidad
elemento , 271
unitario
anillo , 237

V
Vandermonde
matriz de , 307, 355
vector
cdigo(s), 144
ortogonal, 148
sndrome, 153
vector de error, 152
ventana deslizante, 252
verosimilitud
mxima , 134
Viterbi
algoritmo de , 393, 417, 419, 424
Viterbi, A. J., 418

W
Wedderburn
teorema de , 272
Wozencraft
algoritmo de , 417
Wozencraft, J. M., 417

Z
Zierler, N., 353
Este libro ha sido compuesto utilizando tipos EC a 10pt y el sistema de
edicin LATEX 2 . Se termin de imprimir en la imprenta Trculo Artes
Grficas, Santiago de Compostela, Espaa, el 25 de septiembre de 2003.
Este libro contiene las ideas bsicas de la Teora de la Informacin y la
Teora de la Codificacin, dos campos esenciales para la comprensin cabal
de la ingeniera de los modernos sistemas de transmisin digital.
Los autores han querido dar:

una presentacin autocontenida y actualizada, en un solo volumen,


de la Teora de la Informacin, las tcnicas de codificacin de fuente,
las de codificacin de canal y los fundamentos de los protocolos de
retransmisin;
un estudio detallado de los cdigos algebraicos de control de errores
ms utilizados en las aplicaciones: los cdigos lineales, los cdigos
cclicos, los cdigos BCH y los cdigos ReedSolomon, con
abundantes ejemplos de los mtodos de decodificacin ms
apropiados para cada clase;
una exposicin precisa de los cdigos convolucionales en cuanto que
tcnicas de control de errores; la mayora de textos los tratan slo
desde la perspectiva de las modulaciones digitales.
Cndido Lpez Garca es Dr. Ingeniero de Telecomunicacin por la
Universidad Politcnica de Madrid (1995). Actualmente es Profesor
Titular de Universidad del Departamento de Ingeniera Telemtica de la
Universidad de Vigo e imparte clases de Fundamentos de Telemtica y
Redes y Servicios Telemticos en la E.T.S.I. de Telecomunicacin.
Manuel Fernndez Veiga es Dr. Ingeniero de Telecomunicacin por la
Universidad de Vigo (2001). Actualmente es Profesor Titular de
Universidad del Departamento de Ingeniera Telemtica en la misma
Universidad e imparte clases de Fundamentos de Telemtica y Redes y
Servicios Telemticos en la E.T.S.I. de Telecomunicacin.

Vous aimerez peut-être aussi