CIRCUITOS PSEUDO ALEATORIOS

El ruido es normalmente el chico malo con el sombrero negro en la mayoría de los sistemas electrónicos. Es algo que queremos eliminar o al menos minimizar todo lo que podamos

DESARROLLO

Pero no siempre es así. El ruido puede ser útil a veces. Útil si queremos generar secuencias de tonos aleatorios en música electrónica. Útil si queremos emplear parte de él como un código de seguridad. Útil para probar sistemas complejos de comunicaciones en donde todo tipo de señal puede estar presente. Útil en criptografía para la generación y transmisión de códigos secretos. Y útil para una forma elaborada de comunicación llamada correlación, práctica en donde usted usa ruido del muchacho con sombrero blanco para extraer alguna señal o información que se encuentra profundamente enterrada en el ruido del muchacho malo, que normalmente no podemos controlar.

El truco es conseguir ruido que se repite. El ruido que parece aleatorio, pero que se repite en una manera predecible. Créase o no, esto es muy fácil de conseguir y no se necesita nada más que algunos integrados TTL o de alguna otra lógica y un amplificador operacional.

El nombre del juego es una serie de códigos que son fáciles de generar y que se llaman Secuencias Pseudos Aleatorias.

¿Cómo puede repetirse el ruido? Lo que hacemos es generar una secuencia larga y complicada de unos y ceros digitales. Si la secuencia es larga, la variación en el corto tiempo parece ser completamente aleatoria e impredecible y tiene esencialmente la misma potencia y las propiedades de distribución estadística que el ruido aleatorio “real”. Ahora bien, la idea es que sobre la longitud de la secuencia larga, el mismo “ruido” se genera una y otra vez. De modo que en el corto plazo la señal se parece al ruido. En el largo plazo, usted hace que la misma señal se genere una y otra vez. Se escoge un término corto que satisfaga al sistema que necesita el ruido o una secuencia aleatoria de entradas. Se toma al circuito largo para coincidir con el circuito y su experimento.

Por ejemplo, veremos luego que si tenemos un registro de desplazamiento de 16 etapas y conectado correctamente, podemos generar con facilidad una secuencia de máxima longitud de 65535 bits de longitud. Ahora bien, si tomamos 500 o 1000 o aún 5000 bits del medio de la secuencia, con seguridad que se semeja al ruido. Es materia fácil convertirla a un nivel analógico pasándolo por un filtro pasa bajos o integrando la secuencia. Es así que podemos ir, ya sea en forma digital o analógica.

La propiedad realmente interesante de todo esto es que podemos usar los mismos 500, 1000 ó 5000 bits una y otra vez de modo que el ruido se repite exactamente cada vez. En un osciloscopio, esto significa que se puede tener una presentación estable de eventos aleatorios. En música electrónica, significa que se puede tener la misma secuencia melódica o rítmica todas las veces que se desee. Con ruido real, habrían desaparecido para siempre. Y, en comunicaciones seguras y en circuitos de correlación, tenemos que saber que observar en el otro extremo del sistema, de modo que podamos generar una réplica exacta o una réplica retardada de aquélla con la cual comenzamos. Este proceso de comparación se llama autocorrelación y nos permite recuperar la información original.

 
TIPOS DE SECUENCIAS

La generación de secuencias larga es una tarea fácil para cualquier familia lógica, particularmente CMOS o TTL Existen varias maneras, pero la más práctica es la secuencia Pseudos aleatoria de máxima longitud. La longitud máxima resulta ser todos los posibles estados de un registro de desplazamiento serie, menos uno. Así, si tenemos un registro de 6 etapas, los estados posibles desde 000000, 000001, 000010 hasta 111110 y 111111 son 63 bits. Un registro de 7 etapas es bueno para 127 bits, uno de 8 para 255 hasta 65535 para uno de 16 etapas. Es obvio que con unas pocas etapas más podemos conseguir longitudes astronómicas. Aún con 6 etapas, la secuencia de 63 notas es más que suficiente para una secuencia melódica corta.

La Tabla 1 nos muestra la longitud de la secuencia que podemos esperar de la distinta longitud de los registros, en el supuesto de que hayamos hecho las conexiones en forma apropiada.

 
HACER QUE EL CIRCUITO TRABAJE

Pero todo lo que un registro de desplazamiento puede hacer es hacer avanzar unos y ceros. Los recibe a su entrada y los va pasando de etapa en etapa cada vez que el registro recibe los impulsos de reloj. Por ejemplo, si tenemos un registro lleno de ceros, su estado será, 000000. Conectemos un uno a su entrada y mandémosle un impulso de reloj, tendremos:

