¿Qué es la codificación en bloque?
Parte de la teoría del código, la codificación de bloques es una forma de corrección de errores hacia adelante (FEC), también conocida como código de canal, que convierte los mensajes en códigos específicos y envía la información como un bloque de datos con una longitud predeterminada. Los bloques de datos más grandes facilitan que la computadora receptora decodifique la información y corrija los errores que ocurren durante la transferencia. Los códigos de bloque y los códigos convolucionales son dos tipos de código comúnmente utilizados en FEC. Estos tipos de código permiten enviar un mensaje a través de una conexión poco confiable y aún así pueden descifrarse cuando llegue.
El uso de la codificación de bloque es necesario debido al ruido que ocurre cuando se envía un mensaje. Cuando los datos necesitan viajar una gran distancia o una conexión poco confiable, el peso y la distancia de Hamming se utilizan para determinar la probabilidad de errores. El peso de Hamming es el número de dígitos necesarios para expresar todas las combinaciones de códigos posibles, y la distancia de Hamming es cuántos errores tendrían que ocurrir antes de que un bit representara una información legítima, pero incorrecta.
Por ejemplo, si un remitente que usa la codificación de bloque quisiera enviar un mensaje que pudiera usar solo tres códigos posibles de tres dígitos cada uno, el peso de Hamming sería tres. Los códigos pueden ser 000, 010 y 011. Si un error resultara en un cambio de un dígito, como 000 cambiando a 010, el código se leería como un código legítimo (010) pero no el código que el remitente pretendía (000) . Por lo tanto, la distancia de Hamming para este código es uno porque solo un dígito necesita cambiar para causar un error que la computadora no puede corregir.
Para reducir la distancia de Hamming y reducir los errores, los datos se envían como un bloque de código que se codifica en palabras de código específicas de cierta longitud. Los bits de datos del mensaje original se denominan k bits. Los k bits se traducen en n bits correspondientes, que son códigos que han sido seleccionados para ser códigos más largos para cada k bit. Se agregan unos o ceros para hacer que los bits tengan una longitud uniforme y reducir la distancia de Hamming. Luego, estos bloques de n bits se transmiten a la computadora receptora.
Pensar en la codificación en bloque es más simple cuando se compara con dos personas que tienen una conversación. Cuando se habla en una habitación ruidosa o se grita a larga distancia, hay más espacio para errores en lo que escucha la persona que lo recibe. Si la oración es larga, la persona puede corregir más errores al tomar toda la oración en contexto, pero las oraciones cortas tienen una tasa de error más alta porque es más difícil descifrar lo que la persona dice.
Como ejemplo, si una persona grita "Gato rojo" y la otra persona escucha "Gato alimentado", interrumpen la oración incorrectamente. Sin embargo, si la primera persona dijo: "Tengo un gato de color rojo" y la segunda persona escuchó: "Tengo un gato de color alimentado", el contexto de la oración hace que sea fácil determinar que la persona realmente dijo "rojo" y no "alimentado". Este es el principio básico detrás de la codificación de bloques y el uso de códigos más largos y uniformes para ayudar a las computadoras a traducir con precisión un bloque de información.