You are on page 1of 12

CODIFICACIÓN DE FUENTE:

Introducción:
A continuación veremos el diagrama de bloques de un sistema de transmisión digital:

Se dice que los símbolos son generados por una fuente y a la conversión se le llama codificación
de fuente (por ejemplo PCM o DPCM). El codificador de fuente también se puede encargar de
codificar eficientemente los datos binarios, asignando, por ejemplo, mas bits a los símbolos
menos probables y menos bits a los mas probables. Por su parte, el codificador de canal
introducirá bits redundante de una manera controlada, con el fin de fortalecer la información
frente al ruido o a la interferencia que pueda conseguir en el canal.
Luego de pasar por un canal que, entre otras cosas, agrega ruido, el receptor se encarga de
realizar todas las operaciones inversas a fin de rescatar el mensaje original.

Teoría de Información:
La teoría de información puede ser vista como una rama de la teoría de probabilidad
aplicada y, dentro del área de comunicaciones, pretende dos objetivos: a) Desarrollo de los
límites teóricos de desempeño que se pueden alcanzar en cuanto a la transmisión de una fuente,
a través de un canal determinado utilizando cierto tipo de codificación b) Desarrollo de nuevos
esquemas de codificación que logren un desempeño razonablemente bueno comparado con el
límite teórico.
Una transmisión digital ideal es aquella en donde no ocurren errores. Sin embargo en el
sistema existe ruido que aumenta la probabilidad de error. Una forma de reducir la probabilidad
de error sería aumentar la energía por bit Eb; para esto, o se aumenta la potencia de transmisión
S, o se reduce la velocidad de transmisión Rb (Eb=S/Rb). Antes de 1948 se pensaba que era
imposible transmitir sin errores. Shannon estableció que:

1) Mientras la tasa de transmisión se mantenga dentro de ciertos límites, se podrá


transmitir sin errores. NO es necesario que Rb sea nula para lograrlo
2) Para esto hay que transmitir por debajo de lo que se conoce como capacidad del canal
por segundo (C )

Shannon utilizó dos medidas: a) la entropía de la fuente como medida de la cantidad de


información de la misma o autoinformación y b) una medida de información mutua o sea la
información que un proceso tiene sobre otro.

Cantidad de Información en un mensaje:


Cuando a uno le transmiten una noticia mientras menos probable sea mas información
lleva consigo. Por ejemplo
“La próxima clase nos vemos” o
“Venezuela rompe relaciones con USA”.
Es evidente que la segunda oración trata sobre un evento bastante menos probable que el
primero y que, por ende, lleva mas información.
Si P=Probabilidad de un evento e I= Información, entonces una posible forma de relacionarlos
es a través de una función logarítmica
I es función de log 1/P.
Esto puede justificarse si se entiende que las restricciones son:
1) La información es un número positivo
2) Si la probabilidad de un mensaje es 1, entonces su información es nula
3) Si un mensaje A es mas probable que uno B, entonces la información de B es mayor
que la información que conlleva A
4) Si se tienen dos mensajes independientes A y B, cuando se transmite primero A y
luego B, la información recibida por el usuario es la suma de las informaciones de
los mensajes individuales. Si hablamos del evento C como el que representa la
ocurrencia de AyB, entonces P(C)=P(A).P(B); la información que lleva C es función
de P(A)P(B)

Todo esto justifica la aparición de la función logarítmica para relacionar información


con probabilidad. La base que se elija para el logaritmo estará relacionada con la unidad de
información. Así si tomamos base 2, hablaremos de binary units o binary digits o bits. Esto
tiene un sentido adicional y es que lo mas simple que podemos imaginar es 1 bit; entonces la
unidad de información estará normalizada respecto al caso de menor orden. Trataremos de no
confundir el bit como elemento de representación al bit que representa la unidad de
información. Recordemos que logax=logbx/logba
Si se usa logaritmo en base e(logaritmo natural), la unidad será el nat y cuando la base
es 10, la unidad se denomina Hartley o decit.
Desde el punto de vista práctico una empresa le cobra a uno por el tiempo en que se
tarda en transmitir un mensaje, la información en un mensaje depende entonces del mínimo
tiempo para transmitirlo, esto implica que los mensajes menos probables se tomarán mas tiempo
en transmitirse. Si tomamos como ejemplo la transmisión de letras de nuestro alfabeto,
debiésemos asignar menos bits a la letra “a” (ocurre frecuentemente) que a la letra “x” (ocurre
raras veces).

