Chapter: Analog and Digital Transmission
Figure: Shift register for the generation of an ML code
Such shift register implements a primitive polynomial h(x):
h(x) = xr + h(r-1) x(r-1) + .... h1 x + 1which is the generator polynomial for a code. In the polynomial h(x), the coefficient hi takes on the binary value 0 or 1. In practice the coefficients hi determine the feedback connections in the code generator. For these feedback connections tables exist. The feedback connections, or the corresponding realized polynomial, are represented by the notation
[r, h(r-1) (r-1), ..., h1].where zero-entries are not written explicitly.
Figure: Waveform p(t) associated with the [3,1] code. (without modulation by a user signal)
ML codes are, by definition, the largest codes that can be generated by a shift register of a given length. For a r-stage shift register their length is Nc = 2r - 1. Thus the [3, 1] code has length Nc = 7.
An important reason for using ML codes is that they have very desirable autocorrelation properties suitable for spread-spectrum systems.
Figure: Auto-correlation for an ML code with chip duration Tc and period N Tc
From the autocorrelation function for ML codes, it follows that this code is indeed suitable as spreading code for spread-spectrum systems. For the autocorrelation function has a clear maximum if t = 0, but is small for any other offset. Due to this property
Number of LFSR elements