Escolar Documentos
Profissional Documentos
Cultura Documentos
CARRERA DE INFORMTICA
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
pi > 0
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
ii) pi = 1
i =1
S
s1
pi
p1
.
.
.
.
sq
pq
pi
s1
s2
s3
s4
0.2
0.1
0.35
0.35
Con q = 4
pi
s1
s2
1/2
1/2
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
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
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
r-its
i=1
Es decir,
S
s1
pi
p1
.
.
.
.
.
.
sq
pq
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
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
P=
0.2
0.8
0
0
0
0
0.4
0.6
0
1
0
0
0
0
0.5
0.5
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
Hr(S / sj1sj2 ... sjm) = - p(si / sj1sj2 ... sjm) logr p(si / sj1sj2 ... sjm)
i =1
como:
r-its
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
12
bits
bits
bits
bits
Hr (M) =
r-its
j=1
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
13
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.
14
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
15
0.8 0
0.2 0
P=
0 0.6
0 0.4
0 0
1 0
0 0.5
0 0.5
0 0
1 0
P=
0 0.6
0 0.4
0 0
1 0
0 0.5
0 0.5
0 0 1
P = 1 0 0
0 1 0
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
17
qm
= 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
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)
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
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
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
S
s1
pi
p1
.
.
.
.
.
.
sq
pq
C
w1
.
.
.
wq
S
s1
s2
s3
s4
s5
pi
1/5
1/5
1/5
1/5
1/5
C3
b
c
aa
ab
ac
C5
aa
a
b
bb
c
C6
ab
ba
abb
aba
ca
23
ii)
u L2
L1/u
Dos presentaciones equivalentes del mtodo (el cdigo C se trata como lenguaje) son:
24
S0 = C
S1 = (C/C) {}
S0 = C
Z=
U Si
i =1
Z=
U= S
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
U= S
= {,a,b,ab,ba,bb,ca,aba,abb}
i 1
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
27
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
29
30
TEOREMA DE KRAFT
i =1
r li 1
Si
i =1
Es claro que
i =1
i =1
r li
= 2 2 + 2 2 + 2 3 + 2 3 + 2 4 1
i =1
r li =
i =1
ni 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
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
Cuide que n1 r
De lo contrario habra singularidad.
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
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
34
Si
i =1
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)
i =1
i =1
= 13/16 1
Construyamos C:
Fase I:
v1 = 0
v2 = 1
v3 = 4
v4 = 5
v5 = 12
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
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
j 1
i =1
j 1
En efecto,
j 1
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
j 1
= logr (r lj ) + logr ( r li )
=
lj
i =1
j 1
+ logr ( r li )
i =1
Logaritmo de un producto
Obvio
j 1
< lj
(5) Se sabe que [y] y
(6) [logr (vj)] < lj
Luego,
(7) [logr (vj)] + 1 lj
Por (3)
j 1
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
i =1
lj li
= r
lj l1
j 1
i =2
r lj li
38
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 )
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
r lj li
Obvio
r lj li
Obvio
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
(10) vj + 1 > vj + 1
Pues vj =
i =1
r lj li
40
TEOREMA DE McMILLAN
i =1
r li 1
entonces
q
Sea K =
i =1
i =1
r li 1
r li
i =1
41
42
r (li1+li2+li3)
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)
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
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)
Kn = ( r li)n =
i =1
n l
i =n
Ni r i
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.
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
i =1
r li 1
5) Si
i =1
r li 1
i =1
li
i =1
r li 1
46
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
ln(a/b) = ln a - ln b
xi [ ln(yi /xi)]
x i [yi/xi - 1]
[ 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)
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
Es claro que xi 0, yi 0
adems que
i =1
xi = 1,
i =1
yi = 1
pi ln(1/pi)
pi logr(1/pi) /logr(e)
pi logr(1/pi)
pi logr(q)
Hr(S)
pi logr(q)
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
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
j=1
qn
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
in =1
q
i1=1
q
in =1
q
i1=1
in =1
=
=
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
= H(S)
+ H(S)
...
+ H(S)
= nH(S)
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
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
pi 3
in=1
q
i3=1
in =1
pin
Obvio
= [pi1 logr(1/pi1)] 1
= H(S)
Obvio
i1=1
Caso in:
q
i1=1
q
=
i1=1
q
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
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)
i1=1
Obvio
in=1
pin logr(1/pin)
Obvio
Obvio
pi2
i ( n1)=1
pin-1
Obvio
= H(S) 1
= H(S)
51
qm
r-its
j =1
qm
= wj Hr (S / j)
j =1
qm
= wj
j =1
qm
i =1
definicin de Hr (S / j)
wj ingresa a la sumatoria
j =1 i =1
q qm
i =1
j =1
qm
i =1
r-its
qm
j =1
qm
i =1
q
j =1
qm
i =1
j =1
Es decir, Hr ( M ) = [
=
r-its
Entonces,
Hr (M) - Hr ( M )
q
qm
i =1
j =1
qm
i =1
j =1
52
qm
i =1
q
j =1
=
=
i =1
q
qm
j =1
qm
j =1
i =1
q
qm
i =1
j =1
log de un cociente
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
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
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) = 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}
Ntese que cuando la Fuente-S es una fuente de memoria nula equiprobable, entonces:
q
i =1
i =1
i =1
li
i =1
i =1
i =1
L(C) = pi li = pi l = l pi = l 1 = l
54
pi
p1
...
pi
...
pj
...
pq
C
w1
...
wi
...
wj
...
wq
C'
w'1 = w1
...
w'i = wj
...
w'j = wi
...
w'q = wq
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
=
obvio
reescribiendo
factorizando
obvio
factorizando
pi > pj, o sea (pi - pj) > 0
li > lj, o sea (li - lj) > 0
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
pi li
= pi logr(1/pi) -
pi logr(r li )
i =1
q
i =1
q
i =1
q
i =1
= [ pi logr(1/pi) - pi logr(r li ) ]
= pi [ logr(1/pi) - logr(r li ) ]
factorizando pi
= pi logr(1/pi / r li )
= pi logr(1 / (pi r li ) )
i =1
q
i =1
q
i =1
q
i =1
[1/ln(r)] pi [1 / (pi r li ) - 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
li
i =1
r l i = 1. Pero cuando pi = r l i,
i =1
li
58
[x 100%]
[x 100%]
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
i =1
pi logr(1/pi)
i =1
pi li <
i =1
pi logr(1/pi) +
L(C) <
Hr(S)
Que es lo que queramos demostrar.
i =1
pi 1
60
61
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.
En cambio:
64
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):
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
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
2
3
0
0.7
0.88
1
0.2
0.02
D
1
0.9
0.9
smbolo
decodificado
s2
s3
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)
...
...
...
...
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
72
i =1
i =1
Entropa de la salida:
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
j=1
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
H(A,B) =
i =1
j=1
p(ai,bj) log[1/p(ai,bj)]
73
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
= p(ai) log[1/p(ai)] 1
obvio
i =1
r
j=1
pues
j=1
p(bj/ai) = 1
propiedades de sumatoria
conmutatividad
p(ai,bj) log[1/p(ai)]
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)]
factorizando p(ai,bj)
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
propiedades de exponente
=-
propiedades de logaritmo
=-
=-
Resumiendo:
I(A;B) = -
i =1
j=1
obvio
pues p(ai/bj) p(bj) = p(ai,bj)
i =1
j=1
= [1/ln(V)]
[1/ln(V)]
= [1/ln(V)]
= [1/ln(V)]
i =1
r
i =1
r
i =1
r
i =1
r
j=1
s
j=1
s
j=1
s
j=1
s
p(ai,bj)}
propiedades de sumatoria
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
76
i =1
r
i =1
r
i =1
i =1
pues
obvio
= [1/ln(V)] { 0 }
=0
obvio
obvio
Resumiendo:
r
i =1
j=1
i =1
j=1
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
j=1
p(bj/ai) = 1
i =1
= [1/p(bj)]
i =1
por Bayes
p(bj/ai) p(ai)
= [1/p(bj)] p(bj)
=1
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)
por 1)
i =1
p(ai,bj) log[1/p(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)] -
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)
p(ai,bj) log[p(bj/ai)/p(bj)]
obvio
propiedades de exponente
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
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)]
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
propiedades de sumatoria
i =1
r
p(ai) es independiente de j
j=1
j=1
= p(ai) H(B/ai)
i =1
r
i =1
j=1
obvio
definicin de H(B/ai)
= H(B/A) +
i =1
r
j=1
j=1
p(bj/ai)
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
80
H(B/A) =
p(ai,bj) log[1/p(bj/ai)]
obvio
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) es independiente de j
= p(ai) H(B)
definicin de H(B)
= H(B)
obvio
i =1
r
j=1
i =1
obvio
por 4
i =1
j=1
Como I(A;B) 0 :
H(A) H(A/B)
Como I(A;B) 0 :
H(B) H(B/A)
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|) }
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
j=1
i =1
i'=1
j=1
p(bj) 0 = 0
por Bayes
p(bj/ai') p(ai')
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
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
83
i =1
j=1
j=1
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(ai) 0 = 0
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
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
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
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
j=1
s
j=1
p(bj/ai) log[1/p(bj/ai)]
por (2)
=c
por (1)
85
(2)
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
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
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
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
k =1
k =1
i =1
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
[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
j=1
j=1
j=1
Empecemos:
s
H(A/B) =
p(ai,bj) log[1/p(ai/bj)]
p(ai,bj) log[1/p(ai/bj)]
conmutatividad
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
i =1
r
j=1
por definicin
por vi)
prop. de sumatoria
conmutatividad
por ii)
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)] -
=
=
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)
obvio
por ii)
j=1 k =1
s
t
j=1 k =1
i =1
r
i =1
= 1/ln(V)
j=1 k =1
90
evidente
1/ln(V)
pues ln(z) z -1
= 1/ln(V)
obvio
= 1/ln(V)
p(bj,ck) [ p(ai/ck) -
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
i =1
evidente
p(bj,ck) 0 = 0
r
p(ai/ck) = p(ai/bj) = 1
i =1
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
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
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
92
--> 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
donde
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
por definicin
obvio
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
j=1
evidente
p(ai,bj) log[1/p(ai)]
evidente
i =1
r
j=1
s
j=1
s
i =1
r
i =1
r
j=1
s
k =1
evidente
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
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)]
obvio
obvio
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
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=
=
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
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
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
b1
P=
a1
...
ar
...
p(bj/ai)
bs
P2 =
b1
b2
b3
...
bs
c2
1
1
c3
...
cs
1
...
1
97
j=1
s
Bayes
j=1
=
=
= p(ck/bk) p(bk)
= p(bk)
98
(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)
a1
a2
b1
1/8
1/4
b2
1/4
1/2
p(ai) = 1/2
b3
5/8
1/4
a1
a2
c2
3/8
3/4
c3=b3
5/8
1/4
99
CAPACIDAD DE UN CANAL
Se define as:
C = max{ I(A;B) }
p(ai)
i =1
j=1
i =1
i =1
es decir,
(para algn/cualquier i)
j=1
= 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
i =1
100
un valor constante
P=
b1
p
q
a1
a2
b2
q
p
donde q = 1-p
= 1
- [ plog(1/p) + qlog(1/q)]
(para algn i)
con p(a1)=p(a2)=1/2
101
calcular p(bj)
i =1
calcular fi = exp{
j=1
p(bj/ai)ln[p(bj/ai)/p(bj)] }
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
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
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
p(ai,bj) -
j=1
p(a*,bj)
p(ai,bj)
A - {a*}
PE =
j=1 i =1
p(ai,bj) -
j=1
105
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
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
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
PE =
j=1 i =1
p(ai,bj) -
j=1
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
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
PE =
j=1 i =1
p(ai,bj) -
j=1
108
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.
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
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
114
115
(1)
(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)
(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
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
118
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
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
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
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
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
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
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
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
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
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)
137
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.
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
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):
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
(b)
obvio
obvio
obvio
linealidad de C y (a);
obvio
144
donde w=(wi+wj) C
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
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
147
148
149
1
0
El resultado es: G =
1
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
1
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
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
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
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
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
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
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
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
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
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
160
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
162
[a1 ak]G
donde a1...ak
a(x)g(x)
es una secuencia de longitud k
con gr(a(x))<k
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
164
+ (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 +
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.
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
Codificacin sistemtica.
Dado v(x), se obtiene su polinomio
sistemtico as:
w(x) = [v(x)xr mod g(x)] + v(x)xr
166
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
]
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 ( x )
x > 0
obvio
=0
As pues,
lim pi logr (1/pi ) = [1/ ln(r)] [ lim pi ln(1/pi ) ]
pi > 0
pi > 0
= [1/ ln(r)] [ 0 ]
=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
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.
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
donde
176
177
0 1 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
179
181
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
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
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