Mostraremos ahora que el tiempo para transmitir un mensaje es proporcional a log(1/P)


Tasa de Información:
Si una fuente genera k mensajes por segundo, entonces la tasa de información, en bits por
segundo si es logaritmo en base 2, será R=kH.
Ejemplo 1(tomado del Taub & Schilling):
Una señal analógica, de ancho de banda B, es muestreada a frecuencia de Nyquist (2B) y
cuantificada con 4 niveles (M=4) independientes. Suponga que los 4 niveles ocurren con las
siguientes probabilidades P(N1)=P(N2)=1/8 y P(N3)=P(N4)=3/8. Determine la tasa de
información de esta fuente.
Primero se calcula H=p(N1)log(1/ p(N1))+ p(N2)log(1/ p(N2))+ p(N3)log(1/ p(N3))+
p(N4)log(1/ p(N4))=1.8 bits
Entonces la tasa de información será
R=2B*H=3.6 B bits/seg.
Observe que si los niveles de cuantificación fuesen igualmente probables entonces H=2 bit y
R=4B bits/segundo lo cual es mejor.

Ejemplo 2:
Supongamos dos mensajes posibles (0 y 1) equiprobables. Requeriríamos 1 solo bit para
enviarlos
Supongamos 4 mensajes (00, 01, 10 y 11) equiprobables. Requeriríamos 2 bits para
enviarlos
En este último caso se tardaría el doble de tiempo que en el primer caso en enviar 1
mensaje y tiene dos veces mas información.
Si tenemos n mensajes probables, requeriríamos log2n dígitos binarios para
transmitirlos.
En este caso la probabilidad de cada mensaje es 1/n
La información contenida en un mensaje con probabilidad P es proporcional a log 1/P es decir
I=k log2n
Si se toma k=1
I= log2(1/P) bits (binary units o binary digits)= log2n bits
Resultado al que ya habíamos llegado antes intuitivamente.
La interpretación de esto es que hacen falta I bits para codificar los mensajes.

Ejemplo:
Supongamos una fuente que emite 4 posibles mensajes
m1; P(m1)=0.5; m2; P(m2)=0.3; m3; P(m3)=0.15; m4; P(m4)=0.05
Entonces
I(m1)=log2(1/P(m1))=3.32log10(1/P(m1))=0.99
I(m2)=log2(1/P(m2))=3.32log10(1/P(m2))=1.73
I(m3)=log2(1/P(m3))=3.32log10(1/P(m3))=2.73
I(m4)=log2(1/P(m4))=3.32log10(1/P(m4))=4.31
Si llegasen estos 4 mensajes uno tras otro(m1m2m3m4), asumiendo independencia, la
información total de este nuevo mensaje sería igual a 9.76 bits. Si todos fuesen equiprobables
P(m1)= P(m2)= P(m3)= P(m4)=1/4, la información de uno de los mensajes sería 2 bits, número
necesario para representarlo. Para 4 seguido daría 8 bits.
Ejercicio: Compare la cantidad de información de una imagen de 8 niveles de grises de 500
pixels x 500 pixels con la de 1000 palabras, asumiendo un vocabulario de 100000 palabras
igualmente probables.

Entropía:
Llamaremos entropía H a la cantidad de información promedio por mensaje.
Consideremos una fuente de información de n símbolos, sin memoria, es decir donde cada
mensaje mi con probabilidad de ocurrencia Pi no tiene ninguna relación con los mensajes
anteriormente enviados.
La información contenida en cada mensaje mi será
I= log2(1/Pi) bits
Sabemos que la información promedio de la fuente será la sumatoria de las informaciones de
cada mensaje multiplicada por su probabilidad. Así:
n
H = ∑ I i Pi
i =1

y la unidad de la entropía es bits


sustituyendo la expresión anteriormente obtenida de Ii
n n
H = ∑Pi log 2 (1 / Pi ) = −∑Pi log 2 ( Pi )
i =1 i =1

Entonces podemos decir que la entropía de una fuente es una medida de las
probabilidades de los mensajes.
Si la fuente tiene una distribución de probabilidades que genera la máxima
incertidumbre (todos los mensajes son equiprobables), ésta será una fuente de máxima entropía.
Ejemplo: n mensajes equiprobables (P=1/n) daría una entropía igual a
H= log2n

