González C. Y. Venuska
Mezoa R. Mariangela
Resumen
Este módulo contiene información acerca del bloque de codificación de canal de un sistema de comunicaciones digitales, específicamente la codificación por bloque (Código Hamming) y la codificación convolucional para la detección y corrección de errores.
Cuando transmitimos información, uno de los objetivos principales es el de minimizar la cantidad de errores que pudieran producirse en el proceso. Esta transmisión depende del factor Señal a Ruido (S/N), potencia y velocidad de transmisión. Si optimizando estas variables se necesita aún mejorar la calidad de la transmisión, entonces se deben buscar ciertos métodos que aseguren y mejoren la fiabilidad. Es a partir de aquí que surge el concepto de la codificación para control de errores.
La codificación de canal para el control de errores se encarga, básicamente, de la adición de dígitos extra al mensaje a transmitir. Ellos no poseen información como tal, pero hacen posible la detección y corrección de errores en el bloque de recepción del mensaje.
Detección y Corrección de Errores:
En un sistema de comunicaciones, detectar un error es más sencillo que corregirlo. Si existen irregularidades, el receptor puede pedir una retransmisión del mensaje que contiene el error (ARQ: Automatic Repeat Request). Sin embargo, cuando el sistema no implementa esta técnica por no ser práctico o simplemente porque no es posible, debe aplicar redundancia en el código a través del método FEC (Forward Error Correction).
El método más sencillo de redundancia en el código consiste en repetir n veces el símbolo de mensaje. Cuando los símbolos son 1 y 0, cualquier error de transmisión en una palabra código recibida alterará el patrón de repetición cambiando un 1 a 0 (o viceversa). Si los errores de transmisión ocurren de forma aleatoria (e independiente) con probabilidad Pe, entonces se pudiera definir la probabilidad de que ocurran i errores en una palabra código de n bits como:
![]() |
Por ejemplo, si se considera un código de repetición triple (3, 1) (1 bit de mensaje, dos bits de repetición, palabra código de tres bits), las palabras código serían 000 y 111. Cualquier mensaje recibido que no coincida con estas palabras código evidencian la presencia de errores. Pero, si los tres bits están errados (Se transmite 000 pero se recibe 111) entonces será imposible detectar el error:
![]() |
Si se quiere corregir el error, asumimos que al menos dos de los tres bits son correctos. Entonces, 001 se decodifica como 000 y 101 se decodifica como 111. Esto corrige palabras con un solo error, pero para dos o tres errores la probabilidad de que una palabra esté errada resulta como:
Distancia Hamming
Una palabra código de n bits puede ser representarse como un vector en un espacio de n dimensiones. Por ejemplo, el código 010 puede representarse como X=( 0 1 0 ). Tomemos el caso anterior de código de repetición (3, 1):
![]() |
En total se grafican las 8 posibles combinaciones de palabras código y los puntos azules representan el código de repetición. La distancia que separa dos puntos cualesquiera se reconoce como la distancia Hamming, que está relacionada con el poder de control de errores del código (Fortaleza del código) y se define como el número de elementos diferentes entre dos puntos. Por ejemplo:
![]() |
La distancia mínima de un código en particular es la distancia Hamming más pequeña entre dos vectores de código válidos. De esta forma, la detección de errores es posible siempre que se cumpla que el número de errores de transmisión en una palabra código sea menor a dmín, por lo que la palabra errada no es un vector válido. Si es mayor o igual, la palabra errada puede corresponder a un vector válido y el error no podría ser detectado.
La capacidad de corrección y detección de un código se define como:
![]() |
Para el ejemplo desarrollado, dmín= 3, por lo que el código de repetición es capaz de corregir hasta 1 error por palabra y detectar hasta 2 errores. Evidentemente, la fortaleza del código depende del número de bits que se le agregan al mensaje original. La distancia mínima de una codificación por bloque (repetición) se define como:
![]() |
Codificación FEC
Un sistema FEC puede expresarse gráficamente como:
![]() |
Los bits de entrada llegan con una tasa de rb. El codificador toma bloques de k bits del mensaje y construye un código de bloques (n, k) con tasa Rc=k/n<1. La tasa de bits del canal será r= rb/ Rc> rb. La probabilidad de error tomará un valor de Pe<<1, que evidentemente dependerá de la energía de la señal y la densidad de potencia del ruido en el receptor (0). Si Eb representa la energía promedio por bit de mensaje, entonces la energía promedio por bit de código es Rc.Eb. Entonces:
![]() |


































