Maximum length sequence
A maximum length sequence (MLS) is a type of pseudorandom binary sequence.
They are bit sequences generated using maximal
These sequences may be represented as coefficients of irreducible polynomials in a polynomial ring over Z/2Z.
Practical applications for MLS include measuring impulse responses (e.g., of room reverberation or arrival times from towed sources in the ocean[1]). They are also used as a basis for deriving pseudo-random sequences in digital communication systems that employ direct-sequence spread spectrum and frequency-hopping spread spectrum transmission systems, and in the efficient design of some fMRI experiments.[2]
Generation
MLS are generated using maximal linear-feedback shift registers. An MLS-generating system with a shift register of length 4 is shown in Fig. 1. It can be expressed using the following recursive relation:
where n is the time index and represents modulo-2 addition. For bit values 0 = FALSE or 1 = TRUE, this is equivalent to the XOR operation.
As MLS are periodic and shift registers cycle through every possible binary value (with the exception of the zero vector), registers can be initialized to any state, with the exception of the zero vector.
Polynomial interpretation
A
A necessary and sufficient condition for the sequence generated by a LFSR to be maximal length is that its corresponding polynomial be primitive.[3]
Implementation
MLS are inexpensive to implement in hardware or software, and relatively low-order feedback shift registers can generate long sequences; a sequence generated using a shift register of length 20 is 220 − 1 samples long (1,048,575 samples).
Properties of maximum length sequences
MLS have the following properties, as formulated by
Balance property
The occurrence of 0 and 1 in the sequence should be approximately the same. More precisely, in a maximum length sequence of length there are ones and zeros. The number of ones equals the number of zeros plus one, since the state containing only zeros cannot occur.
Run property
A "run" is a sub-sequence of consecutive "1"s or consecutive "0"s within the MLS concerned. The number of runs is the number of such sub-sequences. [vague]
Of all the "runs" (consisting of "1"s or "0"s) in the sequence :
- One half of the runs are of length 1.
- One quarter of the runs are of length 2.
- One eighth of the runs are of length 3.
- ... etc. ...
Correlation property
The circular autocorrelation of an MLS is a Kronecker delta function[5][6] (with DC offset and time delay, depending on implementation). For the ±1 convention, i.e., bit value 1 is assigned and bit value 0 , mapping XOR to the negative of the product:
where represents the complex conjugate and represents a circular shift.
The linear autocorrelation of an MLS approximates a Kronecker delta.
Extraction of impulse responses
If a
If the impulse response of a system is h[n] and the MLS is s[n], then
Taking the cross-correlation with respect to s[n] of both sides,
and assuming that φss is an impulse (valid for long sequences)
Any signal with an impulsive autocorrelation can be used for this purpose, but signals with high crest factor, such as the impulse itself, produce impulse responses with poor signal-to-noise ratio. It is commonly assumed that the MLS would then be the ideal signal, as it consists of only full-scale values and its digital crest factor is the minimum, 0 dB.[7][8] However, after analog reconstruction, the sharp discontinuities in the signal produce strong intersample peaks, degrading the crest factor by 4-8 dB or more, increasing with signal length, making it worse than a sine sweep.[9] Other signals have been designed with minimal crest factor, though it is unknown if it can be improved beyond 3 dB.[10]
Relationship to Hadamard transform
Cohn and Lempel[11] showed the relationship of the MLS to the Hadamard transform. This relationship allows the correlation of an MLS to be computed in a fast algorithm similar to the FFT.
See also
- Barker code
- Complementary sequences
- Federal Standard 1037C
- Frequency response
- Gold code
- Impulse response
- Polynomial ring
References
- Golomb, Solomon W.; Guang Gong (2005). Signal Design for Good Correlation: For Wireless Communication, Cryptography, and Radar. ISBN 978-0-521-82104-9.
- S2CID 240355915.
- S2CID 7433120.
- ^ "Linear Feedback Shift Registers-Implementation, M-Sequence Properties, Feedback Tables"[1], New Wave Instruments (NW), Retrieved 2013.12.03.
- ISBN 0-89412-048-4.
- ISBN 978-1118636176.
A maximum-length sequence is a binary sequence whose circular autocorrelation (except for a small DC-error) is a delta function.
- S2CID 6179951.
- ^ "A Little MLS (Maximum-Length Sequence) Tutorial | dspGuru.com". dspguru.com. Retrieved 2016-05-19.
its RMS and peak values are both X, making its crest factor (peak/RMS) equal to 1, the lowest it can get.
- ^ "Other Electro-Acoustical Measurement Techniques". www.clear.rice.edu. Retrieved 2016-05-19.
The crest factor for MLS is very close to 1, so it makes sense to use this kind of input signal when we need a high signal-to-noise ratio for our measurement
- ^ Chan, Ian H. "Swept Sine Chirps for Measuring Impulse Response" (PDF). thinksrs.com. Retrieved 2016-05-19.
- ISSN 0090-6778.
- .
External links
- Bristow-Johnson, Robert. "A Little MLS Tutorial". — Short on-line tutorial describing how MLS is used to obtain the impulse response of a linear time-invariant system. Also describes how nonlinearities in the system can show up as spurious spikes in the apparent impulse response.
- Hee, Jens. "Impulse response measurement using MLS" (PDF). — Paper describing MLS generation. Contains C-code for MLS generation using up to 18-tap-LFSRs and matching Hadamard transform for impulse response extraction.
- Schäfer, Magnus (October 2012). "Aachen Impulse Response Database". Institute of Communication Systems and Data Processing, RWTH Aachen University. V1.4. A (binaural) room impulse response database generated by means of maximum length sequences.
- "Efficient Shift Registers, LFSR Counters, and Long Pseudo-Random Sequence Generators — Obsolete" (PDF). Xilinx. July 1996. XAPP052 v1.1. — Implementing lfsr's in FPGAs includes listing of taps for 3 to 168 bits