Una secuencia binaria pseudoaleatoria (PRBS), código binario pseudoaleatorio o flujo de bits pseudoaleatorio es una secuencia binaria que, si bien se genera con un algoritmo determinista , es difícil de predecir [1] y exhibe un comportamiento estadístico similar a una secuencia verdaderamente aleatoria. Los generadores PRBS se utilizan en telecomunicaciones , como en la conversión de analógico a información, [2] pero también en cifrado , simulación , técnica de correlación y espectroscopia de tiempo de vuelo . El ejemplo más común es la secuencia de longitud máxima generada por un registro de desplazamiento de retroalimentación lineal (máximo) (LFSR). Otros ejemplos son las secuencias Gold (utilizadas en CDMA y GPS ), las secuencias Kasami y las secuencias JPL , todas basadas en LFSR.
En telecomunicaciones , las secuencias binarias pseudoaleatorias se conocen como códigos de ruido pseudoaleatorio ( códigos PN o PRN ) debido a su aplicación como ruido pseudoaleatorio .
Una secuencia binaria (BS) es una secuencia de bits, es decir
Una BS se compone de unos y ceros.
Una BS es una secuencia binaria pseudoaleatoria (PRBS) si [3] su función de autocorrelación , dada por
tiene sólo dos valores:
dónde
Se llama ciclo de trabajo del PRBS, similar al ciclo de trabajo de una señal de tiempo continua. Para una secuencia de longitud máxima , donde , el ciclo de trabajo es 1/2.
Una PRBS es "pseudoaleatoria" porque, aunque en realidad es determinista, parece aleatoria en el sentido de que el valor de un elemento es independiente de los valores de cualquiera de los otros elementos, similar a las secuencias aleatorias reales.
Un PRBS se puede estirar hasta el infinito repitiéndolo después de los elementos, pero entonces será cíclico y, por tanto, no aleatorio. Por el contrario, las fuentes de secuencias verdaderamente aleatorias, como las secuencias generadas por desintegración radiactiva o por ruido blanco , son infinitas (sin final o período de ciclo predeterminado). Sin embargo, como resultado de esta previsibilidad, las señales PRBS se pueden utilizar como patrones reproducibles (por ejemplo, señales utilizadas para probar rutas de señales de telecomunicaciones). [4]
Se pueden generar secuencias binarias pseudoaleatorias utilizando registros de desplazamiento de retroalimentación lineal . [5]
Algunas secuencias comunes [6] [7] [8] [9] [10] que generan polinomios mónicos son
Un ejemplo de generación de una secuencia "PRBS-7" se puede expresar en C como
#include <stdio.h> #include <stdint.h> #include <stdlib.h> int main ( int argc , char * argv []) { uint8_t start = 0x02 ; uint8_t a = inicio ; int yo ; for ( i = 1 ;; i ++ ) { int nuevobit = ((( a >> 6 ) ^ ( a >> 5 )) & 1 ); a = (( a << 1 ) | nuevobit ) & 0x7f ; printf ( "%x \n " , a ); if ( a == inicio ) { printf ( "el período de repetición es %d \n " , i ); romper ; } } }
En este caso particular, "PRBS-7" tiene un período de repetición de 127 valores.
La notación PRBS k o PRBS- k (como "PRBS7" o "PRBS-7") da una indicación del tamaño de la secuencia. es el número máximo [4] : §3 de bits que están en la secuencia. La k indica el tamaño de una palabra única de datos en la secuencia. Si segmenta los N bits de datos en cada palabra posible de longitud k , podrá enumerar todas las combinaciones posibles de ceros y unos para una palabra binaria de k bits, con la excepción de la palabra compuesta exclusivamente de ceros. [4] : §2 Por ejemplo, PRBS3 = "1011100" podría generarse a partir de . [6] Si toma cada grupo secuencial de palabras de tres bits en la secuencia PRBS3 (volviendo al principio para las últimas palabras de tres bits), encontrará las siguientes 7 disposiciones de palabras:
" 101 1100" → 101 "1 011 100" → 011 "10 111 00" → 111 "101 110 0" → 110 "1011 100 " → 100 " 1 0111 00 " → 001 (requiere envoltura) " 10 1110 0 " → 010 (requiere envoltura)
Esas 7 palabras son todas las posibles palabras binarias de 3 bits distintos de cero, no en orden numérico. Lo mismo se aplica a cualquier PRBS k , no sólo al PRBS3. [4] : §2