Subido por Celeste Cebedio

EJERCICIO RESUELTO CODIGOS CORRECTORES DE ERRORES

Anuncio
PRÁCTICA
2020
DEPTO. DE ELECTRÓNICA Y COMPUTACIÓN
ÁREA DIGITALES - PLAN 2003
TyDD I
EJERCICIO PROPUESTO V- CÓDIGOS
EJERCICIO PROPUESTO - CÓDIGOS
Un estudiante de ingeniería está diseñando, para entretenerse durante la cuarentena obligatoria, un auto a
control remoto.
Para diseñar la interfaz de comunicación se quiere asegurar de implementar un sistema confiable. Las órdenes
que enviará desde el control pueden ser: arriba, abajo, izquierda y derecha.
Como puede verse, las órdenes son muy simples, por lo tanto es inconcebible que se presenten errores. Para
asegurarse de ello decide utilizar códigos detectores de errores.
Como todavía está en fase de diseño, decide probar entre dos alternativas: un código Hamming (bien
conocido) y un código propio (realizado por él). El código diseñado por él, debe poseer alguna ventaja con
respecto al anterior.
Explique e implemente ambas alternativas, marcando ventajas de uno respecto de otro. Arme el esquema
entre transmisor y receptor. Especifique las palabras de código creado.
Busque un ejemplo y evalúe cómo responde cada implementación. Por ejemplo: asuma que se envía la orden
“derecha” y que por error el receptor, recibe la transmisión con errores. Pregúntese ¿Qué pasaría si recibe
otra palabra del código? Especifique cómo actuará el receptor en cada caso.
SOLUCIÓN
Antes de comenzar a ver de qué forma se van a enviar los datos al medio, se debe evaluar qué es lo que se
quiere enviar.
Las directivas que se quieren dar al robot son cuatro: ARRIBA, ABAJO, DERECHA E IZQUIERDA. ¿Cuántos bits
necesito para poder enviar 4 posibilidades distintas? 2  El mensaje original que se desea trasmitir posee 2
bits.
Directiva/
comando
ARRIBA
ABAJO
DERECHA
IZQUIERDA
Dato
D1 D0
0 0
0 1
1 0
1 1
Ahora…. ¿Qué codificación utilizo sobre estos datos para corregir y/o detectar errores?
HAMMING
Si se utiliza una forma de codificación Hamming se podrían realizar dos acciones, mutuamente excluyentes,
sobre los datos:
 Corregir (lo que implica que lo tuvo que detectar).
 Detectar 2 errores.
El código se arma de igual forma en ambos casos, la diferencia radica en lo que debe interpretar el receptor.
¿Cómo se arma el código?
Recordemos que cualquier sistema de codificación para la detección y corrección de errores se basa en
agregar bits al mensaje original, de forma tal de aumentar la distancia mínima entre las palabras transmitidas.
-
¿Cuántos bits se agregan? Se debe cumplir:
, siendo “p” la cantidad de bit a agregar
y “n” la cantidad de bit de los datos que se quieren transmitir.
Para este caso n=2 (D1 y D=0)  p=3 para que se cumpla la relación.  El total de bits a transmitir
por el medio serán 5 bits.
1
Ing. Cebedio, María Celeste
Año: 2020
PRÁCTICA
2020
DEPTO. DE ELECTRÓNICA Y COMPUTACIÓN
ÁREA DIGITALES - PLAN 2003
TyDD I
EJERCICIO PROPUESTO V- CÓDIGOS

¿En dónde se ubican los p bits que se deben agregar? Hamming establece que los bits se deben agregar
en las posiciones que representen posibles potencias de 2. Es decir, la posición 1,2,4,8,16…
B5 B4 B3 B2 B1
↑

D1 P2 D0 P1 P0
↑ ↑
¿Cómo se arma cada bit de paridad p? Una forma sencilla de pensarlo es observando que es lo que se
quiere corregir en el receptor
Ꚛ
C2
0
0
0
0
1
1
Ꚛ
Ꚛ
Ꚛ
C1
0
0
1
1
0
0
C0
0
1
0
1
0
1
¿Error?
Sin error
B1
B2
B3
B4
B5
En el receptor se desea obtener
ecuaciones que informen si hubo
error y en qué posición las hubo.
Se arman las ecuaciones de
corrección en función de ello.
Ahora bien, si se reemplaza en las ecuaciones de corrección los bits por el correspondiente dato y bit
de paridad queda:
Ꚛ
Ꚛ
Ꚛ
Ꚛ
Como condición para que no haya error C0, C1 y C2 deben ser cero (lo que equivale a decir que P0
chequea D0 y D1; P1 chequea D0 y P2 chequea D1). Es decir, se puede obtener la forma de armar los
bits de paridad “p”. Lo que se está diciendo es que para que no haya error, cada bit de paridad debe
chequear la paridad de los bits de datos de la siguiente forma:
Ꚛ

¿Cómo quedaría el código final? Las palabras permitidas luego de la codificación serían:
Directiva/
comando
ARRIBA
ABAJO
DERECHA
IZQUIERDA
Palabra
D1 P2 P1 D0
0 0 0 0
0 0 1 1
1 1 0 0
1 1 1 1
P0
0
1
1
0
Cualquier palabra que se reciba en
el receptor fuera de estas cuatro
permitidas será errónea.
¿Cómo responde el receptor? Depende de la configuración que se setee. Se puede setear en su forma
corrección o detección.
 Configuración en modo corrección sólo puede corregir adecuadamente palabras que tengan un bit
