Una secuencia binaria pseudoaleatoria (PRBS), código binario pseudoaleatorio o flujo de bits pseudoaleatorio es una secuencia binaria que, aunque 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 encriptación , simulación , técnica de correlación y espectroscopía de tiempo de vuelo . El ejemplo más común es la secuencia de longitud máximagenerado por un registro de desplazamiento de retroalimentación lineal (máximo) (LFSR). Otros ejemplos son las secuencias Gold (utilizadas en CDMA y GPS ), secuencias Kasami y 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 .
Detalles
Una secuencia binaria (BS) es una secuencia de bits, es decir
- por .
Una BS consta de unos y ceros.
Una BS es una secuencia binaria pseudoaleatoria (PRBS) si [3] su función de autocorrelación , dada por
tiene solo dos valores:
dónde
se denomina ciclo de trabajo del PRBS, similar al ciclo de trabajo de una señal de tiempo continuo. Para una secuencia de longitud máxima , donde, el ciclo de trabajo es 1/2.
Un PRBS es 'pseudoaleatorio' porque, aunque de hecho es determinista, parece ser aleatorio 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 elementos, pero luego será cíclico y, por lo tanto, no aleatorio. Por el contrario, las fuentes de secuencia verdaderamente aleatorias, como las secuencias generadas por desintegración radiactiva o por ruido blanco , son infinitas (sin final o período de ciclo predeterminados). Sin embargo, como resultado de esta previsibilidad, las señales PRBS se pueden utilizar como patrones reproducibles (por ejemplo, señales utilizadas en la prueba de trayectorias de señales de telecomunicaciones). [4]
Implementación práctica
Se pueden generar secuencias binarias pseudoaleatorias utilizando registros de desplazamiento de retroalimentación lineal . [5]
Algunos polinomios comunes [6] [7] [8] [9] [10] que generan secuencias son
- PRBS7 =
- PRBS9 =
- PRBS11 =
- PRBS15 =
- PRBS20 =
- PRBS23 =
- PRBS31 =
Un ejemplo de generación de una secuencia "PRBS-7" se puede expresar en C como
#include #include #include int main ( int argc , char * argv []) { uint8_t start = 0x02 ; uint8_t a = inicio ; int i ; para ( i = 1 ;; i ++ ) { int newbit = ((( a >> 6 ) ^ ( a >> 5 )) & 1 ); a = (( a << 1 ) | bit nuevo ) & 0x7f ; printf ( "% x \ n " , a ); if ( a == start ) { 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.
Se puede encontrar un código más generalizado para cualquier secuencia PRBS-k hasta k = 32 usando plantillas C ++ en GitHub .
Notación
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 de datos única en la secuencia. Si segmenta los N bits de datos en cada palabra posible de longitud k , podrá enumerar todas las combinaciones posibles de 0 y 1 para una palabra binaria de k bits, con la excepción de la palabra de todos 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 (pasando al principio para las últimas palabras de tres bits), encontrará los siguientes arreglos de 7 palabras:
" 101 1100" → 101 " 1011100 " → 011 " 10111 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 distintas de cero, no en orden numérico. Lo mismo es válido para cualquier PRBS k , no solo para PRBS3. [4] : §2
Ver también
Referencias
- ^ "Generación de secuencia de bits pseudoaleatoria PRBS" . TTi . Consultado el 21 de enero de 2016 .
- ^ Daponte, Pasquale; De Vito, Luca; Iadarola, Grazia; Rapuano, Sergio. "No idealidades de PRBS que afectan a los convertidores de analógico a información de demodulación aleatoria" (PDF) .
- ^ Naszodi, Laszlo. "Artículos sobre Correlación y Calibración" . Archivado desde el original el 11 de noviembre de 2013.
- ^ a b c d "Recomendación UIT-T O.150" . Octubre de 1992.
- ^ Paul H. Bardell, William H. McAnney y Jacob Savir, "Prueba incorporada para VLSI: Técnicas pseudoaleatorias", John Wiley & Sons, Nueva York, 1987.
- ^ a b Tomlinson, Kurt (4 de febrero de 2015). "PRBS (secuencia binaria pseudoaleatoria)" . Bloopist . Consultado el 21 de enero de 2016 .
- ^ Koopman, Philip. "Términos de retroalimentación LFSR de longitud máxima" . Consultado el 21 de enero de 2016 .
- ^ "¿Cuáles son los polinomios PRBS7, PRBS15, PRBS23 y PRBS31 utilizados en el kit de herramientas Altera Transceiver?" . Altera . 14 de febrero de 2013 . Consultado el 21 de enero de 2016 .
- ^ Riccardi, Daniele; Novellini, Paolo (10 de enero de 2011). "Un generador y verificador PRBS programable por atributos (XAP884)" (PDF) . Xilinx . Tabla 3: Configuración de los polinomios PRBS más utilizados para probar líneas seriales . Consultado el 21 de enero de 2016 .
- ^ "O.150: Requisitos generales de instrumentación para medidas de calidad de funcionamiento en equipos de transmisión digital" . 1997-01-06.
enlaces externos
- Secuencia OEIS A011686 (Una secuencia m binaria: expansión de recíproco) - la secuencia de bits para PRBS7 =