Está en la página 1de 4

Actividad Codificacion LZW

Nombre: Arnaldo Ugarte Pentón


Matrícula: 934703

a) Usando Matlab abra el archive lzw_demo1.m y observe que en la línea 9


hay una breve frase de texto entre apóstrofes. Use el algoritmo de LZW
para encontrar el código de dicha frase como lo hicimos en clases.
b) Corra el programa en MATLAB. Para que el programa pueda correr,
necesitará que las funciones se encuentren en el mismo directorio.
Compare los resultados con los objetivos manualmente.

Dieron los mismos resultados

c) Describa el funcionamiento del programa analizando las salidas y las


entradas al mismo

Entrada:
str = '/WED/WE/WEE/WEB/WET';

Salidas:
isOK =

ans =

/W
WE
ED
D/
/WE
E/
/WEE
E/W
WEB
B/
/WET

La entrada str no es más que la cadena de texto que se quiere


codificar/decodificar.
La salida isOK, no es más que el resultado de una comparación de la cadena
codificada/decodificada con la cadena original, que devuelve 0 cuando no es igual
y 1 cuando son iguales, en este caso son iguales porque devolvió un 1.
asn es el diccionario que se creó a partir de la codificación/decodificación.

d) Construya un diagrama de flujos que describa el funcionamiento


e) Documente las instrucciones del programa
str = '/WED/WE/WEE/WEB/WET';

% pack it
% convierte a enteros la cadena de carateres
% codifica cadena de enteros
% guarda la codificación en el arreglo packed
% guarda el diccionario en table
[packed,table]=norm2lzw(uint8(str));

% unpack it
% utiliza el arreglo packed para decodificar la cadena
% guarda la cadena decodificada en unpacked
% guarda el diccionario en table
[unpacked,table]=lzw2norm(packed);

% transform it back to char array


% se vuelve a convertir a un arreglo de carateres
unpacked = char(unpacked);

% test
% compara los elementos de la cadena original con la
% decodificada para comprobar que sean iguales
isOK = strcmp(str,unpacked)

% show new table elements


% Muestra los elementos nuevos que aparecieron en el diccionario
% a partir del elemento 256 porque considera que los demás ya los
% conocía, que son los primeros 256 caráteres de la tabla ASCII
strvcat(table{257:end})

f) Abra las funciones lzw2norm.m, y norm21zw.m estas funciones están muy


bien documentadas. Lea la documentación para entender el funcionamiento
a nivel de programa

g) Substituya la frase original con una frase más larga tomada al azar de un
texto y vuelva a correr el programa. Analice los resultados y calcule la
eficiencia
str = 'Lorem Ipsum es simplemente el texto de relleno de las imprentas y
archivos de texto. Lorem Ipsum ha sido el texto de relleno estándar de
las industrias desde el año 1500, cuando un impresor desconocido usó una
galería de textos y los mezcló de tal manera que logró hacer un libro de
textos especimen';

Total de Bits sin codificar = 2392 bits


Total de Bits codificados = 1634 bits
Longitud media = 8.4227 bits/simbolo
Eficiencia = 94.7165

También podría gustarte