1 1. INTRODUCCIÓN ........................................................... - Blearning

1 1. INTRODUCCIÓN ........................................................... - Blearning 1 1. INTRODUCCIÓN ........................................................... - Blearning

blearning.itmina.edu.mx
from blearning.itmina.edu.mx More from this publisher
12.05.2013 Views

¿Qué bit está erróneo? El 5,6,7 no pueden ser porque habría otra paridad mal, es el 4. Mensaje original: 0 0 0 1 0 1 0 El Hamming solo corrige un error. OTRA FORMA DE HACER HAMMING m=7 r=4 Se cogen los bits del mensaje y se cogen las posiciones en las que hay bits a 1 (3, 6, 7, 11) y se escriben con tantos bits como bits de redundancia haya. 3 0 0 1 1 4 bits porque r = 4 6 0 1 1 0 7 0 1 1 1 11 1 0 1 1 ------- 1 0 0 1 Se suman sin acarreo y el resultado son los bits de redundancia. En el receptor se cogen las posiciones de los bits que valen 1 y se ponen en binario y se suman. Si el resultado es 0 entonces NO HAY ERRORES. Ej. 4 = 0 1 0 0 5 = 0 1 0 1 10 = 1 0 1 0 11 = 1 0 1 1 ------- 0 0 0 0 No hay error Ej. 1 1 0 2 0 3 0 4 r r r r 3, 5, 7, 9, 11 paridad de 0 0 1 0 0 = 1 3 5 7 9 11 1 V 0 1 x 1 1 2 1 1 0 1 x 2 1 3 0 2 0 2 1 3 0 4 1 3 0 3 0 5 x 4 0 5 0 4 1 4 0 6 0 5 0 6 0 5 1 5 1 7 1 6 1 7 1 6 0 6 1 8 1 7 0 8 1 7 0 7 0 9 x 8 0 9 10 1 11 0 9, 10, 11 paridad de 0 1 0 = 1 9 10 11 8 V 5, 6, 7 paridad de 0 0 1 = 1 5 6 7 4 X 3, 6, 7, 10, 11 paridad de 0 0 1 1 0 = 0 3 6 7 10 11 2 V 1 8 0 8 0 9 10 1 0 9 0 9 10 0 11 1 10 0 10 1 11 1 11 1 11 1 MENSAJE MENSAJE MENSAJE MENSAJE 2 = 0 0 1 0 3 = 0 0 1 1 7 = 0 1 1 1 10 = 1 0 1 0 11 = 1 0 1 1 ------- 0 1 1 1 bit del error Hamming tiene d=3, por lo que permite corregir un error. Estos códigos con posibilidades correctoras se usan cuando es difícil o costoso pedir retransmisiones. Normalmente se detectan los errores y si existen errores se tira la trama y se pide su retransmisión. Esto se hace porque para que un código corrija muchos errores necesita mucha redundancia. 58

(4) CRC (CODIGO DE REDUNDANCIA CICLICA) También se llaman códigos polinomio. Si tenemos un mensaje de m bits, le va añadir r bits de redundancia Esos bits de redundancia forman lo que se llama CRC o FCS (Frame Check Sequence), de forma que en total forman una trama T. Estos códigos se basan en un patrón de bits de r + 1 bits que llamamos P y que se llama polinomio Generador. En emisión r = (m*2 r )/p En recepción no hay error si T/P = 0 p son r + 1 bits que forman un polinomio de grado r. Ej. P(x) = x 7 + x 4 + x 3 + 1 P(X)= 1 * x 7 + 0 * x 6 + 0 * x 5 + 1 * x 4 + 1 * x 3 + 0 * x 2 + 0 * x 1 + 1 * x 0 1 0 0 1 1 0 0 1 Determinar el resultado de codificar 1 0 0 1 1 0 0 mediante CRC con un polinomio generador P(X) = x 3 + x 2 + 1 P(X) = 1 1 0 1 (r + 1) r = 3 r = (m*2 r m r )/p m 2 r 1 0 0 1 1 0 0 * 1 0 0 0 = 1 0 0 1 1 0 0 0 0 0 (m*2 r )/p -> 1 0 0 1 1 0 0 0 0 0 : 1 1 0 1 = 1 1 1 1 0 (Resto 0 0 0 1) El resto debe tener r bits m r 1 0 0 1 1 0 0 0 0 1 En la recepción se divide lo que se ha recibido (m+r) y lo divide por el polinomio. Si el resto es 0 no hay errores. Si el resto es distinto de 0 hay error pero no sabe localizarlo. PROPIEDADES - Todos los códigos CRC detectan todos los errores de un bit. - Si P(x) tiene al menos tres “1”, entonces detecta todos los dobles (dos errores). - Si P(x) / x+1 da de resto 0, detecta cualquier número impar de errores. - Además va a detectar todas la ráfagas de hasta r errores consecutivos. 59

(4) CRC (CODIGO DE REDUNDANCIA CICLICA)<br />

También se llaman códigos polinomio.<br />

Si tenemos un mensaje de m bits, le va añadir r bits de redundancia<br />

Esos bits de redundancia forman lo que se llama CRC o FCS (Frame Check<br />

Sequence), de forma que en total forman una trama T.<br />

Estos códigos se basan en un patrón de bits de r + 1 bits que llamamos P y<br />

que se llama polinomio Generador.<br />

En emisión r = (m*2 r )/p<br />

En recepción no hay error si T/P = 0<br />

p son r + 1 bits que forman un polinomio de grado r.<br />

Ej. P(x) = x 7 + x 4 + x 3 + 1<br />

P(X)= 1 * x 7 + 0 * x 6 + 0 * x 5 + 1 * x 4 + 1 * x 3 + 0 * x 2 + 0 * x 1 + 1 * x 0<br />

1 0 0 1 1 0 0 1<br />

Determinar el resultado de codificar 1 0 0 1 1 0 0 mediante CRC con un<br />

polinomio generador P(X) = x 3 + x 2 + 1<br />

P(X) = 1 1 0 1 (r + 1)<br />

r = 3 r = (m*2 r m r<br />

)/p<br />

m 2 r<br />

1 0 0 1 1 0 0 * 1 0 0 0 = 1 0 0 1 1 0 0 0 0 0<br />

(m*2 r )/p -> 1 0 0 1 1 0 0 0 0 0 : 1 1 0 1 = 1 1 1 1 0 (Resto 0 0 0 1)<br />

El resto debe tener r bits<br />

m r<br />

1 0 0 1 1 0 0 0 0 1<br />

En la recepción se divide lo que se ha recibido (m+r) y lo divide por el<br />

polinomio. Si el resto es 0 no hay errores.<br />

Si el resto es distinto de 0 hay error pero no sabe localizarlo.<br />

PROPIEDADES<br />

- Todos los códigos CRC detectan todos los errores de un bit.<br />

- Si P(x) tiene al menos tres “1”, entonces detecta todos los dobles (dos<br />

errores).<br />

- Si P(x) / x+1 da de resto 0, detecta cualquier número impar de errores.<br />

- Además va a detectar todas la ráfagas de hasta r errores consecutivos.<br />

59

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!