100000

con otro impulso:

110000.

Entremos ahora un cero:

011000

Ahora le enviamos cinco impulsos de reloj:

001100
000110
000011
000001
000000

Tenemos entonces, que todo registro de desplazamiento del tipo serie consiste en una especie de desfile que desplaza cosas sobre cada etapa en cada impulso de reloj. El tipo de registro de desplazamiento en particular que estamos usando es del tipo entrada serie, desplazamiento hacia la derecha, la forma más común.

Aún tenemos el problema de conseguir los unos y ceros de entrada de alguna parte. Lo hacemos con realimentación. Combinamos lógicamente la combinación adecuada de etapas de salida en un circuito apropiado para generar un nuevo uno o cero en respuesta al estado en que el registro está ahora.

La lógica para máxima longitud emplea solamente compuertas del tipo exclusive NOR y es única. Cualquier combinación lógica de salidas que comande la entrada nos dará una secuencia de alguna longitud. El problema con la mayoría de las conexiones es que generan una secuencia muy corta (hasta de un bit), y que los estados que van por el registro no tienen la propiedad aleatoria que nosotros necesitamos.

Lo que necesitamos es hallar la combinación mágica de lógica y realimentación que generará la secuencia de máxima longitud para un número dado de etapas. Esto conlleva matemáticas algo complicadas pero debe ser hecho una vez. En la Fig.1 tenemos circuitos para longitud de registros desde 2 hasta 16.

 
ALGUNOS DETALLES

Veamos cómo construir una secuencia de 63 bits. La vemos en la Fig.2. Empleamos las primeras 6 etapas de un 74164, la mitad de un 7486 que es una compuerta cuádruplo exclusive OR con dos secciones en cascada para formar una exclusive NOR, un oscilador de reloj con un 555 y la fuente de 5V.

Cada vez que el circuito recibe un pulso de reloj, avanza un turno y genera una secuencia pseudo aleatoria de 63 de sus 64 estados posibles. La frecuencia de reloj determina la velocidad de los cambios de estado, mientras que la secuencia de tiempo será 1/63 la frecuencia de reloj, mientras el circuito oscile continuamente. Podemos usar a la corriente de bits seriales, o podemos usar las palabras digitales que se ven en las salidas en paralelo. Como veremos luego, éstas son fáciles de convertir en “ruido analógico” o en niveles analógicos que varía en forma aleatoria.

Las dos exclusive OR en serie forman un circuito exclusive NOR o comparador. Si ambas entradas son iguales, tenemos un “1” como salida. Si las entradas son diferentes, la salida es un “0”. De este modo, nuestro circuito de realimentación observa a las etapas 5 y 6 para ver cómo eran antes de la llegada del próximo pulso de reloj. La salida de la exclusive NOR establece entonces cómo será la etapa 1 después del pulso, determinada por si los niveles lógicos en las etapas 5 y 6 son iguales o diferentes.

Por ejemplo, en la secuencia de 63 palabras de la Fig.1 (n = 6), si 5 y 6 son ambas cero, un “1” entra en la primera etapa en el siguiente pulso. Lo que estaba en la primera etapa va a la segunda en el siguiente pulso; lo que estaba en la segunda va a la tercera,y así sucesivamente. Si la quinta etapa es un “1” y la 6 es un “0”, un cero va a la etapa 1 en el siguiente pulso. La misma cosa sucede si la quinta etapa es un 0 y la 6 es un 1. Finalmente si 5 y 6 son ambas 1, un 1 se envía a la primera etapa en el siguiente pulso de reloj.

Todos los 63 estados se observan en la Tabla 2. Como puede verse, cualquier grupo de bits de corto plazo en el medio de la misma se comporta de una manera casi aleatoria. Si se cuentan los números de unos y ceros secuenciales, nos encontramos con una curva de distribución, es una aproximación a una curva de probabilidad al azar. A medida que añadimos más y más etapas de registro, la curva se hace más suave, y cada vez más aleatoria. Para cualquier circuito, el número máximo de unos y ceros secuenciales que podemos obtener tiene que ser igual o menor que la longitud del registro. Obviamente obtenemos muchas más secuencias cortas que largas. Si se analiza mediante matemáticas estadísticas, encontraremos que obtenemos una conducta casi aleatoria en plazos cortos, con la diferencia que se repite cada vez que lo deseamos, mientras que el verdadero ruido teóricamente tomaría prácticamente toda la eternidad para ser realmente aleatorio. Las secuencias largas se comportan aún mejor.

 
SECUENCIAS DISPONIBLES

