FEC (Corrección de errores hacia adelante): definición y funcionamiento
Descubre qué es FEC y cómo funciona la corrección de errores hacia delante: redundancia, detección y corrección en telecomunicaciones para transmisiones más fiables.
En telecomunicaciones, la corrección de errores hacia delante (FEC) es un código especial para la detección y corrección de errores. El emisor vuelve a añadir partes de los datos. Esto se llama redundancia. El receptor es entonces capaz de detectar ciertos errores que provienen del envío de los datos. En ciertos casos, el receptor puede corregir el error, sin necesidad de una retransmisión.
¿Qué es la FEC y para qué sirve?
La corrección de errores hacia delante (FEC) es una técnica mediante la cual el emisor añade información redundante a los datos originales para que el receptor pueda detectar y, en muchos casos, corregir errores introducidos por el canal de transmisión sin pedir una nueva copia. Esto reduce la necesidad de retransmisiones y es especialmente útil cuando las retransmisiones son costosas o imposibles (por ejemplo, transmisiones por satélite, difusión en vivo, o enlaces con alta latencia).
Cómo funciona (explicación simple)
- El codificador toma k bits de datos útiles y genera n bits transmitidos añadiendo (n − k) bits de redundancia.
- El código resultante se envía por el canal; el ruido puede alterar algunos bits.
- El receptor usa un decodificador que analiza la palabra recibida y, con la información redundante, detecta y corrige errores según la capacidad del código.
La tasa de código o code rate se expresa como R = k/n. Un R menor implica más redundancia (mayor protección) y mayor sobrecarga.
Tipos de códigos FEC
- Códigos de bloque: como Hamming y Reed–Solomon. Operan sobre bloques fijos de bits. Reed–Solomon es muy usado en almacenamiento, CD/DVD, y comunicaciones por satélite porque corrige errores por ráfaga.
- Códigos convolucionales: procesan secuencias de bits y se suelen decodificar con el algoritmo de Viterbi. Comunes en comunicaciones inalámbricas y en concatenación con otros códigos.
- Códigos Turbo: combinan dos o más codificadores convolucionales con intercalado y alcanzan rendimiento cercano al límite de Shannon para ciertos escenarios.
- Códigos LDPC (Low-Density Parity-Check): códigos de baja densidad de paridad que ofrecen muy buen rendimiento y se implementan en Wi‑Fi, DVB‑S2, 5G y otras normas modernas.
- Códigos polares: códigos de canal con propiedades teóricas muy buenas; utilizados en partes de la especificación 5G.
Decodificación: decisiones duras vs suaves
- Decodificación de decisión dura: el receptor toma decisiones binarias (0/1) y el decodificador trabaja con esos bits; es más simple pero menos eficiente.
- Decodificación de decisión suave: el receptor usa información de confiabilidad (por ejemplo, valores de probabilidad o log‑likelihood) que mejora significativamente la capacidad de corrección a costa de mayor complejidad computacional.
Métricas y comportamiento
- BER (Bit Error Rate) y FER (Frame Error Rate): se usan para medir la calidad antes y después de aplicar FEC.
- Ganancia de codificación: reducción de Eb/N0 necesaria para alcanzar un BER dado respecto a la transmisión sin codificar.
- Sobrecarga (overhead): porcentaje adicional de bits transmitidos = (n − k)/k.
- Latencia y complejidad: códigos más potentes (Turbo, LDPC) suelen requerir mayor complejidad de decodificación y latencia mayor.
Protección frente a distintos tipos de errores
Algunos canales introducen errores aislados (dispersos), otros producen errores por ráfaga. Técnicas complementarias:
- Intercalado: reorganiza los bits antes de codificarlos para convertir ráfagas en errores dispersos, mejorando la eficacia de ciertos códigos.
- Puncturing: se eliminan bits de la redundancia para aumentar la tasa de código sin cambiar el codificador; útil para ajustar la tasa según condiciones del canal.
FEC frente a ARQ (retransmisión)
La FEC y las técnicas ARQ (Automatic Repeat reQuest) se complementan. ARQ solicita retransmisiones cuando se detecta un error y suele usarse cuando hay un canal de retorno y la latencia lo permite. FEC evita retransmisiones añadiendo redundancia, por lo que es preferible cuando la latencia es alta o la retransmisión es costosa. En muchos sistemas se usan combinaciones híbridas (Hybrid ARQ) que combinan FEC y ARQ para optimizar rendimiento y eficiencia.
Aplicaciones típicas
- Enlaces satelitales y de radiodifusión (DVB, satélite TV).
- Comunicaciones móviles y Wi‑Fi (LDPC, Turbo, polar en 5G).
- Almacenamiento y CDs/DVDs (Reed–Solomon).
- Fibra óptica y sistemas de transmisión de alta velocidad.
- Sistemas embebidos y comunicaciones espaciales donde las retransmisiones son inviables.
Ventajas y desventajas
- Ventajas: reduce retransmisiones, mejora la fiabilidad del enlace, permite comunicaciones en canales ruidosos.
- Desventajas: añade sobrecarga (mayor uso de ancho de banda), complejidad computacional y posible latencia adicional.
Consejos para elegir un esquema FEC
- Determinar la tolerancia a la latencia y la disponibilidad de recursos de procesamiento.
- Evaluar el tipo de errores del canal (aislados vs ráfagas) y considerar intercalado si hay ráfagas.
- Seleccionar la tasa de código adecuada (R) según el compromiso entre fiabilidad y ancho de banda.
- Para implementaciones modernas y alto rendimiento, considerar LDPC o códigos polar; para entornos con ráfagas, Reed–Solomon sigue siendo una opción robusta.
Resumen
La FEC es una técnica esencial en telecomunicaciones que añade redundancia a los datos para detectar y corregir errores sin necesidad de retransmisiones. Existen múltiples familias de códigos (bloque, convolucionales, Turbo, LDPC, polares), cada una con sus ventajas y costes en complejidad, latencia y ancho de banda. La elección adecuada depende del canal, la aplicación y las restricciones del sistema.
Cómo funciona
La FEC añade redundancia a la información transmitida con un algoritmo conocido. Cada bit redundante es una función de muchos bits de información original. La información original puede aparecer o no en la salida codificada; los códigos que incluyen la entrada no modificada en la salida son sistemáticos, mientras que los que no lo hacen son no sistemáticos.
Un ejemplo extremadamente sencillo sería un convertidor analógico-digital que muestre tres bits de datos de intensidad de señal por cada bit de datos transmitidos. Si las tres muestras son mayoritariamente cero, el bit transmitido era probablemente un cero, y si las tres muestras son mayoritariamente uno, el bit transmitido era probablemente un uno. El ejemplo más sencillo de corrección de errores es que el receptor asuma que la salida correcta viene dada por el valor más frecuente de cada grupo de tres.
| Triplete recibido | Interpretado como |
| 000 | 0 |
| 001 | 0 |
| 010 | 0 |
| 100 | 0 |
| 111 | 1 |
| 110 | 1 |
| 101 | 1 |
| 011 | 1 |
Esto permite corregir un error en cualquiera de las tres muestras mediante la "votación democrática", pero es un FEC muy ineficiente. En la práctica no funcionaría muy bien, pero ilustra el principio. En la práctica, los códigos FEC suelen examinar las últimas docenas, o incluso los últimos cientos, de bits recibidos previamente para determinar cómo descodificar el pequeño puñado de bits actual (normalmente en grupos de 2 a 8 bits).
Esta triple redundancia modular, la forma más sencilla de corrección de errores hacia adelante, se utiliza ampliamente.
Buscar dentro de la enciclopedia