¿Qué es la codificación de bloques?

Como 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ódigos que se utilizan comúnmente en FEC. Estos tipos de código permiten que un mensaje se envíe a través de una conexión poco confiable y aún así sea descifrable cuando llegue.

El uso de la codificación de bloques es necesario debido al ruido que se produce cuando se envía un mensaje. Cuando los datos deben viajar una gran distancia o por 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 la cantidad 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 represente una información legítima, pero incorrecta.

Por ejemplo, si un remitente que usa 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 de tres. Los códigos pueden ser 000, 010 y 011. Si un error provoca el cambio de un dígito, como el cambio de 000 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 se necesita cambiar un dígito 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 a los n bits correspondientes, que son códigos que se han seleccionado para representar códigos más largos para cada k bit. Se agregan unos o ceros para hacer que las brocas 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 de bloques 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 recibe. Si la oración es larga, la persona puede corregir más errores tomando la oración completa en contexto, pero las oraciones cortas tienen una mayor tasa de error porque es más difícil descifrar lo que dice la persona.

Por ejemplo, si una persona grita «Gato rojo» y la otra persona escucha «Gato alimentado», interrumpen la oración de forma incorrecta. 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 la persona que 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 uniformes más largos para ayudar a las computadoras a traducir con precisión un bloque de información.