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. PBS are used in telecommunication, but also in encryption, simulation, correlation technique and time-of-flight spectroscopy.


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[2] its autocorrelation function, given by


has only two values:




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).[3]

Practical implementationEdit

Pseudorandom binary sequences can be generated using linear-feedback shift registers.[4]

Some common[5][6][7][8][9] 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);

In this particular case, "PRBS-7" has a repetition period of 127 bits.


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[3]:§3 of bits that be 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.[3]:§2 For example, PRBS3 = "1011100" could be generated from  .[5] 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.[3]:§2

See alsoEdit


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

External linksEdit