Está en la página 1de 5

Informacin mutua de un canal binario simtrico

Alexandra Chacn Moreno 20082005009, Mery Ann Dousdebes 20082005023





ResumenLa teora de la informacin es un concepto
en el que se define la cantidad de informacin en un
mensaje como un valor matemtico definido y
medible. La informacin mutua de un canal representa
la cantidad promedio de informacion proveniente de la
fuente, obtenida por simbolo recibido y la cantidad de
sta que se transfiere cuando xi se trasmite e yj se
recibe.


Palabras claves Informacin mutua, capacidad,
canal, entropa, probabilidad, incertidumbre, fuente
binaria.



I. INTRODUCCIN


Un canal binario simtrico es un canal tpico de
comunicaciones que se usa frecuentemente en la teora
de cdigos y en la teora de la informacin debido a la
simplicidad de su anlisis. Este modelo consiste en que
un transmisor enva un bit y el receptor lo recibe, este
bit recibido ser correcto en la mayora de los casos
pero existe una probabilidad de que se transmita de
forma incorrecta.


II. OBJETIVOS

Implementar en software un canal binario simtrico
(CBS), con ayuda de la herramienta MATLAB,
calculando la informacin mutua, con las
probabilidades ingresadas por el interesado


III. DESARROLLO DE LA PRACTICA

El objetivo de esta prctica es simular un canal de
comunicaciones analizando distintos comportamientos y
caractersticas a partir de unas condiciones tericas ya
establecidas. Especficamente vamos a trabajar con un
canal binario, al cual le hallaremos la entropa, la
informacin y la capacidad del canal para distintas
longitudes de una trama de datos, para ello nos
ayudaremos de Matlab,
Para empezar generaremos la fuente binaria de manera
aleatoria con la funcin rand, la cual genera nmeros
entre 0 y 1. As que para definir si cada uno de esos
nmeros es un uno o un cero, nos ayudamos por la
definicin que dio el usuario para la probabilidad de ceros,
tal que si el numero generado es mayor a la probabilidad
de cero, entonces se genera un uno, de lo contrario de
genera un cero. Como lo muestra el siguiente cdigo:


Fuente binaria

Para la implementacin de un canal binario simtrico,
es necesario disear una fuente binaria capaz de
generar tantos bits como se desee, con la probabilidad
de que a la entrada sean ceros dada por el usuario.
Para esto se utiliza la funcin aleatoria de matlab
RAND la cual genera un nmero al azar entre 0 y 1,
se almacena el valor generado por esta funcin en una
variable (r) y se compara con la probabilidad deseada
por el interesado (px0), gracias a esto se generan datos
lgicos acorde con esta probabilidad, a medida que se
aumenta el nmero de bits (n) la probabilidad medida
(pmx0) en la trama de entrada (x) se aproxima al valor
ingresado por el usuario.
Para calcular la probabilidad de un cero en la trama de
entrada se utiliz la siguiente formula.








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.

También podría gustarte