Está en la página 1de 2

Titulación de Electrónica y Telecomunicaciones

Transmisión de Datos
Deber N: 1
Nombres: David Macanchi
Fecha: 14/10/2019
Paralelo: A

Desarrollar un algoritmo en Matlab que calcule la entropía de una fuente S. En donde el


mensaje será determinado por el estudiante. Además, presentar el resultado en
 Bits
 Nats
 Hartleys

Fuente:
𝑆 = {2 3 4 5 6 7 8 9 22 23 24 25 26 27 28 29 32 33 34 35 36 37}

Para empezar el algoritmo, debemos declarar nuestras variables:


Y usamos el comando clc que nos permite limpiar la ventana de comandos para poder
volver a usar el código y no confundir datos de previos ejercicios.

clc
H=0
n=1
simbol(n)=0

Usamos el comando de Matlab que nos permite arir un archivo, en este


caso es un archivo de texto en el cual se encuentran los datos de la
fuente:

file=fopen('fuente.txt');
ca=fscanf(file,'%c');

Ahora usaremos una condición de bucle (for) para poder realizar el


proceso de cálculo de la entropía, pondremos que empiece desde 33, ya
que se usa el código ascii, y el numero 32 es el código para el
espacio ‘ ’ y en nuestra fuente no está contemplado.

for i=33:255
end

Luego de esto y dentro del bucle hacemos las operaciones, utilizaremos


en este caso la fórmula del cálculo de la entropía y la reemplazamos
por variales y calculamos:
dato=char(i);
total=length(strfind(ca,dato));
p=total/length(ca);
in=log2(1/p);

Declaramos una condición (if) para que cuando el archivo de texto


posea información pueda realizar y mostrar los datos. Ademas guardamos
en una matriz que inicialmente declaramos, los valores repetidos para
poder hacer la gráfica o Histograma (Esta parte me falta optimizar).

if(total ~= 0)
simbol(n)=total;
fprintf('\tSimbolo: \t %c Se repite:\t %d ');
fprintf('\t P(s)=%f I(s)= %f \n',p,in);
H=H+p*in;
n=n+1;
end

Para finalizar, mostramos el valor de la entropía y adicional también el total de datos y


el histograma.

fprintf('\n la entropia es %f bits/muestra \t',H);


fprintf('\t total de datos:%d \n',length(ca));
histogram(simbol);

También podría gustarte