La información es una medida de la incertidumbre o expectativa de un mensaje y también es


igual al mínimo número de bits requeridos para codificarlo
La entropía es una medida de la incertidumbre promedio (por mensaje) y también representa el
número de bits requeridos en promedio para codificar un mensaje de esa fuente.
n
H ( m) = ∑P ( mi ) log 2 (1 / P ( mi ))
i =1

Esto es una función de una variable aleatoria mi


Si la fuente se dice que tiene memoria porque la ocurrencia de los mensajes está
relacionada entre sí, la entropía tendrá un valor menor al dado por la ecuación anterior ya que la
relación entre mensajes disminuye la incertidumbre presente en cada uno de ellos.

Teorema de Shannon
Para una fuente de M mensajes igualmente probables los cuales se transmiten a una tasa R, si se
envían por un canal con una Capacidad de Canal igual a C, entonces si R es menor que C
siempre será posible transmitir sin errores. Si, en cambio R es mayor a C entonces la
probabilidad de errores tenderá a 1.
Si una fuente consta de n mensajes discretos y estos son enviados por un canal no ruidoso, cada
mensaje podrá identificarse en el receptor. La máxima entropía de la fuente será
n
1
H =∑ log 2 (1 / Pi ) = log 2 ( n)
i =1 n

Si T es el tiempo de transmisión de cada mensaje, la capacidad del canal será


C=(1/T)log2n

Ejemplo (Tomado del Lathi): Una imagen tiene 300000 pixels y cada uno puede tener 10
niveles de grises. Determine la información de cada posible imagen
I= log2(10300000)=300000log2(10)=3,32x 300000=996000 bits
Si se transmiten 30 cuadros por segundo, determine la tasa de información
R=(30)(996000)= 29,9 Mbps

Ejemplo: (Tomado del Carlson)Determine la información que llevan 1000 palabras que
pertenecen a un vocabulario de 100000 palabras.
I=1000log2(100000)=
3,32x1000x log10(100000)=16600 bits

Capacidad del canal

La capacidad del canal tiene que ver con aspectos físicos como el medio de transmisión, el tipo
de señal, el tipo de receptor, ya que todos ellos afectan la transmisión de la información. Si se
define Cs como la máxima cantidad de información transmitida cuando se transmite una
muestra, símbolo o dígito, para k símbolos, entonces kCs será la máxima tasa de transmisión de
información por segundo o capacidad del canal.
Pensemos en una fuente de señal gaussiana x(t) que es transmitida por un canal sin
memoria y contaminada con ruido blanco gaussiano n(t). La salida la llamaremos y(t)
Supongamos que la fuente emite los caracteres {x1,x2,....,xn}. Del receptor se rescatarán
entonces los caracteres {y1,y2,...,yn} que podrían o no ser iguales a los enviados.
En un canal sin ruido lo lógico sería que yi=xi. Sin embargo el ruido presente en un
canal proporciona cierta incertidumbre sobre el mensaje recibido.
Si se habla de P(xi / yi) como la probabilidad de haber transmitido x i dado que se recibió
yi , se puede estimar la incertidumbre de haber enviado xi cuando se ha recibido yi como
1
log 2
xi
P( )
yi
Si se promedia sobre todos los pares posibles xi,, yi se obtiene:
1
H ( x / y ) = ∑∑P ( xi , y j ) log 2
i j P ( xi / y j )

Esto es una incertidumbre que cambia la cantidad de información en el receptor cuando recibe y
La DEP de ruido n(t) es constante para toda f, al ser limitada por un canal de tipo
pasabajo de ancho de banda apropiado a la señal, la nueva DEP es como una ventana
rectangular cuya autocorrelación es igual a BSinc(2 B ), esto implica que las muestras
tomadas a razón de Nyquist están decorrelacionadas (R( =k/2B)=0) y, por ser gaussiano eso
implica que son también independientes. La potencia se puede calcular como la autocorrelación
en cero y por eso resulta igual a B lo cual también es la varianza.
Antes de continuar con la búsqueda de la capacidad del canal comentaremos el
procedimiento que se sigue para maximizar la entropía de una fuente de una señal continua,
aleatoria x(t).
Para mensajes discretos la entropía resultó máxima cuando eran equiprobables (máxima
incertidumbre). Para el caso de x(t) continuo, hay que maximizar H(x), la cual para el caso de
x(t) continuo será:
∞ 1
H ( x ) = ∫ p( x ) log dx
p( x )
−∞

