## JPL's Wireless Communication Reference Website## Chapter: Analog and Digital Transmission |

Figure: Shift register for the generation of an ML code

Such shift register implements a primitive polynomial* h(x)*:

which is the generator polynomial for a code. In the polynomialh(x)=x^{r}+h_{}_{(r-1)}x^{(r-1)}+ ....h_{1}x+ 1

[where zero-entries are not written explicitly.r,h_{(r-1)}(r-1), ...,h_{1}].

- Answer.

The worked solution also includes a demonstration of a JavaScript

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 *N _{c}* = 2

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* T _{c} *and period

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

- a spread-spectrum receiver can "easily" recognize code synchronization between the received code and the locally generated (identical) code by examining their correlation value, and
- a receiver locked to the dominant wave, only sees little interference from delayed waves, which may be present in a multipath channel.

lNumber of LFSR elements |
m = 2^{l}-1Sequence length |
ml sequences |
Normalized |

3 | 7 | 2 | 0.71 |

4 | 15 | 2 | 0.60 |

5 | 31 | 6 | 0.35 |

6 | 63 | 6 | 0.36 |

7 | 127 | 18 | 0.32 |

8 | 255 | 16 | 0.37 |

10 | 1023 | 60 | 0.37 |

12 | 4095 | 144 | 0.34 |