Ayuda MATLAB HUFFMAN
Publicado por DIEGO (19 intervenciones) el 12/05/2013 06:31:20
Hola nuevamente,
Estoy tratando de realizar un codigo que codifique información con huffman, lo que tengo es lo siguiente:
symbols = [1:4];
p = [.1 .1 .1 .7];
[dict,avglen] = huffmandict(symbols,p);
comp = huffmanenco(symbols,dict)
El asunto es que la sodificación de huffman codifica un alfabeto en este caso el vector symbols y utilizando sus probabilidades, el vector p, codifica el vector symbolos en binario y el resultado es:
comp =
1 0 1 1 0 0 1 1 0
donde el último 0=4; el 11 anterior al último 0 es 3, el 100 anterior al 11 es 2 y el 101 anterior a 100 es 1.... espero me entiendan...
quedaría asi:
4=0
3=11
2=100
1=101
esto NO son las trasnformaciones de decimal a binario de estos numeros, sino la codificacion en binario de este vector para poderlo trnasmitir por digital.
Bueno, el asunto es que el qcodigo que les muestro me bota:
comp =
1 0 1 1 0 0 1 1 0
y lo que necesito es tenerlo de la forma:
comp =
1 0 1
1 0 0
1 1
0
o al revés, pero no se como hacerlo. Se que debo usar un bucle FOR pero al depender del vectro symbols y del vector p no me sale....
El vector symbols puede ser cualquier tipo de texto y el vector p son las probabilidades de cada letra del texto, que ya calculo con anterioridad pero hasta alli. no puedo sacarlo de la forma que necesito... por favor ayudarme a resolver este lío.... por cierto el vector p siempre debe sumar 1.
muchas gracias de antemano.
Estoy tratando de realizar un codigo que codifique información con huffman, lo que tengo es lo siguiente:
symbols = [1:4];
p = [.1 .1 .1 .7];
[dict,avglen] = huffmandict(symbols,p);
comp = huffmanenco(symbols,dict)
El asunto es que la sodificación de huffman codifica un alfabeto en este caso el vector symbols y utilizando sus probabilidades, el vector p, codifica el vector symbolos en binario y el resultado es:
comp =
1 0 1 1 0 0 1 1 0
donde el último 0=4; el 11 anterior al último 0 es 3, el 100 anterior al 11 es 2 y el 101 anterior a 100 es 1.... espero me entiendan...
quedaría asi:
4=0
3=11
2=100
1=101
esto NO son las trasnformaciones de decimal a binario de estos numeros, sino la codificacion en binario de este vector para poderlo trnasmitir por digital.
Bueno, el asunto es que el qcodigo que les muestro me bota:
comp =
1 0 1 1 0 0 1 1 0
y lo que necesito es tenerlo de la forma:
comp =
1 0 1
1 0 0
1 1
0
o al revés, pero no se como hacerlo. Se que debo usar un bucle FOR pero al depender del vectro symbols y del vector p no me sale....
El vector symbols puede ser cualquier tipo de texto y el vector p son las probabilidades de cada letra del texto, que ya calculo con anterioridad pero hasta alli. no puedo sacarlo de la forma que necesito... por favor ayudarme a resolver este lío.... por cierto el vector p siempre debe sumar 1.
muchas gracias de antemano.
Valora esta pregunta
0