Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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 a dígitos binarios 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 redundantes 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.
Las fuentes de información pueden clasificarse como fuentes analógicas (ej: señales de voz,
audio, señales biomédicas, señales provenientes de procesos físicos naturales en general, etc.) o
como fuentes discretas (ej: señales provenientes de texto, o de un computador (bits)). Si la
información debe ser transmitida por un sistema de Comunicaciones Digitales habrá que adaptar
al sistema (formatear o darle formato) de manera distinta la información que proviene de una
fuente analógica a aquella que proviene de una fuente discreta. A dicho proceso lo llamaremos
Codificación de fuente siempre que además de formatear se prevea la posibilidad de compactar la
información usando la posible redundancia que presente la fuente.
Fuentes discretas:
Para hacer el tratamiento lo más general posible modelaremos este tipo de fuente como
constituida por un alfabeto de símbolos independientes los cuales se generan de forma aleatoria
con valores de probabilidad regulares. Si la ocurrencia de cada valor en un momento determinado
no depende de la ocurrencia de los valores anteriores se dice que es una Fuente Discreta sin
Memoria. Los datos que vienen de un computador ya estarían, en principio, discretizados y listos
para alimentar un Sistema de Comunicaciones Digitales. Si la información proviene de caracteres
(por ejemplo letras de un alfabeto) habrá que formatear y aprovechar su redundancia para reducir
el número de bits necesarios para transmitir o almacenar los datos. Esto sería el proceso completo
de Codificación de Fuente.
Fuentes analógicas:
En este caso sería necesario aplicar procedimientos diferentes para adaptar este tipo de fuente al
Sistema de Comunicaciones Digitales. Consideraremos cada forma de onda como la salida de un
Proceso Ergódico con Densidad Espectral de Potencia conocida y a partir de la cual podrá
determinarse el ancho de banda de cualquiera de las señales. Para convertir esta señal analógica
en una forma digital se necesita Muestrearla, Cuantificarla y Codificarla.
A continuación comenzaremos con Codificación de Fuentes discretas para lo cual será necesario
comprender principios básicos contenidos en la Teoría de Información.
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:
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 más 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. En definitiva la Información que proporciona un
evento X=xi llamada también autoinformación se calculará como:
1
I( x i ) = log
p( x i )
Supongamos ahora que tenemos dos variables aleatorias x, y provenientes de dos
alfabetos diferentes. Uno podría interesarse en calcular la cantidad de información que la
ocurrencia del evento Y=yi proporciona sobre el evento X=xi . Cuando estos son independientes
la ocurrencia de Y=yi no proporciona información sobre el evento X=xi . Un ejemplo de esto es
con los alfabetos de los diferentes idiomas. En español la letra u tiene una cierta probabilidad de
ocurrencia, sin embargo si se calcula la probabilidad de que la letra sea u en un texto si se sabe
que la letra anterior fue una q,esta probabilidad dará cercana a la unidad
Una medida apropiada de esta cantidad de información sería la siguiente
1 p( x i / y j )
I( x i ; y j ) = log = log
p( x i ) p( x i )
p( x i / y j )
Esta cantidad se llama la Información mutua entre xi y yj. Observe que la probabilidad se
normaliza respecto a la probabilidad condicional.
Ejemplo: Tomado del Proakis:
Suponga que X y Y son variables aleatorias binarias (0,1) que representan la entrada y la
salida de un canal. Los símbolos de entrada son equiprobables y los símbolos de salida dependen
de la entrada de acuerdo a las probabilidades condicionales siguientes:
P(Y=0/X=0)=1-p0
P(Y=1/X=0)= p0
P(Y=1/X=1)=1-p1
P(Y=0/X=1)= p1
Determine la información mutua acerca de la ocurrencia de los eventos X=0 y X=1 dado
que Y=0
P(Y=0)=P(Y=0/X=0)P(X=0)+ P(Y=0/X=1)P(X=1)=0.5(1- p0+ p1)
P(Y=1)=P(Y=1/X=0)P(X=0)+ P(Y=1/X=1)P(X=1)=0.5(1+ p0- p1)
Por lo tanto la información mutua acerca del evento X=0 dado que ocurre que Y=0, es:
I(X=0;Y=0)=log2[P(Y=0/X=0)/P(Y=0)]= log2[2(1- p0)/ (1- p0+ p1)]
Además
I(X=1;Y=0)=log2[P(Y=1/X=0)/P(Y=1)]= log2[2p1/ (1- p0+ p1)]
Si el canal no es ruidoso (noiseless channel) p0= p1=0
I(X=0;Y=0)= log2(2)=1 bit
Al conocer la salida se conoce la entrada con exactitud.
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.
Para un alfabeto de K símbolos, la entropía tiene un valor límite que es log2K. La
demostración es la que sigue:
Trabajemos la siguiente expresión, donde se tiene un alfabeto de K símbolos y qk y pk
representan dos distribuciones de probabilidad cualesquiera
K ⎛q ⎞
∑ p k log 2 ⎜⎜ k ⎟⎟
k =0 ⎝ pk ⎠
Cambiando el logaritmo base 2 a logaritmo base 10
K ⎛q ⎞ 1 K ⎛q ⎞
∑ p k log 2 ⎜⎜ k ⎟⎟ = ∑ p k log⎜⎜ k ⎟⎟ =
k =0 ⎝ pk ⎠ log 2 k =0 ⎝ pk ⎠
Pero, (observe la gráfica de abajo),
log x ≤ ( x − 1) para x ≥ 0
Entonces
⎛q ⎞ 1 K ⎛ qk ⎞ 1 K 1 K 1 K
∑ (q k − p k ) = ∑ (q k ) − ∑ (p k ) = 0
K
∑ p k log 2 ⎜⎜ k ⎟⎟ ≤ ∑ p k ⎜⎜ − 1⎟⎟ =
k =0 ⎝ pk ⎠ log 2 k =0 ⎝ p k ⎠ log 2 k =0 log 2 k =0 log 2 k =0
En definitiva
K ⎛q ⎞
∑ p k log 2 ⎜⎜ k ⎟⎟ ≤ 0 (1)
k =0 ⎝ pk ⎠
Por otra parte si la fuente está constituida por símbolos equiprobables, la entropía resulta
igual a H=log2K
K ⎛ 1 ⎞ 1 K
H = ∑ q k log 2 ⎜⎜ ⎟⎟ = ∑ log 2 K = log 2 K (2)
k =0 ⎝ qk ⎠ K k =0
Si insertamos esta igualdad en la ecuación (1)
K ⎛q ⎞
∑ p k log 2 ⎜⎜ k ⎟⎟ ≤ 0
k =0 ⎝ pk ⎠
⎛ 1 ⎞
∑ p k log 2 (q k ) + ∑ p k log 2 ⎜⎜
K K
⎟⎟ ≤ 0
k =0 k =0 ⎝ pk ⎠
K ⎛1⎞
∑ p k log 2 ⎜ ⎟ + H p ≤ 0
k =0 ⎝K⎠
⎛1⎞K
log 2 ⎜ ⎟ ∑ p k + H p ≤ 0
⎝ K ⎠ k =0
⎛1⎞
log 2 ⎜ ⎟ + H p ≤ 0
⎝K⎠
− log 2 (K ) + H p ≤ 0
H p ≤ log 2 (K )
Hagamos el análisis de la entropía para un alfabeto de dos símbolos 0 y 1: Suponga que
p0es la probabilidad de que se transmita 0 y p1=(1-p0) es la probabilidad de que se transmita 1.
H=-p0 log2 p0- (1-p0) log2 (1-p0). Cuando se grafica esto en función de p0 resulta lo
siguiente:
Habiendo definido la autoinformación, la información mutua y la entropía, es interesante
introducir un nuevo concepto: la tasa de información, ya que, desde el punto de vista práctico una
empresa cobra 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).
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
Observe como I decrece cuando P aumenta.
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 seguidos 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.
Codificación de fuente
El objetivo de la codificación de fuente es minimizar la tasa promedio de bits requerida para
representar la fuente de información, reduciendo su redundancia y aumentando así la eficiencia
del sistema. Si se conoce la estadística de la fuente una buena idea pareciera asignar códigos
cortos a los símbolos más frecuentes y códigos largos a los menos frecuentes. La primera persona
que de manera empírica usó esto fue Samuel Morse (1791-1872). Observe, en la siguiente tabla,
el código asignado a la A y el asignado a la Y.
A ·- J ·--- R ·-·
B -··· K -·- S ···
C -·-· L ·-·· T-
D -·· M -- U ··-
E· N -· V ···-
F ··-· Ñ --·-- W ·--
G --· O --- X -··-
H ···· P ·--· Y -··--
I ·· Q --·- Z --··
Otra característica es que los códigos debían poder ser decodificados unívocamente.
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 SN, 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.
∑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 recordemos que 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 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:
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
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)
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
Entropía condicional
Supongamos que tenemos una fuente X, de entropía H(X), cuyos símbolos serán transmitidos
por un canal ruidoso, de manera que a la salida tendremos un nuevo alfabeto Y de entropía H(Y).
Se puede definir una entropía condicional H(X/Y) de la siguiente forma
K −1 J −1
1
H(X / Y) = ∑∑ p( y k )p( x j / y k ) log
k = 0 j= 0 p( x j / y k )
Esto se conoce como la equivocación de x respecto a y. También se puede ver como la
incertidumbre promedio con respecto al símbolo transmitido a través de todos los símbolos que
se reciben. Esto representa la incertidumbre que queda sobre la fuente una vez que se ha
observado la salida.
J −1 K −1 J −1
1 1
I(X; Y) = ∑ p( x j ) log − ∑∑ p( x j , y k ) log
j p( x j ) k =0 j=0 p( x j / y k )
Debido a que si se suma la fdp conjunta p(xj, yk) sobre todo k se obtiene la fdp marginal p(xj)
J−1 K−1
1 K−1 J−1 1
I(X; Y) = ∑∑p(x j , yk ) log − ∑∑p(x j , yk ) log =
j=0 k=0 p(x j ) k=0 j=0 p(x j / yk )
K−1 J−1 p(x j / yk ) K−1 J−1 p(x j , yk ) K−1 J−1 p(yk / x j )
∑∑
k=0 j=0
p(x j , yk ) log
p(x j )
= ∑∑p(x j , yk ) log
k=0 j=0
= ∑∑p(x j , yk ) log
p(x j )p(yk ) k=0 j=0 p(yk )
=
La información mutua queda en función de: Las probabilidades de los símbolos de entrada p(xj) y
de las probabilidades condicionales de tener una determinada salida dado que se conoce cual fue
el símbolo que se envió; esto último solo depende de la naturaleza del canal.
De lo anterior se observa que I(X;Y)= I(Y;X)=H(Y)-H(Y/X).
∫ 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 ∂φ ∂φ
+ α1 1 + α 2 2 = 0
∂p ∂p ∂p
En nuestro caso
p = e (α1 −1)eα 2 x
2
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.
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= ∑ M log 2 M = log 2 M = log 2 1+
N
= 0.5 log 2 (1 + )
N
k =0
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⎦
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
Para codificar la secuencia que hay en el buffer de anticipación se mueve un puntero de búsqueda
hasta que se encuentra un carácter que coincide con el primero de la cadena que está en el buffer
de anticipación. La distancia entre el carácter idéntico al del comienzo de la cadena y el comienzo
de la cadena se le llama offset; en este ejemplo offset=7
o=7
Una vez que se consigue coincidencia (se busca la mas larga) se codifica con una tripleta (o,l,c)
donde o es el offset, l es la longitud de la cadena y c es el código correspondiente al carácter del
buffer de anticipación que está después de la coincidencia. En el ejemplo la cadena “αβρα“ se
codifica como (7,4,C(ρ)).
El tercer elemento es necesario ya que si retrocediendo no se consigue coincidencia entonces se
codifica el elemento solo como (0,0,C(elemento)).
El algoritmo LZ77 presentaba un problema y es que descarta las cadenas mas antiguas solo usa
las mas nuevas.
En LZ78, Lempel y Ziv en vez de usar una ventana de tamaño limitado que se desliza sobre los
caracteres anteriores, construye un diccionario a partir de todos los símbolos de entrada ya
procesados; en vez de tripletas genera parejas (i,C) donde i es el puntero que indica donde se
encuentra la secuencia previa mas larga que coincide con la que estamos tratando de codificar y
C es el código correspondiente al carácter que está después de la coincidencia. Cada pareja (i,C)
se añade al diccionario. Observe que la longitud de la cadena no se envía ya que el descompresor
la puede determinar.
Ejemplo: Considere la siguiente secuencia:
wabbacwabbacwabbacwabbacwoocwoocwoo
Se comienza con un diccionario vacío. Luego se agregan los primeros 3 elementos (0,C(w)),
(0,C(a)) y (0,C(b))
El diccionario tendrá en el índice 1 el carácter w, en el índice 2 el carácter a y en el índice 3 el
carácter b: cuando viene la siguiente b, como ya existe, se avanza hacia el próximo, la pareja ba
será colocada en la posición 4.
wabbacwabbacwabbacwabbacwoocwoocwoo
Se siguen revisando las cadenas de caracteres y agregando elementos al diccionario
Codificación Índice Cadena o carácter
(0,C(w)) 1 w
(0,C(a)) 2 a
(0,C(b)) 3 b
(3,C(a)) 4 ba
(0,C(c)) 5 c
(1,C(a)) 6 wa
(3,C(b)) 7 bb
(2,C (c)) 8 ac
(6, C(b)) 9 wab
(4, C (c)) 10 bac
(9,C(b)) 11 wabb
(8,C(w)) 12 acw
(0,C(o)) 13 o
(13,C(c)) 14 oc
(1, C(o)) 15 wo
(14,C(w)) 16 ocw
(13,C(o)) 17 oo
El problema es que el diccionario puede crecer indefinidamente; esto hay que limitarlo
En el año 1984 Terry Welch publica un artículo para implementar el anterior. Esto se llamó
LZW. Una mejora sobre el anterior es que no necesita enviar una pareja, solo envía el apuntador.
Para esto es necesario partir de un diccionario inicial. Por ejemplo si se quieren comprimir
cadenas de símbolos ASCII el diccionario inicial tiene 256 cadenas
Por ejemplo. Supongamos una fuente que tiene los siguientes símbolos
{ _, a, b, o, w } elementos numerados del 1 al 5
Y se quiere comprimir la siguiente secuencia
wabba_wabba_wabba_wabba_woo_woo_woo
Se lee el primer carácter recibido, w, y se busca en el diccionario; al encontrarlo lee el siguiente y
se forma la cadena wa ,al no encontarla la agrega al diccionario con el número 6 y envío a la
salida el número 5 correspondiente al símbolo w. Ahora lee a,como existe busca ab. Como no
está agrega ab en la posición 7 y transmite 2. Se busca ab, como no esta, se le agrega en el
diccionario (índice 7) y transmitiendo el código de salida 2. Es lógico que los primeros códigos
de salida sean los que originalmente estaban en el diccionario. Hasta el guión se habrá
transmitido 5,2,3,3,2,1,
Si se continua irá creciendo el diccionario. A continuación se muestran el diccionario y la salida
para la cadena de 35 elementos. Observe que se envían 21 códigos.
5 6 Wa
2 7 ab
3 8 bb
3 9 ba
2 10 A_
1 11 _w
6 12 wab
8 13 bba
10 14 a_w
12 15 wabb
9 16 ba_
11 17 _wa
7 18 abb
16 19 ba_w
5 20 wo
4 21 oo
4 22 o_
11 23 _wo
21 24 oo_
23 25 _woo
4
Una de las aplicaciones más conocidas del algoritmo LZW es en el programa Adobe Acrobat
quien convierte archivos a formato pdf.
Gran cantidad de modems utilizan este algoritmo también.