Simulación en matlab de codificacion de huffman
SIMULACIÓN EN MATLAB de codificacion de huffman
Dados los siguientes datos:
CODIFICACION HUFFMAN
mensaje = repmat([3 3 2 2 1 2 3 3 2 3 1],1,20); % Datos a codificarsimbolos = [1 2 3]; % El conjunto de simbolos
p = [0.2 0.3 0.5]; % La probabilidad de los simbolos
dict = huffmandict(simbolos,p); % crea el diccionario
hcode = huffmanenco(mensaje,dict); % Codificalos datos
dhsig = huffmandeco(hcode,dict) % decodifica el mensaje
procedimiento.
Como primera medida realizaremos la codificación fuman de acuerdo a los datos dados.
(1). mensaje =repmat([3 3 2 2 1 2 3 3 2 3 1],1,20); % Datos a codificar.
Para esta función se observa que el mensaje original [3 3 2 2 1 2 3 3 2 3 1] se envia 20 veces.
(2). .simbolos = [1 2 3]; % El conjunto desimbolos
p = [0.2 0.3 0.5]; % La probabilidad de los simbolos
dict = huffmandict(simbolos,p); % crea el diccionario
dict =
[1] [1x2 double]
[2] [1x2 double]
[3] [0]
Se crea el diccionario dónde la primera columna de listas del dict son los valores de los símbolos y la segunda columna corresponde a las palabras código de cada símbolo.
La función delhuffmandict genera un código diccionario Huffman que corresponde a una fuente con un modelo de probabilidad conocido. Las entradas requeridas son los símbolos, que corresponde a los distintos valoresseñalados que el mensaje produce.
(3). hcode = huffmanenco(mensaje,dict); % Codifica los datos
[pic]
A cada símbolo le corresponde las siguientes palabras codigo:
3 ---------- 0
2 ----------101 ----------11
Mensaje original = [3 3 2 2 1 2 3 3 2 3 1]
Mensaje codificado= [ 0 0 1 0 1 0 1 1 1 0 0 0 1 0 0 1 1 ], el cual se repite 20 veces al ser enviado.
Finalmente se decodifica el mensajeal llegar a su destino 20 veces:
3 3 2 2 1 2 3 3 2 3 1
CODIFICACIÓN ARITMETICA
mensaje = repmat([3 3 2 1 3 3 2 1 3 1],1,20);
conteo = [20 30 50];...
Regístrate para leer el documento completo.