You are on page 1of 5

UNIVERSIDAD NACIONAL DE INGENIERÍA

Facultad de Ingeniería Eléctrica y Electrónica

LABORATORIO DE TELECOMUNICACIONES III


EE515-M

Informe Nº 1
El Algoritmo de Huffman

PROFESOR: Ing. Narvaja Romero, César

Alumno: Mallqui Briceño, Omar Franz


CÓDIGO: 20081045D

2017
CÓDIGOS INSTANTÁNEOS:
EL ALGORITMO DE HUFFMAN
UNIVERSIDAD NACIONAL DE INGENIERÍA C. Modulador con PLL.
LABORATORIO DE
Vuelve a ser el oscilador controlado por tensión (VCO),
TELECOMUNICACIONES III (EE515-M)
pero ahora su salida se compara con una frecuencia de
referencia para obtener una señal de error, de modo que se
Mallqui Briceño Omar Franz tiene una realimentación negativa que minimiza dicho error.
Omar.mallqui@gmail.com 20081045D La señal de error se filtra para que sea insensible a las
Abstract— Dada las necesidades actuales en el ámbito
variaciones dentro del ancho de banda de la señal
científico y profesional para transmitir o almacenar un gran
número de datos se plantea el uso de técnicas de compresión de moduladora, puesto que estas variaciones son las que
datos, el cual trata de reducir el número de bits necesarios para modulan la salida del VCO. Este método se ha impuesto con
representar la información sin ocasionar perdidas en ella. la llegada de los PLL integrados ya que ha pasado de ser el
Es asi como surge el código Huffman. En este informe más complejo y costoso a ser muy económico. Presenta
analizaremos y entenderemos el funcionamiento de este código otras ventajas, como es poder cambiar de frecuencia para
pasar de un canal a otro y mantiene coherentes todas las
I. CONCEPTO TEÓRICO frecuencias del sistema.

CÓDIGOS INSTANTÁNEOS

COMPRESIÓN DE DATOS También es más complejo que el de AM. Se utilizan


sobre todo dos métodos:
La compresión de datos es un modo de codificación, su La señal del PLL proporciona la señal demodulada.
finalidad es que el código resultante ocupe un menor número Existen muchas variaciones según la aplicación, pero estos
de bits en comparación con el original. Para obtener ello se detectores suelen estar en circuitos integrados que, además,
busca repeticiones en series de datos para después contienen los amplificadores de RF y frecuencia intermedia.
almacenar solo el dato junto al número de veces que se Algunos son una radio de FM completa (TDA7000).
repite. Por ejemplo, si tenemos EEEE que ocupa 4 bytes se
reemplazaría por 4E, el cual ocuparía 2 bytes. CÓDIGOS INSTANTÁNEOS ÓPTIMOS

Los PLL son una clase de circuitos monolíticos, basados


en la tecnología de feedback (realimentación) de frecuencia,
que data de la década de los sesenta. Se les utiliza en
circuitos transmisores y receptores, tanto en AM como en
FM.
Un PLL es un "lazo" de servo electrónico que consiste,
básicamente, en un detector de fase, un filtro pasa bajas y
que la frecuencia entrante está cambiando, la tensión de
salida del detector de fase aumenta o disminuye justo lo
Una señal moduladora (la primera) puede suficiente para mantener a la frecuencia del oscilador igual
transmitirse modulando una onda portadora en AM a la frecuencia entrante, manteniendo la condición de
(la segunda) o FM (la tercera), entre otras. enganchado.
recuencia del oscilador en función de la señal
ALGORITMO DE HUFFMAN
moduladora. Como la excursión de
A. Técnicas. El algoritmo de Huffman es un algoritmo para la
En oscilador estable, controlado con un cristal construcción de códigos de Huffmann, desarrollado por
piezoeléctrico, se añade un condensador variable con la David A. Huffmann en 1952 y descrito en “A Method for
señal moduladora (varactor). Eso varía ligeramente la the Construction of Minimum-Redundancy Codes”. Este
frecuencia del oscilador en función de la señal moduladora. algoritmo toma un alfabeto de n símbolos, junto con sus
Como la excursión de frecuencia que se consigue no suele frecuencias de aparición asociadas, y produce un código de
ser suficiente, se lleva la señal de salida del oscilador a Huffman para ese alfabeto y esas frecuencias.
multiplicadores de frecuencia para alcanzar la frecuencia de
radiodifusión elegida. El algoritmo consiste en la creación de un árbol binario
que tiene cada uno de los símbolos por hoja, y construido
B. Modelado y Codificación. de tal forma que siguiéndolo desde la raíz a cada una de
Un modulador de FM se puede modelar exactamente sus hojas se obtiene el código Huffman asociado.
como un modulador de PM con un integrador a la entrada de 1. Se crean varios árboles, uno por cada uno de los
la señal moduladora. símbolos del alfabeto, consistiendo cada uno de los árboles
en un nodo sin hijos, y etiquetado cada uno con su símbolo lm566 por lo que este diseño se tuvo que hacer el
asociado y su frecuencia de aparición. diseño con un integrado similar en este caso el 4046.
2. Se toman los dos árboles de menor frecuencia, y se
unen creando un nuevo árbol. La etiqueta de la raíz será la
suma de las frecuencias de las raíces de los dos árboles que ai a1 a2 a3 a4 a5
se unen, y cada uno de estos árboles será un hijo del nuevo Pi 1/3 1/5 1/5 2/15 2/15
árbol. También se etiquetan las dos ramas del nuevo árbol:
con un 0 la de la izquierda, y con un 1 la de la derecha.
3. Se repite el paso 2 hasta que sólo quede un árbol.
Con este árbol se puede conocer el código asociado a un
símbolo, así como obtener el símbolo asociado a un
determinado código. Para obtener el código asociado a un
símbolo se debe proceder del siguiente modo:
1. Comenzar con un código vacío
2. Iniciar el recorrido del árbol en la hoja asociada al Se obtiene el código óptimo binario:
símbolo
3. Comenzar un recorrido del árbol hacia arriba C = {00, 10, 11, 010, 011}
4. Cada vez que se suba un nivel, añadir al código la
etiqueta de la rama que se ha recorrido ai a1 a2 a3 a4 a5
5. Tras llegar a la raíz, invertir el código Pi 1/5 1/5 1/5 1/5 1/5
6. El resultado es el código Huffman deseado
Para obtener un símbolo a partir de un código se debe
1
hacer así:
1. Comenzar el recorrido del árbol en la raíz de éste
2. Extraer el primer símbolo del código a descodificar
3. Descender por 1la rama etiquetada con ese símbolo
4. Volver al paso 2 hasta que se llegue a una hoja, que será
el símbolo asociado al código
En la práctica, casi siempre se utiliza el árbol para obtener
todos los códigos de una sola vez; luego se guardan en Para las nuevas probabilidades se obtiene el código
tablas y se descarta el árbol. binario:

