Simulación en matlab de codificacion de huffman

Solo disponible en BuenasTareas
  • Páginas : 3 (567 palabras )
  • Descarga(s) : 0
  • Publicado : 7 de noviembre de 2011
Leer documento completo
Vista previa del texto
LABORATORIO Nº2

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];...
tracking img