Вы находитесь на странице: 1из 186

INSTITUTO DE INVESTIGACIONES EN INFORMTICA

CARRERA DE INFORMTICA

FACULTAD DE CIENCIAS PURAS Y NATURALES


UNIVERSIDAD MAYOR DE SAN ANDRS

TEORA DE LA INFORMACIN Y LA CODIFICACIN

Por Lucio Torrico

A Avril.

TABLA DE CONTENIDO
PREFACIO.......................................................................................................................... 5
CAPTULO 1: FUENTES DE INFORMACIN Y ENTROPA
FUENTES DE INFORMACIN DE MEMORIA NULA................................................. 6
FUENTES DE INFORMACIN DE MEMORIA NULA EXTENDIDAS....................... 9
FUENTES DE MARKOV..................................................................................................10
ENTROPA DE UNA FUENTE DE MARKOV............................................................... 12
FUENTE AFN O ADJUNTA........................................................................................... 18
EXTENSIN n-sima DE UNA FUENTE DE MARKOV.............................................. 19
CAPTULO 2: INTRODUCCIN A LOS CDIGOS
CDIGOS.......................................................................................................................... 22
EXTENSIN DE ORDEN n DE UN CDIGO.............................................................. 28
PROPIEDADES DE LOS CDIGOS............................................................................... 29
TEOREMA DE KRAFT.................................................................................................... 31
TEOREMA DE McMILLAN............................................................................................ 41
CAPTULO 3: CDIGOS Y FUENTES DE INFORMACIN. PROPIEDADES
LEMA DE GIBBS................................................. ............................................................ 48
PROPIEDADES DE LA ENTROPA................................................................................ 49
ENTROPI DE LA EXTENSIN DE UNA FUENTE.................................................... 50
LONGITUD MEDIA DE UN CDIGO Y CDIGO COMPACTO................................ 54
OTRAS PROPIEDADES DE LOS CDIGOS INSTANTNEOS COMPACTOS........ 55
RELACIONES ENTRE ENTROPA Y LONGITUD MEDIA......................................... 58
EL PRIMER TEOREMA DE SHANNON........................................................................ 61
CAPTULO 4: CODIFICACIN DE FUENTES
Y CONSTRUCCIN DE CDIGOS
CONSTRUCCIN DE UN CDIGO PARA UNA FUENTE-S...................................... 62
CODIFICACIN ARITMTICA...................................................................................... 68
CAPTULO 5: CANALES
CANALES DE INFORMACIN CON RUIDO............................................................... 71
LA INFORMACIN MUTUA NO ES NEGATIVA........................................................ 75
RECIPROCIDAD DE LA INFORMACIN MUTUA..................................................... 78
OTROS RESULTADOS................................................. .................................................. 80
CANALES ESPECIALES................................................. ............................................... 83
CANALES EN SERIE................................................. ..................................................... 88
TEOREMA DEL PROCESAMIENTO DE DATOS......................................................... 89
ADITIVIDAD DE LA INFORMACIN MUTUA........................................................... 93
REDUCCIN DE CANALES................................................. ......................................... 97
CAPACIDAD DE UN CANAL....................................................................................... 100
CAPTULO 6: CDIGOS CANAL
REGLAS DE DECISIN.................................................................................................103
EL SEGUNDO TEOREMA DE SHANNON................................................................. 107
DISTANCIA DE HAMMING........................................................................................ 111
CDIGOS DETECTORES Y CORRECTORES............................................................ 115
ALGUNOS EJEMPLOS DE CDIGOS CANAL.......................................................... 124

CAPTULO 7: CDIGOS LINEALES....................................................................... 130


MATRIZ GENERADORA.............................................................................................. 131
CDIGO DUAL.............................................................................................................. 134
MATRIZ DE TESTEO DE PARIDAD........................................................................... 135
SNDROME......................................................................................... 140
CDIGO EXPANDIDO.................................................................................................. 141
MATRIZ ESTNDAR.................................................................................................... 142
CDIGOS DE HAMMING............................................................................................. 147
CAPTULO 8: CDIGOS CCLICOS........................................................................ 154
IDEALES Y CDIGOS CCLICOS. ............................................................................. 155
ANEXO 1 (Demostracin de " lim pi logr (1/pi ) = 0" ).............................................. 172

pi > 0

ANEXO 2 (Demostracin de "Si x>0 Kx xl

Entonces K 1")........................ 173

ANEXO 3 (Campos y Espacios lineales)........................................................................ 174


ANEXO 4 (Anillo de polinomios e ideales).................................................................... 183
ndice................................................................................................................................ 185

BIBLIOGRAFA

PREFACIO
Este trabajo tiene la pretensin de presentar la Teora de la Informacin y la Codificacin
desde una perspectiva acadmica; tratando de reflejar su elegancia y su riqueza inherente.
Como es imaginable, no se ha podido abarcar todo el espectro posible, hubo la necesidad
de tomar posiciones y hacer elecciones.
A la descripcin esquemtica y ejemplificada se la ha complementado con un cierto rigor
en la demostracin, que sin embargo quiere poseer claridad a travs de explicaciones y un
mayor nmero de pasos intermedios.
Se cubren los canales sin ruido, de Markov, con ruido, sistema de entropas y codificacin
libre de errores; adems se ha introducido una parte dedicada a los cdigos detectores y
correctores y a su teora subyacente, en particular los cdigos lineales.
Resta agradecer a la Universidad Mayor de San Andrs, a la Facultad de Ciencias Puras y
Naturales, a la Carrera de Informtica y al I.I.I., es decir, a las personas de estas
instituciones quienes han hecho que este esfuerzo sea posible; asimismo a tod@s quienes
han trabajado y trabajan en el campo, sin cuya labor previa nada de esto existira.
En particular gracias a Ivone Neolopan y a Marcio Gutierrez.
Los desaciertos son mi responsabilidad: me adelanto en agradecer a quienes hagan
notarlos, tanto en los errores de transcripcin valga el eufemismo-, como en los otros
que merecern doble disculpa y doble agradecimiento.

Lucio Torrico
luciotorrico@gmail.com

FUENTES DE INFORMACIN DE MEMORIA NULA


Una fuente de informacin de memoria nula, denotada por Fuente-S, es un par ordenado
definido como sigue.
Fuente-S = (S,) donde:
S = {s1, s2, ... , sq} es el alfabeto de la fuente
es una distribucin de probabilidades que asigna a cada smbolo si (i=1,...,q) una
probabilidad de emisin prob(si) = pi
De la definicin de distribucin de probabilidades est claro que:
i) 0 pi 1 (i=1,...,q)
q

ii) pi = 1
i =1

Usualmente se representa en una tabla as:

S
s1

pi
p1

.
.

.
.

sq

pq

Ejemplo concreto de una Fuente-S:


S

pi

s1
s2
s3
s4

0.2
0.1
0.35
0.35

Con q = 4

Ntese que utilizamos "q" para el nmero de


smbolos de la fuente.
Fuente equiprobable.- Una Fuente-S de memoria nula se dice equiprobable cuando todas
sus probabilidades son iguales, es decir, cuando p1 = ... = pq = 1/q
Ejemplo: con q = 2
S

pi

s1
s2

1/2
1/2

En una Fuente-S de memoria nula la aparicin/emisin de un smbolo es independiente de


la emisin de otro.
Es comn utilizar S en vez de Fuente-S.
Cantidad de informacin que conlleva el smbolo si denotada por I(si).Debe medir el grado de incertidumbre como una funcin decreciente de la probabilidad:
a menor incertidumbre menor informacin, a mayor incertidumbre mayor informacin;
o de manera equivalente, a mayor certidumbre menor informacin y a menor certidumbre
mayor informacin.

Debe sumarse la informacion de dos smbolos sucesivos independientes, es decir:


I(sisj) = I(si) + I(sj)
Aunque hubieron algunas propuestas ms, se ha aceptado la siguiente definicin:
I(si) = logr 1/pi = - logr pi
r-its
Por r-its entenderemos las unidades de la cantidad de informacin, segn sea la base r del
logaritmo que se utilice. Cuando la base es r = 2 las unidades se llaman bits, con r = 10
decs, con r = e nats, etc.
Es claro que
Por convencin

cuando pi = 1, I(si) = logr 1/1 = logr 1 = 0


cuando pi = 0, I(si) = logr 1/0 = - logr 0 = +

r-its
r-its

Entropa de una fuente de informacin de memoria nula, denotada por Hr(S).- Est
definida por:
q

i =1

i =1

Hr(S) = pi I(si) = pi logr 1/pi = -

i =1

pi logr pi

r-its

Y mide la cantidad de informacin media por smbolo de una Fuente-S de memoria nula.
Sus unidades son medidas en r-its. Cuando la base del logaritmo es r = 2 las unidades se
llaman bits, con r = 10 decs, con r = e nats, etc.
Generalmente se trabaja con r = 2 -es decir la entropa medida en bits- y suele omitirse la
escritura de este smbolo.
Es claro que
cuando pi = 1, pi logr (1/pi ) = 1 log 1/1 = 1 0 = 0
r-its
0
r-its
Estableceremos que cuando pi = 0, pi logr (1/pi ) =
(Ver Anexo 1)
Ejemplo: Calcularemos la entropa en nats para la Fuente-S:
S

pi

s1
s2
s3
s4

0.2
0.1
0.35
0.35

He(S) = pi loge 1/pi


i =1

= 0.2 ln(1/0.2) + 0.1 ln(1/0.1) + 0.35 ln(1/0.35) + 0.35 ln(1/0.35)


= 2/10 ln (10/2) + 1/10 ln (10/1) + 35/100 ln(100/35) + 35/100 ln(100/35)
= 0.2 1.60943 + 0.1 2.30258 + 0.35 1.04982 + 0.35 1.04982
=
0.32188
+
0.23025 +
0.36743
+ 0.36743
= 1.28702 nats

Es interesante notar que si tenemos la entropa en v-its (base v), puede calcularse
fcilmente la entropa en r-its (base r) as:
Dado que logv z = (logr z / logr v), entonces:
q

Hv(S) = pi logv 1/pi v-its = (1/ logr v) pi logr 1/pi


i=1

r-its

i=1

Es decir,

Hv(S) v-its = (1/ logr v) Hr(S) r-its


Pero entonces Hr(S) r-its = logr v ( Hv(S) v-its )
Obviamente tambin es vlido Hr(S) r-its = ( 1/logv r ) ( Hv(S) v-its )
Para nuestro ejemplo donde He(S) = 1.28702157893 nats, si queremos calcular la
entropa en bits tendremos:
H2(S) = log2 e 1.28702157893 bits = (1,44269504088)(1.28702157893) bits
= 1,85677964944 bits
=
(1/ln 2)
( 1.28702157893) bits
= (1.44269504088) ( 1.28702157893) bits
= 1,85677964944 bits

FUENTES DE INFORMACIN DE MEMORIA NULA EXTENDIDAS


La extensin de orden n de una fuente de informacin de memoria nula, denotada por
Fuente-Sn, es otra fuente de memoria nula que se obtiene de la Fuente-S original segn se
indica a continuacin.
Sea la Fuente-S original representada as:

S
s1

pi
p1

.
.
.

.
.
.

sq

pq

La Fuente-Sn (extensin de orden n de la Fuente-S) tiene como su


alfabeto Sn = {1, 2, ... , qn}, es decir, qn smbolos.
Cada j = sj1 sj2 ... sjn con sji S, es decir, los smbolos de la fuente extendida son
secuencias de n-smbolos de la fuente original.
Adems la prob(j) = prob(sj1 sj2 ... sjn) = prob(sj1) ... prob(sjn) = pj1 ... pjn
Ejemplo: Para la siguiente Fuente-S de memoria nula original:

pi

s1 p1 = 0.2
s2 p2 = 0.8
Su extensin de orden n=2 es la siguiente Fuente-S2 tambin de memoria nula:
S2

1 = s 1 s 1
2 = s 1 s 2
3 = s 2 s 1
4 = s 2 s 2

pj
p1 p1 = 0.04
p1 p2 = 0.16
p2 p1 = 0.16
p2 p2 = 0.64

En el caso de estas fuentes extendidas indicaremos -sin demostracin- que las


probabilidades asignadas segn se indic, estn entre 0 y 1, y su sumatoria es igual a la
unidad.
Obviamente siendo una fuente extendida una fuente de memoria nula, puede hallarse su
entropa.

FUENTES DE MARKOV
Una fuente de Markov de orden m es una fuente con memoria que toma en cuenta
('recuerda') los m smbolos anteriores al smbolo que est por emitirse. La probabilidad de
aparicin del smbolo que est por emitirse depende de cules son los m smbolos
anteriores.
Denotada por Fuente-M se define as: Fuente-M=(S,m,P,W(0)) donde:
S = {s1, s2, ... , sq} es el alfabeto de la fuente.
m es el orden de la fuente (en funcin de cuntos smbolos anteriores est la probabilidad
del siguiente smbolo a emitirse).
P es un conjunto de probabilidades del tipo p(si / sj1 sj2 ... sj m) que asigna a cada smbolo si
(i=1,...,q) una probabilidad de emisin en funcin de m smbolos anteriores. Diremos que
estos m smbolos "sj1 sj2 ... sjm" conforman el j-simo estado de la fuente. Es claro que hay
qm estados.
La probabilidad p(si / sj1 sj2 ... sjm) es la probabilidad de pasar del estado "sj1 sj2 ... sjm" al
estado "sj2 sj3 ... sjm si". Por ello, en vez de describir el conjunto P como un listado, es usual
presentarlo como una matriz de transiciones entre estados de dimensin qm X qm.
A los estados de la fuente de Markov los llamaremos 1, , qm.
W(0) es la distribucin inicial de probabilidades de los estados de la Fuente-M.
W(0) = [ w1(0), , wqm(0) ]T (la T significa transpuesta), donde wi(0) denota la probabilidad
de estar en el estado i al iniciar la fuente la emisin de sus smbolos, es decir, en el
tiempo 0: el supercero significa precisamente dicho instante cero (wi(0) es pues la
probabilidad de que los primeros m smbolos emitidos por la fuente sean los denotados
por i). Es claro que w1(0) + ... + wqm(0) = 1.
Ejemplo: Sea la siguiente fuente de Markov de orden 2.
S={0,1} q=2 m=2
P:
p(0/00)=0.2 p(1/00) = 0.8
p(0/01)=0.4 p(1/01) = 0.6
p(0/10) =0 p(1/10) = 1
p(0/11) =0.5 p(1/11) = 0.5
Los qm=4 estados son 1=00, 2=01, 3=10 y 4=11.
Visto as, tambin puede presentarse P de la siguiente manera (donde Pij es la probabilidad
de pasar del estado j al estado i):

P=

00
01
10
11

00
0.2
0.8
0
0

01
0
0
0.4
0.6

10
0
1
0
0

11
0
0
0.5
0.5

Ntese que las columnas deben sumar 1.

No es comn etiquetar los nombres de los estados, de


manera que es ms frecuente ver P as:

P=

0.2
0.8
0
0

0
0
0.4
0.6

0
1
0
0

0
0
0.5
0.5

W(0) = [ w1(0), w2(0), w3(0), w4(0) ]T = [1/4, 1/4, 1/4, 1/4]T

10

Las transiciones entre estados permiten representar las fuentes de Markov mediante un
grafo (cada estado es un nodo y arcos entre estados etiquetados con las probabilidades de
transicin, los arcos con probabilidad igual a cero no se grafican); en el caso del ejemplo
el grafo se ve as:

En el estado 1=00 el arco tiene la etiqueta "0/0.2" que significa: 0.2 es la probabilidad de
emisin de un 0 dado que los 2 smbolos anteriores fueron 00, que es lo mismo que la
probabilidad de pasar del estado 1=00 al estado 1=00. En vez de esta etiqueta "0/0.2", es
ms frecuente colocar slo la etiqueta "0.2". Lo mismo sucede con todos los dems arcos.
(Ntese que la suma de las probabilidades de los arcos que salen de un nodo suman 1, por
ejemplo del nodo "11" sale un arco con probabilidad 0.5 y otro arco tambin con
probabilidad 0.5, la suma de las probabilidades de ambos arcos es 1).

11

ENTROPA DE UNA FUENTE DE MARKOV


El clculo de la entropa de una fuente de Markov es semejante al clculo de la entropa en
una fuente de memoria nula. Requiere sin embargo algunos conceptos adicionales y
clculos previos.
En principio se define la entropa de la Fuente-M en el estado "sj1sj2 ... sjm"
q

Hr(S / sj1sj2 ... sjm) = - p(si / sj1sj2 ... sjm) logr p(si / sj1sj2 ... sjm)
i =1

como:

r-its

Ejemplo tomado del libro de Abramson: Sea la siguiente Fuente-M

Donde el orden es m=2, S={0,1}, q=2


Los qm=4 estados son 1=00, 2=01, 3=10 y 4=11.
P:
p(0/00)=0.8 p(1/00) = 0.2
p(0/01)=0.5 p(1/01) = 0.5
p(0/10) =0.5 p(1/10) = 0.5
p(0/11) =0.2 p(1/11) = 0.8
Y en forma de matriz:

P=

0.8
0.2
0
0

0
0
0.5
0.5

0.5
0.5
0
0

0
0
0.2
0.8

W(0) = [ w1(0), w2(0), w3(0), w4(0) ]T = [0, 0, 0, 1]T


Calcularemos -en bits- la entropa de la Fuente-M en el estado 1=s1s2=00
2

H2(S/1)=H2(S/00)= - p(si/00)log2 p(si/00) =


i =1

= -[p(0/00)log2 p(0/00) + p(1/00)log2 p(1/00)] = -[0.8log2 0.8 + 0.2log2 0.2]


= -[(0.8)(-0.32192) + (0.2)(-2.32192)] = -[-0.257536 + -0.464384 ] = 0.7219 bits

12

El resto de las entropas por estado son:


H2(S/1) = H2(S/00) = 0.72192
H2(S/2) = H2(S/01) = 1
H2(S/3) = H2(S/10) = 1
H2(S/4) = H2(S/11) = 0.72192

bits
bits
bits
bits

Distribucin estacionaria.- Recordemos que W(0) = [ w1(0), ... , wqm(0) ]T es la distribucin


inicial (de probabilidades de los estados).
Llamaremos distribucin estacionaria al vector columna W=[w1, ... , wqm]T que es solucin
del sistema:
PW=W junto a w1+ ... + wqm = 1.
(wi est asociado a i, haremos una ampliacin ms adelante despus del ejemplo).
La entropa de una Fuente-M se define as:
qm

Hr (M) =

wj Hr (S / sj1 sj2 ... sjm)

r-its

j=1

Ejemplo: Con la Fuente-M de arriba, el sistema de ecuaciones PW=W es:


w1
0.8 0 0.5 0 w1

0.2 0 0.5 0 w2
= w2

w3
0 0.5 0 0.2 w3

w4
0 0.5 0 0.8 w4

junto a w1 + w2 + w3 + w4 = 1

Es decir,
0.8 w1
0.2 w1
0.5 w2
0.5 w2

+
+
+
+

0.5 w3
0.5 w3
0.2 w4
0.8 w4

=
=
=
=

w1
w2
w3
w4

junto a w1 + w2 + w3 + w4 = 1

Este sistema de ecuaciones puede resolverse de varios modos (por ejemplo en MATLAB).
Si se elige resolverlo manualmente puede aportar claridad utilizar fracciones en vez de
decimales, por ej. en vez de 0.8 utilizar 8/10.
La solucin en nuestro caso es:
w1 = 5/14 = 0.35714, w2 = 2/14 = 0.14285, w3 = 2/14 = 0.14285, w4 = 5/14 = 0.35714
Recordemos que:
H2(S/1) = H2(S/00) = 0.72192
H2(S/2) = H2(S/01) = 1
H2(S/3) = H2(S/10) = 1
H2(S/4) = H2(S/11) = 0.72192

bits
bits
bits
bits

Finalmente H2(M) = 0.80137 bits

13

Distribucin lmite.- La distribucin inicial de estados W(0) slo nos indica la


probabilidad de que la fuente empiece la emisin de smbolos en un estado i o en otro, en
el tiempo 0. De hecho, no siempre se ofrece W(0) o bien puede trabajarse con un vector de
referencia donde todos sus valores son ceros excepto uno igual a la unidad, por ejemplo:
W(0) = [ w1(0), ... , wqm(0) ]T = [1, 0, ... , 0]T.
Puede generalizarse esta idea a W(t) = [w1(t), , wqm(t)] que denota la probabilidad de que
la fuente est (otros dicen empiece) en el estado 1, ... ,qm respectivamente, en el tiempo
t.
Una idea asociada es calcular la probabilidad de ir del estado i al estado j en t pasos, si
lo hacemos para todos los estados tendremos lo que se denomina distribucin de
probabilidades del sistema para dicho tiempo t, o como otros llaman la matriz de
transicin de t pasos denotada por P(t). Desde un punto de vista formal este clculo
requiere utilizar la ecuacin de Chapman-Kolmogorov, pero ellos muestran que finalmente
esto puede calcularse con matrices as:
P(t) = Pt
W(1) = PW(0), W(2) = PW(1), W(3) = PW(2), etc.
En general: W(t+1) = PW(t)
Haciendo los reemplazos que sugiere la induccin tenemos que:
W(t+1) = P(t+1) W(0) = Pt+1 W(0)
Como todas estas matrices y vectores representan distribuciones de probabilidad, para
cada t la suma de sus columnas debe ser 1.
Denotaremos por P() a la matriz lmite de la Fuente-M, donde P() = lim P(t) .

Llamaremos distribucin lmite a cualquier columna de P().

t >

Las condiciones bajo las cuales este lmite existe y su clculo estn fuera del alcance de
este texto (por ejemplo el uso de la transformada Z puede ser til para su estudio).
Un resultado conocido es que la Fuente-M tiene una distribucin lmite cuando t>0 tal
que Pt tenga todos sus valores positivos. En este caso P() converge y sus columnas son
iguales: se obtiene la distribucin lmite calculando Pt para un t suficientemente grande y
tomando cualquier columna.

Recordemos que se llama distribucin estacionaria a la solucin del sistema


PW=W junto a w1+ + wqm = 1. W=[w1, , wqm]T, donde wi es la probabilidad
estable de aparicin en el tiempo del estado i.
Esta solucin no es necesariamente nica.
Cuando la Fuente-M es regular su distribucin lmite existe y coincide con la distribucin
estacionaria que es nica (teorema de Perron-Frobenius).
Precisamente esta es una manera iterativa de calcular la distribucin estacionaria: calcular
Pt -para ts suficientemente grandes- hasta ver que converjan, esto es Pj=Pj+1=Pj+2=..., etc.
(slo funciona cuando la Fuente-M es regular, vase la siguiente pgina).
Puede ser que no exista la distribucin lmite pero s la distribucin estacionaria (nica o
no).

14

Fuente regular y ergdica.Podemos trabajar la Fuente-M como una cadena de Markov.

Cuando centramos los conceptos considerando el grafo de la Fuente-M, hay un modo de


determinar la ergodicidad o no ergodicidad. No abundaremos en formalismos y
simplificaremos la presentacin.
Una Fuente-M es ergdica cuando es irreducible: hay un camino de un estado a otro
estado, para cualquier par de estados.
Una Fuente-M es regular cuando t>0 tal que Pt tenga todos sus valores positivos.
Una fuente-M es regular cuando se cumplen las tres siguientes condiciones:
1) Es irreducible: hay una sola clase cerrada. Es decir, hay un camino de un estado a otro
estado, para cualquier par de estados. Es decir, cuando es ergdica.
2) Es recurrente (positiva): hay un camino de un estado al mismo estado, para cada estado
(cuando hay un nmero finito de estados la parte 'positiva' siempre se cumple).
3) Es aperidica: no hay un nico nmero fijo de pasos (o mltiplo de l) para ir de
un estado al mismo estado.
Es decir, una Fuente-M regular es ergdica, pero existen Fuentes-M ergdicas que no son
regulares.
Cuando hay ms de una distribucin estacionaria podemos asumir que la Fuente-M no es
ergdica.

Ejemplos: Se sugiere utilizar MATLAB (junto a los conceptos) para verificar los
comentarios.

1 0 0.5 0
0 0 0.5 0

P=
0 0.5 0 0

0 0.5 0 1

No es irreducible: no podemos ir de 1 a 3 por ejemplo. Luego, no es ergdica.


Si calculamos P500,P501, etc. Veremos (con 'format long g' en MATLAB) diferencias entre
una y otra matriz. No tiene distribucin lmite.
Adems hay por lo menos estas dos distribuciones estacionarias:
w1=1, w2=0, w3=0, w4=0 o bien
w1=0, w2=0, w3=0, w4=1

15

0.8 0
0.2 0
P=
0 0.6

0 0.4

0 0
1 0
0 0.5

0 0.5

No es irreducible: no podemos ir de 4 a 1 por ejemplo. Luego, no es ergdica.


Si calculamos P2001,P2002, etc. Veremos (con 'format long g' en MATLAB) diferencias
entre una y otra matriz. No tiene distribucin lmite. Es adems aperidica.
Tiene una nica distribucin estacionaria:
w1=0, w2=5/14, w3=5/14, w4=4/14
Sucede lo mismo con

0 0
1 0
P=
0 0.6

0 0.4

0 0
1 0
0 0.5

0 0.5

Nuestro prximo ejemplo es:

0 0 1
P = 1 0 0
0 1 0

Es irreducible, es decir, es ergdica.


Tambin es recurrente. Pero es peridica. Luego, no es regular.
No tiene distribucin lmite pues Pt no converge: P4=P, P5=P2, P6=P3, P7=P4, etc.
Es decir, P1, P2, P3, P4, P5, P6, ... tiene la secuencia P, P2, P3, P, P2, P3, ... No hay el caso en
que Pj = Pj+1.
Tiene una nica distribucin estacionaria:
w1=1/3, w2=1/3, w3=1/3

16

0.8 0 0.5 0
0.2 0 0.5 0

P=
0 0.5 0 0.2

0 0.5 0 0.8

Es irreducible, es decir, es ergdica.


Tambin es recurrente. Y es aperidica. Luego, es regular.
Tiene una nica distribucin estacionaria:
w1=5/14, w2=2/14, w3=2/14, w4=5/14
Que debe coincidir con la distribucin lmite.

Si se observa detenidamente las condiciones de irreducibilidad y recurrencia, es claro que


si hay un camino de un estado a otro estado, para cualquier par de estados, sucede que hay
un camino de un estado al mismo estado, para cada estado. Es decir, la irreducibilidad
implica recurrencia (la inversa no es cierta). De manera que una fuente ergdica
(irreducible) ya es recurrente y slo falta verificar la aperiodicidad para determinar si es
regular o no.

17

FUENTE AFN O ADJUNTA


DE UNA FUENTE DE INFORMACIN DE MARKOV

A partir de la Fuente-M, una fuente de informacin de Markov de orden m, es posible


construir una fuente de informacin de memoria nula llamada Fuente- M (conocida como
la fuente afn o adjunta de M).
Los smbolos del alfabeto de esta Fuente- M son los mismos que los de la Fuente-M, es
decir, S = {s1, s2, ... , sq}
Y las probabilidades de emisin de estos smbolos en la Fuente- M , prob(si) = pi, se
calculan as:

qm

prob(si) = pi = p(si /j) wj


j =1

En el ejemplo de la Fuente-M que estamos siguiendo:

prob(s2) = p2 = p(si /j) wj = p(s2/1) w1 + p(s2/2) w2 + p(s2/3) w3 + p(s2/4) w4


j =1

= 0.2 5/14 + 0.5 2/14 + 0.5 2/14 + 0.8 5/14 = 7/14 = 0.5
prob(s1) = p1 se calcula de manera similar.
Luego, la Fuente- M resultante es:
M

pi

s1
s2

0.5
0.5

18

EXTENSIN n-sima DE UNA FUENTE DE MARKOV

Sea la Fuente-M una fuente de Markov de orden m con alfabeto S={s1, s2, ... , sq} y matriz
de transiciones P.
Llamaremos Fuente-Mn a la n-sima extensin de la Fuente-M original.
La Fuente-Mn es tambin una fuente de Markov que describimos a continuacin:
Alfabeto: Sn = {1, 2, ... , qn} (qn smbolos).
j = sj1 sj2 ... sjn con sji S
n
Orden: el orden de la Fuente-M es =techo(m/n)
la funcin techo (ceil en ingls) es la parte entera hacia arriba
Probabilidades condicionales:

p(i / j1...j )
(Es claro que existen q
= p(si1si2...sin / sj11sj12...sj1n ... sj1sj2...sjn)
= p(si1 / sj11sj12...sj1n...sj1sj2...sjn) p(si2 / sj12...sj1n...sj1sj2...sjnsi1) ...
... p(si n / sj1n...sj1sj2...sjnsi1si2...si (n-1))

estados)
(1)

(Debemos redefinir las probabilidades en funcin de las probabilidades de la Fuente-M


original -de orden m-.
Para ello en cada una de las probabilidades condicionales slo se toman en cuenta los
ltimos m smbolos (despus del slash) -los nicos que pueden recordarse-.
De manera que (1) se puede reescribir as:
sean sh1sh2...shm los ltimos m smbolos de "sj11sj12...sj1n ... sj1sj2...sjn" luego)
= p(si1 / sh1sh2...shm) p(si2 / sh2sh3...shmsi1) p(si3 / sh3sh4...shmsi1si2) ...
... p(sin/sh nsh(n+1)...shmsi1si2...si (n-1)) (mn)
(o bien)
= p(si1 / sh1sh2...shm) p(si2 / sh2sh3...shmsi1) p(si3 / sh3sh4...shmsi1si2) ...
... p(sin/si(n-m)si (n-m+1)...si(n-1)) (m<n)
Ejemplo: Sea la siguiente Fuente-M con S={s1, s2}={0,1}

Los qm=4 estados son:


1=s1s1=00
2=s1s2=01
3=s2s1=10
4=s2s2=11

19

q=2

orden m=2

Listado de probabilidades:
P(1->1)=0.8
p(1->2)=0.2
p(2->3)=0.5
p(2->4)=0.5
p(3->1)=0.5
p(3->2)=0.5
p(4->3)=0.2
p(4->4)=0.8

p(0/00)=0.8
p(1/00)=0.2
p(0/01)=0.5
p(1/01)=0.5
p(0/10)=0.5
p(1/10)=0.5
p(0/11)=0.2
p(1/11)=0.8

Matriz de transiciones:

1
2
3
4

00
1
0.8
0.2
0
0

01
2
0
0
0.5
0.5

10
3
0.5
0.5
0
0

11
4
0
0
0.2
0.8

P=

Fuente Extendida-Mn
La n-sima extension de la Fuente-M es con n=2
Sn={1, 2, 3, 4}
1=s1s1=00
2=s1s2=01
3=s2s1=10
4=s2s2=11
orden: techo(m/n) = = 1
Conjunto BETA (de estados de la extensin):
1=1=s1s1=00
2=2=s1s2=01
3=3=s2s1=10
4=4=s2s2=11

20

Listado de probabilidades de la fuente extendida:


p(00/00)=p(0/00)p(0/00)=0.80.8=0.64
p(00/01)=p(0/01)p(0/10)=0.50.5=0.25
p(00/10)=p(0/10)p(0/00)=0.50.8=0.4
p(00/11)=p(0/11)p(0/10)=0.20.5=0.1
p(01/00)=0.16
p(01/01)=0.25
p(01/10)=0.1
p(01/11)=0.1
p(10/00)=0.1
p(10/01)=0.1
p(10/10)=0.25
p(10/11)=0.16
p(11/00)=0.1
p(11/01)=0.4
p(11/10)=0.25
p(11/11)=0.64

p(1->1)=0.64
p(2->1)=0.25
p(3->1)=0.4
p(4->1)=0.1
p(1->2)=0.16
p(2->2)=0.25
p(3->2)=0.1
p(4->2)=0.1
p(1->3)=0.1
p(2->3)=0.1
p(3->3)=0.25
p(4->3)=0.16
p(1->4)=0.1
p(2->4)=0.4
p(3->4)=0.25
p(4->4)=0.64

Matriz de transicin entre estados (de la fuente extendida):

1
2
3
4

00
s1 s1
1
1
0.6400
0.1600
0.1000
0.1000

01
s1 s2
2
2
0.2500
0.2500
0.1000
0.4000

10
s2 s1
3
3
0.4000
0.1000
0.2500
0.2500

11
s2 s2
4
4
0.1000
0.1000
0.1600
0.6400

21

CDIGOS

Sea X = { t1, t2, ... , tr } un alfabeto de r smbolos.


( Ntese que utilizamos r tanto para la base del logaritmo como para |X| )
X se conoce como el alfabeto (del) cdigo.
Denotaremos una secuencia de smbolos en X (una cadena en X+) as: x1x2...xm (xiX).
Un cdigo C es una bolsa (bag) finita de n cadenas en X+ (el lenguaje universal excepto la
cadena vaca). A diferencia de un conjunto una bolsa permite elementos repetidos.
Cuando se prescinda de la repeticin de elementos, entonces un cdigo C es un lenguaje
finito (un conjunto finito de n cadenas C X+).
Cada cadena de un cdigo C se denomina palabra cdigo (de C).
Denotando una palabra cdigo por wi, entonces un cdigo ser la bolsa C=[w1, , wn]; o
bien el conjunto C={w1, , wn}.
Ejemplo: con X={t1, t2, t3}={0,1,2} tenemos el cdigo C1=[01,00,11,021,11]; y un otro
cdigo C2={00,01,10,11,21,22} (en este ltimo caso, w6 =x1x2=t3t3=22).
Es usual escribir un cdigo como una tabla de una columna; para los ejemplos anteriores
esto se ve as:
C2
C1
-------------------w1 = 00
w1 = 01
w2 = 01
w2 = 00
w3 = 10
w3 = 11
w4 = 11
w4 = 021
w5 = 21
w5 = 11
w6 = 22
Dependiendo del nmero de smbolos del alfabeto (del) cdigo X, un cdigo se dice
binario (cuando r = 2), ternario (cuando r = 3), etc. En general un cdigo C ser r-ario.
En rigor, no es necesario utilizar los r smbolos en las palabras cdigo de C.
En el cdigo C: Si ij wiwj, el cdigo se denomina No-Singular, es decir, cuando
todas sus palabras cdigo son diferentes (y por tanto representables en un conjunto).
En otro caso se denomina Singular, es decir, cuando hay por lo menos dos palabras
cdigo (wi,wj ; ij) iguales (wi=wj) (y por tanto representables en una bolsa).
Es claro que en los ejemplos- C1 es Singular y que C2 es No-Singular.
Dado que la palabra cdigo wi es una cadena, podemos pensar en calcular su longitud,
operacin que denotaremos as |wi|=li; es decir, li es la longitud de la palabra cdigo wi.
En el cdigo C, sea la constante l>0: Si i li=l, el cdigo se denomina Bloque, es
decir, cuando todas sus palabras cdigo tienen la misma longitud.
En otro caso se denomina no Bloque, es decir, cuando hay por lo menos dos palabras
cdigo de diferente longitud.
Es claro que en los ejemplos- C1 es no bloque y que C2 es bloque (con l=2).
(Abramson sugiere otro concepto de bloque menos popular pero muy interesante.)
22

En el cdigo C (cuyo alfabeto es X): Si wj wjwiv (con ij, v X*) el cdigo se


denomina Libre de Prefijos, es decir, cuando ninguna palabra cdigo es prefijo de otra
palabra cdigo diferente.
En otro caso se denomina no Libre de Prefijos.
Es claro que en los ejemplos- C1 es no libre de prefijos y que C2 es libre de prefijos.
Es usual considerar los cdigos asociados a fuentes de informacin. Es decir, la palabra
cdigo wi se utiliza para representar (codifica) al smbolo si de la fuente.
Centraremos nuestra atencin en las fuentes de memoria nula. Dado que una Fuente-S
tiene q smbolos, su cdigo C asociado tendr tambin q palabras cdigo.
As pues, una representacin comn de una Fuente-S (genrica) y su cdigo asociado C
(genrico) es como sigue:

S
s1

pi
p1

.
.
.

.
.
.

sq

pq

C
w1
.
.
.
wq

Ejemplo: q=5 X={a,b,c}

S
s1
s2
s3
s4
s5

pi
1/5
1/5
1/5
1/5
1/5

C3
b
c
aa
ab
ac

Otros cdigos para esta Fuente-S son: C4


aa
bb
cc
ab
ba

C5
aa
a
b
bb
c

C6
ab
ba
abb
aba
ca

Si tenemos el mensaje ccc utilizando el cdigo C3, estamos considerando el mensaje


w2w2w2, el cual asociaremos a los smbolos s2s2s2.
Inicialmente, cuando se codifican fuentes asumiremos que no hay posibilidad de error, es
decir, que las cadenas en el alfabeto cdigo corresponden a secuencias de palabras cdigo,
mismas que codifican (representan) smbolos de la fuente.
As pues, utilizando el cdigo C3, no tiene sentido considerar mensajes del tipo abaaba.
En el cdigo C: Si hay una cadena de smbolos del alfabeto cdigo x1x2...xm (con m>0)
correspondiente a ms de una secuencia de palabras cdigo, C se denomina
no Unvocamente Decodificable, es decir, cuando x1x2...xm se puede interpretar de dos o
ms maneras.

23

En otro caso se denomina Unvocamente Decodificable, es decir, cuando cada secuencia


x1x2...xm se puede interpretar de una nica manera.
Ejemplo:
En la ltima Fuente-S trabajando con el cdigo C5 (con m=2) la cadena x1x2=aa se puede
interpretar como w1 que se decodifica como s1; o bien se puede interpretar como w2w2 que
se decodifica como s2s2. Dado que hay ms de una interpretacin posible, es claro que C5
es no Unvocamente Decodificable (es lo mismo decir que C5 no es Unvocamente
Decodificable).
Un cdigo C singular, no es unvocamente decodificable: como lo muestra la secuencia
x1x2...xm correspondiente a las (por lo menos) dos palabras cdigo iguales. Por ejemplo
C=[a,b,a] con la secuencia x1=a, se puede interpretar como w1 o bien como w3.
Un corolario obvio es el siguiente:
Si C es unvocamente decodificable, entonces C es no singular.

Patterson y Sardinas plantearon un teorema -y un mtodo que se deriva de l- para


determinar si un cdigo es unvocamente decodificable o no. Se asume que el cdigo es no
singular (de hecho hay literatura que define un cdigo unvocamente decodificable C
como aquel cdigo no singular que ... etc.)
Describimos el mtodo mencionado a continuacin:
Recordemos las operaciones:
i)

Cociente de un lenguaje L entre una cadena u (se llama tambin conjunto de


buenos finales o de sufijos colgantes -respecto de u-): L/u = {w / uw L}
Ejemplo: L={a,b,ab,aaa} u=a
L/u ={,b,aa}
u=aa
L/u = {a}
Es decir, se buscan las cadenas de L que empiezan con u (las otras no ingresan
al cociente), se prescinde de dicho prefijo u y se anotan los smbolos que
siguen.
Es claro que L/ = L
En rigor, esta operacin se denomina cociente izquierdo (ya que existe la
operacin cociente derecho que anota los prefijos colgantes en vez de los
sufijos colgantes).

ii)

Cociente de un lenguaje L1 entre otro lenguje L2: L1/L2 =

u L2

L1/u

Est claro que, cuando L2 ={}, L1/L2 = {}

Dos presentaciones equivalentes del mtodo (el cdigo C se trata como lenguaje) son:

24

S0 = C
S1 = (C/C) {}

S0 = C

i1 Si+1 = (C/Si) (Si/C)

i0 Si+1 = [ (C/Si) (Si/C) ] {}

Cuando Sj = Sk (j<k) entonces nos


detenemos.

Cuando Sj = Sk (j<k) entonces nos


detenemos.

Z=

U Si
i =1

(ntese que i empieza en 1)

Z=

U= S

(ntese que i empieza en 1)

i 1

C es unvocamente decodificable
si y slo si
Z

C es unvocamente decodificable
si y slo si
ZC ={}

Ejemplos:
Con el cdigo C3 de antes y con el mtodo en su segunda presentacin.
S0 = C3 = {b,c,aa,ab,ac}
S1 = [ (C3/S0) (S0/C3) ] {} = [{} {}] {} = { }
S2 = [ (C3/S1) (S1/C3) ] {} = [{ } { } ] {} = { }
S1 = S2 nos detenemos (pues S2=S3=S4= ).
Z=

U= S

={}

i 1

Como Z C3 = { }, concluimos que C3 es unvocamente decodificable.


Con el cdigo C=C6 de antes y con el mtodo en su primera presentacin.
= {ab,ba,abb,aba,ca}
S0= C
= {b,a}
S1=(C/C) {}
{a,b,bb,ba} { } = {a,b,bb,ba}
S2=(C/S1) (S1/C)=
{b,bb,ba,a,} {} = {,a,b,ba,bb}
S3=(C/S2) (S2/C)=
S4=(C/S3) (S3/C)= {ab,ba,abb,aba,ca,b,bb,a,} {} = {,a,b,ab,ba,bb,ca,aba,abb}
S5=(C/S4) (S4/C)= {ab,ba,abb,aba,ca,b,bb,a,} {,a,b}={,a,b,ab,ba,bb,ca,aba,abb}
S4 = S5 nos detenemos (pues S5=S6=S7= ).
Z=

U= S

= {,a,b,ab,ba,bb,ca,aba,abb}

i 1

Como Z, concluimos que C6 no es unvocamente decodificable.


Sabiendo que un cdigo no es unvocamente decodificable, una cuestin interesante es
buscar una secuencia de smbolos del alfabeto cdigo (preferentemente pequea) que se
presta a ms de una interpretacin (es decir, una secuencia ambiga).
En el ejemplo x1x2...xm = abbaba puede decodificarse como s3s4; o bien como s1s2s2.
Se puede plantear esta cuestin de otro modo: buscar dos secuencias diferentes de
smbolos de la Fuente-S de la misma longitud que tengan la misma codificacin, digamos
sj1sj2...sjn y sh1sh2...shn y que ambas se codifiquen idnticamente como x1x2...xm. En este
ejemplo, las secuencias buscadas son sj1sj2...sjn=s1s2s2s3s4 y sh1sh2...shn=s3s4s1s2s2 que se
codifican igualmente como x1x2...xm=abbabaabbaba.
25

Planteado el problema de ese otro modo, no hay necesidad de generalizarlo buscando dos
secuencias diferentes de smbolos de la Fuente-S de distinta longitud (por ejemplo con
C={0,00} las secuencias sj=s1s1 y sh=s2), pues si las hubiere se puede construir otras dos
secuencias de la misma longitud as: a partir de sj=sj1sj2...sjn y sh=sh1sh2...sh, con n y
que se codifiquen idnticamente como x1x2...xm, obtenemos las dos secuencias sjsh y shsj
que son secuencias diferentes pero de la misma longitud! adems ambas se codifican
idnticamente como x1x2...xmx1x2...xm (por ejemplo sjsh=s1s1s2 y shsj=s2s1s1).
En el cdigo C: Si es posible decodificar -unvocamente- una cadena de smbolos del
alfabeto cdigo x1x2...xm (con m>0) sin conocer qu otros smbolos del alfabeto cdigo
siguen, C se denomina Instantneo.
En otro caso se denomina no Instantneo.
Ejemplo: El siguiente caso clarifica bien el concepto de no instantaneidad.
Supongamos que una secuencia de smbolos del alfabeto cdigo
comienza as: 01
Los puntos suspensivos indican que ignoramos lo que sigue despus
(incluso ignoramos si hay smbolos despus).
Podemos asociar (instantneamente) y sin dudar una palabra cdigo
a dicha secuencia hasta donde la conocemos (es decir, 01) ?
Si apresuramos la respuesta y decimos que s, que corresponde a w2;
cometeramos un grave error si hay luego dos smbolos ms (siendo stos '10'), de manera
que la secuencia total es 0110 correspondiente a las palabras cdigo w3w1.
As pues con este cdigo, si una secuencia empieza como 01, para no cometer errores y
no apresurar la respuesta debemos conocer si hay ms smbolos o no, y si los hay cules
son (segn sea el cdigo y segn sea la secuencia necesitaremos saber uno, dos o ms
smbolos adicionales). As pues C es no instantneo (o, lo que es lo mismo, C no es
instantneo).
En cambio, si trabajamos con el cdigo C={0,10,110,1110} y una secuencia empieza
como 10, no necesitamos conocer ningn smbolo adicional ni siquiera conocer si hay
ms smbolos- para asociar esta secuencia con w2.

S
s1
s2
s3
s4

pi

C
1/4 w1=0
1/4 w2=01
1/4 w3=011
1/4 w4=0111

Es obvio que la expresin sin conocer qu otros smbolos del alfabeto cdigo siguen se
aplica racionalmente cuando estamos ya- con una palabra cdigo posible de ser asignada.
Es decir, no se aplica cuando estamos con una secuencia que no es an (ni siquiera) una
palabra cdigo. Por ejemplo, en C si la secuencia empieza como 11, es obvio que
necesitamos conocer los siguientes smbolos para asociar la secuencia con alguna palabra
cdigo (11 no es an una palabra cdigo). En los cdigos bloque no singulares esto es ms
evidente, por ejemplo con C={aba,abb,abc}, si una secuencia empieza como a, claro
que tenemos que conocer qu smbolos siguen para empezar a asociar palabras cdigo a la
secuencia y a decodificar.
C y C son instantneos.
Un cdigo instantneo permite decodificaciones ms rpidas (instantneas, si hacemos
honor a su nombre), en cambio un cdigo no instantneo implica demoras, debido a la
necesidad de conocer subsiguientes smbolos.

26

Un cdigo C singular, no es instantneo: La idea de instantaneidad es que asociemos


una secuencia de smbolos del alfabeto cdigo a una palabra cdigo sin conocer los
smbolos siguientes y sin error-. En un cdigo singular el error es evidente cuando
interpretamos la secuencia x1x2...xm correspondiente a las (por lo menos) dos palabras
cdigo iguales.
Por ejemplo C=[a,b,a] con la secuencia x1=a; si bien no hay necesidad de saber los
smbolos siguientes, la secuencia se puede interpretar errneamente como w1 (cuando en
realidad corresponde asociar a w3) o bien errneamente como w3 (cuando en realidad
corresponde asociar a w1).

Un corolario obvio es el siguiente:


Si C es instantneo, entonces C es no singular. (De hecho hay literatura que define un
cdigo instantneo C como aquel cdigo no singular unvocamente decodificable que ...
etc.).

La decodificabilidad unvoca se define mejor a travs de la idea de extensin de un


cdigo; y la determinacin de instantaneidad se facilita con la introduccin de algunos
resultados tericos.
Prosigamos.

27

EXTENSIN DE ORDEN n DE UN CDIGO

De manera semejante a la extensin de orden n de una fuente de memoria nula, se presenta


la idea de la extensin n-sima de un cdigo.
La extensin de orden n de un cdigo C, denotada por Cn, es otro cdigo que se obtiene
del cdigo original segn se indica a continuacin.
Sea el cdigo original C={w1, , wq}

(con alfabeto cdigo X)

El cdigo Cn (extensin de orden n del cdigo C) tiene qn palabras cdigo, que continan
siendo secuencias de smbolos del alfabeto (del) cdigo. Lo denotamos as:
Cn = {w1, w2, ... , wqn} donde wj = wj1wj2 ... wjn con wji C
Es decir, las palabras cdigo de Cn son secuencias de n-palabras cdigo de C.
Ejemplo: Para el cdigo original C={w1,w2,w3}={0, 11, 00} (cuyo alfabeto es X={0,1})
Su extensin de orden n=3 es:
Cn ={w1,w2,w3,w4,w5,w6,w7,w8,w9, ... ,w18,w19,w20,w21,w22,w23,w24,w25,w26,w27}
= {w1w1w1, w1w1w2, w1w1w3, w1w2w1, w1w2w2, w1w2w3, w1w3w1, w1w3w2, w1w3w3,
w2w1w1, w2w1w2, w2w1w3, w2w2w1, w2w2w2, w2w2w3, w2w3w1, w2w3w2, w2w3w3,
w3w1w1, w3w1w2, w3w1w3, w3w2w1, w3w2w2, w3w2w3, w3w3w1, w3w3w2, w3w3w3}
= {000, 0011, 0000, 0110, 01111, 01100, 0000, 00011, 00000,
1100, 11011, 11000, 11110, 111111, 111100, 11000, 110011, 110000,
0000, 00011, 00000, 00110, 001111, 001100, 00000, 000011, 000000}
La decodificabilidad unvoca se define formalmente as:
Un cdigo C es unvocamente decodificable cuando k1 Ck es no singular.
Est claro que tomando k=1 un cdigo unvocamente decodificable debe ser no singular.
Es decir, un cdigo singular no es unvocamente decodificable, por definicin.
En el anterior ejemplo C3 es singular pues 0000=w1w1w3=w3=w7=w1w3w1=0000, luego C
no es unvocamente decodificable.

28

PROPIEDADES DE LOS CDIGOS

1) C es un cdigo instantneo si y slo si C es libre de prefijos.


Demostracin:
=>) Si C es instantneo entonces C es libre de prefijos.
Da lo mismo demostrar la contrarrecproca del enunciado que es como sigue
Si C no es libre de prefijos entonces C no es instantneo.
Dem:
Como C no es libre de prefijos, entonces hay (por lo menos) una palabra cdigo wi que es
prefijo de otra palabra cdigo diferente wj, es decir, wj wj=wiv (con ij, v X*), siendo
X el alfabeto del cdigo.
Cuando v=, entonces wj=wi (con ij), es decir, C es singular y por lo tanto no
instantneo (ver pgina 27).
Cuando v, consideremos la secuencia x1x2...xm = wi (los puntos denotan que no
conocemos los siguientes smbolos, ni siquiera si los hay o no). Esta secuencia inicial
x1x2...xm no puede asociarse apresuradamente a wi sin la posibilidad de cometer un error,
debemos pues conocer si hay ms smbolos o no, y si los hay cules son (por ejemplo si
hay ms smbolos que forman la cadena v podramos estar ante wj y no ante wi).
As pues C no es instantneo.
<=) Si C es libre de prefijos entonces C es instantneo.
Dem:
Cuando se tiene una secuencia x1x2...xm = wi (wi cualquier palabra cdigo), entonces la
asociacin instantnea de esta (sub)cadena a wi (y su decodificacin como si) es
absolutamente lcita puesto que por ser C libre de prefijos- ninguna otra palabra cdigo
(diferente) tiene a wi como prefijo ( wj wjwiv -con ij, v X*-). As pues, la
interpretacin instantnea es buena, y puede continuar si aplicamos el mismo
razonamiento recurrentemente a los smbolos que siguen.
Luego, C es instantneo.
2) Si C es un cdigo instantneo entonces C es unvocamente decodificable.
Da lo mismo demostrar la contrarrecproca del enunciado que es como sigue
Si C no es unvocamente decodificable entonces C no es instantneo.
Demostracin:
Previamente demostraremos que
Si Cn no es instantneo entonces C no es instantneo.
Dem:
Cn no es instantneo. Por el resultado 1), sabemos que Cn no es libre de prefijos, es
decir, wj=whv (con hj).wh es prefijo de wj. Por la forma de las palabras
cdigo en Cn, eso mismo se puede indicar as:
wj1wj2 ... wjn = wh1wh2 ... whnv (con wji,whk C; hj)

29

Luego, debe suceder (cancelando las primeras palabras cdigo a la izquierda y


derecha de la igualdad que sean idnticas, esto slo para visualizar mejor) que
algn wji es prefijo de whi, o bien algn whk es prefijo de wjk , con la importante
condicin de que hiji, o bien que hkjk.
[Por ejemplo, con C={0,01}, tenemos
C2={00,001,010,0101} que no es instantneo pues w1=00 es prefijo de
w2=001.
Como w2=w1w2=w1w11=w1v (con v=1), cancelando el primer w1 (en
w1w2=w1w11) de manera que terminamos trabajando con w2=w11
tenemos que w2 es prefijo de w1, o bien w1 es prefijo de w2 en realidad
esto ltimo, pues w1=0 y w2=01 (aqu hk=h2=1 y jk=j2=2)]
Pero entonces en C- una palabra cdigo es prefijo de otra palabra cdigo
diferente.
Luego C no es libre de prefijos y, otra vez por el resultado 1), C no es instantneo.
Volvamos a la demostracin original:
Como C no es unvocamente decodificable, por definicin, k1 Ck es singular, es decir,
Ck no es instantneo (como se demuestra en la pgina 27).
Luego, por el resultado previo que acabamos de probar, C no es instantneo.
3) Si C es un cdigo bloque no singular entonces C es instantneo.
(Es claro que un cdigo bloque singular no es instantneo ni unvocamente
decodificable, como lo prueban los resultados de las pginas 27 y 24).
Demostracin:
Mostraremos que C es libre de prefijos: Como C es bloque, es decir todas las palabras
cdigo tienen la misma longitud, ninguna palabra cdigo es prefijo propio de otra (pues en
ese caso una tendra longitud menor que la otra y eso no es posible). La nica posibilidad
que queda para que C no sea libre de prefijos es que una palabra cdigo sea prefijo (no
propio) de otra palabra cdigo diferente, esto es que hayan dos palabras cdigo wj,wi con
ij, tales que wj=wi; ello hara que C sea singular, lo cual est descartado pues C es no
singular.
As pues C es libre de prefijos y por el resultado 1) resulta que C es instantneo.

30

TEOREMA DE KRAFT

Existe un cdigo instantneo C r-ario con longitudes l1, , lq


si y slo si
q

i =1

r li 1

En principio probaremos slo uno de los sentidos del enunciado.


q

Si

i =1

r li 1 entonces existe un cdigo instantneo C r-ario con longitudes l1, , lq

Antes de demostrar el enunciado presentaremos algunos ejemplos de aclaracin.


Ej. 1: Sea X = {0,1}
C = {0,01} donde q=2, l1=1, l2=2, r =2
q

Es claro que

i =1

r li = 2 1 + 2 2 = 1/2 + 1/4 = 3/4 1

Esto suele inducir a aseverar que C es instantneo.


Sin embargo, w1=0 es prefijo de w2=01 lo que muestra que C no es libre de prefijos y por
lo tanto no es instantneo.
Lo que pasa es que el enunciado no utiliza la palabra es sino existe. Es decir, que si la
desigualdad se cumple, existe un cdigo C instantneo.
El enunciado no debe utilizarse a partir de un cdigo C- para determinar instantaneidad
(como en el ejemplo citado). De hecho, no es necesario partir de un cdigo, sino
solamente de longitudes l1, , lq dadas.
Ejemplo:
Sean las longitudes l1, , lq = 2,2,3,3,4 con q=5 y r =2. Existe C instantneo?
q

i =1

r li

= 2 2 + 2 2 + 2 3 + 2 3 + 2 4 1

(luego existe C con tales li)

Ntese que la sumatoria en el ejemplo (y en general) siempre se puede reescribir as:


= 22 2 + 22 3 + 2 4
= 02 1 + 22 2 + 22 3 + 12 4
= n12 1 + n22 2 + n32 3 + n42 4
con n1=0, n2=2, n3=2, n4=1
Demostracin (del teorema de Kraft en la parte enunciada del si y slo si):
Sea l=max{l1, , lq}, entonces:
q

i =1

r li =

i =1

ni r i

donde ni: # de trminos de la suma del tipo r i

Luego, la hiptesis del enunciado que se asume verdadera- se puede reescribir as:
l

i =1

ni r i 1

Es claro que 0 ni

31

Esta desigualdad no es otra que:


n1 r 1 + n2 r 2 + + n(l-1) r (l-1) + nl r l 1
Si multiplicamos cada miembro por r l (que es positivo y no cambia el sentido de la
desigualdad), tenemos:
n1 r l1 + n2 r l2 + + n(l-1) r l (l-1) + nl r l l r l
es decir,
l1
l2
1
0
l
+ nl r
r
es decir,
n1 r + n2 r + + n(l-1) r
l1
l2
l
+ nl
r
n1 r + n2 r + + n(l-1) r
Despejando nl queda:
1)
nl r l - n1 r l1 - n2 r l2 - - n(l-1) r
De 0 nl y (1) se tiene por transitividad0 r l - n1 r l1 - n2 r l2 - - n(l-1) r
Despejemos n(l-1): Primero pasa a la izquierda
n(l-1) r r l - n1 r l1 - n2 r l2 - - n(l-2) r2
Multiplicando cada miembro por 1/r (que es positivo)
2) n(l-1) r l1 - n1 r l2 - n2 r l3 - - n(l-2) r
Anlogamente, de 0 n(l-1) y (2) se tiene por transitividad0 r l1 - n1 r l2 - n2 r l3 - - n(l-2) r
Otra vez, anlogamente, despejando n(l-2) tenemos
3) n(l-2) r l2 - n1 r l3 - n2 r l4 - - n(l-3) r
Si hacemos lo mismo para cada ni tenemos que las tres ltimas desigualdades son:
l-2) n3 r3 - n1 r2 n2 r
l-1) n2 r2 - n1 r
l) n1 r
Reescribiendo las desigualdades 1) a l) tenemos:
nl r l - n1 r l1 - n2 r l2 - - n(l-1) r
n(l-1) r l1 - n1 r l2 - n2 r l3 - - n(l-2) r
n(l-2) r l2 - n1 r l3 - n2 r l4 - - n(l-3) r

n3 r3 - n1 r2 n2 r
n2 r2 - n1 r
n1 r
Dado que la hiptesis se asume cierta y estas desigualdades provienen de ella (utilizando y
realizando operaciones vlidas), resulta que tambin son ciertas.
La demostracin de Kraft, ms que un cdigo C r-ario concreto, lo que nos ofrece es una
idea un esquema- de cmo construir dicho cdigo junto a la argumentacin de que tal
construccin producir uno instantneo. Y es como sigue:

32

Tiene Usted r smbolos en el alfabeto cdigo X.


Cmo empezar a construir palabras

Cmo precautelar la instantaneidad

De entre los r smbolos de X,


elija n1 palabras cdigo de longitud 1.

Cuide que n1 r
De lo contrario habra singularidad.

Elija n2 palabras cdigo de longitud 2.


De esas hay:
smbolo 1
smbolo 2
cualquiera de r
cualquiera de r

Pero como ya eligi n1 palabras de


longitud 1, esas no pueden ser prefijo de
ninguna otra, es decir, cuide que el 1
smbolo no sea cualquiera de r, sino
cualquiera de r- n1; el 2 smbolo s puede
ser cualquiera de r; as slo puede elegir
de entre (r-n1)r, es decir,
n2 r2 - n1 r

Es decir, pueden construirse


arbitrariamente hasta rr = r2 palabras
cdigo de longitud 2.
Elija n3 palabras cdigo de longitud 3.
De esas hay:
smbolo 3
smbolos 1 y 2
r
r2
Es decir, pueden construirse
arbitrariamente hasta r2r = r3 palabras
cdigo de longitud 3.

Pero, para preservar que C sea libre de


prefijos, cuide que los dos primeros
smbolos no sean los ya elegidos. Estos
eran a lo ms (r-n1)r= r2-n1 r, debe
restrseles los n2 ya elegidos en el paso
anterior, es decir, los dos primeros
smbolos pueden ser cualquiera de
r2 - n1 r n2 ; el tercer smbolo s puede
ser cualquiera de r; es decir,
n3 r3 - n1 r2 n2 r

El mismo esquema se puede seguir hasta elegir las nl palabras cdigo de longitud l.
Para que el esquema funcione y produzca un cdigo instantneo (asegurando de no elegir
como prefijo las palabras cdigo ya elegidas), las desigualdades de la columna que cuida
la instantaneidad deben verificarse. Pero ello s sucede como puede verse de las
desigualdades (1) a (l), ya demostradas verdaderas.
As pues un cdigo C r-ario de longitudes l1, , lq s existe, lo que concluye la
demostracin.
Una aplicacin comn del esquema de construccin del cdigo C en el teorema de Kraft
utiliza rboles como instrumento y puede verse en el siguiente ejemplo.
Sean l1, , lq = 2,2,3 con q=3, r =3 y X={0,1,2}, l=max{l1, l2, l3}=3
q

Dado que

i =1

r li =

3 2 + 3 2 + 3 3

= 1/9 + 1/9 + 1/27 = 7/27

= n13 1 + n23 2 + n33 3 1

con n1=0, n2=2, n3=1

Luego, el teorema dice que s existe un cdigo C r-ario con esas longitudes.
Construymoslo: Utilizaremos un rbol r-ario (cada nodo tiene r hijos).
Los nodos hijo se etiquetan con los smbolos de X (en orden lexicogrfico).

33

Un camino que va de la raz a un nodo hoja representa una palabra cdigo.


Una vez elegida una palabra cdigo, su rama ya no crece (lo sealamos -aqu- con un nodo
hoja cuadrado): para cuidar que esta palabra no sea prefijo de otra palabra cdigo.
De la raiz expandimos el rbol en un nivel:

Elegimos n1=0 palabras cdigo de longitud 1 (ninguna)


Todas las ramas se expanden. El resultado de la expansin es:

Elegimos n2=2 palabras cdigo de longitud 2 (por ejemplo en orden lexicogrfico).


Aqu elegimos w1=00 y w2=01
Esta ramas se truncan (lo sealamos con un nodo hoja cuadrado)
Las otras se expanden. El resultado de la expansin es:

Elegimos n3=1 palabras cdigo de longitud 3.


Aqu elegimos w3=020
Las otras se expanden (a no ser que hayamos terminado, que es nuestro caso).
As pues el cdigo construido es C = {w1,w2,w3} = {00,01,020}
Que como cuida el esquema, es libre de prefijos, es decir, instantneo.
Hay una demostracin alternativa encontrada en el paper de Nguyen Hung Vu (para r=2)
que aqu la generalizamos para cualquier r.
Lo interesante de esta demostracin es que construye C explcitamente.

34

Repetimos el enunciado (en uno de los sentidos si entonces ).


q

Si

i =1

r li 1 entonces existe un cdigo instantneo C r-ario con longitudes l1, , lq

Demostracin:
Sin prdida de generalidad se supone que l1 l2 l(q-1) lq (reordenando si es
necesario).
Construimos las q palabras cdigo de C en dos fases.
Fase I. Construccin de q nmeros.
v1 = 0
j 1

vj =

i =1

r lj li

(para j=2,,q)

Fase II. Construccin de q palabras cdigo.


wj es la representacin r-aria de vj
aadiendo ceros a la izquierda cuando sea necesario, es decir,
cuando el nmero de smbolos de la representacin r-aria de vj sea < lj
Al interior de esta demostracin incluimos el siguiente par de ejemplos:
Sean l1, l2, l3, l4, l5 = 2,2,3,3,4 con q=5
r=2
r=3
q

i =1

r li = 1/4 + 1/4 + 1/8 + 1/8 + 1/16

i =1

= 13/16 1
Construyamos C:
Fase I:
v1 = 0
v2 = 1
v3 = 4
v4 = 5
v5 = 12

r li = 1/9 + 1/9 + 1/27 + 1/27 + 1/81


= 25/81 1

Fase II:
w1 = 00
w2 = 01
w3 = 100
w4 = 101
w5 = 1100

Construyamos C:
Fase I:
v1 = 0
v2 = 1
v3 = 6
v4 = 7
v5 = 24

Fase II:
w1 = 00
w2 = 01
w3 = 020
w4 = 021
w5 = 0220

Los ceros en negrita son los que se


aadieron a la izquierda.

Los ceros en negrita son los que se


aadieron a la izquierda.

Ntese que C es libre de prefijos.

Ntese que C es libre de prefijos.

Continuamos con la demostracin.


Probaremos dos cosas:
a) Que el nmero de smbolos de la representacin r-aria de vj es lj
b) Que wj no es prefijo de wk (para j < k)
Cuntos smbolos son necesarios para la representacin r-aria de vj ?
Aunque no formalizaremos este resultado algunos ejemplos pueden aclarar la frmula que
presentaremos. Debe ser claro que no deseamos cambiar vj de base y luego contar el
nmero de smbolos en la representacin resultante (aunque mostremos esto en los
ejemplos, por claridad).

35

log2(8) = log2(23) = 3
Si 23 num < 24
cualquier nmero (num) entre 8 y 15 requiere 3+1 = 4
smbolos para su representacin 2-aria
Por ej.
(8)2 = 1000
log2(8) = 3.0

(10)2 = 1010
log2(10) = 3.321

(15)2 = 1111
log2(15) = 3.9

log2(16) = log2(24) = 4

log2(16) = log2(24) = 4
Si 24 num < 25
cualquier nmero (num) entre 16 y 31 requiere 4+1 = 5
smbolos para su representacin 2-aria
Por ej.
(16)2 = 10000
log2(16) = 4.0

(22)2 = 10110
log2(22) = 4.459

(31)2 = 11111
log2(31) = 4.954

log2(32) = log2(25) = 5

log3(9) = log3(32) = 2
Si 32 num < 33
cualquier nmero (num) entre 9 y 26 requiere 2+1 = 3
smbolos para su representacin 3-aria
Por ej.
(9)3 = 100
log3(9) = 2.0

(17)3 = 122
log3(17) = 2.578

(26)3 = 222
log3(26) = 2.965

log3(27) = log3(33) = 3
| nmero de smbolos para la representacin r-aria de vj | = [logr (vj)]+ 1
[y] denota la parte entera de y
Es obvio que la representacin r-aria de v1 = 0 es: 0
Luego, | nmero de smbolos para la representacin r-aria de v1 | = 1

36

a) Es lgico pensar que lj > 0 (no hay palabras cdigo de longitud cero), es decir,
(para j=1,,q)
1 lj
Es evidente que |nmero de smbolos para la representacin r-aria de v1| l1
Para el caso vj (j=2,,q), mostraremos que:
j 1

(1)

i =1

r li < 1
j 1

En efecto,

r li <

i =1

i =1

r li

y la primera sumatoria slo llega hasta (j-1)


Por hiptesis

j 1

Pues j=2,,q ; es decir, jq, luego (j-1)<q

(2) logr ( r li) < 0

Por (1) y propiedades de logaritmo

i =1

j 1

(3) logr (vj) = lj + logr ( r li)


i =1

En efecto,

j 1

logr (vj) = logr ( r lj li )

Por definicin de vj

i =1
j 1

= logr ( r lj r li )
i =1

Obvio

j 1

= logr (r lj r li )
i =1

Pues la variable de la sumatoria es i

j 1

= logr (r lj ) + logr ( r li )
=

lj

(4) logr (vj) < lj


En efecto,

i =1
j 1

+ logr ( r li )
i =1

Logaritmo de un producto
Obvio

j 1

logr (vj) = lj + logr ( r li)


i =1

< lj
(5) Se sabe que [y] y
(6) [logr (vj)] < lj
Luego,
(7) [logr (vj)] + 1 lj

Por (3)
j 1

Pues logr ( r li) < 0 por (2)


i =1

Por (5) y (4)


Pues si y < z, entonces y+1 z
en los enteros

Es decir,
| nmero de smbolos para la representacin r-aria de vj | lj
37

El inciso a) muestra que el procedimiento tiene sentido cuando aade ceros a la izquierda
si es necesario; y que las longitudes lj son suficientes para albergar a las palabras cdigo
wj (es decir, nunca faltar espacio).
b) Lo subdividimos en dos partes:
b1) w1 no es prefijo de ningn otro wj (j=2,,q)
Slo por claridad haremos un uso grfico de los puntos suspensivos:
Mostraremos que cuando w1 = 0....0
wj = 000w ( w son los restantes smbolos de wj)
no puede ser que
sino que los ceros que se aaden a wj si es necesario- son menos que los ceros en w1
es decir que:
wj = 00w
j 1

En efecto, sabemos que: vj =

i =1

lj li

= r

lj l1

j 1

i =2

r lj li

Es claro que la representacin r-aria de vj requiere tantos (o ms) smbolos como la


representacin r-aria de la parte subrayada solamente.
Tambin sabemos que:
| nmero de smbolos para la representacin r-aria de r lj l1 | = [logr (r lj l1)] + 1
= lj l1 + 1
Es decir, la representacin r-aria de vj requiere (lj l1 + 1) smbolos o ms; es decir,
la representacin r-aria de vj requiere por lo menos (lj l1 + 1) smbolos.
Tenemos reservados lj smbolos o lugares, o celdas, o espacios - para wj.
Si la representacin r-aria de vj requiere por lo menos (lj l1 + 1) smbolos, entonces, por
simple deduccin (de los lj lugares) quedan ( lj - (lj l1+1) ) que rellenar con ceros.
Pero, ( lj - (lj l1+1) ) = l1-1. Es decir, a lo ms se aaden ( l1-1 ) ceros .
Es decir, los ceros que se aaden son menos que los l1 ceros de que consta w1.
Es decir, w1 no es prefijo de ningn otro wj (j=2,,q).
b2) Para el caso wj (j=2,,q).
Mostraremos que ningn wj es prefijo de otro wk (2 j < k q)
Por reduccin al absurdo supondremos que s, que algn wj es prefijo de otro wk (j<k)
y hallaremos una contradiccin.
En efecto. Supongamos que wj es prefijo de otro wk.
Cundo algn wj es prefijo de otro wk ?
Ninguno de los siguientes dos casos son posibles.
( uj son los restantes smbolos de wj)
1) wj = 0....0uj
( uk son los restantes smbolos de wk)
wk = 000uk
Aqu se supone que el primer smbolo de uj no es 0 (tampoco el de uk).
Supongamos que el primer smbolo de uj es el h-simo de wj, pero entonces el h-simo
smbolo de wk que es 0 (a la misma altura -diramos grficamente-) no coincide. Luego
wj no puede ser prefijo de wk evidentemente.
( uj son los restantes smbolos de wj)
2) wj = 0....0uj
( uk son los restantes smbolos de wk)
wk = 00uuuuuuk
Aqu se supone que el primer smbolo de uuuuuuk no es 0(tampoco el de uj, se anota
uuuuuuk en vez de uk slo por comodidad para el lector, para que intente ver a wj como
prefijo de wk grficamente).
Supongamos que el primer smbolo de uuuuuuk es el h-simo de wk, pero entonces el hsimo smbolo de wj que es 0 (a la misma altura -diramos grficamente-) no coincide.

38

Luego wj no puede ser prefijo de wk evidentemente.


Es decir, para que wj sea prefijo de wk, la cantidad de ceros aadidos a la izquierda (si es
el caso) debe coincidir en ambas palabras cdigo. Esto puede visualizarsese as:
(vj)r es la representacin r-aria de vj
wj = 0....0(vj)r
(vk)r es la representacin r-aria de vk
wk = 00(vk)r
Es decir, para que wj sea prefijo de wk debe ser que (vj)r es prefijo de (vk)r
Aunque no formalizaremos el siguiente resultado, el lector puede hacer algunos ejemplos,
para aclarar que el hecho que (vj)r sea prefijo de (vk)r puede establecerse -en base 10, es
decir trabajando con vj,vk- as:
vj = [vk / r lk lj ]
(recuerde que j<k y que [ ] denota la parte entera)
Es decir,
(1) wj es prefijo de wk cuando vj = [vk / r lk lj ]
(2) vk / r

lk lj

En efecto:

j 1

i =1

lj li

k 1

+1+

vk / r lk lj = ( r lk li )
i =1

k 1

r lj li

i = j +1

( r lk lj )

Por definicin de vk

k 1

= ( r lj lk ) ( r lk li )

Sube el denominador al numerador

i =1

k 1

r lk li r lj lk

Introducimos r lj lk a la sumatoria

r lj li

Obvio

r lj li +

r lj li + r lj li +

r lj li +

r lj lj +

r lj li +

=
=
=

i =1
k 1
i =1
j 1
i =1
j 1
i =1
j 1
i =1
j 1
i =1

k 1

i= j

r lj li

Pues j<k

k 1

i= j

i = j +1

r lj li

k 1

i = j +1
k 1

i = j +1

Obvio (vase bien los rangos de i)

r lj li

Obvio

r lj li

Obvio

(3) [y] +1 > y


(4) [vk / r lk lj ] + 1 > vk / r lk lj
(5) vj + 1 > vk / r lk lj
de (4)

Obvio
Por (3)
Pues vj = [vk / r lk lj] y

39

j 1

(6) vj + 1 >
j 1

(7)

i =1

i =1

r lj li + 1 +

r lj li + 1 +
j 1

k 1

i = j +1

r lj li + 1 +

(9) vj + 1 >

r lj li + 1

i =1

i = j +1

r lj li

r lj li

(8) vj + 1 >

i =1
j 1

k 1

k 1

i = j +1

j 1

i =1

Por (2)
r lj li + 1

r lj li

j 1

i =1

Pues

r lj li + 1

k 1

i = j +1

r lj li puede ser vacua

Juntando (6) y (7)


De (8)
j 1

(10) vj + 1 > vj + 1

Pues vj =

i =1

r lj li

Lo que es claramente una contradiccin.


As pues nuestro supuesto debe estar errado (wj es prefijo de wk), y el enunciado ningn
wj es prefijo de otro wk (2 j < k q) es cierto.
Por b1) y b2) C es libre de prefijos, es decir, instantneo.

40

TEOREMA DE McMILLAN

Existe un cdigo unvocamente decodificable C r-ario con longitudes l1, , lq


si y slo si
q

i =1

r li 1

En principio probaremos slo uno de los sentidos del enunciado.


Si existe un cdigo unvocamente decodificable C r-ario con longitudes l1, , lq
q

entonces
q

Sea K =

i =1

i =1

r li 1

r li

Trabajaremos con Kn para n>0


q

Cmo podemos reescribir K = ( r li)n ?


n

i =1

Un ejemplo aclarar nuestra reescritura:


(r l1 + r l2 + r l3 + r l4)3
= (r l1 + r -l2 + r -l3 + r -l4) (r -l1 + r -l2 + r -l3 + r -l4) (r -l1 + r -l2 + r -l3 + r -l4)
= (r -l1(r -l1 + r -l2 + r -l3 + r -l4)
+ r -l2(r -l1 + r -l2 + r -l3 + r -l4)
+ r -l3(r -l1 + r -l2 + r -l3 + r -l4)
+ r -l4(r -l1 + r -l2 + r -l3 + r -l4))

(r -l1 + r -l2 + r -l3 + r -l4)

= ( r -l1r -l1 + r -l1r -l2 + r -l1r -l3 + r -l1r -l4


+ r l2r -l1 + r l2r -l2 + r l2r -l3 + r l2r -l4
+ r l3r -l1 + r l3r -l2 + r l3r -l3 + r l3r -l4
+ r l4r -l1 + r l4r -l2 + r l4r -l3 + r l4r -l4 )

(r -l1 + r -l2 + r -l3 + r -l4)

r -l1r -l1(r -l1 + r -l2 + r -l3 + r -l4)


+ r -l1r -l2(r -l1 + r -l2 + r -l3 + r -l4)
+ r -l1r -l3 (r -l1 + r -l2 + r -l3 + r -l4)
+ r -l1r -l4(r -l1 + r -l2 + r -l3 + r -l4)
+ r l3r -l1(r -l1 + r -l2 + r -l3 + r -l4)
+ r l3r -l2(r -l1 + r -l2 + r -l3 + r -l4)
+ r l3r -l3(r -l1 + r -l2 + r -l3 + r -l4)
+ r l3r -l4(r -l1 + r -l2 + r -l3 + r -l4)

+ r l2r -l1(r -l1 + r -l2 + r -l3 + r -l4)


+ r l2r -l2(r -l1 + r -l2 + r -l3 + r -l4)
+ r l2r -l3(r -l1 + r -l2 + r -l3 + r -l4)
+ r l2r -l4(r -l1 + r -l2 + r -l3 + r -l4)
+ r l4r -l1(r -l1 + r -l2 + r -l3 + r -l4)
+ r l4r -l2(r -l1 + r -l2 + r -l3 + r -l4)
+ r l4r -l3(r -l1 + r -l2 + r -l3 + r -l4)
+ r l4r -l4(r -l1 + r -l2 + r -l3 + r -l4)

41

= r -l1r -l1r -l1 + r -l1r -l1r l2 + r -l1r -l1r l3 + r -l1r -l1r l4


+ r -l1r l2r -l1 + r -l1r l2r l2 + r -l1r l2r l3 + r -l1r l2r l4
+ r -l1r l3r -l1 + r -l1r l3r l2 + r -l1r l3r l3 + r -l1r l3r l4
+ r -l1r l4r -l1 + r -l1r l4r l2 + r -l1r l4r l3 + r -l1r l4r l4
+ r l2r -l1r -l1 + r l2r -l1r l2 + r l2r -l1r l3 + r l2r -l1r l4
+ r l2r l2r -l1 + r l2r l2r l2 + r l2r l2r l3 + r l2r l2r l4
+ r l2r l3r -l1 + r l2r l3r l2 + r l2r l3r l3 + r -l2r l3r l4
+ r l2r l4r -l1 + r l2r l4r l2 + r l2r l4r l3 + r l2r l4r l4
+ r l3r -l1r -l1 + r l3r -l1r l2 + r l3r -l1r l3 + r l3r -l1r l4
+ r l3r l2r -l1 + r l3r l2r l2 + r l3r l2r l3 + r l3r l2r l4
+ r l3r l3r -l1 + r l3r l3r l2 + r l3r l3r l3 + r l3r l3r l4
+ r l3r l4r -l1 + r l3r l4r l2 + r l3r l4r l3 + r l3r l4r l4
+ r l4r -l1r -l1 + r l4r -l1r l2 + r l4r -l1r l3 + r l4r -l1r l4
+ r l4r l2r -l1 + r l4r l2r l2 + r l4r l2r l3 + r l4r l2r l4
+ r l4r l3r -l1 + r l4r l3r l2 + r l4r l3r l3 + r l4r l3r l4
+ r l4r l4r -l1 + r l4r l4r l2 + r l4r l4r l3 + r l4r l4r l4
(sumando los exponentes de r con el signo afuera queda)
= r (l1+l1+l1) + r (l1+l1+l2) + r (l1+l1+l3) + r (l1+l1+l4)
+ r (l1+l2+l1) + r (l1+l2+l2) + r (l1+l2+l3) + r (l1+l2+l4)
+ r (l1+l3+l1) + r (l1+l3+l2) + r (l1+l3+l3) + r (l1+l3+l4)
+ r (l1+l4+l1) + r (l1+l4+l2) + r (l1+l4+l3) + r (l1+l4+l4)
+ r (l2+l1+l1) + r (l2+l1+l2) + r (l2+l1+l3) + r (l2+l1+l4)
+ r (l2+l2+l1) + r (l2+l2+l2) + r (l2+l2+l3) + r (l2+l2+l4)
+ r (l2+l3+l1) + r (l2+l3+l2) + r (l2+l3+l3) + r (l2+l3+l4)
+ r (l2+l4+l1) + r (l2+l4+l2) + r (l2+l4+l3) + r (l2+l4+l4)
+ r (l3+l1+l1) + r (l3+l1+l2) + r (l3+l1+l3) + r (l3+l1+l4)
+ r (l3+l2+l1) + r (l3+l2+l2) + r (l3+l2+l3) + r (l3+l2+l4)
+ r (l3+l3+l1) + r (l3+l3+l2) + r (l3+l3+l3) + r (l3+l3+l4)
+ r (l3+l4+l1) + r (l3+l4+l2) + r (l3+l4+l3) + r (l3+l4+l4)
+ r (l4+l1+l1) + r (l4+l1+l2) + r (l4+l1+l3) + r (l4+l1+l4)
+ r (l4+l2+l1) + r (l4+l2+l2) + r (l4+l2+l3) + r (l4+l2+l4)
+ r (l4+l3+l1) + r (l4+l3+l2) + r (l4+l3+l3) + r (l4+l3+l4)
+ r (l4+l4+l1) + r (l4+l4+l2) + r (l4+l4+l3) + r (l4+l4+l4)

42

r (li1+li2+li3)

i1=1 i 2=1 i 3=1

As pues, es claro que en general-:


q

Kn = ( r li)n
i =1

= (r l1 + r l2 + + r l(q-1) + r lq)n
= (r l1 + r l2 + + r l(q-1) + r lq) (r l1 + r l2 + + r l(q-1) + r lq) [n veces]
q

i1=1

in =1

r (li1+ +lin)

Sea l=max{l1, , lq}.


Si utilizamos el mismo razonamiento que en el Teorema de Kraft, esta sumatoria puede
reescribirse as:
q

i1=1

in=1

r (li1+ +lin) =

i =n

Es decir, K = ( r li)n =
n

i =1

n l

n l

i =n

Ni r i
donde Ni: # de trminos de la suma del tipo r i
Ni r i

Ntese que en la ltima sumatoria, la variable i va desde n pues suponiendo que todos los
lij = 1, entonces r (li1+ +lin) = r (1+ +1) = r n. Que es el caso ms pequeo.
En cambio, i va hasta nl pues suponiendo que todos los lij = l, entonces
r (li1+ +lin) = r (l+ +l) = r nl. Que es el caso ms grande.
Por otro lado, sabemos por hiptesis del enunciado- que el cdigo C existe, es r-ario y
sus palabras cdigo tienen longitudes l1, , lq. Es interesante -y til- observar qu sucede
con su extensin n-sima, es decir, con Cn (en particular con las longitudes de las palabras
cdigo de esta extensin).
Consideremos primero un ejemplo:
C={w1,w2,w3,w4} con longitudes l1,l2,l3,l4 respectivamente. Sea n=3, luego:
Anotamos a continuacin las cadenas de Cn y sus longitudes.

43

w1 w1 w1 | l1 + l1 + l1
w1 w1 w2 | l1 + l1 + l2
w1 w1 w3 | l1 + l1 + l3
w1 w1 w4 | l1 + l1 + l4
w1 w2 w1 | l1 + l2 + l1
w1 w2 w2 | l1 + l2 + l2
w1 w2 w3 | l1 + l2 + l3
w1 w2 w4 | l1 + l2 + l4
w1 w3 w1 | l1 + l3 + l1
w1 w3 w2 | l1 + l3 + l2
w1 w3 w3 | l1 + l3 + l3
w1 w3 w4 | l1 + l3 + l4
w1 w4 w1 | l1 + l4 + l1
w1 w4 w2 | l1 + l4 + l2
w1 w4 w3 | l1 + l4 + l3
w1 w4 w4 | l1 + l4 + l4

w2 w1 w1 | l2 + l1 + l1
w2 w1 w2 | l2 + l1 + l2
w2 w1 w3 | l2 + l1 + l3
w2 w1 w4 | l2 + l1 + l4
w2 w2 w1 | l2 + l2 + l1
w2 w2 w2 | l2 + l2 + l2
w2 w2 w3 | l2 + l2 + l3
w2 w2 w4 | l2 + l2 + l4
w2 w3 w1 | l2 + l3 + l1
w2 w3 w2 | l2 + l3 + l2
w2 w3 w3 | l2 + l3 + l3
w2 w3 w4 | l2 + l3 + l4
w2 w4 w1 | l2 + l4 + l1
w2 w4 w2 | l2 + l4 + l2
w2 w4 w3 | l2 + l4 + l3
w2 w4 w4 | l2 + l4 + l4

w3 w1 w1 | l3 + l1 + l1
w3 w1 w2 | l3 + l1 + l2
w3 w1 w3 | l3 + l1 + l3
w3 w1 w4 | l3 + l1 + l4
w3 w2 w1 | l3 + l2 + l1
w3 w2 w2 | l3 + l2 + l2
w3 w2 w3 | l3 + l2 + l3
w3 w2 w4 | l3 + l2 + l4
w3 w3 w1 | l3 + l3 + l1
w3 w3 w2 | l3 + l3 + l2
w3 w3 w3 | l3 + l3 + l3
w3 w3 w4 | l3 + l3 + l4
w3 w4 w1 | l3 + l4 + l1
w3 w4 w2 | l3 + l4 + l2
w3 w4 w3 | l3 + l4 + l3
w3 w4 w4 | l3 + l4 + l4

w4 w1 w1 | l4 + l1 + l1
w4 w1 w2 | l4 + l1 + l2
w4 w1 w3 | l4 + l1 + l3
w4 w1 w4 | l4 + l1 + l4
w4 w2 w1 | l4 + l2 + l1
w4 w2 w2 | l4 + l2 + l2
w4 w2 w3 | l4 + l2 + l3
w4 w2 w4 | l4 + l2 + l4
w4 w3 w1 | l4 + l3 + l1
w4 w3 w2 | l4 + l3 + l2
w4 w3 w3 | l4 + l3 + l3
w4 w3 w4 | l4 + l3 + l4
w4 w4 w1 | l4 + l4 + l1
w4 w4 w2 | l4 + l4 + l2
w4 w4 w3 | l4 + l4 + l3
w4 w4 w4 | l4 + l4 + l4

En general, sea C={w1,,wq} con longitudes l1, , lq


Las longitudes de las cadenas de Cn son:
l1 + + l1
l1 + + l2

lq + + lq-1
lq + + lq
Ntese que son las mismas expresiones que aparecen en los exponentes de:
q

i =1

i1=1

Kn = ( r li)n =

in=1

r (li1+ +lin)

Entonces tambin Ni puede representar el # de palabras cdigo en Cn de longitud i.


Resumiendo:
q

Kn = ( r li)n =
i =1

n l

i =n

Ni r i

Donde Ni: # de palabras cdigo en Cn de longitud i


Ni: # de trminos de la suma del tipo r i
(Ni sirve bien para ambos usos).
Cuntas palabras cdigo r-arias de longitud i pueden formarse arbitrariamente?
Es claro, que ri.
Adems, sabemos que C es unvocamente decodificable.
Luego todas sus extensiones son no singulares por definicin.
Es decir, Ni ( # de palabras cdigo en Cn de longitud i) debe ser menor o igual que ri.
Ni ri

44

Lo contrario (Ni > ri), dado que slo existen ri diferentes palabras cdigo de longitud i,
significara que se repiten palabras, es decir, que Cn es singular, lo que no es posible.
Luego,
Kn =

n l

i =n

Ni r i
=

n l

i =n
n l

i =n

r i r i
r ii =

Pues Ni ri
n l

i =n

r0 =

n l

i =n

= n l - n + 1

Obvio
Obvio

Es decir,
q

( r li)n = Kn n l - n + 1
i =1
q

y como n l - n + 1 n l,

entonces

( r li)n = Kn n l
i =1

Una funcin exponencial (de n) menor o igual que una funcion lineal (de n).
La nica forma de que ello suceda es cuando la raz del exponente es 1, es decir:
q

i =1

r li 1.

Que es lo que queramos demostrar.


En el Anexo 2 se demuestra que (para l>0):
Si x>0 Kx xl entonces K 1
Que es precisamente el resultado que se utiliza.

45

Hemos demostrado:
1) Si existe un cdigo unvocamente decodificable C r-ario con longitudes l1, , lq
q

entonces
q

2) Si

i =1

i =1

r li 1

[McMillan]

r li 1

entonces existe un cdigo instantneo C r-ario con longitudes l1, , lq


[Kraft]
3) Si C es un cdigo instantneo entonces C es unvocamente decodificable [pgina 29]
Lcitamente podemos reescribir 3 como:
3') Si C un cdigo instantneo entonces C unvocamente decodificable
Luego, de 3' y 1, por transitividad:
4) Si C un cdigo instantneo r-ario con longitudes l1, , lq
q

entonces

i =1

r li 1

Tambin, de 2 y 3', por transitividad:


q

5) Si

i =1

r li 1

entonces un cdigo unvocamente decodificable C r-ario con longitudes l1, , lq


Finalmente,
La conjuncin de 4 y 2 resultan en:

La conjuncin de 1 y 5 resultan en:

C un cdigo instantneo r-ario


con longitudes l1, , lq
si y slo si
q

i =1

li

C un cdigo unvocamente decodificable


r-ario con longitudes l1, , lq
si y slo si
q

Que es el Teorema de Kraft.

i =1

r li 1

Que es el Teorema de McMillan.

46

Una propiedad muy til es la siguiente:


ln(x) x-1 (dndose la igualdad en x=1)
Demostracin (hallada en el libro de Jones):
Supongamos que x > 0.
Sea
La primera derivada es
La segunda derivada es

f(x) = (x -1) - ln(x)


f '(x) = 1 - 1/x
f ''(x) = 1/x2

Es claro que f ''(x) > 0


Cundo f '(x) = 0 ? 1 - 1/x = 0 cuando x = 1
As x = 1 es un punto crtico de f(x), y como f ''(x) > 0, x = 1 es un punto mnimo.
Adems como f(1) = (1-1) - ln(1) = 0 - 0 = 0
tenemos que f(x)= (x -1) - ln(x) 0, es decir:
x - 1 ln(x)

o, lo que es lo mismo,

ln(x) x - 1

47

LEMA DE GIBBS
Si {x1, ..., xq}, {y1, ..., yq} son dos conjuntos de nmeros tales que
q

xi 0, yi 0
Entonces
q

i =1

adems que

xi ln(1/xi)

i =1

xi = 1,

i =1

yi = 1

xi ln(1/yi)

i =1

Demostracin:
q

xi ln(1/xi) -

[ xi ln(1/xi) - xi ln(1/yi) ]

propiedades de sumatoria

xi [ ln(1/xi) - ln(1/yi) ]

factorizando xi

xi [ ln( (1/xi) / (1/yi) )]

ln(a/b) = ln a - ln b

xi [ ln(yi /xi)]

medios con medios, extremos con extremos

x i [yi/xi - 1]

pues ln(z) z -1 (igualdad en z=1) (aqu z= yi/xi)

[ yi - xi ]

distribuyendo xi

yi -

=
=

1
0

i =1
q

i =1
q
i =1
q
i =1
q
i =1
q

i =1
q
i =1
q

i =1

i =1

i =1

i =1

xi ln(1/yi)

Resumiendo:

i =1

'desdoblando' la sumatoria
por los supuestos del lema

xi ln(1/xi) -

Es decir,

xi

i =1

xi ln(1/yi) 0

xi ln(1/xi)

i =1

xi ln(1/yi)

La igualdad se da cuando yi/xi=1, es decir, cuando xi=yi

48

PROPIEDADES DE LA ENTROPA
En una fuente de memoria nula.
Sea Fuente-S una fuente de memoria nula.
1) Hr(S) 0
Demostracin:

Hr(S) =

Recordemos que

i =1

pi logr 1/pi

r-its

Ya vimos que pi logr (1/pi ) 0


El resultado sigue inmediatamente.
2) Hr(S) logr(q)
Demostracin:
Sean xi = pi , yi = 1/q

Es claro que xi 0, yi 0

adems que

i =1

xi = 1,

i =1

yi = 1

Es decir, los supuestos de Gibbs se mantienen y podemos aplicar el lema. Luego,


q

pi ln(1/pi)

pi logr(1/pi) /logr(e)

pi logr(1/pi)

pi logr(q)

cancelando logr(e) (logr(e)>0)

Hr(S)

pi logr(q)

por definicin de entropa

Hr(S)

logr(q)

Hr(S)

logr(q)

i =1
q
i =1
q
i =1

i =1

pi ln(q)

i =1
q

i =1

O su equivalente:

i =1

pi logr(q) /logr(e)

pues ln(z)=logr(z)/logr(e)

i =1

pi

pues logr(q) no depende de i


pues la sumatoria es igual a 1

Juntando los dos resultados anteriores tenemos los lmites o el rango de la entropa:
0 Hr(S) logr(q)

49

H(Sn) = nH(S)
Demostracin:
Sea la Fuente-Sn (extensin de orden n de la Fuente-S) con alfabeto Sn = {1, 2, ... , qn},
donde j = sj1 sj2 ... sjn con sji S.
Por definicin, la entropa de esta fuente extendida es:

qn

H(S ) = [ prob(j) ] [ logr 1/prob(j) ]


n

j=1
qn

= [pj1 ... pjn ] [logr 1/pj1 ... pjn]


j=1

pues prob(j) = prob(sj1 sj2 ... sjn)


= prob(sj1) ... prob(sjn)
= pj1 ... pjn

Ntese que esta sumatoria recorre las probabilidades de cada uno de los smbolos de Sn:
p1 ... p1 p1 (n veces); p1 ... p1 p2; etctera hasta llegar a pq ... pq pq (n veces).
Por ello, es lcito reescribir H(Sn) as:
H(Sn)
q

i1=1
q

[pi1 pi2 ... pin ] [logr 1/pi1 pi2 ... pin]

[pi1 pi2 ... pin ] [logr (1/pi1 1/pi2 ... 1/pin)]

[pi1 pi2 ... pin ] [logr(1/pi1 ) + logr(1/pi2 ) ... + logr(1/pin)]

in =1
q

i1=1
q

in =1
q

i1=1

in =1

=
=

[pi1 pi2 ... pin ] logr(1/pi1 )

distribuyendo el primer corchete

[pi1 pi2 ... pin ] logr(1/pi2)

e introduciendo las

in =1
q

i1=1

in =1

...

+
i1=1

log de producto

i1=1
q

reescribiendo el 2o corchete

sumatorias

in =1

[pi1 pi2 ... pin ] logr(1/pin)

= H(S)
+ H(S)
...
+ H(S)

pues cada uno de los


n sumandos
es igual a la entropa H(S)
como enseguida probaremos.

= nH(S)

Que es lo que queramos demostrar

Que cada uno de los n sumandos sea igual a entropa de la fuente original, puede verse con
el siguiente razonamiento para dos de ellos:

50

Caso i1:
q

i1=1
q

=
i1=1
q

[pi1 pi2 ... pin ] logr(1/pi1)

[pi1 logr(1/pi1)] pi2 ... pin

in=1
q

in =1

= [pi1 logr(1/pi1)]
i1=1
q

= [pi1 logr(1/pi1)]
i1=1

Obvio

pi2

i 2=1
q
i 2=1

pi2 ... pin

pi 3

in=1
q

Pues i1 no depende de i2,..., in

i3=1

in =1

pin

Obvio

= [pi1 logr(1/pi1)] 1

Cada sumatoria es igual a 1.

= H(S)

Obvio

i1=1

Caso in:
q

i1=1
q

=
i1=1
q

[pi1 pi2 ... pin ] logr(1/pin)

pi1 ... pin-1 [pin logr(1/pin)]

in=1
q

in =1
q

i1=1
q

i ( n1)=1
q

i1=1
q

i 2=1
q

i1=1

i 2=1
q

= pi1
= pi1

pi1 ... pin-1

pi2

pi2

= H(S) pi1

in=1

pin-1

pin-1 H(S)

i ( n1)=1
q
i ( n1)=1

i 2=1

pin logr(1/pin)

Pues i1,...,in-1 no dependen de in

i1=1

Obvio

in=1

pin logr(1/pin)

Obvio
Obvio

pi2

i ( n1)=1

pin-1

Obvio

= H(S) 1
= H(S)

Cada sumatoria es igual a 1.


Obvio

51

En una fuente con memoria o de Markov.


Sea Fuente-M una fuente de Markov de orden m. Sea M la fuente afn.
1) Hr (M) Hr ( M )
Demostracin:
Sea el estado j = sj1 sj2 ... sjm
Recordemos que:

qm

Hr (M) = wj Hr (S / sj1 sj2 ... sjm)

r-its

j =1

qm

= wj Hr (S / j)

pues j = sj1 sj2 ... sjm

j =1

qm

= wj
j =1

qm

p(si / j) logr (1/ p(si / j))

i =1

definicin de Hr (S / j)

wj p(si / j) logr (1/ p(si / j))

wj ingresa a la sumatoria

wj p(si / j) logr (1/ p(si / j))

conmutando las sumatorias

j =1 i =1
q qm

i =1

j =1

Aqu: wj = prob(j) = prob(sj1 sj2 ... sjm)


q

Por otro lado, Hr ( M ) = prob(si) logr (1/prob(si))

qm

i =1

r-its

qm

Donde prob(si) = pi = p(si /j) wj = wj p(si /j)


j =1

j =1

qm

i =1
q

j =1

qm

i =1

j =1

Es decir, Hr ( M ) = [
=

wj p(si /j) ] logr (1/prob(si))

wj p(si /j) logr (1/prob(si))

r-its

Entonces,
Hr (M) - Hr ( M )
q

qm

i =1

j =1

qm

i =1

j =1

wj p(si / j) logr (1/ p(si / j))

wj p(si /j) logr (1/prob(si))

luego, 'juntando' las sumatorias

52

qm

i =1
q

j =1

=
=

i =1
q

qm

j =1

qm

j =1

i =1
q

qm

i =1

j =1

[ wj p(si / j) logr (1/ p(si/j)) - wj p(si /j) logr (1/prob(si)) ]


wj p(si /j) [ logr (1/ p(si/j)) - logr (1/prob(si)) ]

factorizando wj p(si /j)

wj p(si /j) logr [ (1/ p(si/j)) / ( 1/prob(si) ) ]

log de un cociente

wj p(si /j) logr [prob(si)/p(si/j)]

medios con medios, etc.

qm

i =1
q

j =1

= [1/ln(r)]
[1/ln(r)]

i =1
q

= [1/ln(r)]

qm

j =1

qm

i =1 j =1
q qm

= [1/ln(r)] [

i =1
q

j =1

wj p(si /j) ln[prob(si)/p(si/j)]

pues logr(z)= ln(z)/ln(r)

wj p(si /j) [prob(si)/p(si/j) - 1]

pues ln(z) z-1

[ wj prob(si) - wj p(si /j) ]

i =1
q

qm

j =1

= [1/ln(r)] [ prob(si) [ 1 ] i =1
q

qm

i =1
q

j =1

i =1

j =1

wj prob(si) -

= [1/ln(r)] [ prob(si) wj

qm

i =1
q

j =1

qm

= [1/ln(r)] [ prob(si)

= [1/ln(r)] [ prob(si)

i =1
q
i =1

wj p(si /j) ]

qm


i =1
q
i =1

j =1

distribuyendo wj p(si /j)

wj p(si /j) ]

obvio
prob(si) no depende de j

qm

wj p(si /j) ]

pues

wj p(si /j) ]

obvio

prob(si) ]

=0

j =1

clculo de prob(si)
obvio

Resumiendo,
Hr (M) - Hr ( M ) 0, es decir:
Hr (M) Hr ( M )
La entropa de la fuente afn (de memoria nula) M , de una Fuente-M (de Markov)
siempre es mayor o igual que la entropa de la Fuente-M.

53

wj =1

L(C), LONGITUD MEDIA DE UN CDIGO Y CDIGO COMPACTO


Sea una Fuente-S (de memoria nula). Sea C un cdigo asociado a ella, se define la
longitud media del cdigo C as:
q

L(C) = pi li
i =1

Aunque no est prohibido usar L(C) para cualquier cdigo es usual trabajar slo con
cdigos no singulares (e incluso slo con cdigos unvocamente decodificables o
instantneos).
Ejemplo:
Fuente-S = ( {s1, s2, s3}, {1/3, 1/3, 1/3} )
C = {w1, w2, w3} = {1, 01, 001}
Es claro que l1=1, l2=2, l3=3

con X={0,1}

Luego, L(C) = pi li = 1/3 1 + 1/3 2 + 1/3 3 = 1/3 (1+2+3) =1/3 6 = 6/3 = 2


i =1

Ntese que cuando la Fuente-S es una fuente de memoria nula equiprobable, entonces:
q

i =1

i =1

L(C) = pi li = 1/q li = 1/q

i =1

li

Ntese que cuando el cdigo C es bloque, entonces:


q

i =1

i =1

i =1

L(C) = pi li = pi l = l pi = l 1 = l

Un cdigo C unvocamente decodificable (o instantneo) cuyo alfabeto cdigo r-ario es X,


asociado a una Fuente-S, se dice compacto cuando:
L(C) L(D)
donde D es cualquier otro cdigo r-ario unvocamente decodificable (o instantneo)
construido con el mismo alfabeto cdigo r-ario X (obviamente con la misma cantidad de
palabras cdigo).
Para el ejempo anterior -en el que C es instantneo- es claro que C no es compacto pues:
con X={0,1}
D = {w1, w2, w3} = {1, 00, 01}
Es un cdigo instantneo tal que l1=1, l2=2, l3=2
3

Luego, L(D) = pi li = 1/3 1 + 1/3 2 + 1/3 2 = 1/3 (1+2+2) =1/3 5 = 5/3


i =1

Obviamente 5/3 = L(D) < L(C) = 6/3

54

OTRAS PROPIEDADES DE LOS CDIGOS INSTANTNEOS COMPACTOS


Sea C un cdigo instantneo compacto asociado a una Fuente-S.
(recordemos que |wi| = li)
Si pi > pj entonces li lj
Demostracin:
A partir de C, construyamos otro cdigo C' intercambiando las palabras cdigo asociadas
al smbolo si y al smbolo sj (el resto de las palabras cdigo se copian; la siguiente tabla
clarifica esta construccin)
S
s1
...
si
...
sj
...
sq

pi
p1
...
pi
...
pj
...
pq

Supongamos que li > lj


L(C) - L(C') =
L(C)
- L(C')

C
w1
...
wi
...
wj
...
wq

C'
w'1 = w1
...
w'i = wj
...
w'j = wi
...
w'q = wq

p1 l1 + ... + pi li + ...+ pj lj + ... + pq lq


- [ p1 l1 + ... + pi lj + ...+ pj li + ... + pq lq ]

pi li + pj lj
- pi lj - pj li
= pi li - pi lj + pj lj - pj li
= pi (li - lj) + pj (lj - li)
= pi (li - lj) - pj (li - lj)
= (pi - pj) (li - lj)
> 0
=

Es decir, L(C) - L(C') > 0


Es decir, L(C) > L(C')
Es decir, C no es compacto. Lo que es una contradiccin.
Ello muestra que nuestro supuesto es errneo y que li lj
Un corolario obvio de este resultado es el siguiente:
Sea C un cdigo instantneo compacto asociado a una Fuente-S.
Si p1 > p2 > ... > pq-1 > pq entonces l1 l2 ... lq-1 lq
El siguiente contraejemplo muestra que el enunciado
Si pi pj entonces li lj
es falso
S
pi
C
C es instantneo y compacto
s1 1/3 10
s2 1/3 0
s3 1/3 11
p1 p2 pero l1 > l2
55

obvio
reescribiendo
factorizando
obvio
factorizando
pi > pj, o sea (pi - pj) > 0
li > lj, o sea (li - lj) > 0

Sin embargo, el siguiente enunciado si es verdadero:


Si C es un cdigo instantneo y compacto asociado a una Fuente-S
Entonces C' un cdigo instantneo y compacto asociado a la Fuente-S tal que
cuando pi pj se cumple que li lj
Demostracin:
Cuando pi > pj en la pgina anterior se muestra que li lj, el resultado sigue con C' = C.
En cambio, cuando pi = pj slo existen dos posibilidades:
a) Que li lj en este caso el resultado sigue con C' = C
b) Que li > lj en este caso construimos C' -a partir de C- intercambiando las palabras
cdigo asociadas al smbolo si y al smbolo sj (el resto de las palabras cdigo se copian).
Es claro que C' sigue siendo instantneo (pues C lo es, y C' tiene las mismas palabras
cdigo de C). Veamos qu sucede con las longitudes medias de C y C':
L(C) = p1 l1 + ... + pi li + ...+ pj lj + ... + pq lq
L(C') = p1 l1 + ... + pi lj + ...+ pj li + ... + pq lq
Dado que pi = pj, es evidente que L(C') = L(C), y como C es compacto es claro que C' es
tambin compacto.
Este resultado muestra que si C es un cdigo instantneo y compacto asociado a una
Fuente-S, siempre es posible construir otro cdigo instantneo y compacto C' tal que
Si p1 p2 ... pq-1 pq entonces l1 l2 ... lq-1 lq
Sea la Fuente-S tal que p1 p2 ... pq-1 pq > 0
Sea C un cdigo instantneo y compacto asociado a la Fuente-S en el cual se cumple que
cuando p1 p2 ... pq-1 pq sucede que l1 l2 ... lq-1 lq
(siempre es posible hacer que esto se cumpla, como lo muestra el anterior resultado)
Entonces lq-1 = lq
Demostracin:
Dado que pq-1 pq sucede que lq-1 lq. Supongamos que lq-1 < lq
C es libre de prefijos, pues es instantneo. wq es la palabra cdigo ms larga de C, |wq| = lq
Es lcito suponer que wq = va ( 'a' un smbolo de X -el alfabeto cdigo de C-; vX* )
Construyamos el cdigo C' as:
w'j = wj (j=1,...,q-1)
w'q = v
Ningn w'j = v, lo que hara a C' singular, pues C es libre de prefijos.
Es decir, C' an es instantneo.
Pero
L(C') - L(C) = p1 l1 + ... + pi li + ...+ pj lj + ... + pq (lq - 1)
- [p1 l1 + ... + pi li + ...+ pj lj + ... + pq lq]
= pq (lq - 1) - pq lq
= pq lq - pq - pq lq
= - pq
<
0
pues pq > 0
Es decir, L(C') < L(C). Es decir, C no es compacto (pero C s es compacto).
Contradiccin que muestra lo errneo del supuesto y que lq-1 = lq
56

Sea X={a,a'} el alfabeto cdigo de un cdigo binario C (por ej. a=0, a'=1).
Se dice que dos palabras cdigo wi,wj son mellizas cuando wi=va y wj=va'
Es decir, cuando difieren en el ltimo smbolo (bit).
Sea la Fuente-S tal que p1 p2 ... pq-1 pq > 0
Sea C un cdigo binario instantneo y compacto asociado a la Fuente-S
Entonces C' un cdigo instantneo y compacto tal que
sus dos palabras cdigo ms largas (las dos ltimas palabras cdigo) son mellizas.
Demostracin:
Los anteriores resultados muestran que -a partir de C- se puede construir un cdigo tal que
cuando p1 p2 ... pq-1 pq sucede que l1 l2 ... lq-1 lq
De manera que, sin prdida de generalidad, se puede suponer que C ya es as.
C es libre de prefijos, pues es instantneo. wq es la palabra cdigo ms larga de C, |wq| = lq
Es lcito suponer que wq = va
Lgicamente existen dos alternativas:
a) va' C
b) va' C
Mostraremos primero que el inciso b) es imposible:
Supongamos que va' C
Construyamos el cdigo C' as:
w'j = wj (j=1,...,q-1)
w'q = v
Ningn w'j = v, lo que hara a C' singular, pues C es libre de prefijos.
Y, dado que va' C, w'q=v no es prefijo de ninguna palabra cdigo de C, es decir, C'
an es instantneo. Un razonamiento idntico al de la demostracin anterior muestra que
L(C')<L(C), es decir, que C no es compacto (pero C s es compacto).
Contradiccin que muestra lo errneo del supuesto y que va' C.
Lo que nos lleva al inciso a).
Si va' C, con wq-1=va' el enunciado ya est demostrado.
En cambio si va' C, con wi=va' (i q-1)
A partir de C construimos el cdigo C' intercambiando las palabras cdigo asociadas al
smbolo si (wi) y al smbolo sq-1 (wq-1) (el resto de las palabras cdigo se copian).
Es claro que C' sigue siendo instantneo (pues C lo es, y C' tiene las mismas palabras
cdigo de C). Veamos qu sucede con las longitudes medias de C y C':
L(C) = p1 l1 + ... + pi li + ... + pq-1 lq-1 + pq lq
L(C') = p1 l1 + ... + pi lq-1 + ... + pq-1 li + pq lq
Como -en C- wi=va' y wq=va es claro que |wi|=|va'|=li y |wq|=|va|= lq
Luego li=lq
Dado que pi ... pq-1 se cumple que li ... lq-1
Es decir, li=li+1=...=lq-1=lq. As pues, la igualdad L(C')=L(C) es evidente.
Y como C es compacto es claro que C' tambin es compacto.

57

RELACIONES ENTRE Hr(S) y L(C)


Si C es un cdigo r-ario unvocamente decodificable (instantneo) asociado a la Fuente-S
Entonces Hr(S) L(C)
Demostracin:

Hr(S) - L(C) = pi logr(1/pi) -

pi li

= pi logr(1/pi) -

pi logr(r li )

i =1
q
i =1
q

i =1
q
i =1

exponencial y log son inversas

= [ pi logr(1/pi) - pi logr(r li ) ]

'uniendo' las sumatorias

= pi [ logr(1/pi) - logr(r li ) ]

factorizando pi

= pi logr(1/pi / r li )

log(a/b) = log a - log b

= pi logr(1 / (pi r li ) )

medios con medios, etc.

i =1
q
i =1
q
i =1
q
i =1

= [1/ln(r)] pi ln(1 / (pi r li ) )

pues logr(z)= ln(z)/ln(r)

[1/ln(r)] pi [1 / (pi r li ) - 1]

pues ln(z) z-1

i =1
q

i =1
q

= [1/ln(r)] [ 1 / r li - pi ]
i =1
q

= [1/ln(r)] [ 1/r

pi ]

introduciendo la sumatoria

= [1/ln(r)] [ r l i -

pi ]

obvio

obvio

li

i =1
q
i =1
q

= [1/ln(r)] [ r l i i =1

Pues

i =1

distribuyendo pi

i =1
q

i =1

0
r l i 1 ya que como C es unvocamente decodificable (o instantneo) el

teorema de McMillan (o Kraft) garantiza esto. As pues Hr(S) - L(C) 0, es decir:


Hr(S) L(C).
q

li

La igualdad se da cuando [1 / (pi r )] = 1 y

i =1

r l i = 1. Pero cuando pi = r l i,

despejando li se verifica la igualdad cuando li=logr(1/pi), pues la segunda condicin


q

i =1

li

= pi =1 se cumple siempre. Para tener sentido logr(1/pi) debe ser un entero.


i =1

58

Eficiencia y redundancia de un cdigo unvocamente decodificable (o instantneo) C)


La eficiencia de C se define como = [ Hr(S) / L(C) ]
La redundancia de C se define como ' = [1-]

[x 100%]
[x 100%]

Es obvio, por el anterior resultado, que 01 y que 0'1


La eficiencia de C ser mxima cuando L(C)= Hr(S), que como vimos slo sucede cuando
li=logr(1/pi) [con logr(1/pi) entero].
O, lo que es lo mismo cuando pi = r l i =( 1/ r l i )=(1/r)l i [para enteros li].
A las Fuentes-S que cumplen esta caracterstica algunos las llaman especiales.
C={0,10,11} X={0,1}
r=2
Ej.:
Fuente-S=({ s1 , s2 , s3 },{1/2, 1/4, 1/4})
Sea la fuente de memoria nula Fuente-S.
Entonces C un cdigo r-ario unvocamente decodificable ( instantneo) asociado a
la Fuente-S tal que Hr(S) L(C) < Hr(S) + 1
Demostracin:
Por el anterior resultado sabemos que, para cualquier cdigo D r-ario unvocamente
decodificable ( instantneo), Hr(S)=L(D) cuando li=logr(1/pi) , con logr(1/pi) un entero.
Este mejor caso slo es posible en fuentes especiales.
Sin embargo, dada la Fuente-S, podemos construir el cdigo C empezando por definir sus
longitudes lo ms cercanas posibles al mejor caso , as:
li=techo[logr(1/pi)], es decir, li es el nico entero tal que
logr(1/pi) li < logr(1/pi) + 1
Elegidas las longitudes li de esta manera es obvio que se cumple: logr(1/pi) li
Por lo tanto -despejando pi- se cumple: pi r l i, o lo que es lo mismo, r l i pi
As pues:
r l 1 p1
...
r l q pq
Sumando los lados izquierdos (y derechos) en las desigualdades (preservando el sentido )
q

i =1

r li

i =1

pi = 1, es decir,

i =1

r li 1

Por lo tanto, el teorema de McMillan (Kraft) nos asegura que con las longitudes as
elegidas existe un cdigo C r-ario unvocamente decodificable (instantneo).
Podemos seguir construyendo este cdigo C utilizando rboles, la segunda versin del
teorema de Kraft o cualquier otro mecanismo.
Concentrmonos sin embargo en
logr(1/pi) li < logr(1/pi) + 1
multiplicando cada miembro por pi resulta
pi logr(1/pi) pi li < pi logr(1/pi) + pi 1
As pues:
p1 logr(1/p1) p1 l1 < p1 logr(1/p1) + p1 1
...
pq logr(1/pq) pq lq < pq logr(1/pq) + pq 1

59

Sumando uno a uno los miembros en las desigualdades, resulta:


q

i =1

pi logr(1/pi)

i =1

pi li <

i =1

pi logr(1/pi) +

Que no es otra cosa que.


Hr(S)

L(C) <
Hr(S)
Que es lo que queramos demostrar.

i =1

pi 1

Sea D un cdigo r-ario compacto unvocamente decodificable (instantneo) asociado


a una Fuente-S, entonces Hr(S) L(D) < Hr(S)+1
Demostracin:
1) Sea C el cdigo del anterior resultado, por tanto: Hr(S) L(C) < Hr(S) + 1, es decir,
2) L(C) < Hr(S) + 1
3) Dado que D es compacto entonces L(D) L(C)
4) Adems sabemos que Hr(S) L(D)
5) De 3 y 4: Hr(S) L(D) L(C)
6) De 2 y 5: Hr(S) L(D) L(C) < Hr(S) + 1
Es decir, Hr(S) L(D) < Hr(S) + 1

60

EL PRIMER TEOREMA DE SHANNON


TEOREMA DE LA CODIFICACIN SIN RUIDO
Sea Fuente-S una fuente de memoria nula. Y llamemos a su extensin n-sima Fuente-Sn.
Sea Dn un cdigo compacto r-ario unvocamente decodificable (instantneo) de dicha
extensin, con L(Dn) como su longitud media
Entonces es posible codificar la Fuente-S con un cdigo cuya longitud media sea
arbitrariamente cercana a su entropa Hr(S).
Demostracin:
Por el anterior resultado sabemos que:
Hr(Sn) L(Dn) < Hr(Sn) + 1
nHr(S) L(Dn) < nHr(S) + 1
Hr(S) L(Dn)/n < Hr(S) + 1/n

dado que Hr(Sn) = nHr(S), resulta:


multiplicando cada miembro por 1/n resulta:
Luego:
lim L(Dn)/n = Hr(S)
n >
n
El resultado sigue si tomamos L(D )/n como la longitud media de un esquema de
codificacin de la Fuente-S (basado en la codificacin de su extensin n-sima).
Estrictamente hablando, al codificar la Fuente-Sn no se codifica la Fuente-S, puesto que no
se asignan palabras cdigo a los smbolos de S, pero la codificacin de la Fuente-Sn nos
permite codificar la informacin que viene de S, puesto que cada palabra cdigo en Dn
representa un bloque de n smbolos de S y as -en promedio- cada elemento de S requiere
L(Dn)/n smbolos r-arios para su codificacin (a eso nos referimos con un esquema de
codificacin de la Fuente-S)
En la prctica, la persecucin del lmite Hr(S), consiste precisamente en codificar la
Fuente-Sn. Lo de malo es que al hacerlo as, debemos codificar grupos de n-smbolos de
la fuente original (en vez de smbolos slos), lo que implica mayor complejidad.

61

CONSTRUCCIN DE UN CDIGO C PARA UNA FUENTE-S


Dada una Fuente-S, se requiere un procedimiento para construir un cdigo r-ario C
asociado a ella. Es deseable que C sea -en orden de importancia creciente-: no singular,
unvocamente decodificable, instantneo y compacto.
Para construir dicho cdigo C, adems de la intuicin, describiremos otros modos de
hacerlo; tales modos y el cdigo resultante recibirn el mismo nombre (usualmente el de
su proponente).
Cdigos de Shannon.Aqu, dada la Fuente-S, slo se ofrecen las longitudes de las palabras cdigo de C.
Al demostrar que Hr(S) L(C) < Hr(S) + 1, hemos utilizado: li=techo[logr(1/pi)]
Ya vimos que el teorema de McMillan (Kraft) nos asegura que con las longitudes as
elegidas existe un cdigo C r-ario unvocamente decodificable (instantneo).
Ejemplo: Sea una Fuente-S la Fuente-S=({s1,s2,s3,s4,s5},{3/10,1/5,1/5,1/5,1/10}) r=2
l1 = techo[log2(10/3)] = techo[log2(3.3333333)] = techo[1.736965] = 2.
El resto de los li se halla de manera semejante: l2=3, l3=3, l4=3, l5=4.
Luego, slo resta construir C con dichas longitudes (para ello podemos apelar a los
rboles, la segunda versin del teorema de Kraft o cualquier otro mecanismo).
Cdigos de Fano.Sea la Fuente-S=({s1, ... ,sq},{p1, ... ,pq}) donde prob(si)=pi
Se construye un rbol r-ario donde el nodo raz incluye todos los smbolos (cuyas
probabilidades suman 1).
Cada siguiente nivel del rbol se expande as:
Cada nodo (padre) tiene r nodos hijo, estos r nodos deben ser equiprobables (o casi
equiprobables). Es decir, los smbolos de cada nodo (padre) se reagrupan en r subgrupos (r
nodos hijo) equiprobables (o casi equiprobables).
Si en algn nivel un nodo tiene menos de r smbolos (es decir, no puede subdividirse en r
nodos), se acepta excepcionalmente el nmero de nodos hijo (menor a r) que pueda tener.
Si en algn nivel un nodo tiene un slo smbolo, se detiene su crecimiento.
Finalmente, cuando todos los nodos hoja tienen un slo smbolo:
Se etiquetan los hijos de cada nodo padre con los smbolos r-arios del alfabeto cdigo (no
es necesario hacerlo en orden, pero se sugiere ello para homogeneizar los resultados):
Las palabras cdigo de C resultan de concatenar dichos smbolos para cada camino entre
el nodo raz y cada nodo hoja (palabra cdigo que se la asigna al smbolo de la Fuente-S
que corresponde a dicho nodo hoja).
Ejemplo:

r=3; X={0,1,2}; C={0,1,20,21}


62

Para ciertas fuentes, puede existir ms de una alternativa lcita de subdivisin en algn
nivel del rbol. Lo que da lugar a uno u otro cdigo.
Eso se observa en el siguiente ejemplo (del libro de Togneri), que tambin sirve para
mostrar que un cdigo de Fano, si bien es instantneo no necesariamente es compacto.

C = { 00, 01, 100, 101, 110, 111} con L(C) = 22/9

En cambio:

C = { 0, 1000, 1001, 101, 110, 111 } con L(C) = 21/9

(este cdigo es compacto)

Dividiremos la presentacin de los cdigos de Huffman en binarios y r-arios (r>2)


63

Cdigos de Huffman binarios.Supondremos que el alfabeto (del) cdigo es X={0,1}


Sea Sj-1 una fuente de memoria nula (cuyos smbolos tienen sus probabilidades ordenadas
en forma decreciente).
Sean s0 y s1 los dos smbolos con menor probabilidad.
Sean prob(s0)=p0 y prob(s1)=p1
Fuente reducida.- Denominaremos fuente reducida (de Sj-1) a la fuente de memoria nula
Sj construida a partir de Sj-1 as:
Todos los smbolos -excepto s0 y s1- se copian con sus respectivas probabilidades.
s0 y s1 se agrupan en un nico smbolo denominado s con prob(s) = p = p0 + p1
Los smbolos de Sj (y sus probabilidades) se (re)ordenan en forma decreciente de acuerdo
a dichas probabilidades.
Es claro que la fuente reducida (Sj) tiene un smbolo menos que la fuente original (Sj-1).
Ejemplo (no se fije en el cdigo Cj que le aadimos a la fuente Sj):
Sj-1
prob
Sj
prob
Cj
s1
6/13
s1
6/13
0
p = p0 + p1 = 2/13 + 2/13 = 4/13
s2
3/13
4/13
10
s
3/13
11
2/13
s2
s0
2/13
s1
Construccin de un cdigo para la fuente Sj-1 .Sea Sj la fuente reducida de Sj-1
Sea Cj un cdigo para Sj
Sea w la palabra cdigo de s
Construimos el cdigo Cj-1 -para la fuente Sj-1- a partir del cdigo Cj as:
Se copian las palabras cdigo de todos los smbolos de Sj -excepto s(con cuidado pues los smbolos no siempre estn a la misma altura)
Las palabras cdigo de s0 y s1 son w0 y w1 respectivamente.
Ejemplo:
Sj-1
prob
Cj-1
Sj
prob
Cj
s1
6/13
0
s1
6/13
0
s2
3/13
11
4/13
10
s
3/13
11
2/13
100
s
s0
2
2/13
101
s1
El principal resultado de Huffman, adems de la esquemtica forma de hallar sus cdigos,
es el siguiente:
Sea Sj la fuente reducida de Sj-1
Sea Cj-1 (un cdigo para Sj-1) construido a partir de Cj (un cdigo para Sj) como se indic.
Si Cj es compacto entonces Cj-1 es compacto
Demostracin:
Supongamos que Cj-1 no es compacto.
Sea el cdigo compacto Dj-1 (para Sj-1), luego:
a) L(Dj-1) < L(Cj-1)
En la pgina 57 se muestra que es lcito suponer que las dos palabras cdigo ms largas de
Dj-1 (correspondientes a s0 y s1) son mellizas, designmoslas como v0=v0 y v1=v1.

64

De manera "inversa" a como se indic antes, pero lcitamente y para efectos de


demostracin, podemos construir -a partir de Dj-1- un otro cdigo Dj (para Sj) as:
Se copian todas las palabras cdigo de Dj-1 en Dj -excepto las de los smbolos s0 y s1La palabra cdigo de s es v=v (resulta de suprimir el ltimo smbolo en v0 - v1-).
Sj-1
pi
Dj-1
Cj-1
Sj
pi
Dj
Cj
s1
p1
v1
w1
s1
p1
v1
w1
s2
p2
v2
w2
s2
p2
v2
w2
...
...
...
...
...
...
...
...
v
s0
p0
v0=v0
w0
s
p
w
s1
p1
v1=v1
w1
Pero entonces:
Por la forma de construir Cj-1 a partir de Cj (segn lo indicado antes), y
Por la forma de construir Dj a partir de Dj-1 (segn la forma "inversa" recin indicada)
Resulta:
b) L(Cj-1) - L(Cj) = p1|w1| + p2|w2| + ... + p0|w0| + p1|w1|
- [ p1|w1| + p2|w2| + ... + p|w| ]
= p0|w0|
+ p1|w1|
- p|w|
obvio
= p0(|w|+1) + p1(|w| +1) - p|w|
pues |wc|=|w|+1
= p0|w| + p0 + p1|w| + p1 - p|w|
obvio
= p0|w| + p0 + p1|w| + p1 - (p0+p1)|w|
pues p=p0+p1
= p0 + p1 = p
obvio
Luego L(Cj-1) = p + L(Cj)
c) L(Dj-1) - L(Dj) = p1|v1| + p2|v2| + ... + p0|v0| + p1|v1|
- [ p1|v1| + p2|v2| + ... + p|v| ]
= p0|v0|
+ p1|v1|
- p|v|
= p0(|v|+1) + p1(|v| +1) - p|v|
= p0|v| + p0 + p1|v| + p1 - p|v|
= p0|v| + p0 + p1|v| + p1 - (p0+p1)|v|
= p0 + p1 = p
Luego L(Dj-1) = p + L(Dj)

obvio
pues |vc|=|v|+1
obvio
pues p=p0+p1
obvio

Substituyendo b) y c) en a) tenemos:
p + L(Dj) < p + L(Cj), es decir, L(Dj) < L(Cj)
Luego Cj no es compacto. Lo que contradice que Cj sea compacto.
Esto nos permite concluir que nuestro supuesto es errneo y que
Cj-1 s es compacto.
Otro resultado (inmediato por simple inspeccin) es el siguiente:
Si Cj es instantneo (libre de prefijos) entonces Cj-1 es instantneo (libre de prefijos)
La construccin de un cdigo de Huffman binario para una Fuente-S es como sigue:
Llamemos S1 a la Fuente-S original.
1) Hacer reducciones sucesivas S2, S3, ... , Sq-1
Ntese que Sq-1 tiene slo dos smbolos
2) Construir el cdigo Cq-1 = {0,1} para Sq-1
3) Construir sucesivamente -como se indica arriba- los cdigos Cq-1, Cq-2, ... , C2, C1
C = C1 es el cdigo de Huffman para la Fuente-S original.
65

Ejemplo (se omiten los nombres de los smbolos si y en su lugar estn las probabilidades):

Para la fuente Sq-1 de dos smbolos, su cdigo binario asociado Cq-1={0,1} es -por simple
inspeccin- instantneo y compacto. Se concluye, por los resultados anteriores al ejemplo,
que los cdigos de Huffman son instantneos y compactos.

Cdigos de Huffman r-arios (r > 2).Supondremos que el alfabeto (del) cdigo es X={ 0, ... , r-1 }
La construccin de un cdigo de Huffman r-ario para una Fuente-S es semejante a la
construccin de un cdigo binario con las siguientes modificaciones:
1) Las reducciones agrupan en un nico smbolo denominado s a los r smbolos con
menor probabilidad, prob(s) = prob(s0) + ... + prob(s(r-1)) = p0 + ... + p(r-1) = p
2) Sea w la palabra cdigo de s (en Cj)
Las palabras cdigo de s0, ... , s(r-1) son w0, ... , w(r-1) respectivamente
(todas las otras se copian).
Sin embargo, el nmero inicial de smbolos de S1 (S= S1 es la fuente original) debe
satisfacer el hecho siguiente:
Que sus sucesivas reducciones sean tales que la ltima fuente reducida tenga exactamente
r smbolos (que es como funciona el mtodo),
Ejemplo (de mal uso del mtodo, cuando lo anterior no se cumple):
X={0,1,2}
S
1/4
1/4
1/4
1/4

(r = 3)
C
1
00
01
02

S2
3/4
1/4

C2
0
1

L(C) = 7/4
Enseguida hallaremos otro cdigo con menor longitud media!
Por ello puede ser necesario agregar smbolos vacuos (o espreos, o fantasma) con
probabilidad 0.
El nuevo nmero total de smbolos debe ser: q' = r + techo[ (q-r) / (r-1) ] (r-1)
Es claro que se deben agregar (q' - q) smbolos vacuos.

66

Ejemplo:
Para la misma Fuente-S anterior.
q' = 3 + techo[ (4-3) / (3-1) ] (3-1) = 3 + techo[1/2] 2 = 3 + 1 2 = 5
Se agregan (q' - q) = (5 - 4) = 1 nuevo smbolo vacuo.
(Se omiten los nombres de los smbolos si y en su lugar estn las probabilidades):

Cuyo L(C) = 6/4


Ejemplo:
X={0,1,2,3} (r = 4)
(Se omiten los nombres de los smbolos si y en su lugar estn las probabilidades):

67

CODIFICACIN ARITMTICA
Una otra manera muy diferente pero eficiente de codificar secuencias de smbolos
"si1...sim" de la Fuente-S sin construir un cdigo C -basada en el trabajo inicial de Elias y
posterior de Witten- es como sigue.
Codificacin.- La idea es (calcular y) asignar un subintrvalo ( del intrvalo [0,1[ ) al
mensaje "si1...sim" que se quiere codificar (el tamao del subintrvalo es igual a la
probabilidad prob(si1...sim) de dicho mensaje).
1) Sea [I,D[ = [0,1[ el intrvalo inicial con sus lmites Izquierdo y Derecho.
Sea j = 0
2) Se divide el segmento [I,D[ en q subintrvalos, proporcionales (y correspondientes)
-segn su probabilidad- a cada uno de los smbolos s1,...,sq.
3) j = j+1
Se trabaja con el subntervalo correspondiente a sij.
Se actualizan los valores [I,D[ para que correspondan a dicho subintrvalo
Ir a 2 (a no ser que j=m, en cuyo caso [I,D[ es el subintrvalo buscado)
4) Se codifica el mensaje "si1...sim" con cualquier valor dentro de este subintrvalo.
Ejemplo:
Sea la Fuente-S=({s1, s2, s3}, {0.7, 0.2, 0.1}) q=3
Sea el mensaje "si1...sim" = "si1si2si3" = "s2s3s3".
1) [I,D[ = [0,1[
j=0
2) Subdividimos el segmento [0,1[ en q=3 subintrvalos as:
[0 -------------- 0.7 ---- 0.9 -- 1[
3) j=1
Trabajamos con el subintrvalo que corresponde a si1=s2, es decir, [0.7,0.9[
Ir a 2 con [I,D[ = [0.7,0.9[
2) Subdividimos el segmento [0.7,0.9[ en q=3 subintrvalos as:
[0.7 -------------- 0.84 ---- 0.88 -- 0.9[
3) j=2
Trabajamos con el subintrvalo que corresponde a si2=s3, es decir, [0.88,0.9[
Ir a 2 con [I,D[ = [0.88,0.9[
2) Subdividimos el segmento [0.88,0.9[ en q=3 subintrvalos as:
[0.88 -------------- 0.894 ---- 0.898 -- 0.9[
3) j=3
Trabajamos con el subintrvalo que corresponde a si3=s3, es decir, [0.898,0.9[
Como j=m=3
[I,D[ = [0.898,0.9[ es el subintrvalo buscado
4) Cualquier valor dentro de este subintrvalo codifica el mensaje, por ej. 0.8985
No es necesario 'dibujar' los segmentos y pueden hacerse los clculos para hallar el
siguiente subintrvalo de manera ms algortmica.
Para ello hay diversas presentaciones.
Esta es la nuestra:

68

Lj representa la longitud del intrvalo que se est considerando.


Ij es su lmite izquierdo. Dj es su lmite derecho.
El mensaje a codificar es "si1...sim".
Las probabilidades de cada smbolo son pi1, ..., pim (pij como referencia general).
Las probabilidades acumuladas de cada smbolo son Acumi1, ..., Acumim (Acumij como
referencia general).
j=0
I0=0 D0=1 L0=D0 - I0=1
Para j=1 hasta m
Lj = Lj-1 pij
Dj = Ij-1 + Lj-1 Acumij
Ij = Dj - Lj
Siguiente j
El intrvalo [Im,Dm[ es el buscado.
Cualquier valor dentro de este subintrvalo codifica el mensaje
Ejemplo: Sea el mensaje "si1...sim" = "si1si2si3" = "s2s3s3"
S
pij
Acumij
s1
0.7
0.7
s2
0.2
0.9
s3
0.1
1

m=3

j
Ij
Lj
Dj
0
0
1
1
1
0.7
0.2
0.9
2
0.88
0.02
0.9
3
0.898
0.002
0.9
Cualquier valor dentro del intrvalo [0.898,0.9[ codifica el mensaje, por ej. 0.8985
Decodificacin.- El proceso de decodificacin es esencialmente el mismo. Parte de un
nmero real recepcionado, y se van obteniendo los subintrvalos sucesivamente, tomando
en cuenta -en cada subdivisin- los que contengan al nmero real que se recibe.
Sin embargo, el siguiente ejemplo muestra un pequeo gran detalle que falta considerar.
Ejemplo:
Sea la Fuente-S=({s1, s2}, {0.5, 0.5})
Sea 0 el nmero real que se recibe.
Subdividimos el segmento [0,1[ en q=2 subintrvalos as: [0 ----- 0.5 ------ 1[
Es claro que 0 est en el primer subintrvalo, luego el primer smbolo es "s1"
Subdividimos el segmento [0,0.5[ en q=2 subintrvalos as: [0 ---- 0.25 ---- 0.5[
Es claro que 0 est en el primer subintrvalo, luego el segundo smbolo es "s1"
Subdividimos el segmento [0,0.25[ en q=2 subintrvalos as: [0 --- 0.125 --- 0.25[
Es claro que 0 est en el primer subintrvalo, luego el tercer smbolo es "s1"
...
Ya se habr dado cuenta que falta considerar cundo nos detenemos.
Una alternativa es considerar un tamao de bloque fijo en el envo de smbolos.
Otra es enviar, previamente al mensaje, la longitud de ste.
Otra alternativa -que adoptamos- es considerar en nuestra fuente un smbolo que funja
como fin de mensaje. Al codificar se lo coloca una nica vez al final del mensaje.
Al decodificar, nos detenemos cuando lo encontremos.
69

Con esta convencin, el procedimiento tiene diversas presentaciones. Esta es la nuestra:


Lj representa la longitud del intrvalo que se est considerando.
Ij es su lmite izquierdo. Dj es su lmite derecho.
El nmero real que se recibe es num.
Las probabilidades de cada smbolo son pi1, ..., pim (pij como referencia general).
Las probabilidades acumuladas de cada smbolo son Acumi1, ..., Acumim (Acumij como
referencia general).
Sea Acum0=0
I=0
D=1 L= D - I =1
Repetir
val = ( num - I ) / L
j=0; Repetir j=j+1 Hasta val [Acumj-1, Acumj[
El siguiente smbolo decodificado es sj
D = I + L Acumj
L = L pj
I= D- L
Hasta que se haya decodificado el ltimo smbolo del mensaje
Ejemplo:
J
S
pj
Acumj
0
0
1
s1
0.7
0.7
2
s2
0.2
0.9
3
s3
0.1
1
El nmero real que se recibe es num=0.8985
val
j
I
L
0.8985
0.9925

2
3

0
0.7
0.88

1
0.2
0.02

D
1
0.9
0.9

smbolo
decodificado
s2
s3

val [0.7, 0.9[


val [0.9, 1[

Si tomamos s3 como marca de fin de mensaje, hemos terminado con m="s2s3"


Es comn que el ltimo smbolo, con una probabilidad muy baja, sea dicha marca.
Haremos una fila ms, slo por gusto terico y para estar a tono con el primer ejemplo.
0.925
3
0.898
0.002
0.9
s3
El mensaje es m="s2s3s3"
Consideraciones importantes:
1) Sea [Im,Dm[ el intrvalo calculado para codificar el mensaje, si bien cualquier valor
dentro de l sirve, es obvio que preferimos uno con una parte fraccionaria corta.
Por ejemplo, si [Im,Dm[ = [0.69432178,0.709558254[ podemos tomar num=0.7
2) Al utilizar codificacin aritmtica receptor y emisor saben que se trabaja con un nmero
dentro de [0,1[; as pues podemos prescindir del "0." y considerar nicamente la parte
fraccionaria: en vez de trabajar con 0.8985 podemos trabajar con 8985 solamente.
El emisor no enva "0." y el receptor agrega "0."
3) Los anteriores puntos tambin son vlidos si, de acuerdo al cdigo r-ario que estemos
utilizando, convertimos num -e incluso [Im,Dm[- a nmeros en base r (es decir, binarios,
etc.)
70

CANALES DE INFORMACIN CON RUIDO


Hasta ahora hemos considerado la codificacin como si no existieran errores:
lo que codifica el emisor, es lo que decodifica el receptor.
Emisor
Receptor
enva c
--->--->---> se transmite --->--->--->
recibe c sin errores
( c es la codificacin
(lo decodifica)
del mensaje m)
As, suponemos que el canal de informacin es silencioso, sin ruido o sin errores:
exactamente lo que se enva (desde el emisor), se recibe (por el receptor).
Ahora nos detendremos a analizar los canales que tienen interferencia, que incluyen la
posibilidad de error, que tergiversan los smbolos que atraviesan por l, es decir: los
canales con ruido (o ruidosos).
Por ej.:
se enva
se recibe
0101
---->---> se transmite ---> --->
0100
(con errores!)
interferencia
(ruido)
En principio describiremos estos canales y luego calcularemos cunta informacin puede
perderse (tergiversarse) -en promedio- junto a otras cantidades.
Definicin de canal con ruido.- Un canal con ruido (cr) se define como
cr = (A,P,B) donde:
A={ a1, ... ,ar } es el alfabeto de entrada (al canal) [los smbolos que se envan]
B={ b1, ... ,bs } es el alfabeto de salida (del canal) [los smbolos que se reciben]
P es el conjunto de probabilidades del canal del tipo p(bj/ai)
se presenta generalmente como listado o como matriz
(las probabilidades tambin pueden ir como arcos en el 'grafo del canal')
p(bj/ai) representa la probabilidad de recibir el smbolo bj dado que se enva el smbolo ai
Un canal est totalmente definido si junto a P se establecen las probabilidades de entrada
p(ai) para i=1,...,r
Junto a las probabilidades p(ai) un canal de informacin con ruido se puede presentar as:

Y la matriz P as:

71

salidas
b2
b1
e
a1 p(b1/a1) p(b2/a1)
n a2 p(b1/a2) p(b2/a2)
t
...
...
...
r
.
a
.
d
...
...
...
a ar-1 p(b1/ar-1) p(b2/ar-1)
s
ar p(b1/ar) p(b2/ar)

P=

...
...
...

...
...
...

bs-1
p(bs-1/a1)
p(bs-1/a2)
...

bs
p(bs/a1)
p(bs/a2)
...

...
p(bs-1/ar-1)
p(bs-1/ar)

...
p(bs/ar-1)
p(bs/ar)

p(bj/ai)
...
...

...
...

Es comn pensar que r=s (y que bk=ak para k=1,...,r)


Sin embargo, r puede ser diferente de s (de hecho nuestra definicin de canal con ruido es
tan genrica que permite trabajar con esta posibilidad).
Un ejemplo clsico -que ampliaremos luego- es considerar
A = {a1,a2} = {0,1} se ingresan al canal ceros y/o unos (por ej. 0101)
B = {b1,b2,b3} = {0,1,?} salen del canal ceros y/o unos y/o signos ilegibles (ej. 01?1)
con r = 2, s = 3, y obviamente r s
Ejemplo:
Sea el canal cr=(A,P,B)
A = {a1,a2} B = {b1,b2,b3}
P=

b1
1/2
1/3

a1
a2

p(a1)=1/2
b2
0
1/3

p(a2)=1/2

b3
1/2
1/3

P en forma de listado:
p(b1/a1)=1/2 p(b2/a1)=0
p(b3/a1)=1/2
p(b1/a2)=1/3 p(b2/a2)=1/3 p(b3/a2)=1/3
Como mencionamos antes, puede presentarse un 'grafo del canal' as:
a1

1/2

1/2

b1
1/3

b2
1/3

a2

1/3

b3

En los canales con ruido se considera que, enviado un smbolo de entrada ai, se recibe
-necesariamente- algn smbolo de salida bj. Esto es, dado que se enva el smbolo ai:
s

j=1

p(bj/ai) = p(b1/ai) + ... + p(bs/ai) = 1

Esto se refleja en la matriz P en que cada fila debe sumar 1.

72

Probabilidad conjunta.- Se sabe que p(ai,bj) = p(bj/ai) p(ai) = p(ai/bj) p(bj)


Clculo de p(bj).- Dado un canal totalmente definido, p(bj) se obtiene as:
r

i =1

i =1

p(bj) = p(bj/ai) p(ai) = p(ai,bj)


Probabilidades hacia adelante y hacia atrs.La probabilidades p(bj/ai) se conocen como probabilidades hacia adelante.
Representan la probabilidad de recibir el smbolo bj dado que se enva el smbolo ai.
Por el teorema de Bayes, dados p(bj/ai) y p(ai):
p(ai/bj) = p(ai,bj) / p(bj) = [ p(bj/ai) p(ai) ] / p(bj)
La probabilidades p(ai/bj) se conocen como probabilidades hacia atrs.
Representan la probabilidad de haber enviado el smbolo ai dado que se recibe bj.
Sistema de entropas.- Se definen as:
Entropa de la entrada
entropa a priori de A:

Entropa de la salida:

H(A) = p(ai) log[1/p(ai)]

H(B) = p(bj) log[1/p(bj)]

Entropa a posteriori de A dado bj:

Entropa condicional de B dado ai

H(A/bj) = p(ai/bj) log[1/p(ai/bj)]

H(B/ai) = p(bj/ai) log[1/p(bj/ai)]

Equivocacin de A con respecto a B


equivocacin del canal:

Equivocacin de B con respecto a A

H(A/B)

H(B/A)

= p(bj) H(A/bj)

= p(ai) H(B/ai)

i =1

j=1

i =1

j=1

j=1
s

i =1
r

j=1
s

i =1
r

i =1

= p(ai) p(bj/ai) log[1/p(bj/ai)]

= p(bj) p(ai/bj) log[1/p(ai/bj)]

j=1

p(bj) p(ai/bj) log[1/p(ai/bj)]

p(ai) p(bj/ai) log[1/p(bj/ai)]

p(ai,bj) log[1/p(ai/bj)]

p(ai,bj) log[1/p(bj/ai)]

j=1 i =1
s
r

j=1 i =1

i =1
r
i =1

j=1
s
j=1

Informacin mutua entre B y A

Informacin mutua entre A y B


I(A;B) = H(A) - H(A/B)
r

I(B;A) = H(B) - H(B/A)


Entropa conjunta:

H(A,B) =

i =1

j=1

p(ai,bj) log[1/p(ai,bj)]

73

Hemos resaltado la equivocacin del canal H(A/B) y la informacin mutua entre A y B


I(A;B) por sus enriquecidas interpretaciones:
H(A/B) puede interpretarse como la cantidad de informacin sobre A que no
deja pasar el canal (la prdida media de informacin sobre A causada por el canal).
I(A;B) puede interpretarse como la cantidad de informacin sobre A que atraviesa el canal
(que el canal deja pasar).
Ejemplo (todo se calcula en bits): Sea el canal cr=(A,P,B)
A = {a1,a2} B = {b1,b2,b3}
P=

a1
a2

b1
1/2
1/3

b2
0
1/3

b3
1/2
1/3

p(a1) = 1/2
p(a2) = 1/2
H(A) = 1 bit
p(b1) = 5/12 p(b2) = 2/12
H(B) = 1.4834 bits

p(b3) = 5/12

H(A/B) = 0.80912549537889
H(B/A) = 1.29248125036058
H(A,B) = 2.29248125036058
I(A;B) = 0.19087450462111

bits
bits
bits
bits

74

LA INFORMACIN MUTUA NO ES NEGATIVA


I(A;B) 0
Demostracin:
Por definicin I(A;B) = H(A) - H(A/B)
1)

H(A) = p(ai) log[1/p(ai)]


i =1
r

= p(ai) log[1/p(ai)] 1

obvio

i =1
r

= p(ai) log[1/p(ai)] [ p(bj/ai)]


i =1
r

j=1

pues

j=1

p(bj/ai) = 1

p(ai) log[1/p(ai)] p(bj/ai)

propiedades de sumatoria

p(bj/ai) p(ai) log[1/p(ai)]

conmutatividad

p(ai,bj) log[1/p(ai)]

pues p(bj/ai) p(ai) = p(ai,bj)

i =1
r
i =1
r
i =1

j=1
s
j=1
s

j=1

2) Ya vimos que:
s

H(A/B) =

p(ai,bj) log[1/p(ai/bj)]

p(ai,bj) log[1/p(ai/bj)]

j=1 i =1
s
r

i =1

j=1

propiedades de sumatoria

De 1 y 2:
I(A;B)
= H(A) - H(A/B)
r

i =1

j=1

p(ai,bj) log[1/p(ai)]

{ p(ai,bj) log[1/p(ai)] - p(ai,bj) log[1/p(ai/bj)] }

p(ai,bj) { log[1/p(ai)] - log[1/p(ai/bj)] }

factorizando p(ai,bj)

p(ai,bj) log[ 1/p(ai) / 1/p(ai/bj)]

log a - log b=log a/b

p(ai,bj) log[p(ai/bj) / p(ai)]

medios con medios, etc.

i =1
r
i =1
r
i =1
r
i =1
r
i =1

j=1
s

j=1
s
j=1
s

j=1
s

j=1

p(ai,bj) log[1/p(ai/bj)]

75

propiedades de sumatoria

i =1
r

j=1
s

i =1
r

j=1
s

i =1
r

j=1
s

i =1

j=1

p(ai,bj) log[p(ai) / p(ai/bj)]-1

propiedades de exponente

=-

p(ai,bj) log[p(ai) / p(ai/bj)]

propiedades de logaritmo

=-

p(ai,bj) log[p(ai) p(bj) / p(ai/bj) p(bj)]

=-

p(ai,bj) log[p(ai) p(bj) / p(ai,bj)]

Resumiendo:
I(A;B) = -

i =1

j=1

obvio
pues p(ai/bj) p(bj) = p(ai,bj)

p(ai,bj) log[p(ai) p(bj) / p(ai,bj)]

Hemos subrayado la expresin que sigue al signo menos, pues continuaremos el


razonamiento, slo con ella:
supondremos que
r

i =1

j=1

p(ai,bj) log{p(ai) p(bj) / p(ai,bj)}


r

la base del logaritmo es V

= [1/ln(V)]

p(ai,bj) ln{p(ai) p(bj) / p(ai,bj)}

[1/ln(V)]

p(ai,bj) {[p(ai) p(bj) / p(ai,bj)] - 1}

= [1/ln(V)]

{p(ai,bj) [p(ai) p(bj) / p(ai,bj)] - p(ai,bj)}

= [1/ln(V)]

{p(ai) p(bj) - p(ai,bj)}

i =1
r

i =1
r

i =1
r
i =1
r

j=1
s

j=1
s
j=1
s
j=1
s

pues ln(z) z-1


distribuyendo p(ai,bj)
obvio

p(ai,bj)}

propiedades de sumatoria

= [1/ln(V)] { p(ai) p(bj) -

p(ai,bj)}

p(ai) no depende de j

= [1/ln(V)] { p(ai) 1

p(ai,bj)}

= [1/ln(V)] {

i =1
r
i =1
r

propiedades de logaritmo

j=1

p(ai) p(bj) -

i =1
r

j=1

i =1
r

i =1
r

i =1
r

i =1
r

i =1
r

i =1

i =1

i =1
r

i =1

j=1
s

j=1
s

j=1

= [1/ln(V)] { p(ai) -

p(ai,bj)}

= [1/ln(V)] { p(ai) -

p(bj/ai) p(ai)}

j=1
s
j=1

pues

j=1

p(bj) = 1

obvio

= [1/ln(V)] { p(ai) - p(ai) p(bj/ai)}


j=1

76

pues p(ai,bj) = p(bj/ai) p(ai)


p(ai) no depende de j

i =1
r

i =1
r

i =1

i =1

pues

= [1/ln(V)] { p(ai) - p(ai) }

obvio

= [1/ln(V)] { 0 }
=0

obvio
obvio

Resumiendo:
r

i =1

j=1

p(ai,bj) log{p(ai) p(bj) / p(ai,bj)} 0

Luego, incluyendo al signo menos, resulta:


-

i =1

j=1

p(ai,bj) log{p(ai) p(bj) / p(ai,bj)} 0

Es decir: I(A;B) 0
Dado que en la propiedad ln(z) z-1 la igualdad se da en z=1,
I(A;B) = 0 cuando [p(ai) p(bj) / p(ai,bj)] = 1, es decir cuando
p(ai) p(bj) = p(ai,bj)
Esto es, cuando los sucesos ai,bj son independientes.

77

= [1/ln(V)] { p(ai) - p(ai) 1}

j=1

p(bj/ai) = 1

RECIPROCIDAD DE LA INFORMACIN MUTUA


I(A;B) = I(B;A)
Demostracin:
1)

i =1

p(ai/bj) = p(bj/ai) p(ai) / p(bj)


i =1

= [1/p(bj)]

i =1

por Bayes

p(bj/ai) p(ai)

= [1/p(bj)] p(bj)
=1

pues p(bj) es independiente de i


clculo de p(bj)

Este resultado puede interpretarse as: recibido un smbolo de salida bj, se ha enviado
-necesariamente- algn smbolo de entrada ai.
Por definicin I(B;A) = H(B) - H(B/A)
2)

H(B) = p(bj) log[1/p(bj)] 1


j=1
s

= p(bj) log[1/p(bj)] [ p(ai/bj)]


j=1
s

por 1)

i =1

p(bj) log[1/p(bj)] p(ai/bj)

p(ai/bj) p(bj) log[1/p(bj)]

p(ai,bj) log[1/p(bj)]

pues p(ai/bj) p(bj) = p(ai,bj)

p(ai,bj) log[1/p(bj)]

propiedades de sumatoria

j=1 i =1
s
r

j=1 i =1
s
r

j=1 i =1
s
r

i =1

j=1

propiedades de sumatoria
conmutatividad

3) Ya vimos que:
r

H(B/A) =

i =1

j=1

p(ai,bj) log[1/p(bj/ai)]

De 2 y 3 resulta que:
I(B;A)
= H(B) - H(B/A)
r

p(ai,bj) log[1/p(bj)] -

{ p(ai,bj) log[1/p(bj)] - p(ai,bj) log[1/p(bj/ai)] }

i =1
r
i =1

j=1
s
j=1

i =1

j=1

p(ai,bj) log[1/p(bj/ai)]

78

propiedades de sumatoria

p(ai,bj) { log[1/p(bj)] - log[1/p(bj/ai)] }

p(ai,bj) log[1/p(bj)

p(ai,bj) log[p(bj/ai)/p(bj)]

medios con medios, etc.

p(ai,bj) log[p(bj/ai) p(ai) / p(bj) p(ai)]

obvio

p(ai,bj) log[p(ai,bj) / p(bj) p(ai)]

p(ai,bj) log[p(ai,bj) / p(ai) p(bj)]

p(ai,bj) log[p(ai) p(bj) / p(ai,bj)]-1

propiedades de exponente

p(ai,bj) log[p(ai) p(bj) / p(ai,bj)]

propiedades de logaritmo

i =1
r
i =1
r
i =1
r
i =1
r
i =1
r
i =1
r

j=1
s
j=1
s

j=1
s

j=1
s
j=1
s

j=1
s

i =1 j=1
s
r

= -

i =1

j=1

1/p(bj/ai)]

factorizando p(ai,bj)
log a - log b = log a/b

pues p(bj/ai) p(ai) = p(ai,bj)


obvio

Que es exactamente la misma expresin que hallamos antes para I(A;B). Luego:
I(B;A) = I(A;B)

79

OTROS RESULTADOS
1) Dado que I(A;B) = I(B;A) y I(A;B) 0, es obvio que I(B;A) 0
2) Tambin, dado que I(A;B) = H(A) - H(A/B) y I(B;A) = H(B) - H(B/A), por 1
H(A) H(A/B)
y
H(B) H(B/A)
3) H(A,B)
r

p(ai,bj) log[1/p(ai,bj)]

p(bj/ai) p(ai) log[1 / p(bj/ai)p(ai)]

p(bj/ai) p(ai) {log[1/p(bj/ai)] + log[1/p(ai)]}

{ p(bj/ai) p(ai) log[1/p(bj/ai)] + p(bj/ai) p(ai) log[1/p(ai)] }

p(bj/ai) p(ai) log[1/p(bj/ai)]

p(bj/ai) p(ai) log[1/p(ai)]

i =1
r
i =1
r
i =1
r
i =1
r
i =1
r
i =1
r

j=1
s

j=1
s

j=1
s
j=1
s

j=1
s

j=1

pues p(ai,bj) = p(bj/ai)p(ai)


log ab=log a+log b

propiedades de sumatoria

= p(ai) p(bj/ai) log[1/p(bj/ai)]


i =1
r

i =1
r

p(ai) es independiente de j

j=1

j=1

p(bj/ai) p(ai) log[1/p(ai)]

= p(ai) H(B/ai)
i =1
r

i =1

j=1

obvio

definicin de H(B/ai)

p(bj/ai) p(ai) log[1/p(ai)]


r

= H(B/A) +

i =1
r

j=1

p(bj/ai) p(ai) log[1/p(ai)]

= H(B/A) + p(ai) log[1/p(ai)]


i =1
r

j=1

p(bj/ai)

= H(B/A) + p(ai) log[1/p(ai)] 1

definicin de H(B/A)
; p(ai)log[1/p(ai)] es independiente de j
pues

i =1

= H(B/A) + H(A)
= H(A) + H(B/A)

j=1

p(bj/ai) = 1

obvio

Resumiendo: H(A,B) = H(A) + H(B/A)


4) Anlogamente, utilizando p(ai,bj) = p(ai/bj)p(bj), H(A,B) = H(B) + H(A/B)

80

5) Ntese que cuando p(ai) p(bj) = p(ai,bj), resulta que:


H(B/A) = H(B)
En efecto,
r

H(B/A) =

p(ai,bj) log[1/p(bj/ai)]

p(ai,bj) log[1p(ai) / p(bj/ai)p(ai)]

obvio

p(ai,bj) log[1p(ai) / p(ai,bj)]

pues p(bj/ai)p(ai) = p(ai,bj)

p(ai) p(bj) log[1p(ai) / p(ai)p(bj)]

pues p(ai,bj) = p(ai) p(bj)

p(ai) p(bj) log[1/p(bj)]

obvio

i =1
r

i =1
r
i =1
r
i =1
r
i =1
r

j=1
s

j=1
s

j=1
s
j=1
s

j=1

= p(ai) p(bj) log[1/p(bj)]

p(ai) es independiente de j

= p(ai) H(B)

definicin de H(B)

= H(B)

obvio

i =1
r

j=1

i =1

Anlogamente H(A/B) = H(A).


De donde, cuando hay independencia:
H(A,B) = H(A) + H(B) = H(B) + H(A)
6) I(A;B) = H(A) - H(A/B)
= H(A) + H(B) - [H(B) + H(A/B)]
= H(A) + H(B) - H(A,B)

obvio
por 4

Resumiendo: I(A;B) = H(A) + H(B) - H(A,B)


O tambin: H(A,B) = H(A) + H(B) - I(A;B)
Como I(A;B) 0, resulta que:
H(A) + H(B) H(A,B)
7) Como I(A;B) = H(B) - H(B/A) = H(A) - H(A/B)
r

i =1

j=1

p(ai,bj) log[p(ai,bj) / p(ai) p(bj)]

Como p(ai) y p(bj/ai) estn definidas:


Para calcular I(A;B) podemos hallar H(B) y H(B/A) por separado, aqu requerimos
deducir p(bj).
O bien, podemos hallar H(A) y H(A/B) por separado, aqu requerimos deducir p(ai/bj) y
p(bj).
O bien , requerimos hallar p(bj) junto a las probabilidades conjuntas p(ai,bj).
[Esto ltimo es lo que suele hallarse en alguna literatura].
81

I(A;B) min{ log|A| , log|B| }


Ya vimos que: I(A;B) = I(B;A)
I(A;B) = H(A) - H(A/B)

I(B;A) = H(B) - H(B/A)

Como I(A;B) 0 :
H(A) H(A/B)

Como I(A;B) 0 :
H(B) H(B/A)

Luego, cuando H(A/B) = H(A) entonces


I(A;B) = 0

Luego, cuando H(B/A) = H(B) entonces


I(B;A) = 0

Pero, cuando H(A/B) = 0 entonces


I(A;B) = H(A)

Pero, cuando H(B/A) = 0 entonces


I(B;A) = H(B)

Luego, el valor mximo para la informacin mutua entre A y B es H(A) o bien H(B).
Por propiedades de la entropa sabemos que H(S) log(q) -donde q es el nmero de
smbolos-.
Podemos aplicar este resultado y por lo tanto:
H(A) log(|A|)
y
H(B) log(|B|)
Es decir,
I(A;B) min{ log(|A|) , log(|B|) }

Si reunimos el hecho de que la informacin mutua es no negativa resulta que:


0 I(A;B) min{log|A| , log|B|}

82

CANALES ESPECIALES
Asumiremos que en la matriz del canal P, no hay filas de ceros (prohibido por definicin
-cada fila debe sumar uno-) o columnas de ceros (lo que significara que el smbolo de
salida correspondiente nunca se recibe y por lo tanto podemos prescindir de l).
Canales sin ruido (o sin prdida).- La matriz P tiene la propiedad de tener un y slo un
elemento distinto de cero en cada columna.
Esta condicin obliga a tener tantos o ms smbolos de salida como de entrada (r s).
s

j=1

i =1

Como H(A/B) = p(bj) p(ai/bj) log[1/p(ai/bj)]


Mostraremos que la segunda sumatoria es una suma de ceros. Luego,
s

j=1

i =1

H(A/B) = p(bj) p(ai/bj) log[1/p(ai/bj)] =


En efecto, como
p(ai/bj) = p(bj/ai)p(ai) / p(bj)
= p(bj/ai)p(ai) /

i'=1

j=1

p(bj) 0 = 0

por Bayes
p(bj/ai') p(ai')

clculo de p(bj), usar i' no afecta

Para los sumandos tales que p(bj/ai) = 0, es claro que p(ai/bj) = 0 y por tanto
p(ai/bj) log[1/p(ai/bj)] = 0.
Para los sumandos tales que p(bj/ai) 0, es claro que

i'=1

p(bj/ai') p(ai') recorre la

columna j-sima, que tiene todos sus elementos ceros -excepto uno- precisamente p(bj/ai).
Luego, p(ai/bj) = p(bj/ai)p(ai) / p(bj/ai)p(ai) = 1, y por tanto
p(ai/bj) log[1/p(ai/bj)] = 0.
Luego, I(A;B) = H(A) - H(A/B) = H(A) - 0 = H(A)
Ejemplo de canal sin ruido: Sea el canal cr=(A,P,B)
A = {a1,a2}
B = {b1,b2,b3}
p(a1) = 2/3
P=

a1
a2

b1
1/2
0

p(b1) = 1/3
p(b2) = 1/3
H(A) = 0.9183 bits
H(B) = 1.585 bits
H(A/B) = 0
bits
H(B/A) = 0.6667 bits
H(A,B) = 1.5850 bits
I(A;B) = 0.9183 bits

b2
1/2
0

p(a2) = 1/3

b3
0
1

p(b3) = 1/3

El canal sin ruido clsico, tpico o ideal tiene r = s, ai = bi y P es la matriz identidad.

83

Canales determinantes o determinsticos.- La matriz P tiene la propiedad de tener un y


slo un elemento distinto de cero en cada
fila. Es decir, P tiene un y slo un 1 en cada fila.
Esta condicin obliga a tener tantos o ms smbolos de entrada como de salida (r s).
r

i =1

j=1

Como H(B/A) = p(ai) p(bj/ai) log[1/p(bj/ai)]


La segunda sumatoria (que recorre la fila ai) se comporta as:
s

j=1

p(bj/ai) log[1/p(bj/ai)] = p(b1/ai) log[1/p(b1/ai)] + ... + p(bs/ai) log[1/p(bs/ai)]

Para los elementos tales que p(bj/ai) = 0, es claro que p(bj/ai) log[1/p(bj/ai)] = 0
Para los elementos tales que p(bj/ai) = 1, es claro que p(bj/ai) log[1/p(bj/ai)] = 0
As pues, es una suma de ceros, es decir,
H(B/A) =

i =1

j=1

p(bj/ai) log[1/p(bj/ai)] = 0. Luego,

p(ai) 0 = 0

Luego, I(A;B) = H(B) - H(B/A) = H(B) - 0 = H(B)


Ejemplo de canal determinstico: Sea el canal cr=(A,P,B)
A = {a1,a2,a3}
B = {b1,b2}
p(a1) = 1/3
p(a2) = 1/3
P=

a1
a2
a3

b1
1
1
0

b2
0
0
1

p(b2) = 1/3
p(b1) = 2/3
H(A) = 1.585 bits
H(B) = 0.9183 bits
H(A/B) = 2/3
bits
H(B/A) = 0
bits
H(A,B) = 1.5850 bits
I(A;B) = 0.9183 bits

84

p(a3) = 1/3

Canales ambiguos.- Son tales que H(A) = H(A/B), es decir I(A;B) = 0.


Son tan ruidosos que no dejan pasar informacin.
Ejemplo de canal ambiguo: Sea el canal cr=(A,P,B)
A = {a1,a2}
B = {b1,b2}
p(a1) = 1/3
P=

B1
1/2
1/2

a1
a2

p(a2) = 2/3

b2
1/2
1/2

p(b1) = 1/2
p(b2) = 1/2
H(A) = 0.9183 bits
H(B) = 1
bits
H(A/B) = 0.9183 bits
H(B/A) = 1
bits
H(A,B) = 1.9183 bits
I(A;B) = 0
bits
Note que si las filas de P son iguales :
r

i =1

j=1

En la definicin de H(B/A) = p(ai) p(bj/ai) log[1/p(bj/ai)]


Al ser las filas iguales, la segunda sumatoria da el mismo resultado para cada ai.
Sea c tal constante, es decir,
Luego:
H(B/A) =

i =1

j=1

p(bj/ai) log[1/p(bj/ai)] = c

(1)

p(ai) c = c p(ai) = c 1 = c
i =1

Por otro lado, en el clculo de p(bj) = p(bj/ai) p(ai)


i =1

Al ser las filas iguales, el valor de p(bj/ai) es el mismo para cada ai. Digamos p(bj/ai) = k
r

i =1

i =1

Luego, p(bj) = p(bj/ai) p(ai) = k p(ai) = k p(ai) = k 1 = k


i =1

Es decir, p(bj) = k = p(bj/ai)


s

(para algn i, el que sea pues las filas son iguales)

Por tanto, H(B) = p(bj) log[1/p(bj)]


=

j=1
s

j=1

p(bj/ai) log[1/p(bj/ai)]

por (2)

=c

por (1)

Luego, I(A;B) = H(B) - H(B/A) = c - c = 0


Si un canal tiene su matriz P con las filas iguales entonces es ambiguo.

85

(2)

Canal simtrico o uniforme.- Sea NUM la secuencia: num1, ... ,nums


Su matriz P es tal que:
Cada fila es una permutacin de NUM.
Cada columna es una permutacin de NUM.
Ejemplo de canal uniforme o simtrico: Sea el canal cr=(A,P,B)
A = {a1,a2,a3,a4}
B = {b1,b2,b3,b4}
p(ai) = 1/4
NUM: 0, 1/4, 1/4, 1/2
P=

a1
a2
a3
a4

b1
1/2
1/4
0
1/4

b2
1/4
1/2
1/4
0

b3
1/4
0
1/4
1/2

b4
0
1/4
1/2
1/4

Canal dbilmente simtrico.- Sea NUM la secuencia: num1, ... ,nums


Su matriz P es tal que:
Cada fila es una permutacin de NUM.
Las columnas suman lo mismo.
Es obvio que un canal simtrico es dbilmente simtrico tambin.
Ejemplo de canal dbilmente simtrico: Sea el canal cr=(A,P,B)
A = {a1,a2}
B = {b1,b2,b3,b4}
p(ai) = 1/2
NUM: 0, 1/4, 1/4, 1/2
P=

a1
a2

b1
1/2
0

b2
1/4
1/4

b3
1/4
1/4

b4
0
1/2

Canal binario simtrico CBS (BSC por las siglas del nombre en ingls, Binary
Symmetric Channel).- Su matriz es as:
P=

a1
a2

b1
p
q

b2
q
p

donde q = 1-p

Generalmente se utiliza A = {a1,a2} = {0,1} = {b1,b2} = B


p(b1/a1) = p(0/0) = p(b2/a2) = p(1/1) = p
p(b1/a2) = p(0/1) = p(b2/a1) = p(1/0) = q
p es la probabilidad de acierto
q es la probabilidad de error

86

Canal binario borrador CBB (BEC por las siglas del nombre en ingls, Binary
Erasure Channel).- Su matriz es as:
P=

a1
a2

b1
p
0

b2
q
q

b3
0
p

donde q = 1-p

Generalmente se utiliza A = {a1,a2} = {0,1} y B = {b1,b2,b3} = {0,?,1}


"?" representa un smbolo de salida 'borroneado'
p(b1/a1) = p(0/0) = p(b3/a2) = p(1/1) = p
p(b2/a1) = p(?/0) = p(b2/a2) = p(?/0) = q
p es la probabilidad de acierto
q es la probabilidad de 'borroneo'

87

CANALES EN SERIE
Consideremos un par de canales conectados en serie (o en cascada) as:
A --> canaldeAaB --> B --> canaldeBaC --> C
A={ a1, ... ,ar } es el alfabeto de entrada (al primer canal)
B={ b1, ... ,bs } es el alfabeto de salida (del primer canal) y de entrada (al segundo canal)
C={ c1, ... ,ct } es el alfabeto de salida (del segundo canal)
Cada canal tiene su propia matriz con probabilidades
p(bj/ai) para el primer canal
p(ck/bj) para el segundo canal
Al enviar ai, este smbolo atraviesa el primer canal, que tiene como salida bj;
dicho bj ingresa al segundo canal que tiene como salida ck.
Se asume la siguiente condicin: la salida ck depende solamente de bj y no de ai
Es decir, se asume en esta definicin de canales en serie que:
i) p(ck/ai,bj) = p(ck/bj)
Tambin podemos asumir que:
ii) p(ai/bj,ck) = p(ai/bj)
En efecto, se sabe que:
1) p(ai,bj,ck) = p(ck/ai,bj) p(ai,bj)
= p(ai/bj,ck) p(bj,ck) = p(ai/bj,ck) p(ck/bj) p(bj)
p(ai,bj,ck) / p(ai,bj) = p(ai/bj,ck)p(ck/bj)p(bj) / p(ai,bj)
= p(ai/bj,ck)p(ck/bj)p(bj) / p(ai/bj)p(bj)
= p(ai/bj,ck)p(ck/bj) / p(ai/bj)
'Despejando' p(ai/bj,ck) tenemos:
p(ai/bj,ck) =
p(ai,bj,ck)p(ai/bj) / p(ai,bj)p(ck/bj)
= p(ck/ai,bj)p(ai,bj)p(ai/bj) / p(ai,bj)p(ck/bj)
= p(ck/ai,bj)p(ai/bj) / p(ck/bj)
= p(ck/bj)p(ai/bj) / p(ck/bj)
= p(ai/bj)

luego:
Por 1)
pues p(ai,bj)=p(ai/bj)p(bj)
obvio
por 1)
obvio
por i)
obvio

Es interesante mostrar que los canales en serie tienden a perder informacin.


Ello se logra comparando I(A;B) con I(A;C). Es lo que haremos a continuacin.
Previamente definiremos:
t

k =1

k =1

i =1

H(A/C) = p(ck) H(A/ck) = p(ck) p(ai/ck) log[1/p(ai/ck)]

I(A;C) = H(A) - H(A/C)

88

I(A;C) I(A;B)
Demostracin: Probaremos que I(A;C) - I(A;B) 0
Como I(A;C) = H(A) - H(A/C)
y
I(A;B) = H(A) - H(A/B)
entonces
I(A;C) - I(A;B) = H(A) - H(A/C) - [H(A) - H(A/B)] = H(A/B) - H(A/C)
Es decir, probaremos que H(A/B) - H(A/C) 0
Utilizaremos los siguientes resultados:
r

i =1

i =1

iii) p(bj) = p(bj/ai) p(ai) = p(ai,bj)

[clculo de p(bj)]

iv) En el segundo canal -por definicin- sus filas deben sumar 1, es decir
t

k =1

p(ck/bj) = 1

v) Anlogamente a como se calcula p(bj) en el primer canal, podemos calcular p(ck) en el


segundo as:
s

j=1

j=1

p(ck) = p(ck/bj) p(bj) = p(bj,ck)


s

vi) p(ai/ck) = p(ai/bj) p(bj/ck)

[conocido resultado estadstico]

j=1

Empecemos:
s

H(A/B) =

p(ai,bj) log[1/p(ai/bj)]

p(ai,bj) log[1/p(ai/bj)]

p(ai,bj) log[1/p(ai/bj)] p(ck/bj)

p(ck/bj) p(ai,bj) log[1/p(ai/bj)]

conmutatividad

p(ck/ai,bj) p(ai,bj) log[1/p(ai/bj)]

por i)

p(ai,bj,ck) log[1/p(ai/bj)]

evidente

p(ai,bj,ck) log[1/p(ai/bj)]

j=1 i =1
s
r

j=1 i =1
s
r

j=1 i =1
s
r

k =1
t

j=1 i =1
s
r

k =1
t

j=1 i =1
s
r

k =1
t

j=1 i =1
s
t

k =1
r

j=1 k =1 i =1

por definicin
t

k =1

89

p(ck/bj)

por iv)
propiedades de sumatoria

propiedades de sumatoria

k =1
t

i =1
r

H(A/C) = p(ck) p(ai/ck) log[1/p(ai/ck)]


= p(ck)
k =1
t

i =1
r

j=1

por definicin

p(ai/bj) p(bj/ck) log[1/p(ai/ck)]

por vi)

p(ck) p(ai/bj) p(bj/ck) log[1/p(ai/ck)]

prop. de sumatoria

p(ai/bj) p(bj/ck) p(ck) log[1/p(ai/ck)]

conmutatividad

p(ai/bj,ck) p(bj/ck) p(ck) log[1/p(ai/ck)]

por ii)

p(ai/bj,ck) p(bj,ck) log[1/p(ai/ck)]

evidente

p(ai,bj,ck) log[1/p(ai/ck)]

evidente

p(ai,bj,ck) log[1/p(ai/ck)]

propiedades de sumatoria

k =1 j=1 i =1
s
t
r
k =1 j=1 i =1
s
t
r
k =1 j=1 i =1
s
t
r
k =1 j=1 i =1
s
t
r
k =1 j=1 i =1
s
t
r

j=1 k =1 i =1

Luego,
H(A/B) - H(A/C)
s

p(ai,bj,ck) log[1/p(ai/bj)] -

p(ai,bj,ck) log[1/p(ai/bj)] - p(ai,bj,ck) log[1/p(ai/ck)]

p(ai,bj,ck) {log[1/p(ai/bj)] - log[1/p(ai/ck)]}

p(ai,bj,ck) {log[1/p(ai/bj) / 1/p(ai/ck)]}

p(ai,bj,ck) log[p(ai/ck) / p(ai/bj)]

p(ai/bj,ck) p(bj,ck) log[p(ai/ck) / p(ai/bj)]

=
=

j=1 k =1 i =1
s
t
r
j=1 k =1 i =1
s
t
r

j=1 k =1 i =1
s
t
r

j=1 k =1 i =1
s
t
r
j=1 k =1 i =1
s
t
r

j=1 k =1 i =1
s
t

j=1 k =1 i =1

p(ai,bj,ck) log[1/p(ai/ck)]

prop. sumatoria
sale p(ai,bj,ck)

log a - log b = log a/b


medios con medios, etc.
evidente

p(bj,ck) p(ai/bj,ck) log[p(ai/ck) / p(ai/bj)]

obvio

p(bj,ck) p(ai/bj) log[p(ai/ck) / p(ai/bj)]

por ii)

j=1 k =1
s
t
j=1 k =1

i =1
r
i =1

= 1/ln(V)

j=1 k =1

p(bj,ck) p(ai/bj) ln[p(ai/ck) / p(ai/bj)]


i =1

90

evidente

1/ln(V)

p(bj,ck) p(ai/bj) [p(ai/ck) / p(ai/bj) - 1]

pues ln(z) z -1

= 1/ln(V)

p(bj,ck) [p(ai/ck) - p(ai/bj)]

obvio

= 1/ln(V)

p(bj,ck) [ p(ai/ck) -

p(bj,ck) [1 -1] = 1/ln(V)

j=1 k =1
s
t
j=1 k =1
s
t
j=1 k =1
s
t

= 1/ln(V)

j=1 k =1

i =1
r

i =1
r

i =1

i =1
s

p(ai/bj)]
t

j=1 k =1

El ltimo paso es lcito si mostramos que

i =1

evidente

p(bj,ck) 0 = 0
r

p(ai/ck) = p(ai/bj) = 1
i =1

Lo que hacemos a continuacin:


r

i =1
r

i =1

p(ai/bj) = 1
r

se ha demostrado en la pgina 78
s

p(ai/ck) =

p(ai/bj) p(bj/ck)

por vi)

p(ai/bj) p(bj/ck)

evidente

i =1
s

j=1
r

j=1 i =1
s

= p(bj/ck) p(ai/bj)

p(bj/ck) es independiente de i

= p(bj/ck) 1

demostrado en la pgina 78

= p(ck/bj)p(bj) / p(ck)

Bayes

j=1
s

i =1

j=1
s

j=1

= [1/p(ck)] p(ck/bj)p(bj)

obvio

= [1/p(ck)] p(ck)
=1

por v)

j=1

Resumiendo: H(A/B) - H(A/C) 0, es decir I(A;C) - I(A;B) 0, es decir, I(A;C) I(A;B)


A partir de la lnea en que se utiliza la propiedad ln(z) z -1, sera innecesario lo que
sigue del razonamiento si p(bj,ck)=0.
As pues cuando p(bj,ck)0, la condicin para la igualdad es que p(ai/ck) = p(ai/bj).
Tambin se conoce esto como el Teorema del Procesamiento de Datos (o de Informacin).

91

Ejemplo:
p(a1) = 1/2

p(a2) = 1/2

canal 1
0.9 0.1
0.1 0.9

canal 2
0.8 0.2
B
C
0.2 0.8

I(A;C) = 0.173253627507381 0.531004406410718 = I(A;B)

Ejemplo (del libro de Togneri):


p(a1) = 1/2

p(a2) = 1/2

canal 1
A

1 / 2 0 1 / 2
1 / 3 1 / 3 1 / 3

canal 2
3 / 4 0 1 / 4
0 1 0 C

1 / 4 0 3 / 4

I(A;C) = 0.190874504621109 = I(A;B)


Ntese que cuando p(bj,ck)=0 no es necesario que p(ai/ck) = p(ai/bj).
Por ejemplo: p(b1,c2)=0 pero p(a1/c2)=0 3/5=p(a1/b1)
En cambio. cuando p(bj,ck)0, la condicin para la igualdad es que p(ai/ck) = p(ai/bj).
Por ejemplo: p(b1,c1)=5/160
y p(a1/c1)=3/5=p(a1/b1)

92

ADITIVIDAD DE LA INFORMACIN MUTUA


Qu pasa si a cada smbolo enviado ai le corresponde ms de un smbolo de salida ?
Ello puede darse cuando enviamos smbolos no a travs de un canal sino de dos (o ms)
canales. Por ejemplo:
primer canal

--> B

A -->
segundo canal ---> C
Por generalidad, llamaremos C al segundo alfabeto de salida, donde C={ c1, ... ,ct }.
Es claro que los dos (o ms) canales pueden ser idnticos (es decir, tienen la misma matriz
P). Esta situacin es anloga a aquella cuando repetimos el envo de los smbolos de
entrada dos (o ms) veces, por el mismo canal.
Mostraremos -para el caso de dos canales o la repeticin un par de veces del envo de cada
smbolo- que esta redundancia reduce la prdida de informacin [o, dicho de otro modo,
adiciona informacin a I(A;B)].
Sean:
p(ai/bj,ck) : la probabilidad de enviar ai dado que se reciben bj y ck
p(ck/ai,bj) : la probabilidad de recibir ck dado que se enva ai y se recibe bj
p(ck/ai) : la probabilidad de recibir ck dado que se enva ai
Asumiremos que la (segunda) salida ck no depende de la (primera) salida bj, es decir:
1) p(ck/ai,bj) = p(ck/ai)
2) Definiremos

I(A; B,C) = H(A) - H(A/ B,C)

donde

3) H(A/ bj,ck) = p(ai/bj,ck) log[1/p(ai/bj,ck)]


i =1
s

4) H(A/ B,C) =

j=1 k =1
s
t

j=1 k =1
s
t

p(bj,ck) H(A/bj,ck)
r

p(bj,ck) p(ai/bj,ck) log[1/p(ai/bj,ck)]


i =1

por definicin

p(bj,ck) p(ai/bj,ck) log[1/p(ai/bj,ck)]

obvio

p(ai/bj,ck) p(bj,ck) log[1/p(ai/bj,ck)]

obvio

p(ai,bj,ck) log[1/p(ai/bj,ck)]

evidente

j=1 k =1 i =1
s
r
t

i =1
r
i =1

j=1 k =1
s
t
j=1 k =1

93

5) Es claro que:
r

H(A) = p(ai) log[1/p(ai)]


i =1
r

= p(ai) log[1/p(ai)] p(bj/ai)


i =1
r

la suma de una fila es 1

j=1

p(bj/ai) p(ai) log[1/p(ai)]

evidente

p(ai,bj) log[1/p(ai)]

evidente

p(ai,bj) log[1/p(ai)] p(ck/ai)

i =1
r

j=1
s

j=1
s

i =1
r

i =1
r

j=1
s

k =1

la suma de una fila es 1

p(ck/ai) p(ai,bj) log[1/p(ai)]

evidente

p(ck/ai,bj) p(ai,bj) log[1/p(ai)]

por 1)

p(ai,bj,ck) log[1/p(ai)]

evidente

i =1
r

j=1 k =1
s
t

j=1 k =1
s
t

i =1
r
i =1

j=1 k =1

Como por definicin: I(A; B,C) = H(A) - H(A/ B,C)


6) Resulta que, por 5 y 4:
r

I(A; B,C) =
-

i =1
r

j=1 k =1
s
t


i =1
r

j=1 k =1
s
t

p(ai,bj,ck) log[1/p(ai)]
p(ai,bj,ck) log[1/p(ai/bj,ck)]

{ p(ai,bj,ck) log[1/p(ai)] - p(ai,bj,ck) log[1/p(ai/bj,ck)] }

obvio

p(ai,bj,ck) {log[1/p(ai)] - log[1/p(ai/bj,ck)]}

obvio

p(ai,bj,ck) log[ 1/p(ai)

p(ai,bj,ck) log[p(ai/bj,ck) / p(ai)]

p(ai,bj,ck) log[p(ai/bj,ck)p(bj,ck) / p(ai)p(bj,ck)]

p(ai,bj,ck) log[p(ai,bj,ck) / p(ai)p(bj,ck)]

i =1
r
i =1
r
i =1
r
i =1
r
i =1
r
i =1

j=1 k =1
s
t
j=1 k =1
s
t

j=1 k =1
s
t

j=1 k =1
s
t
j=1 k =1
s
t

j=1 k =1

94

1/p(ai/bj,ck) ]

logaritmos
medios, etc.
obvio
evidente

Resumiendo:
r

I(A; B,C) =

i =1

j=1 k =1

p(ai,bj,ck) log[p(ai,bj,ck) / p(ai)p(bj,ck)]

Consideremos la informacin mutua entre A y C -dado que se conoce B-, es decir, la


cantidad de informacin que proporciona el segundo canal, de manera adicional luego de
utilizar el primer canal. Definmosla as:
I(A;C / B) = H(A/B) - H(A/ B,C)
Y si adicionamos (sumamos) I(A;B) a esta expresin resulta que:
I(A;B) + I(A;C / B) = H(A) - H(A/B) + H(A/B) - H(A/ B,C)
= H(A) - H(A/ B,C)
= I(A; B,C)
Es decir, I(A; B,C) = I(A;B) + I(A;C / B)
Que se puede interpretar as:
la informacin mutua entre A y (B,C)
es la informacin mutua entre A y B,
ms
la informacin mutua entre A y C -dado que se conoce B-.
Lo que muestra que la redundancia reduce la prdida de informacin; o de un modo ms
optimista obtiene ganancia de informacin; o aumento de confiabilidad.

Por otro lado, tambin podemos definir I(A; B,C) de este otro modo:
I(A; B,C) = H(B,C) - H(B,C / A)
Donde H(B,C) y H(B,C / A) se definen de manera anloga a las entropas que hemos
estado utilizando.

95

Ejemplo:
Es un ejemplo clsico trabajar con dos canales idnticos binarios simtricos.
Es decir, hallar I(A; B,C) considerando el siguiente CBS.
A = { a1 , a2 } = { 0 , 1 }
B = { b1 , b2 } = { 0 , 1 }
C = { c1 , c2 } = { 0 , 1 }
p(a1) = p(0) = 1/2

P=
=

p(a2) = p(1) = 1/2

a1
a2

b1
p
q

b2
q
p

a1
a2

c1
p
q

c2
q
p

donde q = 1-p

Como se observa, la matriz vale tanto para el primer canal como para el segundo. Es decir,
y tambin
P representa p(cj/ai)
P representa p(bj/ai)
Es obvio que p(ai) es un dato dado.
Si utilizamos la expresin hallada en 6) es posible hacer el clculo de I(A; B,C) sabiendo
que:
i) p(ai,bj,ck) = p(ck/ai,bj) p(ai,bj) = p(ck/ai) p(ai,bj)
p(ck/ai) se obtiene de la matriz P [es equivalente a p(bk/ai)]
ii) p(ai,bj) = p(bj/ai) p(ai)
p(bj/ai) se obtiene de la matriz P
iii) p(bj,ck) = p(ck/bj) p(bj)
r

p(ck/bj) = p(ck/ai) p(ai/bj)


i =1

Ya vimos cmo calcular p(ai/bj) y p(bj)


El clculo da:
ai
0
0
0
0
1
1
1
1

bj
0
0
1
1
0
0
1
1

ck
0
1
0
1
0
1
0
1

p(ai)
1/2
1/2
1/2
1/2
1/2
1/2
1/2
1/2

p(bj,ck)
(p2+q2) / 2
pq
pq
2
(p +q2) / 2
(p2+q2) / 2
pq
pq
(p2+q2) / 2

I(A; B,C) = p2 log (2p2 / p2+q2) + q2 log (2q2 / p2+q2)

96

p(ai,bj,ck)
p2/2
(pq) / 2
(pq) / 2
q2/2
q2/2
(pq) / 2
(pq) / 2
p2/2

REDUCCIN DE CANALES
Sea un canal ruidoso con matriz P de r entradas y s salidas.
Sea una nueva matriz P' construida a partir de P as: conserva las r entradas
pero tiene (s-1) salidas, fruto de agrupar y sumar dos columnas en una sola (de ah que se
reduce una columna).
Diremos que P' es una reduccin elemental de P
Obviamente esto puede hacerse una y otra vez obteniendo sucesivas reducciones:
el canal resultante es una reduccin de P.
Si bien se agrupan y suman dos columnas arbitrarias, podemos suponer -para algunos
resultados tericos- sin prdida de generalidad que las columnas que se asocian son las dos
primeras.
Una forma ingeniosa de ver la reduccin de un canal es considerar tal reduccin como si
se tratara de un tratamiento en un "segundo" canal (en serie), as:
a1
a2
a3 --> ingresa al canal P -->
...
ar

b1
b2
b3
...
bs

c2
c2
--> "segundo canal" --> c3= b3
...
cs=bs

Dicho segundo canal obtiene -con probabilidad 1- las mismas salidas que las entradas para
los smbolos b3,...,bs. Pero, los smbolos b1 y b2 se asocian con c2 (ntese que finalmente
hay s-1 salidas, pues el subndice para las c's -en el grfico- empieza en 2):
En trminos de matrices tendramos:
Matriz del segundo canal

Matriz del canal original

b1
P=

a1
...
ar

...
p(bj/ai)

bs
P2 =

b1
b2
b3
...
bs

c2
1
1

c3

...

cs

1
...
1

Los espacios en blanco tienen ceros.


Desde p(c3/b3) hasta p(cs/bs) tiene la
apariencia de una matriz identidad
Ntese que este es un canal determinante.
Vista la reduccin elemental como dos canales en serie -y por ello esta forma es muy
ingeniosa- podemos aplicar la propiedad para tales canales:
I(A;C) I(A;B)

97

Es decir, la informacin mutua, a lo ms se mantiene (si es que no disminuye) cuando


aplicamos una reduccin elemental.
Cuando la igualdad se preserva, el canal resultante recibe otro nombre adems de
reduccin elemental de P: reduccin suficiente.
Pero sabemos -por lo que se muestra en canales en serie- que la condicin para la igualdad
cuando p(bj,ck)0 es: p(ai/ck) = p(ai/bj).
As pues, podemos escudriar esta condicin para una reduccin elemental segn nuestra
representacin. En la segunda matriz:
i) Casos para j=3,...,s y kj
Es claro que p(ck/bj)=0,
luego
p(bj,ck) = p(ck/bj)p(bj)=0
(no hay ninguna condicin que cumplir)
ii) Casos para j=k (j,k=3,...,s)
Es claro que p(ck/bk)=1,
luego
p(bk,ck) = p(ck/bk)p(bk) = 1p(bk) = p(bk) 0
(pues para que

p(bk) = p(bk/ai) p(ai) sea 0 es necesario que haya una columna de


i =1

ceros en P y/o algn p(ai) sea cero, lo que no consideraremos)


En este caso, es claro que :
s

p(ai/ck) = p(ai/bj) p(bj/ck)

pgina 89, vi)

j=1
s

= p(ai/bj) p(ck/bj) p(bj) / p(ck)

Bayes

j=1

=
=

p(ai/bk) p(bk) / p(ck)


p(ai/bk)

columna k de slo ceros, salvo si (k=j): p(ck/bk)=1


p(ck)=p(bk)

El ltimo paso utiliza el hecho de que -con la segunda matrizs

p(ck) = p(ck/bj) p(bj)


j=1

= p(ck/bk) p(bk)
= p(bk)

columna k de slo ceros, salvo si (k=j): p(ck/bk)=1

As pues, cuando p(bk,ck) 0 la condicin p(ai/ck) = p(ai/bk) se cumple.


iii) Casos para j=1 y j=2 (k=3,...,s)
Es claro que p(ck/bj)=0,
luego
p(bj,ck) = p(ck/bj)p(bj)=0
(no hay ninguna condicin que cumplir)
iv) Resta analizar los casos p(b1,c2) y p(b2,c2)
Es claro que p(c2/b2)=1,
luego
p(b2,c2) = p(c2/b2)p(b2) = 1p(b2) = p(b2) 0
Entonces la condicin que debe satisfacerse para la igualdad es: p(ai/c2) = p(ai/b2)

98

Es claro que p(c2/b1)=1,


luego
p(b1,c2) = p(c2/b1)p(b1) = 1p(b1) = p(b1) 0
Entonces la condicin que debe satisfacerse para la igualdad es: p(ai/c2) = p(ai/b1)
Resumiendo:
para los casos p(b1,c2)0 y p(b2,c2)0
las condiciones que deben cumplirse para que I(A;C)=I(A;B), es decir, para que la
reduccin elemental sea una reduccin suficiente (que no afecte) son:
p(ai/c2) = p(ai/b2)
y
p(ai/c2) = p(ai/b1)
, es decir,
p(ai/b2) = p(ai/b1)
En todos los dems casos, la igualdad se mantendr.
p(ai/b1) = p(ai/b2) se puede reescribir -por Bayes en cada lado de la igualdad- as:
p(b1/ai)p(ai) / p(b1) = p(b2/ai)p(ai) / p(b2)
luego, es obvio que la condicin es
p(b1/ai) = p(b1)p(b2/ai) / p(b2) = [p(b1)/p(b2)]p(b2/ai)
Resumiendo, la condicin es: p(b1/ai) = [p(b1)/p(b2)] p(b2/ai)

(i=1,...,r)

Dada la matriz P del canal original y dadas las probabilidades p(ai), resulta que
p(b1) es fijo, p(b2) es fijo y por lo tanto [p(b1)/p(b2)] tambin es constante, llammosla c.
Luego la condicin para que la reduccin elemental sea una reduccin suficiente es:
p(b1/ai) = c p(b2/ai)

(i=1,...,r)

En trminos de la matriz P, esta condicin puede describirse as:


Que la columna 1 sea (sub)mltiplo de la columna 2 (cada uno de sus elementos).
Ejemplo: Sea el canal cr=(A,P,B)
B = {b1,b2,b3}
A = {a1,a2}
P=

a1
a2

b1
1/8
1/4

b2
1/4
1/2

p(ai) = 1/2
b3
5/8
1/4

Sea P' una reduccin elemental de P


P' =

a1
a2

c2
3/8
3/4

c3=b3
5/8
1/4

Como -en P- la columna 1 es (sub)mltiplo de la columna 2, la reduccin es suficiente.

99

CAPACIDAD DE UN CANAL
Se define as:

C = max{ I(A;B) }
p(ai)

La mxima informacin mutua, variando las probabilidades de entrada p(ai).


Para P fijo, representa la mxima cantidad de informacin que el canal puede transmitir.
Hay un algoritmo -el de Blahut/Arimoto- que estima con una aproximacin aceptable
dicha capacidad. Sin embargo, en ocasiones puede obtenerse tal capacidad directamente,
como en el caso de los canales dbilmente simtricos.
Capacidad de un canal dbilmente simtrico.- Sea NUM la secuencia: num1, ... ,nums
Sea un canal dbilmente simtrico con matriz P, tal que:
A={ a1, ... ,ar }
B={ b1, ... ,bs }
Cada fila es una permutacin de NUM.
Las columnas suman lo mismo: digamos c.
Se sabe que I(A;B) = H(B) - H(B/A). Mostraremos que H(B/A) es una cantidad constante.
r

i =1

j=1

En efecto, por definicin H(B/A) = p(ai) p(bj/ai) log[1/p(bj/ai)]


Como la matriz P es fija y cada fila es una permutacin de NUM, la segunda sumatoria
siempre devuelve lo mismo, digamos k. Es decir,
r

i =1

i =1

H(B/A) = p(ai) k = k p(ai) = k 1 = k


s

H(B/A) = k = p(bj/ai) log[1/p(bj/ai)]

es decir,
(para algn/cualquier i)

j=1

Luego, I(A;B) = H(B) - k


k=H(B/A) no depende de p(ai). Por lo tanto, maximizar el valor de I(A;B) para este canal
-variando las probabilidades de entrada p(ai)- es equivalente a maximizar H(B).
Se sabe que H(B) log(s), pues |B|=s
La igualdad se alcanza cuando p(bj)=1/s (para j=1,...,s)
(es decir, cuando las probabilidades p(bj) son iguales -a un valor constante-)
Sea p(ai)=1/r, entonces:
r

p(bj) = p(bj/ai) p(ai)


i =1
r

= p(bj/ai) 1/r
i =1

clculo de p(bj)
tomando p(ai)=1/r

= 1/r p(bj/ai)

obvio

= 1/r c
= c/r

canal dbilmente simtrico, columnas suman c

i =1

100

Resumiendo: tomando p(ai)=1/r


p(bj) = c/r

un valor constante

Ms precisamente p(bj) = c/r = 1/s (ntese que c = r/s)


Luego, H(B) alcanza su mximo valor cuando p(ai)=1/r
As pues, en un canal dbilmente simtrico:
C = max{ I(A;B) } = log(s) - k
p(ai)
s

con |B|=s y k= p(bj/ai) log[1/p(bj/ai)] (para algn i)


j=1

Mximo que se alcanza con p(ai)=1/r

Capacidad de un canal binario simtrico.- Sea el BSC

P=

b1
p
q

a1
a2

b2
q
p

donde q = 1-p

Como tambin es un canal dbilmente simtrico, se aplica el resultado anterior con


B={b1,b2}={0,1}, es decir, |B| = s = 2
Luego, la capacidad mxima de este canal -en bits- es
s

C = log(s) - k = log(2) - p(bj/ai) log[1/p(bj/ai)]


j=1

= 1

- [ plog(1/p) + qlog(1/q)]

(para algn i)
con p(a1)=p(a2)=1/2

Es comn denotar C = 1 - [ plog(1/p) + qlog(1/q) ] de la siguiente manera:


C = 1 - H(p)
Ejemplo:
0.9 0.1
El BSC con matriz P =
tiene capacidad -en bits 0.1 0.9
C = 1- [0.9log(1/0.9) + 0.1log(1/0.1)] = 1- 0.46899559358928 = 0.53100440641072
Mximo que se alcanza con p(a1)=p(a2)=1/2

101

Algoritmo de Blahut-Arimoto.- Estima la capacidad de un canal.


(adaptado del libro de Wells)
Sea un nmero pequeo (el error de estimacin aceptado)
Sea P la matriz del canal con |A|=r, |B|=s
Sean p(ai) (i=1,...,r)
las probabilidades de entrada
Sean fi
(i=1,...,r)
variables auxiliares
Sean p(bj) (j=1,...,s)
las probabilidades de salida
Algoritmo:
p(ai)=1/r;
r

utilizando p(bj)= p(bj/ai)p(ai)

calcular p(bj)

i =1

REPETIR hasta una estimacin aceptable


s

calcular fi = exp{

j=1

p(bj/ai)ln[p(bj/ai)/p(bj)] }

exp es la funcin exponencial

x=

i =1

fi p(ai)

Il = log2(x)
Iu = log2( max{ fi } )
Si (Iu-Il) <
C = Il
STOP
en otro caso
p(ai) = fi p(ai) / x
calcular p(bj)
finSi
FIN REPETIR
La capacidad estimada est en C [con las probabilidades de entrada p(ai)]
Ejemplo:
0.9 0.1
Para el BSC con matriz P =

0.1 0.9
El algoritmo calcula (para = 0.00000000001) una capacidad -en bits- de
C = 0.53100440641072
Y termina con p(a1)=p(a2)=0.5

102

REGLAS DE DECISIN
PRINCIPIOS DE DECODIFICACIN
Sea un canal con ruido de alfabeto de entrada A y alfabeto de salida B. Cuando se obtiene
la salida bj (por ejemplo en un BSC se obtiene como salida un '0') el receptor debe decidir
a cul de las r entradas (a1,...,ar) corresponde esta salida. Es decir, debe decidir cul
smbolo ha enviado el emisor.
Como el canal tiene ruido cuando se recibe bj (por ejemplo un 0) no necesariamente se ha
enviado el mismo smbolo (en nuestro ejemplo, un 0).
Una regla de decisin es una funcin D:B->A que asigna un nico smbolo de entrada a
cada smbolo de salida.
Ejemplo en el caso de un BSC:
- Si se recibe un 0 podemos decidir que se ha enviado (decodificarlo como) un 0
Ello puede anotarse as: D(0) = 0
- Si se recibe un 1 podemos decidir que se ha enviado (decodificarlo como) un 1
Ello puede anotarse as: D(1) = 1
Hay otras alternativas que detallamos aqu (cada regla de decisin es fija):
Posible regla de decisin 1:
Posible regla de decisin 2:
D(0) = 0
D(1) = 0
D(0) = 0
D(1) = 1
o si lo anotamos ms generalmente
o si lo anotamos ms generalmente
D(b1) = a1
D(b2) = a1
D(b1) = a1
D(b2) = a2
Posible regla de decisin 3:
Posible regla de decisin 4:
D(0) = 1
D(1) = 1
D(0) = 1
D(1) = 0
o si lo anotamos ms generalmente
o si lo anotamos ms generalmente
D(b1) = a2
D(b2) = a1
D(b1) = a2
D(b2) = a2
En general, dado que a cada smbolo de salida se le puede asignar cualesquiera de los r
smbolos de entrada, podemos tener rs reglas de decisin para un canal arbitrario.
Est claro que cualquiera de estas reglas no hace lo correcto siempre.
Pero el receptor, en su tarea de decodificacin, debe utilizar alguna de ellas
necesariamente.
As pues debemos elegir una de las reglas fijas de decisin. Esta eleccin la haremos
considerando las probabilidades con las que contamos, seleccionando la ms prometedora.
Para optar por una regla de decisin, la construiremos asignacin a asignacin as:
Dado j, es decir, dado el smbolo de salida bj, debemos asignarle una de las r entradas
(a1,...,ar) -digamos a*- as: D(bj) = a*.
La probabilidad de que esta asignacin sea correcta es: p(a*/bj)
Obviamente la probabilidad de que esta asignacin sea incorrecta es: 1-p(a*/bj)
Principio de decodificacin del mnimo error.- Cul a* escribir (a1 a2 ... ar)?
Podemos resolverlo a travs del principio de decodificacin del mnimo error (Abramson
le llama de mxima posibilidad condicional y Jones del observador ideal):

103

Se elige el a*{a1,...,ar} tal que ai p(a*/bj) p(ai/bj)


Por Bayes, es equivalente decir:
Se elige el a*{a1,...,ar} tal que ai p(bj/a*)p(a*) / p(bj) p(bj/ai)p(ai) / p(bj)
Multiplicando por p(bj) en ambos miembros, es equivalente decir:
Se elige el a*{a1,...,ar} tal que ai p(bj/a*)p(a*) p(bj/ai)p(ai)
Es decir, se trata de maximizar el valor de p(a*/bj).
Ejemplo: Sea el siguiente canal con A={a1,a2}, B={b1,b2}, p(a1)=1/2, p(a2)=1/2
0.6 0.4
P=

0.4 0.6
Construiremos la regla de decisin asignacin a asignacin siguiendo el principio
del mnimo error:
Para b1) p(b1/a1)p(a1) = 0.61/2 = 0.3
p(b1/a2)p(a2) = 0.41/2 = 0.2
Es claro que ai p(b1/a1)p(a1) p(b1/ai)p(ai)
Luego, D(b1) = a1
Para b2) p(b2/a1)p(a1) = 0.41/2 = 0.2
p(b2/a2)p(a2) = 0.61/2 = 0.3
Es claro que ai p(b2/a2)p(a2) p(b2/ai)p(ai)
Luego, D(b2) = a2
As pues nuestra regla de decisin es:
D(b1) = a1
D(b2) = a2
Ntese que para construir la regla de decisin aplicando este principio debemos tener las
probabilidades p(ai).
Principio de decodificacin de mxima posibilidad.- Esta regla requiere que
conozcamos slo la matriz P del canal y no las probabilidades p(ai).
Se elige el a*{a1,...,ar} tal que ai p(bj/a*) p(bj/ai)
Es decir, se trata de maximizar el valor de p(bj/a*).
Ejemplo: Para el canal anterior, construiremos la regla de decisin asignacin a asignacin
siguiendo el principio de mxima posibilidad:
0.6 0.4
P=

0.4 0.6
Para b1) p(b1/a1) = 0.6
p(b1/a2) = 0.4
Es claro que ai p(b1/a1) p(b1/ai)
Luego, D(b1) = a1
Para b2) p(b2/a1) = 0.4
p(b2/a2) = 0.6
Es claro que ai p(b2/a2) p(b2/ai)
Luego, D(b2) = a2
As pues nuestra regla de decisin es:
D(b1) = a1
D(b2) = a2

104

Probabilidad de que la regla de decisin sea correcta y probabilidad de error de la


regla de decisin.- Se calculan de la misma manera para reglas de decisin provenientes
de ambos principios de decodificacin:
s

La probabilidad de que la regla de decisin sea correcta es: PC = p(a*/bj)p(bj)


j=1

La probabilidad de error de la regla de decisin as elegida es:


O bien,
s
s
PE = 1 - PC
PE = [1-p(a*/bj)]p(bj) = [p(bj)-p(a*/bj)p(bj)]
j=1
s

j=1

= p(bj)- p(a*/bj)p(bj)
j=1

= 1 - p(a*/bj)p(bj)

= 1 - p(a*/bj)p(bj)

j=1

j=1

como
s

PE =


i =1

j=1

j=1 i =1

p(ai,bj) =
s

j=1

p(ai,bj) -

j=1

j=1 i =1

p(ai,bj) =1
s

p(a*/bj)p(bj) =

j=1 i =1

(algunos autores lo escriben as) =


B

p(ai,bj) -

j=1

p(a*,bj)

p(ai,bj)

A - {a*}

(a* se elige segn la regla de decisin, para cada bj)


Ejemplo:
Para el canal anterior, ambos principios de decodificacin ofrecen la siguiente regla:
D(b1) = a1 D(b2) = a2
Adems:
p(a1,b1) = p(b1/a1)p(a1) = 0.61/2 = 0.3
p(a1,b2) = p(b2/a1)p(a1) = 0.41/2 = 0.2
p(a2,b1) = p(b1/a2)p(a2) = 0.41/2 = 0.2
p(a2,b2) = p(b2/a2)p(a2) = 0.61/2 = 0.3
Luego:
s

PE =

j=1 i =1

p(ai,bj) -

j=1

p(a*,bj) = 0.3 + 0.2 + 0.2 + 0.3 - [0.3 + 0.3] = 0.4

Los principios de decodificacin de mxima posibilidad y del mnimo error son


equivalentes cuando las probabilidades p(ai) son iguales.En efecto, el principio de decodificacin del mnimo error es el siguiente:
Se elige el a*{a1,...,ar} tal que ai p(bj/a*)p(a*) p(bj/ai)p(ai)
De acuerdo a nuestro supuesto los p(ai) son iguales, obviamente tambin es igual p(a*).
Cancelando estos trminos en la ltima expresin, se tiene:
Se elige el a*{a1,...,ar} tal que ai p(bj/a*) p(bj/ai)
Que es exactamente el principio de mxima posibilidad.

105

Cuando hay ms de una alternativa equivalente se elige cualquiera de ellas.


Ejemplo: Sea el siguiente canal con A={a1,a2}, B={b1,b2}, p(a1)=1/2, p(a2)=1/2
0.5 0.5
P=

0.5 0.5
Siguiendo el principio del mnimo error para b1: Siguiendo el principio de mxima
posibilidad para b1:
p(b1/a1)p(a1) = 0.51/2 = 0.25
p(b1/a2)p(a2) = 0.51/2 = 0.25
Es claro que la condicin
ai p(b1/a1)p(a1) p(b1/ai)p(ai)
y ai p(b1/a2)p(a2) p(b1/ai)p(ai)

p(b1/a1) = 0.5
p(b1/a2) = 0.5
Es claro que la condicin
se cumple
ai p(b1/a1) p(b1/ai)
tambin y ai p(b1/a2) p(b1/ai)

se cumple
tambin

Luego, a b1 se le puede asignar tanto a1 como a2. Luego, a b1 se le puede asignar tanto a1
como a2.
Elegimos: D(b1) = a1
Elegimos: D(b1) = a1
El principio de mxima posibilidad no garantiza mnimizar la probabilidad de error de la
regla de decisin -para el caso en que los p(ai) no sean iguales-.
Ejemplo:
Sea el siguiente canal con A={a1,a2}, B={b1,b2}, p(a1)=1/10, p(a2)=9/10
0.7 0.3
P=

0.3 0.7
Por el principio de mxima posibilidad
Por el principio del mnimo error
b1) Como: p(b1/a1) = 0.7
b1) Como: p(b1/a1)p(a1) = 0.71/10 = 0.07
p(b1/a2)p(a2) = 0.39/10 = 0.27
p(b1/a2) = 0.3
Es claro que ai p(b1/a2)p(a2) p(b1/ai)p(ai)
Es claro que ai p(b1/a1) p(b1/ai)
Luego, D(b1) = a2
Luego, D(b1) = a1
b2) Como: p(b2/a1)p(a1) = 0.31/10 = 0.03
b2) Como: p(b2/a1) = 0.3
p(b2/a2)p(a2) = 0.79/10 = 0.63
p(b2/a2) = 0.7
Es claro que ai p(b2/a2)p(a2) p(b2/ai)p(ai)
Es claro que ai p(b2/a2) p(b2/ai)
Luego, D(b2) = a2
Luego, D(b2) = a2
Resumiendo: D(b1) = a2

D(b2) = a2

Resumiendo: D(b1) = a1

D(b2) = a2

Como: p(a1,b1) = p(b1/a1)p(a1) = 0.71/10 = 0.07


p(a1,b2) = p(b2/a1)p(a1) = 0.31/10 = 0.03
p(a2,b1) = p(b1/a2)p(a2) = 0.39/10 = 0.27
p(a2,b2) = p(b2/a2)p(a2) = 0.79/10 = 0.63
s

Y sabiendo que: PE =

j=1 i =1

p(ai,bj) -

j=1

p(a*,bj)

PE = 0.07 + 0.03 + 0.27 + 0.63 - [0.27 + 0.63] PE = 0.07 +0.03+0.27 +0.63 -[0.07+ 0.63]
= 0.1
= 0.3
( > 0.1 )

106

EL SEGUNDO TEOREMA DE SHANNON


TEOREMA FUNDAMENTAL DE LA CODIFICACIN
(en canales con ruido)
Cmo manipular un canal para hacerlo ms confiable.- Mostraremos en base a un
ejemplo clsico que, a pesar del ruido, un canal puede utilizarse de manera relativamente
ms confiable mediante algunas modificaciones.
Ejemplo: Sea el siguiente canal con A={a1,a2}, B={b1,b2}, p(a1)=1/2, p(a2)=1/2
p q
P=
con p > 0.5; dado que p + q = 1 es claro que q < 0.5; y que p > q

q p
Como p(a1)=p(a2)=1/2, los principios de decodificacin de mxima posibilidad y del
mnimo error son equivalentes.
Construyamos la regla de decisin segn el principio de mxima posibilidad:
b1) Como: p(b1/a1) = p
p(b1/a2) = q
p>q
Es claro que ai p(b1/a1) p(b1/ai)
Luego, D(b1) = a1
b2) Como: p(b2/a1) = q
p(b2/a2) = p
p>q
Es claro que ai p(b2/a2) p(b2/ai)
Luego, D(b2) = a2
Es decir, la regla de decisin es: D(b1) = a1

D(b2) = a2

Como: p(a1,b1) = p(b1/a1)p(a1) = p1/2 = p/2


p(a1,b2) = p(b2/a1)p(a1) = q1/2 = q/2
p(a2,b1) = p(b1/a2)p(a2) = q1/2 = q/2
p(a2,b2) = p(b2/a2)p(a2) = p1/2 = p/2
La probabilidad de error de nuestra regla de decisin es:
s

PE =

j=1 i =1

p(ai,bj) -

j=1

p(a*,bj) = p/2 + q/2 + q/2 + p/2 - [p/2 + p/2] = q

Manipulacin sugerida: A partir del canal que tenemos, ingeniosamente crearemos otro
canal segn la siguiente idea: en vez de enviar un 0 un 1, repetiremos el envo tres veces,
es decir, las entradas sern ahora a1=000 o bien a2=111.
Como se trata del mismo canal de base, los tres smbolos de una u otra entrada pueden
verse afectados por el ruido, as pues las salidas posibles sern (fjese bien el orden):
b1=000, b2=001, b3=010, b4=100, b5=011, b6=101, b7=110, b8=111.
Es posible calcular p(bj/ai) en trminos de las probabilidades del canal original as:
Sean bj=bj1...bjn y ai=ai1...ain, entonces p(bj/ai) = p(bj1/ai1) ... p(bjn/ain).

107

p(b1/a1) = p(000/000) = p(0/0) p(0/0) p(0/0) = ppp = p3


p(b2/a1) = p(001/000) = p(0/0) p(0/0) p(1/0) = ppq = p2q
El resto de los casos se resume en la siguiente matriz:
b1=000 b2=001 b3=010 b4=100 b5=011 b6=101 b7=110 b8=111
a1=000
p3
p2q
p2 q
p2q
pq2
pq2
pq2
q3
a2=111
q3
pq2
pq2
pq2
p2 q
p2q
p2q
p3

As pues:

Ntese que p(a1)=p(a2)=1/2 (otras entradas no se envan), de manera que los principios de
decodificacin de mxima posibilidad y del mnimo error son equivalentes.
Construyamos la regla de decisin segn el principio de mxima posibilidad:
Previamente, dado que p > q, es claro que: p3 > q3 y que p2q > pq2
b1) Como: p(b1/a1) = p3
p(b1/a2) = q3
Es claro que ai p(b1/a1) p(b1/ai)
Luego, D(b1) = a1
b2) Como: p(b2/a1) = p2q
p(b2/a2) = pq2
Es claro que ai p(b2/a1) p(b2/ai)
Luego, D(b2) = a1
Los otros resultados se obtienen de manera semejante. La nueva regla de decisin es:
D(b1) = a1 D(b2) = a1 D(b3) = a1 D(b4) = a1
D(b5) = a2 D(b6) = a2 D(b7) = a2 D(b8) = a2
Que indica, por ejemplo: si se recibe b5=011, debe asignrsele (debe deducirse que se ha
enviado) a2=111, que codifica al 1, es decir, se deduce que se ha enviado un 1.
En general, la regla indica que debemos deducir que se ha enviado 000 (que codifica al 0)
si hay mayor cantidad de ceros en bj, o bien 111 (que codifica al 1) en caso contrario.
Por otro lado, como:
p(a1,b1) = p(b1/a1)p(a1) = p31/2 = p3/2
p(a1,b2) = p(b2/a1)p(a1) = p2q1/2 = p2q/2
p(a1,b3) = p(b3/a1)p(a1) = p2q1/2 = p2q/2
p(a1,b4) = p(b4/a1)p(a1) = p2q 1/2 = p2q/2
p(a1,b5) = p(b5/a1)p(a1) = pq21/2 = pq2/2
p(a1,b6) = p(b6/a1)p(a1) = pq21/2 = pq2/2
p(a1,b7) = p(b7/a1)p(a1) = pq21/2 = pq2/2
p(a1,b8) = p(b8/a1)p(a1) = q31/2 = q3/2

p(a2,b1) = p(b1/a2)p(a2) = q31/2 = q3/2


p(a2,b2) = p(b2/a2)p(a2) = pq21/2 = pq2/2
p(a2,b3) = p(b3/a2)p(a2) = pq21/2 = pq2/2
p(a2,b4) = p(b4/a2)p(a2) = pq21/2 = pq2/2
p(a2,b5) = p(b5/a2)p(a2) = p2q1/2 = p2q/2
p(a2,b6) = p(b6/a2)p(a2) = p2q1/2 = p2q/2
p(a2,b7) = p(b7/a2)p(a2) = p2q 1/2 = p2q/2
p(a2,b8) = p(b8/a2)p(a2) = p31/2 = p3/2

La probabilidad de error de nuestra nueva regla de decisin es:


s

PE =

j=1 i =1

p(ai,bj) -

j=1

p(a*,bj) = 3pq2/2 + q3/2 + q3/2 + 3pq2/2 = 3pq2 + q3

Lo importante de resaltar aqu es que si q es un valor pequeo: 3pq2 + q3 < q.


Por ejemplo, para q=0.02 tenemos que p=0.98 y por lo tanto 3pq2 + q3= 0.001184
Es decir, codificar 0 como 000 y 1 como 111, repitiendo tres veces el envo, reduce la
probabilidad de error en nuestra regla de decisin: hace ms confiable el canal.

108

Velocidad del cdigo (code rate).- El precio de reducir la probabilidad de error de la


regla de decisin (es decir, menor error en la decodificacin), es que -para el mismo
mensaje- ya no se enva un smbolo a1=0 (o a2=1) sino una secuencia de tres smbolos 000
(o 111), denotado en el nuevo canal como a1 (o a2). Ello significa un mayor costo.
En general, se define la velocidad del cdigo como:
R = Hr(S)/n
S: es la fuente de los mensajes
Hr(S): es la entropa de dicha fuente
(nmero medio de r-its de informacin transmitidos con cada mensaje)
n: es el largo de la secuencia para representar los mensajes
(finalmente ser la longitud de las palabras (cdigo) que representan los mensajes)
En el ejemplo que estamos manejando:
Para las transmisiones a travs del canal original:
A = { a1, a2 }= { 0, 1 } con p(a1) = 1/2 y p(a2) = 1/2
H(A) = log22 = 1 bit
n=1
Para enviar un bit de informacin utilizamos una secuencia de un smbolo.
Luego, la velocidad del cdigo es: R = 1/1 =1
Para las transmisiones a travs del canal con la manipulacin:
A = { a1, a2 }= { 000, 111 } con p(a1) = 1/2 y p(a2) = 1/2
H(A) = log22 = 1 bit
n=3
Para enviar un bit de informacin utilizamos una secuencia de tres smbolos.
Luego, la velocidad del cdigo es R = 1/3
As pues, aunque en la manipulacin el error en la decodificacin es menor, la velocidad
del cdigo tambin es menor.
Si en vez de tres repeticiones, pensamos en cinco, siete, etc., es intuitivo imaginar que la
probabilidad de error de la regla de decisin ser an menor; lamentablemente la
velocidad del cdigo tambin (PE->0 cuando n->; pero tambin R->0 cuando n->).
De esta manera, R representa la cantidad relativa de informacin transportada en cada
secuencia de smbolos.
Lo ideal ser utilizar una longitud de bloque pequea para transmitir mucha informacin.
Lo contrario, utilizar muchos smbolos para transportar poca informacin, es decir, una
velocidad del cdigo prxima a cero, es completamente indeseable (muchos smbolos que
informan muy poco).

Hay un otro componente a tomar en cuenta, se trata de la Capacidad del canal. No


podemos desbordar esta capacidad, pero tampoco podemos desaprovecharla con una
velocidad del cdigo (R) muy baja.

109

En nuestro ejemplo, dado que se trata de un BSC, sabemos que (ver pgina 101):
C = 1 - [ plog(1/p) + qlog(1/q) ] = 1 - H(p)
H(A) = log22 = 1 bit
El mensaje a1=0 se lo codifica como a1=000
El mensaje a2=1 se lo codifica como a2=111
n=3
R = 1/3 = 0.333
Por ejemplo con p = 0.9 se tiene H(p) = 0.469 y C = 0.531, es decir, R<C.
As pues, con el propsito de ganar confiabilidad, un canal puede utilizarse de manera ms
ingeniosa mediante algunas modificaciones.
A esta manipulacin la llamaremos ms adelante construccin de cdigos (del) canal.

El segundo teorema de Shannon vislumbra que tal manipulacin no se limita a la


repeticin y por lo tanto, si lo hacemos ms hbilmente, utilizando reglas de decisin
apropiadas aunque recurramos a secuencias ms largas para codificar los mismos
mensajes: es posible pensar en un cdigo canal de manera tal que PE->0 pero con la
velocidad del cdigo (R) todo lo cerca que se quiera de la capacidad (C) del canal.
Lo enunciamos aqu, sin demostracin, en su versin para canales binarios simtricos.
Teorema Fundamental de la Codificacin.- Sea un BSC de matriz
p q
P=
con p > 0.5 y cuya capacidad del canal es C = 1 - H(p)

q p
Sean >0 y >0.
Entonces, para n suficientemente largo, existe un cdigo canal C, binario y bloque -de
longitud n-, cuya velocidad del cdigo es R, que satisface C- R<C, tal que el principio
de decodificacin de mxima posibilidad nos da un error de la regla de decisin PE<.

110

PRINCIPIO DE DECODIFICACIN DE
MNIMA DISTANCIA ( MXIMA VECINDAD) DE HAMMING
Ya vimos que -a partir de un canal base, un BSC por ejemplo- de entradas ai y salidas bj,
podemos considerar otro canal de entradas ai y salidas bj que son secuencias de smbolos
del canal original.
A partir de ahora trabajaremos bajo dichas condiciones. Ms an, los ai sern de igual
longitud -es decir bloque-. Generalmente trabajaremos con secuencias de 0's y 1's (algo
semejante sucede con los bj).
Recordemos que es posible calcular p(bj/ai) en trminos de las probabilidades del canal
original as:
Sean bj=bj1...bjn y ai=ai1...ain, entonces p(bj/ai) = p(bj1/ai1) ... p(bjn/ain)
Ejemplo (del libro de Togneri): Sea un BSC de matriz
0.6 0.4
P=
donde A={a1,a2}={0,1}; B={b1,b2}={0,1}
0.4 0.6
Consideremos el siguiente otro canal con
A={a1,a2,a3,a4}={000,011,101,110}
B={b1,b2,b3,b4,b5,b6,b7,b8}={000,001,010,011,100,101,110,111}
Cada celda de la matriz puede calcularse as:
p(b1/a1) = p(000/000) = p(0/0) p(0/0) p(0/0) = 0.6 0.6 0.6 = 0.216
El resto es:
b1=000 b2=001 b3=010 b4=011 b5=100 b6=101 b7=110 b8=111
a1=000 0.216 0.144 0.144 0.096 0.144 0.096 0.096 0.064
a2=011 0.096 0.144 0.144 0.216 0.064 0.096 0.096 0.144
a3=101 0.096 0.144 0.064 0.096 0.144 0.216 0.096 0.144
a4=110 0.096 0.064 0.144 0.096 0.144 0.096 0.216 0.144
Podemos construir la regla de decisin aplicando el principio de mxima posibilidad.
Dicho principio es: Se elige el a*{a1,...,ar} tal que ai p(bj/a*) p(bj/ai)
Ntese que dado un bj, dicha regla se reduce a elegir un a*=ai correspondiente al mayor
valor en la columna j (cualquiera de ellos, si hay ms de uno).
Luego, la regla de decisin es:
D(b1)=a1 D(b2)=a3 D(b3)=a4 D(b4)=a2 D(b5)=a1 D(b6)=a3 D(b7)=a4 D(b8)=a2
Distancia de Hamming.- Sean a=a1...an y b=b1...bn dos cadenas de longitud n.
La distancia de Hamming entre a y b, denotada por d(a,b) se define como el nmero de
posiciones en las que difieren dichas cadenas a y b.
Ejemplos:
a = 00010 a = 1111
a=1
a = 010 a = 01101
b = 00000 b = 1111
b=0
b = 101 b = 10110
d(a,b) = 1 d(a,b) = 0 d(a,b) = 1 d(a,b) = 3 d(a,b) = 4

111

Es claro que dos cadenas a,b de igual longitud, pueden diferir en cero posiciones -si son
iguales-, o en una, en dos, etc. Es decir, d(a,b) 0.
Tambin es claro que el nmero de posiciones en las que difieren las cadenas a y b, es el
mismo nmero en las que difieren las cadenas b y a. Es decir, d(a,b) = d(b,a).
Ahora, probaremos que dadas las cadenas a,b,c de igual longitud: d(a,c) d(a,b) + d(b,c).
Propiedad conocida como la desigualdad del tringulo.
En efecto, mostraremos previamente que:
(1) Si aici entonces (aibi bici).
Demostracin:
La contrarrecproca del enunciado es: Si (aibi o bici) entonces (aici)
Es decir, Si ai=bi y bi=ci entonces ai=ci
Que es verdadera por simple inspeccin (transitividad de la relacin de igualdad).
Consideremos cadenas de un slo smbolo, es decir, cadenas cuya distancia de Hamming
sea 0 (cuando son iguales, es decir, cuando son el mismo smbolo) o 1 (cuando son
diferentes -smbolos-). Probaremos que:
(2) d(ai,ci) d(ai,bi) + d(bi,ci)
Demostracin:
Por reduccin al absurdo, supongamos que d(ai,ci) > d(ai,bi) + d(bi,ci)
Ello puede suceder slo de la siguiente manera: 1 > 0 + 0
Es decir, cuando aici y cuando ai=bi y bi=ci.
Pero (1) muestra que si aici entonces (aibi bici).
Esta contradiccin muestra que nuestro supuesto est errado y prueba el enunciado.
Es obvio que la distancia entre dos cadenas -a,b por ejemplo-, es la suma de las distancias
entre cada uno de sus smbolos (posicin a posicin). Es decir:
(3) d(a,b) = d(a1,b1) + ... + d(an,bn)
(4) Recordemos que: Si x z y t s Entonces x+t z+s.
Finalmente, sean a,b,c cadenas de longitud n. Por (2) sabemos que:
d(a1,c1) d(a1,b1) + d(b1,c1)
...
d(an,cn) d(an,bn) + d(bn,cn)
Y por (3) y (4) resulta que: d(a,c) d(a,b) + d(b,c)
Que es lo que queramos demostrar.
Colocando juntas las tres condiciones:
i) d(a,b) 0
ii) d(a,b) = d(b,a)
iii) d(a,c) d(a,b) + d(b,c)

112

Principio de decodificacin de mnima distancia ( mxima vecindad) de Hamming.Se elige el a*{a1,...,ar} tal que ai d(a*,bj) d(ai,bj)
Es decir, se trata de minimizar el valor de d(a*,bj).
Ejemplo: Recordemos que en nuestro ltimo caso
A={a1,a2,a3,a4}={000,011,101,110}
B={b1,b2,b3,b4,b5,b6,b7,b8}={000,001,010,011,100,101,110,111}
Supongamos que recibimos b7=110
d(a1,b7)=d(000,110)=2
d(a2,b7)=2
d(a3,b7)=2
d(a4,b7)=0
De manera que nuestra regla de decisin incluir: D(b7)=a4
El resto se hace de manera semejante (en caso de varias alternativas equivalentes, se elige
cualquiera). La regla de decisin es:
D(b1)=a1 D(b2)=a3 D(b3)=a4 D(b4)=a2 D(b5)=a1 D(b6)=a3 D(b7)=a4 D(b8)=a2

El principio de decodificacin de mnima distancia de Hamminges el mismo que el


de mxima posibilidad, para un BSC como canal base.Sean A={0,1}; B={0,1} y un BSC de matriz
p q
P=
con p > 0.5; dado que p + q = 1 es claro que q < 0.5; y que p > q

q p
Supongamos un otro canal -construido a partir de l- con
A={a1, ... ,ar}
B={b1, ... ,b2n}
Las entradas y salidas ai,bj tienen la misma longitud n.
Consideremos que se enva ai=ai1...ain y se recibe bj=bj1...bjn.
Supongamos que d(ai,bj) = t.
Es decir, t es el nmero de bits invertidos o errados entre lo que enva y lo que se recibe.
Como la probabilidad de error es q y la probabilidad de certeza es p:
Luego, p(bj/ai) = p(bj1/ai1) ... p(bjn/ain) = qt pn-t
Recordemos que bajo el principio de decodificacin de mxima posibilidad se trata de
maximizar el valor de p(bj/a*).
Par cual ai se maximiza el valor de p(bj/ai) = qt pn-t ?
Dado que p(bj/ai) = qt pn-t = qt pn p-t = qt pn 1/pt = (q/p)t pn
Como p > q es claro que (q/p) < 1. Luego, (q/p)t se maximiza cuando t es mnimo.
Y como pn es fijo, p(bj/ai) = (q/p)t pn se maximiza cuando t es mnimo.
Es decir, al minimizar t = d(ai,bj), se maximiza p(bj/ai): luego, los principios de
decodificacin de mxima posibilidad y mnima distancia de Hamming son iguales.
Cuando adems las probabilidades de entrada p(ai) son equivalentes, el principio del
mnimo error tambin es el mismo.
As pues, bajo las condiciones anteriores, para construir la regla de decisin, ya no es
necesario efectuar tantos clculos [la matriz del nuevo canal con p(bj/ai) para cada i,j y
luego buscar p(bj/a*)] sino apelar a la distancia de Hamming, buscando la menor.
Como ilustramos antes con un ejemplo.

113

En general suponiendo que se recibe bj:


i) Si bj=ai, para algn i, entonces asignamos a*=ai
(cuando se recibe algo -sin bits errados- que corresponda a una entrada lcita, se deduce
que eso es precisamente lo que se ha enviado).
ii) Si i bjai, entonces se le asigna a a* la entrada que diste menos de la salida bj, es
decir, tal que ai d(a*,bj) d(ai,bj)
(cuando se recibe algo -con bits errados- que no corresponde a ninguna entrada lcita, se
deduce que lo que se ha enviado es la entrada ms vecina (cercana) a eso que se recibe,
en el sentido de Hamming).
Obviamente, siempre existe una probabilidad de error.
Por ejemplo, supongamos que a1=000 y que a2=111.
Supongamos que se enva a2=111.
Y que se recibe b1=000: los tres bits se han invertido por el ruido.
La probabilidad de ello es
p(b1/a2) = p(000/111) = p(0/1) p(0/1) p(0/1) = q q q = q3
(para q=0.4, q3=0.064)
Nuestra regla de decisin es D(b1)=a1, pues d(a1,b1)=0.
Deduciendo -incorrectamente- que se ha enviado a1.

114

CDIGOS DETECTORES Y CORRECTORES


Aunque se utilice un BSC donde finalmente se envan ceros y/o unos, lo que en general se
desea envar son mensajes ai. Por ejemplo a1=0 o, lo que es ms usual, mensaje ms largos
por ejemplo a1=1000001 (=65 el cdigo ascii de la 'A').
Ya vimos que una forma de manipular el canal y hacerlo ms confiable eludiendo el ruido,
es no enviar los mensajes originales sino aadirles algn(os) bit(s) de redundancia.
Por ejemplo en vez de un 0 representarlo con la entrada a1=000; o en nuestro segundo
ejemplo en vez de 1000001 representarlo con la entrada a1=10000010 (donde hemos
subrayado el bit de redundancia aadido).
Obviamente las salidas todava pueden verse afectadas por el ruido. Sin embargo, con
principios de decodificacin apropiados (como el de la mnima distancia de Hamming)
pueden construirse reglas de decisin cuya probabilidad de error sea disminuida: tanto por
la redundancia como por lo pertinente de la regla.
Cdigos (del) canal.- Al hecho de aumentar bits de redundancia a los mensajes, haciendo
ms largas las entradas (para transmitir los mismos mensajes) pero ms resistentes al
ruido, le llamaremos: la construccin de un cdigo (del) canal.
Bajo el principio de decodificacin de la mnima distancia de Hamming, es deseable que
pensemos en construir cdigos canal tales que: Si i bjai
Entonces al asignar a a* la entrada que diste menos de la salida bj, no haya ms de una
alternativa. En cuyo caso, si d(a*,bj)=t, estaramos corrigiendo los t errores.
Este es el esquema FEC por las siglas en ingls de Forward Error Correction.
En cambio, cuando para la salida bj, hay varias entradas ai que estn igual de cercanas,
d(a*,bj)=t para estas varias entradas ai: una postura considera que es mejor no elegir
cualquiera de dichas alternativas, sino solamente indicar que se han detectado t errores,
solicitando un reenvo.
Este es el esquema ARQ, por las siglas en ingls de Automatic Repeat Request.
Un buen cdigo canal C, debe permitir detectar todos los t errores, donde sea que ocurran
y en cualquier palabra cdigo que ocurran. Mejor an ser que se corrijan tales errores..
Ser ms complejo construir un cdigo canal C a medida que t aumenta (1, 2, etctera).
Por fortuna, dependiendo del canal y del valor de q, en general un valor alto para t -dentro
de una palabra cdigo-, es decir, una cantidad alta de errores tiende a ser ms improbable.
Distancia mnima de un cdigo canal.- Sea C={a1, ... ,aM} un cdigo canal.
Denotaremos por dC a la distancia mnima de C definida as:
dC = min { d(ai,aj) / ai,aj C; ij }
Ejemplo:Sea C={a1,a2,a3,a4}={000,011,101,110}
dC = min { d(ai,aj) / ai,aj C; ij }
= min {d(a1,a2), d(a1,a3), d(a1,a4), d(a2,a3), d(a2,a4), d(a3,a4)}
= min { 2,
2,
2,
2,
2,
2
}
=2

115

C detecta t errores si y slo si dC > t


Demostracin:
Supongamos que se ha enviado a* y se ha recibido bj.
Asumamos que hay t errores, es decir, d(a*,bj)=t (t > 0)

(1)

Por la desigualdad del tringulo se cumple que:


aiC-{a*} d(a*,bj) + d(bj,ai) d(a*,ai)
d(bj,ai) d(a*,ai) - d(a*,bj)
Luego,
aiC-{a*}

(2)

Para que el receptor detecte que bj tiene errores, es suficiente que no coincida con ninguna
palabra cdigo. Es decir, que:
i) aiC-{a*} d(ai,bj)>0, o equivalentemente, aiC-{a*} d(bj,ai) > 0 (3)
ii) Ya se sabe, por (1), que d(a*,bj)>0.
Para asegurar (3) debemos tener -por (2)- que:
aiC-{a*} d(a*,ai) - d(a*,bj) > 0
Es decir,
aiC-{a*} d(a*,ai)
> d(a*,bj)
Que por (1) es aiC-{a*} d(a*,ai) > t
Lo cual es cierto si y slo si dC > t. Que es lo que queramos demostrar.
Dado que dC > t puede escribirse como dC t+1 y tambin como dC-1 t, es usual
utilizar este resultado para determinar cuntos errores puede detectar el cdigo C, siendo
la respuesta dC-1 errores.
C corrige t errores si y slo si dC > 2t
Demostracin:
Supongamos que se ha enviado a* y se ha recibido bj.
Asumamos que hay t errores, es decir, d(a*,bj)=t

(i)

Por la desigualdad del tringulo se cumple que:


aiC-{a*} d(a*,bj) + d(bj,ai) d(a*,ai)
Luego,
aiC-{a*}
d(bj,ai) d(a*,ai) - d(a*,bj)

(ii)

Para que el receptor detecte que bj tiene errores y asegurar que la regla de mxima
vecindad nos dirige hacia a* (y as corregir lo errado), es suficiente que:
aiC-{a*} d(ai,bj) > d(a*,bj)
(iii)
Para asegurar (iii) debemos tener -por (ii)- que:
aiC-{a*} d(a*,ai) - d(a*,bj) > d(a*,bj)
Es decir,
aiC-{a*} d(a*,ai) > d(a*,bj) + d(a*,bj)
Es decir,
aiC-{a*} d(a*,ai) > 2d(a*,bj)
Que por (i) es aiC-{a*} d(a*,ai) > 2t
Lo cual es cierto si y slo si dC > 2t. Que es lo que queramos demostrar.
Dado que dC > 2t puede escribirse como dC 2t+1 y tambin como [dC-1]/2 t, es usual
utilizar este resultado para determinar cuntos errores puede corregir el cdigo C, siendo
la respuesta [dC-1]/2 errores.

116

Estandarizacin de las entradas.- Ejemplo:


Sea una fuente con alfabeto S={s1,s2} y cdigo asociado C={0,10,11}. Ntese que dicho
cdigo de Huffman no es bloque.
Al mensaje s1s1s1s3s1s3 le corresponde la secuencia 00011011, que puede separarse en
bloques de dos smbolos as: 00 01 10 11.
A partir de ahora, adoptaremos este modo de proceder de manera que, independientemente
de la fuente y de los mensajes a emitirse, segmentaremos la entrada al canal en bloques de
longitud k. De esta manera -an cuando partamos de un BSC- consideraremos que las preentradas a'i al canal son todas las 2k secuencias de smbolos de longitud k.
Dado que estas secuencias no corresponden necesariamente a los smbolos de la fuente,
podemos adems asumir que son equiprobables.
Si bien estas secuencias no corresponden necesariamente a los smbolos de la fuente, an
as las llamaremos mensajes, pues son estas secuencias las que contienen los mensaje que
se quieren transmitir.
Ntese que hemos utilizado a'i (a prima sub i). En efecto, hasta ahora slo hemos
agrupado en bloques de longitud k, las secuencias correspondientes a los mensajes a
transmitirse. Falta an la imprescindible tarea de extender la longitud de estos bloques,
aadiendo bits de redundancia con el propsito de que estas entradas, as manipuladas, nos
permitan eludir el ruido.
Finalmente las entradas ai, que son las que realmente sern transmitidas, son bloques de
longitud N (con N>k).
Los N-k bits de redundancia (aadidos a los k bits que constituyen los mensajes a
transmitirse) deben construirse de tal manera que siendo los menos posibles puedan
corregir (o detectar) la mayor cantidad de errores.
Tal como se ha planteado la segmentacin -en bloques de longitud k-, asumiremos que
hay M=2k bloques a'i [eventualmente cada uno con probabilidad p(a'i)=1/2k].
Cada una de estos M mensajes (de longitud k) debe completarse con (r=N-k) bits de
redundancia, para conformar una palabra cdigo ai (de longitud N) del cdigo canal en
construccin [eventualmente cada una con probabilidad p(ai)=1/2k, esto es equiprobables].
Queda claro que las salidas bj tendrn longitud N tambin. De las 2N secuencias posibles,
slo M=2k corresponden a palabras cdigo enviadas (las reuniremos en el conjunto BM).
Las otras no son palabras cdigo (las reuniremos en el conjunto B'M). Ser la regla de
decisin que adoptemos -por ejemplo a travs del principio de la mnima distancia de
Hamming- la que, en el mejor de los casos, determine cules bits estn errados y los
corrija.
Ejemplo: Independientemente de la fuente original y su cdigo asociado (de Huffman por
ejemplo, el cual no es necesariamente bloque), cualquier segmentacin de los mensajes
originales trabajar con las siguientes pre-entradas
A'={a'1,a'2,a'3,a'4}={00,01,10,11} de longitud k=2.
A partir de ellas, construiremos un cdigo con palabras de longitud N=4.
Los r=N-k=2 bits de redundancia se aaden como sigue (los hemos subrayado):
cuya dC = 2
C={0000,0101,1010,1111}
En realidad no es necesario que los bits de redundancia vayan al final (juntos).

117

El problema central ahora es: a partir de las pre-entradas a'i de longitud k, dnde y cules r
bits de redundancia aadir al construir las palabras del cdigo canal; y qu valor
exactamente tendr r (, sabiendo que r=N-k, qu valor le asignaremos a N).
Obviamente, debemos explicitar una regla de decisin (a travs del principio de la mnima
distancia de Hamming por ejemplo). Anteriores resultados, nos permiten verificar cuntos
errores puede corregir nuestro cdigo canal.
Adicionalmente presentaremos el siguiente resultado:
La probabilidad de decodificacin errnea siguiendo el principio de mnima distancia de
Hamming en un cdigo bloque C de longitud N, puede calcularse fcilmente si tenemos la
distancia mnima de C (que es como si tuviramos t, y viceversa). Se supone que hay un
BSC como base cuya probabilidad de error es q.
t N
Si C corrige t errores Entonces PE(C) = 1 - qtpN-t
i =0 i
Demostracin:
La probabilidad de que t bits estn errados en una palabra es qt (y que los otros N-t sean
correctos es pN-t). Pero estos t bits errados pueden estar en cualquier lugar de las N
posiciones posibles, as pues, la probabilidad de que t bits estn errados en una palabra
debe considerar estas combinaciones de N tomados de a t. As, la probabilidad de que t
N
bits estn errados en una palabra de longitud N es: qtpN-t
t
Como C corrige t errores, en realidad puede corregir hasta t errores, de manera que la
probabilidad de que la decodificacin sea correcta es la probabilidad de que hayan 0
errores (que no hay necesidad de corregir), que haya 1 error (que C corrige), que hayan
t N
dos errores (que C corrige), y as hasta t errores, es decir: Pc(C) = qtpN-t
i =0 i
t N
Luego, la probabilidad de decodificacin errnea es: PE(C) = 1 - Pc(C) = 1 - qtpN-t
i =0 i

Empezaremos a obtener algunos resultados previos con miras a determinar el valor de r:


V(N,t).- Denotaremos con V(N,t) al nmero de palabras de longitud N cuya distancia a la
palabra cdigo a* es menor o igual que t. Es decir, cuya distancia con a* es t, t-1, ... , 0.
Probaremos que:
t N
V(N,t) =
i =0 i
Demostracin:
Recordemos que las palabras en consideracin tienen longitud N.
Por definicin, d(a*,bj) = i si y slo si bj difiere de a* en i posiciones.
Sea bj (BM B'M), es decir, bj es cualquiera de las 2N palabras posibles de longitud N.
De ellas:
Cuntas difieren de a* en i=0 posiciones ?
N
Respuesta: 1= [slo la misma palabra]
0

118

Cuntas difieren de a* en i=1 posicin ?


Respuesta: La posicin que difiere puede ser la primera, la segunda, etc.
N
N=
1
Cuntas difieren de a* en i=2 posiciones ?
Respuesta: La dos posiciones puede ser las dos primeras, las dos segundas, ..., las dos
ltimas; pero tambin cualquier otra combinacin como la primera y la tercera, la segunda
y la ltima, etc. Es decir, cualquier combinacin de N tomados de a 2, sin repeticin, es
decir:
N
N=
2
Etctera.
En general, como las i posiciones pueden suceder en cualquiera de los N posibles lugares,
N
es claro que hay: palabras bj que difieren i posiciones de a*.
i
t N
Luego, V(N,t) = .
i =0 i

Lmite de Hamming.- Si el cdigo canal C de longitud N corrige t errores Entonces el


nmero M de palabras cdigo de C debe ser tal que M 2N / V(N,t).
Demostracin:
1) Como C corrige t errores, sabemos que dC > 2t, es decir, para cualesquier dos palabras
cdigo ai,aj se tiene que d(ai,aj)>2t. Ello significa que no hay una palabra bj que diste
t -o menos- de dos palabras cdigo (o tres, o ms). Pues en ese caso, dichas palabras
cdigo estaran muy cerca entre s, contradiciendo que d(ai,aj)>2t.
Otra forma de decirlo es que ninguna palabra bj dista t (o menos) de ms de una palabra
cdigo.
2) Sabemos que el nmero de palabras de longitud N, que disten t -o menos- de la palabra
cdigo a* es: V(N,t) (esto es para una palabra cdigo, en particular a*).
Consideremos ahora todas las palabras cdigo ai.
El nmero de palabras de longitud N, cuya distancia a cualquiera de las M=2k palabras
cdigo ai sea menor o igual que t es: MV(N,t).
3) Slo hay 2N palabras posibles de longitud N.
Supongamos que MV(N,t) > 2N.
La nica forma de que ello suceda es que, en el producto MV(N,t), algunas o varias
palabras de longitud N se cuenten ms de una vez. Y la nica forma de que ello suceda,
es cuando dichas palabras disten t (o menos) de ms de una palabra cdigo.
Lo que contradice 1). As pues el supuesto es errneo.
De manera que, para garantizar que ninguna palabra est a una distancia t -o menos- de
ms de una palabra cdigo, debe suceder que: MV(N,t) 2N
Que es precisamente lo que queramos probar
Como M=2k, podemos reescribir MV(N,t) 2N as: 2kV(N,t) 2N
Y aplicando logaritmos: k + log2[V(N,t)] N
Es decir: log2[V(N,t)] N-k
Es decir, log2[V(N,t)] r

119

As, los r=N-k bits de redundancia que deben aadirse son, por lo menos: log2[V(N,t)].
Si nos fijamos el enunciado del lmite de Hamming, es claro que esta es una condicin
necesaria (para la existencia y construccin de un cdigo C que corrija t errores), no
suficiente.
Cdigo maximal.- El cdigo canal C de longitud N y distancia mnima dC se dice
maximal si tiene el mayor nmero de palabras cdigo. Es decir, si no existe otro cdigo de
longitud N con la misma distancia mnima que tenga ms palabras cdigo.
Ejemplo:
Sea N=3 y trabajemos con el alfabeto X={0,1}
Todas las palabras de longitud N=3 posibles son 2N:
(BM B'M) = {000, 001, 010, 011, 100, 101, 110, 111}
Sea el cdigo canal C=BM=B2={a1,a2}={000,011}. Es claro que dC=2
Pero C no es maximal, pues existe otro cdigo C'={000, 011, 101, 110}, con dC'=2
tambin y que tiene ms palabras cdigo.
Considerando C, ntese que dada la palabra b=101, d(b,a1)=d(b,a2)=2.
As pues, para b no hay (por lo menos) una palabra cdigo tal que d(ai,b)dC-1. Es decir,
existe b tal que para todas las palabras cdigo ai se cumple que d(ai,b)>dC-1.
El cdigo canal C de longitud N es maximal si y slo si b ai d(ai,b) dC-1
Demostracin:
=>) Si el cdigo canal C de longitud N es maximal entonces b ai d(ai,b) dC-1.
En efecto, supongamos que b ai d(ai,b) > dC-1. Entonces, como b no es una
palabra cdigo de C (porque en ese caso ai d(ai,b)=0), podemos construir
C' = C {b} que tiene ms palabras cdigo, con la misma mnima distancia dC.
As C no sera maximal. Contradiccin que prueba el enunciado.
<=) Si b ai d(ai,b) dC-1 entonces el cdigo canal C de longitud N es maximal.
En efecto, supongamos que C no es maximal.
Entonces existe otro cdigo C' de longitud N con ms palabras cdigo. Por ejemplo,
C' = C {b} con dC'=dC.
Siguiendo con el supuesto y sus consecuencias: no hay ninguna palabra ai en C tal
que d(ai,b)dC-1, es decir tal que d(ai,b)<dC, pues en ese caso dC'<dC.
Es decir, ai d(ai,b)>dC-1 (es lo mismo ai d(ai,b)dC). Que tambin se puede
anotar como b ai d(ai,b)>dC-1. Que es exactamente la negacin del supuesto del
enunciado y lo contradice. Tal contradiccin muestra que C es maximal.
Recordemos que los mensajes posibles tienen longitud k, a los que se aaden smbolos de
redundancia hasta lograr palabras cdigo de longitud N. De las secuencias posibles de
salida bj, slo M de ellas corresponden a mensajes (codificados).
Asumiremos que dichas M palabras cdigo (posibles de enviar) son equiprobables.
Como sabemos la velocidad del cdigo se define as: R=Hr(S)/N.
Bajo el supuesto de equiprobabilidad la entropa queda como Hr(S) = logrM. De manera
que para enviar logrM r-its de informacin utilizamos una secuencia de N smbolos, es
decir, R = (logrM / N).
Es claro que R es mayor cuanto mayor es M. En particular, los cdigos maximales
alcanzan la mxima velocidad posible (para la misma distancia mnima).

120

Por otro lado -en el caso binario-, de las 2N secuencias posibles de salida bj, slo M=2k
corresponden a palabras cdigo enviadas. Tales salidas se asocian a una palabra cdigo a
travs de una regla de decisin cuya probabilidad de error es:
s

j=1

j=1

PE = 1 - p(a*/bj)p(bj) = (por Bayes) = 1 - p(bj/a*)p(a*)


Misma que se minimiza haciendo mxima la sumatoria. Pero precisamente ese es el
principio del mnimo error:
Se elige el a*{a1,...,ar} tal que ai p(bj/a*)p(a*) p(bj/ai)p(ai)
Bajo el supuesto de la equiprobabilidad de las M=2k secuencias el principio del mnimo
error es igual al principio de maxima posibilidad que es igual al principio de mnima
distancia.
Es obvio que un cdigo con muy pocas palabras cdigo puede construirse eligindolas
muy distantes entre s (garantizando una baja probabilidad de error).
Adems H2(S)=log22k=k bits y R=k/N. De manera que para una mayor velocidad es
preciso incluir muy pocos bits de redundancia ("incrementando" el valor de k).
La clave est pues en incrementar el valor de R (haciendo el cdigo maximal, con todas
las palabras cdigo posibles e introduciendo pocos bits de redundancia).
Pero tambin debe tomarse en cuenta la capacidad C del canal (de manera que R<C) y
minimizando la probabilidad de error (por ejemplo eligiendo la menor cantidad de
palabras cdigo muy distantes entre s quizs con un N grande-).
Cdigo perfecto.- Partamos de un ejemplo. Sea k=1 y sea C={a1,a2}={0000,1111}.
Es decir, en el cdigo de repeticin se han aadido 3 bits de redundancia para tener N=4.
Es claro que dC=4, luego C puede corregir hasta t = 1 error.
Por ejemplo si b=0010, como 1=d(a1,b)<d(a2,b)=3 y no hay ms palabras cdigo, se
corrige b y se decide que se ha enviado a1.
Sin embargo si b=0110, d(a1,b)=d(a2,b)=2. Es decir, el cdigo C no sabe cmo corregir
algunas secuencias de salida, slo puede detectar la presencia de errores.
Adems de tener la mayor cantidad de palabras, puede ser deseable que un cdigo sea
construido de tal forma que corrija todos los(hasta t) errores, es decir, que todas las
secuencias de salida sean: o bien una palabra cdigo, o bien una palabra cdigo con hasta t
bits errados. Como queremos que C corrija hasta t errores ninguna salida b estar igual de
distante de ms de una palabra cdigo (como en el ejemplo). Es decir, queremos un cdigo
que sepa qu hacer exactamente con cada salida.
El cdigo canal C de longitud N que corrige hasta t errores se dice perfecto si es maximal
y b !ai d(ai,b) t (! se lee existe un nico).
Otra forma de decirlo es que C es perfecto cuando (adems de ser maximal) todas las
palabras (que salen del canal) que tengan hasta t errores son corregidas.
Recordemos (lmite de Hamming) que el nmero de palabras de longitud N, cuya distancia
a cualquiera de las M=2k palabras cdigo ai sea menor o igual que t es: MV(N,t). Y que
como slo hay 2N secuencias posibles resulta que: MV(N,t) 2N. Pero entonces, la
definicin de cdigo perfecto implica (que se alcanza) la igualdad en el lmite de
Hamming (en 2N no hay salidas b tales que no sepamos qu hacer con ellas).
De hecho hay quienes definen un cdigo perfecto como aquel que satisface la igualdad en
el lmite de Hamming.

121

Lmite de Gilbert-Varshamov.Si el cdigo canal C de longitud N es maximal y tiene distancia mnima dC Entonces el
nmero M de palabras cdigo de C debe ser tal que M 2N / V(N,dC-1).
Demostracin:
1) Sabemos que si C es maximal, para todas las palabras b de longitud N, hay por lo
menos una palabra cdigo a* tal que d(b,a*)dC-1
2) Como C es maximal, se sabe que cada palabra de longitud N dista dC-1 (o menos) de
por lo menos una palabra cdigo.
Cuntas palabras de longitud N que disten dC-1 (o menos) de la palabra cdigo a* hay?
Ya se sabe que hay V(N,dC-1).
Consideremos ahora todas las palabras cdigo ai.
El nmero de palabras de longitud N, cuya distancia a cualquiera de las M=2k palabras
cdigo ai sea menor o igual que dC-1 es: MV(N,dC-1).
3) Slo hay 2N palabras posibles de longitud N.
Supongamos que MV(N,dC-1) < 2N.
La nica forma de que ello suceda es que hayan palabras de longitud N que no se
incluyan en la cuenta MV(N,dC-1). Es decir, que existan palabras de longitud N, por
ejemplo b, tales que d(b,ai) > dC-1.
Lo que contradice 1). As pues el supuesto es errneo. Luego, M 2N / V(N,dC-1)
Que es precisamente lo que queramos probar
Cuando C corrige t errores, sabemos que dC > 2t, es decir, dC 2t+1, que puede escribirse
como dC-1 2t. Luego es lcito reescribir el enunciado as:
Si el cdigo canal C de longitud N es maximal y corrige t errores Entonces el nmero M
de palabras cdigo de C debe ser tal que M 2N / V(N,2t).
Como M=2k, podemos reescribir MV(N,2t) 2N as: 2kV(N,t) 2N
Y aplicando logaritmos: k + log2[V(N,t)] N
Es decir: log2[V(N,t)] N-k
Es decir, log2[V(N,t)] r
Es decir, r log2[V(N,2t)].
As, los r=N-k bits de redundancia que deben aadirse son, a lo ms: log2[V(N,2t)].
Si nos fijamos el enunciado del lmite de Gilbert-Varshamov, es claro que esta es una
condicin necesaria (para la existencia y construccin de un cdigo C que corrija t
errores), no suficiente.
Juntando ambos lmites (y sabiendo que son condiciones necesarias):
Si tenemos entradas a'i de longitud k y queremos corregir t bits.
Aadiendo r bits de redundancia, que satisfagan:
log2[V(N,t)] r log2[V(N,2t)]
Es posible que exista un cdigo C que efecte tal correccin.
Con esto como ayuda, podemos jugar con N>k.
Ejemplo (del libro de Togneri):
Se desea construir un cdigo canal C para pre-entradas a'i de longitud k=2.
Adems se desea que C sea capaz de corregir hasta t=1 errores.
Cantos r bits de redundancia ser necesario aadir ?
Es claro que: r=N-k=N-2, t=1, 2t=2.

122

La siguiente tabla nos permite responder en base a los lmites


log2[V(N,t)] r log2[V(N,2t)].

N
3
4
5
6
7

log2[V(N,1)]
2
2.32192809
2.5849625
2.80735492
3

r
1
2
3
4
5

log2[V(N,2)]
2.80735492
3.45943162
4
4.45943162
4.857981

Lo que muestra que es necesario aadir entre 3 y 4 bits de redundancia, para intentar
construir un cdigo C que corrija un error (es posible que exista, como que no).
Hemos indicado cuntos bits puede detectar o corregir un cdigo canal C.
Tambin hemos indicado cuntos bits de redundancia es necesario aadir, para empezar la
bsqueda (construccin) de un cdigo canal C con esas caractersticas.
Esta no es una tarea fcil. A manera de ejemplo presentaremos algunos cdigos que
pueden hacerlo y sus modos de construccin.

123

ALGUNOS EJEMPLOS DE CDIGOS CANAL


Debe recordarse en todo momento que es posible suponer un BSC de base (con
probabilidad de acierto p y probabilidad de error q). Sobre el cual se piensa transmitir -a
travs del agrupamiento- secuencias de k smbolos (estas son las 2k pre-entradas a'i). A las
que se aaden r bits de redundancia para construir las entradas ai al canal y que
constituyen las 2k palabras cdigo del cdigo canal de longitud N (de entre todas las
posibles 2N palabras).
Tambin debe recordarse que la distancia mnima del cdigo canal C permite colegir
cuntos errores puede detectar y/o corregir.
Finalmente, aunque el cdigo canal C est pensado a eludir el ruido, es claro que
-dependiendo de q y de lo azaroso del ruido- an es posible que cometamos errores, es
decir, existe una probabilidad PE de decodificacin errnea. Ello es fcil de imaginar
cuando el ruido acta de tal manera que invierte los bits de la entrada de modo que los
convierte en otra palabra cdigo lcita pero diferente de la enviada, en este caso el receptor
-utilizando el principio de decodificacin de mnima distancia de Hamming que es
equivalente al de mxima posibilidad- no lo advierte .
Cdigos de Paridad.Cdigos de paridad impar: Que es cuando se aade un bit de redundancia (de valor 0 o 1)
de manera que el nmero de unos de cada palabra cdigo sea impar.
Ejemplo:
Pre-entradas con k=2: 00,01,10,11
Cdigo de paridad impar con r=1 bit de redundancia: C={001,010,100,111}
Hemos subrayado el bit de redundancia aadido segn el esquema.
Cdigos de paridad par: Que es cuando se aade un bit de redundancia (de valor 0 o 1) de
manera que el nmero de unos de cada palabra cdigo sea par.
Ejemplo:
Pre-entradas con k=2: 00,01,10,11
Cdigo de paridad par con r=1 bit de redundancia: C={000,011,101,110}
Hemos subrayado el bit de redundancia aadido segn el esquema. Note que dC=2.
Los cdigos de paridad par (otro tanto sucede con los de paridad impar) slo pueden
detectar un error y no corrigen ninguno. Ello se desprende del siguiente resultado.
Los cdigos de paridad par tienen distancia mnima dC=2
Demostracin:
1) Sea C un cdigo de paridad par, entonces dC>1.
En efecto, supongamos -por reduccin al absurdo- que dC1.
La nica forma de que dC=0 es que C sea Singular lo que no consideraremos (tampoco
consideraremos una sla palabra cdigo).
De manera que suponer que dC1 es suponer que hay dos palabras cdigo aiC y ajC
tales que d(ai,aj)=1. Es decir, ai y aj difieren en una posicin. Ello implica -siendo m el
nmero de unos de ai-, que el nmero de unos de aj es m+1 m-1.
Si m es impar, entonces el nmero de unos de ai es impar, lo que -por el esquema de los
cdigos de paridad par- nos lleva a que aiC. Lo que contradice aiC.
Si m es par, entonces m+1 ( m-1) es impar, es decir, el nmero de unos de aj no va con
el esquema y ajC. Lo que contradice ajC.
Estas contradicciones prueban el enunciado.

124

2) Sea C un cdigo de paridad par, entonces existen dos palabras cdigo ai y aj tales que
d(ai,aj)=2.
En efecto. Ya indicamos que las pre-entradas son todas las 2k secuencias de longitud k.
As pues, estas pre-entradas se suponen distintas, es decir, d(a'i,a'j)>0. Ms an, existen
dos pre-entradas a'i,a'j (por ejemplo dos que son consecutivas, si las pensamos en orden
lexicogrfico) tales que d(a'i,a'j)=1, es decir, que difieren en un slo smbolo.
Si el nmero de unos de a'i es m entonces el nmero de unos de a'j es m+1 m-1.
Cuando m es par, entonces -por el esquema de paridad par- ai=a'i0 y aj=a'j1.
Cuando m es impar, entonces -por el mismo esquema- ai=a'i1 y aj=a'j0.
En cualquier caso se cumple que d(ai,aj)=d(a'i,a'j)+d(0,1)=1+1=2.
Lo que prueba el enunciado.
Los incisos 1) y 2) demuestran lo que desebamos.
En la pgina 116 se demuestra que un cdigo canal con distancia mnima dC puede
detectar dC-1 errores (en el caso de cdigos de paridad: 1) y corregir (dC-1)/2 errores (en
el caso de cdigos de paridad: 0.5, es decir, ninguno).
Cdigos de Hamming (primera presentacin para k=4).- Sea k=4, es decir, las 2k preentradas son 0000, 0001, 0010, etc.
Para construir un cdigo canal de Hamming con pre-entradas de longitud k se aaden r bits
de redundancia tal que: 2r k + r +1.
En nuestro caso 2r 4 + r +1, es decir, 2r 5 + r.
r
2r 5 + r
1
26
2
47
3
88
Luego, aadiremos r=3 bits de redundancia.
La exigencia 2r k + r +1, no es sino el lmite de Hamming ya visto, con la intencin de
obtener un cdigo que corrija t=1 error. En efecto, recordemos que dicho lmite es:
log2[V(N,t)] r
-que aplicando la inversa del logaritmos se convierte en-:
-que con t=1 se convierte en-:
V(N,t) 2r
V(N,1) 2r
-que expandiendo V(N,1) se convierte en-:
1 N
-que expandiendo la sumatoria se convierte en-:
i 2r
i =0
N + 1 2r
-que con N=k+r se convierte en-:
r
k+r+12
-que dando la vuelta se convierte en-:
2r k + r +1
-que es la condicin presentada-.

125

Los r bits de redundancia no van necesariamente al final de las pre-entradas, sino como
bits de comprobacin de paridad que ocupan las posiciones que son potencias exactas de 2
(1, 2, 4, etctera).
Una presentacin muy popular para nuestro ejemplo es as:
Sean

a'1 a'2 a'3 a'4


p4 p3 p2 p1

los 4 bits de las pre-entradas. Los renombraremos as:

Denotaremos los r=3 bits de paridad as: c3c2c1 mismos que ocupan las posiciones 1, 2 y
4.
As, las entradas al canal, de longitud N = k+r = 4+3 = 7, las podemos representar as:
siete bits de una entrada al canal:
a 7 a6 a5 a4 a3 a2 a1
correspondientes a:
p4 p3 p2 c3 p1 c2 c1
Para asignar valores a c3, c2 y c1 se apela a una tabla as:
nmeros del 1 al 7 nmeros del 1 al 7
en decimal
en binario
corresponden a
c3 c2 c1
1
0 0 1
2
0 1 0
3
0 1 1
4
1 0 0
5
1 0 1
6
1 1 0
7
1 1 1
Fjese las columnas que corresponden a c3, c2 y c1 (en particular las posiciones con 1). De
ah obtenemos:
c1 debe tomar en cuenta los bits a7 a5 a3 a1
c2 debe tomar en cuenta los bits a7 a6 a3 a2
c3 debe tomar en cuenta los bits a7 a6 a5 a4
Obviamente a1 y c1 (a2 y c2; a4 y c3) son el mismo bit.
Luego, la construccin del cdigo (a travs de la paridad par y considerando que dicha
paridad puede operacionalizarse con la operacin XOR -denotada por -) es bajo el
siguiente esquema:
c3 = a7 a6 a5
c2 = a7 a6 a3
c1 = a7 a5 a3
Por ejemplo, para la pre-entrada: p4 p3 p2 p1 = 0110
c3 = a7 a6 a5 = 0 1 1 = 0
c2 = a7 a6 a3 = 0 1 0 = 1
c1 = a7 a5 a3 = 0 1 0 = 1
Luego, como c3 c2 c1 = 011, la palabra cdigo correspondiente es: 0110011
Con estas consideraciones, el cdigo de Hamming para nuestro ejemplo es:

126

pre-entradas
0000
0001
0010
0011
0100
0101
0110
0111

cdigo de
Hamming
C
0000000
0000111
0011001
0011110
0101010
0101101
0110011
0110100

pre-entradas
1000
1001
1010
1011
1100
1101
1110
1111

cdigo de
Hamming
C
1001011
1001100
1010010
1010101
1100001
1100110
1111000
1111111

Cuya distancia mnima es dC=3.


As, para enviar el mensaje 0110 enviamos su palabra cdigo asociada 0110011.
En la decodificacin, con la salida b7b6b5b4b3b2b1 se calcula la secuencia c3c2c1 as:
c3 = b7 b6 b5 b4
c2 = b7 b6 b3 b2
c1 = b7 b5 b3 b1
Si c3c2c1 = 000, entonces la salida no tiene errores.
En otro caso, la secuencia c3c2c1 denota -en binario- la posicin del bit errado.
Ejemplo: Sea la salida b7b6b5b4b3b2b1=0110010
c3 = b7 b6 b5 b4 = 0 1 1 0 = 0
c2 = b7 b6 b3 b2 = 0 1 0 1 = 0
c1 = b7 b5 b3 b1 = 0 1 0 0 = 1
La secuencia c3c2c1=001, por tanto denota que hay un error en el bit b1.
Luego, la palabra corregida es 0110011, de la cual extraemos las posiciones p4p3p2p1 que
no son bits de paridad, segn el esquema:
siete bits de una salida del canal:
b7 b6 b5 b4 b3 b2 b1
correspondientes a:
p4 p3 p2 c3 p1 c2 c1
Luego, el mensaje enviado es: 0110.
En el siguiente captulo incluiremos una segunda presentacin -ms genrica- de los
cdigos de Hamming, as como sus propiedades.
Cdigos de Hadamard.- Empecemos definiendo las matrices de Hadamard.
Una matriz HN x N se llama matriz de Hadamard de orden N cuando:
a) Sus elementos son H(i,j) = 1 o H(i,j) = -1
b) Sus (distintas) filas son ortogonales, es decir, ij rirj = 0
[ri y rj son filas de H]
(la ortogonalidad se define y ampla en el Anexo 3)
Ejemplo:
1 1
H=
H(1,1) = H(1,2) = H(2,1) = 1
H(2,2) = -1
1 1
r1 = [1 1]
r2 = [1 -1]
r1 r2 = [1 1][1 -1] = (1 1) + (1 -1) = (1) + (-1) = 0
Luego H, es una matriz de Hadamard de orden N=2.
127

A partir de una matriz de Hadamard de orden N se construye un cdigo binario -llamado


cdigo de Hadamard- con 2N palabras cdigo (de longitud N) as:
i) Cambiamos los valores -1 por 0.
ii) Cada fila wi es una palabra cdigo.
iii) Invertimos los bits de wi para obtener una nueva palabra cdigo, wi = wi.
Ejemplo:
Para la matriz H de orden n=2 de arriba.
1 1
i)

1 0
ii) {11, 10}
iii) {00, 01}
Finalmente obtenemos el cdigo: C = {11, 10, 00, 01}
Un cdigo C de Hadamard tiene distancia mnima dC=N/2
Demostracin:
1) Compararemos dos palabras cdigo que resulten del paso iii, es decir, de la inversin de
bits. Consideremos la fila i de la matriz. A partir de los incisos i) y ii) es obvio que
i d(wi, wi )=N.
2) Ahora compararemos dos palabras cdigo diferentes (que no resulten del paso iii, es
decir, que no resulten de la inversin de bits).
Sabemos que, en la matriz H de orden N, ij ri rj = ri1rj1 + ... + riNrjN = 0.
Como cada sumando (o cada producto) es 1 o -1, para que el resultado final sea cero,
deben haber la mitad de sumandos igual a 1 y la otra mitad igual a -1. Es decir, N debe
ser par.
Para que N/2 de los sumandos (o de los productos) sean iguales a -1, estos sumandos (o
productos) deben ser tales que sus dos componentes deben ser diferentes.
[Por ejemplo para que rikrjk = -1, o bien rik = 1 y rjk = -1 o bien rik = -1 y rjk = 1, es decir,
rik y rjk deben ser diferentes].
Eso, en trminos de la distancia de Hamming no es otra cosa que ij d(wi,wj)=N/2.
Lo mismo sucede si comparamos dos palabras cdigo diferentes que resulten de la
inversin, o una palabra cdigo no invertida con otra no invertida pero que provengan
de filas diferentes.
Ello prueba el enunciado.
Una forma de construir matrices de Hadamard de rdenes superiores es siguiendo el
siguiente resultado.
H H
Si H es una matriz de Hadamard de orden N y H' =

H H
Entonces H' es una matriz de Hadamard de orden 2N
Demostracin:
Se supone por hiptesis que las filas de H son ortogonales y que sus elementos son 1 o -1.

128

a) Luego, los elementos de H' tambin son 1 o -1, pues H' se construye a partir H.
b) Sean ri=[ri1 ... riN] y rj=[rj1 ... rjN] dos filas diferentes de H.
Por ser H ortogonal, tenemos que: rirj = ri1rj1 + ... + riNrjN = 0.
Sean r'i y r'j dos filas diferentes de H'. Luego,
b1) r'i r'j = r'i1r'j1 + ... + r'iNr'jN + r'i(N+1)r'j(N+1) + ... + r'i(2N)r'j(2N)
= ri1rj1 + ... + riNrjN +
ri1rj1
+ ... + riNrjN = rirj + rirj = 0 + 0 = 0
Cuando r'i y r'j son dos filas de la parte superior del esquema.
b2) r'i r'j = r'i1r'j1 + ... + r'iNr'jN + [ r'i(N+1)r'j(N+1) + ... + r'i(2N)r'j(2N)]
= ri1rj1 + ... + riNrjN - [ ri1rj1
+ ... + riNrjN ] = rirj - [ rirj] = 0 - [0] = 0
Cuando r'i y r'j son dos filas de la parte inferior del esquema.
b3) r'i r'j = r'i1r'j1 + ... + r'iNr'jN + [ r'i(N+1)r'j(N+1) + ... + r'i(2N)r'j(2N)]
= ri1rj1 + ... + riNrjN + [ ri1 -rj1 + ... + riN -rjN ]
= rirj + [0] = 0 + [0] = 0
Cuando r'i es una fila de la parte superior del esquema y r'j de la parte inferior.
La parte entre braquetas [] es igual a cero pues, en rirj = ri1rj1 + ... + riNrjN = 0,
ya vimos que la mitad de sus sumandos es igual a 1 y la otra mitad igual a 1, por ello
la introduccin del signo negativo [ri1 -rj1 + ... + riN -rjN]= [-(ri1rj1) + ... + -(riNrjN)]
sigue conservando el hecho de que la mitad de sus sumandos sea igual a -1 y la otra
mitad igual a 1.
Ntese que en los cdigos de Hadamard se considera la longitud N del cdigo C (que es el
orden de la matriz H), sin entrar en consideraciones sobre la longitud k de las pre-entradas,
ni sobre el nmero de bits de redundancia.
Los lmites de Hamming y de Gilbert-Varshamov pueden hacer usual este tratamiento: es
decir, construir cdigos canal considerando bsicamente la longitud N (encapsulando los
valores de k y r).
Ms an los cdigos de Hamming y de Hadamard son ejemplos de lo que se denomina
cdigos lineales, materia del siguiente captulo.

129

CDIGOS LINEALES
En otro captulo hemos hablado de la estandarizacin de las entradas a un canal:
considerando palabras cdigo de longitud fija y la construccin de un cdigo canal
(bloque) para ellas.
Como hacamos entonces, prescindiremos de la conexin con una Fuente-S y nos
centraremos en el estudio de los cdigos canal, en particular de una clase de ellos llamados
cdigos lineales.
De hecho, hemos flexibilizado ms nuestro enfoque considerando maneras de construir
cdigos canal con una longitud de bloque predeterminada (por ejemplo los cdigos de
Hadamard), sin un cdigo de origen dado.
Estamos pues interesados, no slo en la definicin de un cdigo lineal (para ver si un
conjunto de palabras cdigo la satisface), sino en establecer sus propiedades y describir
formas de construir cdigos lineales con ciertas caractersticas.
En el Anexo 3 se describe la definicin de un espacio lineal junto a algunos tpicos de
teora de nmeros y lgebra lineal que deben tenerse en mente (su lectura previa es
obligatoria y se considera un recordatorio de material que ya se conoce).
Si para el espacio lineal (V, F, , +, , ) nos tomamos las licencias de notacin
siguientes (como es comn hacer):
Escribir V = 2N no como vectores sino como secuencias de smbolos en { 0, 1 } , es decir,
sin comas y sin parntesis.
Utilizar el mismo smbolo '+' para las operaciones + y .
Omitir los smbolos y , o bien utilizar para ellos el mismo smbolo .
Hecho esto, podemos decir de manera libre que estamos trabajando con el espacio lineal
2N = { w1, , wm }
wi es una secuencia de N smbolos; m=2N
w1=00; etc.
Es decir, cuando los vectores se asocian a palabras cdigo (secuencias de N smbolos), la
operacin + para palabras cdigo es la suma elemento a elemento (y esta es la suma
boolena o la suma mdulo 2), la operacin es la multiplicacin boolena o la
multiplicacin mdulo 2, la multiplicacin escalar es 1w=w o bien 0w=00, y
omitimos los smbolos y (o utilizamos para ellos el mismo smbolo ); resulta que 2N
no es otra cosa que un espacio lineal (de palabras cdigo de longitud N).
Cdigo lineal.- Un cdigo lineal C es un subespacio lineal de 2N.
Es decir, bajo las misma licencias de notacin, C 2N es un cdigo lineal cuando
(w + u)C
para u,wC
(bu)S
para uS y bF
Ntese que la condicin (bu)S se simplifica a w=00C, es decir, a que la palabra
cdigo correspondiente a una secuencia de (N) ceros est en C.
Pero esta condicin est subsumida en la primera. En efecto, tomando w=u la condicin es
(u + u)C, y como (u + u)=00, finalmente la condicin en este caso es que w=00C.
Luego, las condiciones formales para que C sea un subespacio lineal de 2N, se resumen
as: Un cdigo bloque C -de longitud N- se dice lineal si la suma de dos palabras cdigo
es otra palabra cdigo. Que puede tomarse tambin como definicin.

130

En adelante utilizaremos el mismo smbolo para las operaciones , (e incluso para la


multiplicacin de matrices y la concatenacin de cadenas) y lo escribiremos slo cuando
aporte claridad.
Ejemplo:
En el Anexo 3 vimos que S={ (0,0,0), (1,0,1), (0,1,1), (1,1,0) } es un subespacio lineal del
espacio lineal 23. Si hacemos C=S y escribimos C con las licencias mencionadas, tenemos
el siguiente cdigo (subespacio) lineal: C = { 000, 101, 011, 110 }.
Sin embargo, tambin podemos determinar si C es lineal o no, verificando que la suma
(mdulo 2, smbolo a smbolo) de dos palabras cdigo cualesquiera sea otra palabra
cdigo. Por ejemplo: 101 + 011 = 110.
Ya dijimos que una consecuencia de la definicin de subespacio lineal, es que la palabra
cdigo correspondiente a una secuencia de (en nuestro ejemplo tres) ceros debe estar en C:
podemos empezar la verificacin ah.
Dado que un cdigo lineal C bloque, de longitud N- es un subespacio lineal de 2N (en
adelante daremos esto por sentado y ya no lo escribiremos), podemos considerar la base de
dicho subespacio lineal as como su dimensin.
Colocando los elementos de una base como filas de una matriz, obtenemos lo que se
denomina la matriz generadora G del cdigo C.
Si el cdigo C es de dimensin k, su matriz generadora G ser una matriz de (kN):
u1
Gk N = ...
donde una base de C es B={u1, , uk}.
uk
Ejemplo:
En el Anexo 3 se muestra que C = { 000, 101, 011, 110 } tiene como base B = {101, 011},
luego la matriz generadora G23 de C es:
1 0 1
G=

0 1 1
C es un cdigo lineal de dimensin 2.
Sea B={u1, , uk} la base de un subespacio lineal C.
Se sabe que gen(B)=C. Es decir, la base de un subespacio lineal, lo genera.
En otros trminos, cada palabra cdigo w de un cdigo lineal C es una combinacin lineal
de los k elementos que estn en una base de C:
w = a1u1 + + akuk = [a1 ak]G
donde ai {0,1}
De este modo se puede especificar un cdigo lineal C de longitud N presentando su matriz
generadora G.
Ejemplo:
1 0 1
El cdigo C de arriba puede especificarse a travs de su matriz generadora: G =

0 1 1
En efecto, el cdigo completo se obtiene como se indic, w=[a1 ak]G:
131

1
[0 0]
0
1
[1 0]
0

0 1
= [0 0 0]
1 1
0 1
= [1 0 1]
1 1

1
[0 1]
0
1
[1 1]
0

0 1
= [0 1 1]
1 1
0 1
= [1 1 0]
1 1

Es decir, C = { 000, 101, 011, 110 }


Considerando el cdigo (canal) C de longitud N, ntese que cuando su dimensin es k,
para obtener las palabras cdigo de C a travs de G, utilizamo todas las palabras de
longitud k (a1ak); podemos ver a estas palabras como el resultado de la codificacin de
una fuente de informacin, es decir, lo que hemos llamado el cdigo de origen que es
bloque de longitud k, al que se aaden r = N- k bits de redundancia(Visto as, el cdigo lineal C de longitud N es el resultado de codificar una vez ms y
aadiendo bits de redundancia- las palabras cdigo a1ak del cdigo de origen de longitud
k; es claro, que no siempre todas estas cadenas a1ak son palabras cdigo del cdigo de
origen, pero eso no dificulta la construccin de C pues siempre es posible ignorarlas).
Peso de una palabra cdigo.- El peso de una palabra cdigo w de longitud N se define as:
peso(w) = d(w,00)
[En trminos de la distancia de Hamming; 00 representa una secuencia de N ceros].
Ntese que el peso(w) no es otra cosa que el nmero de posiciones diferentes de 0, en un
cdigo binario eso no es otra cosa que el nmero de unos.
Recuerde que estamos considerando cdigos binarios bloque (de longitud N); asumimos
tambin que son No Singulares (C 2N), y de ah que son instantneos (y unvocamente
decodificables).
Distancia mnima de un cdigo lineal.Si C es un cdigo lineal Entonces dC = min{ peso(w) / wC, w00}
00 representa una secuencia de N ceros.
Demostracin:
Es claro que d(u,v) = peso(u+v) = peso(w)
donde w=u+v (1)
Luego,
dC = min{ d(u,v) / u,vC; uv}
por definicin
= min{ peso(u+v) / u,vC; uv }
por (1)
= min{ peso(w) / w=u+v; u,vC; uv }
por (1)
= min{ peso(w) / wC, w00}
Pues como C es no singular y uv, resulta que (u+v=)w ser diferente de 00.
Adems como u,vC, es decir, tomamos todos los distintos pares de palabras cdigo, su
suma u+v abarca todas las palabras cdigo w de C.
Ello es evidente tomando v=00 (ya vimos que si C es lineal, la secuencia de ceros debe
estar en el cdigo).
Si colocamos las palabras cdigo de C como filas de una matriz, en el Anexo 3 se muestra
que la determinacin de la matriz generadora G (la base) del cdigo C puede hacerse
hallando la forma escalonada de C, mediante operaciones elementales sobre filas (por
ejemplo con el conocido mtodo de Gauss) y recogiendo slo las filas diferentes de cero.

132

Ejemplo:
Para el cdigo C1 = { 0000, 0001, 0100, 0101 } obtenemos su matriz generadora as:
0 0 0 0
0 1 0 1
0 0 0 1
0 0 0 1

sumando la fila 1 a la 2:
C1 =
permutando las filas 1 y 4 :
0 1 0 0
0 1 0 0

0 1 0 1
0 0 0 0
0 1 0 1
0 1 0 1
0 1 0 0

sumando la fila 2 a la 3 : 0 1 0 0
0 1 0 0
0 0 0 0

0 0 0 0
0 0 0 0
0 1 0 1
Luego, G1 =

0 1 0 0
Aprovechemos este ejemplo para recordar que dada una matriz generadora Gk N se
obtienen todas las palabras cdigo multiplicando vG, donde v=[a1 ak]. As:
0 0 0 1
Para G2 =
su cdigo asociado es C2 = { 0000, 0100, 0001, 0101 }.
0 1 0 0
1 0 0 0
Para G3 =
su cdigo asociado es C3 = { 0000, 0100, 1000, 1100 }.
0 1 0 0
Ntese que los tres cdigos tienen la misma distancia mnima.
Ntese que, salvo el orden de escritura de las palabras cdigo, C1 y C2 son iguales y que
G2 se obtiene de G1 mediante operaciones elementales sobre filas (fila 1 = fila 1 + fila 2).
Ntese que G3 se obtiene de G2 mediante permutacin de columnas (la 1 y la 4) y que las
palabras cdigo de C3 son las palabras cdigo de C2 con los smbolos primero y cuarto
permutados.
Esto nos lleva a preguntarnos cundo dos matrices generadoras G y G generan el mismo
cdigo o cul la relacin entre sus cdigos generados.
Repetimos: En el Anexo 3 se ve que efectuar cambios en una matriz generadora G, a
travs de operaciones elementales sobre filas, devuelve una matriz equivalente G, donde
el espacio de las filas de G es el mismo que el espacio de las filas de G, es decir, RG=RG.
Es decir, las matrices G y G generan el mismo cdigo.
Esto permite obtener otras matrices generadoras para el mismo cdigo a partir de una
dada.
Adems como la dimensin de un (sub)espacio lineal es nica, todas estas matrices
tendrn
igual nmero de filas diferentes de cero, se entiende que linealmente independientes.
Sea G la matriz generadora del cdigo C.
Sea la matriz G que se obtiene de G permutando dos columnas.
Sea C el cdigo generado por G.
Diremos que C es un cdigo equivalente a C.

133

En el Anexo 3 vimos que los espacios lineales C y C difieren slo en el orden de sus
smbolos. As pues C es equivalente a C en el sentido que las palabras cdigo de C son el
resultado de permutar los smbolos de las palabras cdigo de C en exactamente las mismas
posiciones.
Es obvio que C y C tienen la misma distancia mnima.
Por ejemplo los cdigos C2 y C3 de antes son equivalentes.
As pues, la permutacin de columnas preserva todas las propiedades importantes para la
correccin y deteccin de errores entre los cdigos generados por la matriz original y la
matriz resultante (en particular la distancia mnima), por ello consideraremos a dichos
cdigos esencialmente los mismos.
1 0 0 0
Retomemos la matriz generadora G3 =
, donde hemos puesto en negrita la
0 1 0 0
parte ms a la izquierda.
Forma cannica de G.- La matriz generadora Gk N de un cdigo lineal C de dimensin k
est en forma cannica (o sistemtica) si es de la forma:
Gk N = [ Ik k : Ak N-k ]
Ik k es la matriz identidad; Ak N-k es una matriz arbitraria
Diremos que un cdigo lineal C es sistemtico (o est en forma cannica) si su matriz
generadora G est en forma cannica.
Se denomina as porque al construir las palabras cdigo w=[a1 ak]G, como G tiene una
matriz identidad en su parte izquierda, resulta que w=a1akp1pr (con r = N-k). Es decir,
el mensaje original a1ak aparece ntegro a la izquierda y los smbolos p1pr son dgitos
de testeo (bits de paridad) y se calculan as: [p1 pr] = [a1 ak]A.
Dado el cdigo lineal C podemos obtener una matriz generadora G1 escalonando C.
Dada la matriz G1 podemos obtener la matriz generadora G en forma cannica aplicando a
G1 operaciones elementales sobre filas y/o columnas.
Cdigo dual.- Sea C un cdigo lineal. Denotaremos por C y llamaremos cdigo dual de
C al cdigo definido como sigue:
C = { v2N / wv=0, wC }
Es decir, en C estn todos las palabras ortogonales a las palabras cdigo de C.
Sea Gk N la matriz generadora de C. Sabemos que el ncleo de G es el conjunto:
NG = { v2N / GvT = 0 }
donde 0 representa una columna de k ceros
En el Anexo 3 se seala que NG es un subespacio lineal de 2N con dimensin N-k.
Ms an, probaremos que C=NG: Sea C un cdigo lineal con matriz generadora G.
i) Si vC Entonces vNG
Demostracin:
Por definicin de C y NG un enunciado equivalente es:
Si wC wv=0 Entonces GvT = 0
Supongamos que GvT 0
Sean u1, ,uk las filas de G (es decir, los elementos de una base de C). Es evidente que
GvT = [u1v ... ukv]T

134

Luego estamos suponiendo que [u1v ... ukv]T [0 ... 0] T


(*)
Es decir, i 1 i k uiv 0
Por otro lado, es inmediato que ui C, es decir, los elementos de la base estn en C.
Luego, por hiptesis, i 1 i k uiv=0 (**)
La contradiccin entre (*) y (**) muestra que nuestro supuesto es errneo y prueba el
enunciado.
ii) Si vNG Entonces vC
Demostracin:
Por definicin de C y NG un enunciado equivalente es:
Si GvT = 0 Entonces wC wv=0
De manera semejante al anterior inciso, podemos reescribir GvT = 0 as:
[u1v ... ukv]T = [0 ... 0] T
Es decir, i 1 i k uiv=0
(***)
Por otro lado, sea wC, es decir, w=a1u1 akuk (combinacin lineal de la base)
Veamos qu sucede con wv:
wv = (a1u1 akuk)v
obvio
= a1(u1v) ++ ak(ukv)
probado en el Anexo 3
= a10 ++ ak0
por (***)
=0
obvio
Es decir, wv=0. Que es lo que se quera probar.
As pues C es un subespacio lineal, concretamente es el ncleo de G.
Adems, una base cualquiera de C tiene N-k elementos.
Sea H = {h1, ... ,hN-k} una base de C.
Podemos colocar los elementos de la base H como filas de una matriz llamada matriz
generadora de C.
Matriz de (testeo de) paridad.- Sea C un cdigo lineal con matriz generadora Gk N.
Se denomina matriz de (testeo de) paridad de C, a:
H(N- k) N
la matriz generadora de C.
Es claro que las palabras cdigo v=v1v2...vN de C se obtienen as:
v = b1h1 + + bN-khN-k
donde bi {0,1}
= [b1 bN-k]H
Es evidente que los elementos de la base G (las filas de G) estn en C; igual que los
elementos de la base H (las filas de H) estn en C.
Como por definicin de C (y por conmutatividad del producto interno), los elementos de
C y C son ortogonales entre s. Resulta que:
GHT = 0k (N- k)
HGT = 0(N-k) k

donde 0k (N- k) representa una matriz de ceros.


donde 0(N-k) k) representa una matriz de ceros.

Por este motivo, as como H es la matriz de testeo de paridad de G, tambin G es la matriz


de testeo de paridad de H.

135

Obtencin de la matriz de paridad H.- En la pgina 134 vimos que GxT = 0 si y slo si
wC wx=0.
Es decir, NG (C) es el conjunto de todas las soluciones del sistema GxT = 0k 1:
g11 ... g1N
... ... ... [x ... x ]T = [0 ... 0]T
N

1
gk 1 ... gk N
Reescribiendo:
g11.x1 + g12.x2 + + g1N.xN = 0
g21.x1 + g22.x2 + + g2N.xN = 0

gk1.x1 + gk2.x2 + + gkN.xN = 0


En el Anexo 3 se seala que k + dim(NG) = N, luego N > k. Dado que hay ms incgnitas
que ecuaciones se garantiza la existencia de soluciones no triviales. Luego podemos
simplemente tomar N-k linealmente independientes de entre ellas y as obtenemos una
base de C.
Ejemplo:
1 0 1
Sea G =
la matriz generadora de C={ 000, 101, 011, 110 }
0 1 1
El sistema GxT = 0k 1 una vez efectuada la multiplicacin de matrices es:
1.x1 + 0.x2 + 1.x3 = 0
es decir
x1 + x3 = 0
es decir
x1 = -x3
0.x1 + 1.x2 + 1.x3 = 0
x2 + x3 = 0
x2 = -x3
Como en el campo binario el inverso de 0 es 0 y el inverso de 1 es 1. Es decir, el inverso
de xi es xi. Resulta que las soluciones al sistema Gx = 0 son:
x1 = x3
x2 = x3
x3 = x3 (= t)
Luego NG = C = gen(x3[ 1 1 1 ]). Es decir, C = { 000, 111 }
La base buscada es H = [ 1 1 1 ].
Ya vimos que, dado el cdigo lineal C, siempre es posible obtener G en forma cannica.
El siguiente resultado permite obtener H de manera inmediata.
Si Gk N = [ Ik k : Ak N-k ] est en forma cannica
Entonces su matriz de paridad es H = [AT : I(N- k) (N- k) ]
Demostracin:
1) Las filas de la matriz H(N- k) N son linealmente independientes.
0 a11 ... a1(N - k )
u1
1

Sea G = ... = [ Ik k : Ak N-k ] = ...


... ...
...
uk
0
1 ak 1 ... ak (N - k )

136

ak 1 1
0
a11
v1
Luego H = ... = [ AT : I(N- k) (N- k) ] =
...
...
a1(N - k )
vN - k
ak (N - k ) 0
1
Veamos qu sucede con la ecuacin b1v1 ++ bN-kvN-k = 01 N
Puede reescribirse como:
b1[a11 ... ak 1 1 0 ... 0] ++ bN-k[a1(N-k) ... ak (N-k) 0 ... 0 1] = 01 N
Y a su vez distribuyendo bi y realizando la suma vectorial- como:
b1a11 +

...
+ bN-ka1(N-k) = 0
...
b1ak1 +
...
+ bN-kak (N-k) = 0
b11 + b20 + ...
+ bN-k0
=0
b10 + b21 + ...
+ bN-k0
=0
...
b10 +
+ bN-k-10 + bN-k1
=0
Cuya nica solucin es obviamente la trivial.
Es decir; las filas de H son linealmente independientes
2) Las filas de H son ortogonales a las filas de G.
Como Gk N = [ Ik k : Ak N-k ] y H = [AT : I(N- k) (N- k) ], entonces:
GHT
= [ Ik k : Ak N-k ][AT : I(N- k) (N- k) ]T
obvio
T T
(A )
= [ Ik k : Ak N-k ]
I(N- k) (N- k)
operaciones sobre matrices
A
= [ Ik k : Ak N-k ]
operaciones sobre matrices
I(N- k) (N- k)
= [ (Ik k A) + (Ak N-k I(N- k) (N- k))]
= [ A + A]
= 0k (N-k)

operaciones sobre matrices


operaciones sobre matrices
suma -mdulo 2- de matrices

Un razonamiento semejante muestra que HGT = 0(N-k) k, es decir,


Las filas de G son ortogonales a las filas de H.
3) gen(H) = C.
3.1) Toda combinacin lineal de (las filas de) H es ortogonal a las filas de G.
En efecto, una combinacin lineal de H es: [b1 bN-k]H
donde bi {0,1}
T
T
Luego: [b1 bN-k]HG = 01 k pues HG = 0(N-k) k
3.2) Si vgen(H) Entonces vC.
En efecto, sea v=[b1 bN-k]H = [v1v2...vN] una combinacin lineal de H.
g11 ... g1N
Sea G = ... ... ...
gk 1 ... gk N

137

Ya vimos en 3.1 que v es ortogonal a las filas de G:


v1g11 + v2g12 + + vNg1N = 0
v1g21 + v2g22 + + vNg2N = 0
(*)

v1gk1 + v2gk2 + + vNgkN = 0


Sea wC, es decir, w es una combinacin lineal (de las filas) de G:
w = [a1ak]G
= [a1g11 + a2g21 ++ akgk1 a1g12 + a2g22 ++ akgk2 a1g1N + a2g2N ++ akgkN]
(donde hemos aadido negrita slo para diferenciar los elementos)
Veamos qu sucede con el producto interno vw:
vw
= [v1v2...vN]

[a1g11 + a2g21 + + akgk1 a1g12 + a2g22 + + akgk2 a1g1N + a2g2N + + akgkN]


=

v1(a1g11 + a2g21 + + akgk1)


+ v2(a1g12 + a2g22 + + akgk2)

+ vN(a1g1N + a2g2N + + akgkN)

v1a1g11 + v1a2g21 + + v1akgk1


+ v2a1g12 + v2a2g22 + + v2akgk2

+ vNa1g1N + vNa2g2N + + vNakgkN

a1(v1g11 + v2g12++ vNg1N)


+ a2(v1g21 + v2g22++ vNg2N)

+ ak(v1gk1 + v2gk2++ vNgkN)


=0

conmutando y asociando, es decir,


reordenando con respectoa los ai

pues por (*) cada parntesis es cero

Por conmutatividad del producto interno: wv=0.


Como w es cualquier palabra cdigo de C, hemos mostrado que una combinacin lineal de
H es ortogonal a cualquier palabra cdigo de C. Entonces vC.
3.3) Si vC Entonces vgen(H).
(Basado en el trabajo del Dr. W. Cherowitzo)
Sea vC, donde v = [v1v2...vN].
Sea z = v + (vk+1r1 + ... + vk+(N-k)rN-k)
(*)
a
a
1
0
r
11
1
1
k

Sea H = ... =
...
...
rN - k a1(N - k )
ak (N - k ) 0
1
Es obvio que ri gen(H), luego 3.2 nos muestra que ri C.

Como C=NG y ya vimos que NG es un subespacio lineal, es obvio que C es un


subespacio lineal. Por lo tanto vk+iri C. Adems la suma de elementos en un subespacio
lineal sigue en el subespacio lineal. Luego zC.
138

Cmo son los componentes de z = [z1z2...zN] ?


z = [v1v2 ... vk vk+1 ... vN] + (vk+1r1 + ... + vk+(N-k)rN-k)
= [v1v2 ... vk vk+1 ... vN] + (vk+1[ a11 ... ak1 1 0 0]
...
+
vN[a1(N-k) ... ak(N-k) 0 ... 0 1])
= [v1v2 ... vk vk+1 ... vN] + ([vk+1.a11 ... vk+1.ak1 vk+1 0 0]
...
+ [vN.a1(N-k) ... vN.ak(N-k) 0 ... 0 vN])
La negrita es slo para resaltar.
En dicha parte resaltada ntese que desde el componente k+1, hasta el componente N,
los valores son: vk+1, ..., vN, respectivamente.
Mismos que sumados a la parte no resaltada permiten deducir que:
z = [z1z2 ... zk zk+1 ... zN] = [z1z2 ... zk 0 ... 0]
Como z C=NG, entonces GzT = 0k 1, es decir:
0 a11 ... a1(N - k )
1
T
T
Gz = [ Ik k : Ak N-k ]z = ...
... ...
... [z1z2 ... zk 0 ... 0]T
1 ak 1 ... ak (N - k )
0
= [z1z2 ... zk]T = 0k 1

Pero entonces, para i de 1a k: zi = 0. Ello implica que z = 0. Luego, por (*):


v = vk+1r1 + ... + vk+(N-k)rN-k
(una combinacin lineal de H)
Entonces v gen(H).
Como dim(C)=N-k; las N-k filas de H son linealmente independientes y ellas generan C,
entonces H es una base de C, es decir, es la matriz de testeo de paridad de G.
Ejemplo:
1 0 1
Sea G =
la matriz generadora de C={ 000, 101, 011, 110 }
0 1 1
Como G est en forma cannica, H = [ 1 1 1 ].
Cuando G no est en forma cannica hay un modo de hallar su matriz de paridad H:
1) Obtenga la forma cannica Gc=[ I : A ], a partir de G, efectuando operaciones
elementales sobre filas y/o permutaciones de columnas.
2) Obtenga Hc=[ AT : I ] la matriz de paridad de Gc.
3) Obtenga H a partir de Hc, aplicando en orden inverso las permutaciones de columnas
efectuadas en el paso 1.
Ya vimos que cuando se efectan nicamente operaciones elementales sobre filas:
C = gen(G) = gen(Gc) = Cc.
En este caso es obvio que C (el espacio dual de C) es idntico al espacio dual de
gen(Gc), de manera que Hc = H.
Tambin vimos que cuando adems- se efectan permutaciones de columnas (al hallar Gc
a partir de G), los cdigos resultantes son esencialmente los mismos difiriendo slo en el
orden de sus smbolos. De igual manera Hc y H generan espacios equivalentes en el
sentido que son el resultado de permutar los smbolos de sus palabras cdigo en
exactamente las mismas posiciones. Ello justifica el paso 3.

139

Ejemplo:
0 0 0 1
Sea G =
Obtenemos Gc mediante permutacin de las columnas 1 y 4:
0 1 0 0
1 0 0 0
0 0 1 0
Gc =
Cuya matriz de paridad es Hc =

0 1 0 0
0 0 0 1
0 0 1 0
Permutando en Hc las columnas 4 y 1, obtenemos la matriz de paridad H =
.
1 0 0 0
Sndrome.- Denotaremos por s y llamaremos sndrome de la cadena w2N a: s = wHT.
H recibe el nombre de matriz de testeo de paridad debido a lo siguiente:
Sea C un cdigo lineal con matriz generadora G y matriz de testeo de paridad H.
Si wC Entonces s = 0
Demostracin:
Cualquier palabra cdigo es una combinacin lineal de los elementos de la base G, es
decir, w = a1akG, luego s = wHT = a1akGHT = a1ak(GHT) = 01 (N- k)
De este modo, desde el punto de vista del receptor, ya tenemos una forma de testear si una
palabra w que llega (w 2N) , es o no una palabra cdigo (en C):
Calculamos su sndrome y vemos si es 0; si es as wC, en otro caso no est en C (se
detecta uno o varios errores). Esto es ms prctico que contrastar w con cada una de los
elementos de C (imagine por ejemplo un conjunto C muy grande).
Obviamente an debemos considerar la posibilidad de que la palabra cdigo enviada haya
sido objeto de tanto ruido que se transform en otra palabra cdigo (que aunque lcita est
errada respecto del envo original).
Cuando no es este el caso, falta averiguar si podemos determinar en qu posiciones ha
variado la palabra cdigo enviada hasta convertirse en una secuencia que no corresponde a
una palabra cdigo. Los cdigos lineales an nos deparan agradables sorpresas a este
respecto.
Por todo lo visto hasta ahora, los cdigos lineales (de longitud N) suelen venir por pares:
- el cdigo C con matriz generadora G y matriz de testeo de paridad H
- el cdigo C con matriz generadora H y matriz de testeo de paridad G.
Ejemplo:
1 0 1
Antes vimos que, para G =
, C={ 000, 101, 011, 110 } y H = [ 1 1 1 ].
0 1 1
Por tanto C = { 000, 111 }.
0
Ntese (y es fcil verificarlo) que GHT = y que HGT = [0 0].
0
1 1 0 0
Sin embargo, es posible que C=C (G=H) , por ejemplo con G =
.
0 0 1 1
140

Cdigo extendido o expandido.- Sea C un cdigo lineal (de longitud N) con matriz
generadora G. Denotaremos por Ce y llamaremos cdigo extendido (de C) a:
Ce = { v / v = v1v2...vNvN+1 = w1w2...wNvN+1, w = w1w2...wN, wC, vN+1 = w1+w2+...+wN }
Es decir, se aade a w un dgito ms de paridad.
Es claro que Ce es de longitud N+1 y tiene el mismo nmero de palabras cdigo que C.
Adems : Si C es lineal entonces Ce tambin es lineal.
En efecto, sean u,vCe, es decir :
v = wvN+1
donde w=w1w2...wN C y vN+1 = w1+w2+...+wN
u = xuN+1
donde x=x1x2...xN C y uN+1 = x1+x2+...+xN
Luego, z = u+v = (w+x)zN+1 como C es lineal (w+x)C y zN+1=(w1+x1)++(wN+xN)
Es decir zCe.
u1 g11 ... g1N
Sea G = ... = ... ... ...
uk gk 1 ... gk N
r1 g11 ...
Entonces Ge = ... = ... ...
rk gk 1 ...

la matriz generadora de C
g1N
...
gk N

g11+...+ g1N
es la matriz generadora de C .
...
e

gk 1+...+ gk N

Demostracin :
Probaremos que las filas de Ge son linealmente independientes y que generan Ce.
Es obvio que las filas de G son linealmente independientes, es decir:
a1u1 + ... + akuk = 01 N implica que ai ai=0
(*)
Veamos qu sucede con la ecuacin:
b1r1 + ... + bkrk = 01 (N+1)
Que puede reescribirse como:
b1[u1 g11++ g1N] + ... + bk[uk gk1++ gkN] = 01 (N+1)
Es decir :
[b1u1 b1(g11++ g1N)] + ... + [bkuk bk(gk1++ gkN)] = 01 (N+1)
Que puede reescribirse como:
b1u1 + ... + bkuk = 01 N
b1(g11++ g1N) + ... + bk(gk1++ gkN) = 0
Por (*) se concluye que tal sistema slo acepta la solucin trivial.
Es decir, las filas de son Ge son linealmente independientes.
Ntese que ello indica que C y Ce tienen la misma dimensin.
Por otro lado:
vgen(Ge) si y slo si v = b1r1 + ... + bkrk
si y slo si v = b1[u1 g11++ g1N] + ... + bk[uk gk1++ gkN]
si y slo si v = [b1u1 + ... + bkuk b1(g11++ g1N) + ... + bk(gk1++ gkN)]
si y slo si v = [w
b1(g11++ g1N) + ... + bk(gk1++ gkN)]
donde w=[b1u1 + ... + bkuk]= [ b1[g11 g1N] + ... + bk[gk1 gkN] ]=w1w2...wN C
vN+1=w1+w2+...+wN
si y slo si vCe.

141

Si C es un cdigo lineal binario con distancia mnima dC y Ce es el cdigo expandido de C


Entonces dCe = dC+1 o dCe = dC segn dC sea impar o par respectivamente.
Demostracin:
Sabemos que en un cdigo lineal dC = min{ peso(w) / wC, w00}.
Si v=wvN+1 Ce, con wC y vN+1=w1+w2+...+wN es evidente que:
peso(v) = peso(w)
cuando peso(w) es par; o bien
peso(v) = peso(w)+1 cuando peso(w) es impar
El resultado es inmediato.
Presentaremos un ejemplo ms adelante junto a los cdigos de Hamming.
Patrn de error.- Sea C un cdigo lineal de longitud N.
Supongamos que se enva la palabra cdigo w (por ejemplo w=10110) y se recibe la
palabra v (por ejemplo v=00111). Llamaremos patrn de error a la palabra: e = w + v
(Por ejemplo e = 10110 + 00111 = 10001)
Es claro que el patrn de error tiene unos en las posiciones donde el ruido invierte los bits.
El nmero de bits incorrectos -entre lo que se enva y lo que se recibe es-: peso(e).
Es claro que si no hay inversiones el patrn de error es e=0.
Por supuesto podemos escribir: v = w + e, o bien w = v + e
Algoritmos de decodificacin.- Dado un cdigo lineal C de longitud N, supondremos que
el algoritmo de codificacin es sencillo y evidente: El mensaje original a1ak se
multiplica por la matriz generadora de C para obtener el mensaje codificado: w=[a1ak]G
Por otro lado, cuando se recibe una secuencia v de N smbolos, necesitamos un algoritmo
de decodificacin (siguiendo reglas de decisin basadas en principios de decodificacin)
que indique qu hacemos con v. Es claro que si el sndrome s = vHT = 0 estamos ante una
palabra cdigo recibida (lamentablemente existe la probabilidad de que el ruido haya sido
tan severo que cambi la palabra cdigo enviada por esta otra) que supondremos es la
enviada originalmente.
Si v no corresponde a una palabra cdigo podemos apelar al principio de mxima
posibilidad (o de mnima distancia o de mxima vecindad) para decidir cul palabra
cdigo asociamos a la secuencia recibida.
Un algoritmo elemental es calcular la distancia de v respecto de cada palabra cdigo y
elegir la que est ms prxima (o una de ellas si hay varias).
Afortunadamente hay otros algoritmos que hacen lo mismo de un modo ms interesante o
ms ptimo en funcin del espacio o el tiempo necesario de clculo:
1) Algoritmo de decodificacin basado en la matriz tpica o arreglo estndar.
Dado el cdigo lineal C de M=2k palabras cdigo, en el Anexo 3 mostramos que hay
exactamente 2N-k co-conjuntos disjuntos que cubren 2N y que cada u2N est nicamente
en un co-conjunto.
Llamaremos lder de un co-conjunto a la palabra de menor peso en l (si hay ms de uno,
se elige cualquiera).
Si colocamos los co-conjuntos como filas de una matriz de la siguiente manera:
- En cada fila colocamos el lder en la primera columna.
- Ordenamos ascendentemente las filas segn el peso de la primera columna.
Es claro que en la primera fila est C.
Los elementos en la columna j deben ser tales que corresponden a sumar el lder de cada
fila con la palabra cdigo wj.
Llamaremos matriz estndar a la matriz as construida.

142

Ejemplo:
1 0 1
Sea C = { 000, 101, 011, 110 } con matriz generadora G =

0 1 1
Los co-conjuntos de C son:
000 + C = { 000, 101, 011, 110 }
010 + C = { 010, 111, 001, 100 }
Su matriz estndar es (hemos puesto en negrita a los lderes):

000 101 011 110


010 111 001 100

Si v est en la columna j de la matriz estndar


Entonces wj es la palabra cdigo ms cercana a v
Demostracin:
Supondremos que v est en la fila i de la matriz. Llamemos vi al lder de dicha fila.
Es claro que v est en el co-conjunto vi + C. Como v est en la columna j por la forma de
construir la matriz- resulta que: v = vi + wj. Es decir, vi = v + wj
(*)
Supongamos que wj no es la palabra cdigo ms cercana a v, es decir, wh d(v,wh)<d(v,wj)
Como d(v,wj)=peso(v+wj) y d(v,wh)=peso(v+wh), resulta que:
peso(v+wh) < peso(v+wj)
Como -por (*)- peso(v+wj)=peso(vi), tenemos: peso(v+wh) < peso(vi)
Adems v+wh = vi + wj + wh = vi + w
puesi v=vi + wj y por la linealidad de C
Es decir, v+wh (= vi + w) est por construccin- en la fila i (o, lo que es lo mismo, por
definicin v+wh est en el co-conjunto vi + C).
Esto contradice el hecho de que vi sea el lder de la fila i. El resultado sigue.
El algoritmo de decodificacin es evidente:
Al recibir v, buscamos dicha palabra en la matriz. Y decidimos que se ha enviado wj, la
palabra cdigo que est al principio de la columna j (en la primera fila).

Ms an, en seguida mostramos que si C corrige hasta t errores, es decir t=[(dC-1) /2], wj
es la nica palabra ms cercana a v.
Sea C un cdigo lineal con distancia mnima dC que corrige hasta t=[(dC-1) /2] errores.
Sea vi el lder de la fila i en la matriz estndar.
Si v est en la columna j de la matriz estndar (en la fila i) y peso(vi) t
Entonces wj es la nica palabra cdigo ms cercana a v
Demostracin:
Sabemos que v = vi + wj. Es decir, vi = v + wj
(*)
Tambin sabemos que wj es la palabra cdigo ms cercana a v.
Supongamos que wj no es la nica palabra cdigo ms cercana a v, es decir:
(**)
wh d(v,wh) d(v,wj)

143

d(wj,wh) d(wj,v) + d(v,wh)


probado en la pgina 112
d(wj,v) + d(v,wj)
por (**)
obvio
= 2d(v,wj)
= 2peso(v+wj)
pues d(v,wj)=peso(v+wj)
= 2 peso(vi)
por (*)
2t
por hiptesis
(dC-1)
pues C corrige hasta t=[(dC-1) /2] errores
< dC
obvio
d(wj,wh)
por definicin de dC
Es decir: d(wj,wh) < d(wj,wh). Contradiccin que prueba el enunciado.
Considerando el patrn de error y suponiendo que se enva w, se recibe:
v=w+e
El algoritmo da por sentado que v est en la columna j de la matriz: v = vi + wj = wj + vi
y decide que se ha enviado wj.
Esta decisin es correcta si y slo si w=wj, es decir, si y slo si e = vi.
As pues, se escogen como lderes las palabras de menor peso en cada co-conjunto, es
decir, los lderes son los patrones de error ms probables a ser detectados y/o corregidos.
2) Algoritmo de decodificacin basado en el sndrome o en la tabla de sndromes.
Es una versin resumida de la matriz estndar y por ello ms ptima.
En vez de almacenar toda la matriz estndar slo preserva la primera columna de lderes, a
la que adjunta una tabla (un vector columna) de sndromes. Se basa en los siguientes
resultados.
Sea C un cdigo lineal. Sea w C.
Por la linealidad de C, la suma de dos palabras cdigo es otra palabra cdigo.
Adems siempre es posible escribir w como w = wi + wj donde wi,wj C (por ejemplo
recurriendo a wj = 0). As pues:
w puede expresarse como la suma de dos palabras cdigo
(a)
v,v' 2N estn en el mismo co-conjunto de C si y slo si (v+v') C
Demostracin:
v,v' 2N estn en el mismo co-conjunto
si y slo si
v = u + wi
v' = u + wj
si y slo si
u = v + wi
u = v' + wj
si y slo si
v + wi = v' + wj
si y slo si
v + v' = wi + wj
si y slo si
v + v' = w
si y slo si
v + v' C

(b)

(donde u+C es el co-conjunto donde est v)


por definicin de co-conjunto

obvio

obvio
obvio
linealidad de C y (a);
obvio

144

donde w=(wi+wj) C

Sea C un cdigo lineal con matriz de paridad H.


Sean s,s' los sndromes de v,v' 2N.
v,v' estn en el mismo co-conjunto si y slo si s = s'
Demostracin:
v,v' estn en el mismo co-conjunto
si y slo si
(v+v') C
si y slo si
(v+v')HT = 0
si y slo si
(vHT + v'HT) = 0
si y slo si
vHT = v'HT
si y slo si
s = s'

por (b)
resultado demostrado en el subttulo sndrome
propiedades de matrices
obvio
definicin de sndrome y supuestos

As pues todas las palabras cdigo que estn en el mismo co-conjunto (en la misma fila de
la matriz estndar) tienen el mismo sndrome, en particular el mismo sndrome que su
lder.
El algoritmo de la matriz estndar asume que la secuencia v que se recibe est en la fila i,
columna j de la matriz (en el co-conjunto vi+C), es decir: v = vi + wj = wj + vi
Y decide que se ha enviado wj. Es claro que wj = v + vi.
Es decir, en vez de buscar la palabra cdigo que est al principio de la columna j (en la
primera fila), podemos hacer el clculo v + vi, es decir, sumar a lo que se recibe el lder de
su co-conjunto.
Como en ese caso los sndromes de v,vi son iguales (por lo que acabamos de demostrar),
para identificar el co-conjunto (y su lder) al cual pertenece la secuencia recibida v, basta
determinar el sndrome de v (que iguala al sndrome de vi).
Ello se puede hacer as:
- Construimos una tabla (columna) de lderes ordenada segn el peso.
- Al lado construimos una tabla con los sndromes correspondientes a cada lder
La llamaremos tabla de sndromes.
El algoritmo de decodificacin basado en el sndrome es evidente:
Al recibir v, calculamos su sndrome s = vHT, buscamos s en la tabla de sndromes,
tomamos el lder del co-conjunto al que pertenece v, es decir, el lder vi que est en la
primera tabla al lado de s, hacemos el clculo v + vi
Y decidimos que se ha enviado wj = v + vi.
Ejemplo:
Sea C = { 0000, 1111 } con G =[ 1 1 1 1 ]

1 1 0 0
H = 1 0 1 0
1 0 0 1

145

dC=4

Tabla de sndromes

Tabla de lderes
0000
1000
0100
0010
0001
1100
1010
1001

000
111
100
010
001
101
101
110

Si se recibe v = 0100, el sndrome de v es s = 100, luego el lder buscado es vi = 0100.


Decidimos que se ha enviado wj = v + vi = 0100 + 0100 = 0000.
Distancia mnima de un cdigo lineal a travs de su matriz de paridad.Si C es un cdigo lineal con distancia mnima dC y matriz de paridad H
Entonces dC es el mnimo nmero de columnas linealmente dependientes de H
Demostracin :
Sea w=w1w2...wN

h11 ... h1N


y sea H = ...
...
... = [columna1
h(N - k )1 ... h(N - k )N

columnaN]

Como
wHT = [w1h11++ wNh1N w1h(N-k)1++ wNh(N-k)N]
= [w1h11 w1h21 w1h(N-k)1] + + [wNh1N wNh2N wNh(N-k)N]
= w1[h11 h21 h(N-k)1] + + wN[ h1N h2N h(N-k)N]
= w1(columna1)T + + wN(columnaN)T
Entonces la ecuacin wHT = 0 puede reescribirse as:
w1(columna1)T + + wN(columnaN)T = 0
(*)
Probamos atrs que si w C entonces wHT = 0.
Es decir, si w C entonces w1(columna1)T + + wN(columnaN)T = 0
Cuando w0 (*) es una relacin de dependencia lineal entre las columnas.
Con ms especificidad, las columnas que intervienen explcitamente en esta relacin de
dependencia lineal son aquellas para las que wi0.
Resumiendo: Si w C (w0) entonces hay una relacin de dependencia lineal entre las
columnas de H (especficamente entre aquellas para las que -correspondientemente- wi0).
Como C es lineal: dC = min{ peso(w) / wC, w00}. Es decir, dC es el menor nmero
de unos de algn wC (considerando todas las palabras cdigo diferentes de 0).
Pero entonces por lo dicho antes-, dC es el menor nmero de columnas linealmente
dependientes de H. Que es lo que queramos demostrar.
Cuando hablamos de un cdigo lineal C 2N (donde est involucrado el campo binario
Z2), el enunciado tiene un corolario por dems interesante.

146

En efecto, el menor nmero de columnas linealmente dependientes de H es 1 cuando la


ecuacin: wi(columnai)T = 0 tiene solucin o soluciones no triviales (es decir wi0).
Pero en ese caso wi=1 y la ecuacin es: (columnai)T = 0.
De manera que dC=1 cuando H tiene una columna de ceros.
Consideremos el caso dC=2. El menor nmero de columnas linealmente dependientes de
H es 2 cuando la ecuacin:
wi(columnai)T+wj(columnaj)T = 0 tiene soluciones no triviales (es decir: wi,wj0)
Pero en ese caso wi=wj=1 y la ecuacin es: (columnai)T+(columnaj)T = 0
Como en Z2 el inverso de 0 es 0 y el de 1 es 1, la nica forma de que tal ecuacin se
satisfaga es cuando la columnaj y la columnai son iguales.
De manera que dC=2 cuando H tiene dos columnas iguales.
El corolario es:
Si C es un cdigo lineal con matriz de paridad H
Entonces la distancia mnima dC 3 cuando H tiene columnas diferentes y distintas de 0.
Cota de Singleton (formulada por Richard Singleton).Si C es un cdigo lineal de longitud N y mnima distancia dC
Entonces dC N - k + 1
Demostracin:
Sin prdida de generalidad suponemos que la matriz generadora de C es G=[Ik k : Ak N-k]
Cada fila de G es una palabra cdigo wC.
Por la forma de G (matriz identidad y a la derecha la matriz Ak N-k) el peso de cada fila es:
peso(w) N-k +1
(el 1 viene de Ik k; N-k es el nmero de smbolos de las filas de A
no necesariamente todos unos-)
Como dC = min{ peso(w) / w C, w00}, es evidente que dC N-k +1.
Cdigos de Hamming.- Richard Hamming buscaba un mtodo para construir cdigos
lineales correctores. El siguiente resultado es necesario para ello.
Existe C un cdigo lineal binario de longitud N y dimensin k que corrige t errores
si y slo si
Existe una matriz (de paridad) H(N- k) N de rango N-k donde cada grupo de 2t columnas es
linealmente independiente.
Demostracin:
Recordemos que el rango de una matriz es el nmero de filas linealmente independientes.
1) Si existe una matriz (de paridad) H(N- k) N de rango N-k donde cada grupo de 2t
columnas es linealmente independiente
Entonces Existe C un cdigo lineal binario de longitud N y dimensin k que corrige t
errores.
En efecto, dada la matriz H(N- k) N donde todas sus filas son linealmente independientes.
Sabemos que el ncleo de H es es un subespacio lineal de 2N:
NH = { v2N / HvT = 0 } = { v2N / vHT = 0 } (en este caso NH es de dimensin k)
Tomemos C=NH como el cdigo lineal binario de longitud N.
H es claramente la matriz de paridad de C.

147

Por otro lado, como cada grupo de 2t columnas de H es linealmente independiente, en el


Anexo 3 indicamos que, si le aadimos otro elemento el conjunto resultante se torna
linealmente dependiente-, es decir, cualquier conjunto de 2t+1 columnas de H es
linealmente dependiente.
En la pgina 146 demostramos que la distancia mnima dC de nuestro cdigo lineal es el
mnimo nmero de columnas linealmente dependientes de H. Por lo que concluimos que:
dC = 2t+1.
Lo que nos permite concluir que C corrige t errores.
2) Si existe C un cdigo lineal binario de longitud N y dimensin k que corrige t errores
Entonces existe una matriz (de paridad) H(N- k) N de rango N-k donde cada grupo de 2t
columnas es linealmente independiente.
En efecto, sea H la matriz de paridad de C. Ya vimos cuando introducimos la matriz
generadora en forma cannica- que H es de rango N-k con dimensiones (N- k) N.
Sabemos que C corrige t errores si y slo si dC 2t+1.
Como C corrige t errores, entonces dC 2t+1. Adems la distancia mnima es el mnimo
nmero de columnas linealmente dependientes de H.
Luego, el mnimo nmero de columnas linealmente dependientes de H es 2t+1.
Entonces, a lo ms 2t columnas de H son linealmente independientes. El resultado sigue.
Hamming adems requera que sus cdigos sean perfectos.
Describamos el trabajo para cdigos binarios con t=1.
Como el cdigo debe ser perfecto, se alcanza la igualdad en el lmite de Hamming
t N
MV(N,t) 2N, donde V(N,t) = que con t=1 es V(N,1) = 1+N
i =0 i
Adems, siendo binario el cdigo M=2k. Es decir, debe satisfacerse: 2k(1+N) = 2N
Que puede reescribirse as: 2N-k = N+1. O as: N = 2N-k 1.
Si llamamos r al nmero de bits de redundancia N-k tenemos que debe satisfacerse:
N = 2r 1.
De acuerdo al enunciado con el que empezamos este apartado (con t=1) :
Existe C un cdigo lineal binario de longitud N y dimensin k que corrige 1 error
si y slo si
Existe una matriz (de paridad) H(N- k) N de rango N-k donde cada dos columnas son
linealmente independientes, es decir:
wi(columnai)T+wj(columnaj)T = 0
slo tiene la solucin trivial
Es decir, con wi,wj0 (o lo que es lo mismo con wi=wj=1) la ecuacin
no tiene solucin
(columnai)T + (columnaj)T = 0
T
T
Es decir: (columnai) + (columnaj) 0
Ello significa (en el campo binario) que la columnaj y la columnai son diferentes y ninguna
es de ceros.
Resumiendo: existe C de longitud N y dimensin k que corrige 1 error
si y slo si existe una matriz H(N- k) N de rango N-k donde cada par de columnas es
diferente (y ninguna es la columna cero).
Juntando ambos criterios, para construir un cdigo lineal perfecto que corrija t errores:
Debemos tener una matriz con r=N-k filas y N=2r1 columnas las cuales son diferentes de
a pares y ninguna es la columna cero; adems debe verificarse que N=2N-k 1.

148

Pero slo hay 2r distintas columnas binarias de r posiciones (incluyendo la columna de


ceros).
As pues la nica forma de construir H es colocando todas las columnas binarias de
longitud r (excluyendo la columna de ceros) en algn orden.
De manera ms informal podemos decir que H se construye colocando los nmeros de 1 a
N (en algn orden) en binario (con r posiciones) por columnas.
Es claro que con esas condiciones se satisface: N=2N-k 1 (pues 2r1=N=2N-k 1=2r1), es
decir, los cdigos resultantes son perfectos.
Es sencillo verificar que tales matrices tienen rango r:
Los nmeros que son potencias de 2 estn presentes en las columnas de H.
Ellos slo incluyen un 1 siendo el resto de sus smbolos ceros.
Sin prdida de generalidad podemos tomarlos como pivotes. Cualquier texto de lgebra
Lineal muestra que estos r pivotes constituyen el rango de H.
El orden en que se coloquen las columnas no afecta a la distancia mnima y slo devuelve
cdigos equivalentes (por permutacin de columnas).
En honor a Hamming estos cdigos se denotan genricamente como HN.
Es claro que N=2N-k 1 se satisface para varios valores de N y k, es el caso de
(N,k) = (3,1), (N,k) = (15,11), etc.
Ejemplo:
Para (N,k) = (7,4) es evidente que se satisface 7 = N = 2N-k 1 = 27-4 1 = 23 1 = 8 1 = 7
Construimos la matriz de paridad colocando los nmeros de 1 a 7 en binario por columnas.
El orden no influye en lo esencial del cdigo. Para diferentes rdenes los cdigos
resultantes son equivalentes. Sin embargo, hay otras ventajas eligiendo uno u otro orden.
Si elegimos la siguiente colocacin con I a la derecha, es decir, en forma cannica-:
0 1 1 1 1 0 0
H = 1 0 1 1 0 1 0
1 1 0 1 0 0 1
Hallar la matriz generadora correspondiente G es inmediato.
Si elegimos la (intuitiva) colocacin en secuencia tenemos:
1 2 3 4 5 6 7
0 0 0 1 1 1 1
H = 0 1 1 0 0 1 1
1 0 1 0 1 0 1
Para obtener la matriz generadora primero debemos colocar esta matriz de paridad en
forma cannica (recordando las permutaciones entre columnas: 1 con 7, 2 con 6, 4 con 5),
luego obtener inmediatamente la matriz generadora en forma cannica y a partir de ella
volver a construir la matriz generadora buscada, permutando las columnas en orden
inverso (como ya vimos antes).

149

1
0
El resultado es: G =
1

1
1
1
0

0
0
1
0

1
1
0
1

0
0
0
1

Cuyo cdigo con dC=3 es el siguiente:


pre-entrada
palabra cdigo
0000
0000000
0001
1001100
0010
1110000
0011
0111100
0100
0101010
0101
1100110
0110
1011010
0111
0010110

0
1
0
0

1
0
0

pre-entrada
1000
1001
1010
1011
1100
1101
1110
1111

palabra cdigo
1101001
0100101
0011001
1010101
1000011
0001111
0110011
1111111

Todos los cdigos de Hamming para t=1 tienen distancia mnima dC=3.Obviaremos el caso trivial (N,k) = (1,0). El siguiente par de valores que satisface la
ecuacin N=2N-k 1 es (N,k) = (3,1), es claro que hay otros infinitos valores que satisfacen
esta condicin. Todos ellos tienen N 3.
As las columnas de las matrices H d elos cdigos de Hamming incluyen la que debe
llenarse con el 1, con el 2 y la que debe llenarse con el 3 (posiblemente hay ms
columnas).
Se sabe que la distancia mnima de un cdigo lineal se puede calcular a travs de su matriz
de paridad. De hecho es el mnimo nmero de columnas linealmente dependientes de H.
Ms an, vimos que dC 3 cuando H tiene columnas diferentes y distintas de 0, como es
el caso de las matrices de paridad de los cdigos de Hamming.
En ellas es evidente que tres columnas son linealmente dependientes: Si sumamos la
columna contiene al 1 con la del 2 obtenemos la columna c3 que contiene al 3. Es
decir: [ wi(columna idel1)T+wj(columnajdel2)T] + w(columnadel3)T = 0
Tiene la solucin no trivial wi = wj = w = 1.
Luego, el mnimo nmero de columnas linealmente dependientes de H es 3.
Es decir, dC=3 en los cdigos de Hamming (para t=1).
En rigor, si anotamos las columnas de una matriz H genrica (con los nmeros de 1 a N
anotados secuencialmente por columnas) as:
0 0 ... 1
... ... ... ...
La suma (mdulo 2) de cualquier par de columnas devuelve otra.
H =
0 1 ... 1

1 0 ... 1
As, el mnimo nmero de columnas linealmente dependientes de H es 3 como dijimos.
Decodificacin por sndrome en los cdigos de Hamming.- Trabajaremos la
decodificacin de palabras recibidas con hasta un error respecto de las enviadas.

150

Sea C un cdigo lineal de Hamming de longitud N con matriz de paridad H.


Sea e 2N tal que peso(e) = 1 (e contiene slo ceros excepto un 1 en la posicin j)
Entonces eHT = cjT
(donde cj es la columnaj de H)
Demostracin:
Recordemos que las columnas de H consisten de secuencias que pueden interpretarse
como los nmeros binarios de 1 a N (en algn orden).
Denotaremos la palabra e genricamente as: e = [0...0 1 0...0] (el 1 en la posicin j)
h11 ... h1N
Sea H = ...
...
...
h(N - k )1 ... h(N - k )N
h11 ... h(N - k )1
... = [h1j h2j ... h(N-k)j] = cjT
Luego, eH = [0...0 1 0...0] ... ...
h1N ... h(N - k )N
T

Si se enva la palabra cdigo w, recordemos que se recibe v = w + e. Donde e es el patrn


de error.
El sndrome de v es:
s = vHT
por definicin
= (w+e)HT
pues v = w+e
propiedades de matrices
= wHT + eHT
= 0 + eHT
resultado demostrado en el subttulo sndrome
T
= eH
obvio
Es decir, el sndrome est en funcin del patrn de error.
Si consideramos patrones de error de peso(e) = 1 (si no hay inversiones el patrn de error
es obviamente e = 0), es claro por los ltimos dos resultados- que:
(donde cj es la columnaj de H)
s = eHT = cjT
Como las columnas de H son diferentes, palabras de peso 1 diferentes tienen sndromes
diferentes.
Recordemos que v,v' estn en el mismo co-conjunto si y slo si s = s'.
Es lo mismo decir que s s' si y slo si v,v' estn en co-conjuntos distintos.
Luego, todas las palabras de peso 1 estn cada una- en diferentes co-conjuntos.
As pues podemos tomar las palabras de peso 1 como lderes de cada co-conjunto.
Luego las tablas necesarias en nuestro algoritmo se forman as:
Tabla de lderes

Tabla de sndromes

La secuencia de ceros
junto a
Palabra(s) e de peso 1
(e tiene ceros excepto un 1 en la posicin j)

Secuencia de ceros
junto a
Columna(s) j de H

151

Sin embargo, si la matriz de paridad H para el cdigo de Hamming se construye siguiendo


la (intuitiva) colocacin en secuencia el algoritmo de decodificacin se simplifica an
ms.
En efecto, cuando recibimos la palabra v, obtenemos su sndrome s = vHT, luego
buscamos tal sndrome en la tabla de sndromes, tomamos el lder vi del co-conjunto que
est en la primera tabla al lado de s, hacemos el clculo v + vi.
Y decidimos que se ha enviado wj = v + vi.
Pero el lder vi del co-conjunto no es otra cosa que una palabra e de peso 1 (vi = e).
De manera que la suma (v + vi) no es otra cosa que (v + e) donde e tiene un 1 en la
posicin j -, que no es otra cosa que cambiar el bit de la posicin j de v
Cul posicin? La que corresponda a la columna j de H.
En el caso sealado, H tiene la colocacin en secuencia de los nmero de 1 a N en binario,
las columnas j corresponden a los nmeros j (en decimal).
Luego el algoritmo se simplifica as:
Cuando recibimos la palabra v, obtenemos su sndrome s = vHT.
s se considera un nmero binario, lo convertimos a decimal el resultado es digamos j-.
Finalmente corregimos (invertimos) el bit en la posicin j de v.
Y decidimos que esa es la palabra cdigo wj enviada.
Ejemplo:
1 2 3 4 5 6 7
0 0 0 1 1 1 1
Para H = 0 1 1 0 0 1 1
1 0 1 0 1 0 1
Si se recibe v = 1100100, el sndrome de v es s = vHT = 110 = (6)10
Luego invertimos el bit en la posicin j = 6 de v, decidiendo que se envi w = 1100110.
1 1 0 1 0 0 1
0 1 0 1 0 1 0
cuyo cdigo
Cdigo dual de un cdigo de Hamming.- Para G =
1 1 1 0 0 0 0

1 0 0 1 1 0 0
de Hamming correspondiente C se encuentra descrito en su integridad en dicho apartado,
sabemos que su cdigo dual se obtiene a partir de la correspondiente matriz de paridad H
0 0 0 1 1 1 1
que en este caso es: H = 0 1 1 0 0 1 1
1 0 1 0 1 0 1
El cdigo dual ntegro es:
C = { 0000000, 1010101, 0110011, 1100110, 0001111, 1011010, 0111100,1101001 }

152

Cdigo expandido de un cdigo de Hamming.1 1 0 1 0 0 1


0 1 0 1 0 1 0
cuyo cdigo de Hamming correspondiente C, con
Para G =
1 1 1 0 0 0 0

1 0 0 1 1 0 0
dC=3, se encuentra descrito en su integridad en dicho apartado, sabemos que su cdigo
expandido se obtiene a partir de la siguiente matriz generadora (tal como se indica en el
apartado de cdigos expandidos):
1 1 0 1 0 0 1 0
0 1 0 1 0 1 0 1

Ge =
1 1 1 0 0 0 0 1

1 0 0 1 1 0 0 1
El cdigo expandido ntegro es:
Ce = { 00000000, 10011001, 11100001, 01111000,
01010101, 11001100, 10110100, 00101101,
11010010, 01001011, 00110011, 10101010,
10000111, 00011110, 01100110, 11111111 }
Adems como se indica en dicho apartado su distancia mnima es dCe = dC+1 pues dC es
impar. Es decir, como dC=3, resulta que: dCe = 4.

153

CDIGOS CCLICOS
Sea C un cdigo lineal.
C es un cdigo cclico si la rotacin de una palabra cdigo es tambin una palabra cdigo.
Ejemplos:
Sea el cdigo lineal C = { 000, 111 }
La rotacin de la palabra cdigo 000 es 000.
La rotacin de la palabra cdigo 111 es 111.
Es claro que cualquier rotacin de una palabra cdigo es una palabra cdigo, luego C es
cclico.
Sea el cdigo lineal C = { 00, 10 }
La rotacin de la palabra cdigo 10 es: 01. 01 no es una palabra cdigo.
Luego, C no es cclico.
Sea el cdigo lineal C = { 000, 101, 011, 110 }
La rotacin de la palabra cdigo 000 es 000.
La rotacin de la palabra cdigo 101 es 110.
La rotacin de la palabra cdigo 110 es 011.
La rotacin de la palabra cdigo 011 es 101.
No hay ms rotaciones.
Es claro que cualquier rotacin de una palabra cdigo es una palabra cdigo, luego C es
cclico.
Es evidente de la definicin de cdigo cclico y del concepto de rotacin- que las
rotaciones pueden ser ms de una vez y a la izquierda o a la derecha.
Tratar a un cdigo (debido a que posee ciertas carctersticas) como a un espacio lineal
permite derivar propiedades y resultados que de otro modo resulta complicado.
Al trabajar con cdigos cclicos binarios de longitud N (C 2N) haremos algo semejante.
Identificaremos cada palabra (sea cdigo o no) con un polinomio de la siguiente manera:
b = b1...bN

se identifica con

b(x) = b1x0 + b2x1 + ... + bNxN-1

Donde la suma y multiplicacin de polinomios son las habituales (con coeficientes en Z2).
Tcnicamente estamos haciendo una transformacin que denominaremos polinomial,
donde introducimos la indeterminada u operador de posicin de bit: x.
Ntese que las palabras se identifican con polinomios de grado menor a N.
Ejemplo:
Palabras cdigo de C
000
101
011
110

Polinomios asociados
0
1 + x2
x + x2
1+x

154

En el Anexo 4 (que debe leerse) se muestra que Z2N[x]/(xN+1) es un anillo, donde Z2N[x]
denota al conjunto de todos los polinomios de grado menor a N (con coeficientes en Z2), y
donde se trabaja con la multiplicacin de polinomios mdulo (xN + 1).
El hecho de que Z2N[x]/(xN+1) sea un anillo permite en base a la identificacin de
palabras con polinomios- destacar algunas semejanzas entre lo que sucede con palabras y
lo que sucede con polinomios.
Ntese que: Con b = b1b2...bN-1bN una rotacin de b es:
bNb1b2 ... bN-1
1) El polinomio asociado a b es: b(x) = b1x0 + b2x1 + ... + bN-1xN-2 + bNxN-1
= b1 + b2x1 + ... + bN-1xN-2 + bNxN-1
N
2) x b(x) = x b(x) mod (x + 1)
= x [b1x0 + b2x1 + ... + bN-1xN-2 + bNxN-1] mod (xN + 1)
=
[b1x + b2x2 + ... + bN-1xN-1 + bNxN] mod (xN + 1)
= bN + b1x + b2x2 + ... + bN-1xN-1
Que no es otra cosa que el polinomio asociado a una rotacin de b.
3) Se sigue que: xi b(x) mod (xN + 1) es el polinomio asociado a i rotaciones de b
4) 1 b(x) mod (xN + 1) = b(x)
es el polinomio asociado a una rotacin nula de b
Luego, por la distribucin del producto () respecto de la suma y la reducibilidad de mod:
Sea q(x)Z2N[x]/(xN+1)
es el polinomio asociado a una suma
q(x) b(x) = q(x) b(x) mod (xN + 1)
de
rotaciones de b = b1...bN
Ideales y cdigos cclicos.Sea Cp el conjunto de polinomios asociados a las palabras cdigo del cdigo lineal C (de
longitud N).
Recordando el concepto de ideal visto en el Anexo 4, tenemos el siguiente resultado:
El cdigo lineal C es cclico si y slo si Cp es un ideal.
Demostracin:
Previamente veamos este ejemplo.
Considerando C
000
101
011
110
Una rotacin de 110 es:
011
Una rotacin de 011 es:
101

Considerando Cp
0
1 + x2
x + x2
1+x
x [1 + x] mod (x3 + 1)
=
x + x2 mod (x3 + 1)
=
x + x2
x [x + x2] mod (x3 + 1)
=
x2 + x3 mod (x3 + 1)
=
1 + x2

155

La multiplicacin de cualquier polinomio en Z23[x]/(x3+1) por un elemento de Cp es otro


polinomio en Cp. Por ejemplo con [1 + x + x2] y el polinomio asociado a 011:
[1 + x + x2] [x + x2] mod (x3 + 1)
= 1 [x + x2] mod (x3 + 1) + x [x + x2] mod (x3 + 1) + x2 [x + x2] mod (x3 + 1)
=
[x + x2]
+
[1 + x2]
+
[1 + x]
=0
Note que en trminos de una suma de rotaciones de la palabra cdigo 011:
1 [x + x2] mod (x3 + 1) + x [x + x2] mod (x3 + 1) + x2 [x + x2] mod (x3 + 1)
corresponde a:
011
+
101
+
110
= 000
Retomando la demostracin.
i) Sea Cp el conjunto de polinomios asociados a las palabras cdigo de C.
Si el cdigo lineal C es cclico Entonces Cp es un ideal.
Dado que C es lineal y cclico es claro que:
- La suma de dos palabras cdigo es otra palabra cdigo
- La rotacin de una palabra cdigo es tambin una palabra cdigo
Sea w(x)Cp el polinomio asociado a w=w1w2...wN-1wNC.
Ya vimos que x w(x) = x w(x) mod (xN + 1) = wN + w1x + w2x2 + ... + wN-1xN-1
Es claro que wN + w1x + w2x2 + ... + wN-1xN-1 es el polinomio asociado a wNw1w2...wN-1,
que es una rotacin de w y como wC y C es cclico resulta que wNw1w2...wN-1C.
Como Cp es el conjunto de polinomios asociados a las palabras cdigo de C se deduce
que [x w(x)]Cp.
El mismo razonamiento repetido, muestra que [xi w(x)]Cp.
Finalmente, la distribucin de sobre + y la linealidad de C permiten ver que, dada b
una palabra de longitud N arbitraria y b(x) su polinomio asociado:
w(x)Cp b(x)Z2N[x]/(xN+1) [b(x) w(x)]Cp
Es decir, que Cp es un ideal.
ii) Sea C el conjunto de palabras cdigo asociadas al conjunto de polinomios Cp.
Si Cp es un ideal Entonces el cdigo C es cclico.
Sean u,vC, palabras cdigo asociadas a los polinomios u(x),v(x)Cp.
Como Cp es un ideal, sabemos que (Cp, ) es un subgrupo abeliano de (Z2N[x], ), es
decir, [u(x) v(x)]Cp.
Dado que C es el conjunto de palabras cdigo asociadas a los polinomios de Cp, resulta
que la palabra cdigo w asociada a [u(x) v(x)] es tal que wC.
Pero es evidente que los coeficientes de [u(x) v(x)] son exactamente los componentes
de [u + v]. Es decir, w = [u + v], con wC.
Luego, C es lineal.
Dado que Cp es un ideal, por definicin:
w(x)Cp b(x)Z2N[x]/(xN+1) w(x)b(x)Cp.
Sea w=w1...wNC la palabra cdigo asociada a w(x)Cp.
Por ser Cp un ideal: b(x)w(x)Cp.
Cuando b(x) = x, sabemos que b(x)w(x) = x w(x) = wN + w1x + w2x2 + ... + wN-1xN-1,
es el polinomio asociado a wNw1w2...wN-1. Como [x w(x)]Cp y C es el conjunto de
palabras cdigo asociadas al conjunto de polinomios Cp, resulta que wNw1w2...wN-1C.

156

Es decir, una rotacin de una palabra cdigo de C tambin es una palabra cdigo de C.
Bajo un razonamiento anlogo, con b(x) = xi, se deduce que i rotaciones de una palabra
cdigo de C tambin es una palabra cdigo de C.
Es decir, C es cclico.
Ambos incisos i) y ii) prueban el enunciado; el cual muestra que tcnicamente estamos
hablando de un isomorfismo.
Es claro que el ideal Cp es un subespacio lineal, pues:
- (Z2N[x], {0, 1}, , +, , ) es un espacio lineal sobre F2
- Cp Z2N[x]
- (Cp, ) es un subgrupo abeliano de (Z2N[x], )
- (bp(x)) Cp
para p(x) Cp y b {0, 1}
Demostraremos ahora algunos resultados importantes:
Sea C{0} un cdigo cclico de longitud N.
Sea el ideal Cp el conjunto de polinomios asociados a C.
Si Cp es un ideal Entonces
1) Hay un nico polinomio w(x) de grado mnimo r0 en Cp.
2) Cp { b(x) w(x) / gr(b(x)) < N r} [gr(b(x)): el grado de b(x)]
3) { b(x) w(x) / gr(b(x)) < N r} Cp.
4) Cp = {b(x) g(x) / gr(b(x)) < N r}. Es decir, g(x) genera Cp.
5) g(x) | (xN + 1). Es decir, g(x) es un factor de (xN + 1)
6) { g(x), x g(x), ... , xk-1 g(x) } es una base de Cp
[donde N-k = r = gr(g(x))].
7) La dimension de Cp es k.
Demostracin:
1) Supongamos que en Cp hay dos polinomios de grado mnimo r, w(x) y v(x):
w(x ) = w1 + w2x + ... + wrxr-1 + wr+1xr (con wr+1=1)
v(x ) = v1 + v2x + ... + vrxr-1 + vr+1xr (con vr+1=1)
Es claro que w(x) + v(x) = (w1 + v1) + ... + (wr+vr)xr-1 + 0
Como Cp es un subespacio lineal, w(x)+v(x)Cp.
Luego, hay un polinomio en Cp de grado menor que r.
Esta contradiccin prueba el enunciado.
2) Sea w(x) el nico polinomio de grado mnimo r en Cp. Sea v(x)Cp.
Sea res(x) el residuo de la divisin de v(x) entre w(x); sea b(x) el cociente de la misma.
Es decir, v(x) = [b(x) w(x)] + res(x)
con el grado de res(x) menor al grado de w(x)
obviamente gr(b(x)) < N r
Luego, res(x) = [b(x) w(x)] + v(x)
Como Cp es un ideal [b(x) w(x)]=[b(x) w(x)]Cp.
Como en 1), ([b(x) w(x)] + v(x))Cp, es decir res(x)Cp.
Pero w(x) tiene grado mnimo r0 y res(x) tiene grado menor a w(x).
Luego, res(x) = 0. Por lo tanto, v(x) = b(x) w(x). Es decir, v(x){ b(x) w(x) }
Lo que prueba el enunciado.

157

3) Sea w(x) el nico polinomio de grado mnimo r.


Sea b(x) un polinomio tal que gr(b(x)) < N r.
Sea [b(x) w(x)] un polinomio mltiplo de w(x).
Es decir, sea [b(x)w(x)]{b(x)w(x)}.
Es evidente que gr[b(x) w(x)] < N.
Luego, b(x) w(x) = b(x) w(x) = w(x) b(x).
Como Cp es un ideal [w(x) b(x)]Cp.
Lo que prueba el enunciado.
4) De 2 y 3 se deduce que Cp = { b(x) w(x) / gr(b(x)) < N r}.
Al polinomio w(x) se lo conoce ms como el polinomio generador de Cp.
Este polinomio de grado mnimo r0 en Cp, es denotado de manera ms comn
como g(x). Luego,
Cp = {b(x) g(x) : gr(b(x)) < N r}. Otros autores denotan esto as: Cp = <g(x)>
5) Si g(x) es el polinomio de grado mnimo en Cp, es claro que [xN-r g(x)] es de grado N.
Sea [xN-r g(x)] = xN-r g(x) mod (xN + 1) = h(x).
Es decir: xN-r g(x) = (xN + 1) + h(x)
(i)
N-r
Como g(x)Cp y Cp es un ideal, es claro que [x g(x)]=h(x)Cp.
Luego, por 2): h(x) = b(x) g(x)
(ii)
Entonces:
xN-r g(x) + h(x) = (xN + 1) + h(x) + h(x)
por (i)
N
= x +1
obvio
(iii)
Por lo tanto:
por (ii)
xN-r g(x) + h(x) = xN-r g(x) + b(x) g(x)
= xN + 1
por (iii)
De donde se deduce que:
xN-r g(x) + b(x) g(x) = [xN-r + b(x)] g(x) = xN + 1
Es decir, g(x) es un factor de (xN + 1).
Ntese que g(x) x, pues x no divide a (xN + 1).
Representemos a g(x) as: g(x) = g0x0 + g1x1 + ... + grxr
Ntese tambin que g0 0, pues en tal caso g(x) = x (g1 + g2x ... + gr-1xr-1), y como g(x)
es un factor de (xN + 1), esto mostrara que (g1 + g2x ... + gr-1xr-1) y (x) tambin lo son, cosa
descartada cuando menos en el ltimo caso.
6) Como Cp es un subespacio lineal es plausible pensar en una base para l.
Probaremos que:
6.1) { g(x), x g(x), ... , xk-1 g(x) } es un conjunto linealmente independiente.
En efecto, como N-k = r = gr(g(x)), es claro que:
para 0 i k-1, xi g(x) = xi g(x) mod (xN + 1) = xi g(x)
pues gr(xi g(x)) k-1 + r = k-1 + N-k = N - 1 (< N)
Tambin es claro, por el inciso 4, que:
xi g(x)Cp
Sea la siguiente ecuacin:
a0g(x) + a1[x g(x)] + ... + ak-1[xk-1 g(x)] = 0

158

Que es equivalente a:
a0g(x) + a1[x g(x) mod (xN + 1)] + ... + ak-1[xk-1 g(x) mod (xN + 1)] = 0
Que es equivalente a:
a0[g(x) mod (xN + 1)] + a1[xg(x) mod (xN + 1)] +...+ ak-1[xk-1 g(x) mod (xN + 1)] = 0
Que es equivalente a:
[a0 g(x) + a1 xg(x) +...+ ak-1 xk-1 g(x)] mod (xN + 1) = 0
Pero gr([a0 g(x) + a1 xg(x) +...+ ak-1 xk-1 g(x)]) < N
De manera que el nico modo en que
[a0 g(x) + a1 xg(x) +...+ ak-1 xk-1 g(x)] mod (xN + 1) = 0
es para 0 i k-1: ai = 0
Por lo tanto, { g(x), x g(x), ... , xk-1 g(x) } es linealmente independiente.
6.2) Cp = gen{ g(x), x g(x), ... , xk-1 g(x) }
i) Si v(x)Cp, entonces por 4- v(x) = b(x) g(x) con gr(b(x)) < N r = k.
Luego, b(x) = b0x0 + b1x1 + ... + bN-r-1xN-r-1
Es decir, v(x) = [b0x0 + b1x1 + ... + bN-r-1xN-r-1] g(x)
= b0 x0 g(x) + b1 x1 g(x) + ... + bk-1 xk-1 g(x)
As, v(x) es una combinacin lineal finita de { g(x), x g(x), ... , xk-1 g(x) }.
Es decir, v(x)gen{ g(x), x g(x), ... , xk-1 g(x) }.
ii) Si v(x)gen{ g(x), x g(x), ... , xk-1 g(x) }, entonces:
v(x) = b0 g(x) + b1 x1 g(x) + ... + bk-1 xk-1 g(x)
= b0 g(x) + b1 x1 g(x) + ... + bk-1 xk-1 g(x)
por lo visto en 6.1
i
Es claro, por el inciso 4, que [x g(x)]Cp. Como Cp es un subespacio lineal,
[b0 g(x) + b1 x1 g(x) + ... + bk-1 xk-1 g(x)]Cp.
Es decir, v(x)Cp.
Ambos incisos prueban el enunciado
7) Dado que el nmero de elementos de { g(x), x g(x), ... , xk-1 g(x) } es k, es obvio a
partir del inciso 6 que: dim(Cp) = k.
Un octavo resultado se aade a los siete anteriores.
8) Si C{0}es un cdigo cclico de longitud N
Entonces dim(C) = k y la matriz generadora de C se puede escribir as:
g0 g1 ... gr 0 0 ... 0
0 g0 g1 ... gr 0 ... 0

G = ... ... ... ... ... ... ... ...


g(x) = g0x0 + g1x1 + ... + gr-1xr-1 + grxr

0 ... 0 g0 g1 ... gr 0
0 ... 0 0 g0 ... gr -1 gr
Demostracin:
Recordemos que el ideal Cp es el conjunto de polinomios asociados a C.
Sea g(x) = g0x0 + g1x1 + ... + gr-1xr-1 + grxr, el polinomio generador de Cp.
Como dim(Cp)=k, y Cp es un isomorfismo de C, entonces dim(C)=k.

159

Este hecho tambin puede deducirse del siguiente modo: Sea

g0
0

G = ...

0
0

g(x)
xg(x)

x 2 g(x)

...

x N- r-1 g(x)

g1 ... gr 0 0 ... 0
g0 g1 ... gr 0 ... 0
... ... ... ... ... ... ...

... 0 g0 g1 ... gr 0
... 0 0 g0 ... gr -1 gr

Sea g0g1...gr-1gr00...0C la palabra cdigo representada por g(x).


Es claro que [xi g(x)] son polinomios que representan rotaciones de w, y como C es
cclico, dichas palabras pertenecen a C. Es decir, las filas de G representan palabras
que pertenecen a C.
En el Anexo 3 dijimos que la dimensin del espacio de las filas de G es el nmero de
pivotes en su forma escalonada, en nuestro caso dado que g00- este nmero es
evidentemente k.
Slo resta probar que G genera C, es decir, gen(G) = C, es decir, que:
gen({g0g1...gr-1gr000, 0g0g1...gr-1gr00, , 00g0g1...gr-1gr0, 000g0g1...gr-1gr}) = C
Ello es cierto pues:
vC si y slo si v(x)Cp
pues Cp consta de los polinomios asociados a C
si y slo si v(x) = b(x) g(x)
por 4)
0
1
k-1
si y slo si v(x) = b0 x g(x) + b1 x g(x) + ... + bk-1 x g(x)
por 6.2) i)
si y slo si
v = b0 g0g1...gr-1gr00...0 + b1 0g0g1...gr-1gr0...0 + ... + bk-1 0...00 g0g1...gr-1gr
si y slo si
vgen({ g0g1...gr-1gr000, 0g0g1...gr-1gr00, , 00g0g1...gr-1gr0, 000g0g1...gr-1gr })
De toda la anterior argumentacin se deduce que:
La matriz generadora de C se puede escribir como G.
Ejemplo: Para N=3
C
000
101
011
110

Ntese que
0
=
0 g(x)
2
1 + x = (1 + x) g(x)
x + x2 =
x g(x)
1+x =
1 g(x)

Cp
0
1 + x2
x + x2
1+x

El nico polinomio de grado mnimo r = 1 (0) en Cp es: g(x) = 1 + x


g(x) es el polinomio generador de Cp. Ntese que (1+x+x2) g(x) = xN + 1
1 1 0
La matriz generadora de C es: G =
donde dim(C) = k = 2
0 1 1
Estrictamente hablando g(x) es el polinomio generador del ideal Cp (no de C), pero como
la identificacin de cada palabra con un polinomio es 1-1, en adelante ignoraremos las
distinciones rgidas entre C y Cp.

160

Un noveno resultado se aade a los ocho anteriores.


9) Si g(x) es un factor de (xN + 1)
Entonces g(x) es el polinomio generador de algn cdigo cclico C
Demostracin:
Sea N-k = r = gr(g(x)).
Sea Sp = { g(x) q(x) / q(x)Z2N[x]/(xN+1) }
En el Anexo 4 vimos que Sp es un ideal.
Supongamos que g(x) no es el polinomio de grado mnimo en Sp , es decir, hay un otro
polinomio b(x) [con b(x)g(x)] de grado mnimo en Sp tal que gr(b(x))<gr(g(x)).
Por los resultados 1 y 4, b(x) es el polinomio generador de Sp.
Se sabe que g(x) es un factor de (xN + 1): g(x) t(x) = (xN + 1) donde gr(t(x))=N-r.
Como b(x)Sp, entonces b(x) = g(x) q(x) = q(x) g(x)
Luego:
[b(x) t(x)] = [q(x) g(x) t(x)]
pues b(x) = q(x)g(x)
= [q(x) [g(x) t(x)]]
asociatividad de , Anexo 4
= [q(x) [g(x) t(x) mod (xN + 1)]]
definicin de
g(x) t(x) = (xN + 1)
= [q(x) [(xN + 1) mod (xN + 1)]]
= [q(x) [ 0 ]]
obvio
= [q(x) 0 mod (xN + 1)]
definicin de
=0
obvio
Pero 0<gr(b(x)t(x))<gr(g(x)t(x)) = N, luego es absurdo que [b(x) t(x)] = 0.
Luego, el supuesto es errneo y g(x)=b(x) es el polinomio de grado mnimo en Sp.
Por los resultados 1 y 4, es el polinomio generador de Sp.
Sea C el conjunto de palabras cdigo asociadas a los polinomios de Sp.
En la tercera pgina de este captulo, probamos que:
Si Sp es un ideal Entonces el cdigo C es cclico.
Luego C es un cdigo cclico.
g(x) es el polinomio generador de Sp y la matriz generadora de C se puede construir a
partir de g(x) como en el inciso 8).
Los resultados 1 a 8 nos brindan, dado un cdigo cclico C, un nuevo modo de enfocarlos.
Y, por ejemplo, una otra manera de obtener su matriz generadora C.
El resultado 9, por otro lado, nos permite obtener cdigos cclicos de longitud N,
factorizando (xN + 1).
Ejemplo:
Para N=3
(x3 + 1) = (1+x) (1 + x + x2)
Para g(x) = (1 + x + x2), G = [1 1 1] que genera el cdigo cclico C = { 000, 111 }.
1 1 0
Para g(x) = (1 + x), G =
que genera el cdigo cclico C = {000, 011, 110, 101}.
0 1 1

161

Mostraremos ahora que lo que se puede hacer en C (con la matriz G) puede hacerse en Cp
a travs del polinomio g(x).
En efecto, sea Gk N la matriz generadora del cdigo cclico C.
Recordemos que las palabras cdigo de C se obtienen multiplicando:
[a1 ak]G
donde a1...ak es una secuencia de longitud k.
Sea g(x) el polinomio de generador de Cp.
Si G se construye a partir de g(x) como en 8), consideremos lo siguiente:
g0 g1 ... gr 0 0 ... 0
0 g0 g1 ... gr 0 ... 0

i) [a1 ak]G = [a1 ak] ... ... ... ... ... ... ... ...

0 ... 0 g0 g1 ... gr 0
0 ... 0 0 g0 ... gr -1 gr
= [ a1g0
a1g1 + a2g0
a1g2 + a2g1 + a3g0
...
ak-2gr + ak-1gr-1 + akgr-2
ak-1gr + akgr-1
akgr ]T
donde hemos escrito el resultado como un vector columna transpuesto.
ii) a(x)g(x) = [ a1x0 + a2x + ... + ak-1xk-2 + ak xk-1 ] [ g0x0 + g1x1 + ... + gr-1xr-1 + grxr ]
= (a1g0)x0
+ (a1g1 + a2g0)x
+ (a1g2 + a2g1 + a3g0)x2

+ (ak-2gr + ak-1gr-1 + akgr-2)xN-3


+ (ak-1gr + akgr-1)xN-2
+ (akgr)xN-1
Ntese que i) y ii) devuelven resultados equivalentes, uno en trminos de palabras cdigo
y otro en trminos de sus polinomios asociados [ los coeficientes del polinomio resultante
en ii) son los componentes de la palabra cdigo resultante en i) ].
Veremos ahora cmo podemos hacer una analoga con polinomios respecto de lo que
hacamos con matrices y/o palabras cdigo.
Trabajando con polinomios en Cp

Trabajando con matrices en el cdigo C


Dado C obtenemos la matriz generadora G
as:
Las palabras de C son las filas de una
matriz. Se halla la forma escalonada de C,
mediante operaciones elementales sobre
filas (Gauss) y recogiendo slo las filas
diferentes de cero.

Dado Cp obtenemos el polinomio generador


g(x) as:
Elegimos el polinomio de menor grado
como g(x).

162

Trabajando con polinomios en Cp

Trabajando con matrices en el cdigo C


Dada la matriz G se obtiene su matriz de
paridad H, as:

Dado el polinomio g(x) se obtiene su


polinomio de paridad h(x), as:

Obtenga la forma cannica Gc=[ I : A ] de


G, luego Hc=[ AT : I ] y luego H aplicando
en orden inverso las permutaciones de
columnas.

Como g(x) divide a (xN + 1), entonces


(xN + 1) = g(x) h(x)
Es decir, h(x) = (xN + 1) / g(x).

El cdigo dual C se obtiene a partir de su


matriz generadora H, que es la matriz de
paridad de G.

El ideal dual Cp se obtiene a partir de su


polinomio generador hR(x), llamado el
polinomio recproco de h(x):
hR(x) = xk h(1/x)

Dada la matriz Gk N generar el cdigo C


as:

Dado el polinomio g(x) con gr(g(x))= r =N-k


generar Cp as:

[a1 ak]G

donde a1...ak
a(x)g(x)
es una secuencia de longitud k

con gr(a(x))<k

Tambin se denomina a esto codificacin de Tambin se denomina a esto codificacin de


a1 ak.
a(x).

La primera y cuarta analogas ya fueron demostradas. Las otras las probamos ahora.
Sea g(x) el polinomio generador de Cp.
h(x) es el polinomio de paridad de Cp. O, lo que es lo mismo:
w(x) h(x) = 0 si y slo si w(x)Cp
Demostracin:
i) Si w(x)Cp Entonces w(x) h(x) = 0
En efecto. Como w(x)Cp, w(x)=a(x)g(x). Luego,
w(x) h(x) = a(x)g(x) h(x)
= a(x)g(x)h(x) mod (xN+1)
por definicin de
pues (xN+1)=g(x)h(x)
= a(x)(xN+1) mod (xN+1)
=0
obvio
ii) Si w(x) h(x) = 0 Entonces w(x)Cp
En efecto. Como w(x) h(x) = w(x) h(x) mod (xN+1). Por hiptesis:
w(x) h(x) mod (xN+1) = 0. Es decir: w(x) h(x) = q(x) (xN+1). Es decir:
w(x) h(x) = q(x) g(x) h(x)
Dividiendo ambos lados de la expresin por h(x), tenemos:
w(x) = q(x)g(x)
163

Aunque h(x) es el polinomio de paridad de Cp, el isomorfismo que construimos no


preserva el producto interno. De manera que el ideal Cp generado por h(x) no es el dual
de Cp (en realidad es un ideal equivalente a l). Por ello es necesario el siguiente resultado.
Si g(x) es el polinomio generador de Cp [con (xN+1) = g(x)h(x)] y hR(x) = xk h(1/x)
Entonces hR(x) es el polinomio generador de Cp
(se entiende que gr(g(x))=r)
Demostracin:
Requerimos el siguiente resultado previo:
Denotaremos por roti(b) la rotacin de b i veces. Por ejemplo rot2(1110)=1011.
Sean a(x),b(x) los polinomios asociados las palabras a,b (de longitud N).
Para b=b0b1...bN-1, sea b=bN-1...b1b0.
a(x) b(x) = 0 si y slo si i a roti(b) = 0
Demostracin:
Veamos un ejemplo pequeo que aporte claridad, antes de la demostracin general.
Trabajemos para N=3 con a(x) = a0 + a1x + a2x2 y b(x) = b0 + b1x + b2x2
Es claro que:
a(x) b(x)
= a(x) b(x) mod (x3+1)
= [ (a0 + a1x + a2x2) (b0 + b1x + b2x2) ] mod (x3+1)
= [ a0b0 + (a0b1+a1b0)x + (a0b2+a1b1+a2b0)x2 + (a1b2+a2b1)x3 + (a2b2)x4 ] mod (x3+1)
en Z2[x] se obtiene [p(x) mod (xN+1)] reemplazando xN por 1 en p(x)
= [ a0b0 + (a0b1+a1b0)x + (a0b2+a1b1+a2b0)x2 + (a1b2+a2b1) + (a2b2)x ]
= [ (a0b0+a1b2+a2b1) + (a0b1+a1b0+a2b2)x + (a0b2+a1b1+a2b0)x2 ]
(*)
Tambin es claro que: Con a=a0a1a2 y b=b2b1b0
a b = a rot0(b) = (a0a1a2) (b2b1b0) = (a0b2+a1b1+a2b0)
(**)
a rot1(b) = (a0a1a2) (b0b2b1) = (a0b0+a1b2+a2b1)
(**)
2
a rot (b) = (a0a1a2) (b1b0b2) = (a0b1+a1b0+a2b2)
(**)
Ntese que los coeficientes de (*) son iguales a los valores en (**).
Para este ejemplo, es evidente que a(x)b(x) = 0 si y slo si i a roti(b) = 0.
Exactamente lo mismo sucede si hacemos las rotaciones sobre a en vez de sobre b.
Veamos ahora el caso general para cualquier valor de N.
Para b=b0b1...bN-1, sea b=bN-1...b1b0. Sea a=a0a1...aN-1
Sea a(x) = a0 + a1x + ... + aN-1xN-1. Sea b(x) = b0 + b1x + + bN-1xN-1.
Es claro que:
a rot0(b) = (a0a1... aN-2aN-1) (bN-1bN-2...b1b0) = (a0bN-1+a1bN-2++aN-2b1+aN-1b0)
a rot1(b) = (a0a1... aN-2aN-1) (b0bN-1 ... b2b1) = (a0b0+a1bN-1++aN-2b2+aN-1b1)

a rotN-1(b) = (a0a1... aN-2aN-1) (bN-2bN-3...b0bN-1) = (a0bN-2+a1bN-3++aN-2b0+aN-1bN-1)


Tambin es claro que:
a(x) b(x)
= a(x) b(x) mod (xN+1)
= [ (a0 + a1x + ... + aN-1xN-1) (b0 + b1x + + bN-1xN-1) ] mod (xN+1)

164

= [ a0b0 + (a0b1+a1b0)x + (a0b2+a1b1+a2b0)x2 +

+ (a0bN-1+a1bN-2++aN-2b1+aN-1b0)xN-1
+ (a1bN-1+a2bN-2++aN-2b2+aN-1b1)xN
+ (a2bN-1++aN-2b3+aN-1b2)xN+1 +

+ (aN-2bN-1+aN-1bN-2)x2N-3 + (aN-1bN-1)x2N-2 ] mod (xN+1)


= (a0b0+a1bN-1+a2bN-2++aN-2b2+aN-1b1)
+ (a0b1+a1b0+a2bN-1++aN-2b3+aN-1b2)x
+ (a0b2+a1b1++aN-1b3)x2
...
+ (a0bN-1+a1bN-2++aN-2b1+aN-1b0)xN-1
Note que el coeficiente de xj es: (a0bj+a1bj-1++ajb0+aj+1bN-1++aN-2bj+2+aN-1bj+1)
Como en el caso del ejemplo pequeo, los coeficientes de este polinomio son los
mismos que los valores de los productos internos a arriba. Es decir:
a(x)b(x) = 0 si y slo si i a roti(b) = 0.
Exactamente lo mismo sucede si hacemos las rotaciones sobre a en vez de sobre b.
Sea a(x)=g(x). Sea b(x)=h(x)=(xN+1)/g(x).
Como g(x)h(x) = (xN+1), es evidente (para x:=1/x) que: g(1/x)h(1/x) = ((1/x)N+1).
Luego, multiplicando ambos lados por xN:
xNg(1/x)h(1/x) = xN((1/x)N+1).
N
k r
r k
r
Como x = x x = x x , operando en ambos lados:
x g(1/x)xkh(1/x) = (xN+1).
Es decir, xkh(1/x)=hR(x) divide a (xN+1).
Sea h(x) = h0x0 + h1x1 + ... + hk-1xk-1 + hkxk. Luego hR(x) = hk + hk-1x + ... + h1xk-1 + h0xk.
Como gr(h(x))=k, es claro que gr(hR(x))=k.
Los resultados 9 y 8 de antes, prueban que hR(x) es el polinomio generador de un ideal
isomorfo a un cdigo cclico, llammosle Z, de dimensin r = N-k, cuya matriz generadora
Hr N es:
hk hk -1 ... h0 0 0 ... 0
0 hk hk -1 ... h0 0 ... 0

HR = ... ... ... ... ... ... ... ... Es claro que: v Z si y slo si v=[b1 br]HR

0 hk hk -1 ... h0 0
0 ...
0 ...
0 0 hk ... h1 h0
Esto prueba tambin que las N-k filas de la matriz HR forman un conjunto linealmente
independiente.
Probaremos ahora que HR genera C.
Recordemos que la matriz generadora G del cdigo C es:
g0 g1 ... gr 0 0 ... 0
0 g0 g1 ... gr 0 ... 0

G = ... ... ... ... ... ... ... ... Es claro que: w C si y slo si w=[a1 ak]G.

0 ... 0 g0 g1 ... gr 0
0 ... 0 0 g0 ... gr -1 gr
Sabemos que v C si y slo si wv=0
Sabemos tambin que g(x)h(x) = 0.

(con w C, por definicin).

El resultado previo afirma que la palabra g=g0g1...gN-1 (en la que los ltimos smbolos
posiblemente sean ceros) es ortogonal a la palabra b=hR=hN-1...h1h0 y a todas sus
rotaciones.

165

Sucede exactamente lo mismo al revs, es decir, la palabra hR es ortogonal a la palabra g y


a todas sus rotaciones.
Luego, como las palabras de C son combinaciones lineales de la palabra g y sus
rotaciones. Y como las palabras de Z=gen(HR) son combinaciones lineales de la palabra
hR y sus rotaciones. Y como en el Anexo 3 probamos que:
(au bv)w = a(uw) + b(vw).
Se deduce que todas las palabras de C son ortogonales a todas las palabras de Z, en
particular todas las palabras de C son ortogonales a hR y a todas sus rotaciones (ZC).
Las filas de HR forman un conjunto linealmente independiente de N-k elementos en C
(por la ortogonalidad y la definicin de cdigo dual).
Al ser N-k la dimensin de C (ver el anterior captulo) una de sus bases es este conjunto.
Entonces Z = C. Es decir, el cdigo generado por HR es C (el dual de C).
(Ntese que HR es la matriz de paridad de C).
Dado el isomorfimo entre ideales y cdigos, C es isomorfo a un ideal, llammosle Cp.
El resultado sigue.
Recordemos que un cdigo lineal C se dice sistemtico (o est en forma cannica) si su
matriz generadora G est en forma cannica. Es decir: Gk N = [ Ik k : Ak N-k ]
Se denomina as porque al contruir las palabras cdigo w=[a1 ak]G, el mensaje original
a1ak aparece ntegro a la izquierda y luego los smbolos de testeo (bits de paridad).
Otra posibilidad igualmente vlida, que indicamos ahora, es que: Gk N = [ Ak N-k : Ik k ].
En este caso, al contruir las palabras cdigo w=[a1 ak]G, el mensaje original a1ak
aparece ntegro al final con los smbolos de paridad al principio.
Con esta versin de canonicidad, podemos hacer algunas analogas ms con polinomios
respecto de lo que puede hacerse con matrices y/o palabras cdigo.
Trabajando con polinomios en Cp

Trabajando con matrices en el cdigo C


Codificacin sistemtica.
Se contruyen las palabras cdigo en forma
sitemtica, mediante su matriz generadora
Gc = [ A : I ], a partir de la matriz
generadora G mediante operaciones
elementales de filas y columnas.

Codificacin sistemtica.
Dado v(x), se obtiene su polinomio
sistemtico as:
w(x) = [v(x)xr mod g(x)] + v(x)xr

As la informacin aparece ntegra al final y As la informacin aparece ntegra al final y


la redundancia al principio.
la redundancia al principio.
Supondremos que se trabaja con cdigos
sistemticos.
El sndrome de la cadena w es:
s = wHT

Supondremos que se trabaja con


codificacin sistemtica.
El sndrome de w(x) es:
s(x) = w(x) mod g(x)

Esto es parte de la decodificacin de w.

Esto es parte de la decodificacin de w(x).

Demostraremos ahora los resultados que sustentan la ltima tabla.

166

Si g(x) es el polinomio generador de Cp y v(x) es un polinomio con gr(v(x))=k-1


Entonces su codificacin sistemtica es w(x) = [v(x)xr mod g(x)] + v(x)xr.
Demostracin:
Supondremos k bits de mensaje y r bits de redundancia.
Debido al requerimiento de sistematicidad, ya no es posible codificar v(x) as:
v(x)g(x) = w(x)
En su lugar, la codificacin debe incluir otro polinomio q(x) [en funcin de v(x)] tal que:
w(x) = q(x)g(x) = d(x) + v(x)xr
Es claro que es posible asignar q(x)=[d(x) + v(x)xr]/g(x).
Es evidente que estamos pensando que los coeficientes del polinomio d(x), constituyan la
redundancia, y que su grado sea a lo ms r-1.
Es claro tambin, para que la informacin aparezca ntegra a la derecha (luego de la
redundancia), que v(x) debe trasladarse al final de w(x), cuyo grado es a lo ms (N-1), y
como gr(v(x)) es a lo ms k-1, tal traslado sucede multiplicando v(x) por xr.
Resta determinar d(x).
Como w(x) = d(x) + v(x)xr, entonces:
w(x) + v(x)xr = d(x)
(1)
Recordemos tambin que w(x) = q(x)g(x), es decir w(x) mod g(x) = 0
Operando mdulo g(x) a cada lado de (1):
v(x)xr mod g(x) = d(x) mod g(x)
Pero, d(x) mod g(x) = d(x), pues gr(d(x))r-1 y gr(g(x))=r. Luego:
d(x) = v(x)xr mod g(x)
Resumiendo, la codificacin sistemtica de v(x), es decir, su polinomio sistemtico es:
w(x) = [v(x)xr mod g(x)] + v(x)xr
Sea g(x) el polinomio generador de Cp.
Si w(x)Z2N[x]/(xN+1) Entonces su sndrome es s(x) = w(x) mod g(x)
Demostracin:
Recordemos que hay un isomorfismo entre C y Cp.
Una forma de construir la matriz generadora cannica G del cdigo C, a partir del
polinomio g(x), se desprende del siguiente resultado previo.
Si g(x) -de grado r- es el polinomio generador de Cp (un subespacio de dimensin k)
Entonces { xr+i + Ai(x) / 0 i k-1 } es una base de Cp.
0 i k-1; gr(Ai(x))<r
donde Ai(x) = xr+i mod g(x)
Demostracin:
Es claro que xr+i = q(x)g(x)+Ai(x), es decir, Ai(x) + xr+i = qi(x)g(x)
Como q(x)g(x)Cp, {Ai(x) + xr+i / 0 i k-1} es un conjunto de k elementos de Cp.
Probaremos ahora que estos k elementos son linealmente independientes.
La ecuacin b0[A0(x) + xr] + ... + bk-1[Ak-1(x) + xr+k-1] = 0, se puede reescribir as:
[b0A0(x) +...+ bk-1Ak-1(x)] + [b0xr +...+ bk-1xr+k-1] = 0
Como gr(Ai(x))<r, ningn sumando del primer corchete influye en el segundo.
Es claro que los exponentes de los sumandos del segundo corchete son
consecutivos desde r hasta r+k-1, es evidente que la nica solucin se da para bi=0.
Eso muestra que {Ai(x) + xr+i / 0 i k-1} es un conjunto de k elementos
linealmente independientes.
Al ser k la dimensin de Cp, una de sus bases es este conjunto.

167

Del resultado previo y del isomorfismo entre C y Cp, se deriva que una matriz generadora
de C es la que tiene por filas los coeficientes de los polinomios {Ai(x) + xr+i / 0 i k-1}.
Sea Ai(x) = ai0 + ai1x + ... + ai(r-1)xr-1, luego:
[ a00
a01
[ a10
a11
G= [
[ a(k-1)0 a(k-1)1

[ A0(x) + xr ]
[
]
...
[
]
r+k-1
[ Ak-1(x) + x
]

... a0(r-1) 1 0 ... 0 ]


... a1(r-1) 0 1 ... 0 ]
...
]
... a(k-1)(r-1) 0 ... 0 1 ]

Esta matriz generadora es de la forma cannica Gk N=[Ak N-k : Ik k].


Sabemos que su matriz de paridad es H=[I(N- k) (N- k) : AT]. Es decir:
a10 ... a(k-1)0 ]
[ 1 0 ... 0 a00
[ 0 1 ... 0 a01
a11 ... a(k-1)1 ]
H= [
...
]
[ 0 ... 0 1 a0(r-1) a1(r-1) ... a(k-1) (r-1) ]
El sndrome de la palabra w=w1...wN se calcula as: s = wHT. Es decir:
[ 1
[ 0
[
s = [w1 w2 ... wN] [ 0
[ a00
[ a10
[
[ a(k-1)0

0
...
1 0 ...
...
...
a01 ...
a11 ...
...
a(k-1)1 ...

0
0

]
]
]
0 1
]
a0(r-1) ]
a1(r-1) ]
]
a(k-1)(r-1) ]

Efectuando el producto, que por razones de espacio ser representado por una matriz
transpuesta de (N- k)1:
+ wN-k+1 a00 +
wN-k+2 a10 + + wN a(k-1)0 ]T
[ w1
[
w2
+ wN-k+1 a01 +
wN-k+2 a11 + + wN a(k-1)1 ]
s= [
...
]
[
wN-k + wN-k+1 a0(r-1) + wN-k+2 a1(r-1) + + wN a(k-1)(r-1) ]
La representacin polinmica de s es:
+ wN-k+1 a00
+ wN-k+2 a10
+ + wN a(k-1)0
s(x) = w1
+ w2 x
+ wN-k+1 a01 x
+ wN-k+2 a11 x
+ + wN a(k-1)1 x
...
+ wN-k xr-1 + wN-k+1 a0(r-1) xr-1 + wN-k+2 a1(r-1) xr-1 ++ wN a(k-1)(r-1) xr-1
Al observar s(x) atentamente (por columnas, en la forma que lo hemos escrito) y
tomando en cuenta que Ai(x) + xr+i = qi(x)g(x), es decir Ai(x) = xr+i + qi(x)g(x), se ve que:
s(x) = w1+ w2 x + + wN-k xr-1
+ wN-k+1 A0(x) + wN-k+2 A1(x) + + wN Ak-1(x)
= w1+ w2 x + + wN-k xr
+ wN-k+1 [xr + q0(x)g(x)] + wN-k+2 [xr+1 + q1(x)g(x)] + + wN [xr+k-1 + qk-1(x)g(x)]
= w1+ w2 x + + wN-k xr-1 + wN-k+1 xr + wN-k+2 xr+1 + + wN xr+k-1
+ wN-k+1 q0(x)g(x) + wN-k+2 q1(x)g(x) + + wN qk-1(x)g(x)
= w(x) + [wN-k+1 q0(x) + wN-k+2 q1(x) + + wN qk-1(x)]g(x)

168

Es decir:
w(x) = [wN-k+1 q0(x) + wN-k+2 q1(x) + + wN qk-1(x)] g(x) + s(x) = Q(x) g(x) + s(x)
Ntese que como s(x)=w1+ w2 x ++wN-k xr-1 + wN-k+1 A0(x) + wN-k+2 A1(x)++wN Ak-1(x)
y como gr(Ai(x))<r, es evidente que gr(s(x))<r, por lo tanto:
s(x) = w(x) mod g(x).
Ejemplos:
Sea C = { 000, 101, 011, 110 } {0} el cdigo cclico de longitud N=3 visto antes.
Sea Cp = { 0, 1 + x2, x + x2, 1 + x } el ideal asociado a C.
1) g(x) = (1 + x) es el nico polinomio de grado mnimo r = 1 0 en Cp.
2), 3) y 4) Ntese que para:
b(x) = 0:
[b(x) (1 + x)] = 0.
b(x) = 1:
[b(x) (1 + x)] = (1 + x).
b(x) = x:
[b(x) (1 + x)] = (x + x2).
b(x) = 1+x: [b(x) (1 + x)] = (1 + x2).
Luego, Cp { b(x) (1 + x) / gr(b(x)) < (Nr)=2 }.
{ b(x) (1 + x) / gr(b(x)) < 2 } Cp.
Cp = { b(x) (1 + x) / gr(b(x)) < 2 }.
Es decir, (1 + x) genera Cp.
5) (1 + x) | (x3 + 1). En efecto: (x3 + 1) = (1 + x) (1 + x + x2) = (1 + x + x2) + (x + x2 + x3)
6) Como N = 3 y r = 1, es claro que k = 2.
{ g(x), x g(x), ... , xk-1 g(x) } = { 1 + x, x (1 + x) } = { 1 + x, x + x2 }
Dicho conjunto es linealmente independiente, pues la ecuacin:
a0 (1 + x) + a1 (x + x2) = 0
Para a0=0, a1=1 es: (x + x2) 0
Para a0=1, a1=0 es: (1 + x) 0
Para a0=1, a1=1 es: (1 + x) + (x + x2) = (1 + x2) 0
Recordemos que a0,a1{0,1}.
Luego, la nica solucin es para a0=a1=0.
La demostracin pginas atrs es ms interesante pues seala en general lo que aqu en
el ejemplo es evidente: Que gr([a0 (1 + x) + a1 (x + x2)]) < N=3.
De manera que el nico modo en que [a0 (1 + x) + a1 (x + x2)] mod (x3 + 1) = 0
es para 0 i 1: ai = 0.
Adems, { 1 + x, x + x2 } genera Cp.
En efecto:
0
= 0.(1 + x) + 0.(x + x2)
1 + x2 = 1.(1 + x) + 1.(x + x2)
x + x2 = 0.(1 + x) + 1.(x + x2)
1 + x = 1.(1 + x) + 0.(x + x2)
Luego, { 1 + x, x + x2 } es una base de Cp.
7) Es obvio en nuestro ejemplo que la dimension de Cp es k=2 (una de sus bases tiene 2
elementos).
8) La matriz generadora de C se puede escribir as:
1 1 0
G =
Esta matriz genera C. En efecto:
0 1 1

169

1 1 0
[0 1]
= [(0.1+1.0) (0.1+1.1) (0.0+1.1)] = [0 1 1]

0 1 1
1 1 0
[1 0]
= [(1.1+0.0) (1.1+0.1) (1.0+0.1)] = [1 1 0]

0 1 1
1 1 0
[1 1]
= [(1.1+1.0) (1.1+1.1) (1.0+1.1)] = [1 0 1]

0 1 1
[0 0] G
= [0 0 0]
La dimensin de C es el nmero de pivotes de la forma escalonada de G: dim(C) = 2.
9) Como g(x) = (1 + x) es un factor de (x3 + 1), ya vimos que es el polinomio generador
del ideal Cp = { 0, 1 + x2, x + x2, 1 + x }.
Cuyo cdigo cclico asociado es C = { 000, 101, 011, 110 }.
Y efectivamente g(x) es el polinomio generador de un cdigo cclico C.
10) Tambin ya vimos que para el ideal { 0, 1 + x2, x + x2, 1 + x } se obtiene su polinomio
generador g(x) eligiendo el polinomio de menor grado ( 0), en este caso g(x) = 1 + x.
11) El polinomio de paridad de g(x) = (1 + x), se obtiene as:
h(x) = (xN + 1) / g(x) = (x3 + 1) / (1 + x) = (1 + x + x2)
h(x) trabaja como polinomio de paridad en el siguiente sentido:
w(x) h(x) = 0 si y slo si w(x)Cp.
En efecto:
Para wC, digamos 011:
w(x) h(x) = (x + x2) (1 + x + x2) = (x + x2) (1 + x + x2) mod (x3 + 1)
= (x + x4) mod (x3 + 1) = 0
Para wC, digamos 100:
w(x) h(x) = ( 1 ) (1 + x + x2) = ( 1 ) (1 + x + x2) mod (x3 + 1)
= (1 + x + x2) mod (x3 + 1) = (1 + x + x2)
El comportamiento es anlogo para las otras palabras que estn en C y para las otras
Palabras que no estn en C.
12) El ideal dual Cp se obtiene a partir de:
hR(x) = xk h(1/x) = x2 (1 + 1/x + 1/x2) = (x2 + x + 1) = (1 + x + x2) = h(x)
El cdigo dual C, asociado al ideal Cp, tiene por matriz generadora:
HR = [1 1 1] De donde C = { 000, 111 }
Que ciertamente es lineal y cclico y tiene todas sus palabras ortogonales a las de C.
Ntese que esto no siempre sucede y en general el cdigo C asociado al ideal
generado por h(x) es lineal y cclico, pero no es el dual de C.
Constatamos ello en este otro ejemplo:
(x7 + 1) = (1 + x2 + x3 + x4) (1 + x2 + x3) = g(x) h(x)
Luego g(x) genera Cp.
Es claro que (1 + x2 + x3 + x4)Cp.
Tambin es claro que su palabra cdigo asociada 1011100C.
Si tomamos a h(x) como el polinomio generador de un ideal Cp.
Es claro que (1 + x2 + x3)Cp.
Tambin es claro que su palabra cdigo asociada 1011000C.
Pero (1011100) (1011000) = 1 0. Luego C no es el dual de C.
Puede verificarse sin embargo que hR(x) = x3 h(1/x) = (1 + x + x3) genera el ideal Cp
cuyo cdigo asociado C es el dual de C. De hecho la multiplicacin GHRT (donde las
matrices G y HR se obtienen de g(x) y hR(x) como se indic) nos da:

170

1 1 0 1 0 0 0
1 0 1 1 1 0 0
0 0 0 0
0
1
1
0
1
0
0
= 0 0 0 0
GHRT = 0 1 0 1 1 1 0

0 0 1 1 0 1 0
0 0 1 0 1 1 1

0
0
0
0

0 0 0 1 1 0 1
13) Ya vimos en el inciso 4) como generar Cp={0, 1 + x2, x + x2, 1 + x}a partir de (1 + x).
Ntese en tal inciso cmo se codifican cada uno de los polinomios b(x).
Y de manera isomorfa cmo se codifican sus palabras asociadas.
Por ejemplo:
a(x) = b(x) = 1+x
se codifica as: (1 + x2).
Por asociacin, la palabra:
11
se codifica as: 101
14) Dado v(x) = b(x) = 1+x, se obtiene su polinomio sistemtico as:
w(x) = [v(x)xr mod g(x)] + v(x)xr = [(1+x)x mod (1+x)] + (1+x)x
= [(x+x2) mod (1+x)] + (x+x2) = [ 0 ] + (x+x2) = (x+x2)
Por asociacin, la codificacin sistemtica de la palabra 11 es: 011
As la informacin aparece ntegra al final y la redundancia al principio.
Una presentacin muy popular de esta codificacin sistemtica, que obtiene
exactamente lo mismo, es como sigue.
- Obtener la palabra, de longitud k, asociada a v(x). Escribirla en reversa.
Aadirle r ceros a la derecha.
(a)
- Obtener la palabra , de longitud r, correspondiente a g(x). Escribirla en reversa. (b)
- Dividir (a) entre (b) -divisin en aritmtica mdulo 2-. Obtener el residuo.
Como slo interesa el residuo, esta divisin puede hacerse haciendo XOR de
izquierda a derecha entre (a) y (b) desplazando (b)-.
- La codificacin se obtiene escribiendo este residuo, de longitud r, en reversa y
agregando a su derecha la palabra asociada a v(x).
En el ejemplo: Residuo de 110 11 en aritmtica mdulo 2:
110
XOR 11
000
equivalente a 0
Luego la codificacin es: 011.
15) Suponiendo que trabajamos con codificacin sistemtica. La decodificacin de w(x)
pasa por calcular su sndrome as: s(x) = w(x) mod g(x).
Por ejemplo para w(x) = (x+x2), su sndrome es s(x) = (x+x2) mod (1+x) = 0.
Se puede hacer algo parecido al inciso 14 para obtener el sndrome apelando a la
divisin binaria.

Hay familias especficas de cdigos cclicos, as como otros de diseo ms reciente, que
reciben su propio nombre: de Reed-Muller, de Bose-Chaudhuri-Hocquenghem (BCH),
cdigos de Reed-Solomon, de correccin por rfagas, convolucionales, de redundancia
cclica (CRC), turbo cdigos y un cada vez menos corto etctera.
Todos son ellos son materia de otros captulos que el lector puede buscar en textos que no
sean introductorios como este que acaba.

171

ANEXO 1
lim pi logr (1/pi ) = 0

pi > 0

Demostracin:
Qu sucede con el lmite lim x ln(1/x ) ?
x > 0
lim x ln(1/x ) = lim ( [ln(1/x )/1]
x > 0
x > 0

[1/x ] )

obvio
indeterminacion del tipo /
puede aplicarse L'Hopital

= lim ( [ln(1/x )/1]' / [1/x ]' )


x > 0
= lim ( [x (- 1/x2) / 1] / [ - 1/x2] )
x > 0
= lim ( [- 1/x] / [ - 1/x2] )
x > 0

derivando (+ regla de la cadena)


obvio

= lim ( x )
x > 0

obvio

=0
As pues,
lim pi logr (1/pi ) = [1/ ln(r)] [ lim pi ln(1/pi ) ]

pi > 0

pi > 0

pues logr z = (loge z / loge r)

= [1/ ln(r)] [ 0 ]

por el anterior resultado

=0

obvio

172

ANEXO 2
Sea l>0
Si x>0 Kx xl

Entonces K 1

Demostracin:
Supongamos que K>1
Es claro que x>0
Sabemos que

Kx > 0
l>0

Luego, como x>0 Kx xl


x>0 (1 / l) (x / Kx)

resulta

Sea f(x) = 1/ l
Sea g(x) = x / Kx
Como las funciones f(x) y g(x) son tales que x>0 f(x) g(x) es cierto.
Tal desigualdad tambin se debe cumplir en el lmite.
Es decir:
lim f(x) lim g(x)
x >
x >
Esto es,
lim 1/ l lim x / Kx
x >
x >
El primer lmite es obvio y el segundo se puede resolver por L'Hopital, de donde:
1/ l lim 1 / ln(k)Kx
(recuerde que nuestro supuesto es que K>1) es decir,
x >
1/ l 0
Por otro lado, si l>0 es obvio que 1/ l> 0
1/ l 0 & 1/ l> 0
Esta contradiccin, prueba el enunciado

173

ANEXO 3
Campos (Fields) y Espacios lineales (espacios vectoriales)
Se llama grupo al par (G, +) donde
G
es un conjunto
+:GXGG
es una ley de composicin interna sobre G,
asociativa, con neutro e inverso
El orden de un grupo es el nmero de elementos de G.
Para cada entero p hay un grupo denominado el grupo cclico de orden p, donde:
G = Zp = { 0, 1, , (p-1) } y la operacin + es la suma mdulo p: i + j = (i + j ) mod p
Ejemplos:
El siguiente es un grupo cclico de orden 2.
G = Z2 = { 0, 1 }
+ es la suma mdulo 2:
0+0=0
0+1=1
1+0=1
1+1=0
El neutro es 0.
El inverso de 0 es 0. El inverso de 1 es 1.
Representaremos { 0, 1 }N por 2N.
Sea G = V = 2N con N=3, es decir,
V = 23 = { (0,0,0), (0,0,1), (0,1,0), (0,1,1), (1,0,0), (1,0,1), (1,1,0), (1,1,1) }
es la suma ordinaria de vectores, es decir, si w=(w1, w2, w3) y v=(v1, v2, v3),
definimos w v = (w1, w2, w3) (v1, v2, v3) = (w1+v1, w2+v2, w3+v3)
con + representando la suma mdulo 2
Es claro que es
asociativa: w v u = w (v u) = (w v) u
con neutro 0=(0,0,0)
e inverso: el inverso de w=(w1, w2, w3) es w=( w1, w2, w3) con wj el inverso de wj
El par (V, ) es un grupo de orden 8.
Se llama grupo abeliano a un grupo conmutativo, es decir, a un grupo donde la operacin
+ es conmutativa.
Ejemplo:
El grupo (V, ) de arriba es un grupo abeliano pues la suma de vectores es conmutativa.

Se llama anillo (ring) a una tripleta (R, +, ) donde


(R, +)
es un grupo abeliano
:RXRR
es una ley de composicin interna sobre R, asociativa
es distributiva sobre +:
a (b + c) = (a b) + (a c)
174

Es usual denominar adicin y multiplicacin a las operaciones + y


Se llama anillo conmutativo a un anillo donde la operacin es conmutativa.
Se llama anillo con unidad a un anillo donde la operacin tiene neutro.
Se llama anillo con divisin a un anillo con unidad donde cada elemento distinto del
neutro 0 tiene inverso multiplicativo.
Se llama campo (field) a un anillo con divisin conmutativo en el cual 01. Es decir, a un
tripleta (F, +, ) donde
(F, +)
es un grupo abeliano
(F, )
es un grupo abeliano
(el inverso es para los elementos distintos de 0)
es distributiva sobre +:
a (b + c) = (a b) + (a c)
01
Se llama campo finito a un campo en el que el conjunto F es finito .
Junto a otras consideraciones que no enfatizaremos los campos finitos que acten sobre los
enteros mdulo p se denominan campos de Galois y se denotan como Zp , Fp o GF(p).
Ejemplo:
Con F = Z2 = { 0, 1 }
La operacin + como la suma mdulo 2.
la multiplicacin mdulo 2:
00=0
01=0
10=0
11=1
Con neutro 1 y donde el inverso de 1 es 1.
Resulta que (Z2, +, ) es un campo, conocido como campo binario, campo Z2, F2 o GF(2).
Se llama espacio lineal sobre el campo (F, +, ) a la sextupla (V, F, , +, , ) donde
es un grupo abeliano
(V, )
(F, +, )
es un campo
:FXVV
es una funcin que satisface las siguientes condiciones
1) a(bw) = (ab)w
a,b F; w V
a,b F; w V
2 (a+b)w = aw bw
3) b(w u) = bw bu
b F; u,w V
4) 1w = w
w V; 1 es el neutro (multiplicativo) de
Dado que muchos espacios lineales son espacios geomtricos de vectores, usualmente un
nombre alternativo al de espacio lineal es el de espacio vectorial; de manera que se habla
de vectores (V), suma de vectores ( ), escalares (F) y multiplicacin por escalares ().
V debe ser no vaco pero puede ser finito, en cuyo caso se tiene un espacio lineal finito.

175

Ejemplos:
Son conocidos los espacios euclidianos o n-dimensionales con las operaciones comunes de
adicin y producto (en el conjunto de los reales R); junto a la suma de vectores y
multiplicacin por escalares (en el conjunto de las n-tuplas reales Rn).
Utilizaremos recurrentemente el siguiente espacio lineal definido sobre el campo binario.
(V, F, , +, , )
V = 2N = { (0, ,0), , (1, ,1) } (donde el nmero de N-tuplas es 2N)
F = { 0, 1 }
es la suma de vectores (mdulo 2).
+, son la suma y multiplicacin mdulo 2.
La multiplicacin por escalares se define as: 0w = (0, , 0) y 1w = w
Se llama subespacio lineal sobre el campo (F, +, ) a la sextupla (S, F, , +, , ) donde
es un espacio lineal
(V, F, , +, , )
S V

es aun una ley de composicin interna sobre S, es decir,


(w u) S para u,w S
(bw) S
para w S y b F
Es comn mencionar a un (sub)espacio lineal indicando slo los conjuntos V( S) y F.
Las siguientes definiciones se aplican tanto a espacios lineales como a subespacios
lineales.
Se llama combinacin lineal finita a la suma v = a1v1 akvk
V
es un (sub)espacio lineal sobre F
k
es un entero positivo
ai F
vi V
De las definiciones para y es claro que v V.

donde

Un subconjunto W de un (sub)espacio lineal V sobre F, se llama linealmente


independiente cuando para cualquier conjunto {u1, , um } W la ecuacin
a1u1 amum = (0, , 0)
tiene como nica solucin la solucin trivial, es decir: ai=0.
Un conjunto que no es linealmente independiente se llama linealmente dependiente.
Se llama espacio generado o envolvente lineal (o span set) de W V (V es un
(sub)espacio lineal sobre F) al conjunto de todas las combinaciones lineales finitas de los
elementos de W. Se denota por gen(W).
Se llama base de un (sub)espacio lineal V sobre F, a un subconjunto de V, llamado B,
linealmente independiente, cuyo envolvente lineal es V.
La base de un (sub)espacio lineal V sobre F no es necesariamente nica.

176

Se llama dimensin de un (sub)espacio lineal V sobre F al nmero de elementos de


cualquier base de V, se denota por dim(V).
Cualquier texto de lgebra Lineal muestra que si le aadimos otro elemento a una base B
de V el conjunto resultante se torna linealmente dependiente, es decir, todas las bases de V
tienen el mismo nmero de elementos.
Ejemplos:
Presentaremos un caso concreto del espacio lineal finito ya visto (V, F, , +, , )
V = 23 = { (0,0,0), (0,0,1), (0,1,0), (0,1,1), (1,0,0), (1,0,1), (1,1,0), (1,1,1) }
F = { 0, 1 }
Las operaciones , +, , son como antes.
Una combinacin lineal posible es: (0,1,0) = 1(0,0,0) 1(0,1,0) 0(1,1,1)
Sea W = { (0,0,1), (1,1,0), (1,1,1) }. Es claro que W V
La ecuacin a1(0,0,1) = (0,0,0) tiene nica solucin con a1=0
La ecuacin a1(0,0,1) a2(1,1,0) = (0,0,0) tiene nica solucin con a1=0, a2=0
Pero la ecuacin a1(0,0,1) a2(1,1,0) a3(1,1,1) = (0,0,0) tiene solucin con
a1=1, a2=1, a3=1. En efecto,
1(0,0,1) 1(1,1,0) 1(1,1,1) = (0,0,1) (1,1,0) (1,1,1)
= (0+1+1, 0+1+1, 1+0+1) = (0,0,0)
Luego W es linealmente dependiente.
Sea W = { (0,0,1) }
La ecuacin a1(0,0,1) = (0,0,0) tiene nica solucin con a1=0
El envolvente lineal de W es:
gen(W) = { (0,0,0), (0,0,1) } pues las nicas combinaciones lineales son del tipo
a1(0,0,1); ms concretamente 0(0,0,1) y 1(0,0,1).
Sea B = { (0,0,1), (0,1,0), (1,0,0) }. Es claro que B V
Si aadimos a B el elemento (1,1,1) el conjunto resultante es linealmente dependiente,
pues la ecuacin a1(0,0,1) a2(0,1,0) a3(1,0,0) a4(1,1,1) = (0,0,0) tiene
(tambin) la solucin a1=1, a2=1, a3=1, a4=1.
Dejaremos al lector comprobar que B es linealmente independiente y que gen(B)=23, es
decir, B es base de dicho espacio lineal (que tiene as dimensin 3).
Sea S = { (0,0,1) }. Es claro que S V.
Obviamente (0,0,1) (0,0,1) = (0,0,0).
Ntese que (0,0,1) S, pero (0,0,0) S , luego S no puede ser un subespacio lineal de V=23
sobre el campo binario.
Sea S = { (0,0,0), (1,0,1), (0,1,1), (1,1,0) }. Es claro que S V.
Es fcil comprobar que S es cerrado respecto de la operacin .
Adems se cumple que (bw) S, pues con b=0 se obtiene (0,0,0) y con b=1 se obtiene el
mismo elemento w S.
Luego S es un subespacio lineal de V=23 sobre el campo binario.
Sea B = { (1,0,1), (0,1,1) }. Es claro que B S

177

Es fcil comprobar que gen(B)=S.


Dejaremos al lector comprobar que B es linealmente independiente.
Es decir, B es la base del subespacio lineal S (que tiene as dimensin 2).
Ser til representar los elementos de una base como filas de una matriz.
1 0 1
En el ltimo ejemplo B =

0 1 1

Sea S un (sub)espacio lineal finito Entonces gen(S)=S.


Demostracin:
Sea v gen(S), es decir, v=a1v1 akvk (vi S, aj F, k>0). Dado que S es un
(sub)espacio lineal, es claro que aivi S. Si asociamos de a dos los operandos de , es
claro tambin que (aivi ajvj) S. Si seguimos asociando recurrentemente de a dos se
deduce que v S.
Inversamente si v S, es evidente que v gen(S) con a1=1, v1=v y k=1.
Al igual que una base B, podemos representar los elementos de un (sub)espacio lineal
finito S como filas de una matriz.
Ejemplo:
0 0 0
1 0 1

S =
0 1 1

1 1 0

Sean {u1, ... ,um} las filas de una matriz A (pueden ser los elementos de una base -del
espacio lineal 2N o de algn subespacio de l-, o todos los elementos de algn (sub)espacio
lineal no solo los de la base-, pero pueden ser tambin cualesquier otros elementos,
estamos pensando en elementos de 2N).
Sean {c1, ... ,cN} las columnas de una matriz A.
Se llama espacio de las filas de A al conjunto gen({u1, ... ,um}), denotado por RA.
Se llama espacio de las columnas de A al conjunto gen({c1, ... ,cN}), denotado por CA.
En particular, cuando las filas de la matriz A son los elementos de una base B de un
(sub)espacio lineal, es obvio que RA es un (sub)espacio lineal.
Dado que gen(S)=S cuando S es un (sub)espacio lineal finito, lo mismo sucede si las filas
de la matriz son los elementos de S, es decir, RA es un (sub)espacio lineal tambin.
Sin embargo, de manera general puede mostrarse que RA y CA son subespacios lineales de
2N y 2M cuando A es de NxM. Lo haremos para CA:
Como CA=gen({c1, ... ,cN}) con ci una columna de A. Basta mostrar que para v,u CA
entonces av CA y v u CA. Lo primero es obvio pues a=1 o bien a=0.
Para lo segundo:

178

Como v=a1c1 aNcN y u=b1c1 bNcN (algunos ai,bj pueden ser cero, por
concepto de combinacin lineal). Luego, v u=(a1c1 aNcN) (b1c1 bNcN)
que por asociatividad y conmutatividad y la condicin 2 en la definicin de espacio lineal
puede reescribirse como v u=(a1+b1)c1 (aN+bN)cN, que por ser F un campo
puede reescribirse como v u=d1c1 dNcN, es claro entonces que v u CA.
Operaciones elementales sobre filas.- Son la permutacin de filas, la multiplicacin de
una fila por una constante diferente de cero y el reemplazo de la fila ui por ui buj.
En el espacio lineal sobre el campo binario que estamos viendo, se reducen a permutacin
de filas y el reemplazo de la fila ui por ui uj, es decir sumar la fila j a la fila i.
Se dice que las matrices A y D son equivalentes por filas si una se puede obtener de la
otra mediante operaciones elementales sobre filas.
Cualquier texto de lgebra Lineal muestra que si A es equivalente a D entonces RA=RD.
Adems la dimensin de RA es el nmero de pivotes en su forma escalonada. O lo que es
lo mismo, las filas diferentes de cero en la forma escalonada de la matriz A, constituyen
una base para RA.
As pues, la determinacin de la base de un (sub)espacio lineal finito S puede hacerse
mediante el mtodo de Gauss colocando los elementos de S como filas de una matriz y
hallando su forma escalonada. Las filas diferentes de cero son la base buscada.
Operaciones elementales sobre columnas.- Consideraremos la permutacin de
columnas.
Analicemos (un)el (sub)espacio lineal sobre el campo binario, sea G la matriz que
representa una base de dicho (sub)espacio lineal. Sea G una matriz que se obtiene
permutando las columnas i-sima y j-sima de G. Es decir:
u1 b11 ... b1i ... b1j ... b1N
G = ... = ... ... ... ... ... ... ...
uk bk1 ... bki ... bkj ... bkN
b11 ... b1j ... b1i ... b1N
G= ... ... ... ... ... ... ...
bk1 ... bkj ... bki ... bkN

Recordemos que gen(G) es todo el (sub)espacio lineal en consideracin. Dado que


a1u1 akuk
=
a1[b11 .. b1i .. b1j .. b1N] ak[bk1 .. bki .. bkj .. bkN]
=[a1b11 .. a1b1i .. a1b1j .. a1b1N] [akbk1 .. akbki .. akbkj .. akbkN]
=[a1b11 +...+ akbk1, , a1b1i +...+ akb1i, , a1b1j +...+ akbkj, ..., a1b1N +...+ akbkN]
(hemos puesto comas y negrita para aportar claridad)
Una combinacin lineal finita de G puede representarse as:
b11 ... b1i ... b1j ... b1N
[a1 ak]G = [a1 ak] ... ... ... ... ... ... ...
bk1 ... bki ... bkj ... bkN

179

Veamos cmo es una combinacin lineal finita de G:


b11 ... b1j ... b1i ... b1N
[a1 ak]G = [a1 ak] ... ... ... ... ... ... ...
bk1 ... bkj ... bki ... bkN
=[a1b11 +...+ akbk1, , a1b1ij+...+ akb1j, , a1b1i +...+ akbki, ..., a1b1N +...+ akbkN]
(hemos puesto comas y negrita para aportar claridad)
Es decir, las elementos de gen(G) son el resultado de permutar los elementos de gen(G)
en exactamente las mismas posiciones i-sima y j-sima. De este modo ambos espacios
lineales [gen(G) y gen(G)] difieren slo en el orden de sus elementos.
Producto interno (o producto punto) y ortogonalidad.- Sean v,w 2N. Se define su
producto interno as:
: 2N 2N F
donde v = v1...vN y w = w1...wN
vw = v1w1 + ... + vNwN
(en rigor debiera escribirse vi wi pero nos tomaremos
la licencia de escribir en vez de )
Diremos que las cadenas v,w son ortogonales cuando vw = 0.
Ntese que (por la conmutatividad del producto mdulo 2):
vw = v1w1 + ... + vNwN = w1v1 + ... + wNvN = wv
Adems, mostraremos que (au bv)w = a(uw) + b(vw):
Sean u=u1...uN , v=v1...vN , w=w1...wN
(au bv)w
= (a[u1...uN] b[v1...vN])w
obvio
obvio
= ( [au1 ... auN] [bv1 ... bvN])w
= [au1+bv1 ... auN+bvN]w
suma de vectores
obvio
= [au1+bv1 ... auN+bvN][w1...wN]
= (au1+bv1)w1 + ... + (auN+bvN)wN
producto interno
= (au1w1+bv1w1) + ... + (auNwN+bvNwN)
obvio
= (au1w1 + ... + auNwN) + (bv1w1 + ... + bvNwN) conmutatividad y asociatividad
= a(u1w1 + ... + uNwN) + b(v1w1 + ... + vNwN)
obvio
= a([u1 ...uN][w1...wN]) + b([v1 ...vN][w1...wN]) producto interno
obvio
=
a(uw) + b(vw)
Ncleo de una matriz.- Sea Gk N la matriz generadora del subespacio lineal C.
Se denomina ncleo (o kernel o espacio nulo) de G al conjunto:
donde 0 representa una columna de k ceros
NG = { v 2N / Gv = 0 }
v debe estar como columna en el producto Gv
NG es un subespacio lineal de 2N.
En efecto, la multiplicacin por un escalar no nulo b, en nuestro contexto, podemos
reducirla al escalar b=1, de manera que si v NG es inmediato que (bv) NG.
Por otro lado sean u,v NG, es decir, Gu = 0 y Gv = 0. Veamos qu sucede con
obvio
w = u v: Gw = G(u v)
= Gu Gv
ley distributiva para la multiplicacin de matrices
= 0 0
por hiptesis
= 0
obvio
Luego w NG, lo que prueba el enunciado. (En rigor G puede ser cualquier matriz)
180

Imagen de una matriz.- Sea Gk N la matriz generadora del subespacio lineal C.


Se denomina imagen de G al conjunto:
I G = { u 2k / Gv = u, v 2N }
v debe estar como columna en el producto Gv
(En rigor G puede ser cualquier matriz)
Cualquier texto de lgebra Lineal muestra que IG es un subespacio lineal de 2k, adems de
los siguientes resultados importantes:
1) (espacio de las columnas) CG = IG (imagen de G)
2) El subespacio lineal IG (la imagen de G) tiene dimensin k
k recibe tambin el nombre de rango de G
3) dim(CG) = dim(RG)
(dimensin del espacio de las columnas) = (dimensin del espacio de las filas)
donde N es el nmero de columnas de G
4) k + dim(NG) = N
De 4 se deduce la siguiente importante propiedad:
5) El subespacio lineal NG (el ncleo de G) tiene dimensin N-k, es decir,
dim(NG) = N - k.
Co-conjunto (en ingls coset).- Sea C un subespacio lineal de 2N. Sea u 2N.
Llamaremos co-conjunto de C al siguiente conjunto:
u+C = { u+w / w C }
Es claro que no siempre la secuencia de ceros pertenece al co-conjunto (-por ejemplo con
uC-. Es decir para u+w en el co-conjunto no siempre b(u+w)=0 -con b=0- est en el coconjunto). Luego, en general un co-conjunto no es un subespacio lineal. Tiene sin
embargo propiedades interesantes.
Sea C un subespacio lineal (finito) de 2N con dimensin k
Entonces
i) Si u+C es un co-conjunto de C Entonces u+C tiene 2k elementos
ii) Si v u+C Entonces v+C=u+C
iii) Si u 2N Entonces u pertenece nicamente a un co-conjunto
iv) Hay exactamente 2N-k co-conjuntos
v) Los 2N-k co-conjuntos son disjuntos y cubren 2N
Demostracin:
i) Es evidente que hay tantos elementos en u+C como elementos hay en C.
Si C tiene dimensin k, es decir, k elementos en su base (digamos B={v1,, vk}), cada
con aj F
elemento de C es una combinacin lineal de su base: a1v1 akvk
k
Como aj puede ser cualquiera de 2 valores (0 o 1) es claro que hay 2 combinaciones
posibles. Es decir, C tiene 2k elementos. El resultado sigue.
(*)
ii) Sea v u+C. Luego -por definicin- v=u+w (w C).
Entonces:
v+C = { v+w' / w' C }
por definicin
= { u+w+w' / w' C, w C }
por (*)
= { u+w'' / w'' C }
por ser C un subespacio lineal
= u+C
por definicin
En el penltimo paso, como w,w' C, es decir, tomamos todos los distintos pares de
elementos en C, su suma w+w' abarca todo C. Ello es evidente tomando w'=0.

181

iii) Como C es un subespacio lineal, debe contener a la secuencia de ceros.


Luego, u u+C (tomando w=0).
Supongamos que u v+C (con v+Cu+C).
Por definicin de co-conjunto u=v+w' (w' C).
Luego, v=u+w'. Es decir, -por definicin- v u+C. Pero entonces -por ii- v+C=u+C.
El resultado sigue.
iv) Hay 2N elementos en 2N y por iii- cada uno de ellos pertenece nicamente a un coconjunto. Dado que -por i- cada co-conjunto tiene 2k elementos, es evidente que deben
haber: 2N/2k = 2N-k co-conjuntos.
v) Es una simple consecuencia de iii y iv.

182

ANEXO 4
Sea b(x) = b1x0 + b2x1 + ... + bNxN-1 + bN+1xN

un polinomio de grado n.

Sea Z2[x] el conjunto de todos los polinomios (de cualquier grado) con coeficientes bi en
GF(2) = Z2 = {0,1}.
Es claro - por lo visto en el Anexo 3- que:
El par (Z2[x], +) es un grupo abeliano. Donde + denota la suma -conmutativa- de
polinomios, con neutro b(x) = 0 y debido al campo binario cada polinomio es su propio
inverso.
La tripleta (Z2[x], +, ) es un anillo conmutativo con unidad. Donde denota la
multiplicacin -conmutativa- de polinomios, con neutro b(x) = 1; y donde la
multiplicacin de polinomios es distributiva sobre la adicin de polinomios:
b(x)[c(x)+d(x)] = b(x)c(x) + b(x)d(x)
As pues (Z2[x], +, ) es el anillo de todos los polinomios con coeficientes en Z2.
Lamentablemente no sucede lo mismo si nuestro conjunto es de todos los polinomios con
coeficientes en Z2 de grado N. En efecto, basta verificar que la multiplicacin de dos
polinomios de grado N, no es de grado N sino de grado 2N, quebrndose la ley de
composicin interna para la operacin multiplicacin de polinomios.
Sin embargo, si denotamos por Z2N[x] al conjunto de todos los polinomios de grado menor
a N (con coeficientes en Z2), entonces podemos definir una operacin (multiplicacin de
polinomios en el conjunto) que nos permita obtener un anillo.
Tal operacin se denomina multiplicacin de polinomios mdulo p(x) [donde p(x) es otro
polinomio] y se define -genricamente- as:
Sean q(x), t(x), p(x) polinomios con coeficientes en el campo F.
La multiplicacin de los polinomios q(x) y t(x) mdulo p(x) es el resto de dividir q(x)t(x)
entre p(x).
Ejemplo:
q(x) = x
t(x) = 1 + x
p(x) = x2 + 1
q(x) t(x) = q(x)t(x) mod p(x) = x(1 + x) mod (x2 + 1) = x + x2 mod (x2 + 1) = 1 + x
Es evidente que si p(x) = xN + 1, los resultados de la multiplicacin de polinomios mdulo
p(x), son polinomios de grado menor a N, es decir, es una ley de composicin interna.
As pues, es evidente que el par (Z2N[x], +) es un grupo abeliano. Donde + denota la suma
(evidentemente) conmutativa de polinomios, con neutro b(x) = 0 y, debido a que los
coeficientes estn en el campo binario, cada polinomio es su propio inverso.
Tambin la tripleta (Z2N[x], +, ) es un anillo conmutativo con unidad. Donde denota la
multiplicacin de polinomios mdulo (xN + 1).
En efecto, ya mostramos que es una ley de composicin interna.

183

La siguiente igualdad muestra que es asociativa:


p(x) [q(x) t(x)]
= p(x) [q(x) t(x) mod (xN + 1)]
por definicin de
= p(x) [q(x) t(x) mod (xN + 1)] mod (xN + 1)
por definicin de
= p(x) [q(x) t(x) k(x) (xN + 1)] mod (xN + 1)
k(x): cociente de q(x)t(x)/(xN + 1)
= [p(x) q(x) t(x) p(x) k(x) (xN + 1)] mod (xN + 1) distribuyendo p(x)
= p(x) q(x) t(x) mod (xN + 1)
operando mod
= [p(x) q(x) t(x) k(x) (xN + 1) t(x) ] mod (xN + 1) k(x): cociente p(x)q(x)/(xN + 1)
= [p(x) q(x) k(x) (xN + 1) ] t(x) mod (xN + 1)
factorizando t(x)
= [p(x) q(x) mod (xN + 1) ] t(x) mod (xN + 1)
definicin de mdulo
= [p(x) q(x) mod (xN + 1) ] t(x)
por definicin de
= [p(x) q(x)] t(x)
por definicin de
Por otro lado:
p(x) [q(x) + t(x)] = p(x) [q(x) + t(x)] mod (xN + 1)
= [p(x) q(x) + p(x) t(x)] mod (xN + 1)
= [p(x) q(x) mod (xN + 1)] + [p(x) t(x) mod (xN + 1)]
= p(x) q(x) + p(x) t(x)
Es decir, es distributiva sobre +.
Es claro que: q(x) t(x) = q(x)t(x) mod (xN + 1) = t(x)q(x) mod (xN + 1) = t(x) q(x),
es decir, es conmutativa.
Sean b(x)=1,p(x)Z2N[x]:
p(x) b(x) = p(x) 1 = p(x)1 mod (xN + 1) = p(x) mod (xN + 1) = p(x)
Es decir b(x) = 1 es el neutro para .
Es usual denotar a dicho anillo como Z2N[x]/(xN+1).
Por otro lado:
- Se sabe que F2 es el campo binario ({0, 1}, +, ), con la suma y multiplicacin mdulo 2
- Ya vimos que (Z2N[x], ) es un grupo abeliano donde se utiliza el smbolo para la
suma de polinomios- Definiendo as :{0, 1} Z2N[x] Z2N[x]
0 p(x) = 0
1 p(x) = p(x)
Es claro que (Z2N[x], {0, 1}, , +, , ) es un espacio lineal finito sobre F2.
Cp Z2N[x]/(xN+1) se denomina ideal cuando:
(Cp, ) es un subgrupo abeliano de (Z2N[x], )
p(x)Cp q(x)Z2N[x]/(xN+1) p(x)q(x)Cp
Una forma conocida de construir un ideal, tomando un polinomio g(x) 0, es as:
I = { g(x) q(x) / q(x)Z2N[x]/(xN+1) }
Que I sea un ideal es inmediato.

184

NDICE
extensin de la Fuente-M, 19
extensin de orden n de una fuente de
informacin de memoria nula, 9
forma cannica, 134
fuente afn o adjunta, 18
fuente de memoria nula, 6
fuente equiprobable, 6
fuente reducida, 64
fuente regular y ergdica, 15
Gibbs, 48
ideal, 155
informacin mutua, 73
instantneo, 26
L(C), 54
libre de prefijos, 23
lder, 142
lmite de Gilbert-Varshamov, 122
lmite de Hamming, 119
longitud media de un cdigo, 54
matriz de (testeo de) paridad, 135
matriz tpica, 142
mellizas, 57
Nguyen Hung Vu, 34
no-singular, 22
patrn de error, 142
Patterson y Sardinas, 24
Perron-Frobenius, 14
peso de una palabra cdigo, 132
polinomio generador, 158
principios de decodificacin, 103
reduccin elemental, 97
reduccin suficiente, 98
redundancia, 59
shannon, 61, 107
sndrome, 140, 166
singular, 22
sistema de entropas, 73
tabla de sndromes, 145
unvocamente decodificable, 24
velocidad del cdigo, 109

alfabeto (del) cdigo, 22


algoritmos de decodificacin, 142
arreglo estndar, 142
Blahut-Arimoto, 102
bloque, 22
canal binario borrador, 87
canal binario simtrico (BSC), 86
canal dbilmente simtrico, 86
canal simtrico, 86
canales ambiguos, 85
canales de informacin con ruido, 71
canales determinantes, 84
canales sin ruido, 83
cantidad de informacin, 6
Chapman-Kolmogorov, 14
co-conjunto, 142
codificacin aritmtica, 68
codificacin sistemtica, 166
cdigo dual, 134
cdigo equivalente, 133
cdigo extendido o expandido, 141
cdigo lineal, 130
cdigo maximal, 120
cdigo perfecto, 121
cdigos (del) canal, 115
cdigos cclicos, 154
cdigos de fano, 62
cdigos de Hadamard, 127
cdigos de Hamming, 125
cdigos de Huffman, 63
cdigos de paridad, 124
cdigos de Shannon, 62
compacto, 54
cota de Singleton, 147
distribucin estacionaria, 13
dual, 163
eficiencia, 59
entropa, 7
equivocacin del canal, 73
estandarizacin de las entradas, 117

185

BIBLIOGRAFA
Togneri Roberto, deSilva Christopher
"Fundamentals of Information Theory and coding Design"
Editorial Chapman & Hall
Primera Edicin. Ao 2002
Jones Gareth, Jones Mary
"Information and Coding Theory"
Editorial Springer
Segunda impresin. Ao 2002
Wells Richard
"Applied Coding and Information Theory for Engineers"
Editorial Prentice Hall
Primera Edicin. Ao 1999
Abramson Norman
"Information Theory and Coding"
Traduccin al espaol de Juan Antonio de Miguel Menoyo
Editorial Paraninfo
Primera Edicin. 1986

186

Вам также может понравиться