sabiendo que se debe cumplir:


∫x p ( x ) dx =σ2
2

∫ p( x )dx = 1

Este problema se puede resolver usando el teorema del cálculo de variaciones, el cual se
plantea, en general, como sigue:

Sea H = ∫ F ( x , p)dx
−∞
Con las restricciones

∫ φ1( x , p)dx = λ1
−∞


∫ φ2 ( x , p)dx = λ2
−∞
Para maximizar H hay que resolver la siguiente ecuación

∂F ∂φ ∂φ2
+ α1 1 + α2 =0
∂p ∂p ∂p

En nuestro caso

F(p,x) =p log (1/p)


1(x,p)=p
2
2(x,p)=x p

por lo tanto se debe cumplir

1
∂ ( p log )
p ∂ ( x 2 p)
+ α1 + α 2 =0
∂p ∂p
− (1 + log p) + α1 + α 2 x 2 = 0
2
p = e (α1 −1)eα 2 x

Al aplicarle las restricciones se despejan 1 y 2 resultando


2
1 −x
p( x ) = e 2σ 2
σ 2π

Por lo tanto la distribución que maximiza la entropía es una gaussiana y el máximo


valor de la entropía resulta:
H(x) máxima= 0.5log(2 e 2)
Para el caso de x(t) sea ruido blanco que fue filtrado por un canal de ancho de banda B,
entonces la entropía resulta igual a
0.5log(2 e B)
Por lo tanto la entropía del ruido por segundo, es la entropía de 2B muestras tomadas a
Nyquist. Multiplicando entonces por 2B
H(n)= Blog(2 e B)
Las señales de DEP constante filtradas y gaussianas tienen la máxima entropía ya que
son las mas aleatorias posibles.

Por otra parte:


