# Codificación bipolar

La codificación bipolar es una codificación de tres niveles como las codificaciones BHDn, es decir, que los valores utilizados para codificar la señal compuesta de 0 y 1 variarán entre”–a”, “0” y “a”. Es utilizado en las redes informáticas, para inyectar sobre el medio físico (capa 1 del modelo OSI) los valores lógicos correspondientes al flujo de entrada.

## Codificación bipolar simple
### Regla de codificación

| Valores a codificar | Valores transmitidos |
| 0 lógico | 0 |
| 1 lógico | el inverso del valor transmitidos al 1 anterior. |

### Ejemplo

Los niveles son -a,0,+a
Codificación bipolar simple :
| | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| Secuencia | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 1 |
| Codificación | a | -a | 0 | a | 0 | 0 | 0 | 0 | -a | a |

## Codificación bipolar de orden 2
### Regla de codificación

| Valores a codificar | Valores transmitidos |
| 0 lógico | 0 |
| 1 lógico | El inverso del valor transmitido al 1 anterior de igual paridad al más cercano. |

### Ejemplo

Los niveles son -a,0,+a
Codificación bipolar de orden 2 :
| | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| Secuencia | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 1 |
| Codificación | a | -a | 0 | a | 0 | 0 | 0 | 0 | a | -a |

## Características

Las grandes ventajas de la codificación bipolar son:
* Espectro estrecho.
* En consecuencia, la señal codificada es tan fácilmente modulable sobre un portador de base, soportará un rendimiento importante sobre un soporte de transmisión de frecuencias bajas.
Los grandes inconvenientes de la codificación bipolar son:
* Problemas de decodificación durante largas secuencias de 0.
** Pero este problema está resuelto por la codificación regular de bits adicionales de manera a mantener la sincronización: cuanto más frecuentes son esos bits, más fácil será mantener la sincronización.
** Con la cualidad de precisión de los relojes actuales (y las aplicaciones prácticas de esta codificación que emplearán señales de frecuencia predeterminadas en canales conocidos y normalizados), y gracias al hecho de una utilización de banda estrecha, es fácil mantener la sincronización para cadenas bastantes largas de ceros y nos satisfacemos a menudo de un bit de sincronización a 1 todas los 16 o 64 bits, o de sincronización de secuencias de sincronización en cabeza de trama más larga.
* La decodificación bipolar es menos estable alrededor del códec central (codificado 0 y -a 0 +a) pero las transmisiones de largas distancias, pues la señal tiende a ser transmitida de manera diferencial (solo se detectan bien las transmisiones que sufren también un desfase y la amplitud de una transmisión de +a hacia 0 o de +a hacia –a es más difícilmente distinguible, lo que hace difícil la sincronización entre las secuencias, como las de 3 posiciones(+a,0 a) codificando 1 a 1 y las de 2 posiciones (+a ,a) codificando 11, lo que privilegia las posiciones –a y +a (es decir, la detección de bits 1) en detrimento de las posiciones 0, especialmente si los componentes continuos son importantes (largas cadenas de 0 sin trasmisión). Para paliar el problema, no es suficiente insertar 1; también hay que insertar algunos 0.
** Una secuencia FCS 01100110,codificada (0,+a,-a,0,0,+a,-a,0) y recibida diferencialmente como (¿,+,--,+,0,+,--,+), colocado en cabeza de trama conviene bien para ese uso, pero la dificultad es de bien sintonizada el umbral de detección de componentes continuos (para establecer el centro de la señal diferencial codificando el a), y a calibrar la relación señal/ruido a fines de determinar los umbrales de distinción de la señales diferenciales de alta o baja amplitud (lo que necesita codificar suficientes bits a 1 para determinar el nivel de máxima amplitud).
** Pero en la práctica se procede por la transformación de Fourier de la señal, las transmisiones importantes (-a hacia +a o +a hacia –a) habiendo generado una señal diferencial importante a las frecuencias f y 2f pero nula a la frecuencia f/2, al contrario de las transmisiones incluyendo un 0 (del cual, la componente diferencial a la frecuencia 2f es sin valor).