I. CUESTIONARIO Y PROGRAMACIÓN C = {01, 10, 11, 000, 001}

Se nota que el código es diferente. Pero si


1. Determinar cuáles de los siguientes códigos son de agrupamos a4 y a5 como un solo símbolo a45 en la
decodificación única: fuente nuestras nuevas distribuciones serían las
siguientes:
a) C = {0, 10, 11}
b) C = {0, 01, 11} ai a1 a2 a3 a45
c) C = {0, 01, 10} Pi 1/3 1/5 1/5 4/15
d) C = {110, 11, 100, 00, 10}

En el software de simulación no se encuentra el


lm566 por lo que este diseño se tuvo que hacer el
diseño con un integrado similar en este caso el 4046.

2. Encontrar el código binario de Huffman para los


símbolos fuente ai a1 a2 a3 a45
{a1, a2, a3, a4, a5} Pi 1/5 1/5 1/5 2/5

con probabilidades:
1/3, 1/5, 1/5, 2/15, 2/15.
Deducir razonadamente que el código también
es óptimo para la distribución de probabilidades:
1/5, 1/5, 1/5, 1/5, 1/5.

En el software de simulación no se encuentra el


3. Probar que no existe ninguna codificación binaria 6. Consideremos la fuente {a1, a2, a3, a4, a5} con
instantánea de los enteros {0, 1,…, 9} con las probabilidades: 0.15, 0.04, 0.26, 0.05, 0.50.
longitudes 0, 1, 2, 2, 3, 3, 3, 3, 4, 4.
a) Calcular la entropía de esta fuente.

En el software de simulación no se encuentra el b) Encontrar un código de Huffman.


lm566 por lo que este diseño se tuvo que hacer el c) Determinar la longitud media del código
diseño con un integrado similar en este caso el 4046. obtenido.

ai a1 a2 a3 a4 a5
Pi 0.15 0.04 0.26 0.05 0.50
4. Se considera la fuente {a1,…, a5} con
probabilidades: 0.4, 0.3, 0.1, 0.1, 0.1. La entropía (H) denota el mínimo número de bits
Encontrar un código óptimo con alfabeto ternario. por símbolo necesarios para representar un mensaje.

Para el código ternario se procederá de manera De forma práctica se suele definir como:
similar al binario pero esta vez se agruparan los 3
mínimos y se emplearan los símbolos 0, 1 y 2.

ai a1 a2 a3 a4 a5 Siendo ai cada uno de los símbolos de la fuente.


Pi 0.4 0.3 0.1 0.1 0.1 Entonces:

1 1
𝐻 = 0.15 ∗ 𝑙𝑜𝑔2 ( ) + 0.04 ∗ 𝑙𝑜𝑔2 ( )
0.15 0.04

1 1
+ 0.26 ∗ 𝑙𝑜𝑔2 ( ) + 0.05 ∗ 𝑙𝑜𝑔2 ( )
0.26 0.05

1
+ 0.50 ∗ 𝑙𝑜𝑔2 ( )
0.50

Se obtiene el código óptimo ternario: 𝐻 = 1.8177 𝑏𝑖𝑡𝑠

C = {0, 1, 20, 21, 22} Hallando el código Huffman (C) de la fuente

5. Encontrar un código binario de Huffman para una ai a1 a2 a3 a4 a5


fuente S = {a1,…, a6} con probabilidades: Pi 0.15 0.04 0.26 0.05 0.50
1/21, 2/21, 3/21, 4/21, 5/21, 6/21.
Aplicando el algoritmo de Huffman.

ai a1 a2 a3 a4 a5 a6
Pi 1/21 2/21 3/21 4/21 5/21 6/21

Entonces el código óptimo de la fuente es:

C = {110, 1111, 10, 1110, 0}

Y la longitud de cada símbolo en bits:

Se obtiene el código binario: Li = {3, 4, 2, 4, 1}

C = {111, 110, 10, 001, 000, 01} Por ende la longitud media del código (L(C)) de
la fuente será:

𝐿(𝐶 ) = ∑ 𝐿𝑖 . 𝑃𝑖
𝑖
𝐿(𝐶) = 3 ∗ 0.15 + 4 ∗ 0.04 + 2 ∗ 0.26 + 4 ∗ 0.05 + 1
∗ 0.50

𝐿(𝐶) = 1.83 𝑏𝑖𝑡𝑠