Pseudorandom binary sequence
A pseudorandom binary sequence (PRBS) is a binary sequence that, while generated with a deterministic algorithm, is difficult to predict[1] and exhibits statistical behavior similar to a truly random sequence. PRBS generators are used in telecommunication, such as in analog-to-information conversion,[2] but also in encryption, simulation, correlation technique and time-of-flight spectroscopy.
Details
A binary sequence (BS) is a sequence of bits, i.e.
- for .
A BS consists of ones and zeros.
A BS is a pseudorandom binary sequence (PRBS) if[3] its autocorrelation function, given by
has only two values:
where
is called the duty cycle of the PRBS, similar to the duty cycle of a continuous time signal. For a maximum length sequence, where , the duty cycle is 1/2.
A PRBS is 'pseudorandom', because, although it is in fact deterministic, it seems to be random in a sense that the value of an element is independent of the values of any of the other elements, similar to real random sequences.
A PRBS can be stretched to infinity by repeating it after elements, but it will then be cyclical and thus non-random. In contrast, truly random sequence sources, such as sequences generated by radioactive decay or by white noise, are infinite (no pre-determined end or cycle-period). However, as a result of this predictability, PRBS signals can be used as reproducible patterns (for example, signals used in testing telecommunications signal paths).[4]
Practical implementation
Pseudorandom binary sequences can be generated using linear-feedback shift registers.[5]
Some common[6][7][8][9][10] sequence generating monic polynomials are
- PRBS7 =
- PRBS9 =
- PRBS11 =
- PRBS15 =
- PRBS20 =
- PRBS23 =
- PRBS31 =
An example of generating a "PRBS-7" sequence can be expressed in C as
#include <stdio.h>
#include <stdint.h>
#include <stdlib.h>
int main(int argc, char* argv[]) {
uint8_t start = 0x02;
uint8_t a = start;
int i;
for (i = 1;; i++) {
int newbit = (((a >> 6) ^ (a >> 5)) & 1);
a = ((a << 1) | newbit) & 0x7f;
printf("%x\n", a);
if (a == start) {
printf("repetition period is %d\n", i);
break;
}
}
}
In this particular case, "PRBS-7" has a repetition period of 127 values.
Notation
The PRBSk or PRBS-k notation (such as "PRBS7" or "PRBS-7") gives an indication of the size of the sequence. is the maximum number[4]:§3 of bits that are in the sequence. The k indicates the size of a unique word of data in the sequence. If you segment the N bits of data into every possible word of length k, you will be able to list every possible combination of 0s and 1s for a k-bit binary word, with the exception of the all-0s word.[4]:§2 For example, PRBS3 = "1011100" could be generated from .[6] If you take every sequential group of three bit words in the PRBS3 sequence (wrapping around to the beginning for the last few three-bit words), you will find the following 7 word arrangements:
"1011100" → 101 "1011100" → 011 "1011100" → 111 "1011100" → 110 "1011100" → 100 "1011100" → 001 (requires wrap) "1011100" → 010 (requires wrap)
Those 7 words are all of the possible non-zero 3-bit binary words, not in numeric order. The same holds true for any PRBSk, not just PRBS3.[4]:§2
See also
References
- "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.
- "ITU-T Recommendation O.150". October 1992.
- Paul H. Bardell, William H. McAnney, and Jacob Savir, "Built-In Test for VLSI: Pseudorandom Techniques", John Wiley & Sons, New York, 1987.
- 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.
External links
- OEIS sequence A011686 (A binary m-sequence: expansion of reciprocal) -- the bit sequence for PRBS7 =