Existen normalmente cuatro secuencias de máxima longitud para cualquier longitud de etapas.

Estos circuitos se ven en la Fig.3. Si tomamos un circuito e invertimos la entrada, obtenemos una secuencia invertida en la cual todos los unos son ceros y viceversa. O, en lugar de observar qué es lo que va a suceder, podemos observar qué es lo que ya sucedió y conseguir una secuencia hacia atrás. Finalmente podemos mirar hacia atrás e invertirla y obtener una secuencia hacia atrás con los unos y ceros intercambiados. Todos los cuatro circuitos tienen esencialmente las mismas propiedades aleatorias. La que uno elija dependerá de cómo desee iniciar el circuito y la polaridad de la salida que se desee.

 
EL ESTADO PROHIBIDO
Un pequeño detalle que debe cuidarse es el del estado prohibido o sin uso. Si, por ejemplo, uno alcanza el estado 111111 con el circuito normal, se quedará en ese estado para siempre. La versión marcha atrás también llegará a 111111, mientras que cualquiera de las secuencias invertidas o complementarias se quedará en 000000 para siempre. De modo que debemos prever que este estado no se presente nunca.

Es fácil iniciar nuestro registro de modo de asegurar que lo hace en una porción válida de la secuencia. De todos modos esto es cierto de casi todos los contadores y circuitos secuenciales en general. Se deben investigar todos los estados prohibidos para estar seguros que ninguno de ellos ha entrado en un estado de auto perpetuación. Otro pequeño detalle es que debemos conseguir un uno o un cero adicional (o un cero o un uno menos) ya que la longitud de nuestro código es siempre un número impar. Este uno o cero adicional tenderá a introducir una cierta asimetría en la distribución aleatoria, y modificará la polarización de una conversión analógica en forma ligera. Esto se corrige fácilmente con resistores de compensación, y de todos modos, en las secuencias más largas este efecto es insignificante.

 
CONVIRTIENDO A ANALOGICO
La Fig.4 muestra dos maneras diferentes de convertir lo digital a números. En la Fig.4a empleamos un integrador o un filtro pasa bajos en la corriente de bits seriales, la salida del integrador es una tensión analógica que varía en forma aleatoria. La salida de corto plazo, es ruido que se comporta como ruido blanco hasta la frecuencia de corte del filtro o por lo menos hasta una buena fracción de ella. Se recomienda una frecuencia de corte de 1/20 de la frecuencia de reloj, especialmente para secuencias largas. Una posibilidad diferente se ve en la Fig.4b.

Aquí, con un convertidor D/A transformamos las palabras digitales en paralelo, en una señal analógica. Con este circuito, obtiene niveles analógicos que saltan a un nuevo valor aleatorio cada vez que ocurre un pulso de reloj.

Para hallar el tiempo en que la secuencia se repite, divida la frecuencia de reloj por la secuencia, con un reloj de 100kHz y una secuencia de longitud 16, el tiempo de repetición será: 100000/65535 o sea alrededor de 1,5 veces por segundo. Si usted está usando la secuencia de 63 para música electrónica a 3 notas por segundo se repetirá cada 21 segundos. Una secuencia de 127 será buena para 42 segundos. Como ejemplo extremo, usando un registro de desplazamiento de 48 etapa en tecnología MECL tomará alrededor de 3 millones de segundos para repetirse. A frecuencias de reloj más lentas, puede tardar meses o años en repetirse.

 
SECUENCIAS MAS LARGAS
Los esquemas para secuencias mayores de 16 son bastante incómodos para dibujar, de modo que se muestran en la Tabla 3. Las longitudes se muestran hasta 31 etapas, lo que nos da una secuencia de longitud de 2,147,483,647. Esto debería ser lo bastante largo para cualquiera. Esta secuencia puede implementarse con cuatro registros de desplazamiento tipo 74164.
 
Autor: Arnoldo Galetto
 
TABLA 1
 
FIGURA 1
 
FIGURA 2
 
FIGURA 3
 
FIGURA 4
 
CUADRO
 
PROMOCIONES
 
PROMOCIONES
 
PROMOCIONES
 
PROMOCIONES
 
PROMOCIONES
 
PROMOCIONES
 
PROMOCIONES
 
PROMOCIONES