P. 1
CodificaciÓn de Fuente

CodificaciÓn de Fuente

5.0

|Views: 7.200|Likes:
Publicado porapi-27535945

More info:

Published by: api-27535945 on Oct 14, 2008
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

03/18/2014

pdf

text

original

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í:
H = ∑ I i Pi
i =1 n

y la unidad de la entropía es bits sustituyendo la expresión anteriormente obtenida de Ii
H = ∑Pi log 2 (1 / Pi ) = −∑Pi log 2 ( Pi )
i= 1 i= 1 n n

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.
H ( m) = ∑P ( mi ) log 2 (1 / P ( mi ))
i= 1 n

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á
H =∑
i =1 n

1 log 2 (1 / Pi ) = log 2 ( n) 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
log 2 P( 1 xi yi )

Si se promedia sobre todos los pares posibles xi,, yi se obtiene:
H ( x / y ) = ∑∑P ( xi , y j ) log 2
i j

1 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
2

p ( x ) dx =σ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 ) ∂ ( x 2 p) p + α1 + α 2 =0 ∂p ∂p − (1 + log p) + α1 + α 2 x 2 = 0 p = e (α1 −1)eα 2 x
2

Al aplicarle las restricciones se despejan

1

y

2

resultando

p( x ) =

−x 1 e σ 2π

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  
Cs = 1 S + N  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 N del ruido, o sea 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
M= S+ N 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 + ) N N k =0 M

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
C =B lim ∞ S ηB S  log(1 + ) η S ηB   

pero
x

1   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á
1 P ( S N ) = P ) NP ( P2 ) NP2 ....( PN ) NPN ( 1

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)
H M (m) = −∑Pi log 2 Pi
i =1 n

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
H M (m) = −∑Pi log 2 Pi
i =1 n

y resulta H=1,64 En general la longitud promedio de los códigos será
L = ∑ pi li
i =1 N

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:

∑2
i =1

N

− 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
L = ∑ pi li ≥ H
i =1 N

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 m1 m2 m3 m4 Código 1 1 10 111 101 Código 2 0 10 110 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 bit bit Tercer bit

m1 m2 m3 m4 m5 m6

.3 .25 .15 .12 .10 .08

0 0 1 1 1 1

00 01 10 10 11 11

00 01 100 101 110 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 S1S1 S2S2 S3S3 S4- S4 Pi code Pi code Pi code Pi code mi 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 mi m1 m2 m3 m4 m5 m6 .3 .25 .15 .12 .10 .08 code 00 10 010 011 110 111 S1Pi .3 .25 .18 .15 .12 S1 code 00 10 11 010 011 S2Pi .3 .27 .25 .18 S2 code 00 01 10 11 S3S3 Pi code .43 1 .30 00 .27 01 S4Pi .57 .43 S4 code 0 1

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:
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 n

La entropía resulta
H ( m) = −∑Pi log 2 Pi = 2.418bits
i= 1 n

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're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->