comparación de dos métodos de detección de errores lrc y bit de paridad
TRANSCRIPT
Level 6
Resumen— En la presente practica queremos
establecer la importancia de proteger los datos, de
errores, mediante el control de dichos errores,
para ello se comparó dos método de detección en
los cuales se incluyó en cada uno ellos el ruido, los
resultados se comprobaron haciendo uso de la
probabilidad de error en cada uno.
Palabras clave—LRC, Ruido, CRC y Bit de
paridad
I. OBJETIVOS
Realizar la comparación de dos
técnicas de detección de errores con la
ayuda del programa Matlab.
Obtener la probabilidad de error de
cada método para conocer cuál de ellas
es más factible aplicar en la detección
de errores
II. DETECCIÓN DE ERRORES
Si bien es imposible evitar que ocurran
errores, un buen diseño los minimizará.
Hecho esto la tarea es en primer lugar
determinar la presencia de los errores, aquí
es donde aparecen las técnicas de detección
de errores, y luego tratar de corregirlos.
La detección de errores consiste en
monitorear la información recibida y a
través de técnicas implementadas en el
Codificador de Canal, determinar si un
carácter, caso asincrónico, o un grupo de
datos, caso sincrónico, presentan algún o
algunos errores.
Chequeo de paridad horizontal (LRC),
longitudinal.
Este chequeo de paridad horizontal o
longitudinal (LRC) en vez de estar
orientado al carácter lo está al mensaje, y
consiste en que cada posición de bit de un
mensaje tiene bit de paridad, así por
ejemplo se toman todos los bits b0 de los
caracteres que componen el mensaje y se
calcula un bit de paridad par o impar, según
el criterio definido, este bit de paridad es el
bit b0 de un carácter adicional que se
transmite al final del mensaje, y se procede
luego sucesivamente con los demás bits
incluyendo el de paridad. El carácter así
construido se denomina BCC (Block Check
Character), también se le denomina BCS
(Block Character Sequence). [1]
Fig. 1 Chequeo longitudinal LRC
Comparación de dos métodos de detección de errores
LRC y CRC
Alvarado González María Fernanda Email:[email protected]
Pineda Tandazo Ronald Fernando Email:[email protected]
Campoverde Rojas Carlos Israel Email:[email protected]
Escuela de Electrónica y Telecomunicaciones
Loja, Ecuador
Level 6
Código de redundancia cíclica (CRC)
Los métodos basados en el uso de paridad
son sencillos de comprender y de
implementar, suministran cierto grado de
protección contra los errores pero son
limitados y su efectividad es cuestionable
en determinadas aplicaciones. Por ello se
utilizan solamente cuando resulta muy
complicado o muy costoso implementar
otros métodos. Por ello es necesario, en
entornos síncronos, emplear métodos que
tengan en cuenta dos factores importantes:
1. Detección más segura de los
errores. Dado que los datos se
envían en bloques un solo error
corrompe toda la información
contenida en él, que es
considerable, además muchas veces
los errores se presentan en
“ráfagas”, por ello se requieren
esquemas más poderosos
2. Eficiencia. No se deben consumir
demasiados recursos dejando libre
la mayor parte del canal para datos.
Un grupo de métodos que cumplen con
dichos requisitos son los llamados códigos
de redundancia cíclica, que se basan en
propiedades matemáticas de los códigos
empleados para la transmisión de datos. [2]
[3]
III. PROGRAMACIÓN EN MATLAB
% CRC a11=get(handles.a1,'String'); a22=get(handles.a2,'String'); a11=str2num(a11); a22=str2num(a22); g=[1 1 0 0 1 1]; b=[1 0 0 0 0 0]; z= conv(a11,b); [c,r]= deconv (z,g); C=mod(c,2); R=mod(r,2); resp=findobj(gcbf,'Tag','c1');
set(resp,'String',num2str(R)); SuTx=z+R; resp1=findobj(gcbf,'Tag','b1'); set(resp1,'String',num2str(SuTx)
);
Long=length (SuTx);
%Sin Ruido
[Com1 Rest1]=deconv(SuTx,g); Co=mod(Com1,2); Re=mod(Rest1,2); resp2=findobj(gcbf,'Tag','d1'); set(resp2,'String',num2str(Re));
%Añadiendo ruido
Ruido=randint(1,Long); resp3=findobj(gcbf,'Tag','e1'); set(resp3,'String',num2str(Ruido
));
SuTx1=SuTx+Ruido;
%Comprobación
[Com2 Rest2]=deconv(SuTx1,g); Co1=mod(Com2,2); Re1=mod(Rest2,2); resp4=findobj(gcbf,'Tag','f1'); set(resp4,'String',num2str(Re1))
;
%Probabilidad de error
PError=(1-
(1/length(a11)))^(length(SuTx)); resp13=findobj(gcbf,'Tag','PE'); set(resp13,'String',PError);
%Respuesta
if (Re==Re1)
resp5=findobj(gcbf,'Tag','g1'); set(resp5,'String','No se
presentaron errores en la
transmisión');
else
resp6=findobj(gcbf,'Tag','g1'); set(resp6,'String','Se
presentaron errores en la
transmisión'); end
%LCR suma= sum(a22); RES=mod(suma,2); if (RES==0) aq1=[0 a22];
resp7=findobj(gcbf,'Tag','b2'); set(resp7,'String',num2str(aq1))
;
Level 6
long=length(aq1);
resp8=findobj(gcbf,'Tag','c2'); set(resp8,'String',num2str(aq1))
;
%Añadiendo ruido
ruido1=randint(1,long);
resp9=findobj(gcbf,'Tag','d2'); set(resp9,'String',num2str(ruido
1));
%Paridad
pari=aq1+ruido1; pae=mod(pari,2);
resp10=findobj(gcbf,'Tag','e2'); set(resp10,'String',num2str(pae)
); xz=sum(pae); RES1=mod(xz,2);
%Probabilidad de error
PError=(1-
(1/length(a22)))^(length(a22)+1)
; resp14=findobj(gcbf,'Tag','PE1')
; set(resp14,'String',PError); if(RES1==0)
resp11=findobj(gcbf,'Tag','f2'); set(resp11,'String','No se
presentaron errores en la
transmisión'); else
resp12=findobj(gcbf,'Tag','f2'); set(resp12,'String','Se
presentaron errores en la
transmisión'); end
else aq1=[1 a22];
resp7=findobj(gcbf,'Tag','b2'); set(resp7,'String',num2str(aq1))
; long=length(aq1);
resp8=findobj(gcbf,'Tag','c2'); set(resp8,'String',num2str(aq1))
;
%Añadiendo ruido
ruido1=randint(1,long);
resp9=findobj(gcbf,'Tag','d2'); set(resp9,'String',num2str(ruido
1));
%Paridad
pari=aq1+ruido1; pae=mod(pari,2);
resp10=findobj(gcbf,'Tag','e2'); set(resp10,'String',num2str(pae)
); xz=sum(pae); RES1=mod(xz,2); PError=(1-
(1/length(a22)))^(length(a22)+1)
; resp14=findobj(gcbf,'Tag','PE1')
; set(resp14,'String',PError) if(RES1==1)
resp11=findobj(gcbf,'Tag','f2'); set(resp11,'String','Se
presentaron errores en la
transmisión'); else
resp12=findobj(gcbf,'Tag','f2'); set(resp12,'String','No se
presentaron errores en la
transmisión'); end end
IV. INTERFAZ GRÁFICA DEL PROGRAMA
P(x) P(E) LRC P(E) CRC
1 1 0 1 0 0.262144 0.107374
1 1 0 1 1 0 0.279082 0.134588
1 0 1 1 1 0.262144 0.107374 Tabla 1: Resultados Pruebas
Level 6
V. CONCLUSIONES
La mejor técnica para la detección de
errores es el CRC por que los códigos
cíclicos son ampliamente usados por su
sencillez y eficacia.
La mayor probabilidad de error se presentó
en el método de paridad horizontal (LCR),
que en el de CRC
VI. REFERENCIAS
[1] Detección y corrección de errores. [En línea].
Disponible en<
http://arantxa.ii.uam.es/~ig/teoria/temas/IG_tema-4-
2008-2009.pdf> [Consulta el 27/01/2013]
[2] Protección de los Datos: Control de Errores. Seguridad
en Redes. [En línea]. Disponible en
<http://www.geocities.ws/abianchi04/textoredes/c3.pdf> [Consulta el 27/01/2013]
[3] Mauricio Correa Villa, “Fundamentos de la teoría de la
información”, ITM, 1º Edicion, Cap 6, pág 92-96.