📡 Códigos Polares — Capacidad de Canal
Los códigos polares (Arıkan 2009) alcanzan la capacidad de Shannon para canales simétricos de entrada binaria. Polarización de canal: G_N = F^⊗n recursivo combina canales sintéticos débiles y fuertes. Decodificador de cancelación sucesiva.
Cómo Funciona
Los códigos polares aplican el núcleo de Arıkan de forma recursiva: G_N = F^⊗n donde F=[[1,0],[1,1]]. Esto crea N canales de bit sintéticos a partir de N copias del canal físico W. Cuando N→∞, la capacidad I(W_N^(i)) de cada canal sintético se polariza hacia 0 o hacia 1. La fracción con capacidad →1 es igual a I(W), la capacidad del canal físico.
Los bits congelados ocupan los K peores canales sintéticos (capacidad más baja/ruido más alto). Los bits de información ocupan los K mejores. El decodificador de cancelación sucesiva procesa los bits de izquierda a derecha, usando la estructura de mariposa de LLR.
Preguntas Frecuentes
¿Qué son los códigos polares?
Los códigos polares, inventados por Erdal Arıkan en 2009, son los primeros códigos con demostración matemática de que alcanzan la capacidad para canales simétricos de entrada binaria. Aprovechan la polarización de canal para crear una mezcla de canales sintéticos casi perfectos y casi inútiles.
¿Qué es la polarización de canal?
La polarización de canal es el fenómeno por el cual combinar N copias de un canal de forma recursiva produce N canales sintéticos que se polarizan: algunos tienen una capacidad cercana a 1 (fiables) y otros cercana a 0 (ruidosos). A medida que N crece, la fracción con capacidad cercana a 1 se aproxima a la capacidad del canal original.
¿Cuál es la matriz de construcción de los códigos polares?
La matriz generadora es G_N = F^⊗n donde F = [[1,0],[1,1]] es el núcleo y ⊗n denota la n-ésima potencia de Kronecker (N=2^n). La palabra código codificada es x = u·G_N, donde u es la palabra de entrada con los bits congelados fijados en 0.
¿Qué son los bits congelados?
Los bits congelados son posiciones de entrada asignadas a los canales sintéticos peores (más ruidosos). Se fijan en valores conocidos (normalmente 0) en el codificador y el decodificador los usa como información lateral. Los bits de información ocupan los mejores canales sintéticos.
¿Cómo funciona la decodificación por cancelación sucesiva?
La decodificación por cancelación sucesiva (SC) estima los bits uno por uno, de u_1 a u_N. En cada paso, el decodificador usa los bits ya decodificados y los LLR del canal para calcular la razón de verosimilitud del bit actual, y después toma una decisión firme (o fuerza a 0 un bit congelado).
¿Cuál es la BER de los códigos polares frente a LDPC?
En longitudes de bloque cortas, los códigos polares con decodificación SC tienen una BER ligeramente peor que los LDPC o los códigos turbo. La decodificación SCL con CRC mejora significativamente el rendimiento, igualando o superando a LDPC en longitudes de bloque moderadas.
¿Dónde se usan los códigos polares en la práctica?
Los códigos polares se usan en 5G NR (New Radio) para el canal de control (PBCH, PDCCH, PUCCH). Fueron estandarizados por el 3GPP en la Release 15 (2017), convirtiéndose en los primeros códigos que alcanzan la capacidad adoptados en un estándar inalámbrico comercial.
¿Cuál es la fórmula de capacidad del canal AWGN?
La capacidad del canal AWGN es C = (1/2)log₂(1 + SNR) bits por uso del canal. Para BPSK con varianza de ruido σ², SNR = E_s/N_0 = 1/(2σ²).
¿Qué es la tasa de polarización?
La tasa de polarización describe la rapidez con la que las capacidades de los canales sintéticos convergen hacia 0 o 1. Para el núcleo F estándar, el exponente es E = 0,5. Núcleos mejores pueden alcanzar exponentes más altos, mejorando el rendimiento a longitud finita.
¿Qué es la decodificación SCL?
La decodificación por Lista de Cancelación Sucesiva (SCL) mantiene simultáneamente una lista de L trayectorias candidatas de palabra código. Un código externo CRC selecciona el candidato correcto de la lista, mejorando drásticamente la BER a costa de una complejidad O(L·N log N).
Acerca de esta simulación
Esta simulación aplica de forma recursiva el paso de polarización de Arıkan a N=2ⁿ canales sintéticos, mostrando cómo un único canal ruidoso se divide en una mezcla de copias casi perfectas y casi inútiles, y después asigna las K mejores para transportar bits de información, congelando el resto a cero. Alterna entre el gráfico de barras de polarización, un barrido en vivo de BER frente a SNR y el diagrama de mariposa que muestra exactamente cómo la estructura de combinación recursiva conecta los bits de entrada con la palabra código transmitida.
🔬 Qué muestra
Un gráfico de barras de las capacidades de los canales sintéticos, con barras brillantes marcando las posiciones de bits de información y barras tenues marcando los bits congelados, una línea de referencia discontinua del límite de Shannon, una curva animada de BER frente a Eb/N0 y un diagrama de mariposa de la red de combinación recursiva.
🎮 Cómo usarlo
Ajusta el exponente de longitud de bloque n (que da N=2ⁿ), la tasa de código R y Eb/N0 con los controles deslizantes, cambia el menú desplegable de Vista entre Polarización de Canal, Curva BER y Diagrama de Mariposa, pulsa Simular para recalcular, y Ejecutar BER para animar un barrido completo de BER a través de valores de SNR.
💡 ¿Sabías que...?
Los códigos polares fueron los primeros códigos demostrados matemáticamente para alcanzar la capacidad de Shannon a medida que N crece — y apenas ocho años después del artículo de Arıkan de 2009, fueron adoptados por el 3GPP para la codificación del canal de control de 5G NR, convirtiéndose en una de las historias de teoría a despliegue más rápidas de la historia de la teoría de códigos.
Preguntas frecuentes
¿Por qué solo algunas barras del gráfico de polarización alcanzan casi la capacidad 1?
Cada paso de polarización divide un canal en una copia "peor" (W⁻, más propensa al borrado) y una copia "mejor" (W⁺, menos propensa al borrado) mediante la regla recursiva de combinar y dividir — tras n pasos, esta división repetida empuja a la mayoría de los canales sintéticos hacia una capacidad ≈1 o ≈0, que es exactamente el efecto de polarización que visualiza la altura de las barras.
¿Cómo decide la simulación qué posiciones de bit están congeladas?
Ordena los N canales sintéticos por capacidad y asigna los K mejores (según la tasa de código R×N elegida) como canales de información, congelando el resto a 0 — esta es precisamente la regla de construcción de los códigos polares, y subir el control de tasa de código desplaza visiblemente más barras de tenue (congelado) a brillante (información) en el gráfico.
¿Por qué aumentar Eb/N0 reduce drásticamente la curva de BER?
Un Eb/N0 más alto reduce la probabilidad de borrado equivalente que alimenta el cálculo de polarización de canal, lo que empuja a más canales sintéticos hacia la capacidad 1 y a menos hacia 0 — dado que la BER se estima como la probabilidad de error media solo sobre los canales de información, una mejor SNR subyacente significa directamente que se usan menos canales débiles para datos reales.
¿Qué representa realmente el diagrama de mariposa?
Cada etapa de conexiones rojo-a-azul representa una aplicación recursiva del núcleo de Arıkan 2×2, F=[[1,0],[1,1]], y el patrón de cruces (cada nodo emparejado con un compañero situado N/2^(etapa+1) posiciones más allá) es exactamente cómo se combinan aditivamente (mod 2) los bits de entrada u para producir la palabra código final x — esta es la misma estructura que implementa en hardware un codificador polar real.
¿Por qué aumentar la longitud de bloque n cambia la nitidez del patrón de polarización?
Cada paso adicional de polarización duplica el número de canales sintéticos y aplica de nuevo la regla de división a cada canal existente, así que más recursión empuja las capacidades aún más hacia los extremos de 0 y 1 — un n mayor produce por tanto un gráfico de barras más marcadamente bimodal, que es el mecanismo teórico detrás de la garantía de los códigos polares de alcanzar la capacidad cuando N→∞.
Los códigos polares (Arıkan 2009) alcanzan la capacidad de Shannon para canales simétricos de entrada binaria. Polarización de canal: G_N = F^⊗n recursivo combina canales sintéticos débiles y fuertes. Decodificador de cancelación sucesiva.
3D · Renderizador Three.js / WebGL · Objetivo 60 FPS · se ejecuta enteramente en el cliente, sin instalación