Documentos de Académico
Documentos de Profesional
Documentos de Cultura
COMUNICACIONES
III Ciclo
Laboratorio 12
Ciclo
LABORATORIO 12: Comparación entre técnicas de codificación
Introducción
Codificación de la Fuente.
Técnicas de codificación de la fuente.
Equipos y Materiales
• Computadora.
• Matlab u Octave.
AERG Pag. 2
LABORATORIO 12: Comparación entre técnicas de codificación
if sum(minim)<= min(huff)||(sum(minim)==max(huff)&&length(huff)>2)
for n=1:length(code)
code(n)=strcat('1',code(n));
endfor
else
for n=1:length(code)
code(n)=strcat('0',code(n));
endfor
endif
minim=[huff(length(huff)-1) huff(length(huff))];
codey=[codey;{minim(2)};{minim(1)}];
huff=[huff sum(minim)];
code=[code;{"1"};{"0"}];
endfor
codene=codeyne=[];
for n=1:length(codey)
x=cell2mat(codey(n));
if find(P==x)
if x==cell2mat(codey(n+1))
if bin2dec((code(n)))< bin2dec(code(n+1))
code(n+1)=0;
else
codey(n)=code(n)=0;
endif
endif
x=cell2mat(code(n));
y=cell2mat(codey(n));
if length(x)==2
codene=[codene; x];
codeyne=[codeyne; y ];
elseif length(x)==1
codene=[codene];
else
codene=[codene; int2str(str2num(x))];
codeyne=[codeyne; y ];
endif
else
codey(n)=code(n)=0;
endif
endfor
codeyne=flip(codeyne)
codene=flip(codene)
AERG Pag. 3
LABORATORIO 12: Comparación entre técnicas de codificación
AERG Pag. 4
LABORATORIO 12: Comparación entre técnicas de codificación
for i=1:length(ss)
Hx=Hx+ ss(i)*log2(1/ss(i));
info(i)=-(log2(ss(i)));
endfor
for j=1:length(ss)-1
fano=fano+ss(j);
sf=[sf 0]+[zeros(1,j) fano];
siling=[siling 0]+[zeros(1,j) round(info(j+1))];
endfor
if siling(1)~=siling(2)
siling(1)=siling(2)=2;
endif
if siling(length(siling))~=siling(length(siling)-1)
siling(length(siling))=siling(length(siling)-1)=5;
endif
for r=1:length(sf)
esf=sf(r);
for p=1:siling(r)
esf=mod(esf,1)*2;
h(p)=esf-mod(esf,1);
endfor
hh(r)=h(1)*10^(siling(r)-1);
for t=2:siling(r)
hh(r)=hh(r)+h(t)*10^(siling(r)-t);
endfor
endfor
c={'0','1'};
disp('Codigo');
codex={0};
for i=1:length(hh)
u=1;
for t=siling(i):-1:1
f=floor(hh(i)/10^(t-1));
hh(i)=mod(hh(i),10^(t-1));
if f==1
if u==1
d=c{2};
else
d=[d c{2}];
endif
else
AERG Pag. 5
LABORATORIO 12: Comparación entre técnicas de codificación
if u==1
d=c{1};
else
d=[d c{1}];
endif
endif
codex{i,:}={d};
u=u+1;
endfor
disp([d])
endfor
tao=siling(1)*ss(1);
for u=1:length(ss)-1
tao=tao+siling(u+1)*ss(u+1);
endfor
T=tao/n;
B=[flipud(rot90(ss)),flipud(rot90(siling))];
disp(["\nProbabilidad",' Largo'])
disp(B)
disp(["\nEntropia H(X) = ",num2str(Hx)])
disp(['Longitud Promedio,L = ',num2str(T)])
eff=((Hx/T)*100);
disp(['Eficiencia=',num2str(eff),'%'])
redu=100-eff;
disp(['Redundancia=',num2str(redu),'%'])
M="thisisthe"
M=[toascii(M)]
dic=unique(M);
temp=[]; ndic=[]; code=[]; numdic=[];
ind=0;
x=1;
for n=1:(length(M))-1
if find(temp==M(n))
if find(ndic(:,1)==M(n))==find(ndic(:,2)==M(n+1))
code=[code numdic(find(ndic(:,1)==M(n)))];
endif
elseif find(dic==M(n))
ndic=[ndic; M(n) M(n+1)];
numdic=[numdic 255+x];
code=[code M(n)];
temp=ndic(:,1);
x=x+1;
endif
endfor
code=[code M(length(M))]
codebin=dec2bin(code)
AERG Pag. 6
LABORATORIO 12: Comparación entre técnicas de codificación
5. Resultados de la comparación.
Comparando los resultados de la página con los de Lempel zip nos podemos
fijar que la cadena a transmitir es mas corta
AERG Pag. 7
LABORATORIO 12: Comparación entre técnicas de codificación
6. Observaciones y conclusiones
Observaciones:
Conclusiones:
AERG Pag. 8