You are on page 1of 5

Fundacin Universitaria Panamericana - Ingeniera de Sistemas - Teora de la Informacin

y las Telecomunicaciones
Docente: Ing. Guillermo Alvarado R.
Taller 3: Codificacin Binaria

Fundacin Universitaria Panamericana - Ingeniera de Sistemas - Teora de la Informacin


y las Telecomunicaciones
Docente: Ing. Guillermo Alvarado R.
Taller 3: Codificacin Binaria

Fundacin Universitaria Panamericana - Ingeniera de Sistemas - Teora de la Informacin


y las Telecomunicaciones
Docente: Ing. Guillermo Alvarado R.
Taller 3: Codificacin Binaria

Codigos de Huffman en Matlab


Crear un Diccionario de Cdigos Huffman en MATLAB
La codificacin de Huffman requiere informacin estadstica acerca de la
fuente de los datos que estn siendo codificados. En particular, el
argumento de entrada p en la funcin - huffmandict - enumera la
probabilidad con la que la fuente produce cada smbolo en su alfabeto.
Por ejemplo, considere una fuente de datos que produce S1 con
probabilidad 0,1, S2 con probabilidad 0,1 y S3 con una probabilidad de 0,8.
El paso computacional principal en la codificacin de los datos de esta
fuente utilizando un cdigo de Huffman es crear un diccionario que asocia
cada smbolo de datos con una palabra de cdigo. Los comandos siguientes

Fundacin Universitaria Panamericana - Ingeniera de Sistemas - Teora de la Informacin


y las Telecomunicaciones
Docente: Ing. Guillermo Alvarado R.
Taller 3: Codificacin Binaria

crean tal diccionario y luego muestran el vector de palabra-cdigo asociado


con un determinado valor de la fuente de datos.
symbols = [1 2 3]; % Son los smbolos que produce la fuente
p = [0.1 0.1 0.8]; % Probability of each data symbol
dict = huffmandict(symbols,p) % Create the dictionary. dict es un vector creado
dict{1,:} % Show one row of the dictionary.

La salida muestra que el smbolo de datos ms probable, 3, est asociada


con una palabra de cdigo de un dgito, mientras que los smbolos de datos
menos probables estn asociadas con palabras de cdigo de dos dgitos. La
salida tambin muestra, por ejemplo, que un codificador de Huffman
recibiendo el smbolo de datos 1 debe sustituir la secuencia 11.
dict =
[1] [doble 1x2]
[2] [doble 1x2]
[3] [0]
ans =
1
ans =
11
Crear y decodificar un Cdigo Huffman en MATLAB
El ejemplo siguiente realiza la codificacin y decodificacin Huffman,
usando una fuente cuyo alfabeto tiene tres smbolos. Observe que las
funciones huffmanenco - y huffmandeco - utilizan el diccionario que
huffmandict ha creado.
sig = repmat([3 3 1 3 3 3 3 3 2 3],1,50); % Data to encode, sig es un vector matriz que
repite los simbolos que aparecen en 1 fila 50 veces
symbols = [1 2 3]; % Distinct data symbols appearing in sig, son los simbolos de la fuente
p = [0.1 0.1 0.8]; % Probability of each data symbol
dict = huffmandict(symbols,p); % Create the dictionary.
hcode = huffmanenco(sig,dict); % Encode the data.
dhsig = huffmandeco(hcode,dict); % Decode the code.

Fundacin Universitaria Panamericana - Ingeniera de Sistemas - Teora de la Informacin


y las Telecomunicaciones
Docente: Ing. Guillermo Alvarado R.
Taller 3: Codificacin Binaria

sig es un vector de datos con 1 columna y 50 filas resultado de la


repeticin de los datos entre parntesis. Symbols es la instruccin que
contiene la cantidad de smbolos a codificar de acuerdo a un alfabeto finito,
para el caso del ejemplo son solo 3 smbolos y sus probabilidades p se
encuentran distribuidos en otro vector.
Huffmandict crea el diccionario para encontrar el valor binario de cada
smbolo; hufmanenco realiza la codificacin del vector resultante y
huffmandeco la decodificacin para los smbolos de acuerdo al diccionario.

Ejercicios:
Realice en matlab los diccionarios de huffman, muestre la grfica de
smbolos contra probabilidad y encuentre la codificacin de los datos en los
siguientes casos:
1- para la fuente A con 4 smbolos [1 2 3 4] y probabilidades asociadas [0.6
0.2 0.1 0.1], se muestren por pantalla los smbolos y cdigos asociados (en
matlab a travs de huffmandict- )
2-Calcule analticamente la entropa, el cdigo Huffman y la longitud media
del cdigo para la fuente A
3- Si el cdigo {0, 10,110,111} tambin es un cdigo Huffman vlido para la
fuente A, analice el por qu se pueden generar diferentes cdigos para la
misma fuente
4- Para la fuente B con 4 smbolos [1 2 3 4] y probabilidades asociadas [0.5
0.3 0.15 0.05] repita los pasos del ejercicio 1
5- Calcule la entropa, y el cdigo huffman para la fuente B
6- Encuentre el diccionario /codificacin huffman para la fuente C con 8
smbolos [1 2 3 4 5 6 7 8] y probabilidades asociadas [0.3 0.15 0.25 0.2 0.05
0.025 0.015 0.01]
7- Tambin calcule analticamente la entropa, el cdigo Huffman y la
longitud media del cdigo para la fuente C.

You might also like