H(x) es la incertidumbre sobre la entrada
H(y) es la incertidumbre sobre la salida
H(x/y) es la incertidumbre sobre la entrada conociendo cual es la salida
I(x;y) es la información mutua de las variables continuas x, y. Se dice que es la
incertidumbre sobre la fuente que es resuelta al mirar la salida. Si no hubiese ruido en el canal,
y, que es el valor recibido, debe ser igual al x, que es el valor transmitido. Pero el ruido del
canal introduce incertidumbre respecto a lo recibido en función de lo transmitido por lo tanto al
recibir y hay una cierta incertidumbre acerca de lo que se envió; dicha incertidumbre es culpa
del ruido. Se puede deducir que
I(x;y)=H(y)-H(y/x)=H(x)-H(x/y)
Donde H(x/y) es una información mutua entre x, y
Pero en un sistema como el que hemos descrito, H(y/x) depende solo del ruido n y entonces
H(y/x)=H(n)
Así I(x;y)=H(y)-H(n) en bits/muestra.
Buscaremos el máximo de esta función asumiendo que la potencia de y es S+N, mientras que la
potencia del ruido es N
Cs será el valor máximo de I(x;y) es decir será la máxima cantidad de información, por
muestra, que recibe el receptor.
Cs=Imax.(x;y)= 0.5log(2 eS+N)- 0.5log(2 e )=0.5log(S  
1 S + N 
Cs = log  
2  N 
Esto representa la información transmitida por muestra. La Capacidad del canal será la máxima
información transmitida por segundo, es decir será 2BCs ya que se envían 2B muestras por
segundo. El resultado final indica que
 S
C = B log 1 + 
 N

Ejemplo: Propuesto en el Haykin. Una imagen tiene 300000 pixels y cada uno puede tener 10
niveles de grises. Si se transmiten 30 imágenes por segundo cuando la relación señal a ruido es
30 dB
Determine el mínimo ancho de banda requerido para transmitir la señal de video
I= log2(10300000)=300000log2(10)=3,32x 300000=996000 bits
Si se transmiten 30 cuadros por segundo, determine la tasa de información
R=(30)(996000)= 29,9 Mbps=C
Para S/N= 30 dB, es decir S/N=1000, entonces B=C/log2(1001)=
29,9 x106/3,32(log(1001))= 3 MHz
Ejemplo: Qué velocidad se puede alcanzar en un canal telefónico de 3,4KHz de ancho de banda
si la relación señal a ruido es de 30 dB?
 S
C = B log 1 + 
 N

C=3400 log2 (1001)=3400(3,32)log(1001)=33864 bps

Otra forma de llegar al Teorema de Shannon es la siguiente: Considere una señal que tiene
ancho de banda B muestreada a Nyquist (R=2B muestras/seg.). Aunque la señal x(t) es continua
la modelaremos como una señal cuantificada con un paso de cuantificación igual al voltaje r.m.s
del ruido, o sea N donde N es la potencia del ruido. El número de posibles niveles de
cuantificación debieran estar distanciados ese valor para ser discernibles. Entonces
S+ N
M=
N
En ese caso la entropía resultaría, suponiendo equiprobabilidad, igual a
M −1 1 S S
H = ∑ log 2 M = log 2 M = log 2 1 + = 0.5 log 2 (1 + )
k =0 M N N
La tasa de transmisión debe ser 2B muestras por segundo (Nyquist) por lo tanto la capacidad del
canal será
 S
C = B log 1 + 
 N

Límite de la Capacidad de un canal


Pareciera que si B tiende a infinito entonces C también tiende a infinito; sin embargo esto no es
así ya que N también crecería. El límite sería
S ηB S 
C =B lim ∞ log(1 + )
η  S ηB 
pero
 1 
x
lim ∞x log 2 (1 + )  = log 2 e = 1.44
 x 

así:

C=1.443(S/ )
La única forma entonces de aumentar C es aumentando la potencia de transmisión. Si la
potencia está limitada, también lo estará la capacidad del canal.
En aplicaciones donde no se puede contar con una alta potencia de transmisión y hay poca
restricción respecto al ancho de banda este resultado es muy útil

Codificación de fuente

El objetivo es minimizar la tasa promedio de bits requerida para representar la fuente de


información, reduciendo su redundancia.
Recordemos que si los mensajes son equiprobables , la entropía había resultado
H= log2(1/P) =log2n
Si los mensajes no son equiprobables y si se transmiten N mensajes
Cada mensaje mi ocurre NPi veces
La probabilidad de que ocurra una secuencia específica de mensajes será
P ( S N ) =( P1 ) NP1 ( P2 ) NP2 ....( PN ) NPN
Debido a la composición que se ha escogido para la secuencia S N, estas son equiprobables y la
información, en este caso resultará igual a log2(1/P( SN)) y está será la cantidad de bits requerida
(LN) para transmitir los mensajes
log 2 (1 / P( S N )) = log 2 (1 /(( P1 ) NP1 ( P2 ) NP2 ....( PN ) NPN )) =
log 2 (1 /( P1 ) NP1 ) + log 2 (1 /( P2 ) NP2 .) + ... + log 2 (1 /( PN ) NPN )) =
N ∑ Pi log 2 (1 / Pi ) = NH (m)

Esta es entonces la longitud de las palabras código requeridas para codificar N mensajes en una
secuencia.
Por lo tanto el número de bits promedio(dígitos promedio por mensaje) se consigue dividiendo
esa cantidad entre N resultando justamente el valor de la entropía de la fuente. Este valor es el
mínimo posible que permite representar el código.
Esto ha sido para dígitos binarios. Para dígitos M-arios (desde 0 hasta M-1)
n
H M (m) = −∑Pi log 2 Pi
i =1

Códigos compactos

La longitud de una palabra código es igual al número de dígitos de esa palabra código. Para una
longitud promedio de H, tenemos que codificar una secuencia de N mensajes (cuando N tiende
a infinito); pero las secuencias largas no son convenientes, son difíciles de generar y consumen
mucho tiempo de transmisión.
Si se codifican los mensajes directamente se tienen que usar al menos H bits en promedio por
cada palabra.

Códigos de Longitud Variable


