의사 난수열
Pseudorandom binary sequence의사난수열(PRBS), 의사난수열(pseudorandom binary code) 또는 의사난수열(pseudorandom bitstream)은 결정론적 알고리즘에 의해 생성되지만 예측이[1] 어렵고 정말로 랜덤한 시퀀스와 유사한 통계적 동작을 나타내는 바이너리 시퀀스입니다.PRBS 발생기는 아날로그-정보 [2]변환과 같은 통신에 사용되지만 암호화, 시뮬레이션, 상관 기술 및 비행 시간 스펙트럼 분석에도 사용됩니다.가장 일반적인 예는 (최대) Linear Feedback Shift Register(LFSR; 선형 피드백 시프트 레지스터)에 의해 생성되는 최대 길이 시퀀스입니다.그 외의 예로는 Gold 시퀀스(CDMA 및 GPS에서 사용), Kasami 시퀀스 및 JPL 시퀀스가 있습니다.이것들은 모두 LFSR에 근거하고 있습니다.
통신에서 의사난수 바이너리 시퀀스는 의사난수 노이즈로서 적용되기 때문에 의사난수 노이즈 코드(PN 코드 또는 PRN 코드)로 알려져 있습니다.
세부 사항
바이너리 시퀀스(BS)는N N 의 0 …, -(\의 입니다.
- j , N - j, 1, N-1의 { \{
BS는 m a {\ m=\ a_개의 과 N- {\개의 0으로 됩니다.
BS는 Pseudorandom Binary Sequence(PRBS; 의사랜덤바이너리 시퀀스)이며[3], 그 자기 상관 함수는 다음과 같습니다.
에는 다음 두 가지 값만 있습니다.
어디에
는 연속 시간 신호의 듀티 사이클과 유사한 PRBS의 듀티 사이클이라고 불립니다.N 2k- {\ N1인 최대 길이 시퀀스의 듀티 사이클은 1/2입니다.
PRBS는 '의사랜덤'입니다.실제로는 결정론적이지만 } 요소의 값은 실제 랜덤 시퀀스와 마찬가지로 다른 요소의 값에 의존하지 않기 때문입니다.
PRBS는 N N 요소 에 반복하여 무한대로 확장할 수 있지만, 그 후에는 순환하므로 랜덤하지 않습니다.이와는 대조적으로, 방사능 붕괴나 백색 노이즈에 의해 생성된 시퀀스와 같은 진정한 무작위 시퀀스 소스는 무한하다(사전 결정된 끝 또는 주기 없음).단, 이 예측가능성의 결과로서 PRBS 신호는 재현 가능한 패턴(예를 들어 통신 [4]신호 경로 테스트에 사용되는 신호)으로 사용할 수 있습니다.
실용적인 구현
의사 난수 이진 [5]시퀀스는 선형 피드백 시프트 레지스터를 사용하여 생성할 수 있습니다.
모노[6][7][8][9][10] 다항식을 생성하는 일반적인 수열은 다음과 같다.
- PRBS7 = + + ({ x
- PRBS9 = + 5 + ({ 스타일x^{
- PRBS11 = + 9 + ({ 스타일x^{
- PRBS13 = + + 2 + + ({ x
- PRBS15 = 14+ (\ x +^{ +)
- PRBS20 = + x 3+ ({ x
- PRBS23 = + ({ x
- PRBS31 = + ({ x
'PRBS-7' 시퀀스를 생성하는 예는 C에서 다음과 같이 나타낼 수 있습니다.
#실패하다 <stdio.h> #실패하다 < stdint >h> #실패하다 <stdlib.h> 인트 주된(인트 argc, 차* argv[]) { uint8_t 개시하다 = 0x02; uint8_t a = 개시하다; 인트 i; 위해서 (i = 1;; i++) { 인트 새로운 비트 = (((a >> 6) ^ (a >> 5)) & 1); a = ((a << > 1) 새로운 비트) & 0x7f; 인쇄물(%x\n", a); 한다면 (a == 개시하다) { 인쇄물("확정 기간은 %d입니다.\n", i); 브레이크.; } } }
이 경우, 「PRBS-7」의 반복 주기는 127치입니다.
C++ 템플릿을 사용하는 k=32까지의 PRBS-k 시퀀스에 대한 보다 일반적인 코드는 GitHub에서 찾을 수 있습니다.
표기법
PRBSk 또는 PRBS-k 표기법('PRBS7' 또는 'PRBS-7' 등)은 시퀀스의 크기를 나타냅니다. ({은 시퀀스에 포함된 최대 비트[4]: §3 수입니다.k는 시퀀스에서 고유한 데이터 단어의 크기를 나타냅니다.데이터 N비트를 길이 k의 모든 워드로 분할하면 k비트 이진 워드에 대해 0과 1의 가능한 모든 조합을 나열할 수 있습니다(모두 0s [4]: §2 워드는 제외).예를 들어, PRBS3 = "1011100"은 x3 + 2 +({ x[6]에서 생성할 수 있습니다.PRBS3 시퀀스에서 3비트 워드의 모든 시퀀셜그룹(마지막 3비트 워드의 선두까지 랩핑)을 실행하면 다음 7단어 배열이 나타납니다.
'1011100' → 101 '1011100' → 011 '1011100' → 111 '1011100' → 110 '1011100' → 100 '1011100' → 001 (1011100) → 010 (1011100)
이 7개의 워드는 모두 숫자 순서가 아닌 - - 7 { 2^{}-1= 2의 가능한 3비트 이진 워드입니다.PRBS3뿐만 아니라 모든 PRBSk에서도 마찬가지입니다.[4]: §2
「 」를 참조해 주세요.
레퍼런스
- ^ "PRBS Pseudo Random Bit Sequence Generation". TTi. Retrieved 21 January 2016.
- ^ Daponte, Pasquale; De Vito, Luca; Iadarola, Grazia; Rapuano, Sergio. "PRBS non-idealities affecting Random Demodulation Analog-to-Information Converters" (PDF).
- ^ Naszodi, Laszlo. "Articles on Correlation and Calibration". Archived from the original on 11 November 2013.
- ^ a b c d "ITU-T Recommendation O.150". October 1992.
- ^ Paul H. Bardell, William H. McAnney 및 Jacob Savir, "Built-In Test for VLSI: Pseudorandom Technics", John Wiley & Sons, 1987.
- ^ a b Tomlinson, Kurt (4 February 2015). "PRBS (Pseudo-Random Binary Sequence)". Bloopist. Retrieved 21 January 2016.
- ^ Koopman, Philip. "Maximal Length LFSR Feedback Terms". Retrieved 21 January 2016.
- ^ "What are the PRBS7, PRBS15, PRBS23, and PRBS31 polynomials used in the Altera Transceiver Toolkit?". Altera. 14 February 2013. Retrieved 21 January 2016.
- ^ Riccardi, Daniele; Novellini, Paolo (10 January 2011). "An Attribute-Programmable PRBS Generator and Checker (XAP884)" (PDF). Xilinx. Table 3:Configuration for PRBS Polynomials Most Used to Test Serial Lines. Retrieved 21 January 2016.
- ^ "O.150 : General requirements for instrumentation for performance measurements on digital transmission equipment". 1997-01-06.
외부 링크
- OEIS 시퀀스 A011686(이진수 m 시퀀스: 역수 확장) -- PRBS7 = 7 + +({ x의 비트시퀀스