Cualquier mensaje o dato que transmitimos a través de un canal de comunicación pasa por un proceso de codificación en el que el mensaje se transforma con un código concreto. Los códigos a usar son múltiples y, dependiendo de la aplicación, se suele utilizar uno u otro atendiendo al tipo de datos a transmitir o el canal de comunicación a utilizar. Normalmente, cuando se envía una trama de datos codificada, ésta suele contener un fragmento destinado al control de errores, por ejemplo, para detectar que los datos recibidos han sufrido alguna alteración que hace imposible su recuperación (un nivel de señal excesivamente bajo que no hace discriminar entre un 1 y un 0 binario).

Existen codificaciones que, gracias a estos mecanismos de control, permiten a los dispositivos receptores incluso reconstruir la señal (dentro de un umbral determinado) pero, cuando no es posible la reconstrucción, es necesario volver a transmitir los datos, bajando el throughput de la comunicación. Pensando en aprovechar al máximo la velocidad de transmisión que ofrece una transmisión inalámbrica, un equipo formado por el MIT, Google y la Universidad de Tel Aviv (Israel) ha desarrollado un mecanismo de codificación robusta que sería capaz de ofrecer la máxima velocidad de transmisión admisible por un canal de comunicación, incluso, en presencia de ruido puesto que adaptaría la transmisión al ruido existente en el canal.

Uno de los problemas de los códigos robustos es que, desgraciadamente, suelen "recargar" el conjunto de datos a utilizar porque requieren de la transmisión de muchos más símbolos de redundancia y, al final, para la transmisión de un mensaje de un tamaño determinado de bits, los bits a transmitir realmente resultan ser muchos más que los del mensaje (aumentando el tiempo necesario para la transmisión del mensaje). Por tanto, en términos generales, la situación ideal es la de encontrar la máxima eficiencia y penalizar lo menos posible la cantidad de bits a transmitir, adaptando la redundancia necesaria al nivel de ruido presente en el canal. Muchos dispositivos inalámbricos, como los smartphones, suelen enviar mensajes de prueba que se utilizan para estimar el nivel de ruido del canal y, por tanto, ajustar la potencia de emisión y la codificación a utilizar pero, dado que el usuario puede moverse, las estimaciones pueden dejar de tener validez en un plazo muy corto de tiempo.

Ante esta problemática, el profesor Gregory Wornell del Departamento de Ingeniería Electrónica y Ciencias de la Computación del MIT, Uri Erez de la Universidad de Tel Aviv y Mitchell Trott de Google idearon un nuevo esquema de codificación que han patentado y que, según describen, permite optimizar las comunicaciones y obtener la mayor tasa de transmisión posible.

La idea es transmitir paquetes de símbolos con una codificación que proteja los datos (y permita su reconstrucción) ajustando la protección a las condiciones del canal de comunicación y sin tener que volver a retransmitir los datos ya enviados. De esa forma, el transmisor enviará un paquete de datos "suponiendo" que no hay ruido, si no se recibe respuesta, enviará otro paquete de datos "estimando" un umbral de ruido determinado y así sucesivamente hasta que el receptor cuente con información suficiente que le permita decodificar la señal y responder con un comando que permita finalizar la comunicación. Según los responsables de este método, se puede demostrar matemáticamente que la comunicación alcanza un punto en el que se envía la palabra más corta posible que se adapta a las condiciones de ruido del canal momento en el que la comunicación puede fluir a velocidad máxima.

La clave está en que el mensaje a transmitir se divide en varias partes y, cada una de ellas, se codifican con un código corrector de errores (los códigos de Gallager por ejemplo), se multiplican cada uno de los fragmentos codificados y se suman los resultados, generando el primer mensaje a enviar. Los siguientes mensajes se obtienen multiplicando estas palabras resultantes por otros números y así se van generando los mensajes a enviar.

Lógicamente, el receptor debe conocer los números que se usaron para multiplicar los mensajes codificados además del número de fragmentos del mensaje que, cuando es elevado, eleva la complejidad del receptor y el número de cálculos a realizar a la hora de decodificar el mensaje.

La idea, desde luego, es bastante curiosa pero, quizás, sea complicada de llevar a la práctica porque en un canal muy cambiante, se podría emplear demasiado tiempo en el ajuste de las estimaciones.

Imagen: Scenic Reflections

Recibe cada mañana nuestra newsletter. Una guía para entender lo que importa en relación con la tecnología, la ciencia y la cultura digital.

Procesando...
¡Listo! Ya estás suscrito

También en Hipertextual: