Professional Documents
Culture Documents
Profesor:
Ivan Ladino
Una vez obtenida la respuesta de la fuente Vx, con esta se realiza la simulacin del canal
binario simtrico, se le adiciono la posibilidad de variar la probabilidad de error de canal,
tambin se utilizan variables globales para poder compartir informacin con otras
subrutinas y la salida del canal binario toma el nombre de Vy.
function Vy=canal_simetrico;
%N es el numero de datos provenientes de la fuente
%E es la probabilidad de error del canal
global N E Px0 Px1 r Vx Vy
for bout=1:N
if (Vx(bout)==0)
r=rand;
if(r<=1-E)
Vy(bout)=0;
else
Vy(bout)=1;
end
else
if(r<=1-E)
Vy(bout)=1;
else
Vy(bout)=0;
end
end
end
Una vez simulada la salida del canal binario se calculan las probabilidades a priori del
canal.
Se calculo la probabilidad de Px/y(0/0) para realizar este clculo es necesario contar el
numero de ceros en Vy dado que a la entrada hay ceros y este resultado dividirlo entre el
nmero de ceros en Vx.
function pyx00=program_pyx00;
global N E Px0 Px1 r Vx Vy pyx00
k=0;
q=0;
for b=1:N
if(Vx(b)==Vy(b))
if(Vy(b)==0)
k=k+1;
end
end
end
for b=1:N
if(Vx(b)==0)
q=q+1;
end
end
pyx00=k/q;
end
Se calcula la probabilidad de Py/x(0/1) Para realizar este clculo se cuenta el numero de
ceros en Vy dado que a la entrada hay unos y este resultado dividirlo entre el nmero de
unos en Vx.
function pyx01=program_pyx01;
global N E Px0 Px1 r Vx Vy pyx01
k=0;
q=0;
for b=1:N
if(Vx(b)~=Vy(b))
if(Vy(b)==0)
k=k+1;
end
end
end
for b=1:N
if(Vx(b)==1)
q=q+1;
end
end
pyx01=k/q;
end
Se calcula la probabilidad de Py/x(1/0) Para realizar este clculo se cuenta el numero de
unos en Vy dado que a la entrada hay ceros y este resultado dividirlo entre el nmero de
ceros en Vx.
function pyx10=program_pyx10;
global N E Px0 Px1 r Vx Vy pyx10
k=0;
q=0;
for b=1:N
if(Vx(b)~=Vy(b))
if(Vy(b)==1)
k=k+1;
end
end
end
for b=1:N
if(Vx(b)==0)
q=q+1;
end
end
pyx10=k/q;
end
Px\y(1\0): Para realizar este clculo es necesario contar el numero de unos en Vx dado
que a la salida hay ceros y este resultado dividirlo entre el nmero de ceros en Vy.
function pxy10=program_pxy10;
global N E Px0 Px1 r Vx Vy pxy10
k=0;
q=0;
for b=1:N
if(Vx(b)~=Vy(b))
if(Vx(b)==1)
k=k+1;
end
end
end
for b=1:N
if(Vy(b)==0)
q=q+1;
end
end
pxy10=k/q;
end
Px\y(1\1): Para realizar este clculo es necesario contar el numero de unos en Vx dado
que a la salida hay unos y este resultado dividirlo entre el nmero de unos en Vy.
function pyx11=program_pyx11;
global N E Px0 Px1 r Vx Vy pyx11
k=0;
q=0;
for b=1:N
if(Vx(b)==Vy(b))
if (Vy(b)==1)
k=k+1;
end
end
end
for b=1:N
if(Vx(b)==1)
q=q+1;
end
end
pyx11=k/q;
end
Px\y(0\1): Para realizar este clculo es necesario contar el numero de ceros en Vx dado
que a la salida hay unos y este resultado dividirlo entre el nmero de unos en Vy.
function pxy01=program_pxy01;
global N E Px0 Px1 r Vx Vy pxy01
k=0;
q=0;
for b=1:N
if(Vx(b)~=Vy(b))
if(Vx(b)==0)
k=k+1;
end
end
end
for b=1:N
if(Vy(b)==1)
q=q+1;
end
end
pxy01=k/q;
end
Ahora se calcula la probabilidad Px(0) y Px(1)
Px(0):Para hallar esta probabilidad se hace un conteo del nmero de ceros a la entrada y
se divide entre el nmero de muestras N.
function px1=program_px1;
global N E Px0 Px1 r Vx Vy px1
k=0;
for b=1:N
if(Vx(b)==1)
k=k+1;
end
end
px1=k/N;
Px(1): Para hallar esta probabilidad se hace un conteo del nmero de unos a la entrada y
se divide entre el nmero de muestras N.
function px1=program_px1;
global N E Px0 Px1 r Vx Vy px1
k=0;
for b=1:N
if(Vx(b)==1)
k=k+1;
end
end
px1=k/N;
S1
S2