comparación de dos métodos de detección de errores lrc y bit de paridad

4

Click here to load reader

Upload: ronald-pineda

Post on 14-Aug-2015

83 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Comparación de dos métodos de detección de errores LRC y Bit de paridad

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

Page 2: Comparación de dos métodos de detección de errores LRC y Bit de paridad

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))

;

Page 3: Comparación de dos métodos de detección de errores LRC y Bit de paridad

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

Page 4: Comparación de dos métodos de detección de errores LRC y Bit de paridad

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.