107 lines
3.9 KiB
Plaintext
107 lines
3.9 KiB
Plaintext
# par y danza
|
|
|
|
estrategia básica para detectar posibles errores de transmisión / recepción de una secuencia binaria, en modalidad {compudanzas}.
|
|
|
|
implementamos el cómputo y detección de la llamada paridad: dada una secuencia de dos tipos de símbolos, ¿la cantidad de símbolos de uno de esos tipos, es par o impar?
|
|
|
|
|
|
# componentes
|
|
|
|
usaremos el concepto de estados y tiempos discretos.
|
|
|
|
## participantes
|
|
|
|
necesitamos al menos dos personas:
|
|
|
|
* transmisora de secuencia
|
|
* calculadora de paridad
|
|
|
|
## movimientos
|
|
|
|
necesitamos un alfabeto de dos movimientos:
|
|
|
|
* un movimiento "alto"
|
|
* un movimiento "bajo"
|
|
|
|
y un conteo de tiempos discretos.
|
|
|
|
cada uno de esos tiempos que contiene a un movimiento, lo podemos considerar un "bit": unidad mínima de información.
|
|
|
|
para transmitir información más compleja, necesitamos varios "bits": una secuencia de tiempos con uno de estos dos movimientos.
|
|
|
|
|
|
## estados y transiciones
|
|
|
|
en cada unidad de tiempo, estamos ya sea en el estado que corresponde al movimiento alto, o en el que corresponde al movimiento bajo.
|
|
|
|
inicialmente estamos en el movimiento bajo.
|
|
|
|
tenemos dos tipos de transiciones:
|
|
|
|
* continúa: sigue en el mismo estado
|
|
* invierte: cambia al otro estado
|
|
|
|
|
|
# guía
|
|
|
|
## cálculo de paridad
|
|
|
|
de acuerdo al mensaje binario a transmitir, en cada tiempo la persona transmisora envía uno de los dos movimientos posibles.
|
|
|
|
cuando la cantidad de movimientos que envía en una transmisión son 8, estará enviando un "byte".
|
|
|
|
la persona calculadora inicialmente está en el movimiento bajo.
|
|
|
|
en cada tiempo de transmisión, la persona calculadora ha de actuar de la siguiente forma:
|
|
|
|
* si el movimiento transmitido es bajo, ella ha de continuar su movimiento.
|
|
* si el movimiento transmitido es alto, ella ha de invertir su movimiento.
|
|
|
|
al concluir la transmisión, la persona calculadora habrá terminado:
|
|
|
|
* en el movimiento alto si la cantidad de movimientos altos transmitidos fue impar.
|
|
* en el movimiento bajo si la cantidad de movimientos altos transmitidos fue par
|
|
|
|
comprobemos que sí sea así, con secuencias de diferente longitud y paridad.
|
|
|
|
|
|
## detección de error con paridad
|
|
|
|
### conceptos
|
|
|
|
el estado en el que terminó la persona calculadora puede llamarse el bit de paridad.
|
|
|
|
un aspecto interesante y no obvio de este sistema, es que si este bit de paridad se agrega a la secuencia original para formar una nueva secuencia completa, entonces la cantidad total de movimientos altos siempre será un número par:
|
|
|
|
* cuando la cantidad era impar (por ejemplo, 3), el bit de paridad es alto, y al sumarse da un total par (por ejemplo, 4)
|
|
* cuando la cantidad era par (por ejemplo, 2), el bit de paridad es bajo y no se suma al total, que queda par (por ejemplo, 2)
|
|
|
|
### actividad
|
|
|
|
después de calcular localmente la paridad de la secuencia a transmitir, podemos pasar a transmitir a mayor distancia la nueva secuencia con el bit de paridad al final:
|
|
|
|
en cada tiempo, la persona transmisora envía el movimiento correspondiente para transmitir la secuencia completa.
|
|
|
|
la persona calculadora inicialmente está en el movimiento bajo.
|
|
|
|
en cada tiempo de transmisión/recepción, la persona calculadora ha de actuar de la siguiente forma:
|
|
|
|
* si el movimiento recibido es bajo, ella ha de continuar su movimiento.
|
|
* si el movimiento recibido es alto, ella ha de invertir su movimiento.
|
|
|
|
al terminar la transmisión de la secuencia completa, revisamos el estado de la persona calculadora:
|
|
|
|
* si se encuentra en movimiento alto (paridad impar), hubo algún error en la comunicación
|
|
* si se encuentra en movimiento bajo (paridad par), probablemente no hubo error en la comunicación
|
|
|
|
probemos con secuencias de diferente longitud, a diferentes velocidades, y también a diferentes distancias.
|
|
|
|
¿llega a suceder que detectamos un error?
|
|
|
|
¿qué pasa cuando hay dos errores en la comunicación? ¿es posible que el sistema no lo detecte?
|
|
|
|
|
|
|
|
## llega aquí:
|
|
=> ./compudanzas.gmi {compudanzas}
|