This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.


Convert mask vector to shift for shift register configuration


shift = mask2shift(prpoly,mask)


shift = mask2shift(prpoly,mask) returns the shift that is equivalent to a mask, for a linear feedback shift register whose connections are specified by the primitive polynomial prpoly. The prpoly input can have one of these formats:

  • A polynomial character vector

  • A binary vector that lists the coefficients of the primitive polynomial in order of descending powers

  • An integer scalar whose binary representation gives the coefficients of the primitive polynomial, where the least significant bit is the constant term

The mask input is a binary vector whose length is the degree of the primitive polynomial.


To save time, mask2shift does not check that prpoly is primitive. If it is not primitive, the output is not meaningful. To find primitive polynomials, use primpoly or see [2].

For more information about how masks and shifts are related to pseudonoise sequence generators, see shift2mask.

Definition of Equivalent Shift

If A is a root of the primitive polynomial and m(A) is the mask polynomial evaluated at A, the equivalent shift s solves the equation As = m(A). To interpret the vector mask as a polynomial, treat mask as a list of coefficients in order of descending powers.


collapse all

Convert masks into shifts for a linear feedback shift register.

Convert a mask of x3+1 into an equivalent shift for the linear feedback shift register whose connections are specified by the primitive polynomial x4+x3+1.

s1 = mask2shift([1 1 0 0 1],[1 0 0 1])
s1 = 4

Convert a mask of 1 to a shift. The mask is equivalent to a shift of 0.

s2 = mask2shift([1 1 0 0 1],[0 0 0 1])
s2 = 0

Convert a mask of x2 into an equivalent shift for the primitive polynomial x3+x+1.

s3 = mask2shift('x3+x+1','x2')
s3 = 2


[1] Lee, J. S., and L. E. Miller, CDMA Systems Engineering Handbook, Boston, Artech House, 1998.

[2] Simon, Marvin K., Jim K. Omura, et al., Spread Spectrum Communications Handbook, New York, McGraw-Hill, 1994.

Introduced before R2006a