Вы находитесь на странице: 1из 2

INSTITUTO POLITECNICO NACIONAL

UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERIA Y TECNOLOGIAS AVANZADAS


Práctica 3 Teoría de la Información Febrero 2020.

Capacidad de Canal con AWGN y Codificación Huffman


Objetivos:
 Complementar el análisis teórico de los canales continuos en AWGN con herramientas de cálculo y gráficas de
Matlab.
 Identificar el comportamiento de las variables que intervienen en el teorema de Shannon-Hartley.
 Familiarizarse con la aplicación de comandos en Matlab para ejecutar la codificación fuente de Huffman.

Introducción:
En la presente práctica se abordarán dos tópicos de Teoría de la Información, como son los de capacidad de canal
continuo bajo AWGN y la codificación Huffman, los cuales serán modelados mediante la implementación de algoritmos en
el ambiente de Matlab, con el propósito de comprender mejor la teoría vista en clase.

Descripción:

Las primera sección de ejercicios abordan el tema del teorema de Shannon- Hartley con la interpretación gráfica de las
variables que intervienen, la segunda parte se abocará a un ejercicio de la codificación de Huffman.

El reporte de esta práctica se entregará el día jueves 5 de marzo en hora de clase. Tal reporte es de trabajo
individual, se entregará el desarrollo escrito a mano (gráficas, códigos comentados y desplegados de pantalla
solamente serán impresos, lo demás deberá ser escrito en con puño y letra del estudiante), y deberá incluir tanto las
gráficas así como el listado de las instrucciones del programa MATLAB que se prepararon para la simulación
(comentarios), así como las conclusiones finales de la práctica.

Para tener derecho a la entrega del reporte, será necesario haber desarrollado al menos el 80% de los ejercicios en la
sesión de laboratorio.

Desarrollo:
Ejercicio 1
1. Ejecutar el siguiente script en matlab:

% MATLAB script pra#3_cap_canal


clear all
close all
echo off
w=[1:5:20,25:20:100,130:50:300,400:100:1000,1250:250:5000,5500:500:10000];
pn0_db=[-20:1:30];
pn0=10.^(pn0_db/10);
for i=1:45
for j=1:51
c(i,j)=w(i)*log2(1+pn0(j)/w(i));
end
end
echo on
pause %presiona una tecla para ver C v.s W y P/N0
k=[.9,.8,.5,.6];
s=[-70,35];
surfl(w,pn0_db,c',s,k)
title('Capacidad de canal vs. ancho de banda y SNR')

2. Complementar dichas líneas de código con sus respectivos comentarios, con el fin de indicar apropiadamente lo que
realiza tal programa fuente.

Profesor: Jorge Rojas Beltrán Academia de Telemática


3. Una vez que se haya ejecutado el programa, se deberá imprimir la gráfica resultante con sus respectivos títulos, y
etiquetas de los ejes con sus unidades según sea la variable a desplegar en el formato de 3D.
4. (alumno) Explicar con diferentes ángulos del gráfico 3D el comportamiento de las tres variables, es decir, con base en lo
demostrado en clase, describir detalladamente el desempeño de la CC en función del ancho de banda y la relación
señal a ruido.

Ejercicio 2
1. Ejecutar el siguiente script en matlab:

% script pra3eje2_huffman
clear all
close all
echo off
simb=[1 2 3 4]; % simbolos de la fuente
p=[0.1 0.2 0.3 0.4]; % probabilidades de cada simbolo fuente
dicc=huffmandict(simb,p); % crear la codificación Huffman binaria
dicc{1,:} % se lista la codificación de cada simbolo
dicc{2,:}
dicc{3,:}
dicc{4,:}
cadena_fte=[4 2 1 1 3]; % cadena fuente a codificar
cadena_cod=huffmanenco(cadena_fte,dicc) % obtencion de cadena codificada

1. Reportar en una tabla la codificación obtenida y la cadena de datos binaria que se obtuvo a partir de [4 2 1 1 3].
2. Desarrollar un script o lista de instrucciones donde se decodifique la siguiente cadena de datos binaria mediante el
diccionario de Huffman que se obtuvo anteriormente: [1 0 1 0 0 0 0 1 1], reportando la cadena de datos fuente que
resultó de la decodificación.

Ejercicio 3
1. Desarrollar un script en matlab que obtenga un diccionario Huffman a partir del siguiente listado de símbolos
conforme a la frecuencia de aparición de dichos símbolos:

[4 5 6 5 7 7 7 8 9 8 8 7 6 7 5 4 7 6 5 4 5 6 7 6 7 6 4 5 8 7 7 6 7 6 7 7 6 5 9 8 4 7 6 7 7 6 7 8 6 5]

2. Codificar la siguiente cadena de números con base en el diccionario obtenido del punto anterior: [4 5 5 7 6 8 7 7 9 6].
3. Decodificar la siguiente cadena binaria por medio del diccionario de Huffman anterior: [1 0 1 1 0 0 1 0 0 0 0 1 0 1]. Y
observa el resultado.

Ejercicio 4
1. Tomando como listado de símbolos el nombre completo de alumno que desarrolló la práctica, obtener los símbolos
fuente y la probabilidad de cada uno de ellos. Posteriormente codificar la palabra “incertidumbre” utilizando el
diccionario de Huffman que se obtuvo anteriormente con el nombre completo del alumno.
2. Entregar listado de los resultados y diccionario obtenidos, así como del código en MATLAB que se desarrolló para
ello (impresos).

Profesor: Jorge Rojas Beltrán Academia de Telemática

Вам также может понравиться