erróneo.
- Detecta y corrige automáticamente. Lo hace siempre.
- Si llegan palabras con más de un error, la corregirá mal. De esta manera agrega más error al código.
No sólo no indica el error, sino que lo corrige y coloca la palabra como buena.
- El bit erróneo puede ser tanto uno correspondiente a un dato como uno de los de paridad.
2
Ing. Cebedio, María Celeste
Año: 2020
PRÁCTICA
2020
DEPTO. DE ELECTRÓNICA Y COMPUTACIÓN
ÁREA DIGITALES - PLAN 2003
TyDD I
EJERCICIO PROPUESTO V- CÓDIGOS

Configuración en modo detector  Sólo puede detectar adecuadamente palabras que tengan hasta
dos bits erróneos.
- Si la palabra no pertenece al código, me indica error.
- No se sabe en qué bit ocurrió el error.
- Si hay errores en más de dos bit y la nueva palabra (errónea) pertenece al código, pasa inadvertida.
No es capaz de detectar ese error.
- Hace uso de las ecuaciones de corrección de Hamming sólo para determinar si hubo error. No
puede tomar los bist indicados por esas ecuaciones, como la posición del error. No corrige.
- Si se usase este tipo de detector en canales/medios que tuviesen probabilísticamente más de dos
errores por palabra sería un desastre. Habría palabras que detectaría y palabras que dejaría pasar
como buenas.
Se desea armar un código que posea alguna ventaja con respecto a Hamming. Una posible ventaja sería que en
vez de corregir un error corrija dos. Para que el código me permita corregir 2 errores, debe tener una distancia
mínima de 5. Recordar:
con t=2  dmin=5
Palabras del código
D1 D0
#
Distancia
#1
0
0
0
0
0
0
0
0
#2
1
1
1
0
0
1
1
1
#3
0
0
0
1
1
1
1
1
#4
1
1
1
1
1
0
0
0
D1-2=6
D1-3=5
D1-4=5
D2-3=5
D2-4=5
DMIN=5
D3-4=6
Las palabras que se presentan en el cuadro serán las únicas palabras válidas. La información real que se quiere
transmitir se encuentra dentro de estas palabras.
3
Ing. Cebedio, María Celeste
Año: 2020
PRÁCTICA
2020
DEPTO. DE ELECTRÓNICA Y COMPUTACIÓN
ÁREA DIGITALES - PLAN 2003
TyDD I
EJERCICIO PROPUESTO V- CÓDIGOS
¿Cómo responde el receptor?
Una opción es utilizar este código para corregir dos errores. La forma más sencilla de pensar en su
implementación es que cuando el receptor recibe el código:
1)
Se Compare la palabra recibida con cada una de las cuatro palabras pertenecientes al código.


2)
3)
#1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
#2
0
1
0
1
1
1
1
0
0
0
0
1
0
1
0
1
#3
0
0
0
0
1
0
1
1
0
1
0
1
0
1
0
1
#4
0
1
0
1
1
1
1
1
0
1
0
0
0
0
0
0
Si alguna de ellas coincide No hay error. (o mejor dicho si hay errores son los suficientes como para
convertirse en otra palabra de código)
Si la palabra recibida no coincide con ninguna  hay error y se debe descubrir cuál era la palabra
original. Ejemplo. Supongamos que se recibe la palabra: 00110000
Corrección de la palabra recibida.
Una forma podría ser comparar bit a bit la palabra recibida con cada bit de las palabras del código. Luego
observar la cantidad cambios producidos con respecto a cada palabra. Con aquella palabra que se
produzcan menor cantidad de cambios, será la palabra más cercana. Es decir la más probable de ser la
original.
Ejemplo. Dada la palabra errónea detectada anteriormente: 00110000
Hacemos la comparación bit a bit como se muestra debajo. Supongamos que se asigna 1 si los bit son
iguales y 0 si son distintos.
La cantidad de 0, indica la cantidad de bit que cambiaron con respecto a una palabra de código correcta.
Es decir, es una medida de la distancia de la palabra errónea a la una palabra del código correcta.
#1
=
0
0
1
0
0
1
1 1 0 0 0
0 0 0 0 0
0 0 1 1 1
2 cambios D=2
0
0
1
#3
=
0
0
1
0
0
1
1 1 0 0 0
0 1 1 1 1
0 1 0 0 0
5 cambiosD=5
0
1
0
#2
=
#4
0
1
0
0
1
0
1 1 0 0 0
1 0 0 1 1
1 0 1 0 0
6 cambiosD=6
0
1
0
0
1
0
0
1
0
1 1 0 0 0
1 1 1 0 0
1 1 0 1 1
3 cambiosD=3
0
0
1
Dado que la palabra más cercana a la
recibida es la palabra: 00000000. El
receptor asume que es la palabra
correcta y la envía a otra etapa
posterior para la extracción del dato
original.
Extracción del dato original. El receptor sabe los lugares en los que se encuentra camuflado el dato
Las formas de implementación de los códigos es todo un tema de estudio. Para poder aumentar la capacidad del código se
original,
tanto,más
simplemente
se fija
en las posiciones.
debe agregar
máspor
bit. lo
Agregar
bits disminuye
la velocidad
de transmisión.
En este caso la comparación en sencilla porque sólo había cuatro palabras de código de dos bit cada una, pero se podrían
hacer una idea de lo que sucedería en transmisiones reales. Hay formas mucho más eficientes de realizar las correcciones,
aquí se presenta una posibilidad para entender la idea general.
Observen que utilizando el código de Hamming , se puede obtener mediante ecuaciones las posiciones de los bits erróneos.
Implementar estas ecuaciones es mucho menos costoso que implementar la forma del segundo código.
4
Ing. Cebedio, María Celeste
Año: 2020
Descargar