Está en la página 1de 2

clc;

clear all;
close all;

k=1;
caracteres(k)=0;
texto='DIANACAROLINA';
for i=32:225 %codigo ASCII
dat=char(i); %convierte el codigo ASCII en caracter
total=length(strfind(texto,dat));
prob(k)=total/length(texto);
if (total~=0)
caracteres(k)=total;
fprintf('Caracter:\t%c se repitio:\t%d veces',dat,total);
fprintf('con probabilidad\t%f\n',prob(k));
k=k+1;
end
end

fprintf('Codigo Huffman');
sym=1:length(prob)-1;
p=prob(1:length(sym)); %Probabilidad de cada caracter

dict = huffmandict(sym,p); % Create the dictionary.


for i=1:length(sym)
dict{i,:}% Show one row of the dictionary.
end

m=length(sym);
z=[];
h=0;
l=0;

for i=1:m
p(i)=prob(i);
end

%Finding each alpha values


a(1)=0;
for j=2:m;
a(j)=a(j-1)+p(j-1);
end

%Finding each code length


for i=1:m
n(i)= ceil(-1*(log2(p(i))));
end

%Computing each code


for i=1:m
int=a(i);
for j=1:n(i)
frac=int*2;
c=floor(frac);
frac=frac-c;
z=[z c];
int=frac;
end
fprintf('Codeword %d',i);
display(z);
z=[];
end

for i=1:m
x=p(i)*log2(1/p(i));
h=h+x;
end

fprintf('Entrop�a');
display(h);

También podría gustarte