의사 난수열

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

「 」를 참조해 주세요.

레퍼런스

  1. ^ "PRBS Pseudo Random Bit Sequence Generation". TTi. Retrieved 21 January 2016.
  2. ^ Daponte, Pasquale; De Vito, Luca; Iadarola, Grazia; Rapuano, Sergio. "PRBS non-idealities affecting Random Demodulation Analog-to-Information Converters" (PDF).
  3. ^ Naszodi, Laszlo. "Articles on Correlation and Calibration". Archived from the original on 11 November 2013.
  4. ^ a b c d "ITU-T Recommendation O.150". October 1992.
  5. ^ Paul H. Bardell, William H. McAnney 및 Jacob Savir, "Built-In Test for VLSI: Pseudorandom Technics", John Wiley & Sons, 1987.
  6. ^ a b Tomlinson, Kurt (4 February 2015). "PRBS (Pseudo-Random Binary Sequence)". Bloopist. Retrieved 21 January 2016.
  7. ^ Koopman, Philip. "Maximal Length LFSR Feedback Terms". Retrieved 21 January 2016.
  8. ^ "What are the PRBS7, PRBS15, PRBS23, and PRBS31 polynomials used in the Altera Transceiver Toolkit?". Altera. 14 February 2013. Retrieved 21 January 2016.
  9. ^ 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.
  10. ^ "O.150 : General requirements for instrumentation for performance measurements on digital transmission equipment". 1997-01-06.

외부 링크