Ya se ha hablado de la necesidad de conocer la probabilidad de los símbolos para determinar la
entropía a fin entonces de codificar los eventos de acuerdo a esa entropía. El procedimiento
debe ser reversible y rápido. Una forma intuitiva sería usar códigos de longitud variable donde
se asignen códigos cortos a símbolos mas probables y códigos largos a los menos frecuentes.
Los codificadores que usan este principio se les conoce como codificadores de entropía.
Ejemplo: Supongamos un caso de 4 posibles niveles con diferentes probabilidades de
ocurrencia
m1; P(m1)=0.5; m2; P(m2)=0.3; m3; P(m3)=0.15; m4; P(m4)=0.05
Si codificamos normalmente en binario necesitaríamos en promedio 2 bits/símbolo
Si en cambio asignamos el siguiente código
m1------0
m2------10
m3------110
m4------1110
Si ahora calculamos el número promedio de bits en una transmisión, este sería:
L=<N>=1x0.5+2x0.3+3x0.15+4x0.05= 1.75
Esto es menor que 2 bits/símbolo que fue el resultado para el caso anterior.
La entropía de esta fuente se calcula usando la siguiente fórmula
n
H M (m) = −∑Pi log 2 Pi
i =1

y resulta H=1,64
En general la longitud promedio de los códigos será
N
L = ∑ pi li
i =1
donde pi es la probabilidad de ocurrencia del i-ésimo símbolo y li es la longitud del código que
le fue asignado.
A fin de que todos los códigos sean descodificables, sus longitudes li deben satisfacer la
desigualdad de Kraft, que establece lo siguiente:
N

∑2
i =1
− li
≤1

donde N es el número total de palabras codificadas. Por ejemplo no se puede obtener un sistema
de 4 códigos con longitudes 1,2,2,3, ya que la sumatoria resulta igual a 1.125
Además el Teorema de codificación de fuente establece que, en promedio, los símbolos de
entrada no pueden ser representados con menos dígitos que la entropía
N
L = ∑ pi li ≥ H
i =1

Para el último ejemplo H=1,64.


Solo en el caso que las probabilidades sean inversos de potencias de 2 se podrá cumplir que
L=H. Esto significa que la entropía es el límite inferior

Para utilizar codificación de longitud variable es importante conocer muy bien la estadística de
la señal ya que si no las asignaciones pueden generar un aumento en L. También hay que
entender que un error en un dígito de un símbolo codificado puede alterar la detección de varios
símbolos. Otro problema es que el código puede tener problemas de ambigüedad a la hora de
descodificar. Ejemplo:

Símbolos de entrada Código 1 Código 2


m1 1 0
m2 10 10
m3 111 110
m4 101 111

La descodificación de m4 para el código 1 es ambigua ya que si se hubiesen enviado m2m1


daría el mismo código. Por eso es bueno recordar que ningún código puede ser el prefijo de otro
código. Esto se llama condición del prefijo y el Código 2 anterior la cumple mientras que el
código 1 no la cumple. Esta condición permite que un código pueda ser descodificado
instantáneamente. Si miramos el Código 2, para el cual se sabe que no se pueden usar mas de 3
dígitos, el 0 indica final de mensaje, excepto para el 111 el cual se reconoce por su tamaño.
Para cualquier conjunto de longitudes de palabras que cumplan la desigualdad de Kraft, siempre
existirá un código que cumpla la propiedad del prefijo. Esto simplifica enormemente la
descodificación.

Codificación de Shannon-Fano:
El primer código entrópico fue diseñado casi al mismo tiempo por dos personas: Shannon
(AT&T) y Fano (MIT). El método se basa en conocer las probabilidades de cada símbolo y
entonces de acuerdo a esto asignarle códigos de longitud variable que cumplan la condición del
prefijo.
El procedimiento es el siguiente:
1) Se hace una tabla con los símbolos y sus probabilidades en orden decreciente de estas
2) Se divide la tabla en dos partes de manera que las probabilidades de la parte superior e
inferior sean lo mas cercanas posibles
3) Se le asigna 0 a los símbolos de la mitad superior y 1 a los de la mitad inferior
4) Se repite 2 y 3 añadiendo un nuevo dígito binario hasta que no se pueda dividir mas.

mi Pi Primer Segundo Tercer


bit bit bit
m1 .3 0 00 00
m2 .25 0 01 01

m3 .15 1 10 100
m4 .12 1 10 101
m5 .10 1 11 110
m6 .08 1 11 111

Observe que se cumple la condición del prefijo. Si se envía el mensaje m1 m5 m6 m2


