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 PRBS*k* 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 PRBS*k*, not just PRBS3.^{[4]}^{:§2}

## See also

- Pseudorandom number generator
- Gold code
- Complementary sequences
- Bit Error Rate Test
- Pseudorandom noise
- Linear-feedback shift register

## 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.- ^
^{a}^{b}^{c}^{d}"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.- ^
^{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.

## External links

- OEIS sequence A011686 (A binary m-sequence: expansion of reciprocal) -- the bit sequence for PRBS7 =