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 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.
For more information about how masks and shifts are related to pseudonoise sequence generators, see shift2mask.
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.
The first command below converts 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. The second command shows that a mask of 1 is equivalent to a shift of 0. In both cases, notice that the length of the mask vector is one less than the length of the prpoly vector.
s = mask2shift([1 1 0 0 1],[1 0 0 1]) s2 = mask2shift([1 1 0 0 1],[0 0 0 1])
The output is below.
s = 4 s2 = 0
 Lee, J. S., and L. E. Miller, CDMA Systems Engineering Handbook, Boston, Artech House, 1998.
 Simon, Marvin K., Jim K. Omura, et al., Spread Spectrum Communications Handbook, New York, McGraw-Hill, 1994.