Documentos de Académico
Documentos de Profesional
Documentos de Cultura
En donde n es el nmero total de bits en la trama de
entrada y cont es la cantidad de unos.
El cdigo utilizado para la fuente binaria mencionada
es el siguiente, se utiliz una funcin para ser llamada
desde otro archivo con parmetros de entrada (px0,n).
%%FUENTE BINARIA
for i=1:n
r=rand;
count=0;
if r>px0
count=count+1;
x(i)=1;
end
end
Probabilidad a priori
Las probabilidades a priori tambin son ingresadas por
el usuario y con ayuda estas, se construye la trama de
salida (y) del canal, teniendo las dos tramas, se hallan
las probabilidades a priori, mediadas respecto al
comportamiento del canal, que tambin convergen al
valor ingresado a medida que se incrementa el nmero
de bits en la trama de entrada.
Estas probabilidades se hallan de la siguiente forma:
Aplicndolas al cdigo utilizado es:
()
()
En donde:
n: nmero total de bits
n1: nmero de unos en x
cont2: cantidad de 0 en x que se vuelven 1 en y.
cont1: cantidad de 1 en x que siguen siendo 1 en y.
Aqu lo que hacemos es generar tres contadores, los
cuales vamos incrementando segn diferentes
condiciones.
Lo primero que hacemos es generar un valor de
probabilidad aleatorio que almacenamos en la variable
r, luego preguntamos si el bit i generado por la fuente
es uno, de ser as aumentamos el primer contador, el
cual cuenta la cantidad de bits que estn en uno de la
fuente.
Despus analizamos si el valor que tiene r es menor
que el valor terico de pydx11, de ser as ponemos un
uno en la salida. De lo contrario analizamos la
probabilidad de que habiendo un cero a la entrada se
produzca un cero a la salida(pydx00), tal que si r es
mayor que esa probabilidad esperaramos que se
produzca un uno a la salida. Generando el cdigo
siguiente:
%%CANALBIN
count=0;
count2=0;
[M,N]=size(x);
count1x=0;
y=zeros(1,N);
for i=1:N
r=rand;
if x(i)==1
count1x=count1x+1;
if r<pydx11
y(i)=1;
count=count+1;
end
else
if r>pydx00
y(i)=1;
count2=count2+1;
end
end
pydx00mv(i)=(N-count1x-count2)/(N-count1x);
px1mv(i)=count1x/N;
px0mv(i)=1-px1mv(i);
pydx11mv(i)=count/count1x;
end
if count1x==0
pydx11m=0;
else
pydx11m=count/count1x;
end
pydx00m=(N-count1x-count2)/(N-count1x);
px1m=count1x/N;
px0m=1-px1m;
Como se logra observar en el cdigo, el contador
count, cuenta los unos que se transforman en unos a la
salida, mientras que el contador count2, cuenta los
ceros que se transforman en unos a la salida. Pudiendo
establecer relaciones matemticas para hallar los
valores medidos de la probabilidades a priori, valores
que se hallan de manera matricial (los que tienen
subndice v, por ejemplo pydx00mv) para tener un
registro del valor obtenido en cada iteracin. Y de
manera escalar (pydx00m).
Probabilidad aposteriori e informacin mutua
Teniendo las probabilidades a priori que son conocidas
se procede a estimar las probabilidades a posteriori por
medio de las siguientes formulas.
() ()() ()()
() ()() ()()
()
()()
()
()
()()
()
()
()()
()
()
()()
()
Finalmente se procede a hallar la entropa Hx y la
entropa mutua Hxy de la siguiente forma
()
()
) ()
()
)
()()
()
)
()()
()
)
()()
()
)
()()
()
)
Y por ltimo se calcula la capacidad del canal Ixy
( )
En el mismo orden se presenta el cdigo
correspondiente a las ecuaciones utilizadas
anteriormente.
%%CANALBINPOSTERIORI
count3=0;
count4=0;
count1y=0;
[M2,N2]=size(y);
count1y=0;
x=zeros(1,N2);
for i=1:N2
r=rand;
if y(i)==1
count1y=count1y+1;
if r<pxdy11
x(i)=1;
count3=count3+1;
end
else
if r>pxdy00
y(i)=1;
count4=count4+1;
end
end
pxdy11mv(i)=count3/count1y;
pxdy00mv(i)=(N2-count1y-count4)/(N2-count1y);
end
if count1y==0
pxdy11m=0;
else
pxdy11m=count3/count1y;
end
pxdy00m=(N2-count1y-count4)/(N2-count1y);
%%OBTENCION DE DATOS MEDIDOS ESCALARES
pydx10m=1-pydx00m;
pydx01m=1-pydx11m;
pxdy01m=1-pxdy11m;
pxdy10m=1-pxdy00m;
hx= px0m*log2(1/px0m)+px1m*log2(1/px1m);
hxdy=px0m*pydx00m*log2(1/pxdy00m)+px0m*pydx10
m*log2(1/pxdy01m)+px1m*pydx11m*log2(1/pxdy11m
)+px1m*pydx01m*log2(1/pxdy10m);
I=hx-hxdy;
%%OBTENCION DE DATOS MEDIDOS MATRICIALES
pydx10mv=1.-pydx00mv;
pydx01mv=1.-pydx11mv;
pxdy01mv=1.-pxdy11mv;
pxdy10mv=1.-pxdy00mv;
for i=1:n
hxv(i)=
px0mv(i)*log2(1/px0mv(i))+px1mv(i)*log2(1/px1
mv(i));
hxdyv(i)=px0mv(i)*pydx00mv(i)*log2(1/pxdy00mv
(i))+px0mv(i)*pydx10mv(i)*log2(1/pxdy01mv(i))
+px1mv(i)*pydx11mv(i)*log2(1/pxdy11mv(i))+px1
mv(i)*pydx01mv(i)*log2(1/pxdy10mv(i));
Iv(i)=hxv(i)-hxdyv(i);
end
%%OBTENCION DE DATOS TEORICOS
pxdy01=1-pxdy11;
pydx10=1-pydx00;
pydx01=1-pydx11;
p1=1-p0;
hxteo= p0*log2(1/p0)+p1*log2(1/p1);
hxdyteo=p0*pydx00*log2(1/pxdy00)+p0*pydx10*lo
g2(1/pxdy01)+p1*pydx11*log2(1/pxdy11)+p1*pydx
01*log2(1/pxdy10);
Iteo=hxteo-hxdyteo;
%%OBTENCION CANAL
C=max(Iv)
%%GRAFICAS
j=(1:1:n);
l=ones(size(j));
figure(1)
subplot(2,4,1)
plot(j,px0mv,'b-',j,p0*l,'b--')
title('Px(o) vs #muestras')
subplot(2,4,2)
plot(j,px1mv,'b-',j,p1*l,'b--')
title('Px(1) vs #muestras')
subplot(2,4,3)
plot(j,pydx11mv,'b-',j,pydx11*l,'b--')
title('Py/x(1/1) vs #muestras')
subplot(2,4,4)
plot(j,pxdy11mv,'b-',j,pxdy11*l,'b--')
title('Px/y(1/1) vs #muestras')
subplot(2,4,5)
plot(j,pxdy00mv,'b-',j,pxdy00*l,'b--')
title('Px/y(0/0) vs #muestras')
subplot(2,4,6)
plot(j,hxv,'b-',j,hxteo*l,'b--')
title('H(x) vs #muestras')
subplot(2,4,7)
plot(j,hxdyv,'b-',j,hxdyteo*l,'b--')
title('H(x/y) vs #muestras')
subplot(2,4,8)
plot(j,Iv,'b-',j,Iteo*l,'b--')
title('I vs #muestras')
Simulaciones
1. A continuacin se presenta la simulacin de un
canal simtrico binario, error del 50% y una
trama de 50 bits.
C-0.1327
2. A continuacin se presenta la misma
simulacin anterior con una trama de 1000 bits.
C= 0.0972
IV. CONCLUSIONES
Con esta simple prctica de laboratorio
desarrollamos la medicin de la informacin,
entropa y capacidad de un canal, con la ayuda de
una herramienta de software muy importante,
Matlab, este laboratorio fue de gran utilidad para
aclarar los conceptos obtenidos durante la clase, y
para lograr un modelo de gran utilidad en el mbito
de las comunicaciones.
Para simular eficazmente el canal binario
simtrico debemos generar un amplio nmero
de muestras en la fuente binaria para observar
una tendencia, por ejemplo si la probabilidad
de que salga un 1 es del 80% y hacemos 10
muestras muy seguramente no nos va a salir 8
veces 1 , lo mismo para 100 y tal vez mil por
tanto hay que aumentar este nmero tanto
como sea necesario para que se va una
tendencia correcta y consecuente con la
probabilidad deseada, se lo contrario nuestra
medida de la capacidad del canal ser errnea.
Gracias a la informacin que brinda el clculo
de la capacidad de canal, es posible estimar
que cantidad de informacin se puede enviar a
travs de este de forma segura, para valores
de probabilidad que se quieran.