Se codifica como
0011011101
Observe que no existe ambigüedad en la descodificación.
Código Huffman:
David Huffman, de 25 años estudiaba doctorado en el MIT y era alumno de Fano. En un trabajo
de la asignatura Teoría de Información se le ocurrió la codificación Huffman la cual es óptima
ya que la longitud promedio del código L es mínima para un modelo con probabilidades
específica.
Es un código compacto, y óptimo que tiende al ideal (Longitud promedio=H)
Para generar una codificación Huffman hacemos lo siguiente:
1.- Se organizan los mensajes en orden decreciente de probabilidad
2.-Se agrupan los dos últimos para dar origen a un nuevo mensaje con probabilidad igual a
Pn+Pn-1
3.- Se vuelven a reordenar los mensajes en forma decreciente de acuerdo a su probabilidad de
ocurrencia y se repite el paso2 hasta que solo queden dos mensajes
Ejemplo:
Pi code S1- S1 S2- S2 S3- S3 S4- S4
mi Pi code Pi code Pi code Pi code
m1 .3 .3 .3 .43 .57
m2 .25 .25 .27 .30 .43
m3 .15 .18 .25 .27
m4 .12 .15 .18
m5 .10 .12
m6 .08

Ahora comienza con la columna de la derecha asignado dos dígitos binarios ( 1 y 0)


Luego se va a la columna que está a la izquierda: Si la probabilidad es la misma que algunas de
las columnas de la derecha se le asigna la misma combinación. Si la probabilidad fue sumada
para generar algún elemento de la derecha se le asigna un bit (el mas significativo) igual al que
se le asignó a la suma y luego a cada elemento se le asigna 1 y 0 respectivamente al bit menos
significativo

Pi code S1- S1 S2- S2 S3- S3 S4- S4


mi Pi code Pi code Pi code Pi code
m1 .3 00 .3 00 .3 00 .43 1 .57 0
m2 .25 10 .25 10 .27 01 .30 00 .43 1
m3 .15 010 .18 11 .25 10 .27 01
m4 .12 011 .15 010 .18 11
m5 .10 110 .12 011
m6 .08 111
Para decodificarlo es muy sencillo:
Considere que llega
0011011110
Como lo menos que se usan son dos bits entonces uno mira los dos primeros bits y se ve si
pertenecen a algún mensaje (en este caso m1); si no hay ningún mensaje con ese código se toma
el siguiente bit y se busca a que mensaje pertenece esa combinación de 3 bits.
Para este ejemplo el mensaje sería m1 m5 m6 m2
La longitud promedio para este código se calcula de la siguiente manera:
n
L = ∑Pi Li = 0.3(2) + 0.25( 2) + 0.15(3) + 0.12(3) + 0.1(3) + 0.08(3) = 2.45bits
i =1

La entropía resulta

n
H ( m) = −∑Pi log 2 Pi = 2.418bits
i =1

Recuerde que la entropía da la mínima cantidad posible de bits por mensaje para un mensaje
muy largo (N tiene a infinito)

Se puede definir la eficiencia del código como =H/L=0.976


La redundancia se define como = 1- = 0.024 y da una medida de la habilidad de ser
transmitido en un ambiente ruidoso
Otro ejemplo se ilustra a continuación:

En este caso la longitud promedio resulta L=2.61, la eficiencia resulta 97.7%.


Utilizando Shannon-Fano resultaría 96.6%
Una de las aplicaciones de la codificación Huffman es en la transmisión de fax.

Tanto la codificación de Shannon-Fano como la de Huffman se realiza mejor usando una


estructura de datos basada en un árbol binario.

Códigos compactos para mensajes M-arios

Para diseñar códigos compactos M-arios se usa un procedimiento similar pero en vez de agrupar
los mensajes de 2 en dos se agrupan de M en M, hasta que queden solo M mensajes.
Por ejemplo para cuaternario habría que ir asignado los dígitos 0,1,2,3
Aplicando este método es posible que no se termine con M mensajes al final. Si esto ocurre
entonces se rellena el conjunto original con mas mensajes de probabilidad cero
Se requerirán M+k(M-1)= n mensajes originales donde k es entero.
Por ejemplo
K=1, cuaternario
4+3= 7 mensajes
k=2, cuaternario
4+6=10 mensajes

Comunicación libre de errores sobre canales ruidosos:

Cuando un mensaje que pertenece a una fuente con entropía H se codifica usando H bits, la
redundancia resultante es nula. En este caso
=H/L=1

= 1- = 0

Esto implica que si ahora transmitimos ese mensaje por un canal ruidoso entonces algunos
digitos se recibirán con errores. La redundancia es importante para combatir el ruido

You might also like