SCRAMBLER Y DESCRAMBLER
 

1.- Introducción.

Un aspecto importante a considerar en las comunicaciones de datos consiste en asegurar que las señales transmitidas exhiban un comportamiento estadístico razonable y en particular, evitar la aparición de largas cadenas de un mismo símbolo o la repetición periódica de ciertas secuencias. Estas situaciones podrían ocurrir durante pausas temporales en una comunicación o simplemente debido al predominio de algunos símbolos en una secuencia del mensaje, lo que puede ocasionar principalmente dos tipos de problemas:

Para evitar estas consecuencias no deseadas se introduce un bloque denominado scrambler o aleatorizador, previo a los correspondientes de codificación y decodificación, así como el bloque inverso de desaleatorización o descrambler, situado tras los módulos de demodulación o decodificación.
 
 

2.- Scramblers autosincronizables.

Este tipo de scramblers se basa en la idea de la codificación diferencial. Está constituido por un registro de desplazamiento con el número de elementos de almacenamiento apropiado, de modo que a mayor número de elementos el efecto del scrambler será mejor en nuestro propósito de conseguir secuencias binarias pseudo-aleatorias o PRBS (pseudo-random binary sequences). El proceso de aleatorización puede tratar no sólo con cadenas de todo 1's o todo 0's sino también con secuencias repetitivas.

En la fig. 1 se presenta el diagrama de bloques de un scrambler típico de n etapas.
 


Su funcionamiento es muy sencillo y consiste en que la salida del scrambler se introduce en el registro de desplazamiento de n etapas de tal manera que se mantiene una copia de los n símbolos codificados anteriores al actual. Desde la etapa m del registro de desplazamiento se extrae el bit correspondiente y se realiza la operación XOR con la entrada, dando lugar a la salida del scrambler. Así, la codificación de cada bit de entrada a un 1 ó un 0 depende del valor del bit de entrada y de las realimentaciones. Es decir, la codificación de un bit depende de la codificación de los bits anteriores.

El funcionamiento del descrambler es prácticamente idéntico, salvo que en este caso el registro de desplazamiento se alimenta directamente de la entrada. Su correspondiente esquema de bloques se presenta a continuación (fig. 2).



 

Si se analiza con un poco de detalle el funcionamiento del sistema scrambler-descrambler se puede concluir que, para cada secuencia de bits, existen unos valores de inicialización de los registros para los cuales el efecto de aleatorización no es el buscado. En dicha situación se produce el fenómeno de lock-up o bloqueo. Podemos verlo más claramente tomando como ejemplo un scrambler de dos etapas (fig. 3), en el cual las salidas de los dos registros tienen como misión la de realimentación.
 



 En la siguiente tabla (tabla 1) se observan algunas secuencias para las que se produce el lock-up.


Tabla 1.- Ejemplo de aleatorización para un scrambler de dos etapas


 

Para la secuencia de todo 0's, inicializando los registros a 0 se produce dicho fenómeno: no se ha aleatorizado la salida. De manera análoga ocurre con la secuencia de todo 1's, inicializando ambos registros a 1 y en la tercera secuencia si inicilizamos a 01.

Se puede comprobar que la salida es una secuencia que se repite cada 2n - 1 bits. El hecho de aumentar el número de etapas del scrambler, y con ello la complejidad del mismo, aumenta el grado de aleatorización de la secuencia de salida, además de incrementarse el periodo de la salida, si la entrada es repetitiva.

Un scrambler de 7 etapas con realimentación en el 6º y 7º registro responde a una entrada de todo 0's con la secuencia de bits siguiente (PRBS; 27 - 1 bits):
 

0100000110000101000111100100010110011101010011111010000111000100
101101101011011110110001101001011101110011001010101111111000001


El patrón de 0's y 1's de esta secuencia apenas presenta una componente continua nula, de modo tal que se consigue:


Normalización de los scramblers.

Las especificaciones del CCITT describen los scramblers mediante polinomios de la forma (caso del scrambler de dos realimentaciones y longitud n): 1 + x - n + x - m, donde n y m son los registros que realimentan a la puerta XOR. Los exponentes también se pueden tomar como positivos, sin ser esto más que una cuestión de notación.

Por tanto, cuando todos los registros se inicialicen a 0, la operación realizada por el scrambler consistirá en una simple división de polinomios: el dividendo será el mensaje deseado, el divisor el propio polinomio del scrambler y el mensaje enviado (salida del scrambler) el cociente de dicha división.
 

Sincronización.

Tanto el scrambler como el descrambler se basan en una realimentación a partir de registros, sincronizándose ambos automáticamente. Sin embargo hay que tener en cuenta que para un scrambler, en general de n etapas, habrá que introducir previamente n símbolos con el fin de llenar todos los registros con entradas.
 

Propagación del error.

Para un scrambler con dos realimentaciones, un único error en los datos codificados daría lugar a tres errores en la salida, de ahí que el proceso de aleatorización tenga un error que se propaga, de factor 3.

Lo anterior se puede explicar considerando el efecto de un único error que llega al descrambler. En la primera llegada al descrambler, un símbolo erróneo proporciona una entrada errónea a la XOR de la salida, dando lugar al error. Dicho símbolo entra en el registro de desplazamiento y se va trasladando de etapa en etapa, causando un error en la realimentación y dando lugar, a su vez, a un nuevo error. Si el número de realimentaciones es de tres, el número tal de errores será de 3.
 
 

3.- Módem de Packet Radio a 9600 baudios.

Nuestro módem emplea el tipo de scramblers autosincronizables, con un polinomio de la forma: 1 + x 12 + x 17. Esto es, utiliza un registro de desplazamiento de 17 etapas, con realimentación en las etapas 12 y 17. Esto se realiza mediante dos circuitos integrados (CI) 74164 (registros de desplazamiento de 8 bits) y un flip-flop tipo D. El circuito del scrambler consistiría en el que se presenta en la fig. 4:
 


Fig. 4.- Scrambler del modem de Packet Radio


y análogamente para el descrambler, según lo comentado anteriormente.

En el esquema no se ha representado la salida debido a que ésta se va a generar a partir de los últimos 8 bits, con la posibilidad de hacerlo a partir de los 12 últimos, según la posición de unos jumpers dispuestos para tal efecto. Se introducen las salidas de los 8 (ó 12) primeros flip-flops en una memoria EPROM en los pines correspondientes a las direcciones A[0..13], de modo que la salida del primer CI 74164 va al pin 2 de la EPROM y de ahí en adelante, conectándose los jumpers del segundo registro de desplazamiento para tener acceso a las direcciones A[10..13]. Las direcciones A[0..1] provienen de los MSB's (bits más significativos o most significant bits) del CI 74161 (contador de 4 bits).

La EPROM constituye un filtro FIR (finite impulse response, respuesta impulsional finita) que, mediante los bits de datos anteriores al actual, junto con 2 bits más provenientes del generador de sincronismo, forma una palabra de dirección que generará la señal incluida en esa dirección. Esta palabra pasará a través de un convertidor digital-analógico y de éste a otros filtros (anti-aliasing) antes de salir al exterior.