La empresa sostenible: Principales Características, Barreras para su Avance y...
Teoria de la informacion
1. Seguridad y protecciòn de informaciòn Lilia Edith Aparicio Pico
Memorias de Clase, Seminario 3
3. FUNDAMENTOS DE CODIFICACION
La teoría de la codificación es una parte de la teoría de la información, que estudia los
métodos de identificación de los mensajes, con las señales que los representa.
La codificación se utiliza ampliamente durante la transmisión, conservación y procesamiento
de la información en diferentes sistemas.
La tarea de la teoría de la codificación es lograr la mejor adaptación, en un cierto sentido, de
la fuente de información con el canal de comunicación. Ejemplos de esta adaptación puede
ser, lograr la máxima velocidad de transmisión para características estadísticas dadas de los
mensajes, lograr una inmunidad a las interferencias dad para características conocidas de
las interferencias en el canal, lograr la máxima velocidad de procesamiento de la información
durante las operaciones aritméticas, etcétera.
En correspondencia con el criterio de optimización escogido, se diferencian algunas
direcciones de la teoría de la codificación. Las más conocidas entre ellas son la codificación
eficiente o estadística y la codificación redundante.
El código ( del latín codex) es un método universal de representación de la información
durante la conservación, transmisión y procesamiento de dicha información, esta
representación se hace en forma de un sistema de correspondencia entre los elementos de
los mensajes y las señales. El código se utiliza para representación discreta en las líneas y
canales de comunicaciones, en sistemas automáticos, en los dispositivos de cómputo y en
otros sistemas utilizados en diferentes campos de la técnica.
En la figura 3.1 se representa el esquema general de un sistema de transmisión de
información.
Figura3.1 Esquema general de un sistema de transmisión de información.
Al mensaje en la salida de la fuente de información FI es necesario asociarle una
determinada señal. Por cuanto la cantidad de posibles mensajes para un aumento ilimitado
del tiempo tiene a infinito y para un intervalo de tiempo suficientemente grande es
considerable, crear para cada mensaje una señal, es prácticamente imposible. Para grandes
volúmenes del alfabeto de la fuente, usualmente se recurre a la representación de los
elementos en otro alfabeto, con una menor cantidad de elementos, frecuentemente llamados
símbolos.
1
FI CF CC M LC DM DC DF D
FIn
2. Seguridad y protecciòn de informaciòn Lilia Edith Aparicio Pico
Memorias de Clase, Seminario 3
Como el alfabeto de los símbolos es menor que el alfabeto de la fuente, entonces a cada
letra de la fuente le corresponde una cierta secuencia de símbolo, conocida por combinación
de código determina la longitud de la palabra código.
En el proceso de la transformación de los elementos del mensaje en señales, como se
planteado, pueden perseguirse varios objetivos; uno de ellos consiste en transformar la
información en un sistema tal de símbolos (código) de forma que este logre la simplificación
y confiabilidad de la realización física de los dispositivos de información, así como la
eficiencia de dicha información. Esta exigencia significa la simplificación de los dispositivos
de separación de los diferentes símbolos, mínimo tiempo de transmisión o mínimo volumen
de memoria durante la conservación, simplificación de las operaciones lógicas y aritméticas
en este sistema. Las propiedades estadísticas de la fuente de información y las
interferencias en el canal de comunicación es este caso no son tomadas en consideración.
La realización técnica del proceso de codificación, en este caso sencillo para una señal de
entrada continua, se lleva a cabo mediante conversores análogos digitales.
En los teoremas fundamentales sobre la codificación, como se verá más adelante, Shannon
fundamentó ña eficiencia de introducir, en el sistema de transmisión de información, los
dispositivos codificadores y decodificadores, con el objetivo de adaptar las prioridades del
canal de comunicación.
Uno de estos, el codificador de la fuente CF, tiene el objetivo de introducir una codificación
tal que por medio de la eliminación de la redundancia, disminuye, apreciablemente, la
cantidad promedio de símbolos necesarios por elemento de mensaje. En ausencia de
interferencias esto logra una ganancia en el tiempo de transmisión o en el volumen de
memoria, o sea, aumente la eficiencia del sistema. Por esto, tal codificación ha recibido el
nombre de eficiente
En presencias de interferencias en el canal, este método de codificación permite transformar
la información de entrada en una secuencia de símbolos máximamente comprimidos y
preparados para una posterior transformación.
El segundo dispositivo codificador mostrado en figura 3.1, el codificador del canal CC,
persigue el objetivo de lograr una veracidad dada durante la transmisión o conservación de
la información, introduciendo una redundancia adicional, con ayuda de determinados
algoritmos y teniendo en consideración la intensidad y las leyes estadísticas de las
transferencias en el canal de comunicación. Esta codificación recibe el nombre de
redundante.
La racionalidad de la eliminación de la redundancia de los mensajes, por los métodos de la
codificación eficiente con la posterior codificación redundante, está fundamentada en la
redundancia de la fuente de los mensajes, en la mayoría de los casos, no está adaptada con
las leyes estadísticas de las interferencias en el canal de comunicación y por esto, no puede
ser utilizada totalmente para el aumento de la veracidad del mensaje recibido, mientras que
frecuentemente es posible elegir códigos redundante conveniente. Además, la redundancia
de la fuente de los mensajes, frecuentemente es consecuencia de complejas dependencias
estadísticas y permite detectar y corregir errores sólo después de la codificación de todo el
mensaje, utilizando complejísimos algoritmos y, además, intuición.
De esta forma, la elección de los dispositivos codificadores y decodificadores dependen de
las propiedades estadísticas de la fuente de los mensajes, así como del nivel y carácter de la
2
3. Seguridad y protecciòn de informaciòn Lilia Edith Aparicio Pico
Memorias de Clase, Seminario 3
interferencia en el canal de comunicación. Si la redundancia de la fuente de los mensajes y
las interferencias en el canal de comunicación prácticamente no existen, la introducción,
tanto del codificador de la fuente como del codificador del canal, no es racional.
Cuando la redundancia de la fuente de los mensajes es grande y las interferencias son
pequeñas, es oportuno introducir sólo el codificador de la fuente. Cuando la redundancia de
la fuente es pequeña y las interferencias son de consideración, es racional la introducción
del canal.
En el caso de gran redundancia y alto nivel de interferencia es recomendable utilizar ambos
dispositivos codificadores y decodificadores.
Después del codificador de canal CC, la señal codificada es aplicada e un dispositivo
codificador de los símbolos en señales, el modulador. La señal obtenida a la salida del
modulador está lista par su transmisión, por una línea de comunicación LC (fig 7.1) o para su
conservación, en una cierta memoria.
En la línea de comunicación a la señal se le añaden interferencias, que llegan de la fuente
de interferencias FIn (fig 3.1), de esta forma al dispositivo decodificador de señales en
símbolos (demodulador DM), llegan del canal de comunicación, señales distorsionadas por
el ruido. El dispositivo decodificador del código redundante, el decodificador del canal DC y
el dispositivo decodificador del mensaje, el decodificador de la fuente DF, ofrecen el
mensaje decodificado al destinatario D.
3.1 Definiciones preliminares
Como ya es conocido, un código es un correspondencia de todas las posibles secuencias de
un alfabeto fuente M = m 1,m2 , …, m en secuencia de símbolos de otro alfabeto X = x1, x2 ,
… , xr, siendo el conjunto X el alfabeto del código.
Esta definición es demasiado general y puede interpretarse que cualquier correspondencia
entre los símbolos del alfabeto cumple las características que deben poseer los códigos para
ser utilizados con propósitos de transmisión o conservación de la información.
Una de las características es que a cada mensaje de la fuente se le asocia una secuencia de
símbolos del código, o sea, una palabra del código. A está característica se le llama código
del bloque.
Ejemplo 3.1
Código del bloque binario
Símbolos de fuente Código
M1 0
M2 11
M3 00
M4 11
3
4. Seguridad y protecciòn de informaciòn Lilia Edith Aparicio Pico
Memorias de Clase, Seminario 3
Esta condición no es suficiente con respecto a la utilidad práctica de este código. Una
restricción lógica que deben tener los códigos es que todas las palabras del código Xi, sean
diferentes. Tales códigos reciben el nombre de códigos no singulares, o sea, en un código
no singular, a cada mensaje se le asocia una secuencia diferente de símbolo del código.
Note que el código mostrado en el ejemplo 7.1 no cumple con esta condición, ya que las
palabras del código X2 y X4 son iguales. Por lo tanto este código es singular.
Ejemplo 7.2
Código del bloque binario no
singular
Símbolo de Código
La fuente
m1 0
m2 01
m3 11
m4 1
El código mostrado en el ejemplo 3.2 posee aún una insuficiencia importante. Suponga se
que en el proceso de transmisión de información utilizando este código se recibe, del canal
de comunicación, la secuencia codificada 00111. Esta secuencia no puede ser interpretada
unívocamente en términos de los símbolos de la fuente, en particular, ésta pudiera
corresponder a las secuencias de símbolos de la fuente siguientes
m1 m2 m3
00111 m1 m2 m3 m4
m1 m1 m4 m4 m4
De este análisis es evidente que no basta que las diferentes palabras del código Xi sean
diferentes, sino que las secuencias de palabras del código Xi1 Xi2 … Xii se correspondan con
una única secuencia de los símbolos o mensajes de la fuente. Los códigos que cumplen esta
condición son denominados códigos unívocamente decodificables, separables o desifrables.
Usualmente, la definición de estos códigos está asociada al concepto de extensión de orden
n de un código.
La extensión n-ésima de un código de bloque que transforme los símbolos de la fuente mi en
las palabras del código Xi es el código del bloque que transforma las secuencias de los
símbolos de la fuente (mi1, mi2, …. min ) en las secuencias de las palabras del código (Xi1 Xi2
… Xin ) .
4
5. Seguridad y protecciòn de informaciòn Lilia Edith Aparicio Pico
Memorias de Clase, Seminario 3
Ejemplo 3.3
Segunda extensión de un código de bloque
Símbolo de la Código Símbolo de la Código
Fuente
m1 m1 00 m3 m1 110
m1 m2 001 m3 m2 1101
m1 m3 011 m3 m3 1111
m1 m4 01 m3 m4 111
m2 m1 010 m4 m1 10
m2 m2 0101 m4 m2 101
m2 m3 0111 m4 m3 111
m2 m4 011 m4 m4 11
Note que en la extensión mostrada en el ejemplo 3.3 todas las palabras no son diferentes.
Es por esta razón que, por ejemplo, a las secuencias de mensaje m1 y m2 m3 m4 le
correspondan la misma secuencia de palabras del código. Para que esto no suceda, todas
las palabras de la extensión deben ser diferentes, o sea, la extensión debe ser singular. Por
lo tanto, puede enunciarse entonces que, para ser un código unívocamente decodificable,
las extensiones de cualquier orden n, de este código deben ser no singulares.
Es evidente que en aquellos casos en que las palabras del código tienen la misma longitud,
la condición de no singularidad del código original es suficiente para garantizar su condición
de decodificación unívoca.
Ejemplo 3.4
Códigos unívocamente decodificables
Símbolo de Código 1 Código 2
La fuente
m1 0 0
m2 01 10
m3 011 110
m4 0111 1110
Los códigos mostrados en el ejemplo 3.4 aunque aparentemente similares, presentan entre
sí una diferencia sustancial. En este caso del código 1 la secuencia de código recibida 01 no
puede ser interpretada como correspondiente al símbolo m2 hasta tanto se reciba el
siguiente símbolo del código. Si el siguiente símbolo del código es 0, entonces pude
determinarse que la secuencia 01 correspondían al símbolo m2 . Si, por el contrario, el
5
6. Seguridad y protecciòn de informaciòn Lilia Edith Aparicio Pico
Memorias de Clase, Seminario 3
próximo símbolo del código hubiera sido 1 entonces la secuencia 011 no podría ser
interpretada como correspondiente a m3 hasta que se obtenga el siguiente símbolo del
código.
Esta situación no sucede en el caso del código 2, ya que por ejemplo, la secuencia de
código recibida 10, puede interpretarse instantáneamente, sin tener que esperar la aparición
de símbolos adicionales como la secuencia de código asociada al símbolo m2.
Los códigos univocamente decodificables en que cada palabra es una secuencia puede ser
decodificada sin referencia a los sucesivos símbolos de código, son denominados
instantáneos. Esta condición debe ser también satisfecha por los códigos a utilizar en los
sistemas de transmisión o almacenamiento de la información.
Obviamente el código mostrado en el ejemplo 3.4 es un código univocamente decodificable
no instantáneo, mientras que el código 2 es un código instantáneo, a demás es último es
denominado código como, pues, como puede observarse, el símbolo 0 sirve para separar las
diferentes palabras del código.
Un breve análisis de los códigos que aparecen en el ejemplo 3.4 sirve para evidenciar la
condición que garantiza el carácter instantáneo de un código. Nótese, por ejemplo, que en el
código 1 ( no instantáneo) la palabra del código 0 (correspondiente al mensaje m1 ) aparece
como primer símbolo en las restantes palabras del código. De igual forma, la palabra 01
( asociada al mensaje m2 ) constituye los primeros símbolos de las palabras del código,
asociadas a los mensajes m3 y m4 . Esta es precisamente la causa de la no instantaneidad.
Por la analogía del lenguaje, sin un código posee palabras Xi = Xi1, Xi2 , … Xmi, de longitud
m, la secuencia de los símbolos del código ( Xi1, Xi2 , … Xij ) , siendo j≤ m, es denominada
prefijo de la palabra del código Xi .
Entonces la condición necesaria y suficiente para que un código sea instantáneo es que
ninguna palabra del código sea prefijo de cualquier otra.
3.2 Arbol de Código
Existen diversas representaciones de los códigos: la tabular, como ha sido mostrado en las
tablas de los ejemplos anteriores: la geométrica, que representa las palabras del código
como las vértices de una cierta figura geométrica en el espacio y otras.
El llamado árbol del código es otra de las formas de representar los códigos.
Esta representación tiene forma de ramas y a estas se les asocian los símbolos del código,
las bifurcaciones que se forman son las distintas palabras en cuestión, partiendo de un punto
cúspide central.
6
7. Seguridad y protecciòn de informaciòn Lilia Edith Aparicio Pico
Memorias de Clase, Seminario 3
En la figura 3.2 se muestra los árboles correspondientes a los códigos 1 y 2 del ejemplo 7.4
respectivamente.
0
0 m1 1
0 m1
1 1
0 m2
1 m2 1
m3
m3 0
1
m4
m4
Figura 3.2 Árboles de los códigos del ejemplo 3.4
En los síntesis de los códigos eficientes se utiliza, posteriormente, la técnica de
representación del árbol del código.
3.3 Codificación eficientes o codificación de fuente
Para que un código pueda ser utilizado con propósitos de transmisión o almacenamiento de
información debe cumplirse una serie de características, siendo la más generalizadora de
todas la que el código debe ser instantáneo. Como es conocido, la condición suficiente y
necesaria para que un código sea instantáneo, es que ninguna palabra del código sea prefijo
de cualquier otra.
Para cumplir con esta condición existe una serie de técnicas, que van desde las más
primitivas hasta elaborados algoritmos. Entre las técnicas primitivas puede señalarse la
simple observación.
Supóngase que es necesario sintetizar un código instantáneo binario para una fuente de
cinco símbolos, teniendo como punto de partida el árbol del código mostrado en la figura
3. 3.
1
0
1
0 1 0
1 0 1 0 1 0
1
1 0 0
0
Figura 3.3 Árbol de un código binario
7
8. Seguridad y protecciòn de informaciòn Lilia Edith Aparicio Pico
Memorias de Clase, Seminario 3
Sea 0 la palabra del código como punto de partida al mensaje m1, o sea,
m1 0
En este caso para cumplir con la condición de prefijo, las restantes palabras del código
tienen que comenzaron el símbolo 1. Sin embargo, la palabra del código formada por el
símbolo simple 1 no puede ser asignada a ningún mensaje, pies, no podría formarse las
otras tres palabras del código instantáneo. Una posible asignación pudiera ser
m2 10.
Esto exige que las tres restantes palabras del código tengan que comenzar con símbolos 11.
Así,
m3 110
Por lo que las restantes dos palabras pueden ser escogidas en la forma siguiente:
M4 1110
m5 1111.
Es de notar que. El hecho de haber asignado al primer mensaje la palabra del código 0,
provoca una limitación considerable de las palabras del código, que sean posibles asignar a
los restantes. Evidentemente, si en calidad de primera palabra del código, se hubiera elegido
una palabra de mayor longitud, esto hubiera dado más posibilidades de elección del resto de
las palabras del código. En el ejemplo 7.5 se muestran otros dos códigos sintetizados a partir
del mismo árbol de la figura 7.3.
Ejemplo 3.5
Código 1 Código 2
m1 00 000
m2 01 0100
m3 10 011
m4 110 10
m5 111 11
El código 1 Del ejemplo 7.5 tiene una característica que lo diferencia de 2 y es que, en
general, utiliza menos símbolos del código, por mensaje de la fuente.
Para responder a la pregunta del cuál de estos dos códigos da el mejor resultado, es
necesario realizar posteriormente análisis.
3.4 Desigualdad de Kraft
El análisis cualitativo recíen realizado, sobre la síntesis de códigos instantáneos, puede
llevarse, al campo cuantitativo. La condición necesaria y suficiente para la existencia de un
código instantáneo está dad por la desigualdad de Kraft, expresada por
8
9. Seguridad y protecciòn de informaciòn Lilia Edith Aparicio Pico
Memorias de Clase, Seminario 3
s
∑ r -λi
≤ 1,
i = 1
donde
s - es la cantidad de mensajes de la fuente,
r - es la cantidad de símbolos diferentes en el alfabeto del código y
λi - es la longitud de las palabras del código.
En el caso de códigos binarios, la desigualdad de Kraft se expresa como
s
∑ 2 -λi
≤ 1.
i = 1
Ejemplo 3.6
Determine si es posible sintetizar un código instantáneo si quiere utilizarse un código binario,
para las condiciones mostradas a continuación
Mensajes m1 m2 m3 m4 m5
Longitudes
Del código 1 2 3 2
En este caso
s
∑ 2 -λi
= 2 -1
+2 -2
+ 2 -3
+ 2 -2
+ 2 -2
= 1,1875 > 1.
i = 1
por lo tanto, no es posible sintetizar un código binario instantáneo para las condiciones de
longitud de las palabras del código planteadas.
Ejemplo3.7
Se quiere sintetizar un código binario instantáneo para una fuente de 10 mensajes. Se
requiere que el primer mensaje se codifique con un solo símbolo del código, que el segundo
mensaje se codifique con dos símbolos del código y que los ocho mensajes restantes tengan
la misma longitud. Determine cuál debe ser la mínima longitud de estos ocho mensajes.
Para solucionar este problema, debe ser empleada la desigualdad de Kraft, que es este caso
toma la forma,
10
9
10. Seguridad y protecciòn de informaciòn Lilia Edith Aparicio Pico
Memorias de Clase, Seminario 3
∑ 2 -λi
= 2 -1
+2 -2
+ 8.2-λi
≤ 1
i = 1
por lo que λi ≥ 5.
Es evidente que la desigualdad de Kraft determina la existencia del código instantáneo, pero
no da respuesta a las vías para sintetizarlo.
Se ha demostrado por Mc Millan (1956) y por Karush (1961), que la desigualdad de Kraft
también establece la condición necesaria y suficiente para la existencia de un código
unívocamente decodificable.
3.5 Longitud promedio de las palabras del código
Se ha podido comprobar, mediante el ejemplo 7.5, que es posible a partir de un alfabeto de
la fuente y un alfabeto del código dados, sintetizar varios códigos instantáneos.
Uno de los criterios más empleados para elegir el posible código a utilizar es tener la mayor
cantidad posible de palabras del código, con pequeñas longitudes, pues en general, esto
debe contribuir a disminuir el tiempo de transmisión de los mensajes, a simplificar los
equipos de comunicación y otras ventajas.
Para ayudar a establecer este criterio, se define el concepto de longitud promedio de las
palabras del código, como
s
L= ∑p(mi) λi
i = 1
donde
s - es la cantidad de mensajes de la fuente,
p(mi) - es la probabilidad de ocurrencia de los mensajes y
λi - es la longitud de la palabra del código asociada al mensaje mi .
Esta magnitud establece la cantidad de símbolos del código que, como promedio, son
necesario para representar los mensajes de la fuente.
Si la cantidad de símbolos diferentes en el alfabeto del código, o base del código, es r, es
obvio que la máxima cantidad de información que puede brindar la ocurrencia de uno
cualquiera de los r símbolos del código es, log r. Si como promedio, la cantidad de símbolos
del código por mensaje es L, entonces la cantidad máxima de información que puede
obtenerse debido a la ocurrencia de cualquier palabra del código es L log r.
Si se supone que H(M) es la entropía de la fuente de mensaje asociada a esta código. Debe
recordarse que ésta se interpreta como la cantidad promedio de información que se obtiene,
debido a la ocurrencia de un mensaje cualquiera de la fuente.
Para que el proceso de codificación pueda realizarse sin pérdidas de información de la
fuente es necesario que se cumpla
10
11. Seguridad y protecciòn de informaciòn Lilia Edith Aparicio Pico
Memorias de Clase, Seminario 3
H(M)≤ L log r, (3.1)
Lo que establece una condición de mínimo para el valor de la longitud promedio de las
palabras del código, o sea,
H(M)
L ≥ .
Log r
Si por ejemplo, se trabajo con códigos binarios, o sea, r= 2, entonces la expresión (7.1)
puede escribirse como
L ≥ H(m).
Esta condición sugiera una conclusión interesante: la entropía de la fuente de mensajes
puede ser interpretada como la mínima cantidad promedio de símbolos del código a asociar
a cada mensaje de la fuente.
El código que garantice una longitud promedio de palabras menor o igual que las longitudes
promedio de todos los códigos instantáneos, para la misma fuente y el mismo alfabeto del
código, es denominado código compacto.
3.6 Eficiencia de un código
La expresión (3.1) puede servir para caracterizar la eficiencia de un determinado código
instantáneo.
Si la expresión se cumple que
H(M)
L > ,
Log r
Puede concluirse que, como promedio, las palabras del código pueden portar más
información que la brindada por los mensajes de la fuente, por lo que el código no se ésta
empleando eficientemente. No debe confundirse esto con el hecho de que las palabras del
código realmente sean portadoras de más información que los mensajes de la fuente, pues
el proceso de codificación no es capaz de crear información. Se trata sólo de una posibilidad
potencial.
Si por otra parte, la expresión (3.1) se cumple con el signo de igualdad, o sea,
H(M)
L= = H r (M) ,
Log r
Puede afirmarse que en este caso se están aprovechando eficientemente las posibilidades
potenciales de las palabras del código de portar información.
Por lo tanto, la eficiencia de la codificación puede definirse como
H(M)
11
12. Seguridad y protecciòn de informaciòn Lilia Edith Aparicio Pico
Memorias de Clase, Seminario 3
η = = .
L log r
Puede mostrarse que para lograr la máxima eficiencia de la codificación debe cumplirse que,
a su vez, la desigualdad de Kraft se convierta en igualdad, o sea que,
s
∑r -λi
= 1,
i = 1
para esto, la condición suficiente y necesaria es que los mensajes de la fuente ocurran con
probabilidades
1
p(mi) = r-λi λi (3.2)
r
o
1
logr = λi. (3.3)
p(mi)
Ejemplo 3.8
Determine la eficiencia del código binario ( r= 2) asociado a la fuente, con las características
mostradas a continuación.
mi m1 m2 m3 m4
p(mi) 1/2 1/4 1/8 1/8
λi 1 2 3 3
en este caso
s
L= ∑p(mi) λi = 1/2 + 2. 1/4+ 2 . 3 . 1/8 = 1,75 bit / mensaje
i = 1
s 1
L= ∑p(mi) λi log =1/2 + 1/4. 2 + 1/8 . 3 = 1,75 bit / mensaje
i = 1
P(mi )
de ahí que L = H(M) y por lo tanto, η = 1.
Nótese que según el ejemplo anterior, en todos los casos se cumple para esta código la
condición expresada en (3.2).
3.7 Teorema de la codificación de Shannon para canales sin ruido
12
13. Seguridad y protecciòn de informaciòn Lilia Edith Aparicio Pico
Memorias de Clase, Seminario 3
Si se tiene en consideración las propiedades estadísticas de la fuente de mensajes es
posible minimizar la cantidad promedio de símbolos necesarios, para representar la fuente,
lo que en ausencia de ruido e interferencias permite disminuir el tiempo de transmisión o el
volumen de memoria.
Tal codificación eficiente es basada en el teorema fundamental de Shannon, para canales
sin ruido.
Shannon demostró que '' los mensajes, formados por letras de un cierto alfabeto, pueden
ser codificados de forma tal que la cantidad promedio de símbolos de código necesarios
porque representar un mensaje de la fuentes, puede ser semejante a la entropía de la fuente
de esos mensajes, pero nunca menor que esta magnitud .''
Este teorema puede ser demostrado. Cuando las probabilidades de los mensajes de la
fuente cumplen la condición (3.2), entonces la longitud de las palabras del código puede ser
hallados a partir de la expresión (3.3), o sea
1
λi log ,
P(mi )
Esto supone que el miembro derecho de la igualdad sea un número entero ( ver ejemplo
3.8).
Cuando la magnitud logr (1/P(mi ) no es un número entero, es razonable suponer que puede
hallarse un código compacto si λi es elegido como el entero mayor más cercano a este
valor. O sea, λi puede ser elegida como el entero que satisfaga la condición
1 1
log r ≤ λi < log + 1 (3.4)
P(mi ) , P(mi )
La expresión 3.3 se observa en la igualdad de la expresión 3.4, sin el miembro derecho.
Si se multiplican todos los términos de (3.4) por P(mi ) se obtiene
1 1
P(mi) log r ≤ P(mi) λi < P(mi) log r P(mi)
P(mi ) , P(mi )
Que, sumada para todas las palabras del código da por resultado
Hr(M)≤ L < Hr(M) + 1 (3.5)
Como esta condición es válida para cualquier fuente de mensajes sin memoria, entonces la
expresión (3.5) puede escribirse en términos de la extensión n-ésima de esta fuente, o sea,
Hr(Mn
)≤ Ln < Hr(Mn
) + 1,
13
14. Seguridad y protecciòn de informaciòn Lilia Edith Aparicio Pico
Memorias de Clase, Seminario 3
Donde Ln representa la longitud promedio de las palabras del código correspondiente a los
mensajes de la extensión n-ésima de la fuente original. Si se representa por Λi la longitud de
las palabras del código asociadas a los mensajes σi de la fuente extendida, entonces
s
n
Ln = ∑ P(σi )Λi .
i=1
Ln
De aquí que la magnitud puede ser interpretada como la cantidad promedio de
n
símbolos del código necesarios por mensaje original de la fuente.
La expresión (2.15) estableció que la entropía de la fuente extendida en n veces la entropía
de la fuente original. Tomando en consideración este hecho, la expresión (3.6) puede
escribirse como
Ln 1
Hr(Mn
)≤ < Hr(M) + (3.7)
n n
o
Ln
Lim = Hr(M) .
n ∞
n
la expresión (3.7) es, precisamente, el teorema de codificación de Shannon para canales sin
ruido. Esta expresión se interpreta como el promedio de símbolos de un código r-ario
necesario por mensaje de la fuente y que puede hacerse tan pequeña, como la entropía de
la fuente expresada en unidades a-rias, pero nunca menor que esta magnitud. Para esto
debe someterse a codificación, no la fuente original sino su extensión n-ésima, lo que
complica el proceso de codificación debido al número excesivo (Sn
) de mensajes de la
fuente a codificar.
En el caso de fuentes con memoria, puede demostrarse que el teorema de codificación de
Shannon, para canales sin ruido, puede expresarse como
Hr(M) - Hr(M) Ln Hr(M) - Hr(M)
Hr(M) ≤ < Hr(M) + + 1,
n n n
donde Hr(M) es la entropía de la fuente adjunta de Markov.
3.8 Códigos eficientes
El teorema de codificación se Shannon, para canales sin ruido analizado en el epígrafe
anterior, es un teorema de existencia, por cuanto no señala la forma concreta de
codificación.
14
15. Seguridad y protecciòn de informaciòn Lilia Edith Aparicio Pico
Memorias de Clase, Seminario 3
Sin embargo, puede concluirse que la elección de cada símbolo de la palabra del código
debe realizarse de forma tal que porte la mayor cantidad de información posible.
Consecuentemente, cada símbolo del código debe tomarse lo más equiprobablemente
posible y cada elección debe realizarse independientemente de los valores de los símbolos
precedentes.
Por otra parte, un análisis de las vías para aumenta la eficiencia de la codificación
H(M)
η ,
L log r
Para una fuente de mensajes dad y una base del código elegida, da como resultado:
1. El único parámetro que puede variarse para mejorar la eficiencia de la codificación es la
longitud promedio de las palabras del código.
2. Para aumentar la eficiencia es necesario disminuir la longitud L al mínimo posible.
La forma más evidente de disminuir la longitud promedio de las palabras del código es
asociado a los mensajes más probables, las menores longitudes de palabras del código y
viceversa.
A continuación sean examinados dos algoritmos de codificación eficiente, que reúne las
características anteriormente mencionadas.
3.9 Código de Shannon - Fano
En el caso de ausencia de dependencia estadística entre los mensajes, los primeros
algoritmos para la síntesis de códigos eficientes propuestos por Shannon y Fano. Sus
métodos no se diferencian sustancialmente de aquí que recibira el nombre de código de
Shannon - Fano.
El código se construye de la forma siguiente: los mensajes del alfabeto se colocan en una
tabla en orden decreciente de probabilidades. Después, éstos se dividen en r grupos ( r es la
base del código elegido) de forma tal que la suma de las probabilidades, en cada grupo, sea
casi igual. A cada mensaje de estos grupos se le asocia, como primer símbolo de la palabra
codificada, uno de los r símbolos del código. Cada uno de los grupos obtenidos es dividido a
su vez en r subgrupos, con probabilidades totales lo más parecidas posible.
El proceso continua hasta tanto en cada subgrupo queden r mensajes.
Supóngase un alfabeto de ocho mensajes. Es evidente que para una codificación que no
tome en consideración las características estadísticas de la fuente, para representar cada
mensaje son necesarios tres símbolos del código.
El mayor efecto de compresión se logra como se evidenció en (3.2), cuando las
probabilidades de los mensajes representan potencias enteras negativas de la base del
código.
15
16. Seguridad y protecciòn de informaciòn Lilia Edith Aparicio Pico
Memorias de Clase, Seminario 3
Ejemplo 3.9
Codifique, según el algoritmo de Shannon- Fano, la fuente que tiene como mensajes los que
aparecen en la tabla. Utilice la base binaria (r= 2) para el código.
mi m1 m2 m3 m4 m5 m6 m7 m8
P(mi ) 1/2 1/4 1/8 1/16 1/32 1/64 1/128 1/128
El resultado de esta codificación es.
mi P(mi ) Palabras del código Orden división
m1 1/2 1 I
m2 1/4 0 1 II
m3 1/8 0 0 1 III
m4 1/16 0 0 0 1 IV
m5 1/32 0 0 0 0 1 V
m6 1/64 0 0 0 0 0 1 VI
m7 1/128 0 0 0 0 0 0 1 VII
m8 1/128 0 0 0 0 0 0 0
La longitud promedio de las palabras, en este caso, es igual a la entropía. Efectivamente,
s s 1 63
L = ∑ P(mi )λi = H(M) = ∑P(mi ) log = 1 .
i=1 i = 1
P(mi ) 64
puede notarse en el código hallado, que al haberse podido realizar todas las divisiones en
subgrupos equiprobables, se garantiza que los símbolos del código sean equiprobables. Por
otra parte, es evidente que se ha logrado, gracias al algoritmo de codificación utilizando,
asignar las mayores longitudes de palabras a los mensajes menos probables y viceversa.
Todo esto, unido al hecho de que en este caso las probabilidades de la fuente cumple la
condición (3.2) ha posibilitado obtener un código totalmente eficiente.
En un caso más general, para un alfabeto, para un alfabeto de ocho mensajes, la longitud
promedio de las palabras del código es menor que tres, pero mayor que la entropía de la
fuente H(M).
16
17. Seguridad y protecciòn de informaciòn Lilia Edith Aparicio Pico
Memorias de Clase, Seminario 3
Ejemplo 3.10
Codifique, según el algoritmo de Shannon-Fano en código binario, la fuente que tiene como
mensajes los que se muestran en la tabla
mi m1 m2 m3 m4 m5 m6 m7 m8
P(mi ) 0,22 0,20 0,16 0,16 0,10 0,10 0,04 0,02
El resultado de la codificación en este caso es
mi P(mi ) Palabras del código Orden división
m1 0,22 1 1 I
m2 0,20 1 0 1 II
m3 0,16 1 0 0 III
m4 0,16 0 1 IV
m5 0,10 0 0 1 V
m6 0,10 0 0 0 1 VI
m7 0,04 0 0 0 0 1 VII
m8 0,02 0 0 0 0 0
puede comprobarse que
s 1
H(M) = ∑ P(mi ) log = 2,76 bit / mensaje
i=1
P(mi )
y
s
L = ∑ P(mi ) λi = 2,84 símbolo / mensaje
i=1
Consecuentemente, existen una cierta redundancia en las secuencias de los símbolos del
código.
Según el teorema de codificación de Shannon, para canales sin ruido, la redundancia
existente en las secuencias de las símbolos del código, como en el ejemplo 3.10 puede
eliminarse si se realiza la codificación de bloques considerablemente largos.
17
18. Seguridad y protecciòn de informaciòn Lilia Edith Aparicio Pico
Memorias de Clase, Seminario 3
Supóngase una fuente formada por los mensajes m1 y m2 , con probabilidades de ocurrencia
P(m1 ) = 0,9 y P(m2 ) = 0,1. Por cuanto estas probabilidades no son iguales, la secuencia de
tales mensajes tiene un cierta redundancia. Sin embargo, si se codifica por mensajes, no se
obtiene ningún efecto. Realmente, durante la transmisión de cada mensaje se necesita un
solo símbolo, 0 o 1, mientras que la entropía es igual a 0,47.
Si se codifica en bloques que contengan dos mensajes, se puede obtener un código como el
mostrado en la tabla 10, ya que los mensajes son estadísticamente independientes, las
probabilidades de los bloques se determinan por el producto de las probabilidades de los
mensajes que lo constituyen.
TABLA 10
Bloques Probabilidad Código Orden división
m1 m1 0,81 1 I
m2 m2 0,09 0 1 II
m2 m1 0,09 0 0 III
m2 m2 0,01 0 0 0
La cantida promedio de símbolos por bloque obtenida es igual a 1,29 y por mensaje es 0,645
La codificación de bloques que contienen tres mensajes logran aún un efecto mayor. El
conjunto de bloques y el código asociado, se muestran en la tabla 11.
TABLA 11
Bloques Probabilidad Código Orden división
m1 m1 m1 0,729 1 I
m2 m1 m1 0,081 0 1 1 III
m1 m2 m1 0,081 0 1 0 II
m1 m1 m2 0,081 0 0 1 IV
m2 m2 m1 0,009 0 0 0 1 1 VI
m2 m1 m2 0,009 0 0 0 1 0 V
m1 m2 m2 0,009 0 0 0 0 1 VII
m2 m2 m2 0,001 0 0 0 0 0
La cantidad promedio de símbolos por bloque es de 1,59 y por mensajes 0,53 lo que es sólo
un 12% mayor que la entropía. El mínimo teórico H(m) = 0,47 pude lograrse si se codifica
bloques formados por una cantidad infinita de mensajes.
Debe señalarse que el aumento de la eficiencia de la codificación, como la ampliación de los
bloques, no ésta relacionado con la consideración de ulteriores dependencias estadísticas,
ya que se están analizando fuentes sin memoria. El aumento de la eficiencia está
18
19. Seguridad y protecciòn de informaciòn Lilia Edith Aparicio Pico
Memorias de Clase, Seminario 3
determinado sólo porque el conjunto de probabilidades que se obtiene, con la ampliación de
los bloques, puede dividirse en subgrupos con probabilidades totales más cercanas entre sí.
La metódica de Shannon- Fano analizada, no siempre conlleva a una situación única en la
síntesis del código, ya que durante la división en subgrupos puede tomarse como el de
mayor probabilidad total, tanto el superior como el inferior. Así, la tabla del ejemplo 3.10
puede haberse dividido de otras formas, una de las cuales aparece en la tabla 12.
TABLA 12
mi P(mi ) Palabras del código Orden división
m1 0,22 1 1 I
m2 0,20 1 0 1 II
m3 0,16 1 0 0 III
m4 0,16 0 1 IV
m5 0,10 0 0 1 V
m6 0,10 0 0 0 1 VI
m7 0,04 0 0 0 0 1 VII
m8 0,02 0 0 0 0 0
En este caso la cantidad promedio de de símbolos por mensaje es de 2,80. De esta forma, el
código construido puede no resultar el mejor. Este problema es mayor en la medida en que
se aumenta la base r del código.
Esta insuficiencia no la presenta la metódica de codificación eficiente de Huffman.
3.10 Código de Huffman
El algortimo de codificación eficiente de Huffman garantiza una única solución en la síntesis
del código, con la menor cantidad promedio de símbolos por mensaje, para una distribución
de probabilidades dada de los mensajes de la fuente.
Para el caso de códigos binarios el algoritmo de codificación de Huffman se plantea en los
términos siguientes: los mensajes del alfabeto de la fuente se escriben en la columna
fuandamenta, en orden decreciente de probabilidades. Los dos últimos mensajes se
fucionan en un mensaje complementario y se le asigna, como probabilidad, la suma de las
probabilidades de los mensajes no participantes en la función y la probabilidad suma
obtenida, de nuevo se sitúan en orden descendente en una columna auxiliar y los dos
últimos mensajes, de nuevo se fusionan. El proceso continúa hasta obtener un mensaje
complementario, de forma tal que la probabilidad sea la unidad.
En el caso de los códigos r-arios el algoritmo de codificación es semejante, con la única
diferencia de que en vez de fusionar dos mensajes, se fusionan r mensajes, continuándose
el proceso hasta obtener un mensaje complementario, que haya sido formado por r
19
20. Seguridad y protecciòn de informaciòn Lilia Edith Aparicio Pico
Memorias de Clase, Seminario 3
mensajes anteriores y con probabilidad igual a la unidad. Puede demostrarse fácilmente que
para lograr esto es necesario que la cantidad de mensajes de la fuente sea.
s= r + α(r -1), (3.8)
siendo α un número entero. En el caso en que la fuente no tenga esa cantidad de mensajes,
se completa con mensajes de probabilidad cero, hasta llegar a la cantidad expresada en
(3.8).
La metódicaplanteada se ilustra con el ejemplo 3.11. los valores de las probabilidades son
los mismos que en el ejemplo 3.10.
Ejemplo 3.11
Columnas complementarias
mi p(mi) 1 2 3 4 5 6 7
m1 0,22 0,22 0,22 0,26 0,32 0,42 0,58 1,0
m2 0,20 0,20 0,20 0,22 0,26 0,32 0,42
m3 0,16 0,16 0,16 0,20 0,22 0,26
m4 0,16 0,16 0,16 0,16 0,20
m5 0,10 0,10 0,16 0,16
m6 0,10 0,10 0,10
m7 0,04 0,06
m8 0,02
Para la construcción de las palabras del código, correspondiente a los mensajes, es
necesario seguir los pasos de transición de los emansajes por las filas y las columna del
ejemplo 3.11.
Para visualizar mejor este procedimeinto, se construye el árbol del código. Desde el punto
correpondiente a la probabilidad unitaria, se dirige dos ramas. A la rama con mayor
probabilidad se le asigna el símbolo 1 ; a la de menor probabilidad el símbolo 0. Esta
ramificación continúa hasta llegar a las probabilidades de cada mensaje (fig 3.4).
0,58 0,42
1 0
0,32 0,2
0,26 0,22 1 0
1 0 m1 m2
0,16 0,10
0,16 0,16 1 0
0 1 0 0,06 m5
20
21. Seguridad y protecciòn de informaciòn Lilia Edith Aparicio Pico
Memorias de Clase, Seminario 3
0,10
m3 m4 1 0
m6 0,04 1 0 0,02
m7 m8
Figura 3.4 Árbol del código construido según el ejemplo 3.11 por el algoritmo de Huffman.
Trasladándose por las ramas del árbol, de arriba hacia abajo, puede escribirse las palabras
del código correspondiente a cada mensaje
m1 m2 m3 m4 m5 m6 m7 m8
01 00 111 110 100 1011 10101 10100
3.11 codificaciones reduntante
el modelo matemático del canal de comunicación discreto con ruido analiza en los epígrafes
del 24 al 2.6.
La teoría de la codificación redundante se basa en los resultados de las investigaciones
realizadas por shannon y fomuladas en el teorema fundamental para el canal discreto con
ruido que plantea : para cualquier velocidad de transmisión del os símbolos binarios, menor
que la capacidad del canal, existen un código con probabilidad de codificación errónea tan
pequeña como se quiera; la probabilidad de error no puede hacerse arbitraria mente
pequeña, si la velocidad de transmisión es mayor que la capacidad del canal.
Como puede verse, en el teorema no están planteadas la formas de construcción del código
que posibilita tal transmisión ideal. Sin embargo, el significado es importantísimo pues,
habiendo fuandamentado la posibilidad potencial de tal codificación los esfuerzos de lo
científicos en la búsqueda de los códigos concretos.
La codificación debe realizarse de forma tal que la señal correspondiente a la secuencia de
símbolos recibida después de la interferencia supuesta en el canal, se reciba más semejante
posible a la señal proporcionada por la secuencia de símbolos transmitida, que a las señales
representantes de otras posibles secuencias. Esto se logra por el valor de la redundancia
introducida durante la codificación, la que permite imponer, a la secuencia de símbolos
transmitidas, una serie de condiciones adicionales, la comprobación de las cuales, en el
extremo receptor, brinda la posibilidad de detectar y corregir errores.
Los códigos que posean estas propiedades son denominados códigos redundantes o
correctores. En la gran mayoría de los códigos correctores existen en la actualidad, estas
condiciones se logran como consecuencia de sus propiedades algebraicas, de aquí que
también sean llamados códigos algebraicos.
21
22. Seguridad y protecciòn de informaciòn Lilia Edith Aparicio Pico
Memorias de Clase, Seminario 3
Los códigos algebraicos pueden ser divididos en dos clases : de bloques y recurrentes.
En el caso de los códigos de bloque, como ya se mencionó, el procedimiento de codificación
consistente en la asignación, a cada mensaje o a la secuencia de k símbolos los
correspondientes a este mensaje, de un bloque de n símbolos. El código de bloques se
denomina uniforme si el valor de n se mantiene constante para todos los mensajes de la
fuente.
Si la cantidad de símbolos en las secuencias correspondientes a los diferentes mensajes de
la fuente varía, entonces el código del bloque se denonima no uniforme.
Este código se obtiene, como ya se ha visto durante una codificación eficiente. Por la
complejidad de los positivos, para la realización de los códigos correctores, es que no han
tenido una gran popularidad.
Los códigos de bloques se clasifican también en códigos divisibles o indivisibles. Durante la
codificación con códigos divisibles las secuencias de salida codificadas consiste en
símbolos, con papel limitado claramente. Puede ser símbolo de información, coincidente con
los símbolos que llegan a la entrada del codificador del canal símbolos redundantes ( o de
chequeo) introducidos en la secuencia original por el codificador del canal, que sirve para
detectar y corregir los errores. Cuando se codifica con códigos indivisibles, es imposible
dividir los símbolos de la secuencia de salida del canal, en símbolos de información y
símbolos de chequeo.
Los códigos recurrentes son aquellos códigos en los que la introducción de los símbolos
redundantes, en la secuencia codificada de los símbolos de información recurrentes también
pueden clasificarse en divisibles e indivisibles.
3.12 Principios generales de utilización de la redundancia
La capacidad del código de detectar y corregir está determinada por la existencia de
símbolos redundantes. En la entrada del dispositivo codificador aparece una secuencia de k
símbolos de información. A la salida de éste dispositivo le corresponde una secuencia de n
símbolos, donde n > k.
En total puede existir 2k
diferentes secuencias de entrada y 2n
diferentes secuencias de
salida, en el caso de códigos binarios. De la 2n
secuencia de salida, solo 2k
secuencia
correspondiente a las de entrada. Estas secuencias son denominadas palabras código
permisibles. Las restantes 2n
- 2k
posibles secuencias de salida, no son utilizadas para la
transmisión. Estas otras secuencias son denominadas palabras código prohibidas.
La distorsión de la información en el proceso de transmisión se produce cuando algunos de
los símbolos transmitidos se cambian por otros, no vereces. Por cuanto, cada una de las 2k
palabras del código permisibles, como resultado de la acción de las interferencias, puede
transformarse en cualquiera otra, se tiene en total 2k
2n
posibles casos de transmisión ( fig
3.5).
A1 . B1
. .
. .
22
23. Seguridad y protecciòn de informaciòn Lilia Edith Aparicio Pico
Memorias de Clase, Seminario 3
. .
Ai Bi Mi
. .
. .
. .
Aj . Bj Mj
. .
. .
. .
. B2
n
A2
k
.
Figura 3.5 Posibles transformaciones de las palabras de código permisibles al pasar por un canal con
interferencias.
En esta cantidad total están incluidos:
2k
en caso de transmisión sin error ( en la figura 3.5 se representa por líneas gruesas).
2k
(2k
- 1) casos de transmisión a otras palabras permisibles, que corresponden a errores no
detectables (en la figura 3.5 se representa por líneas discontinuas).
2k
(2n
- 2) casos de transición a las palabras prohibidas, que pueden ser detectados ) en la
figura 7.5 se representa por líneas finas).
Consecuentemente, la parte de errores detectados de la cantidad total de posibles casos de
transmisión es :
2k
(2n
- 2k
) 2k
= 1 - .
2k
2n
2n
si la palabra del código contiene sólo un símbolo redundante, o sea, n= k + 1, entonces la
cantidad total de secuencias de salida es de 2k+1
, el doble de la cantidad total de la
secuencias codificadas de entrada. Como subconjunto de las palabras del código
permisibles pueden ser tomado, por ejemplo el subconjunto de 2k
palabras, que contengan
una cantidad par de unos ( o de ceros).
Durante la codificación, a cada secuencia de k símbolos de información se le agrega un
símbolo ( 0 o 1) de forma tal que la cantidad total de unos en la palabra codificada sea par.
La distorsión de cualquier cantidad impar de símbolos traslada la palabra codificada
permisible al conjunto de las palabras prohibidas, lo que se detecta en el extremo receptor,
debido a la cantidad impar de unos. La fracción de errores detectados en este caso es
2k
1
1 - = .
2k+1
2
Una situación algo diferente tiene lugar con la corrección de errores. Cualquier método de
decodificación puede ser interpretado como una regla de división de todo el conjunto de las
palabras prohibidas en 2k
subconjuntos disjuntos M, a cada uno de ellos se la asocia una de
las palabras permisibles. Al recibir una palabra prohibida, perteneciente al subconjunto Mi ,
23
24. Seguridad y protecciòn de informaciòn Lilia Edith Aparicio Pico
Memorias de Clase, Seminario 3
se toma la decisión que fue transmitida la palabra permisible Ai (fig 7.5). el error será
corregido en aquellos casos en que realmente la palabra recibida haya sido formada por Ai o
sea, en 2n
- 2k
casos.
La cantidad total de transformaciones a palabras prohibidas es 2k
(2n
- 2k
). De esta forma,
cualquier código correcto es capaz de corregir errores. La relación de la cantidad de
palabras codificadas erróneas, corregidas por el código, entre la cantidad de palabras
erróneas detectada es
2n
- 2k
1
= .
2k
(2n
- 2k
). 2k
El método de división en subconjuntos, depende del tipo de errores que deben corregirse por
el código especifico.
La mayoría de los códigos desarrollados hasta el momento, están destinados a la corrección
de errores mutuamente independientes de determinada multiplicidad y ráfagas de errores.
Los errores mutuamente independientes son aquellos errores en la secuencia transmitida de
símbolos, para los que la probabilidad de ocurrencia de cualquier combinación de símbolos
erróneos, depende solo de la cantidad r de símbolos erróneos y de la probabilidad de error p
de un símbolo.
La cantidad de símbolos erróneos en la palabra es denominada multiplicidad del error.
Bajo errores mutuamente independientes, la probabilidad de error de cualesquiera r
símbolos en una palabra codificada de n posiciones es
Pr = Cr
n pr ( 1 -p) n-r
.
Si se tienen en cuenta que p << 1, entonces, en este caso, lo más probables son los errores
de menor multiplicidad. Estos deben ser detectados y corregidos en primer lugar.
3.13 Relación entre la capacidad de detección y corrección del código, con la
distancia entre las palabras
De lo anterior se deduce, que bajo errores mutuamente independientes, la más probable es
la transición a la palabra codificada, que se diferencia de la dada en la menor cantidad de
símbolos.
El grado de diferencia de dos palabras codificadas cualesquiera se caracteriza por la
distancia entre ellas, en el sentido de Hamming, o simplemente, por la distancia del código.
Esta representa la cantidad de símbolos en los que estas palabras se diferencian una de otra
y se simboliza por d.
Para obtener la distancia del código entre dos palabras codificadas de un código binario, es
suficiente contar la cantidad de unos, en la suma módulo 2 de estas palabras. Por ejemplo
1 0 0 1 1 1 1 1 0 1
24
25. Seguridad y protecciòn de informaciòn Lilia Edith Aparicio Pico
Memorias de Clase, Seminario 3
+ 1 1 0 0 0 0 1 0 1 0
0 1 0 1 1 1 0 1 1 1 d= 7.
La decodificación después de la recepción puede realizarse de forma tal que la palabra
codificada recibida, se identifique con aquella palabra permisible que se encuentre con ella,
a la menor distancia del código. Con esto se corrige el error más probable. Es evidente que
cuando d= 1 todas las palabras del código son permisibles.
Por ejemplo si n= 3, las palabras permisibles forman el conjunto siguiente 000, 001, 010,
011, 100, 101, 110, 111.
Cualquier error simple transforma una palabra dada en otra palabra permisible. Este es el
caso de un código que posee capacidad correctora.
Si d= 2, ninguna palabra del código permisible se transforma en otra permisible, con la
ocurrecia de un error simple. Por ejemplo, el subconjunto de las palabras del código
permisibles puede constituirse por el principio de la paridad de unos, como se muestra a a
continuación para n = 3
000,011, 101, 110
palabras permisibles
001, 010, 100, 111
palabras prohibidas
el código detecta todos los errores simples. En general, si es necesario detectar errores de
multiplicidad r, la mínima distancia entre palabras del código permisible, debe ser, al menos,
en una unidad mayor que r, o sea,
dd ≥ r +1 .
para la corrección de un error simple, a cada palabra del código permisible es necesario
hacer corresponder un subconjunto de palabras del código prohibidas. Para que estos
subconjuntos sean disjuntos, la distancia entre las palabras del código permisibles, debe ser
no menor de tres. Para n = 3 como palabras permisibles pueden mostrarse, por ejemplo, 000
y 111. Entonces a la palabra permisible 000 es necesario hacer corresponder el subconjunto
de las palabras del código prohibidas 001, 010, 100, formada como resultado de la
ocurrencia de un error simple en la palabra 000.
De forma similar, a la palabra permisible 111 es necesario hacer corresponder el
subconjunto de las palabras del código prohibidas 110, 011, 101, formadas como resultado
de la ocurrencia de un error simple en la palabra 111
001
000 010
palabras 100 palabras
pemisibles 011 prohibidas
25
26. Seguridad y protecciòn de informaciòn Lilia Edith Aparicio Pico
Memorias de Clase, Seminario 3
111 101
110
En general, paras la corrección de errores de multiplicidad s, la distancia mínima entre
palabras del código permisibles debe satisfacer la relación
dc ≥ 2s + 1.
No es difícil convencerse, que la corrección de todos los errores de multiplicidad s y,
simultaneamente, la detección de todos los errores de multiplicidad r, la mínima distancia
entre las palabras permisibles del código debe tomarse de la condición
dd+ c≥ r + s + 1.
Las fórmulas anteriores, obtenidas para el caso de errores mutuamente independientes,
brindan valores aumentados de la mínima distancia del código, bajo interferencias
correlacionadas con la señal.
En los canales reales de comunicación la duración de las pulsos interferentes sobrepasa la
duración de un símbolo, sucediendo que simultáneamente se distorsionen la duración de un
símbolo, sucediendo que simultáneamente se distorsione varios símbolos de la palabra
situados cerca uno de otros. Los errores de este tipo han recibido el nombre de ráfaga de
errores. La longitud de la ráfaga de errores es la cantidad de símbolos que se encuentran
entre dos símbolos erróneos, incluyendo estos, si después de este último han ocurrido al
menos α símbolos correctos. El valor que se escoja de α depende de una serie de factores.
Si por ejemplo, la palabra 101011001111011 como resultado de la cción de las
interferencias, se transforma en la palabra 101010101011011, entonces la longitud de la
ráfaga de errores formada es de cinco símbolos,
101011001111011
+ 101010101011011
000001100100000
λ=5
El método de decodificación descrito con anterioridad no es el más efectivo en este caso.
Para ráfagas de errores y canales asimétricos, para la misma capacidad de corrección, la
mínima distancia entre palabras del código permisibles puede ser menor.
Es necesario destacar que cada código corrector no garantiza la corrección de cualquier
combinación de errores. Los códigos están destinados para la corrección de los errores más
probables para el canal dado.
Si el carácter y el nivel de las interferencias son diferentes a los supuestos, la eficiencia de
utilización del código se reduce bruscamente. La utilización de un código corrector no puede
garantizar una recepción sin errores, pero brinda la posibilidad de aumentar la probabilidad
de obtención en la salida de un resultado correcto.
3.14 Indicadores de calidad del código corrector
26
27. Seguridad y protecciòn de informaciòn Lilia Edith Aparicio Pico
Memorias de Clase, Seminario 3
Una de las características fundamentales del código corrector es la redundancia del código,
que indica el grado de prolongación de la palabra del código para el logro de una
determinada capacidad correctora. Si por cada n símbolos de la secuencia de salida del
codificador del canal, hay k de información y - n - k de chequeo, entonces la redundancia
relativa del código puede ser expresada por una de las relaciones siguientes
n - k
Rn
n
o
n - k
Rk
k
La magnitud Rk es preferible, ya que ésta responde mejor a la idea del concepto de
redundancia. Los códigos que garantizan una capacidad de corrección dad, con la mínima
redundancia posible, se denomina óptimos.
En relación con la determinación de los códigos óptimos debe evaluarse, por ejemplo, la
mayor cantidad posible Q de palabras permisibles de un código binario de n posiciones,
que sea capaz de corregir errores mutuamente independientes de multiplicidad s. esto
equivale a buscar la cantidad de combinaciones con distancia mínima entre ellas, dc =
2s+ 1.
La cantidad total de diferentes errores corregibles para cada una de las palabras permisibles
es
s
∑ C i
n .
i=1
Cada uno de estos errores debe llevarse a una palabra prohibida, relacionada con el
subconjunto de la palabra permisible dad. Esta palabra, además de la cantidad recién
mencionada, también forma parte del subconjunto. La decodificación unívoca es posible solo
en el caso en que los subconjuntos mencionados sean disjuntos. Por cuanto la cantidad total
de palabras diferentes del código binario de n posiciones es 2n
, la cantidad de palabras del
código permisibles no puede exceder la longitud
2n
s
1 + ∑ C i
n
i=1
o
2n
Q= s .
∑ C i
n
27
28. Seguridad y protecciòn de informaciòn Lilia Edith Aparicio Pico
Memorias de Clase, Seminario 3
i=0
Este límite se conoce como el limite de Hamming. Para algunos valores concretos de la
distancia del código d, los correspondientes valores de N se muestran en la tabla 13.
TABLA 13
d N d N
1 2n
5 ≤ 2n +1
/ (n2
+ n+ 2)
2 2n +1 .
3 2n +1
/ (n+1) .
4 2n +1
/ n 2k + 1 ≤ 2n
/ (1+ Cn
1
+ Cn
2
+
… + Cn
k
)
Sin embargo, no siempre es racional tender a la utilización de códigos, cercanos a los
óptimos. Es necesario tener en cuenta otro indicador, no menor importante, de calidad del
código corrector, la complejidad de la realización técnica de los procesos de codificación y
decodificación.
Si la información debe transmitirse por una línea de comunicación de acción lenta (no
confiable y costosa) y los dispositivos codificador y decodificador (realizados con elementos
muy confiables y de gran velocidad ), entonces, la complejidad de estos dispositivos no
juegan un papel fundamental. El factor decisivo, en este caso, es deseable en la utilización
de la línea de comunicación y por esto, es aumentar la eficiencia en la utilización de la línea
de comunicación u por esto, es deseable utilizar códigos correctores con mínima
redundancia.
Si el código corrector debe ser utilizado en un sistema, realizado con elementos de
confiabilidad y velocidad iguales o cercanas a la confiabilidad y velocidad de los equipos
codificador y decodificador ( por ejemplo, para el aumento de la veracidad de reproducción
de la información desde la memoria de una computadora) , entonces el criterio de calidad del
código correcto es la confiabilidad del sistema en su conjunto, o sea, tomado en cuenta las
posibles distorsiones o interrupciones en los equipos de codificación y decodificación. En
este caso, frecuentemente son más racionales los códigos con gran redundancia, pero que
sea sencilla su realización técnica.
3.15 Interpretación geométrica de los códigos de bloqueo correctores
Cualquier palabra codificada binaria de n posiciones puede ser interpretada como el vértice
de un cubo unitario n-dimensional, o se, de un cubo con longitud de arista unitaria.
para n= 2 , las palabras codificadas se ubican en los vértices de un cuadrado (fig 3.6) ; para
n= 3 en los vértices de uncubo unitario (fig 7.7) ; para n= 4 en los vértices de un cubo
tetradimensional (fig 3.8).
28
29. Seguridad y protecciòn de informaciòn Lilia Edith Aparicio Pico
Memorias de Clase, Seminario 3
01 11
00 10
Figura 3.6 Interpretación geómetrica de un código binario de dos posiciones.
010 110
d=2
011 111
d=3
100
000
001 101
Figura3.7 Interpretación geométrica de un código binario de tres posiciones.
1010 1110
1111
1011
0110
0011
0111
0110
0000 1100
0001
29
30. Seguridad y protecciòn de informaciòn Lilia Edith Aparicio Pico
Memorias de Clase, Seminario 3
0101
1001 1101
Figura 3.8 Interpretación geométrica de un código binario de cuatro posiciones.
En general, el cubo unitario n-dimensional tiene 2n vértices que es igual a la mayor cantidad
posible de palabras del código. Este modelo brinda una interpretación geométrica sencilla a
la distancia entre diferentes palabras del código, que corresponde a la menor cantidad de
aristas del cubo unitario por las que es necesario pasar para ir de una palabra a la otra.
Al subconjunto de cada palabra se asocian todos los vértices que se encuentren en una
esfera de radio (d-1)/2 y con centro en el vértice correspondiente a la palabra del código
permisible en cuestión. Si como resultado de la acción del ruido la palabra se traslada a un
punto que se encuentra dentro de la esfera de radio (d-1)/2, entonces el error puede ser
corregido. Este método se llama método de decodificación para errores simples
independientes.
Si la interferencia traslada el punto de la palabra permisible hasta la frontera de dos esferas
(a la distancia d/2) o más (pero no hasta el punto correspondiente a otra palabra permisible),
entonces la distorsión puede ser detectada. Para los canales con distorsión independiente
de los símbolos, los mejores códigos correctores son aquellos donde los puntos
correspondientes a palabras del código permisibles, se encuentran situados en el espacio
uniformemente.
3.16 Teorema de codificación de Shannon para canales con ruido
El teorema fundamental de Shannon sobre la codificación para el canal con ruido, enunciado
a continuación, sin demostración, es análogo el teorema para el canal no ruidoso.
Si la fuente de información tiene una entropía H(M) y el canal de comunicación posee una
capacidad C, entonces :
1. Los mensajes, elaborados por la fuente, siempre puede ser codificados de forma tal que
la velocidad de transmisión Bm sean tan cercana como se quiera a la magnitud.
Bm max = C/H(M)
Y que la probabilidad de error en la determinación de cada símbolo transmitido sea menor
que cualquier cantidad dada,
2. No existe método de codificación que permita realizar la transmisión con una velocidad
mayor que Bmmax y con una pequeña probabilidad de error.
En otras palabras, si el flujo de información
H´(M) = Bm H(M) ≤ C,
30
31. Seguridad y protecciòn de informaciòn Lilia Edith Aparicio Pico
Memorias de Clase, Seminario 3
Entonces puede escogerse un código especial, que permita transmitir toda la información
con una probabilidad de error tan pequeña como se quiera. Si H´(M) > C, no existe código .
Este resultado particularmente valioso, ya que la intuición no lo apoya. Realmente es
evidente que con la disminución de la velocidad de transmisión de información puede
aumentarse la veracidad. Esto puede lograrse, por ejemplo, por la vía de la múltiple
repetición de cada letra del mensaje. Sin embargo, para lograr el error nulo intuitivamente
parece que la velocidad de transmisión bm debe reducirse a cero (la cantidad de
repeticiones debe ser infinitamente grande). El teorema , sin embargo, afirma que siempre
es posible lograr una velocidad de transmisión cercana a bmmax ( por vía de elección del
código conveniente). El teorema no responde a la pregunta de cómo elegir tal código. Pero
para la aproximación al límite (3.9), el método general como en el caso del canal no ruidoso,
es la codificación de largos mensajes y no de símbolos por separado.
Ejemplo 3.12
Supóngase que por un canal puede transmitirse señales binarias, con una velocidad vx. De
esta forma, el alfabeto de las señales está compuesto de dos símbolos X= (x1, x2) . las
interferencias en el canal son tales que, en cada trío de símbolos transmitidos se distorsiona
( o sea, x, pasa, o viceversa) no más de un símbolo siendo las probabilidades de distorsión
de cada trío y la probabilidad de recepción del trío no distorsionado, iguales entre sí.
Por definición la capacidad de tal canal es
Cvx max { I(X,Y) }.
La velocidad de transmisión vx, de las señales elementales por el canal, se considera
conocida y para la determinación de C hace falta hallar el max I(X,Y).
La cantidad promedio de información portada por la señal es
I(X,Y) = H(Y) - H(Y /X).
Consecuentemente, la tarea se reduce a hallar las expresiones de H(Y) y H(Y/X) y
maximizar su diferencia.
Para el cálculo de estas magnitudes se examina un nuevo alfabeto X´, que contiene todos
los posibles grupos de tres símbolos. La cantidad de tales grupos es 8.
x1 x1 x1 x1 x2 x2
x1 x1 x2 x2 x1 x2
x1 x2 x1 x2 x2 x1
x2 x1 x1 x2 x2 x2
A cada uno de estos grupos se le hace corresponder u nuevo símbolo xi´. como resultado se
obtiene un nuevo alfabeto X´= (x1´, x2´…., x8´) .
La cantidad promedio de información I(Y´, X´), transmitida por símbolo de la señal x´, estrés
veces mayor que la cantidad promedio de información I(Y ; X), transmitida por la señal x, ya
que la cada señal x´ está compuesta por tres símbolos x. Pero, la velocidad de transmisión v
31
32. Seguridad y protecciòn de informaciòn Lilia Edith Aparicio Pico
Memorias de Clase, Seminario 3
´x de los símbolos x´, por el canal es tres veces menor que la velocidad vx, por esto la
capacidad del canal puede ser calculada como
C= v´x max { I(Y´,X´) },
Donde
I(Y´,X´) = H (Y´) - H(Y´/ X´).
Por condición cada símbolo transmitido xi´ puede convertirse en uno de los cuatro símbolos
yj´ posibles siendo iguales las probabilidades de transformación P(yj´ / xi´) = ¼. Por ejemplo,
x1´ puede convertirse, como resultado de la acción de la interferencia, en y2´, y3´, y4´, o no
distorsionarse (yj´ ). De esta forma, la tabla de las probabilidades condicionales toma la
forma :
p(y1´ / x1´), p(y2´ / x1´), …………., p(y8´ / x1´)
p(y1´ / x1´), p(y2´ / x1´), …………., p(y8´ / x2´)
. . .
. . .
. . .
. . .
p(y1´ / x8´), p(y2´ / x8´), …………., p(y8´ / x8´)
En cada fila, cuatro términos valen 1/4 y el resto son iguales a cero. Consecuentemente
8 8
H(Y´/ X´) = - ∑p(xi´) ∑p(yj´ / xi´) log p(yj´ / xi´)
i=1 i=1
= - ( p(xi´) . 4 . 1/4 . log 1/4 + p(x2´) . 4 . 1/4 . log 1/4 +
+ ………..+ p(x8´) . 4 .1/4 . log 1/4) = log 4.
De aquí puede verse que la entropía condicional H( Y´/ X´) no depende de la entropía de la
fuente. Por esto,
max { I(Y´,X´) } = Hm (y´) - H(Y´/X´).
Pero la entropía H(y´) logra su máximo valor para eventos equiprobables. En este caso,
Hm (Y´) = log 8.
Consecuentemente,
max { I(Y´,X´) } = log 8 - log 4 = log 2.
La capacidad del canal de comunicación es
vx
C= v´x log 2 = log 2.
3
32
33. Seguridad y protecciòn de informaciòn Lilia Edith Aparicio Pico
Memorias de Clase, Seminario 3
En ausencia de interferencias, H(Y´/X´) = 0 y
max { I(Y´,X´) } = Hm (Y´) = log 8 = 3 log 2.
Y entonces
vx
C= 3 log 2 = vx log 2.
3
de aquí se deduce que la presencia de interferencias de tipo señalado en el canal, reduce su
capacidad en tres veces.
Para aplicar ahora el teorema fundamental de Shannon, supóngase que la fuente de
información crea mensajes con símbolos del alfabeto Z = (z1, z2, …., zn) siendo H(Z) la
entropía de la fuente. Entonces, de acuerdo con el teorema fundamental, los símbolos z
pueden ser transmitidos con una velocidad tan cercana como se quiera a
C vx log 2
Vxz= = ,
H(Z) 3 H(Z)
Con una probabilidad de error tan pequeña como se quiera. Para esto, los mensajes deben
ser codificados de cierta forma. La tarea de la elección del código conveniente para cada
canal concreto, se soluciona en cada caso, individualmente. Para este ejemplo puede
señalarse el método de codificación siguiente.
Supóngase inicialmente que el canal es libre de interferencias, entonces realizando la
codificación de mensajes, lo suficientemente largos, por el método de Shannon-Fano, puede
lograrse una velocidad tan cercana como se quiera al límite
vx log 2
B´n max = .
3H(X)
en este caso, los símbolos en el canal se suceden con una frecuencia vx / 3. Para utilizar
totalmente la capacidad del canal, es posible , después de cada símbolo del código, que es
denominado de información, transmitir dos símbolos redundantes adicionales, que no porten
información del mensaje. Estos símbolos sirven para el aumento de la veracidad( corrección
de los errores ).
Supóngase, que en cada par de símbolos transmitidos q1 q2 q3 el símbolo q1 sea de
información y q2 q3 los correctores. Los símbolos q2 y q3 pueden tomarse de forma tal que las
sumas
q1 + q2 y q1 +q3
sean pares. Durante la recepción del mensaje estas sumas son calculadas. El
incumplimiento de la paridad atestigua la presencia de un error simple, la que después de la
detección, puede ser corregida. Por cuanto, por condición no puede distorsionarse más de
un símbolo en cada trío, no habrá errores durante la transmisión. De esta forma, la
transmisión, con la velocidad señalada, puede realizarse sin errores, como si esta se
realizara realmente por un canal sin interferencias.
33
34. Seguridad y protecciòn de informaciòn Lilia Edith Aparicio Pico
Memorias de Clase, Seminario 3
34