Informacion Mutua

download Informacion Mutua

of 5

Transcript of Informacion Mutua

  • 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 rpydx00 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 rpxdy00

    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.